@commercetools-frontend/application-shell 22.10.0 → 22.12.0

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 (94) hide show
  1. package/dist/commercetools-frontend-application-shell.cjs.dev.js +5 -5
  2. package/dist/commercetools-frontend-application-shell.cjs.prod.js +5 -5
  3. package/dist/commercetools-frontend-application-shell.esm.js +5 -5
  4. package/dist/{custom-view-dev-host-cb49959d.esm.js → custom-view-dev-host-97825f04.esm.js} +5 -5
  5. package/dist/{custom-view-dev-host-379d3461.cjs.dev.js → custom-view-dev-host-ab602e4b.cjs.dev.js} +5 -5
  6. package/dist/declarations/src/components/app-bar/app-bar.d.ts +0 -1
  7. package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -0
  8. package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +1 -4
  9. package/dist/declarations/src/components/custom-view-shell/custom-view-shell.d.ts +3 -0
  10. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +1 -4
  11. package/dist/declarations/src/components/navbar/compiled/navbar.css.json.d.ts +3 -0
  12. package/dist/declarations/src/components/navbar/index.d.ts +1 -3
  13. package/dist/declarations/src/components/navbar/{navbar-new/menu-items.d.ts → menu-items.d.ts} +1 -1
  14. package/dist/declarations/src/components/navbar/navbar.d.ts +43 -4
  15. package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +0 -1
  16. package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +1 -4
  17. package/dist/declarations/src/constants.d.ts +2 -6
  18. package/dist/declarations/src/test-utils/custom-views-utils.d.ts +10 -1
  19. package/dist/declarations/src/types/generated/settings.d.ts +114 -1
  20. package/dist/index-090350e1.esm.js +2017 -0
  21. package/dist/index-4f10b4f6.cjs.dev.js +2077 -0
  22. package/dist/{index-1d3e351d.cjs.prod.js → index-d1be72d3.cjs.prod.js} +278 -304
  23. package/dist/navbar-10252888.cjs.prod.js +1096 -0
  24. package/dist/navbar-948abeab.cjs.dev.js +1230 -0
  25. package/dist/navbar-ba4b5961.esm.js +1199 -0
  26. package/dist/{oidc-b2ac8a92.cjs.prod.js → oidc-088842ab.cjs.prod.js} +3 -7
  27. package/dist/{oidc-0c6ca06c.cjs.dev.js → oidc-b577ced5.cjs.dev.js} +3 -7
  28. package/dist/{oidc-95696f7b.esm.js → oidc-beeb911e.esm.js} +3 -7
  29. package/dist/{oidc-callback-23a07314.esm.js → oidc-callback-0c55b52a.esm.js} +5 -5
  30. package/dist/{oidc-callback-d8c66ca9.cjs.dev.js → oidc-callback-79de3285.cjs.dev.js} +5 -5
  31. package/dist/{oidc-callback-c3d56a4a.cjs.prod.js → oidc-callback-fd6fc3cb.cjs.prod.js} +5 -5
  32. package/dist/{project-container-216869fc.cjs.prod.js → project-container-d6ef4f95.cjs.prod.js} +22 -19
  33. package/dist/project-container-d7e433b2.cjs.dev.js +341 -0
  34. package/dist/project-container-dc6a77c1.esm.js +322 -0
  35. package/dist/{project-expired-112eb293.esm.js → project-expired-15d1e2ad.esm.js} +6 -6
  36. package/dist/{project-expired-4015d379.cjs.prod.js → project-expired-5f27a7e0.cjs.prod.js} +6 -6
  37. package/dist/{project-expired-94a0f5f7.cjs.dev.js → project-expired-cd8490b4.cjs.dev.js} +6 -6
  38. package/dist/{project-not-found-fcfed135.cjs.dev.js → project-not-found-1c22a5d3.cjs.dev.js} +6 -6
  39. package/dist/{project-not-found-9aee8dfd.esm.js → project-not-found-343dd667.esm.js} +6 -6
  40. package/dist/{project-not-found-9ac24482.cjs.prod.js → project-not-found-c43387f6.cjs.prod.js} +6 -6
  41. package/dist/{project-not-initialized-5624fe32.cjs.prod.js → project-not-initialized-6294cbc3.cjs.prod.js} +6 -6
  42. package/dist/{project-not-initialized-814ee00a.cjs.dev.js → project-not-initialized-e2dec8e0.cjs.dev.js} +6 -6
  43. package/dist/{project-not-initialized-51df89c0.esm.js → project-not-initialized-f3c58ee4.esm.js} +6 -6
  44. package/dist/{project-suspended-0a013a7f.cjs.prod.js → project-suspended-10846838.cjs.prod.js} +6 -6
  45. package/dist/{project-suspended-10fa0f61.cjs.dev.js → project-suspended-8ce7ddfc.cjs.dev.js} +6 -6
  46. package/dist/{project-suspended-e30818a8.esm.js → project-suspended-ab6c0490.esm.js} +6 -6
  47. package/dist/{quick-access-d5863124.esm.js → quick-access-51aa3d25.esm.js} +5 -5
  48. package/dist/{quick-access-9613aac7.cjs.dev.js → quick-access-5f0de0db.cjs.dev.js} +5 -5
  49. package/dist/{quick-access-a2d6f564.cjs.prod.js → quick-access-6a5e691d.cjs.prod.js} +5 -5
  50. package/dist/{redirect-to-login-aa538da2.cjs.dev.js → redirect-to-login-0a3097b7.cjs.dev.js} +1 -1
  51. package/dist/{redirect-to-login-9535ddbc.esm.js → redirect-to-login-238fc787.esm.js} +1 -1
  52. package/dist/{redirect-to-login-ee9f3801.cjs.prod.js → redirect-to-login-d261e811.cjs.prod.js} +1 -1
  53. package/dist/{redirect-to-logout-4889145e.cjs.prod.js → redirect-to-logout-469ef788.cjs.prod.js} +5 -5
  54. package/dist/{redirect-to-logout-9a89f5d8.esm.js → redirect-to-logout-799ffcc9.esm.js} +5 -5
  55. package/dist/{redirect-to-logout-202a372c.cjs.dev.js → redirect-to-logout-a0f22525.cjs.dev.js} +5 -5
  56. package/dist/{requests-in-flight-loader-697dd557.esm.js → requests-in-flight-loader-24dd0f9b.esm.js} +5 -5
  57. package/dist/{requests-in-flight-loader-9bc6935e.cjs.prod.js → requests-in-flight-loader-3929ce45.cjs.prod.js} +5 -5
  58. package/dist/{requests-in-flight-loader-55be9493.cjs.dev.js → requests-in-flight-loader-d5fb3a86.cjs.dev.js} +5 -5
  59. package/dist/{service-page-project-switcher-e3896261.cjs.prod.js → service-page-project-switcher-38212a13.cjs.prod.js} +1 -1
  60. package/dist/{service-page-project-switcher-ef2835a1.cjs.dev.js → service-page-project-switcher-9bb9d702.cjs.dev.js} +1 -1
  61. package/dist/{service-page-project-switcher-4bc59464.esm.js → service-page-project-switcher-ce8f6d34.esm.js} +1 -1
  62. package/dist/{user-settings-menu-59dbf5d2.cjs.dev.js → user-settings-menu-1b68d2f1.cjs.dev.js} +1 -1
  63. package/dist/{user-settings-menu-70751be9.cjs.prod.js → user-settings-menu-4e010c39.cjs.prod.js} +1 -1
  64. package/dist/{user-settings-menu-5841d422.esm.js → user-settings-menu-622c7fad.esm.js} +1 -1
  65. package/dist/{version-tracker-d1c9e71c.esm.js → version-tracker-219aff77.esm.js} +5 -5
  66. package/dist/{version-tracker-df0e6378.cjs.dev.js → version-tracker-3a534278.cjs.dev.js} +5 -5
  67. package/dist/{version-tracker-ea617837.cjs.prod.js → version-tracker-420ad591.cjs.prod.js} +5 -5
  68. package/package.json +21 -21
  69. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +1 -1
  70. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +1 -1
  71. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +1 -1
  72. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +8 -2
  73. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +8 -2
  74. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +9 -3
  75. package/dist/declarations/src/components/application-shell-authenticated/new-main-navigation-flag-wrapper.d.ts +0 -9
  76. package/dist/declarations/src/components/navbar/navbar-new/compiled/navbar.css.json.d.ts +0 -3
  77. package/dist/declarations/src/components/navbar/navbar-new/navbar.d.ts +0 -48
  78. package/dist/declarations/src/components/navbar/navbar-old/compiled/navbar.css.json.d.ts +0 -3
  79. package/dist/declarations/src/components/navbar/navbar-old/loading-navbar.d.ts +0 -5
  80. package/dist/declarations/src/components/navbar/navbar-old/menu-items.d.ts +0 -100
  81. package/dist/declarations/src/components/navbar/navbar-old/navbar.d.ts +0 -48
  82. package/dist/declarations/src/components/navbar/navbar-old/navbar.styles.d.ts +0 -7
  83. package/dist/declarations/src/components/navbar/use-loading-menu-layout-effect.d.ts +0 -2
  84. package/dist/declarations/src/feature-toggles.d.ts +0 -4
  85. package/dist/index-8c459700.cjs.dev.js +0 -2079
  86. package/dist/index-b87860b8.esm.js +0 -2017
  87. package/dist/navbar-117d6a67.esm.js +0 -2006
  88. package/dist/navbar-4dc84744.cjs.prod.js +0 -1834
  89. package/dist/navbar-a4e4bff2.cjs.dev.js +0 -2037
  90. package/dist/project-container-41ab7c8c.esm.js +0 -321
  91. package/dist/project-container-61346ae8.cjs.dev.js +0 -340
  92. /package/dist/declarations/src/components/navbar/{navbar-new/navbar-skeleton.d.ts → navbar-skeleton.d.ts} +0 -0
  93. /package/dist/declarations/src/components/navbar/{navbar-new/navbar-skeleton.styles.d.ts → navbar-skeleton.styles.d.ts} +0 -0
  94. /package/dist/declarations/src/components/navbar/{navbar-new/navbar.styles.d.ts → navbar.styles.d.ts} +0 -0
@@ -24,10 +24,9 @@ var constants = require('@commercetools-frontend/constants');
24
24
  var i18n = require('@commercetools-frontend/i18n');
25
25
  var reactNotifications = require('@commercetools-frontend/react-notifications');
26
26
  var sentry = require('@commercetools-frontend/sentry');
27
- var oidc = require('./oidc-b2ac8a92.cjs.prod.js');
27
+ var oidc = require('./oidc-088842ab.cjs.prod.js');
28
28
  require('@babel/runtime-corejs3/core-js-stable/url');
29
29
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
30
- var LogoSVG = require('@commercetools-frontend/assets/images/logo.svg');
31
30
  var designSystem = require('@commercetools-uikit/design-system');
32
31
  var Spacings = require('@commercetools-uikit/spacings');
33
32
  var reactIntl = require('react-intl');
@@ -36,9 +35,11 @@ var icons = require('@commercetools-uikit/icons');
36
35
  var useIsServedByProxy = require('./use-is-served-by-proxy-845cace5.cjs.prod.js');
37
36
  var jsxRuntime = require('@emotion/react/jsx-runtime');
38
37
  var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
39
- var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
38
+ var _objectDestructuringEmpty = require('@babel/runtime-corejs3/helpers/objectDestructuringEmpty');
39
+ var _extends = require('@babel/runtime-corejs3/helpers/extends');
40
40
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
41
41
  var memoize = require('memoize-one');
42
+ var reactSelect = require('react-select');
42
43
  var AccessibleHidden = require('@commercetools-uikit/accessible-hidden');
43
44
  var SelectInput = require('@commercetools-uikit/select-input');
44
45
  var CTLogoSVG = require('@commercetools-frontend/assets/images/ct-logo.svg');
@@ -62,7 +63,6 @@ var httpAdapter = require('@flopflip/http-adapter');
62
63
  var ldAdapter = require('@flopflip/launchdarkly-adapter');
63
64
  var reactBroadcast = require('@flopflip/react-broadcast');
64
65
  var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
65
- var types = require('@flopflip/types');
66
66
  var reactRedux = require('react-redux');
67
67
  var upperFirst = require('lodash/upperFirst');
68
68
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
@@ -89,7 +89,6 @@ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_O
89
89
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
90
90
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
91
91
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
92
- var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
93
92
  var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
94
93
  var FlatButton__default = /*#__PURE__*/_interopDefault(FlatButton);
95
94
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
@@ -113,9 +112,9 @@ var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
113
112
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
114
113
 
115
114
  // NOTE: This string will be replaced on build time with the package version.
116
- var applicationShellVersion = "22.10.0";
115
+ var applicationShellVersion = "22.12.0";
117
116
 
118
- const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-9bc6935e.cjs.prod.js' /* webpackChunkName: "requests-in-flight-loader" */); }));
117
+ const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-3929ce45.cjs.prod.js' /* webpackChunkName: "requests-in-flight-loader" */); }));
119
118
 
120
119
  // Attempt to load the `projectKey` from localStorage
121
120
  function selectProjectKeyFromLocalStorage() {
@@ -250,40 +249,35 @@ var messages = reactIntl.defineMessages({
250
249
  }
251
250
  });
252
251
 
253
- const _excluded = ["projectCount"];
254
252
  function ownKeys$8(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
255
253
  function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$8(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
256
254
  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 } } } };
257
255
  const PROJECT_SWITCHER_LABEL_ID = 'project-switcher-label';
258
- var _ref3 = {
256
+ var _ref3$1 = {
259
257
  name: "82a6rk",
260
258
  styles: "flex:1"
261
259
  } ;
262
- var _ref4 = {
260
+ var _ref4$1 = {
263
261
  name: "zol16h",
264
262
  styles: "display:flex;flex:1;align-items:center"
265
263
  } ;
266
- const ProjectSwitcherValueContainer = _ref5 => {
267
- let projectCount = _ref5.projectCount,
268
- restProps = _objectWithoutProperties(_ref5, _excluded);
269
- return jsxRuntime.jsxs("div", {
270
- css: _ref4,
271
- children: [jsxRuntime.jsx("div", {
272
- css: _ref3,
264
+ const ValueContainer = _ref5 => {
265
+ let restProps = _extends({}, (_objectDestructuringEmpty(_ref5), _ref5));
266
+ return jsxRuntime.jsx("div", {
267
+ css: _ref4$1,
268
+ children: jsxRuntime.jsx("div", {
269
+ css: _ref3$1,
273
270
  children: jsxRuntime.jsx(SelectInput__default["default"].ValueContainer, _objectSpread$8(_objectSpread$8({}, restProps), {}, {
274
271
  children: restProps.children
275
272
  }))
276
- }), jsxRuntime.jsx("span", {
277
- css: /*#__PURE__*/react$1.css("width:26px;height:26px;border-radius:100%;background:", designSystem.designTokens.colorNeutral, ";color:", designSystem.designTokens.colorSurface, ";font-size:", designSystem.designTokens.fontSize30, ";display:flex;justify-content:center;align-items:center;" + ("" ), "" ),
278
- children: projectCount
279
- })]
273
+ })
280
274
  });
281
275
  };
282
276
  var _ref$2 = {
283
277
  name: "16lqnjx",
284
278
  styles: "font-size:1.5rem;display:flex"
285
279
  } ;
286
- var _ref2$2 = {
280
+ var _ref2$1 = {
287
281
  name: "10s3lzp",
288
282
  styles: "word-wrap:break-word"
289
283
  } ;
@@ -291,7 +285,7 @@ const ProjectSwitcherOption = props => {
291
285
  const project = props.data;
292
286
  return jsxRuntime.jsx(SelectInput__default["default"].Option, _objectSpread$8(_objectSpread$8({}, props), {}, {
293
287
  children: jsxRuntime.jsxs("div", {
294
- css: _ref2$2,
288
+ css: _ref2$1,
295
289
  children: [jsxRuntime.jsxs("div", {
296
290
  css: /*#__PURE__*/react$1.css("color:", props.isDisabled ? designSystem.designTokens.colorNeutral : designSystem.designTokens.colorAccent, ";" + ("" ), "" ),
297
291
  children: [project.name, props.isDisabled && jsxRuntime.jsx("span", {
@@ -321,6 +315,14 @@ const mapProjectsToOptions = memoize__default["default"](projects => _mapInstanc
321
315
  suspension: project.suspension,
322
316
  expiry: project.expiry
323
317
  })));
318
+ const CustomMenuList = props => {
319
+ return jsxRuntime.jsx("div", {
320
+ css: /*#__PURE__*/react$1.css("width:max-content;max-width:", designSystem.designTokens.constraint6, ";" + ("" ), "" ),
321
+ children: jsxRuntime.jsx(reactSelect.components.MenuList, _objectSpread$8(_objectSpread$8({}, props), {}, {
322
+ children: props.children
323
+ }))
324
+ });
325
+ };
324
326
  const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
325
327
  const ProjectSwitcher = props => {
326
328
  const intl = reactIntl.useIntl();
@@ -334,7 +336,6 @@ const ProjectSwitcher = props => {
334
336
  data = _useMcQuery.data;
335
337
  if (loading) return null;
336
338
  return jsxRuntime.jsxs("div", {
337
- css: /*#__PURE__*/react$1.css("width:", designSystem.designTokens.constraint6, ";" + ("" ), "" ),
338
339
  children: [jsxRuntime.jsx(AccessibleHidden__default["default"], {
339
340
  children: jsxRuntime.jsx("span", {
340
341
  id: PROJECT_SWITCHER_LABEL_ID,
@@ -365,14 +366,14 @@ const ProjectSwitcher = props => {
365
366
  },
366
367
  components: {
367
368
  Option: ProjectSwitcherOption,
368
- ValueContainer: valueContainerProps => jsxRuntime.jsx(ProjectSwitcherValueContainer, _objectSpread$8(_objectSpread$8({}, valueContainerProps), {}, {
369
- projectCount: data && data.user && data.user.projects.results.length || 0
370
- }))
369
+ ValueContainer,
370
+ MenuList: CustomMenuList
371
371
  },
372
372
  isClearable: false,
373
373
  backspaceRemovesValue: false,
374
374
  placeholder: intl.formatMessage(messages.searchPlaceholder),
375
- noOptionsMessage: () => intl.formatMessage(messages.noResults)
375
+ noOptionsMessage: () => intl.formatMessage(messages.noResults),
376
+ horizontalConstraint: 'auto'
376
377
  })]
377
378
  });
378
379
  };
@@ -381,42 +382,19 @@ ProjectSwitcher.displayName = 'ProjectSwitcher';
381
382
  // eslint-disable-next-line import/prefer-default-export
382
383
  const REQUESTS_IN_FLIGHT_LOADER_DOM_ID = 'loader-for-requests-in-flight';
383
384
 
384
- const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-70751be9.cjs.prod.js' /* webpackChunkName: "user-settings-menu" */); }));
385
+ const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-4e010c39.cjs.prod.js' /* webpackChunkName: "user-settings-menu" */); }));
385
386
 
386
387
  var _ref$1 = {
387
388
  name: "36bnqj",
388
389
  styles: "display:flex;flex:1"
389
390
  } ;
390
- var _ref2$1 = {
391
- name: "hlihg7",
392
- styles: "display:block;float:left;width:28px;height:32px;margin-left:20px"
393
- } ;
394
391
  const AppBar = props => {
395
392
  var _props$user$defaultPr, _props$user;
396
393
  const previousProjectKey = getPreviousProjectKey((_props$user$defaultPr = (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.defaultProjectKey) !== null && _props$user$defaultPr !== void 0 ? _props$user$defaultPr : undefined);
397
394
  return jsxRuntime.jsxs("div", {
398
- css: /*#__PURE__*/react$1.css("background-color:", designSystem.designTokens.colorSurface, ";box-shadow:", applicationComponents.designTokens.shadowForAppbar, ";min-height:", oidc.DIMENSIONS.header, ";position:relative;width:100%;z-index:20000;display:flex;align-items:center;justify-content:space-between;" + ("" ), "" ),
395
+ css: /*#__PURE__*/react$1.css("background-color:", designSystem.designTokens.colorSurface, ";box-shadow:", applicationComponents.designTokens.shadowForAppbar, ";padding:0 40px;min-height:", oidc.DIMENSIONS.header, ";position:relative;width:100%;z-index:20000;display:flex;align-items:center;justify-content:space-between;" + ("" ), "" ),
399
396
  "data-test": "top-navigation",
400
- children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
401
- children: [jsxRuntime.jsx("div", {
402
- css: _ref2$1,
403
- children: !props.isNewNavigationEnabled && (!props.user ? jsxRuntime.jsx("img", {
404
- src: LogoSVG__default["default"],
405
- width: "100%",
406
- alt: "Logo"
407
- }) : jsxRuntime.jsx("a", {
408
- href: "/".concat(previousProjectKey || ''),
409
- children: jsxRuntime.jsx("img", {
410
- src: LogoSVG__default["default"],
411
- width: "100%",
412
- alt: "Logo"
413
- })
414
- }))
415
- }), jsxRuntime.jsx("div", {
416
- id: REQUESTS_IN_FLIGHT_LOADER_DOM_ID,
417
- css: _ref$1
418
- })]
419
- }), jsxRuntime.jsx("div", {
397
+ children: [jsxRuntime.jsx("div", {
420
398
  css: /*#__PURE__*/react$1.css("float:right;font-weight:normal;font-size:1rem;margin-right:", applicationComponents.designTokens.marginRightForAppbar, ";display:flex;align-items:center;" + ("" ), "" ),
421
399
  children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
422
400
  scale: "m",
@@ -424,9 +402,7 @@ const AppBar = props => {
424
402
  children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
425
403
  scale: "m",
426
404
  alignItems: "center",
427
- children: [jsxRuntime.jsx("div", {
428
- id: oidc.CONTAINERS.LOCALE_SWITCHER
429
- }), (() => {
405
+ children: [(() => {
430
406
  if (!props.user) {
431
407
  return jsxRuntime.jsx(LoadingPlaceholder, {
432
408
  shape: "rect",
@@ -448,20 +424,27 @@ const AppBar = props => {
448
424
  return jsxRuntime.jsx(BackToProject, {
449
425
  projectKey: previousProjectKey
450
426
  });
451
- })()]
452
- }), jsxRuntime.jsx("div", {
453
- css: /*#__PURE__*/react$1.css("border-left:1px ", designSystem.designTokens.colorNeutral90, " solid;height:", oidc.DIMENSIONS.headerItemDivider, ";" + ("" ), "" )
454
- }), props.user ? jsxRuntime.jsx(UserSettingsMenu, {
455
- language: props.user.language,
456
- firstName: props.user.firstName,
457
- lastName: props.user.lastName,
458
- gravatarHash: props.user.gravatarHash,
459
- email: props.user.email
460
- }) : jsxRuntime.jsx(LoadingPlaceholder, {
461
- shape: "dot",
462
- size: "l"
427
+ })(), jsxRuntime.jsx("div", {
428
+ id: oidc.CONTAINERS.LOCALE_SWITCHER
429
+ })]
430
+ }), jsxRuntime.jsx(Spacings__default["default"].Inline, {
431
+ children: jsxRuntime.jsx("div", {
432
+ id: REQUESTS_IN_FLIGHT_LOADER_DOM_ID,
433
+ css: _ref$1
434
+ })
463
435
  })]
464
436
  })
437
+ }), jsxRuntime.jsx("div", {
438
+ children: props.user ? jsxRuntime.jsx(UserSettingsMenu, {
439
+ language: props.user.language,
440
+ firstName: props.user.firstName,
441
+ lastName: props.user.lastName,
442
+ gravatarHash: props.user.gravatarHash,
443
+ email: props.user.email
444
+ }) : jsxRuntime.jsx(LoadingPlaceholder, {
445
+ shape: "dot",
446
+ size: "l"
447
+ })
465
448
  })]
466
449
  });
467
450
  };
@@ -572,9 +555,9 @@ FetchUser.propTypes = {
572
555
  };
573
556
  FetchUser.displayName = 'FetchUser';
574
557
 
575
- const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-4dc84744.cjs.prod.js' /* webpackChunkName: "navbar" */); }));
558
+ const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-10252888.cjs.prod.js' /* webpackChunkName: "navbar" */); }));
576
559
 
577
- const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-216869fc.cjs.prod.js' /* webpackChunkName: "project-container" */); }));
560
+ const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-d6ef4f95.cjs.prod.js' /* webpackChunkName: "project-container" */); }));
578
561
 
579
562
  const getSelectedDataLocaleForProject = projectLocales => {
580
563
  const cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE);
@@ -686,7 +669,7 @@ var pimIndexerStates = {
686
669
  NOT_INDEXED: 'NOT_INDEXED'
687
670
  };
688
671
 
689
- const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-a2d6f564.cjs.prod.js' /* webpackChunkName: "quick-access" */); }));
672
+ const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-6a5e691d.cjs.prod.js' /* webpackChunkName: "quick-access" */); }));
690
673
 
691
674
  const QuickAccessTrigger = props => {
692
675
  const _useState = react.useState(false),
@@ -773,34 +756,10 @@ const QuickAccessTrigger = props => {
773
756
  QuickAccessTrigger.propTypes = {};
774
757
  QuickAccessTrigger.displayName = 'QuickAccessTrigger';
775
758
 
776
- const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-4889145e.cjs.prod.js' /* webpackChunkName: "redirect-to-logout" */); }));
759
+ const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-469ef788.cjs.prod.js' /* webpackChunkName: "redirect-to-logout" */); }));
777
760
 
778
761
  const RedirectToProjectCreate = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-project-create-2266c427.cjs.prod.js' /* webpackChunkName: "redirect-to-project-create" */); }));
779
762
 
780
- /*
781
- * This file contains a list of all feature toggles used within
782
- * the app shell. Each feature toggle should be a constant.
783
- *
784
- * ```
785
- * export const FEATURE_TOGGLE_NAME = 'featureToggleName';
786
- * export const FLAGS = {
787
- * [FEATURE_TOGGLE_NAME]: false,
788
- * };
789
- * ```
790
- *
791
- * NOTE:
792
- * Default values are not yet passed to flopflip and it has to be decided
793
- * how the integrate with the plugin API.
794
- * The default values would be used whenever feature toggles have not been
795
- * fetched from LaunchDarkly (without default values flopflip will default
796
- * them to off until fetched).
797
- */
798
-
799
- const MAIN_NAVIGATION = 'newMainNavigationBar';
800
- const FLAGS = {
801
- [MAIN_NAVIGATION]: false
802
- };
803
-
804
763
  function ownKeys$7(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
805
764
  function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
806
765
  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 } } } };
@@ -861,7 +820,7 @@ const SetupFlopFlipProvider = props => {
861
820
  const apolloClient = react$2.useApolloClient();
862
821
  const enableLongLivedFeatureFlags = applicationShellConnectors.useApplicationContext(context => context.environment.enableLongLivedFeatureFlags);
863
822
  const allMenuFeatureToggles = useAllMenuFeatureToggles();
864
- const flags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
823
+ const flags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, constants.featureFlags.FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
865
824
  react.useMemo(() => {
866
825
  if (enableLongLivedFeatureFlags) {
867
826
  combineAdapters__default["default"].combine([ldAdapter__default["default"], httpAdapter__default["default"]]);
@@ -869,7 +828,7 @@ const SetupFlopFlipProvider = props => {
869
828
  combineAdapters__default["default"].combine([ldAdapter__default["default"]]);
870
829
  }
871
830
  }, [enableLongLivedFeatureFlags]);
872
- const defaultFlags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
831
+ const defaultFlags = react.useMemo(() => _objectSpread$6(_objectSpread$6(_objectSpread$6({}, constants.featureFlags.FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
873
832
  const adapterArgs = react.useMemo(() => {
874
833
  var _props$user, _props$ldClientSideId, _props$user2;
875
834
  return {
@@ -923,20 +882,7 @@ const ThemeSwitcher = () => {
923
882
  });
924
883
  };
925
884
 
926
- const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-ea617837.cjs.prod.js' /* webpackChunkName: "version-tracker" */); }));
927
-
928
- // TODO: Remove this file once the new navigation is enabled for all users
929
- const NewMainNavigationFlagWrapper = props => {
930
- const isNewNavigationEnabled = reactBroadcast.useFeatureToggle(MAIN_NAVIGATION);
931
- const _useAdapterStatus = reactBroadcast.useAdapterStatus({
932
- adapterIdentifiers: [types.adapterIdentifiers.launchdarkly]
933
- }),
934
- isReady = _useAdapterStatus.isReady;
935
- return props.children({
936
- isNewNavigationEnabled,
937
- isNewNavigationEnabledEvaluationReady: isReady
938
- });
939
- };
885
+ const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-420ad591.cjs.prod.js' /* webpackChunkName: "version-tracker" */); }));
940
886
 
941
887
  function ownKeys$5(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
942
888
  function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$5(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
@@ -949,7 +895,10 @@ const getHasUserBeenDeletedError = graphQLErrors => _findInstanceProperty__defau
949
895
  });
950
896
  const MainContainer = /*#__PURE__*/_styled__default["default"]("main", {
951
897
  target: "esrtekc0"
952
- } )(props => props.isNewNavigationEnabled ? "\n grid-column: 2/3;\n grid-row: 3/4;\n " : "\n grid-column: 2;\n grid-row: 3;\n ", ";min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative;" + ("" ));
898
+ } )({
899
+ name: "evthls",
900
+ styles: "grid-column:2/3;grid-row:3/4;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative"
901
+ } );
953
902
 
954
903
  /**
955
904
  * This component is rendered whenever the user is considered "authenticated"
@@ -960,6 +909,14 @@ var _ref = {
960
909
  styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;}"
961
910
  } ;
962
911
  var _ref2 = {
912
+ name: "lzrvov",
913
+ styles: "grid-column:1/2;grid-row:2/4;overflow:hidden"
914
+ } ;
915
+ var _ref3 = {
916
+ name: "tjbz3t",
917
+ styles: "grid-row:'2/3';grid-column:'2/3'"
918
+ } ;
919
+ var _ref4 = {
963
920
  name: "8bdwu0",
964
921
  styles: "grid-row:1;grid-column:1/3"
965
922
  } ;
@@ -978,10 +935,10 @@ const ApplicationShellAuthenticated = props => {
978
935
  notificationsPageRef
979
936
  });
980
937
  return jsxRuntime.jsx(FetchUser, {
981
- children: _ref3 => {
982
- let isLoadingUser = _ref3.isLoading,
983
- user = _ref3.user,
984
- error = _ref3.error;
938
+ children: _ref5 => {
939
+ let isLoadingUser = _ref5.isLoading,
940
+ user = _ref5.user,
941
+ error = _ref5.error;
985
942
  if (error) {
986
943
  // In case there is an unauthorized error, we redirect to the login page
987
944
  if (error.graphQLErrors && _Array$isArray__default["default"](error.graphQLErrors)) {
@@ -1001,9 +958,9 @@ const ApplicationShellAuthenticated = props => {
1001
958
  return jsxRuntime.jsx(i18n.AsyncLocaleData, {
1002
959
  locale: userLocale,
1003
960
  applicationMessages: props.applicationMessages,
1004
- children: _ref4 => {
1005
- let locale = _ref4.locale,
1006
- messages = _ref4.messages;
961
+ children: _ref6 => {
962
+ let locale = _ref6.locale,
963
+ messages = _ref6.messages;
1007
964
  sentry.reportErrorToSentry(error, {});
1008
965
  return jsxRuntime.jsx(ConfigureIntlProvider, {
1009
966
  locale: locale,
@@ -1020,10 +977,10 @@ const ApplicationShellAuthenticated = props => {
1020
977
  children: jsxRuntime.jsx(i18n.AsyncLocaleData, {
1021
978
  locale: user === null || user === void 0 ? void 0 : user.language,
1022
979
  applicationMessages: props.applicationMessages,
1023
- children: _ref5 => {
1024
- let isLoadingLocaleData = _ref5.isLoading,
1025
- locale = _ref5.locale,
1026
- messages = _ref5.messages;
980
+ children: _ref7 => {
981
+ let isLoadingLocaleData = _ref7.isLoading,
982
+ locale = _ref7.locale,
983
+ messages = _ref7.messages;
1027
984
  return jsxRuntime.jsx(ConfigureIntlProvider
1028
985
  // We do not want to pass the language as long as the locale data
1029
986
  // is not loaded.
@@ -1037,189 +994,178 @@ const ApplicationShellAuthenticated = props => {
1037
994
  ldClientSideId: applicationEnvironment.ldClientSideId,
1038
995
  flags: props.featureFlags,
1039
996
  defaultFlags: props.defaultFeatureFlags,
1040
- children: jsxRuntime.jsx(NewMainNavigationFlagWrapper, {
1041
- children: _ref6 => {
1042
- let isNewNavigationEnabled = _ref6.isNewNavigationEnabled,
1043
- isNewNavigationEnabledEvaluationReady = _ref6.isNewNavigationEnabledEvaluationReady;
1044
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1045
- children: [jsxRuntime.jsx(ThemeSwitcher, {}), jsxRuntime.jsx(VersionTracker, {}), jsxRuntime.jsx(RequestsInFlightLoader, {}), jsxRuntime.jsx(sentry.SentryUserTracker, {
1046
- user: user !== null && user !== void 0 ? user : undefined
1047
- }), jsxRuntime.jsxs("div", {
1048
- css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:auto ", oidc.DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + ("" ), "" ),
1049
- children: [jsxRuntime.jsxs("div", {
1050
- ref: notificationsGlobalRef,
1051
- role: "region",
1052
- "aria-live": "polite",
1053
- css: _ref2,
1054
- children: [jsxRuntime.jsx("div", {
1055
- id: "above-top-navigation"
1056
- }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1057
- domain: constants.DOMAINS.GLOBAL
1058
- })]
1059
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1060
- children: () => {
1061
- if (!projectKeyFromUrl) return jsxRuntime.jsx(QuickAccessTrigger, {});
1062
- return jsxRuntime.jsx(FetchProject, {
1063
- projectKey: projectKeyFromUrl,
1064
- children: _ref7 => {
1065
- let isProjectLoading = _ref7.isLoading,
1066
- project = _ref7.project;
1067
- if (isProjectLoading || !project) return null;
1068
-
1069
- // when used outside of a project context,
1070
- // or when the project is expired or supsended
1071
- const shouldUseProjectContext = !(project.suspension && project.suspension.isActive || project.expiry && project.expiry.isActive);
1072
- if (!shouldUseProjectContext) return jsxRuntime.jsx(QuickAccessTrigger, {});
1073
- return jsxRuntime.jsx(ProjectDataLocale, {
1074
- locales: project.languages,
1075
- children: _ref8 => {
1076
- let dataLocale = _ref8.locale,
1077
- setProjectDataLocale = _ref8.setProjectDataLocale;
1078
- return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1079
- user: user,
1080
- project: project,
1081
- projectDataLocale: dataLocale,
1082
- environment: applicationEnvironment,
1083
- children: jsxRuntime.jsx(QuickAccessTrigger, {
1084
- onChangeProjectDataLocale: setProjectDataLocale
1085
- })
1086
- });
1087
- }
1088
- });
1089
- }
1090
- });
1091
- }
1092
- }), jsxRuntime.jsx("header", {
1093
- css: /*#__PURE__*/react$1.css("grid-row:", isNewNavigationEnabled ? '2/3' : '2', ";grid-column:", isNewNavigationEnabled ? '2/3' : '1/3', ";" + ("" ), "" ),
1094
- children: jsxRuntime.jsx(AppBar, {
1095
- user: user,
1096
- projectKeyFromUrl: projectKeyFromUrl,
1097
- isNewNavigationEnabled: isNewNavigationEnabled
1098
- })
1099
- }), jsxRuntime.jsx("aside", {
1100
- 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;", ";" + ("" ), "" ),
1101
- children: (() => {
1102
- // The <NavBar> should only be rendered within a project
1103
- // context, therefore when there is a `projectKey`.
1104
- // If there is no `projectKey` in the URL (e.g. `/account`
1105
- // routes), we don't render it.
1106
- // NOTE: we also "cache" the `projectKey` in localStorage
1107
- // but this should only be used to "re-hydrate" the URL
1108
- // location (e.g when you go to `/`, there should be a
1109
- // redirect to `/:projectKey`). Therefore, we should not
1110
- // rely on the value in localStorage to determine which
1111
- // `projectKey` is currently used.
1112
- if (!projectKeyFromUrl) return null;
1113
- return jsxRuntime.jsx(FetchProject, {
1114
- projectKey: projectKeyFromUrl,
997
+ children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
998
+ children: [jsxRuntime.jsx(ThemeSwitcher, {}), jsxRuntime.jsx(VersionTracker, {}), jsxRuntime.jsx(RequestsInFlightLoader, {}), jsxRuntime.jsx(sentry.SentryUserTracker, {
999
+ user: user !== null && user !== void 0 ? user : undefined
1000
+ }), jsxRuntime.jsxs("div", {
1001
+ css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:auto ", oidc.DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + ("" ), "" ),
1002
+ children: [jsxRuntime.jsxs("div", {
1003
+ ref: notificationsGlobalRef,
1004
+ role: "region",
1005
+ "aria-live": "polite",
1006
+ css: _ref4,
1007
+ children: [jsxRuntime.jsx("div", {
1008
+ id: "above-top-navigation"
1009
+ }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1010
+ domain: constants.DOMAINS.GLOBAL
1011
+ })]
1012
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
1013
+ children: () => {
1014
+ if (!projectKeyFromUrl) return jsxRuntime.jsx(QuickAccessTrigger, {});
1015
+ return jsxRuntime.jsx(FetchProject, {
1016
+ projectKey: projectKeyFromUrl,
1017
+ children: _ref8 => {
1018
+ let isProjectLoading = _ref8.isLoading,
1019
+ project = _ref8.project;
1020
+ if (isProjectLoading || !project) return null;
1021
+
1022
+ // when used outside of a project context,
1023
+ // or when the project is expired or supsended
1024
+ const shouldUseProjectContext = !(project.suspension && project.suspension.isActive || project.expiry && project.expiry.isActive);
1025
+ if (!shouldUseProjectContext) return jsxRuntime.jsx(QuickAccessTrigger, {});
1026
+ return jsxRuntime.jsx(ProjectDataLocale, {
1027
+ locales: project.languages,
1115
1028
  children: _ref9 => {
1116
- let isLoadingProject = _ref9.isLoading,
1117
- project = _ref9.project;
1118
- const isLoading = isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project;
1029
+ let dataLocale = _ref9.locale,
1030
+ setProjectDataLocale = _ref9.setProjectDataLocale;
1119
1031
  return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1120
1032
  user: user,
1121
- environment: applicationEnvironment
1122
- // NOTE: do not pass the `project` into the application context.
1123
- // The permissions for the Navbar are resolved separately, within
1124
- // a different React context.
1125
- ,
1126
- children: jsxRuntime.jsx(Navbar, {
1127
- applicationLocale: locale,
1128
- projectKey: projectKeyFromUrl,
1129
- project: project,
1130
- environment: applicationEnvironment,
1131
- onMenuItemClick: props.onMenuItemClick,
1132
- isLoading: isLoading,
1133
- isNewNavigationEnabled: isNewNavigationEnabled,
1134
- isNewNavigationEnabledEvaluationReady: isNewNavigationEnabledEvaluationReady
1033
+ project: project,
1034
+ projectDataLocale: dataLocale,
1035
+ environment: applicationEnvironment,
1036
+ children: jsxRuntime.jsx(QuickAccessTrigger, {
1037
+ onChangeProjectDataLocale: setProjectDataLocale
1135
1038
  })
1136
1039
  });
1137
1040
  }
1138
1041
  });
1139
- })()
1140
- }), isLoadingUser || isLoadingLocaleData ? jsxRuntime.jsx(MainContainer, {
1141
- isNewNavigationEnabled: isNewNavigationEnabled,
1142
- role: "main",
1143
- children: jsxRuntime.jsx(ApplicationLoader, {})
1144
- }) : jsxRuntime.jsxs(MainContainer, {
1145
- isNewNavigationEnabled: isNewNavigationEnabled,
1146
- role: "main",
1147
- children: [jsxRuntime.jsx("div", {
1148
- ref: notificationsPageRef,
1149
- children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
1150
- domain: constants.DOMAINS.PAGE
1042
+ }
1043
+ });
1044
+ }
1045
+ }), jsxRuntime.jsx("header", {
1046
+ css: _ref3,
1047
+ children: jsxRuntime.jsx(AppBar, {
1048
+ user: user,
1049
+ projectKeyFromUrl: projectKeyFromUrl
1050
+ })
1051
+ }), jsxRuntime.jsx("aside", {
1052
+ css: _ref2,
1053
+ children: (() => {
1054
+ // The <NavBar> should only be rendered within a project
1055
+ // context, therefore when there is a `projectKey`.
1056
+ // If there is no `projectKey` in the URL (e.g. `/account`
1057
+ // routes), we don't render it.
1058
+ // NOTE: we also "cache" the `projectKey` in localStorage
1059
+ // but this should only be used to "re-hydrate" the URL
1060
+ // location (e.g when you go to `/`, there should be a
1061
+ // redirect to `/:projectKey`). Therefore, we should not
1062
+ // rely on the value in localStorage to determine which
1063
+ // `projectKey` is currently used.
1064
+ if (!projectKeyFromUrl) return null;
1065
+ return jsxRuntime.jsx(FetchProject, {
1066
+ projectKey: projectKeyFromUrl,
1067
+ children: _ref10 => {
1068
+ let isLoadingProject = _ref10.isLoading,
1069
+ project = _ref10.project;
1070
+ const isLoading = isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project;
1071
+ return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
1072
+ user: user,
1073
+ environment: applicationEnvironment
1074
+ // NOTE: do not pass the `project` into the application context.
1075
+ // The permissions for the Navbar are resolved separately, within
1076
+ // a different React context.
1077
+ ,
1078
+ children: jsxRuntime.jsx(Navbar, {
1079
+ applicationLocale: locale,
1080
+ projectKey: projectKeyFromUrl,
1081
+ project: project,
1082
+ environment: applicationEnvironment,
1083
+ onMenuItemClick: props.onMenuItemClick,
1084
+ isLoading: isLoading
1085
+ })
1086
+ });
1087
+ }
1088
+ });
1089
+ })()
1090
+ }), isLoadingUser || isLoadingLocaleData ? jsxRuntime.jsx(MainContainer, {
1091
+ role: "main",
1092
+ children: jsxRuntime.jsx(ApplicationLoader, {})
1093
+ }) : jsxRuntime.jsxs(MainContainer, {
1094
+ role: "main",
1095
+ children: [jsxRuntime.jsx("div", {
1096
+ ref: notificationsPageRef,
1097
+ children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
1098
+ domain: constants.DOMAINS.PAGE
1099
+ })
1100
+ }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1101
+ domain: constants.DOMAINS.SIDE
1102
+ }), jsxRuntime.jsxs("div", {
1103
+ css: _ref,
1104
+ children: [jsxRuntime.jsx(applicationComponents.PortalsContainer
1105
+ // @ts-ignore
1106
+ , {
1107
+ ref: layoutRefs,
1108
+ offsetTop: oidc.DIMENSIONS.header,
1109
+ offsetLeft: projectKeyFromUrl ? oidc.DIMENSIONS.navMenu : '0px',
1110
+ offsetLeftOnExpandedMenu: projectKeyFromUrl ? oidc.DIMENSIONS.navMenuExpanded : '0px'
1111
+ }), jsxRuntime.jsxs(reactRouterDom.Switch, {
1112
+ children: [jsxRuntime.jsx(reactRouterDom.Redirect, {
1113
+ from: "/profile",
1114
+ to: "/account/profile"
1115
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
1116
+ path: "/account",
1117
+ children:
1118
+ /**
1119
+ * In case the AppShell uses the `render` function, we assume it's one of two cases:
1120
+ * 1. The application does not use `children` and therefore implements the routes including
1121
+ * the <RouteCatchAll> (this is the "legacy" behavior).
1122
+ * 2. It's the account application, which always uses `render` and therefore should render as normal.
1123
+ *
1124
+ * In case the AppShell uses the `children` function, we can always assume that
1125
+ * it's a normal Custom Application and that it should trigger a force reload.
1126
+ */
1127
+ props.render ? jsxRuntime.jsx(jsxRuntime.Fragment, {
1128
+ children: props.render()
1129
+ }) : jsxRuntime.jsx(index.RouteCatchAll, {})
1130
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
1131
+ exact: true,
1132
+ path: "/",
1133
+ children: (_user$defaultProjectK => {
1134
+ const previousProjectKey = getPreviousProjectKey((_user$defaultProjectK = user === null || user === void 0 ? void 0 : user.defaultProjectKey) !== null && _user$defaultProjectK !== void 0 ? _user$defaultProjectK : undefined);
1135
+
1136
+ /**
1137
+ * NOTE:
1138
+ * Given the user has not been loaded a loading spinner is shown.
1139
+ * Given the user was not working on a project previously nor has a default
1140
+ * project, the user will be prompted to create one.
1141
+ * Given the user was working on a project previously or has a default
1142
+ * project, the application will redirect to that project.
1143
+ */
1144
+ if (!user) return jsxRuntime.jsx(ApplicationLoader, {});
1145
+ if (!previousProjectKey) return jsxRuntime.jsx(RedirectToProjectCreate, {});
1146
+ return jsxRuntime.jsx(reactRouterDom.Redirect, {
1147
+ to: "/".concat(previousProjectKey)
1148
+ });
1149
+ })()
1150
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
1151
+ exact: false,
1152
+ path: "/:projectKey",
1153
+ children: jsxRuntime.jsx(ProjectContainer, {
1154
+ user: user,
1155
+ environment: applicationEnvironment,
1156
+ disableRoutePermissionCheck: props.disableRoutePermissionCheck
1157
+ // This effectively renders the
1158
+ // children, which is the application
1159
+ // specific part
1160
+ ,
1161
+ render: props.render,
1162
+ children: props.children
1151
1163
  })
1152
- }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
1153
- domain: constants.DOMAINS.SIDE
1154
- }), jsxRuntime.jsxs("div", {
1155
- css: _ref,
1156
- children: [jsxRuntime.jsx(applicationComponents.PortalsContainer
1157
- // @ts-ignore
1158
- , {
1159
- ref: layoutRefs,
1160
- offsetTop: oidc.DIMENSIONS.header,
1161
- offsetLeft: projectKeyFromUrl ? isNewNavigationEnabled ? oidc.DIMENSIONS.newNavMenu : oidc.DIMENSIONS.navMenu : '0px',
1162
- offsetLeftOnExpandedMenu: projectKeyFromUrl ? isNewNavigationEnabled ? oidc.DIMENSIONS.newNavMenuExpanded : oidc.DIMENSIONS.navMenuExpanded : '0px'
1163
- }), jsxRuntime.jsxs(reactRouterDom.Switch, {
1164
- children: [jsxRuntime.jsx(reactRouterDom.Redirect, {
1165
- from: "/profile",
1166
- to: "/account/profile"
1167
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1168
- path: "/account",
1169
- children:
1170
- /**
1171
- * In case the AppShell uses the `render` function, we assume it's one of two cases:
1172
- * 1. The application does not use `children` and therefore implements the routes including
1173
- * the <RouteCatchAll> (this is the "legacy" behavior).
1174
- * 2. It's the account application, which always uses `render` and therefore should render as normal.
1175
- *
1176
- * In case the AppShell uses the `children` function, we can always assume that
1177
- * it's a normal Custom Application and that it should trigger a force reload.
1178
- */
1179
- props.render ? jsxRuntime.jsx(jsxRuntime.Fragment, {
1180
- children: props.render()
1181
- }) : jsxRuntime.jsx(index.RouteCatchAll, {})
1182
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1183
- exact: true,
1184
- path: "/",
1185
- children: (_user$defaultProjectK => {
1186
- const previousProjectKey = getPreviousProjectKey((_user$defaultProjectK = user === null || user === void 0 ? void 0 : user.defaultProjectKey) !== null && _user$defaultProjectK !== void 0 ? _user$defaultProjectK : undefined);
1187
-
1188
- /**
1189
- * NOTE:
1190
- * Given the user has not been loaded a loading spinner is shown.
1191
- * Given the user was not working on a project previously nor has a default
1192
- * project, the user will be prompted to create one.
1193
- * Given the user was working on a project previously or has a default
1194
- * project, the application will redirect to that project.
1195
- */
1196
- if (!user) return jsxRuntime.jsx(ApplicationLoader, {});
1197
- if (!previousProjectKey) return jsxRuntime.jsx(RedirectToProjectCreate, {});
1198
- return jsxRuntime.jsx(reactRouterDom.Redirect, {
1199
- to: "/".concat(previousProjectKey)
1200
- });
1201
- })()
1202
- }), jsxRuntime.jsx(reactRouterDom.Route, {
1203
- exact: false,
1204
- path: "/:projectKey",
1205
- children: jsxRuntime.jsx(ProjectContainer, {
1206
- user: user,
1207
- environment: applicationEnvironment,
1208
- disableRoutePermissionCheck: props.disableRoutePermissionCheck
1209
- // This effectively renders the
1210
- // children, which is the application
1211
- // specific part
1212
- ,
1213
- render: props.render,
1214
- children: props.children
1215
- })
1216
- })]
1217
- })]
1218
1164
  })]
1219
1165
  })]
1220
1166
  })]
1221
- });
1222
- }
1167
+ })]
1168
+ })]
1223
1169
  })
1224
1170
  })
1225
1171
  }));
@@ -1405,7 +1351,7 @@ const hasCachedAuthenticationState = () => {
1405
1351
  return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
1406
1352
  };
1407
1353
 
1408
- const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-c3d56a4a.cjs.prod.js' /* webpackChunkName: "oidc-callback" */); }));
1354
+ const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-fd6fc3cb.cjs.prod.js' /* webpackChunkName: "oidc-callback" */); }));
1409
1355
 
1410
1356
  function ownKeys$3(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1411
1357
  function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
@@ -1555,7 +1501,7 @@ const ApplicationShellProvider = props => {
1555
1501
  ApplicationShellProvider.propTypes = {};
1556
1502
  ApplicationShellProvider.displayName = 'ApplicationShellProvider';
1557
1503
 
1558
- const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-ee9f3801.cjs.prod.js' /* webpackChunkName: "redirect-to-login" */); }));
1504
+ const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-d261e811.cjs.prod.js' /* webpackChunkName: "redirect-to-login" */); }));
1559
1505
 
1560
1506
  const styles = {
1561
1507
  name: "1prreal",
@@ -1565,6 +1511,18 @@ const GlobalStyles = () => jsxRuntime.jsx(react$1.Global, {
1565
1511
  styles: styles
1566
1512
  });
1567
1513
 
1514
+ const StrictModeEnablement$1 = props => {
1515
+ if (props.enableReactStrictMode) {
1516
+ return jsxRuntime.jsx(react.StrictMode, {
1517
+ children: props.children
1518
+ });
1519
+ } else {
1520
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1521
+ children: props.children
1522
+ });
1523
+ }
1524
+ };
1525
+ StrictModeEnablement$1.propTypes = {};
1568
1526
  const ApplicationShell = props => {
1569
1527
  react.useEffect(() => {
1570
1528
  var _props$onRegisterErro;
@@ -1574,7 +1532,8 @@ const ApplicationShell = props => {
1574
1532
  // eslint-disable-next-line react-hooks/exhaustive-deps
1575
1533
  }, []); // <-- run only once, when component mounts
1576
1534
 
1577
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1535
+ return jsxRuntime.jsxs(StrictModeEnablement$1, {
1536
+ enableReactStrictMode: props.enableReactStrictMode,
1578
1537
  children: [jsxRuntime.jsx(GlobalStyles, {}), jsxRuntime.jsx(ApplicationShellProvider, {
1579
1538
  apolloClient: props.apolloClient,
1580
1539
  environment: props.environment,
@@ -1688,6 +1647,18 @@ function CustomViewShellAuthenticated(props) {
1688
1647
  CustomViewShellAuthenticated.propTypes = {};
1689
1648
 
1690
1649
  const browserLocale = getBrowserLocale(window);
1650
+ function StrictModeEnablement(props) {
1651
+ if (props.enableReactStrictMode) {
1652
+ return jsxRuntime.jsx(react.StrictMode, {
1653
+ children: props.children
1654
+ });
1655
+ } else {
1656
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1657
+ children: props.children
1658
+ });
1659
+ }
1660
+ }
1661
+ StrictModeEnablement.propTypes = {};
1691
1662
  function CustomViewShell(props) {
1692
1663
  const _useState = react.useState(),
1693
1664
  _useState2 = _slicedToArray(_useState, 2),
@@ -1741,6 +1712,7 @@ function CustomViewShell(props) {
1741
1712
  return jsxRuntime.jsx(ApplicationShellProvider, {
1742
1713
  environment: window.app,
1743
1714
  applicationMessages: props.applicationMessages,
1715
+ apolloClient: props.apolloClient,
1744
1716
  children: _ref => {
1745
1717
  let isAuthenticated = _ref.isAuthenticated;
1746
1718
  if (isAuthenticated) {
@@ -1775,9 +1747,12 @@ function CustomViewShell(props) {
1775
1747
  }
1776
1748
  CustomViewShell.propTypes = {};
1777
1749
  const CustomViewShellWrapper = props => {
1778
- return jsxRuntime.jsx(CustomViewShell, {
1779
- applicationMessages: props.applicationMessages,
1780
- children: props.children
1750
+ return jsxRuntime.jsx(StrictModeEnablement, {
1751
+ enableReactStrictMode: props.enableReactStrictMode,
1752
+ children: jsxRuntime.jsx(CustomViewShell, {
1753
+ applicationMessages: props.applicationMessages,
1754
+ children: props.children
1755
+ })
1781
1756
  });
1782
1757
  };
1783
1758
  CustomViewShellWrapper.propTypes = {};
@@ -1919,7 +1894,6 @@ exports.CustomViewShellWrapper = CustomViewShellWrapper;
1919
1894
  exports.ErrorBoundary = ErrorBoundary;
1920
1895
  exports.FetchProject = FetchProject;
1921
1896
  exports.InjectReducers = InjectReducers;
1922
- exports.LoadingPlaceholder = LoadingPlaceholder;
1923
1897
  exports.ProjectDataLocale = ProjectDataLocale;
1924
1898
  exports.ProjectSwitcher = ProjectSwitcher;
1925
1899
  exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;