@rh-support/manage 2.4.10-beta.6 → 2.5.1

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 (215) hide show
  1. package/README.md +2 -0
  2. package/lib/esm/Manage.d.ts +2 -3
  3. package/lib/esm/Manage.d.ts.map +1 -1
  4. package/lib/esm/Manage.js +4 -10
  5. package/lib/esm/ManageTabs.d.ts +3 -1
  6. package/lib/esm/ManageTabs.d.ts.map +1 -1
  7. package/lib/esm/ManageTabs.js +54 -51
  8. package/lib/esm/Routes.d.ts +2 -0
  9. package/lib/esm/Routes.d.ts.map +1 -1
  10. package/lib/esm/Routes.js +21 -9
  11. package/lib/esm/components/Configs/ConfigInLineEdit.d.ts +2 -1
  12. package/lib/esm/components/Configs/ConfigInLineEdit.d.ts.map +1 -1
  13. package/lib/esm/components/Configs/ConfigSwitch.d.ts +2 -1
  14. package/lib/esm/components/Configs/ConfigSwitch.d.ts.map +1 -1
  15. package/lib/esm/components/Configs/ConfigSwitch.js +1 -1
  16. package/lib/esm/components/Configs/ConfigsTable.d.ts +2 -1
  17. package/lib/esm/components/Configs/ConfigsTable.d.ts.map +1 -1
  18. package/lib/esm/components/Configs/ConfigsTable.js +4 -3
  19. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts +2 -1
  20. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.d.ts.map +1 -1
  21. package/lib/esm/components/Groups/DefualtGroupSwitch/DefaultGroupSwitch.js +2 -1
  22. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts +2 -1
  23. package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts.map +1 -1
  24. package/lib/esm/components/Groups/GroupSelect/GroupSelect.js +23 -11
  25. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.d.ts +2 -1
  26. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.d.ts.map +1 -1
  27. package/lib/esm/components/Groups/GroupUserPermissionsSelect/GroupUserPermissionsSelect.js +1 -1
  28. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.d.ts +2 -1
  29. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.d.ts.map +1 -1
  30. package/lib/esm/components/Groups/ManageGroupUsers/ManageGroupUsers.js +13 -11
  31. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.d.ts +2 -1
  32. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.d.ts.map +1 -1
  33. package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.js +1 -1
  34. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.d.ts +2 -1
  35. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.d.ts.map +1 -1
  36. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.js +15 -7
  37. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.d.ts +1 -1
  38. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.d.ts.map +1 -1
  39. package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.js +8 -5
  40. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts +2 -1
  41. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts.map +1 -1
  42. package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js +14 -11
  43. package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.d.ts +9 -0
  44. package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.d.ts.map +1 -0
  45. package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.js +31 -0
  46. package/lib/esm/components/ManageExpiredContents/ExpiredContentHeader.d.ts +3 -0
  47. package/lib/esm/components/ManageExpiredContents/ExpiredContentHeader.d.ts.map +1 -0
  48. package/lib/esm/components/ManageExpiredContents/ExpiredContentHeader.js +9 -0
  49. package/lib/esm/components/ManageExpiredContents/ExpiredContentManagement.d.ts +3 -0
  50. package/lib/esm/components/ManageExpiredContents/ExpiredContentManagement.d.ts.map +1 -0
  51. package/lib/esm/components/ManageExpiredContents/ExpiredContentManagement.js +13 -0
  52. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.d.ts +3 -0
  53. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.d.ts.map +1 -0
  54. package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.js +68 -0
  55. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.d.ts +9 -0
  56. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.d.ts.map +1 -0
  57. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.js +77 -0
  58. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts +14 -0
  59. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts.map +1 -0
  60. package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.js +179 -0
  61. package/lib/esm/components/ManageExpiredContents/index.d.ts +2 -0
  62. package/lib/esm/components/ManageExpiredContents/index.d.ts.map +1 -0
  63. package/lib/esm/components/ManageExpiredContents/index.js +1 -0
  64. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.d.ts +2 -1
  65. package/lib/esm/components/ManagePartnerships/NonOrgCustomerInfoModal.d.ts.map +1 -1
  66. package/lib/esm/components/ManagePartnerships/PartnershipsList.d.ts +2 -1
  67. package/lib/esm/components/ManagePartnerships/PartnershipsList.d.ts.map +1 -1
  68. package/lib/esm/components/ManagePartnerships/PartnershipsList.js +3 -3
  69. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.d.ts +2 -1
  70. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.d.ts.map +1 -1
  71. package/lib/esm/components/ManagePartnerships/PartnershipsTermsModal.js +42 -21
  72. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.d.ts +2 -1
  73. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.d.ts.map +1 -1
  74. package/lib/esm/components/ManagePartnerships/RequestCollaborationModal.js +15 -13
  75. package/lib/esm/components/ManagePartnerships/Requests.d.ts +2 -1
  76. package/lib/esm/components/ManagePartnerships/Requests.d.ts.map +1 -1
  77. package/lib/esm/components/ManagePartnerships/Requests.js +25 -5
  78. package/lib/esm/components/ManagePartnerships/index.d.ts +2 -1
  79. package/lib/esm/components/ManagePartnerships/index.d.ts.map +1 -1
  80. package/lib/esm/components/ManagePartnerships/index.js +4 -3
  81. package/lib/esm/components/ManagePreferences/ManagePreferences.d.ts +2 -1
  82. package/lib/esm/components/ManagePreferences/ManagePreferences.d.ts.map +1 -1
  83. package/lib/esm/components/ManagePreferences/ManagePreferences.js +1 -2
  84. package/lib/esm/components/ManagePreferences/Preferences.d.ts +2 -1
  85. package/lib/esm/components/ManagePreferences/Preferences.d.ts.map +1 -1
  86. package/lib/esm/components/ManagePreferences/PreferencesBody.d.ts +2 -1
  87. package/lib/esm/components/ManagePreferences/PreferencesBody.d.ts.map +1 -1
  88. package/lib/esm/components/ManagePreferences/PreferencesBody.js +6 -2
  89. package/lib/esm/components/ManagePreferences/PreferencesHeader.d.ts +2 -1
  90. package/lib/esm/components/ManagePreferences/PreferencesHeader.d.ts.map +1 -1
  91. package/lib/esm/components/ManagePreferences/PreferencesHeader.js +1 -1
  92. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts +1 -1
  93. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.d.ts.map +1 -1
  94. package/lib/esm/components/ManagePreferences/components/PreferenceSelect.js +5 -3
  95. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.d.ts +2 -1
  96. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.d.ts.map +1 -1
  97. package/lib/esm/components/ManagePreferences/components/PreferenceSwitch.js +1 -1
  98. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.d.ts +3 -0
  99. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.d.ts.map +1 -0
  100. package/lib/esm/components/ManagePreferences/sections/PreferencesACL.js +62 -0
  101. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.d.ts +2 -1
  102. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.d.ts.map +1 -1
  103. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseCreate.js +13 -2
  104. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.d.ts +2 -1
  105. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.d.ts.map +1 -1
  106. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseSearch.js +6 -4
  107. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.d.ts +2 -1
  108. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.d.ts.map +1 -1
  109. package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.js +12 -11
  110. package/lib/esm/components/ManageTable/ManageTable.d.ts +1 -1
  111. package/lib/esm/components/ManageTable/ManageTable.d.ts.map +1 -1
  112. package/lib/esm/components/ManageTable/ManageTable.js +7 -8
  113. package/lib/esm/components/ManageTags/TagsManagement.d.ts +3 -0
  114. package/lib/esm/components/ManageTags/TagsManagement.d.ts.map +1 -0
  115. package/lib/esm/components/ManageTags/TagsManagement.js +11 -0
  116. package/lib/esm/components/ManageTags/TagsManager.d.ts +3 -0
  117. package/lib/esm/components/ManageTags/TagsManager.d.ts.map +1 -0
  118. package/lib/esm/components/ManageTags/TagsManager.js +261 -0
  119. package/lib/esm/components/ManageTags/index.d.ts +2 -0
  120. package/lib/esm/components/ManageTags/index.d.ts.map +1 -0
  121. package/lib/esm/components/ManageTags/index.js +1 -0
  122. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts +2 -1
  123. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts.map +1 -1
  124. package/lib/esm/components/NotificationEmails/NotificationEmailsModal.js +32 -7
  125. package/lib/esm/components/NotificationEmails/index.d.ts +2 -1
  126. package/lib/esm/components/NotificationEmails/index.d.ts.map +1 -1
  127. package/lib/esm/components/NotificationEmails/index.js +4 -4
  128. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.d.ts.map +1 -1
  129. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimit.js +3 -2
  130. package/lib/esm/components/TopContentManagement/CategoryLimit/CategoryLimitGuidelines.js +1 -1
  131. package/lib/esm/components/TopContentManagement/CategoryLimit/QuestionAnswer.js +1 -1
  132. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.d.ts.map +1 -1
  133. package/lib/esm/components/TopContentManagement/ContentUsage/ContentAccordion.js +2 -2
  134. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.d.ts.map +1 -1
  135. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetrics.js +3 -3
  136. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts +1 -1
  137. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.d.ts.map +1 -1
  138. package/lib/esm/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.js +3 -3
  139. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.d.ts.map +1 -1
  140. package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.js +4 -4
  141. package/lib/esm/components/TopContentManagement/NoTopContentFound.d.ts +2 -1
  142. package/lib/esm/components/TopContentManagement/NoTopContentFound.d.ts.map +1 -1
  143. package/lib/esm/components/TopContentManagement/NoTopContentFound.js +14 -15
  144. package/lib/esm/components/TopContentManagement/TopContent.d.ts +2 -1
  145. package/lib/esm/components/TopContentManagement/TopContent.d.ts.map +1 -1
  146. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.d.ts +2 -1
  147. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.d.ts.map +1 -1
  148. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/AddNewCategoryDropDown.js +8 -3
  149. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.d.ts +1 -1
  150. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.d.ts.map +1 -1
  151. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategory.js +3 -2
  152. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategoryNew.d.ts +2 -1
  153. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentCategoryNew.d.ts.map +1 -1
  154. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.d.ts.map +1 -1
  155. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.js +3 -3
  156. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.d.ts +6 -2
  157. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.d.ts.map +1 -1
  158. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.js +178 -59
  159. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItemLink.js +1 -1
  160. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.d.ts +2 -1
  161. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.d.ts.map +1 -1
  162. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.js +60 -16
  163. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestion.d.ts +1 -0
  164. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestion.d.ts.map +1 -1
  165. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestion.js +35 -10
  166. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHint.js +3 -3
  167. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.d.ts.map +1 -1
  168. package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentSuggestion/TopContentSuggestionHintAccept.js +26 -20
  169. package/lib/esm/components/TopContentManagement/TopContentHeader.d.ts +2 -1
  170. package/lib/esm/components/TopContentManagement/TopContentHeader.d.ts.map +1 -1
  171. package/lib/esm/components/TopContentManagement/TopContentHeader.js +1 -1
  172. package/lib/esm/components/TopContentManagement/TopContentManagement.d.ts +2 -1
  173. package/lib/esm/components/TopContentManagement/TopContentManagement.d.ts.map +1 -1
  174. package/lib/esm/components/TopContentManagement/TopContentManagement.js +4 -3
  175. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.d.ts +2 -1
  176. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.d.ts.map +1 -1
  177. package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.js +6 -6
  178. package/lib/esm/context/ExpiredContentContextProvider.d.ts +8 -0
  179. package/lib/esm/context/ExpiredContentContextProvider.d.ts.map +1 -0
  180. package/lib/esm/context/ExpiredContentContextProvider.js +10 -0
  181. package/lib/esm/context/ManagePartnershipsProvider.d.ts +1 -1
  182. package/lib/esm/context/ManagePartnershipsProvider.d.ts.map +1 -1
  183. package/lib/esm/context/TagManagementContextProvider.d.ts +8 -0
  184. package/lib/esm/context/TagManagementContextProvider.d.ts.map +1 -0
  185. package/lib/esm/context/TagManagementContextProvider.js +10 -0
  186. package/lib/esm/context/TopContentProvider.d.ts +1 -1
  187. package/lib/esm/context/TopContentProvider.d.ts.map +1 -1
  188. package/lib/esm/context/TopContentProvider.js +1 -0
  189. package/lib/esm/hooks/useUserPreferences.d.ts +13 -12
  190. package/lib/esm/hooks/useUserPreferences.d.ts.map +1 -1
  191. package/lib/esm/hooks/useUserPreferences.js +0 -1
  192. package/lib/esm/index.d.ts +1 -0
  193. package/lib/esm/index.d.ts.map +1 -1
  194. package/lib/esm/index.js +1 -0
  195. package/lib/esm/reducers/ExpiredContentReducer.d.ts +36 -0
  196. package/lib/esm/reducers/ExpiredContentReducer.d.ts.map +1 -0
  197. package/lib/esm/reducers/ExpiredContentReducer.js +207 -0
  198. package/lib/esm/reducers/ManagePartnershipsReducer.d.ts +2 -2
  199. package/lib/esm/reducers/ManagePartnershipsReducer.d.ts.map +1 -1
  200. package/lib/esm/reducers/TagManagmentReducer.d.ts +27 -0
  201. package/lib/esm/reducers/TagManagmentReducer.d.ts.map +1 -0
  202. package/lib/esm/reducers/TagManagmentReducer.js +144 -0
  203. package/lib/esm/reducers/TopContentHelpers.d.ts.map +1 -1
  204. package/lib/esm/reducers/TopContentHelpers.js +4 -4
  205. package/lib/esm/reducers/TopContentReducer.d.ts +12 -7
  206. package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
  207. package/lib/esm/reducers/TopContentReducer.js +61 -23
  208. package/lib/esm/scss/_main.scss +87 -55
  209. package/lib/esm/scss/_pf-overrides.scss +181 -0
  210. package/lib/esm/scss/index.scss +7 -7
  211. package/package.json +42 -42
  212. package/lib/esm/ManageTab.d.ts +0 -8
  213. package/lib/esm/ManageTab.d.ts.map +0 -1
  214. package/lib/esm/ManageTab.js +0 -12
  215. package/lib/esm/scss/_pf4-overrides.scss +0 -132
@@ -1 +1 @@
1
- {"version":3,"file":"ManageGroupUsers.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/ManageGroupUsers/ManageGroupUsers.tsx"],"names":[],"mappings":"AAuBA,eAAO,MAAM,gBAAgB,mBAgN5B,CAAC"}
1
+ {"version":3,"file":"ManageGroupUsers.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/ManageGroupUsers/ManageGroupUsers.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,eAAO,MAAM,gBAAgB,yBA4N5B,CAAC"}
@@ -14,7 +14,7 @@ import { useGlobalStateContext } from '@rh-support/react-context';
14
14
  import isEmpty from 'lodash/isEmpty';
15
15
  import React, { useEffect, useMemo, useState } from 'react';
16
16
  import { Trans, useTranslation } from 'react-i18next';
17
- import { useLocation } from 'react-router-dom';
17
+ import { Link, useLocation } from 'react-router-dom';
18
18
  import { ManageTable } from '../../ManageTable/ManageTable';
19
19
  import { DefaultGroupSwitch } from '../DefualtGroupSwitch';
20
20
  import { GroupSelect } from '../GroupSelect';
@@ -128,20 +128,22 @@ export const ManageGroupUsers = () => {
128
128
  }
129
129
  setAllData(response || []);
130
130
  // eslint-disable-next-line react-hooks/exhaustive-deps
131
- }, [location.pathname]);
132
- return (React.createElement("section", { id: "manage-groups" },
133
- React.createElement(AlertMessage, { variant: AlertType.INFO, show: loggedInUserRights.data.isOrgAdmin() && !loggedInUsersAccount.data.hasGroupACLs, isInline: true, className: "pf-u-mb-md", title: t("Case Group Access Control Lists (ACLs) haven't been activated on your account.") },
131
+ }, [location.pathname, loggedInUsersAccount.data]);
132
+ return (React.createElement(React.Fragment, null,
133
+ React.createElement(AlertMessage, { variant: AlertType.INFO, show: loggedInUserRights.data.isOrgAdmin() && !loggedInUsersAccount.data.hasGroupACLs, isInline: true, className: "pf-v5-u-mb-md", title: t('Case Group ACL is not activated') },
134
134
  React.createElement("p", null,
135
135
  React.createElement(Trans, { i18nKey: "i18nRequestControl" },
136
- "You can set permissions on groups but settings won't take effect until",
136
+ "To use case groups to limit user access, enable the",
137
137
  ' ',
138
- React.createElement("a", { href: "https://access.redhat.com/solutions/175763", rel: "noopener noreferrer", target: "_blank" }, "Case Group ACLs"),
138
+ React.createElement("a", { href: "https://access.redhat.com/articles/170453", target: "_blank", rel: "noopener noreferrer" }, "Case Group Access Control Lists (ACL)"),
139
139
  ' ',
140
- "is activated on your account. Please contact your Technical Account Manager or",
140
+ "under",
141
141
  ' ',
142
- React.createElement("a", { href: "/support/contact/technicalSupport/", rel: "noopener noreferrer", target: "_blank" }, "Red Hat Technical Support"),
143
- ' ',
144
- "to request Case Group ACLs activation."))),
142
+ React.createElement(Link, { key: "case-contact-phone-number-review", replace: true, to: {
143
+ pathname: '/manage/preferences',
144
+ }, "data-tracking-id": "case-contact-phone-number-review" }, "Preferences")),
145
+ React.createElement("br", null),
146
+ React.createElement(Trans, null, "You can organize and group related cases and filter on the case list page, but you cannot change permissions for case groups unless the Case Group ACL is enabled."))),
145
147
  React.createElement("header", null,
146
148
  React.createElement("h2", null, t('Groups')),
147
149
  React.createElement("p", null, t('Add or edit groups to easily filter while searching through cases.'))),
@@ -150,7 +152,7 @@ export const ManageGroupUsers = () => {
150
152
  React.createElement("span", { className: "toolbar-right" },
151
153
  React.createElement("label", { htmlFor: "account-group-filter" },
152
154
  React.createElement(Trans, null, "Filter by")),
153
- React.createElement(SearchInput, { className: "pf-u-flex-grow-1 pf-c-search-input pf-u-background-color-100", id: "account-group-filter", value: userSearch, isDisabled: isFetching || !selectedGroup, onChange: setUserSearch, placeholder: t('Search for people in this group'), "aria-label": "Group search input", onClear: () => setUserSearch('') }))),
155
+ React.createElement(SearchInput, { className: "pf-v5-u-flex-grow-1 pf-v5-c-search-input pf-v5-u-background-color-100", id: "account-group-filter", value: userSearch, isDisabled: isFetching || !selectedGroup, onChange: (_, value) => setUserSearch(value), placeholder: t('Search for people in this group'), "aria-label": "Group search input", onClear: () => setUserSearch('') }))),
154
156
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading group users list') } },
155
157
  React.createElement(ManageTable, { ariaLabel: t('Table to manage groups'), columns: columns, data: data, sortInfo: { column: 'first-name', direction: 'asc' }, isFetching: isFetching, isError: false }))));
156
158
  };
@@ -1,4 +1,5 @@
1
1
  import { IBookmark } from '@rh-support/react-context';
2
+ import React from 'react';
2
3
  interface IProps {
3
4
  isOpen: boolean;
4
5
  onClose: () => void;
@@ -10,6 +11,6 @@ interface IProps {
10
11
  addMode: boolean;
11
12
  title: string;
12
13
  }
13
- export declare const AddEditBookmarkModal: (props: IProps) => JSX.Element;
14
+ export declare const AddEditBookmarkModal: (props: IProps) => React.JSX.Element;
14
15
  export {};
15
16
  //# sourceMappingURL=AddEditBookmarkModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddEditBookmarkModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAStD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,oBAAoB,UAAW,MAAM,gBA2IjD,CAAC"}
1
+ {"version":3,"file":"AddEditBookmarkModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,oBAAoB,UAAW,MAAM,sBA2IjD,CAAC"}
@@ -77,7 +77,7 @@ export const AddEditBookmarkModal = (props) => {
77
77
  React.createElement(Trans, null, "Cancel")),
78
78
  ] },
79
79
  React.createElement("div", null,
80
- React.createElement("div", { className: "pf-u-mb-lg" },
80
+ React.createElement("div", { className: "pf-v5-u-mb-lg" },
81
81
  React.createElement(BookmarkGroupSelector, { selectedGroup: selectedGroup, groups: props.groups, onGroupInputBoxChanged: onGroupInputBoxChanged, isInValid: isInValid && (isPresentInGroups || isEmpty(selectedGroup === null || selectedGroup === void 0 ? void 0 : selectedGroup.trim())), setIsInValid: setIsInValid, isPresentInGroups: isPresentInGroups })),
82
82
  React.createElement("div", null,
83
83
  React.createElement("label", { id: "add-bookmark-account-on-add-modal" },
@@ -1,5 +1,6 @@
1
1
  import { IAccountListParams } from '@cee-eng/hydrajs/@types/models/csp/account';
2
2
  import { IBookmark } from '@rh-support/react-context';
3
+ import React from 'react';
3
4
  interface IProps {
4
5
  bookmarkedGroupAccounts: IBookmark[];
5
6
  accountListParams?: IAccountListParams;
@@ -12,7 +13,7 @@ interface IProps {
12
13
  isInValid: boolean;
13
14
  selectedGroup?: string;
14
15
  }
15
- export declare function BookmarkAccountSelector(props: IProps): JSX.Element;
16
+ export declare function BookmarkAccountSelector(props: IProps): React.JSX.Element;
16
17
  export declare namespace BookmarkAccountSelector {
17
18
  var defaultProps: {
18
19
  clearRef: {
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkAccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAGhF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAUtD,UAAU,MAAM;IACZ,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,eAwPpD;yBAxPe,uBAAuB"}
1
+ {"version":3,"file":"BookmarkAccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAIhF,OAAO,EAAE,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAO3E,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,UAAU,MAAM;IACZ,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA6PpD;yBA7Pe,uBAAuB"}
@@ -8,8 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { accounts } from '@cee-eng/hydrajs';
11
- import { Label, LabelGroup, Select, SelectOption, SelectVariant, Tooltip } from '@patternfly/react-core';
11
+ import { Label, LabelGroup, Tooltip } from '@patternfly/react-core';
12
+ import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
12
13
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
14
+ import { sortAccountsByQuery } from '@rh-support/react-context';
13
15
  import assign from 'lodash/assign';
14
16
  import compact from 'lodash/compact';
15
17
  import debounce from 'lodash/debounce';
@@ -40,12 +42,15 @@ export function BookmarkAccountSelector(props) {
40
42
  limit: 60,
41
43
  accountNumberNotNull: true,
42
44
  };
45
+ let queryKey;
43
46
  // query as number is a hack to get around TS, isNaN can take a string but it was throwing error here
44
47
  if (isNaN(query)) {
45
48
  params.nameLike = query;
49
+ queryKey = 'name';
46
50
  }
47
51
  else {
48
52
  params.accountNumberLike = query;
53
+ queryKey = 'accountNumber';
49
54
  }
50
55
  const queryParams = !isEmpty(props.accountListParams)
51
56
  ? assign({}, props.accountListParams, params)
@@ -66,7 +71,8 @@ export function BookmarkAccountSelector(props) {
66
71
  return bookmarksMatch.length > 0
67
72
  ? Object.assign(Object.assign({}, account), { bookmarkGroupName: acountGroups, isBookmarked: true, isBookmarkedAndHasGroup: acountGroups.length > 0 }) : Object.assign(Object.assign({}, account), { bookmarkGroupName: [], isBookmarked: false, isBookmarkedAndHasGroup: false });
68
73
  });
69
- setOptions(accountsResponse);
74
+ const sortedOptions = sortAccountsByQuery(accountsResponse, query, queryKey);
75
+ setOptions(sortedOptions);
70
76
  setIsSearching(false);
71
77
  }
72
78
  catch (err) {
@@ -94,6 +100,7 @@ export function BookmarkAccountSelector(props) {
94
100
  ];
95
101
  setSelected(selectedAccounts);
96
102
  props.onBookMarkAccountSelected(selectedAccounts);
103
+ setIsOpen(false);
97
104
  };
98
105
  const duplicateAccounts = (props.selectedGroup &&
99
106
  props.addMode &&
@@ -103,13 +110,14 @@ export function BookmarkAccountSelector(props) {
103
110
  })
104
111
  .map((a) => a.accountNumber)) ||
105
112
  [];
106
- const removeAccountLabel = (removedAccount) => {
113
+ const removeAccountLabel = (event, removedAccount) => {
114
+ event.stopPropagation();
107
115
  const updatedSelectedAccounts = remove(selected, (account) => account.accountNumber !== removedAccount.accountNumber);
108
116
  setSelected(updatedSelectedAccounts);
109
117
  props.onBookMarkAccountSelected(updatedSelectedAccounts);
110
118
  };
111
119
  const labelGroupComponent = () => {
112
- return (React.createElement(LabelGroup, { numLabels: 2 }, (selected || []).map((currentLabel) => (React.createElement(Label, { key: currentLabel.accountNumber, onClose: () => removeAccountLabel(currentLabel), isTruncated: false, color: "cyan" },
120
+ return (React.createElement(LabelGroup, { numLabels: 2 }, (selected || []).map((currentLabel) => (React.createElement(Label, { key: currentLabel.accountNumber, onClose: (event) => removeAccountLabel(event, currentLabel), color: "cyan", onClick: (event) => event.stopPropagation() },
113
121
  currentLabel.name,
114
122
  " (",
115
123
  currentLabel.accountNumber,
@@ -139,14 +147,14 @@ export function BookmarkAccountSelector(props) {
139
147
  const titleId = 'multi-typeahead-bookmark-chip-group-props-id';
140
148
  return (React.createElement(React.Fragment, null,
141
149
  React.createElement("span", { id: titleId, hidden: true }, "Select a state"),
142
- React.createElement(Select, Object.assign({ chipGroupComponent: labelGroupComponent(), variant: SelectVariant.typeaheadMulti, typeAheadAriaLabel: t('Search for account names or numbers'), onToggle: onToggle, onSelect: onSelect, onClear: clearSelection, "data-tracking-id": props.labelId, selections: selected, isOpen: isOpen, "aria-labelledby": titleId, placeholderText: t('Search for account names or numbers'), hasInlineFilter: false, onTypeaheadInputChanged: debounceFn, onFilter: () => undefined, "aria-describedby": "clusterID-validate-helper" }, (isSearching && { loadingVariant: 'spinner' })), options.map((account, index) => (React.createElement(SelectOption, { value: account, key: index },
150
+ React.createElement(Select, Object.assign({ chipGroupComponent: labelGroupComponent(), variant: SelectVariant.typeaheadMulti, typeAheadAriaLabel: t('Search for account names or numbers'), onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, onClear: clearSelection, "data-tracking-id": props.labelId, selections: selected, isOpen: isOpen, "aria-labelledby": titleId, placeholderText: t('Search for account names or numbers'), hasInlineFilter: false, onTypeaheadInputChanged: debounceFn, onFilter: () => undefined, "aria-describedby": "clusterID-validate-helper" }, (isSearching && { loadingVariant: 'spinner' })), options.map((account, index) => (React.createElement(SelectOption, { value: account, key: index },
143
151
  React.createElement("div", null,
144
- React.createElement("div", { className: "pf-u-color-100 pf-u-font-size-sm" },
152
+ React.createElement("div", { className: "pf-v5-u-color-100 pf-v5-u-font-size-sm" },
145
153
  account.name,
146
154
  " (",
147
155
  account.accountNumber,
148
156
  ")"),
149
- React.createElement("div", null, account.bookmarkGroupName.length === 0 ? (React.createElement("span", { className: "pf-u-color-400" },
157
+ React.createElement("div", null, account.bookmarkGroupName.length === 0 ? (React.createElement("span", { className: "pf-v5-u-color-400" },
150
158
  React.createElement(Trans, null, "This account has not been bookmarked."))) : account.bookmarkGroupName.length > 2 ? (React.createElement("div", null,
151
159
  React.createElement(Tooltip, { isContentLeftAligned: true, content: account.bookmarkGroupName.map((group) => (React.createElement("div", null, group))) },
152
160
  React.createElement(Label, { color: "purple", icon: React.createElement(InfoCircleIcon, null), key: `${account.accountNumber}${account.bookmarkGroupName}` },
@@ -7,6 +7,6 @@ interface IProps {
7
7
  setIsInValid: React.Dispatch<React.SetStateAction<boolean>>;
8
8
  isPresentInGroups: boolean;
9
9
  }
10
- declare const BookmarkGroupSelector: (props: IProps) => JSX.Element;
10
+ declare const BookmarkGroupSelector: (props: IProps) => React.JSX.Element;
11
11
  export { BookmarkGroupSelector };
12
12
  //# sourceMappingURL=BookmarkGroupSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkGroupSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,qBAAqB,UAAW,MAAM,gBAkD3C,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"BookmarkGroupSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkGroupSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,qBAAqB,UAAW,MAAM,sBAsD3C,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Form, FormGroup, TextInput } from '@patternfly/react-core';
1
+ import { Form, FormGroup, FormHelperText, HelperText, HelperTextItem, TextInput } from '@patternfly/react-core';
2
2
  import React, { useEffect, useState } from 'react';
3
3
  import { Trans, useTranslation } from 'react-i18next';
4
4
  const BookmarkGroupSelector = (props) => {
@@ -21,9 +21,12 @@ const BookmarkGroupSelector = (props) => {
21
21
  React.createElement(Trans, null, "Bookmark name"),
22
22
  React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
23
23
  React.createElement(Form, null,
24
- React.createElement(FormGroup, { helperTextInvalid: props.isPresentInGroups
25
- ? t('A bookmark with this name already exists')
26
- : t('Add a name to your bookmark'), validated: validated },
27
- React.createElement(TextInput, { value: props.selectedGroup, onChange: onInputSave, placeholder: t('Enter a unique name for your bookmark'), "aria-invalid": props.isInValid, validated: validated, selected: false, id: "bookmark-group-input", width: 200 })))));
24
+ React.createElement(FormGroup, null,
25
+ validated === 'error' && (React.createElement(FormHelperText, null,
26
+ React.createElement(HelperText, null,
27
+ React.createElement(HelperTextItem, { variant: "error" }, props.isPresentInGroups
28
+ ? t('A bookmark with this name already exists')
29
+ : t('Add a name to your bookmark'))))),
30
+ React.createElement(TextInput, { value: props.selectedGroup, onChange: (_event, value) => onInputSave(value), placeholder: t('Enter a unique name for your bookmark'), "aria-invalid": props.isInValid, validated: validated, selected: false, id: "bookmark-group-input", width: 200 })))));
28
31
  };
29
32
  export { BookmarkGroupSelector };
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  canManageBookmarkAccounts: boolean;
3
4
  }
4
- export declare function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }: IProps): JSX.Element;
5
+ export declare function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }: IProps): React.JSX.Element;
5
6
  export {};
6
7
  //# sourceMappingURL=ManageGroupedBookmarkedAccountsTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManageGroupedBookmarkedAccountsTab.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.tsx"],"names":[],"mappings":"AA8CA,UAAU,MAAM;IACZ,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,kCAAkC,CAAC,EAAE,yBAAyB,EAAE,EAAE,MAAM,eA4YvF"}
1
+ {"version":3,"file":"ManageGroupedBookmarkedAccountsTab.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAOhD,UAAU,MAAM;IACZ,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,kCAAkC,CAAC,EAAE,yBAAyB,EAAE,EAAE,MAAM,qBAqZvF"}
@@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { ActionList, ActionListItem, AlertVariant, Button, ButtonVariant, Label, LabelGroup, Popover, PopoverPosition, SearchInput, } from '@patternfly/react-core';
11
- import PencilAltIcon from '@patternfly/react-icons/dist/esm/icons/pencil-alt-icon';
12
- import TrashIcon from '@patternfly/react-icons/dist/esm/icons/trash-icon';
10
+ import { ActionList, ActionListItem, AlertVariant, Button, ButtonVariant, Icon, Label, LabelGroup, Popover, PopoverPosition, SearchInput, } from '@patternfly/react-core';
13
11
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
12
+ import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon';
13
+ import TrashIcon from '@patternfly/react-icons/dist/js/icons/trash-icon';
14
14
  import { defaultTableSortMethod, ErrorBoundary, ToastNotification, useConfirmation, } from '@rh-support/components';
15
15
  import { addEditbookmarks, getBookmarkGroups, removeGroupedBookmarks, removeWholeGroup, useGlobalDispatchContext, useGlobalStateContext, useGroupedBookmarkApiCalls, } from '@rh-support/react-context';
16
16
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -89,7 +89,8 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
89
89
  selectedAccounts.forEach((selectedAccount) => {
90
90
  if (accountsGroupsObj[selectedAccount.accountNumber]) {
91
91
  isEmpty(group) &&
92
- accountsGroupsObj[selectedAccount.accountNumber].includes(undefined || '') &&
92
+ (accountsGroupsObj[selectedAccount.accountNumber].includes(undefined) ||
93
+ accountsGroupsObj[selectedAccount.accountNumber].includes('')) &&
93
94
  alreadyAdded.push(selectedAccount.accountNumber);
94
95
  !isEmpty(group) &&
95
96
  accountsGroupsObj[selectedAccount.accountNumber].includes(group) &&
@@ -192,7 +193,7 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
192
193
  removeWholeGroup(dispatchGlobalContext, bookmarkedGroupAccounts.data, rootBookmarIds);
193
194
  ToastNotification.addSuccessMessage(t('Bookmark group has been successfully removed'));
194
195
  }
195
- catch (_b) {
196
+ catch (_a) {
196
197
  // user didn't confirm the delete action
197
198
  }
198
199
  }
@@ -233,10 +234,10 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
233
234
  cellWidth: 10,
234
235
  cell: (group) => (React.createElement(ActionList, { isIconList: true },
235
236
  React.createElement(ActionListItem, null,
236
- React.createElement(Button, { variant: "plain", onClick: () => onOpenEditGroupOpenModal(group) },
237
+ React.createElement(Button, { "aria-label": "edit", variant: "plain", onClick: () => onOpenEditGroupOpenModal(group) },
237
238
  React.createElement(PencilAltIcon, null))),
238
239
  React.createElement(ActionListItem, null,
239
- React.createElement(Button, { variant: "plain", onClick: () => removeGroup(group) },
240
+ React.createElement(Button, { "aria-label": "delete", variant: "plain", onClick: () => removeGroup(group) },
240
241
  React.createElement(TrashIcon, null))))),
241
242
  },
242
243
  ];
@@ -245,7 +246,7 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
245
246
  };
246
247
  if (!canManageBookmarkAccounts)
247
248
  return null;
248
- return (React.createElement("section", { id: "manage-bookmarked-accounts" },
249
+ return (React.createElement(React.Fragment, null,
249
250
  React.createElement("header", null,
250
251
  React.createElement("h2", null, t('Bookmarks')),
251
252
  React.createElement("p", null,
@@ -257,20 +258,22 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
257
258
  React.createElement("a", { href: "https://source.redhat.com/communitiesatredhat/applications/integration-community-of-practice/misplaced/lostnfound/bookmarking", target: "_blank", rel: "noopener noreferrer" },
258
259
  ' ',
259
260
  "bookmarks in the customer support tool"))), closeBtnAriaLabel: "Close" },
260
- React.createElement(InfoCircleIcon, { className: "pf-u-ml-xs", "aria-label": "Cluster Id Info", size: "sm" }))))),
261
+ React.createElement(Button, { variant: "plain", className: "manage-bookmark-info-icon-button", "aria-label": "Cluster Id Info" },
262
+ React.createElement(Icon, { size: "md" },
263
+ React.createElement(InfoCircleIcon, null))))))),
261
264
  React.createElement("div", { className: "toolbar" },
262
265
  React.createElement("form", { onSubmit: (event) => event.preventDefault(), className: "toolbar-left" },
263
266
  React.createElement("label", { htmlFor: "bookmark-account-selector" },
264
267
  React.createElement(Trans, null, "Search accounts")),
265
268
  React.createElement("span", { className: "bookmark-account" },
266
269
  React.createElement(BookmarkAccountSelector, { clearRef: clearRef, labelId: "bookmark-account-selector", isDisabled: !loggedInUserRights.data.isInternal() || !canBookmarkAccounts, bookmarkedGroupAccounts: bookmarkedGroupAccounts.data, onBookMarkAccountSelected: onBookMarkAccountSelected, addMode: true, isInValid: false })),
267
- React.createElement("span", { className: "pf-u-ml-sm" },
270
+ React.createElement("span", { className: "pf-v5-u-ml-sm" },
268
271
  React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: onOpenAddBookmarkModal, "data-tracking-id": "bookmark-add-button", isDisabled: isValid() || apiCalls.isAddingBookmark },
269
272
  React.createElement(Trans, null, "Add bookmark")))),
270
273
  React.createElement("div", { className: "toolbar-right" },
271
274
  React.createElement("label", { htmlFor: "search-bookmark-account-selector" },
272
275
  React.createElement(Trans, null, "Filter by")),
273
- React.createElement(SearchInput, { className: "pf-u-flex-grow-1 pf-c-search-input pf-u-background-color-100", value: searchString, id: "search-bookmark-account-selector", placeholder: t('Search for a bookmark'), "aria-label": t('Filter by searching for a bookmark'), onChange: setSearchString, onClear: () => setSearchString('') }))),
276
+ React.createElement(SearchInput, { className: "pf-v5-u-flex-grow-1 pf-v5-c-search-input pf-v5-u-background-color-100", value: searchString, id: "search-bookmark-account-selector", placeholder: t('Search for a bookmark'), "aria-label": t('Filter by searching for a bookmark'), onChange: (_, val) => setSearchString(val), onClear: () => setSearchString('') }))),
274
277
  React.createElement(AddEditBookmarkModal, { selectedAccounts: isInAddMode ? localSelectedAccounts : editGroupSelectedAccounts, groups: groups, isOpen: isUpdateBookmarkModalOpen, onSave: onAddEditBookmarksSave, onClose: closeAddEditBookmarkModal, onRemove: removeGroup, bookmarkedGroupAccounts: bookmarkedGroupAccounts.data, addMode: isInAddMode, title: isInAddMode ? t('Add a bookmark') : t('Edit bookmark') }),
275
278
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading bookmarked accounts list') } },
276
279
  React.createElement(ManageTable, { ariaLabel: t('Table to manage bookmarks'), columns: columns, data: groupNames, sortInfo: { column: 'bookmark-group-name', direction: 'asc' }, errorVariant: AlertVariant.warning, isFetching: bookmarkedGroupAccounts.isFetching ||
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { IExpiredContentEditState } from '../../reducers/ExpiredContentReducer';
3
+ interface IProps {
4
+ category: IExpiredContentEditState;
5
+ isCategoryExpanded?: boolean;
6
+ }
7
+ export default function ExpiredContentCategory({ category, isCategoryExpanded }: IProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ExpiredContentCategory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredContentCategory.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentCategory.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,UAAU,MAAM;IACZ,QAAQ,EAAE,wBAAwB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAAE,kBAA0B,EAAE,EAAE,MAAM,qBAyC9F"}
@@ -0,0 +1,31 @@
1
+ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core';
2
+ import isEmpty from 'lodash/isEmpty';
3
+ import orderBy from 'lodash/orderBy';
4
+ import React, { useContext, useEffect, useState } from 'react';
5
+ import { ExpiredContentStateContext } from '../../context/ExpiredContentContextProvider';
6
+ import ExpiredContentSingleItem from './ExpiredContentSingleItem';
7
+ export default function ExpiredContentCategory({ category, isCategoryExpanded = false }) {
8
+ const [isExpanded, setIsExpanded] = useState(isCategoryExpanded);
9
+ const { showApprochingExpiry } = useContext(ExpiredContentStateContext);
10
+ const toggleExpanded = () => {
11
+ setIsExpanded((pre) => !pre);
12
+ };
13
+ useEffect(() => {
14
+ isCategoryExpanded !== isExpanded && setIsExpanded(isCategoryExpanded);
15
+ // eslint-disable-next-line react-hooks/exhaustive-deps
16
+ }, [isCategoryExpanded]);
17
+ const hasDateExpired = (dateString) => {
18
+ const inputDate = new Date(dateString);
19
+ const currentDate = new Date();
20
+ return inputDate < currentDate;
21
+ };
22
+ const expiredContents = showApprochingExpiry
23
+ ? category.content.filter((item) => !hasDateExpired(item.expiryDate))
24
+ : category.content;
25
+ const sortedExpiredContents = orderBy(expiredContents, ['expiryDate'], ['desc']);
26
+ return !isEmpty(sortedExpiredContents) ? (React.createElement(AccordionItem, null,
27
+ React.createElement(AccordionToggle, { id: category.categoryName, onClick: toggleExpanded, isExpanded: isExpanded },
28
+ React.createElement("h3", null, category.categoryName)),
29
+ React.createElement(AccordionContent, { isHidden: !isExpanded },
30
+ React.createElement("ul", { className: "list-flat list-flushleft" }, expiredContents.map((content, i) => (React.createElement(ExpiredContentSingleItem, { key: content.topContentId, content: content, category: category }))))))) : (React.createElement(React.Fragment, null));
31
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export default function ExpiredContentHeader(): React.JSX.Element;
3
+ //# sourceMappingURL=ExpiredContentHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredContentHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,OAAO,UAAU,oBAAoB,sBAW3C"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { Trans } from 'react-i18next';
3
+ export default function ExpiredContentHeader() {
4
+ return (React.createElement("header", null,
5
+ React.createElement("h2", null,
6
+ React.createElement(Trans, null, "Expired Content")),
7
+ React.createElement("p", { className: "pf-v5-u-mt-md pf-v5-u-mb-sm" },
8
+ React.createElement(Trans, null))));
9
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function ExpiredContentManagement(): React.JSX.Element;
3
+ //# sourceMappingURL=ExpiredContentManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredContentManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentManagement.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,wBAAwB,sBAWvC"}
@@ -0,0 +1,13 @@
1
+ import { ErrorBoundary } from '@rh-support/components';
2
+ import React from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { ExpiredContentContextProvider } from '../../context/ExpiredContentContextProvider';
5
+ import { TagManagementContextProvider } from '../../context/TagManagementContextProvider';
6
+ import ExipredContentManager from './ExpiredContentManager';
7
+ export function ExpiredContentManagement() {
8
+ const { t } = useTranslation();
9
+ return (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading contents') } },
10
+ React.createElement(TagManagementContextProvider, null,
11
+ React.createElement(ExpiredContentContextProvider, null,
12
+ React.createElement(ExipredContentManager, null)))));
13
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export default function ExipredContentManager(): React.JSX.Element;
3
+ //# sourceMappingURL=ExpiredContentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredContentManager.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentManager.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,qBAAqB,sBAmH5C"}
@@ -0,0 +1,68 @@
1
+ import { Accordion, Bullseye, EmptyState, EmptyStateBody, EmptyStateHeader, EmptyStateIcon, EmptyStateVariant, Spinner, Switch, } from '@patternfly/react-core';
2
+ import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
3
+ import { TagsSelector, TopContentSearch } from '@rh-support/components';
4
+ import isEmpty from 'lodash/isEmpty';
5
+ import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
6
+ import { Trans, useTranslation } from 'react-i18next';
7
+ import { ExpiredContentDispatchContext, ExpiredContentStateContext } from '../../context/ExpiredContentContextProvider';
8
+ import { TagManagementDispatchContext, TagManagementStateContext } from '../../context/TagManagementContextProvider';
9
+ import { fetchExpiredContent, setExpiredContentFilteredTags } from '../../reducers/ExpiredContentReducer';
10
+ import { fetchTopContentTags } from '../../reducers/TagManagmentReducer';
11
+ import ExpiredContentCategory from './ExpiredContentCategory';
12
+ import ExpiredContentHeader from './ExpiredContentHeader';
13
+ export default function ExipredContentManager() {
14
+ const expiredContentResultsRef = useRef(null);
15
+ const { t } = useTranslation();
16
+ const { expiredContentEditState, expiredContentResponse, filteredTags, showApprochingExpiry } = useContext(ExpiredContentStateContext);
17
+ const { tags: availableTags } = useContext(TagManagementStateContext);
18
+ const dispatch = useContext(ExpiredContentDispatchContext);
19
+ const tagManagerDispatch = useContext(TagManagementDispatchContext);
20
+ const [contentFilteredByQuery, setContentFilteredByQuery] = useState(expiredContentEditState);
21
+ const [searchQuery, setSearchQuery] = useState('');
22
+ const onSearch = (searchTerm, searchResults) => {
23
+ setContentFilteredByQuery(searchResults);
24
+ };
25
+ const filteredEC = useMemo(() => {
26
+ if (isEmpty(filteredTags))
27
+ return contentFilteredByQuery;
28
+ const filteredTagsIds = filteredTags.map((tag) => tag.id);
29
+ //filter top contents on basis of tags
30
+ const filteredData = contentFilteredByQuery.flatMap((item) => {
31
+ const contents = item.content.filter((content) => (content.tags || []).some((tag) => filteredTagsIds.includes(tag.id)));
32
+ if (!isEmpty(contents))
33
+ return [Object.assign(Object.assign({}, item), { content: contents })];
34
+ return [];
35
+ });
36
+ return filteredData;
37
+ }, [contentFilteredByQuery, filteredTags]);
38
+ const handleChange = (_event, checked) => {
39
+ fetchExpiredContent(dispatch, checked);
40
+ };
41
+ const onTagFilterChange = (tags) => {
42
+ setExpiredContentFilteredTags(dispatch, tags);
43
+ };
44
+ useEffect(() => {
45
+ fetchExpiredContent(dispatch);
46
+ fetchTopContentTags(tagManagerDispatch, false);
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, []);
49
+ useEffect(() => {
50
+ setContentFilteredByQuery(expiredContentEditState);
51
+ }, [expiredContentEditState]);
52
+ return (React.createElement(React.Fragment, null,
53
+ React.createElement(ExpiredContentHeader, null),
54
+ React.createElement("div", { className: "toolbar" },
55
+ React.createElement(TopContentSearch, { dataTrackingId: "expired-content-filter-manage", topContentData: expiredContentEditState, onSearch: onSearch, topContentResultsWrapperRef: expiredContentResultsRef, className: "toolbar-content", isDisabled: expiredContentResponse.isFetching, searchQuery: searchQuery, setSearchQuery: setSearchQuery }),
56
+ React.createElement("div", { className: "toolbar-content pf-v5-u-ml-md" },
57
+ React.createElement("label", { htmlFor: 'tag-selector' },
58
+ React.createElement(Trans, null, "All tags")),
59
+ React.createElement(TagsSelector, { tagOptions: availableTags, onChange: onTagFilterChange, selectedTags: filteredTags, disabled: expiredContentResponse.isFetching })),
60
+ React.createElement("div", { className: "toolbar-content pf-v5-u-mt-md" },
61
+ React.createElement(Switch, { id: "content-approaching-expiry", label: t('Show approaching expiry'), isChecked: showApprochingExpiry, onChange: handleChange }))),
62
+ React.createElement("div", { className: "expired-content-manage-wrapper pf-v5-u-pt-md", ref: expiredContentResultsRef }, expiredContentResponse.isFetching ? (React.createElement(Bullseye, null,
63
+ React.createElement(EmptyState, { variant: EmptyStateVariant.full },
64
+ React.createElement(Spinner, { size: "lg" })))) : isEmpty(filteredEC) ? (React.createElement(EmptyState, { variant: EmptyStateVariant.xs },
65
+ React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "No contents found"), icon: React.createElement(EmptyStateIcon, { icon: SearchIcon }) }),
66
+ React.createElement(EmptyStateBody, null,
67
+ React.createElement(Trans, null, "There are no contents to display")))) : (React.createElement(Accordion, null, filteredEC.map((category, i) => (React.createElement(ExpiredContentCategory, { key: category.id, category: category, isCategoryExpanded: !isEmpty(searchQuery) || !isEmpty(filteredTags) }))))))));
68
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { IExpiredContent, IExpiredContentEditState } from '../../reducers/ExpiredContentReducer';
3
+ interface IProps {
4
+ content: IExpiredContent;
5
+ category: IExpiredContentEditState;
6
+ }
7
+ export default function ExpiredContentSingleItem({ content, category }: IProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ExpiredContentSingleItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpiredContentSingleItem.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentSingleItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,EAEH,eAAe,EACf,wBAAwB,EAE3B,MAAM,sCAAsC,CAAC;AAG9C,UAAU,MAAM;IACZ,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,wBAAwB,CAAC;CACtC;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,qBA4G7E"}
@@ -0,0 +1,77 @@
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 { Button, Label } from '@patternfly/react-core';
11
+ import EditAltIcon from '@patternfly/react-icons/dist/js/icons/edit-alt-icon';
12
+ import { ToastNotification } from '@rh-support/components';
13
+ import { formatDate, isFutureDate } from '@rh-support/utils';
14
+ import React, { useContext, useState } from 'react';
15
+ import { useTranslation } from 'react-i18next';
16
+ import { ExpiredContentDispatchContext, ExpiredContentStateContext } from '../../context/ExpiredContentContextProvider';
17
+ import { deleteExpiredContent, updateExpiredContent, } from '../../reducers/ExpiredContentReducer';
18
+ import ExpiredContentSingleItemView from './ExpiredContentSingleItemView';
19
+ export default function ExpiredContentSingleItem({ content, category }) {
20
+ var _a, _b;
21
+ const { t } = useTranslation();
22
+ const { expiredContentEditState, filteredTags, showApprochingExpiry } = useContext(ExpiredContentStateContext);
23
+ const dispatch = useContext(ExpiredContentDispatchContext);
24
+ const [isPreview, setIsPreview] = useState(true);
25
+ const [isSaving, setIsSaving] = useState(false);
26
+ const [isDeleting, setIsDeleting] = useState(false);
27
+ const editToggle = () => {
28
+ setIsPreview(!isPreview);
29
+ };
30
+ const onSave = (updatedContent, deletedTags) => __awaiter(this, void 0, void 0, function* () {
31
+ try {
32
+ setIsSaving(true);
33
+ yield updateExpiredContent(dispatch, expiredContentEditState, category.categoryId, updatedContent, deletedTags, showApprochingExpiry);
34
+ editToggle();
35
+ ToastNotification.addSuccessMessage(t('Content updated successfully'));
36
+ }
37
+ catch (error) {
38
+ ToastNotification.addDangerMessage(t('There was an error updating content'));
39
+ }
40
+ finally {
41
+ setIsSaving(false);
42
+ }
43
+ });
44
+ const onDelete = () => __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ setIsDeleting(true);
47
+ yield deleteExpiredContent(dispatch, expiredContentEditState, category.id, content.topContentId);
48
+ editToggle();
49
+ ToastNotification.addSuccessMessage(t('Content deleted successfully'));
50
+ }
51
+ catch (error) {
52
+ ToastNotification.addDangerMessage(t('There was an error deleting content'));
53
+ }
54
+ finally {
55
+ setIsDeleting(false);
56
+ }
57
+ });
58
+ const lastModifiedBy = t(`Last modified {{created}} by {{by}}`, {
59
+ created: formatDate(content.updatedOn || content.createdOn),
60
+ by: content.updatedBy || content.createdBy,
61
+ });
62
+ const expiredText = t(` ${isFutureDate(content.expiryDate) ? 'Expires' : 'Expired'} on {{expired}}`, {
63
+ expired: formatDate(content.expiryDate),
64
+ });
65
+ return (React.createElement(React.Fragment, null, isPreview ? (React.createElement("li", { className: `push-bottom-narrow` },
66
+ React.createElement("a", { className: 'pcm-manage-top-content', "data-tracking-id": "pcm-manage-top-content", href: content.contentUrl, target: "_blank", rel: "noopener noreferrer" }, content.contentTitle),
67
+ React.createElement(Button, { variant: "link", isInline: true, icon: React.createElement(EditAltIcon, null), onClick: editToggle, title: 'Edit', "data-tracking-id": "edit-expired-top-content" }),
68
+ React.createElement("div", null,
69
+ lastModifiedBy,
70
+ " | ",
71
+ expiredText,
72
+ " | ",
73
+ content.product,
74
+ " ", (_a = content.majorVersion) !== null && _a !== void 0 ? _a : '',
75
+ content.minorVersion ? `.${content.minorVersion}` : ''),
76
+ React.createElement("div", null, (_b = content.tags) === null || _b === void 0 ? void 0 : _b.map((tag) => (React.createElement(Label, { isCompact: true, className: "pf-v5-u-mr-xs pf-v5-u-mt-sm", key: tag.id, color: filteredTags.some((t) => t.id === tag.id) ? 'gold' : 'grey' }, tag.tagName)))))) : (React.createElement(ExpiredContentSingleItemView, { category: category, content: content, onCancel: editToggle, onSave: onSave, onDelete: onDelete, isDeleting: isDeleting, isSaving: isSaving }))));
77
+ }