@commercetools-frontend/application-shell 21.23.10 → 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-d8eaa253.esm.js → project-expired-0d18d9ef.esm.js} +47 -68
  96. package/dist/{project-expired-adce523b.cjs.dev.js → project-expired-b8480245.cjs.dev.js} +47 -68
  97. package/dist/{project-expired-576a8329.cjs.prod.js → project-expired-e757e66c.cjs.prod.js} +47 -68
  98. package/dist/{project-not-found-9a9753f2.cjs.dev.js → project-not-found-1b4527b4.cjs.dev.js} +42 -61
  99. package/dist/{project-not-found-8208c8f1.esm.js → project-not-found-4bc57bab.esm.js} +42 -61
  100. package/dist/{project-not-found-daa5200b.cjs.prod.js → project-not-found-6808c525.cjs.prod.js} +42 -61
  101. package/dist/{project-not-initialized-4aeafe19.cjs.dev.js → project-not-initialized-3351f8b7.cjs.prod.js} +47 -68
  102. package/dist/{project-not-initialized-3408e87f.esm.js → project-not-initialized-5eef98f9.esm.js} +47 -68
  103. package/dist/{project-not-initialized-5b416bcf.cjs.prod.js → project-not-initialized-d13a6be3.cjs.dev.js} +47 -68
  104. package/dist/{project-suspended-d3a6001d.cjs.dev.js → project-suspended-4ed362c3.cjs.prod.js} +44 -63
  105. package/dist/{project-suspended-a7edc962.esm.js → project-suspended-7843e028.esm.js} +44 -63
  106. package/dist/{project-suspended-dc9ace34.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-f42a8e0a.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-49afafeb.cjs.prod.js → service-page-project-switcher-6865e150.cjs.prod.js} +5 -7
  132. package/dist/{service-page-project-switcher-866b2139.cjs.dev.js → service-page-project-switcher-e8a7e5d7.cjs.dev.js} +6 -8
  133. package/dist/{service-page-project-switcher-365c4c10.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 +27 -27
  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-307baa50.cjs.prod.js +0 -1225
  172. package/dist/application-entry-point-3e14d46d.cjs.dev.js +0 -1250
  173. package/dist/application-entry-point-8d923438.esm.js +0 -1180
  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-284fb405.esm.js +0 -4809
  180. package/dist/index-37414a3f.cjs.prod.js +0 -4643
  181. package/dist/index-ea32a85e.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-457a9f41.esm.js +0 -2290
  192. package/dist/quick-access-d553524e.cjs.dev.js +0 -2321
  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,649 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ require('prop-types');
5
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
7
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
8
+ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
9
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
10
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
11
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
12
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
13
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
14
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
15
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
16
+ var react = require('react');
17
+ var classnames = require('classnames');
18
+ var reactIntl = require('react-intl');
19
+ var reactRouterDom = require('react-router-dom');
20
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
21
+ var constants = require('@commercetools-frontend/constants');
22
+ var icons = require('@commercetools-uikit/icons');
23
+ var dist_commercetoolsFrontendApplicationShell = require('./index-e0ab178f.cjs.prod.js');
24
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
25
+ var isNil = require('lodash/isNil');
26
+ var throttle = require('lodash/throttle');
27
+ var sentry = require('@commercetools-frontend/sentry');
28
+ var constants$1 = require('./constants-e6409334.cjs.prod.js');
29
+ var useApplicationsMenu = require('./use-applications-menu-7e438b2a.cjs.prod.js');
30
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
31
+ require('./configure-apollo-d11de242.cjs.prod.js');
32
+ require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
33
+ require('@babel/runtime-corejs3/core-js-stable/object/entries');
34
+ require('@babel/runtime-corejs3/core-js-stable/reflect/has');
35
+ require('@reduxjs/toolkit');
36
+ require('lodash/mapValues');
37
+ require('omit-empty-es');
38
+ require('redux-thunk');
39
+ require('@commercetools-frontend/notifications');
40
+ require('@commercetools-frontend/sdk');
41
+ require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
42
+ require('@babel/runtime-corejs3/core-js-stable/instance/slice');
43
+ require('@babel/runtime-corejs3/core-js-stable/instance/includes');
44
+ require('@commercetools-frontend/react-notifications');
45
+ require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
46
+ require('redux-logger');
47
+ require('@babel/runtime-corejs3/core-js-stable/url');
48
+ require('@babel/runtime-corejs3/core-js-stable/instance/find');
49
+ require('@apollo/client');
50
+ require('apollo-link-logger');
51
+ require('@apollo/client/link/error');
52
+ require('@commercetools-frontend/browser-history');
53
+ require('@babel/runtime-corejs3/core-js-stable/instance/some');
54
+ require('@babel/runtime-corejs3/core-js-stable/object/values');
55
+ require('@commercetools/http-user-agent');
56
+ require('uuid');
57
+ require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
58
+ require('@babel/runtime-corejs3/helpers/createClass');
59
+ require('@babel/runtime-corejs3/helpers/classCallCheck');
60
+ require('@babel/runtime-corejs3/helpers/assertThisInitialized');
61
+ require('@babel/runtime-corejs3/helpers/inherits');
62
+ require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
63
+ require('@babel/runtime-corejs3/helpers/getPrototypeOf');
64
+ require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
65
+ require('@babel/runtime-corejs3/core-js-stable/json/stringify');
66
+ require('@apollo/client/link/retry');
67
+ require('@emotion/styled/base');
68
+ require('@emotion/react');
69
+ require('@commercetools-frontend/application-components');
70
+ require('@commercetools-frontend/i18n');
71
+ require('@commercetools-frontend/assets/images/logo.svg');
72
+ require('@commercetools-uikit/design-system');
73
+ require('@commercetools-uikit/spacings');
74
+ require('@commercetools-uikit/flat-button');
75
+ require('./use-is-served-by-proxy-51e76976.cjs.prod.js');
76
+ require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
77
+ require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
78
+ require('memoize-one');
79
+ require('@commercetools-uikit/accessible-hidden');
80
+ require('@commercetools-uikit/select-input');
81
+ require('@apollo/client/react');
82
+ require('@commercetools-frontend/assets/images/ct-logo.svg');
83
+ require('@commercetools-uikit/loading-spinner');
84
+ require('@commercetools-frontend/l10n');
85
+ require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
86
+ require('lodash/camelCase');
87
+ require('@babel/runtime-corejs3/core-js-stable/array/from');
88
+ require('@babel/runtime-corejs3/core-js-stable/instance/every');
89
+ require('@flopflip/react-broadcast');
90
+ require('@commercetools-frontend/assets/images/diagonal-line.svg');
91
+ require('@commercetools-frontend/permissions');
92
+ require('@commercetools-uikit/icons/inline-svg');
93
+ require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
94
+ require('@babel/runtime-corejs3/core-js-stable/instance/flags');
95
+ require('@flopflip/combine-adapters');
96
+ require('@flopflip/http-adapter');
97
+ require('@flopflip/launchdarkly-adapter');
98
+ require('perfume.js');
99
+ require('react-redux');
100
+ require('lodash/upperFirst');
101
+ require('./oidc-540a091a.cjs.prod.js');
102
+ require('@commercetools-uikit/design-system/materials/resets.css');
103
+ require('@commercetools-frontend/actions-global');
104
+ require('@commercetools-frontend/application-config/ssr');
105
+
106
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
107
+
108
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
109
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
110
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
111
+ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
112
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
113
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
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 classnames__default = /*#__PURE__*/_interopDefault(classnames);
120
+ var isNil__default = /*#__PURE__*/_interopDefault(isNil);
121
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
122
+
123
+ var messages = reactIntl.defineMessages({
124
+ 'NavBar.MCSupport.title': {
125
+ id: 'NavBar.MCSupport.title',
126
+ defaultMessage: 'Support'
127
+ }
128
+ });
129
+
130
+ // Type guard to help with filtering arrays for nullish elements.
131
+ function nonNullable(value) {
132
+ return value !== null && value !== undefined;
133
+ }
134
+
135
+ function ownKeys$1(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; }
136
+
137
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context7 = ownKeys$1(Object(source), !0)).call(_context7, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context8 = ownKeys$1(Object(source))).call(_context8, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
138
+ var FetchProjectExtensionsNavbar = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProjectExtensionsNavbar" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "projectExtension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "applications" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "where" }, value: { kind: "ObjectValue", fields: [{ kind: "ObjectField", name: { kind: "Name", value: "isActive" }, value: { kind: "BooleanValue", value: true } }] } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "navbarMenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "submenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "installedApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "application" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "entryPointUriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "mainMenuLink" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "submenuLinks" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }] } }], loc: { start: 0, end: 984, source: { body: "query FetchProjectExtensionsNavbar {\n projectExtension {\n id\n applications(where: { isActive: true }) {\n id\n navbarMenu {\n id\n key\n uriPath\n icon\n labelAllLocales {\n locale\n value\n }\n featureToggle\n permissions\n submenu {\n id\n key\n uriPath\n labelAllLocales {\n locale\n value\n }\n permissions\n featureToggle\n }\n }\n }\n installedApplications {\n application {\n id\n entryPointUriPath\n icon\n mainMenuLink {\n id\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n submenuLinks {\n id\n uriPath\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
139
+
140
+ const getInitialState = isForcedMenuOpen => ({
141
+ isExpanderVisible: true,
142
+ isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen
143
+ });
144
+
145
+ const reducer = (state, action) => {
146
+ switch (action.type) {
147
+ case 'setActiveItemIndex':
148
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
149
+ activeItemIndex: action.payload
150
+ });
151
+
152
+ case 'unsetActiveItemIndex':
153
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
154
+ activeItemIndex: undefined
155
+ });
156
+
157
+ case 'setIsExpanderVisible':
158
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
159
+ isExpanderVisible: true
160
+ });
161
+
162
+ case 'toggleIsMenuOpen':
163
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
164
+ isMenuOpen: !state.isMenuOpen
165
+ });
166
+
167
+ case 'setIsMenuOpenAndMakeExpanderVisible':
168
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
169
+ isExpanderVisible: true,
170
+ isMenuOpen: action.payload
171
+ });
172
+
173
+ case 'reset':
174
+ return {
175
+ isExpanderVisible: false,
176
+ isMenuOpen: false
177
+ };
178
+
179
+ default:
180
+ return state;
181
+ }
182
+ };
183
+
184
+ const useNavbarStateManager = props => {
185
+ var _context, _context2, _context4, _context5;
186
+
187
+ const navBarNode = react.useRef(null);
188
+ const applicationsNavBarMenu = useApplicationsMenu.useApplicationsMenu('navBar', {
189
+ queryOptions: {
190
+ onError: sentry.reportErrorToSentry
191
+ },
192
+ environment: props.environment
193
+ });
194
+
195
+ const _useMcQuery = dist_commercetoolsFrontendApplicationShell.useMcQuery(FetchProjectExtensionsNavbar, {
196
+ skip: !props.environment.servedByProxy,
197
+ context: {
198
+ target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
199
+ },
200
+ fetchPolicy: 'cache-and-network',
201
+ onError: sentry.reportErrorToSentry
202
+ }),
203
+ projectExtensionsQuery = _useMcQuery.data;
204
+
205
+ const legacyCustomAppsMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.applications ? _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = projectExtensionsQuery.projectExtension.applications).call(_context2, app => {
206
+ var _context3;
207
+
208
+ // Map the menu properties to match the one from the proxy schema.
209
+ // This is to ensure that the menu object is the same from the proxy
210
+ // config and the custom apps config, thus allowing them to be
211
+ // concatenated and rendered the same way.
212
+ if (!app.navbarMenu) return;
213
+ return {
214
+ key: app.navbarMenu.key,
215
+ uriPath: app.navbarMenu.uriPath,
216
+ labelAllLocales: app.navbarMenu.labelAllLocales || [],
217
+ icon: app.navbarMenu.icon,
218
+ featureToggle: app.navbarMenu.featureToggle,
219
+ permissions: app.navbarMenu.permissions,
220
+ submenu: _mapInstanceProperty__default["default"](_context3 = app.navbarMenu.submenu || []).call(_context3, menu => ({
221
+ key: menu.key,
222
+ uriPath: menu.uriPath,
223
+ labelAllLocales: menu.labelAllLocales || [],
224
+ featureToggle: menu.featureToggle,
225
+ permissions: menu.permissions,
226
+ menuVisibility: undefined,
227
+ actionRights: undefined,
228
+ dataFences: undefined
229
+ })),
230
+ menuVisibility: undefined,
231
+ actionRights: undefined,
232
+ dataFences: undefined
233
+ };
234
+ })).call(_context, nonNullable) : [];
235
+ const organizationCustomAppsMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.installedApplications ? _filterInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = projectExtensionsQuery.projectExtension.installedApplications).call(_context5, installedApplication => {
236
+ var _context6;
237
+
238
+ const application = installedApplication.application; // Map the menu properties to match the one from the proxy schema.
239
+ // This is to ensure that the menu object is the same from the proxy
240
+ // config and the custom apps config, thus allowing them to be
241
+ // concatenated and rendered the same way.
242
+
243
+ return {
244
+ key: application.id,
245
+ uriPath: application.entryPointUriPath,
246
+ labelAllLocales: application.mainMenuLink.labelAllLocales || [],
247
+ icon: application.icon,
248
+ permissions: application.mainMenuLink.permissions,
249
+ defaultLabel: application.mainMenuLink.defaultLabel,
250
+ featureToggle: undefined,
251
+ menuVisibility: undefined,
252
+ actionRights: undefined,
253
+ dataFences: undefined,
254
+ submenu: _mapInstanceProperty__default["default"](_context6 = application.submenuLinks || []).call(_context6, submenuLink => ({
255
+ key: submenuLink.id,
256
+ uriPath: submenuLink.uriPath,
257
+ labelAllLocales: submenuLink.labelAllLocales || [],
258
+ permissions: submenuLink.permissions,
259
+ defaultLabel: submenuLink.defaultLabel,
260
+ featureToggle: undefined,
261
+ menuVisibility: undefined,
262
+ actionRights: undefined,
263
+ dataFences: undefined
264
+ }))
265
+ };
266
+ })).call(_context4, nonNullable) : [];
267
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
268
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
269
+
270
+ const _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
271
+ _useReducer2 = _slicedToArray(_useReducer, 2),
272
+ state = _useReducer2[0],
273
+ dispatch = _useReducer2[1];
274
+
275
+ const checkSize = react.useCallback(throttle__default["default"](() => {
276
+ const shouldOpen = window.innerWidth > 1024;
277
+ const canExpandMenu = window.innerWidth > 918; // If the screen is small, we should always keep the menu closed,
278
+ // no matter the settings.
279
+
280
+ if (!canExpandMenu) {
281
+ if (state.isMenuOpen || state.isExpanderVisible) {
282
+ // and resets the state to avoid conflicts
283
+ dispatch({
284
+ type: 'reset'
285
+ });
286
+ }
287
+ } else if (canExpandMenu && state.isExpanderVisible !== true) {
288
+ dispatch({
289
+ type: 'setIsExpanderVisible'
290
+ });
291
+ } else if (isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== shouldOpen) {
292
+ // User has no settings yet (this.props.isForcedMenuOpen === null)
293
+ // We check the viewport size and:
294
+ // - if screen is big, we open the menu
295
+ // - if screen is small we close it
296
+ dispatch({
297
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
298
+ payload: shouldOpen
299
+ });
300
+ } else if (!isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== isForcedMenuOpen) {
301
+ // User has setting, we should use that and ignore the screen size.
302
+ // Note: if viewport size is small, we should ignore the user settings.
303
+ dispatch({
304
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
305
+ payload: isForcedMenuOpen
306
+ });
307
+ }
308
+ }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
309
+ const shouldCloseMenuFly = react.useCallback(event => {
310
+ if (navBarNode && navBarNode.current && !navBarNode.current.contains(event.target) && !state.isMenuOpen) dispatch({
311
+ type: 'unsetActiveItemIndex'
312
+ });else if (event.type === 'mouseleave') dispatch({
313
+ type: 'unsetActiveItemIndex'
314
+ });
315
+ }, [state.isMenuOpen]);
316
+ react.useEffect(() => {
317
+ window.addEventListener('resize', checkSize);
318
+ window.addEventListener('click', shouldCloseMenuFly, true);
319
+ return () => {
320
+ window.removeEventListener('resize', checkSize);
321
+ window.removeEventListener('click', shouldCloseMenuFly, true);
322
+ };
323
+ }, [checkSize, shouldCloseMenuFly]);
324
+ react.useEffect(() => {
325
+ checkSize(); // eslint-disable-next-line react-hooks/exhaustive-deps
326
+ }, []); // <-- run this only once!!
327
+
328
+ react.useLayoutEffect(() => {
329
+ if (state.isMenuOpen) document.body.classList.add('body__menu-open');
330
+ if (!state.isMenuOpen) document.body.classList.remove('body__menu-open');
331
+ }, [state.isMenuOpen]);
332
+ const handleToggleItem = react.useCallback(nextActiveItemIndex => {
333
+ if (state.activeItemIndex !== nextActiveItemIndex) dispatch({
334
+ type: 'setActiveItemIndex',
335
+ payload: nextActiveItemIndex
336
+ });
337
+ }, [state.activeItemIndex]);
338
+ const handleToggleMenu = react.useCallback(() => {
339
+ if (state.isMenuOpen && state.activeItemIndex) {
340
+ dispatch({
341
+ type: 'unsetActiveItemIndex'
342
+ });
343
+ }
344
+
345
+ dispatch({
346
+ type: 'toggleIsMenuOpen'
347
+ }); // Synchronize the menu state with local storage.
348
+
349
+ window.localStorage.setItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
350
+ }, [state.activeItemIndex, state.isMenuOpen]);
351
+ const allInternalApplicationsNavbarMenu = applicationsNavBarMenu || [];
352
+
353
+ const allCustomApplicationsNavbarMenu = _concatInstanceProperty__default["default"](legacyCustomAppsMenu).call(legacyCustomAppsMenu, organizationCustomAppsMenu);
354
+
355
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
356
+ navBarNode,
357
+ handleToggleItem,
358
+ handleToggleMenu,
359
+ shouldCloseMenuFly,
360
+ allInternalApplicationsNavbarMenu,
361
+ allCustomApplicationsNavbarMenu
362
+ });
363
+ };
364
+
365
+ 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; }
366
+
367
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context8, _context9; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context8 = ownKeys(Object(source), !0)).call(_context8, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source))).call(_context9, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
368
+
369
+ const compiledStyles = {
370
+ "global": ":root {\n\n /* Left navigation */\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: flex;\n flex-grow: 1;\n width: 64px;\n z-index: 19999;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.navbar-mod__list-item___MjK6t {\n width: 64px;\n min-height: 56px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n padding: var(--spacing-m);\n width: 100%;\n position: relative;\n display: block;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon__active___asorg > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n display: none;\n opacity: 0;\n transition: all 0.25s ease-in-out;\n text-align: left;\n text-decoration: none;\n}\n\n.navbar-mod__expander___jyAUi {\n border-top: 1px solid var(--color-neutral-40);\n height: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n}\n\n.navbar-mod__expander___jyAUi:hover {\n background: transparent !important;\n}\n\n.navbar-mod__expand-icon___BtmRa {\n align-items: center;\n border-radius: 32px;\n cursor: pointer;\n display: flex;\n height: 24px;\n justify-content: center;\n transform: translateX(0) rotateZ(0deg);\n width: 24px;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-hovered);\n}\n\n.navbar-mod__item__active___lo1sr .navbar-mod__title___eRWUj {\n opacity: 1;\n display: block;\n transition: all 0.2s ease;\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n/* NO SUBMENU */\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__title___eRWUj {\n border-bottom: 0;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__sublist___os1s7 {\n padding-top: 40px;\n}\n\n/* left-nav open */\n\n.body__menu-open .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n box-shadow: var(--shadow-for-navbar);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 56px;\n transition: max-height 0.15s ease-out;\n overflow: hidden;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt,\n.body__menu-open .navbar-mod__list-item___MjK6t {\n width: 245px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n display: block;\n opacity: 1;\n margin-left: var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expand-icon___BtmRa {\n transform: translateX(0) rotateZ(180deg);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7 {\n position: relative;\n z-index: 1;\n left: 0;\n margin: 0 0 0 calc(\n 24px + var(--spacing-m) + 4px + 4px\n );\n padding: var(--spacing-m) 0 0;\n background-color: transparent;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7.navbar-mod__sublist-no-children___Dy-h- {\n border: 0;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expander___jyAUi {\n min-height: 50px;\n justify-content: flex-end;\n padding: var(--spacing-m);\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: 55px var(--spacing-l) var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n position: absolute;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\n top: 0;\n left: 64px;\n z-index: -1;\n list-style: none;\n opacity: 0.01;\n visibility: hidden;\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n padding: var(--spacing-s) 0 0;\n}\n\n.navbar-mod__sublist-item___gafkS:first-of-type {\n padding: 0;\n}\n\n.navbar-mod__sublist-item___gafkS:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__text___ccHEu {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.navbar-mod__text-link___dhtj6 {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.navbar-mod__text-link___dhtj6:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr,\n.navbar-mod__item_menu__active___5xFRw {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n width: calc(\n 205px + 64px -\n var(--spacing-m) * 2\n );\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: calc(24px + 4px * 2);\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n /* empty block */\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: 40px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: var(--spacing-m);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: 205px;\n min-height: 100%;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: calc(100% - calc(\n 24px + var(--spacing-m) + 4px + 4px\n ));\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh {\n opacity: 1;\n visibility: visible;\n text-align: left;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__highlighted___oJWkA,\n.navbar-mod__highlighted___oJWkA .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-active) !important;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-active);\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n padding-bottom: 32px;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
371
+ "jsonMap": {
372
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
373
+ "list": "navbar-mod__list___RCV3J",
374
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
375
+ "list-item": "navbar-mod__list-item___MjK6t",
376
+ "item-link": "navbar-mod__item-link___X2Ina",
377
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
378
+ "icon": "navbar-mod__icon___bLsep",
379
+ "icon__active": "navbar-mod__icon__active___asorg",
380
+ "title": "navbar-mod__title___eRWUj",
381
+ "expander": "navbar-mod__expander___jyAUi",
382
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
383
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
384
+ "item__active": "navbar-mod__item__active___lo1sr",
385
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
386
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
387
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
388
+ "sublist": "navbar-mod__sublist___os1s7",
389
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
390
+ "title-copy": "navbar-mod__title-copy___o2y1q",
391
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
392
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
393
+ "text": "navbar-mod__text___ccHEu",
394
+ "text-link": "navbar-mod__text-link___dhtj6",
395
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
396
+ "icon-container": "navbar-mod__icon-container___w3FtA",
397
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
398
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
399
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
400
+ "highlighted": "navbar-mod__highlighted___oJWkA",
401
+ "hidden": "navbar-mod__hidden___TQLSs",
402
+ "divider": "navbar-mod__divider___TpVzu",
403
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
404
+ }
405
+ };
406
+ const styles = compiledStyles.jsonMap;
407
+
408
+ const getMenuVisibilitiesOfSubmenus = menu => {
409
+ var _context, _context2;
410
+
411
+ return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
412
+ };
413
+
414
+ const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
415
+
416
+ const ApplicationMenu = props => {
417
+ var _context3, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context4, _context5;
418
+
419
+ const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
420
+ path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, props.menu.uriPath),
421
+ exact: false,
422
+ strict: false
423
+ }));
424
+ const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
425
+ react.useEffect(() => {
426
+ // On first render, check which menu is active for the current application and expand
427
+ // the submenu automatically unless the all navbar is collapsed or there are no submenu links.
428
+ if (props.isMenuOpen && isMainMenuRouteActive && hasSubmenu) {
429
+ props.handleToggleItem();
430
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
431
+
432
+ }, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
433
+
434
+ const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
435
+ const isMainMenuItemALink = // 1. When the navbar is collapsed
436
+ !props.isMenuOpen || // 2. When there is no submenu
437
+ !hasSubmenu || // 3. When the submenu group is active/visible
438
+ props.isActive;
439
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.RestrictedMenuItem, {
440
+ keyOfMenuItem: props.menu.key,
441
+ featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
442
+ permissions: props.menu.permissions,
443
+ actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
444
+ dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
445
+ projectPermissions: props.projectPermissions,
446
+ menuVisibilities: props.menuVisibilities,
447
+ namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
448
+ children: jsxRuntime.jsxs(dist_commercetoolsFrontendApplicationShell.MenuItem, {
449
+ hasSubmenu: hasSubmenu,
450
+ isActive: props.isActive,
451
+ isMainMenuRouteActive: isMainMenuRouteActive,
452
+ isMenuOpen: props.isMenuOpen,
453
+ onClick: props.handleToggleItem,
454
+ onMouseEnter: props.isMenuOpen ? undefined : props.handleToggleItem,
455
+ onMouseLeave: props.isMenuOpen ? undefined : props.shouldCloseMenuFly,
456
+ children: [jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemLink, {
457
+ linkTo: isMainMenuItemALink ? _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath) : undefined,
458
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
459
+ onClick: props.onMenuItemClick,
460
+ children: jsxRuntime.jsxs("div", {
461
+ className: styles['item-icon-text'],
462
+ children: [jsxRuntime.jsx("div", {
463
+ className: styles['icon-container'],
464
+ children: jsxRuntime.jsx("div", {
465
+ className: classnames__default["default"](styles.icon, {
466
+ [styles.icon__active]: props.isActive || isMainMenuRouteActive
467
+ }),
468
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.IconSwitcher, {
469
+ icon: props.menu.icon,
470
+ size: "scale"
471
+ })
472
+ })
473
+ }), jsxRuntime.jsx("div", {
474
+ className: styles.title,
475
+ "aria-owns": "group-".concat(props.menu.key),
476
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuLabel, {
477
+ labelAllLocales: props.menu.labelAllLocales,
478
+ defaultLabel: props.menu.defaultLabel,
479
+ applicationLocale: props.applicationLocale
480
+ })
481
+ })]
482
+ })
483
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuGroup, {
484
+ id: props.menu.key,
485
+ level: 2,
486
+ isActive: props.isActive,
487
+ isExpanded: props.isMenuOpen,
488
+ hasSubmenu: hasSubmenu,
489
+ children: hasSubmenu ? _mapInstanceProperty__default["default"](_context5 = props.menu.submenu).call(_context5, submenu => {
490
+ var _context6, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context7;
491
+
492
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.RestrictedMenuItem, {
493
+ keyOfMenuItem: submenu.key,
494
+ featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
495
+ permissions: submenu.permissions,
496
+ actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
497
+ dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
498
+ projectPermissions: props.projectPermissions,
499
+ menuVisibilities: props.menuVisibilities,
500
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
501
+ children: jsxRuntime.jsx("li", {
502
+ className: styles['sublist-item'],
503
+ children: jsxRuntime.jsx("div", {
504
+ className: styles.text,
505
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemLink, {
506
+ linkTo: _concatInstanceProperty__default["default"](_context7 = "/".concat(props.projectKey, "/")).call(_context7, submenu.uriPath) // Allow matching subroutes
507
+ ,
508
+ exactMatch: false,
509
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
510
+ onClick: props.onMenuItemClick,
511
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuLabel, {
512
+ labelAllLocales: submenu.labelAllLocales,
513
+ defaultLabel: submenu.defaultLabel,
514
+ applicationLocale: props.applicationLocale
515
+ })
516
+ })
517
+ })
518
+ })
519
+ }, _concatInstanceProperty__default["default"](_context6 = "".concat(props.menu.key, "-submenu-")).call(_context6, submenu.key));
520
+ }) : null
521
+ })]
522
+ })
523
+ }, props.menu.key);
524
+ };
525
+
526
+ ApplicationMenu.propTypes = {};
527
+ ApplicationMenu.displayName = 'ApplicationMenu';
528
+
529
+ const NavBar = props => {
530
+ const _useNavbarStateManage = useNavbarStateManager({
531
+ environment: props.environment
532
+ }),
533
+ navBarNode = _useNavbarStateManage.navBarNode,
534
+ isMenuOpen = _useNavbarStateManage.isMenuOpen,
535
+ isExpanderVisible = _useNavbarStateManage.isExpanderVisible,
536
+ activeItemIndex = _useNavbarStateManage.activeItemIndex,
537
+ handleToggleItem = _useNavbarStateManage.handleToggleItem,
538
+ handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
539
+ shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
540
+ allInternalApplicationsNavbarMenu = _useNavbarStateManage.allInternalApplicationsNavbarMenu,
541
+ allCustomApplicationsNavbarMenu = _useNavbarStateManage.allCustomApplicationsNavbarMenu;
542
+
543
+ const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
544
+ const location = reactRouterDom.useLocation();
545
+ const gtmTracking = react.useContext(dist_commercetoolsFrontendApplicationShell.GtmContext);
546
+ const projectPermissions = react.useMemo(() => {
547
+ var _props$project, _props$project2, _props$project3;
548
+
549
+ return {
550
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
551
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
552
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
553
+ };
554
+ }, [props.project]);
555
+ const menuVisibilities = react.useMemo(() => {
556
+ var _props$project4;
557
+
558
+ return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
559
+ }, [props.project]);
560
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.NavBarLayout, {
561
+ ref: navBarNode,
562
+ children: jsxRuntime.jsxs(dist_commercetoolsFrontendApplicationShell.MenuGroup, {
563
+ id: "main",
564
+ level: 1,
565
+ children: [jsxRuntime.jsxs("div", {
566
+ className: styles['scrollable-menu'],
567
+ children: [_mapInstanceProperty__default["default"](allInternalApplicationsNavbarMenu).call(allInternalApplicationsNavbarMenu, menu => {
568
+ const menuType = 'scrollable';
569
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
570
+ return jsxRuntime.jsx(ApplicationMenu, {
571
+ location: location,
572
+ menu: menu,
573
+ isActive: activeItemIndex === itemIndex,
574
+ handleToggleItem: () => handleToggleItem(itemIndex),
575
+ isMenuOpen: isMenuOpen,
576
+ shouldCloseMenuFly: shouldCloseMenuFly,
577
+ projectPermissions: projectPermissions,
578
+ menuVisibilities: menuVisibilities,
579
+ applicationLocale: props.applicationLocale,
580
+ projectKey: props.projectKey,
581
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
582
+ onMenuItemClick: props.onMenuItemClick
583
+ }, menu.key);
584
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemDivider, {}), _mapInstanceProperty__default["default"](allCustomApplicationsNavbarMenu).call(allCustomApplicationsNavbarMenu, menu => {
585
+ const menuType = 'scrollable';
586
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
587
+ return jsxRuntime.jsx(ApplicationMenu, {
588
+ location: location,
589
+ menu: menu,
590
+ isActive: activeItemIndex === itemIndex,
591
+ handleToggleItem: () => handleToggleItem(itemIndex),
592
+ isMenuOpen: isMenuOpen,
593
+ shouldCloseMenuFly: shouldCloseMenuFly,
594
+ projectPermissions: projectPermissions,
595
+ menuVisibilities: menuVisibilities,
596
+ applicationLocale: props.applicationLocale,
597
+ projectKey: props.projectKey,
598
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
599
+ onMenuItemClick: props.onMenuItemClick
600
+ }, menu.key);
601
+ })]
602
+ }), jsxRuntime.jsxs("div", {
603
+ className: styles['fixed-menu'],
604
+ children: [jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.Faded, {}), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItem, {
605
+ hasSubmenu: false,
606
+ isActive: false,
607
+ isMenuOpen: isMenuOpen,
608
+ onClick: () => {
609
+ gtmTracking.track(dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.action, dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.category, dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.label);
610
+ handleToggleItem('fixed-support');
611
+ },
612
+ onMouseEnter: isMenuOpen ? undefined : () => handleToggleItem('fixed-support'),
613
+ onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
614
+ children: jsxRuntime.jsx("a", {
615
+ href: constants.SUPPORT_PORTAL_URL,
616
+ rel: "noopener noreferrer",
617
+ target: "_blank",
618
+ children: jsxRuntime.jsxs("div", {
619
+ className: styles['item-icon-text'],
620
+ children: [jsxRuntime.jsx("div", {
621
+ className: styles['icon-container'],
622
+ children: jsxRuntime.jsx("div", {
623
+ className: classnames__default["default"](styles.icon, {
624
+ [styles.icon__active]: activeItemIndex === 'fixed-support'
625
+ }),
626
+ children: jsxRuntime.jsx(icons.SupportIcon, {
627
+ size: "scale"
628
+ })
629
+ })
630
+ }), jsxRuntime.jsx("div", {
631
+ className: styles.title,
632
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread({}, messages['NavBar.MCSupport.title']))
633
+ })]
634
+ })
635
+ })
636
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuExpander, {
637
+ isVisible: isExpanderVisible,
638
+ onClick: handleToggleMenu,
639
+ isMenuOpen: isMenuOpen
640
+ })]
641
+ })]
642
+ })
643
+ });
644
+ };
645
+
646
+ NavBar.propTypes = {};
647
+ NavBar.displayName = 'NavBar';
648
+
649
+ exports["default"] = NavBar;