@rh-support/troubleshoot 2.6.107 → 2.6.119

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 (78) hide show
  1. package/lib/esm/components/AccountInfo/css/accountSelector.css +2 -3
  2. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/Case.js +1 -1
  4. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
  6. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
  7. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +4 -2
  8. package/lib/esm/components/CaseEditView/CaseOverview/index.js +1 -1
  9. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +2 -4
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  13. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -2
  14. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +33 -13
  15. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +3 -3
  16. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +1 -1
  17. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  18. package/lib/esm/components/CaseInformation/Description.js +3 -1
  19. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  20. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  21. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  22. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  23. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  24. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +6 -12
  25. package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
  26. package/lib/esm/components/OpenCase/OpenCase.js +2 -8
  27. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  28. package/lib/esm/components/ProductSelector/AllProductsSelector.js +6 -18
  29. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  30. package/lib/esm/components/ProductSelector/ProductSelector.js +5 -12
  31. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +0 -2
  32. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  33. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +13 -16
  34. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  35. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  36. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  37. package/lib/esm/components/Recommendations/Recommendations.js +38 -38
  38. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  39. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  40. package/lib/esm/components/Review/Review.js +1 -5
  41. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts +3 -0
  42. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts.map +1 -0
  43. package/lib/esm/components/Suggestions/TopContentSidebar.js +26 -0
  44. package/lib/esm/components/TroubleshootSection/AskRedHat.js +1 -1
  45. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +9 -0
  46. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  47. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +150 -44
  48. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  49. package/lib/esm/components/shared/useIsSectionValid.js +26 -65
  50. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  51. package/lib/esm/components/wizardLayout/WizardAside.js +18 -9
  52. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  53. package/lib/esm/components/wizardLayout/WizardMain.js +110 -64
  54. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  55. package/lib/esm/components/wizardLayout/WizardNavigation.js +59 -53
  56. package/lib/esm/css/AskRedHat.css +9 -2
  57. package/lib/esm/css/app.css +1 -1
  58. package/lib/esm/hooks/useAB.d.ts +22 -0
  59. package/lib/esm/hooks/useAB.d.ts.map +1 -0
  60. package/lib/esm/hooks/useAB.js +37 -0
  61. package/lib/esm/hooks/useWizard.d.ts +4 -0
  62. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  63. package/lib/esm/hooks/useWizard.js +20 -6
  64. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +17 -2
  65. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
  66. package/lib/esm/reducers/AIResponseConstNTypes.js +3 -0
  67. package/lib/esm/reducers/AIResponseReducer.d.ts +2 -0
  68. package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
  69. package/lib/esm/reducers/AIResponseReducer.js +17 -0
  70. package/lib/esm/reducers/CaseConstNTypes.js +3 -3
  71. package/lib/esm/reducers/CaseDiscussionTabReducer.js +1 -1
  72. package/lib/esm/reducers/CaseHelpers.d.ts +1 -2
  73. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  74. package/lib/esm/reducers/CaseHelpers.js +1 -11
  75. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  76. package/lib/esm/reducers/RouteConstNTypes.js +0 -1
  77. package/lib/esm/scss/_pf-overrides.scss +2 -23
  78. package/package.json +9 -7
@@ -2,12 +2,11 @@
2
2
  width: 100%;
3
3
  }
4
4
 
5
- .get-support-owner-wapper input,
6
- .margin-top.managed-account-selector .pf-c-select {
5
+ .get-support-owner-wapper input {
7
6
  min-height: 36px;
8
7
  }
9
8
 
10
- .margin-top.managed-account-selector .pf-c-select {
9
+ .margin-top.managed-account-selector {
11
10
  .pf-m-disabled {
12
11
  background-color: var(--pf-v5-global--disabled-color--300) !important;
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,qBAiPzC"}
1
+ {"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,qBAgPzC"}
@@ -33,7 +33,7 @@ export default function Case(props) {
33
33
  const { t } = useTranslation();
34
34
  // The `path` lets us build <Route> paths that are
35
35
  // relative to the parent route, while the `url` lets
36
- //us build relative links.
36
+ // us build relative links.
37
37
  const { path, url } = useRouteMatch();
38
38
  const { caseNumber } = useParams();
39
39
  const queryParams = getUrlParsedParams(useLocation().search);
@@ -1 +1 @@
1
- {"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqElD"}
1
+ {"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,qBAiElD"}
@@ -46,5 +46,5 @@ export default function CaseOwnerInfo(props) {
46
46
  React.createElement(Trans, null, "Office location")),
47
47
  ": ",
48
48
  props.caseDetailsHydra.data.caseOwner.officeLocation)) },
49
- React.createElement(QuestionCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-xs icon-size", "aria-label": "Support Level Info" })))))));
49
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": "Support Level Info" })))))));
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseType.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseType.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAoC,MAAM,OAAO,CAAC;AAOzD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAOD,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAmF9B;kBAnFQ,QAAQ;;;AAsFjB,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CaseType.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseType.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAoC,MAAM,OAAO,CAAC;AAOzD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAOD,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAqF9B;kBArFQ,QAAQ;;;AAwFjB,eAAe,QAAQ,CAAC"}
@@ -25,6 +25,7 @@ function CaseType(props) {
25
25
  const [isCaseTypeInValid, setIsCaseTypeInValid] = useState(false);
26
26
  const { isExportingPDF } = useContext(PDFContext);
27
27
  const [isOpen, setIsOpen] = useState(false);
28
+ const [selected, setSelected] = useState(props.selectedType);
28
29
  const onToggleClick = () => {
29
30
  setIsOpen(!isOpen);
30
31
  };
@@ -32,7 +33,7 @@ function CaseType(props) {
32
33
  React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
33
34
  React.createElement(FlexItem, null,
34
35
  " ",
35
- props.selectedType || t(`Select a category`)),
36
+ selected || t(`Select a category`)),
36
37
  React.createElement(FlexItem, null, props.isFetching ? React.createElement(Spinner, { size: "md" }) : ''))));
37
38
  const validateCaseType = (selectedItem) => {
38
39
  setIsCaseTypeInValid(isEmpty(selectedItem));
@@ -45,6 +46,7 @@ function CaseType(props) {
45
46
  setIsOpen(false);
46
47
  yield props.onTypeChange(switchedCaseType);
47
48
  setLocalTypeChange(true);
49
+ setSelected(option);
48
50
  validateCaseType(option);
49
51
  });
50
52
  // value changed logic to show a non local type change
@@ -55,7 +57,7 @@ function CaseType(props) {
55
57
  React.createElement(Trans, null, "Support type"),
56
58
  React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localTypeChange, value: props.selectedType, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.type) }),
57
59
  React.createElement("span", { className: `form-required ${isExportingPDF ? 'hide-in-pdf' : ''}`, "aria-hidden": true }, "*")),
58
- React.createElement(Select, { "data-tracking-id": "case-details-type-selector", isOpen: isOpen, selected: props.selectedType, onSelect: (event, val) => onCaseTypeChange(val), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, popperProps: { direction: 'down', enableFlip: false }, shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true },
60
+ React.createElement(Select, { "data-tracking-id": "case-details-type-selector", isOpen: isOpen, selected: selected, onSelect: (event, val) => onCaseTypeChange(val), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, popperProps: { direction: 'down', enableFlip: false }, shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true },
59
61
  React.createElement(SelectList, null, (props.allTypes || []).map((option) => (React.createElement(SelectOption, { value: option, key: option }, option)))))));
60
62
  }
61
63
  CaseType.defaultProps = defaultProps;
@@ -297,7 +297,7 @@ export default function CaseOverview(props) {
297
297
  React.createElement("div", { className: "form-wrapper" },
298
298
  React.createElement(CaseStatus, { selectedStatus: status, onStatusChange: onStatusChange, isDisabled: !canManageCase || caseOverviewState.allCaseStatuses.isFetching, allStatuses: caseOverviewState.allCaseStatuses.data, isFetching: caseOverviewState.caseStatusUpdating && isCaseUpdating, hasError: caseOverviewState.allCaseStatuses.isError })),
299
299
  React.createElement("div", { className: "form-wrapper" },
300
- React.createElement(CaseType, { selectedType: switchedCaseType, onTypeChange: onTypeChange, isDisabled: !canManageCase || allCaseTypes.isFetching || isCaseUpdating, allTypes: newCaseTypesArray, isFetching: caseOverviewState.caseTypeUpdating && isCaseUpdating, hasError: allCaseTypes.isError })),
300
+ React.createElement(CaseType, { selectedType: switchedCaseType, onTypeChange: onTypeChange, isDisabled: !canManageCase || allCaseTypes.isFetching, allTypes: newCaseTypesArray, isFetching: caseOverviewState.caseTypeUpdating && isCaseUpdating, hasError: allCaseTypes.isError })),
301
301
  React.createElement("div", { className: "form-wrapper" },
302
302
  React.createElement(Severity, { onSeverityChange: onSeverityChange, isDisabled: !canManageCase, isFetching: caseOverviewState.caseSeverityUpdating && isCaseUpdating })))),
303
303
  React.createElement(ExpandableSection, { className: "case-details-main", toggleText: t('Case information'), isExpanded: isDetailsExpanded, onToggle: onToggleDetails },
@@ -4,5 +4,5 @@ import React from 'react';
4
4
  import { Trans } from 'react-i18next';
5
5
  export default function CaseOpenShiftPopover() {
6
6
  return (React.createElement(Popover, { "aria-label": "Cluster Id Info", position: PopoverPosition.auto, bodyContent: React.createElement(Trans, null, "Cluster IDs give us the ability to use connected customer tools and services to debug your cluster in conjunction with this support case."), closeBtnAriaLabel: "Close" },
7
- React.createElement(QuestionCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-xs" })));
7
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs" })));
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProductVersion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/ProductVersion.tsx"],"names":[],"mappings":"AAyCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AASvE,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,qBA4WrC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ProductVersion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/ProductVersion.tsx"],"names":[],"mappings":"AAyCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AASvE,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,qBA0WrC;AAED,eAAe,eAAe,CAAC"}
@@ -32,13 +32,12 @@ function ProductNVersion(props) {
32
32
  const [isVersionUpdating, setIsVersionUpdating] = useState(false);
33
33
  const [isOpen, setIsOpen] = useState(false);
34
34
  const textInputRef = useRef();
35
- const { product, version, caseNumber, contactSSOName, versionsDetails, isCaseUpdating } = useCaseSelector((state) => ({
35
+ const { product, version, caseNumber, contactSSOName, versionsDetails } = useCaseSelector((state) => ({
36
36
  product: state.caseDetails.product,
37
37
  version: state.caseDetails.version,
38
38
  contactSSOName: state.caseDetails.contactSSOName,
39
39
  caseNumber: state.caseDetails.caseNumber,
40
40
  versionsDetails: state.versionsDetails,
41
- isCaseUpdating: state.isCaseUpdating,
42
41
  }), isEqual);
43
42
  const caseDispatch = useCaseDispatch();
44
43
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
@@ -252,7 +251,6 @@ function ProductNVersion(props) {
252
251
  React.createElement(Trans, null, "Version")),
253
252
  React.createElement(SingleSelectDropdown, { className: "open-case-version", id: "version-dropdown", placeholder: t(`Select a version`), selected: getVersionSelectedDropdownOption, options: getVersionDropdownOptions, isInvalid: checkIfVersionIsInvalid, isDisabled: isVersionUpdating ||
254
253
  (allProducts.isFetching && !allProducts.isError) ||
255
- isEmpty(selectedProductLocal) ||
256
- isCaseUpdating, onSelect: onVersionChange, isLoading: isVersionUpdating || (isSEProductApiIsDown && versionsDetails.isFetching), dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
254
+ isEmpty(selectedProductLocal), onSelect: onVersionChange, isLoading: isVersionUpdating || (isSEProductApiIsDown && versionsDetails.isFetching), dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
257
255
  }
258
256
  export default ProductNVersion;
@@ -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,qBA+iBxC"}
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"}
@@ -188,8 +188,7 @@ export function PostComment(props) {
188
188
  if (commentText) {
189
189
  try {
190
190
  setIsProcessing(true);
191
- const newCommentText = commentText.replace(/(^|\n)(-\s.+)(\n(?![-\s]))/g, '$1$2\n\n');
192
- yield request({ caseNumber, commentBody: newCommentText, isPublic, contentType: commentType });
191
+ yield request({ caseNumber, commentBody: commentText, isPublic, contentType: commentType });
193
192
  checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), status);
194
193
  !isPublic && setIsPublic(true);
195
194
  addUserToNotifyList();
@@ -17,15 +17,13 @@
17
17
  }
18
18
 
19
19
  .right-node {
20
+ white-space: nowrap;
20
21
  overflow: hidden;
21
22
  text-overflow: ellipsis;
22
23
  width: 100%;
23
24
  }
24
-
25
25
  .content-date-right-history {
26
- display: -webkit-box;
27
- -webkit-line-clamp: 2;
28
- -webkit-box-orient: vertical;
26
+ white-space: nowrap;
29
27
  overflow: hidden;
30
28
  text-overflow: ellipsis;
31
29
  }
@@ -164,6 +162,7 @@
164
162
  text-align: right;
165
163
  line-height: 30px;
166
164
  white-space: nowrap;
165
+ overflow: hidden;
167
166
  }
168
167
 
169
168
  .content-date-right-history {
@@ -320,20 +319,41 @@ ul#case-history-paginated-timeline {
320
319
  }
321
320
  }
322
321
 
323
- @media screen and (max-width: 850px) {
324
- .contentTimeline {
325
- padding: 16px 8px;
322
+ .timeline-highlight {
323
+ background-color: #fff3cd;
324
+ padding: 0;
325
+ margin: 0;
326
+ border-radius: 2px;
327
+ }
328
+
329
+ @media screen and (max-width: 768px) {
330
+ .timeline::after {
331
+ left: 20px;
332
+ }
333
+
334
+ .timeline-node {
335
+ flex-direction: column;
326
336
  }
327
337
 
328
- .content-date-left-history {
329
- font-size: 15px;
338
+ .left-node,
339
+ .right-node {
340
+ max-width: 100%;
341
+ padding: 0;
330
342
  }
331
343
 
332
- .content-time-left-history {
333
- font-size: 13px;
344
+ .timeline-avatar,
345
+ .timeline-marker {
346
+ left: 0%;
347
+ transform: translateX(-50%);
334
348
  }
335
349
 
336
- .content-date-right-history {
337
- font-size: 14px;
350
+ .right-node::before {
351
+ left: 20px;
352
+ border-width: 10px 10px 10px 0;
353
+ border-color: transparent white transparent transparent;
354
+ }
355
+
356
+ .contentTimeline {
357
+ margin-left: 40px;
338
358
  }
339
359
  }
@@ -29,9 +29,9 @@ export const CaseSummary = (props) => {
29
29
  const [caseSummaryData, setCaseSummaryData] = useState(getApiResourceObject(null, true));
30
30
  const [caseSummaryState, setCaseSummaryState] = useState();
31
31
  const [errorMessage, setErrorMessage] = useState('');
32
- const { caseComments, caseLanguage } = useCaseSelector((state) => ({
33
- caseComments: state.caseDetails.comments,
32
+ const { caseLanguage, caseComments } = useCaseSelector((state) => ({
34
33
  caseLanguage: state.caseDetails.caseLanguage,
34
+ caseComments: state.caseDetails.comments,
35
35
  }), isEqual);
36
36
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
37
37
  const isInternal = (_b = (_a = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data) === null || _a === void 0 ? void 0 : _a.isInternal) === null || _b === void 0 ? void 0 : _b.call(_a);
@@ -43,7 +43,7 @@ export const CaseSummary = (props) => {
43
43
  setIsFeedbackModalOpen(true);
44
44
  };
45
45
  useEffect(() => {
46
- if (caseLanguage === 'ru') {
46
+ if (caseLanguage !== 'en') {
47
47
  setCaseSummaryState(CaseSummaryStates.CASE_LANGUAGE_NOT_SUPPORTED);
48
48
  return;
49
49
  }
@@ -25,7 +25,7 @@ export function CaseSummaryErrorMessage(props) {
25
25
  'The AI is either currently unavailable or is processing case details or try reloading the page.';
26
26
  break;
27
27
  case 'case_language_not_supported':
28
- message = `The AI case summary is not available in this language. We're working on adding more languages soon.`;
28
+ message = `The AI case summary is available in English. We're working on adding more languages soon.`;
29
29
  break;
30
30
  case 'input_comments_too_large':
31
31
  message = `${shared} overall input comments text is too large.`;
@@ -1 +1 @@
1
- {"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,UAAU,MAAM;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,qBAqKhD"}
1
+ {"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,UAAU,MAAM;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,qBAsKhD"}
@@ -7,11 +7,13 @@ import isEqual from 'lodash/isEqual';
7
7
  import React, { useEffect, useRef, useState } from 'react';
8
8
  import { Trans, useTranslation } from 'react-i18next';
9
9
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
10
+ import { useAB } from '../../hooks/useAB';
10
11
  import { CASE_DETAILS_ISSUE_LIMIT } from '../../reducers/CaseConstNTypes';
11
12
  import { getUpdatedDescription } from '../../reducers/CaseHelpers';
12
13
  import { setCaseDetails } from '../../reducers/CaseReducer';
13
14
  export default function Description(props) {
14
15
  const { t } = useTranslation();
16
+ const { isVariationA } = useAB();
15
17
  const { issue, environment, periodicityOfIssue, timeFramesAndUrgency, v3ClusterName, version, product, summary } = useCaseSelector((state) => ({
16
18
  description: state.caseDetails.description,
17
19
  issue: state.caseDetails.issue,
@@ -78,7 +80,7 @@ export default function Description(props) {
78
80
  isKT1Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
79
81
  React.createElement(Popover, { isVisible: isOpen, shouldClose: handleClose, headerContent: headerPopoverContent, bodyContent: PopoverContent },
80
82
  React.createElement(OutlinedQuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", onClick: handleToggle }))))), labelProps: { htmlFor: 'get-support-ktQ1-issue' }, content: issue, allowInlineEdit: !!props.inlineEditable, hideSaveCancel: !!props.hideSaveCancel, initialIsEditing: isEmpty(issue), usePreformattedTag: true, saveOnBlur: true },
81
- React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `description-textarea ${isEmpty(version) || isEmpty(summary) || isEmpty(product) ? 'kt1-disabled' : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, disabled: isEmpty(version) || isEmpty(summary) || isEmpty(product), onChange: (e, value) => onKTQ1IssueChange(value, e), "data-tracking-id": "get-support-ktQ1-issue", placeholder: t('i18nKeyPlaceHolderDetail', `The more detail that you include, the easier it is for us to help you. \nExample: \nI'm unable to start the SSHD service and am receiving the error message "Bad yes/no \nargument for ShowPatchLevel parameter"`), resizeOrientation: "vertical", validated: props.isSummarizeInvalid ? 'error' : 'default', rows: isLgScreenHeight ? 10 : 4, ref: textAreaRef, onClick: handleTextAreaClick }),
83
+ React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `description-textarea ${isEmpty(version) || isEmpty(summary) || isEmpty(product) ? 'kt1-disabled' : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, disabled: isEmpty(version) || isEmpty(summary) || isEmpty(product), onChange: (e, value) => onKTQ1IssueChange(value, e), "data-tracking-id": "get-support-ktQ1-issue", placeholder: t('i18nKeyPlaceHolderDetail', `The more detail that you include, the easier it is for us to help you. \nExample: \nI'm unable to start the SSHD service and am receiving the error message "Bad yes/no \nargument for ShowPatchLevel parameter"`), resizeOrientation: "vertical", validated: props.isSummarizeInvalid ? 'error' : 'default', rows: isVariationA ? (isLgScreenHeight ? 20 : 12) : isLgScreenHeight ? 15 : 10, ref: textAreaRef, onClick: handleTextAreaClick }),
82
84
  React.createElement("p", { className: "form-instructions pf-v6-u-danger-color-100", "data-tracking-id": "large-20k-warning-ktQ1-environment" }, `${(issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT
83
85
  ? `This description exceeds ${CASE_DETAILS_ISSUE_LIMIT} characters. Try shortening it.`
84
86
  : ''}`)));
@@ -1 +1 @@
1
- {"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChE,oBAAoB,EAAE,OAAO,CAAC;CACjC;AASD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACxD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBA0Q9B;kBA1QQ,QAAQ;;;AA4QjB,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChE,oBAAoB,EAAE,OAAO,CAAC;CACjC;AASD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACxD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAyQ9B;kBAzQQ,QAAQ;;;AA2QjB,eAAe,QAAQ,CAAC"}
@@ -160,7 +160,7 @@ function Severity(props) {
160
160
  ' ',
161
161
  React.createElement("a", { href: "/support/policy/severity", target: "_blank" },
162
162
  React.createElement(Trans, null, "Red Hat Support Severity Level Definitions"))), closeBtnAriaLabel: "Close" },
163
- React.createElement(QuestionCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-xs icon-size cursor-pointer", "aria-label": t(`Support Severity Level info`) }))),
163
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": t(`Support Severity Level info`) }))),
164
164
  "\u00A0",
165
165
  filteredSeverities.filter((s) => s.disabled).length !== 0 && (React.createElement(Tooltip, { position: TooltipPosition.top, content: React.createElement(Trans, null, "Only the enabled severity levels are supported for selected product and version.") },
166
166
  React.createElement(Icon, { size: "sm" },
@@ -1 +1 @@
1
- {"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAoJlC;kBApJQ,YAAY;;;AAsJrB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAmJlC;kBAnJQ,YAAY;;;AAqJrB,eAAe,YAAY,CAAC"}
@@ -97,7 +97,7 @@ function SupportLevel(props) {
97
97
  "Learn more about our",
98
98
  ' ',
99
99
  React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
100
- React.createElement(QuestionCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-xs icon-size cursor-pointer", "aria-label": "Support Level Info" })),
100
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": "Support Level Info" })),
101
101
  React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') }),
102
102
  isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
103
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA+dzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAudzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -71,18 +71,12 @@ function OpenshiftDropdownV4(props) {
71
71
  });
72
72
  const onToggle = () => setIsOpen(!isOpen);
73
73
  const onViewMoreClick = () => __awaiter(this, void 0, void 0, function* () {
74
- setClustersRawResponse((prev) => {
75
- const page = Math.floor(prev.length / PER_PAGE) + 1;
76
- fetchAccountClusters(inputVal, page).then((fetchedClusters) => {
77
- setClustersRawResponse((latest) => {
78
- const clusterResponse = [...latest, ...((fetchedClusters === null || fetchedClusters === void 0 ? void 0 : fetchedClusters.items) || [])];
79
- setTotalResultsNo(fetchedClusters.total);
80
- setClustersSelectOptions(getClusterOptions(clusterResponse));
81
- return clusterResponse;
82
- });
83
- });
84
- return prev;
85
- });
74
+ const page = Math.floor(clustersRawResponse.length / PER_PAGE) + 1;
75
+ const fetchedClusters = yield fetchAccountClusters(inputVal, page);
76
+ const clusterResponse = [...clustersRawResponse, ...((fetchedClusters === null || fetchedClusters === void 0 ? void 0 : fetchedClusters.items) || [])];
77
+ setClustersRawResponse(clusterResponse);
78
+ setTotalResultsNo(fetchedClusters.total);
79
+ setClustersSelectOptions(getClusterOptions(clusterResponse));
86
80
  });
87
81
  const onSelect = (event, selectedCluster) => __awaiter(this, void 0, void 0, function* () {
88
82
  if (selectedCluster.type === 'checkbox') {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenCase.d.ts","sourceRoot":"","sources":["../../../../src/components/OpenCase/OpenCase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMlE,MAAM,WAAW,MAAM;IACnB,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,EAAE,OAAO,CAAC;IAC1C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAuC7C"}
1
+ {"version":3,"file":"OpenCase.d.ts","sourceRoot":"","sources":["../../../../src/components/OpenCase/OpenCase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMlE,MAAM,WAAW,MAAM;IACnB,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,EAAE,OAAO,CAAC;IAC1C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,MAAM,qBA4B7C"}
@@ -1,22 +1,16 @@
1
1
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
2
- import isEqual from 'lodash/isEqual';
3
2
  import React from 'react';
4
- import { useCaseSelector } from '../../context/CaseContext';
5
3
  import { AccountSelector } from '../AccountInfo/AccountSelector';
6
4
  import { OwnerSelector } from '../AccountInfo/OwnerSelector';
7
5
  import ProductSelector from '../ProductSelector/ProductSelector';
8
6
  import SupportTypeSelectorPage from './SupportTypeSelectorPage';
9
7
  export default function OpenCase(props) {
10
8
  const canChangeAccountInfo = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ACCOUNT_AND_OWNER);
11
- const { ABTestVariation } = useCaseSelector((state) => ({
12
- ABTestVariation: state.ABTestVariation,
13
- }), isEqual);
14
- const isATestvariation = ABTestVariation === 'A';
15
9
  return (React.createElement("form", null,
16
10
  canChangeAccountInfo && (React.createElement(React.Fragment, null,
17
11
  React.createElement(AccountSelector, { "data-tracking-id": "get-support-account-selector" }),
18
12
  React.createElement(OwnerSelector, { "data-tracking-id": "get-support-owner-selector" }))),
19
- isATestvariation && (React.createElement("div", { className: "form-group" },
20
- React.createElement(ProductSelector, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendations: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: true }))),
13
+ React.createElement("div", { className: "form-group" },
14
+ React.createElement(ProductSelector, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendations: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: true })),
21
15
  React.createElement(SupportTypeSelectorPage, null)));
22
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EAoLvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EAsKvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -33,11 +33,10 @@ const AllProductsSelector = forwardRef((props, ref) => {
33
33
  var _a, _b;
34
34
  const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
35
35
  const caseDispatch = useCaseDispatch();
36
- const { product, version, contactSSOName, ABTestVariation } = useCaseSelector((state) => ({
36
+ const { product, version, contactSSOName } = useCaseSelector((state) => ({
37
37
  product: state.caseDetails.product,
38
38
  version: state.caseDetails.version,
39
39
  contactSSOName: state.caseDetails.contactSSOName,
40
- ABTestVariation: state.ABTestVariation,
41
40
  }), isEqual);
42
41
  const { topContentState: { topContent }, } = useContext(TCStateContext);
43
42
  const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
@@ -80,25 +79,14 @@ const AllProductsSelector = forwardRef((props, ref) => {
80
79
  RouteUtils.updateQueryParams(props.routeProps, newParams);
81
80
  }
82
81
  const entitledProducts = filter(allProducts.data.productsResult, (p) => p.isEntitledProduct);
83
- const isATestvariation = ABTestVariation === 'A';
84
- const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
85
- // Determine whether to render the ProductVersionDropdownSelector
86
82
  const renderProductVersionDropdownSelector = (activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
87
83
  !props.caseCreateExperience) ||
88
84
  activeSection === AppRouteSections.GET_SUPPORT ||
89
- isBTestvariation ||
90
- (isATestvariation && (props.isOnGetSupportPage || props.isOnReviewPage));
91
- // Determine whether to render the OpenCaseIssue component
92
- const renderOpenCaseIssue = (isBTestvariation &&
93
- (activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
94
- activeSection === AppRouteSections.REVIEW ||
95
- activeSection === AppRouteSections.SUBMIT_CASE)) ||
96
- (isATestvariation &&
97
- (activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
98
- activeSection === AppRouteSections.REVIEW ||
99
- activeSection === AppRouteSections.SUBMIT_CASE)) ||
100
- (!props.caseCreateExperience &&
101
- activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT));
85
+ props.isOnGetSupportPage ||
86
+ props.isOnReviewPage;
87
+ const renderOpenCaseIssue = activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
88
+ activeSection === AppRouteSections.REVIEW ||
89
+ activeSection === AppRouteSections.SUBMIT_CASE;
102
90
  return (React.createElement(React.Fragment, null,
103
91
  renderProductVersionDropdownSelector && (React.createElement("div", { className: "form-group product-selector-wrapper" },
104
92
  React.createElement("div", { className: "all-product-selector-dropdown" },
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBA0GpD"}
1
+ {"version":3,"file":"ProductSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAqGpD"}
@@ -8,13 +8,12 @@ import React, { useContext, useEffect, useRef } from 'react';
8
8
  import { Trans, useTranslation } from 'react-i18next';
9
9
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
10
10
  import { RouteContext } from '../../context/RouteContext';
11
+ import { useAB } from '../../hooks/useAB';
11
12
  import { useFetchCVEData } from '../../hooks/useFetchCVEData';
12
13
  import { setCaseState } from '../../reducers/CaseReducer';
13
14
  import { CveModal } from '../Cve/CveModal';
14
- import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
15
15
  import Recommendations from '../Recommendations/Recommendations';
16
16
  import { AllProductsSelector } from './AllProductsSelector';
17
- import { ProductSelectorLoader } from './ProductSelectorLoader';
18
17
  /**
19
18
  * Responsible for:
20
19
  * # Setting case state with product version from url.
@@ -26,18 +25,16 @@ import { ProductSelectorLoader } from './ProductSelectorLoader';
26
25
  export default function ProductSelector(props) {
27
26
  const { cveRecommendation } = useFetchCVEData();
28
27
  const { t } = useTranslation();
28
+ const { isVariationA } = useAB();
29
29
  const { globalMetadataState: { allProducts, pcmConfig }, } = useContext(GlobalMetadataStateContext);
30
- const { product, version, ABTestVariation } = useCaseSelector((state) => ({
30
+ const { product, version } = useCaseSelector((state) => ({
31
31
  product: state.caseDetails.product,
32
32
  version: state.caseDetails.version,
33
- ABTestVariation: state.ABTestVariation,
34
33
  }), isEqual);
35
34
  const { routeState: { isCaseCreate }, } = useContext(RouteContext);
36
35
  const caseDispatch = useCaseDispatch();
37
36
  const cveModalEnabledConfig = getConfigField(pcmConfig.data, 'isCVEModalEnabled', PCM_CONFIG_FIELD_TYPE.STRING);
38
37
  const isCVEModalEnabled = cveModalEnabledConfig === '1';
39
- const isATestvariation = ABTestVariation === 'A';
40
- const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
41
38
  useEffect(() => {
42
39
  if (!isCVEModalEnabled) {
43
40
  setCaseState(caseDispatch, {
@@ -56,11 +53,8 @@ export default function ProductSelector(props) {
56
53
  (cveRecommendation === null || cveRecommendation === void 0 ? void 0 : cveRecommendation.length) !== 0 && isCVEModalEnabled && React.createElement(CveModal, null),
57
54
  React.createElement(AllProductsSelector, { routeProps: props.routeProps, checkEntitledProduct: isCaseCreate ? true : false, ref: productSelectorRef, isOnSummaryPage: true, isOnGetSupportPage: props === null || props === void 0 ? void 0 : props.isOnGetSupportPage, caseCreateExperience: props.caseCreateExperience })));
58
55
  return (React.createElement(React.Fragment, null,
59
- isBTestvariation && allProducts.isFetching && React.createElement(ProductSelectorLoader, null),
60
56
  React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
61
- isBTestvariation
62
- ? !allProducts.isFetching && !allProducts.isError && rederProductSelect
63
- : isATestvariation && rederProductSelect,
57
+ rederProductSelect,
64
58
  product === 'Subscription Watch' && (React.createElement(Alert, { isInline: true, variant: AlertVariant.warning, title: React.createElement(Trans, null,
65
59
  ' ',
66
60
  "If you're having a subscription issue that doesn't relate to",
@@ -71,8 +65,7 @@ export default function ProductSelector(props) {
71
65
  React.createElement("a", { href: "/support/contact", "data-tracking-id": "contact-customer-service" }, "customer service"),
72
66
  ' ',
73
67
  "for help.") })),
74
- isBTestvariation && React.createElement(EARuleWidget, null),
75
- !(props === null || props === void 0 ? void 0 : props.isOnGetSupportPage) && (React.createElement("div", { className: "suggestions-result-section" },
68
+ !isVariationA && !(props === null || props === void 0 ? void 0 : props.isOnGetSupportPage) && (React.createElement("div", { className: "suggestions-result-section" },
76
69
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
77
70
  React.createElement(Recommendations, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendationsValue: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef }))))))));
78
71
  }
@@ -2,8 +2,6 @@ import { IClusterRecommendation } from '@cee-eng/hydrajs/@types/api/pcm/preCaseD
2
2
  import React from 'react';
3
3
  interface IProps {
4
4
  clusterRecommendations: IClusterRecommendation[];
5
- onViewMoreRecommendation?: () => void;
6
- displayVeiwMoreBtn?: boolean;
7
5
  }
8
6
  export declare function ClusterRecommendationItems(props: IProps): React.JSX.Element;
9
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAI5F,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;IACjD,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,qBA4FvD"}
1
+ {"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAI5F,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,qBAkFvD"}
@@ -1,5 +1,5 @@
1
1
  import { pcm } from '@cee-eng/hydrajs';
2
- import { Button, Label } from '@patternfly/react-core';
2
+ import { Label } from '@patternfly/react-core';
3
3
  import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon';
4
4
  import isEqual from 'lodash/isEqual';
5
5
  import React, { useContext, useEffect } from 'react';
@@ -29,19 +29,16 @@ export function ClusterRecommendationItems(props) {
29
29
  createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, getRulesToSave('', '', recsWithUrl), JSON.stringify({ product, version, openshiftClusterID }));
30
30
  // eslint-disable-next-line react-hooks/exhaustive-deps
31
31
  }, [props.clusterRecommendations, activeSessionId]);
32
- return (React.createElement("pfe-accordion", null,
33
- props.clusterRecommendations.map((rule, i) => (React.createElement(React.Fragment, null,
34
- React.createElement("pfe-accordion-header", null,
35
- React.createElement("p", null, rule.description)),
36
- React.createElement("pfe-accordion-panel", null,
37
- React.createElement("p", null,
38
- React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
39
- React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
40
- React.createElement("p", null, rule.details || ''),
41
- React.createElement("a", { onClick: (e) => onResourceClick(e, rule, i), className: "pf-v6-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: detailsUrl, target: "_blank", rel: "noopener noreferrer" },
42
- React.createElement(Trans, null,
43
- "View details and remediation steps ",
44
- React.createElement(ArrowRightIcon, { "aria-hidden": "true" }))))))),
45
- props.displayVeiwMoreBtn && (React.createElement(Button, { className: "pf-v6-u-p-md", variant: "link", onClick: props.onViewMoreRecommendation, "data-tracking-id": "cluster-recs-view-more" },
46
- React.createElement(Trans, null, "View more recommendations")))));
32
+ return (React.createElement("pfe-accordion", null, props.clusterRecommendations.map((rule, i) => (React.createElement(React.Fragment, null,
33
+ React.createElement("pfe-accordion-header", null,
34
+ React.createElement("h3", null, rule.description)),
35
+ React.createElement("pfe-accordion-panel", null,
36
+ React.createElement("p", null,
37
+ React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
38
+ React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
39
+ React.createElement("p", null, rule.details || ''),
40
+ React.createElement("a", { onClick: (e) => onResourceClick(e, rule, i), className: "pf-v6-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: detailsUrl, target: "_blank", rel: "noopener noreferrer" },
41
+ React.createElement(Trans, null,
42
+ "View details and remediation steps ",
43
+ React.createElement(ArrowRightIcon, { "aria-hidden": "true" })))))))));
47
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRecommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendations.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAa1C,UAAU,MAAM;IACZ,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBAuD3D"}
1
+ {"version":3,"file":"ClusterRecommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendations.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAa1C,UAAU,MAAM;IACZ,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBAgE3D"}