@commercetools-frontend/application-shell 22.6.0 → 22.7.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 (84) hide show
  1. package/dist/{application-entry-point-2000359c.cjs.prod.js → application-entry-point-2bbea741.cjs.prod.js} +1 -1
  2. package/dist/{application-entry-point-8c1b932a.cjs.dev.js → application-entry-point-6853f92e.cjs.dev.js} +1 -1
  3. package/dist/{application-entry-point-afa36f4a.esm.js → application-entry-point-97efa554.esm.js} +1 -1
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +6 -9
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +6 -9
  6. package/dist/commercetools-frontend-application-shell.esm.js +3 -9
  7. package/dist/{configure-apollo-f632e6cf.cjs.prod.js → configure-apollo-2077e9e6.cjs.prod.js} +10 -2
  8. package/dist/{configure-apollo-010b521a.esm.js → configure-apollo-8bcf9317.esm.js} +10 -2
  9. package/dist/{configure-apollo-e0273cd1.cjs.dev.js → configure-apollo-99b8a3fe.cjs.dev.js} +10 -2
  10. package/dist/declarations/src/components/application-shell-authenticated/new-main-navigation-flag-wrapper.d.ts +7 -2
  11. package/dist/declarations/src/components/application-shell-provider/utils.d.ts +1 -1
  12. package/dist/declarations/src/components/custom-view-context/custom-view-context.d.ts +12 -0
  13. package/dist/declarations/src/components/custom-view-context/index.d.ts +1 -0
  14. package/dist/declarations/src/components/custom-view-shell/custom-view-shell.d.ts +9 -0
  15. package/dist/declarations/src/components/custom-view-shell/index.d.ts +1 -0
  16. package/dist/declarations/src/components/custom-view-shell-authenticated/custom-view-shell-authenticated.d.ts +12 -0
  17. package/dist/declarations/src/components/custom-view-shell-authenticated/index.d.ts +1 -0
  18. package/dist/declarations/src/components/navbar/compiled/navbar.css.json.d.ts +1 -1
  19. package/dist/declarations/src/components/navbar/index.d.ts +5 -2
  20. package/dist/declarations/src/components/navbar/menu-items.d.ts +5 -4
  21. package/dist/declarations/src/components/navbar/navbar-skeleton.d.ts +6 -0
  22. package/dist/declarations/src/components/navbar/navbar-skeleton.styles.d.ts +43 -0
  23. package/dist/declarations/src/components/navbar/navbar.d.ts +5 -2
  24. package/dist/declarations/src/index.d.ts +2 -0
  25. package/dist/declarations/src/types/generated/ctp.d.ts +124 -51
  26. package/dist/declarations/src/types/generated/mc.d.ts +0 -83
  27. package/dist/declarations/src/types/generated/settings.d.ts +106 -0
  28. package/dist/index-6c0bc333.cjs.dev.js +2099 -0
  29. package/dist/index-975c5225.esm.js +2032 -0
  30. package/dist/{index-0bfb96a9.cjs.prod.js → index-f85c276c.cjs.prod.js} +265 -472
  31. package/dist/navbar-0cdfe0f7.cjs.prod.js +1173 -0
  32. package/dist/navbar-383d5297.cjs.dev.js +1269 -0
  33. package/dist/navbar-cd29b896.esm.js +1239 -0
  34. package/dist/{oidc-callback-518b3a62.esm.js → oidc-callback-7221e7d2.esm.js} +4 -10
  35. package/dist/{oidc-callback-e0687f34.cjs.prod.js → oidc-callback-7c234583.cjs.prod.js} +4 -10
  36. package/dist/{oidc-callback-54e4b551.cjs.dev.js → oidc-callback-80416189.cjs.dev.js} +4 -10
  37. package/dist/{project-container-17d86e50.cjs.prod.js → project-container-20379b3d.cjs.prod.js} +9 -13
  38. package/dist/{project-container-3243f800.esm.js → project-container-84c7881c.esm.js} +9 -13
  39. package/dist/{project-container-9c7806ef.cjs.dev.js → project-container-c36e4793.cjs.dev.js} +9 -13
  40. package/dist/{project-expired-c3a6aa3c.esm.js → project-expired-6f9e5ff9.esm.js} +5 -11
  41. package/dist/{project-expired-443cd7e0.cjs.prod.js → project-expired-84871cc1.cjs.prod.js} +5 -11
  42. package/dist/{project-expired-6dab919c.cjs.dev.js → project-expired-fea5a2c6.cjs.dev.js} +5 -11
  43. package/dist/{project-not-found-1a5bad77.cjs.dev.js → project-not-found-382b664d.cjs.dev.js} +5 -11
  44. package/dist/{project-not-found-c728c4c2.esm.js → project-not-found-763dcf53.esm.js} +5 -11
  45. package/dist/{project-not-found-5fcc4b22.cjs.prod.js → project-not-found-e55553d5.cjs.prod.js} +5 -11
  46. package/dist/{project-not-initialized-86835aca.esm.js → project-not-initialized-8b3d52be.esm.js} +5 -11
  47. package/dist/{project-not-initialized-c48f8d83.cjs.dev.js → project-not-initialized-aee7541a.cjs.dev.js} +5 -11
  48. package/dist/{project-not-initialized-316131ae.cjs.prod.js → project-not-initialized-be040234.cjs.prod.js} +5 -11
  49. package/dist/{project-suspended-4db209e6.esm.js → project-suspended-02eb3c52.esm.js} +5 -11
  50. package/dist/{project-suspended-2d6404d2.cjs.prod.js → project-suspended-2df71dad.cjs.prod.js} +5 -11
  51. package/dist/{project-suspended-271303c3.cjs.dev.js → project-suspended-506c7b5f.cjs.dev.js} +5 -11
  52. package/dist/{quick-access-097009ce.cjs.dev.js → quick-access-98ac50ec.cjs.dev.js} +3 -8
  53. package/dist/{quick-access-8e4e90a0.cjs.prod.js → quick-access-bd5cc59f.cjs.prod.js} +3 -8
  54. package/dist/{quick-access-07b2fea2.esm.js → quick-access-e474562c.esm.js} +3 -8
  55. package/dist/{redirect-to-login-531c3d52.cjs.dev.js → redirect-to-login-1e136a4f.cjs.dev.js} +1 -1
  56. package/dist/{redirect-to-login-d9dcccac.esm.js → redirect-to-login-2b6962dd.esm.js} +1 -1
  57. package/dist/{redirect-to-login-7cb94c3e.cjs.prod.js → redirect-to-login-cc23cd31.cjs.prod.js} +1 -1
  58. package/dist/{redirect-to-logout-c4173114.esm.js → redirect-to-logout-47a5daea.esm.js} +4 -10
  59. package/dist/{redirect-to-logout-2e314afc.cjs.dev.js → redirect-to-logout-d6dce2e6.cjs.dev.js} +4 -10
  60. package/dist/{redirect-to-logout-54a2fc06.cjs.prod.js → redirect-to-logout-dd88770a.cjs.prod.js} +4 -10
  61. package/dist/{requests-in-flight-loader-0b09c194.esm.js → requests-in-flight-loader-2b781c0e.esm.js} +4 -10
  62. package/dist/{requests-in-flight-loader-ecde7bbe.cjs.prod.js → requests-in-flight-loader-84434d03.cjs.prod.js} +4 -10
  63. package/dist/{requests-in-flight-loader-6ba8df53.cjs.dev.js → requests-in-flight-loader-d908a6df.cjs.dev.js} +4 -10
  64. package/dist/{service-page-project-switcher-a0df49fc.cjs.prod.js → service-page-project-switcher-0546e7be.cjs.prod.js} +1 -1
  65. package/dist/{service-page-project-switcher-1977dcac.cjs.dev.js → service-page-project-switcher-51ec5202.cjs.dev.js} +1 -1
  66. package/dist/{service-page-project-switcher-8ee27c7e.esm.js → service-page-project-switcher-da4d68ce.esm.js} +1 -1
  67. package/dist/{use-applications-menu-4ba2061e.cjs.dev.js → use-applications-menu-08236536.cjs.prod.js} +9 -8
  68. package/dist/{use-applications-menu-f296617c.esm.js → use-applications-menu-1143a5ca.esm.js} +9 -8
  69. package/dist/{use-applications-menu-af860769.cjs.prod.js → use-applications-menu-5873c7ab.cjs.dev.js} +9 -8
  70. package/dist/{user-settings-menu-85485124.cjs.dev.js → user-settings-menu-6a7ff392.cjs.dev.js} +5 -11
  71. package/dist/{user-settings-menu-c7836a3c.esm.js → user-settings-menu-986485b8.esm.js} +5 -11
  72. package/dist/{user-settings-menu-6a7b4699.cjs.prod.js → user-settings-menu-a724a9b9.cjs.prod.js} +5 -11
  73. package/dist/{version-tracker-16b5844a.cjs.prod.js → version-tracker-3d9b5cf0.cjs.prod.js} +1 -1
  74. package/dist/{version-tracker-d30bd05d.cjs.dev.js → version-tracker-90a08689.cjs.dev.js} +1 -1
  75. package/dist/{version-tracker-de5d57b3.esm.js → version-tracker-cba298d4.esm.js} +1 -1
  76. package/package.json +33 -33
  77. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +2 -2
  78. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +2 -2
  79. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +2 -2
  80. package/dist/index-419189bf.cjs.dev.js +0 -2341
  81. package/dist/index-c24c3bbf.esm.js +0 -2262
  82. package/dist/navbar-1e90d18c.cjs.dev.js +0 -609
  83. package/dist/navbar-27c12ed8.esm.js +0 -589
  84. package/dist/navbar-c548a201.cjs.prod.js +0 -588
@@ -0,0 +1,1173 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
+ var _pt = require('prop-types');
6
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
7
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
8
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
+ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
10
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
12
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
13
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
14
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
15
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
16
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
17
+ var react$1 = require('react');
18
+ var classnames = require('classnames');
19
+ var debounce = require('lodash/debounce');
20
+ var reactIntl = require('react-intl');
21
+ var reactRouterDom = require('react-router-dom');
22
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
23
+ var constants = require('@commercetools-frontend/constants');
24
+ var icons = require('@commercetools-uikit/icons');
25
+ var _Array$from = require('@babel/runtime-corejs3/core-js-stable/array/from');
26
+ var dist_commercetoolsFrontendApplicationShell = require('./index-f85c276c.cjs.prod.js');
27
+ var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
28
+ var _styled = require('@emotion/styled/base');
29
+ var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
30
+ var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
31
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
32
+ var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
33
+ var react = require('@emotion/react');
34
+ var reactBroadcast = require('@flopflip/react-broadcast');
35
+ var applicationComponents = require('@commercetools-frontend/application-components');
36
+ var MissingImageSvg = require('@commercetools-frontend/assets/images/diagonal-line.svg');
37
+ var permissions = require('@commercetools-frontend/permissions');
38
+ var InlineSvg = require('@commercetools-uikit/icons/inline-svg');
39
+ var useIsServedByProxy = require('./use-is-served-by-proxy-845cace5.cjs.prod.js');
40
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
41
+ var isNil = require('lodash/isNil');
42
+ var constants$1 = require('./constants-ed10e935.cjs.prod.js');
43
+ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/keys');
44
+ var designSystem = require('@commercetools-uikit/design-system');
45
+ var throttle = require('lodash/throttle');
46
+ var sentry = require('@commercetools-frontend/sentry');
47
+ var useApplicationsMenu = require('./use-applications-menu-08236536.cjs.prod.js');
48
+ require('./configure-apollo-2077e9e6.cjs.prod.js');
49
+ require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
50
+ require('@babel/runtime-corejs3/core-js-stable/object/entries');
51
+ require('@babel/runtime-corejs3/core-js-stable/reflect/has');
52
+ require('@reduxjs/toolkit');
53
+ require('lodash/mapValues');
54
+ require('omit-empty-es');
55
+ require('redux-thunk');
56
+ require('@commercetools-frontend/notifications');
57
+ require('@commercetools-frontend/sdk');
58
+ require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
59
+ require('@babel/runtime-corejs3/core-js-stable/instance/slice');
60
+ require('@commercetools-frontend/react-notifications');
61
+ require('redux-logger');
62
+ require('@babel/runtime-corejs3/core-js-stable/url');
63
+ require('@apollo/client');
64
+ require('apollo-link-logger');
65
+ require('@apollo/client/link/error');
66
+ require('@commercetools-frontend/browser-history');
67
+ require('@babel/runtime-corejs3/core-js-stable/instance/some');
68
+ require('@babel/runtime-corejs3/core-js-stable/object/values');
69
+ require('@commercetools/http-user-agent');
70
+ require('uuid');
71
+ require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
72
+ require('@babel/runtime-corejs3/helpers/createClass');
73
+ require('@babel/runtime-corejs3/helpers/classCallCheck');
74
+ require('@babel/runtime-corejs3/helpers/assertThisInitialized');
75
+ require('@babel/runtime-corejs3/helpers/inherits');
76
+ require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
77
+ require('@babel/runtime-corejs3/helpers/getPrototypeOf');
78
+ require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
79
+ require('@babel/runtime-corejs3/core-js-stable/json/stringify');
80
+ require('@apollo/client/link/retry');
81
+ require('@commercetools-frontend/i18n');
82
+ require('@commercetools-frontend/assets/images/logo.svg');
83
+ require('@commercetools-uikit/spacings');
84
+ require('@commercetools-uikit/flat-button');
85
+ require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
86
+ require('memoize-one');
87
+ require('@commercetools-uikit/accessible-hidden');
88
+ require('@commercetools-uikit/select-input');
89
+ require('@apollo/client/react');
90
+ require('@commercetools-frontend/assets/images/ct-logo.svg');
91
+ require('@commercetools-uikit/loading-spinner');
92
+ require('@commercetools-frontend/l10n');
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('@flopflip/types');
99
+ require('react-redux');
100
+ require('lodash/upperFirst');
101
+ require('./oidc-a780f067.cjs.prod.js');
102
+ require('@commercetools-uikit/design-system/materials/resets.css');
103
+ require('@commercetools-frontend/actions-global');
104
+ require('@commercetools-frontend/application-config/ssr');
105
+
106
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
107
+
108
+ var _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 debounce__default = /*#__PURE__*/_interopDefault(debounce);
122
+ var _Array$from__default = /*#__PURE__*/_interopDefault(_Array$from);
123
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
124
+ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
125
+ var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
126
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
127
+ var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
128
+ var MissingImageSvg__default = /*#__PURE__*/_interopDefault(MissingImageSvg);
129
+ var InlineSvg__default = /*#__PURE__*/_interopDefault(InlineSvg);
130
+ var isNil__default = /*#__PURE__*/_interopDefault(isNil);
131
+ var _keysInstanceProperty__default = /*#__PURE__*/_interopDefault(_keysInstanceProperty);
132
+ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
133
+
134
+ const _excluded = ["icon"];
135
+ function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
136
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$2(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
137
+ const compiledStyles$2 = {
138
+ "global": ":root {\n\n /* Left navigation */\n\n /* Active list item with icon text */\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__left-navigation-new___31u-2 {\n display: grid;\n width: 64px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n height: 100vh;\n grid-template-rows: 56px 1fr;\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 z-index: 1;\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 /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\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__left-navigation-new___31u-2,\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: 75px 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 list-style: none;\n opacity: 0.01;\n display: none;\n}\n\n.navbar-mod__sublist-new___5gy2L {\n padding: var(--spacing-m) var(--spacing-l);\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 background-color: var(--background-color-for-navbar);\n left: 58px;\n z-index: -1;\n list-style: none;\n position: fixed;\n display: none;\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-new___z6xTy {\n display: flex;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n}\n\n.navbar-mod__sublist-item-new__active___ZNiqu {\n border-radius: var(--border-radius-4);\n background: var(--color-accent-30);\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__sublist-item-new___z6xTy: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 border-radius: var(--border-radius-4);\n background: var(--color-primary-95);\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 width: 100%;\n height: 100%;\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-new___1mTbx {\n display: flex;\n align-items: flex-start;\n color: var(--color-solid);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n text-decoration: none;\n padding: calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10)) var(--spacing-30);\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 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.navbar-mod__item_menu-collapsed___cluyY.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n max-height: 44px;\n overflow: hidden;\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n position: absolute;\n /* `left` and `width` required for displaying focus indicator properly */\n left: 46px;\n width: 166px;\n z-index: 1;\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 display: unset;\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__sublist-expanded__active___240JK {\n display: block;\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed-new__active___scHEz,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--color-surface);\n /* TODO: add design tokens instead hard-coded values */\n min-height: 50px;\n width: 253px;\n border-radius: 8px;\n /* z-index value must be higher than AppBar's z-index */\n z-index: 20001;\n box-shadow: -2px 4px 25px 0 rgba(89, 89, 89, 0.5);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n left: 240px;\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__highlighted-new___tJFEc,\n.navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-surface);\n}\n\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc,\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-solid);\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 FIXME: Make the navbar scrollable in collapsed state.\n NOTE: do not use `overflow-x: hidden; overflow-y: auto;` as this prevents submenus from showing up on hover\n */\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE::-webkit-scrollbar {\n display: none;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
139
+ "jsonMap": {
140
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
141
+ "left-navigation-new": "navbar-mod__left-navigation-new___31u-2",
142
+ "list": "navbar-mod__list___RCV3J",
143
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
144
+ "list-item": "navbar-mod__list-item___MjK6t",
145
+ "item-link": "navbar-mod__item-link___X2Ina",
146
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
147
+ "icon": "navbar-mod__icon___bLsep",
148
+ "icon__active": "navbar-mod__icon__active___asorg",
149
+ "title": "navbar-mod__title___eRWUj",
150
+ "expander": "navbar-mod__expander___jyAUi",
151
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
152
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
153
+ "item__active": "navbar-mod__item__active___lo1sr",
154
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
155
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
156
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
157
+ "sublist": "navbar-mod__sublist___os1s7",
158
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
159
+ "title-copy": "navbar-mod__title-copy___o2y1q",
160
+ "sublist-new": "navbar-mod__sublist-new___5gy2L",
161
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
162
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
163
+ "sublist-item-new": "navbar-mod__sublist-item-new___z6xTy",
164
+ "sublist-item-new__active": "navbar-mod__sublist-item-new__active___ZNiqu",
165
+ "text": "navbar-mod__text___ccHEu",
166
+ "text-link": "navbar-mod__text-link___dhtj6",
167
+ "text-link-new": "navbar-mod__text-link-new___1mTbx",
168
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
169
+ "icon-container": "navbar-mod__icon-container___w3FtA",
170
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
171
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
172
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
173
+ "sublist-collapsed-new__active": "navbar-mod__sublist-collapsed-new__active___scHEz",
174
+ "sublist-expanded-new__active": "navbar-mod__sublist-expanded-new__active___KJ32l",
175
+ "highlighted": "navbar-mod__highlighted___oJWkA",
176
+ "highlighted-new": "navbar-mod__highlighted-new___tJFEc",
177
+ "hidden": "navbar-mod__hidden___TQLSs",
178
+ "divider": "navbar-mod__divider___TpVzu",
179
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
180
+ "scrollable-menu-new": "navbar-mod__scrollable-menu-new___4yfOE"
181
+ }
182
+ };
183
+ const styles$2 = compiledStyles$2.jsonMap;
184
+ /*
185
+ <DataMenu data={[]}>
186
+ <MenuGroup>
187
+ <MenuItem>
188
+ <MenuItemLink linkTo="/foo">(icon) Products</MenuItemLink>
189
+ <MenuGroup>
190
+ <MenuItemLink linkTo="/foo/new">Add product</MenuItemLink>
191
+ </MenuGroup>
192
+ </MenuItem>
193
+ </MenuGroup>
194
+ <MenuExpander/>
195
+ </DataMenu>
196
+ */
197
+
198
+ const HeartIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./heart-ebfab4cd.cjs.prod.js'); }));
199
+ const PaperclipIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./paperclip-6f0b6ae5.cjs.prod.js'); }));
200
+ const PluginIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./plugin-f199ed20.cjs.prod.js'); }));
201
+ const RocketIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./rocket-f0bfae34.cjs.prod.js'); }));
202
+ const StarIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./star-c11b0683.cjs.prod.js'); }));
203
+ const ConnectedSquareIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./connected-square-960e046b.cjs.prod.js'); }));
204
+ const WorldIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./world-f921d80c.cjs.prod.js'); }));
205
+ const TreeStructureIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./tree-structure-690366f9.cjs.prod.js'); }));
206
+ const UserFilledIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./user-filled-58af1ae4.cjs.prod.js'); }));
207
+ const SpeedometerIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./speedometer-0de260cf.cjs.prod.js'); }));
208
+ const TagMultiIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./tag-multi-f8d9c9e6.cjs.prod.js'); }));
209
+ const CartIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./cart-f2fc1baf.cjs.prod.js'); }));
210
+ const BoxIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./box-e17daf6c.cjs.prod.js'); }));
211
+ const GearIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./gear-9b394c43.cjs.prod.js'); }));
212
+ const ListWithSearchIcon = /*#__PURE__*/react$1.lazy(() => Promise.resolve().then(function () { return require('./list-with-search-e3ccba98.cjs.prod.js'); }));
213
+ // The icon is expected to be the `svg` document as a string.
214
+ // For backwards compatibility purposes, we still support the legacy "icon name",
215
+ // which we then map to one of the pre-defined icons.
216
+ // Eventually, we want to get rid of this "switch" logic.
217
+ const IconSwitcher = _ref => {
218
+ let icon = _ref.icon,
219
+ iconProps = _objectWithoutProperties(_ref, _excluded);
220
+ if (_includesInstanceProperty__default["default"](icon).call(icon, '<svg')) {
221
+ return jsxRuntime.jsx(InlineSvg__default["default"], _objectSpread$2({
222
+ data: icon
223
+ }, iconProps));
224
+ }
225
+ // Backwards compatibility for apps using the "icon name".
226
+ switch (icon) {
227
+ // Legacy application icons
228
+ // TODO: To be removed once MC applications icons updates are published
229
+ case 'TreeStructureIcon':
230
+ return jsxRuntime.jsx(TreeStructureIcon, _objectSpread$2({}, iconProps));
231
+ case 'UserFilledIcon':
232
+ return jsxRuntime.jsx(UserFilledIcon, _objectSpread$2({}, iconProps));
233
+ case 'SpeedometerIcon':
234
+ return jsxRuntime.jsx(SpeedometerIcon, _objectSpread$2({}, iconProps));
235
+ case 'TagMultiIcon':
236
+ return jsxRuntime.jsx(TagMultiIcon, _objectSpread$2({}, iconProps));
237
+ case 'CartIcon':
238
+ return jsxRuntime.jsx(CartIcon, _objectSpread$2({}, iconProps));
239
+ case 'BoxIcon':
240
+ return jsxRuntime.jsx(BoxIcon, _objectSpread$2({}, iconProps));
241
+ case 'GearIcon':
242
+ return jsxRuntime.jsx(GearIcon, _objectSpread$2({}, iconProps));
243
+ case 'ListWithSearchIcon':
244
+ return jsxRuntime.jsx(ListWithSearchIcon, _objectSpread$2({}, iconProps));
245
+
246
+ // Custom application icons set
247
+ case 'HeartIcon':
248
+ return jsxRuntime.jsx(HeartIcon, _objectSpread$2({}, iconProps));
249
+ case 'PaperclipIcon':
250
+ return jsxRuntime.jsx(PaperclipIcon, _objectSpread$2({}, iconProps));
251
+ case 'PluginIcon':
252
+ return jsxRuntime.jsx(PluginIcon, _objectSpread$2({}, iconProps));
253
+ case 'RocketIcon':
254
+ return jsxRuntime.jsx(RocketIcon, _objectSpread$2({}, iconProps));
255
+ case 'StarIcon':
256
+ return jsxRuntime.jsx(StarIcon, _objectSpread$2({}, iconProps));
257
+ case 'ConnectedSquareIcon':
258
+ return jsxRuntime.jsx(ConnectedSquareIcon, _objectSpread$2({}, iconProps));
259
+ // For backwards compatibility
260
+ case 'WorldIcon':
261
+ return jsxRuntime.jsx(WorldIcon, _objectSpread$2({}, iconProps));
262
+ default:
263
+ return jsxRuntime.jsx("img", {
264
+ src: MissingImageSvg__default["default"],
265
+ alt: "missing icon"
266
+ });
267
+ }
268
+ };
269
+ IconSwitcher.propTypes = {};
270
+ IconSwitcher.displayName = 'IconSwitcher';
271
+ const MenuExpander = props => {
272
+ return jsxRuntime.jsx("li", {
273
+ className: classnames__default["default"](styles$2['list-item'], styles$2.expander, {
274
+ [styles$2.hidden]: !props.isVisible
275
+ }),
276
+ children: jsxRuntime.jsx("div", {
277
+ onClick: props.onClick,
278
+ className: styles$2['expand-icon'],
279
+ "data-testid": "menu-expander",
280
+ children: jsxRuntime.jsx(icons.ArrowRightIcon, {
281
+ color: "surface",
282
+ size: "big"
283
+ })
284
+ })
285
+ }, "expander");
286
+ };
287
+ MenuExpander.propTypes = {};
288
+ MenuExpander.displayName = 'MenuExpander';
289
+ const Faded = /*#__PURE__*/_styled__default["default"]("div", {
290
+ target: "ekdrmmp0"
291
+ } )("position:absolute;top:-32px;height:32px;width:100%;background:linear-gradient(\n 0deg,\n ", applicationComponents.designTokens.backgroundColorForNavbar, " 0%,\n rgba(0, 0, 0, 0) 100%\n );z-index:1;" + ("" ));
292
+ const MenuGroup = props => {
293
+ if (props.isExpanded && (props.level === 2 && !props.hasSubmenu || props.level === 2 && !props.isActive)) {
294
+ return null;
295
+ }
296
+ const isSublistActiveWhileIsMenuExpanded = props.level === 2 && props.isActive && props.isExpanded;
297
+ const isSublistActiveWhileIsMenuCollapsed = props.level === 2 && props.isActive && !props.isExpanded;
298
+ return jsxRuntime.jsx("ul", {
299
+ css: props.isNewNavigationEnabled && /*#__PURE__*/react.css("top:", props.verticalPosition, "px;" + ("" ), "" ),
300
+ id: "group-".concat(props.id),
301
+ "data-testid": "group-".concat(props.id),
302
+ role: "menu",
303
+ "aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
304
+ className: classnames__default["default"]({
305
+ [styles$2.list]: props.level === 1
306
+ }, {
307
+ [styles$2['sublist-new']]: props.level === 2 && props.isNewNavigationEnabled
308
+ }, {
309
+ [styles$2['sublist']]: props.level === 2 && !props.isNewNavigationEnabled
310
+ }, {
311
+ [styles$2['sublist-no-children']]: props.level === 2 && !props.children
312
+ }, {
313
+ [styles$2['sublist-expanded-new__active']]: isSublistActiveWhileIsMenuExpanded && props.isNewNavigationEnabled
314
+ }, {
315
+ [styles$2['sublist-expanded__active']]: isSublistActiveWhileIsMenuExpanded && !props.isNewNavigationEnabled
316
+ }, {
317
+ [styles$2['sublist-collapsed-new__active']]: isSublistActiveWhileIsMenuCollapsed && props.isNewNavigationEnabled
318
+ }, {
319
+ [styles$2['sublist-collapsed__active']]: isSublistActiveWhileIsMenuCollapsed && !props.isNewNavigationEnabled
320
+ }, {
321
+ [styles$2.sublist__inactive]: !isSublistActiveWhileIsMenuCollapsed
322
+ }),
323
+ children: props.children
324
+ });
325
+ };
326
+ MenuGroup.propTypes = {};
327
+ MenuGroup.displayName = 'MenuGroup';
328
+ const MenuItem$1 = /*#__PURE__*/react$1.forwardRef((props, ref) => {
329
+ var _props$isMainMenuRout;
330
+ return jsxRuntime.jsx("li", {
331
+ role: "menuitem",
332
+ className: classnames__default["default"](styles$2['list-item'], {
333
+ [styles$2.item__active]: props.isActive,
334
+ [styles$2['item_menu__active']]: (_props$isMainMenuRout = props.isMainMenuRouteActive) !== null && _props$isMainMenuRout !== void 0 ? _props$isMainMenuRout : false,
335
+ [styles$2['item_menu-collapsed']]: !props.isMenuOpen,
336
+ [styles$2['item__no-submenu']]: !props.hasSubmenu
337
+ }),
338
+ onClick: props.onClick,
339
+ onMouseEnter: props.onMouseEnter,
340
+ onMouseLeave: props.onMouseLeave,
341
+ children: jsxRuntime.jsx("div", {
342
+ ref: ref,
343
+ className: styles$2['item-link'],
344
+ children: props.children
345
+ })
346
+ });
347
+ });
348
+ MenuItem$1.displayName = 'MenuItem';
349
+ const menuItemLinkDefaultProps = {
350
+ exactMatch: false
351
+ };
352
+ const MenuItemLink = props => {
353
+ const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
354
+ if (props.linkTo) {
355
+ return jsxRuntime.jsx(reactRouterDom.NavLink, {
356
+ to: props.linkTo,
357
+ exact: props.exactMatch,
358
+ activeClassName: props.isNewNavigationEnabled ? styles$2['highlighted-new'] : styles$2.highlighted,
359
+ className: props.isNewNavigationEnabled ? styles$2['text-link-new'] : styles$2['text-link'],
360
+ onClick: event => {
361
+ if (props.linkTo && props.useFullRedirectsForLinks) {
362
+ event.preventDefault();
363
+ redirectTo(props.linkTo);
364
+ } else if (props.onClick) {
365
+ event.persist();
366
+ props.onClick(event);
367
+ }
368
+ },
369
+ children: props.children
370
+ });
371
+ }
372
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
373
+ children: props.children
374
+ });
375
+ };
376
+ MenuItemLink.propTypes = {};
377
+ MenuItemLink.displayName = 'MenuItemLink';
378
+ MenuItemLink.defaultProps = menuItemLinkDefaultProps;
379
+ const MenuItemDivider = () => jsxRuntime.jsx("div", {
380
+ className: styles$2.divider
381
+ });
382
+ MenuItemDivider.displayName = 'MenuItemDivider';
383
+ const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
384
+ const restrictedMenuItemDefaultProps = {
385
+ permissions: []
386
+ };
387
+ function isLongLivedFlag(flag) {
388
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
389
+ }
390
+ const RestrictedMenuItem = props => {
391
+ // NOTE: Custom application are activated/deactivated while their
392
+ // visibility is not controlled via a visibiility overwrite.
393
+ const flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
394
+ if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
395
+ const permissionsWrapper = _Array$isArray__default["default"](props.permissions) && props.permissions.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
396
+ permissions: props.permissions,
397
+ actionRights: props.actionRights,
398
+ dataFences: props.dataFences,
399
+ selectDataFenceData: demandedDataFence => {
400
+ switch (demandedDataFence.type) {
401
+ case 'store':
402
+ return demandedDataFence.actualDataFenceValues;
403
+ default:
404
+ return null;
405
+ }
406
+ }
407
+ // Always check that some of the given permissions match.
408
+ ,
409
+ shouldMatchSomePermissions: true,
410
+ projectPermissions: props.projectPermissions,
411
+ children: props.children
412
+ }) : jsxRuntime.jsx(jsxRuntime.Fragment, {
413
+ children: props.children
414
+ });
415
+ if (props.featureToggle) {
416
+ // A regular short-lived feature toggle
417
+ if (flagVariation === true) return permissionsWrapper;
418
+ // A long-lived feature toggle with `{ value: boolean, string: reason }`
419
+ if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
420
+ return null;
421
+ }
422
+ return permissionsWrapper;
423
+ };
424
+ RestrictedMenuItem.propTypes = {};
425
+ RestrictedMenuItem.displayName = 'RestrictedMenuItem';
426
+ RestrictedMenuItem.defaultProps = restrictedMenuItemDefaultProps;
427
+ const MenuLabel = props => {
428
+ var _context;
429
+ const localizedLabel = _findInstanceProperty__default["default"](_context = props.labelAllLocales).call(_context, loc => {
430
+ var _context2;
431
+ return _startsWithInstanceProperty__default["default"](_context2 = props.applicationLocale).call(_context2, loc.locale);
432
+ });
433
+ if (localizedLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
434
+ children: localizedLabel.value
435
+ });
436
+ if (props.defaultLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
437
+ children: props.defaultLabel
438
+ });
439
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
440
+ children: constants.NO_VALUE_FALLBACK
441
+ });
442
+ };
443
+ MenuLabel.propTypes = {
444
+ labelAllLocales: _pt__default["default"].arrayOf(_pt__default["default"].any).isRequired,
445
+ defaultLabel: _pt__default["default"].string,
446
+ applicationLocale: _pt__default["default"].string.isRequired
447
+ };
448
+ const NavBarLayout$1 = /*#__PURE__*/react$1.forwardRef((props, ref) => jsxRuntime.jsxs(jsxRuntime.Fragment, {
449
+ children: [jsxRuntime.jsx(react.Global, {
450
+ styles: /*#__PURE__*/react.css(compiledStyles$2.global, ";" + ("" ), "" )
451
+ }), jsxRuntime.jsx("nav", {
452
+ ref: ref,
453
+ className: props.isNewNavigationEnabled ? styles$2['left-navigation-new'] : styles$2['left-navigation'],
454
+ "data-test": "left-navigation",
455
+ "data-testid": "left-navigation",
456
+ children: props.children
457
+ })]
458
+ }));
459
+ NavBarLayout$1.displayName = 'NavBarLayout';
460
+
461
+ const useLoadingMenuLayoutEffect = () => {
462
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
463
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
464
+ react$1.useLayoutEffect(() => {
465
+ if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
466
+ if (!isForcedMenuOpen) document.body.classList.remove('body__menu-open');
467
+ }, [isForcedMenuOpen]);
468
+ };
469
+
470
+ // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
471
+ const compiledStyles$1 = {
472
+ "global": ":root {\n\n /* Left navigation */\n\n /* Active list item with icon text */\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__left-navigation-new___31u-2 {\n display: grid;\n width: 64px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n height: 100vh;\n grid-template-rows: 56px 1fr;\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 z-index: 1;\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 /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\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__left-navigation-new___31u-2,\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: 75px 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 list-style: none;\n opacity: 0.01;\n display: none;\n}\n\n.navbar-mod__sublist-new___5gy2L {\n padding: var(--spacing-m) var(--spacing-l);\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 background-color: var(--background-color-for-navbar);\n left: 58px;\n z-index: -1;\n list-style: none;\n position: fixed;\n display: none;\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-new___z6xTy {\n display: flex;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n}\n\n.navbar-mod__sublist-item-new__active___ZNiqu {\n border-radius: var(--border-radius-4);\n background: var(--color-accent-30);\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__sublist-item-new___z6xTy: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 border-radius: var(--border-radius-4);\n background: var(--color-primary-95);\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 width: 100%;\n height: 100%;\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-new___1mTbx {\n display: flex;\n align-items: flex-start;\n color: var(--color-solid);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n text-decoration: none;\n padding: calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10)) var(--spacing-30);\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 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.navbar-mod__item_menu-collapsed___cluyY.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n max-height: 44px;\n overflow: hidden;\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n position: absolute;\n /* `left` and `width` required for displaying focus indicator properly */\n left: 46px;\n width: 166px;\n z-index: 1;\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 display: unset;\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__sublist-expanded__active___240JK {\n display: block;\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed-new__active___scHEz,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--color-surface);\n /* TODO: add design tokens instead hard-coded values */\n min-height: 50px;\n width: 253px;\n border-radius: 8px;\n /* z-index value must be higher than AppBar's z-index */\n z-index: 20001;\n box-shadow: -2px 4px 25px 0 rgba(89, 89, 89, 0.5);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n left: 240px;\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__highlighted-new___tJFEc,\n.navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-surface);\n}\n\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc,\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-solid);\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 FIXME: Make the navbar scrollable in collapsed state.\n NOTE: do not use `overflow-x: hidden; overflow-y: auto;` as this prevents submenus from showing up on hover\n */\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE::-webkit-scrollbar {\n display: none;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
473
+ "jsonMap": {
474
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
475
+ "left-navigation-new": "navbar-mod__left-navigation-new___31u-2",
476
+ "list": "navbar-mod__list___RCV3J",
477
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
478
+ "list-item": "navbar-mod__list-item___MjK6t",
479
+ "item-link": "navbar-mod__item-link___X2Ina",
480
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
481
+ "icon": "navbar-mod__icon___bLsep",
482
+ "icon__active": "navbar-mod__icon__active___asorg",
483
+ "title": "navbar-mod__title___eRWUj",
484
+ "expander": "navbar-mod__expander___jyAUi",
485
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
486
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
487
+ "item__active": "navbar-mod__item__active___lo1sr",
488
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
489
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
490
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
491
+ "sublist": "navbar-mod__sublist___os1s7",
492
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
493
+ "title-copy": "navbar-mod__title-copy___o2y1q",
494
+ "sublist-new": "navbar-mod__sublist-new___5gy2L",
495
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
496
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
497
+ "sublist-item-new": "navbar-mod__sublist-item-new___z6xTy",
498
+ "sublist-item-new__active": "navbar-mod__sublist-item-new__active___ZNiqu",
499
+ "text": "navbar-mod__text___ccHEu",
500
+ "text-link": "navbar-mod__text-link___dhtj6",
501
+ "text-link-new": "navbar-mod__text-link-new___1mTbx",
502
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
503
+ "icon-container": "navbar-mod__icon-container___w3FtA",
504
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
505
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
506
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
507
+ "sublist-collapsed-new__active": "navbar-mod__sublist-collapsed-new__active___scHEz",
508
+ "sublist-expanded-new__active": "navbar-mod__sublist-expanded-new__active___KJ32l",
509
+ "highlighted": "navbar-mod__highlighted___oJWkA",
510
+ "highlighted-new": "navbar-mod__highlighted-new___tJFEc",
511
+ "hidden": "navbar-mod__hidden___TQLSs",
512
+ "divider": "navbar-mod__divider___TpVzu",
513
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
514
+ "scrollable-menu-new": "navbar-mod__scrollable-menu-new___4yfOE"
515
+ }
516
+ };
517
+ const styles$1 = compiledStyles$1.jsonMap;
518
+ const LoadingNavBar = () => {
519
+ var _context;
520
+ const ref = react$1.useRef(null);
521
+ useLoadingMenuLayoutEffect();
522
+ return jsxRuntime.jsx(NavBarLayout$1, {
523
+ ref: ref,
524
+ children: jsxRuntime.jsx(MenuGroup, {
525
+ id: "main",
526
+ level: 1,
527
+ children: jsxRuntime.jsx(jsxRuntime.Fragment, {
528
+ children: _mapInstanceProperty__default["default"](_context = _Array$from__default["default"](new Array(5))).call(_context, (_, index) => jsxRuntime.jsx(MenuItem$1, {
529
+ hasSubmenu: false,
530
+ isMenuOpen: false,
531
+ isActive: false,
532
+ onClick: () => undefined,
533
+ children: jsxRuntime.jsx("div", {
534
+ className: styles$1['loading-dot-container'],
535
+ "data-testid": "dot-container-".concat(index),
536
+ children: jsxRuntime.jsx(dist_commercetoolsFrontendApplicationShell.LoadingPlaceholder, {
537
+ shape: "dot",
538
+ size: "m"
539
+ })
540
+ })
541
+ }, index))
542
+ })
543
+ })
544
+ });
545
+ };
546
+ LoadingNavBar.displayName = 'LoadingNavBar';
547
+
548
+ var messages = reactIntl.defineMessages({
549
+ 'NavBar.MCSupport.title': {
550
+ id: 'NavBar.MCSupport.title',
551
+ defaultMessage: 'Support'
552
+ }
553
+ });
554
+
555
+ const NavBarLayout = props => {
556
+ return jsxRuntime.jsx("nav", {
557
+ "aria-busy": true,
558
+ css: /*#__PURE__*/react.css("display:flex;flex-direction:column;height:100%;width:", props.isExpanded ? '256px' : '80px', ";" + ("" ), "" ),
559
+ children: props.children
560
+ });
561
+ };
562
+ NavBarLayout.propTypes = {};
563
+ const NavBarHeader = /*#__PURE__*/_styled__default["default"]("div", {
564
+ target: "epfjvz37"
565
+ } )("display:flex;justify-content:center;align-items:center;padding:", designSystem.designTokens.spacing30, ";height:", constants$1.DIMENSIONS.header, ";background:", designSystem.designTokens.colorAccent10, ";" + ("" ));
566
+ const NavBarBody = /*#__PURE__*/_styled__default["default"]("div", {
567
+ target: "epfjvz36"
568
+ } )("display:flex;flex:1;padding:", designSystem.designTokens.spacing30, ";flex-direction:column;align-items:flex-start;gap:", designSystem.designTokens.spacing40, ";flex-shrink:0;background:#009987;position:relative;&::after{content:'';position:absolute;bottom:0;height:36px;width:calc(100% - 2 * ", designSystem.designTokens.spacing30, ");background:linear-gradient(180deg, rgba(0, 153, 135, 0) 0%, #009987 100%);}" + ("" ));
569
+ const NavBarFooter = /*#__PURE__*/_styled__default["default"]("div", {
570
+ target: "epfjvz35"
571
+ } )("position:relative;display:flex;width:100%;flex-direction:column;background:linear-gradient(180deg, #009987 0%, #004d44 100%);padding:", designSystem.designTokens.spacing30, " ", props => props.isExpanded ? '58px' : '0px', ";justify-content:center;align-items:center;&::before{content:'';position:absolute;top:0;height:1px;width:calc(100% - 2 * ", designSystem.designTokens.spacing30, ");background:rgba(255, 255, 255, 0.5);}" + ("" ));
572
+ const ExpandIcon = /*#__PURE__*/_styled__default["default"]("div", {
573
+ target: "epfjvz34"
574
+ } )("width:40px;height:40px;border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);" + ("" ));
575
+ const MenuItemContainer = /*#__PURE__*/_styled__default["default"]("div", {
576
+ target: "epfjvz33"
577
+ } )("display:flex;align-items:center;justify-content:center;gap:12px;padding:", props => props.contentWidth === 'wide' || !props.isExpanded ? '12px' : '12px 28px', ";height:48px;" + ("" ));
578
+ const MenuItemIcon = /*#__PURE__*/_styled__default["default"]("div", {
579
+ target: "epfjvz32"
580
+ } )("width:24px;height:24px;border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);" + ("" ));
581
+ const MenuItemTitle = /*#__PURE__*/_styled__default["default"]("div", {
582
+ target: "epfjvz31"
583
+ } )("border-radius:", designSystem.designTokens.borderRadius4, ";background:rgba(255, 255, 255, 0.2);flex:1;height:18px;" + ("" ));
584
+ const MenuItemGroup = /*#__PURE__*/_styled__default["default"]("div", {
585
+ target: "epfjvz30"
586
+ } )({
587
+ name: "1d3w5wq",
588
+ styles: "width:100%"
589
+ } );
590
+
591
+ const MenuItem = props => {
592
+ return jsxRuntime.jsxs(MenuItemContainer, {
593
+ isExpanded: props.isExpanded,
594
+ contentWidth: props.contentWidth,
595
+ children: [jsxRuntime.jsx(MenuItemIcon, {}), props.isExpanded && jsxRuntime.jsx(MenuItemTitle, {})]
596
+ });
597
+ };
598
+ MenuItem.defaultProps = {
599
+ contentWidth: 'wide'
600
+ };
601
+ const NavBarSkeleton = props => {
602
+ var _context, _context2, _context3, _context4;
603
+ return jsxRuntime.jsxs(NavBarLayout, {
604
+ isExpanded: props.isExpanded,
605
+ children: [jsxRuntime.jsx(NavBarHeader, {
606
+ children: jsxRuntime.jsx(MenuItemGroup, {
607
+ children: jsxRuntime.jsx(MenuItem, {
608
+ contentWidth: "narrow",
609
+ isExpanded: props.isExpanded
610
+ })
611
+ })
612
+ }), jsxRuntime.jsxs(NavBarBody, {
613
+ children: [jsxRuntime.jsx(MenuItemGroup, {
614
+ children: _mapInstanceProperty__default["default"](_context = [..._keysInstanceProperty__default["default"](_context2 = Array(2)).call(_context2)]).call(_context, index => jsxRuntime.jsx(MenuItem, {
615
+ isExpanded: props.isExpanded
616
+ }, index))
617
+ }), jsxRuntime.jsx(MenuItemGroup, {
618
+ children: _mapInstanceProperty__default["default"](_context3 = [..._keysInstanceProperty__default["default"](_context4 = Array(10)).call(_context4)]).call(_context3, index => jsxRuntime.jsx(MenuItem, {
619
+ isExpanded: props.isExpanded
620
+ }, index))
621
+ }), jsxRuntime.jsx(MenuItemGroup, {
622
+ children: jsxRuntime.jsx(MenuItem, {
623
+ isExpanded: props.isExpanded
624
+ })
625
+ })]
626
+ }), jsxRuntime.jsx(NavBarFooter, {
627
+ isExpanded: props.isExpanded,
628
+ children: jsxRuntime.jsx(ExpandIcon, {})
629
+ })]
630
+ });
631
+ };
632
+ NavBarSkeleton.displayName = 'NavBarSkeleton';
633
+
634
+ // Type guard to help with filtering arrays for nullish elements.
635
+ function nonNullable(value) {
636
+ return value !== null && value !== undefined;
637
+ }
638
+
639
+ 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; }
640
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context4 = ownKeys$1(Object(source), !0)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context5 = ownKeys$1(Object(source))).call(_context5, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
641
+ 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: "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: 537, source: { body: "query FetchProjectExtensionsNavbar {\n projectExtension {\n id\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 } } } };
642
+ const getInitialState = isForcedMenuOpen => ({
643
+ isExpanderVisible: true,
644
+ isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen
645
+ });
646
+ const isForcedMenuOpenDefaultValue = false;
647
+ const reducer = (state, action) => {
648
+ switch (action.type) {
649
+ case 'setActiveItemIndex':
650
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
651
+ activeItemIndex: action.payload
652
+ });
653
+ case 'unsetActiveItemIndex':
654
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
655
+ activeItemIndex: undefined
656
+ });
657
+ case 'setIsExpanderVisible':
658
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
659
+ isExpanderVisible: true
660
+ });
661
+ case 'toggleIsMenuOpen':
662
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
663
+ isMenuOpen: !state.isMenuOpen
664
+ });
665
+ case 'setIsMenuOpenAndMakeExpanderVisible':
666
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
667
+ isExpanderVisible: true,
668
+ isMenuOpen: action.payload
669
+ });
670
+ case 'reset':
671
+ return {
672
+ isExpanderVisible: false,
673
+ isMenuOpen: false
674
+ };
675
+ default:
676
+ return state;
677
+ }
678
+ };
679
+ const useNavbarStateManager = props => {
680
+ var _context, _context2;
681
+ const navBarNode = react$1.useRef(null);
682
+ const applicationsNavBarMenu = useApplicationsMenu.useApplicationsMenu('navBar', {
683
+ queryOptions: {
684
+ onError: sentry.reportErrorToSentry
685
+ },
686
+ environment: props.environment
687
+ });
688
+ const _useMcQuery = dist_commercetoolsFrontendApplicationShell.useMcQuery(FetchProjectExtensionsNavbar, {
689
+ skip: !props.environment.servedByProxy,
690
+ context: {
691
+ target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
692
+ },
693
+ fetchPolicy: 'cache-and-network',
694
+ onError: sentry.reportErrorToSentry
695
+ }),
696
+ projectExtensionsQuery = _useMcQuery.data;
697
+ const allCustomApplicationsNavbarMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.installedApplications ? _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = projectExtensionsQuery.projectExtension.installedApplications).call(_context2, installedApplication => {
698
+ var _context3;
699
+ const application = installedApplication.application;
700
+ // Map the menu properties to match the one from the proxy schema.
701
+ // This is to ensure that the menu object is the same from the proxy
702
+ // config and the custom apps config, thus allowing them to be
703
+ // concatenated and rendered the same way.
704
+ return {
705
+ key: application.id,
706
+ uriPath: application.entryPointUriPath,
707
+ labelAllLocales: application.mainMenuLink.labelAllLocales || [],
708
+ icon: application.icon,
709
+ permissions: application.mainMenuLink.permissions,
710
+ defaultLabel: application.mainMenuLink.defaultLabel,
711
+ featureToggle: undefined,
712
+ menuVisibility: undefined,
713
+ actionRights: undefined,
714
+ dataFences: undefined,
715
+ submenu: _mapInstanceProperty__default["default"](_context3 = application.submenuLinks || []).call(_context3, submenuLink => ({
716
+ key: submenuLink.id,
717
+ uriPath: submenuLink.uriPath,
718
+ labelAllLocales: submenuLink.labelAllLocales || [],
719
+ permissions: submenuLink.permissions,
720
+ defaultLabel: submenuLink.defaultLabel,
721
+ featureToggle: undefined,
722
+ menuVisibility: undefined,
723
+ actionRights: undefined,
724
+ dataFences: undefined
725
+ }))
726
+ };
727
+ })).call(_context, nonNullable) : [];
728
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
729
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? isForcedMenuOpenDefaultValue : JSON.parse(cachedIsForcedMenuOpen);
730
+ if (isNil__default["default"](cachedIsForcedMenuOpen)) {
731
+ window.localStorage.setItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(isForcedMenuOpen));
732
+ }
733
+ const _useReducer = react$1.useReducer(reducer, getInitialState(isForcedMenuOpen)),
734
+ _useReducer2 = _slicedToArray(_useReducer, 2),
735
+ state = _useReducer2[0],
736
+ dispatch = _useReducer2[1];
737
+ const checkSize = react$1.useCallback(throttle__default["default"](() => {
738
+ const shouldOpen = window.innerWidth > 1024;
739
+ const canExpandMenu = window.innerWidth > 918;
740
+
741
+ // If the screen is small, we should always keep the menu closed,
742
+ // no matter the settings.
743
+ if (!canExpandMenu) {
744
+ if (state.isMenuOpen || state.isExpanderVisible) {
745
+ // and resets the state to avoid conflicts
746
+ dispatch({
747
+ type: 'reset'
748
+ });
749
+ }
750
+ } else if (canExpandMenu && state.isExpanderVisible !== true) {
751
+ dispatch({
752
+ type: 'setIsExpanderVisible'
753
+ });
754
+ } else if (isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== shouldOpen) {
755
+ // User has no settings yet (this.props.isForcedMenuOpen === null)
756
+ // We check the viewport size and:
757
+ // - if screen is big, we open the menu
758
+ // - if screen is small we close it
759
+ dispatch({
760
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
761
+ payload: shouldOpen
762
+ });
763
+ } else if (!isNil__default["default"](isForcedMenuOpen) && state.isMenuOpen !== isForcedMenuOpen) {
764
+ // User has setting, we should use that and ignore the screen size.
765
+ // Note: if viewport size is small, we should ignore the user settings.
766
+ dispatch({
767
+ type: 'setIsMenuOpenAndMakeExpanderVisible',
768
+ payload: isForcedMenuOpen
769
+ });
770
+ }
771
+ }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
772
+ const shouldCloseMenuFly = react$1.useCallback(event => {
773
+ if (navBarNode && navBarNode.current && !navBarNode.current.contains(event.target) && !state.isMenuOpen) dispatch({
774
+ type: 'unsetActiveItemIndex'
775
+ });else if (event.type === 'mouseleave') dispatch({
776
+ type: 'unsetActiveItemIndex'
777
+ });
778
+ }, [state.isMenuOpen]);
779
+ react$1.useEffect(() => {
780
+ window.addEventListener('resize', checkSize);
781
+ window.addEventListener('click', shouldCloseMenuFly, true);
782
+ return () => {
783
+ window.removeEventListener('resize', checkSize);
784
+ window.removeEventListener('click', shouldCloseMenuFly, true);
785
+ };
786
+ }, [checkSize, shouldCloseMenuFly]);
787
+ react$1.useEffect(() => {
788
+ checkSize();
789
+ // eslint-disable-next-line react-hooks/exhaustive-deps
790
+ }, []); // <-- run this only once!!
791
+
792
+ react$1.useLayoutEffect(() => {
793
+ if (state.isMenuOpen) document.body.classList.add('body__menu-open');
794
+ if (!state.isMenuOpen) document.body.classList.remove('body__menu-open');
795
+ }, [state.isMenuOpen]);
796
+ const handleToggleItem = react$1.useCallback(nextActiveItemIndex => {
797
+ if (state.activeItemIndex !== nextActiveItemIndex) dispatch({
798
+ type: 'setActiveItemIndex',
799
+ payload: nextActiveItemIndex
800
+ });
801
+ }, [state.activeItemIndex]);
802
+ const handleToggleMenu = react$1.useCallback(() => {
803
+ if (state.isMenuOpen && state.activeItemIndex) {
804
+ dispatch({
805
+ type: 'unsetActiveItemIndex'
806
+ });
807
+ }
808
+ dispatch({
809
+ type: 'toggleIsMenuOpen'
810
+ });
811
+ // Synchronize the menu state with local storage.
812
+ window.localStorage.setItem(constants$1.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
813
+ }, [state.activeItemIndex, state.isMenuOpen]);
814
+ const allInternalApplicationsNavbarMenu = applicationsNavBarMenu || [];
815
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
816
+ navBarNode,
817
+ handleToggleItem,
818
+ handleToggleMenu,
819
+ shouldCloseMenuFly,
820
+ allInternalApplicationsNavbarMenu,
821
+ allCustomApplicationsNavbarMenu
822
+ });
823
+ };
824
+
825
+ 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; }
826
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context9, _context10; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source), !0)).call(_context9, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(source))).call(_context10, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
827
+ // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
828
+ const compiledStyles = {
829
+ "global": ":root {\n\n /* Left navigation */\n\n /* Active list item with icon text */\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__left-navigation-new___31u-2 {\n display: grid;\n width: 64px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n height: 100vh;\n grid-template-rows: 56px 1fr;\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 z-index: 1;\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 /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\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__left-navigation-new___31u-2,\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: 75px 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 list-style: none;\n opacity: 0.01;\n display: none;\n}\n\n.navbar-mod__sublist-new___5gy2L {\n padding: var(--spacing-m) var(--spacing-l);\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 background-color: var(--background-color-for-navbar);\n left: 58px;\n z-index: -1;\n list-style: none;\n position: fixed;\n display: none;\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-new___z6xTy {\n display: flex;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n}\n\n.navbar-mod__sublist-item-new__active___ZNiqu {\n border-radius: var(--border-radius-4);\n background: var(--color-accent-30);\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__sublist-item-new___z6xTy: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 border-radius: var(--border-radius-4);\n background: var(--color-primary-95);\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 width: 100%;\n height: 100%;\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-new___1mTbx {\n display: flex;\n align-items: flex-start;\n color: var(--color-solid);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n text-decoration: none;\n padding: calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10))\n calc(var(--spacing-20) + var(--spacing-10)) var(--spacing-30);\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 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.navbar-mod__item_menu-collapsed___cluyY.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n max-height: 44px;\n overflow: hidden;\n /* stylelint-disable-next-line value-no-vendor-prefix */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n position: absolute;\n /* `left` and `width` required for displaying focus indicator properly */\n left: 46px;\n width: 166px;\n z-index: 1;\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 display: unset;\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__sublist-expanded__active___240JK {\n display: block;\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-collapsed-new__active___scHEz,\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--color-surface);\n /* TODO: add design tokens instead hard-coded values */\n min-height: 50px;\n width: 253px;\n border-radius: 8px;\n /* z-index value must be higher than AppBar's z-index */\n z-index: 20001;\n box-shadow: -2px 4px 25px 0 rgba(89, 89, 89, 0.5);\n}\n\n.navbar-mod__item-link___X2Ina:hover .navbar-mod__sublist-expanded-new__active___KJ32l {\n left: 240px;\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__highlighted-new___tJFEc,\n.navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-surface);\n}\n\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc,\n.navbar-mod__sublist-item-new___z6xTy:hover .navbar-mod__highlighted-new___tJFEc .navbar-mod__title___eRWUj {\n color: var(--color-solid);\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 FIXME: Make the navbar scrollable in collapsed state.\n NOTE: do not use `overflow-x: hidden; overflow-y: auto;` as this prevents submenus from showing up on hover\n */\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n\n.navbar-mod__scrollable-menu-new___4yfOE::-webkit-scrollbar {\n display: none;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
830
+ "jsonMap": {
831
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
832
+ "left-navigation-new": "navbar-mod__left-navigation-new___31u-2",
833
+ "list": "navbar-mod__list___RCV3J",
834
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
835
+ "list-item": "navbar-mod__list-item___MjK6t",
836
+ "item-link": "navbar-mod__item-link___X2Ina",
837
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
838
+ "icon": "navbar-mod__icon___bLsep",
839
+ "icon__active": "navbar-mod__icon__active___asorg",
840
+ "title": "navbar-mod__title___eRWUj",
841
+ "expander": "navbar-mod__expander___jyAUi",
842
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
843
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
844
+ "item__active": "navbar-mod__item__active___lo1sr",
845
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
846
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
847
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
848
+ "sublist": "navbar-mod__sublist___os1s7",
849
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
850
+ "title-copy": "navbar-mod__title-copy___o2y1q",
851
+ "sublist-new": "navbar-mod__sublist-new___5gy2L",
852
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
853
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
854
+ "sublist-item-new": "navbar-mod__sublist-item-new___z6xTy",
855
+ "sublist-item-new__active": "navbar-mod__sublist-item-new__active___ZNiqu",
856
+ "text": "navbar-mod__text___ccHEu",
857
+ "text-link": "navbar-mod__text-link___dhtj6",
858
+ "text-link-new": "navbar-mod__text-link-new___1mTbx",
859
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
860
+ "icon-container": "navbar-mod__icon-container___w3FtA",
861
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
862
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
863
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
864
+ "sublist-collapsed-new__active": "navbar-mod__sublist-collapsed-new__active___scHEz",
865
+ "sublist-expanded-new__active": "navbar-mod__sublist-expanded-new__active___KJ32l",
866
+ "highlighted": "navbar-mod__highlighted___oJWkA",
867
+ "highlighted-new": "navbar-mod__highlighted-new___tJFEc",
868
+ "hidden": "navbar-mod__hidden___TQLSs",
869
+ "divider": "navbar-mod__divider___TpVzu",
870
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
871
+ "scrollable-menu-new": "navbar-mod__scrollable-menu-new___4yfOE"
872
+ }
873
+ };
874
+ const styles = compiledStyles.jsonMap;
875
+ const getMenuVisibilitiesOfSubmenus = menu => {
876
+ var _context, _context2;
877
+ return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
878
+ };
879
+ const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
880
+ const getIsSubmenuRouteActive = (uriPath, props) => {
881
+ var _context3;
882
+ return Boolean(reactRouterDom.matchPath(props.location.pathname, {
883
+ path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, uriPath),
884
+ exact: true,
885
+ strict: false
886
+ }));
887
+ };
888
+ const ApplicationMenu = props => {
889
+ var _context4, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context5, _context6;
890
+ const _useState = react$1.useState(0),
891
+ _useState2 = _slicedToArray(_useState, 2),
892
+ topPosition = _useState2[0],
893
+ setTopPosition = _useState2[1];
894
+ const elementRef = react$1.useRef(null);
895
+
896
+ // We need to calculate the vertical position of the menu item to be able to
897
+ // position the submenu correctly.
898
+ const verticalPosition = topPosition - props.scrollTop;
899
+ react$1.useEffect(() => {
900
+ if (elementRef.current != null) {
901
+ setTopPosition(elementRef.current.offsetTop);
902
+ }
903
+ }, []);
904
+ const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
905
+ path: _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath),
906
+ exact: false,
907
+ strict: false
908
+ }));
909
+ const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
910
+ react$1.useEffect(() => {
911
+ // On first render, check which menu is active for the current application and expand
912
+ // the submenu automatically unless the all navbar is collapsed or there are no submenu links.
913
+ if (props.isMenuOpen && isMainMenuRouteActive && hasSubmenu) {
914
+ props.handleToggleItem();
915
+ }
916
+ // eslint-disable-next-line react-hooks/exhaustive-deps
917
+ }, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
918
+
919
+ const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
920
+ const isMainMenuItemALink =
921
+ // 1. When the navbar is collapsed
922
+ !props.isMenuOpen ||
923
+ // 2. When there is no submenu
924
+ !hasSubmenu ||
925
+ // 3. When the submenu group is active/visible
926
+ props.isActive;
927
+ return jsxRuntime.jsx(RestrictedMenuItem, {
928
+ keyOfMenuItem: props.menu.key,
929
+ featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
930
+ permissions: props.menu.permissions,
931
+ actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
932
+ dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
933
+ projectPermissions: props.projectPermissions,
934
+ menuVisibilities: props.menuVisibilities,
935
+ namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
936
+ children: jsxRuntime.jsxs(MenuItem$1, {
937
+ ref: elementRef,
938
+ hasSubmenu: hasSubmenu,
939
+ isActive: props.isActive,
940
+ isMainMenuRouteActive: isMainMenuRouteActive,
941
+ isMenuOpen: props.isMenuOpen,
942
+ onClick: props.handleToggleItem,
943
+ onMouseEnter: props.isMenuOpen ? undefined : props.handleToggleItem,
944
+ onMouseLeave: props.isMenuOpen ? undefined : props.shouldCloseMenuFly,
945
+ children: [jsxRuntime.jsx(MenuItemLink, {
946
+ linkTo: isMainMenuItemALink ? _concatInstanceProperty__default["default"](_context5 = "/".concat(props.projectKey, "/")).call(_context5, props.menu.uriPath) : undefined,
947
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
948
+ onClick: props.onMenuItemClick,
949
+ children: jsxRuntime.jsxs("div", {
950
+ className: styles['item-icon-text'],
951
+ children: [jsxRuntime.jsx("div", {
952
+ className: styles['icon-container'],
953
+ children: jsxRuntime.jsx("div", {
954
+ className: classnames__default["default"](styles.icon, {
955
+ [styles.icon__active]: props.isActive || isMainMenuRouteActive
956
+ }),
957
+ children: jsxRuntime.jsx(IconSwitcher, {
958
+ icon: props.menu.icon,
959
+ size: "scale"
960
+ })
961
+ })
962
+ }), jsxRuntime.jsx("div", {
963
+ className: styles.title,
964
+ "aria-owns": "group-".concat(props.menu.key),
965
+ children: jsxRuntime.jsx(MenuLabel, {
966
+ labelAllLocales: props.menu.labelAllLocales,
967
+ defaultLabel: props.menu.defaultLabel,
968
+ applicationLocale: props.applicationLocale
969
+ })
970
+ })]
971
+ })
972
+ }), jsxRuntime.jsx(MenuGroup, {
973
+ id: props.menu.key,
974
+ level: 2,
975
+ isActive: props.isActive,
976
+ isExpanded: props.isMenuOpen,
977
+ hasSubmenu: hasSubmenu,
978
+ verticalPosition: verticalPosition,
979
+ isNewNavigationEnabled: props.isNewNavigationEnabled,
980
+ children: hasSubmenu ? _mapInstanceProperty__default["default"](_context6 = props.menu.submenu).call(_context6, submenu => {
981
+ var _context7, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context8;
982
+ return jsxRuntime.jsx(RestrictedMenuItem, {
983
+ keyOfMenuItem: submenu.key,
984
+ featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
985
+ permissions: submenu.permissions,
986
+ actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
987
+ dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
988
+ projectPermissions: props.projectPermissions,
989
+ menuVisibilities: props.menuVisibilities,
990
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
991
+ children: jsxRuntime.jsx("li", {
992
+ className: classnames__default["default"]({
993
+ [styles['sublist-item']]: !props.isNewNavigationEnabled,
994
+ [styles['sublist-item-new']]: props.isNewNavigationEnabled,
995
+ [styles['sublist-item-new__active']]: props.isNewNavigationEnabled && getIsSubmenuRouteActive(submenu.uriPath, props)
996
+ }),
997
+ children: jsxRuntime.jsx("div", {
998
+ className: styles.text,
999
+ children: jsxRuntime.jsx(MenuItemLink, {
1000
+ linkTo: _concatInstanceProperty__default["default"](_context8 = "/".concat(props.projectKey, "/")).call(_context8, submenu.uriPath)
1001
+ // We want to use an exact matching strategy to avoid multiple
1002
+ // links matching sub-routes.
1003
+ ,
1004
+ exactMatch: true,
1005
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1006
+ onClick: props.onMenuItemClick,
1007
+ isNewNavigationEnabled: props.isNewNavigationEnabled,
1008
+ children: jsxRuntime.jsx(MenuLabel, {
1009
+ labelAllLocales: submenu.labelAllLocales,
1010
+ defaultLabel: submenu.defaultLabel,
1011
+ applicationLocale: props.applicationLocale
1012
+ })
1013
+ })
1014
+ })
1015
+ })
1016
+ }, _concatInstanceProperty__default["default"](_context7 = "".concat(props.menu.key, "-submenu-")).call(_context7, submenu.key));
1017
+ }) : null
1018
+ })]
1019
+ })
1020
+ }, props.menu.key);
1021
+ };
1022
+ ApplicationMenu.propTypes = {};
1023
+ ApplicationMenu.displayName = 'ApplicationMenu';
1024
+ const NavBar = props => {
1025
+ const _useNavbarStateManage = useNavbarStateManager({
1026
+ environment: props.environment
1027
+ }),
1028
+ navBarNode = _useNavbarStateManage.navBarNode,
1029
+ isMenuOpen = _useNavbarStateManage.isMenuOpen,
1030
+ isExpanderVisible = _useNavbarStateManage.isExpanderVisible,
1031
+ activeItemIndex = _useNavbarStateManage.activeItemIndex,
1032
+ handleToggleItem = _useNavbarStateManage.handleToggleItem,
1033
+ handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
1034
+ shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
1035
+ allInternalApplicationsNavbarMenu = _useNavbarStateManage.allInternalApplicationsNavbarMenu,
1036
+ allCustomApplicationsNavbarMenu = _useNavbarStateManage.allCustomApplicationsNavbarMenu;
1037
+ const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
1038
+ const location = reactRouterDom.useLocation();
1039
+ const _useState3 = react$1.useState(0),
1040
+ _useState4 = _slicedToArray(_useState3, 2),
1041
+ scrollTop = _useState4[0],
1042
+ setScrollTop = _useState4[1];
1043
+
1044
+ // we need this scroll position to set the correct height of the submenu
1045
+ const handleScroll = react$1.useMemo(() => debounce__default["default"](event => {
1046
+ setScrollTop(event.target.scrollTop);
1047
+ }, 50), []);
1048
+ const projectPermissions = react$1.useMemo(() => {
1049
+ var _props$project, _props$project2, _props$project3;
1050
+ return {
1051
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
1052
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
1053
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
1054
+ };
1055
+ }, [props.project]);
1056
+ const menuVisibilities = react$1.useMemo(() => {
1057
+ var _props$project4;
1058
+ return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
1059
+ }, [props.project]);
1060
+ const applicationLocale = props.applicationLocale;
1061
+
1062
+ // Render the loading navbar as long as all the data
1063
+ // hasn't been loaded, or if the project does not exist.
1064
+ if (props.isLoading || typeof applicationLocale === 'undefined') {
1065
+ // Do not render anything until we have the feature flag remote value fetched so
1066
+ // we avoid a flick effect in case it is 'true' (different value from the default one)
1067
+ if (!props.isNewNavigationEnabledEvaluationReady) {
1068
+ return null;
1069
+ }
1070
+ return props.isNewNavigationEnabled ? jsxRuntime.jsx(NavBarSkeleton, {
1071
+ isExpanded: isMenuOpen
1072
+ }) : jsxRuntime.jsx(LoadingNavBar, {});
1073
+ }
1074
+ return jsxRuntime.jsxs(NavBarLayout$1, {
1075
+ isNewNavigationEnabled: props.isNewNavigationEnabled,
1076
+ ref: navBarNode,
1077
+ children: [props.isNewNavigationEnabled && jsxRuntime.jsx("div", {
1078
+ children: "Navigation header"
1079
+ }), jsxRuntime.jsxs(MenuGroup, {
1080
+ id: "main",
1081
+ level: 1,
1082
+ children: [jsxRuntime.jsxs("div", {
1083
+ className: classnames__default["default"]({
1084
+ [styles['scrollable-menu']]: !props.isNewNavigationEnabled
1085
+ }, {
1086
+ [styles['scrollable-menu-new']]: props.isNewNavigationEnabled
1087
+ }),
1088
+ onScroll: handleScroll,
1089
+ children: [_mapInstanceProperty__default["default"](allInternalApplicationsNavbarMenu).call(allInternalApplicationsNavbarMenu, menu => {
1090
+ const menuType = 'scrollable';
1091
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
1092
+ return jsxRuntime.jsx(ApplicationMenu, {
1093
+ location: location,
1094
+ menu: menu,
1095
+ isActive: activeItemIndex === itemIndex,
1096
+ handleToggleItem: () => handleToggleItem(itemIndex),
1097
+ isMenuOpen: isMenuOpen,
1098
+ shouldCloseMenuFly: shouldCloseMenuFly,
1099
+ projectPermissions: projectPermissions,
1100
+ menuVisibilities: menuVisibilities,
1101
+ applicationLocale: applicationLocale,
1102
+ projectKey: props.projectKey,
1103
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
1104
+ onMenuItemClick: props.onMenuItemClick,
1105
+ scrollTop: scrollTop,
1106
+ isNewNavigationEnabled: props.isNewNavigationEnabled
1107
+ }, menu.key);
1108
+ }), jsxRuntime.jsx(MenuItemDivider, {}), _mapInstanceProperty__default["default"](allCustomApplicationsNavbarMenu).call(allCustomApplicationsNavbarMenu, menu => {
1109
+ const menuType = 'scrollable';
1110
+ const itemIndex = "".concat(menuType, "-").concat(menu.key);
1111
+ return jsxRuntime.jsx(ApplicationMenu, {
1112
+ location: location,
1113
+ menu: menu,
1114
+ isActive: activeItemIndex === itemIndex,
1115
+ handleToggleItem: () => handleToggleItem(itemIndex),
1116
+ isMenuOpen: isMenuOpen,
1117
+ shouldCloseMenuFly: shouldCloseMenuFly,
1118
+ projectPermissions: projectPermissions,
1119
+ menuVisibilities: menuVisibilities,
1120
+ applicationLocale: applicationLocale,
1121
+ projectKey: props.projectKey,
1122
+ useFullRedirectsForLinks: useFullRedirectsForLinks,
1123
+ onMenuItemClick: props.onMenuItemClick,
1124
+ scrollTop: scrollTop,
1125
+ isNewNavigationEnabled: props.isNewNavigationEnabled
1126
+ }, menu.key);
1127
+ })]
1128
+ }), jsxRuntime.jsxs("div", {
1129
+ className: styles['fixed-menu'],
1130
+ children: [jsxRuntime.jsx(Faded, {}), jsxRuntime.jsx(MenuItem$1, {
1131
+ hasSubmenu: false,
1132
+ isActive: false,
1133
+ isMenuOpen: isMenuOpen,
1134
+ onClick: () => {
1135
+ handleToggleItem('fixed-support');
1136
+ },
1137
+ onMouseEnter: isMenuOpen ? undefined : () => handleToggleItem('fixed-support'),
1138
+ onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
1139
+ children: jsxRuntime.jsx("a", {
1140
+ href: constants.SUPPORT_PORTAL_URL,
1141
+ rel: "noopener noreferrer",
1142
+ target: "_blank",
1143
+ children: jsxRuntime.jsxs("div", {
1144
+ className: styles['item-icon-text'],
1145
+ children: [jsxRuntime.jsx("div", {
1146
+ className: styles['icon-container'],
1147
+ children: jsxRuntime.jsx("div", {
1148
+ className: classnames__default["default"](styles.icon, {
1149
+ [styles.icon__active]: activeItemIndex === 'fixed-support'
1150
+ }),
1151
+ children: jsxRuntime.jsx(icons.SupportIcon, {
1152
+ size: "scale"
1153
+ })
1154
+ })
1155
+ }), jsxRuntime.jsx("div", {
1156
+ className: styles.title,
1157
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread({}, messages['NavBar.MCSupport.title']))
1158
+ })]
1159
+ })
1160
+ })
1161
+ }), jsxRuntime.jsx(MenuExpander, {
1162
+ isVisible: isExpanderVisible,
1163
+ onClick: handleToggleMenu,
1164
+ isMenuOpen: isMenuOpen
1165
+ })]
1166
+ })]
1167
+ })]
1168
+ });
1169
+ };
1170
+ NavBar.propTypes = {};
1171
+ NavBar.displayName = 'NavBar';
1172
+
1173
+ exports["default"] = NavBar;