@rh-support/manage 2.6.1 → 2.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/lib/esm/ManageTabs.d.ts.map +1 -1
  2. package/lib/esm/ManageTabs.js +48 -20
  3. package/lib/esm/Routes.d.ts +1 -0
  4. package/lib/esm/Routes.d.ts.map +1 -1
  5. package/lib/esm/Routes.js +6 -0
  6. package/lib/esm/components/Configs/ConfigsTable.d.ts.map +1 -1
  7. package/lib/esm/components/Configs/ConfigsTable.js +33 -9
  8. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.d.ts +12 -0
  9. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.d.ts.map +1 -0
  10. package/lib/esm/components/Groups/AddMembersModal/AddMembersModal.js +80 -0
  11. package/lib/esm/components/Groups/AddMembersModal/index.d.ts +2 -0
  12. package/lib/esm/components/Groups/AddMembersModal/index.d.ts.map +1 -0
  13. package/lib/esm/components/Groups/AddMembersModal/index.js +1 -0
  14. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts +5 -3
  15. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts.map +1 -1
  16. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.js +21 -14
  17. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts +1 -0
  18. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts.map +1 -1
  19. package/lib/esm/components/Groups/GroupSelect/GroupSelect.js +240 -105
  20. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.d.ts.map +1 -1
  21. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.js +19 -14
  22. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.d.ts.map +1 -1
  23. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.js +187 -77
  24. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.d.ts.map +1 -1
  25. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.js +15 -12
  26. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.d.ts.map +1 -1
  27. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.js +106 -67
  28. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.d.ts.map +1 -1
  29. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts.map +1 -1
  30. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js +15 -22
  31. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.d.ts +19 -0
  32. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.d.ts.map +1 -0
  33. package/lib/esm/components/ManageCaseLabels/AddEditCaseLabelModal.js +97 -0
  34. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.d.ts +3 -0
  35. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.d.ts.map +1 -0
  36. package/lib/esm/components/ManageCaseLabels/ManageCaseLabelsTab.js +220 -0
  37. package/lib/esm/components/ManageCaseLabels/index.d.ts +2 -0
  38. package/lib/esm/components/ManageCaseLabels/index.d.ts.map +1 -0
  39. package/lib/esm/components/ManageCaseLabels/index.js +1 -0
  40. package/lib/esm/components/ManageCaseLabels/types.d.ts +6 -0
  41. package/lib/esm/components/ManageCaseLabels/types.d.ts.map +1 -0
  42. package/lib/esm/components/ManageCaseLabels/types.js +1 -0
  43. package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.js +4 -4
  44. package/lib/esm/components/ManageExpiredContents/ExpiredContentHeader.js +1 -1
  45. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.d.ts.map +1 -1
  46. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.js +12 -12
  47. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.js +3 -3
  48. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts.map +1 -1
  49. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.js +43 -35
  50. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.d.ts.map +1 -1
  51. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.js +8 -5
  52. package/lib/esm/components/ManagePartnerships/PartnershipsList.d.ts.map +1 -1
  53. package/lib/esm/components/ManagePartnerships/PartnershipsList.js +19 -12
  54. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.d.ts.map +1 -1
  55. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.js +17 -20
  56. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.d.ts.map +1 -1
  57. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.js +39 -27
  58. package/lib/esm/components/ManagePartnerships/Requests.d.ts +1 -0
  59. package/lib/esm/components/ManagePartnerships/Requests.d.ts.map +1 -1
  60. package/lib/esm/components/ManagePartnerships/Requests.js +22 -9
  61. package/lib/esm/components/ManagePartnerships/index.js +1 -1
  62. package/lib/esm/components/ManagePreferences/PreferencesBody.d.ts.map +1 -1
  63. package/lib/esm/components/ManagePreferences/PreferencesBody.js +1 -5
  64. package/lib/esm/components/ManagePreferences/PreferencesHeader.js +1 -1
  65. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts +1 -1
  66. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts.map +1 -1
  67. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.js +26 -27
  68. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.d.ts.map +1 -1
  69. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.js +6 -6
  70. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.d.ts.map +1 -1
  71. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.js +8 -9
  72. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.d.ts.map +1 -1
  73. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.js +77 -63
  74. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.d.ts.map +1 -1
  75. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.js +3 -4
  76. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.d.ts.map +1 -1
  77. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.js +47 -103
  78. package/lib/esm/components/ManageTable/ManageTable.d.ts +3 -4
  79. package/lib/esm/components/ManageTable/ManageTable.d.ts.map +1 -1
  80. package/lib/esm/components/ManageTable/ManageTable.js +12 -18
  81. package/lib/esm/components/ManageTags/TagsManager.d.ts.map +1 -1
  82. package/lib/esm/components/ManageTags/TagsManager.js +58 -50
  83. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts.map +1 -1
  84. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.js +35 -26
  85. package/lib/esm/components/NotificationEmails/index.d.ts.map +1 -1
  86. package/lib/esm/components/NotificationEmails/index.js +10 -7
  87. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.d.ts.map +1 -1
  88. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.js +2 -3
  89. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimitGuidelines.js +6 -6
  90. package/lib/esm/components/TopContentManagement/CategoryLimit/QuestionAnswer.js +1 -1
  91. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.d.ts.map +1 -1
  92. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.js +7 -9
  93. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.d.ts +1 -0
  94. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.d.ts.map +1 -1
  95. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricClickCount.js +2 -2
  96. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.d.ts.map +1 -1
  97. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.js +12 -10
  98. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts +2 -3
  99. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts.map +1 -1
  100. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.js +16 -9
  101. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.d.ts.map +1 -1
  102. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.js +15 -16
  103. package/lib/esm/components/TopContentManagement/NoTopContentFound.d.ts.map +1 -1
  104. package/lib/esm/components/TopContentManagement/NoTopContentFound.js +14 -15
  105. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.d.ts.map +1 -1
  106. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.js +47 -39
  107. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.d.ts.map +1 -1
  108. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.js +12 -6
  109. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategoryNew.js +3 -3
  110. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.d.ts.map +1 -1
  111. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.js +11 -7
  112. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.d.ts.map +1 -1
  113. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.js +62 -53
  114. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItemLink.d.ts.map +1 -1
  115. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItemLink.js +2 -3
  116. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.d.ts.map +1 -1
  117. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.js +8 -9
  118. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestion.js +2 -2
  119. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHint.js +4 -5
  120. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.d.ts.map +1 -1
  121. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.js +51 -25
  122. package/lib/esm/components/TopContentManagement/TopContentHeader.js +1 -1
  123. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.d.ts.map +1 -1
  124. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.js +64 -32
  125. package/lib/esm/constants/GroupSelectActions.d.ts +2 -1
  126. package/lib/esm/constants/GroupSelectActions.d.ts.map +1 -1
  127. package/lib/esm/constants/GroupSelectActions.js +1 -0
  128. package/lib/esm/constants/PartnershipLink.d.ts +3 -0
  129. package/lib/esm/constants/PartnershipLink.d.ts.map +1 -0
  130. package/lib/esm/constants/PartnershipLink.js +2 -0
  131. package/lib/esm/context/ExpiredContentContextProvider.d.ts.map +1 -1
  132. package/lib/esm/hooks/useCaseGroupGraphQL.d.ts +42 -0
  133. package/lib/esm/hooks/useCaseGroupGraphQL.d.ts.map +1 -0
  134. package/lib/esm/hooks/useCaseGroupGraphQL.js +117 -0
  135. package/lib/esm/hooks/useCaseLabelGraphQL.d.ts +26 -0
  136. package/lib/esm/hooks/useCaseLabelGraphQL.d.ts.map +1 -0
  137. package/lib/esm/hooks/useCaseLabelGraphQL.js +104 -0
  138. package/lib/esm/hooks/useCurrentUserContact.d.ts +8 -0
  139. package/lib/esm/hooks/useCurrentUserContact.d.ts.map +1 -0
  140. package/lib/esm/hooks/useCurrentUserContact.js +74 -0
  141. package/lib/esm/hooks/useVersionsDiffer.d.ts.map +1 -1
  142. package/lib/esm/index.d.ts.map +1 -1
  143. package/lib/esm/index.js +2 -0
  144. package/lib/esm/reducers/ExpiredContentReducer.d.ts.map +1 -1
  145. package/lib/esm/reducers/ManagePartnershipsReducer.d.ts.map +1 -1
  146. package/lib/esm/reducers/TagManagmentReducer.d.ts +1 -1
  147. package/lib/esm/reducers/TagManagmentReducer.d.ts.map +1 -1
  148. package/lib/esm/reducers/TopContentHelpers.d.ts.map +1 -1
  149. package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
  150. package/lib/esm/reducers/TopContentReducer.js +5 -2
  151. package/lib/esm/scss/_main.scss +266 -24
  152. package/lib/esm/scss/_pf-overrides.scss +66 -53
  153. package/lib/esm/scss/index.scss +5 -4
  154. package/lib/esm/utils/caseGroupMapper.d.ts +18 -0
  155. package/lib/esm/utils/caseGroupMapper.d.ts.map +1 -0
  156. package/lib/esm/utils/caseGroupMapper.js +50 -0
  157. package/package.json +21 -22
@@ -1,10 +1,10 @@
1
1
  import { products as productsApi } from '@cee-eng/hydrajs';
2
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
3
- import CheckIcon from '@patternfly/react-icons/dist/js/icons/check-icon';
4
- import { useFetch } from '@rh-support/components';
2
+ import { Button, MenuToggle, Select, SelectOption, TextInputGroup, TextInputGroupMain, } from '@patternfly/react-core';
3
+ import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
4
+ import { SingleSelectDropdown, useFetch } from '@rh-support/components';
5
5
  import { getUniqueSortedVersions, getVersion } from '@rh-support/utils';
6
6
  import isEmpty from 'lodash/isEmpty';
7
- import React, { useEffect, useState } from 'react';
7
+ import React, { useEffect, useRef, useState } from 'react';
8
8
  import { Trans, useTranslation } from 'react-i18next';
9
9
  import { useTopContentDispatchContext } from '../../context/TopContentProvider';
10
10
  import { setIsAddingCategory } from '../../reducers/TopContentReducer';
@@ -41,10 +41,14 @@ function TopContentProductVersionSelector(props) {
41
41
  const { request: getProducts, isFetching: isLoadingProducts, data: products, } = useFetch(productsApi.getProducts, {
42
42
  initialData: [],
43
43
  });
44
- const { request: getProductVersions, isFetching: isLoadingVersions, data: versions, } = useFetch(productsApi.getProductVersions, { initialData: [], postProcessor: postVersionsProcessor });
44
+ const { request: getProductVersions, data: versions } = useFetch(productsApi.getProductVersions, {
45
+ initialData: [],
46
+ postProcessor: postVersionsProcessor,
47
+ });
45
48
  const [isProductOpen, setIsProductOpen] = useState(false);
46
- const [isVersionOpen, setIsVersionOpen] = useState(false);
47
49
  const [selected, setSelected] = useState(undefined);
50
+ const [input, setInput] = useState('');
51
+ const textInputRef = useRef();
48
52
  const { selectedVersion } = props;
49
53
  const topContentDispatch = useTopContentDispatchContext();
50
54
  const productOptions = products === null || products === void 0 ? void 0 : products.map((p, id) => (Object.assign(Object.assign({}, p), { toString: function () {
@@ -68,9 +72,10 @@ function TopContentProductVersionSelector(props) {
68
72
  // eslint-disable-next-line react-hooks/exhaustive-deps
69
73
  }, [versions]);
70
74
  const onProductChange = (option) => {
75
+ var _a;
71
76
  setIsAddingCategory(topContentDispatch, false);
72
77
  props.onProductChange(option);
73
- getProductVersions(option.name);
78
+ getProductVersions((_a = option === null || option === void 0 ? void 0 : option.name) !== null && _a !== void 0 ? _a : '');
74
79
  };
75
80
  const onVersionChange = (option) => {
76
81
  setIsAddingCategory(topContentDispatch, false);
@@ -79,46 +84,73 @@ function TopContentProductVersionSelector(props) {
79
84
  const onProductClear = () => {
80
85
  onProductChange({ name: '', id: '' });
81
86
  setSelected(undefined);
87
+ setInput('');
82
88
  };
83
- const getProductOptions = (options) => {
84
- return options.map((product, id) => (React.createElement(SelectOption, { key: id, value: product, className: "pf-v5-c-select__menu-wrapper" },
85
- React.createElement("div", { className: "pf-v5-c-select__menu-item-main" }, product.name),
86
- selected && product.name === selected.name && (React.createElement("span", { className: "pf-v5-c-select__menu-item-icon" },
87
- React.createElement(CheckIcon, { "aria-hidden": true }))))));
88
- };
89
- const onProductFilter = (_, value) => {
90
- if (!value)
91
- return getProductOptions(productOptions);
92
- const input = new RegExp(value, 'i');
93
- const newOptions = productOptions === null || productOptions === void 0 ? void 0 : productOptions.filter((p) => input.test(p.name));
94
- return getProductOptions(newOptions);
89
+ const getProductOptions = (options, filterValue = '') => {
90
+ const filteredOptions = filterValue && filterValue !== (selected === null || selected === void 0 ? void 0 : selected.name)
91
+ ? options.filter((p) => new RegExp(filterValue, 'i').test(p.name))
92
+ : options;
93
+ if (filteredOptions.length === 0) {
94
+ return React.createElement(SelectOption, { key: "no-results" }, t('No results found'));
95
+ }
96
+ return filteredOptions.map((product, index) => (React.createElement(SelectOption, { key: index, value: product.productId, className: "pf-v6-c-select__menu-wrapper", isSelected: (selected === null || selected === void 0 ? void 0 : selected.productId) === product.productId }, product.name)));
95
97
  };
96
- const onProductToggle = (isExpanded) => {
97
- setIsProductOpen(isExpanded);
98
+ const onToggleClick = (e) => {
99
+ var _a;
100
+ setIsProductOpen((prev) => !prev);
101
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
98
102
  };
99
- const onProductSelect = (event, selection, isPlaceholder) => {
100
- onProductChange(selection);
101
- setSelected(selection);
102
- onProductToggle(false);
103
+ const onProductSelect = (e, selection) => {
104
+ const product = productOptions === null || productOptions === void 0 ? void 0 : productOptions.find((v) => v.productId === selection);
105
+ if (product) {
106
+ onProductChange(product);
107
+ setSelected(product);
108
+ setInput(product.name);
109
+ setIsProductOpen(false);
110
+ }
103
111
  };
104
- const onVersionToggle = (isExpanded) => {
105
- setIsVersionOpen(isExpanded);
112
+ const onChange = (e, value) => {
113
+ setInput(value);
114
+ if (!isProductOpen) {
115
+ setIsProductOpen(true);
116
+ }
117
+ return [];
106
118
  };
107
- const onVersionSelect = (e, selection, isPlaceholder) => {
108
- onVersionChange(selection);
109
- onVersionToggle(false);
119
+ const onVersionSelect = (selection) => {
120
+ onVersionChange(selection.value);
110
121
  };
111
122
  const productLabelId = 'tc-product-dropdown-selector';
112
123
  const versionLabelId = 'version-dropdown-selector';
124
+ const getSelectedDropdownOption = {
125
+ label: selectedVersion,
126
+ value: selectedVersion,
127
+ };
128
+ const getVersionOptions = (options) => {
129
+ return options.map((version) => ({
130
+ label: version,
131
+ value: version,
132
+ }));
133
+ };
134
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, variant: "typeahead", onClick: onToggleClick, isExpanded: isProductOpen, isFullWidth: true, isDisabled: isLoadingProducts, onBlur: () => {
135
+ if (selected) {
136
+ setInput(selected === null || selected === void 0 ? void 0 : selected.name);
137
+ }
138
+ } },
139
+ React.createElement(TextInputGroup, { isPlain: true },
140
+ React.createElement(TextInputGroupMain, { value: input, onClick: onToggleClick, onChange: onChange, autoComplete: "off", innerRef: textInputRef, placeholder: t('Select a product'), role: "combobox", isExpanded: isProductOpen })),
141
+ !isEmpty(selected) && (React.createElement(Button, { variant: "plain", icon: React.createElement(TimesCircleIcon, { "aria-hidden": true }), onClick: (e) => {
142
+ e.stopPropagation();
143
+ onProductClear();
144
+ } }))));
113
145
  return (React.createElement("div", { className: "toolbar" },
114
146
  React.createElement("div", { className: "toolbar-left" },
115
147
  React.createElement("label", { htmlFor: 'tc-product-selector-dropdown-toggle' },
116
148
  React.createElement(Trans, null, "Product")),
117
- React.createElement(Select, Object.assign({ variant: SelectVariant.typeahead, onToggle: (_event, isExpanded) => onProductToggle(isExpanded), selections: selected, isOpen: isProductOpen, onSelect: onProductSelect, onClear: onProductClear, placeholderText: t('Select a product') }, (isLoadingProducts && { loadingVariant: 'spinner' }), { onFilter: onProductFilter, isDisabled: isLoadingProducts, id: productLabelId, "data-tracking-id": productLabelId, "aria-label": t(productLabelId) }), getProductOptions(productOptions))),
149
+ React.createElement(Select, Object.assign({ isScrollable: true, toggle: toggle, selected: selected, isOpen: isProductOpen, maxMenuHeight: "20rem", onSelect: onProductSelect, onOpenChange: (isOpen) => setIsProductOpen(isOpen) }, (isLoadingProducts && { loadingVariant: 'spinner' }), { id: productLabelId, "data-tracking-id": productLabelId, "aria-label": productLabelId }), getProductOptions(productOptions, input))),
118
150
  React.createElement("div", { className: "toolbar-right" },
119
151
  React.createElement("label", { htmlFor: "version-selector-dropdown-toggle" },
120
152
  React.createElement(Trans, null, "Version")),
121
- React.createElement(Select, Object.assign({ variant: SelectVariant.single, onToggle: (_event, isExpanded) => onVersionToggle(isExpanded), onSelect: onVersionSelect, selections: selectedVersion, isOpen: isVersionOpen, placeholderText: t('Select a version'), isDisabled: isEmpty(versions === null || versions === void 0 ? void 0 : versions.items) }, (isLoadingVersions && { loadingVariant: 'spinner' }), { id: versionLabelId, "data-tracking-id": versionLabelId, "aria-label": t(versionLabelId) }), ((versions === null || versions === void 0 ? void 0 : versions.items) || []).map((version, id) => (React.createElement(SelectOption, { key: id, value: version }, version)))))));
153
+ React.createElement(SingleSelectDropdown, { placeholder: t('Select a version'), dataTrackingId: "case-details-status-selector", options: getVersionOptions((versions === null || versions === void 0 ? void 0 : versions.items) || []), selected: getSelectedDropdownOption, isDisabled: isEmpty(versions === null || versions === void 0 ? void 0 : versions.items), id: versionLabelId, "data-tracking-id": versionLabelId, onSelect: onVersionSelect, "aria-label": t(versionLabelId) }))));
122
154
  }
123
155
  TopContentProductVersionSelector.defaultProps = defaultProps;
124
156
  export { TopContentProductVersionSelector };
@@ -2,6 +2,7 @@ export declare enum GroupSelectActions {
2
2
  create = "Create",
3
3
  delete = "Delete",
4
4
  duplicate = "Duplicate",
5
- rename = "Rename"
5
+ rename = "Rename",
6
+ addMembers = "Add members"
6
7
  }
7
8
  //# sourceMappingURL=GroupSelectActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupSelectActions.d.ts","sourceRoot":"","sources":["../../../src/constants/GroupSelectActions.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC1B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;CACpB"}
1
+ {"version":3,"file":"GroupSelectActions.d.ts","sourceRoot":"","sources":["../../../src/constants/GroupSelectActions.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC1B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,UAAU,gBAAgB;CAC7B"}
@@ -4,4 +4,5 @@ export var GroupSelectActions;
4
4
  GroupSelectActions["delete"] = "Delete";
5
5
  GroupSelectActions["duplicate"] = "Duplicate";
6
6
  GroupSelectActions["rename"] = "Rename";
7
+ GroupSelectActions["addMembers"] = "Add members";
7
8
  })(GroupSelectActions || (GroupSelectActions = {}));
@@ -0,0 +1,3 @@
1
+ export declare const PARTNERSHIP_LINK_LIMIT = 50;
2
+ export declare const PARTNERSHIP_LINK_LIMIT_EXCEED_ERROR = "Customer name exceeds the 50-character limit. Please shorten it.";
3
+ //# sourceMappingURL=PartnershipLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartnershipLink.d.ts","sourceRoot":"","sources":["../../../src/constants/PartnershipLink.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,mCAAmC,qEAAqE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const PARTNERSHIP_LINK_LIMIT = 50;
2
+ export const PARTNERSHIP_LINK_LIMIT_EXCEED_ERROR = 'Customer name exceeds the 50-character limit. Please shorten it.';
@@ -1 +1 @@
1
- {"version":3,"file":"ExpiredContentContextProvider.d.ts","sourceRoot":"","sources":["../../../src/context/ExpiredContentContextProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EACH,0BAA0B,EAE1B,oBAAoB,EAEvB,MAAM,mCAAmC,CAAC;AAG3C,eAAO,MAAM,0BAA0B,qCAAmE,CAAC;AAC3G,eAAO,MAAM,6BAA6B,2CAA8C,CAAC;AAEzF,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE;;CAAA,qBAOzD"}
1
+ {"version":3,"file":"ExpiredContentContextProvider.d.ts","sourceRoot":"","sources":["../../../src/context/ExpiredContentContextProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EACH,0BAA0B,EAE1B,oBAAoB,EAEvB,MAAM,mCAAmC,CAAC;AAG3C,eAAO,MAAM,0BAA0B,qCAAmE,CAAC;AAC3G,eAAO,MAAM,6BAA6B,2CAA8C,CAAC;AAEzF,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE;;CAAA,qBAQzD"}
@@ -0,0 +1,42 @@
1
+ import { type CreateCaseGroupMemberResponse, type CreateCaseGroupResponse, type DeleteCaseGroupMemberResponse, type DeleteCaseGroupResponse, type RenameCaseGroupResponse, type ToggleDefaultGroupResponse } from '@rh-support/utils';
2
+ import { type IGroupUserWithContactId } from '../utils/caseGroupMapper';
3
+ interface UseCaseGroupMembersResult {
4
+ data: IGroupUserWithContactId[];
5
+ loading: boolean;
6
+ error: Error | undefined;
7
+ refetch: () => void;
8
+ fetchMembers: (groupId: string) => void;
9
+ }
10
+ export declare function useCaseGroupMembers(): UseCaseGroupMembersResult;
11
+ interface UseCreateCaseGroupResult {
12
+ createGroup: (name: string, accountId: string) => Promise<CreateCaseGroupResponse>;
13
+ loading: boolean;
14
+ }
15
+ export declare function useCreateCaseGroup(): UseCreateCaseGroupResult;
16
+ interface UseCreateCaseGroupMemberResult {
17
+ createMember: (contactId: string, groupId: string) => Promise<CreateCaseGroupMemberResponse>;
18
+ loading: boolean;
19
+ }
20
+ export declare function useCreateCaseGroupMember(): UseCreateCaseGroupMemberResult;
21
+ interface UseRenameCaseGroupResult {
22
+ renameGroup: (id: string, newName: string) => Promise<RenameCaseGroupResponse>;
23
+ loading: boolean;
24
+ }
25
+ export declare function useRenameCaseGroup(): UseRenameCaseGroupResult;
26
+ interface UseDeleteCaseGroupResult {
27
+ deleteGroup: (id: string) => Promise<DeleteCaseGroupResponse>;
28
+ loading: boolean;
29
+ }
30
+ export declare function useDeleteCaseGroup(): UseDeleteCaseGroupResult;
31
+ interface UseToggleDefaultGroupResult {
32
+ toggleDefault: (contactId: string, groupId: string | null) => Promise<ToggleDefaultGroupResponse>;
33
+ loading: boolean;
34
+ }
35
+ export declare function useToggleDefaultGroup(): UseToggleDefaultGroupResult;
36
+ interface UseDeleteCaseGroupMemberResult {
37
+ deleteMember: (memberId: string) => Promise<DeleteCaseGroupMemberResponse>;
38
+ loading: boolean;
39
+ }
40
+ export declare function useDeleteCaseGroupMember(): UseDeleteCaseGroupMemberResult;
41
+ export {};
42
+ //# sourceMappingURL=useCaseGroupGraphQL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCaseGroupGraphQL.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseGroupGraphQL.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAE5B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAQlC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,0BAA0B,CAAC;AAE5G,UAAU,yBAAyB;IAC/B,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,mBAAmB,IAAI,yBAAyB,CAsC/D;AAED,UAAU,wBAAwB;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnF,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAW7D;AAED,UAAU,8BAA8B;IACpC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,wBAAwB,IAAI,8BAA8B,CAgBzE;AAED,UAAU,wBAAwB;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/E,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAW7D;AAED,UAAU,wBAAwB;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAW7D;AAED,UAAU,2BAA2B;IACjC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClG,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,IAAI,2BAA2B,CAcnE;AAED,UAAU,8BAA8B;IACpC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC3E,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,wBAAwB,IAAI,8BAA8B,CAWzE"}
@@ -0,0 +1,117 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useMutation, useQuery } from '@apollo/client/react';
11
+ import { CREATE_CASE_GROUP, CREATE_CASE_GROUP_MEMBER, DELETE_CASE_GROUP, DELETE_CASE_GROUP_MEMBER, GET_CASE_GROUP_MEMBERS, RENAME_CASE_GROUP, TOGGLE_DEFAULT_GROUP, } from '@rh-support/utils';
12
+ import { useMemo, useState } from 'react';
13
+ import { mapCaseGroupMemberNodeToIGroupUser } from '../utils/caseGroupMapper';
14
+ export function useCaseGroupMembers() {
15
+ const [groupId, setGroupId] = useState(undefined);
16
+ const { data, loading, error, refetch } = useQuery(GET_CASE_GROUP_MEMBERS, {
17
+ variables: { where: { Group__c: { eq: groupId } }, first: 2000 },
18
+ skip: !groupId,
19
+ fetchPolicy: 'network-only',
20
+ });
21
+ const members = useMemo(() => {
22
+ var _a, _b, _c;
23
+ if (!data || !groupId)
24
+ return [];
25
+ const response = data;
26
+ const edges = ((_c = (_b = (_a = response.redhat_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.RedHatSupportCaseGroupMember__c) === null || _c === void 0 ? void 0 : _c.edges) || [];
27
+ return edges
28
+ .filter(({ node }) => node.Contact__r !== null)
29
+ .map(({ node }) => mapCaseGroupMemberNodeToIGroupUser(node, groupId));
30
+ }, [data, groupId]);
31
+ const fetchMembers = (id) => {
32
+ setGroupId(id);
33
+ };
34
+ const refetchMembers = () => {
35
+ if (!groupId)
36
+ return;
37
+ void refetch({
38
+ where: { Group__c: { eq: groupId } },
39
+ first: 2000,
40
+ });
41
+ };
42
+ return {
43
+ data: members,
44
+ loading,
45
+ error: error,
46
+ refetch: refetchMembers,
47
+ fetchMembers,
48
+ };
49
+ }
50
+ export function useCreateCaseGroup() {
51
+ const [mutate, { loading }] = useMutation(CREATE_CASE_GROUP);
52
+ const createGroup = (name, accountId) => __awaiter(this, void 0, void 0, function* () {
53
+ const result = yield mutate({
54
+ variables: { name, accountId },
55
+ });
56
+ return result.data;
57
+ });
58
+ return { createGroup, loading };
59
+ }
60
+ export function useCreateCaseGroupMember() {
61
+ const [mutate, { loading }] = useMutation(CREATE_CASE_GROUP_MEMBER);
62
+ const createMember = (contactId, groupId) => __awaiter(this, void 0, void 0, function* () {
63
+ const result = yield mutate({
64
+ variables: {
65
+ memberInput: {
66
+ Contact__c: contactId,
67
+ Group__c: groupId,
68
+ },
69
+ },
70
+ });
71
+ return result.data;
72
+ });
73
+ return { createMember, loading };
74
+ }
75
+ export function useRenameCaseGroup() {
76
+ const [mutate, { loading }] = useMutation(RENAME_CASE_GROUP);
77
+ const renameGroup = (id, newName) => __awaiter(this, void 0, void 0, function* () {
78
+ const result = yield mutate({
79
+ variables: { id, caseGroupPatch: { Name: newName } },
80
+ });
81
+ return result.data;
82
+ });
83
+ return { renameGroup, loading };
84
+ }
85
+ export function useDeleteCaseGroup() {
86
+ const [mutate, { loading }] = useMutation(DELETE_CASE_GROUP);
87
+ const deleteGroup = (id) => __awaiter(this, void 0, void 0, function* () {
88
+ const result = yield mutate({
89
+ variables: { id },
90
+ });
91
+ return result.data;
92
+ });
93
+ return { deleteGroup, loading };
94
+ }
95
+ export function useToggleDefaultGroup() {
96
+ const [mutate, { loading }] = useMutation(TOGGLE_DEFAULT_GROUP);
97
+ const toggleDefault = (contactId, groupId) => __awaiter(this, void 0, void 0, function* () {
98
+ const result = yield mutate({
99
+ variables: {
100
+ id: contactId,
101
+ contactPatch: { DefaultCaseGroup__c: groupId },
102
+ },
103
+ });
104
+ return result.data;
105
+ });
106
+ return { toggleDefault, loading };
107
+ }
108
+ export function useDeleteCaseGroupMember() {
109
+ const [mutate, { loading }] = useMutation(DELETE_CASE_GROUP_MEMBER);
110
+ const deleteMember = (memberId) => __awaiter(this, void 0, void 0, function* () {
111
+ const result = yield mutate({
112
+ variables: { id: memberId },
113
+ });
114
+ return result.data;
115
+ });
116
+ return { deleteMember, loading };
117
+ }
@@ -0,0 +1,26 @@
1
+ import { type CreateCaseLabelResponse, type DeleteCaseLabelResponse, type UpdateCaseLabelResponse } from '@rh-support/utils';
2
+ import { ICaseLabel } from '../components/ManageCaseLabels/types';
3
+ interface UseCaseLabelsResult {
4
+ labels: ICaseLabel[];
5
+ loading: boolean;
6
+ error: Error | undefined;
7
+ refetch: () => Promise<void>;
8
+ }
9
+ export declare function useCaseLabels(accountId?: string): UseCaseLabelsResult;
10
+ interface UseCreateCaseLabelResult {
11
+ createCaseLabel: (name: string, accountId: string) => Promise<CreateCaseLabelResponse>;
12
+ loading: boolean;
13
+ }
14
+ export declare function useCreateCaseLabel(): UseCreateCaseLabelResult;
15
+ interface UseUpdateCaseLabelResult {
16
+ updateCaseLabel: (id: string, name: string) => Promise<UpdateCaseLabelResponse>;
17
+ loading: boolean;
18
+ }
19
+ export declare function useUpdateCaseLabel(): UseUpdateCaseLabelResult;
20
+ interface UseDeleteCaseLabelResult {
21
+ deleteCaseLabel: (id: string) => Promise<DeleteCaseLabelResponse>;
22
+ loading: boolean;
23
+ }
24
+ export declare function useDeleteCaseLabel(): UseDeleteCaseLabelResult;
25
+ export {};
26
+ //# sourceMappingURL=useCaseLabelGraphQL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCaseLabelGraphQL.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseLabelGraphQL.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,uBAAuB,EAE5B,KAAK,uBAAuB,EAE5B,KAAK,uBAAuB,EAQ/B,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAQlE,UAAU,mBAAmB;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,CA8BrE;AAED,UAAU,wBAAwB;IAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CA4B7D;AAED,UAAU,wBAAwB;IAC9B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChF,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAkB7D;AAED,UAAU,wBAAwB;IAC9B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAW7D"}
@@ -0,0 +1,104 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useApolloClient, useMutation } from '@apollo/client/react';
11
+ import { CASE_LABEL_QUERY_LIMIT, CREATE_CASE_LABEL, DELETE_CASE_LABEL, fetchAllAccountCaseLabels, GET_CASE_LABELS, UPDATE_CASE_LABEL, } from '@rh-support/utils';
12
+ import unescape from 'lodash/unescape';
13
+ import { useCallback, useEffect, useState } from 'react';
14
+ const mapCaseLabelNode = (node) => {
15
+ var _a, _b, _c, _d;
16
+ return ({
17
+ id: node.Id,
18
+ name: unescape((_b = (_a = node.Name) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ''),
19
+ assignedCaseCount: (_d = (_c = node.Case_Label_Links__r) === null || _c === void 0 ? void 0 : _c.totalCount) !== null && _d !== void 0 ? _d : 0,
20
+ });
21
+ };
22
+ export function useCaseLabels(accountId) {
23
+ const client = useApolloClient();
24
+ const [labels, setLabels] = useState([]);
25
+ const [loading, setLoading] = useState(false);
26
+ const [error, setError] = useState(undefined);
27
+ const fetchLabels = useCallback(() => __awaiter(this, void 0, void 0, function* () {
28
+ if (!accountId) {
29
+ setLabels([]);
30
+ return;
31
+ }
32
+ setLoading(true);
33
+ setError(undefined);
34
+ try {
35
+ const labelNodes = yield fetchAllAccountCaseLabels(client, accountId);
36
+ setLabels(labelNodes.map((node) => mapCaseLabelNode(node)).filter((label) => label.id && label.name));
37
+ }
38
+ catch (e) {
39
+ setError(e);
40
+ setLabels([]);
41
+ }
42
+ finally {
43
+ setLoading(false);
44
+ }
45
+ }), [accountId, client]);
46
+ useEffect(() => {
47
+ fetchLabels();
48
+ }, [fetchLabels]);
49
+ return { labels, loading, error, refetch: fetchLabels };
50
+ }
51
+ export function useCreateCaseLabel() {
52
+ const [mutate, { loading }] = useMutation(CREATE_CASE_LABEL);
53
+ const createCaseLabel = (name, accountId) => __awaiter(this, void 0, void 0, function* () {
54
+ const result = yield mutate({
55
+ variables: {
56
+ input: {
57
+ RedHatSupportCaseLabel__c: {
58
+ Name: name,
59
+ Account__c: accountId,
60
+ },
61
+ },
62
+ },
63
+ refetchQueries: [
64
+ {
65
+ query: GET_CASE_LABELS,
66
+ variables: {
67
+ where: { Account__c: { eq: accountId } },
68
+ first: CASE_LABEL_QUERY_LIMIT,
69
+ },
70
+ },
71
+ ],
72
+ awaitRefetchQueries: true,
73
+ });
74
+ return result.data;
75
+ });
76
+ return { createCaseLabel, loading };
77
+ }
78
+ export function useUpdateCaseLabel() {
79
+ const [mutate, { loading }] = useMutation(UPDATE_CASE_LABEL);
80
+ const updateCaseLabel = (id, name) => __awaiter(this, void 0, void 0, function* () {
81
+ const result = yield mutate({
82
+ variables: {
83
+ input: {
84
+ Id: id,
85
+ RedHatSupportCaseLabel__c: {
86
+ Name: name,
87
+ },
88
+ },
89
+ },
90
+ });
91
+ return result.data;
92
+ });
93
+ return { updateCaseLabel, loading };
94
+ }
95
+ export function useDeleteCaseLabel() {
96
+ const [mutate, { loading }] = useMutation(DELETE_CASE_LABEL);
97
+ const deleteCaseLabel = (id) => __awaiter(this, void 0, void 0, function* () {
98
+ const result = yield mutate({
99
+ variables: { id },
100
+ });
101
+ return result.data;
102
+ });
103
+ return { deleteCaseLabel, loading };
104
+ }
@@ -0,0 +1,8 @@
1
+ interface UseCurrentUserContactResult {
2
+ isOrgAdmin: boolean;
3
+ loading: boolean;
4
+ error: Error | undefined;
5
+ }
6
+ export declare function useCurrentUserContact(): UseCurrentUserContactResult;
7
+ export {};
8
+ //# sourceMappingURL=useCurrentUserContact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCurrentUserContact.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCurrentUserContact.ts"],"names":[],"mappings":"AAMA,UAAU,2BAA2B;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,IAAI,2BAA2B,CAiFnE"}
@@ -0,0 +1,74 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useApolloClient } from '@apollo/client/react';
11
+ import { setLoggedInUserRoles, useGlobalDispatchContext, useGlobalStateContext } from '@rh-support/react-context';
12
+ import { initUserRoles } from '@rh-support/user-permissions';
13
+ import { GET_CONTACT_BY_SSO } from '@rh-support/utils';
14
+ import { useCallback, useEffect, useRef, useState } from 'react';
15
+ export function useCurrentUserContact() {
16
+ const client = useApolloClient();
17
+ const dispatch = useGlobalDispatchContext();
18
+ const { globalMetadataState: { loggedInUserJwtToken, loggedInUser, loggedInUsersAccount, managedAccounts, accountManagers, bookmarkedAccounts, pcmConfig, viewAsCustomer, }, } = useGlobalStateContext();
19
+ const ssoUsername = loggedInUserJwtToken === null || loggedInUserJwtToken === void 0 ? void 0 : loggedInUserJwtToken.preferred_username;
20
+ const [isOrgAdmin, setIsOrgAdmin] = useState(false);
21
+ const [loading, setLoading] = useState(true);
22
+ const [error, setError] = useState(undefined);
23
+ const hasFetched = useRef(false);
24
+ const fetchContact = useCallback(() => __awaiter(this, void 0, void 0, function* () {
25
+ var _a, _b, _c, _d, _e, _f;
26
+ if (!ssoUsername || hasFetched.current) {
27
+ if (!ssoUsername)
28
+ setLoading(false);
29
+ return;
30
+ }
31
+ hasFetched.current = true;
32
+ setLoading(true);
33
+ setError(undefined);
34
+ try {
35
+ const { data } = yield client.query({
36
+ query: GET_CONTACT_BY_SSO,
37
+ variables: { searchTerm: ssoUsername, namePattern: `%${ssoUsername}%` },
38
+ fetchPolicy: 'cache-first',
39
+ });
40
+ const edges = ((_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.RedHatSupportContact) === null || _c === void 0 ? void 0 : _c.edges) || [];
41
+ const match = edges[0];
42
+ const adminStatus = (_f = (_e = (_d = match === null || match === void 0 ? void 0 : match.node) === null || _d === void 0 ? void 0 : _d.IsOrgAdmin__c) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : false;
43
+ setIsOrgAdmin(adminStatus);
44
+ if ((loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.data) && (loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data)) {
45
+ const updatedUser = Object.assign(Object.assign({}, loggedInUser.data), { isOrgAdmin: adminStatus });
46
+ const { user } = initUserRoles(updatedUser, loggedInUsersAccount.data, (managedAccounts === null || managedAccounts === void 0 ? void 0 : managedAccounts.data) || [], (accountManagers === null || accountManagers === void 0 ? void 0 : accountManagers.data) || [], (bookmarkedAccounts === null || bookmarkedAccounts === void 0 ? void 0 : bookmarkedAccounts.data) || [], (pcmConfig === null || pcmConfig === void 0 ? void 0 : pcmConfig.data) || [], viewAsCustomer, loggedInUserJwtToken);
47
+ setLoggedInUserRoles(dispatch, user);
48
+ }
49
+ }
50
+ catch (e) {
51
+ setError(e);
52
+ setIsOrgAdmin(false);
53
+ }
54
+ finally {
55
+ setLoading(false);
56
+ }
57
+ }), [
58
+ client,
59
+ ssoUsername,
60
+ loggedInUser,
61
+ loggedInUsersAccount,
62
+ managedAccounts,
63
+ accountManagers,
64
+ bookmarkedAccounts,
65
+ pcmConfig,
66
+ viewAsCustomer,
67
+ loggedInUserJwtToken,
68
+ dispatch,
69
+ ]);
70
+ useEffect(() => {
71
+ fetchContact();
72
+ }, [fetchContact]);
73
+ return { isOrgAdmin, loading, error };
74
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useVersionsDiffer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVersionsDiffer.tsx"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,wBAAyB,MAAM,wBAAwB,MAAM,KAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAuD/G,CAAC"}
1
+ {"version":3,"file":"useVersionsDiffer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVersionsDiffer.tsx"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAAqB,MAAM,EAAE,sBAAsB,MAAM,KAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAwD/G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC"}
package/lib/esm/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ // test
1
2
  export { Manage } from './Manage';
2
3
  export { TopContentManagement } from './components/TopContentManagement';
3
4
  export { ExpiredContentManagement } from './components/ManageExpiredContents';
5
+ // dummy change for publish
@@ -1 +1 @@
1
- {"version":3,"file":"ExpiredContentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/ExpiredContentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EACH,WAAW,EACX,eAAe,EAElB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMxE,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBACb,SAAQ,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;IACxF,OAAO,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,sBAAsB,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACxE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC;IACpD,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,qBAAqB,EAAE,oBAKnC,CAAC;AAEF,oBAAY,8BAA8B;IACtC,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;CAC5C;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEtE,eAAO,MAAM,qBAAqB,UAAW,oBAAoB,UAAU,WAAW,KAAG,oBAiCxF,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB,MAAM,GAAG,SAAS,YAM9D,CAAC;AASF,eAAO,MAAM,mBAAmB,aAClB,0BAA0B,2BACZ,OAAO,kBA8ElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACnB,0BAA0B,2BACX,wBAAwB,EAAE,cACvC,MAAM,WACT,eAAe,gBACV,GAAG,EAAE,yBACG,OAAO,kBAmEhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACnB,0BAA0B,2BACX,wBAAwB,EAAE,cACvC,MAAM,gBACJ,MAAM,mBAsBvB,CAAC;AAEF,eAAO,MAAM,6BAA6B,aAAc,0BAA0B,QAAQ,IAAI,EAAE,SAK/F,CAAC"}
1
+ {"version":3,"file":"ExpiredContentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/ExpiredContentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EACH,WAAW,EACX,eAAe,EAElB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMxE,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBACb,SAAQ,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;IACxF,OAAO,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,sBAAsB,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACxE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC;IACpD,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,qBAAqB,EAAE,oBAKnC,CAAC;AAEF,oBAAY,8BAA8B;IACtC,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;IACvD,kBAAkB,uBAAuB;CAC5C;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEtE,eAAO,MAAM,qBAAqB,GAAI,OAAO,oBAAoB,EAAE,QAAQ,WAAW,KAAG,oBAiCxF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,GAAG,SAAS,YAM9D,CAAC;AASF,eAAO,MAAM,mBAAmB,GAC5B,UAAU,0BAA0B,EACpC,yBAAwB,OAAe,kBA8E1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,UAAU,0BAA0B,EACpC,yBAAyB,wBAAwB,EAAE,EACnD,YAAY,MAAM,EAClB,SAAS,eAAe,EACxB,cAAc,GAAG,EAAE,EACnB,uBAAsB,OAAe,kBAmExC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,UAAU,0BAA0B,EACpC,yBAAyB,wBAAwB,EAAE,EACnD,YAAY,MAAM,EAClB,cAAc,MAAM,mBAsBvB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,UAAU,0BAA0B,EAAE,MAAM,IAAI,EAAE,SAK/F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManagePartnershipsReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/ManagePartnershipsReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACrC,4BAA4B,EAAE,OAAO,CAAC;IACtC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAED,oBAAY,kCAAkC;IAC1C,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;CAClD;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC;AACzF,MAAM,MAAM,qCAAqC,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEjF,eAAO,MAAM,yBAAyB,UAC3B,wBAAwB,UACvB,WAAW,KACpB,wBAYF,CAAC;AAEF,eAAO,MAAM,qBAAqB,aACpB,qCAAqC,gCACjB,OAAO,SAMxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,qCAAqC,sBAAsB,OAAO,SAKjH,CAAC"}
1
+ {"version":3,"file":"ManagePartnershipsReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/ManagePartnershipsReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACrC,4BAA4B,EAAE,OAAO,CAAC;IACtC,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAED,oBAAY,kCAAkC;IAC1C,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;CAClD;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC;AACzF,MAAM,MAAM,qCAAqC,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEjF,eAAO,MAAM,yBAAyB,GAClC,OAAO,wBAAwB,EAC/B,QAAQ,WAAW,KACpB,wBAYF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAC9B,UAAU,qCAAqC,EAC/C,8BAA8B,OAAO,SAMxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,UAAU,qCAAqC,EAAE,oBAAoB,OAAO,SAKjH,CAAC"}
@@ -7,7 +7,7 @@ export declare enum TagManagementReducerConstants {
7
7
  deleteTag = "deleteTag",
8
8
  resetTags = "resetTags"
9
9
  }
10
- interface ITagItemState extends ITag {
10
+ export interface ITagItemState extends ITag {
11
11
  numberOfLinkedContents?: number;
12
12
  }
13
13
  export interface ITagManagementState {
@@ -1 +1 @@
1
- {"version":3,"file":"TagManagmentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TagManagmentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EACH,IAAI,EAEJ,YAAY,EACZ,WAAW,EACX,4BAA4B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGxE,oBAAY,6BAA6B;IACrC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CAC1B;AAED,UAAU,aAAc,SAAQ,IAAI;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,yBAAyB,EAAE,mBAGvC,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAErE,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,UAAU,WAAW,KAAG,mBAsBtF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAoB,yBAAyB,qBAAoB,OAAO,mBAsDvG,CAAC;AAEF,eAAO,MAAM,aAAa,aAAoB,yBAAyB,QAAQ,YAAY,EAAE,kBAW5F,CAAC;AAEF,eAAO,MAAM,SAAS,aAAoB,yBAAyB,OAAO,WAAW,aAAa,aAAa,EAAE,kBAahH,CAAC;AAEF,eAAO,MAAM,SAAS,aACR,yBAAyB,cACvB,IAAI,sBACI,mBAAmB,kBAe1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACvB,yBAAyB,WAC1B,4BAA4B,sBACjB,mBAAmB,kBAQ1C,CAAC"}
1
+ {"version":3,"file":"TagManagmentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TagManagmentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EACH,IAAI,EAEJ,YAAY,EACZ,WAAW,EACX,4BAA4B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGxE,oBAAY,6BAA6B;IACrC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,yBAAyB,EAAE,mBAGvC,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAErE,eAAO,MAAM,oBAAoB,GAAI,OAAO,mBAAmB,EAAE,QAAQ,WAAW,KAAG,mBAsBtF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,UAAU,yBAAyB,EAAE,mBAAkB,OAAc,mBAsD9G,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,UAAU,yBAAyB,EAAE,MAAM,YAAY,EAAE,kBAW5F,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,UAAU,yBAAyB,EAAE,KAAK,WAAW,EAAE,WAAW,aAAa,EAAE,kBAahH,CAAC;AAEF,eAAO,MAAM,SAAS,GAClB,UAAU,yBAAyB,EACnC,YAAY,IAAI,EAChB,oBAAoB,mBAAmB,kBAe1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACjC,UAAU,yBAAyB,EACnC,SAAS,4BAA4B,EACrC,oBAAoB,mBAAmB,kBAQ1C,CAAC"}