@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
@@ -0,0 +1,261 @@
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 { ActionList, ActionListItem, Bullseye, Button, ButtonVariant, EmptyState, EmptyStateVariant, Flex, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, Spinner, TextInput, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
11
+ import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon';
12
+ import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
13
+ import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
14
+ import TrashIcon from '@patternfly/react-icons/dist/js/icons/trash-icon';
15
+ import { ErrorBoundary, ToastNotification } from '@rh-support/components';
16
+ import { formatDate } from '@rh-support/utils';
17
+ import { isEmpty, isNull, isUndefined } from 'lodash';
18
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
19
+ import { Trans, useTranslation } from 'react-i18next';
20
+ import { TagManagementDispatchContext, TagManagementStateContext } from '../../context/TagManagementContextProvider';
21
+ import { createNewTags, deleteTag, fetchTopContentTags, updateTag } from '../../reducers/TagManagmentReducer';
22
+ import { ManageTable } from '../ManageTable';
23
+ export default function TagsManager() {
24
+ const { t } = useTranslation();
25
+ const [createTagModalOpen, setCreateTagModalOpen] = useState(false);
26
+ const [newTagName, setNewTagName] = useState('');
27
+ const [isCreatingNewTag, setIsCreatingNewTag] = useState(false);
28
+ const [createTagError, setCreateTagError] = useState('');
29
+ const [editTagModalOpen, setEditTagModalOpen] = useState(false);
30
+ const [editTagName, setEditTagName] = useState('');
31
+ const [isEditingTagName, setisEditingTagName] = useState(false);
32
+ const [selectedEditTag, setSelectedEditTag] = useState(null);
33
+ const [editTagError, setEditTagError] = useState('');
34
+ const [selectedDeleteTag, setSelectedDeleteTag] = useState(null);
35
+ const [isDeletingTag, setIsDeletingTag] = useState(false);
36
+ const [deleteTagModalOpen, setDeleteTagModalOpen] = useState(false);
37
+ const [tagSearchTerm, setTagSearchTerm] = useState('');
38
+ const { tagResponse, tags } = useContext(TagManagementStateContext);
39
+ const dispatch = useContext(TagManagementDispatchContext);
40
+ const tagsByIds = useMemo(() => tags.reduce((acc, t) => (Object.assign(Object.assign({}, acc), { [t.id]: t })), {}), [tags]);
41
+ const getCreateTagError = (tagName) => {
42
+ tagName = tagName.trim();
43
+ if (isEmpty(tagName))
44
+ return t('Tag name cannot be empty.');
45
+ const existingTag = tags.find((t) => t.tagName.toLowerCase() === tagName.toLowerCase());
46
+ if (existingTag)
47
+ return t('Tag with this name is already present.');
48
+ return '';
49
+ };
50
+ //filtering tags for user search
51
+ const filteredTagIds = useMemo(() => {
52
+ if (isEmpty(tagSearchTerm))
53
+ return tags.map((t) => t.id);
54
+ const filteredIds = [];
55
+ tags.forEach((t) => {
56
+ if (t.tagName.toLowerCase().includes(tagSearchTerm.toLowerCase())) {
57
+ filteredIds.push(t.id);
58
+ }
59
+ });
60
+ return filteredIds;
61
+ }, [tagSearchTerm, tags]);
62
+ const getTopContentTags = () => __awaiter(this, void 0, void 0, function* () {
63
+ try {
64
+ yield fetchTopContentTags(dispatch);
65
+ }
66
+ catch (err) {
67
+ ToastNotification.addDangerMessage(t('Error loading tag details'));
68
+ }
69
+ });
70
+ useEffect(() => {
71
+ getTopContentTags();
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, []);
74
+ const onCreateNewTag = () => __awaiter(this, void 0, void 0, function* () {
75
+ const errorMsg = getCreateTagError(newTagName);
76
+ if (!isEmpty(errorMsg)) {
77
+ setCreateTagError(errorMsg);
78
+ return;
79
+ }
80
+ try {
81
+ setIsCreatingNewTag(true);
82
+ yield createNewTags(dispatch, [{ tagName: newTagName.trim(), isActive: true }]);
83
+ setTagSearchTerm('');
84
+ ToastNotification.addSuccessMessage(t('Successfully created tag'));
85
+ }
86
+ catch (err) {
87
+ console.log({ err });
88
+ ToastNotification.addDangerMessage(t('Error creating tag'));
89
+ }
90
+ finally {
91
+ setIsCreatingNewTag(false);
92
+ onCancelCreateNewTag();
93
+ }
94
+ });
95
+ const onCancelCreateNewTag = () => {
96
+ setCreateTagError('');
97
+ setCreateTagModalOpen(false);
98
+ setNewTagName('');
99
+ };
100
+ const onEditTagClick = (tag) => __awaiter(this, void 0, void 0, function* () {
101
+ setEditTagName(tag.tagName);
102
+ setSelectedEditTag(tag);
103
+ setEditTagModalOpen(true);
104
+ });
105
+ const onEditTagConfirm = () => __awaiter(this, void 0, void 0, function* () {
106
+ const errorMsg = getCreateTagError(editTagName);
107
+ if (!isEmpty(errorMsg)) {
108
+ setEditTagError(errorMsg);
109
+ return;
110
+ }
111
+ if (isNull(selectedEditTag) || isUndefined(selectedEditTag))
112
+ return;
113
+ try {
114
+ setisEditingTagName(true);
115
+ yield updateTag(dispatch, { id: selectedEditTag.id, tagName: editTagName.trim() }, tags);
116
+ ToastNotification.addSuccessMessage(t('Successfully edited tag'));
117
+ }
118
+ catch (err) {
119
+ console.log(err);
120
+ ToastNotification.addDangerMessage(t('Error editing tag'));
121
+ }
122
+ finally {
123
+ setisEditingTagName(false);
124
+ onEditCancel();
125
+ }
126
+ });
127
+ const onEditCancel = () => {
128
+ setEditTagModalOpen(false);
129
+ setSelectedEditTag(null);
130
+ setEditTagName('');
131
+ setEditTagError('');
132
+ };
133
+ const onDeleteTagClick = (tag) => __awaiter(this, void 0, void 0, function* () {
134
+ setDeleteTagModalOpen(true);
135
+ setSelectedDeleteTag(tag);
136
+ });
137
+ const onDeleteTagConfirm = () => __awaiter(this, void 0, void 0, function* () {
138
+ if (isNull(selectedDeleteTag) || isUndefined(selectedDeleteTag))
139
+ return;
140
+ try {
141
+ setIsDeletingTag(true);
142
+ yield deleteTag(dispatch, selectedDeleteTag, { tagResponse, tags });
143
+ ToastNotification.addSuccessMessage(t('Tag deleted successfully'));
144
+ }
145
+ catch (err) {
146
+ console.log(err);
147
+ ToastNotification.addDangerMessage(t('Error deleting tag'));
148
+ }
149
+ finally {
150
+ setDeleteTagModalOpen(false);
151
+ setIsDeletingTag(false);
152
+ setSelectedDeleteTag(null);
153
+ }
154
+ });
155
+ const onSearchClear = () => {
156
+ setTagSearchTerm('');
157
+ };
158
+ const columns = [
159
+ {
160
+ accessor: (id) => tagsByIds[id].tagName,
161
+ sortable: false,
162
+ id: 'tagname-manage-table',
163
+ title: t('Tag'),
164
+ cellWidth: 20,
165
+ },
166
+ {
167
+ id: 'article-count-for-tags',
168
+ sortable: false,
169
+ title: t('No of top contents'),
170
+ cellWidth: 20,
171
+ cell: (id) => `${tagsByIds[id].numberOfLinkedContents || 0} articles`,
172
+ },
173
+ {
174
+ id: 'tag-created-by',
175
+ sortable: false,
176
+ title: t('Created by'),
177
+ cellWidth: 30,
178
+ cell: (id) => tagsByIds[id].createdBy,
179
+ },
180
+ {
181
+ id: 'tag-modified-date',
182
+ sortable: false,
183
+ title: t('Modified date'),
184
+ cellWidth: 20,
185
+ cell: (id) => formatDate(tagsByIds[id].modifiedDate),
186
+ },
187
+ {
188
+ id: 'tag-manage-actions',
189
+ title: '',
190
+ sortable: false,
191
+ cellWidth: 10,
192
+ cell: (id) => (React.createElement(ActionList, { isIconList: true },
193
+ React.createElement(ActionListItem, null,
194
+ React.createElement(Button, { variant: "plain", "data-tracking-id": "edit-tag", "aria-label": `edit tag ${tagsByIds[id].tagName}`, onClick: () => onEditTagClick(tagsByIds[id]) },
195
+ React.createElement(PencilAltIcon, null))),
196
+ React.createElement(ActionListItem, null,
197
+ React.createElement(Button, { "aria-label": `delete tag ${tagsByIds[id].tagName}`, variant: "plain", "data-tracking-id": "delete-tag", onClick: () => onDeleteTagClick(tagsByIds[id]) },
198
+ React.createElement(TrashIcon, null))))),
199
+ },
200
+ ];
201
+ const CreateTagModel = (React.createElement(Modal, { title: t('Create a tag'), onClose: onCancelCreateNewTag, isOpen: createTagModalOpen, actions: [
202
+ React.createElement(Button, { key: "create-tag", variant: ButtonVariant.primary, onClick: onCreateNewTag, isLoading: isCreatingNewTag, isDisabled: !isEmpty(createTagError) || isCreatingNewTag },
203
+ React.createElement(Trans, null, "Create")),
204
+ React.createElement(Button, { key: "cancel-create-tag", variant: ButtonVariant.link, onClick: onCancelCreateNewTag }, "Cancel"),
205
+ ] },
206
+ React.createElement(FormGroup, { label: "Tag name", isRequired: true },
207
+ React.createElement(TextInput, { isRequired: true, type: "text", id: "create-new-tag-text-input", value: newTagName, onChange: (e, v) => {
208
+ setNewTagName(v);
209
+ setCreateTagError('');
210
+ }, placeholder: t('Enter a unique name to create a tag'), validated: isEmpty(createTagError) ? 'default' : 'error' }),
211
+ !isEmpty(createTagError) && (React.createElement(FormHelperText, null,
212
+ React.createElement(HelperText, null,
213
+ React.createElement(HelperTextItem, { variant: "error" }, createTagError)))))));
214
+ const EditTagModal = (React.createElement(Modal, { title: t('Edit Tag'), isOpen: editTagModalOpen, onClose: onEditCancel, actions: [
215
+ React.createElement(Button, { key: "edit-tag", variant: ButtonVariant.primary, onClick: onEditTagConfirm, isLoading: isEditingTagName, isDisabled: !isEmpty(editTagError) || isEditingTagName },
216
+ React.createElement(Trans, null, "Save")),
217
+ React.createElement(Button, { key: "cancel-edit-tag", variant: ButtonVariant.link, onClick: onEditCancel }, "Cancel"),
218
+ ] },
219
+ React.createElement(FormGroup, { label: "Tag name", isRequired: true },
220
+ React.createElement(TextInput, { isRequired: true, type: "text", id: "edit-tag-text-input", value: editTagName, onChange: (e, v) => {
221
+ setEditTagName(v);
222
+ setEditTagError('');
223
+ }, placeholder: t('Enter a unique name for this tag') }),
224
+ !isEmpty(editTagError) && (React.createElement(FormHelperText, null,
225
+ React.createElement(HelperText, null,
226
+ React.createElement(HelperTextItem, { variant: "error" }, editTagError)))))));
227
+ const DeleteTagModel = () => (React.createElement(Modal, { title: t('Are you sure?'), isOpen: deleteTagModalOpen, onClose: () => setDeleteTagModalOpen(false), actions: [
228
+ React.createElement(Button, { key: "delete-tag", variant: ButtonVariant.danger, onClick: onDeleteTagConfirm, isLoading: isDeletingTag, isDisabled: isDeletingTag },
229
+ React.createElement(Trans, null, "Yes, I am sure")),
230
+ React.createElement(Button, { key: "cancel-delete-tag", variant: ButtonVariant.link, onClick: () => setDeleteTagModalOpen(false) }, "Cancel"),
231
+ ] },
232
+ React.createElement(Trans, null, "Deleting this tag will permanently untag all content associated with it. Are you sure you want to proceed?")));
233
+ return (React.createElement(React.Fragment, null,
234
+ CreateTagModel,
235
+ EditTagModal,
236
+ React.createElement(DeleteTagModel, null),
237
+ React.createElement("header", null,
238
+ React.createElement("h2", null, "Tags"),
239
+ React.createElement("p", { className: "pf-v5-u-my-sm" },
240
+ React.createElement(Trans, null, "Add, edit or remove tags and manage tagged top content."))),
241
+ React.createElement("div", { className: "toolbar" },
242
+ React.createElement(Flex, { alignItems: { default: 'alignItemsCenter' }, className: "pf-v5-u-w-100" },
243
+ React.createElement("label", { htmlFor: "tag-search-input" },
244
+ React.createElement(Trans, null, "Search Tag")),
245
+ React.createElement("div", { className: "pf-v5-u-flex-grow-1" },
246
+ React.createElement(TextInputGroup, null,
247
+ React.createElement(TextInputGroupMain, { type: "text", id: "tag-search-input", placeholder: t('Search for a tag'), icon: React.createElement(SearchIcon, null), value: tagSearchTerm, onChange: (e, v) => setTagSearchTerm(v) }),
248
+ !isEmpty(tagSearchTerm) && (React.createElement(TextInputGroupUtilities, null,
249
+ React.createElement(Button, { variant: "plain", onClick: onSearchClear, "aria-label": "Clear button and input" },
250
+ React.createElement(TimesIcon, null)))))),
251
+ React.createElement("span", { className: "pf-v5-u-ml-sm" },
252
+ React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: () => {
253
+ setCreateTagModalOpen(true);
254
+ setNewTagName(tagSearchTerm);
255
+ }, "data-tracking-id": "tag-create-button" },
256
+ React.createElement(Trans, null, "Create tag"))))),
257
+ React.createElement("div", { className: "tags-manager-wrapper" },
258
+ React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading tags list') } }, tagResponse.isFetching ? (React.createElement(Bullseye, null,
259
+ React.createElement(EmptyState, { variant: EmptyStateVariant.full },
260
+ React.createElement(Spinner, { size: "lg" })))) : (React.createElement(ManageTable, { ariaLabel: t('Table to manage tags'), data: filteredTagIds, columns: columns, isError: false, keepPageNumberOnDataChange: true }))))));
261
+ }
@@ -0,0 +1,2 @@
1
+ export { TagsManagement } from './TagsManagement';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageTags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export { TagsManagement } from './TagsManagement';
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  isOpen: boolean;
3
4
  onClose: () => void;
@@ -8,6 +9,6 @@ interface IProps {
8
9
  isAddingNotificationEmail: boolean;
9
10
  emailsList: string[];
10
11
  }
11
- export declare const NotificationEmailsModal: (props: IProps) => JSX.Element;
12
+ export declare const NotificationEmailsModal: (props: IProps) => React.JSX.Element;
12
13
  export {};
13
14
  //# sourceMappingURL=NotificationEmailsModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,yBAAyB,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,UAAW,MAAM,gBA8LpD,CAAC"}
1
+ {"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,yBAAyB,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,UAAW,MAAM,sBA0NpD,CAAC"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { customEmail } from '@cee-eng/hydrajs';
11
- import { Button, ButtonVariant, Form, FormGroup, Modal, ModalVariant, TextInput, ValidatedOptions, } from '@patternfly/react-core';
11
+ import { Button, ButtonVariant, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalVariant, TextInput, ValidatedOptions, } from '@patternfly/react-core';
12
12
  import { ToastNotification, useFetch } from '@rh-support/components';
13
13
  import { isEmailValid } from '@rh-support/utils';
14
14
  import isEmpty from 'lodash/isEmpty';
@@ -18,11 +18,13 @@ export const NotificationEmailsModal = (props) => {
18
18
  const { t } = useTranslation();
19
19
  const [isValidEmail, setIsValidEmail] = useState(true);
20
20
  const [isValidFirstName, setIsValidFirstName] = useState(true);
21
+ const [isValidLastName, setIsValidLastName] = useState(true);
21
22
  const [email, setEmail] = useState('');
22
23
  const [firstName, setFirstName] = useState('');
23
24
  const [lastName, setLastName] = useState('');
24
25
  const [saveButtonIsClicked, setSaveButtonIsClicked] = useState(false);
25
26
  const [isEmailDuplicate, setIsEmailDuplicate] = useState(false);
27
+ const [isSpecialCharFirstName, setIsSpecialCharFirstName] = useState(false);
26
28
  const { request: updateCustomEmail, isFetching: isUpdating } = useFetch(customEmail.updateCustomEmail, {
27
29
  propgateErrors: true,
28
30
  });
@@ -33,6 +35,7 @@ export const NotificationEmailsModal = (props) => {
33
35
  const resetModal = () => {
34
36
  setIsValidEmail(true);
35
37
  setIsValidFirstName(true);
38
+ setIsValidLastName(true);
36
39
  setSaveButtonIsClicked(false);
37
40
  setIsEmailDuplicate(false);
38
41
  };
@@ -45,6 +48,7 @@ export const NotificationEmailsModal = (props) => {
45
48
  const isDuplicateEmail = props.isAddingNotificationEmail ? props.emailsList.includes(email) : false;
46
49
  setIsValidEmail(isAValidEmail);
47
50
  setIsValidFirstName(isAValidFirstName);
51
+ setIsValidLastName(!checkForSpecialCharacters(lastName));
48
52
  props.isAddingNotificationEmail && setIsEmailDuplicate(isDuplicateEmail);
49
53
  if (!isAValidEmail || !isAValidFirstName || isDuplicateEmail)
50
54
  return;
@@ -87,17 +91,26 @@ export const NotificationEmailsModal = (props) => {
87
91
  setEmail(localemail);
88
92
  };
89
93
  const onFirstNameChange = (firstName) => {
90
- saveButtonIsClicked && setIsValidFirstName(!isEmpty(firstName.trim()));
94
+ const hasSpecialChars = checkForSpecialCharacters(firstName);
95
+ const isValid = !isEmpty(firstName.trim()) && !hasSpecialChars;
96
+ setIsValidFirstName(isValid);
97
+ setIsSpecialCharFirstName(hasSpecialChars);
91
98
  setFirstName(firstName);
92
99
  };
93
100
  const onLastNameChange = (lastName) => {
101
+ setIsValidLastName(!checkForSpecialCharacters(lastName));
94
102
  setLastName(lastName);
95
103
  };
104
+ const checkForSpecialCharacters = (s) => {
105
+ const specialCharRegex = /[^a-zA-Z0-9\s]/;
106
+ return specialCharRegex.test(s);
107
+ };
96
108
  return (React.createElement(Modal, { id: "Add-edit-notification-email-modal", className: "pf-modal-overflow-visible", title: t('Edit notification email'), "aria-describedby": "Add-edit-notification-email-modal", isOpen: props.isOpen, onClose: props.onClose, showClose: true, onEscapePress: props.onClose, variant: ModalVariant.medium, actions: [
97
109
  React.createElement(Button, { key: "save", variant: ButtonVariant.primary, onClick: save, isDisabled: !isFormDirty() ||
98
110
  isUpdating ||
99
111
  isAdding ||
100
112
  !isValidFirstName ||
113
+ !isValidLastName ||
101
114
  !isValidEmail ||
102
115
  isEmailDuplicate, spinnerAriaValueText: isUpdating || isAdding ? t('Adding') : undefined, isLoading: isUpdating || isAdding },
103
116
  React.createElement(Trans, null, "Save")),
@@ -105,10 +118,22 @@ export const NotificationEmailsModal = (props) => {
105
118
  React.createElement(Trans, null, "Cancel")),
106
119
  ] },
107
120
  React.createElement(Form, null,
108
- React.createElement(FormGroup, { label: t('Email address'), isRequired: true, fieldId: "email-notification-first-emailaddress", validated: isValidEmail && !isEmailDuplicate ? ValidatedOptions.default : ValidatedOptions.error, helperTextInvalid: !isValidEmail ? t('Invalid email') : isEmailDuplicate ? t('Duplicate Email') : '' },
109
- React.createElement(TextInput, { value: email, className: `form-control${!isValidEmail && isEmailDuplicate ? ' form-invalid' : ''}`, isRequired: true, type: "text", onChange: onEmailChange, "aria-label": t('Email address'), placeholder: t('Email address'), maxLength: 254, validated: isValidEmail && !isEmailDuplicate ? ValidatedOptions.default : ValidatedOptions.error, isDisabled: !props.isAddingNotificationEmail })),
110
- React.createElement(FormGroup, { label: t('First name'), isRequired: true, fieldId: "email-notification-first-name", validated: isValidFirstName ? ValidatedOptions.default : ValidatedOptions.error, helperTextInvalid: t('First name cannot be empty') },
111
- React.createElement(TextInput, { value: firstName, className: "form-control", isRequired: true, type: "text", onChange: onFirstNameChange, "aria-label": t('First name'), placeholder: t('First name'), maxLength: 254, validated: isValidFirstName ? ValidatedOptions.default : ValidatedOptions.error })),
121
+ React.createElement(FormGroup, { label: t('Email address'), isRequired: true, fieldId: "email-notification-first-emailaddress" },
122
+ React.createElement(TextInput, { value: email, isRequired: true, type: "text", onChange: (_event, localemail) => onEmailChange(localemail), "aria-label": t('Email address'), placeholder: t('Email address'), maxLength: 254, validated: isValidEmail && !isEmailDuplicate ? ValidatedOptions.default : ValidatedOptions.error, isDisabled: !props.isAddingNotificationEmail }),
123
+ !(isValidEmail && !isEmailDuplicate) && (React.createElement(FormHelperText, null,
124
+ React.createElement(HelperText, null,
125
+ React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, !isValidEmail ? t('Invalid email') : isEmailDuplicate ? t('Duplicate Email') : ''))))),
126
+ React.createElement(FormGroup, { label: t('First name'), isRequired: true, fieldId: "email-notification-first-name" },
127
+ React.createElement(TextInput, { value: firstName, isRequired: true, validated: isValidFirstName ? ValidatedOptions.default : ValidatedOptions.error, type: "text", onChange: (_event, firstName) => onFirstNameChange(firstName), "aria-label": t('First name'), placeholder: t('First name'), maxLength: 254 }),
128
+ !isValidFirstName && (React.createElement(FormHelperText, null,
129
+ React.createElement(HelperText, null,
130
+ React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, isSpecialCharFirstName
131
+ ? t('First name cannot contain special characters')
132
+ : t('First name cannot be empty')))))),
112
133
  React.createElement(FormGroup, { label: t('Last name'), fieldId: "email-notification-last-name" },
113
- React.createElement(TextInput, { value: lastName, className: "form-control", type: "text", onChange: onLastNameChange, "aria-label": t('Last name'), placeholder: t('Last name'), maxLength: 254 })))));
134
+ React.createElement(TextInput, { value: lastName, type: "text", validated: isValidLastName ? ValidatedOptions.default : ValidatedOptions.error, onChange: (_event, lastName) => onLastNameChange(lastName), "aria-label": t('Last name'), placeholder: t('Last name'), maxLength: 254 }),
135
+ !isValidLastName && (React.createElement(FormHelperText, null,
136
+ React.createElement(HelperText, null,
137
+ React.createElement(HelperTextItem, { variant: ValidatedOptions.error },
138
+ React.createElement(Trans, null, "Last name cannot contain special characters")))))))));
114
139
  };
@@ -1,2 +1,3 @@
1
- export declare function NotificationEmails(): JSX.Element;
1
+ import React from 'react';
2
+ export declare function NotificationEmails(): React.JSX.Element;
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/index.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,kBAAkB,gBAmOjC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,wBAAgB,kBAAkB,sBAmOjC"}
@@ -155,20 +155,20 @@ export function NotificationEmails() {
155
155
  setIsAddingNotificationEmail(true);
156
156
  editEmail({ firstName: '', lastName: '', email: emailToAdd });
157
157
  };
158
- return (React.createElement("section", { id: "notification-emails" },
158
+ return (React.createElement(React.Fragment, null,
159
159
  React.createElement("header", null,
160
160
  React.createElement("h2", null, t('Notification emails')),
161
161
  t('Add, edit or remove emails from your account that were added to receive notifications.')),
162
162
  React.createElement("div", { className: "toolbar" },
163
163
  React.createElement("div", { className: "toolbar-left" },
164
164
  React.createElement("label", { htmlFor: "notification-emails-input" }, t('Add an Email')),
165
- React.createElement(TextInput, { id: "notification-email-input", placeholder: t('Enter a valid email address'), "aria-label": t('Enter a valid email address'), onChange: onEmailInputBoxChange }),
166
- React.createElement("span", { className: "pf-u-ml-sm" },
165
+ React.createElement(TextInput, { id: "notification-email-input", placeholder: t('Enter a valid email address'), "aria-label": t('Enter a valid email address'), onChange: (_event, email) => onEmailInputBoxChange(email) }),
166
+ React.createElement("span", { className: "pf-v5-u-ml-sm" },
167
167
  React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: addEmail, "data-tracking-id": "email-address-add-button", isDisabled: isAddButtonDisabled },
168
168
  React.createElement(Trans, null, "Add")))),
169
169
  React.createElement("div", { className: "toolbar-right" },
170
170
  React.createElement("label", { htmlFor: "search-notification-emails-selector" }, t('Filter by')),
171
- React.createElement(SearchInput, { className: "pf-u-flex-grow-1 pf-c-search-input pf-u-background-color-100", id: "search-notification-emails-selector", placeholder: t('Search for an existing email'), value: searchString, onChange: onSearchChange, onClear: () => onSearchChange(''), "aria-label": t('Search for an existing email') }))),
171
+ React.createElement(SearchInput, { className: "pf-v5-u-flex-grow-1 pf-v5-c-search-input pf-v5-u-background-color-100", id: "search-notification-emails-selector", placeholder: t('Search for an existing email'), value: searchString, onChange: (_, value) => onSearchChange(value), onClear: () => onSearchChange(''), "aria-label": t('Search for an existing email') }))),
172
172
  React.createElement(ManageTable, { ariaLabel: t('Table to manage Notification emails'), columns: columns, data: emailLists || [], sortInfo: { column: 'first-name', direction: 'asc' }, errorVariant: AlertVariant.warning, isFetching: accountCustomEmails.isFetching, isError: accountCustomEmails.isError, errorTitle: t('Notification emails error'), errorComponent: React.createElement(Trans, null, "Could not get notification emails"), actionResolver: emailLists && emailLists.length !== 0 ? actionResolver : null, keepPageNumberOnDataChange: keepPageNumberOnDataChange }),
173
173
  React.createElement(NotificationEmailsModal, { isOpen: isEditModalOpen, onClose: onModalClose, selectedEmailNotification: selectedEmailNotification, onUpdate: onUpdate, onAdd: onAdd, accountNumber: loggedInUserJwtToken.account_number, isAddingNotificationEmail: isAddingNotificationEmail, emailsList: (accountCustomEmails.data || []).map((e) => e.emailAddress) })));
174
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryLimit.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/CategoryLimit/CategoryLimit.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAK5C,QAAA,MAAM,aAAa,EAAE,EA8BpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"CategoryLimit.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/CategoryLimit/CategoryLimit.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAK5C,QAAA,MAAM,aAAa,EAAE,EAgCpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Button, Popover } from '@patternfly/react-core';
1
+ import { Button, Icon, Popover } from '@patternfly/react-core';
2
2
  import CircleInfo from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
3
3
  import React, { useState } from 'react';
4
4
  import { Trans } from 'react-i18next';
@@ -14,7 +14,8 @@ const CategoryLimit = () => {
14
14
  setModalOpen(true);
15
15
  } }, "Review guidelines."))) },
16
16
  React.createElement(Button, { variant: "plain" },
17
- React.createElement(CircleInfo, { size: "md" }))),
17
+ React.createElement(Icon, { size: "md" },
18
+ React.createElement(CircleInfo, null)))),
18
19
  React.createElement(CategoryLimitGuidelines, { isModalOpen: isModalOpen, onHideModal: onHideModal })));
19
20
  };
20
21
  export default CategoryLimit;
@@ -10,7 +10,7 @@ export const CategoryLimitGuidelines = ({ isModalOpen, onHideModal }) => {
10
10
  React.createElement(Title, { headingLevel: "h1", size: TitleSizes['2xl'] },
11
11
  React.createElement(Trans, null, " Top content guideline ")),
12
12
  React.createElement(Trans, null,
13
- React.createElement("p", { className: "pf-u-pt-sm" }, "Guidelines and limitations for top content resources.")),
13
+ React.createElement("p", { className: "pf-v5-u-pt-sm" }, "Guidelines and limitations for top content resources.")),
14
14
  React.createElement(QuestionAnswer, { question: "What is top content?", answer: "Top content is defined as the top resource for given product and version that will provide the most value for our customer and the highest likelihood for case deflection." }),
15
15
  React.createElement(QuestionAnswer, { question: "What is not top content", answer: "Resource that are accessible in other parts of the customer journey throughout the Customer Portal. For example, labs are not a top content resource. " }),
16
16
  React.createElement(QuestionAnswer, { question: "Category and link restrictions", answer: `we allow for a minimum of ${DIGIT_WORD_MAP[CATEGORY_LIMIT.MIN]} and max ${DIGIT_WORD_MAP[CATEGORY_LIMIT.MAX]} categories, and links within each category.` })));
@@ -1,7 +1,7 @@
1
1
  import { Title } from '@patternfly/react-core';
2
2
  import React from 'react';
3
3
  import { Trans } from 'react-i18next';
4
- const QuestionAnswer = ({ question, answer }) => (React.createElement("div", { className: "pf-u-pt-lg" },
4
+ const QuestionAnswer = ({ question, answer }) => (React.createElement("div", { className: "pf-v5-u-pt-lg" },
5
5
  React.createElement(Title, { headingLevel: "h6", size: "md" },
6
6
  React.createElement(Trans, null,
7
7
  " ",
@@ -1 +1 @@
1
- {"version":3,"file":"ContentAccordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/ContentAccordion.tsx"],"names":[],"mappings":"AAUA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,UAAU,MAAM;IACZ,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,MAAM,CAoEvC,CAAC"}
1
+ {"version":3,"file":"ContentAccordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/ContentAccordion.tsx"],"names":[],"mappings":"AAUA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,UAAU,MAAM;IACZ,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,MAAM,CAsEvC,CAAC"}
@@ -25,11 +25,11 @@ export const ContentAccordion = ({ contentList, selectedVersion }) => {
25
25
  });
26
26
  return (React.createElement(AccordionItem, { key: topContentId },
27
27
  React.createElement(AccordionToggle, { onClick: onToggle(topContentId), isExpanded: expanded === topContentId, id: contentTitle },
28
- React.createElement("span", { className: isAttentionNeeded ? 'pf-u-danger-color-200' : '' },
28
+ React.createElement("span", { className: isAttentionNeeded ? 'pf-v5-u-danger-color-200' : '' },
29
29
  ' ',
30
30
  contentTitle)),
31
31
  React.createElement(AccordionContent, { id: contentTitle, isHidden: expanded !== topContentId },
32
- React.createElement("span", { className: "pf-u-font-size-sm" }, lastModifiedBy),
32
+ React.createElement("span", { className: "pf-v5-u-font-size-sm" }, lastModifiedBy),
33
33
  React.createElement("br", null),
34
34
  React.createElement("br", null),
35
35
  React.createElement(PerformanceMetricClickCount, { needsAttention: isAttentionNeeded, contentId: topContentId, selectedVersion: selectedVersion }))));
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/PerformanceMetrics.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKlC,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAsCzC,CAAC"}
1
+ {"version":3,"file":"PerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/PerformanceMetrics.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKlC,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAwCzC,CAAC"}
@@ -8,8 +8,8 @@ export const PerformanceMetrics = ({ isModalOpen, onHideModal, needsAttention, c
8
8
  ] },
9
9
  React.createElement(Title, { headingLevel: "h1", size: TitleSizes['2xl'] },
10
10
  React.createElement(Trans, null, " Performance metrics ")),
11
- React.createElement("p", { className: "pf-u-pb-lg pf-u-pt-sm" }, "Better understand the Performance for the top content resources."),
12
- React.createElement("div", { className: "pf-u-pb-xs top-content-tooltip-view-metric-label" }, title),
13
- React.createElement("div", { className: "pf-u-pb-lg" }, lastModifiedBy),
11
+ React.createElement("p", { className: "pf-v5-u-pb-lg pf-v5-u-pt-sm" }, "Better understand the Performance for the top content resources."),
12
+ React.createElement("div", { className: "pf-v5-u-pb-xs top-content-tooltip-view-metric-label" }, title),
13
+ React.createElement("div", { className: "pf-v5-u-pb-lg" }, lastModifiedBy),
14
14
  React.createElement(PerformanceMetricClickCount, { needsAttention: needsAttention, contentId: contentId, selectedVersion: selectedVersion })));
15
15
  };
@@ -1,4 +1,4 @@
1
- import { SelectOptionObject } from '@patternfly/react-core';
1
+ import { SelectOptionObject } from '@patternfly/react-core/deprecated';
2
2
  import React, { FC } from 'react';
3
3
  interface IProps {
4
4
  placeholderText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceMetricsSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,kBAAkB,EAAiB,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAG5C,UAAU,MAAM;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,CACd,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,EAC3C,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAClC,aAAa,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;IACV,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,KAAA,KAAK,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,MAAM,CAuC/C,CAAC"}
1
+ {"version":3,"file":"PerformanceMetricsSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/PerformanceMetricsSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,kBAAkB,EAAiB,MAAM,mCAAmC,CAAC;AAC5G,OAAO,KAAK,EAAE,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAG5C,UAAU,MAAM;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,CACd,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,EAC3C,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAClC,aAAa,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;IACV,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,KAAA,KAAK,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,MAAM,CAuC/C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core';
1
+ import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
2
2
  import React, { useState } from 'react';
3
3
  import { Trans } from 'react-i18next';
4
4
  export const PerformanceMetricsSelect = ({ placeholderText, title, onSelectCallback, options, optionValue, isLoading = false, isDisabled, }) => {
@@ -11,10 +11,10 @@ export const PerformanceMetricsSelect = ({ placeholderText, title, onSelectCallb
11
11
  setOpen(false);
12
12
  };
13
13
  return (React.createElement(React.Fragment, null,
14
- React.createElement("div", { className: "pf-u-font-weight-bold" },
14
+ React.createElement("div", { className: "pf-v5-u-font-weight-bold" },
15
15
  React.createElement(Trans, null,
16
16
  " ",
17
17
  title,
18
18
  " ")),
19
- React.createElement(Select, { variant: SelectVariant.single, placeholderText: placeholderText, "aria-label": "Select Input with descriptions", onToggle: onToggle, onSelect: onSelect, selections: selected, isOpen: isOpen, isDisabled: isDisabled || isLoading }, options.map((option, index) => (React.createElement(SelectOption, { key: index, value: optionValue(option) }))))));
19
+ React.createElement(Select, { variant: SelectVariant.single, placeholderText: placeholderText, "aria-label": "Select Input with descriptions", onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, selections: selected, isOpen: isOpen, isDisabled: isDisabled || isLoading }, options.map((option, index) => (React.createElement(SelectOption, { key: index, value: optionValue(option) }))))));
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"VersionPerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.tsx"],"names":[],"mappings":"AAcA,OAAc,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;AAUhE,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,MAAM,CAsGhD,CAAC"}
1
+ {"version":3,"file":"VersionPerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;AAUhE,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,MAAM,CAsGhD,CAAC"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { pcm } from '@cee-eng/hydrajs';
11
- import { Button, ButtonVariant, Flex, FlexItem, Modal, ModalVariant, Title, TitleSizes, } from '@patternfly/react-core';
11
+ import { Button, ButtonVariant, Flex, FlexItem, Modal, ModalVariant, Title, TitleSizes } from '@patternfly/react-core';
12
12
  import { useFetch } from '@rh-support/components';
13
13
  import isEmpty from 'lodash/isEmpty';
14
14
  import React, { useEffect, useMemo, useState } from 'react';
@@ -56,13 +56,13 @@ export const VersionPerformanceMetrics = ({ isModalOpen, onHideModal, selectedVe
56
56
  React.createElement("div", { className: "sticky-header" },
57
57
  React.createElement(Title, { headingLevel: "h1", size: TitleSizes['2xl'] },
58
58
  React.createElement(Trans, null, " Performance metrics ")),
59
- React.createElement("p", { className: "pf-u-pt-sm" },
59
+ React.createElement("p", { className: "pf-v5-u-pt-sm" },
60
60
  React.createElement(Trans, null, "Better understand the Performance for the top content resources.")),
61
61
  React.createElement("br", null),
62
62
  React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
63
- React.createElement(FlexItem, { className: "pf-u-w-50 pf-u-pr-md", style: { marginRight: 'unset' } },
63
+ React.createElement(FlexItem, { className: "pf-v5-u-w-50 pf-v5-u-pr-md", style: { marginRight: 'unset' } },
64
64
  React.createElement(PerformanceMetricsSelect, { placeholderText: t(!isEmpty(versionOptions) ? 'Select a version' : 'No versions available'), title: t(`Version using ${selectedVersionProp}`), onSelectCallback: onVersionSelect, options: versionOptions, optionValue: (option) => option, isLoading: isLoading, isDisabled: isEmpty(versionOptions) })),
65
- React.createElement(FlexItem, { className: "pf-u-w-50 pf-u-pl-md" },
65
+ React.createElement(FlexItem, { className: "pf-v5-u-w-50 pf-v5-u-pl-md" },
66
66
  React.createElement(PerformanceMetricsSelect, { placeholderText: t('select a category'), title: t('Categories'), options: flagContentEditState, optionValue: (option) => option.categoryName, onSelectCallback: (e, selectedOption) => setSelectedCategory(selectedOption), isLoading: !selectedVersion || isTopContentLoading })))),
67
67
  React.createElement("br", null),
68
68
  React.createElement(ContentAccordion, { contentList: selectedContent, selectedVersion: selectedVersion })));
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  version: string;
3
4
  product: string;
@@ -6,6 +7,6 @@ interface IProps {
6
7
  onVersionChange?: (version: string) => void;
7
8
  isContentOnlyForMajorVersion: boolean;
8
9
  }
9
- export declare function NoTopContentFound({ version, product, dataLength, onAddCategory, onVersionChange, isContentOnlyForMajorVersion, }: IProps): JSX.Element;
10
+ export declare function NoTopContentFound({ version, product, dataLength, onAddCategory, onVersionChange, isContentOnlyForMajorVersion, }: IProps): React.JSX.Element;
10
11
  export {};
11
12
  //# sourceMappingURL=NoTopContentFound.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoTopContentFound.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/NoTopContentFound.tsx"],"names":[],"mappings":"AAeA,UAAU,MAAM;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,mCAAmC,CAAC,EAAE,OAAO,KAC5C,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4BAA4B,EAAE,OAAO,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,4BAA4B,GAC/B,EAAE,MAAM,eAyFR"}
1
+ {"version":3,"file":"NoTopContentFound.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/NoTopContentFound.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,MAAM;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,mCAAmC,CAAC,EAAE,OAAO,KAC5C,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4BAA4B,EAAE,OAAO,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,4BAA4B,GAC/B,EAAE,MAAM,qBA8FR"}