@rh-support/troubleshoot 2.2.90 → 2.2.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -2
  2. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +1 -1
  3. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +1 -1
  4. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +1 -1
  5. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.js +3 -3
  7. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +2 -2
  9. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +2 -2
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +1 -1
  13. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  14. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +31 -31
  15. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  16. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -2
  17. package/lib/esm/css/productSelector.css +2 -3
  18. package/lib/esm/scss/_pf-overrides.scss +14 -1
  19. package/package.json +6 -6
@@ -15,7 +15,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
15
15
  React.createElement("p", null,
16
16
  React.createElement(Trans, null, "After submitting, your case will be reviewed by a support manager."))));
17
17
  const isInternalElements = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
18
- React.createElement("h3", { className: "card-heading" },
18
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
19
19
  React.createElement(Trans, null, "Active Customer Escalation (ACE)"),
20
20
  React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about Red Hat support case escalation') },
21
21
  React.createElement(InfoCircleIcon, null))),
@@ -36,7 +36,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
36
36
  setOpenRequestEscalationModal((openRequestEscalationModal) => !openRequestEscalationModal);
37
37
  };
38
38
  const isNotInternalElements = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
39
- React.createElement("h3", { className: "card-heading" },
39
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
40
40
  t('Request an escalation'),
41
41
  React.createElement("div", { style: { marginLeft: 'auto' } },
42
42
  React.createElement(Popover, { showClose: false, position: 'left', hasAutoWidth: true, bodyContent: (hide) => (React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about escalation cases.') },
@@ -309,7 +309,7 @@ export const CaseSolutions = forwardRef((props, ref) => {
309
309
  { title: '10', value: 10 },
310
310
  ] }))))),
311
311
  topRecommendations.length > 0 && (React.createElement("div", { className: "card card-white card-support recommendations", ref: ref },
312
- React.createElement("h3", { className: "card-heading knowledgebase-recommendations" },
312
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
313
313
  React.createElement(Trans, null, "Knowledgebase recommendations")),
314
314
  React.createElement("div", { className: "card-body" },
315
315
  React.createElement(PaginatedList, { id: "case-details-top-recommendations", className: "list-icons list-icons-flush", listItems: topRecommendations
@@ -29,7 +29,7 @@ export const ESSRemoteSession = forwardRef((props, ref) => {
29
29
  const termsAcked = remoteSessionTermsAcked && !screenSessionRequested;
30
30
  // ESS RS Aside Section Body
31
31
  const ESSRemoteSessionSectionBody = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
32
- React.createElement("h3", { className: "card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between" },
32
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between" },
33
33
  t('Remote session'),
34
34
  React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('A remote session allows support engineers to view or access your computer to simplify collaboration and troubleshooting.'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
35
35
  React.createElement(InfoCircleIcon, null))),
@@ -20,7 +20,7 @@ export const RemoteSessionAgreement = forwardRef((props, ref) => {
20
20
  };
21
21
  // RSA Aside Section Body
22
22
  const RemoteSessionAgreementSectionBody = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
23
- React.createElement("h3", { className: "card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between" },
23
+ React.createElement("h3", { className: "card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between case-detail-panel-card-heading" },
24
24
  t('Remote session agreement'),
25
25
  React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
26
26
  React.createElement(InfoCircleIcon, null))),
@@ -1 +1 @@
1
- {"version":3,"file":"PartnerShare.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ShareCase/PartnerShare.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAwH7C"}
1
+ {"version":3,"file":"PartnerShare.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ShareCase/PartnerShare.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAyH7C"}
@@ -102,9 +102,9 @@ export function ShareWithPartner(props) {
102
102
  return null;
103
103
  }
104
104
  return (React.createElement("div", { className: `form-group` },
105
- React.createElement("label", { "html-for": "share-with-partner" },
106
- React.createElement(Trans, null, "Share with partner")),
107
- React.createElement(Typeahead, { id: "share-with-partner", labelKey: (option) => `${option.accountName} (${option.accountNumber})`, multiple: false, filterBy: ['accountName', 'accountNumber'], options: partners.eligiblePartners, onChange: onPartnerSelect, selected: selected, disabled: partners.savedPartners.length > 0, "data-tracking-id": "share-with-partner" }),
105
+ React.createElement("label", { className: "react-typeahead-label-wrapper", "html-for": "share-with-partner" },
106
+ React.createElement(Trans, null, "Share with partner"),
107
+ React.createElement(Typeahead, { id: "share-with-partner", labelKey: (option) => `${option.accountName} (${option.accountNumber})`, multiple: false, filterBy: ['accountName', 'accountNumber'], options: partners.eligiblePartners, onChange: onPartnerSelect, selected: selected, disabled: partners.savedPartners.length > 0, "data-tracking-id": "share-with-partner", className: "partner-share-bootstrap-typeahead" })),
108
108
  TnCUrl && (React.createElement("a", { href: TnCUrl, className: "btn btn-app btn-info" },
109
109
  React.createElement(Trans, null, "Share")))));
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAUpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAkGxD"}
1
+ {"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAUpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAoGxD"}
@@ -53,13 +53,13 @@ export function CaseContactPhoneNumberAlert(props) {
53
53
  const NEW_OWNER_MSG = 'You are the new owner for this case. Is the new phone number correct?';
54
54
  if (!isPhoneNeedsReview)
55
55
  return React.createElement(React.Fragment, null);
56
- return (React.createElement(React.Fragment, null, props.isReview && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v5-u-mb-md", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
56
+ return (React.createElement(React.Fragment, null, props.isReview && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v5-u-mb-md", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
57
57
  React.createElement(Link, { replace: true, to: {
58
58
  pathname: `/case/${caseNumber}/management`,
59
59
  }, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
60
60
  React.createElement(Trans, null, "Review phone number")),
61
61
  ] },
62
- React.createElement(Trans, null, NEW_OWNER_MSG))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v5-u-mb-md", variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
62
+ React.createElement(Trans, null, NEW_OWNER_MSG))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v5-u-mb-md", variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
63
63
  React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
64
64
  React.createElement(Trans, null, "Confirm phone number")),
65
65
  ] },
@@ -1 +1 @@
1
- {"version":3,"file":"CasePhoneNumberSev1ConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAUpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAMD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,qBAkG5D"}
1
+ {"version":3,"file":"CasePhoneNumberSev1ConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAUpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAMD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,qBAoG5D"}
@@ -57,13 +57,13 @@ export function CasePhoneNumberSev1ConfirmAlert(props) {
57
57
  const SEV1_MSG = 'This case severity is urgent. Please confirm the phone number we have on file is correct.';
58
58
  if (!isPhoneNeedsConfirm)
59
59
  return React.createElement(React.Fragment, null);
60
- return (React.createElement(React.Fragment, null, props.isReview && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v5-u-mb-md", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
60
+ return (React.createElement(React.Fragment, null, props.isReview && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v5-u-mb-md", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
61
61
  React.createElement(Link, { replace: true, to: {
62
62
  pathname: `/case/${caseNumber}/management`,
63
63
  }, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
64
64
  React.createElement(Trans, null, "Review phone number")),
65
65
  ] },
66
- React.createElement(Trans, null, SEV1_MSG))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v5-u-mb-md", variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
66
+ React.createElement(Trans, null, SEV1_MSG))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v5-u-mb-md", variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
67
67
  React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
68
68
  React.createElement(Trans, null, "Confirm phone number")),
69
69
  ] },
@@ -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;AA8BvE,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,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,4EAyThB,CAAC;AAEH,eAAe,YAAY,CAAC"}
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;AA8BvE,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,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,4EA4ThB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -76,7 +76,7 @@ const CaseComments = React.forwardRef((props, ref) => {
76
76
  React.createElement(Tooltip, { position: TooltipPosition.top, content: t('Neutral feedback') },
77
77
  React.createElement("button", { className: "btn btn-app btn-link", onClick: applyCommentFeedback(comment, 0), "data-tracking-id": "case-comment-feedback-neutral" }, feedback === 0 ? (React.createElement(MehIcon, { title: t('Remove neutral feedback') })) : (React.createElement(OutlinedMehIcon, { title: t('Leave neutral feedback') })))),
78
78
  React.createElement(Tooltip, { position: TooltipPosition.top, content: t('Negative feedback') },
79
- React.createElement("button", { className: "btn btn-app btn-link", onClick: applyCommentFeedback(comment, -1), "data-tracking-id": "case-comment-feedback-down" }, feedback === -1 ? (React.createElement(FrownIcon, { "aria-label": t('Remove negative feedback') })) : (React.createElement(OutlinedFrownIcon, { "aria-label": t('Leave negative feedback') }))))));
79
+ React.createElement("button", { className: "btn btn-app btn-link", onClick: applyCommentFeedback(comment, -1), "data-tracking-id": "case-comment-feedback-down" }, feedback === -1 ? (React.createElement(FrownIcon, { title: t('Remove negative feedback'), "aria-label": t('Remove negative feedback') })) : (React.createElement(OutlinedFrownIcon, { title: t('Leave negative feedback'), "aria-label": t('Leave negative feedback') }))))));
80
80
  const computeDiscussionCardCalss = (comment) => {
81
81
  if (comment.createdByType === 'Associate' && comment.createdBy === 'Automated Support Assistant') {
82
82
  return 'comment-automated';
@@ -1 +1 @@
1
- {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA6azC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAmbzC;AAED,eAAe,mBAAmB,CAAC"}
@@ -249,36 +249,36 @@ function CaseContactSelector(props) {
249
249
  if (!canSeeEmailNotifications)
250
250
  return React.createElement(React.Fragment, null);
251
251
  return (React.createElement("div", { className: "form-group pf-v5-u-mb-md" },
252
- React.createElement("label", { htmlFor: "get-support-notifications" },
253
- React.createElement(Trans, null, "Send notifications")),
254
- loggedInUserRights.data.isOrgAdmin() ? (React.createElement(React.Fragment, null,
255
- React.createElement("div", { "data-tracking-id": "send-notification-listbox" },
256
- React.createElement(CaseContactsSelectorExternal, { loggedInUserRights: loggedInUserRights.data, selectedAccountNumber: accountNumber, selected: [
257
- ...customEmailsList.data,
258
- ...filter(selectedNotificationContacts, (c) => !c.isInternal),
259
- ], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, placeholder: t(`Search for an email address or username of the person you want to notify`), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, isExportingPDF: isExportingPDF, allowNew: onAddNew, newSelectionPrefix: t('Add to your account: '), customEmails: accountCustomEmails.data || [] })),
260
- !showGroupPermissionError && !showAccountPermissionError && (React.createElement("p", { className: "form-instructions" },
261
- React.createElement(Trans, null, "Include someone from your account to inform about the status of this case."))),
262
- showGroupPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
263
- "Please",
264
- ' ',
265
- React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddContactToGroupBtnClick }, "add this person to the selected group"),
266
- ' ',
267
- "if you want to send notifications about this case.")))),
268
- showAccountPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
269
- emailToAdd,
270
- " is not listed under your account. You can always",
271
- ' ',
272
- React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddEmailToAccountBtnClick }, "add them at the account level"))))),
273
- caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher" },
274
- React.createElement(Trans, null, "Add me as a watcher"))),
275
- caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { ref: toolTipRef, className: "remove-me-as-watcher pf-v5-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
276
- React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
277
- React.createElement(Button, { variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
278
- React.createElement(Trans, null, "Remove me as a watcher")))) : (React.createElement(Button, { variant: "secondary", onClick: removeCurrentUser, type: "button", "data-tracking-id": "case-remove-me-watcher" },
279
- React.createElement(Trans, null, "Remove me as a watcher"))))))) : (React.createElement(NonOrgCaseNotifyeesSelector, { id: "open-case-notifications", placeholder: "Enter an email address or username for the person you want to notify", isDisabled: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, selectedItems: [
280
- ...customEmailsList.data,
281
- ...filter(selectedNotificationContacts, (c) => !c.isInternal),
282
- ], dataTrackingId: "non-org-admin-contact-selector", onChange: onNotifiedUserChange, isChipDisabled: !isCurrentUserCaseCreator && !!caseNumber, accountNumber: accountNumber, groupNumber: groupNumber, typeaheadRef: nonOrgTypeaheadRef, contactSsoUsername: contactSsoUsername }))));
252
+ React.createElement("label", { className: "react-typeahead-label-wrapper", htmlFor: "get-support-notifications" },
253
+ React.createElement(Trans, null, "Send notifications"),
254
+ loggedInUserRights.data.isOrgAdmin() ? (React.createElement(React.Fragment, null,
255
+ React.createElement("div", { "data-tracking-id": "send-notification-listbox" },
256
+ React.createElement(CaseContactsSelectorExternal, { loggedInUserRights: loggedInUserRights.data, selectedAccountNumber: accountNumber, selected: [
257
+ ...customEmailsList.data,
258
+ ...filter(selectedNotificationContacts, (c) => !c.isInternal),
259
+ ], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, placeholder: t(`Search for an email address or username of the person you want to notify`), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, isExportingPDF: isExportingPDF, allowNew: onAddNew, newSelectionPrefix: t('Add to your account: '), customEmails: accountCustomEmails.data || [] })),
260
+ !showGroupPermissionError && !showAccountPermissionError && (React.createElement("p", { className: "form-instructions" },
261
+ React.createElement(Trans, null, "Include someone from your account to inform about the status of this case."))),
262
+ showGroupPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
263
+ "Please",
264
+ ' ',
265
+ React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddContactToGroupBtnClick }, "add this person to the selected group"),
266
+ ' ',
267
+ "if you want to send notifications about this case.")))),
268
+ showAccountPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
269
+ emailToAdd,
270
+ " is not listed under your account. You can always",
271
+ ' ',
272
+ React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddEmailToAccountBtnClick }, "add them at the account level"))))),
273
+ caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher" },
274
+ React.createElement(Trans, null, "Add me as a watcher"))),
275
+ caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { ref: toolTipRef, className: "remove-me-as-watcher pf-v5-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
276
+ React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
277
+ React.createElement(Button, { variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
278
+ React.createElement(Trans, null, "Remove me as a watcher")))) : (React.createElement(Button, { variant: "secondary", onClick: removeCurrentUser, type: "button", "data-tracking-id": "case-remove-me-watcher" },
279
+ React.createElement(Trans, null, "Remove me as a watcher"))))))) : (React.createElement(NonOrgCaseNotifyeesSelector, { id: "open-case-notifications", placeholder: "Enter an email address or username for the person you want to notify", isDisabled: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, selectedItems: [
280
+ ...customEmailsList.data,
281
+ ...filter(selectedNotificationContacts, (c) => !c.isInternal),
282
+ ], dataTrackingId: "non-org-admin-contact-selector", onChange: onNotifiedUserChange, isChipDisabled: !isCurrentUserCaseCreator && !!caseNumber, accountNumber: accountNumber, groupNumber: groupNumber, typeaheadRef: nonOrgTypeaheadRef, contactSsoUsername: contactSsoUsername })))));
283
283
  }
284
284
  export default CaseContactSelector;
@@ -1 +1 @@
1
- {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAMpE,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,sBAuGvD,CAAC"}
1
+ {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAMpE,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;CACzB;AAOD,eAAO,MAAM,0BAA0B,UAAW,MAAM,sBAqHvD,CAAC"}
@@ -4,12 +4,17 @@ import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
4
  import isEmpty from 'lodash/isEmpty';
5
5
  import isEqual from 'lodash/isEqual';
6
6
  import React, { useContext, useEffect, useState } from 'react';
7
- import { useTranslation } from 'react-i18next';
7
+ import { Trans, useTranslation } from 'react-i18next';
8
8
  import { useCaseSelector } from '../../context/CaseContext';
9
+ const isProductSupportedForCustomer = (productName, productResults) => {
10
+ const foundItem = productResults.filter((item) => item.name === productName)[0];
11
+ return foundItem ? foundItem.supportedForCustomer : false;
12
+ };
9
13
  export const NewProductDropdownSelector = (props) => {
10
14
  const { t } = useTranslation();
11
15
  const [isOpen, setIsOpen] = useState(false);
12
16
  const [showValidationLocal, setShowValidationLocal] = useState(props.isNextBtnClickedToShowValidationError);
17
+ const [isSelectedProductSupportedForCustomer, setIsSelectedProductSupportedForCustomer] = useState(true);
13
18
  const { product } = useCaseSelector((state) => ({
14
19
  product: state.caseDetails.product,
15
20
  }), isEqual);
@@ -59,9 +64,15 @@ export const NewProductDropdownSelector = (props) => {
59
64
  setIsOpen(false);
60
65
  return;
61
66
  }
67
+ selection &&
68
+ setIsSelectedProductSupportedForCustomer(isProductSupportedForCustomer(selection, allProducts.data.productsResult));
62
69
  props.onProductChange(selection);
63
70
  setIsOpen(false);
64
71
  };
65
72
  return (React.createElement("div", null,
66
- React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, isOpen: isOpen, placeholderText: t('Search for or select a product'), "aria-labelledby": t('Product-selector'), onFilter: onFilter, selections: product, validated: isEmpty(product) && showValidationLocal ? 'error' : 'default', "data-tracking-id": "get-support-product-dropdown-selector" }, getOptions())));
73
+ React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, isOpen: isOpen, placeholderText: t('Search for or select a product'), "aria-labelledby": t('Product-selector'), onFilter: onFilter, selections: product, validated: isEmpty(product) && showValidationLocal ? 'error' : 'default', "data-tracking-id": "get-support-product-dropdown-selector" }, getOptions()),
74
+ !isSelectedProductSupportedForCustomer && (React.createElement("div", { className: "pf-v5-u-ml-xs pf-v5-u-mt-sm" },
75
+ React.createElement(Trans, null, "Red Hat must confirm your subscription status before providing support."),
76
+ React.createElement("br", null),
77
+ React.createElement(Trans, null, "We'll contact you if we have question.")))));
67
78
  };
@@ -65,8 +65,8 @@
65
65
  .all-product-selector-dropdown {
66
66
  -ms-flex-direction: row;
67
67
  flex-direction: row;
68
- -ms-flex-align: baseline;
69
- align-items: baseline;
68
+ -ms-flex-align: flex-start;
69
+ align-items: flex-start;
70
70
  }
71
71
 
72
72
  .all-product-selector-dropdown > * {
@@ -87,7 +87,6 @@
87
87
  -ms-flex: 0 0 31%;
88
88
  flex: 0 0 31%;
89
89
  -ms-flex-item-align: center;
90
- align-self: center;
91
90
  margin-left: auto;
92
91
  }
93
92
  }
@@ -683,7 +683,20 @@ button.pf-m-plain.manage-bookmark-info-icon-button {
683
683
  }
684
684
  }
685
685
 
686
- #rh-support #rh-support-main .card.card-support .card-heading.knowledgebase-recommendations {
686
+ #rh-support #rh-support-main .card.card-support .card-heading.case-detail-panel-card-heading {
687
687
  background-color: var(--pf-v5-global--palette--black-600);
688
688
  border: 1px solid var(--pf-v5-global--palette--black-600);
689
689
  }
690
+
691
+ label.react-typeahead-label-wrapper {
692
+ width: 100%;
693
+ .react-select-custom,
694
+ .partner-share-bootstrap-typeahead,
695
+ .rbt-input-multi .rbt-input-wrapper,
696
+ p.form-instructions {
697
+ font-weight: var(--pf-v5-global--FontWeight--normal);
698
+ }
699
+ .rbt-token.rbt-token-removeable {
700
+ color: var(--pf-v5-global--palette--blue-400);
701
+ }
702
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.2.90",
3
+ "version": "2.2.92",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -61,11 +61,11 @@
61
61
  "@progress/kendo-licensing": "1.3.5",
62
62
  "@progress/kendo-react-pdf": "^5.16.0",
63
63
  "@redux-devtools/extension": "^3.3.0",
64
- "@rh-support/components": "2.1.47",
65
- "@rh-support/react-context": "2.1.52",
64
+ "@rh-support/components": "2.1.48",
65
+ "@rh-support/react-context": "2.1.54",
66
66
  "@rh-support/types": "2.0.3",
67
- "@rh-support/user-permissions": "2.1.34",
68
- "@rh-support/utils": "2.1.24",
67
+ "@rh-support/user-permissions": "2.1.35",
68
+ "@rh-support/utils": "2.1.25",
69
69
  "@types/react-redux": "^7.1.33",
70
70
  "@types/redux": "^3.6.0",
71
71
  "dompurify": "^2.2.6",
@@ -132,5 +132,5 @@
132
132
  "defaults and supports es6-module",
133
133
  "maintained node versions"
134
134
  ],
135
- "gitHead": "b3b0fd899e604b6693213eefc4f1d3ca54655040"
135
+ "gitHead": "e26b6df63ea1cab3872f1679464f4caf5e5a1056"
136
136
  }