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