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