@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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var configureApollo = require('./configure-apollo-f632e6cf.cjs.prod.js');
3
+ var configureApollo = require('./configure-apollo-2077e9e6.cjs.prod.js');
4
4
  var _pt = require('prop-types');
5
5
  var react = require('react');
6
6
  var reactRouterDom = require('react-router-dom');
@@ -47,15 +47,6 @@ var CTLogoSVG = require('@commercetools-frontend/assets/images/ct-logo.svg');
47
47
  var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
48
48
  var history = require('@commercetools-frontend/browser-history');
49
49
  var l10n = require('@commercetools-frontend/l10n');
50
- var _Array$from = require('@babel/runtime-corejs3/core-js-stable/array/from');
51
- var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
52
- var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
53
- var reactBroadcast = require('@flopflip/react-broadcast');
54
- var classnames = require('classnames');
55
- var MissingImageSvg = require('@commercetools-frontend/assets/images/diagonal-line.svg');
56
- var permissions = require('@commercetools-frontend/permissions');
57
- var InlineSvg = require('@commercetools-uikit/icons/inline-svg');
58
- var isNil = require('lodash/isNil');
59
50
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
60
51
  var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
61
52
  var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
@@ -70,9 +61,12 @@ var _flagsInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/inst
70
61
  var combineAdapters = require('@flopflip/combine-adapters');
71
62
  var httpAdapter = require('@flopflip/http-adapter');
72
63
  var ldAdapter = require('@flopflip/launchdarkly-adapter');
64
+ var reactBroadcast = require('@flopflip/react-broadcast');
73
65
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
66
+ var types = require('@flopflip/types');
74
67
  var reactRedux = require('react-redux');
75
68
  var upperFirst = require('lodash/upperFirst');
69
+ var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
76
70
  var oidc = require('./oidc-a780f067.cjs.prod.js');
77
71
  require('@commercetools-uikit/design-system/materials/resets.css');
78
72
  var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
@@ -106,13 +100,6 @@ var SelectInput__default = /*#__PURE__*/_interopDefault(SelectInput);
106
100
  var CTLogoSVG__default = /*#__PURE__*/_interopDefault(CTLogoSVG);
107
101
  var LoadingSpinner__default = /*#__PURE__*/_interopDefault(LoadingSpinner);
108
102
  var history__default = /*#__PURE__*/_interopDefault(history);
109
- var _Array$from__default = /*#__PURE__*/_interopDefault(_Array$from);
110
- var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
111
- var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
112
- var classnames__default = /*#__PURE__*/_interopDefault(classnames);
113
- var MissingImageSvg__default = /*#__PURE__*/_interopDefault(MissingImageSvg);
114
- var InlineSvg__default = /*#__PURE__*/_interopDefault(InlineSvg);
115
- var isNil__default = /*#__PURE__*/_interopDefault(isNil);
116
103
  var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
117
104
  var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
118
105
  var _Object$fromEntries__default = /*#__PURE__*/_interopDefault(_Object$fromEntries);
@@ -122,10 +109,11 @@ var httpAdapter__default = /*#__PURE__*/_interopDefault(httpAdapter);
122
109
  var ldAdapter__default = /*#__PURE__*/_interopDefault(ldAdapter);
123
110
  var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
124
111
  var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
112
+ var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
125
113
  var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
126
114
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
127
115
 
128
- const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-ecde7bbe.cjs.prod.js' /* webpackChunkName: "requests-in-flight-loader" */); }));
116
+ const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-84434d03.cjs.prod.js' /* webpackChunkName: "requests-in-flight-loader" */); }));
129
117
 
130
118
  // Attempt to load the `projectKey` from localStorage
131
119
  function selectProjectKeyFromLocalStorage() {
@@ -278,7 +266,7 @@ var messages = reactIntl.defineMessages({
278
266
  }
279
267
  });
280
268
 
281
- const _excluded$1 = ["projectCount"];
269
+ const _excluded = ["projectCount"];
282
270
  function ownKeys$8(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; }
283
271
  function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$8(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
284
272
  var ProjectsQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchUserProjects" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "projects" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "results" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }], loc: { start: 0, end: 218, source: { body: "query FetchUserProjects {\n user: me {\n id\n projects {\n results {\n name\n key\n suspension {\n isActive\n }\n expiry {\n isActive\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
@@ -293,7 +281,7 @@ var _ref4 = {
293
281
  } ;
294
282
  const ProjectSwitcherValueContainer = _ref5 => {
295
283
  let projectCount = _ref5.projectCount,
296
- restProps = _objectWithoutProperties(_ref5, _excluded$1);
284
+ restProps = _objectWithoutProperties(_ref5, _excluded);
297
285
  return jsxRuntime.jsxs("div", {
298
286
  css: _ref4,
299
287
  children: [jsxRuntime.jsx("div", {
@@ -409,7 +397,7 @@ ProjectSwitcher.displayName = 'ProjectSwitcher';
409
397
  // eslint-disable-next-line import/prefer-default-export
410
398
  const REQUESTS_IN_FLIGHT_LOADER_DOM_ID = 'loader-for-requests-in-flight';
411
399
 
412
- const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-6a7b4699.cjs.prod.js' /* webpackChunkName: "user-settings-menu" */); }));
400
+ const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-a724a9b9.cjs.prod.js' /* webpackChunkName: "user-settings-menu" */); }));
413
401
 
414
402
  var _ref$1 = {
415
403
  name: "36bnqj",
@@ -600,398 +588,9 @@ FetchUser.propTypes = {
600
588
  };
601
589
  FetchUser.displayName = 'FetchUser';
602
590
 
603
- const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-c548a201.cjs.prod.js' /* webpackChunkName: "navbar" */); }));
604
-
605
- const _excluded = ["icon"];
606
- function ownKeys$7(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; }
607
- function _objectSpread$7(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$7(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$7(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
608
- const compiledStyles$1 = {
609
- "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",
610
- "jsonMap": {
611
- "left-navigation": "navbar-mod__left-navigation___n7yUt",
612
- "list": "navbar-mod__list___RCV3J",
613
- "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
614
- "list-item": "navbar-mod__list-item___MjK6t",
615
- "item-link": "navbar-mod__item-link___X2Ina",
616
- "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
617
- "icon": "navbar-mod__icon___bLsep",
618
- "icon__active": "navbar-mod__icon__active___asorg",
619
- "title": "navbar-mod__title___eRWUj",
620
- "expander": "navbar-mod__expander___jyAUi",
621
- "expand-icon": "navbar-mod__expand-icon___BtmRa",
622
- "item--bottom": "navbar-mod__item--bottom___eW7nh",
623
- "item__active": "navbar-mod__item__active___lo1sr",
624
- "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
625
- "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
626
- "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
627
- "sublist": "navbar-mod__sublist___os1s7",
628
- "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
629
- "title-copy": "navbar-mod__title-copy___o2y1q",
630
- "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
631
- "sublist-item": "navbar-mod__sublist-item___gafkS",
632
- "text": "navbar-mod__text___ccHEu",
633
- "text-link": "navbar-mod__text-link___dhtj6",
634
- "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
635
- "icon-container": "navbar-mod__icon-container___w3FtA",
636
- "fixed-menu": "navbar-mod__fixed-menu___42tD9",
637
- "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
638
- "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
639
- "highlighted": "navbar-mod__highlighted___oJWkA",
640
- "hidden": "navbar-mod__hidden___TQLSs",
641
- "divider": "navbar-mod__divider___TpVzu",
642
- "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
643
- }
644
- };
645
- const styles$2 = compiledStyles$1.jsonMap;
646
- /*
647
- <DataMenu data={[]}>
648
- <MenuGroup>
649
- <MenuItem>
650
- <MenuItemLink linkTo="/foo">(icon) Products</MenuItemLink>
651
- <MenuGroup>
652
- <MenuItemLink linkTo="/foo/new">Add product</MenuItemLink>
653
- </MenuGroup>
654
- </MenuItem>
655
- </MenuGroup>
656
- <MenuExpander/>
657
- </DataMenu>
658
- */
659
-
660
- const HeartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./heart-ebfab4cd.cjs.prod.js'); }));
661
- const PaperclipIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./paperclip-6f0b6ae5.cjs.prod.js'); }));
662
- const PluginIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./plugin-f199ed20.cjs.prod.js'); }));
663
- const RocketIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./rocket-f0bfae34.cjs.prod.js'); }));
664
- const StarIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./star-c11b0683.cjs.prod.js'); }));
665
- const ConnectedSquareIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./connected-square-960e046b.cjs.prod.js'); }));
666
- const WorldIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./world-f921d80c.cjs.prod.js'); }));
667
- const TreeStructureIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tree-structure-690366f9.cjs.prod.js'); }));
668
- const UserFilledIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-filled-58af1ae4.cjs.prod.js'); }));
669
- const SpeedometerIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./speedometer-0de260cf.cjs.prod.js'); }));
670
- const TagMultiIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tag-multi-f8d9c9e6.cjs.prod.js'); }));
671
- const CartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./cart-f2fc1baf.cjs.prod.js'); }));
672
- const BoxIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./box-e17daf6c.cjs.prod.js'); }));
673
- const GearIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./gear-9b394c43.cjs.prod.js'); }));
674
- const ListWithSearchIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./list-with-search-e3ccba98.cjs.prod.js'); }));
675
- // The icon is expected to be the `svg` document as a string.
676
- // For backwards compatibility purposes, we still support the legacy "icon name",
677
- // which we then map to one of the pre-defined icons.
678
- // Eventually, we want to get rid of this "switch" logic.
679
- const IconSwitcher = _ref => {
680
- let icon = _ref.icon,
681
- iconProps = _objectWithoutProperties(_ref, _excluded);
682
- if (_includesInstanceProperty__default["default"](icon).call(icon, '<svg')) {
683
- return jsxRuntime.jsx(InlineSvg__default["default"], _objectSpread$7({
684
- data: icon
685
- }, iconProps));
686
- }
687
- // Backwards compatibility for apps using the "icon name".
688
- switch (icon) {
689
- // Legacy application icons
690
- // TODO: To be removed once MC applications icons updates are published
691
- case 'TreeStructureIcon':
692
- return jsxRuntime.jsx(TreeStructureIcon, _objectSpread$7({}, iconProps));
693
- case 'UserFilledIcon':
694
- return jsxRuntime.jsx(UserFilledIcon, _objectSpread$7({}, iconProps));
695
- case 'SpeedometerIcon':
696
- return jsxRuntime.jsx(SpeedometerIcon, _objectSpread$7({}, iconProps));
697
- case 'TagMultiIcon':
698
- return jsxRuntime.jsx(TagMultiIcon, _objectSpread$7({}, iconProps));
699
- case 'CartIcon':
700
- return jsxRuntime.jsx(CartIcon, _objectSpread$7({}, iconProps));
701
- case 'BoxIcon':
702
- return jsxRuntime.jsx(BoxIcon, _objectSpread$7({}, iconProps));
703
- case 'GearIcon':
704
- return jsxRuntime.jsx(GearIcon, _objectSpread$7({}, iconProps));
705
- case 'ListWithSearchIcon':
706
- return jsxRuntime.jsx(ListWithSearchIcon, _objectSpread$7({}, iconProps));
707
-
708
- // Custom application icons set
709
- case 'HeartIcon':
710
- return jsxRuntime.jsx(HeartIcon, _objectSpread$7({}, iconProps));
711
- case 'PaperclipIcon':
712
- return jsxRuntime.jsx(PaperclipIcon, _objectSpread$7({}, iconProps));
713
- case 'PluginIcon':
714
- return jsxRuntime.jsx(PluginIcon, _objectSpread$7({}, iconProps));
715
- case 'RocketIcon':
716
- return jsxRuntime.jsx(RocketIcon, _objectSpread$7({}, iconProps));
717
- case 'StarIcon':
718
- return jsxRuntime.jsx(StarIcon, _objectSpread$7({}, iconProps));
719
- case 'ConnectedSquareIcon':
720
- return jsxRuntime.jsx(ConnectedSquareIcon, _objectSpread$7({}, iconProps));
721
- // For backwards compatibility
722
- case 'WorldIcon':
723
- return jsxRuntime.jsx(WorldIcon, _objectSpread$7({}, iconProps));
724
- default:
725
- return jsxRuntime.jsx("img", {
726
- src: MissingImageSvg__default["default"],
727
- alt: "missing icon"
728
- });
729
- }
730
- };
731
- IconSwitcher.propTypes = {};
732
- IconSwitcher.displayName = 'IconSwitcher';
733
- const MenuExpander = props => {
734
- return jsxRuntime.jsx("li", {
735
- className: classnames__default["default"](styles$2['list-item'], styles$2.expander, {
736
- [styles$2.hidden]: !props.isVisible
737
- }),
738
- children: jsxRuntime.jsx("div", {
739
- onClick: props.onClick,
740
- className: styles$2['expand-icon'],
741
- "data-testid": "menu-expander",
742
- children: jsxRuntime.jsx(icons.ArrowRightIcon, {
743
- color: "surface",
744
- size: "big"
745
- })
746
- })
747
- }, "expander");
748
- };
749
- MenuExpander.propTypes = {};
750
- MenuExpander.displayName = 'MenuExpander';
751
- const Faded = /*#__PURE__*/_styled__default["default"]("div", {
752
- target: "ekdrmmp0"
753
- } )("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;" + ("" ));
754
- const MenuGroup = props => {
755
- if (props.isExpanded && (props.level === 2 && !props.hasSubmenu || props.level === 2 && !props.isActive)) {
756
- return null;
757
- }
758
- const isSublistActiveWhileIsMenuExpanded = props.level === 2 && props.isActive && props.isExpanded;
759
- const isSublistActiveWhileIsMenuCollapsed = props.level === 2 && props.isActive && !props.isExpanded;
760
- return jsxRuntime.jsx("ul", {
761
- id: "group-".concat(props.id),
762
- "data-testid": "group-".concat(props.id),
763
- role: "menu",
764
- "aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
765
- className: classnames__default["default"]({
766
- [styles$2.list]: props.level === 1
767
- }, {
768
- [styles$2.sublist]: props.level === 2
769
- }, {
770
- [styles$2['sublist-no-children']]: props.level === 2 && !props.children
771
- }, {
772
- [styles$2['sublist-expanded__active']]: isSublistActiveWhileIsMenuExpanded
773
- }, {
774
- [styles$2['sublist-collapsed__active']]: isSublistActiveWhileIsMenuCollapsed
775
- }, {
776
- [styles$2.sublist__inactive]: !isSublistActiveWhileIsMenuCollapsed
777
- }),
778
- children: props.children
779
- });
780
- };
781
- MenuGroup.propTypes = {};
782
- MenuGroup.displayName = 'MenuGroup';
783
- const MenuItem = props => {
784
- var _props$isMainMenuRout;
785
- return jsxRuntime.jsx("li", {
786
- role: "menuitem",
787
- className: classnames__default["default"](styles$2['list-item'], {
788
- [styles$2.item__active]: props.isActive,
789
- [styles$2['item_menu__active']]: (_props$isMainMenuRout = props.isMainMenuRouteActive) !== null && _props$isMainMenuRout !== void 0 ? _props$isMainMenuRout : false,
790
- [styles$2['item_menu-collapsed']]: !props.isMenuOpen,
791
- [styles$2['item__no-submenu']]: !props.hasSubmenu
792
- }),
793
- onClick: props.onClick,
794
- onMouseEnter: props.onMouseEnter,
795
- onMouseLeave: props.onMouseLeave,
796
- children: jsxRuntime.jsx("div", {
797
- className: styles$2['item-link'],
798
- children: props.children
799
- })
800
- });
801
- };
802
- MenuItem.propTypes = {};
803
- MenuItem.displayName = 'MenuItem';
804
- const menuItemLinkDefaultProps = {
805
- exactMatch: false
806
- };
807
- const MenuItemLink = props => {
808
- const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
809
- if (props.linkTo) {
810
- return jsxRuntime.jsx(reactRouterDom.NavLink, {
811
- to: props.linkTo,
812
- exact: props.exactMatch,
813
- activeClassName: styles$2.highlighted,
814
- className: styles$2['text-link'],
815
- onClick: event => {
816
- if (props.linkTo && props.useFullRedirectsForLinks) {
817
- event.preventDefault();
818
- redirectTo(props.linkTo);
819
- } else if (props.onClick) {
820
- event.persist();
821
- props.onClick(event);
822
- }
823
- },
824
- children: props.children
825
- });
826
- }
827
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
828
- children: props.children
829
- });
830
- };
831
- MenuItemLink.propTypes = {};
832
- MenuItemLink.displayName = 'MenuItemLink';
833
- MenuItemLink.defaultProps = menuItemLinkDefaultProps;
834
- const MenuItemDivider = () => jsxRuntime.jsx("div", {
835
- className: styles$2.divider
836
- });
837
- MenuItemDivider.displayName = 'MenuItemDivider';
838
- const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
839
- const restrictedMenuItemDefaultProps = {
840
- permissions: []
841
- };
842
- function isLongLivedFlag(flag) {
843
- return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
844
- }
845
- const RestrictedMenuItem = props => {
846
- // NOTE: Custom application are activated/deactivated while their
847
- // visibility is not controlled via a visibiility overwrite.
848
- const flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
849
- if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
850
- 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, {
851
- permissions: props.permissions,
852
- actionRights: props.actionRights,
853
- dataFences: props.dataFences,
854
- selectDataFenceData: demandedDataFence => {
855
- switch (demandedDataFence.type) {
856
- case 'store':
857
- return demandedDataFence.actualDataFenceValues;
858
- default:
859
- return null;
860
- }
861
- }
862
- // Always check that some of the given permissions match.
863
- ,
864
- shouldMatchSomePermissions: true,
865
- projectPermissions: props.projectPermissions,
866
- children: props.children
867
- }) : jsxRuntime.jsx(jsxRuntime.Fragment, {
868
- children: props.children
869
- });
870
- if (props.featureToggle) {
871
- // A regular short-lived feature toggle
872
- if (flagVariation === true) return permissionsWrapper;
873
- // A long-lived feature toggle with `{ value: boolean, string: reason }`
874
- if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
875
- return null;
876
- }
877
- return permissionsWrapper;
878
- };
879
- RestrictedMenuItem.propTypes = {};
880
- RestrictedMenuItem.displayName = 'RestrictedMenuItem';
881
- RestrictedMenuItem.defaultProps = restrictedMenuItemDefaultProps;
882
- const MenuLabel = props => {
883
- var _context;
884
- const localizedLabel = _findInstanceProperty__default["default"](_context = props.labelAllLocales).call(_context, loc => {
885
- var _context2;
886
- return _startsWithInstanceProperty__default["default"](_context2 = props.applicationLocale).call(_context2, loc.locale);
887
- });
888
- if (localizedLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
889
- children: localizedLabel.value
890
- });
891
- if (props.defaultLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
892
- children: props.defaultLabel
893
- });
894
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
895
- children: constants$1.NO_VALUE_FALLBACK
896
- });
897
- };
898
- MenuLabel.propTypes = {
899
- labelAllLocales: _pt__default["default"].arrayOf(_pt__default["default"].any).isRequired,
900
- defaultLabel: _pt__default["default"].string,
901
- applicationLocale: _pt__default["default"].string.isRequired
902
- };
903
- const NavBarLayout = /*#__PURE__*/react.forwardRef((props, ref) => jsxRuntime.jsxs(jsxRuntime.Fragment, {
904
- children: [jsxRuntime.jsx(react$1.Global, {
905
- styles: /*#__PURE__*/react$1.css(compiledStyles$1.global, ";" + ("" ), "" )
906
- }), jsxRuntime.jsx("nav", {
907
- ref: ref,
908
- className: styles$2['left-navigation'],
909
- "data-test": "left-navigation",
910
- "data-testid": "left-navigation",
911
- children: props.children
912
- })]
913
- }));
914
- NavBarLayout.displayName = 'NavBarLayout';
915
-
916
- const useLoadingMenuLayoutEffect = () => {
917
- const cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
918
- const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
919
- react.useLayoutEffect(() => {
920
- if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
921
- if (!isForcedMenuOpen) document.body.classList.remove('body__menu-open');
922
- }, [isForcedMenuOpen]);
923
- };
924
-
925
- // https://babeljs.io/blog/2017/09/11/zero-config-with-babel-macros
926
- const compiledStyles = {
927
- "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",
928
- "jsonMap": {
929
- "left-navigation": "navbar-mod__left-navigation___n7yUt",
930
- "list": "navbar-mod__list___RCV3J",
931
- "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
932
- "list-item": "navbar-mod__list-item___MjK6t",
933
- "item-link": "navbar-mod__item-link___X2Ina",
934
- "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
935
- "icon": "navbar-mod__icon___bLsep",
936
- "icon__active": "navbar-mod__icon__active___asorg",
937
- "title": "navbar-mod__title___eRWUj",
938
- "expander": "navbar-mod__expander___jyAUi",
939
- "expand-icon": "navbar-mod__expand-icon___BtmRa",
940
- "item--bottom": "navbar-mod__item--bottom___eW7nh",
941
- "item__active": "navbar-mod__item__active___lo1sr",
942
- "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
943
- "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
944
- "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
945
- "sublist": "navbar-mod__sublist___os1s7",
946
- "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
947
- "title-copy": "navbar-mod__title-copy___o2y1q",
948
- "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
949
- "sublist-item": "navbar-mod__sublist-item___gafkS",
950
- "text": "navbar-mod__text___ccHEu",
951
- "text-link": "navbar-mod__text-link___dhtj6",
952
- "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
953
- "icon-container": "navbar-mod__icon-container___w3FtA",
954
- "fixed-menu": "navbar-mod__fixed-menu___42tD9",
955
- "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
956
- "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
957
- "highlighted": "navbar-mod__highlighted___oJWkA",
958
- "hidden": "navbar-mod__hidden___TQLSs",
959
- "divider": "navbar-mod__divider___TpVzu",
960
- "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
961
- }
962
- };
963
- const styles$1 = compiledStyles.jsonMap;
964
- const LoadingNavBar = () => {
965
- var _context;
966
- const ref = react.useRef(null);
967
- useLoadingMenuLayoutEffect();
968
- return jsxRuntime.jsx(NavBarLayout, {
969
- ref: ref,
970
- children: jsxRuntime.jsx(MenuGroup, {
971
- id: "main",
972
- level: 1,
973
- children: jsxRuntime.jsx(jsxRuntime.Fragment, {
974
- children: _mapInstanceProperty__default["default"](_context = _Array$from__default["default"](new Array(5))).call(_context, (_, index) => jsxRuntime.jsx(MenuItem, {
975
- hasSubmenu: false,
976
- isMenuOpen: false,
977
- isActive: false,
978
- onClick: () => undefined,
979
- children: jsxRuntime.jsx("div", {
980
- className: styles$1['loading-dot-container'],
981
- "data-testid": "dot-container-".concat(index),
982
- children: jsxRuntime.jsx(LoadingPlaceholder, {
983
- shape: "dot",
984
- size: "m"
985
- })
986
- })
987
- }, index))
988
- })
989
- })
990
- });
991
- };
992
- LoadingNavBar.displayName = 'LoadingNavBar';
591
+ const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-0cdfe0f7.cjs.prod.js' /* webpackChunkName: "navbar" */); }));
993
592
 
994
- const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-17d86e50.cjs.prod.js' /* webpackChunkName: "project-container" */); }));
593
+ const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-20379b3d.cjs.prod.js' /* webpackChunkName: "project-container" */); }));
995
594
 
996
595
  const getSelectedDataLocaleForProject = projectLocales => {
997
596
  const cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE);
@@ -1103,7 +702,7 @@ var pimIndexerStates = {
1103
702
  NOT_INDEXED: 'NOT_INDEXED'
1104
703
  };
1105
704
 
1106
- const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-8e4e90a0.cjs.prod.js' /* webpackChunkName: "quick-access" */); }));
705
+ const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-bd5cc59f.cjs.prod.js' /* webpackChunkName: "quick-access" */); }));
1107
706
 
1108
707
  const QuickAccessTrigger = props => {
1109
708
  const _useState = react.useState(false),
@@ -1190,7 +789,7 @@ const QuickAccessTrigger = props => {
1190
789
  QuickAccessTrigger.propTypes = {};
1191
790
  QuickAccessTrigger.displayName = 'QuickAccessTrigger';
1192
791
 
1193
- const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-54a2fc06.cjs.prod.js' /* webpackChunkName: "redirect-to-logout" */); }));
792
+ const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-dd88770a.cjs.prod.js' /* webpackChunkName: "redirect-to-logout" */); }));
1194
793
 
1195
794
  const RedirectToProjectCreate = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-project-create-2266c427.cjs.prod.js' /* webpackChunkName: "redirect-to-project-create" */); }));
1196
795
 
@@ -1218,11 +817,11 @@ const FLAGS = {
1218
817
  [MAIN_NAVIGATION]: false
1219
818
  };
1220
819
 
1221
- function ownKeys$6(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; }
1222
- function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
820
+ function ownKeys$7(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; }
821
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1223
822
  var FetchAllMenuFeatureToggles = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchAllMenuFeatureToggles" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatureToggles" }, arguments: [], directives: [] }] } }], loc: { start: 0, end: 57, source: { body: "query FetchAllMenuFeatureToggles {\n allFeatureToggles\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
1224
823
  const defaultApiUrl = window.location.origin;
1225
- const getDefaultedFeatureToggles = allFeatureToggles => _reduceInstanceProperty__default["default"](allFeatureToggles).call(allFeatureToggles, (previouslyDefaultedFeatureToggles, nextFeatureToggle) => _objectSpread$6(_objectSpread$6({}, previouslyDefaultedFeatureToggles), {}, {
824
+ const getDefaultedFeatureToggles = allFeatureToggles => _reduceInstanceProperty__default["default"](allFeatureToggles).call(allFeatureToggles, (previouslyDefaultedFeatureToggles, nextFeatureToggle) => _objectSpread$7(_objectSpread$7({}, previouslyDefaultedFeatureToggles), {}, {
1226
825
  [nextFeatureToggle]: false
1227
826
  }), {});
1228
827
  const useAllMenuFeatureToggles = () => {
@@ -1247,16 +846,18 @@ const useAllMenuFeatureToggles = () => {
1247
846
  };
1248
847
  };
1249
848
 
1250
- function ownKeys$5(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; }
1251
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
849
+ function ownKeys$6(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; }
850
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$6(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1252
851
  var AllFeaturesQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "AllFeatures" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatures" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "reason" }, arguments: [], directives: [] }] } }] } }], loc: { start: 0, end: 72, source: { body: "query AllFeatures {\n allFeatures {\n name\n value\n reason\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
1253
852
  // This value is hard-coded here because we want to make sure that the
1254
853
  // app uses our account of LD. The value is meant to be public, so there
1255
854
  // is no need to be concerned about security.
1256
855
  const ldClientSideIdProduction = '5979d95f6040390cd07b5e01';
1257
- function getUserCustomFieldsForLaunchDarklyAdapter(user, projectKey) {
856
+ function getUserContextForLaunchDarklyAdapter(user, projectKey) {
1258
857
  var _user$launchdarklyTra, _user$launchdarklyTra2, _user$launchdarklyTra3, _user$launchdarklyTra4, _user$launchdarklyTra5;
1259
858
  return {
859
+ kind: 'user',
860
+ key: user === null || user === void 0 ? void 0 : user.id,
1260
861
  project: projectKey !== null && projectKey !== void 0 ? projectKey : '',
1261
862
  id: (_user$launchdarklyTra = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingId) !== null && _user$launchdarklyTra !== void 0 ? _user$launchdarklyTra : '',
1262
863
  team: (_user$launchdarklyTra2 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingTeam) !== null && _user$launchdarklyTra2 !== void 0 ? _user$launchdarklyTra2 : [],
@@ -1276,7 +877,7 @@ const SetupFlopFlipProvider = props => {
1276
877
  const apolloClient = react$2.useApolloClient();
1277
878
  const enableLongLivedFeatureFlags = applicationShellConnectors.useApplicationContext(context => context.environment.enableLongLivedFeatureFlags);
1278
879
  const allMenuFeatureToggles = useAllMenuFeatureToggles();
1279
- const flags = react.useMemo(() => _objectSpread$5(_objectSpread$5(_objectSpread$5({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
880
+ const flags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
1280
881
  react.useMemo(() => {
1281
882
  if (enableLongLivedFeatureFlags) {
1282
883
  combineAdapters__default["default"].combine([ldAdapter__default["default"], httpAdapter__default["default"]]);
@@ -1284,9 +885,9 @@ const SetupFlopFlipProvider = props => {
1284
885
  combineAdapters__default["default"].combine([ldAdapter__default["default"]]);
1285
886
  }
1286
887
  }, [enableLongLivedFeatureFlags]);
1287
- const defaultFlags = react.useMemo(() => _objectSpread$5(_objectSpread$5(_objectSpread$5({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
888
+ const defaultFlags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
1288
889
  const adapterArgs = react.useMemo(() => {
1289
- var _props$user, _props$ldClientSideId, _props$user2, _props$user3;
890
+ var _props$user, _props$ldClientSideId, _props$user2;
1290
891
  return {
1291
892
  user: {
1292
893
  key: (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.id
@@ -1299,14 +900,11 @@ const SetupFlopFlipProvider = props => {
1299
900
  clientSideId: (_props$ldClientSideId = props.ldClientSideId) !== null && _props$ldClientSideId !== void 0 ? _props$ldClientSideId : ldClientSideIdProduction
1300
901
  },
1301
902
  flags,
1302
- user: {
1303
- key: (_props$user2 = props.user) === null || _props$user2 === void 0 ? void 0 : _props$user2.id,
1304
- custom: getUserCustomFieldsForLaunchDarklyAdapter(props.user, props.projectKey)
1305
- }
903
+ context: getUserContextForLaunchDarklyAdapter(props.user, props.projectKey)
1306
904
  },
1307
905
  http: {
1308
906
  user: {
1309
- key: (_props$user3 = props.user) === null || _props$user3 === void 0 ? void 0 : _props$user3.id
907
+ key: (_props$user2 = props.user) === null || _props$user2 === void 0 ? void 0 : _props$user2.id
1310
908
  },
1311
909
  execute: async function () {
1312
910
  const response = await apolloClient.query({
@@ -1341,16 +939,23 @@ const ThemeSwitcher = () => {
1341
939
  });
1342
940
  };
1343
941
 
1344
- const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-16b5844a.cjs.prod.js' /* webpackChunkName: "version-tracker" */); }));
942
+ const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-3d9b5cf0.cjs.prod.js' /* webpackChunkName: "version-tracker" */); }));
1345
943
 
1346
944
  // TODO: Remove this file once the new navigation is enabled for all users
1347
945
  const NewMainNavigationFlagWrapper = props => {
1348
946
  const isNewNavigationEnabled = reactBroadcast.useFeatureToggle(MAIN_NAVIGATION);
1349
- return props.children(isNewNavigationEnabled);
947
+ const _useAdapterStatus = reactBroadcast.useAdapterStatus({
948
+ adapterIdentifiers: [types.adapterIdentifiers.launchdarkly]
949
+ }),
950
+ isReady = _useAdapterStatus.isReady;
951
+ return props.children({
952
+ isNewNavigationEnabled,
953
+ isNewNavigationEnabledEvaluationReady: isReady
954
+ });
1350
955
  };
1351
956
 
1352
- function ownKeys$4(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; }
1353
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
957
+ function ownKeys$5(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; }
958
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1354
959
  const getHasUnauthorizedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => gqlError.extensions && gqlError.extensions.code && gqlError.extensions.code === 'UNAUTHENTICATED');
1355
960
  const getHasUserBeenDeletedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => {
1356
961
  var _context;
@@ -1438,7 +1043,7 @@ const ApplicationShellAuthenticated = props => {
1438
1043
  return jsxRuntime.jsx(ConfigureIntlProvider
1439
1044
  // We do not want to pass the language as long as the locale data
1440
1045
  // is not loaded.
1441
- , _objectSpread$4(_objectSpread$4({}, isLoadingLocaleData ? {} : {
1046
+ , _objectSpread$5(_objectSpread$5({}, isLoadingLocaleData ? {} : {
1442
1047
  locale,
1443
1048
  messages
1444
1049
  }), {}, {
@@ -1449,12 +1054,14 @@ const ApplicationShellAuthenticated = props => {
1449
1054
  flags: props.featureFlags,
1450
1055
  defaultFlags: props.defaultFeatureFlags,
1451
1056
  children: jsxRuntime.jsx(NewMainNavigationFlagWrapper, {
1452
- children: isNewNavigationEnabled => {
1057
+ children: _ref6 => {
1058
+ let isNewNavigationEnabled = _ref6.isNewNavigationEnabled,
1059
+ isNewNavigationEnabledEvaluationReady = _ref6.isNewNavigationEnabledEvaluationReady;
1453
1060
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1454
1061
  children: [jsxRuntime.jsx(ThemeSwitcher, {}), jsxRuntime.jsx(VersionTracker, {}), jsxRuntime.jsx(RequestsInFlightLoader, {}), jsxRuntime.jsx(sentry.SentryUserTracker, {
1455
1062
  user: user !== null && user !== void 0 ? user : undefined
1456
1063
  }), jsxRuntime.jsxs("div", {
1457
- css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:", isNewNavigationEnabled ? "auto ".concat(constants.DIMENSIONS.header, " 1fr") : "auto ".concat(constants.DIMENSIONS.header, " 1fr"), ";grid-template-columns:", isNewNavigationEnabled ? 'minmax(80px, 256px) 1fr' : 'auto 1fr', ";" + ("" ), "" ),
1064
+ css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:auto ", constants.DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + ("" ), "" ),
1458
1065
  children: [jsxRuntime.jsxs("div", {
1459
1066
  ref: notificationsGlobalRef,
1460
1067
  role: "region",
@@ -1470,9 +1077,9 @@ const ApplicationShellAuthenticated = props => {
1470
1077
  if (!projectKeyFromUrl) return jsxRuntime.jsx(QuickAccessTrigger, {});
1471
1078
  return jsxRuntime.jsx(FetchProject, {
1472
1079
  projectKey: projectKeyFromUrl,
1473
- children: _ref6 => {
1474
- let isProjectLoading = _ref6.isLoading,
1475
- project = _ref6.project;
1080
+ children: _ref7 => {
1081
+ let isProjectLoading = _ref7.isLoading,
1082
+ project = _ref7.project;
1476
1083
  if (isProjectLoading || !project) return null;
1477
1084
 
1478
1085
  // when used outside of a project context,
@@ -1481,9 +1088,9 @@ const ApplicationShellAuthenticated = props => {
1481
1088
  if (!shouldUseProjectContext) return jsxRuntime.jsx(QuickAccessTrigger, {});
1482
1089
  return jsxRuntime.jsx(ProjectDataLocale, {
1483
1090
  locales: project.languages,
1484
- children: _ref7 => {
1485
- let dataLocale = _ref7.locale,
1486
- setProjectDataLocale = _ref7.setProjectDataLocale;
1091
+ children: _ref8 => {
1092
+ let dataLocale = _ref8.locale,
1093
+ setProjectDataLocale = _ref8.setProjectDataLocale;
1487
1094
  return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1488
1095
  user: user,
1489
1096
  project: project,
@@ -1505,7 +1112,7 @@ const ApplicationShellAuthenticated = props => {
1505
1112
  projectKeyFromUrl: projectKeyFromUrl
1506
1113
  })
1507
1114
  }), jsxRuntime.jsx("aside", {
1508
- css: /*#__PURE__*/react$1.css(isNewNavigationEnabled === false && "position: relative;\n grid-row: 3;\n display: flex;\n flex-direction: column;", " ", isNewNavigationEnabled === true && "grid-column: 1/2;\n grid-row: 2/4;\n background-color: beige;", ";" + ("" ), "" ),
1115
+ css: /*#__PURE__*/react$1.css(isNewNavigationEnabled === false && "position: relative;\n grid-row: 3;\n display: flex;\n flex-direction: column;", " ", isNewNavigationEnabled === true && "grid-column: 1/2;\n grid-row: 2/4;\n overflow: hidden;", ";" + ("" ), "" ),
1509
1116
  children: (() => {
1510
1117
  // The <NavBar> should only be rendered within a project
1511
1118
  // context, therefore when there is a `projectKey`.
@@ -1520,12 +1127,10 @@ const ApplicationShellAuthenticated = props => {
1520
1127
  if (!projectKeyFromUrl) return null;
1521
1128
  return jsxRuntime.jsx(FetchProject, {
1522
1129
  projectKey: projectKeyFromUrl,
1523
- children: _ref8 => {
1524
- let isLoadingProject = _ref8.isLoading,
1525
- project = _ref8.project;
1526
- // Render the loading navbar as long as all the data
1527
- // hasn't been loaded, or if the project does not exist.
1528
- if (isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project) return jsxRuntime.jsx(LoadingNavBar, {});
1130
+ children: _ref9 => {
1131
+ let isLoadingProject = _ref9.isLoading,
1132
+ project = _ref9.project;
1133
+ const isLoading = isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project;
1529
1134
  return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1530
1135
  user: user,
1531
1136
  environment: applicationEnvironment
@@ -1533,12 +1138,15 @@ const ApplicationShellAuthenticated = props => {
1533
1138
  // The permissions for the Navbar are resolved separately, within
1534
1139
  // a different React context.
1535
1140
  ,
1536
- children: isNewNavigationEnabled === false && jsxRuntime.jsx(Navbar, {
1141
+ children: jsxRuntime.jsx(Navbar, {
1537
1142
  applicationLocale: locale,
1538
1143
  projectKey: projectKeyFromUrl,
1539
1144
  project: project,
1540
1145
  environment: applicationEnvironment,
1541
- onMenuItemClick: props.onMenuItemClick
1146
+ onMenuItemClick: props.onMenuItemClick,
1147
+ isLoading: isLoading,
1148
+ isNewNavigationEnabled: isNewNavigationEnabled,
1149
+ isNewNavigationEnabledEvaluationReady: isNewNavigationEnabledEvaluationReady
1542
1150
  })
1543
1151
  });
1544
1152
  }
@@ -1675,9 +1283,9 @@ ApplicationPageTitle.propTypes = {
1675
1283
  ApplicationPageTitle.displayName = 'ApplicationPageTitle';
1676
1284
  ApplicationPageTitle.defaultProps = defaultProps$1;
1677
1285
 
1678
- function ownKeys$3(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; }
1679
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1680
- const SuspendedRoute = props => jsxRuntime.jsx(reactRouterDom.Route, _objectSpread$3(_objectSpread$3({}, props), {}, {
1286
+ function ownKeys$4(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; }
1287
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1288
+ const SuspendedRoute = props => jsxRuntime.jsx(reactRouterDom.Route, _objectSpread$4(_objectSpread$4({}, props), {}, {
1681
1289
  children: jsxRuntime.jsx(react.Suspense, {
1682
1290
  fallback: jsxRuntime.jsx(LoadingSpinner__default["default"], {}),
1683
1291
  children: props.children
@@ -1813,10 +1421,10 @@ const hasCachedAuthenticationState = () => {
1813
1421
  return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
1814
1422
  };
1815
1423
 
1816
- const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-e0687f34.cjs.prod.js' /* webpackChunkName: "oidc-callback" */); }));
1424
+ const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-7c234583.cjs.prod.js' /* webpackChunkName: "oidc-callback" */); }));
1817
1425
 
1818
- 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; }
1819
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1426
+ function ownKeys$3(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; }
1427
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1820
1428
  const Authenticated = props => {
1821
1429
  var _window$app$__DEVELOP, _window$app$__DEVELOP2;
1822
1430
  // We attempt to see if the user was already authenticated by looking
@@ -1841,7 +1449,7 @@ const Authenticated = props => {
1841
1449
  }
1842
1450
 
1843
1451
  // Fall back to check for cookie-based authentication.
1844
- return jsxRuntime.jsx(AmILoggedIn, _objectSpread$2({}, props));
1452
+ return jsxRuntime.jsx(AmILoggedIn, _objectSpread$3({}, props));
1845
1453
  };
1846
1454
  Authenticated.displayName = 'Authenticated';
1847
1455
  const AuthenticationRoutes = props => jsxRuntime.jsxs(reactRouterDom.Switch, {
@@ -1858,13 +1466,13 @@ const AuthenticationRoutes = props => jsxRuntime.jsxs(reactRouterDom.Switch, {
1858
1466
  applicationMessages: props.applicationMessages
1859
1467
  })
1860
1468
  }), jsxRuntime.jsx(reactRouterDom.Route, {
1861
- children: jsxRuntime.jsx(Authenticated, _objectSpread$2({}, props))
1469
+ children: jsxRuntime.jsx(Authenticated, _objectSpread$3({}, props))
1862
1470
  })]
1863
1471
  });
1864
1472
  AuthenticationRoutes.displayName = 'AuthenticationRoutes';
1865
1473
 
1866
- 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; }
1867
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$1(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1474
+ 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; }
1475
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1868
1476
  /**
1869
1477
  * NOTE:
1870
1478
  * This function try-catches around a `JSON.parse` and return
@@ -1897,7 +1505,7 @@ const shallowlyCoerceValues = uncoercedEnvironmentValues => {
1897
1505
  var _context;
1898
1506
  return _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](uncoercedEnvironmentValues)).call(_context, (coercedEnvironmentValues, key) => {
1899
1507
  const uncoercedEnvironmentValue = uncoercedEnvironmentValues[key];
1900
- return _objectSpread$1(_objectSpread$1({}, coercedEnvironmentValues), {}, {
1508
+ return _objectSpread$2(_objectSpread$2({}, coercedEnvironmentValues), {}, {
1901
1509
  [key]: getCoerceEnvironmentValue(uncoercedEnvironmentValue)
1902
1510
  });
1903
1511
  }, {});
@@ -1963,7 +1571,7 @@ const ApplicationShellProvider = props => {
1963
1571
  ApplicationShellProvider.propTypes = {};
1964
1572
  ApplicationShellProvider.displayName = 'ApplicationShellProvider';
1965
1573
 
1966
- const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-7cb94c3e.cjs.prod.js' /* webpackChunkName: "redirect-to-login" */); }));
1574
+ const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-cc23cd31.cjs.prod.js' /* webpackChunkName: "redirect-to-login" */); }));
1967
1575
 
1968
1576
  const styles = {
1969
1577
  name: "1prreal",
@@ -2016,6 +1624,197 @@ ApplicationShell.propTypes = {};
2016
1624
  ApplicationShell.displayName = 'ApplicationShell';
2017
1625
  ApplicationShell.version = configureApollo.applicationShellVersion;
2018
1626
 
1627
+ /** All built-in and custom scalars, mapped to their actual values */
1628
+ let TCustomViewStatus = /*#__PURE__*/function (TCustomViewStatus) {
1629
+ TCustomViewStatus["Draft"] = "DRAFT";
1630
+ TCustomViewStatus["PrivateUsage"] = "PRIVATE_USAGE";
1631
+ return TCustomViewStatus;
1632
+ }({});
1633
+ let TCustomViewType = /*#__PURE__*/function (TCustomViewType) {
1634
+ TCustomViewType["CustomPanel"] = "CustomPanel";
1635
+ return TCustomViewType;
1636
+ }({});
1637
+
1638
+ const CustomViewContext = /*#__PURE__*/react.createContext({
1639
+ config: {
1640
+ id: '',
1641
+ defaultLabel: '',
1642
+ labelAllLocales: {},
1643
+ url: '',
1644
+ type: TCustomViewType.CustomPanel,
1645
+ locators: [],
1646
+ permissions: [],
1647
+ createdAt: '',
1648
+ installedBy: [],
1649
+ owner: {
1650
+ createdAt: '',
1651
+ id: '',
1652
+ organizationId: '',
1653
+ updatedAt: ''
1654
+ },
1655
+ ownerId: '',
1656
+ status: TCustomViewStatus.Draft,
1657
+ updatedAt: ''
1658
+ }
1659
+ });
1660
+ const CustomViewContextProvider = props => {
1661
+ const contextValue = react.useMemo(() => ({
1662
+ config: props.config
1663
+ }), [props.config]);
1664
+ return jsxRuntime.jsx(CustomViewContext.Provider, {
1665
+ value: contextValue,
1666
+ children: props.children
1667
+ });
1668
+ };
1669
+ CustomViewContextProvider.propTypes = {};
1670
+ const useCustomViewContext = () => {
1671
+ const context = react.useContext(CustomViewContext);
1672
+ if (!context) {
1673
+ throw new Error('useCustomViewContext must be used within a CustomViewContextProvider');
1674
+ }
1675
+ return context;
1676
+ };
1677
+
1678
+ 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; }
1679
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1680
+ function CustomViewShellAuthenticated(props) {
1681
+ const browserLocale = getBrowserLocale(window);
1682
+ return jsxRuntime.jsx(FetchUser, {
1683
+ children: _ref => {
1684
+ let isLoading = _ref.isLoading,
1685
+ fetchUserError = _ref.error,
1686
+ user = _ref.user;
1687
+ if (isLoading) {
1688
+ return jsxRuntime.jsx(ApplicationLoader, {});
1689
+ }
1690
+ return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1691
+ locale: (user === null || user === void 0 ? void 0 : user.language) || browserLocale,
1692
+ applicationMessages: props.messages,
1693
+ children: _ref2 => {
1694
+ let isLoadingLocaleData = _ref2.isLoading,
1695
+ locale = _ref2.locale,
1696
+ messages = _ref2.messages;
1697
+ return jsxRuntime.jsx(ConfigureIntlProvider
1698
+ // We do not want to pass the language as long as the locale data
1699
+ // is not loaded.
1700
+ , _objectSpread$1(_objectSpread$1({}, isLoadingLocaleData ? {} : {
1701
+ locale,
1702
+ messages
1703
+ }), {}, {
1704
+ children: jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1705
+ user: user,
1706
+ environment: props.environment,
1707
+ children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
1708
+ children: [jsxRuntime.jsx(designSystem.ThemeProvider, {
1709
+ theme: "default"
1710
+ }), !props.projectKey && props.children, Boolean(props.projectKey) && jsxRuntime.jsx(FetchProject, {
1711
+ projectKey: props.projectKey,
1712
+ children: _ref3 => {
1713
+ let isProjectLoading = _ref3.isLoading,
1714
+ project = _ref3.project;
1715
+ if (fetchUserError) {
1716
+ return jsxRuntime.jsx(applicationComponents.PageUnauthorized, {});
1717
+ }
1718
+ if (isProjectLoading) {
1719
+ return jsxRuntime.jsx(ApplicationLoader, {});
1720
+ }
1721
+ return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1722
+ user: user,
1723
+ project: project,
1724
+ projectDataLocale: props.dataLocale,
1725
+ environment: props.environment,
1726
+ children: props.children
1727
+ });
1728
+ }
1729
+ })]
1730
+ })
1731
+ })
1732
+ }));
1733
+ }
1734
+ });
1735
+ }
1736
+ });
1737
+ }
1738
+ CustomViewShellAuthenticated.propTypes = {};
1739
+
1740
+ const browserLocale = getBrowserLocale(window);
1741
+ function CustomViewShell(props) {
1742
+ const _useState = react.useState(),
1743
+ _useState2 = _slicedToArray(_useState, 2),
1744
+ hostContext = _useState2[0],
1745
+ setHostContext = _useState2[1];
1746
+ const iFrameCommunicationPort = react.useRef();
1747
+ const hostMessageHandler = react.useCallback(event => {
1748
+ if (event.data.eventName === constants$1.CUSTOM_VIEWS_EVENTS_NAMES.CUSTOM_VIEW_INITIALIZATION) {
1749
+ setHostContext(event.data.eventData.context);
1750
+ } else {
1751
+ console.warn("CustomViewShell: Unknown received event with name: ".concat(event.data.eventName), {
1752
+ event
1753
+ });
1754
+ }
1755
+ }, []);
1756
+ react.useEffect(() => {
1757
+ const bootstrapMessageHandler = event => {
1758
+ console.log('Custom view shell received message', {
1759
+ event
1760
+ });
1761
+ if (event.origin === window.location.origin && event.data === constants$1.CUSTOM_VIEWS_EVENTS_NAMES.CUSTOM_VIEW_BOOTSTRAP) {
1762
+ iFrameCommunicationPort.current = event.ports[0];
1763
+ iFrameCommunicationPort.current.onmessage = hostMessageHandler;
1764
+ // Once bootstraped, we don't want to listen for global messages anymore.
1765
+ // We will only listen to messages coming through the MessageChannel port.
1766
+ window.removeEventListener('message', bootstrapMessageHandler);
1767
+ } else {
1768
+ console.warn('CustomViewShell: Received an event that is not allowed.', {
1769
+ event
1770
+ });
1771
+ }
1772
+ };
1773
+ window.addEventListener('message', bootstrapMessageHandler);
1774
+ return () => {
1775
+ window.removeEventListener('message', bootstrapMessageHandler);
1776
+ };
1777
+ }, [hostMessageHandler]);
1778
+ if (!hostContext) {
1779
+ return jsxRuntime.jsx(ApplicationLoader, {
1780
+ showLogo: true
1781
+ });
1782
+ }
1783
+ return jsxRuntime.jsx(ApplicationShellProvider, {
1784
+ environment: window.app,
1785
+ applicationMessages: props.messages,
1786
+ children: _ref => {
1787
+ let isAuthenticated = _ref.isAuthenticated;
1788
+ if (isAuthenticated) {
1789
+ return jsxRuntime.jsx(CustomViewContextProvider, {
1790
+ config: hostContext.customViewConfig,
1791
+ children: jsxRuntime.jsx(CustomViewShellAuthenticated, {
1792
+ dataLocale: hostContext.dataLocale,
1793
+ environment: window.app,
1794
+ messages: props.messages,
1795
+ projectKey: hostContext.projectKey,
1796
+ children: props.children
1797
+ })
1798
+ });
1799
+ }
1800
+ return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1801
+ locale: browserLocale,
1802
+ applicationMessages: props.messages,
1803
+ children: _ref2 => {
1804
+ let locale = _ref2.locale,
1805
+ messages = _ref2.messages;
1806
+ return jsxRuntime.jsx(ConfigureIntlProvider, {
1807
+ locale: locale,
1808
+ messages: messages,
1809
+ children: jsxRuntime.jsx(applicationComponents.PageUnauthorized, {})
1810
+ });
1811
+ }
1812
+ });
1813
+ }
1814
+ });
1815
+ }
1816
+ CustomViewShell.propTypes = {};
1817
+
2019
1818
  const defaultProps = {
2020
1819
  shouldCleanUpOnUnmount: true
2021
1820
  };
@@ -2149,29 +1948,23 @@ exports.ApplicationShell = ApplicationShell;
2149
1948
  exports.ApplicationShellProvider = ApplicationShellProvider;
2150
1949
  exports.ButlerContainer = ButlerContainer;
2151
1950
  exports.ConfigureIntlProvider = ConfigureIntlProvider;
1951
+ exports.CustomViewContextProvider = CustomViewContextProvider;
1952
+ exports.CustomViewShell = CustomViewShell;
2152
1953
  exports.ErrorBoundary = ErrorBoundary;
2153
- exports.Faded = Faded;
2154
1954
  exports.FetchProject = FetchProject;
2155
- exports.IconSwitcher = IconSwitcher;
2156
1955
  exports.InjectReducers = InjectReducers;
2157
- exports.MenuExpander = MenuExpander;
2158
- exports.MenuGroup = MenuGroup;
2159
- exports.MenuItem = MenuItem;
2160
- exports.MenuItemDivider = MenuItemDivider;
2161
- exports.MenuItemLink = MenuItemLink;
2162
- exports.MenuLabel = MenuLabel;
2163
- exports.NavBarLayout = NavBarLayout;
1956
+ exports.LoadingPlaceholder = LoadingPlaceholder;
2164
1957
  exports.ProjectDataLocale = ProjectDataLocale;
2165
1958
  exports.ProjectSwitcher = ProjectSwitcher;
2166
1959
  exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
2167
1960
  exports.RedirectToLogin = RedirectToLogin;
2168
1961
  exports.RedirectToProjectCreate = RedirectToProjectCreate;
2169
- exports.RestrictedMenuItem = RestrictedMenuItem;
2170
1962
  exports.SetupFlopFlipProvider = SetupFlopFlipProvider;
2171
1963
  exports.SuspendedRoute = SuspendedRoute;
2172
1964
  exports.createApolloContextForProxyForwardTo = createApolloContextForProxyForwardTo;
2173
1965
  exports.pimIndexerStates = pimIndexerStates;
2174
1966
  exports.setupGlobalErrorListener = setupGlobalErrorListener;
1967
+ exports.useCustomViewContext = useCustomViewContext;
2175
1968
  exports.useMcLazyQuery = useMcLazyQuery;
2176
1969
  exports.useMcMutation = useMcMutation;
2177
1970
  exports.useMcQuery = useMcQuery;