@rh-support/troubleshoot 2.7.1 → 2.32.2-prodBackup
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.js +4 -4
- package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +38 -33
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +70 -58
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +50 -14
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +45 -30
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +7 -16
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +10 -9
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +28 -23
- 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/CaseSolutions/HandpicketItem.js +3 -3
- package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +51 -35
- package/lib/esm/components/CaseEditView/PDFContainer.js +19 -15
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +33 -16
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +13 -16
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +50 -42
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +33 -16
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +53 -48
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +7 -7
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +5 -8
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.js +3 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts +1 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +19 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +6 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +26 -18
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +27 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +5 -8
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +5 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +4 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +4 -6
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.js +2 -3
- package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseGroup.js +1 -2
- package/lib/esm/components/CaseInformation/CaseInformation.js +3 -3
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +1 -1
- package/lib/esm/components/CaseInformation/Description.js +4 -4
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +8 -8
- package/lib/esm/components/CaseInformation/OpenCaseIssue.js +2 -2
- package/lib/esm/components/CaseInformation/Severity.js +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +16 -10
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +14 -11
- package/lib/esm/components/CaseManagement/CaseManagement.js +4 -4
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +44 -41
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +50 -42
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +39 -63
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +0 -3
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +80 -46
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +8 -6
- package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.js +8 -8
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +19 -21
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +11 -8
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +55 -21
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +12 -27
- package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.d.ts.map +1 -1
- package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.js +1 -1
- package/lib/esm/components/Cve/CveItem.d.ts.map +1 -1
- package/lib/esm/components/Cve/CveItem.js +10 -11
- package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
- package/lib/esm/components/Cve/CveModal.js +11 -11
- package/lib/esm/components/Cve/CvePanel.d.ts.map +1 -1
- package/lib/esm/components/Cve/CvePanel.js +3 -3
- package/lib/esm/components/Cve/CveSidebar.js +2 -2
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +7 -7
- package/lib/esm/components/ImproveCase/KtQuestions.js +6 -6
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +6 -13
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +12 -8
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +83 -47
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +14 -10
- package/lib/esm/components/ProductSelector/ProductSelector.js +1 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +4 -4
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +6 -4
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +10 -11
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +6 -4
- package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +7 -7
- package/lib/esm/components/Recommendations/InsightsResults.js +2 -2
- package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +23 -16
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +7 -7
- package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RecommendationInfoBox.js +7 -7
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +23 -20
- package/lib/esm/components/Recommendations/RecommendationsLoader.js +1 -1
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +10 -12
- package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/WatsonxAiIcon.js +9 -10
- package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
- package/lib/esm/components/Review/Review.js +4 -4
- package/lib/esm/components/SessionRestore/RestoreLastSessionModal.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/RestoreLastSessionModal.js +7 -5
- package/lib/esm/components/SessionRestore/SessionRestore.js +1 -1
- package/lib/esm/components/SessionRestore/SessionRestoreCard.js +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +21 -21
- package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/Suggestions.js +19 -14
- package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/TopContent.js +16 -16
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +13 -14
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +20 -16
- package/lib/esm/components/shared/Rule.js +6 -6
- package/lib/esm/components/shared/fileUpload/FileLister.js +6 -6
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +7 -6
- package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
- package/lib/esm/components/shared/fileUpload/css/fileSelector.css +2 -0
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +4 -4
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +2 -2
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +16 -6
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
- package/lib/esm/components/shared/input/ContactSelectorInternal.js +133 -23
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +60 -4
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +8 -2
- package/lib/esm/components/wizardLayout/MainSection.js +2 -2
- package/lib/esm/components/wizardLayout/NewFeatureModal.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/NewFeatureModal.js +6 -6
- package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +62 -19
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -2
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +21 -22
- package/lib/esm/css/app.css +18 -17
- package/lib/esm/css/case.css +62 -22
- package/lib/esm/css/results.css +2 -2
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +1 -3
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +2 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts +1 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/RouteConstNTypes.js +2 -0
- package/lib/esm/reducers/RulesReducer.d.ts.map +1 -1
- package/lib/esm/scss/_main.scss +251 -94
- package/lib/esm/scss/_pf-overrides.scss +186 -149
- package/package.json +11 -11
|
@@ -11,7 +11,7 @@ import { kase } from '@cee-eng/hydrajs';
|
|
|
11
11
|
import { PromisifyModal, ToastNotification, useFetch } from '@rh-support/components';
|
|
12
12
|
import { fetchAccountCustomEmails, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
|
|
13
13
|
import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
14
|
-
import { haventLoadedMetadata, isEmailValid
|
|
14
|
+
import { haventLoadedMetadata, isEmailValid } from '@rh-support/utils';
|
|
15
15
|
import findIndex from 'lodash/findIndex';
|
|
16
16
|
import isEmpty from 'lodash/isEmpty';
|
|
17
17
|
import isEqual from 'lodash/isEqual';
|
|
@@ -44,7 +44,7 @@ export function useCustomEmails(props) {
|
|
|
44
44
|
});
|
|
45
45
|
const addCustomEmail = (emailVal_1, onAdd_1, ...args_1) => __awaiter(this, [emailVal_1, onAdd_1, ...args_1], void 0, function* (emailVal, onAdd, skipAccountCheck = false) {
|
|
46
46
|
try {
|
|
47
|
-
if (isEmpty(emailVal) || !
|
|
47
|
+
if (isEmpty(emailVal) || !isEmailValid(emailVal)) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
// lower case the email vals to avoid sfdc error
|
|
@@ -112,7 +112,6 @@ export function useCustomEmails(props) {
|
|
|
112
112
|
canAddCustomEmail,
|
|
113
113
|
hideCustomEmails,
|
|
114
114
|
isEmailValid,
|
|
115
|
-
isEmailValidForCaseContactSelector,
|
|
116
115
|
isUpdatingCustomEmails: deleteEmail.isFetching || addNewEmail.isFetching,
|
|
117
116
|
showAddEmailToAccountModal,
|
|
118
117
|
};
|
|
@@ -123,7 +123,7 @@ const CaseAttachment = React.forwardRef((props, ref) => {
|
|
|
123
123
|
return (React.createElement("section", { ref: ref, id: props.attachment.id, className: `prevent-split support-comment comment-attachment ${!isCardIsDeleted ? 'showcard' : ''} ${ref ? 'selected-case-comment' : ''} ${props.attachment.isPrivate ? 'private' : ''}` },
|
|
124
124
|
React.createElement("header", null,
|
|
125
125
|
React.createElement("h4", null,
|
|
126
|
-
React.createElement(Icon, { className: "pf-
|
|
126
|
+
React.createElement(Icon, { className: "pf-v6-u-mr-xs" },
|
|
127
127
|
React.createElement(PaperclipIcon, null)),
|
|
128
128
|
props.attachment.modifiedBy),
|
|
129
129
|
React.createElement("time", { className: "text-right" }, formatDateTime(props.attachment.lastModifiedDate))),
|
|
@@ -150,7 +150,7 @@ const CaseAttachment = React.forwardRef((props, ref) => {
|
|
|
150
150
|
React.createElement(Trans, null, maxCaseAttachmentDescription))),
|
|
151
151
|
React.createElement("footer", null,
|
|
152
152
|
React.createElement("span", { className: "comment-note" }, props.attachment.isPrivate && React.createElement(Trans, null, "Private attachment")),
|
|
153
|
-
React.createElement("span", { className: "pull-right pf-
|
|
153
|
+
React.createElement("span", { className: "pull-right pf-v6-l-flex pf-m-align-items-center" },
|
|
154
154
|
props.showJumpToComment && (React.createElement(DiscussionItemLink, { onClick: onJumpToComment(props.attachment.id), discussionType: DiscussionType.ATTACHMENT, itemId: props.attachment.id, caseNumber: props.attachment.caseNumber, isCopyLink: false },
|
|
155
155
|
React.createElement(Trans, null, "Jump to attachment"))),
|
|
156
156
|
React.createElement("button", { className: `btn btn-app btn-link text-danger ${isExportingPDF ? 'hide-in-pdf' : ''}`, title: "Delete attachment", onClick: deleteAttachment(props.attachment), "data-tracking-id": "delete-attachmentid-button", type: "button" },
|
|
@@ -24,7 +24,7 @@ const CaseChat = React.forwardRef((props, ref) => {
|
|
|
24
24
|
{ visitorName: props.chat.visitorName }),
|
|
25
25
|
React.createElement("p", { className: "push-top-narrow", dangerouslySetInnerHTML: sanetize(props.chat.body) })),
|
|
26
26
|
React.createElement("footer", null,
|
|
27
|
-
React.createElement("span", { className: "pf-
|
|
27
|
+
React.createElement("span", { className: "pf-v6-u-ml-auto pf-v6-l-flex pf-m-align-items-center" },
|
|
28
28
|
props.showJumpToComment && (React.createElement(DiscussionItemLink, { onClick: onJumpToComment(props.chat.id), discussionType: DiscussionType.CHAT, itemId: props.chat.id, caseNumber: caseNumber, isCopyLink: false },
|
|
29
29
|
React.createElement(Trans, null, "Jump to comment"))),
|
|
30
30
|
React.createElement(JumpAndCopyLink, { caseNumber: caseNumber, cardId: props.chat.id, discussionType: DiscussionType.CHAT })))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseComments.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AA+BvE,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAChH;AAED,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"CaseComments.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AA+BvE,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAChH;AAED,QAAA,MAAM,YAAY,4EAiXhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -137,10 +137,27 @@ const CaseComments = React.forwardRef((props, ref) => {
|
|
|
137
137
|
const commentText = (text) => {
|
|
138
138
|
return { __html: DOMPurify.sanitize(text) };
|
|
139
139
|
};
|
|
140
|
+
// Transforms <strong> and <em> tags in HTML string to styled <span> tags to fix incorrect bold/italic rendering in exported PDF
|
|
141
|
+
function formatMarkdownHtmlForPDF(htmlString) {
|
|
142
|
+
return (htmlString
|
|
143
|
+
// Handle nested <strong><em>...</em></strong> or <em><strong>...</strong></em> and apply both bold and italic (skew) styles
|
|
144
|
+
.replace(/<(strong|em)>\s*<(em|strong)>(.*?)<\/\2>\s*<\/\1>/gi, '<span style="font-weight: bold; font-size: 0.95em; font-style: italic;">$3</span>')
|
|
145
|
+
// Handle standalone <strong>
|
|
146
|
+
.replace(/<strong>(.*?)<\/strong>/gi, '<span style="font-weight: bold; font-size: 0.95em; margin-right: -10px;">$1</span>')
|
|
147
|
+
// Handle standalone <em>
|
|
148
|
+
.replace(/<em>(.*?)<\/em>/gi, '<span style="font-style: italic;font-size: 0.95em; opacity: 0.70;margin-right: 7px;">$1</span>')
|
|
149
|
+
// Replace list items with dash bullets
|
|
150
|
+
.replace(/<li>(.*?)<\/li>/gi, '<div style="margin-left: 1.2em;">- $1</div>')
|
|
151
|
+
// Remove <ul> and </ul> tags completely
|
|
152
|
+
.replace(/<\/?ul>/gi, ''));
|
|
153
|
+
}
|
|
140
154
|
const commentMarkdown = (markdown) => {
|
|
141
|
-
|
|
155
|
+
let htmlString = parseCommentMarkdown(markdown, { showButtonForAttachmentLink: true, disableImagePreview: isExportingPDF },
|
|
142
156
|
// @ts-ignore
|
|
143
157
|
{ openLinksInNewTab: true, gfm: true, breaks: true });
|
|
158
|
+
if (isExportingPDF) {
|
|
159
|
+
htmlString = formatMarkdownHtmlForPDF(htmlString);
|
|
160
|
+
}
|
|
144
161
|
return { __html: DOMPurify.sanitize(htmlString) };
|
|
145
162
|
};
|
|
146
163
|
const onCommentAreaClick = (e) => {
|
|
@@ -221,7 +238,7 @@ const CaseComments = React.forwardRef((props, ref) => {
|
|
|
221
238
|
React.createElement("footer", null,
|
|
222
239
|
React.createElement("span", { className: "comment-note" }, computeCommentFooter(props.comment)),
|
|
223
240
|
canSeeFeedbackButtons && commentFeedbackButtons(props.comment, props.feedback),
|
|
224
|
-
React.createElement("span", { className: "pull-right pf-
|
|
241
|
+
React.createElement("span", { className: "pull-right pf-v6-l-flex pf-m-align-items-center" },
|
|
225
242
|
props.showJumpToComment && (React.createElement(DiscussionItemLink, { onClick: onJumpToComment(props.comment.id), discussionType: DiscussionType.COMMENT, itemId: props.comment.id, caseNumber: caseNumber, isCopyLink: false },
|
|
226
243
|
React.createElement(Trans, null, "Jump to comment"))),
|
|
227
244
|
React.createElement("button", { onClick: commentReply(props.comment), className: `btn btn-app btn-link case-reply-button ${isExportingPDF ? 'hide-in-pdf' : ''}`, "data-tracking-id": "case-comment-reply", type: "button" },
|
|
@@ -395,11 +395,11 @@ export default function CaseDiscussion(props) {
|
|
|
395
395
|
React.createElement("div", { className: `pfe-l-grid pfe-m-all-6-col pfe-m-gutters push-bottom ${isExportingPDF ? 'hide-in-pdf' : ''}` },
|
|
396
396
|
React.createElement("div", { className: "pfe-m-12-col" }, allDiscussions.length > 20 && (React.createElement(CommentSearch, { caseDiscussions: computeFilteredComments || [], onCommentSearch: onCaseCommentSearch, isCommentSearchCleared: isCommentSearchCleared }))),
|
|
397
397
|
React.createElement("span", { className: "push-top-narrow" },
|
|
398
|
-
React.createElement("label", { htmlFor: "case-list-comments-dropdown", className: "pf-
|
|
398
|
+
React.createElement("label", { htmlFor: "case-list-comments-dropdown", className: "pf-v6-u-mb-sm" }, t('Filter by')),
|
|
399
399
|
React.createElement(Select, { "data-tracking-id": "discussions-filter-comments-dropdown", id: "case-list-comments-dropdown", role: "menu", isOpen: isOpen, selected: selectedFilterItems, onSelect: onFilterSelect, onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, popperProps: { direction: 'down', enableFlip: false }, zIndex: 9 },
|
|
400
400
|
React.createElement(SelectList, null, list.map((option) => (React.createElement(SelectOption, { hasCheckbox: true, value: option, isSelected: option.isSelected, isDisabled: option.isDisabled }, option.filterLabel)))))),
|
|
401
401
|
React.createElement("span", { className: "push-top-narrow" },
|
|
402
|
-
React.createElement("label", { htmlFor: "se-discussion-sort", className: "pf-
|
|
402
|
+
React.createElement("label", { htmlFor: "se-discussion-sort", className: "pf-v6-u-mb-sm" }, t('Sort by')),
|
|
403
403
|
React.createElement(Select, { id: "se-discussion-sort", "data-tracking-id": "discussions-sort-dropdown", isOpen: isSortOpen, selected: sortSelected, onSelect: onSortSelect, onOpenChange: (isSortOpen) => setIsSortOpen(isSortOpen), toggle: onSortToggle, shouldFocusToggleOnSelect: true, popperProps: { direction: 'down', enableFlip: false }, zIndex: 9 },
|
|
404
404
|
React.createElement(SelectList, null, discussionSortOrderConst.map((option) => (React.createElement(SelectOption, { value: option, isSelected: isEqual(sort.name, option.name) }, option.name))))))),
|
|
405
405
|
React.createElement("div", { className: "support-comment-section" }, !shouldRenderRVComponent &&
|
|
@@ -46,7 +46,7 @@ const CaseExternalTrackerUpdate = React.forwardRef((props, ref) => {
|
|
|
46
46
|
React.createElement(Trans, null, " External tracker"))))))),
|
|
47
47
|
!isPrivateUpdate() && props.trackerUpdate.customerVisible && (React.createElement("div", { className: "comment-note external-tracker-label" },
|
|
48
48
|
React.createElement(Trans, null, "External tracker"))),
|
|
49
|
-
React.createElement("span", { className: "pull-right pf-
|
|
49
|
+
React.createElement("span", { className: "pull-right pf-v6-l-flex pf-m-align-items-center" },
|
|
50
50
|
props.showJumpToComment && (React.createElement(DiscussionItemLink, { onClick: onJumpToComment(props.trackerUpdate.id), discussionType: DiscussionType.EXTERNAL_TRACKER, itemId: props.trackerUpdate.id, caseNumber: caseNumber, isCopyLink: false },
|
|
51
51
|
React.createElement(Trans, null, "Jump to comment"))),
|
|
52
52
|
React.createElement(JumpAndCopyLink, { caseNumber: caseNumber, cardId: props.trackerUpdate.id, discussionType: DiscussionType.EXTERNAL_TRACKER })))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5F,UAAU,MAAM;IACZ,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CommentSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5F,UAAU,MAAM;IACZ,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBAoG1C"}
|
|
@@ -82,9 +82,8 @@ export function CommentSearch(props) {
|
|
|
82
82
|
props.isCommentSearchCleared && !isEmpty(searchValue) && setSearchValue('');
|
|
83
83
|
return (React.createElement("form", { onSubmit: handleSubmit },
|
|
84
84
|
React.createElement("div", { className: "case-comment-input-container", "data-tracking-id": "case-comment-search" },
|
|
85
|
-
React.createElement(TextInput, { type: "search", value: searchValue, className: "pf-
|
|
86
|
-
searchValue && (React.createElement(Button, { onClick: clearSearchVal, className: "clear-btn", variant: "plain", "data-tracking-id": "case-comment-search-clear-button", "aria-label": t('Clear this search') },
|
|
87
|
-
React.createElement(TimesIcon, null))),
|
|
85
|
+
React.createElement(TextInput, { type: "search", value: searchValue, className: "pf-v6-u-mr-lg", placeholder: t('Search for a comment'), id: "case-comment-search", "aria-label": t('Search for a comment'), onChange: (_event, value) => onSearchValChange(value), "data-tracking-id": "case-comment-search-input" }),
|
|
86
|
+
searchValue && (React.createElement(Button, { icon: React.createElement(TimesIcon, null), onClick: clearSearchVal, className: "clear-btn", variant: "plain", "data-tracking-id": "case-comment-search-clear-button", "aria-label": t('Clear this search') })),
|
|
88
87
|
React.createElement(Button, { variant: "secondary", type: "submit", "data-tracking-id": "case-comment-search-button" },
|
|
89
88
|
React.createElement(Trans, null, "Search")))));
|
|
90
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBA8iBxC"}
|
|
@@ -328,7 +328,7 @@ export function PostComment(props) {
|
|
|
328
328
|
isCommentEmpty ||
|
|
329
329
|
isPostCommentDisabled ||
|
|
330
330
|
(isConfirmedStateSideSupport && !cssCommentAgreed);
|
|
331
|
-
return (React.createElement("div", { className: `pf-
|
|
331
|
+
return (React.createElement("div", { className: `pf-v6-u-mb-md ${isExportingPDF ? 'hide-in-pdf' : ''}`, ref: componentRef },
|
|
332
332
|
React.createElement(MarkdownEditor, { className: `${!isPublic && canPostPrivateComments ? 'is-private' : ''}`, disabled: isProcessing || canEditCase.isCaseNotEditable, "aria-label": "comment text area", showMarkdownPlainTextToggle: true, editorMode: commentType, onFocus: () => setIsTextAreaFocused(true), onBlur: onTextAreaBlur, onChange: onCommentTextChange, value: commentText, rows: isTextAreaFocused ? 12 : 4, bindTextArea: textAreaRef, onCommentExceedCharsLimit: onCommentExceedCharsLimit, mdPlaceholder: isPublic || !canPostPrivateComments
|
|
333
333
|
? 'Add a comment using markdown'
|
|
334
334
|
: 'Add a comment or attach a file privately', plainTextPlaceholder: isPublic || !canPostPrivateComments
|
|
@@ -343,22 +343,22 @@ export function PostComment(props) {
|
|
|
343
343
|
isUploadingFile: isMarkdownFileUploadInProgress,
|
|
344
344
|
onClipboardPaste,
|
|
345
345
|
} }),
|
|
346
|
-
isConfirmedStateSideSupport && (React.createElement("div", { className: "pf-
|
|
346
|
+
isConfirmedStateSideSupport && (React.createElement("div", { className: "pf-v6-u-mt-md pf-v6-u-mb-lg" },
|
|
347
347
|
React.createElement("input", { type: "checkbox", id: "css-case-comment-agreement", name: "css-case-comment-agreement", "data-tracking-id": "css-case-comment-agreement", checked: cssCommentAgreed, onChange: (e) => setCssCommentAgreed(e.target.checked) }),
|
|
348
|
-
React.createElement("label", { htmlFor: "css-case-comment-agreement", className: "pf-
|
|
348
|
+
React.createElement("label", { htmlFor: "css-case-comment-agreement", className: "pf-v6-u-font-weight-normal pf-v6-u-font-size-sm" },
|
|
349
349
|
React.createElement(Trans, null, "I will not transmit controlled unclassified information to or export it from the Red Hat Customer Portal."),
|
|
350
350
|
React.createElement("span", { className: "form-required", "aria-hidden": "true" }, "*")))),
|
|
351
|
-
isProcessing ? (React.createElement(LoadingIndicator, { isInline: true, size: "sm" })) : (React.createElement("div", { className: "pf-
|
|
351
|
+
isProcessing ? (React.createElement(LoadingIndicator, { isInline: true, size: "sm" })) : (React.createElement("div", { className: "pf-v6-l-flex post-comment-btn-group push-top-narrow" },
|
|
352
352
|
isModalOpen && loggedInUserRights.data.isInternal() && isPublic && (React.createElement(VerifyCaseStatusModal, { onClose: onCancel, onConfirm: onConfirm, isUpdating: isPostingComment, caseNumber: props.caseNumber })),
|
|
353
353
|
React.createElement(Button, { "data-tracking-id": "postcomment-submit-button", type: "button", variant: ButtonVariant.primary, onClick: loggedInUser.data.isInternal && isPublic ? onBtnClick : isNotInternalConfirm, isDisabled: isSubmitDisabled, className: "postcomment-submit" },
|
|
354
354
|
React.createElement(Trans, null, "Submit")),
|
|
355
355
|
canAddAttachments &&
|
|
356
356
|
(isPublic && canPostPrivateComments ? (React.createElement(Tooltip, { content: t('You can attach files privately') }, fileUploadButton)) : (fileUploadButton)),
|
|
357
|
-
React.createElement(Button, { "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
|
|
357
|
+
React.createElement(Button, { className: "secondary-button-pill", "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
|
|
358
358
|
React.createElement(Trans, null, "Cancel")),
|
|
359
359
|
canPostPrivateComments && (React.createElement("span", { className: "post-comment-checkbox" },
|
|
360
360
|
React.createElement(Checkbox, { label: t('Private'), isChecked: !isPublic && canPostPrivateComments, onChange: handleCheckboxToggle, "aria-label": t('Private'), id: "private-comment", name: "private-comment", "data-tracking-id": "private-comment-checkbox" }))))),
|
|
361
|
-
React.createElement(FileUpload, { className: `file-upload-section ${hasSomeSelectedFilesLocal ? 'card card-white pf-
|
|
361
|
+
React.createElement(FileUpload, { className: `file-upload-section ${hasSomeSelectedFilesLocal ? 'card card-white pf-v6-u-mt-lg pf-v6-u-p-lg' : ''}`, idToUploadTo: caseNumber, onUploadClick: onFileUploadClick, isSessionId: false, isSecureSupport: loggedInUsersAccount.data.secureSupport, isPrivate: !isPublic, autoUploadOnSelect: true, showDescriptionInfoMsg: true }),
|
|
362
362
|
React.createElement("span", Object.assign({}, getRootProps(), { tabIndex: -1 }),
|
|
363
363
|
React.createElement("input", Object.assign({ style: { display: 'none !important' } }, getInputProps()))),
|
|
364
364
|
!loggedInUsersAccount.data.secureSupport && (React.createElement(NewFeaturePopoverAnnouncement, { "aria-label": "Attach and embed images! You'll find all of your uploaded images here.", featureName: FeatureAnnouncementKeys.MARKDOWN_INLINE_IMAGES, sectionRef: componentRef, bodyContent: React.createElement("div", null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAa3E,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBA4IlD"}
|
|
@@ -7,9 +7,8 @@ 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 { Button, ButtonVariant, Modal, ModalVariant } from '@patternfly/react-core';
|
|
11
|
-
import {
|
|
12
|
-
import { ToastNotification } from '@rh-support/components';
|
|
10
|
+
import { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
|
|
11
|
+
import { SingleSelectDropdown, ToastNotification } from '@rh-support/components';
|
|
13
12
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
14
13
|
import { ability, resourceActions, resources } from '@rh-support/user-permissions';
|
|
15
14
|
import isEqual from 'lodash/isEqual';
|
|
@@ -24,8 +23,6 @@ export function VerifyCaseStatusModal(props) {
|
|
|
24
23
|
const caseUpdateError = useCaseUpdateErrorMessage();
|
|
25
24
|
const [caseOverviewState, caseOverviewDispatch] = useReducer(caseOverviewReducer, initialCaseViewState);
|
|
26
25
|
const canManageCase = ability.can(resourceActions.UPDATE, resources.CASE_DETAILS);
|
|
27
|
-
const [showDropdown, setShowDropdown] = useState(false);
|
|
28
|
-
const onDropdownToggle = (toggle) => setShowDropdown(toggle);
|
|
29
26
|
const caseState = useCaseSelector((state) => ({
|
|
30
27
|
caseDetails: {
|
|
31
28
|
product: state.caseDetails.product,
|
|
@@ -81,23 +78,34 @@ export function VerifyCaseStatusModal(props) {
|
|
|
81
78
|
return;
|
|
82
79
|
}
|
|
83
80
|
});
|
|
84
|
-
const onStatusChange = (
|
|
81
|
+
const onStatusChange = (selectedOption) => __awaiter(this, void 0, void 0, function* () {
|
|
85
82
|
if (canEditCase.alert())
|
|
86
83
|
return;
|
|
87
|
-
setStatusChange(
|
|
88
|
-
onDropdownToggle(false);
|
|
84
|
+
setStatusChange(selectedOption.value);
|
|
89
85
|
});
|
|
90
|
-
|
|
86
|
+
// Create selected option for SingleSelectDropdown
|
|
87
|
+
const getSelectedOption = () => ({
|
|
88
|
+
label: t(statusChange || status),
|
|
89
|
+
value: statusChange || status,
|
|
90
|
+
});
|
|
91
|
+
// Create options array for SingleSelectDropdown
|
|
92
|
+
const getDropdownOptions = () => caseOverviewState.allCaseStatuses.data.map((statusOption) => ({
|
|
93
|
+
label: t(statusOption),
|
|
94
|
+
value: statusOption,
|
|
95
|
+
disabled: statusOption === status,
|
|
96
|
+
}));
|
|
97
|
+
return (React.createElement(Modal, { id: "case-close-modal", title: t(`Please verify this case's status`), "aria-describedby": "case-close-modal", isOpen: true, onClose: props.onClose, variant: ModalVariant.medium },
|
|
98
|
+
React.createElement(ModalHeader, null,
|
|
99
|
+
React.createElement("h3", { className: "subheading subheading-sm" },
|
|
100
|
+
React.createElement(Trans, null, "Status"),
|
|
101
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
|
|
102
|
+
React.createElement(ModalBody, null,
|
|
103
|
+
React.createElement(SingleSelectDropdown, { ariaLabel: t(status), id: "verify-case-status", selected: getSelectedOption(), options: getDropdownOptions(), onSelect: onStatusChange, isDisabled: !canManageCase ||
|
|
104
|
+
caseOverviewState.allCaseStatuses.isFetching ||
|
|
105
|
+
(caseOverviewState.caseStatusUpdating && isCaseUpdating), isInvalid: !status, placeholder: t(status) })),
|
|
106
|
+
React.createElement(ModalFooter, null,
|
|
91
107
|
React.createElement(Button, { key: "submit-description", variant: ButtonVariant.primary, onClick: onSubmit, isLoading: isVerifyCaseStatusLoading, isDisabled: props.isUpdating, "data-tracking-id": "close-case-description-modal-submit" },
|
|
92
108
|
React.createElement(Trans, null, "Continue")),
|
|
93
109
|
React.createElement(Button, { key: "close-modal", variant: ButtonVariant.link, onClick: props.onClose, isDisabled: props.isUpdating, "data-tracking-id": "close-case-description-modal-cancel" },
|
|
94
|
-
React.createElement(Trans, null, "Cancel"))
|
|
95
|
-
], variant: ModalVariant.medium },
|
|
96
|
-
React.createElement("h3", { className: "subheading subheading-sm" },
|
|
97
|
-
React.createElement(Trans, null, "Status"),
|
|
98
|
-
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
99
|
-
React.createElement(Select, { "aria-label": t(status), id: "verify-case-status", selections: statusChange, onSelect: onStatusChange, isOpen: showDropdown, isDisabled: !canManageCase ||
|
|
100
|
-
caseOverviewState.allCaseStatuses.isFetching ||
|
|
101
|
-
(caseOverviewState.caseStatusUpdating && isCaseUpdating), menuAppendTo: document.body, validated: !status ? 'error' : 'default', placeholderText: t(status), onToggle: (_event, toggle) => onDropdownToggle(toggle) }, caseOverviewState.allCaseStatuses.data.map((option, index) => (React.createElement(SelectOption, { key: index, value: option, isDisabled: option === status },
|
|
102
|
-
React.createElement(Trans, null, option)))))));
|
|
110
|
+
React.createElement(Trans, null, "Cancel")))));
|
|
103
111
|
}
|
|
@@ -73,7 +73,6 @@
|
|
|
73
73
|
display: flex;
|
|
74
74
|
justify-content: space-between;
|
|
75
75
|
align-items: center;
|
|
76
|
-
padding: 0.5rem 1rem;
|
|
77
76
|
margin: 0 -0.8rem;
|
|
78
77
|
}
|
|
79
78
|
|
|
@@ -82,15 +81,23 @@
|
|
|
82
81
|
display: flex;
|
|
83
82
|
align-items: center;
|
|
84
83
|
}
|
|
84
|
+
|
|
85
85
|
#options-menu-top-pagination {
|
|
86
86
|
display: flex !important;
|
|
87
87
|
flex-wrap: nowrap !important;
|
|
88
|
+
justify-content: flex-start;
|
|
89
|
+
margin-left: 1rem;
|
|
88
90
|
}
|
|
91
|
+
|
|
89
92
|
.timeline-sort-order-select {
|
|
90
93
|
width: auto;
|
|
91
94
|
margin-left: 1rem;
|
|
92
95
|
}
|
|
93
96
|
|
|
97
|
+
.timeline-sort-order-select .pf-v6-c-menu-toggle {
|
|
98
|
+
min-width: 17rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
94
101
|
.timeline-controls:last-of-type {
|
|
95
102
|
justify-content: flex-start;
|
|
96
103
|
}
|
|
@@ -254,14 +261,13 @@ ul#case-history-paginated-timeline {
|
|
|
254
261
|
}
|
|
255
262
|
|
|
256
263
|
.case-history-timeline-search {
|
|
257
|
-
width:
|
|
264
|
+
width: 40%;
|
|
258
265
|
}
|
|
259
266
|
|
|
260
267
|
.timelineMenu {
|
|
261
268
|
display: flex;
|
|
262
269
|
justify-content: space-between;
|
|
263
270
|
align-items: center;
|
|
264
|
-
margin-bottom: 2rem;
|
|
265
271
|
}
|
|
266
272
|
|
|
267
273
|
.case-history-timeline-datepicker {
|
|
@@ -271,6 +277,19 @@ ul#case-history-paginated-timeline {
|
|
|
271
277
|
width: 64.2%;
|
|
272
278
|
}
|
|
273
279
|
|
|
280
|
+
.case-history-timeline-datepicker input[aria-label='Date picker'] {
|
|
281
|
+
min-width: 10rem;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.case-history-timeline-datepicker button {
|
|
285
|
+
height: 100% !important;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.case-history-timeline-datepicker .pf-v6-c-calendar-month__header-year input {
|
|
289
|
+
font-size: var(--pf-t--global--font--size--body--default);
|
|
290
|
+
line-height: var(--pf-t--global--font--line-height--body);
|
|
291
|
+
}
|
|
292
|
+
|
|
274
293
|
.empty-state-date-picker {
|
|
275
294
|
margin-left: 82%;
|
|
276
295
|
}
|
|
@@ -284,8 +303,12 @@ ul#case-history-paginated-timeline {
|
|
|
284
303
|
.timeline-sort-order-select {
|
|
285
304
|
display: flex;
|
|
286
305
|
justify-content: flex-end;
|
|
287
|
-
margin: 1rem;
|
|
288
306
|
width: 93.2%;
|
|
307
|
+
margin-top: var(--pf-t--global--spacer--md);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.order-select .pf-v6-c-menu-toggle {
|
|
311
|
+
min-width: 15rem;
|
|
289
312
|
}
|
|
290
313
|
|
|
291
314
|
@-moz-document url-prefix() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAwBxB,OAAO,KAAsC,MAAM,OAAO,CAAC;AAwT3D,QAAA,MAAM,QAAQ;;uBAuUb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -9,10 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import './Timeline.css';
|
|
11
11
|
import { caseHistory } from '@cee-eng/hydrajs';
|
|
12
|
-
import { Avatar, Button, DatePicker, EmptyState, EmptyStateBody,
|
|
12
|
+
import { Avatar, Button, DatePicker, EmptyState, EmptyStateBody, EmptyStateVariant, MenuToggle, Pagination, SearchInput, Select, SelectOption, Spinner, } from '@patternfly/react-core';
|
|
13
13
|
import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
14
14
|
import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
|
|
15
|
-
import globalDangerColor100 from '@patternfly/react-tokens/dist/js/global_danger_color_100';
|
|
16
15
|
import { haltEvent } from '@rh-support/utils';
|
|
17
16
|
import { format, fromUnixTime, isSameDay, parse } from 'date-fns';
|
|
18
17
|
import debounce from 'lodash/debounce';
|
|
@@ -419,8 +418,7 @@ const Timeline = ({ caseNumber }) => {
|
|
|
419
418
|
};
|
|
420
419
|
const renderTimelineContent = () => {
|
|
421
420
|
if (fetchError) {
|
|
422
|
-
return (React.createElement(EmptyState, { variant: EmptyStateVariant.full },
|
|
423
|
-
React.createElement(EmptyStateHeader, { titleText: "Unable to connect", icon: React.createElement(EmptyStateIcon, { icon: ExclamationCircleIcon, color: globalDangerColor100.value }), headingLevel: "h2" }),
|
|
421
|
+
return (React.createElement(EmptyState, { headingLevel: "h2", icon: ExclamationCircleIcon, titleText: "Unable to connect", variant: EmptyStateVariant.full },
|
|
424
422
|
React.createElement(EmptyStateBody, null,
|
|
425
423
|
React.createElement(Trans, null,
|
|
426
424
|
"Try ",
|
|
@@ -429,8 +427,7 @@ const Timeline = ({ caseNumber }) => {
|
|
|
429
427
|
"or check back later"))));
|
|
430
428
|
}
|
|
431
429
|
if (filteredEvents.length < 1) {
|
|
432
|
-
return (React.createElement(EmptyState, { variant: EmptyStateVariant.full },
|
|
433
|
-
React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "No results found"), icon: React.createElement(EmptyStateIcon, { icon: SearchIcon }), headingLevel: "h2" }),
|
|
430
|
+
return (React.createElement(EmptyState, { headingLevel: "h2", icon: SearchIcon, titleText: React.createElement(Trans, null, "No results found"), variant: EmptyStateVariant.full },
|
|
434
431
|
React.createElement(EmptyStateBody, null,
|
|
435
432
|
React.createElement(Trans, null, "Try modifying your search query or changing the date range and try again."))));
|
|
436
433
|
}
|
|
@@ -442,11 +439,11 @@ const Timeline = ({ caseNumber }) => {
|
|
|
442
439
|
React.createElement(SearchInput, { placeholder: t('Search for a user, action, or keyword'), value: searchValue, onChange: handleSearchChange, onClear: handleClear, className: "case-history-timeline-search" }),
|
|
443
440
|
React.createElement("div", { className: "case-history-timeline-datepicker" },
|
|
444
441
|
React.createElement(DatePicker, { value: dateValue, onChange: (_event, value) => handleDateChange(value), validators: [futureDateValidator] }),
|
|
445
|
-
React.createElement(Button, { onClick: () => setDateValue(''), isDisabled: isEmpty(dateValue) }, "Reset"))),
|
|
442
|
+
React.createElement(Button, { className: "pf-v6-u-ml-xs", onClick: () => setDateValue(''), isDisabled: isEmpty(dateValue) }, "Reset"))),
|
|
446
443
|
React.createElement("div", { className: "timeline-controls" },
|
|
447
444
|
React.createElement("div", { className: "timeline-pagination" }, renderPagination()),
|
|
448
445
|
React.createElement("div", { className: "timeline-sort-order-select" },
|
|
449
|
-
React.createElement(Select, { id: "order-select", isOpen: isSelectOpen, selected: selectedOrder, onSelect: handleSelect, onOpenChange: (isOpen) => setIsSelectOpen(isOpen), shouldFocusToggleOnSelect: false, toggle: (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, onClick: handleSelectToggle, isExpanded: isSelectOpen
|
|
446
|
+
React.createElement(Select, { id: "order-select", isOpen: isSelectOpen, selected: selectedOrder, onSelect: handleSelect, onOpenChange: (isOpen) => setIsSelectOpen(isOpen), shouldFocusToggleOnSelect: false, toggle: (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, onClick: handleSelectToggle, isExpanded: isSelectOpen }, selectedOrder)) },
|
|
450
447
|
React.createElement(SelectOption, { value: "Newest to Oldest" }, "Newest to Oldest"),
|
|
451
448
|
React.createElement(SelectOption, { value: "Oldest to Newest" }, "Oldest to Newest")))),
|
|
452
449
|
isFetchingData ? (React.createElement("div", { className: "timeline-loading-spinner" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CasePrivateNotes.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CasePrivateNotes.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,QAAA,MAAM,YAAY;;CAEjB,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAExC,UAAU,MAAO,SAAQ,YAAY;CAAG;AAExC,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAwGtC;kBAxGQ,gBAAgB;;;;;AA2GzB,eAAe,gBAAgB,CAAC"}
|
|
@@ -7,6 +7,7 @@ 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 { Button } from '@patternfly/react-core';
|
|
10
11
|
import { LoadingIndicator, TextAreaResizable, ToastNotification } from '@rh-support/components';
|
|
11
12
|
import { useCanEditCase } from '@rh-support/react-context';
|
|
12
13
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -78,14 +79,14 @@ function CasePrivateNotes(props) {
|
|
|
78
79
|
React.createElement(Trans, null, "Notes"))),
|
|
79
80
|
canUpdatePrivateNotes && (React.createElement("form", null,
|
|
80
81
|
React.createElement(TextAreaResizable, { style: { minHeight: '200px' }, id: "rha-case-notes", disabled: isUpdating, maxLength: 255, name: "notes", value: notesState, onChange: onChange }),
|
|
81
|
-
React.createElement("div", { className: "pf-
|
|
82
|
-
React.createElement(
|
|
82
|
+
React.createElement("div", { className: "pf-v6-u-mt-md" },
|
|
83
|
+
React.createElement(Button, { className: `${isExportingPDF ? 'hide-in-pdf' : ''}`, onClick: updateCase, disabled: isPrivateNotesEmpty || isUpdating || !formIsDirty, variant: "primary" },
|
|
83
84
|
React.createElement(Trans, null, "Update"),
|
|
84
85
|
" ",
|
|
85
86
|
React.createElement(LoadingIndicator, { show: isUpdating, isInline: true })),
|
|
86
|
-
React.createElement(
|
|
87
|
+
React.createElement(Button, { className: `pf-v6-u-ml-md ${isExportingPDF ? 'hide-in-pdf' : ''}`, onClick: discardNotes, disabled: isUpdating || !formIsDirty, variant: "secondary" },
|
|
87
88
|
React.createElement(Trans, null, "Discard Changes"))))),
|
|
88
|
-
React.createElement("p", { className: "pf-
|
|
89
|
+
React.createElement("p", { className: "pf-v6-u-mt-xl" },
|
|
89
90
|
React.createElement(Trans, null, "Please note, contents of this field are not visible to Red Hat Support professionals."))));
|
|
90
91
|
}
|
|
91
92
|
CasePrivateNotes.defaultProps = defaultProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAsB3B,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,UAAW,MAAM,sBA6KxC,CAAC"}
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import './caseSummary.css';
|
|
11
11
|
import { caseSummary } from '@cee-eng/hydrajs';
|
|
12
12
|
import { parseCommentMarkdown } from '@cee-eng/ui-toolkit';
|
|
13
|
-
import { Alert, AlertActionLink, AlertVariant, EmptyState, EmptyStateBody,
|
|
13
|
+
import { Alert, AlertActionLink, AlertVariant, Content, EmptyState, EmptyStateBody, EmptyStateVariant, Spinner, } from '@patternfly/react-core';
|
|
14
14
|
import CubesIcon from '@patternfly/react-icons/dist/js/icons/cubes-icon';
|
|
15
15
|
import { SupportFeedbackModal } from '@rh-support/components';
|
|
16
16
|
import { getApiResourceObject } from '@rh-support/utils';
|
|
@@ -79,15 +79,14 @@ export const CaseSummary = (props) => {
|
|
|
79
79
|
}
|
|
80
80
|
const markeddownOptions = { openLinksInNewTab: true, gfm: true, breaks: true };
|
|
81
81
|
const sanitizedHtml = DOMPurify.sanitize(parseCommentMarkdown(summary, { openImagesInNewTab: false, lazyLoadImages: false }, markeddownOptions));
|
|
82
|
-
return (React.createElement(
|
|
82
|
+
return (React.createElement(Content, { className: "case-summary-text-content" },
|
|
83
83
|
React.createElement("div", { dangerouslySetInnerHTML: { __html: sanitizedHtml } })));
|
|
84
84
|
};
|
|
85
85
|
return (React.createElement("section", { className: "card card-white" },
|
|
86
86
|
React.createElement(Alert, { variant: AlertVariant.info, title: "Case summary uses AI. Check for mistakes.", isInline: true, actionLinks: React.createElement(AlertActionLink, { onClick: (e) => triggerAppFeedbackItem(e), href: "#", "data-tracking-id": "send-feedback-button" },
|
|
87
87
|
React.createElement(Trans, null, "Send Feedback")) },
|
|
88
88
|
React.createElement("p", null, "By using this feature, your support case information will be used to create an AI-generated summary of your cases. Information may not be up-to-date or without error. Always review AI generated content prior to use. We encourage you to send feedback to improve the case summary feature")),
|
|
89
|
-
caseSummaryState === CaseSummaryStates.NEW_CASE ? (React.createElement(EmptyState, { variant: EmptyStateVariant.lg },
|
|
90
|
-
React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "Unable to generate case summary"), icon: React.createElement(EmptyStateIcon, { icon: CubesIcon }), headingLevel: "h2" }),
|
|
89
|
+
caseSummaryState === CaseSummaryStates.NEW_CASE ? (React.createElement(EmptyState, { headingLevel: "h2", icon: CubesIcon, titleText: React.createElement(Trans, null, "Unable to generate case summary"), variant: EmptyStateVariant.lg },
|
|
91
90
|
React.createElement(EmptyStateBody, null,
|
|
92
91
|
React.createElement("p", { className: "push-top-narrow" },
|
|
93
92
|
React.createElement(Trans, null, errorMessage))))) : caseSummaryState === CaseSummaryStates.FAILED ||
|
|
@@ -104,8 +103,7 @@ export const CaseSummary = (props) => {
|
|
|
104
103
|
second: '2-digit',
|
|
105
104
|
hour12: true,
|
|
106
105
|
})),
|
|
107
|
-
React.createElement("div", { className: "case-summary-content" }, formatSummary((_c = caseSummaryData.data) === null || _c === void 0 ? void 0 : _c.generated_summary))))) : (React.createElement(EmptyState, { variant: EmptyStateVariant.lg },
|
|
108
|
-
React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "Generating case summary using AI"), icon: React.createElement(EmptyStateIcon, { icon: Spinner }), headingLevel: "h2" }),
|
|
106
|
+
React.createElement("div", { className: "case-summary-content" }, formatSummary((_c = caseSummaryData.data) === null || _c === void 0 ? void 0 : _c.generated_summary))))) : (React.createElement(EmptyState, { headingLevel: "h2", icon: Spinner, titleText: React.createElement(Trans, null, "Generating case summary using AI"), variant: EmptyStateVariant.lg },
|
|
109
107
|
React.createElement(EmptyStateBody, null,
|
|
110
108
|
React.createElement("p", { className: "push-top-narrow" },
|
|
111
109
|
React.createElement(Trans, null, "Almost there! case summary will be ready in approximately 30 seconds."))))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseSummaryErrorMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseSummaryErrorMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,UAAU,MAAM;IACZ,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;CACzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA6FpD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Button, EmptyState, EmptyStateBody, EmptyStateFooter,
|
|
1
|
+
import { Button, EmptyState, EmptyStateBody, EmptyStateFooter, EmptyStateVariant, Flex, FlexItem, } from '@patternfly/react-core';
|
|
2
2
|
import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
|
|
3
3
|
import RedoIcon from '@patternfly/react-icons/dist/esm/icons/redo-icon';
|
|
4
|
-
import globalDangerColor100 from '@patternfly/react-tokens/dist/js/global_danger_color_100';
|
|
5
4
|
import { SupportFeedbackModal } from '@rh-support/components';
|
|
6
5
|
import React, { useEffect, useState } from 'react';
|
|
7
6
|
import { Trans } from 'react-i18next';
|
|
@@ -40,10 +39,9 @@ export function CaseSummaryErrorMessage(props) {
|
|
|
40
39
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
40
|
}, []);
|
|
42
41
|
return (React.createElement(React.Fragment, null,
|
|
43
|
-
React.createElement(EmptyState, {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
: 'Error while loading case summary', icon: React.createElement(EmptyStateIcon, { icon: ExclamationCircleIcon, color: globalDangerColor100.value }), headingLevel: "h2" }),
|
|
42
|
+
React.createElement(EmptyState, { headingLevel: "h2", icon: ExclamationCircleIcon, status: "danger", titleText: props.caseSummaryState === CaseSummaryStates.CASE_LANGUAGE_NOT_SUPPORTED
|
|
43
|
+
? 'Unsupported language detected'
|
|
44
|
+
: 'Error while loading case summary', variant: EmptyStateVariant.sm },
|
|
47
45
|
React.createElement(EmptyStateBody, null,
|
|
48
46
|
React.createElement(Trans, null, props.errorMessage && React.createElement("div", { dangerouslySetInnerHTML: { __html: props.errorMessage } }))),
|
|
49
47
|
React.createElement(EmptyStateFooter, null,
|
|
@@ -125,7 +125,7 @@ export default function RMEEscalationList(props) {
|
|
|
125
125
|
React.createElement(Button, { variant: ButtonVariant.secondary, onClick: () => requestUpdateRMEEscalation(escalation.name), "data-tracking-id": "case-details-rme-req-update", isDisabled: customerEscalation },
|
|
126
126
|
React.createElement(Trans, null, "Request Update"))),
|
|
127
127
|
React.createElement(FlexItem, null,
|
|
128
|
-
React.createElement(Button, { variant: ButtonVariant.secondary, className: "pf-
|
|
128
|
+
React.createElement(Button, { variant: ButtonVariant.secondary, className: "pf-v6-u-mt-sm", onClick: () => requestClosureRMEEscalation(escalation.name), "data-tracking-id": "case-details-rme-req-closure" },
|
|
129
129
|
React.createElement(Trans, null, "Request Closure")))));
|
|
130
130
|
}
|
|
131
131
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelatedTasks.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RelatedTasks.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAqBnD,QAAA,MAAM,YAAY,yBA8KjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -7,7 +7,7 @@ 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 { Badge, EmptyState,
|
|
10
|
+
import { Badge, EmptyState, EmptyStateVariant, Pagination, SearchInput, ToggleGroup, ToggleGroupItem, } from '@patternfly/react-core';
|
|
11
11
|
import CubesIcon from '@patternfly/react-icons/dist/js/icons/cubes-icon';
|
|
12
12
|
import { Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table';
|
|
13
13
|
import isEqual from 'lodash/isEqual';
|
|
@@ -112,7 +112,6 @@ const RelatedTasks = () => {
|
|
|
112
112
|
React.createElement(Td, { dataLabel: columnNames.title }, item.title)))))),
|
|
113
113
|
React.createElement("div", { className: "push-top" },
|
|
114
114
|
React.createElement(Pagination, { itemCount: filteredData.length, perPage: itemsPerPage, page: currentPage, onSetPage: (_, page) => setCurrentPage(page), onPerPageSelect: (_, perPage) => setItemsPerPage(perPage) })))) : (React.createElement("div", null,
|
|
115
|
-
React.createElement(EmptyState, { variant: EmptyStateVariant.full }
|
|
116
|
-
React.createElement(EmptyStateHeader, { titleText: t("There aren't any related tasks."), headingLevel: "h4", icon: React.createElement(EmptyStateIcon, { icon: CubesIcon }) }))))));
|
|
115
|
+
React.createElement(EmptyState, { headingLevel: "h4", icon: CubesIcon, titleText: t("There aren't any related tasks."), variant: EmptyStateVariant.full })))));
|
|
117
116
|
};
|
|
118
117
|
export default RelatedTasks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAW5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAW5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,qBAwV/B;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -219,8 +219,7 @@ function CaseGroup(props) {
|
|
|
219
219
|
React.createElement(TextInputGroupMain, { value: inputValue, onClick: onToggleClick, onChange: onInputQueryChange, onKeyDown: onInputKeyDown, autoComplete: "off", innerRef: textInputRef, placeholder: t(`Select a group`), role: "combobox", isExpanded: isOpen, "aria-controls": "select-typeahead-listbox" }),
|
|
220
220
|
!isCaseOwnerUpdating && (ownersCaseGroups.isFetching || isCaseGroupUpdating) ? (React.createElement(TextInputGroupUtilities, null,
|
|
221
221
|
React.createElement(Spinner, { size: "md" }))) : (React.createElement(TextInputGroupUtilities, Object.assign({}, (!inputValue ? { style: { display: 'none' } } : {})),
|
|
222
|
-
React.createElement(Button, { variant: "plain", onClick: onCaseGroupClear, "aria-label": "Clear input value" }
|
|
223
|
-
React.createElement(TimesIcon, { "aria-hidden": true })))))));
|
|
222
|
+
React.createElement(Button, { icon: React.createElement(TimesIcon, { "aria-hidden": true }), variant: "plain", onClick: onCaseGroupClear, "aria-label": "Clear input value" }))))));
|
|
224
223
|
return (React.createElement("div", { className: "form-group" },
|
|
225
224
|
React.createElement("label", { htmlFor: "get-support-group" },
|
|
226
225
|
React.createElement(Trans, null, "Group"),
|