@boomerang-io/carbon-addons-boomerang-react 4.6.10-beta.6 → 4.6.11-beta.0

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 (255) hide show
  1. package/README.md +162 -162
  2. package/dist/cjs/components/AboutPlatform/AboutPlatform.js +50 -50
  3. package/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +241 -224
  4. package/dist/cjs/components/AutoSuggest/AutoSuggest.js +101 -101
  5. package/dist/cjs/components/Avatar/Avatar.js +18 -18
  6. package/dist/cjs/components/CheckboxList/CheckboxList.js +34 -34
  7. package/dist/cjs/components/ComboBox/ComboBox.js +103 -103
  8. package/dist/cjs/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  9. package/dist/cjs/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  10. package/dist/cjs/components/ComposedModal/ComposedModal.js +80 -80
  11. package/dist/cjs/components/ConfirmModal/ConfirmModal.js +43 -43
  12. package/dist/cjs/components/Creatable/Creatable.js +137 -137
  13. package/dist/cjs/components/DataDrivenInput/DataDrivenInput.js +226 -226
  14. package/dist/cjs/components/DateInput/DateInput.js +35 -35
  15. package/dist/cjs/components/DecisionButtons/DecisionButtons.js +61 -61
  16. package/dist/cjs/components/DelayedRender/DelayedRender.js +17 -17
  17. package/dist/cjs/components/DynamicFormik/DynamicFormik.js +578 -578
  18. package/dist/cjs/components/Error403/Error403.js +13 -13
  19. package/dist/cjs/components/Error403/ForbiddenErrorBackground.js +113 -113
  20. package/dist/cjs/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  21. package/dist/cjs/components/Error404/Error404.js +13 -13
  22. package/dist/cjs/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  23. package/dist/cjs/components/Error404/NotFoundErrorBackground.js +129 -129
  24. package/dist/cjs/components/ErrorBoundary/ErrorBoundary.js +32 -32
  25. package/dist/cjs/components/ErrorDragon/ErrorDragon.js +13 -13
  26. package/dist/cjs/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  27. package/dist/cjs/components/ErrorFullPage/ErrorFullPage.js +10 -10
  28. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +22 -22
  29. package/dist/cjs/components/ErrorPage/ErrorPage.js +11 -11
  30. package/dist/cjs/components/ErrorPageCore/ErrorPageCore.js +15 -15
  31. package/dist/cjs/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  32. package/dist/cjs/components/FeatureHeader/FeatureHeader.js +29 -29
  33. package/dist/cjs/components/FeatureNavTab/FeatureNavTab.js +12 -12
  34. package/dist/cjs/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  35. package/dist/cjs/components/FeatureSideNav/FeatureSideNav.js +12 -12
  36. package/dist/cjs/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  37. package/dist/cjs/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  38. package/dist/cjs/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  39. package/dist/cjs/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  40. package/dist/cjs/components/Feedback/Feedback.js +40 -40
  41. package/dist/cjs/components/FlowModal/FlowModal.js +141 -141
  42. package/dist/cjs/components/FlowModal/FlowModalForm.js +12 -12
  43. package/dist/cjs/components/Header/Header.js +168 -182
  44. package/dist/cjs/components/Header/HeaderAppSwitcher.js +102 -94
  45. package/dist/cjs/components/Header/HeaderMenu.js +7 -7
  46. package/dist/cjs/components/Header/HeaderMenuItem.js +52 -52
  47. package/dist/cjs/components/Header/UserRequests.js +29 -29
  48. package/dist/cjs/components/ImageModal/ImageModal.js +17 -17
  49. package/dist/cjs/components/Loading/Loading.js +8 -8
  50. package/dist/cjs/components/MemberBar/MemberBar.js +20 -20
  51. package/dist/cjs/components/Modal/Modal.js +20 -20
  52. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  53. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  54. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  55. package/dist/cjs/components/ModalForm/ModalForm.js +9 -9
  56. package/dist/cjs/components/Notifications/NotificationsContainer.js +22 -22
  57. package/dist/cjs/components/Notifications/ToastNotification.js +21 -21
  58. package/dist/cjs/components/Notifications/notify.js +17 -17
  59. package/dist/cjs/components/PlatformBanner/PlatformBanner.js +8 -8
  60. package/dist/cjs/components/PlatformNotifications/PlatformNotification.js +17 -17
  61. package/dist/cjs/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  62. package/dist/cjs/components/Portal/Portal.js +14 -14
  63. package/dist/cjs/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  64. package/dist/cjs/components/PrivacyStatement/PrivacyStatement.js +90 -90
  65. package/dist/cjs/components/ProfileSettings/ProfileSettings.js +124 -124
  66. package/dist/cjs/components/ProtectedRoute/ProtectedRoute.js +13 -13
  67. package/dist/cjs/components/RadioGroup/RadioGroup.js +33 -33
  68. package/dist/cjs/components/RichTextArea/RichTextArea.js +142 -142
  69. package/dist/cjs/components/SignOut/SignOut.js +27 -27
  70. package/dist/cjs/components/SupportCenter/SupportCenter.js +65 -65
  71. package/dist/cjs/components/TextArea/TextArea.js +16 -16
  72. package/dist/cjs/components/TextInput/TextInput.js +13 -13
  73. package/dist/cjs/components/Toggle/Toggle.js +22 -22
  74. package/dist/cjs/components/TooltipHover/TooltipHover.js +39 -39
  75. package/dist/cjs/components/UIShell/UIShell.js +89 -90
  76. package/dist/cjs/config/servicesConfig.js +21 -21
  77. package/dist/cjs/constants/DataDrivenInputTypes.js +74 -74
  78. package/dist/cjs/constants/UserType.js +13 -13
  79. package/dist/cjs/hooks/useHeaderMenu.js +49 -49
  80. package/dist/cjs/hooks/usePortal.js +74 -74
  81. package/dist/cjs/hooks/useWindowSize.js +33 -33
  82. package/dist/cjs/internal/ListBox/ListBox.js +41 -41
  83. package/dist/cjs/internal/ListBox/ListBoxField.js +19 -19
  84. package/dist/cjs/internal/ListBox/ListBoxMenu.js +19 -19
  85. package/dist/cjs/internal/ListBox/ListBoxMenuIcon.js +31 -31
  86. package/dist/cjs/internal/ListBox/ListBoxMenuItem.js +38 -38
  87. package/dist/cjs/internal/ListBox/ListBoxSelection.js +64 -64
  88. package/dist/cjs/internal/ListBox/index.js +10 -10
  89. package/dist/cjs/internal/keyboard/keys.js +16 -16
  90. package/dist/cjs/internal/keyboard/match.js +67 -67
  91. package/dist/cjs/internal/settings.js +5 -5
  92. package/dist/cjs/tools/accessibility.js +13 -13
  93. package/dist/cjs/tools/createPropAdapter.js +44 -44
  94. package/dist/cjs/tools/isUrl.js +39 -39
  95. package/dist/cjs/tools/setupGetInstanceId.js +20 -20
  96. package/dist/cjs/tools/useSetState.js +12 -12
  97. package/dist/cjs/tools/yupAst/astGenerator.js +212 -212
  98. package/dist/cjs/tools/yupAst/customValidators.js +17 -17
  99. package/dist/esm/components/AboutPlatform/AboutPlatform.js +50 -50
  100. package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +243 -226
  101. package/dist/esm/components/AutoSuggest/AutoSuggest.js +101 -101
  102. package/dist/esm/components/Avatar/Avatar.js +18 -18
  103. package/dist/esm/components/CheckboxList/CheckboxList.js +34 -34
  104. package/dist/esm/components/ComboBox/ComboBox.js +103 -103
  105. package/dist/esm/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  106. package/dist/esm/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  107. package/dist/esm/components/ComposedModal/ComposedModal.js +80 -80
  108. package/dist/esm/components/ConfirmModal/ConfirmModal.js +43 -43
  109. package/dist/esm/components/Creatable/Creatable.js +137 -137
  110. package/dist/esm/components/DataDrivenInput/DataDrivenInput.js +226 -226
  111. package/dist/esm/components/DateInput/DateInput.js +35 -35
  112. package/dist/esm/components/DecisionButtons/DecisionButtons.js +61 -61
  113. package/dist/esm/components/DelayedRender/DelayedRender.js +17 -17
  114. package/dist/esm/components/DynamicFormik/DynamicFormik.js +578 -578
  115. package/dist/esm/components/Error403/Error403.js +13 -13
  116. package/dist/esm/components/Error403/ForbiddenErrorBackground.js +113 -113
  117. package/dist/esm/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  118. package/dist/esm/components/Error404/Error404.js +13 -13
  119. package/dist/esm/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  120. package/dist/esm/components/Error404/NotFoundErrorBackground.js +129 -129
  121. package/dist/esm/components/ErrorBoundary/ErrorBoundary.js +32 -32
  122. package/dist/esm/components/ErrorDragon/ErrorDragon.js +13 -13
  123. package/dist/esm/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  124. package/dist/esm/components/ErrorFullPage/ErrorFullPage.js +10 -10
  125. package/dist/esm/components/ErrorMessage/ErrorMessage.js +22 -22
  126. package/dist/esm/components/ErrorPage/ErrorPage.js +11 -11
  127. package/dist/esm/components/ErrorPageCore/ErrorPageCore.js +15 -15
  128. package/dist/esm/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  129. package/dist/esm/components/FeatureHeader/FeatureHeader.js +29 -29
  130. package/dist/esm/components/FeatureNavTab/FeatureNavTab.js +12 -12
  131. package/dist/esm/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  132. package/dist/esm/components/FeatureSideNav/FeatureSideNav.js +12 -12
  133. package/dist/esm/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  134. package/dist/esm/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  135. package/dist/esm/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  136. package/dist/esm/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  137. package/dist/esm/components/Feedback/Feedback.js +40 -40
  138. package/dist/esm/components/FlowModal/FlowModal.js +141 -141
  139. package/dist/esm/components/FlowModal/FlowModalForm.js +12 -12
  140. package/dist/esm/components/Header/Header.js +168 -182
  141. package/dist/esm/components/Header/HeaderAppSwitcher.js +102 -94
  142. package/dist/esm/components/Header/HeaderMenu.js +7 -7
  143. package/dist/esm/components/Header/HeaderMenuItem.js +52 -52
  144. package/dist/esm/components/Header/UserRequests.js +29 -29
  145. package/dist/esm/components/ImageModal/ImageModal.js +17 -17
  146. package/dist/esm/components/Loading/Loading.js +8 -8
  147. package/dist/esm/components/MemberBar/MemberBar.js +20 -20
  148. package/dist/esm/components/Modal/Modal.js +20 -20
  149. package/dist/esm/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  150. package/dist/esm/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  151. package/dist/esm/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  152. package/dist/esm/components/ModalForm/ModalForm.js +9 -9
  153. package/dist/esm/components/Notifications/NotificationsContainer.js +22 -22
  154. package/dist/esm/components/Notifications/ToastNotification.js +21 -21
  155. package/dist/esm/components/Notifications/notify.js +17 -17
  156. package/dist/esm/components/PlatformBanner/PlatformBanner.js +8 -8
  157. package/dist/esm/components/PlatformNotifications/PlatformNotification.js +17 -17
  158. package/dist/esm/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  159. package/dist/esm/components/Portal/Portal.js +14 -14
  160. package/dist/esm/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  161. package/dist/esm/components/PrivacyStatement/PrivacyStatement.js +90 -90
  162. package/dist/esm/components/ProfileSettings/ProfileSettings.js +124 -124
  163. package/dist/esm/components/ProtectedRoute/ProtectedRoute.js +13 -13
  164. package/dist/esm/components/RadioGroup/RadioGroup.js +33 -33
  165. package/dist/esm/components/RichTextArea/RichTextArea.js +142 -142
  166. package/dist/esm/components/SignOut/SignOut.js +27 -27
  167. package/dist/esm/components/SupportCenter/SupportCenter.js +65 -65
  168. package/dist/esm/components/TextArea/TextArea.js +16 -16
  169. package/dist/esm/components/TextInput/TextInput.js +13 -13
  170. package/dist/esm/components/Toggle/Toggle.js +22 -22
  171. package/dist/esm/components/TooltipHover/TooltipHover.js +39 -39
  172. package/dist/esm/components/UIShell/UIShell.js +89 -90
  173. package/dist/esm/config/servicesConfig.js +21 -21
  174. package/dist/esm/constants/DataDrivenInputTypes.js +74 -74
  175. package/dist/esm/constants/UserType.js +13 -13
  176. package/dist/esm/hooks/useHeaderMenu.js +49 -49
  177. package/dist/esm/hooks/usePortal.js +74 -74
  178. package/dist/esm/hooks/useWindowSize.js +33 -33
  179. package/dist/esm/internal/ListBox/ListBox.js +41 -41
  180. package/dist/esm/internal/ListBox/ListBoxField.js +19 -19
  181. package/dist/esm/internal/ListBox/ListBoxMenu.js +19 -19
  182. package/dist/esm/internal/ListBox/ListBoxMenuIcon.js +31 -31
  183. package/dist/esm/internal/ListBox/ListBoxMenuItem.js +38 -38
  184. package/dist/esm/internal/ListBox/ListBoxSelection.js +64 -64
  185. package/dist/esm/internal/ListBox/index.js +10 -10
  186. package/dist/esm/internal/keyboard/keys.js +16 -16
  187. package/dist/esm/internal/keyboard/match.js +67 -67
  188. package/dist/esm/internal/settings.js +5 -5
  189. package/dist/esm/tools/accessibility.js +13 -13
  190. package/dist/esm/tools/createPropAdapter.js +44 -44
  191. package/dist/esm/tools/isUrl.js +39 -39
  192. package/dist/esm/tools/setupGetInstanceId.js +20 -20
  193. package/dist/esm/tools/useSetState.js +12 -12
  194. package/dist/esm/tools/yupAst/astGenerator.js +212 -212
  195. package/dist/esm/tools/yupAst/customValidators.js +17 -17
  196. package/dist/types/index.d.ts +1309 -1407
  197. package/package.json +167 -167
  198. package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
  199. package/scss/components/AdvantageSideNav/_advantageSideNav.scss +267 -261
  200. package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
  201. package/scss/components/Avatar/_avatar.scss +32 -32
  202. package/scss/components/CheckboxList/_checkboxList.scss +26 -26
  203. package/scss/components/ComboBox/_combobox.scss +23 -23
  204. package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
  205. package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
  206. package/scss/components/Creatable/_creatable.scss +48 -48
  207. package/scss/components/DateInput/_dateInput.scss +36 -36
  208. package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
  209. package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
  210. package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
  211. package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
  212. package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
  213. package/scss/components/ErrorPage/_errorPage.scss +66 -66
  214. package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
  215. package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
  216. package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
  217. package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
  218. package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
  219. package/scss/components/Feedback/_feedback.scss +46 -46
  220. package/scss/components/Header/_header.scss +179 -179
  221. package/scss/components/Header/_headerAppSwitcher.scss +117 -117
  222. package/scss/components/Header/_headerMenu.scss +30 -30
  223. package/scss/components/Header/_headerMenuItem.scss +65 -65
  224. package/scss/components/Header/_userRequests.scss +36 -36
  225. package/scss/components/ImageModal/_imageModal.scss +51 -51
  226. package/scss/components/MemberBar/_memberBar.scss +99 -99
  227. package/scss/components/Modal/_modal.scss +163 -163
  228. package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
  229. package/scss/components/Notifications/_notifications.scss +57 -57
  230. package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
  231. package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
  232. package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
  233. package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
  234. package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
  235. package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
  236. package/scss/components/RadioGroup/_radioGroup.scss +46 -46
  237. package/scss/components/RichTextArea/_richTextArea.scss +82 -82
  238. package/scss/components/SignOut/_signOut.scss +51 -51
  239. package/scss/components/SupportCenter/_supportCenter.scss +16 -16
  240. package/scss/components/TextArea/_textArea.scss +19 -19
  241. package/scss/components/TextInput/_textInput.scss +26 -26
  242. package/scss/components/Toggle/_toggle.scss +80 -80
  243. package/scss/components/TooltipHover/_tooltip.scss +48 -48
  244. package/scss/global/_config.scss +14 -14
  245. package/scss/global/_tippy.scss +49 -49
  246. package/scss/global/index.scss +402 -401
  247. package/scss/global/themes/_boomerang.scss +184 -184
  248. package/scss/global/themes/_default.scss +79 -79
  249. package/scss/global/themes/_shell-tokens.scss +42 -42
  250. package/scss/global/utils/_animations.scss +15 -15
  251. package/scss/global/utils/_mixins.scss +67 -67
  252. package/scss/global/utils/index.scss +10 -10
  253. package/dist/cjs/components/Header/HeaderTeamSwitcher.js +0 -324
  254. package/dist/esm/components/Header/HeaderTeamSwitcher.js +0 -315
  255. package/scss/components/Header/_headerTeamSwitcher.scss +0 -195
@@ -9,20 +9,20 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
10
  var React__default = /*#__PURE__*/_interopDefault(React);
11
11
 
12
- /*
13
- IBM Confidential
14
- 694970X, 69497O0
15
- © Copyright IBM Corp. 2022, 2024
16
- */
17
- const showCommaSeparatedValues = (items) => {
18
- if (items) {
19
- const commaSeparatedValues = items.join(", ");
20
- return React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array__csv` }, commaSeparatedValues);
21
- }
22
- };
23
- function ModalConfirmArray({ items, ...rest }) {
24
- return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array`, ...rest },
25
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array__content` }, showCommaSeparatedValues(items))));
12
+ /*
13
+ IBM Confidential
14
+ 694970X, 69497O0
15
+ © Copyright IBM Corp. 2022, 2024
16
+ */
17
+ const showCommaSeparatedValues = (items) => {
18
+ if (items) {
19
+ const commaSeparatedValues = items.join(", ");
20
+ return React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array__csv` }, commaSeparatedValues);
21
+ }
22
+ };
23
+ function ModalConfirmArray({ items, ...rest }) {
24
+ return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array`, ...rest },
25
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-array__content` }, showCommaSeparatedValues(items))));
26
26
  }
27
27
 
28
28
  exports.default = ModalConfirmArray;
@@ -9,17 +9,17 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
10
  var React__default = /*#__PURE__*/_interopDefault(React);
11
11
 
12
- /*
13
- IBM Confidential
14
- 694970X, 69497O0
15
- © Copyright IBM Corp. 2022, 2024
16
- */
17
- function ModalConfirmDetails({ items, ...rest }) {
18
- return (React__default.default.createElement("ul", { className: `${settings.prefix}--bmrg-modal-confirm-details`, ...rest }, items?.map((item) => {
19
- return (React__default.default.createElement("li", { className: `${settings.prefix}--bmrg-modal-confirm-details__item`, key: item.name },
20
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-details__name` }, item.name),
21
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-details__value` }, item.value)));
22
- }) ?? null));
12
+ /*
13
+ IBM Confidential
14
+ 694970X, 69497O0
15
+ © Copyright IBM Corp. 2022, 2024
16
+ */
17
+ function ModalConfirmDetails({ items, ...rest }) {
18
+ return (React__default.default.createElement("ul", { className: `${settings.prefix}--bmrg-modal-confirm-details`, ...rest }, items?.map((item) => {
19
+ return (React__default.default.createElement("li", { className: `${settings.prefix}--bmrg-modal-confirm-details__item`, key: item.name },
20
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-details__name` }, item.name),
21
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-details__value` }, item.value)));
22
+ }) ?? null));
23
23
  }
24
24
 
25
25
  exports.default = ModalConfirmDetails;
@@ -12,23 +12,23 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
13
  var React__default = /*#__PURE__*/_interopDefault(React);
14
14
 
15
- /*
16
- IBM Confidential
17
- 694970X, 69497O0
18
- © Copyright IBM Corp. 2022, 2024
19
- */
20
- const TYPES = {
21
- DETAILS: "details",
22
- ARRAY: "array",
23
- };
24
- function ModalConfirmEdit({ items, onEdit, style, title = "Confirm Your Details", type = "details", ...rest }) {
25
- return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-edit`, style: style, ...rest },
26
- React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-confirm-edit__title` }, title),
27
- React__default.default.createElement("section", { className: `${settings.prefix}--bmrg-modal-confirm-edit__section` },
28
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-edit__content` },
29
- type === TYPES.DETAILS ? (React__default.default.createElement(ModalConfirmDetails.default, { items: items })) : type === TYPES.ARRAY ? (React__default.default.createElement(ModalConfirmArray.default, { items: items })) : null,
30
- typeof onEdit === "function" && (React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-modal-confirm-edit__button`, onClick: onEdit },
31
- React__default.default.createElement(icons.Edit, { size: 16, className: `${settings.prefix}--bmrg-modal-confirm-edit__icon`, title: "Edit" })))))));
15
+ /*
16
+ IBM Confidential
17
+ 694970X, 69497O0
18
+ © Copyright IBM Corp. 2022, 2024
19
+ */
20
+ const TYPES = {
21
+ DETAILS: "details",
22
+ ARRAY: "array",
23
+ };
24
+ function ModalConfirmEdit({ items, onEdit, style, title = "Confirm Your Details", type = "details", ...rest }) {
25
+ return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-edit`, style: style, ...rest },
26
+ React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-confirm-edit__title` }, title),
27
+ React__default.default.createElement("section", { className: `${settings.prefix}--bmrg-modal-confirm-edit__section` },
28
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-modal-confirm-edit__content` },
29
+ type === TYPES.DETAILS ? (React__default.default.createElement(ModalConfirmDetails.default, { items: items })) : type === TYPES.ARRAY ? (React__default.default.createElement(ModalConfirmArray.default, { items: items })) : null,
30
+ typeof onEdit === "function" && (React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-modal-confirm-edit__button`, onClick: onEdit },
31
+ React__default.default.createElement(icons.Edit, { size: 16, className: `${settings.prefix}--bmrg-modal-confirm-edit__icon`, title: "Edit" })))))));
32
32
  }
33
33
 
34
34
  exports.default = ModalConfirmEdit;
@@ -11,15 +11,15 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
  var React__default = /*#__PURE__*/_interopDefault(React);
12
12
  var cx__default = /*#__PURE__*/_interopDefault(cx);
13
13
 
14
- /*
15
- IBM Confidential
16
- 694970X, 69497O0
17
- © Copyright IBM Corp. 2022, 2024
18
- */
19
- const ModalForm = React__default.default.forwardRef(function ModalForm({ children, className, element: Element = "form", title, ...rest }, ref) {
20
- return (React__default.default.createElement(Element, { className: cx__default.default(`${settings.prefix}--bmrg-modal-form`, className), ...rest, ref: ref },
21
- title && React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-form__title` }, title),
22
- children));
14
+ /*
15
+ IBM Confidential
16
+ 694970X, 69497O0
17
+ © Copyright IBM Corp. 2022, 2024
18
+ */
19
+ const ModalForm = React__default.default.forwardRef(function ModalForm({ children, className, element: Element = "form", title, ...rest }, ref) {
20
+ return (React__default.default.createElement(Element, { className: cx__default.default(`${settings.prefix}--bmrg-modal-form`, className), ...rest, ref: ref },
21
+ title && React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-form__title` }, title),
22
+ children));
23
23
  });
24
24
 
25
25
  exports.default = ModalForm;
@@ -12,28 +12,28 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
13
  var React__default = /*#__PURE__*/_interopDefault(React);
14
14
 
15
- /*
16
- IBM Confidential
17
- 694970X, 69497O0
18
- © Copyright IBM Corp. 2022, 2024
19
- */
20
- if (typeof window !== "undefined") {
21
- injectStyle.injectStyle();
22
- }
23
- const CloseButton = ({ closeToast }) => React__default.default.createElement(icons.Close, { size: 20, onClick: closeToast });
24
- class NotificationsContainer extends React.Component {
25
- static defaultProps = {
26
- autoClose: 3000,
27
- closeOnClick: true,
28
- draggablePercent: 60,
29
- hideProgressBar: true,
30
- pauseOnHover: true,
31
- transition: reactToastify.Slide,
32
- };
33
- render() {
34
- const { autoClose, closeOnClick, draggablePercent, hideProgressBar, pauseOnHover, transition, ...rest } = this.props;
35
- return (React__default.default.createElement(reactToastify.ToastContainer, { className: `${settings.prefix}--bmrg-toastify-container`, autoClose: autoClose, closeButton: React__default.default.createElement(CloseButton, null), closeOnClick: closeOnClick, draggablePercent: draggablePercent, hideProgressBar: hideProgressBar, pauseOnHover: pauseOnHover, transition: transition, ...rest }));
36
- }
15
+ /*
16
+ IBM Confidential
17
+ 694970X, 69497O0
18
+ © Copyright IBM Corp. 2022, 2024
19
+ */
20
+ if (typeof window !== "undefined") {
21
+ injectStyle.injectStyle();
22
+ }
23
+ const CloseButton = ({ closeToast }) => React__default.default.createElement(icons.Close, { size: 20, onClick: closeToast });
24
+ class NotificationsContainer extends React.Component {
25
+ static defaultProps = {
26
+ autoClose: 3000,
27
+ closeOnClick: true,
28
+ draggablePercent: 60,
29
+ hideProgressBar: true,
30
+ pauseOnHover: true,
31
+ transition: reactToastify.Slide,
32
+ };
33
+ render() {
34
+ const { autoClose, closeOnClick, draggablePercent, hideProgressBar, pauseOnHover, transition, ...rest } = this.props;
35
+ return (React__default.default.createElement(reactToastify.ToastContainer, { className: `${settings.prefix}--bmrg-toastify-container`, autoClose: autoClose, closeButton: React__default.default.createElement(CloseButton, null), closeOnClick: closeOnClick, draggablePercent: draggablePercent, hideProgressBar: hideProgressBar, pauseOnHover: pauseOnHover, transition: transition, ...rest }));
36
+ }
37
37
  }
38
38
 
39
39
  exports.default = NotificationsContainer;
@@ -10,27 +10,27 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefault(React);
12
12
 
13
- /*
14
- IBM Confidential
15
- 694970X, 69497O0
16
- © Copyright IBM Corp. 2022, 2024
17
- */
18
- // eslint-disable no-unused-vars
19
- ToastNotification.defaultProps = {
20
- kind: "info",
21
- title: "",
22
- subtitle: "",
23
- caption: undefined,
24
- role: "alert",
25
- notificationType: "toast",
26
- iconDescription: "closes notification",
27
- onCloseButtonClick: () => { },
28
- hideCloseButton: true,
29
- timeout: 1000000,
30
- };
31
- function ToastNotification({ iconDescription, closeToast, toastProps, notificationType, ...rest }) {
32
- return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-toast-notification-container` },
33
- React__default.default.createElement(react.ToastNotification, { ...rest })));
13
+ /*
14
+ IBM Confidential
15
+ 694970X, 69497O0
16
+ © Copyright IBM Corp. 2022, 2024
17
+ */
18
+ // eslint-disable no-unused-vars
19
+ ToastNotification.defaultProps = {
20
+ kind: "info",
21
+ title: "",
22
+ subtitle: "",
23
+ caption: undefined,
24
+ role: "alert",
25
+ notificationType: "toast",
26
+ iconDescription: "closes notification",
27
+ onCloseButtonClick: () => { },
28
+ hideCloseButton: true,
29
+ timeout: 1000000,
30
+ };
31
+ function ToastNotification({ iconDescription, closeToast, toastProps, notificationType, ...rest }) {
32
+ return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-toast-notification-container` },
33
+ React__default.default.createElement(react.ToastNotification, { ...rest })));
34
34
  }
35
35
 
36
36
  exports.default = ToastNotification;
@@ -11,23 +11,23 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefault(React);
13
13
 
14
- /*
15
- IBM Confidential
16
- 694970X, 69497O0
17
- © Copyright IBM Corp. 2022, 2024
18
- */
19
- /** Create notifcation wrapper around react-toastify with default component for basic notification
20
- * @param {*} notification notifcation content
21
- * @param {Object} config custom configuration for ToastContainer
22
- */
23
- const notify = (notification, config) => {
24
- // Check to see if they pass in a component or function
25
- // Default passing prop to Notification component
26
- const notificationComponent = typeof notification === "object" || typeof notification === "function" ? (notification) : (React__default.default.createElement(ToastNotification.default, { title: notification }));
27
- reactToastify.toast(notificationComponent, {
28
- className: `${settings.prefix}--bmrg--toast-container`,
29
- ...config,
30
- });
14
+ /*
15
+ IBM Confidential
16
+ 694970X, 69497O0
17
+ © Copyright IBM Corp. 2022, 2024
18
+ */
19
+ /** Create notifcation wrapper around react-toastify with default component for basic notification
20
+ * @param {*} notification notifcation content
21
+ * @param {Object} config custom configuration for ToastContainer
22
+ */
23
+ const notify = (notification, config) => {
24
+ // Check to see if they pass in a component or function
25
+ // Default passing prop to Notification component
26
+ const notificationComponent = typeof notification === "object" || typeof notification === "function" ? (notification) : (React__default.default.createElement(ToastNotification.default, { title: notification }));
27
+ reactToastify.toast(notificationComponent, {
28
+ className: `${settings.prefix}--bmrg--toast-container`,
29
+ ...config,
30
+ });
31
31
  };
32
32
 
33
33
  exports.default = notify;
@@ -10,14 +10,14 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefault(React);
12
12
 
13
- /*
14
- IBM Confidential
15
- 694970X, 69497O0
16
- © Copyright IBM Corp. 2022, 2024
17
- */
18
- function PlatformBanner({ kind, message, title }) {
19
- return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-banner-container` },
20
- React__default.default.createElement(react.InlineNotification, { kind: kind, subtitle: message, title: title })));
13
+ /*
14
+ IBM Confidential
15
+ 694970X, 69497O0
16
+ © Copyright IBM Corp. 2022, 2024
17
+ */
18
+ function PlatformBanner({ kind, message, title }) {
19
+ return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-banner-container` },
20
+ React__default.default.createElement(react.InlineNotification, { kind: kind, subtitle: message, title: title })));
21
21
  }
22
22
 
23
23
  exports.default = PlatformBanner;
@@ -16,23 +16,23 @@ var cx__default = /*#__PURE__*/_interopDefault(cx);
16
16
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
17
17
  var relativeTime__default = /*#__PURE__*/_interopDefault(relativeTime);
18
18
 
19
- /*
20
- IBM Confidential
21
- 694970X, 69497O0
22
- © Copyright IBM Corp. 2022, 2024
23
- */
24
- dayjs__default.default.extend(relativeTime__default.default);
25
- function Notification({ readNotification, data }) {
26
- return (React__default.default.createElement("div", { className: cx__default.default(`${settings.prefix}--bmrg-notification`, {
27
- [`--${data.type}`]: data.type,
28
- }), "aria-label": `${data.title} notification` },
29
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notification-content` },
30
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notification-content__creator` }, data.creator),
31
- React__default.default.createElement("h2", { className: `${settings.prefix}--bmrg-notification-content__title` }, data.title),
32
- React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-notification-content__desc` }, data.detail),
33
- React__default.default.createElement("time", { className: `${settings.prefix}--bmrg-notification-content__date` }, `${dayjs__default.default(data.date).fromNow()} at ${dayjs__default.default(data.date).format("hh:mma")}`),
34
- React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-notification-content__close`, onClick: () => readNotification(data.id) },
35
- React__default.default.createElement(icons.Close, { size: 16, title: "Mark as read icon" })))));
19
+ /*
20
+ IBM Confidential
21
+ 694970X, 69497O0
22
+ © Copyright IBM Corp. 2022, 2024
23
+ */
24
+ dayjs__default.default.extend(relativeTime__default.default);
25
+ function Notification({ readNotification, data }) {
26
+ return (React__default.default.createElement("div", { className: cx__default.default(`${settings.prefix}--bmrg-notification`, {
27
+ [`--${data.type}`]: data.type,
28
+ }), "aria-label": `${data.title} notification` },
29
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notification-content` },
30
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notification-content__creator` }, data.creator),
31
+ React__default.default.createElement("h2", { className: `${settings.prefix}--bmrg-notification-content__title` }, data.title),
32
+ React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-notification-content__desc` }, data.detail),
33
+ React__default.default.createElement("time", { className: `${settings.prefix}--bmrg-notification-content__date` }, `${dayjs__default.default(data.date).fromNow()} at ${dayjs__default.default(data.date).format("hh:mma")}`),
34
+ React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-notification-content__close`, onClick: () => readNotification(data.id) },
35
+ React__default.default.createElement(icons.Close, { size: 16, title: "Mark as read icon" })))));
36
36
  }
37
37
 
38
38
  exports.default = Notification;
@@ -13,142 +13,142 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
13
  var React__default = /*#__PURE__*/_interopDefault(React);
14
14
  var cx__default = /*#__PURE__*/_interopDefault(cx);
15
15
 
16
- /*
17
- IBM Confidential
18
- 694970X, 69497O0
19
- © Copyright IBM Corp. 2022, 2024
20
- */
21
- class PlatformNotificationsContainer extends React__default.default.Component {
22
- ws;
23
- articleRef = React__default.default.createRef();
24
- state = {
25
- error: false,
26
- currentNotifications: this.props.initialNotifications ?? [],
27
- numNotifications: this.props.initialNotifications?.length ?? 0,
28
- };
29
- componentDidMount() {
30
- const brokerURL = `${this.props.baseServicesUrl}/notifications/ws`
31
- .replace("https://", "wss://")
32
- .replace("http://", "ws://");
33
- this.ws = new stompjs.Client({
34
- brokerURL,
35
- reconnectDelay: 10000,
36
- });
37
- this.ws.onConnect = this.connect;
38
- this.ws.activate();
39
- }
40
- connect = () => {
41
- this.ws.subscribe("/user/queue/notifications", this.receiveNewNotifications);
42
- this.ws.subscribe("/user/queue/reply", this.replyRead);
43
- this.ws.subscribe("/user/queue/all", this.recieveAllUnreadNotifications);
44
- this.ws.publish({ destination: "/app/all", body: {} });
45
- };
46
- componentWillUnmount() {
47
- this.ws.deactivate();
48
- }
49
- /**
50
- * recieve x amount of new notifications and pass them into state of current notifications
51
- *
52
- */
53
- receiveNewNotifications = (incomingNotifications) => {
54
- if (incomingNotifications.body) {
55
- const data = [JSON.parse(incomingNotifications.body)];
56
- if (data.length > 0) {
57
- this.props.setHasNewNotifications(true);
58
- }
59
- this.setState((prevState) => ({
60
- currentNotifications: [...data, ...prevState.currentNotifications],
61
- numNotifications: prevState.numNotifications + data.length,
62
- }), () => {
63
- this.props.setNotificationsCount(this.state.numNotifications);
64
- });
65
- }
66
- else {
67
- this.setState({
68
- error: true, // TOOD something here related to the error
69
- });
70
- }
71
- };
72
- /**
73
- * overwrite current notifications, the param represents all unread notifications
74
- */
75
- recieveAllUnreadNotifications = (incomingNotifications) => {
76
- if (incomingNotifications.body) {
77
- const jsonData = JSON.parse(incomingNotifications.body);
78
- const data = jsonData.records;
79
- if (data.length > 0) {
80
- this.props.setHasNewNotifications(true);
81
- }
82
- else {
83
- // This has to be declared because this function can be triggered from the notification page in Launchpad
84
- this.props.setHasNewNotifications(false);
85
- }
86
- this.setState({
87
- currentNotifications: data,
88
- numNotifications: data.length,
89
- }, () => {
90
- this.props.setNotificationsCount(this.state.numNotifications);
91
- });
92
- }
93
- else {
94
- this.setState({
95
- error: true, // TOOD something here related to the error
96
- });
97
- }
98
- };
99
- /**
100
- * @param {Object} readResponse - list of notificationIds that have been read
101
- * the function removes the notifications from current state that are returned as "read"
102
- */
103
- replyRead = (readResponse) => {
104
- const readIdList = JSON.parse(readResponse.body);
105
- this.setState((prevState) => ({
106
- currentNotifications: prevState.currentNotifications.filter((el) => readIdList.indexOf(el.id) === -1),
107
- numNotifications: prevState.numNotifications - readIdList.length,
108
- }), () => {
109
- if (this.state.numNotifications === 0) {
110
- this.props.setHasNewNotifications(false);
111
- this.props.setNotificationsCount(0);
112
- // when we clear out notifications, check to to see if there are new notifications available
113
- this.ws.publish({ destination: "/app/all", body: {} });
114
- }
115
- });
116
- };
117
- /**
118
- * notificationId - a single notification that the user has marked as read
119
- * @returns {Function} - makes network request, then after waiting for it to return, setState is called to update currentNotifications and numNotifications
120
- */
121
- handleReadNotification(notificationId) {
122
- this.ws.publish({
123
- destination: "/app/read",
124
- body: JSON.stringify([notificationId]),
125
- });
126
- }
127
- /**
128
- * @returns {Function} - makes network request with all remaining notification IDs, then after waiting for it to return, setState is called to empty out currentNotifications and numNotifications
129
- */
130
- handleReadAllNotifications() {
131
- const idList = this.state.currentNotifications.map((notification) => notification.id);
132
- this.ws.publish({ destination: "/app/read", body: JSON.stringify(idList) });
133
- }
134
- renderNotifications() {
135
- return this.state.currentNotifications.slice(0, 5).map((notification) => (React__default.default.createElement("li", { key: notification.id, "data-testid": "header-notification" },
136
- React__default.default.createElement(PlatformNotification.default, { readNotification: this.handleReadNotification.bind(this), data: notification }))));
137
- }
138
- render() {
139
- const { numNotifications, currentNotifications } = this.state;
140
- const { baseEnvUrl } = this.props;
141
- return (React__default.default.createElement("div", { "aria-labelledby": this.props["aria-labelledby"], className: cx__default.default(`${settings.prefix}--bmrg-notifications`, {
142
- "--is-active": this.props.isOpen,
143
- }), "data-testid": "header-notifications", id: this.props.id, role: "dialog" },
144
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications-header` },
145
- React__default.default.createElement("h1", { className: `${settings.prefix}--bmrg-notifications-header__newNotifications` }, `${numNotifications} new notification${numNotifications !== 1 ? "s" : ""}`),
146
- React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-notifications-header__clear`, "data-testid": "header-notifications-all-read", disabled: !currentNotifications.length, onClick: this.handleReadAllNotifications.bind(this), "aria-label": "Mark all read" }, "Mark All Read")),
147
- React__default.default.createElement("ul", { className: `${settings.prefix}--bmrg-notifications__collection` }, currentNotifications.length ? (this.renderNotifications()) : (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications-empty` },
148
- React__default.default.createElement("h1", { className: `${settings.prefix}--bmrg-notifications-empty__no-news` }, "No news is good news, right?")))),
149
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications__notifications-footer` },
150
- React__default.default.createElement("a", { "aria-label": "Link for notification center", href: `${baseEnvUrl}/launchpad/notifications`, className: `${settings.prefix}--bmrg-notifications__notifications-redirect-link`, "data-testid": "header-notifications-center-link" }, "Open Notification Center"))));
151
- }
16
+ /*
17
+ IBM Confidential
18
+ 694970X, 69497O0
19
+ © Copyright IBM Corp. 2022, 2024
20
+ */
21
+ class PlatformNotificationsContainer extends React__default.default.Component {
22
+ ws;
23
+ articleRef = React__default.default.createRef();
24
+ state = {
25
+ error: false,
26
+ currentNotifications: this.props.initialNotifications ?? [],
27
+ numNotifications: this.props.initialNotifications?.length ?? 0,
28
+ };
29
+ componentDidMount() {
30
+ const brokerURL = `${this.props.baseServicesUrl}/notifications/ws`
31
+ .replace("https://", "wss://")
32
+ .replace("http://", "ws://");
33
+ this.ws = new stompjs.Client({
34
+ brokerURL,
35
+ reconnectDelay: 10000,
36
+ });
37
+ this.ws.onConnect = this.connect;
38
+ this.ws.activate();
39
+ }
40
+ connect = () => {
41
+ this.ws.subscribe("/user/queue/notifications", this.receiveNewNotifications);
42
+ this.ws.subscribe("/user/queue/reply", this.replyRead);
43
+ this.ws.subscribe("/user/queue/all", this.recieveAllUnreadNotifications);
44
+ this.ws.publish({ destination: "/app/all", body: {} });
45
+ };
46
+ componentWillUnmount() {
47
+ this.ws.deactivate();
48
+ }
49
+ /**
50
+ * recieve x amount of new notifications and pass them into state of current notifications
51
+ *
52
+ */
53
+ receiveNewNotifications = (incomingNotifications) => {
54
+ if (incomingNotifications.body) {
55
+ const data = [JSON.parse(incomingNotifications.body)];
56
+ if (data.length > 0) {
57
+ this.props.setHasNewNotifications(true);
58
+ }
59
+ this.setState((prevState) => ({
60
+ currentNotifications: [...data, ...prevState.currentNotifications],
61
+ numNotifications: prevState.numNotifications + data.length,
62
+ }), () => {
63
+ this.props.setNotificationsCount(this.state.numNotifications);
64
+ });
65
+ }
66
+ else {
67
+ this.setState({
68
+ error: true, // TOOD something here related to the error
69
+ });
70
+ }
71
+ };
72
+ /**
73
+ * overwrite current notifications, the param represents all unread notifications
74
+ */
75
+ recieveAllUnreadNotifications = (incomingNotifications) => {
76
+ if (incomingNotifications.body) {
77
+ const jsonData = JSON.parse(incomingNotifications.body);
78
+ const data = jsonData.records;
79
+ if (data.length > 0) {
80
+ this.props.setHasNewNotifications(true);
81
+ }
82
+ else {
83
+ // This has to be declared because this function can be triggered from the notification page in Launchpad
84
+ this.props.setHasNewNotifications(false);
85
+ }
86
+ this.setState({
87
+ currentNotifications: data,
88
+ numNotifications: data.length,
89
+ }, () => {
90
+ this.props.setNotificationsCount(this.state.numNotifications);
91
+ });
92
+ }
93
+ else {
94
+ this.setState({
95
+ error: true, // TOOD something here related to the error
96
+ });
97
+ }
98
+ };
99
+ /**
100
+ * @param {Object} readResponse - list of notificationIds that have been read
101
+ * the function removes the notifications from current state that are returned as "read"
102
+ */
103
+ replyRead = (readResponse) => {
104
+ const readIdList = JSON.parse(readResponse.body);
105
+ this.setState((prevState) => ({
106
+ currentNotifications: prevState.currentNotifications.filter((el) => readIdList.indexOf(el.id) === -1),
107
+ numNotifications: prevState.numNotifications - readIdList.length,
108
+ }), () => {
109
+ if (this.state.numNotifications === 0) {
110
+ this.props.setHasNewNotifications(false);
111
+ this.props.setNotificationsCount(0);
112
+ // when we clear out notifications, check to to see if there are new notifications available
113
+ this.ws.publish({ destination: "/app/all", body: {} });
114
+ }
115
+ });
116
+ };
117
+ /**
118
+ * notificationId - a single notification that the user has marked as read
119
+ * @returns {Function} - makes network request, then after waiting for it to return, setState is called to update currentNotifications and numNotifications
120
+ */
121
+ handleReadNotification(notificationId) {
122
+ this.ws.publish({
123
+ destination: "/app/read",
124
+ body: JSON.stringify([notificationId]),
125
+ });
126
+ }
127
+ /**
128
+ * @returns {Function} - makes network request with all remaining notification IDs, then after waiting for it to return, setState is called to empty out currentNotifications and numNotifications
129
+ */
130
+ handleReadAllNotifications() {
131
+ const idList = this.state.currentNotifications.map((notification) => notification.id);
132
+ this.ws.publish({ destination: "/app/read", body: JSON.stringify(idList) });
133
+ }
134
+ renderNotifications() {
135
+ return this.state.currentNotifications.slice(0, 5).map((notification) => (React__default.default.createElement("li", { key: notification.id, "data-testid": "header-notification" },
136
+ React__default.default.createElement(PlatformNotification.default, { readNotification: this.handleReadNotification.bind(this), data: notification }))));
137
+ }
138
+ render() {
139
+ const { numNotifications, currentNotifications } = this.state;
140
+ const { baseEnvUrl } = this.props;
141
+ return (React__default.default.createElement("div", { "aria-labelledby": this.props["aria-labelledby"], className: cx__default.default(`${settings.prefix}--bmrg-notifications`, {
142
+ "--is-active": this.props.isOpen,
143
+ }), "data-testid": "header-notifications", id: this.props.id, role: "dialog" },
144
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications-header` },
145
+ React__default.default.createElement("h1", { className: `${settings.prefix}--bmrg-notifications-header__newNotifications` }, `${numNotifications} new notification${numNotifications !== 1 ? "s" : ""}`),
146
+ React__default.default.createElement("button", { className: `${settings.prefix}--bmrg-notifications-header__clear`, "data-testid": "header-notifications-all-read", disabled: !currentNotifications.length, onClick: this.handleReadAllNotifications.bind(this), "aria-label": "Mark all read" }, "Mark All Read")),
147
+ React__default.default.createElement("ul", { className: `${settings.prefix}--bmrg-notifications__collection` }, currentNotifications.length ? (this.renderNotifications()) : (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications-empty` },
148
+ React__default.default.createElement("h1", { className: `${settings.prefix}--bmrg-notifications-empty__no-news` }, "No news is good news, right?")))),
149
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-notifications__notifications-footer` },
150
+ React__default.default.createElement("a", { "aria-label": "Link for notification center", href: `${baseEnvUrl}/launchpad/notifications`, className: `${settings.prefix}--bmrg-notifications__notifications-redirect-link`, "data-testid": "header-notifications-center-link" }, "Open Notification Center"))));
151
+ }
152
152
  }
153
153
 
154
154
  exports.default = PlatformNotificationsContainer;