@commercetools-frontend/application-shell 22.30.2 → 22.31.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 (90) hide show
  1. package/dist/{application-entry-point-2365588d.esm.js → application-entry-point-44f059a0.esm.js} +3 -3
  2. package/dist/{application-entry-point-257a1cbc.cjs.prod.js → application-entry-point-654951a6.cjs.prod.js} +2 -2
  3. package/dist/{application-entry-point-a403a123.cjs.dev.js → application-entry-point-c2f77f23.cjs.dev.js} +3 -3
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +11 -5
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +11 -5
  6. package/dist/commercetools-frontend-application-shell.esm.js +5 -5
  7. package/dist/{custom-view-dev-host-2dbeffde.cjs.dev.js → custom-view-dev-host-1ef244b8.cjs.dev.js} +12 -16
  8. package/dist/{custom-view-dev-host-54b19a22.esm.js → custom-view-dev-host-83d6228b.esm.js} +12 -15
  9. package/dist/{custom-view-dev-host-55efb1ea.cjs.prod.js → custom-view-dev-host-9469b02c.cjs.prod.js} +12 -16
  10. package/dist/declarations/src/components/application-page-title/application-page-title.d.ts +16 -0
  11. package/dist/declarations/src/components/application-shell/application-shell.d.ts +17 -0
  12. package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +4 -0
  13. package/dist/declarations/src/components/workspaces-navigation-button/index.d.ts +1 -0
  14. package/dist/declarations/src/components/workspaces-navigation-button/messages.d.ts +8 -0
  15. package/dist/declarations/src/components/workspaces-navigation-button/workspaces-navigation-button.d.ts +3 -0
  16. package/dist/declarations/src/configure-store.d.ts +3 -0
  17. package/dist/declarations/src/hooks/use-routes-creator/use-routes-creator.d.ts +3 -0
  18. package/dist/declarations/src/index.d.ts +16 -1
  19. package/dist/declarations/src/types/generated/ctp.d.ts +562 -0
  20. package/dist/declarations/src/types/generated/mc.d.ts +5 -0
  21. package/dist/declarations/src/types/generated/proxy.d.ts +3 -0
  22. package/dist/declarations/src/types/generated/settings.d.ts +22 -0
  23. package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +16 -0
  24. package/dist/{index-055ebc13.cjs.prod.js → index-91985d64.cjs.prod.js} +2 -2
  25. package/dist/{index-ca28cb0d.esm.js → index-9475648a.esm.js} +185 -154
  26. package/dist/{index-ca730730.cjs.dev.js → index-b1476d46.cjs.dev.js} +2 -2
  27. package/dist/{index-4e5248df.esm.js → index-b6081c20.esm.js} +2 -2
  28. package/dist/{index-8974720c.cjs.dev.js → index-bd1c5108.cjs.dev.js} +190 -153
  29. package/dist/{index-176564c3.cjs.prod.js → index-ff4b1f1e.cjs.prod.js} +175 -144
  30. package/dist/{navbar-e3ee2a76.esm.js → navbar-18ab9da8.esm.js} +80 -97
  31. package/dist/{navbar-ced649a9.cjs.prod.js → navbar-32ad8010.cjs.prod.js} +80 -98
  32. package/dist/{navbar-f981de75.cjs.dev.js → navbar-4068efee.cjs.dev.js} +80 -98
  33. package/dist/oidc-6c6599a2.cjs.dev.js +98 -0
  34. package/dist/oidc-8275c04f.esm.js +84 -0
  35. package/dist/{oidc-callback-b6c08a0a.cjs.prod.js → oidc-callback-365669c2.cjs.prod.js} +11 -12
  36. package/dist/{oidc-callback-394ce33e.cjs.dev.js → oidc-callback-910e1e1c.cjs.dev.js} +11 -12
  37. package/dist/{oidc-callback-96d0d22a.esm.js → oidc-callback-a622f3a5.esm.js} +11 -12
  38. package/dist/oidc-d02d4ab8.cjs.prod.js +98 -0
  39. package/dist/{project-container-d690330d.cjs.prod.js → project-container-4cc1a369.cjs.prod.js} +15 -17
  40. package/dist/{project-container-4c04ecd0.cjs.dev.js → project-container-ba49f3db.cjs.dev.js} +15 -17
  41. package/dist/{project-container-66355b01.esm.js → project-container-edb85c22.esm.js} +15 -17
  42. package/dist/{project-expired-e9d9a604.cjs.dev.js → project-expired-378bcfb0.cjs.dev.js} +8 -8
  43. package/dist/{project-expired-6f0e2ae2.cjs.prod.js → project-expired-59d50031.cjs.prod.js} +8 -8
  44. package/dist/{project-expired-4768f135.esm.js → project-expired-ef791516.esm.js} +8 -8
  45. package/dist/{project-not-found-dcc624b2.cjs.dev.js → project-not-found-543b8e4f.cjs.dev.js} +7 -7
  46. package/dist/{project-not-found-06f0f8b0.cjs.prod.js → project-not-found-a7faf93c.cjs.prod.js} +7 -7
  47. package/dist/{project-not-found-412af385.esm.js → project-not-found-bc7cea0c.esm.js} +7 -7
  48. package/dist/{project-not-initialized-dcb97eb4.esm.js → project-not-initialized-88376a4a.esm.js} +8 -8
  49. package/dist/{project-not-initialized-702e4e28.cjs.dev.js → project-not-initialized-a9c3afa0.cjs.dev.js} +8 -8
  50. package/dist/{project-not-initialized-610860be.cjs.prod.js → project-not-initialized-e9560ddb.cjs.prod.js} +8 -8
  51. package/dist/{project-suspended-ab653b2d.cjs.prod.js → project-suspended-0686fc53.cjs.prod.js} +7 -7
  52. package/dist/{project-suspended-40040cb1.cjs.dev.js → project-suspended-5cc4bc59.cjs.dev.js} +7 -7
  53. package/dist/{project-suspended-50e15143.esm.js → project-suspended-8fa0b06e.esm.js} +7 -7
  54. package/dist/{quick-access-438951ba.cjs.dev.js → quick-access-3479fec8.cjs.dev.js} +204 -133
  55. package/dist/{quick-access-8efb79f3.esm.js → quick-access-72e35fc8.esm.js} +204 -132
  56. package/dist/{quick-access-0d122c64.cjs.prod.js → quick-access-96ea968d.cjs.prod.js} +204 -133
  57. package/dist/{redirect-to-login-3ebce35d.cjs.dev.js → redirect-to-login-32ebe009.cjs.dev.js} +10 -13
  58. package/dist/{redirect-to-login-3c5a3f4a.cjs.prod.js → redirect-to-login-60a00442.cjs.prod.js} +10 -13
  59. package/dist/{redirect-to-login-af9860c8.esm.js → redirect-to-login-b69fb5ce.esm.js} +10 -13
  60. package/dist/{redirect-to-logout-7b30e94c.esm.js → redirect-to-logout-4ee944fa.esm.js} +9 -10
  61. package/dist/{redirect-to-logout-1fa97ad0.cjs.prod.js → redirect-to-logout-d017b04b.cjs.prod.js} +9 -10
  62. package/dist/{redirect-to-logout-78fabe18.cjs.dev.js → redirect-to-logout-edf8d35c.cjs.dev.js} +9 -10
  63. package/dist/{redirector-0a16c1d1.cjs.prod.js → redirector-01f35da8.cjs.prod.js} +3 -4
  64. package/dist/{redirector-d2fd2b5e.esm.js → redirector-76670a54.esm.js} +3 -4
  65. package/dist/{redirector-e58b9bc3.cjs.dev.js → redirector-98dfc5f0.cjs.dev.js} +3 -4
  66. package/dist/{requests-in-flight-loader-04924584.cjs.dev.js → requests-in-flight-loader-0a78e347.cjs.dev.js} +7 -7
  67. package/dist/{requests-in-flight-loader-ef8411a8.cjs.prod.js → requests-in-flight-loader-61257a90.cjs.prod.js} +7 -7
  68. package/dist/{requests-in-flight-loader-020da4f3.esm.js → requests-in-flight-loader-efda7302.esm.js} +7 -7
  69. package/dist/{service-page-project-switcher-893c4acc.cjs.prod.js → service-page-project-switcher-9310d282.cjs.prod.js} +1 -1
  70. package/dist/{service-page-project-switcher-550025cd.cjs.dev.js → service-page-project-switcher-ae1cd6fa.cjs.dev.js} +1 -1
  71. package/dist/{service-page-project-switcher-eec5d6be.esm.js → service-page-project-switcher-fb693a35.esm.js} +1 -1
  72. package/dist/{use-applications-menu-2fe3d465.cjs.dev.js → use-applications-menu-222b9106.cjs.prod.js} +40 -49
  73. package/dist/{use-applications-menu-0d3f4ffc.cjs.prod.js → use-applications-menu-302a0ac8.cjs.dev.js} +40 -49
  74. package/dist/{use-applications-menu-03759eab.esm.js → use-applications-menu-b583e9c3.esm.js} +38 -46
  75. package/dist/{user-settings-menu-bbc43c88.cjs.dev.js → user-settings-menu-7c17f227.cjs.dev.js} +22 -29
  76. package/dist/{user-settings-menu-3f86267c.cjs.prod.js → user-settings-menu-8bba9f50.cjs.prod.js} +22 -29
  77. package/dist/{user-settings-menu-36bea559.esm.js → user-settings-menu-ff4a6c63.esm.js} +22 -29
  78. package/dist/{version-tracker-7cce73f6.cjs.dev.js → version-tracker-54afa816.cjs.dev.js} +6 -6
  79. package/dist/{version-tracker-1ca99690.cjs.prod.js → version-tracker-5aea360a.cjs.prod.js} +6 -6
  80. package/dist/{version-tracker-610f66eb.esm.js → version-tracker-935e29c6.esm.js} +6 -6
  81. package/package.json +32 -31
  82. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +1 -2
  83. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +1 -2
  84. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +1 -2
  85. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +21 -26
  86. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +21 -26
  87. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +16 -20
  88. package/dist/oidc-63e926e1.cjs.dev.js +0 -115
  89. package/dist/oidc-cfa56c46.cjs.prod.js +0 -115
  90. package/dist/oidc-ff53dfd3.esm.js +0 -100
@@ -5,7 +5,6 @@ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
5
  var _pt = require('prop-types');
6
6
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
7
7
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
8
- var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
8
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
10
9
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
10
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
@@ -23,12 +22,11 @@ var LogoSVG = require('@commercetools-frontend/assets/logos/commercetools_small-
23
22
  var constants = require('@commercetools-frontend/constants');
24
23
  var icons = require('@commercetools-uikit/icons');
25
24
  var Spacings = require('@commercetools-uikit/spacings');
26
- var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
27
25
  var _styled = require('@emotion/styled/base');
28
26
  var react = require('@emotion/react');
29
27
  var applicationComponents = require('@commercetools-frontend/application-components');
30
28
  var designSystem = require('@commercetools-uikit/design-system');
31
- var oidc = require('./oidc-cfa56c46.cjs.prod.js');
29
+ var oidc = require('./oidc-d02d4ab8.cjs.prod.js');
32
30
  var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
33
31
  var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
34
32
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
@@ -46,7 +44,7 @@ var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/insta
46
44
  var isNil = require('lodash/isNil');
47
45
  var throttle = require('lodash/throttle');
48
46
  var sentry = require('@commercetools-frontend/sentry');
49
- var useApplicationsMenu = require('./use-applications-menu-0d3f4ffc.cjs.prod.js');
47
+ var useApplicationsMenu = require('./use-applications-menu-222b9106.cjs.prod.js');
50
48
  require('@apollo/client');
51
49
  require('@commercetools-frontend/l10n');
52
50
 
@@ -55,7 +53,6 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
55
53
  var _pt__default = /*#__PURE__*/_interopDefault(_pt);
56
54
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
57
55
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
58
- var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
59
56
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
60
57
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
61
58
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
@@ -159,8 +156,14 @@ const MenuListItem = /*#__PURE__*/_styled__default["default"]("li", {
159
156
  target: "e1i568cv0"
160
157
  } )("height:", oidc.NAVBAR.itemSize, ";width:", oidc.NAVBAR.itemSize, ";margin:0;background:", applicationComponents.designTokens.backgroundColorForNavbar, ";list-style:none;cursor:pointer;", IconWrapper, "{width:auto;display:flex;justify-content:center;}", props => [props.isRouteActive && /*#__PURE__*/react.css("background:", designSystem.designTokens.colorPrimary25, ";border-radius:", designSystem.designTokens.borderRadius8, ";" + ("" ), "" ), !props.isRouteActive && /*#__PURE__*/react.css(":hover,:focus-within{background-color:", designSystem.designTokens.colorPrimary20, ";border-radius:", designSystem.designTokens.borderRadius8, ";}" + ("" ), "" ), props.isActive && /*#__PURE__*/react.css(ItemIconText, "{justify-content:flex-start;}" + ("" ), "" ), !props.isActive && /*#__PURE__*/react.css(":hover ", Icon, ">svg *:not([fill='none']),:focus-within ", Icon, ">svg *:not([fill='none']){fill:", designSystem.designTokens.colorSurface, ";}:hover .", Title, ",:focus-within ", Title, "{color:", designSystem.designTokens.colorSurface, ";}" + ("" ), "" ), props.isCollapsed && _ref], " :hover ", Title, ",:focus-within ", Title, "{margin-left:calc(", designSystem.designTokens.spacing25, " + 2px);}:hover ", Icon, ",:focus-within ", Icon, "{transform:scale(1.2);}:hover ", MenuList, ".sublist-collapsed__active,:hover ", MenuList, ".sublist-collapsed__active__above,:hover ", MenuList, ".sublist-expanded__active,:focus-within ", MenuList, ".sublist-collapsed__active,:focus-within ", MenuList, ".sublist-collapsed__active__above,:focus-within ", MenuList, ".sublist-expanded__active{display:flex;flex-direction:column;align-items:flex-start;background-color:", designSystem.designTokens.colorSurface, ";min-height:", oidc.NAVBAR.sublistItemMinHeight, ";width:", oidc.NAVBAR.sublistWidth, ";border-radius:", designSystem.designTokens.borderRadius8, ";z-index:20001;box-shadow:-2px 4px 25px 0 rgba(89, 89, 89, 0.5);}:hover ", MenuList, ".sublist-collapsed__active.sublist-collapsed__empty,:hover ", MenuList, ".sublist-collapsed__active__above.sublist-collapsed__empty,:focus-within ", MenuList, ".sublist-collapsed__active.sublist-collapsed__empty,:focus-within ", MenuList, ".sublist-collapsed__active__above.sublist-collapsed__empty{visibility:hidden;}:hover ", MenuList, ".sublist-expanded__active,:focus-within ", MenuList, ".sublist-expanded__active{left:", oidc.NAVBAR.sublistIndentationWhenExpanded, ";}" + ("" ));
161
158
 
162
- var _templateObject;
163
- const visible = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"])));
159
+ const visible = react.keyframes`
160
+ from {
161
+ opacity: 0;
162
+ }
163
+ to {
164
+ opacity: 1;
165
+ }
166
+ `;
164
167
  const FixedMenu = /*#__PURE__*/_styled__default["default"]("div", {
165
168
  target: "e1meml8k10"
166
169
  } )("position:relative;width:", oidc.NAVBAR.widthLeftNavigation, ";", MenuListItem, " ", ItemIconText, "{justify-content:center;display:flex;width:100%;}" + ("" ));
@@ -308,8 +311,8 @@ const MenuGroup = /*#__PURE__*/react$1.forwardRef((props, ref) => {
308
311
  return jsxRuntime.jsx(MenuList, {
309
312
  ref: ref && props.level === 2 ? ref : null,
310
313
  level: props.level,
311
- id: "group-".concat(props.id),
312
- "data-testid": "group-".concat(props.id),
314
+ id: `group-${props.id}`,
315
+ "data-testid": `group-${props.id}`,
313
316
  role: "menu",
314
317
  "aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
315
318
  onKeyDown: props.handleKeyDown,
@@ -411,7 +414,7 @@ const restrictedMenuItemDefaultProps = {
411
414
  permissions: []
412
415
  };
413
416
  function isLongLivedFlag(flag) {
414
- return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
417
+ return typeof flag?.value === 'boolean';
415
418
  }
416
419
  const RestrictedMenuItem = props => {
417
420
  // NOTE: Custom application are activated/deactivated while their
@@ -634,15 +637,13 @@ const reducer = (state, action) => {
634
637
  return state;
635
638
  }
636
639
  };
637
- const isFocusOutEventCalledBySubmenuItem = event => {
638
- var _event$relatedTarget, _event$target;
639
- return (
640
- // a case when a submenu item loses focus
641
- event.type === 'focusout' && ( // element receiving focus
642
- (_event$relatedTarget = event.relatedTarget) === null || _event$relatedTarget === void 0 ? void 0 : _event$relatedTarget.matches('a[data-link-level="text-link"]')) && ( // element losing focus
643
- (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.matches('a[data-link-level="text-link-sublist"]'))
644
- );
645
- };
640
+ const isFocusOutEventCalledBySubmenuItem = event =>
641
+ // a case when a submenu item loses focus
642
+ event.type === 'focusout' &&
643
+ // element receiving focus
644
+ event.relatedTarget?.matches('a[data-link-level="text-link"]') &&
645
+ // element losing focus
646
+ event.target?.matches('a[data-link-level="text-link-sublist"]');
646
647
  const useNavbarStateManager = props => {
647
648
  var _context, _context2, _context4, _context5;
648
649
  const navBarNode = react$1.useRef(null);
@@ -742,8 +743,7 @@ const useNavbarStateManager = props => {
742
743
  }
743
744
  }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
744
745
  const shouldCloseMenuFly = react$1.useCallback(event => {
745
- var _navBarNode$current;
746
- if (!(navBarNode !== null && navBarNode !== void 0 && (_navBarNode$current = navBarNode.current) !== null && _navBarNode$current !== void 0 && _navBarNode$current.contains(event.target)) && !state.isMenuOpen) {
746
+ if (!navBarNode?.current?.contains(event.target) && !state.isMenuOpen) {
747
747
  dispatch({
748
748
  type: 'unsetActiveItemIndex'
749
749
  });
@@ -797,7 +797,7 @@ const useNavbarStateManager = props => {
797
797
  const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
798
798
  key: navbarMenuGroup.key,
799
799
  items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
800
- } : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA === null || navBarMenuGroupA === void 0 ? void 0 : navBarMenuGroupA.key) - Number(navBarMenuGroupB === null || navBarMenuGroupB === void 0 ? void 0 : navBarMenuGroupB.key));
800
+ } : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA?.key) - Number(navBarMenuGroupB?.key));
801
801
  return _objectSpread$1(_objectSpread$1({}, state), {}, {
802
802
  navBarNode,
803
803
  handleToggleItem,
@@ -808,22 +808,19 @@ const useNavbarStateManager = props => {
808
808
  };
809
809
 
810
810
  function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
811
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context10, _context11; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(t), !0)).call(_context10, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context11 = ownKeys(Object(t))).call(_context11, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
811
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
812
812
  const getMenuVisibilitiesOfSubmenus = menu => {
813
813
  var _context, _context2;
814
814
  return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
815
815
  };
816
816
  const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
817
- const getIsSubmenuRouteActive = (uriPath, props) => {
818
- var _context3;
819
- return Boolean(reactRouterDom.matchPath(props.location.pathname, {
820
- path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, uriPath),
821
- exact: true,
822
- strict: false
823
- }));
824
- };
817
+ const getIsSubmenuRouteActive = (uriPath, props) => Boolean(reactRouterDom.matchPath(props.location.pathname, {
818
+ path: `/${props.projectKey}/${uriPath}`,
819
+ exact: true,
820
+ strict: false
821
+ }));
825
822
  const ApplicationMenu = props => {
826
- var _context4, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context5, _context6;
823
+ var _context3;
827
824
  const _useState = react$1.useState(0),
828
825
  _useState2 = _slicedToArray(_useState, 2),
829
826
  submenuVerticalPosition = _useState2[0],
@@ -841,10 +838,9 @@ const ApplicationMenu = props => {
841
838
  const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
842
839
  const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
843
840
  const callbackFn = react$1.useCallback(entries => {
844
- var _document$querySelect;
845
- const menuItemBoundingClientRect = (_document$querySelect = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
846
- const menuItemTop = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.top) || 0;
847
- const menuItemBottom = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.bottom) || 0;
841
+ const menuItemBoundingClientRect = document.querySelector(`[data-menuitem="${menuItemIdentifier}"]`)?.getBoundingClientRect();
842
+ const menuItemTop = menuItemBoundingClientRect?.top || 0;
843
+ const menuItemBottom = menuItemBoundingClientRect?.bottom || 0;
848
844
  const _entries = _slicedToArray(entries, 1),
849
845
  entry = _entries[0];
850
846
  const doesSubmenuFitWithinViewportBelowMenuItem = entry.boundingClientRect.height + (props.isMenuOpen ? menuItemTop : menuItemBottom) > window.innerHeight;
@@ -862,10 +858,7 @@ const ApplicationMenu = props => {
862
858
  observerRef.current = new IntersectionObserver(callbackFn, {
863
859
  rootMargin: '-100% 0px 0px 0px' // we want to observe if the submenu crosses the bottom line of the viewport - therefore we set the root element top margin to -100% of the viewport height
864
860
  });
865
- return () => {
866
- var _observerRef$current;
867
- return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
868
- };
861
+ return () => observerRef.current?.disconnect();
869
862
  }, [callbackFn, props.isMenuOpen]);
870
863
  react$1.useLayoutEffect(() => {
871
864
  const currentSubmenuRef = submenuRef.current;
@@ -875,10 +868,10 @@ const ApplicationMenu = props => {
875
868
  observer.observe(currentSubmenuRef);
876
869
  }
877
870
  setIsSubmenuFocused(false);
878
- return () => observer === null || observer === void 0 ? void 0 : observer.disconnect();
871
+ return () => observer?.disconnect();
879
872
  }, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
880
873
  const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
881
- path: _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath),
874
+ path: `/${props.projectKey}/${props.menu.uriPath}`,
882
875
  exact: false,
883
876
  strict: false
884
877
  }));
@@ -893,22 +886,20 @@ const ApplicationMenu = props => {
893
886
 
894
887
  const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
895
888
  const handleKeyDown = e => {
896
- var _submenuRef$current;
897
- const currentlyFocusedItem = (_submenuRef$current = submenuRef.current) === null || _submenuRef$current === void 0 ? void 0 : _submenuRef$current.querySelector(':focus');
889
+ const currentlyFocusedItem = submenuRef.current?.querySelector(':focus');
898
890
  if (e.key === 'Enter') {
899
891
  setIsSubmenuFocused(true);
900
892
  if (!currentlyFocusedItem) {
901
- var _submenuRef$current2;
902
- (_submenuRef$current2 = submenuRef.current) === null || _submenuRef$current2 === void 0 || (_submenuRef$current2 = _submenuRef$current2.querySelector('a')) === null || _submenuRef$current2 === void 0 || _submenuRef$current2.focus();
893
+ submenuRef.current?.querySelector('a')?.focus();
903
894
  }
904
895
  }
905
896
  };
906
897
  return jsxRuntime.jsx(RestrictedMenuItem, {
907
898
  keyOfMenuItem: props.menu.key,
908
- featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
899
+ featureToggle: props.menu.featureToggle ?? undefined,
909
900
  permissions: props.menu.permissions,
910
- actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
911
- dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
901
+ actionRights: props.menu.actionRights ?? undefined,
902
+ dataFences: props.menu.dataFences ?? undefined,
912
903
  projectPermissions: props.projectPermissions,
913
904
  menuVisibilities: props.menuVisibilities,
914
905
  namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
@@ -923,7 +914,7 @@ const ApplicationMenu = props => {
923
914
  onMouseLeave: props.shouldCloseMenuFly,
924
915
  identifier: menuItemIdentifier,
925
916
  children: [jsxRuntime.jsx(MenuItemLink, {
926
- linkTo: _concatInstanceProperty__default["default"](_context5 = "/".concat(props.projectKey, "/")).call(_context5, props.menu.uriPath),
917
+ linkTo: `/${props.projectKey}/${props.menu.uriPath}`,
927
918
  useFullRedirectsForLinks: props.useFullRedirectsForLinks,
928
919
  onClick: props.onMenuItemClick,
929
920
  children: jsxRuntime.jsx(ItemContainer, {
@@ -934,7 +925,7 @@ const ApplicationMenu = props => {
934
925
  isMenuOpen: props.isMenuOpen
935
926
  })
936
927
  }), jsxRuntime.jsxs(MenuGroup, {
937
- id: "group-".concat(props.menu.key),
928
+ id: `group-${props.menu.key}`,
938
929
  level: 2,
939
930
  isActive: props.isActive,
940
931
  isExpanded: props.isMenuOpen,
@@ -945,7 +936,7 @@ const ApplicationMenu = props => {
945
936
  children: [!props.isMenuOpen && jsxRuntime.jsx(TooltipContainer, {
946
937
  alignsAgainstBottom: isSubmenuAboveMenuItem,
947
938
  children: jsxRuntime.jsx(Tooltip, {
948
- "aria-owns": "group-".concat(props.menu.key),
939
+ "aria-owns": `group-${props.menu.key}`,
949
940
  role: "tooltip",
950
941
  children: jsxRuntime.jsx(MenuLabel, {
951
942
  labelAllLocales: props.menu.labelAllLocales,
@@ -953,40 +944,37 @@ const ApplicationMenu = props => {
953
944
  applicationLocale: props.applicationLocale
954
945
  })
955
946
  })
956
- }), hasSubmenu ? _mapInstanceProperty__default["default"](_context6 = props.menu.submenu).call(_context6, submenu => {
957
- var _context7, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context8;
958
- return jsxRuntime.jsx(RestrictedMenuItem, {
959
- keyOfMenuItem: submenu.key,
960
- featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
961
- permissions: submenu.permissions,
962
- actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
963
- dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
964
- projectPermissions: props.projectPermissions,
965
- menuVisibilities: props.menuVisibilities,
966
- namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
967
- children: jsxRuntime.jsx(SublistItem, {
968
- isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
969
- children: jsxRuntime.jsx(Text, {
970
- children: jsxRuntime.jsx(MenuItemLink, {
971
- linkTo: _concatInstanceProperty__default["default"](_context8 = "/".concat(props.projectKey, "/")).call(_context8, submenu.uriPath)
972
- // We want to use an exact matching strategy to avoid multiple
973
- // links matching sub-routes.
974
- ,
975
- exactMatch: true,
976
- useFullRedirectsForLinks: props.useFullRedirectsForLinks,
977
- onClick: props.onMenuItemClick,
978
- isSubmenuLink: true,
979
- isSubmenuFocused: isSubmenuFocused,
980
- children: jsxRuntime.jsx(MenuLabel, {
981
- labelAllLocales: submenu.labelAllLocales,
982
- defaultLabel: submenu.defaultLabel,
983
- applicationLocale: props.applicationLocale
984
- })
947
+ }), hasSubmenu ? _mapInstanceProperty__default["default"](_context3 = props.menu.submenu).call(_context3, submenu => jsxRuntime.jsx(RestrictedMenuItem, {
948
+ keyOfMenuItem: submenu.key,
949
+ featureToggle: submenu.featureToggle ?? undefined,
950
+ permissions: submenu.permissions,
951
+ actionRights: submenu.actionRights ?? undefined,
952
+ dataFences: submenu.dataFences ?? undefined,
953
+ projectPermissions: props.projectPermissions,
954
+ menuVisibilities: props.menuVisibilities,
955
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
956
+ children: jsxRuntime.jsx(SublistItem, {
957
+ isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
958
+ children: jsxRuntime.jsx(Text, {
959
+ children: jsxRuntime.jsx(MenuItemLink, {
960
+ linkTo: `/${props.projectKey}/${submenu.uriPath}`
961
+ // We want to use an exact matching strategy to avoid multiple
962
+ // links matching sub-routes.
963
+ ,
964
+ exactMatch: true,
965
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
966
+ onClick: props.onMenuItemClick,
967
+ isSubmenuLink: true,
968
+ isSubmenuFocused: isSubmenuFocused,
969
+ children: jsxRuntime.jsx(MenuLabel, {
970
+ labelAllLocales: submenu.labelAllLocales,
971
+ defaultLabel: submenu.defaultLabel,
972
+ applicationLocale: props.applicationLocale
985
973
  })
986
974
  })
987
975
  })
988
- }, _concatInstanceProperty__default["default"](_context7 = "".concat(props.menu.key, "-submenu-")).call(_context7, submenu.key));
989
- }) : null]
976
+ })
977
+ }, `${props.menu.key}-submenu-${submenu.key}`)) : null]
990
978
  })]
991
979
  })
992
980
  }, props.menu.key);
@@ -1008,18 +996,12 @@ const NavBar = props => {
1008
996
  allApplicationsNavbarMenuGroups = _useNavbarStateManage.allApplicationsNavbarMenuGroups;
1009
997
  const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
1010
998
  const location = reactRouterDom.useLocation();
1011
- const projectPermissions = react$1.useMemo(() => {
1012
- var _props$project, _props$project2, _props$project3;
1013
- return {
1014
- permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
1015
- actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
1016
- dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
1017
- };
1018
- }, [props.project]);
1019
- const menuVisibilities = react$1.useMemo(() => {
1020
- var _props$project4;
1021
- return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
1022
- }, [props.project]);
999
+ const projectPermissions = react$1.useMemo(() => ({
1000
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions(props.project?.allPermissionsForAllApplications.allAppliedPermissions),
1001
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights(props.project?.allPermissionsForAllApplications.allAppliedActionRights),
1002
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences(props.project?.allPermissionsForAllApplications.allAppliedDataFences)
1003
+ }), [props.project]);
1004
+ const menuVisibilities = react$1.useMemo(() => applicationShellConnectors.normalizeAllAppliedMenuVisibilities(props.project?.allPermissionsForAllApplications.allAppliedMenuVisibilities), [props.project]);
1023
1005
  const applicationLocale = props.applicationLocale;
1024
1006
 
1025
1007
  // Render the loading navbar as long as all the data
@@ -1050,11 +1032,11 @@ const NavBar = props => {
1050
1032
  children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
1051
1033
  scale: "l",
1052
1034
  children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
1053
- var _context9;
1035
+ var _context4;
1054
1036
  return jsxRuntime.jsx("div", {
1055
- children: _mapInstanceProperty__default["default"](_context9 = navbarMenuGroup.items).call(_context9, menu => {
1037
+ children: _mapInstanceProperty__default["default"](_context4 = navbarMenuGroup.items).call(_context4, menu => {
1056
1038
  const menuType = 'scrollable';
1057
- const itemIndex = "".concat(menuType, "-").concat(menu.key);
1039
+ const itemIndex = `${menuType}-${menu.key}`;
1058
1040
  return jsxRuntime.jsx(ApplicationMenu, {
1059
1041
  location: location,
1060
1042
  menu: menu,