@commercetools-frontend/application-shell 21.23.10 → 21.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/application-entry-point-47d5c548.cjs.dev.js +116 -0
  2. package/dist/application-entry-point-5619d5aa.cjs.prod.js +99 -0
  3. package/dist/application-entry-point-dc726674.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-942ef373.cjs.prod.js +922 -0
  14. package/dist/configure-apollo-a6f03ff8.cjs.dev.js +930 -0
  15. package/dist/configure-apollo-cc0b1668.esm.js +873 -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-3765c4c9.cjs.prod.js +2870 -0
  72. package/dist/index-3fdf5681.esm.js +2970 -0
  73. package/dist/index-b9b8b690.cjs.dev.js +3054 -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-08a76df9.cjs.dev.js +670 -0
  78. package/dist/navbar-5384b0c3.esm.js +650 -0
  79. package/dist/navbar-c02843fb.cjs.prod.js +649 -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-152dc622.esm.js +240 -0
  84. package/dist/oidc-callback-784c3a39.cjs.prod.js +251 -0
  85. package/dist/oidc-callback-dc8682c0.cjs.dev.js +254 -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-6f0ea904.cjs.dev.js +387 -0
  93. package/dist/project-container-b6b2f6b2.esm.js +368 -0
  94. package/dist/project-container-bf8678e2.cjs.prod.js +369 -0
  95. package/dist/{project-expired-d8eaa253.esm.js → project-expired-6b9b6feb.esm.js} +47 -68
  96. package/dist/{project-expired-adce523b.cjs.dev.js → project-expired-9d71c314.cjs.dev.js} +47 -68
  97. package/dist/{project-expired-576a8329.cjs.prod.js → project-expired-d75d9e84.cjs.prod.js} +47 -68
  98. package/dist/{project-not-found-9a9753f2.cjs.dev.js → project-not-found-4b5b9479.cjs.prod.js} +42 -61
  99. package/dist/{project-not-found-8208c8f1.esm.js → project-not-found-c4634d60.esm.js} +42 -61
  100. package/dist/{project-not-found-daa5200b.cjs.prod.js → project-not-found-c977dbb0.cjs.dev.js} +42 -61
  101. package/dist/{project-not-initialized-4aeafe19.cjs.dev.js → project-not-initialized-4d0badf3.cjs.prod.js} +47 -68
  102. package/dist/{project-not-initialized-3408e87f.esm.js → project-not-initialized-a2f7b46e.esm.js} +47 -68
  103. package/dist/{project-not-initialized-5b416bcf.cjs.prod.js → project-not-initialized-e1533577.cjs.dev.js} +47 -68
  104. package/dist/{project-suspended-d3a6001d.cjs.dev.js → project-suspended-9027fc60.cjs.prod.js} +44 -63
  105. package/dist/{project-suspended-dc9ace34.cjs.prod.js → project-suspended-9e084c21.cjs.dev.js} +44 -63
  106. package/dist/{project-suspended-a7edc962.esm.js → project-suspended-f3d78447.esm.js} +44 -63
  107. package/dist/{quick-access-f42a8e0a.cjs.prod.js → quick-access-517ad7e1.cjs.prod.js} +573 -957
  108. package/dist/quick-access-82e1c9aa.esm.js +1907 -0
  109. package/dist/quick-access-8b2b678f.cjs.dev.js +1937 -0
  110. package/dist/redirect-to-login-1b892ab5.esm.js +147 -0
  111. package/dist/redirect-to-login-2be0e5db.cjs.prod.js +149 -0
  112. package/dist/redirect-to-login-64230f67.cjs.dev.js +149 -0
  113. package/dist/redirect-to-logout-15810ffb.cjs.dev.js +151 -0
  114. package/dist/redirect-to-logout-17e4ba2c.cjs.prod.js +151 -0
  115. package/dist/redirect-to-logout-80e772d1.esm.js +138 -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-5329586b.esm.js +129 -0
  123. package/dist/requests-in-flight-loader-88f14402.cjs.dev.js +144 -0
  124. package/dist/requests-in-flight-loader-a7bc4e12.cjs.prod.js +144 -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-39dcfee8.cjs.prod.js} +5 -7
  132. package/dist/{service-page-project-switcher-866b2139.cjs.dev.js → service-page-project-switcher-7698339b.cjs.dev.js} +6 -8
  133. package/dist/{service-page-project-switcher-365c4c10.esm.js → service-page-project-switcher-fd30959b.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-4abb5796.esm.js +172 -0
  147. package/dist/use-applications-menu-68d83733.cjs.dev.js +188 -0
  148. package/dist/use-applications-menu-6b872b83.cjs.prod.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-79d4cb1e.cjs.dev.js +523 -0
  156. package/dist/user-settings-menu-7bf6f146.cjs.prod.js +496 -0
  157. package/dist/user-settings-menu-ad7c27f0.esm.js +497 -0
  158. package/dist/version-tracker-20bb239d.esm.js +101 -0
  159. package/dist/version-tracker-69607d15.cjs.dev.js +107 -0
  160. package/dist/version-tracker-80e0f8f6.cjs.prod.js +107 -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,670 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _pt = 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-b9b8b690.cjs.dev.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-e6f058e5.cjs.dev.js');
29
+ var useApplicationsMenu = require('./use-applications-menu-68d83733.cjs.dev.js');
30
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
31
+ require('./configure-apollo-a6f03ff8.cjs.dev.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-2b4916e5.cjs.dev.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-0638d0c8.cjs.dev.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 _pt__default = /*#__PURE__*/_interopDefault(_pt);
109
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
110
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
111
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
112
+ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
113
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
114
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
115
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
116
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
117
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
118
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
119
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
120
+ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
121
+ var isNil__default = /*#__PURE__*/_interopDefault(isNil);
122
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
123
+
124
+ var messages = reactIntl.defineMessages({
125
+ 'NavBar.MCSupport.title': {
126
+ id: 'NavBar.MCSupport.title',
127
+ defaultMessage: 'Support'
128
+ }
129
+ });
130
+
131
+ // Type guard to help with filtering arrays for nullish elements.
132
+ function nonNullable(value) {
133
+ return value !== null && value !== undefined;
134
+ }
135
+
136
+ 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; }
137
+
138
+ 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; }
139
+ 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 } } } };
140
+
141
+ const getInitialState = isForcedMenuOpen => ({
142
+ isExpanderVisible: true,
143
+ isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen
144
+ });
145
+
146
+ const reducer = (state, action) => {
147
+ switch (action.type) {
148
+ case 'setActiveItemIndex':
149
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
150
+ activeItemIndex: action.payload
151
+ });
152
+
153
+ case 'unsetActiveItemIndex':
154
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
155
+ activeItemIndex: undefined
156
+ });
157
+
158
+ case 'setIsExpanderVisible':
159
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
160
+ isExpanderVisible: true
161
+ });
162
+
163
+ case 'toggleIsMenuOpen':
164
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
165
+ isMenuOpen: !state.isMenuOpen
166
+ });
167
+
168
+ case 'setIsMenuOpenAndMakeExpanderVisible':
169
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
170
+ isExpanderVisible: true,
171
+ isMenuOpen: action.payload
172
+ });
173
+
174
+ case 'reset':
175
+ return {
176
+ isExpanderVisible: false,
177
+ isMenuOpen: false
178
+ };
179
+
180
+ default:
181
+ return state;
182
+ }
183
+ };
184
+
185
+ const useNavbarStateManager = props => {
186
+ var _context, _context2, _context4, _context5;
187
+
188
+ const navBarNode = react.useRef(null);
189
+ const applicationsNavBarMenu = useApplicationsMenu.useApplicationsMenu('navBar', {
190
+ queryOptions: {
191
+ onError: sentry.reportErrorToSentry
192
+ },
193
+ environment: props.environment
194
+ });
195
+
196
+ const _useMcQuery = dist_commercetoolsFrontendApplicationShell.useMcQuery(FetchProjectExtensionsNavbar, {
197
+ skip: !props.environment.servedByProxy,
198
+ context: {
199
+ target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
200
+ },
201
+ fetchPolicy: 'cache-and-network',
202
+ onError: sentry.reportErrorToSentry
203
+ }),
204
+ projectExtensionsQuery = _useMcQuery.data;
205
+
206
+ const legacyCustomAppsMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.applications ? _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = projectExtensionsQuery.projectExtension.applications).call(_context2, app => {
207
+ var _context3;
208
+
209
+ // Map the menu properties to match the one from the proxy schema.
210
+ // This is to ensure that the menu object is the same from the proxy
211
+ // config and the custom apps config, thus allowing them to be
212
+ // concatenated and rendered the same way.
213
+ if (!app.navbarMenu) return;
214
+ return {
215
+ key: app.navbarMenu.key,
216
+ uriPath: app.navbarMenu.uriPath,
217
+ labelAllLocales: app.navbarMenu.labelAllLocales || [],
218
+ icon: app.navbarMenu.icon,
219
+ featureToggle: app.navbarMenu.featureToggle,
220
+ permissions: app.navbarMenu.permissions,
221
+ submenu: _mapInstanceProperty__default["default"](_context3 = app.navbarMenu.submenu || []).call(_context3, menu => ({
222
+ key: menu.key,
223
+ uriPath: menu.uriPath,
224
+ labelAllLocales: menu.labelAllLocales || [],
225
+ featureToggle: menu.featureToggle,
226
+ permissions: menu.permissions,
227
+ menuVisibility: undefined,
228
+ actionRights: undefined,
229
+ dataFences: undefined
230
+ })),
231
+ menuVisibility: undefined,
232
+ actionRights: undefined,
233
+ dataFences: undefined
234
+ };
235
+ })).call(_context, nonNullable) : [];
236
+ const organizationCustomAppsMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.installedApplications ? _filterInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = projectExtensionsQuery.projectExtension.installedApplications).call(_context5, installedApplication => {
237
+ var _context6;
238
+
239
+ const application = installedApplication.application; // Map the menu properties to match the one from the proxy schema.
240
+ // This is to ensure that the menu object is the same from the proxy
241
+ // config and the custom apps config, thus allowing them to be
242
+ // concatenated and rendered the same way.
243
+
244
+ return {
245
+ key: application.id,
246
+ uriPath: application.entryPointUriPath,
247
+ labelAllLocales: application.mainMenuLink.labelAllLocales || [],
248
+ icon: application.icon,
249
+ permissions: application.mainMenuLink.permissions,
250
+ defaultLabel: application.mainMenuLink.defaultLabel,
251
+ featureToggle: undefined,
252
+ menuVisibility: undefined,
253
+ actionRights: undefined,
254
+ dataFences: undefined,
255
+ submenu: _mapInstanceProperty__default["default"](_context6 = application.submenuLinks || []).call(_context6, submenuLink => ({
256
+ key: submenuLink.id,
257
+ uriPath: submenuLink.uriPath,
258
+ labelAllLocales: submenuLink.labelAllLocales || [],
259
+ permissions: submenuLink.permissions,
260
+ defaultLabel: submenuLink.defaultLabel,
261
+ featureToggle: undefined,
262
+ menuVisibility: undefined,
263
+ actionRights: undefined,
264
+ dataFences: undefined
265
+ }))
266
+ };
267
+ })).call(_context4, nonNullable) : [];
268
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
269
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
270
+
271
+ const _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
272
+ _useReducer2 = _slicedToArray(_useReducer, 2),
273
+ state = _useReducer2[0],
274
+ dispatch = _useReducer2[1];
275
+
276
+ const checkSize = react.useCallback(throttle__default["default"](() => {
277
+ const shouldOpen = window.innerWidth > 1024;
278
+ const canExpandMenu = window.innerWidth > 918; // If the screen is small, we should always keep the menu closed,
279
+ // no matter the settings.
280
+
281
+ if (!canExpandMenu) {
282
+ if (state.isMenuOpen || state.isExpanderVisible) {
283
+ // and resets the state to avoid conflicts
284
+ dispatch({
285
+ type: 'reset'
286
+ });
287
+ }
288
+ } else if (canExpandMenu && state.isExpanderVisible !== true) {
289
+ dispatch({
290
+ type: 'setIsExpanderVisible'
291
+ });
292
+ } else if (isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== shouldOpen) {
293
+ // User has no settings yet (this.props.isForcedMenuOpen === null)
294
+ // We check the viewport size and:
295
+ // - if screen is big, we open the menu
296
+ // - if screen is small we close it
297
+ dispatch({
298
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
299
+ payload: shouldOpen
300
+ });
301
+ } else if (!isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== isForcedMenuOpen) {
302
+ // User has setting, we should use that and ignore the screen size.
303
+ // Note: if viewport size is small, we should ignore the user settings.
304
+ dispatch({
305
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
306
+ payload: isForcedMenuOpen
307
+ });
308
+ }
309
+ }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
310
+ const shouldCloseMenuFly = react.useCallback(event => {
311
+ if (navBarNode && navBarNode.current && !navBarNode.current.contains(event.target) && !state.isMenuOpen) dispatch({
312
+ type: 'unsetActiveItemIndex'
313
+ });else if (event.type === 'mouseleave') dispatch({
314
+ type: 'unsetActiveItemIndex'
315
+ });
316
+ }, [state.isMenuOpen]);
317
+ react.useEffect(() => {
318
+ window.addEventListener('resize', checkSize);
319
+ window.addEventListener('click', shouldCloseMenuFly, true);
320
+ return () => {
321
+ window.removeEventListener('resize', checkSize);
322
+ window.removeEventListener('click', shouldCloseMenuFly, true);
323
+ };
324
+ }, [checkSize, shouldCloseMenuFly]);
325
+ react.useEffect(() => {
326
+ checkSize(); // eslint-disable-next-line react-hooks/exhaustive-deps
327
+ }, []); // <-- run this only once!!
328
+
329
+ react.useLayoutEffect(() => {
330
+ if (state.isMenuOpen) document.body.classList.add('body__menu-open');
331
+ if (!state.isMenuOpen) document.body.classList.remove('body__menu-open');
332
+ }, [state.isMenuOpen]);
333
+ const handleToggleItem = react.useCallback(nextActiveItemIndex => {
334
+ if (state.activeItemIndex !== nextActiveItemIndex) dispatch({
335
+ type: 'setActiveItemIndex',
336
+ payload: nextActiveItemIndex
337
+ });
338
+ }, [state.activeItemIndex]);
339
+ const handleToggleMenu = react.useCallback(() => {
340
+ if (state.isMenuOpen && state.activeItemIndex) {
341
+ dispatch({
342
+ type: 'unsetActiveItemIndex'
343
+ });
344
+ }
345
+
346
+ dispatch({
347
+ type: 'toggleIsMenuOpen'
348
+ }); // Synchronize the menu state with local storage.
349
+
350
+ window.localStorage.setItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
351
+ }, [state.activeItemIndex, state.isMenuOpen]);
352
+ const allInternalApplicationsNavbarMenu = applicationsNavBarMenu || [];
353
+
354
+ const allCustomApplicationsNavbarMenu = _concatInstanceProperty__default["default"](legacyCustomAppsMenu).call(legacyCustomAppsMenu, organizationCustomAppsMenu);
355
+
356
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
357
+ navBarNode,
358
+ handleToggleItem,
359
+ handleToggleMenu,
360
+ shouldCloseMenuFly,
361
+ allInternalApplicationsNavbarMenu,
362
+ allCustomApplicationsNavbarMenu
363
+ });
364
+ };
365
+
366
+ 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; }
367
+
368
+ 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; }
369
+
370
+ const compiledStyles = {
371
+ "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",
372
+ "jsonMap": {
373
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
374
+ "list": "navbar-mod__list___RCV3J",
375
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
376
+ "list-item": "navbar-mod__list-item___MjK6t",
377
+ "item-link": "navbar-mod__item-link___X2Ina",
378
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
379
+ "icon": "navbar-mod__icon___bLsep",
380
+ "icon__active": "navbar-mod__icon__active___asorg",
381
+ "title": "navbar-mod__title___eRWUj",
382
+ "expander": "navbar-mod__expander___jyAUi",
383
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
384
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
385
+ "item__active": "navbar-mod__item__active___lo1sr",
386
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
387
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
388
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
389
+ "sublist": "navbar-mod__sublist___os1s7",
390
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
391
+ "title-copy": "navbar-mod__title-copy___o2y1q",
392
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
393
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
394
+ "text": "navbar-mod__text___ccHEu",
395
+ "text-link": "navbar-mod__text-link___dhtj6",
396
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
397
+ "icon-container": "navbar-mod__icon-container___w3FtA",
398
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
399
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
400
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
401
+ "highlighted": "navbar-mod__highlighted___oJWkA",
402
+ "hidden": "navbar-mod__hidden___TQLSs",
403
+ "divider": "navbar-mod__divider___TpVzu",
404
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
405
+ }
406
+ };
407
+ const styles = compiledStyles.jsonMap;
408
+
409
+ const getMenuVisibilitiesOfSubmenus = menu => {
410
+ var _context, _context2;
411
+
412
+ return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
413
+ };
414
+
415
+ const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
416
+
417
+ const ApplicationMenu = props => {
418
+ var _context3, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context4, _context5;
419
+
420
+ const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
421
+ path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, props.menu.uriPath),
422
+ exact: false,
423
+ strict: false
424
+ }));
425
+ const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
426
+ react.useEffect(() => {
427
+ // On first render, check which menu is active for the current application and expand
428
+ // the submenu automatically unless the all navbar is collapsed or there are no submenu links.
429
+ if (props.isMenuOpen && isMainMenuRouteActive && hasSubmenu) {
430
+ props.handleToggleItem();
431
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
432
+
433
+ }, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
434
+
435
+ const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
436
+ const isMainMenuItemALink = // 1. When the navbar is collapsed
437
+ !props.isMenuOpen || // 2. When there is no submenu
438
+ !hasSubmenu || // 3. When the submenu group is active/visible
439
+ props.isActive;
440
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.RestrictedMenuItem, {
441
+ keyOfMenuItem: props.menu.key,
442
+ featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
443
+ permissions: props.menu.permissions,
444
+ actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
445
+ dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
446
+ projectPermissions: props.projectPermissions,
447
+ menuVisibilities: props.menuVisibilities,
448
+ namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
449
+ children: jsxRuntime.jsxs(dist_commercetoolsFrontendApplicationShell.MenuItem, {
450
+ hasSubmenu: hasSubmenu,
451
+ isActive: props.isActive,
452
+ isMainMenuRouteActive: isMainMenuRouteActive,
453
+ isMenuOpen: props.isMenuOpen,
454
+ onClick: props.handleToggleItem,
455
+ onMouseEnter: props.isMenuOpen ? undefined : props.handleToggleItem,
456
+ onMouseLeave: props.isMenuOpen ? undefined : props.shouldCloseMenuFly,
457
+ children: [jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemLink, {
458
+ linkTo: isMainMenuItemALink ? _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath) : undefined,
459
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
460
+ onClick: props.onMenuItemClick,
461
+ children: jsxRuntime.jsxs("div", {
462
+ className: styles['item-icon-text'],
463
+ children: [jsxRuntime.jsx("div", {
464
+ className: styles['icon-container'],
465
+ children: jsxRuntime.jsx("div", {
466
+ className: classnames__default["default"](styles.icon, {
467
+ [styles.icon__active]: props.isActive || isMainMenuRouteActive
468
+ }),
469
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.IconSwitcher, {
470
+ icon: props.menu.icon,
471
+ size: "scale"
472
+ })
473
+ })
474
+ }), jsxRuntime.jsx("div", {
475
+ className: styles.title,
476
+ "aria-owns": "group-".concat(props.menu.key),
477
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuLabel, {
478
+ labelAllLocales: props.menu.labelAllLocales,
479
+ defaultLabel: props.menu.defaultLabel,
480
+ applicationLocale: props.applicationLocale
481
+ })
482
+ })]
483
+ })
484
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuGroup, {
485
+ id: props.menu.key,
486
+ level: 2,
487
+ isActive: props.isActive,
488
+ isExpanded: props.isMenuOpen,
489
+ hasSubmenu: hasSubmenu,
490
+ children: hasSubmenu ? _mapInstanceProperty__default["default"](_context5 = props.menu.submenu).call(_context5, submenu => {
491
+ var _context6, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context7;
492
+
493
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.RestrictedMenuItem, {
494
+ keyOfMenuItem: submenu.key,
495
+ featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
496
+ permissions: submenu.permissions,
497
+ actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
498
+ dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
499
+ projectPermissions: props.projectPermissions,
500
+ menuVisibilities: props.menuVisibilities,
501
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
502
+ children: jsxRuntime.jsx("li", {
503
+ className: styles['sublist-item'],
504
+ children: jsxRuntime.jsx("div", {
505
+ className: styles.text,
506
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemLink, {
507
+ linkTo: _concatInstanceProperty__default["default"](_context7 = "/".concat(props.projectKey, "/")).call(_context7, submenu.uriPath) // Allow matching subroutes
508
+ ,
509
+ exactMatch: false,
510
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
511
+ onClick: props.onMenuItemClick,
512
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuLabel, {
513
+ labelAllLocales: submenu.labelAllLocales,
514
+ defaultLabel: submenu.defaultLabel,
515
+ applicationLocale: props.applicationLocale
516
+ })
517
+ })
518
+ })
519
+ })
520
+ }, _concatInstanceProperty__default["default"](_context6 = "".concat(props.menu.key, "-submenu-")).call(_context6, submenu.key));
521
+ }) : null
522
+ })]
523
+ })
524
+ }, props.menu.key);
525
+ };
526
+
527
+ ApplicationMenu.propTypes = process.env.NODE_ENV !== "production" ? {
528
+ menu: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].shape({
529
+ defaultLabel: _pt__default["default"].string
530
+ })]).isRequired,
531
+ isActive: _pt__default["default"].bool.isRequired,
532
+ isMenuOpen: _pt__default["default"].bool.isRequired,
533
+ shouldCloseMenuFly: _pt__default["default"].func.isRequired,
534
+ projectPermissions: _pt__default["default"].shape({
535
+ permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
536
+ actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
537
+ dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
538
+ }).isRequired,
539
+ menuVisibilities: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
540
+ handleToggleItem: _pt__default["default"].func.isRequired,
541
+ applicationLocale: _pt__default["default"].string.isRequired,
542
+ projectKey: _pt__default["default"].string.isRequired,
543
+ useFullRedirectsForLinks: _pt__default["default"].bool.isRequired
544
+ } : {};
545
+ ApplicationMenu.displayName = 'ApplicationMenu';
546
+
547
+ const NavBar = props => {
548
+ const _useNavbarStateManage = useNavbarStateManager({
549
+ environment: props.environment
550
+ }),
551
+ navBarNode = _useNavbarStateManage.navBarNode,
552
+ isMenuOpen = _useNavbarStateManage.isMenuOpen,
553
+ isExpanderVisible = _useNavbarStateManage.isExpanderVisible,
554
+ activeItemIndex = _useNavbarStateManage.activeItemIndex,
555
+ handleToggleItem = _useNavbarStateManage.handleToggleItem,
556
+ handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
557
+ shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
558
+ allInternalApplicationsNavbarMenu = _useNavbarStateManage.allInternalApplicationsNavbarMenu,
559
+ allCustomApplicationsNavbarMenu = _useNavbarStateManage.allCustomApplicationsNavbarMenu;
560
+
561
+ const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
562
+ const location = reactRouterDom.useLocation();
563
+ const gtmTracking = react.useContext(dist_commercetoolsFrontendApplicationShell.GtmContext);
564
+ const projectPermissions = react.useMemo(() => {
565
+ var _props$project, _props$project2, _props$project3;
566
+
567
+ return {
568
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
569
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
570
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
571
+ };
572
+ }, [props.project]);
573
+ const menuVisibilities = react.useMemo(() => {
574
+ var _props$project4;
575
+
576
+ return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
577
+ }, [props.project]);
578
+ return jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.NavBarLayout, {
579
+ ref: navBarNode,
580
+ children: jsxRuntime.jsxs(dist_commercetoolsFrontendApplicationShell.MenuGroup, {
581
+ id: "main",
582
+ level: 1,
583
+ children: [jsxRuntime.jsxs("div", {
584
+ className: styles['scrollable-menu'],
585
+ children: [_mapInstanceProperty__default["default"](allInternalApplicationsNavbarMenu).call(allInternalApplicationsNavbarMenu, menu => {
586
+ const menuType = 'scrollable';
587
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
588
+ return jsxRuntime.jsx(ApplicationMenu, {
589
+ location: location,
590
+ menu: menu,
591
+ isActive: activeItemIndex === itemIndex,
592
+ handleToggleItem: () => handleToggleItem(itemIndex),
593
+ isMenuOpen: isMenuOpen,
594
+ shouldCloseMenuFly: shouldCloseMenuFly,
595
+ projectPermissions: projectPermissions,
596
+ menuVisibilities: menuVisibilities,
597
+ applicationLocale: props.applicationLocale,
598
+ projectKey: props.projectKey,
599
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
600
+ onMenuItemClick: props.onMenuItemClick
601
+ }, menu.key);
602
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItemDivider, {}), _mapInstanceProperty__default["default"](allCustomApplicationsNavbarMenu).call(allCustomApplicationsNavbarMenu, menu => {
603
+ const menuType = 'scrollable';
604
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
605
+ return jsxRuntime.jsx(ApplicationMenu, {
606
+ location: location,
607
+ menu: menu,
608
+ isActive: activeItemIndex === itemIndex,
609
+ handleToggleItem: () => handleToggleItem(itemIndex),
610
+ isMenuOpen: isMenuOpen,
611
+ shouldCloseMenuFly: shouldCloseMenuFly,
612
+ projectPermissions: projectPermissions,
613
+ menuVisibilities: menuVisibilities,
614
+ applicationLocale: props.applicationLocale,
615
+ projectKey: props.projectKey,
616
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
617
+ onMenuItemClick: props.onMenuItemClick
618
+ }, menu.key);
619
+ })]
620
+ }), jsxRuntime.jsxs("div", {
621
+ className: styles['fixed-menu'],
622
+ children: [jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.Faded, {}), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuItem, {
623
+ hasSubmenu: false,
624
+ isActive: false,
625
+ isMenuOpen: isMenuOpen,
626
+ onClick: () => {
627
+ gtmTracking.track(dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.action, dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.category, dist_commercetoolsFrontendApplicationShell.trackingEvents.goToSupport.label);
628
+ handleToggleItem('fixed-support');
629
+ },
630
+ onMouseEnter: isMenuOpen ? undefined : () => handleToggleItem('fixed-support'),
631
+ onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
632
+ children: jsxRuntime.jsx("a", {
633
+ href: constants.SUPPORT_PORTAL_URL,
634
+ rel: "noopener noreferrer",
635
+ target: "_blank",
636
+ children: jsxRuntime.jsxs("div", {
637
+ className: styles['item-icon-text'],
638
+ children: [jsxRuntime.jsx("div", {
639
+ className: styles['icon-container'],
640
+ children: jsxRuntime.jsx("div", {
641
+ className: classnames__default["default"](styles.icon, {
642
+ [styles.icon__active]: activeItemIndex === 'fixed-support'
643
+ }),
644
+ children: jsxRuntime.jsx(icons.SupportIcon, {
645
+ size: "scale"
646
+ })
647
+ })
648
+ }), jsxRuntime.jsx("div", {
649
+ className: styles.title,
650
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread({}, messages['NavBar.MCSupport.title']))
651
+ })]
652
+ })
653
+ })
654
+ }), jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.MenuExpander, {
655
+ isVisible: isExpanderVisible,
656
+ onClick: handleToggleMenu,
657
+ isMenuOpen: isMenuOpen
658
+ })]
659
+ })]
660
+ })
661
+ });
662
+ };
663
+
664
+ NavBar.propTypes = process.env.NODE_ENV !== "production" ? {
665
+ applicationLocale: _pt__default["default"].string.isRequired,
666
+ projectKey: _pt__default["default"].string.isRequired
667
+ } : {};
668
+ NavBar.displayName = 'NavBar';
669
+
670
+ exports["default"] = NavBar;