@commercetools-frontend/application-shell 22.11.0 → 22.13.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 (69) hide show
  1. package/dist/commercetools-frontend-application-shell.cjs.dev.js +5 -3
  2. package/dist/commercetools-frontend-application-shell.cjs.prod.js +5 -3
  3. package/dist/commercetools-frontend-application-shell.esm.js +5 -3
  4. package/dist/{custom-view-dev-host-1a72b8f3.cjs.dev.js → custom-view-dev-host-7060a2b1.cjs.dev.js} +5 -3
  5. package/dist/{custom-view-dev-host-c6d81824.esm.js → custom-view-dev-host-c91d881b.esm.js} +5 -3
  6. package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -0
  7. package/dist/declarations/src/components/custom-view-shell/custom-view-shell.d.ts +3 -0
  8. package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +1 -4
  9. package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +1 -4
  10. package/dist/declarations/src/constants.d.ts +1 -1
  11. package/dist/declarations/src/test-utils/custom-views-utils.d.ts +10 -1
  12. package/dist/declarations/src/types/generated/settings.d.ts +114 -1
  13. package/dist/{index-70c1623b.esm.js → index-2b55a829.esm.js} +136 -77
  14. package/dist/{index-cdc22735.cjs.dev.js → index-9c9f0152.cjs.dev.js} +135 -76
  15. package/dist/{index-497ae97d.cjs.prod.js → index-ae549827.cjs.prod.js} +95 -55
  16. package/dist/{navbar-131d7509.cjs.dev.js → navbar-2372be36.cjs.dev.js} +1 -1
  17. package/dist/{navbar-058bd4bc.esm.js → navbar-508a24b2.esm.js} +1 -1
  18. package/dist/{navbar-5b122d30.cjs.prod.js → navbar-969b25dc.cjs.prod.js} +1 -1
  19. package/dist/{oidc-88c678f1.cjs.prod.js → oidc-7c48215c.cjs.dev.js} +2 -2
  20. package/dist/{oidc-ad31a103.cjs.dev.js → oidc-b070ff6c.cjs.prod.js} +2 -2
  21. package/dist/{oidc-callback-c70d87ef.cjs.prod.js → oidc-callback-402ad034.cjs.prod.js} +5 -3
  22. package/dist/{oidc-callback-be76c044.cjs.dev.js → oidc-callback-93aa3fa4.cjs.dev.js} +5 -3
  23. package/dist/{oidc-callback-943a79a3.esm.js → oidc-callback-9a7982c6.esm.js} +5 -3
  24. package/dist/{oidc-ffa1a7b2.esm.js → oidc-da8526e3.esm.js} +2 -2
  25. package/dist/{project-container-a125b80c.cjs.prod.js → project-container-30f9d73a.cjs.prod.js} +22 -17
  26. package/dist/project-container-3c8f6f03.esm.js +322 -0
  27. package/dist/project-container-81c3375e.cjs.dev.js +341 -0
  28. package/dist/{project-expired-ac67215f.esm.js → project-expired-34965012.esm.js} +6 -4
  29. package/dist/{project-expired-2b8a9d75.cjs.dev.js → project-expired-7f35fe7c.cjs.dev.js} +6 -4
  30. package/dist/{project-expired-3210d4c1.cjs.prod.js → project-expired-c1347c42.cjs.prod.js} +6 -4
  31. package/dist/{project-not-found-9429c7d7.cjs.dev.js → project-not-found-21b58ba2.cjs.dev.js} +6 -4
  32. package/dist/{project-not-found-dc976e8c.esm.js → project-not-found-4e30a24b.esm.js} +6 -4
  33. package/dist/{project-not-found-47f8fa22.cjs.prod.js → project-not-found-98689f47.cjs.prod.js} +6 -4
  34. package/dist/{project-not-initialized-c929db3a.esm.js → project-not-initialized-6ccdbdf9.esm.js} +6 -4
  35. package/dist/{project-not-initialized-9a3a1100.cjs.dev.js → project-not-initialized-b300b51b.cjs.dev.js} +6 -4
  36. package/dist/{project-not-initialized-d7aa4b2f.cjs.prod.js → project-not-initialized-ecb987f7.cjs.prod.js} +6 -4
  37. package/dist/{project-suspended-d25e0da3.cjs.dev.js → project-suspended-031ef3a8.cjs.dev.js} +6 -4
  38. package/dist/{project-suspended-bb439496.cjs.prod.js → project-suspended-0f466e92.cjs.prod.js} +6 -4
  39. package/dist/{project-suspended-b789a67b.esm.js → project-suspended-d408d76f.esm.js} +6 -4
  40. package/dist/{quick-access-463c6a6a.cjs.dev.js → quick-access-7adcf20a.cjs.dev.js} +5 -3
  41. package/dist/{quick-access-b1fdce23.cjs.prod.js → quick-access-8c1421d2.cjs.prod.js} +5 -3
  42. package/dist/{quick-access-86ec0b56.esm.js → quick-access-a4eef30e.esm.js} +5 -3
  43. package/dist/{redirect-to-login-2eb8c713.cjs.prod.js → redirect-to-login-573b012a.cjs.prod.js} +1 -1
  44. package/dist/{redirect-to-login-2c2678c6.cjs.dev.js → redirect-to-login-dffecd53.cjs.dev.js} +1 -1
  45. package/dist/{redirect-to-login-4e5c2292.esm.js → redirect-to-login-e569bd46.esm.js} +1 -1
  46. package/dist/{redirect-to-logout-f96ad82f.cjs.prod.js → redirect-to-logout-ca5f1840.cjs.prod.js} +5 -3
  47. package/dist/{redirect-to-logout-23042a64.esm.js → redirect-to-logout-d194325e.esm.js} +5 -3
  48. package/dist/{redirect-to-logout-b8c9ab83.cjs.dev.js → redirect-to-logout-e2fa0c5c.cjs.dev.js} +5 -3
  49. package/dist/{requests-in-flight-loader-4b2b696b.esm.js → requests-in-flight-loader-d835125d.esm.js} +5 -3
  50. package/dist/{requests-in-flight-loader-6dca76f3.cjs.dev.js → requests-in-flight-loader-df5bb9db.cjs.dev.js} +5 -3
  51. package/dist/{requests-in-flight-loader-d1643ea7.cjs.prod.js → requests-in-flight-loader-fd3c09f0.cjs.prod.js} +5 -3
  52. package/dist/{service-page-project-switcher-5303df97.cjs.dev.js → service-page-project-switcher-1a5994ce.cjs.dev.js} +1 -1
  53. package/dist/{service-page-project-switcher-2676ee3d.esm.js → service-page-project-switcher-342dcb02.esm.js} +1 -1
  54. package/dist/{service-page-project-switcher-f267c53a.cjs.prod.js → service-page-project-switcher-698c4abe.cjs.prod.js} +1 -1
  55. package/dist/{user-settings-menu-367bc7a6.cjs.prod.js → user-settings-menu-2fa90966.cjs.prod.js} +1 -1
  56. package/dist/{user-settings-menu-2e70ac8f.cjs.dev.js → user-settings-menu-79570f93.cjs.dev.js} +1 -1
  57. package/dist/{user-settings-menu-a2a34456.esm.js → user-settings-menu-c087b178.esm.js} +1 -1
  58. package/dist/{version-tracker-321e7b99.cjs.dev.js → version-tracker-019b894e.cjs.dev.js} +5 -3
  59. package/dist/{version-tracker-bd652c85.cjs.prod.js → version-tracker-7bef59f4.cjs.prod.js} +5 -3
  60. package/dist/{version-tracker-cf000a87.esm.js → version-tracker-e89a6e6b.esm.js} +5 -3
  61. package/package.json +21 -21
  62. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +1 -1
  63. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +1 -1
  64. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +1 -1
  65. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +8 -2
  66. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +8 -2
  67. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +9 -3
  68. package/dist/project-container-6b3fd716.esm.js +0 -319
  69. package/dist/project-container-6d637c9b.cjs.dev.js +0 -338
@@ -0,0 +1,322 @@
1
+ import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
2
+ import _pt from 'prop-types';
3
+ import { useCallback, lazy, useState, useEffect, Suspense } from 'react';
4
+ import isNil from 'lodash/isNil';
5
+ import ReactDOM from 'react-dom';
6
+ import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
7
+ import { useLocation, useRouteMatch, Redirect, Switch, Route } from 'react-router-dom';
8
+ import { ApplicationContextProvider } from '@commercetools-frontend/application-shell-connectors';
9
+ import { STORAGE_KEYS, LOGOUT_REASONS, DOMAINS } from '@commercetools-frontend/constants';
10
+ import { Notifier } from '@commercetools-frontend/react-notifications';
11
+ import { C as CONTAINERS, S as SUSPENSION_REASONS } from './oidc-da8526e3.esm.js';
12
+ import { A as ApplicationEntryPoint } from './application-entry-point-3613e4a5.esm.js';
13
+ import { a as RedirectToProjectCreate, E as ErrorBoundary, b as ApplicationLoader, F as FetchProject, P as ProjectDataLocale } from './index-2b55a829.esm.js';
14
+ import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
15
+ import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
16
+ import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
17
+ import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
18
+ import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
19
+ import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
20
+ import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
21
+ import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
22
+ import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
23
+ import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
24
+ import { css } from '@emotion/react';
25
+ import { components } from 'react-select';
26
+ import AccessibleHidden from '@commercetools-uikit/accessible-hidden';
27
+ import { designTokens } from '@commercetools-uikit/design-system';
28
+ import { WorldIcon } from '@commercetools-uikit/icons';
29
+ import SelectInput from '@commercetools-uikit/select-input';
30
+ import { jsxs, jsx, Fragment } from '@emotion/react/jsx-runtime';
31
+ import '@babel/runtime-corejs3/core-js-stable/instance/concat';
32
+ import 'tiny-invariant';
33
+ import '@commercetools-frontend/application-components';
34
+ import '@commercetools-frontend/application-config/ssr';
35
+ import '@commercetools-frontend/permissions';
36
+ import './index-89e5711a.esm.js';
37
+ import '@babel/runtime-corejs3/core-js-stable/instance/reduce';
38
+ import '@babel/runtime-corejs3/core-js-stable/object/entries';
39
+ import '@babel/runtime-corejs3/core-js-stable/reflect/has';
40
+ import '@reduxjs/toolkit';
41
+ import 'lodash/mapValues';
42
+ import 'omit-empty-es';
43
+ import 'redux-thunk';
44
+ import '@commercetools-frontend/notifications';
45
+ import '@commercetools-frontend/sdk';
46
+ import '@babel/runtime-corejs3/core-js-stable/instance/index-of';
47
+ import '@babel/runtime-corejs3/core-js-stable/instance/slice';
48
+ import '@babel/runtime-corejs3/core-js-stable/instance/includes';
49
+ import '@commercetools-frontend/sentry';
50
+ import '@babel/runtime-corejs3/core-js-stable/instance/starts-with';
51
+ import 'redux-logger';
52
+ import '@emotion/styled/base';
53
+ import '@babel/runtime-corejs3/core-js-stable/instance/find';
54
+ import '@babel/runtime-corejs3/core-js-stable/array/is-array';
55
+ import '@commercetools-frontend/i18n';
56
+ import '@babel/runtime-corejs3/core-js-stable/url';
57
+ import '@commercetools-uikit/spacings';
58
+ import '@commercetools-uikit/flat-button';
59
+ import './use-is-served-by-proxy-77984220.esm.js';
60
+ import '@babel/runtime-corejs3/helpers/taggedTemplateLiteral';
61
+ import '@babel/runtime-corejs3/helpers/objectDestructuringEmpty';
62
+ import '@babel/runtime-corejs3/helpers/extends';
63
+ import 'memoize-one';
64
+ import '@commercetools-frontend/assets/images/ct-logo.svg';
65
+ import '@commercetools-uikit/loading-spinner';
66
+ import '@commercetools-frontend/browser-history';
67
+ import '@commercetools-frontend/l10n';
68
+ import '@babel/runtime-corejs3/core-js-stable/reflect/construct';
69
+ import '@babel/runtime-corejs3/helpers/classCallCheck';
70
+ import '@babel/runtime-corejs3/helpers/createClass';
71
+ import '@babel/runtime-corejs3/helpers/inherits';
72
+ import '@babel/runtime-corejs3/helpers/possibleConstructorReturn';
73
+ import '@babel/runtime-corejs3/helpers/getPrototypeOf';
74
+ import '@babel/runtime-corejs3/core-js-stable/object/from-entries';
75
+ import '@babel/runtime-corejs3/core-js-stable/instance/flags';
76
+ import '@apollo/client/react';
77
+ import '@flopflip/combine-adapters';
78
+ import '@flopflip/http-adapter';
79
+ import '@flopflip/launchdarkly-adapter';
80
+ import '@flopflip/react-broadcast';
81
+ import 'react-redux';
82
+ import 'lodash/upperFirst';
83
+ import '@commercetools-uikit/design-system/materials/resets.css';
84
+ import '@babel/runtime-corejs3/core-js-stable/json/stringify';
85
+ import '@babel/runtime-corejs3/core-js-stable/instance/some';
86
+ import '@commercetools-frontend/actions-global';
87
+
88
+ var messages$1 = defineMessages({
89
+ localesLabel: {
90
+ id: 'LocaleSwitcher.localesLabel',
91
+ description: 'The label for project dropdown switcher',
92
+ defaultMessage: 'Locales menu'
93
+ }
94
+ });
95
+
96
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
97
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
98
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
99
+ const LOCALE_SWITCHER_LABEL_ID = 'locale-switcher-label';
100
+ var _ref = process.env.NODE_ENV === "production" ? {
101
+ name: "lmfqdl",
102
+ styles: "flex:1;align-items:center;display:flex"
103
+ } : {
104
+ name: "v1qg5m-SingleValue",
105
+ styles: "flex:1;align-items:center;display:flex;label:SingleValue;",
106
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsZS1zd2l0Y2hlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEJjIiwiZmlsZSI6ImxvY2FsZS1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB0eXBlIHtcbiAgU2luZ2xlVmFsdWVQcm9wcyxcbiAgVmFsdWVDb250YWluZXJQcm9wcyxcbiAgTWVudUxpc3RQcm9wcyxcbn0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBXb3JsZEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJztcblxudHlwZSBQcm9wcyA9IHtcbiAgcHJvamVjdERhdGFMb2NhbGU6IHN0cmluZztcbiAgc2V0UHJvamVjdERhdGFMb2NhbGU6IChsb2NhbGU6IHN0cmluZykgPT4gdm9pZDtcbiAgYXZhaWxhYmxlTG9jYWxlczogc3RyaW5nW107XG59O1xuXG5jb25zdCBMT0NBTEVfU1dJVENIRVJfTEFCRUxfSUQgPSAnbG9jYWxlLXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFNpbmdsZVZhbHVlID0gKHByb3BzOiBTaW5nbGVWYWx1ZVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxXb3JsZEljb24gc2l6ZT1cImJpZ1wiIC8+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTtcblNpbmdsZVZhbHVlLmRpc3BsYXlOYW1lID0gJ1NpbmdsZVZhbHVlJztcblxuY29uc3QgUGF0Y2hlZFZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBWYWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lclxuICAgIHsuLi5wcm9wc31cbiAgICBpbm5lclByb3BzPXt7IHN0eWxlOiB7IGRpc3BsYXk6ICdmbGV4JyB9IH19XG4gIC8+XG4pO1xuUGF0Y2hlZFZhbHVlQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ1BhdGNoZWRWYWx1ZUNvbnRhaW5lcic7XG5cbmNvbnN0IEN1c3RvbU1lbnVMaXN0ID0gKHByb3BzOiBNZW51TGlzdFByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk1lbnVMaXN0IHsuLi5wcm9wc30+e3Byb3BzLmNoaWxkcmVufTwvY29tcG9uZW50cy5NZW51TGlzdD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IExvY2FsZVN3aXRjaGVyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHNldFByb2plY3REYXRhTG9jYWxlIH0gPSBwcm9wcztcbiAgY29uc3QgaGFuZGxlU2VsZWN0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFByb2plY3REYXRhTG9jYWxlXVxuICApO1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8QWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgICAgPHNwYW4gaWQ9e0xPQ0FMRV9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmxvY2FsZXNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0RGF0YUxvY2FsZX1cbiAgICAgICAgbmFtZT1cImxvY2FsZS1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17TE9DQUxFX1NXSVRDSEVSX0xBQkVMX0lEfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlU2VsZWN0aW9ufVxuICAgICAgICBvcHRpb25zPXtwcm9wcy5hdmFpbGFibGVMb2NhbGVzLm1hcCgobG9jYWxlKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBsb2NhbGUsXG4gICAgICAgICAgdmFsdWU6IGxvY2FsZSxcbiAgICAgICAgfSkpfVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgU2luZ2xlVmFsdWUsXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6IFBhdGNoZWRWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICBNZW51TGlzdDogQ3VzdG9tTWVudUxpc3QsXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgaXNTZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgaG9yaXpvbnRhbENvbnN0cmFpbnQ9eydhdXRvJ31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMb2NhbGVTd2l0Y2hlcjtcbiJdfQ== */",
107
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
108
+ };
109
+ const SingleValue = props => {
110
+ return jsxs("div", {
111
+ css: _ref,
112
+ children: [jsx(WorldIcon, {
113
+ size: "big"
114
+ }), jsx("span", {
115
+ css: /*#__PURE__*/css("margin-left:2px;flex:1;color:", designTokens.colorAccent, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:SingleValue;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsZS1zd2l0Y2hlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0NnQiIsImZpbGUiOiJsb2NhbGUtc3dpdGNoZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7XG4gIFNpbmdsZVZhbHVlUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG4gIE1lbnVMaXN0UHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgeyBjb21wb25lbnRzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgV29ybGRJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IFNlbGVjdElucHV0IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NlbGVjdC1pbnB1dCc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3REYXRhTG9jYWxlOiBzdHJpbmc7XG4gIHNldFByb2plY3REYXRhTG9jYWxlOiAobG9jYWxlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGF2YWlsYWJsZUxvY2FsZXM6IHN0cmluZ1tdO1xufTtcblxuY29uc3QgTE9DQUxFX1NXSVRDSEVSX0xBQkVMX0lEID0gJ2xvY2FsZS1zd2l0Y2hlci1sYWJlbCc7XG5cbmV4cG9ydCBjb25zdCBTaW5nbGVWYWx1ZSA9IChwcm9wczogU2luZ2xlVmFsdWVQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8V29ybGRJY29uIHNpemU9XCJiaWdcIiAvPlxuICAgICAgPHNwYW5cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5TaW5nbGVWYWx1ZS5kaXNwbGF5TmFtZSA9ICdTaW5nbGVWYWx1ZSc7XG5cbmNvbnN0IFBhdGNoZWRWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogVmFsdWVDb250YWluZXJQcm9wcykgPT4gKFxuICA8U2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXJcbiAgICB7Li4ucHJvcHN9XG4gICAgaW5uZXJQcm9wcz17eyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcgfSB9fVxuICAvPlxuKTtcblBhdGNoZWRWYWx1ZUNvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdQYXRjaGVkVmFsdWVDb250YWluZXInO1xuXG5jb25zdCBDdXN0b21NZW51TGlzdCA9IChwcm9wczogTWVudUxpc3RQcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgIG1heC13aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8Y29tcG9uZW50cy5NZW51TGlzdCB7Li4ucHJvcHN9Pntwcm9wcy5jaGlsZHJlbn08L2NvbXBvbmVudHMuTWVudUxpc3Q+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBMb2NhbGVTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZXRQcm9qZWN0RGF0YUxvY2FsZSB9ID0gcHJvcHM7XG4gIGNvbnN0IGhhbmRsZVNlbGVjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudCkgPT4ge1xuICAgICAgc2V0UHJvamVjdERhdGFMb2NhbGUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9LFxuICAgIFtzZXRQcm9qZWN0RGF0YUxvY2FsZV1cbiAgKTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEFjY2Vzc2libGVIaWRkZW4+XG4gICAgICAgIDxzcGFuIGlkPXtMT0NBTEVfU1dJVENIRVJfTEFCRUxfSUR9PlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5sb2NhbGVzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdERhdGFMb2NhbGV9XG4gICAgICAgIG5hbWU9XCJsb2NhbGUtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e0xPQ0FMRV9TV0lUQ0hFUl9MQUJFTF9JRH1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlbGVjdGlvbn1cbiAgICAgICAgb3B0aW9ucz17cHJvcHMuYXZhaWxhYmxlTG9jYWxlcy5tYXAoKGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogbG9jYWxlLFxuICAgICAgICAgIHZhbHVlOiBsb2NhbGUsXG4gICAgICAgIH0pKX1cbiAgICAgICAgY29tcG9uZW50cz17e1xuICAgICAgICAgIFNpbmdsZVZhbHVlLFxuICAgICAgICAgIFZhbHVlQ29udGFpbmVyOiBQYXRjaGVkVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTWVudUxpc3Q6IEN1c3RvbU1lbnVMaXN0LFxuICAgICAgICB9fVxuICAgICAgICBpc0NsZWFyYWJsZT17ZmFsc2V9XG4gICAgICAgIGJhY2tzcGFjZVJlbW92ZXNWYWx1ZT17ZmFsc2V9XG4gICAgICAgIGlzU2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIGhvcml6b250YWxDb25zdHJhaW50PXsnYXV0byd9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYWxlU3dpdGNoZXI7XG4iXX0= */"),
116
+ children: props.children
117
+ })]
118
+ });
119
+ };
120
+ SingleValue.displayName = 'SingleValue';
121
+ const PatchedValueContainer = props => jsx(SelectInput.ValueContainer, _objectSpread(_objectSpread({}, props), {}, {
122
+ innerProps: {
123
+ style: {
124
+ display: 'flex'
125
+ }
126
+ }
127
+ }));
128
+ PatchedValueContainer.displayName = 'PatchedValueContainer';
129
+ const CustomMenuList = props => {
130
+ return jsx("div", {
131
+ css: /*#__PURE__*/css("width:max-content;max-width:", designTokens.constraint6, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:CustomMenuList;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsZS1zd2l0Y2hlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMERjIiwiZmlsZSI6ImxvY2FsZS1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB0eXBlIHtcbiAgU2luZ2xlVmFsdWVQcm9wcyxcbiAgVmFsdWVDb250YWluZXJQcm9wcyxcbiAgTWVudUxpc3RQcm9wcyxcbn0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBXb3JsZEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgU2VsZWN0SW5wdXQgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc2VsZWN0LWlucHV0JztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJztcblxudHlwZSBQcm9wcyA9IHtcbiAgcHJvamVjdERhdGFMb2NhbGU6IHN0cmluZztcbiAgc2V0UHJvamVjdERhdGFMb2NhbGU6IChsb2NhbGU6IHN0cmluZykgPT4gdm9pZDtcbiAgYXZhaWxhYmxlTG9jYWxlczogc3RyaW5nW107XG59O1xuXG5jb25zdCBMT0NBTEVfU1dJVENIRVJfTEFCRUxfSUQgPSAnbG9jYWxlLXN3aXRjaGVyLWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IFNpbmdsZVZhbHVlID0gKHByb3BzOiBTaW5nbGVWYWx1ZVByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxXb3JsZEljb24gc2l6ZT1cImJpZ1wiIC8+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTtcblNpbmdsZVZhbHVlLmRpc3BsYXlOYW1lID0gJ1NpbmdsZVZhbHVlJztcblxuY29uc3QgUGF0Y2hlZFZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBWYWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lclxuICAgIHsuLi5wcm9wc31cbiAgICBpbm5lclByb3BzPXt7IHN0eWxlOiB7IGRpc3BsYXk6ICdmbGV4JyB9IH19XG4gIC8+XG4pO1xuUGF0Y2hlZFZhbHVlQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ1BhdGNoZWRWYWx1ZUNvbnRhaW5lcic7XG5cbmNvbnN0IEN1c3RvbU1lbnVMaXN0ID0gKHByb3BzOiBNZW51TGlzdFByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxjb21wb25lbnRzLk1lbnVMaXN0IHsuLi5wcm9wc30+e3Byb3BzLmNoaWxkcmVufTwvY29tcG9uZW50cy5NZW51TGlzdD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IExvY2FsZVN3aXRjaGVyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHNldFByb2plY3REYXRhTG9jYWxlIH0gPSBwcm9wcztcbiAgY29uc3QgaGFuZGxlU2VsZWN0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFByb2plY3REYXRhTG9jYWxlXVxuICApO1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8QWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgICAgPHNwYW4gaWQ9e0xPQ0FMRV9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmxvY2FsZXNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0RGF0YUxvY2FsZX1cbiAgICAgICAgbmFtZT1cImxvY2FsZS1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17TE9DQUxFX1NXSVRDSEVSX0xBQkVMX0lEfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlU2VsZWN0aW9ufVxuICAgICAgICBvcHRpb25zPXtwcm9wcy5hdmFpbGFibGVMb2NhbGVzLm1hcCgobG9jYWxlKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBsb2NhbGUsXG4gICAgICAgICAgdmFsdWU6IGxvY2FsZSxcbiAgICAgICAgfSkpfVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgU2luZ2xlVmFsdWUsXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6IFBhdGNoZWRWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICBNZW51TGlzdDogQ3VzdG9tTWVudUxpc3QsXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgaXNTZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgaG9yaXpvbnRhbENvbnN0cmFpbnQ9eydhdXRvJ31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMb2NhbGVTd2l0Y2hlcjtcbiJdfQ== */"),
132
+ children: jsx(components.MenuList, _objectSpread(_objectSpread({}, props), {}, {
133
+ children: props.children
134
+ }))
135
+ });
136
+ };
137
+ const LocaleSwitcher = props => {
138
+ var _context;
139
+ const setProjectDataLocale = props.setProjectDataLocale;
140
+ const handleSelection = useCallback(event => {
141
+ setProjectDataLocale(event.target.value);
142
+ }, [setProjectDataLocale]);
143
+ return jsxs("div", {
144
+ children: [jsx(AccessibleHidden, {
145
+ children: jsx("span", {
146
+ id: LOCALE_SWITCHER_LABEL_ID,
147
+ children: jsx(FormattedMessage, _objectSpread({}, messages$1.localesLabel))
148
+ })
149
+ }), jsx(SelectInput, {
150
+ value: props.projectDataLocale,
151
+ name: "locale-switcher",
152
+ "aria-labelledby": LOCALE_SWITCHER_LABEL_ID,
153
+ onChange: handleSelection,
154
+ options: _mapInstanceProperty(_context = props.availableLocales).call(_context, locale => ({
155
+ label: locale,
156
+ value: locale
157
+ })),
158
+ components: {
159
+ SingleValue,
160
+ ValueContainer: PatchedValueContainer,
161
+ MenuList: CustomMenuList
162
+ },
163
+ isClearable: false,
164
+ backspaceRemovesValue: false,
165
+ isSearchable: false,
166
+ horizontalConstraint: 'auto'
167
+ })]
168
+ });
169
+ };
170
+ LocaleSwitcher.propTypes = process.env.NODE_ENV !== "production" ? {
171
+ projectDataLocale: _pt.string.isRequired,
172
+ setProjectDataLocale: _pt.func.isRequired,
173
+ availableLocales: _pt.arrayOf(_pt.string).isRequired
174
+ } : {};
175
+
176
+ const ProjectExpired = /*#__PURE__*/lazy(() => import('./project-expired-34965012.esm.js' /* webpackChunkName: "project-expired" */));
177
+
178
+ const ProjectNotFound = /*#__PURE__*/lazy(() => import('./project-not-found-4e30a24b.esm.js' /* webpackChunkName: "project-not-found" */));
179
+
180
+ const ProjectNotInitialized = /*#__PURE__*/lazy(() => import('./project-not-initialized-6ccdbdf9.esm.js' /* webpackChunkName: "project-not-initialized" */));
181
+
182
+ const ProjectSuspended = /*#__PURE__*/lazy(() => import('./project-suspended-d408d76f.esm.js' /* webpackChunkName: "project-suspended" */));
183
+
184
+ var messages = defineMessages({
185
+ trialDaysLeft: {
186
+ id: 'Project.trialDaysLeft',
187
+ defaultMessage: 'Your project trial period will expire in {daysLeft} {daysLeft, plural, one {day} other {days}}. For any inquiries please contact sales@commercetools.com'
188
+ }
189
+ });
190
+
191
+ // A trial expire notification should be displayed from 2 weeks before the project expires
192
+ const minDaysToDisplayNotification = 14;
193
+ const maxDaysToDisplayNotification = 0;
194
+ const shouldShowNotificationForTrialExpired = daysLeft => !isNil(daysLeft) && daysLeft <= minDaysToDisplayNotification && daysLeft >= maxDaysToDisplayNotification;
195
+ const ProjectContainer = props => {
196
+ var _props$render;
197
+ const intl = useIntl();
198
+ const location = useLocation();
199
+ const match = useRouteMatch();
200
+ const _useState = useState(null),
201
+ _useState2 = _slicedToArray(_useState, 2),
202
+ localeSwitcherNode = _useState2[0],
203
+ setLocaleSwitcherNode = _useState2[1];
204
+ useEffect(() => {
205
+ /**
206
+ * NOTE: in order to render a component into a portal, the portal
207
+ * DOM node needs to exists in the DOM.
208
+ * If we try to get the DOM node by id before the components are
209
+ * actually mounted, we won't find the DOM node, hence we can't render
210
+ * the portal.
211
+ * To work around this issue, we simply wait that the component is
212
+ * mounted, then we render the portal.
213
+ *
214
+ * From the reactjs docs: https://reactjs.org/docs/portals.html
215
+ * "
216
+ * If a child component requires to be attached to the DOM tree
217
+ * immediately when mounted, for example to measure a
218
+ * DOM node, or uses 'autoFocus' in a descendant, add
219
+ * state to Modal and only render the children when Modal
220
+ * is inserted in the DOM tree.
221
+ * "
222
+ */
223
+ setLocaleSwitcherNode(document.getElementById(CONTAINERS.LOCALE_SWITCHER));
224
+ }, [setLocaleSwitcherNode]);
225
+ const projectKey = match.params.projectKey;
226
+ useEffect(() => {
227
+ // Ensure to sync the `projectKey` from the URL with localStorage.
228
+ if (projectKey) {
229
+ window.localStorage.setItem(STORAGE_KEYS.ACTIVE_PROJECT_KEY, projectKey);
230
+ }
231
+ }, [projectKey]);
232
+ const hasNoProjects = props.user && props.user.projects.total === 0;
233
+ /**
234
+ * Given the user does not have any projects and account creation (sign up) is not yet
235
+ * enabled the user will be logged out.
236
+ *
237
+ * Given the user does not have project (and as a result is not part of an organization)
238
+ * the account application gets control over render. If any other application
239
+ * is requested to render a full page redirect (to have the proxy serve the request) occurs
240
+ * given the application is served by the proxy.
241
+ * Given the application is not served by the proxy we do not perform a redirect as
242
+ * otherwise a redirect loop can occur as no application is able to handle the route.
243
+ */
244
+ if (hasNoProjects && props.environment.enableSignUp !== true && props.environment.servedByProxy) return jsx(Redirect, {
245
+ to: "/logout?reason=".concat(LOGOUT_REASONS.NO_PROJECTS)
246
+ });
247
+ if (hasNoProjects && props.environment.enableSignUp) return jsxs(Switch, {
248
+ children: [jsx(Route, {
249
+ path: "/account",
250
+ children: (_props$render = props.render) === null || _props$render === void 0 ? void 0 : _props$render.call(props)
251
+ }), jsx(Route, {
252
+ children: jsx(RedirectToProjectCreate, {})
253
+ })]
254
+ });
255
+ return jsx(ErrorBoundary, {
256
+ pathname: location.pathname,
257
+ children: jsx(Suspense, {
258
+ fallback: jsx(ApplicationLoader, {}),
259
+ children: jsx(FetchProject, {
260
+ skip: !props.user || !props.user.defaultProjectKey,
261
+ projectKey: projectKey,
262
+ children: _ref => {
263
+ let isProjectLoading = _ref.isLoading,
264
+ project = _ref.project;
265
+ // TODO: do something if there is an `error`?
266
+ if (isProjectLoading) return jsx(ApplicationLoader, {});
267
+ if (!project) return jsx(ProjectNotFound, {});
268
+ if (project.suspension && project.suspension.isActive) return jsx(ProjectSuspended, {
269
+ isTemporary: project.suspension.reason === SUSPENSION_REASONS.TEMPORARY_MAINTENANCE
270
+ });
271
+ if (project.expiry && project.expiry.isActive) return jsx(ProjectExpired, {});
272
+ if (project.initialized === false) return jsx(ProjectNotInitialized, {});
273
+ return jsx(ProjectDataLocale, {
274
+ locales: project.languages,
275
+ children: _ref2 => {
276
+ var _project$expiry$daysL;
277
+ let locale = _ref2.locale,
278
+ setProjectDataLocale = _ref2.setProjectDataLocale;
279
+ return jsx(ApplicationContextProvider, {
280
+ user: props.user,
281
+ project: project,
282
+ projectDataLocale: locale,
283
+ environment: props.environment,
284
+ children: jsxs(Fragment, {
285
+ children: [shouldShowNotificationForTrialExpired((_project$expiry$daysL = project.expiry.daysLeft) !== null && _project$expiry$daysL !== void 0 ? _project$expiry$daysL : undefined) && jsx(Notifier, {
286
+ kind: "warning",
287
+ domain: DOMAINS.GLOBAL,
288
+ text: intl.formatMessage(messages.trialDaysLeft, {
289
+ daysLeft: project.expiry.daysLeft || 0
290
+ })
291
+ }), localeSwitcherNode &&
292
+ // Render the `<LocaleSwitcher>` only if the project has more
293
+ // than one language.
294
+ project.languages.length > 1 && /*#__PURE__*/ReactDOM.createPortal(jsx(LocaleSwitcher
295
+ // Be explicit on listing the props so that we can better assert it.
296
+ , {
297
+ projectDataLocale: locale,
298
+ setProjectDataLocale: setProjectDataLocale,
299
+ availableLocales: project.languages
300
+ }), localeSwitcherNode), jsx(ApplicationEntryPoint, {
301
+ environment: props.environment,
302
+ disableRoutePermissionCheck: props.disableRoutePermissionCheck,
303
+ render: props.render,
304
+ children: props.children
305
+ })]
306
+ })
307
+ });
308
+ }
309
+ });
310
+ }
311
+ })
312
+ })
313
+ });
314
+ };
315
+ ProjectContainer.propTypes = process.env.NODE_ENV !== "production" ? {
316
+ disableRoutePermissionCheck: _pt.bool,
317
+ render: _pt.func,
318
+ children: _pt.node
319
+ } : {};
320
+ ProjectContainer.displayName = 'ProjectContainer';
321
+
322
+ export { ProjectContainer as default };