@commercetools-frontend/application-shell 21.23.9 → 21.24.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 (208) hide show
  1. package/dist/application-entry-point-2a64a561.cjs.dev.js +116 -0
  2. package/dist/application-entry-point-3bb7f8bd.cjs.prod.js +99 -0
  3. package/dist/application-entry-point-58dd4b7f.esm.js +101 -0
  4. package/dist/{box-dd9e7e68.esm.js → box-4395623b.esm.js} +1 -3
  5. package/dist/{box-fdb2ccb6.cjs.dev.js → box-6b5be9a9.cjs.dev.js} +1 -3
  6. package/dist/{box-d849ea03.cjs.prod.js → box-8850277f.cjs.prod.js} +1 -3
  7. package/dist/{cart-ad0aba9b.cjs.prod.js → cart-0698b97d.cjs.prod.js} +1 -3
  8. package/dist/{cart-b92f3a8e.cjs.dev.js → cart-41f0b7bc.cjs.dev.js} +1 -3
  9. package/dist/{cart-167fea3b.esm.js → cart-a49faf67.esm.js} +1 -3
  10. package/dist/commercetools-frontend-application-shell.cjs.dev.js +49 -68
  11. package/dist/commercetools-frontend-application-shell.cjs.prod.js +49 -68
  12. package/dist/commercetools-frontend-application-shell.esm.js +39 -58
  13. package/dist/configure-apollo-1f39e35a.cjs.dev.js +930 -0
  14. package/dist/configure-apollo-5f1fd942.esm.js +873 -0
  15. package/dist/configure-apollo-d11de242.cjs.prod.js +922 -0
  16. package/dist/{connected-square-4743b7de.esm.js → connected-square-3cac6bd7.esm.js} +1 -3
  17. package/dist/connected-square-47233754.cjs.dev.js +32 -0
  18. package/dist/connected-square-b2e25621.cjs.prod.js +32 -0
  19. package/dist/{constants-69249abd.esm.js → constants-7f04db3f.esm.js} +9 -9
  20. package/dist/{constants-88fb9ef8.cjs.prod.js → constants-e6409334.cjs.prod.js} +8 -8
  21. package/dist/{constants-c2d56f3d.cjs.dev.js → constants-e6f058e5.cjs.dev.js} +8 -8
  22. package/dist/declarations/src/apollo-links/utils.d.ts +2 -2
  23. package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +4 -4
  24. package/dist/declarations/src/components/application-shell/application-shell.d.ts +7 -15
  25. package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +21 -0
  26. package/dist/declarations/src/components/application-shell-provider/application-shell-provider.d.ts +6 -7
  27. package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +1 -23
  28. package/dist/declarations/src/components/authenticated/authenticated.d.ts +2 -2
  29. package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +6 -0
  30. package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +2 -2
  31. package/dist/declarations/src/components/configure-intl-provider/configure-intl-provider.d.ts +1 -1
  32. package/dist/declarations/src/components/error-apologizer/index.d.ts +6 -1
  33. package/dist/declarations/src/components/fetch-project/fetch-project.d.ts +4 -4
  34. package/dist/declarations/src/components/fetch-user/fetch-user.d.ts +3 -3
  35. package/dist/declarations/src/components/inject-reducers/inject-reducers.d.ts +1 -1
  36. package/dist/declarations/src/components/navbar/index.d.ts +100 -1
  37. package/dist/declarations/src/components/navbar/loading-navbar.d.ts +5 -0
  38. package/dist/declarations/src/components/navbar/menu-items.d.ts +99 -0
  39. package/dist/declarations/src/components/navbar/navbar.d.ts +6 -15
  40. package/dist/declarations/src/components/project-container/index.d.ts +78 -1
  41. package/dist/declarations/src/components/project-container/project-container.d.ts +6 -8
  42. package/dist/declarations/src/components/quick-access/butler-command/butler-command.d.ts +1 -1
  43. package/dist/declarations/src/components/quick-access/index.d.ts +2 -2
  44. package/dist/declarations/src/components/quick-access/types.d.ts +1 -1
  45. package/dist/declarations/src/components/redirect-to-login/index.d.ts +6 -0
  46. package/dist/declarations/src/components/redirect-to-logout/index.d.ts +5 -0
  47. package/dist/declarations/src/components/redirect-to-project-create/index.d.ts +6 -1
  48. package/dist/declarations/src/components/requests-in-flight-loader/index.d.ts +6 -1
  49. package/dist/declarations/src/components/route-catch-all/index.d.ts +3 -1
  50. package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +3 -3
  51. package/dist/declarations/src/components/suspended-route/suspended-route.d.ts +1 -1
  52. package/dist/declarations/src/components/user-settings-menu/index.d.ts +12 -1
  53. package/dist/declarations/src/components/version-tracker/index.d.ts +6 -1
  54. package/dist/declarations/src/hooks/apollo-hooks/apollo-hooks.d.ts +1 -1
  55. package/dist/declarations/src/test-utils/test-utils.d.ts +2 -2
  56. package/dist/declarations/src/types/generated/mc.d.ts +3 -3
  57. package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +2 -0
  58. package/dist/declarations/src/utils/get-mc-origin/index.d.ts +1 -0
  59. package/dist/error-apologizer-c336db61.cjs.dev.js +56 -0
  60. package/dist/error-apologizer-c55ec6f7.cjs.prod.js +56 -0
  61. package/dist/error-apologizer-f8772b68.esm.js +42 -0
  62. package/dist/gear-2890f7fb.cjs.prod.js +32 -0
  63. package/dist/{gear-8418cd46.esm.js → gear-300dd24c.esm.js} +1 -3
  64. package/dist/gear-e8014c5a.cjs.dev.js +32 -0
  65. package/dist/get-mc-origin-314b77a2.cjs.dev.js +57 -0
  66. package/dist/get-mc-origin-5df60933.esm.js +50 -0
  67. package/dist/get-mc-origin-7968e04f.cjs.prod.js +57 -0
  68. package/dist/heart-000a023d.cjs.prod.js +32 -0
  69. package/dist/{heart-48c28091.esm.js → heart-dded66b4.esm.js} +1 -3
  70. package/dist/heart-f21b7d39.cjs.dev.js +32 -0
  71. package/dist/index-5048bf47.cjs.dev.js +3054 -0
  72. package/dist/index-b002eca6.esm.js +2970 -0
  73. package/dist/index-e0ab178f.cjs.prod.js +2870 -0
  74. package/dist/{list-with-search-c154a56e.esm.js → list-with-search-a3302710.esm.js} +1 -3
  75. package/dist/list-with-search-a5b72b33.cjs.prod.js +32 -0
  76. package/dist/list-with-search-ee796e9e.cjs.dev.js +32 -0
  77. package/dist/navbar-40650ed4.cjs.dev.js +670 -0
  78. package/dist/navbar-997b4a36.cjs.prod.js +649 -0
  79. package/dist/navbar-f4b482d0.esm.js +650 -0
  80. package/dist/oidc-0638d0c8.cjs.dev.js +67 -0
  81. package/dist/oidc-10fa96f0.esm.js +59 -0
  82. package/dist/oidc-540a091a.cjs.prod.js +67 -0
  83. package/dist/oidc-callback-1047744c.cjs.dev.js +254 -0
  84. package/dist/oidc-callback-b32405ab.cjs.prod.js +251 -0
  85. package/dist/oidc-callback-e2ca889b.esm.js +240 -0
  86. package/dist/paperclip-23d1e69c.cjs.prod.js +32 -0
  87. package/dist/{paperclip-18785dda.esm.js → paperclip-a61112e8.esm.js} +1 -3
  88. package/dist/paperclip-d653c134.cjs.dev.js +32 -0
  89. package/dist/plugin-0ee6aee4.cjs.dev.js +32 -0
  90. package/dist/{plugin-53c047bb.esm.js → plugin-3d353a5b.esm.js} +1 -3
  91. package/dist/plugin-7e57f237.cjs.prod.js +32 -0
  92. package/dist/project-container-05a4e261.esm.js +368 -0
  93. package/dist/project-container-1cf9964e.cjs.dev.js +387 -0
  94. package/dist/project-container-65fccf05.cjs.prod.js +369 -0
  95. package/dist/{project-expired-b84abd3a.esm.js → project-expired-0d18d9ef.esm.js} +47 -68
  96. package/dist/{project-expired-0c72c956.cjs.dev.js → project-expired-b8480245.cjs.dev.js} +47 -68
  97. package/dist/{project-expired-0f9d4a23.cjs.prod.js → project-expired-e757e66c.cjs.prod.js} +47 -68
  98. package/dist/{project-not-found-14dc05c1.cjs.dev.js → project-not-found-1b4527b4.cjs.dev.js} +42 -61
  99. package/dist/{project-not-found-8002ba67.esm.js → project-not-found-4bc57bab.esm.js} +42 -61
  100. package/dist/{project-not-found-419be633.cjs.prod.js → project-not-found-6808c525.cjs.prod.js} +42 -61
  101. package/dist/{project-not-initialized-cd8e8160.cjs.dev.js → project-not-initialized-3351f8b7.cjs.prod.js} +47 -68
  102. package/dist/{project-not-initialized-3a477d13.esm.js → project-not-initialized-5eef98f9.esm.js} +47 -68
  103. package/dist/{project-not-initialized-10cbf15a.cjs.prod.js → project-not-initialized-d13a6be3.cjs.dev.js} +47 -68
  104. package/dist/{project-suspended-243ddda8.cjs.dev.js → project-suspended-4ed362c3.cjs.prod.js} +44 -63
  105. package/dist/{project-suspended-50c6dd60.esm.js → project-suspended-7843e028.esm.js} +44 -63
  106. package/dist/{project-suspended-dffcecd1.cjs.prod.js → project-suspended-c5b996b0.cjs.dev.js} +44 -63
  107. package/dist/quick-access-3acb2b6a.cjs.dev.js +1937 -0
  108. package/dist/{quick-access-fc734889.cjs.prod.js → quick-access-5c5074c7.cjs.prod.js} +573 -957
  109. package/dist/quick-access-fdb9024d.esm.js +1907 -0
  110. package/dist/redirect-to-login-5ac864e2.cjs.prod.js +149 -0
  111. package/dist/redirect-to-login-80d7ff2f.cjs.dev.js +149 -0
  112. package/dist/redirect-to-login-824d52b9.esm.js +147 -0
  113. package/dist/redirect-to-logout-6df9b79c.esm.js +138 -0
  114. package/dist/redirect-to-logout-7d5c817e.cjs.prod.js +151 -0
  115. package/dist/redirect-to-logout-a78f7193.cjs.dev.js +151 -0
  116. package/dist/redirect-to-project-create-048efa71.cjs.prod.js +61 -0
  117. package/dist/redirect-to-project-create-052f293e.esm.js +52 -0
  118. package/dist/redirect-to-project-create-f0e7b35e.cjs.dev.js +61 -0
  119. package/dist/{gear-28ff4f04.cjs.dev.js → redirector-0d98f9df.cjs.dev.js} +44 -5
  120. package/dist/redirector-47a6be71.esm.js +58 -0
  121. package/dist/{gear-6f8c30e3.cjs.prod.js → redirector-77ce2f5c.cjs.prod.js} +44 -5
  122. package/dist/requests-in-flight-loader-3bc8dd8a.cjs.dev.js +144 -0
  123. package/dist/requests-in-flight-loader-c3e4205b.cjs.prod.js +144 -0
  124. package/dist/requests-in-flight-loader-fe4c165f.esm.js +129 -0
  125. package/dist/rocket-3e3f0a98.cjs.prod.js +32 -0
  126. package/dist/{rocket-ba116b5e.esm.js → rocket-4b088727.esm.js} +1 -3
  127. package/dist/rocket-95b6858d.cjs.dev.js +32 -0
  128. package/dist/route-catch-all-01cf0095.esm.js +41 -0
  129. package/dist/route-catch-all-3b490df1.cjs.prod.js +43 -0
  130. package/dist/route-catch-all-9ac99936.cjs.dev.js +43 -0
  131. package/dist/{service-page-project-switcher-e3195b51.cjs.prod.js → service-page-project-switcher-6865e150.cjs.prod.js} +5 -7
  132. package/dist/{service-page-project-switcher-fa253254.cjs.dev.js → service-page-project-switcher-e8a7e5d7.cjs.dev.js} +6 -8
  133. package/dist/{service-page-project-switcher-6c39bf55.esm.js → service-page-project-switcher-fcc8d186.esm.js} +6 -8
  134. package/dist/{speedometer-c1b94505.esm.js → speedometer-08a11d5a.esm.js} +1 -3
  135. package/dist/speedometer-2881cef6.cjs.prod.js +32 -0
  136. package/dist/speedometer-54f872f2.cjs.dev.js +32 -0
  137. package/dist/{star-da9123e0.esm.js → star-15244db1.esm.js} +1 -3
  138. package/dist/star-52bf7a64.cjs.dev.js +32 -0
  139. package/dist/star-f8502efb.cjs.prod.js +32 -0
  140. package/dist/tag-multi-1d1553b6.cjs.dev.js +32 -0
  141. package/dist/{tag-multi-c650b738.esm.js → tag-multi-3be995ac.esm.js} +1 -3
  142. package/dist/tag-multi-f9acb1c2.cjs.prod.js +32 -0
  143. package/dist/tree-structure-4650688d.cjs.dev.js +32 -0
  144. package/dist/{tree-structure-6af6fc3a.esm.js → tree-structure-c8753526.esm.js} +1 -3
  145. package/dist/tree-structure-f24ee3f6.cjs.prod.js +32 -0
  146. package/dist/use-applications-menu-1925f36a.esm.js +172 -0
  147. package/dist/use-applications-menu-7e438b2a.cjs.prod.js +188 -0
  148. package/dist/use-applications-menu-f6f68bf7.cjs.dev.js +188 -0
  149. package/dist/use-is-served-by-proxy-2b4916e5.cjs.dev.js +42 -0
  150. package/dist/use-is-served-by-proxy-499bfa16.esm.js +39 -0
  151. package/dist/use-is-served-by-proxy-51e76976.cjs.prod.js +42 -0
  152. package/dist/{user-filled-41729d77.esm.js → user-filled-2dc4e79e.esm.js} +1 -3
  153. package/dist/user-filled-2e6cb25e.cjs.dev.js +32 -0
  154. package/dist/user-filled-815b49a0.cjs.prod.js +32 -0
  155. package/dist/user-settings-menu-96de467a.cjs.prod.js +496 -0
  156. package/dist/user-settings-menu-d831de89.esm.js +497 -0
  157. package/dist/user-settings-menu-e38c73ac.cjs.dev.js +523 -0
  158. package/dist/version-tracker-51646901.cjs.prod.js +107 -0
  159. package/dist/version-tracker-57ea3aa1.cjs.dev.js +107 -0
  160. package/dist/version-tracker-afb522da.esm.js +101 -0
  161. package/dist/world-973090a5.cjs.dev.js +32 -0
  162. package/dist/{world-d91df1ee.esm.js → world-c5ea311a.esm.js} +1 -3
  163. package/dist/world-e1f9dbf8.cjs.prod.js +32 -0
  164. package/package.json +39 -39
  165. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -3
  166. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -3
  167. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -3
  168. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +182 -215
  169. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +182 -215
  170. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +173 -206
  171. package/dist/application-entry-point-180dbaa1.cjs.prod.js +0 -1225
  172. package/dist/application-entry-point-55376ed2.esm.js +0 -1180
  173. package/dist/application-entry-point-63abd0c1.cjs.dev.js +0 -1250
  174. package/dist/connected-square-abf36852.cjs.prod.js +0 -34
  175. package/dist/connected-square-ac52014f.cjs.dev.js +0 -34
  176. package/dist/declarations/src/components/application-shell/helpers.d.ts +0 -1
  177. package/dist/heart-33cd94c6.cjs.prod.js +0 -34
  178. package/dist/heart-fb31cf30.cjs.dev.js +0 -34
  179. package/dist/index-27953285.esm.js +0 -4809
  180. package/dist/index-4508ebb0.cjs.prod.js +0 -4643
  181. package/dist/index-d693db30.cjs.dev.js +0 -4888
  182. package/dist/list-with-search-34cd926c.cjs.dev.js +0 -34
  183. package/dist/list-with-search-a0b22169.cjs.prod.js +0 -34
  184. package/dist/oidc-1c91f5ee.cjs.prod.js +0 -67
  185. package/dist/oidc-5b2e4f8f.cjs.dev.js +0 -67
  186. package/dist/oidc-77749f1b.esm.js +0 -59
  187. package/dist/paperclip-2cd45b86.cjs.dev.js +0 -34
  188. package/dist/paperclip-b1b806ab.cjs.prod.js +0 -34
  189. package/dist/plugin-7cb7827e.cjs.dev.js +0 -34
  190. package/dist/plugin-e97ae3e6.cjs.prod.js +0 -34
  191. package/dist/quick-access-1b241811.cjs.dev.js +0 -2321
  192. package/dist/quick-access-6159845a.esm.js +0 -2290
  193. package/dist/rocket-37c1aa11.cjs.dev.js +0 -34
  194. package/dist/rocket-b2dbda7f.cjs.prod.js +0 -34
  195. package/dist/speedometer-13b393fb.cjs.dev.js +0 -34
  196. package/dist/speedometer-1e69fd13.cjs.prod.js +0 -34
  197. package/dist/star-ab4be629.cjs.prod.js +0 -34
  198. package/dist/star-e165111e.cjs.dev.js +0 -34
  199. package/dist/tag-multi-5f498a7d.cjs.dev.js +0 -34
  200. package/dist/tag-multi-fb817131.cjs.prod.js +0 -34
  201. package/dist/tree-structure-779fcc36.cjs.prod.js +0 -34
  202. package/dist/tree-structure-ed6cdff8.cjs.dev.js +0 -34
  203. package/dist/user-filled-384a2eaf.cjs.prod.js +0 -34
  204. package/dist/user-filled-53d2eae0.cjs.dev.js +0 -34
  205. package/dist/world-12528632.cjs.prod.js +0 -34
  206. package/dist/world-6471d9f6.cjs.dev.js +0 -34
  207. /package/dist/declarations/src/components/{application-shell → redirect-to-login}/redirect-to-login.d.ts +0 -0
  208. /package/dist/declarations/src/components/{application-shell → redirect-to-logout}/redirect-to-logout.d.ts +0 -0
@@ -0,0 +1,39 @@
1
+ import { useApplicationContext } from '@commercetools-frontend/application-shell-connectors';
2
+
3
+ /**
4
+ * NOTE
5
+ * This module wraps `replace` and `reload` from the window's location.
6
+ * This mainly helps in tests as we often expect that a reload or
7
+ * replace on the location happened.
8
+ * In previous code we could just overwrite the properties by:
9
+ * `window.location.replace = jest.fn()`
10
+ * This will fail in never versions of JSDOM (e.g. v16) as these
11
+ * properties are not writable anymore. JSDOM follows the browser standards
12
+ * which also state that these should not be writable.
13
+ * There are different options to solve this:
14
+ * 1. Extract those functions as a module an use `jest.mock` to mock them under test
15
+ * 2. Use `Object.defineProperty` to overwrite the property
16
+ * - The community opinion is that this is not preferred and does
17
+ * not work in all cases
18
+ * 3. Delete the property via `delete window.location` to re-create it after
19
+ * - This is quite repetiive and noisy in tests and can also remote
20
+ * other properties from under location
21
+ * Given option 2. and 3. being quite noisy on tests and against working with
22
+ * the stndards of the browser we will use 1. Here we only utilise the module
23
+ * mocking system of Jest and no other trickery.
24
+ * */
25
+ const replace = url => window.location.replace(url);
26
+
27
+ const reload = () => window.location.reload();
28
+
29
+ const location = {
30
+ replace,
31
+ reload
32
+ };
33
+
34
+ const useIsServedByProxy = () => {
35
+ const servedByProxy = useApplicationContext(context => context.environment.servedByProxy);
36
+ return servedByProxy;
37
+ };
38
+
39
+ export { location as l, useIsServedByProxy as u };
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
4
+
5
+ /**
6
+ * NOTE
7
+ * This module wraps `replace` and `reload` from the window's location.
8
+ * This mainly helps in tests as we often expect that a reload or
9
+ * replace on the location happened.
10
+ * In previous code we could just overwrite the properties by:
11
+ * `window.location.replace = jest.fn()`
12
+ * This will fail in never versions of JSDOM (e.g. v16) as these
13
+ * properties are not writable anymore. JSDOM follows the browser standards
14
+ * which also state that these should not be writable.
15
+ * There are different options to solve this:
16
+ * 1. Extract those functions as a module an use `jest.mock` to mock them under test
17
+ * 2. Use `Object.defineProperty` to overwrite the property
18
+ * - The community opinion is that this is not preferred and does
19
+ * not work in all cases
20
+ * 3. Delete the property via `delete window.location` to re-create it after
21
+ * - This is quite repetiive and noisy in tests and can also remote
22
+ * other properties from under location
23
+ * Given option 2. and 3. being quite noisy on tests and against working with
24
+ * the stndards of the browser we will use 1. Here we only utilise the module
25
+ * mocking system of Jest and no other trickery.
26
+ * */
27
+ const replace = url => window.location.replace(url);
28
+
29
+ const reload = () => window.location.reload();
30
+
31
+ const location = {
32
+ replace,
33
+ reload
34
+ };
35
+
36
+ const useIsServedByProxy = () => {
37
+ const servedByProxy = applicationShellConnectors.useApplicationContext(context => context.environment.servedByProxy);
38
+ return servedByProxy;
39
+ };
40
+
41
+ exports.location = location;
42
+ exports.useIsServedByProxy = useIsServedByProxy;
@@ -14,8 +14,6 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
14
14
 
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
 
17
- var Icon = function Icon(props) {
18
- return jsx(UserFilledIcon, _objectSpread({}, props));
19
- };
17
+ const Icon = props => jsx(UserFilledIcon, _objectSpread({}, props));
20
18
 
21
19
  export { Icon as default };
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
+ var icons = require('@commercetools-uikit/icons');
13
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
16
+
17
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
18
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
19
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
20
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
21
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
22
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
23
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
24
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
29
+
30
+ const Icon = props => jsxRuntime.jsx(icons.UserFilledIcon, _objectSpread({}, props));
31
+
32
+ exports["default"] = Icon;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
+ var icons = require('@commercetools-uikit/icons');
13
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
16
+
17
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
18
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
19
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
20
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
21
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
22
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
23
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
24
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
29
+
30
+ const Icon = props => jsxRuntime.jsx(icons.UserFilledIcon, _objectSpread({}, props));
31
+
32
+ exports["default"] = Icon;
@@ -0,0 +1,496 @@
1
+ 'use strict';
2
+
3
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
13
+ var _styled = require('@emotion/styled/base');
14
+ require('prop-types');
15
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
16
+ var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
17
+ var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
18
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
19
+ var react = require('react');
20
+ var react$1 = require('@emotion/react');
21
+ var reactBroadcast = require('@flopflip/react-broadcast');
22
+ var Downshift = require('downshift');
23
+ var reactIntl = require('react-intl');
24
+ var reactRouterDom = require('react-router-dom');
25
+ var applicationComponents = require('@commercetools-frontend/application-components');
26
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
27
+ var constants = require('@commercetools-frontend/constants');
28
+ var sentry = require('@commercetools-frontend/sentry');
29
+ var AccessibleHidden = require('@commercetools-uikit/accessible-hidden');
30
+ var Avatar = require('@commercetools-uikit/avatar');
31
+ var designSystem = require('@commercetools-uikit/design-system');
32
+ var icons = require('@commercetools-uikit/icons');
33
+ var Spacings = require('@commercetools-uikit/spacings');
34
+ var Text = require('@commercetools-uikit/text');
35
+ var constants$1 = require('./constants-e6409334.cjs.prod.js');
36
+ var useApplicationsMenu = require('./use-applications-menu-7e438b2a.cjs.prod.js');
37
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
38
+ require('@babel/runtime-corejs3/core-js-stable/instance/concat');
39
+ require('@apollo/client');
40
+ require('./index-e0ab178f.cjs.prod.js');
41
+ require('./configure-apollo-d11de242.cjs.prod.js');
42
+ require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
43
+ require('@babel/runtime-corejs3/core-js-stable/object/entries');
44
+ require('@babel/runtime-corejs3/core-js-stable/reflect/has');
45
+ require('@reduxjs/toolkit');
46
+ require('lodash/mapValues');
47
+ require('omit-empty-es');
48
+ require('redux-thunk');
49
+ require('@commercetools-frontend/notifications');
50
+ require('@commercetools-frontend/sdk');
51
+ require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
52
+ require('@babel/runtime-corejs3/core-js-stable/instance/slice');
53
+ require('@babel/runtime-corejs3/core-js-stable/instance/includes');
54
+ require('@commercetools-frontend/react-notifications');
55
+ require('redux-logger');
56
+ require('@babel/runtime-corejs3/core-js-stable/url');
57
+ require('apollo-link-logger');
58
+ require('@apollo/client/link/error');
59
+ require('@commercetools-frontend/browser-history');
60
+ require('@babel/runtime-corejs3/core-js-stable/array/is-array');
61
+ require('@babel/runtime-corejs3/core-js-stable/instance/some');
62
+ require('@babel/runtime-corejs3/core-js-stable/object/values');
63
+ require('@commercetools/http-user-agent');
64
+ require('uuid');
65
+ require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
66
+ require('@babel/runtime-corejs3/helpers/createClass');
67
+ require('@babel/runtime-corejs3/helpers/classCallCheck');
68
+ require('@babel/runtime-corejs3/helpers/assertThisInitialized');
69
+ require('@babel/runtime-corejs3/helpers/inherits');
70
+ require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
71
+ require('@babel/runtime-corejs3/helpers/getPrototypeOf');
72
+ require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
73
+ require('@babel/runtime-corejs3/core-js-stable/json/stringify');
74
+ require('@apollo/client/link/retry');
75
+ require('@commercetools-frontend/i18n');
76
+ require('@commercetools-frontend/assets/images/logo.svg');
77
+ require('@commercetools-uikit/flat-button');
78
+ require('./use-is-served-by-proxy-51e76976.cjs.prod.js');
79
+ require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
80
+ require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
81
+ require('memoize-one');
82
+ require('@commercetools-uikit/select-input');
83
+ require('@apollo/client/react');
84
+ require('@commercetools-frontend/assets/images/ct-logo.svg');
85
+ require('@commercetools-uikit/loading-spinner');
86
+ require('@commercetools-frontend/l10n');
87
+ require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
88
+ require('lodash/camelCase');
89
+ require('@babel/runtime-corejs3/core-js-stable/array/from');
90
+ require('@babel/runtime-corejs3/core-js-stable/instance/every');
91
+ require('classnames');
92
+ require('@commercetools-frontend/assets/images/diagonal-line.svg');
93
+ require('@commercetools-frontend/permissions');
94
+ require('@commercetools-uikit/icons/inline-svg');
95
+ require('lodash/isNil');
96
+ require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
97
+ require('@babel/runtime-corejs3/core-js-stable/instance/flags');
98
+ require('@flopflip/combine-adapters');
99
+ require('@flopflip/http-adapter');
100
+ require('@flopflip/launchdarkly-adapter');
101
+ require('perfume.js');
102
+ require('react-redux');
103
+ require('lodash/upperFirst');
104
+ require('./oidc-540a091a.cjs.prod.js');
105
+ require('@commercetools-uikit/design-system/materials/resets.css');
106
+ require('@commercetools-frontend/actions-global');
107
+ require('@commercetools-frontend/application-config/ssr');
108
+
109
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
110
+
111
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
112
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
113
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
114
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
115
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
116
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
117
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
118
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
119
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
120
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
121
+ var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
122
+ var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
123
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
124
+ var Downshift__default = /*#__PURE__*/_interopDefault(Downshift);
125
+ var AccessibleHidden__default = /*#__PURE__*/_interopDefault(AccessibleHidden);
126
+ var Avatar__default = /*#__PURE__*/_interopDefault(Avatar);
127
+ var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
128
+ var Text__default = /*#__PURE__*/_interopDefault(Text);
129
+
130
+ var messages = reactIntl.defineMessages({
131
+ support: {
132
+ id: 'UserSettingsMenu.support',
133
+ description: 'The label for Support',
134
+ defaultMessage: 'Support'
135
+ },
136
+ logout: {
137
+ id: 'UserSettingsMenu.logout',
138
+ description: 'The label for logout option',
139
+ defaultMessage: 'Logout'
140
+ },
141
+ privacyPolicy: {
142
+ id: 'UserSettingsMenu.privacyPolicy',
143
+ description: 'The label for privacy policy option',
144
+ defaultMessage: 'Privacy Policy'
145
+ },
146
+ menuLabel: {
147
+ id: 'UserSettingsMenu.menuLabel',
148
+ description: 'The label describing the menu',
149
+ defaultMessage: 'User settings menu'
150
+ },
151
+ openMenuLabel: {
152
+ id: 'UserSettingsMenu.openMenuLabel',
153
+ description: 'The label when menu is closed and would be opened by a click',
154
+ defaultMessage: 'Open user settings menu'
155
+ },
156
+ closeMenuLabel: {
157
+ id: 'UserSettingsMenu.closeMenuLabel',
158
+ description: 'The label when menu is open and would be closed by a click',
159
+ defaultMessage: 'Close user settings menu'
160
+ }
161
+ });
162
+
163
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
164
+
165
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
166
+ const MENU_LABEL_ID = 'user-menu-setting-menu-label';
167
+
168
+ const UserAvatar = props => {
169
+ const _useState = react.useState(false),
170
+ _useState2 = _slicedToArray(_useState, 2),
171
+ isMouseOver = _useState2[0],
172
+ setIsMouseOver = _useState2[1];
173
+
174
+ const handleMouseOver = react.useCallback(() => {
175
+ setIsMouseOver(true);
176
+ }, []);
177
+ const handleMouseOut = react.useCallback(() => {
178
+ setIsMouseOver(false);
179
+ }, []);
180
+
181
+ const _useTheme = designSystem.useTheme(),
182
+ isNewTheme = _useTheme.isNewTheme,
183
+ themedValue = _useTheme.themedValue;
184
+
185
+ return jsxRuntime.jsx("div", {
186
+ onMouseOver: handleMouseOver,
187
+ onMouseOut: handleMouseOut,
188
+ children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
189
+ alignItems: "center",
190
+ children: [jsxRuntime.jsx(Avatar__default["default"], {
191
+ size: themedValue('s', 'm'),
192
+ gravatarHash: props.gravatarHash,
193
+ firstName: props.firstName,
194
+ lastName: props.lastName,
195
+ isHighlighted: isMouseOver
196
+ }), isNewTheme ? null : jsxRuntime.jsx(icons.CaretDownIcon, {
197
+ size: "small",
198
+ color: isMouseOver ? 'neutral60' : 'solid'
199
+ })]
200
+ })
201
+ });
202
+ };
203
+
204
+ UserAvatar.displayName = 'UserAvatar';
205
+
206
+ function getIsFocusedElementInMenu() {
207
+ var _document$activeEleme;
208
+
209
+ return Boolean((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.getAttribute('data-user-settings-menu'));
210
+ }
211
+
212
+ const stateReducer = (state, changes) => {
213
+ var _ref3;
214
+
215
+ switch (changes.type) {
216
+ // So in case the user wants to navigate with the tab button
217
+ // we need to make sure that the menu does not close
218
+ case Downshift__default["default"].stateChangeTypes.blurButton:
219
+ return _objectSpread(_objectSpread({}, changes), {}, {
220
+ isOpen: (_ref3 = state.isOpen && getIsFocusedElementInMenu()) !== null && _ref3 !== void 0 ? _ref3 : false
221
+ });
222
+
223
+ default:
224
+ return changes;
225
+ }
226
+ };
227
+
228
+ const OptionalFeatureToggle = props => {
229
+ if (props.featureToggle) {
230
+ return jsxRuntime.jsx(reactBroadcast.ToggleFeature, {
231
+ flag: props.featureToggle,
232
+ children: props.children
233
+ });
234
+ }
235
+
236
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
237
+ children: props.children
238
+ });
239
+ };
240
+
241
+ OptionalFeatureToggle.propTypes = {};
242
+
243
+ const renderLabel = (menu, applicationLanguage) => {
244
+ var _context;
245
+
246
+ const localizedLabel = _findInstanceProperty__default["default"](_context = menu.labelAllLocales).call(_context, loc => _startsWithInstanceProperty__default["default"](applicationLanguage).call(applicationLanguage, loc.locale));
247
+
248
+ if (localizedLabel) return localizedLabel.value;
249
+ return constants.NO_VALUE_FALLBACK;
250
+ };
251
+
252
+ const MenuItem = /*#__PURE__*/_styled__default["default"]("div", {
253
+ target: "e1al5ftg0"
254
+ } )("width:100%;cursor:pointer;color:", designSystem.designTokens.colorSolid, ";:hover{background-color:", applicationComponents.designTokens.backgroundColorForUserMenuItemWhenHovered, ";}", props => props.hasDivider === true ? /*#__PURE__*/react$1.css("border-bottom:1px solid ", designSystem.designTokens.colorNeutral, ";margin:", applicationComponents.designTokens.marginForUserMenuItem, ";" + ("" ), "" ) : '', ";" + ("" ));
255
+
256
+ const MenuItemLabel = props => {
257
+ if (props.isNewTheme) {
258
+ return jsxRuntime.jsx("div", {
259
+ css: /*#__PURE__*/react$1.css("padding:", designSystem.designTokens.spacing20, " ", designSystem.designTokens.spacing50, ";" + ("" ), "" ),
260
+ children: props.children
261
+ });
262
+ }
263
+
264
+ return jsxRuntime.jsx(Spacings__default["default"].Inset, {
265
+ scale: "s",
266
+ children: props.children
267
+ });
268
+ };
269
+
270
+ MenuItemLabel.propTypes = {};
271
+
272
+ const UserSettingsAvatarContainer = props => {
273
+ if (props.isNewTheme) {
274
+ return jsxRuntime.jsx("div", {
275
+ css: /*#__PURE__*/react$1.css("padding:", designSystem.designTokens.spacing30, " ", designSystem.designTokens.spacing50, ";" + ("" ), "" ),
276
+ children: props.children
277
+ });
278
+ }
279
+
280
+ return jsxRuntime.jsx(Spacings__default["default"].Inset, {
281
+ scale: "xs",
282
+ children: props.children
283
+ });
284
+ };
285
+
286
+ UserSettingsAvatarContainer.propTypes = {};
287
+
288
+ const getUserSettingsMenuStyles = isNewTheme => {
289
+ if (isNewTheme) {
290
+ return /*#__PURE__*/react$1.css("position:absolute;background:", designSystem.designTokens.colorSurface, ";border-radius:", designSystem.designTokens.borderRadius2, ";box-shadow:0px 2px 5px 0px rgba(0, 0, 0, 0.15);width:", designSystem.designTokens.constraint9, ";right:40px;top:calc(", constants$1.DIMENSIONS.header, " + ", designSystem.designTokens.spacing20, ");padding:0 0 ", designSystem.designTokens.spacing10, " 0;overflow:hidden;" + ("" ), "" );
291
+ }
292
+
293
+ return /*#__PURE__*/react$1.css("position:absolute;background:", designSystem.designTokens.colorSurface, ";border:1px ", designSystem.designTokens.colorPrimary40, " solid;border-radius:", designSystem.designTokens.borderRadius6, ";box-shadow:", designSystem.designTokens.shadow7, ";width:", designSystem.designTokens.constraint7, ";right:14px;top:calc(", constants$1.DIMENSIONS.header, " + ", designSystem.designTokens.spacing20, ");padding:", designSystem.designTokens.spacingXs, ";overflow:hidden;" + ("" ), "" );
294
+ };
295
+
296
+ var _ref2 = {
297
+ name: "4zleql",
298
+ styles: "display:block"
299
+ } ;
300
+
301
+ const getUserSettingsMenuItemLinkStyles = () => _ref2;
302
+
303
+ const UserSettingsMenuBody = props => {
304
+ var _context2, _context3;
305
+
306
+ const _useTheme2 = designSystem.useTheme(),
307
+ isNewTheme = _useTheme2.isNewTheme,
308
+ themedValue = _useTheme2.themedValue; // Focus on a menu item when it's opened through keyboard
309
+
310
+
311
+ const menuElementRef = react.useRef(null);
312
+ react.useEffect(() => {
313
+ var _menuElementRef$curre;
314
+
315
+ (_menuElementRef$curre = menuElementRef.current) === null || _menuElementRef$curre === void 0 ? void 0 : _menuElementRef$curre.focus();
316
+ }, []);
317
+ const environment = applicationShellConnectors.useApplicationContext(context => context.environment);
318
+ const applicationsAppBarMenu = useApplicationsMenu.useApplicationsMenu('appBar', {
319
+ queryOptions: {
320
+ onError: sentry.reportErrorToSentry
321
+ },
322
+ environment
323
+ });
324
+ const accountMenuItems = applicationsAppBarMenu !== null && applicationsAppBarMenu !== void 0 ? applicationsAppBarMenu : [];
325
+ return jsxRuntime.jsx("div", {
326
+ onKeyDown: event => {
327
+ if (event.key === 'Esc' || event.key === 'Tab' && !getIsFocusedElementInMenu()) {
328
+ props.downshiftProps.closeMenu();
329
+ }
330
+ },
331
+ css: getUserSettingsMenuStyles(isNewTheme),
332
+ children: jsxRuntime.jsxs("div", _objectSpread(_objectSpread({}, props.downshiftProps.getMenuProps()), {}, {
333
+ children: [jsxRuntime.jsx(UserSettingsAvatarContainer, {
334
+ isNewTheme: isNewTheme,
335
+ children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
336
+ scale: themedValue('xs', 'm'),
337
+ alignItems: "center",
338
+ children: [jsxRuntime.jsx(Avatar__default["default"], {
339
+ size: themedValue('s', 'm'),
340
+ firstName: props.firstName,
341
+ lastName: props.lastName,
342
+ gravatarHash: props.gravatarHash
343
+ }), isNewTheme ? jsxRuntime.jsxs("div", {
344
+ children: [jsxRuntime.jsx(Text__default["default"].Subheadline, {
345
+ as: "h4",
346
+ children: _trimInstanceProperty__default["default"](_context2 = [props.firstName, props.lastName].join(' ')).call(_context2)
347
+ }), jsxRuntime.jsx(Text__default["default"].Detail, {
348
+ truncate: true,
349
+ tone: "secondary",
350
+ children: props.email
351
+ })]
352
+ }) : jsxRuntime.jsxs("div", {
353
+ children: [jsxRuntime.jsx(Text__default["default"].Body, {
354
+ isBold: true,
355
+ children: _trimInstanceProperty__default["default"](_context3 = [props.firstName, props.lastName].join(' ')).call(_context3)
356
+ }), jsxRuntime.jsx(Text__default["default"].Body, {
357
+ truncate: true,
358
+ children: props.email
359
+ })]
360
+ })]
361
+ })
362
+ }), isNewTheme && accountMenuItems.length > 0 ? jsxRuntime.jsx(MenuItem, {
363
+ hasDivider: true,
364
+ isNewTheme: isNewTheme
365
+ }) : null, _mapInstanceProperty__default["default"](accountMenuItems).call(accountMenuItems, menu => {
366
+ var _menu$featureToggle;
367
+
368
+ return jsxRuntime.jsx(OptionalFeatureToggle, {
369
+ featureToggle: (_menu$featureToggle = menu.featureToggle) !== null && _menu$featureToggle !== void 0 ? _menu$featureToggle : undefined,
370
+ children: jsxRuntime.jsx(reactRouterDom.Link, {
371
+ css: getUserSettingsMenuItemLinkStyles(),
372
+ to: "/account/".concat(menu.uriPath),
373
+ onClick: () => props.downshiftProps.toggleMenu(),
374
+ "data-user-settings-menu": true,
375
+ ref: menuElementRef,
376
+ children: jsxRuntime.jsx(MenuItem, {
377
+ isNewTheme: isNewTheme,
378
+ children: jsxRuntime.jsx(MenuItemLabel, {
379
+ isNewTheme: isNewTheme,
380
+ children: jsxRuntime.jsx(Text__default["default"].Body, {
381
+ children: renderLabel(menu, props.language)
382
+ })
383
+ })
384
+ })
385
+ })
386
+ }, menu.key);
387
+ }), jsxRuntime.jsx(MenuItem, {
388
+ hasDivider: true,
389
+ isNewTheme: isNewTheme
390
+ }), jsxRuntime.jsx("a", {
391
+ css: getUserSettingsMenuItemLinkStyles(),
392
+ href: "https://commercetools.com/privacy#suppliers",
393
+ target: "_blank",
394
+ rel: "noopener noreferrer",
395
+ onClick: () => props.downshiftProps.toggleMenu(),
396
+ "data-user-settings-menu": true,
397
+ ref: !applicationsAppBarMenu ? menuElementRef : undefined,
398
+ children: jsxRuntime.jsx(MenuItem, {
399
+ isNewTheme: isNewTheme,
400
+ children: jsxRuntime.jsx(MenuItemLabel, {
401
+ isNewTheme: isNewTheme,
402
+ children: jsxRuntime.jsx(Text__default["default"].Body, {
403
+ intlMessage: messages.privacyPolicy
404
+ })
405
+ })
406
+ })
407
+ }), jsxRuntime.jsx("a", {
408
+ css: getUserSettingsMenuItemLinkStyles(),
409
+ href: constants.SUPPORT_PORTAL_URL,
410
+ rel: "noopener noreferrer",
411
+ target: "_blank",
412
+ "data-track-component": "Navigation-Support-links",
413
+ "data-track-event": "click",
414
+ "data-track-label": "support_textlink",
415
+ onClick: () => props.downshiftProps.toggleMenu(),
416
+ "data-user-settings-menu": true,
417
+ children: jsxRuntime.jsx(MenuItem, {
418
+ isNewTheme: isNewTheme,
419
+ children: jsxRuntime.jsx(MenuItemLabel, {
420
+ isNewTheme: isNewTheme,
421
+ children: jsxRuntime.jsx(Text__default["default"].Body, {
422
+ intlMessage: messages.support
423
+ })
424
+ })
425
+ })
426
+ }), jsxRuntime.jsx(MenuItem, {
427
+ hasDivider: true,
428
+ isNewTheme: isNewTheme
429
+ }), jsxRuntime.jsxs("a", {
430
+ css: getUserSettingsMenuItemLinkStyles() // NOTE: we want to redirect to a new page so that the
431
+ // server can remove things like cookie for access token.
432
+ ,
433
+ href: "/logout?reason=".concat(constants.LOGOUT_REASONS.USER),
434
+ "data-test": "logout-button",
435
+ "data-user-settings-menu": true,
436
+ children: [jsxRuntime.jsx(MenuItem, {
437
+ isNewTheme: isNewTheme,
438
+ children: jsxRuntime.jsx(MenuItemLabel, {
439
+ isNewTheme: isNewTheme,
440
+ children: jsxRuntime.jsx(Text__default["default"].Body, {
441
+ intlMessage: messages.logout
442
+ })
443
+ })
444
+ }), jsxRuntime.jsx("div", {
445
+ tabIndex: 0,
446
+ onFocus: () => props.downshiftProps.closeMenu()
447
+ })]
448
+ })]
449
+ }))
450
+ });
451
+ };
452
+
453
+ UserSettingsMenuBody.propTypes = {};
454
+ UserSettingsMenuBody.displayName = 'UserSettingsMenuBody';
455
+
456
+ var _ref = {
457
+ name: "18rc9yp",
458
+ styles: "cursor:pointer;border:none;padding:0;display:flex;background:transparent"
459
+ } ;
460
+
461
+ const UserSettingsMenu = props => {
462
+ const intl = reactIntl.useIntl();
463
+ return jsxRuntime.jsxs("div", {
464
+ "data-test": "user-settings-menu",
465
+ children: [jsxRuntime.jsx(AccessibleHidden__default["default"], {
466
+ children: jsxRuntime.jsx("span", {
467
+ id: MENU_LABEL_ID,
468
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread({}, messages.menuLabel))
469
+ })
470
+ }), jsxRuntime.jsx(Downshift__default["default"], {
471
+ stateReducer: stateReducer,
472
+ labelId: MENU_LABEL_ID,
473
+ children: downshiftProps => jsxRuntime.jsxs("div", {
474
+ children: [jsxRuntime.jsx("button", _objectSpread(_objectSpread({
475
+ css: _ref
476
+ }, downshiftProps.getToggleButtonProps({
477
+ 'aria-label': intl.formatMessage(downshiftProps.isOpen ? messages.closeMenuLabel : messages.openMenuLabel)
478
+ })), {}, {
479
+ children: jsxRuntime.jsx(UserAvatar, {
480
+ firstName: props.firstName,
481
+ lastName: props.lastName,
482
+ gravatarHash: props.gravatarHash
483
+ })
484
+ })), downshiftProps.isOpen && jsxRuntime.jsx(UserSettingsMenuBody, _objectSpread(_objectSpread({}, props), {}, {
485
+ downshiftProps: downshiftProps
486
+ }))]
487
+ })
488
+ })]
489
+ });
490
+ };
491
+
492
+ UserSettingsMenu.displayName = 'UserSettingsMenu';
493
+
494
+ exports.UserAvatar = UserAvatar;
495
+ exports.UserSettingsMenuBody = UserSettingsMenuBody;
496
+ exports["default"] = UserSettingsMenu;