@commercetools-frontend/application-shell 20.12.0 → 20.12.4

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 (53) hide show
  1. package/dist/{application-entry-point-ae4c00f2.cjs.dev.js → application-entry-point-1531bd49.cjs.dev.js} +36 -78
  2. package/dist/{application-entry-point-52f79266.cjs.prod.js → application-entry-point-27b46a9d.cjs.prod.js} +36 -78
  3. package/dist/{application-entry-point-a7199847.esm.js → application-entry-point-9750a74f.esm.js} +14 -52
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +10 -4
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +10 -4
  6. package/dist/commercetools-frontend-application-shell.esm.js +8 -4
  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/apollo-links/utils.d.ts +1 -1
  11. package/dist/declarations/src/components/application-shell/helpers.d.ts +1 -0
  12. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +3 -4
  13. package/dist/declarations/src/hooks/use-is-served-by-proxy/index.d.ts +1 -0
  14. package/dist/declarations/src/hooks/use-is-served-by-proxy/use-is-served-by-proxy.d.ts +2 -0
  15. package/dist/declarations/src/index.d.ts +1 -1
  16. package/dist/declarations/src/ssr/index.d.ts +2 -0
  17. package/dist/declarations/src/utils/formatters.d.ts +8 -0
  18. package/dist/declarations/src/utils/index.d.ts +1 -0
  19. package/dist/declarations/src/{components/authenticated/helpers.d.ts → utils/oidc.d.ts} +0 -0
  20. package/dist/{index-b2a644f6.cjs.prod.js → index-9fb026f3.cjs.prod.js} +133 -108
  21. package/dist/{index-1d2a788a.esm.js → index-e5a993b0.esm.js} +108 -83
  22. package/dist/{index-fd0e0765.cjs.dev.js → index-e8b18306.cjs.dev.js} +149 -124
  23. package/dist/oidc-7e7761de.cjs.dev.js +94 -0
  24. package/dist/oidc-8e05c00e.esm.js +84 -0
  25. package/dist/oidc-be09bd90.cjs.prod.js +94 -0
  26. package/dist/{project-expired-8a630330.cjs.dev.js → project-expired-0015e695.cjs.prod.js} +8 -4
  27. package/dist/{project-expired-6f5d474a.cjs.prod.js → project-expired-3759ef13.cjs.dev.js} +8 -4
  28. package/dist/{project-expired-b312aef3.esm.js → project-expired-e0881f5d.esm.js} +8 -4
  29. package/dist/{project-not-found-7bdc583e.cjs.dev.js → project-not-found-2581e9da.cjs.dev.js} +8 -4
  30. package/dist/{project-not-found-1c1a349f.esm.js → project-not-found-9428c0f6.esm.js} +8 -4
  31. package/dist/{project-not-found-19312707.cjs.prod.js → project-not-found-de559908.cjs.prod.js} +8 -4
  32. package/dist/{project-not-initialized-8179abd1.esm.js → project-not-initialized-23176122.esm.js} +8 -4
  33. package/dist/{project-not-initialized-2f2ee69f.cjs.dev.js → project-not-initialized-a4cd8649.cjs.prod.js} +8 -4
  34. package/dist/{project-not-initialized-10a1ce69.cjs.prod.js → project-not-initialized-fc705645.cjs.dev.js} +8 -4
  35. package/dist/{project-suspended-f541ad12.cjs.dev.js → project-suspended-13c17047.cjs.prod.js} +8 -4
  36. package/dist/{project-suspended-da1d5c10.cjs.prod.js → project-suspended-2d044bbe.cjs.dev.js} +8 -4
  37. package/dist/{project-suspended-3e5b8d4f.esm.js → project-suspended-3292de13.esm.js} +8 -4
  38. package/dist/{quick-access-52ee94fa.esm.js → quick-access-5dd5bec2.esm.js} +6 -2
  39. package/dist/{quick-access-8e4582e8.cjs.dev.js → quick-access-d9768abe.cjs.dev.js} +6 -2
  40. package/dist/{quick-access-592bdd5b.cjs.prod.js → quick-access-dd969ed0.cjs.prod.js} +6 -2
  41. package/dist/{service-page-project-switcher-c5ba651f.cjs.prod.js → service-page-project-switcher-3b93b2f1.cjs.prod.js} +1 -1
  42. package/dist/{service-page-project-switcher-8ccd2f3c.cjs.dev.js → service-page-project-switcher-8c881917.cjs.dev.js} +1 -1
  43. package/dist/{service-page-project-switcher-283ce683.esm.js → service-page-project-switcher-f73afea1.esm.js} +1 -1
  44. package/package.json +64 -57
  45. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.d.ts +1 -0
  46. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +16 -0
  47. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.js +7 -0
  48. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +16 -0
  49. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +6 -0
  50. package/ssr/package.json +4 -0
  51. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +3 -1
  52. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +3 -1
  53. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +3 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var applicationEntryPoint = require('./application-entry-point-52f79266.cjs.prod.js');
3
+ var applicationEntryPoint = require('./application-entry-point-27b46a9d.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,15 +18,18 @@ 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 constants = require('./constants-745aeeca.cjs.prod.js');
28
29
  var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
29
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');
30
33
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
31
34
  var jsxRuntime = require('@emotion/react/jsx-runtime');
32
35
  var Perfume = require('perfume.js');
@@ -38,8 +41,7 @@ var reactRedux = require('react-redux');
38
41
  var history = require('@commercetools-frontend/browser-history');
39
42
  var reactIntl = require('react-intl');
40
43
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
41
- var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
42
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
44
+ var oidc = require('./oidc-be09bd90.cjs.prod.js');
43
45
  var qss = require('qss');
44
46
  var jwtDecode = require('jwt-decode');
45
47
  var FailedAuthenticationSVG = require('@commercetools-frontend/assets/images/locked-diamond.svg');
@@ -75,6 +77,7 @@ var SelectInput = require('@commercetools-uikit/select-input');
75
77
  var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
76
78
  var ReactDOM = require('react-dom');
77
79
  var isNil = require('lodash/isNil');
80
+ var reactSelect = require('react-select');
78
81
  var _asyncToGenerator = require('@babel/runtime-corejs3/helpers/asyncToGenerator');
79
82
  var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
80
83
  var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
@@ -82,6 +85,7 @@ var _flagsInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/inst
82
85
  var ldAdapter = require('@flopflip/launchdarkly-adapter');
83
86
  var httpAdapter = require('@flopflip/http-adapter');
84
87
  var combineAdapters = require('@flopflip/combine-adapters');
88
+ require('@babel/runtime-corejs3/helpers/toConsumableArray');
85
89
  require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
86
90
  require('@babel/runtime-corejs3/core-js-stable/instance/slice');
87
91
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
@@ -112,12 +116,12 @@ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$def
112
116
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
113
117
  var _URL__default = /*#__PURE__*/_interopDefault(_URL);
114
118
  var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
119
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
115
120
  var Perfume__default = /*#__PURE__*/_interopDefault(Perfume);
116
121
  var _reverseInstanceProperty__default = /*#__PURE__*/_interopDefault(_reverseInstanceProperty);
117
122
  var camelcase__default = /*#__PURE__*/_interopDefault(camelcase);
118
123
  var history__default = /*#__PURE__*/_interopDefault(history);
119
124
  var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
120
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
121
125
  var jwtDecode__default = /*#__PURE__*/_interopDefault(jwtDecode);
122
126
  var FailedAuthenticationSVG__default = /*#__PURE__*/_interopDefault(FailedAuthenticationSVG);
123
127
  var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
@@ -153,7 +157,7 @@ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
153
157
  var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
154
158
 
155
159
  function selectProjectKeyFromLocalStorage() {
156
- return window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
160
+ return window.localStorage.getItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
157
161
  }
158
162
 
159
163
  var getPreviousProjectKey = function getPreviousProjectKey(defaultProjectKeyOfUser) {
@@ -178,7 +182,7 @@ var createApolloContextForProxyForwardTo = function createApolloContextForProxyF
178
182
  };
179
183
 
180
184
  var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(projectLocales) {
181
- var cachedDataLocale = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
185
+ var cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
182
186
 
183
187
  var isCachedDataLocaleIncludedInProjectLanguages = _includesInstanceProperty__default["default"](projectLocales).call(projectLocales, cachedDataLocale || '');
184
188
 
@@ -186,7 +190,7 @@ var getSelectedDataLocaleForProject = function getSelectedDataLocaleForProject(p
186
190
 
187
191
  var defaultDataLocaleForProject = projectLocales[0]; // Cache it
188
192
 
189
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
193
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
190
194
  return defaultDataLocaleForProject;
191
195
  };
192
196
 
@@ -199,7 +203,7 @@ var ProjectDataLocale = function ProjectDataLocale(props) {
199
203
  var handleSetProjectDataLocale = react.useCallback(function (locale) {
200
204
  setLocale(locale); // Cache it
201
205
 
202
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
206
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
203
207
  }, []);
204
208
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
205
209
  children: props.children({
@@ -617,44 +621,11 @@ var ConfigureIntlProvider = function ConfigureIntlProvider(props) {
617
621
  ConfigureIntlProvider.propTypes = {};
618
622
  ConfigureIntlProvider.displayName = 'ConfigureIntlProvider';
619
623
 
620
- var buildOidcScope = function buildOidcScope(options) {
621
- var _context7;
622
-
623
- var claims = [];
624
-
625
- if (options.projectKey) {
626
- var _context, _context2, _options$oAuthScopes$, _options$oAuthScopes, _context4, _options$oAuthScopes$2, _options$oAuthScopes2;
627
-
628
- claims.push(_concatInstanceProperty__default["default"](_context = "".concat(applicationEntryPoint.OIDC_CLAIMS.PROJECT_KEY, ":")).call(_context, options.projectKey));
629
- claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context2 = (_options$oAuthScopes$ = (_options$oAuthScopes = options.oAuthScopes) === null || _options$oAuthScopes === void 0 ? void 0 : _options$oAuthScopes.view) !== null && _options$oAuthScopes$ !== void 0 ? _options$oAuthScopes$ : []).call(_context2, function (scope) {
630
- var _context3;
631
-
632
- return _concatInstanceProperty__default["default"](_context3 = "".concat(applicationEntryPoint.OIDC_CLAIMS.VIEW, ":")).call(_context3, scope);
633
- })));
634
- claims.push.apply(claims, _toConsumableArray(_mapInstanceProperty__default["default"](_context4 = (_options$oAuthScopes$2 = (_options$oAuthScopes2 = options.oAuthScopes) === null || _options$oAuthScopes2 === void 0 ? void 0 : _options$oAuthScopes2.manage) !== null && _options$oAuthScopes$2 !== void 0 ? _options$oAuthScopes$2 : []).call(_context4, function (scope) {
635
- var _context5;
636
-
637
- return _concatInstanceProperty__default["default"](_context5 = "".concat(applicationEntryPoint.OIDC_CLAIMS.MANAGE, ":")).call(_context5, scope);
638
- })));
639
- }
640
-
641
- var teamId = options.teamId;
642
-
643
- if (teamId) {
644
- var _context6;
645
-
646
- claims.push(_concatInstanceProperty__default["default"](_context6 = "".concat(applicationEntryPoint.OIDC_CLAIMS.TEAM_ID, ":")).call(_context6, teamId));
647
- }
648
-
649
- return _concatInstanceProperty__default["default"](_context7 = [// This is required as per OIDC spec.
650
- applicationEntryPoint.OIDC_CLAIMS.OPEN_ID]).call(_context7, claims).join(' ');
651
- };
652
-
653
624
  var withoutProjectKeyClaim = function withoutProjectKeyClaim(scope) {
654
625
  var _context;
655
626
 
656
627
  return _filterInstanceProperty__default["default"](_context = scope.split(' ')).call(_context, function (claim) {
657
- return !_startsWithInstanceProperty__default["default"](claim).call(claim, applicationEntryPoint.OIDC_CLAIMS.PROJECT_KEY);
628
+ return !_startsWithInstanceProperty__default["default"](claim).call(claim, constants.OIDC_CLAIMS.PROJECT_KEY);
658
629
  }).join(' ');
659
630
  };
660
631
 
@@ -701,7 +672,7 @@ var hasCachedAuthenticationState = function hasCachedAuthenticationState() {
701
672
  } // Rebuild the requested OIDC scope to verify that it didn't change.
702
673
 
703
674
 
704
- var requestedScope = buildOidcScope({
675
+ var requestedScope = oidc.buildOidcScope({
705
676
  projectKey: activeProjectKey !== null && activeProjectKey !== void 0 ? activeProjectKey : undefined,
706
677
  oAuthScopes: (_window$app$__DEVELOP9 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP9 === void 0 ? void 0 : (_window$app$__DEVELOP10 = _window$app$__DEVELOP9.oidc) === null || _window$app$__DEVELOP10 === void 0 ? void 0 : _window$app$__DEVELOP10.oAuthScopes,
707
678
  teamId: (_window$app$__DEVELOP11 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP11 === void 0 ? void 0 : (_window$app$__DEVELOP12 = _window$app$__DEVELOP11.oidc) === null || _window$app$__DEVELOP12 === void 0 ? void 0 : _window$app$__DEVELOP12.teamId
@@ -721,7 +692,7 @@ var hasCachedAuthenticationState = function hasCachedAuthenticationState() {
721
692
  }
722
693
  }
723
694
 
724
- return window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
695
+ return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
725
696
  };
726
697
 
727
698
  function useMcQuery(query, options) {
@@ -745,7 +716,7 @@ var AmILoggedIn = function AmILoggedIn(props) {
745
716
  // is valid. We return null while the query is loading.
746
717
  var _useMcQuery = useMcQuery(AmILoggedInQuery, {
747
718
  context: {
748
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
719
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
749
720
  skipTokenRetry: true
750
721
  },
751
722
  // NOTE: With `no-cache` the `useQuery` will not trigger a
@@ -764,20 +735,20 @@ var AmILoggedIn = function AmILoggedIn(props) {
764
735
  if (!data) {
765
736
  // In case the request is 200 but there is no data, we assume
766
737
  // there are some errors.
767
- window.localStorage.removeItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED);
738
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
768
739
  } else {
769
740
  // Even though the login page might set this flag, we just make sure that
770
741
  // we do it here as well. This will help in the future when we eventually
771
742
  // move the auth service to itw own domain, in which case the local storage
772
743
  // is not shared anymore.
773
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
744
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
774
745
  }
775
746
  },
776
747
  onError: function onError() {
777
748
  // The query fails without the `mcAccessToken`. In this case the caching
778
749
  // needs to be unset as otherwise the application will end up in a infinte
779
750
  // redirect loop.
780
- window.localStorage.removeItem(applicationEntryPoint.STORAGE_KEYS.IS_AUTHENTICATED);
751
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
781
752
  }
782
753
  }),
783
754
  data = _useMcQuery.data,
@@ -1334,7 +1305,7 @@ var FetchUser = function FetchUser(props) {
1334
1305
  var _useMcQuery = useMcQuery(LoggedInUserQuery, {
1335
1306
  onError: sentry.reportErrorToSentry,
1336
1307
  context: {
1337
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1308
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1338
1309
  }
1339
1310
  }),
1340
1311
  loading = _useMcQuery.loading,
@@ -1359,7 +1330,7 @@ var pushDependencyVersionCounter = function pushDependencyVersionCounter(_ref) {
1359
1330
  var payload = _ref.payload;
1360
1331
  return sdk.actions.post({
1361
1332
  uri: '/metrics/counters',
1362
- mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.MC_METRICS,
1333
+ mcApiProxyTarget: constants$1.MC_API_PROXY_TARGETS.MC_METRICS,
1363
1334
  payload: _JSON$stringify__default["default"](payload)
1364
1335
  });
1365
1336
  };
@@ -1411,7 +1382,7 @@ var FetchProject = function FetchProject(props) {
1411
1382
  projectKey: props.projectKey
1412
1383
  },
1413
1384
  context: {
1414
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1385
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1415
1386
  },
1416
1387
  skip: props.skip === true
1417
1388
  }),
@@ -1790,7 +1761,7 @@ var renderLabel = function renderLabel(menu, applicationLanguage) {
1790
1761
  });
1791
1762
 
1792
1763
  if (localizedLabel) return localizedLabel.value;
1793
- return constants.NO_VALUE_FALLBACK;
1764
+ return constants$1.NO_VALUE_FALLBACK;
1794
1765
  };
1795
1766
 
1796
1767
  var MenuItem$1 = _styled__default["default"]("div", {
@@ -1896,7 +1867,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1896
1867
  })
1897
1868
  }), jsxRuntime.jsx("a", {
1898
1869
  css: getUserSettingsMenuItemLinkStyles(),
1899
- href: constants.SUPPORT_PORTAL_URL,
1870
+ href: constants$1.SUPPORT_PORTAL_URL,
1900
1871
  rel: "noopener noreferrer",
1901
1872
  target: "_blank",
1902
1873
  "data-track-component": "Navigation-Support-links",
@@ -1918,7 +1889,7 @@ var UserSettingsMenuBody = function UserSettingsMenuBody(props) {
1918
1889
  css: getUserSettingsMenuItemLinkStyles() // NOTE: we want to redirect to a new page so that the
1919
1890
  // server can remove things like cookie for access token.
1920
1891
  ,
1921
- href: "/logout?reason=".concat(constants.LOGOUT_REASONS.USER),
1892
+ href: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.USER),
1922
1893
  "data-test": "logout-button",
1923
1894
  "data-user-settings-menu": true,
1924
1895
  children: [jsxRuntime.jsx(MenuItem$1, {
@@ -2102,7 +2073,7 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
2102
2073
  var _useMcQuery = useMcQuery(ProjectsQuery, {
2103
2074
  onError: sentry.reportErrorToSentry,
2104
2075
  context: {
2105
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2076
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2106
2077
  }
2107
2078
  }),
2108
2079
  loading = _useMcQuery.loading,
@@ -2138,11 +2109,7 @@ var ProjectSwitcher = function ProjectSwitcher(props) {
2138
2109
  return option.suspension.isActive || option.expiry.isActive;
2139
2110
  },
2140
2111
  components: {
2141
- // eslint-disable-next-line react/display-name
2142
- Option: function Option(optionsProps) {
2143
- return jsxRuntime.jsx(ProjectSwitcherOption, _objectSpread$7({}, optionsProps));
2144
- },
2145
- // eslint-disable-next-line react/display-name
2112
+ Option: ProjectSwitcherOption,
2146
2113
  ValueContainer: function ValueContainer(valueContainerProps) {
2147
2114
  return jsxRuntime.jsx(ProjectSwitcherValueContainer, _objectSpread$7(_objectSpread$7({}, valueContainerProps), {}, {
2148
2115
  projectCount: data && data.user && data.user.projects.results.length || 0
@@ -2326,7 +2293,7 @@ var AppBar = function AppBar(props) {
2326
2293
  children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
2327
2294
  alignItems: "center",
2328
2295
  children: [jsxRuntime.jsx("div", {
2329
- id: applicationEntryPoint.CONTAINERS.LOCALE_SWITCHER
2296
+ id: constants.CONTAINERS.LOCALE_SWITCHER
2330
2297
  }), function () {
2331
2298
  if (!props.user) {
2332
2299
  return jsxRuntime.jsx(LoadingPlaceholder, {
@@ -2396,6 +2363,18 @@ var _SingleValue = function SingleValue(props) {
2396
2363
  _SingleValue.propTypes = {};
2397
2364
  _SingleValue.displayName = 'SingleValue';
2398
2365
 
2366
+ var PatchedValueContainer = function PatchedValueContainer(props) {
2367
+ return jsxRuntime.jsx(reactSelect.components.ValueContainer, _objectSpread$6(_objectSpread$6({}, props), {}, {
2368
+ innerProps: {
2369
+ style: {
2370
+ display: 'flex'
2371
+ }
2372
+ }
2373
+ }));
2374
+ };
2375
+
2376
+ PatchedValueContainer.displayName = 'PatchedValueContainer';
2377
+
2399
2378
  var LocaleSwitcher = function LocaleSwitcher(props) {
2400
2379
  var _context;
2401
2380
 
@@ -2418,12 +2397,12 @@ var LocaleSwitcher = function LocaleSwitcher(props) {
2418
2397
  };
2419
2398
  }),
2420
2399
  components: {
2421
- // eslint-disable-next-line react/display-name
2422
2400
  SingleValue: function SingleValue(valueProps) {
2423
2401
  return jsxRuntime.jsx(_SingleValue, _objectSpread$6(_objectSpread$6({}, valueProps), {}, {
2424
2402
  localeCount: props.availableLocales.length
2425
2403
  }));
2426
- }
2404
+ },
2405
+ ValueContainer: PatchedValueContainer
2427
2406
  },
2428
2407
  isClearable: false,
2429
2408
  backspaceRemovesValue: false,
@@ -2435,27 +2414,25 @@ var LocaleSwitcher = function LocaleSwitcher(props) {
2435
2414
  LocaleSwitcher.propTypes = {};
2436
2415
 
2437
2416
  var ProjectNotFound = /*#__PURE__*/react.lazy(function () {
2438
- return Promise.resolve().then(function () { return require('./project-not-found-19312707.cjs.prod.js'
2417
+ return Promise.resolve().then(function () { return require('./project-not-found-de559908.cjs.prod.js'
2439
2418
  /* webpackChunkName: "project-not-found" */
2440
2419
  ); });
2441
2420
  });
2442
2421
 
2443
2422
  var ProjectExpired = /*#__PURE__*/react.lazy(function () {
2444
- return Promise.resolve().then(function () { return require('./project-expired-6f5d474a.cjs.prod.js'
2423
+ return Promise.resolve().then(function () { return require('./project-expired-0015e695.cjs.prod.js'
2445
2424
  /* webpackChunkName: "project-expired" */
2446
2425
  ); });
2447
2426
  });
2448
2427
 
2449
2428
  var ProjectNotInitialized = /*#__PURE__*/react.lazy(function () {
2450
- return Promise.resolve().then(function () { return require('./project-not-initialized-10a1ce69.cjs.prod.js'
2429
+ return Promise.resolve().then(function () { return require('./project-not-initialized-a4cd8649.cjs.prod.js'
2451
2430
  /* webpackChunkName: "project-not-initialized" */
2452
2431
  ); });
2453
2432
  });
2454
2433
 
2455
2434
  var RedirectToProjectCreate = function RedirectToProjectCreate() {
2456
- var servedByProxy = applicationShellConnectors.useApplicationContext(function (context) {
2457
- return context.environment.servedByProxy;
2458
- });
2435
+ var servedByProxy = applicationEntryPoint.useIsServedByProxy();
2459
2436
  /**
2460
2437
  * NOTE:
2461
2438
  * This looks a bit unusual: redirecting in render.
@@ -2496,7 +2473,7 @@ var RedirectToProjectCreate = function RedirectToProjectCreate() {
2496
2473
  RedirectToProjectCreate.displayName = 'RedirectToProjectCreate';
2497
2474
 
2498
2475
  var ProjectSuspended = /*#__PURE__*/react.lazy(function () {
2499
- return Promise.resolve().then(function () { return require('./project-suspended-da1d5c10.cjs.prod.js'
2476
+ return Promise.resolve().then(function () { return require('./project-suspended-13c17047.cjs.prod.js'
2500
2477
  /* webpackChunkName: "project-suspended" */
2501
2478
  ); });
2502
2479
  });
@@ -2543,13 +2520,13 @@ var ProjectContainer = function ProjectContainer(props) {
2543
2520
  * is inserted in the DOM tree.
2544
2521
  * "
2545
2522
  */
2546
- setLocaleSwitcherNode(document.getElementById(applicationEntryPoint.CONTAINERS.LOCALE_SWITCHER));
2523
+ setLocaleSwitcherNode(document.getElementById(constants.CONTAINERS.LOCALE_SWITCHER));
2547
2524
  }, [setLocaleSwitcherNode]);
2548
2525
  var projectKey = props.match.params.projectKey;
2549
2526
  react.useEffect(function () {
2550
2527
  // Ensure to sync the `projectKey` from the URL with localStorage.
2551
2528
  if (projectKey) {
2552
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2529
+ window.localStorage.setItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
2553
2530
  }
2554
2531
  }, [projectKey]); // }
2555
2532
 
@@ -2567,7 +2544,7 @@ var ProjectContainer = function ProjectContainer(props) {
2567
2544
  */
2568
2545
 
2569
2546
  if (hasNoProjects && props.environment.enableSignUp !== true && props.environment.servedByProxy) return jsxRuntime.jsx(reactRouterDom.Redirect, {
2570
- to: "/logout?reason=".concat(constants.LOGOUT_REASONS.NO_PROJECTS)
2547
+ to: "/logout?reason=".concat(constants$1.LOGOUT_REASONS.NO_PROJECTS)
2571
2548
  });
2572
2549
  if (hasNoProjects && props.environment.enableSignUp) return jsxRuntime.jsxs(reactRouterDom.Switch, {
2573
2550
  children: [jsxRuntime.jsx(reactRouterDom.Route, {
@@ -2591,7 +2568,7 @@ var ProjectContainer = function ProjectContainer(props) {
2591
2568
  if (isProjectLoading) return jsxRuntime.jsx(ApplicationLoader, {});
2592
2569
  if (!project) return jsxRuntime.jsx(ProjectNotFound, {});
2593
2570
  if (project.suspension && project.suspension.isActive) return jsxRuntime.jsx(ProjectSuspended, {
2594
- isTemporary: project.suspension.reason === applicationEntryPoint.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2571
+ isTemporary: project.suspension.reason === constants.SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
2595
2572
  });
2596
2573
  if (project.expiry && project.expiry.isActive) return jsxRuntime.jsx(ProjectExpired, {});
2597
2574
  if (project.initialized === false) return jsxRuntime.jsx(ProjectNotInitialized, {});
@@ -2610,7 +2587,7 @@ var ProjectContainer = function ProjectContainer(props) {
2610
2587
  children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
2611
2588
  children: [shouldShowNotificationForTrialExpired((_project$expiry$daysL = project.expiry.daysLeft) !== null && _project$expiry$daysL !== void 0 ? _project$expiry$daysL : undefined) && jsxRuntime.jsx(reactNotifications.Notifier, {
2612
2589
  kind: "warning",
2613
- domain: constants.DOMAINS.GLOBAL,
2590
+ domain: constants$1.DOMAINS.GLOBAL,
2614
2591
  text: intl.formatMessage(messages$1.trialDaysLeft, {
2615
2592
  daysLeft: project.expiry.daysLeft || 0
2616
2593
  })
@@ -2652,9 +2629,7 @@ var getDefaultedFeatureToggles = function getDefaultedFeatureToggles(allFeatureT
2652
2629
  };
2653
2630
 
2654
2631
  var useAllMenuFeatureToggles = function useAllMenuFeatureToggles() {
2655
- var servedByProxy = applicationShellConnectors.useApplicationContext(function (applicationContext) {
2656
- return applicationContext.environment.servedByProxy;
2657
- });
2632
+ var servedByProxy = applicationEntryPoint.useIsServedByProxy();
2658
2633
  var mcProxyApiUrl = applicationShellConnectors.useApplicationContext(function (applicationContext) {
2659
2634
  return applicationContext.environment.mcProxyApiUrl;
2660
2635
  });
@@ -2787,7 +2762,7 @@ var SetupFlopFlipProvider = function SetupFlopFlipProvider(props) {
2787
2762
  query: AllFeaturesQuery,
2788
2763
  errorPolicy: 'ignore',
2789
2764
  context: {
2790
- target: constants.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2765
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
2791
2766
  }
2792
2767
  });
2793
2768
 
@@ -2863,7 +2838,7 @@ var messages = reactIntl.defineMessages({
2863
2838
  });
2864
2839
 
2865
2840
  var useLoadingMenuLayoutEffect = function useLoadingMenuLayoutEffect() {
2866
- var cachedIsForcedMenuOpen = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2841
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2867
2842
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
2868
2843
  react.useLayoutEffect(function () {
2869
2844
  if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
@@ -2942,7 +2917,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
2942
2917
  var _useMcQuery = useMcQuery(FetchProjectExtensionsNavbar, {
2943
2918
  skip: !props.environment.servedByProxy,
2944
2919
  context: {
2945
- target: constants.GRAPHQL_TARGETS.SETTINGS_SERVICE
2920
+ target: constants$1.GRAPHQL_TARGETS.SETTINGS_SERVICE
2946
2921
  },
2947
2922
  fetchPolicy: 'cache-and-network',
2948
2923
  onError: sentry.reportErrorToSentry
@@ -3018,7 +2993,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
3018
2993
  })
3019
2994
  };
3020
2995
  })).call(_context4, nonNullable) : [];
3021
- var cachedIsForcedMenuOpen = window.localStorage.getItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
2996
+ var cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
3022
2997
  var isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
3023
2998
 
3024
2999
  var _useReducer = react.useReducer(reducer, getInitialState(isForcedMenuOpen)),
@@ -3100,7 +3075,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
3100
3075
  type: 'toggleIsMenuOpen'
3101
3076
  }); // Synchronize the menu state with local storage.
3102
3077
 
3103
- window.localStorage.setItem(applicationEntryPoint.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
3078
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
3104
3079
  }, [state.activeItemIndex, state.isMenuOpen]);
3105
3080
 
3106
3081
  var allApplicationNavbarMenu = _concatInstanceProperty__default["default"](_context7 = _concatInstanceProperty__default["default"](_context8 = applicationsNavBarMenu || []).call(_context8, legacyCustomAppsMenu)).call(_context7, organizationCustomAppsMenu);
@@ -3334,11 +3309,7 @@ var MenuItemDivider = function MenuItemDivider() {
3334
3309
  });
3335
3310
  };
3336
3311
 
3337
- MenuItemDivider.displayName = 'MenuItemDivider'; // This component wraps `<RestrictedByPermissions>`
3338
- // and the `<ToggleFeature>` components. However, it's necessary to have it as
3339
- // the `<ToggleFeature>` wrapper should be rendered only if the `featureToggle`
3340
- // prop is defined. This is because `<ToggleFeature>` will not render any
3341
- // children if the flag is missing/not found.
3312
+ MenuItemDivider.displayName = 'MenuItemDivider';
3342
3313
 
3343
3314
  var isEveryMenuVisibilitySetToHidden = function isEveryMenuVisibilitySetToHidden(menuVisibilities, namesOfMenuVisibilities) {
3344
3315
  return _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, function (nameOfMenuVisibility) {
@@ -3350,9 +3321,14 @@ var restrictedMenuItemDefaultProps = {
3350
3321
  permissions: []
3351
3322
  };
3352
3323
 
3324
+ function isLongLivedFlag(flag) {
3325
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
3326
+ }
3327
+
3353
3328
  var RestrictedMenuItem = function RestrictedMenuItem(props) {
3354
3329
  // NOTE: Custom application are activated/deactivated while their
3355
3330
  // visibility is not controlled via a visibiility overwrite.
3331
+ var flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
3356
3332
  if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
3357
3333
  var permissionsWrapper = _Array$isArray__default["default"](props.permissions) && props.permissions.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
3358
3334
  permissions: props.permissions,
@@ -3376,10 +3352,11 @@ var RestrictedMenuItem = function RestrictedMenuItem(props) {
3376
3352
  });
3377
3353
 
3378
3354
  if (props.featureToggle) {
3379
- return jsxRuntime.jsx(reactBroadcast.ToggleFeature, {
3380
- flag: props.featureToggle,
3381
- children: permissionsWrapper
3382
- });
3355
+ // A regular short-lived feature toggle
3356
+ if (flagVariation === true) return permissionsWrapper; // A long-lived feature toggle with `{ value: boolean, string: reason }`
3357
+
3358
+ if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
3359
+ return null;
3383
3360
  }
3384
3361
 
3385
3362
  return permissionsWrapper;
@@ -3421,7 +3398,7 @@ var MenuLabel = function MenuLabel(props) {
3421
3398
  children: props.defaultLabel
3422
3399
  });
3423
3400
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
3424
- children: constants.NO_VALUE_FALLBACK
3401
+ children: constants$1.NO_VALUE_FALLBACK
3425
3402
  });
3426
3403
  };
3427
3404
 
@@ -3624,7 +3601,7 @@ var NavBar = function NavBar(props) {
3624
3601
  },
3625
3602
  onMouseLeave: isMenuOpen ? undefined : shouldCloseMenuFly,
3626
3603
  children: jsxRuntime.jsx("a", {
3627
- href: constants.SUPPORT_PORTAL_URL,
3604
+ href: constants$1.SUPPORT_PORTAL_URL,
3628
3605
  rel: "noopener noreferrer",
3629
3606
  target: "_blank",
3630
3607
  children: jsxRuntime.jsxs("div", {
@@ -3712,7 +3689,7 @@ var pimIndexerStates = {
3712
3689
  };
3713
3690
 
3714
3691
  var QuickAccess = /*#__PURE__*/react.lazy(function () {
3715
- return Promise.resolve().then(function () { return require('./quick-access-592bdd5b.cjs.prod.js'
3692
+ return Promise.resolve().then(function () { return require('./quick-access-dd969ed0.cjs.prod.js'
3716
3693
  /* webpackChunkName: "quick-access" */
3717
3694
  ); });
3718
3695
  });
@@ -3809,6 +3786,51 @@ var QuickAccessTrigger = function QuickAccessTrigger(props) {
3809
3786
  QuickAccessTrigger.propTypes = {};
3810
3787
  QuickAccessTrigger.displayName = 'QuickAccessTrigger';
3811
3788
 
3789
+ /**
3790
+ * Get the "real" Merchant Center frontend URL to redirect the user
3791
+ * to the login page.
3792
+ * We use an explicit full URL so that if a user tries to access the
3793
+ * Custom Applications directly to its domain, it will always redirect
3794
+ * the user to the login page.
3795
+ *
3796
+ * To determine the "real" URL, we need to check if the current location
3797
+ * is a Merchant Center domain, or if it's a custom user domain.
3798
+ * For the latter, we can derive the URL from the Merchant Center API URL.
3799
+ *
3800
+ * A Merchant Center hostname is composed by the following parts:
3801
+ * https://<mc-prefix>.<region>.<provider>.<ct-domain>.<tld>
3802
+ * We neeed to check if at least the first 4 parts (right-to-left) are
3803
+ * the same.
3804
+ */
3805
+ function getMcOrigin(mcApiUrl) {
3806
+ var _context, _context2;
3807
+
3808
+ var actualWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
3809
+ var mcApiUrlObject = new _URL__default["default"](mcApiUrl);
3810
+
3811
+ var _mcApiUrlObject$hostn = _reverseInstanceProperty__default["default"](_context = mcApiUrlObject.hostname.split('.')).call(_context),
3812
+ _mcApiUrlObject$hostn2 = _slicedToArray(_mcApiUrlObject$hostn, 4),
3813
+ tldMcApi = _mcApiUrlObject$hostn2[0],
3814
+ ctDomainMcApi = _mcApiUrlObject$hostn2[1],
3815
+ providerMcApi = _mcApiUrlObject$hostn2[2],
3816
+ regionMcApi = _mcApiUrlObject$hostn2[3];
3817
+
3818
+ var _actualWindow$locatio = _reverseInstanceProperty__default["default"](_context2 = actualWindow.location.hostname.split('.')).call(_context2),
3819
+ _actualWindow$locatio2 = _slicedToArray(_actualWindow$locatio, 4),
3820
+ tldMc = _actualWindow$locatio2[0],
3821
+ ctDomainMc = _actualWindow$locatio2[1],
3822
+ providerMc = _actualWindow$locatio2[2],
3823
+ regionMc = _actualWindow$locatio2[3];
3824
+
3825
+ var isMatching = tldMcApi === tldMc && ctDomainMcApi === ctDomainMc && providerMcApi === providerMc && regionMcApi === regionMc;
3826
+
3827
+ if (isMatching) {
3828
+ return actualWindow.location.origin;
3829
+ }
3830
+
3831
+ return mcApiUrlObject.origin.replace('mc-api', 'mc');
3832
+ }
3833
+
3812
3834
  var generateAndCacheNonceWithState = function generateAndCacheNonceWithState(state) {
3813
3835
  var nonce = uuid.v4(); // We store additional information within the given `nonce`
3814
3836
  // to then retrieve it later when the IdP redirects back
@@ -3825,6 +3847,7 @@ var RedirectToLogin = function RedirectToLogin() {
3825
3847
  var _window$app$__DEVELOP, _window$app$__DEVELOP2;
3826
3848
 
3827
3849
  var location = reactRouterDom.useLocation();
3850
+ var servedByProxy = applicationEntryPoint.useIsServedByProxy();
3828
3851
 
3829
3852
  if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.authorizeUrl) {
3830
3853
  var _window$app$__DEVELOP3, _window$app$__DEVELOP4, _window$app$__DEVELOP5, _window$app$__DEVELOP6, _window$app$__DEVELOP7, _window$app$__DEVELOP8;
@@ -3850,7 +3873,7 @@ var RedirectToLogin = function RedirectToLogin() {
3850
3873
  redirectTo: nextProjectKey ? "/".concat(nextProjectKey) : '/'
3851
3874
  }
3852
3875
  });
3853
- var requestedScope = buildOidcScope({
3876
+ var requestedScope = oidc.buildOidcScope({
3854
3877
  projectKey: nextProjectKey !== null && nextProjectKey !== void 0 ? nextProjectKey : undefined,
3855
3878
  oAuthScopes: (_window$app$__DEVELOP3 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP3 === void 0 ? void 0 : (_window$app$__DEVELOP4 = _window$app$__DEVELOP3.oidc) === null || _window$app$__DEVELOP4 === void 0 ? void 0 : _window$app$__DEVELOP4.oAuthScopes,
3856
3879
  teamId: (_window$app$__DEVELOP5 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP5 === void 0 ? void 0 : (_window$app$__DEVELOP6 = _window$app$__DEVELOP5.oidc) === null || _window$app$__DEVELOP6 === void 0 ? void 0 : _window$app$__DEVELOP6.teamId
@@ -3864,10 +3887,10 @@ var RedirectToLogin = function RedirectToLogin() {
3864
3887
  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,
3865
3888
  location: location,
3866
3889
  queryParams: {
3867
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3890
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3868
3891
  // Query parameters for OIDC-lik workflow.
3869
3892
  client_id: window.app.applicationId,
3870
- response_type: applicationEntryPoint.OIDC_RESPONSE_TYPES.ID_TOKEN,
3893
+ response_type: constants.OIDC_RESPONSE_TYPES.ID_TOKEN,
3871
3894
  scope: requestedScope,
3872
3895
  state: sessionId,
3873
3896
  nonce: sessionId
@@ -3875,11 +3898,13 @@ var RedirectToLogin = function RedirectToLogin() {
3875
3898
  });
3876
3899
  }
3877
3900
 
3901
+ var mcOrigin = servedByProxy ? getMcOrigin(window.app.mcApiUrl) : undefined;
3878
3902
  return jsxRuntime.jsx(Redirector, {
3879
3903
  to: "login",
3904
+ origin: mcOrigin,
3880
3905
  location: location,
3881
3906
  queryParams: {
3882
- reason: constants.LOGOUT_REASONS.UNAUTHORIZED,
3907
+ reason: constants$1.LOGOUT_REASONS.UNAUTHORIZED,
3883
3908
  redirectTo: urlUtils.trimLeadingAndTrailingSlashes(urlUtils.joinPaths(window.location.origin, location.pathname))
3884
3909
  }
3885
3910
  });
@@ -3897,9 +3922,7 @@ var RedirectToLogout = function RedirectToLogout(props) {
3897
3922
  var _window$app$__DEVELOP, _window$app$__DEVELOP2, _props$reason;
3898
3923
 
3899
3924
  var location = reactRouterDom.useLocation();
3900
- var servedByProxy = applicationShellConnectors.useApplicationContext(function (context) {
3901
- return context.environment.servedByProxy;
3902
- });
3925
+ var servedByProxy = applicationEntryPoint.useIsServedByProxy();
3903
3926
 
3904
3927
  if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.authorizeUrl) {
3905
3928
  // Remove the `sessionToken` from storage, so that the AppShell can initiate
@@ -3908,11 +3931,13 @@ var RedirectToLogout = function RedirectToLogout(props) {
3908
3931
  return jsxRuntime.jsx(RedirectToLogin, {});
3909
3932
  }
3910
3933
 
3934
+ var mcOrigin = servedByProxy ? getMcOrigin(window.app.mcApiUrl) : undefined;
3911
3935
  return jsxRuntime.jsx(Redirector, {
3912
3936
  to: "logout",
3937
+ origin: mcOrigin,
3913
3938
  location: location,
3914
3939
  queryParams: _objectSpread$1({
3915
- reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants.LOGOUT_REASONS.USER
3940
+ reason: (_props$reason = props.reason) !== null && _props$reason !== void 0 ? _props$reason : constants$1.LOGOUT_REASONS.USER
3916
3941
  }, servedByProxy ? {} : {
3917
3942
  // This will be used after being logged in, to redirect to this location.
3918
3943
  redirectTo: window.location.origin
@@ -3999,7 +4024,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
3999
4024
 
4000
4025
  if (hasUnauthorizedError || hasUserBeenDeletedError) {
4001
4026
  var logoutReason;
4002
- if (hasUnauthorizedError) logoutReason = constants.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants.LOGOUT_REASONS.DELETED;
4027
+ if (hasUnauthorizedError) logoutReason = constants$1.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants$1.LOGOUT_REASONS.DELETED;
4003
4028
  return jsxRuntime.jsx(RedirectToLogout, {
4004
4029
  reason: logoutReason
4005
4030
  });
@@ -4066,7 +4091,7 @@ var RestrictedApplication = function RestrictedApplication(props) {
4066
4091
  role: "global-notifications",
4067
4092
  css: _ref5,
4068
4093
  children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
4069
- domain: constants.DOMAINS.GLOBAL
4094
+ domain: constants$1.DOMAINS.GLOBAL
4070
4095
  })
4071
4096
  }), jsxRuntime.jsx(reactRouterDom.Route, {
4072
4097
  children: function children() {
@@ -4155,9 +4180,9 @@ var RestrictedApplication = function RestrictedApplication(props) {
4155
4180
  }) : jsxRuntime.jsxs(MainContainer, {
4156
4181
  role: "main",
4157
4182
  children: [jsxRuntime.jsx(reactNotifications.NotificationsList, {
4158
- domain: constants.DOMAINS.PAGE
4183
+ domain: constants$1.DOMAINS.PAGE
4159
4184
  }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
4160
- domain: constants.DOMAINS.SIDE
4185
+ domain: constants$1.DOMAINS.SIDE
4161
4186
  }), jsxRuntime.jsxs("div", {
4162
4187
  css: _ref2,
4163
4188
  children: [jsxRuntime.jsx(applicationComponents.PortalsContainer, {}), jsxRuntime.jsxs(reactRouterDom.Switch, {