@rh-support/troubleshoot 2.6.358 → 2.6.363
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.js +29 -19
- package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/OwnerSelector.js +16 -91
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -6
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +32 -61
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +33 -60
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -19
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +4 -15
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +55 -82
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +0 -2
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +2 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +6 -8
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +47 -79
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +109 -203
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -0
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +5 -5
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +3 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +9 -5
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +17 -18
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +47 -51
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +44 -49
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +45 -51
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +17 -63
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +2 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +55 -130
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +5 -10
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +65 -110
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +9 -16
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +25 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +102 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +26 -40
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +4 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +148 -122
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +2 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +145 -76
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +9 -22
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +2 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +1 -8
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +7 -18
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +3 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +267 -217
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +4 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +1 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +3 -35
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +224 -63
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +5 -4
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +5 -18
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +2 -7
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +52 -38
- package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseGroup.js +61 -168
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +9 -10
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +31 -108
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
- package/lib/esm/components/CaseInformation/Description.js +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.js +5 -2
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +17 -31
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +24 -33
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +55 -36
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +8 -2
- package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseManagement.js +10 -13
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +9 -11
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -2
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -20
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -0
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +32 -19
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +40 -34
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +4 -8
- package/lib/esm/components/EditDescription/EditDescription.js +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +17 -23
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +2 -4
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +50 -37
- package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +1 -9
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +3 -4
- package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +4 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
- package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +9 -3
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +8 -10
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +19 -25
- package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -2
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +91 -139
- package/lib/esm/components/shared/Constants.d.ts +0 -5
- package/lib/esm/components/shared/Constants.d.ts.map +1 -1
- package/lib/esm/components/shared/Constants.js +0 -5
- package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
- package/lib/esm/components/shared/fileUpload/FileUpload.js +3 -2
- package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileUploader.js +1 -3
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +0 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -4
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +5 -22
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +59 -307
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +1 -5
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +1 -36
- package/lib/esm/components/shared/fileUpload/types/index.d.ts +1 -5
- package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
- package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/useFileUploader.js +47 -119
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +57 -22
- package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
- package/lib/esm/components/shared/usePostComment.js +28 -16
- package/lib/esm/components/shared/utils.d.ts +0 -1
- package/lib/esm/components/shared/utils.d.ts.map +1 -1
- package/lib/esm/components/shared/utils.js +3 -9
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +38 -178
- package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/MainSection.js +1 -2
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +4 -2
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +13 -12
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +0 -7
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +11 -14
- package/lib/esm/constants/caseDetailsConstants.d.ts +0 -5
- package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
- package/lib/esm/constants/caseDetailsConstants.js +0 -5
- package/lib/esm/context/CaseContext.d.ts.map +1 -1
- package/lib/esm/css/app.css +0 -28
- package/lib/esm/css/case.css +209 -60
- package/lib/esm/hooks/useAB.d.ts.map +1 -1
- package/lib/esm/hooks/useAB.js +23 -45
- package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -1
- package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
- package/lib/esm/hooks/useCaseUpdateErrorMessage.js +11 -21
- package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
- package/lib/esm/hooks/useResetCaseCreate.js +11 -18
- package/lib/esm/hooks/useS3Upload.d.ts +4 -5
- package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
- package/lib/esm/hooks/useS3Upload.js +30 -28
- package/lib/esm/i18n/template-de.d.ts +2 -2
- package/lib/esm/i18n/template-de.js +2 -2
- package/lib/esm/i18n/template-es.d.ts +2 -2
- package/lib/esm/i18n/template-es.js +2 -2
- package/lib/esm/i18n/template-fr.d.ts +2 -2
- package/lib/esm/i18n/template-fr.js +2 -2
- package/lib/esm/i18n/template-it.d.ts +2 -2
- package/lib/esm/i18n/template-it.js +2 -2
- package/lib/esm/i18n/template-jp.d.ts +2 -2
- package/lib/esm/i18n/template-jp.js +2 -2
- package/lib/esm/i18n/template-ko.d.ts +2 -2
- package/lib/esm/i18n/template-ko.js +2 -2
- package/lib/esm/i18n/template-pt.d.ts +2 -2
- package/lib/esm/i18n/template-pt.js +2 -2
- package/lib/esm/i18n/template-ru.d.ts +2 -2
- package/lib/esm/i18n/template-ru.js +2 -2
- package/lib/esm/i18n/template-zh.d.ts +2 -2
- package/lib/esm/i18n/template-zh.js +2 -2
- package/lib/esm/index.js +0 -1
- package/lib/esm/models/cache.d.ts +2 -0
- package/lib/esm/models/cache.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.d.ts +9 -123
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +7 -31
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -7
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseDetailsPageReducer.js +26 -58
- package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +12 -11
- package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseDiscussionTabReducer.js +70 -63
- package/lib/esm/reducers/CaseHelpers.d.ts +1 -11
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +17 -119
- package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
- package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
- package/lib/esm/reducers/CaseReducer.d.ts +11 -56
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +100 -284
- package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
- package/lib/esm/reducers/RecommendationsReducer.js +18 -15
- package/lib/esm/scss/_main.scss +0 -9
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +2 -1
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
- package/package.json +8 -9
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +0 -8
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +0 -18
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +0 -4
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +0 -23
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +0 -29
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +0 -29
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +0 -17
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +0 -60
- package/lib/esm/components/CaseInformation/CaseLabels.d.ts +0 -3
- package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +0 -1
- package/lib/esm/components/CaseInformation/CaseLabels.js +0 -106
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +0 -4
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +0 -1
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +0 -141
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +0 -3
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +0 -1
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +0 -9
- package/lib/esm/graphql/index.d.ts +0 -4
- package/lib/esm/graphql/index.d.ts.map +0 -1
- package/lib/esm/graphql/index.js +0 -3
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +0 -2
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +0 -1
- package/lib/esm/graphql/mutations/createRMECaseEscalation.js +0 -24
- package/lib/esm/graphql/mutations/index.d.ts +0 -2
- package/lib/esm/graphql/mutations/index.d.ts.map +0 -1
- package/lib/esm/graphql/mutations/index.js +0 -1
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts +0 -2
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +0 -1
- package/lib/esm/graphql/queries/getEscalationDetails.js +0 -31
- package/lib/esm/graphql/queries/index.d.ts +0 -2
- package/lib/esm/graphql/queries/index.d.ts.map +0 -1
- package/lib/esm/graphql/queries/index.js +0 -1
- package/lib/esm/graphql/schemas/escalation.d.ts +0 -66
- package/lib/esm/graphql/schemas/escalation.d.ts.map +0 -1
- package/lib/esm/graphql/schemas/escalation.js +0 -1
- package/lib/esm/graphql/schemas/index.d.ts +0 -2
- package/lib/esm/graphql/schemas/index.d.ts.map +0 -1
- package/lib/esm/graphql/schemas/index.js +0 -1
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +0 -4
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +0 -52
- package/lib/esm/hooks/useCaseComments/index.d.ts +0 -7
- package/lib/esm/hooks/useCaseComments/index.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/index.js +0 -5
- package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +0 -25
- package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/mapCaseComment.js +0 -75
- package/lib/esm/hooks/useCaseComments/types.d.ts +0 -85
- package/lib/esm/hooks/useCaseComments/types.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/types.js +0 -1
- package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +0 -17
- package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/useCaseComments.js +0 -38
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +0 -19
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +0 -33
- package/lib/esm/hooks/useCaseGroupUiState.d.ts +0 -3
- package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseGroupUiState.js +0 -10
- package/lib/esm/hooks/useCaseHistory.d.ts +0 -26
- package/lib/esm/hooks/useCaseHistory.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseHistory.js +0 -98
- package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +0 -23
- package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseLabelLinkMutations.js +0 -84
- package/lib/esm/models/caseHistory.d.ts +0 -80
- package/lib/esm/models/caseHistory.d.ts.map +0 -1
- package/lib/esm/models/caseHistory.js +0 -1
- package/lib/esm/utils/TimelineUtils.d.ts +0 -41
- package/lib/esm/utils/TimelineUtils.d.ts.map +0 -1
- package/lib/esm/utils/TimelineUtils.js +0 -135
- package/lib/esm/utils/caseHistoryUtils.d.ts +0 -66
- package/lib/esm/utils/caseHistoryUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseHistoryUtils.js +0 -165
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +0 -6
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +0 -26
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ICaseComment } from '@cee-eng/hydrajs/@types/api/public/case';
|
|
2
|
-
import { IUseCaseCommentsOptions } from './types';
|
|
3
|
-
interface IUseCaseCommentsReturn {
|
|
4
|
-
comments: ICaseComment[];
|
|
5
|
-
loading: boolean;
|
|
6
|
-
error: Error | undefined;
|
|
7
|
-
refetch: () => Promise<unknown>;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Fetches case comments from the Salesforce GraphQL API for a given case ID.
|
|
11
|
-
* Supports custom sort ordering and pagination clamping (1–2000 records).
|
|
12
|
-
* External / customer users (no VIEW_PRIVATE_COMMENT) only receive Public comments.
|
|
13
|
-
* Returns mapped ICaseComment[] along with loading, error, and refetch handles.
|
|
14
|
-
*/
|
|
15
|
-
export declare function useCaseComments({ caseId, skip, orderBy, first, publicOnly, }: IUseCaseCommentsOptions): IUseCaseCommentsReturn;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=useCaseComments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCaseComments.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/useCaseComments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAOvE,OAAO,EAAuB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvE,UAAU,sBAAsB;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC;AAeD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,EACP,KAAK,EACL,UAAU,GACb,EAAE,uBAAuB,GAAG,sBAAsB,CAqBlD"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { useQuery } from '@apollo/client/react';
|
|
2
|
-
import { ability, CaseDiscussionFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
3
|
-
import clamp from 'lodash/clamp';
|
|
4
|
-
import { useMemo } from 'react';
|
|
5
|
-
import { GET_CASE_COMMENTS } from './caseCommentsQuery';
|
|
6
|
-
import { mapCaseCommentsResponse } from './mapCaseComment';
|
|
7
|
-
const MAX_FIRST = 2000;
|
|
8
|
-
const MIN_FIRST = 1;
|
|
9
|
-
function buildCaseCommentsFilter(caseId, publicOnly) {
|
|
10
|
-
if (publicOnly) {
|
|
11
|
-
return {
|
|
12
|
-
Case__c: { eq: caseId },
|
|
13
|
-
Visibility__c: { eq: 'Public' },
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
return { Case__c: { eq: caseId } };
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Fetches case comments from the Salesforce GraphQL API for a given case ID.
|
|
20
|
-
* Supports custom sort ordering and pagination clamping (1–2000 records).
|
|
21
|
-
* External / customer users (no VIEW_PRIVATE_COMMENT) only receive Public comments.
|
|
22
|
-
* Returns mapped ICaseComment[] along with loading, error, and refetch handles.
|
|
23
|
-
*/
|
|
24
|
-
export function useCaseComments({ caseId, skip, orderBy, first, publicOnly, }) {
|
|
25
|
-
const canSeePrivateComments = ability.can(resourceActions.PATCH, resources.CASE_COMMENTS, CaseDiscussionFields.VIEW_PRIVATE_COMMENT);
|
|
26
|
-
const shouldFilterPublicOnly = publicOnly !== null && publicOnly !== void 0 ? publicOnly : !canSeePrivateComments;
|
|
27
|
-
const { data, loading, error, refetch } = useQuery(GET_CASE_COMMENTS, {
|
|
28
|
-
variables: {
|
|
29
|
-
filter: buildCaseCommentsFilter(caseId, shouldFilterPublicOnly),
|
|
30
|
-
orderBy: orderBy !== null && orderBy !== void 0 ? orderBy : { LastModifiedDate: { order: 'DESC' } },
|
|
31
|
-
first: clamp(first !== null && first !== void 0 ? first : MAX_FIRST, MIN_FIRST, MAX_FIRST),
|
|
32
|
-
},
|
|
33
|
-
skip: skip || !caseId,
|
|
34
|
-
fetchPolicy: 'cache-and-network',
|
|
35
|
-
});
|
|
36
|
-
const comments = useMemo(() => mapCaseCommentsResponse(data), [data]);
|
|
37
|
-
return { comments, loading, error, refetch };
|
|
38
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
interface ICreateCaseCommentOptions {
|
|
2
|
-
caseId: string;
|
|
3
|
-
body: string;
|
|
4
|
-
isPublic?: boolean;
|
|
5
|
-
isAssociate?: boolean;
|
|
6
|
-
}
|
|
7
|
-
interface IUseCreateCaseCommentReturn {
|
|
8
|
-
createComment: (options: ICreateCaseCommentOptions) => Promise<unknown>;
|
|
9
|
-
loading: boolean;
|
|
10
|
-
error: Error | undefined;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Wraps the CREATE_CASE_COMMENT GraphQL mutation.
|
|
14
|
-
* Returns a `createComment` callback that accepts caseId, body, visibility,
|
|
15
|
-
* and associate flag, along with the mutation's loading and error state.
|
|
16
|
-
*/
|
|
17
|
-
export declare function useCreateCaseComment(): IUseCreateCaseCommentReturn;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=useCreateCaseComment.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateCaseComment.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/useCreateCaseComment.ts"],"names":[],"mappings":"AAKA,UAAU,yBAAyB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,2BAA2B;IACjC,aAAa,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,2BAA2B,CAiBlE"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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 { useMutation } from '@apollo/client/react';
|
|
11
|
-
import { CREATE_CASE_COMMENT, sanitizeForSalesforce } from '@rh-support/utils';
|
|
12
|
-
import { mapVisibility } from './mapCaseComment';
|
|
13
|
-
/**
|
|
14
|
-
* Wraps the CREATE_CASE_COMMENT GraphQL mutation.
|
|
15
|
-
* Returns a `createComment` callback that accepts caseId, body, visibility,
|
|
16
|
-
* and associate flag, along with the mutation's loading and error state.
|
|
17
|
-
*/
|
|
18
|
-
export function useCreateCaseComment() {
|
|
19
|
-
const [mutate, { loading, error }] = useMutation(CREATE_CASE_COMMENT);
|
|
20
|
-
const createComment = (_a) => __awaiter(this, [_a], void 0, function* ({ caseId, body, isPublic = true, isAssociate = false }) {
|
|
21
|
-
return mutate({
|
|
22
|
-
variables: {
|
|
23
|
-
commentInput: {
|
|
24
|
-
Case__c: caseId,
|
|
25
|
-
Body__c: sanitizeForSalesforce(body),
|
|
26
|
-
Visibility__c: mapVisibility(isPublic),
|
|
27
|
-
IsAssociate__c: isAssociate,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
return { createComment, loading, error };
|
|
33
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCaseGroupUiState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseGroupUiState.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,QAElC;AAED,wBAAgB,qBAAqB,YAGpC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import isEqual from 'lodash/isEqual';
|
|
2
|
-
import { useCaseSelector } from '../context/CaseContext';
|
|
3
|
-
import { getCaseGroupUiState } from '../reducers/CaseHelpers';
|
|
4
|
-
export function useCaseGroupUiState() {
|
|
5
|
-
return useCaseSelector((state) => getCaseGroupUiState(state), isEqual);
|
|
6
|
-
}
|
|
7
|
-
export function useShowCaseGroupField() {
|
|
8
|
-
const { shouldHideSelector, groupsLoaded } = useCaseGroupUiState();
|
|
9
|
-
return !shouldHideSelector || !groupsLoaded;
|
|
10
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type TypedDocumentNode } from '@apollo/client';
|
|
2
|
-
import type { ICaseHistoryItem, IGetCaseHistoryData, IGetCaseHistoryVars } from '../models/caseHistory';
|
|
3
|
-
/**
|
|
4
|
-
* OldValue/NewValue use inline fragments with aliased fields (e.g. `stringValue: value`).
|
|
5
|
-
* These aliases produce the property names that `extractStringValue` checks against.
|
|
6
|
-
* Changing an alias here without updating `extractStringValue` will silently break
|
|
7
|
-
* value extraction.
|
|
8
|
-
*
|
|
9
|
-
* Supported value types (members of the RedHat_Support_AnyType union):
|
|
10
|
-
* - RedHatSupportStringValue → stringValue
|
|
11
|
-
* - RedHatSupportBooleanValue → booleanValue
|
|
12
|
-
* - RedHatSupportDoubleValue → doubleValue
|
|
13
|
-
* - RedHatSupportDateTimeValue → dateTimeValue
|
|
14
|
-
*
|
|
15
|
-
* `first` defaults to 2000 — a practical cap that covers all observed real-world case
|
|
16
|
-
* histories while staying well within the SF API limit.
|
|
17
|
-
*/
|
|
18
|
-
export declare const GET_CASE_HISTORY: TypedDocumentNode<IGetCaseHistoryData, IGetCaseHistoryVars>;
|
|
19
|
-
interface UseCaseHistoryResult {
|
|
20
|
-
historyItems: ICaseHistoryItem[];
|
|
21
|
-
loading: boolean;
|
|
22
|
-
error: Error | undefined;
|
|
23
|
-
}
|
|
24
|
-
export declare function useCaseHistory(caseId: string | undefined, first?: number): UseCaseHistoryResult;
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=useCaseHistory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCaseHistory.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAO,MAAM,gBAAgB,CAAC;AAI7D,OAAO,KAAK,EAER,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,mBAAmB,CA6DxF,CAAC;AAEF,UAAU,oBAAoB;IAC1B,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,SAAO,GAAG,oBAAoB,CAgB7F"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { gql } from '@apollo/client';
|
|
2
|
-
import { useQuery } from '@apollo/client/react';
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
import { filterSfdcIdEntries, normalizeNodeToHistoryItem } from '../utils/caseHistoryUtils';
|
|
5
|
-
/**
|
|
6
|
-
* OldValue/NewValue use inline fragments with aliased fields (e.g. `stringValue: value`).
|
|
7
|
-
* These aliases produce the property names that `extractStringValue` checks against.
|
|
8
|
-
* Changing an alias here without updating `extractStringValue` will silently break
|
|
9
|
-
* value extraction.
|
|
10
|
-
*
|
|
11
|
-
* Supported value types (members of the RedHat_Support_AnyType union):
|
|
12
|
-
* - RedHatSupportStringValue → stringValue
|
|
13
|
-
* - RedHatSupportBooleanValue → booleanValue
|
|
14
|
-
* - RedHatSupportDoubleValue → doubleValue
|
|
15
|
-
* - RedHatSupportDateTimeValue → dateTimeValue
|
|
16
|
-
*
|
|
17
|
-
* `first` defaults to 2000 — a practical cap that covers all observed real-world case
|
|
18
|
-
* histories while staying well within the SF API limit.
|
|
19
|
-
*/
|
|
20
|
-
export const GET_CASE_HISTORY = gql `
|
|
21
|
-
query GetCaseHistory($caseId: ID!, $first: Int = 2000) {
|
|
22
|
-
redhat_support_uiapi {
|
|
23
|
-
query {
|
|
24
|
-
RedHatSupportCaseHistory(first: $first, where: { CaseId: { eq: $caseId } }) {
|
|
25
|
-
edges {
|
|
26
|
-
node {
|
|
27
|
-
Id
|
|
28
|
-
RedHatSupportField {
|
|
29
|
-
value
|
|
30
|
-
displayValue
|
|
31
|
-
label
|
|
32
|
-
}
|
|
33
|
-
OldValue {
|
|
34
|
-
... on RedHatSupportStringValue {
|
|
35
|
-
stringValue: value
|
|
36
|
-
}
|
|
37
|
-
... on RedHatSupportBooleanValue {
|
|
38
|
-
booleanValue: value
|
|
39
|
-
}
|
|
40
|
-
... on RedHatSupportDoubleValue {
|
|
41
|
-
doubleValue: value
|
|
42
|
-
}
|
|
43
|
-
... on RedHatSupportDateTimeValue {
|
|
44
|
-
dateTimeValue: value
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
NewValue {
|
|
48
|
-
... on RedHatSupportStringValue {
|
|
49
|
-
stringValue: value
|
|
50
|
-
}
|
|
51
|
-
... on RedHatSupportBooleanValue {
|
|
52
|
-
booleanValue: value
|
|
53
|
-
}
|
|
54
|
-
... on RedHatSupportDoubleValue {
|
|
55
|
-
doubleValue: value
|
|
56
|
-
}
|
|
57
|
-
... on RedHatSupportDateTimeValue {
|
|
58
|
-
dateTimeValue: value
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
CreatedBy {
|
|
62
|
-
Name {
|
|
63
|
-
value
|
|
64
|
-
}
|
|
65
|
-
UserType {
|
|
66
|
-
value
|
|
67
|
-
}
|
|
68
|
-
SmallPhotoUrl {
|
|
69
|
-
value
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
CreatedDate {
|
|
73
|
-
value
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
`;
|
|
82
|
-
export function useCaseHistory(caseId, first = 2000) {
|
|
83
|
-
const { data, loading, error } = useQuery(GET_CASE_HISTORY, {
|
|
84
|
-
variables: { caseId: caseId || '', first },
|
|
85
|
-
// Empty string = no case selected; skip avoids a wasted network request.
|
|
86
|
-
skip: !caseId,
|
|
87
|
-
// Shows cached data immediately while revalidating, avoiding a loading flash on re-visits.
|
|
88
|
-
fetchPolicy: 'cache-and-network',
|
|
89
|
-
});
|
|
90
|
-
const historyItems = useMemo(() => {
|
|
91
|
-
var _a, _b, _c;
|
|
92
|
-
const edges = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.RedHatSupportCaseHistory) === null || _c === void 0 ? void 0 : _c.edges;
|
|
93
|
-
if (!edges)
|
|
94
|
-
return [];
|
|
95
|
-
return filterSfdcIdEntries(edges).map(normalizeNodeToHistoryItem);
|
|
96
|
-
}, [data]);
|
|
97
|
-
return { historyItems, loading, error };
|
|
98
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface LabelOption {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
}
|
|
5
|
-
export interface LabelLink {
|
|
6
|
-
linkId: string;
|
|
7
|
-
labelId: string;
|
|
8
|
-
}
|
|
9
|
-
interface UseCaseLabelLinksResult {
|
|
10
|
-
availableLabels: LabelOption[];
|
|
11
|
-
assignedLinks: LabelLink[];
|
|
12
|
-
selectedLabelIds: string[];
|
|
13
|
-
loading: boolean;
|
|
14
|
-
error: Error | undefined;
|
|
15
|
-
mutating: boolean;
|
|
16
|
-
setAssignedLinks: React.Dispatch<React.SetStateAction<LabelLink[]>>;
|
|
17
|
-
createLink: (caseId: string, labelId: string) => Promise<string | undefined>;
|
|
18
|
-
deleteLink: (linkId: string) => Promise<void>;
|
|
19
|
-
refetch: () => Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export declare function useCaseLabelLinks(salesforceAccountId?: string, caseId?: string): UseCaseLabelLinksResult;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=useCaseLabelLinkMutations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCaseLabelLinkMutations.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseLabelLinkMutations.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAOD,UAAU,uBAAuB;IAC7B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7E,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAoFxG"}
|
|
@@ -1,84 +0,0 @@
|
|
|
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 { useApolloClient, useMutation } from '@apollo/client/react';
|
|
11
|
-
import { CREATE_CASE_LABEL_LINK, DELETE_CASE_LABEL_LINK, fetchAllAccountCaseLabels, fetchAllCaseLabelLinksForCase, } from '@rh-support/utils';
|
|
12
|
-
import unescape from 'lodash/unescape';
|
|
13
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
14
|
-
const mapCaseLabelNode = (node) => {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
return ({
|
|
17
|
-
id: node.Id,
|
|
18
|
-
name: unescape((_b = (_a = node.Name) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ''),
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
export function useCaseLabelLinks(salesforceAccountId, caseId) {
|
|
22
|
-
const client = useApolloClient();
|
|
23
|
-
const [availableLabels, setAvailableLabels] = useState([]);
|
|
24
|
-
const [assignedLinks, setAssignedLinks] = useState([]);
|
|
25
|
-
const [loading, setLoading] = useState(false);
|
|
26
|
-
const [error, setError] = useState(undefined);
|
|
27
|
-
const fetchData = useCallback(() => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
if (!salesforceAccountId || !caseId)
|
|
29
|
-
return;
|
|
30
|
-
setLoading(true);
|
|
31
|
-
setError(undefined);
|
|
32
|
-
try {
|
|
33
|
-
const [labelNodes, linkNodes] = yield Promise.all([
|
|
34
|
-
fetchAllAccountCaseLabels(client, salesforceAccountId),
|
|
35
|
-
fetchAllCaseLabelLinksForCase(client, caseId),
|
|
36
|
-
]);
|
|
37
|
-
setAvailableLabels(labelNodes.map(mapCaseLabelNode).filter((l) => l.id && l.name));
|
|
38
|
-
setAssignedLinks(linkNodes
|
|
39
|
-
.filter((node) => { var _a; return node.Id && ((_a = node.Label__c) === null || _a === void 0 ? void 0 : _a.value); })
|
|
40
|
-
.map((node) => ({
|
|
41
|
-
linkId: node.Id,
|
|
42
|
-
labelId: node.Label__c.value,
|
|
43
|
-
})));
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
setError(e);
|
|
47
|
-
setAvailableLabels([]);
|
|
48
|
-
setAssignedLinks([]);
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
setLoading(false);
|
|
52
|
-
}
|
|
53
|
-
}), [client, salesforceAccountId, caseId]);
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
fetchData();
|
|
56
|
-
}, [fetchData]);
|
|
57
|
-
const [createMutate, { loading: createLoading }] = useMutation(CREATE_CASE_LABEL_LINK);
|
|
58
|
-
const createLink = useCallback((caseSfId, labelId) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
var _a, _b, _c, _d;
|
|
60
|
-
const result = yield createMutate({
|
|
61
|
-
variables: {
|
|
62
|
-
input: { RedHatSupportCaseLabelLink__c: { Case__c: caseSfId, Label__c: labelId } },
|
|
63
|
-
},
|
|
64
|
-
});
|
|
65
|
-
return (_d = (_c = (_b = (_a = result.data) === null || _a === void 0 ? void 0 : _a.redhat_support_uiapi) === null || _b === void 0 ? void 0 : _b.CaseLabelLink__cCreate) === null || _c === void 0 ? void 0 : _c.RedHatSupportRecord) === null || _d === void 0 ? void 0 : _d.Id;
|
|
66
|
-
}), [createMutate]);
|
|
67
|
-
const [deleteMutate, { loading: deleteLoading }] = useMutation(DELETE_CASE_LABEL_LINK);
|
|
68
|
-
const deleteLink = useCallback((linkId) => __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
yield deleteMutate({ variables: { id: linkId } });
|
|
70
|
-
}), [deleteMutate]);
|
|
71
|
-
const selectedLabelIds = assignedLinks.map((link) => link.labelId);
|
|
72
|
-
return {
|
|
73
|
-
availableLabels,
|
|
74
|
-
assignedLinks,
|
|
75
|
-
selectedLabelIds,
|
|
76
|
-
loading,
|
|
77
|
-
error,
|
|
78
|
-
mutating: createLoading || deleteLoading,
|
|
79
|
-
setAssignedLinks,
|
|
80
|
-
createLink,
|
|
81
|
-
deleteLink,
|
|
82
|
-
refetch: fetchData,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
export interface ISFStringValue {
|
|
2
|
-
stringValue: string;
|
|
3
|
-
}
|
|
4
|
-
export interface ISFBooleanValue {
|
|
5
|
-
booleanValue: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface ISFDoubleValue {
|
|
8
|
-
doubleValue: number;
|
|
9
|
-
}
|
|
10
|
-
export interface ISFDateTimeValue {
|
|
11
|
-
dateTimeValue: string;
|
|
12
|
-
}
|
|
13
|
-
export type SFValue = ISFStringValue | ISFBooleanValue | ISFDoubleValue | ISFDateTimeValue | null;
|
|
14
|
-
export interface ICaseHistoryNode {
|
|
15
|
-
Id: string;
|
|
16
|
-
RedHatSupportField: {
|
|
17
|
-
value: string;
|
|
18
|
-
displayValue: string | null;
|
|
19
|
-
label: string | null;
|
|
20
|
-
};
|
|
21
|
-
OldValue: SFValue;
|
|
22
|
-
NewValue: SFValue;
|
|
23
|
-
CreatedBy: {
|
|
24
|
-
Name: {
|
|
25
|
-
value: string;
|
|
26
|
-
};
|
|
27
|
-
UserType: {
|
|
28
|
-
value: string;
|
|
29
|
-
} | null;
|
|
30
|
-
SmallPhotoUrl: {
|
|
31
|
-
value: string | null;
|
|
32
|
-
} | null;
|
|
33
|
-
};
|
|
34
|
-
CreatedDate: {
|
|
35
|
-
value: string;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
export interface ICaseHistoryEdge {
|
|
39
|
-
node: ICaseHistoryNode;
|
|
40
|
-
}
|
|
41
|
-
export interface IGetCaseHistoryData {
|
|
42
|
-
redhat_support_uiapi: {
|
|
43
|
-
query: {
|
|
44
|
-
RedHatSupportCaseHistory: {
|
|
45
|
-
edges: ICaseHistoryEdge[];
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export interface IGetCaseHistoryVars {
|
|
51
|
-
caseId: string;
|
|
52
|
-
first?: number;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Normalized representation of a single Salesforce case history entry.
|
|
56
|
-
*
|
|
57
|
-
* Discriminated on `type`:
|
|
58
|
-
* - `'Action'` — lifecycle events (created, closed, owner transfer) where no field
|
|
59
|
-
* value changed. `outputText` contains the human-readable sentence.
|
|
60
|
-
* - `'Change'` — field-value mutations. `outputText` is empty; the Timeline layer
|
|
61
|
-
* formats display text via `applyReplacements` / `handleFieldChange`.
|
|
62
|
-
*/
|
|
63
|
-
export interface ICaseHistoryItem {
|
|
64
|
-
id: string;
|
|
65
|
-
/** Raw Salesforce API field name (e.g. `Status`, `Case_Language__c`, `created`). */
|
|
66
|
-
fieldName: string;
|
|
67
|
-
/** Resolved human-readable label for the field (from FIELD_NAME_DISPLAY_MAP, SF label, or displayValue). */
|
|
68
|
-
displayName: string;
|
|
69
|
-
label: string | null;
|
|
70
|
-
oldValue: string | null;
|
|
71
|
-
newValue: string | null;
|
|
72
|
-
createdDate: string;
|
|
73
|
-
createdByUserName: string;
|
|
74
|
-
createdByCustomer: boolean;
|
|
75
|
-
photoUrl: string | null;
|
|
76
|
-
type: 'Action' | 'Change';
|
|
77
|
-
/** Pre-built sentence for Action items (e.g. "created the case"); empty for Change items. */
|
|
78
|
-
outputText: string;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=caseHistory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caseHistory.d.ts","sourceRoot":"","sources":["../../../src/models/caseHistory.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAElG,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzF,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE;QACP,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACxB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACnC,aAAa,EAAE;YAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KAClD,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAChC,oBAAoB,EAAE;QAClB,KAAK,EAAE;YACH,wBAAwB,EAAE;gBACtB,KAAK,EAAE,gBAAgB,EAAE,CAAC;aAC7B,CAAC;SACL,CAAC;KACL,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,4GAA4G;IAC5G,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,6FAA6F;IAC7F,UAAU,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export interface IHistoryChangeItem {
|
|
2
|
-
fieldName: string;
|
|
3
|
-
displayName?: string;
|
|
4
|
-
oldValue?: string | null;
|
|
5
|
-
newValue?: string | boolean | null;
|
|
6
|
-
createdByUserName?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const MULTI_SELECT_FIELDS: string[];
|
|
9
|
-
export declare const LANGUAGE_CODE_MAPPING: Record<string, string>;
|
|
10
|
-
/**
|
|
11
|
-
* Maps `displayName` values (from `normalizeNodeToHistoryItem`, not raw SF API names)
|
|
12
|
-
* to camelCase property prefixes used for hydrated lookup properties on history items.
|
|
13
|
-
* E.g. key `"Product"` → prefix `"product"` → looks up `productNewName`, `productOldName`.
|
|
14
|
-
*/
|
|
15
|
-
export declare const KEY_MAP: Record<string, string>;
|
|
16
|
-
export declare const formatMultiSelectChange: (fieldName: string, oldValue: string, newValue: string) => string;
|
|
17
|
-
/**
|
|
18
|
-
* Generates human-readable text for a field change based on which values are present:
|
|
19
|
-
* - Both values present → "changed X from A to B" (multiselect fields get add/remove diffing)
|
|
20
|
-
* - Only newValue → "set X to B"
|
|
21
|
-
* - Only oldValue (newValue is undefined or empty) → "removed X, was A"
|
|
22
|
-
* - None of the above but `item.newValue` exists → fallback for cases where the resolved
|
|
23
|
-
* display string on the item differs from the `newValue` parameter passed in
|
|
24
|
-
*/
|
|
25
|
-
export declare const formatDefaultChange: (item: IHistoryChangeItem, fieldName: string, oldValue: string, newValue: string) => string;
|
|
26
|
-
/**
|
|
27
|
-
* Field-specific formatting for history change text. Each case handles a SF field
|
|
28
|
-
* whose raw values need special treatment before display.
|
|
29
|
-
*/
|
|
30
|
-
export declare const handleFieldChange: (item: IHistoryChangeItem, fieldName: string, oldValue: string, newValue: string) => string;
|
|
31
|
-
/**
|
|
32
|
-
* Post-processes formatted change text.
|
|
33
|
-
*
|
|
34
|
-
* - Boolean special case: SF boolean history entries can carry a raw `boolean` newValue
|
|
35
|
-
* even after `extractStringValue` stringifies it. When the item's `newValue` is still
|
|
36
|
-
* a boolean at this point, we generate dedicated text to avoid displaying "true"/"false".
|
|
37
|
-
* - String replacements remap legacy SF display names to current UI terminology
|
|
38
|
-
* ("Problem Statement" → "Title", "Case Type" → "Support Type").
|
|
39
|
-
*/
|
|
40
|
-
export declare const applyPostProcessing: (text: string, item: IHistoryChangeItem) => string;
|
|
41
|
-
//# sourceMappingURL=TimelineUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimelineUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/TimelineUtils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,eAAO,MAAM,mBAAmB,UAAmB,CAAC;AAEpD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAexD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,EAAE,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,MAgB/F,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC5B,MAAM,kBAAkB,EACxB,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAU,MAAM,KACjB,MAiBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC1B,MAAM,kBAAkB,EACxB,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,UAAU,MAAM,KACjB,MA+BF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,MAAM,kBAAkB,KAAG,MAM5E,CAAC"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { getFieldDisplayName } from './caseHistoryUtils';
|
|
2
|
-
// https://help.salesforce.com/s/articleView?id=000384484&type=1
|
|
3
|
-
// Adding in option for multiselect fields provided by salesforce.
|
|
4
|
-
// In future for more multiselect fields just add to below array.
|
|
5
|
-
// SF delimits multiselect picklist values with semicolons (`;`).
|
|
6
|
-
export const MULTI_SELECT_FIELDS = ['SBR_Group__c'];
|
|
7
|
-
export const LANGUAGE_CODE_MAPPING = {
|
|
8
|
-
de: 'German',
|
|
9
|
-
en: 'English',
|
|
10
|
-
es: 'Spanish',
|
|
11
|
-
fr: 'French',
|
|
12
|
-
it: 'Italian',
|
|
13
|
-
pt: 'Portuguese',
|
|
14
|
-
pt_BR: 'Portuguese',
|
|
15
|
-
ko: 'Korean',
|
|
16
|
-
ja: 'Japanese',
|
|
17
|
-
zh: 'Chinese',
|
|
18
|
-
zh_CN: 'Chinese',
|
|
19
|
-
zh_HK: 'Chinese (Hong Kong)',
|
|
20
|
-
zh_TW: 'Chinese (Taiwan)',
|
|
21
|
-
ru: 'Russian',
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Maps `displayName` values (from `normalizeNodeToHistoryItem`, not raw SF API names)
|
|
25
|
-
* to camelCase property prefixes used for hydrated lookup properties on history items.
|
|
26
|
-
* E.g. key `"Product"` → prefix `"product"` → looks up `productNewName`, `productOldName`.
|
|
27
|
-
*/
|
|
28
|
-
export const KEY_MAP = {
|
|
29
|
-
Product: 'product',
|
|
30
|
-
Version: 'version',
|
|
31
|
-
Account: 'account',
|
|
32
|
-
Contact: 'contact',
|
|
33
|
-
Entitlement: 'entitlement',
|
|
34
|
-
'Business Hours': 'businessHours',
|
|
35
|
-
Owner: 'queueNameOwner',
|
|
36
|
-
'Customer Escalation': 'customerEscalation',
|
|
37
|
-
'Case Group': 'caseGroup',
|
|
38
|
-
'SLA Start Date': 'slaStartDate',
|
|
39
|
-
'Case Language': 'caseLanguage',
|
|
40
|
-
};
|
|
41
|
-
export const formatMultiSelectChange = (fieldName, oldValue, newValue) => {
|
|
42
|
-
const oldValues = oldValue.split(';').map((s) => s.trim());
|
|
43
|
-
const newValues = newValue.split(';').map((s) => s.trim());
|
|
44
|
-
const added = newValues.filter((nv) => !oldValues.includes(nv));
|
|
45
|
-
const removed = oldValues.filter((ov) => !newValues.includes(ov));
|
|
46
|
-
if (added.length > 0 && removed.length === 0) {
|
|
47
|
-
return `added ${added.join(', ')} to ${fieldName}`;
|
|
48
|
-
}
|
|
49
|
-
if (removed.length > 0 && added.length === 0) {
|
|
50
|
-
return `removed ${removed.join(', ')} from ${fieldName}`;
|
|
51
|
-
}
|
|
52
|
-
if (added.length > 0 && removed.length > 0) {
|
|
53
|
-
return `changed ${fieldName}, added ${added.join(', ')} and removed ${removed.join(', ')}`;
|
|
54
|
-
}
|
|
55
|
-
return `changed ${fieldName} from ${oldValue} to ${newValue}`;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Generates human-readable text for a field change based on which values are present:
|
|
59
|
-
* - Both values present → "changed X from A to B" (multiselect fields get add/remove diffing)
|
|
60
|
-
* - Only newValue → "set X to B"
|
|
61
|
-
* - Only oldValue (newValue is undefined or empty) → "removed X, was A"
|
|
62
|
-
* - None of the above but `item.newValue` exists → fallback for cases where the resolved
|
|
63
|
-
* display string on the item differs from the `newValue` parameter passed in
|
|
64
|
-
*/
|
|
65
|
-
export const formatDefaultChange = (item, fieldName, oldValue, newValue) => {
|
|
66
|
-
if (oldValue && newValue) {
|
|
67
|
-
if (MULTI_SELECT_FIELDS.includes(item.fieldName)) {
|
|
68
|
-
return formatMultiSelectChange(fieldName, oldValue, newValue);
|
|
69
|
-
}
|
|
70
|
-
return `changed ${fieldName} from ${oldValue} to ${newValue}`;
|
|
71
|
-
}
|
|
72
|
-
if (newValue) {
|
|
73
|
-
return `set ${fieldName} to ${newValue}`;
|
|
74
|
-
}
|
|
75
|
-
if (oldValue && (newValue === undefined || newValue === '')) {
|
|
76
|
-
return `removed ${fieldName}, was ${oldValue}`;
|
|
77
|
-
}
|
|
78
|
-
if (item.newValue !== undefined) {
|
|
79
|
-
return `set ${fieldName} to ${item.newValue}`;
|
|
80
|
-
}
|
|
81
|
-
return '';
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Field-specific formatting for history change text. Each case handles a SF field
|
|
85
|
-
* whose raw values need special treatment before display.
|
|
86
|
-
*/
|
|
87
|
-
export const handleFieldChange = (item, fieldName, oldValue, newValue) => {
|
|
88
|
-
var _a, _b;
|
|
89
|
-
switch (item.fieldName) {
|
|
90
|
-
// Raw values are ISO 639-1 language codes; expand via LANGUAGE_CODE_MAPPING.
|
|
91
|
-
case 'Case_Language__c': {
|
|
92
|
-
const newVal = String((_a = item.newValue) !== null && _a !== void 0 ? _a : '');
|
|
93
|
-
const oldVal = String((_b = item.oldValue) !== null && _b !== void 0 ? _b : '');
|
|
94
|
-
const newLanguage = LANGUAGE_CODE_MAPPING[newVal] || newVal;
|
|
95
|
-
const oldLanguage = LANGUAGE_CODE_MAPPING[oldVal] || oldVal;
|
|
96
|
-
return oldVal && newVal
|
|
97
|
-
? `changed ${fieldName} from ${oldLanguage} to ${newLanguage}`
|
|
98
|
-
: `set ${fieldName} to ${newLanguage || 'empty'}`;
|
|
99
|
-
}
|
|
100
|
-
// Raw SFDC IDs were already filtered by filterSfdcIdEntries; this handles the
|
|
101
|
-
// resolved-name path and uses createdByUserName as the display value.
|
|
102
|
-
case 'OwnerId':
|
|
103
|
-
return item.createdByUserName ? `set ${fieldName} to ${item.createdByUserName}` : '';
|
|
104
|
-
case 'Status':
|
|
105
|
-
return item.oldValue && item.newValue
|
|
106
|
-
? `changed ${fieldName} from ${item.oldValue} to ${item.newValue}`
|
|
107
|
-
: `set ${fieldName} to ${item.newValue || 'empty'}`;
|
|
108
|
-
// Boolean toggle → human sentence; only reports when a user name is available.
|
|
109
|
-
case 'Customer_Escalation__c':
|
|
110
|
-
return item.createdByUserName ? 'started Escalation for this ticket' : '';
|
|
111
|
-
case 'SlaStartDate':
|
|
112
|
-
return item.newValue ? `set ${fieldName} to ${item.newValue}` : '';
|
|
113
|
-
// Field value is a user ID, not a label — hardcoded string avoids displaying a raw ID.
|
|
114
|
-
case 'RemoteSessionTermsAckedBy__c':
|
|
115
|
-
return 'Acked Remote Rider terms';
|
|
116
|
-
default:
|
|
117
|
-
return formatDefaultChange(item, fieldName, oldValue, newValue);
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* Post-processes formatted change text.
|
|
122
|
-
*
|
|
123
|
-
* - Boolean special case: SF boolean history entries can carry a raw `boolean` newValue
|
|
124
|
-
* even after `extractStringValue` stringifies it. When the item's `newValue` is still
|
|
125
|
-
* a boolean at this point, we generate dedicated text to avoid displaying "true"/"false".
|
|
126
|
-
* - String replacements remap legacy SF display names to current UI terminology
|
|
127
|
-
* ("Problem Statement" → "Title", "Case Type" → "Support Type").
|
|
128
|
-
*/
|
|
129
|
-
export const applyPostProcessing = (text, item) => {
|
|
130
|
-
if (typeof item.newValue === 'boolean') {
|
|
131
|
-
const fieldName = item.displayName || getFieldDisplayName(item.fieldName);
|
|
132
|
-
return `set ${fieldName} to ${item.newValue}`;
|
|
133
|
-
}
|
|
134
|
-
return text.replaceAll('Problem Statement', 'Title').replaceAll('Case Type', 'Support Type');
|
|
135
|
-
};
|