@commercetools-frontend/application-shell 21.1.0 → 21.3.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 (51) hide show
  1. package/dist/{application-entry-point-71cfde83.cjs.prod.js → application-entry-point-6821202c.cjs.prod.js} +27 -27
  2. package/dist/{application-entry-point-10908788.esm.js → application-entry-point-7a3d2473.esm.js} +4 -4
  3. package/dist/{application-entry-point-2063c101.cjs.dev.js → application-entry-point-7a82b48b.cjs.dev.js} +27 -27
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +14 -9
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +14 -9
  6. package/dist/commercetools-frontend-application-shell.esm.js +6 -7
  7. package/dist/constants-33a16227.esm.js +46 -0
  8. package/dist/constants-745aeeca.cjs.prod.js +54 -0
  9. package/dist/constants-fdbe0e9d.cjs.dev.js +54 -0
  10. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +1 -3
  11. package/dist/declarations/src/components/navbar/navbar.d.ts +1 -1
  12. package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +2 -6
  13. package/dist/declarations/src/index.d.ts +2 -1
  14. package/dist/declarations/src/ssr/index.d.ts +1 -1
  15. package/dist/declarations/src/types/generated/settings.d.ts +996 -835
  16. package/dist/declarations/src/utils/index.d.ts +0 -1
  17. package/dist/{index-66e80691.esm.js → index-37ae0f7e.esm.js} +50 -47
  18. package/dist/{index-99afd6a5.cjs.prod.js → index-dd34dd25.cjs.prod.js} +76 -73
  19. package/dist/{index-0d3c2afb.cjs.dev.js → index-f0ffb5e8.cjs.dev.js} +90 -87
  20. package/dist/{oidc-cb5c92bd.esm.js → oidc-415a3ef6.esm.js} +1 -1
  21. package/dist/{oidc-f43cd8da.cjs.dev.js → oidc-69515812.cjs.prod.js} +6 -6
  22. package/dist/{oidc-d5829556.cjs.prod.js → oidc-dc44ab6f.cjs.dev.js} +6 -6
  23. package/dist/{project-expired-39b59db7.cjs.dev.js → project-expired-733693d9.cjs.dev.js} +7 -8
  24. package/dist/{project-expired-1457aa11.esm.js → project-expired-c3c5135f.esm.js} +7 -8
  25. package/dist/{project-expired-1d712e0a.cjs.prod.js → project-expired-d86947e3.cjs.prod.js} +7 -8
  26. package/dist/{project-not-found-39900646.cjs.prod.js → project-not-found-1eb33403.cjs.prod.js} +7 -8
  27. package/dist/{project-not-found-5bc32b8f.esm.js → project-not-found-7b5e71ab.esm.js} +7 -8
  28. package/dist/{project-not-found-30f966b3.cjs.dev.js → project-not-found-e8008dcf.cjs.dev.js} +7 -8
  29. package/dist/{project-not-initialized-bdee60c3.esm.js → project-not-initialized-6c0b2ff1.esm.js} +7 -8
  30. package/dist/{project-not-initialized-970c8b04.cjs.dev.js → project-not-initialized-b8de90e4.cjs.dev.js} +7 -8
  31. package/dist/{project-not-initialized-0e6770d8.cjs.prod.js → project-not-initialized-c449334c.cjs.prod.js} +7 -8
  32. package/dist/{project-suspended-043fe66c.esm.js → project-suspended-196329a9.esm.js} +7 -8
  33. package/dist/{project-suspended-69e9ac0a.cjs.prod.js → project-suspended-505c1db9.cjs.prod.js} +7 -8
  34. package/dist/{project-suspended-2c0ab2ec.cjs.dev.js → project-suspended-7781746c.cjs.dev.js} +7 -8
  35. package/dist/{quick-access-ba9d9590.cjs.prod.js → quick-access-7e316617.cjs.prod.js} +5 -6
  36. package/dist/{quick-access-8e4b5a5a.esm.js → quick-access-c1776662.esm.js} +5 -6
  37. package/dist/{quick-access-32db9d21.cjs.dev.js → quick-access-d4783058.cjs.dev.js} +5 -6
  38. package/dist/{service-page-project-switcher-8b2212e0.cjs.prod.js → service-page-project-switcher-298ad643.cjs.prod.js} +1 -1
  39. package/dist/{service-page-project-switcher-39aa4ced.esm.js → service-page-project-switcher-e0ce3e9c.esm.js} +1 -1
  40. package/dist/{service-page-project-switcher-59415acd.cjs.dev.js → service-page-project-switcher-f2ec3a9f.cjs.dev.js} +1 -1
  41. package/package.json +43 -42
  42. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +12 -6
  43. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +12 -6
  44. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +4 -4
  45. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +4 -4
  46. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +4 -4
  47. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +3 -3
  48. package/dist/declarations/src/utils/formatters.d.ts +0 -8
  49. package/dist/formatters-1c23c0a9.esm.js +0 -93
  50. package/dist/formatters-a5bb12eb.cjs.prod.js +0 -108
  51. package/dist/formatters-e4b9b9dc.cjs.dev.js +0 -108
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var applicationEntryPoint = require('./application-entry-point-71cfde83.cjs.prod.js');
3
+ var applicationEntryPoint = require('./application-entry-point-6821202c.cjs.prod.js');
4
4
  var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
5
5
  var _styled = require('@emotion/styled/base');
6
6
  var _pt = require('prop-types');
@@ -18,18 +18,16 @@ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/obje
18
18
  var react = require('react');
19
19
  var reactRouterDom = require('react-router-dom');
20
20
  var react$2 = require('@emotion/react');
21
- var constants = require('@commercetools-frontend/constants');
21
+ var constants$1 = require('@commercetools-frontend/constants');
22
22
  var sentry = require('@commercetools-frontend/sentry');
23
23
  var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
24
24
  var applicationComponents = require('@commercetools-frontend/application-components');
25
25
  var reactNotifications = require('@commercetools-frontend/react-notifications');
26
26
  var i18n = require('@commercetools-frontend/i18n');
27
27
  var uuid = require('uuid');
28
- var formatters = require('./formatters-a5bb12eb.cjs.prod.js');
28
+ var constants = require('./constants-745aeeca.cjs.prod.js');
29
29
  var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
30
30
  var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
31
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
32
- require('lodash/upperFirst');
33
31
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
34
32
  var jsxRuntime = require('@emotion/react/jsx-runtime');
35
33
  var Perfume = require('perfume.js');
@@ -40,7 +38,7 @@ var reactRedux = require('react-redux');
40
38
  var history = require('@commercetools-frontend/browser-history');
41
39
  var reactIntl = require('react-intl');
42
40
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
43
- var oidc = require('./oidc-d5829556.cjs.prod.js');
41
+ var oidc = require('./oidc-69515812.cjs.prod.js');
44
42
  var qss = require('qss');
45
43
  var jwtDecode = require('jwt-decode');
46
44
  var FailedAuthenticationSVG = require('@commercetools-frontend/assets/images/locked-diamond.svg');
@@ -66,6 +64,7 @@ var sdk = require('@commercetools-frontend/sdk');
66
64
  var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
67
65
  var LogoSVG = require('@commercetools-frontend/assets/images/logo.svg');
68
66
  var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
67
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
69
68
  var Downshift = require('downshift');
70
69
  var reactBroadcast = require('@flopflip/react-broadcast');
71
70
  var Avatar = require('@commercetools-uikit/avatar');
@@ -76,7 +75,6 @@ var SelectInput = require('@commercetools-uikit/select-input');
76
75
  var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
77
76
  var ReactDOM = require('react-dom');
78
77
  var isNil = require('lodash/isNil');
79
- var reactSelect = require('react-select');
80
78
  var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
81
79
  var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
82
80
  var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
@@ -97,6 +95,7 @@ var throttle = require('lodash/throttle');
97
95
  var urlUtils = require('@commercetools-frontend/url-utils');
98
96
  var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
99
97
  var actionsGlobal = require('@commercetools-frontend/actions-global');
98
+ require('@commercetools-frontend/application-config/ssr');
100
99
 
101
100
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
102
101
 
@@ -115,7 +114,6 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
115
114
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
116
115
  var _URL__default = /*#__PURE__*/_interopDefault(_URL);
117
116
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
118
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
119
117
  var Perfume__default = /*#__PURE__*/_interopDefault(Perfume);
120
118
  var _reverseInstanceProperty__default = /*#__PURE__*/_interopDefault(_reverseInstanceProperty);
121
119
  var camelcase__default = /*#__PURE__*/_interopDefault(camelcase);
@@ -135,6 +133,7 @@ var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInsta
135
133
  var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
136
134
  var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
137
135
  var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
136
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
138
137
  var Downshift__default = /*#__PURE__*/_interopDefault(Downshift);
139
138
  var Avatar__default = /*#__PURE__*/_interopDefault(Avatar);
140
139
  var memoize__default = /*#__PURE__*/_interopDefault(memoize);
@@ -156,7 +155,7 @@ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
156
155
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
157
156
 
158
157
  function selectProjectKeyFromLocalStorage() {
159
- return window.localStorage.getItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
158
+ return window.localStorage.getItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
160
159
  }
161
160
 
162
161
  var getPreviousProjectKey = function getPreviousProjectKey(defaultProjectKeyOfUser) {
@@ -181,7 +180,7 @@ var createApolloContextForProxyForwardTo = function createApolloContextForProxyF
181
180
  };
182
181
 
183
182
  var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(projectLocales) {
184
- var cachedDataLocale = window.localStorage.getItem(formatters.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
183
+ var cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
185
184
 
186
185
  var isCachedDataLocaleIncludedInProjectLanguages = _includesInstanceProperty__default["default"](projectLocales).call(projectLocales, cachedDataLocale || '');
187
186
 
@@ -189,7 +188,7 @@ var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(p
189
188
 
190
189
  var defaultDataLocaleForProject = projectLocales[0]; // Cache it
191
190
 
192
- window.localStorage.setItem(formatters.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
191
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
193
192
  return defaultDataLocaleForProject;
194
193
  };
195
194
 
@@ -202,7 +201,7 @@ var ProjectDataLocale = function ProjectDataLocale(props) {
202
201
  var handleSetProjectDataLocale = react.useCallback(function (locale) {
203
202
  setLocale(locale); // Cache it
204
203
 
205
- window.localStorage.setItem(formatters.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
204
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
206
205
  }, []);
207
206
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
208
207
  children: props.children({
@@ -624,7 +623,7 @@ var withoutProjectKeyClaim = function withoutProjectKeyClaim(scope) {
624
623
  var _context;
625
624
 
626
625
  return _filterInstanceProperty__default["default"](_context = scope.split(' ')).call(_context, function (claim) {
627
- return !_startsWithInstanceProperty__default["default"](claim).call(claim, formatters.OIDC_CLAIMS.PROJECT_KEY);
626
+ return !_startsWithInstanceProperty__default["default"](claim).call(claim, constants.OIDC_CLAIMS.PROJECT_KEY);
628
627
  }).join(' ');
629
628
  };
630
629
 
@@ -691,7 +690,7 @@ var hasCachedAuthenticationState = function hasCachedAuthenticationState() {
691
690
  }
692
691
  }
693
692
 
694
- return window.localStorage.getItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
693
+ return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
695
694
  };
696
695
 
697
696
  function useMcQuery(query, options) {
@@ -715,7 +714,7 @@ var AmILoggedIn = function AmILoggedIn(props) {
715
714
  // is valid. We return null while the query is loading.
716
715
  var _useMcQuery = useMcQuery(AmILoggedInQuery, {
717
716
  context: {
718
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
717
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
719
718
  skipTokenRetry: true
720
719
  },
721
720
  // NOTE: With `no-cache` the `useQuery` will not trigger a
@@ -734,20 +733,20 @@ var AmILoggedIn = function AmILoggedIn(props) {
734
733
  if (!data) {
735
734
  // In case the request is 200 but there is no data, we assume
736
735
  // there are some errors.
737
- window.localStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
736
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
738
737
  } else {
739
738
  // Even though the login page might set this flag, we just make sure that
740
739
  // we do it here as well. This will help in the future when we eventually
741
740
  // move the auth service to itw own domain, in which case the local storage
742
741
  // is not shared anymore.
743
- window.localStorage.setItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
742
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
744
743
  }
745
744
  },
746
745
  onError: function onError() {
747
746
  // The query fails without the `mcAccessToken`. In this case the caching
748
747
  // needs to be unset as otherwise the application will end up in a infinte
749
748
  // redirect loop.
750
- window.localStorage.removeItem(formatters.STORAGE_KEYS.IS_AUTHENTICATED);
749
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
751
750
  }
752
751
  }),
753
752
  data = _useMcQuery.data,
@@ -1304,7 +1303,7 @@ var FetchUser = function FetchUser(props) {
1304
1303
  var _useMcQuery = useMcQuery(LoggedInUserQuery, {
1305
1304
  onError: sentry.reportErrorToSentry,
1306
1305
  context: {
1307
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1306
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1308
1307
  }
1309
1308
  }),
1310
1309
  loading = _useMcQuery.loading,
@@ -1329,7 +1328,7 @@ var pushDependencyVersionCounter = function pushDependencyVersionCounter(_ref) {
1329
1328
  var payload = _ref.payload;
1330
1329
  return sdk.actions.post({
1331
1330
  uri: '/metrics/counters',
1332
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.MC_METRICS,
1331
+ mcApiProxyTarget: constants$1.MC_API_PROXY_TARGETS.MC_METRICS,
1333
1332
  payload: _JSON$stringify__default["default"](payload)
1334
1333
  });
1335
1334
  };
@@ -1381,7 +1380,7 @@ var FetchProject = function FetchProject(props) {
1381
1380
  projectKey: props.projectKey
1382
1381
  },
1383
1382
  context: {
1384
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1383
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1385
1384
  },
1386
1385
  skip: props.skip === true
1387
1386
  }),
@@ -1521,16 +1520,25 @@ function useApplicationsMenu(menuKey, config) {
1521
1520
  var apolloClient = client.useApolloClient();
1522
1521
  var mcProxyApiUrl = applicationShellConnectors.useApplicationContext(function (context) {
1523
1522
  return context.environment.mcProxyApiUrl;
1524
- }); // Fetch all menu links from the GraphQL API in the Merchant Center Proxy.
1523
+ });
1524
+
1525
+ var _useState = react.useState(false),
1526
+ _useState2 = _slicedToArray(_useState, 2),
1527
+ hasWrittenToCache = _useState2[0],
1528
+ setHasWrittenToCache = _useState2[1]; // Fetch all menu links from the GraphQL API in the Merchant Center Proxy.
1525
1529
  // For local development, we don't fetch data from the remote server but use
1526
1530
  // only the configuration for the menu links defined for the application.
1527
1531
  // To do so, we manually write the data in the Apollo cache and use the
1528
1532
  // `fetchPolicy: cache-only` to instruct Apollo to read the data from the cache.
1529
- // NOTE: we lazily execute the query to ensure that (for development) we can
1530
- // write the data into the cache BEFORE the query attempts to read from it.
1531
- // If not, Apollo throws an error like `Can't find field 'applicationMenu' on ROOT_QUERY object`.
1533
+ // NOTE: In development, we skip the query as long as the data hasn't been written
1534
+ // into the cache. If not, Apollo throws an error like
1535
+ // `Can't find field 'applicationMenu' on ROOT_QUERY object`.
1536
+
1532
1537
 
1533
- var _useMcLazyQuery = useMcLazyQuery(FetchApplicationsMenu, {
1538
+ var _useMcQuery = useMcQuery(FetchApplicationsMenu, {
1539
+ skip: config.environment.servedByProxy ? // Production environment
1540
+ false : // Development environment
1541
+ !hasWrittenToCache,
1534
1542
  onError: (_config$queryOptions = config.queryOptions) === null || _config$queryOptions === void 0 ? void 0 : _config$queryOptions.onError,
1535
1543
  fetchPolicy: config.environment.servedByProxy ? 'cache-first' : 'cache-only',
1536
1544
  context: {
@@ -1539,29 +1547,22 @@ function useApplicationsMenu(menuKey, config) {
1539
1547
  skipGraphQlTargetCheck: true
1540
1548
  }
1541
1549
  }),
1542
- _useMcLazyQuery2 = _slicedToArray(_useMcLazyQuery, 2),
1543
- executeQuery = _useMcLazyQuery2[0],
1544
- _useMcLazyQuery2$ = _useMcLazyQuery2[1],
1545
- menuQueryResult = _useMcLazyQuery2$.data,
1546
- called = _useMcLazyQuery2$.called; // For development, we read the menu data from the configuration file and
1550
+ menuQueryResult = _useMcQuery.data; // For development, we read the menu data from the configuration file and
1547
1551
  // write it into the Apollo cache.
1548
1552
 
1549
1553
 
1550
1554
  react.useEffect(function () {
1551
1555
  if (config.environment.__DEVELOPMENT__ && (config.environment.__DEVELOPMENT__.menuLinks || // @ts-expect-error: the `accountLinks` is not explicitly typed as it's only used by the account app.
1552
- config.environment.__DEVELOPMENT__.accountLinks)) {
1556
+ config.environment.__DEVELOPMENT__.accountLinks) && !hasWrittenToCache) {
1553
1557
  var applicationMenu = mapApplicationMenuConfigToGraqhQLQueryResult(config.environment);
1554
1558
  apolloClient.writeQuery({
1555
1559
  query: FetchApplicationsMenu,
1556
1560
  data: applicationMenu
1557
1561
  });
1558
- }
1559
-
1560
- if (!called) {
1561
- executeQuery();
1562
+ setHasWrittenToCache(true);
1562
1563
  } // eslint-disable-next-line react-hooks/exhaustive-deps
1563
1564
 
1564
- }, []); // Make sure to run this effect only once, otherwise we might end up in an infinite loop!
1565
+ }, [hasWrittenToCache]); // Only subscribe to state changes.
1565
1566
 
1566
1567
  if (menuQueryResult && menuQueryResult.applicationsMenu) {
1567
1568
  return menuQueryResult.applicationsMenu[menuKey];
@@ -1679,7 +1680,7 @@ var renderLabel = function renderLabel(menu, applicationLanguage) {
1679
1680
  });
1680
1681
 
1681
1682
  if (localizedLabel) return localizedLabel.value;
1682
- return constants.NO_VALUE_FALLBACK;
1683
+ return constants$1.NO_VALUE_FALLBACK;
1683
1684
  };
1684
1685
 
1685
1686
  var MenuItem$1 = _styled__default["default"]("div", {
@@ -1784,7 +1785,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1784
1785
  })
1785
1786
  }), jsxRuntime.jsx("a", {
1786
1787
  css: getUserSettingsMenuItemLinkStyles(),
1787
- href: constants.SUPPORT_PORTAL_URL,
1788
+ href: constants$1.SUPPORT_PORTAL_URL,
1788
1789
  rel: "noopener noreferrer",
1789
1790
  target: "_blank",
1790
1791
  "data-track-component": "Navigation-Support-links",
@@ -1806,7 +1807,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1806
1807
  css: getUserSettingsMenuItemLinkStyles() // NOTE: we want to redirect to a new page so that the
1807
1808
  // server can remove things like cookie for access token.
1808
1809
  ,
1809
- href: "/logout?reason=".concat(constants.LOGOUT_REASONS.USER),
1810
+ href: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.USER),
1810
1811
  "data-test": "logout-button",
1811
1812
  "data-user-settings-menu": true,
1812
1813
  children: [jsxRuntime.jsx(MenuItem$1, {
@@ -1937,12 +1938,13 @@ var _ref3$1 = {
1937
1938
  } ;
1938
1939
 
1939
1940
  var ProjectSwitcherOption = function ProjectSwitcherOption(props) {
1941
+ var project = props.data;
1940
1942
  return jsxRuntime.jsx(SelectInput__default["default"].Option, _objectSpread$7(_objectSpread$7({}, props), {}, {
1941
1943
  children: jsxRuntime.jsxs("div", {
1942
1944
  css: _ref3$1,
1943
1945
  children: [jsxRuntime.jsxs("div", {
1944
1946
  css: /*#__PURE__*/react$2.css("color:", props.isDisabled ? designSystem.customProperties.colorNeutral : designSystem.customProperties.colorAccent, ";" + ("" ), "" ),
1945
- children: [props.data.name, props.isDisabled && jsxRuntime.jsx("span", {
1947
+ children: [project.name, props.isDisabled && jsxRuntime.jsx("span", {
1946
1948
  css: _ref2$2,
1947
1949
  children: jsxRuntime.jsx(icons.ErrorIcon, {
1948
1950
  size: "medium"
@@ -1950,11 +1952,11 @@ var ProjectSwitcherOption = function ProjectSwitcherOption(props) {
1950
1952
  })]
1951
1953
  }), jsxRuntime.jsx("div", {
1952
1954
  css: /*#__PURE__*/react$2.css("font-size:11px;color:", props.isDisabled ? designSystem.customProperties.colorNeutral : 'inherit', ";" + ("" ), "" ),
1953
- children: props.data.key
1954
- }), props.data.suspension && props.data.suspension.isActive && jsxRuntime.jsx("div", {
1955
+ children: project.key
1956
+ }), project.suspension && project.suspension.isActive && jsxRuntime.jsx("div", {
1955
1957
  css: /*#__PURE__*/react$2.css("font-size:11px;color:", designSystem.customProperties.colorError, ";" + ("" ), "" ),
1956
1958
  children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$7({}, messages$3.suspended))
1957
- }), props.data.expiry && props.data.expiry.isActive && jsxRuntime.jsx("div", {
1959
+ }), project.expiry && project.expiry.isActive && jsxRuntime.jsx("div", {
1958
1960
  css: /*#__PURE__*/react$2.css("font-size:11px;color:", designSystem.customProperties.colorError, ";" + ("" ), "" ),
1959
1961
  children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$7({}, messages$3.expired))
1960
1962
  })]
@@ -1989,7 +1991,7 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
1989
1991
  var _useMcQuery = useMcQuery(ProjectsQuery, {
1990
1992
  onError: sentry.reportErrorToSentry,
1991
1993
  context: {
1992
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1994
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1993
1995
  }
1994
1996
  }),
1995
1997
  loading = _useMcQuery.loading,
@@ -2022,7 +2024,8 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
2022
2024
  },
2023
2025
  options: data && data.user && mapProjectsToOptions(data.user.projects.results),
2024
2026
  isOptionDisabled: function isOptionDisabled(option) {
2025
- return option.suspension.isActive || option.expiry.isActive;
2027
+ var project = option;
2028
+ return project.suspension.isActive || project.expiry.isActive;
2026
2029
  },
2027
2030
  components: {
2028
2031
  Option: ProjectSwitcherOption,
@@ -2209,7 +2212,7 @@ var AppBar = function AppBar(props) {
2209
2212
  children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
2210
2213
  alignItems: "center",
2211
2214
  children: [jsxRuntime.jsx("div", {
2212
- id: formatters.CONTAINERS.LOCALE_SWITCHER
2215
+ id: constants.CONTAINERS.LOCALE_SWITCHER
2213
2216
  }), function () {
2214
2217
  if (!props.user) {
2215
2218
  return jsxRuntime.jsx(LoadingPlaceholder, {
@@ -2279,7 +2282,7 @@ _SingleValue.propTypes = {};
2279
2282
  _SingleValue.displayName = 'SingleValue';
2280
2283
 
2281
2284
  var PatchedValueContainer = function PatchedValueContainer(props) {
2282
- return jsxRuntime.jsx(reactSelect.components.ValueContainer, _objectSpread$6(_objectSpread$6({}, props), {}, {
2285
+ return jsxRuntime.jsx(SelectInput__default["default"].ValueContainer, _objectSpread$6(_objectSpread$6({}, props), {}, {
2283
2286
  innerProps: {
2284
2287
  style: {
2285
2288
  display: 'flex'
@@ -2329,19 +2332,19 @@ var LocaleSwitcher = function LocaleSwitcher(props) {
2329
2332
  LocaleSwitcher.propTypes = {};
2330
2333
 
2331
2334
  var ProjectNotFound = /*#__PURE__*/react.lazy(function () {
2332
- return Promise.resolve().then(function () { return require('./project-not-found-39900646.cjs.prod.js'
2335
+ return Promise.resolve().then(function () { return require('./project-not-found-1eb33403.cjs.prod.js'
2333
2336
  /* webpackChunkName: "project-not-found" */
2334
2337
  ); });
2335
2338
  });
2336
2339
 
2337
2340
  var ProjectExpired = /*#__PURE__*/react.lazy(function () {
2338
- return Promise.resolve().then(function () { return require('./project-expired-1d712e0a.cjs.prod.js'
2341
+ return Promise.resolve().then(function () { return require('./project-expired-d86947e3.cjs.prod.js'
2339
2342
  /* webpackChunkName: "project-expired" */
2340
2343
  ); });
2341
2344
  });
2342
2345
 
2343
2346
  var ProjectNotInitialized = /*#__PURE__*/react.lazy(function () {
2344
- return Promise.resolve().then(function () { return require('./project-not-initialized-0e6770d8.cjs.prod.js'
2347
+ return Promise.resolve().then(function () { return require('./project-not-initialized-c449334c.cjs.prod.js'
2345
2348
  /* webpackChunkName: "project-not-initialized" */
2346
2349
  ); });
2347
2350
  });
@@ -2388,7 +2391,7 @@ var RedirectToProjectCreate = function RedirectToProjectCreate() {
2388
2391
  RedirectToProjectCreate.displayName = 'RedirectToProjectCreate';
2389
2392
 
2390
2393
  var ProjectSuspended = /*#__PURE__*/react.lazy(function () {
2391
- return Promise.resolve().then(function () { return require('./project-suspended-69e9ac0a.cjs.prod.js'
2394
+ return Promise.resolve().then(function () { return require('./project-suspended-505c1db9.cjs.prod.js'
2392
2395
  /* webpackChunkName: "project-suspended" */
2393
2396
  ); });
2394
2397
  });
@@ -2435,13 +2438,13 @@ var ProjectContainer = function ProjectContainer(props) {
2435
2438
  * is inserted in the DOM tree.
2436
2439
  * "
2437
2440
  */
2438
- setLocaleSwitcherNode(document.getElementById(formatters.CONTAINERS.LOCALE_SWITCHER));
2441
+ setLocaleSwitcherNode(document.getElementById(constants.CONTAINERS.LOCALE_SWITCHER));
2439
2442
  }, [setLocaleSwitcherNode]);
2440
2443
  var projectKey = props.match.params.projectKey;
2441
2444
  react.useEffect(function () {
2442
2445
  // Ensure to sync the `projectKey` from the URL with localStorage.
2443
2446
  if (projectKey) {
2444
- window.localStorage.setItem(formatters.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2447
+ window.localStorage.setItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2445
2448
  }
2446
2449
  }, [projectKey]); // }
2447
2450
 
@@ -2459,7 +2462,7 @@ var ProjectContainer = function ProjectContainer(props) {
2459
2462
  */
2460
2463
 
2461
2464
  if (hasNoProjects && props.environment.enableSignUp !== true && props.environment.servedByProxy) return jsxRuntime.jsx(reactRouterDom.Redirect, {
2462
- to: "/logout?reason=".concat(constants.LOGOUT_REASONS.NO_PROJECTS)
2465
+ to: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.NO_PROJECTS)
2463
2466
  });
2464
2467
  if (hasNoProjects && props.environment.enableSignUp) return jsxRuntime.jsxs(reactRouterDom.Switch, {
2465
2468
  children: [jsxRuntime.jsx(reactRouterDom.Route, {
@@ -2483,7 +2486,7 @@ var ProjectContainer = function ProjectContainer(props) {
2483
2486
  if (isProjectLoading) return jsxRuntime.jsx(ApplicationLoader, {});
2484
2487
  if (!project) return jsxRuntime.jsx(ProjectNotFound, {});
2485
2488
  if (project.suspension && project.suspension.isActive) return jsxRuntime.jsx(ProjectSuspended, {
2486
- isTemporary: project.suspension.reason === formatters.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2489
+ isTemporary: project.suspension.reason === constants.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2487
2490
  });
2488
2491
  if (project.expiry && project.expiry.isActive) return jsxRuntime.jsx(ProjectExpired, {});
2489
2492
  if (project.initialized === false) return jsxRuntime.jsx(ProjectNotInitialized, {});
@@ -2502,7 +2505,7 @@ var ProjectContainer = function ProjectContainer(props) {
2502
2505
  children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
2503
2506
  children: [shouldShowNotificationForTrialExpired((_project$expiry$daysL = project.expiry.daysLeft) !== null && _project$expiry$daysL !== void 0 ? _project$expiry$daysL : undefined) && jsxRuntime.jsx(reactNotifications.Notifier, {
2504
2507
  kind: "warning",
2505
- domain: constants.DOMAINS.GLOBAL,
2508
+ domain: constants$1.DOMAINS.GLOBAL,
2506
2509
  text: intl.formatMessage(messages$1.trialDaysLeft, {
2507
2510
  daysLeft: project.expiry.daysLeft || 0
2508
2511
  })
@@ -2678,7 +2681,7 @@ var SetupFlopFlipProvider = function SetupFlopFlipProvider(props) {
2678
2681
  query: AllFeaturesQuery,
2679
2682
  errorPolicy: 'ignore',
2680
2683
  context: {
2681
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2684
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2682
2685
  }
2683
2686
  });
2684
2687
 
@@ -2754,7 +2757,7 @@ var messages = reactIntl.defineMessages({
2754
2757
  });
2755
2758
 
2756
2759
  var useLoadingMenuLayoutEffect = function useLoadingMenuLayoutEffect() {
2757
- var cachedIsForcedMenuOpen = window.localStorage.getItem(formatters.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2760
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2758
2761
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
2759
2762
  react.useLayoutEffect(function () {
2760
2763
  if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
@@ -2832,7 +2835,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
2832
2835
  var _useMcQuery = useMcQuery(FetchProjectExtensionsNavbar, {
2833
2836
  skip: !props.environment.servedByProxy,
2834
2837
  context: {
2835
- target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
2838
+ target: constants$1.GRAPHQL_TARGETS.SETTINGS_SERVICE
2836
2839
  },
2837
2840
  fetchPolicy: 'cache-and-network',
2838
2841
  onError: sentry.reportErrorToSentry
@@ -2908,7 +2911,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
2908
2911
  })
2909
2912
  };
2910
2913
  })).call(_context4, nonNullable) : [];
2911
- var cachedIsForcedMenuOpen = window.localStorage.getItem(formatters.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2914
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2912
2915
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
2913
2916
 
2914
2917
  var _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
@@ -2990,7 +2993,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
2990
2993
  type: 'toggleIsMenuOpen'
2991
2994
  }); // Synchronize the menu state with local storage.
2992
2995
 
2993
- window.localStorage.setItem(formatters.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
2996
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
2994
2997
  }, [state.activeItemIndex, state.isMenuOpen]);
2995
2998
 
2996
2999
  var allApplicationNavbarMenu = _concatInstanceProperty__default["default"](_context7 = _concatInstanceProperty__default["default"](_context8 = applicationsNavBarMenu || []).call(_context8, legacyCustomAppsMenu)).call(_context7, organizationCustomAppsMenu);
@@ -3313,7 +3316,7 @@ var MenuLabel = function MenuLabel(props) {
3313
3316
  children: props.defaultLabel
3314
3317
  });
3315
3318
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
3316
- children: constants.NO_VALUE_FALLBACK
3319
+ children: constants$1.NO_VALUE_FALLBACK
3317
3320
  });
3318
3321
  };
3319
3322
 
@@ -3515,7 +3518,7 @@ var NavBar = function NavBar(props) {
3515
3518
  },
3516
3519
  onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
3517
3520
  children: jsxRuntime.jsx("a", {
3518
- href: constants.SUPPORT_PORTAL_URL,
3521
+ href: constants$1.SUPPORT_PORTAL_URL,
3519
3522
  rel: "noopener noreferrer",
3520
3523
  target: "_blank",
3521
3524
  children: jsxRuntime.jsxs("div", {
@@ -3603,7 +3606,7 @@ var pimIndexerStates = {
3603
3606
  };
3604
3607
 
3605
3608
  var QuickAccess = /*#__PURE__*/react.lazy(function () {
3606
- return Promise.resolve().then(function () { return require('./quick-access-ba9d9590.cjs.prod.js'
3609
+ return Promise.resolve().then(function () { return require('./quick-access-7e316617.cjs.prod.js'
3607
3610
  /* webpackChunkName: "quick-access" */
3608
3611
  ); });
3609
3612
  });
@@ -3800,10 +3803,10 @@ var RedirectToLogin = function RedirectToLogin() {
3800
3803
  origin: (_window$app$__DEVELOP7 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP7 === void 0 ? void 0 : (_window$app$__DEVELOP8 = _window$app$__DEVELOP7.oidc) === null || _window$app$__DEVELOP8 === void 0 ? void 0 : _window$app$__DEVELOP8.authorizeUrl,
3801
3804
  location: location,
3802
3805
  queryParams: {
3803
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3806
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3804
3807
  // Query parameters for OIDC-lik workflow.
3805
3808
  client_id: window.app.applicationId,
3806
- response_type: formatters.OIDC_RESPONSE_TYPES.ID_TOKEN,
3809
+ response_type: constants.OIDC_RESPONSE_TYPES.ID_TOKEN,
3807
3810
  scope: requestedScope,
3808
3811
  state: sessionId,
3809
3812
  nonce: sessionId
@@ -3817,7 +3820,7 @@ var RedirectToLogin = function RedirectToLogin() {
3817
3820
  origin: mcOrigin,
3818
3821
  location: location,
3819
3822
  queryParams: {
3820
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3823
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3821
3824
  redirectTo: urlUtils.trimLeadingAndTrailingSlashes(urlUtils.joinPaths(window.location.origin, location.pathname))
3822
3825
  }
3823
3826
  });
@@ -3850,7 +3853,7 @@ var RedirectToLogout = function RedirectToLogout(props) {
3850
3853
  origin: mcOrigin,
3851
3854
  location: location,
3852
3855
  queryParams: _objectSpread$1({
3853
- reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants.LOGOUT_REASONS.USER
3856
+ reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants$1.LOGOUT_REASONS.USER
3854
3857
  }, servedByProxy ? {} : {
3855
3858
  // This will be used after being logged in, to redirect to this location.
3856
3859
  redirectTo: window.location.origin
@@ -3937,7 +3940,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
3937
3940
 
3938
3941
  if (hasUnauthorizedError || hasUserBeenDeletedError) {
3939
3942
  var logoutReason;
3940
- if (hasUnauthorizedError) logoutReason = constants.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants.LOGOUT_REASONS.DELETED;
3943
+ if (hasUnauthorizedError) logoutReason = constants$1.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants$1.LOGOUT_REASONS.DELETED;
3941
3944
  return jsxRuntime.jsx(RedirectToLogout, {
3942
3945
  reason: logoutReason
3943
3946
  });
@@ -4004,7 +4007,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
4004
4007
  role: "global-notifications",
4005
4008
  css: _ref5,
4006
4009
  children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
4007
- domain: constants.DOMAINS.GLOBAL
4010
+ domain: constants$1.DOMAINS.GLOBAL
4008
4011
  })
4009
4012
  }), jsxRuntime.jsx(reactRouterDom.Route, {
4010
4013
  children: function children() {
@@ -4091,9 +4094,9 @@ var RestrictedApplication = function RestrictedApplication(props) {
4091
4094
  }) : jsxRuntime.jsxs(MainContainer, {
4092
4095
  role: "main",
4093
4096
  children: [jsxRuntime.jsx(reactNotifications.NotificationsList, {
4094
- domain: constants.DOMAINS.PAGE
4097
+ domain: constants$1.DOMAINS.PAGE
4095
4098
  }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
4096
- domain: constants.DOMAINS.SIDE
4099
+ domain: constants$1.DOMAINS.SIDE
4097
4100
  }), jsxRuntime.jsxs("div", {
4098
4101
  css: _ref2,
4099
4102
  children: [jsxRuntime.jsx(applicationComponents.PortalsContainer, {}), jsxRuntime.jsxs(reactRouterDom.Switch, {