@boomerang-io/carbon-addons-boomerang-react 4.6.11-beta.4 → 4.6.11-beta.41

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 +218 -241
  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 +37 -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 +189 -168
  44. package/dist/cjs/components/Header/HeaderAppSwitcher.js +94 -102
  45. package/dist/cjs/components/Header/HeaderMenu.js +7 -7
  46. package/dist/cjs/components/Header/HeaderMenuItem.js +51 -52
  47. package/dist/cjs/components/Header/HeaderTeamSwitcher.js +327 -0
  48. package/dist/cjs/components/Header/UserRequests.js +29 -29
  49. package/dist/cjs/components/ImageModal/ImageModal.js +17 -17
  50. package/dist/cjs/components/Loading/Loading.js +8 -8
  51. package/dist/cjs/components/MemberBar/MemberBar.js +20 -20
  52. package/dist/cjs/components/Modal/Modal.js +20 -20
  53. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  54. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  55. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  56. package/dist/cjs/components/ModalForm/ModalForm.js +9 -9
  57. package/dist/cjs/components/Notifications/NotificationsContainer.js +22 -22
  58. package/dist/cjs/components/Notifications/ToastNotification.js +21 -21
  59. package/dist/cjs/components/Notifications/notify.js +17 -17
  60. package/dist/cjs/components/PlatformBanner/PlatformBanner.js +8 -8
  61. package/dist/cjs/components/PlatformNotifications/PlatformNotification.js +17 -17
  62. package/dist/cjs/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  63. package/dist/cjs/components/Portal/Portal.js +14 -14
  64. package/dist/cjs/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  65. package/dist/cjs/components/PrivacyStatement/PrivacyStatement.js +90 -90
  66. package/dist/cjs/components/ProfileSettings/ProfileSettings.js +124 -124
  67. package/dist/cjs/components/ProtectedRoute/ProtectedRoute.js +13 -13
  68. package/dist/cjs/components/RadioGroup/RadioGroup.js +33 -33
  69. package/dist/cjs/components/RichTextArea/RichTextArea.js +142 -142
  70. package/dist/cjs/components/SignOut/SignOut.js +27 -27
  71. package/dist/cjs/components/SupportCenter/SupportCenter.js +65 -65
  72. package/dist/cjs/components/TextArea/TextArea.js +16 -16
  73. package/dist/cjs/components/TextInput/TextInput.js +13 -13
  74. package/dist/cjs/components/Toggle/Toggle.js +22 -22
  75. package/dist/cjs/components/TooltipHover/TooltipHover.js +39 -39
  76. package/dist/cjs/components/UIShell/UIShell.js +95 -93
  77. package/dist/cjs/config/servicesConfig.js +22 -21
  78. package/dist/cjs/constants/DataDrivenInputTypes.js +74 -74
  79. package/dist/cjs/constants/UserType.js +13 -13
  80. package/dist/cjs/hooks/useHeaderMenu.js +49 -49
  81. package/dist/cjs/hooks/usePortal.js +74 -74
  82. package/dist/cjs/hooks/useWindowSize.js +33 -33
  83. package/dist/cjs/internal/ListBox/ListBox.js +41 -41
  84. package/dist/cjs/internal/ListBox/ListBoxField.js +19 -19
  85. package/dist/cjs/internal/ListBox/ListBoxMenu.js +19 -19
  86. package/dist/cjs/internal/ListBox/ListBoxMenuIcon.js +31 -31
  87. package/dist/cjs/internal/ListBox/ListBoxMenuItem.js +38 -38
  88. package/dist/cjs/internal/ListBox/ListBoxSelection.js +64 -64
  89. package/dist/cjs/internal/ListBox/index.js +10 -10
  90. package/dist/cjs/internal/keyboard/keys.js +16 -16
  91. package/dist/cjs/internal/keyboard/match.js +67 -67
  92. package/dist/cjs/internal/settings.js +5 -5
  93. package/dist/cjs/tools/accessibility.js +13 -13
  94. package/dist/cjs/tools/createPropAdapter.js +44 -44
  95. package/dist/cjs/tools/isUrl.js +39 -39
  96. package/dist/cjs/tools/setupGetInstanceId.js +20 -20
  97. package/dist/cjs/tools/useSetState.js +12 -12
  98. package/dist/cjs/tools/yupAst/astGenerator.js +212 -212
  99. package/dist/cjs/tools/yupAst/customValidators.js +17 -17
  100. package/dist/esm/components/AboutPlatform/AboutPlatform.js +50 -50
  101. package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +220 -243
  102. package/dist/esm/components/AutoSuggest/AutoSuggest.js +101 -101
  103. package/dist/esm/components/Avatar/Avatar.js +18 -18
  104. package/dist/esm/components/CheckboxList/CheckboxList.js +34 -34
  105. package/dist/esm/components/ComboBox/ComboBox.js +103 -103
  106. package/dist/esm/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  107. package/dist/esm/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  108. package/dist/esm/components/ComposedModal/ComposedModal.js +80 -80
  109. package/dist/esm/components/ConfirmModal/ConfirmModal.js +43 -43
  110. package/dist/esm/components/Creatable/Creatable.js +137 -137
  111. package/dist/esm/components/DataDrivenInput/DataDrivenInput.js +226 -226
  112. package/dist/esm/components/DateInput/DateInput.js +35 -35
  113. package/dist/esm/components/DecisionButtons/DecisionButtons.js +61 -61
  114. package/dist/esm/components/DelayedRender/DelayedRender.js +17 -17
  115. package/dist/esm/components/DynamicFormik/DynamicFormik.js +578 -578
  116. package/dist/esm/components/Error403/Error403.js +13 -13
  117. package/dist/esm/components/Error403/ForbiddenErrorBackground.js +113 -113
  118. package/dist/esm/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  119. package/dist/esm/components/Error404/Error404.js +13 -13
  120. package/dist/esm/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  121. package/dist/esm/components/Error404/NotFoundErrorBackground.js +129 -129
  122. package/dist/esm/components/ErrorBoundary/ErrorBoundary.js +32 -32
  123. package/dist/esm/components/ErrorDragon/ErrorDragon.js +13 -13
  124. package/dist/esm/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  125. package/dist/esm/components/ErrorFullPage/ErrorFullPage.js +10 -10
  126. package/dist/esm/components/ErrorMessage/ErrorMessage.js +22 -22
  127. package/dist/esm/components/ErrorPage/ErrorPage.js +11 -11
  128. package/dist/esm/components/ErrorPageCore/ErrorPageCore.js +15 -15
  129. package/dist/esm/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  130. package/dist/esm/components/FeatureHeader/FeatureHeader.js +29 -29
  131. package/dist/esm/components/FeatureNavTab/FeatureNavTab.js +12 -12
  132. package/dist/esm/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  133. package/dist/esm/components/FeatureSideNav/FeatureSideNav.js +12 -12
  134. package/dist/esm/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  135. package/dist/esm/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  136. package/dist/esm/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  137. package/dist/esm/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  138. package/dist/esm/components/Feedback/Feedback.js +37 -40
  139. package/dist/esm/components/FlowModal/FlowModal.js +141 -141
  140. package/dist/esm/components/FlowModal/FlowModalForm.js +12 -12
  141. package/dist/esm/components/Header/Header.js +189 -168
  142. package/dist/esm/components/Header/HeaderAppSwitcher.js +94 -102
  143. package/dist/esm/components/Header/HeaderMenu.js +7 -7
  144. package/dist/esm/components/Header/HeaderMenuItem.js +52 -53
  145. package/dist/esm/components/Header/HeaderTeamSwitcher.js +318 -0
  146. package/dist/esm/components/Header/UserRequests.js +29 -29
  147. package/dist/esm/components/ImageModal/ImageModal.js +17 -17
  148. package/dist/esm/components/Loading/Loading.js +8 -8
  149. package/dist/esm/components/MemberBar/MemberBar.js +20 -20
  150. package/dist/esm/components/Modal/Modal.js +20 -20
  151. package/dist/esm/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  152. package/dist/esm/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  153. package/dist/esm/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  154. package/dist/esm/components/ModalForm/ModalForm.js +9 -9
  155. package/dist/esm/components/Notifications/NotificationsContainer.js +22 -22
  156. package/dist/esm/components/Notifications/ToastNotification.js +21 -21
  157. package/dist/esm/components/Notifications/notify.js +17 -17
  158. package/dist/esm/components/PlatformBanner/PlatformBanner.js +8 -8
  159. package/dist/esm/components/PlatformNotifications/PlatformNotification.js +17 -17
  160. package/dist/esm/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  161. package/dist/esm/components/Portal/Portal.js +14 -14
  162. package/dist/esm/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  163. package/dist/esm/components/PrivacyStatement/PrivacyStatement.js +90 -90
  164. package/dist/esm/components/ProfileSettings/ProfileSettings.js +124 -124
  165. package/dist/esm/components/ProtectedRoute/ProtectedRoute.js +13 -13
  166. package/dist/esm/components/RadioGroup/RadioGroup.js +33 -33
  167. package/dist/esm/components/RichTextArea/RichTextArea.js +142 -142
  168. package/dist/esm/components/SignOut/SignOut.js +27 -27
  169. package/dist/esm/components/SupportCenter/SupportCenter.js +65 -65
  170. package/dist/esm/components/TextArea/TextArea.js +16 -16
  171. package/dist/esm/components/TextInput/TextInput.js +13 -13
  172. package/dist/esm/components/Toggle/Toggle.js +22 -22
  173. package/dist/esm/components/TooltipHover/TooltipHover.js +39 -39
  174. package/dist/esm/components/UIShell/UIShell.js +96 -94
  175. package/dist/esm/config/servicesConfig.js +22 -21
  176. package/dist/esm/constants/DataDrivenInputTypes.js +74 -74
  177. package/dist/esm/constants/UserType.js +13 -13
  178. package/dist/esm/hooks/useHeaderMenu.js +49 -49
  179. package/dist/esm/hooks/usePortal.js +74 -74
  180. package/dist/esm/hooks/useWindowSize.js +33 -33
  181. package/dist/esm/internal/ListBox/ListBox.js +41 -41
  182. package/dist/esm/internal/ListBox/ListBoxField.js +19 -19
  183. package/dist/esm/internal/ListBox/ListBoxMenu.js +19 -19
  184. package/dist/esm/internal/ListBox/ListBoxMenuIcon.js +31 -31
  185. package/dist/esm/internal/ListBox/ListBoxMenuItem.js +38 -38
  186. package/dist/esm/internal/ListBox/ListBoxSelection.js +64 -64
  187. package/dist/esm/internal/ListBox/index.js +10 -10
  188. package/dist/esm/internal/keyboard/keys.js +16 -16
  189. package/dist/esm/internal/keyboard/match.js +67 -67
  190. package/dist/esm/internal/settings.js +5 -5
  191. package/dist/esm/tools/accessibility.js +13 -13
  192. package/dist/esm/tools/createPropAdapter.js +44 -44
  193. package/dist/esm/tools/isUrl.js +39 -39
  194. package/dist/esm/tools/setupGetInstanceId.js +20 -20
  195. package/dist/esm/tools/useSetState.js +12 -12
  196. package/dist/esm/tools/yupAst/astGenerator.js +212 -212
  197. package/dist/esm/tools/yupAst/customValidators.js +17 -17
  198. package/dist/types/index.d.ts +1355 -1309
  199. package/package.json +167 -167
  200. package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
  201. package/scss/components/AdvantageSideNav/_advantageSideNav.scss +261 -261
  202. package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
  203. package/scss/components/Avatar/_avatar.scss +32 -32
  204. package/scss/components/CheckboxList/_checkboxList.scss +26 -26
  205. package/scss/components/ComboBox/_combobox.scss +23 -23
  206. package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
  207. package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
  208. package/scss/components/Creatable/_creatable.scss +48 -48
  209. package/scss/components/DateInput/_dateInput.scss +36 -36
  210. package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
  211. package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
  212. package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
  213. package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
  214. package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
  215. package/scss/components/ErrorPage/_errorPage.scss +66 -66
  216. package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
  217. package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
  218. package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
  219. package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
  220. package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
  221. package/scss/components/Feedback/_feedback.scss +46 -46
  222. package/scss/components/Header/_header.scss +179 -179
  223. package/scss/components/Header/_headerAppSwitcher.scss +117 -117
  224. package/scss/components/Header/_headerMenu.scss +30 -30
  225. package/scss/components/Header/_headerMenuItem.scss +65 -65
  226. package/scss/components/Header/_headerTeamSwitcher.scss +195 -0
  227. package/scss/components/Header/_userRequests.scss +36 -36
  228. package/scss/components/ImageModal/_imageModal.scss +51 -51
  229. package/scss/components/MemberBar/_memberBar.scss +99 -99
  230. package/scss/components/Modal/_modal.scss +163 -163
  231. package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
  232. package/scss/components/Notifications/_notifications.scss +57 -57
  233. package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
  234. package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
  235. package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
  236. package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
  237. package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
  238. package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
  239. package/scss/components/RadioGroup/_radioGroup.scss +46 -46
  240. package/scss/components/RichTextArea/_richTextArea.scss +82 -82
  241. package/scss/components/SignOut/_signOut.scss +51 -51
  242. package/scss/components/SupportCenter/_supportCenter.scss +16 -16
  243. package/scss/components/TextArea/_textArea.scss +19 -19
  244. package/scss/components/TextInput/_textInput.scss +26 -26
  245. package/scss/components/Toggle/_toggle.scss +80 -80
  246. package/scss/components/TooltipHover/_tooltip.scss +48 -48
  247. package/scss/global/_config.scss +14 -14
  248. package/scss/global/_tippy.scss +49 -49
  249. package/scss/global/index.scss +401 -402
  250. package/scss/global/themes/_boomerang.scss +184 -184
  251. package/scss/global/themes/_default.scss +79 -79
  252. package/scss/global/themes/_shell-tokens.scss +42 -42
  253. package/scss/global/utils/_animations.scss +15 -15
  254. package/scss/global/utils/_mixins.scss +67 -67
  255. package/scss/global/utils/index.scss +10 -10
@@ -2,36 +2,36 @@ import React from 'react';
2
2
  import { ComposedModal, ModalHeader, ModalBody, ModalFooter, Button } from '@carbon/react';
3
3
  import { prefix } from '../../internal/settings.js';
4
4
 
5
- /*
6
- IBM Confidential
7
- 694970X, 69497O0
8
- © Copyright IBM Corp. 2022, 2024
9
- */
10
- function PrivacyRedirect(props) {
11
- const { baseEnvUrl, isOpen = false, user, platformName = "the platform" } = props;
12
- const handleOnSubmit = () => {
13
- const pendingDeletion = user?.status === "pending_deletion";
14
- if (pendingDeletion) {
15
- window.location.assign(`${baseEnvUrl}/launchpad`); // There is no marketing site so TBD where this links to
16
- }
17
- else {
18
- window.location.assign(`${baseEnvUrl}/launchpad?rd=${document.URL}`);
19
- }
20
- };
21
- const pendingDeletion = user?.status === "pending_deletion";
22
- const contentText = pendingDeletion
23
- ? `We’re working on removing your account and personal information from ${platformName}. Please allow up to 1 month (as mandated by GDPR regulations) for us to complete your request.`
24
- : "Before continuing, we need you to consent to the Privacy Statement.";
25
- const buttonText = pendingDeletion ? "Go to Launchpad" : "View Privacy Statement";
26
- return (React.createElement("div", { className: `${prefix}--bmrg-redirect-container ${prefix}--bmrg-header-modal` },
27
- React.createElement(ComposedModal, { "aria-label": "GDPR Modal", open: isOpen, onClose: () => {
28
- return false;
29
- } },
30
- React.createElement(ModalHeader, { title: "Our Privacy Statement" }),
31
- React.createElement(ModalBody, null,
32
- React.createElement("span", { className: `${prefix}--bmrg-redirect__body` }, contentText)),
33
- React.createElement(ModalFooter, null,
34
- React.createElement(Button, { "data-modal-primary-focus": true, kind: "primary", onClick: handleOnSubmit }, buttonText)))));
5
+ /*
6
+ IBM Confidential
7
+ 694970X, 69497O0
8
+ © Copyright IBM Corp. 2022, 2024
9
+ */
10
+ function PrivacyRedirect(props) {
11
+ const { baseEnvUrl, isOpen = false, user, platformName = "the platform" } = props;
12
+ const handleOnSubmit = () => {
13
+ const pendingDeletion = user?.status === "pending_deletion";
14
+ if (pendingDeletion) {
15
+ window.location.assign(`${baseEnvUrl}/launchpad`); // There is no marketing site so TBD where this links to
16
+ }
17
+ else {
18
+ window.location.assign(`${baseEnvUrl}/launchpad?rd=${document.URL}`);
19
+ }
20
+ };
21
+ const pendingDeletion = user?.status === "pending_deletion";
22
+ const contentText = pendingDeletion
23
+ ? `We’re working on removing your account and personal information from ${platformName}. Please allow up to 1 month (as mandated by GDPR regulations) for us to complete your request.`
24
+ : "Before continuing, we need you to consent to the Privacy Statement.";
25
+ const buttonText = pendingDeletion ? "Go to Launchpad" : "View Privacy Statement";
26
+ return (React.createElement("div", { className: `${prefix}--bmrg-redirect-container ${prefix}--bmrg-header-modal` },
27
+ React.createElement(ComposedModal, { "aria-label": "GDPR Modal", open: isOpen, onClose: () => {
28
+ return false;
29
+ } },
30
+ React.createElement(ModalHeader, { title: "Our Privacy Statement" }),
31
+ React.createElement(ModalBody, null,
32
+ React.createElement("span", { className: `${prefix}--bmrg-redirect__body` }, contentText)),
33
+ React.createElement(ModalFooter, null,
34
+ React.createElement(Button, { "data-modal-primary-focus": true, kind: "primary", onClick: handleOnSubmit }, buttonText)))));
35
35
  }
36
36
 
37
37
  export { PrivacyRedirect as default };
@@ -11,96 +11,96 @@ import { useQuery, useMutation } from 'react-query';
11
11
  import { resolver, serviceUrl } from '../../config/servicesConfig.js';
12
12
  import { prefix } from '../../internal/settings.js';
13
13
 
14
- /*
15
- IBM Confidential
16
- 694970X, 69497O0
17
- © Copyright IBM Corp. 2022, 2024
18
- */
19
- function formatDateTimestamp(timestamp) {
20
- return new Date(timestamp).toLocaleDateString("en-us", {
21
- year: "numeric",
22
- month: "long",
23
- day: "numeric",
24
- });
25
- }
26
- function PrivacyStatement({ baseServicesUrl, closeModal, isOpen, organization = "the platform", platformEmail = "isesupp@us.ibm.com", }) {
27
- const [resetKey, setResetKey] = React.useState(0);
28
- const [isConfirmModalOpen, setIsConfirmModalOpen] = React.useState(false);
29
- const statementUrl = serviceUrl.getStatement({ baseServicesUrl });
30
- const statementQuery = useQuery({
31
- queryKey: statementUrl,
32
- queryFn: resolver.query(statementUrl),
33
- });
34
- const { mutateAsync, error: mutateUserConsentError } = useMutation(resolver.putUserConsent);
35
- function closeConfirmModal() {
36
- setIsConfirmModalOpen(false);
37
- }
38
- function handleClose() {
39
- closeModal();
40
- closeConfirmModal();
41
- setResetKey(resetKey + 1);
42
- }
43
- async function handleSubmit() {
44
- const body = {
45
- hasConsented: false,
46
- version: statementQuery.data?.version,
47
- };
48
- try {
49
- await mutateAsync({ baseServicesUrl, body });
50
- notify(React.createElement(ToastNotification, { subtitle: "Successfully requested account deletion", title: "Delete Account", kind: "success" }), { containerId: `${prefix}--bmrg-header-notifications` });
51
- closeConfirmModal();
52
- closeModal();
53
- if (window.location) {
54
- window.location.reload();
55
- }
56
- }
57
- catch (e) {
58
- closeConfirmModal();
59
- }
60
- }
61
- return (React.createElement(ComposedModal, { "aria-label": "Privacy Statement", className: `${prefix}--bmrg-privacy-statement-container ${prefix}--bmrg-header-modal`, onClose: handleClose, open: isOpen, preventCloseOnClickOutside: isConfirmModalOpen },
62
- React.createElement(ModalHeader, { closeModal: handleClose, label: `Effective as of ${statementQuery.data ? formatDateTimestamp(statementQuery.data.effectiveDate) : ""}`, title: "Privacy Statement" }),
63
- React.createElement(ModalBody, { key: resetKey },
64
- React.createElement("div", { className: `${prefix}--bmrg-privacy-statement` },
65
- React.createElement(React.Fragment, null,
66
- statementQuery.isLoading ? (React.createElement(Loading, null)) : statementQuery.error ? (React.createElement(Error, { style: { color: "#F2F4F8" } })) : (statementQuery.data &&
67
- statementQuery.data.formContent?.sections?.length > 0 && (React.createElement(React.Fragment, null,
68
- React.createElement(Accordion, null, statementQuery.data.formContent.sections.map((section) => {
69
- return (React.createElement(AccordionItem, { title: section.title, key: section.title },
70
- React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__content`, dangerouslySetInnerHTML: {
71
- __html: dompurify.sanitize(section.content),
72
- } })));
73
- })),
74
- React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__message` },
75
- `For any questions or concerns about business and personal information captured on
76
- ${organization}, please contact${" "}`,
77
- React.createElement("a", { href: `mailto:${platformEmail}?subject=${organization} Privacy Statement` }, platformEmail),
78
- ".")))),
79
- mutateUserConsentError && (React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__error` }, "Failed to receive deletion request. Please try again."))))),
80
- React.createElement(ModalFooter, null,
81
- React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: handleClose }, "Close"),
82
- React.createElement(Button, { kind: "danger", onClick: () => setIsConfirmModalOpen(true) }, "Request account deletion"),
83
- React.createElement("div", { className: `${prefix}--bmrg-privacy-statement-delete` },
84
- React.createElement(ComposedModal, { onClose: closeConfirmModal, open: isConfirmModalOpen },
85
- React.createElement(ModalHeader, { closeModal: closeConfirmModal, label: "Delete Account", title: "Request account deletion" }),
86
- React.createElement(ModalBody, null,
87
- React.createElement("p", { className: `${prefix}--bmrg-privacy-statement-delete__desc` }, "By selecting to delete your account, your account will be deleted along with all of your user data from our system and we will notify your team(s) that you are no longer a memeber of the platform. Are you sure you want to delete your account?")),
88
- React.createElement(ModalFooter, null,
89
- React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: closeConfirmModal }, "No, go back to Privacy Statement"),
90
- React.createElement(Button, { kind: "danger", type: "submit", onClick: handleSubmit }, "Yes, delete my account")))))));
91
- }
92
- function PrivacyStatementMenuItem(props) {
93
- const menuItemRef = React.useRef(null);
94
- const [isOpen, setIsOpen] = React.useState(false);
95
- const handleClose = () => {
96
- setIsOpen(false);
97
- setTimeout(() => {
98
- menuItemRef.current?.focus();
99
- }, 0);
100
- };
101
- return (React.createElement(React.Fragment, null,
102
- React.createElement(HeaderMenuItem, { icon: React.createElement(Locked, null), onClick: () => setIsOpen(!isOpen), ref: menuItemRef, text: "Privacy Statement", type: "button" }),
103
- React.createElement(PrivacyStatement, { isOpen: isOpen, closeModal: handleClose, ...props })));
14
+ /*
15
+ IBM Confidential
16
+ 694970X, 69497O0
17
+ © Copyright IBM Corp. 2022, 2024
18
+ */
19
+ function formatDateTimestamp(timestamp) {
20
+ return new Date(timestamp).toLocaleDateString("en-us", {
21
+ year: "numeric",
22
+ month: "long",
23
+ day: "numeric",
24
+ });
25
+ }
26
+ function PrivacyStatement({ baseServicesUrl, closeModal, isOpen, organization = "the platform", platformEmail = "isesupp@us.ibm.com", }) {
27
+ const [resetKey, setResetKey] = React.useState(0);
28
+ const [isConfirmModalOpen, setIsConfirmModalOpen] = React.useState(false);
29
+ const statementUrl = serviceUrl.getStatement({ baseServicesUrl });
30
+ const statementQuery = useQuery({
31
+ queryKey: statementUrl,
32
+ queryFn: resolver.query(statementUrl),
33
+ });
34
+ const { mutateAsync, error: mutateUserConsentError } = useMutation(resolver.putUserConsent);
35
+ function closeConfirmModal() {
36
+ setIsConfirmModalOpen(false);
37
+ }
38
+ function handleClose() {
39
+ closeModal();
40
+ closeConfirmModal();
41
+ setResetKey(resetKey + 1);
42
+ }
43
+ async function handleSubmit() {
44
+ const body = {
45
+ hasConsented: false,
46
+ version: statementQuery.data?.version,
47
+ };
48
+ try {
49
+ await mutateAsync({ baseServicesUrl, body });
50
+ notify(React.createElement(ToastNotification, { subtitle: "Successfully requested account deletion", title: "Delete Account", kind: "success" }), { containerId: `${prefix}--bmrg-header-notifications` });
51
+ closeConfirmModal();
52
+ closeModal();
53
+ if (window.location) {
54
+ window.location.reload();
55
+ }
56
+ }
57
+ catch (e) {
58
+ closeConfirmModal();
59
+ }
60
+ }
61
+ return (React.createElement(ComposedModal, { "aria-label": "Privacy Statement", className: `${prefix}--bmrg-privacy-statement-container ${prefix}--bmrg-header-modal`, onClose: handleClose, open: isOpen, preventCloseOnClickOutside: isConfirmModalOpen },
62
+ React.createElement(ModalHeader, { closeModal: handleClose, label: `Effective as of ${statementQuery.data ? formatDateTimestamp(statementQuery.data.effectiveDate) : ""}`, title: "Privacy Statement" }),
63
+ React.createElement(ModalBody, { key: resetKey },
64
+ React.createElement("div", { className: `${prefix}--bmrg-privacy-statement` },
65
+ React.createElement(React.Fragment, null,
66
+ statementQuery.isLoading ? (React.createElement(Loading, null)) : statementQuery.error ? (React.createElement(Error, { style: { color: "#F2F4F8" } })) : (statementQuery.data &&
67
+ statementQuery.data.formContent?.sections?.length > 0 && (React.createElement(React.Fragment, null,
68
+ React.createElement(Accordion, null, statementQuery.data.formContent.sections.map((section) => {
69
+ return (React.createElement(AccordionItem, { title: section.title, key: section.title },
70
+ React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__content`, dangerouslySetInnerHTML: {
71
+ __html: dompurify.sanitize(section.content),
72
+ } })));
73
+ })),
74
+ React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__message` },
75
+ `For any questions or concerns about business and personal information captured on
76
+ ${organization}, please contact${" "}`,
77
+ React.createElement("a", { href: `mailto:${platformEmail}?subject=${organization} Privacy Statement` }, platformEmail),
78
+ ".")))),
79
+ mutateUserConsentError && (React.createElement("p", { className: `${prefix}--bmrg-privacy-statement__error` }, "Failed to receive deletion request. Please try again."))))),
80
+ React.createElement(ModalFooter, null,
81
+ React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: handleClose }, "Close"),
82
+ React.createElement(Button, { kind: "danger", onClick: () => setIsConfirmModalOpen(true) }, "Request account deletion"),
83
+ React.createElement("div", { className: `${prefix}--bmrg-privacy-statement-delete` },
84
+ React.createElement(ComposedModal, { onClose: closeConfirmModal, open: isConfirmModalOpen },
85
+ React.createElement(ModalHeader, { closeModal: closeConfirmModal, label: "Delete Account", title: "Request account deletion" }),
86
+ React.createElement(ModalBody, null,
87
+ React.createElement("p", { className: `${prefix}--bmrg-privacy-statement-delete__desc` }, "By selecting to delete your account, your account will be deleted along with all of your user data from our system and we will notify your team(s) that you are no longer a memeber of the platform. Are you sure you want to delete your account?")),
88
+ React.createElement(ModalFooter, null,
89
+ React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: closeConfirmModal }, "No, go back to Privacy Statement"),
90
+ React.createElement(Button, { kind: "danger", type: "submit", onClick: handleSubmit }, "Yes, delete my account")))))));
91
+ }
92
+ function PrivacyStatementMenuItem(props) {
93
+ const menuItemRef = React.useRef(null);
94
+ const [isOpen, setIsOpen] = React.useState(false);
95
+ const handleClose = () => {
96
+ setIsOpen(false);
97
+ setTimeout(() => {
98
+ menuItemRef.current?.focus();
99
+ }, 0);
100
+ };
101
+ return (React.createElement(React.Fragment, null,
102
+ React.createElement(HeaderMenuItem, { icon: React.createElement(Locked, null), onClick: () => setIsOpen(!isOpen), ref: menuItemRef, text: "Privacy Statement", type: "button" }),
103
+ React.createElement(PrivacyStatement, { isOpen: isOpen, closeModal: handleClose, ...props })));
104
104
  }
105
105
 
106
106
  export { PrivacyStatementMenuItem, PrivacyStatement as default };
@@ -10,130 +10,130 @@ import sortBy from 'lodash.sortby';
10
10
  import { useQueryClient, useQuery, useMutation } from 'react-query';
11
11
  import { prefix } from '../../internal/settings.js';
12
12
 
13
- /*
14
- IBM Confidential
15
- 694970X, 69497O0
16
- © Copyright IBM Corp. 2022, 2024
17
- */
18
- function determineIfConfigIsDifferent(teams, initialTeams) {
19
- let isConfigDifferent = false;
20
- for (let idx = 0; idx < teams?.length; idx++) {
21
- if (teams[idx]?.visible !== initialTeams[idx]?.visible) {
22
- isConfigDifferent = true;
23
- break;
24
- }
25
- }
26
- return isConfigDifferent;
27
- }
28
- function ProfileSettings({ baseServicesUrl, src, userName, isOpen, closeModal }) {
29
- const queryClient = useQueryClient();
30
- const [initialTeams, setInitialTeams] = useState([]);
31
- const [teams, setTeams] = useState([]);
32
- const userUrl = serviceUrl.getLaunchpadUser({ baseServicesUrl });
33
- const profileUrl = serviceUrl.resourceUserProfile({ baseServicesUrl });
34
- const { data: user, isLoading: userIsLoading, error: userError, } = useQuery({
35
- queryKey: userUrl,
36
- queryFn: resolver.query(userUrl),
37
- });
38
- const { mutateAsync: mutateUserProfile, isLoading: mutateUserProfileIsLoading, error: mutateUserProfileError, } = useMutation(resolver.patchUserProfile, {
39
- onSuccess: () => {
40
- queryClient.invalidateQueries(userUrl);
41
- queryClient.invalidateQueries(profileUrl);
42
- },
43
- });
44
- // Only disable when we have a user and we know that there aren' any lower level groups to manage
45
- const disableModal = user && user?.lowerLevelGroups === undefined;
46
- useEffect(() => {
47
- const teams = user?.lowerLevelGroups ?? [];
48
- setInitialTeams(teams);
49
- setTeams(teams);
50
- }, [user]);
51
- function handleClose() {
52
- closeModal();
53
- setTeams(initialTeams);
54
- }
55
- async function handleSubmit() {
56
- const body = {
57
- lowerLevelGroups: teams,
58
- };
59
- try {
60
- await mutateUserProfile({ baseServicesUrl, body });
61
- notify(React.createElement(ToastNotification, { subtitle: "Successfully updated user settings", title: "Update Settings", kind: "success" }), { containerId: `${prefix}--bmrg-header-notifications` });
62
- closeModal();
63
- }
64
- catch (e) {
65
- // noop
66
- }
67
- }
68
- const visibleTeamCount = teams?.filter((team) => team?.visible)?.length ?? 0;
69
- const allTeamsAreChecked = teams?.length === visibleTeamCount;
70
- const someTeamsAreChecked = visibleTeamCount > 0 && !allTeamsAreChecked;
71
- const isConfigDifferent = determineIfConfigIsDifferent(teams, initialTeams);
72
- function batchChangeTeamVisibility() {
73
- const updatedTeams = teams.map((team) => ({ ...team, visible: !allTeamsAreChecked }));
74
- setTeams(updatedTeams);
75
- }
76
- function handleUpdateTeamVisibility(id, checked) {
77
- const updatedTeams = [];
78
- for (let team of teams) {
79
- const newTeam = { ...team };
80
- if (newTeam.id === id) {
81
- newTeam.visible = checked;
82
- }
83
- updatedTeams.push(newTeam);
84
- }
85
- setTeams(updatedTeams);
86
- }
87
- if (disableModal) {
88
- return (React.createElement("div", { className: `${prefix}--bmrg-profile-menu-user` },
89
- React.createElement(Avatar, { size: "medium", src: src, userName: userName }),
90
- React.createElement("p", { className: `${prefix}--bmrg-profile-menu-user__name` },
91
- " ",
92
- userName ? userName : "",
93
- " ")));
94
- }
95
- return (React.createElement(ComposedModal, { "aria-label": "Profile Settings", className: `${prefix}--bmrg-profile-settings-container ${prefix}--bmrg-header-modal`, open: isOpen, onClose: handleClose, preventCloseOnClickOutside: true },
96
- React.createElement(ModalHeader, { closeModal: handleClose, title: `User profile - ${userName}` }),
97
- React.createElement(ModalBody, { style: { maxHeight: "31.5rem" } },
98
- React.createElement("p", { className: `${prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your sidebar in Launchpad."),
99
- React.createElement("h2", { className: `${prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad sidebar"),
100
- React.createElement("p", { className: `${prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad sidebar and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the sidebar, and cannot add items to them from Catalog."),
101
- userIsLoading ? (React.createElement(StructuredListSkeleton, null)) : userError ? (React.createElement(Error, { style: { color: "#F2F4F8", padding: "1rem" } })) : teams?.length > 0 ? (React.createElement(StructuredListWrapper, { className: `${prefix}--bmrg-profile-settings-list` },
102
- React.createElement(StructuredListHead, null,
103
- React.createElement(StructuredListRow, { head: true },
104
- React.createElement(StructuredListCell, { head: true },
105
- React.createElement(Checkbox, { checked: allTeamsAreChecked, id: "team-name-batch-toggle", indeterminate: someTeamsAreChecked, labelText: "Team Name", onChange: batchChangeTeamVisibility })))),
106
- React.createElement(StructuredListBody, null, sortBy(teams, "name").map(({ name, displayName, id, visible }) => (React.createElement(StructuredListRow, { key: id, className: !visible ? `${prefix}--bmrg-profile-settings-list__row--disabled` : "" },
107
- React.createElement(StructuredListCell, null,
108
- React.createElement(Checkbox, { checked: visible, id: id, labelText: Boolean(displayName) ? displayName : name, onChange: (_, { checked, id }) => {
109
- return handleUpdateTeamVisibility(id, checked);
110
- } })))))))) : (React.createElement("p", { style: { marginTop: "3rem", color: "#F2F4F8" } }, "No teams to configure. Join or create teams in Launchpad!"))),
111
- React.createElement(ModalFooter, null,
112
- mutateUserProfileError && (React.createElement("div", { style: {
113
- position: "absolute",
114
- top: "-5rem",
115
- left: "2rem",
116
- width: "90%",
117
- } },
118
- React.createElement(InlineNotification, { kind: "error", title: "Something's Wrong", subtitle: "Failed to update user profile" }))),
119
- React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: handleClose }, "Cancel"),
120
- React.createElement(Button, { disabled: !isConfigDifferent || mutateUserProfileIsLoading, kind: "primary", type: "submit", onClick: (e) => {
121
- e.preventDefault();
122
- handleSubmit();
123
- } }, mutateUserProfileError ? "Try Again" : mutateUserProfileIsLoading ? "Saving..." : "Save changes"))));
124
- }
125
- function ProfileSettingsMenuItem(props) {
126
- const menuItemRef = React.useRef(null);
127
- const [isOpen, setIsOpen] = React.useState(false);
128
- const handleClose = () => {
129
- setIsOpen(false);
130
- setTimeout(() => {
131
- menuItemRef.current?.focus();
132
- }, 0);
133
- };
134
- return (React.createElement(React.Fragment, null,
135
- React.createElement(HeaderMenuItem, { onClick: () => setIsOpen(!isOpen), ref: menuItemRef, src: props.src, type: "user", userName: props.userName }),
136
- React.createElement(ProfileSettings, { isOpen: isOpen, closeModal: handleClose, ...props })));
13
+ /*
14
+ IBM Confidential
15
+ 694970X, 69497O0
16
+ © Copyright IBM Corp. 2022, 2024
17
+ */
18
+ function determineIfConfigIsDifferent(teams, initialTeams) {
19
+ let isConfigDifferent = false;
20
+ for (let idx = 0; idx < teams?.length; idx++) {
21
+ if (teams[idx]?.visible !== initialTeams[idx]?.visible) {
22
+ isConfigDifferent = true;
23
+ break;
24
+ }
25
+ }
26
+ return isConfigDifferent;
27
+ }
28
+ function ProfileSettings({ baseServicesUrl, src, userName, isOpen, closeModal }) {
29
+ const queryClient = useQueryClient();
30
+ const [initialTeams, setInitialTeams] = useState([]);
31
+ const [teams, setTeams] = useState([]);
32
+ const userUrl = serviceUrl.getLaunchpadUser({ baseServicesUrl });
33
+ const profileUrl = serviceUrl.resourceUserProfile({ baseServicesUrl });
34
+ const { data: user, isLoading: userIsLoading, error: userError, } = useQuery({
35
+ queryKey: userUrl,
36
+ queryFn: resolver.query(userUrl),
37
+ });
38
+ const { mutateAsync: mutateUserProfile, isLoading: mutateUserProfileIsLoading, error: mutateUserProfileError, } = useMutation(resolver.patchUserProfile, {
39
+ onSuccess: () => {
40
+ queryClient.invalidateQueries(userUrl);
41
+ queryClient.invalidateQueries(profileUrl);
42
+ },
43
+ });
44
+ // Only disable when we have a user and we know that there aren' any lower level groups to manage
45
+ const disableModal = user && user?.lowerLevelGroups === undefined;
46
+ useEffect(() => {
47
+ const teams = user?.lowerLevelGroups ?? [];
48
+ setInitialTeams(teams);
49
+ setTeams(teams);
50
+ }, [user]);
51
+ function handleClose() {
52
+ closeModal();
53
+ setTeams(initialTeams);
54
+ }
55
+ async function handleSubmit() {
56
+ const body = {
57
+ lowerLevelGroups: teams,
58
+ };
59
+ try {
60
+ await mutateUserProfile({ baseServicesUrl, body });
61
+ notify(React.createElement(ToastNotification, { subtitle: "Successfully updated user settings", title: "Update Settings", kind: "success" }), { containerId: `${prefix}--bmrg-header-notifications` });
62
+ closeModal();
63
+ }
64
+ catch (e) {
65
+ // noop
66
+ }
67
+ }
68
+ const visibleTeamCount = teams?.filter((team) => team?.visible)?.length ?? 0;
69
+ const allTeamsAreChecked = teams?.length === visibleTeamCount;
70
+ const someTeamsAreChecked = visibleTeamCount > 0 && !allTeamsAreChecked;
71
+ const isConfigDifferent = determineIfConfigIsDifferent(teams, initialTeams);
72
+ function batchChangeTeamVisibility() {
73
+ const updatedTeams = teams.map((team) => ({ ...team, visible: !allTeamsAreChecked }));
74
+ setTeams(updatedTeams);
75
+ }
76
+ function handleUpdateTeamVisibility(id, checked) {
77
+ const updatedTeams = [];
78
+ for (let team of teams) {
79
+ const newTeam = { ...team };
80
+ if (newTeam.id === id) {
81
+ newTeam.visible = checked;
82
+ }
83
+ updatedTeams.push(newTeam);
84
+ }
85
+ setTeams(updatedTeams);
86
+ }
87
+ if (disableModal) {
88
+ return (React.createElement("div", { className: `${prefix}--bmrg-profile-menu-user` },
89
+ React.createElement(Avatar, { size: "medium", src: src, userName: userName }),
90
+ React.createElement("p", { className: `${prefix}--bmrg-profile-menu-user__name` },
91
+ " ",
92
+ userName ? userName : "",
93
+ " ")));
94
+ }
95
+ return (React.createElement(ComposedModal, { "aria-label": "Profile Settings", className: `${prefix}--bmrg-profile-settings-container ${prefix}--bmrg-header-modal`, open: isOpen, onClose: handleClose, preventCloseOnClickOutside: true },
96
+ React.createElement(ModalHeader, { closeModal: handleClose, title: `User profile - ${userName}` }),
97
+ React.createElement(ModalBody, { style: { maxHeight: "31.5rem" } },
98
+ React.createElement("p", { className: `${prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your sidebar in Launchpad."),
99
+ React.createElement("h2", { className: `${prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad sidebar"),
100
+ React.createElement("p", { className: `${prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad sidebar and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the sidebar, and cannot add items to them from Catalog."),
101
+ userIsLoading ? (React.createElement(StructuredListSkeleton, null)) : userError ? (React.createElement(Error, { style: { color: "#F2F4F8", padding: "1rem" } })) : teams?.length > 0 ? (React.createElement(StructuredListWrapper, { className: `${prefix}--bmrg-profile-settings-list` },
102
+ React.createElement(StructuredListHead, null,
103
+ React.createElement(StructuredListRow, { head: true },
104
+ React.createElement(StructuredListCell, { head: true },
105
+ React.createElement(Checkbox, { checked: allTeamsAreChecked, id: "team-name-batch-toggle", indeterminate: someTeamsAreChecked, labelText: "Team Name", onChange: batchChangeTeamVisibility })))),
106
+ React.createElement(StructuredListBody, null, sortBy(teams, "name").map(({ name, displayName, id, visible }) => (React.createElement(StructuredListRow, { key: id, className: !visible ? `${prefix}--bmrg-profile-settings-list__row--disabled` : "" },
107
+ React.createElement(StructuredListCell, null,
108
+ React.createElement(Checkbox, { checked: visible, id: id, labelText: Boolean(displayName) ? displayName : name, onChange: (_, { checked, id }) => {
109
+ return handleUpdateTeamVisibility(id, checked);
110
+ } })))))))) : (React.createElement("p", { style: { marginTop: "3rem", color: "#F2F4F8" } }, "No teams to configure. Join or create teams in Launchpad!"))),
111
+ React.createElement(ModalFooter, null,
112
+ mutateUserProfileError && (React.createElement("div", { style: {
113
+ position: "absolute",
114
+ top: "-5rem",
115
+ left: "2rem",
116
+ width: "90%",
117
+ } },
118
+ React.createElement(InlineNotification, { kind: "error", title: "Something's Wrong", subtitle: "Failed to update user profile" }))),
119
+ React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: handleClose }, "Cancel"),
120
+ React.createElement(Button, { disabled: !isConfigDifferent || mutateUserProfileIsLoading, kind: "primary", type: "submit", onClick: (e) => {
121
+ e.preventDefault();
122
+ handleSubmit();
123
+ } }, mutateUserProfileError ? "Try Again" : mutateUserProfileIsLoading ? "Saving..." : "Save changes"))));
124
+ }
125
+ function ProfileSettingsMenuItem(props) {
126
+ const menuItemRef = React.useRef(null);
127
+ const [isOpen, setIsOpen] = React.useState(false);
128
+ const handleClose = () => {
129
+ setIsOpen(false);
130
+ setTimeout(() => {
131
+ menuItemRef.current?.focus();
132
+ }, 0);
133
+ };
134
+ return (React.createElement(React.Fragment, null,
135
+ React.createElement(HeaderMenuItem, { onClick: () => setIsOpen(!isOpen), ref: menuItemRef, src: props.src, type: "user", userName: props.userName }),
136
+ React.createElement(ProfileSettings, { isOpen: isOpen, closeModal: handleClose, ...props })));
137
137
  }
138
138
 
139
139
  export { ProfileSettingsMenuItem, ProfileSettings as default };
@@ -2,19 +2,19 @@ import React from 'react';
2
2
  import { Route } from 'react-router-dom';
3
3
  import Error403 from '../Error403/Error403.js';
4
4
 
5
- /*
6
- IBM Confidential
7
- 694970X, 69497O0
8
- © Copyright IBM Corp. 2022, 2024
9
- */
10
- const checkAuth = (userRole, allowedUserRoles) => {
11
- if (Array.isArray(userRole)) {
12
- return userRole.some((role) => allowedUserRoles.some((allowedRole) => allowedRole === role));
13
- }
14
- return allowedUserRoles.some((allowedRole) => allowedRole === userRole);
15
- };
16
- function ProtectedRoute({ allowedUserRoles, component, message = "If you think you should be, contact your friendly neighborhood platform admin.", title = "Sorry mate, you are not allowed here.", userRole, ...rest }) {
17
- return (React.createElement(Route, { ...rest }, checkAuth(userRole, allowedUserRoles) ? component : React.createElement(Error403, { message: message, title: title })));
5
+ /*
6
+ IBM Confidential
7
+ 694970X, 69497O0
8
+ © Copyright IBM Corp. 2022, 2024
9
+ */
10
+ const checkAuth = (userRole, allowedUserRoles) => {
11
+ if (Array.isArray(userRole)) {
12
+ return userRole.some((role) => allowedUserRoles.some((allowedRole) => allowedRole === role));
13
+ }
14
+ return allowedUserRoles.some((allowedRole) => allowedRole === userRole);
15
+ };
16
+ function ProtectedRoute({ allowedUserRoles, component, message = "If you think you should be, contact your friendly neighborhood platform admin.", title = "Sorry mate, you are not allowed here.", userRole, ...rest }) {
17
+ return (React.createElement(Route, { ...rest }, checkAuth(userRole, allowedUserRoles) ? component : React.createElement(Error403, { message: message, title: title })));
18
18
  }
19
19
 
20
20
  export { ProtectedRoute as default };
@@ -4,39 +4,39 @@ import { Information } from '@carbon/react/icons';
4
4
  import TooltipHover from '../TooltipHover/TooltipHover.js';
5
5
  import { prefix } from '../../internal/settings.js';
6
6
 
7
- /*
8
- IBM Confidential
9
- 694970X, 69497O0
10
- © Copyright IBM Corp. 2022, 2024
11
- */
12
- function RadioGroupComponent({ defaultSelected, disabled, helperText, id, label, labelText, name, onChange, options, orientation, radioGroupProps, radioButtonProps, tooltipClassName = `${prefix}--bmrg-radio-group__tooltip`, tooltipContent, tooltipProps = { direction: "top" }, value, columnHeight = "6rem", verticalWrapped = false, }) {
13
- const labelValue = label || labelText;
14
- const labelTextId = !labelValue ? undefined : `${id}-label`;
15
- const isVertical = orientation === "vertical";
16
- const hasVerticalHelperText = isVertical && helperText;
17
- const hasHorizontalHelperText = !isVertical && helperText;
18
- // add "title" attribute to radio buttons labels so they show a tooltip with the content
19
- React.useEffect(() => {
20
- if (Array.isArray(options)) {
21
- options.forEach((option, index) => {
22
- const inputElement = document.getElementById(option.value);
23
- if (Boolean(inputElement) && inputElement !== null) {
24
- inputElement.parentNode?.children[1]?.children[1]?.setAttribute("title", options[index].labelText);
25
- }
26
- });
27
- }
28
- });
29
- return (
30
- //Defined a css var --height to be used on the wrapped container to determine the number of radios displayed in each column
31
- React.createElement("div", { key: id, className: `${prefix}--bmrg-radio-group`, style: { ["--height"]: columnHeight } },
32
- labelValue && (React.createElement("div", { className: `${prefix}--bmrg-radio-group__title` },
33
- React.createElement("div", { id: labelTextId, className: `${prefix}--label` }, labelValue),
34
- tooltipContent && (React.createElement("div", { className: tooltipClassName },
35
- React.createElement(TooltipHover, { ...tooltipProps, tooltipText: tooltipContent },
36
- React.createElement(Information, { size: 16, fill: "currentColor" })))))),
37
- hasVerticalHelperText && (React.createElement("div", { className: `${prefix}--form__helper-text`, style: { marginBottom: "0.375rem" } }, helperText)),
38
- React.createElement(RadioButtonGroup, { className: isVertical && verticalWrapped ? `${prefix}--bmrg-radio-group__container` : undefined, defaultSelected: defaultSelected, disabled: disabled, name: name, onChange: onChange, orientation: orientation, valueSelected: value, ...radioGroupProps }, options.map((option) => (React.createElement(RadioButton, { disabled: option.disabled, id: option.value, key: option.value, labelText: option.labelText, value: option.value, ...radioButtonProps })))),
39
- hasHorizontalHelperText && React.createElement("div", { className: `${prefix}--form__helper-text` }, helperText)));
7
+ /*
8
+ IBM Confidential
9
+ 694970X, 69497O0
10
+ © Copyright IBM Corp. 2022, 2024
11
+ */
12
+ function RadioGroupComponent({ defaultSelected, disabled, helperText, id, label, labelText, name, onChange, options, orientation, radioGroupProps, radioButtonProps, tooltipClassName = `${prefix}--bmrg-radio-group__tooltip`, tooltipContent, tooltipProps = { direction: "top" }, value, columnHeight = "6rem", verticalWrapped = false, }) {
13
+ const labelValue = label || labelText;
14
+ const labelTextId = !labelValue ? undefined : `${id}-label`;
15
+ const isVertical = orientation === "vertical";
16
+ const hasVerticalHelperText = isVertical && helperText;
17
+ const hasHorizontalHelperText = !isVertical && helperText;
18
+ // add "title" attribute to radio buttons labels so they show a tooltip with the content
19
+ React.useEffect(() => {
20
+ if (Array.isArray(options)) {
21
+ options.forEach((option, index) => {
22
+ const inputElement = document.getElementById(option.value);
23
+ if (Boolean(inputElement) && inputElement !== null) {
24
+ inputElement.parentNode?.children[1]?.children[1]?.setAttribute("title", options[index].labelText);
25
+ }
26
+ });
27
+ }
28
+ });
29
+ return (
30
+ //Defined a css var --height to be used on the wrapped container to determine the number of radios displayed in each column
31
+ React.createElement("div", { key: id, className: `${prefix}--bmrg-radio-group`, style: { ["--height"]: columnHeight } },
32
+ labelValue && (React.createElement("div", { className: `${prefix}--bmrg-radio-group__title` },
33
+ React.createElement("div", { id: labelTextId, className: `${prefix}--label` }, labelValue),
34
+ tooltipContent && (React.createElement("div", { className: tooltipClassName },
35
+ React.createElement(TooltipHover, { ...tooltipProps, tooltipText: tooltipContent },
36
+ React.createElement(Information, { size: 16, fill: "currentColor" })))))),
37
+ hasVerticalHelperText && (React.createElement("div", { className: `${prefix}--form__helper-text`, style: { marginBottom: "0.375rem" } }, helperText)),
38
+ React.createElement(RadioButtonGroup, { className: isVertical && verticalWrapped ? `${prefix}--bmrg-radio-group__container` : undefined, defaultSelected: defaultSelected, disabled: disabled, name: name, onChange: onChange, orientation: orientation, valueSelected: value, ...radioGroupProps }, options.map((option) => (React.createElement(RadioButton, { disabled: option.disabled, id: option.value, key: option.value, labelText: option.labelText, value: option.value, ...radioButtonProps })))),
39
+ hasHorizontalHelperText && React.createElement("div", { className: `${prefix}--form__helper-text` }, helperText)));
40
40
  }
41
41
 
42
42
  export { RadioGroupComponent as default };