@commercetools-frontend/application-shell 24.11.0 → 24.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.
- package/dist/{application-entry-point-c87294b0.cjs.dev.js → application-entry-point-18d8fba0.cjs.dev.js} +7 -4
- package/dist/{application-entry-point-10a5e1a5.esm.js → application-entry-point-1b23fb6b.esm.js} +6 -4
- package/dist/{application-entry-point-8c4b8e53.cjs.prod.js → application-entry-point-74a06151.cjs.prod.js} +4 -3
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +12 -11
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +12 -11
- package/dist/commercetools-frontend-application-shell.esm.js +12 -11
- package/dist/{custom-view-dev-host-6091b78a.esm.js → custom-view-dev-host-b4f856d8.esm.js} +20 -16
- package/dist/{custom-view-dev-host-3a171a01.cjs.prod.js → custom-view-dev-host-bf11de47.cjs.prod.js} +21 -16
- package/dist/{custom-view-dev-host-40b33836.cjs.dev.js → custom-view-dev-host-f688743e.cjs.dev.js} +21 -16
- package/dist/declarations/src/types/generated/mc.d.ts +9 -8
- package/dist/declarations-connectors/src/components/application-context/index.d.ts +2 -3
- package/dist/declarations-connectors/src/components/application-context/normalizers.d.ts +1 -5
- package/dist/declarations-connectors/src/export-types.d.ts +1 -2
- package/dist/declarations-connectors/src/index.d.ts +1 -1
- package/dist/declarations-connectors/src/types/generated/mc.d.ts +9 -8
- package/dist/{index-7bdde97c.cjs.prod.js → index-242af4d2.cjs.prod.js} +201 -344
- package/dist/{index-614accc4.cjs.dev.js → index-25183095.cjs.dev.js} +2 -2
- package/dist/{index-245e2980.cjs.prod.js → index-52c724ed.cjs.prod.js} +2 -2
- package/dist/{index-86039df7.esm.js → index-5aaa33bb.esm.js} +2 -2
- package/dist/{index-67a5d8e8.esm.js → index-d8c26ca0.esm.js} +214 -363
- package/dist/{index-a57c8458.cjs.dev.js → index-dcd3d8a3.cjs.dev.js} +213 -364
- package/dist/{navbar-844d350d.esm.js → navbar-0bad8bc8.esm.js} +106 -110
- package/dist/{navbar-acc2cd1b.cjs.prod.js → navbar-7653417f.cjs.prod.js} +108 -112
- package/dist/{navbar-022383bd.cjs.dev.js → navbar-d4189469.cjs.dev.js} +108 -112
- package/dist/oidc-258fc018.cjs.prod.js +115 -0
- package/dist/oidc-35e8e62a.esm.js +100 -0
- package/dist/oidc-87d116c1.cjs.dev.js +115 -0
- package/dist/{oidc-callback-e07f0c20.cjs.dev.js → oidc-callback-11dae6b7.cjs.dev.js} +16 -14
- package/dist/{oidc-callback-ce8cbdfe.cjs.prod.js → oidc-callback-300966ee.cjs.prod.js} +16 -14
- package/dist/{oidc-callback-5f3d5280.esm.js → oidc-callback-82aa6be5.esm.js} +16 -14
- package/dist/{project-container-2d3d027a.cjs.prod.js → project-container-2f98a9d6.cjs.prod.js} +53 -19
- package/dist/{project-container-a11a31ca.cjs.dev.js → project-container-991a64a8.cjs.dev.js} +53 -19
- package/dist/{project-container-fba09841.esm.js → project-container-ce0f6228.esm.js} +52 -19
- package/dist/{project-expired-ede4d485.esm.js → project-expired-49e78c8c.esm.js} +12 -11
- package/dist/{project-expired-f38a712a.cjs.prod.js → project-expired-f753ba58.cjs.prod.js} +12 -11
- package/dist/{project-expired-9620dee4.cjs.dev.js → project-expired-fa4a86df.cjs.dev.js} +12 -11
- package/dist/{project-not-found-05683f8e.cjs.dev.js → project-not-found-261f37e8.cjs.dev.js} +11 -10
- package/dist/{project-not-found-093ab795.esm.js → project-not-found-ac82676b.esm.js} +11 -10
- package/dist/{project-not-found-cfa934da.cjs.prod.js → project-not-found-d594db71.cjs.prod.js} +11 -10
- package/dist/{project-not-initialized-1d934ae7.esm.js → project-not-initialized-4c02d4b2.esm.js} +12 -11
- package/dist/{project-not-initialized-b5a1400f.cjs.prod.js → project-not-initialized-5a77d844.cjs.prod.js} +12 -11
- package/dist/{project-not-initialized-1ed56a00.cjs.dev.js → project-not-initialized-c3a87ba6.cjs.dev.js} +12 -11
- package/dist/{project-suspended-68e80299.cjs.dev.js → project-suspended-42a90ea6.cjs.dev.js} +11 -10
- package/dist/{project-suspended-e0722654.esm.js → project-suspended-cd66814e.esm.js} +11 -10
- package/dist/{project-suspended-8e15a452.cjs.prod.js → project-suspended-dccadfd7.cjs.prod.js} +11 -10
- package/dist/{redirect-to-login-12f467b8.cjs.prod.js → redirect-to-login-3e4a6434.cjs.prod.js} +13 -10
- package/dist/{redirect-to-login-3bee13ba.cjs.dev.js → redirect-to-login-66ea895a.cjs.dev.js} +13 -10
- package/dist/{redirect-to-login-2944c890.esm.js → redirect-to-login-edbfacbc.esm.js} +13 -10
- package/dist/{redirect-to-logout-2802852c.cjs.prod.js → redirect-to-logout-99db4db7.cjs.prod.js} +14 -12
- package/dist/{redirect-to-logout-74b72fe8.cjs.dev.js → redirect-to-logout-ab0c374b.cjs.dev.js} +14 -12
- package/dist/{redirect-to-logout-5db48f16.esm.js → redirect-to-logout-ba40d106.esm.js} +14 -12
- package/dist/{redirector-72ccfbc2.cjs.dev.js → redirector-0efdd994.cjs.dev.js} +4 -3
- package/dist/{redirector-d856975f.esm.js → redirector-656c6ee7.esm.js} +4 -3
- package/dist/{redirector-0c72d0a4.cjs.prod.js → redirector-c858d578.cjs.prod.js} +4 -3
- package/dist/{requests-in-flight-loader-e25f4c31.esm.js → requests-in-flight-loader-64a40481.esm.js} +11 -10
- package/dist/{requests-in-flight-loader-bc904171.cjs.dev.js → requests-in-flight-loader-878840c1.cjs.dev.js} +11 -10
- package/dist/{requests-in-flight-loader-877c1541.cjs.prod.js → requests-in-flight-loader-df9d1de3.cjs.prod.js} +11 -10
- package/dist/{service-page-project-switcher-af044ac6.cjs.dev.js → service-page-project-switcher-0f1c1d7f.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-1dad9871.cjs.prod.js → service-page-project-switcher-532df57f.cjs.prod.js} +1 -1
- package/dist/{service-page-project-switcher-f3eac18a.esm.js → service-page-project-switcher-aca41b09.esm.js} +1 -1
- package/dist/{use-applications-menu-14a5a1f4.cjs.prod.js → use-applications-menu-21c7420b.cjs.prod.js} +48 -40
- package/dist/{use-applications-menu-823a2492.cjs.dev.js → use-applications-menu-7a85c3ee.cjs.dev.js} +48 -40
- package/dist/{use-applications-menu-1514af11.esm.js → use-applications-menu-8ff2d130.esm.js} +45 -38
- package/dist/{user-settings-menu-d75f4958.cjs.prod.js → user-settings-menu-2d3bfa75.cjs.prod.js} +29 -22
- package/dist/{user-settings-menu-f98bea89.esm.js → user-settings-menu-31e6bb38.esm.js} +29 -22
- package/dist/{user-settings-menu-6113cdd3.cjs.dev.js → user-settings-menu-c37b343f.cjs.dev.js} +29 -22
- package/package.json +16 -16
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -1
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -1
- package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -1
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +26 -22
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +26 -22
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +20 -17
- package/dist/oidc-8827f9fe.cjs.dev.js +0 -98
- package/dist/oidc-b2520905.esm.js +0 -84
- package/dist/oidc-d74e6aa2.cjs.prod.js +0 -98
- package/dist/quick-access-9dd197bb.cjs.prod.js +0 -1875
- package/dist/quick-access-a665bbb7.cjs.dev.js +0 -1893
- package/dist/quick-access-dfc1f8a9.esm.js +0 -1865
|
@@ -4,12 +4,13 @@ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
|
4
4
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
5
5
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
6
6
|
var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
|
|
7
|
-
var
|
|
8
|
-
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
7
|
+
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 _Number$isFinite = require('@babel/runtime-corejs3/core-js-stable/number/is-finite');
|
|
10
|
+
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
11
11
|
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
12
12
|
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
13
|
+
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
13
14
|
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
14
15
|
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
15
16
|
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
@@ -24,14 +25,14 @@ var LogoSVG = require('@commercetools-frontend/assets/logos/commercetools_small-
|
|
|
24
25
|
var constants = require('@commercetools-frontend/constants');
|
|
25
26
|
var icons = require('@commercetools-uikit/icons');
|
|
26
27
|
var Spacings = require('@commercetools-uikit/spacings');
|
|
28
|
+
var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
|
|
27
29
|
var _styled = require('@emotion/styled/base');
|
|
28
30
|
var react = require('@emotion/react');
|
|
29
31
|
var applicationComponents = require('@commercetools-frontend/application-components');
|
|
30
32
|
var designSystem = require('@commercetools-uikit/design-system');
|
|
31
|
-
var oidc = require('./oidc-
|
|
33
|
+
var oidc = require('./oidc-258fc018.cjs.prod.js');
|
|
32
34
|
var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
|
|
33
35
|
var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
|
|
34
|
-
var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
|
|
35
36
|
var reactBroadcast = require('@flopflip/react-broadcast');
|
|
36
37
|
var classnames = require('classnames');
|
|
37
38
|
var MissingImageSvg = require('@commercetools-frontend/assets/images/diagonal-line.svg');
|
|
@@ -43,7 +44,7 @@ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/insta
|
|
|
43
44
|
var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
|
|
44
45
|
var isNil = require('lodash/isNil');
|
|
45
46
|
var throttle = require('lodash/throttle');
|
|
46
|
-
var useApplicationsMenu = require('./use-applications-menu-
|
|
47
|
+
var useApplicationsMenu = require('./use-applications-menu-21c7420b.cjs.prod.js');
|
|
47
48
|
require('@apollo/client');
|
|
48
49
|
require('@commercetools-frontend/l10n');
|
|
49
50
|
|
|
@@ -51,12 +52,13 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
|
|
|
51
52
|
|
|
52
53
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
53
54
|
var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
|
|
54
|
-
var
|
|
55
|
-
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
55
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
56
56
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
57
57
|
var _Number$isFinite__default = /*#__PURE__*/_interopDefault(_Number$isFinite);
|
|
58
|
+
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
58
59
|
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
59
60
|
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
61
|
+
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
60
62
|
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
61
63
|
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
62
64
|
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
@@ -67,7 +69,6 @@ var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
|
|
|
67
69
|
var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
|
|
68
70
|
var _styled__default = /*#__PURE__*/_interopDefault(_styled);
|
|
69
71
|
var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
|
|
70
|
-
var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
|
|
71
72
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
72
73
|
var MissingImageSvg__default = /*#__PURE__*/_interopDefault(MissingImageSvg);
|
|
73
74
|
var InlineSvg__default = /*#__PURE__*/_interopDefault(InlineSvg);
|
|
@@ -95,6 +96,7 @@ const Title = /*#__PURE__*/_styled__default["default"]("div", {
|
|
|
95
96
|
target: "e1wv1pdj0"
|
|
96
97
|
} )("flex:1;font-weight:600;font-size:", designSystem.designTokens.fontSize20, ";line-height:", designSystem.designTokens.lineHeight20, ";color:", designSystem.designTokens.colorNeutral, ";opacity:0;transition:", oidc.NAVBAR.leftNavigationTransition, ";text-align:left;text-decoration:none;z-index:1;" + ("" ));
|
|
97
98
|
|
|
99
|
+
var _templateObject$1;
|
|
98
100
|
const getSubmenuPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, submenuVerticalPosition) => /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":", submenuVerticalPosition, "px;" + ("" ), "" );
|
|
99
101
|
var _ref4 = {
|
|
100
102
|
name: "abcix4",
|
|
@@ -105,10 +107,7 @@ var _ref5 = {
|
|
|
105
107
|
styles: "bottom:0"
|
|
106
108
|
} ;
|
|
107
109
|
const getContainerPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, isSublistActiveWhileIsMenuExpanded, isSublistActiveWhileIsMenuCollapsed) => [isSublistActiveWhileIsMenuCollapsed && /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":-", oidc.NAVBAR.itemSize, ";" + ("" ), "" ), isSublistActiveWhileIsMenuExpanded && isSubmenuAboveMenuItem && _ref5, isSublistActiveWhileIsMenuExpanded && !isSubmenuAboveMenuItem && _ref4];
|
|
108
|
-
const fadeIn = react.keyframes
|
|
109
|
-
from {opacity: 0;}
|
|
110
|
-
to { opacity: 1;}
|
|
111
|
-
`;
|
|
110
|
+
const fadeIn = react.keyframes(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\nfrom {opacity: 0;}\n to { opacity: 1;}\n"])));
|
|
112
111
|
var _ref3 = {
|
|
113
112
|
name: "eivff4",
|
|
114
113
|
styles: "display:none"
|
|
@@ -159,14 +158,8 @@ const SafeArea = /*#__PURE__*/_styled__default["default"]("span", {
|
|
|
159
158
|
target: "e1i568cv0"
|
|
160
159
|
} )("position:absolute;top:0;bottom:0;right:100%;width:calc(100% - ", designSystem.designTokens.spacing30, ");clip-path:polygon(var(--safe-start), 100% 100%, 100% 0);" + ("" ));
|
|
161
160
|
|
|
162
|
-
|
|
163
|
-
from {
|
|
164
|
-
opacity: 0;
|
|
165
|
-
}
|
|
166
|
-
to {
|
|
167
|
-
opacity: 1;
|
|
168
|
-
}
|
|
169
|
-
`;
|
|
161
|
+
var _templateObject;
|
|
162
|
+
const visible = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"])));
|
|
170
163
|
const FixedMenu = /*#__PURE__*/_styled__default["default"]("div", {
|
|
171
164
|
target: "e1meml8k10"
|
|
172
165
|
} )("position:relative;width:", oidc.NAVBAR.widthLeftNavigation, ";", MenuListItem, " ", ItemIconText, "{justify-content:center;display:flex;width:100%;}" + ("" ));
|
|
@@ -333,8 +326,8 @@ const MenuGroup = /*#__PURE__*/react$1.forwardRef((props, ref) => {
|
|
|
333
326
|
return jsxRuntime.jsx(MenuList, {
|
|
334
327
|
ref: ref && props.level === 2 ? ref : null,
|
|
335
328
|
level: props.level,
|
|
336
|
-
id:
|
|
337
|
-
"data-testid":
|
|
329
|
+
id: "group-".concat(props.id),
|
|
330
|
+
"data-testid": "group-".concat(props.id),
|
|
338
331
|
role: "menu",
|
|
339
332
|
onKeyDown: props.handleKeyDown,
|
|
340
333
|
className: classnames__default["default"]({
|
|
@@ -432,18 +425,14 @@ const MenuItemLink = _ref3 => {
|
|
|
432
425
|
});
|
|
433
426
|
};
|
|
434
427
|
MenuItemLink.displayName = 'MenuItemLink';
|
|
435
|
-
const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
|
|
436
428
|
function isLongLivedFlag(flag) {
|
|
437
|
-
return typeof flag
|
|
429
|
+
return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
|
|
438
430
|
}
|
|
439
431
|
const RestrictedMenuItem = _ref4 => {
|
|
440
432
|
let _ref4$permissions = _ref4.permissions,
|
|
441
433
|
permissions$1 = _ref4$permissions === void 0 ? [] : _ref4$permissions,
|
|
442
434
|
props = _objectWithoutProperties(_ref4, _excluded3);
|
|
443
|
-
// NOTE: Custom application are activated/deactivated while their
|
|
444
|
-
// visibility is not controlled via a visibiility overwrite.
|
|
445
435
|
const flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
|
|
446
|
-
if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
|
|
447
436
|
const permissionsWrapper = _Array$isArray__default["default"](permissions$1) && permissions$1.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
|
|
448
437
|
permissions: permissions$1,
|
|
449
438
|
actionRights: props.actionRights,
|
|
@@ -656,13 +645,15 @@ const reducer = (state, action) => {
|
|
|
656
645
|
return state;
|
|
657
646
|
}
|
|
658
647
|
};
|
|
659
|
-
const isFocusOutEventCalledBySubmenuItem = event =>
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
//
|
|
663
|
-
event.
|
|
664
|
-
// element losing focus
|
|
665
|
-
event.target
|
|
648
|
+
const isFocusOutEventCalledBySubmenuItem = event => {
|
|
649
|
+
var _event$relatedTarget, _event$target;
|
|
650
|
+
return (
|
|
651
|
+
// a case when a submenu item loses focus
|
|
652
|
+
event.type === 'focusout' && (// element receiving focus
|
|
653
|
+
(_event$relatedTarget = event.relatedTarget) === null || _event$relatedTarget === void 0 ? void 0 : _event$relatedTarget.matches('a[data-link-level="text-link"]')) && (// element losing focus
|
|
654
|
+
(_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.matches('a[data-link-level="text-link-sublist"]'))
|
|
655
|
+
);
|
|
656
|
+
};
|
|
666
657
|
const useNavbarStateManager = props => {
|
|
667
658
|
var _context, _context2, _context4, _context5;
|
|
668
659
|
const navBarNode = react$1.useRef(null);
|
|
@@ -692,7 +683,6 @@ const useNavbarStateManager = props => {
|
|
|
692
683
|
permissions: application.mainMenuLink.permissions,
|
|
693
684
|
defaultLabel: application.mainMenuLink.defaultLabel,
|
|
694
685
|
featureToggle: undefined,
|
|
695
|
-
menuVisibility: undefined,
|
|
696
686
|
actionRights: undefined,
|
|
697
687
|
dataFences: undefined,
|
|
698
688
|
submenu: _mapInstanceProperty__default["default"](_context3 = application.submenuLinks || []).call(_context3, submenuLink => ({
|
|
@@ -702,7 +692,6 @@ const useNavbarStateManager = props => {
|
|
|
702
692
|
permissions: submenuLink.permissions,
|
|
703
693
|
defaultLabel: submenuLink.defaultLabel,
|
|
704
694
|
featureToggle: undefined,
|
|
705
|
-
menuVisibility: undefined,
|
|
706
695
|
actionRights: undefined,
|
|
707
696
|
dataFences: undefined
|
|
708
697
|
}))
|
|
@@ -758,7 +747,8 @@ const useNavbarStateManager = props => {
|
|
|
758
747
|
}
|
|
759
748
|
}, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
|
|
760
749
|
const shouldCloseMenuFly = react$1.useCallback(event => {
|
|
761
|
-
|
|
750
|
+
var _navBarNode$current;
|
|
751
|
+
if (!(navBarNode !== null && navBarNode !== void 0 && (_navBarNode$current = navBarNode.current) !== null && _navBarNode$current !== void 0 && _navBarNode$current.contains(event.target)) && !state.isMenuOpen) {
|
|
762
752
|
dispatch({
|
|
763
753
|
type: 'unsetActiveItemIndex'
|
|
764
754
|
});
|
|
@@ -823,7 +813,7 @@ const useNavbarStateManager = props => {
|
|
|
823
813
|
const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
|
|
824
814
|
key: navbarMenuGroup.key,
|
|
825
815
|
items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
|
|
826
|
-
} : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA
|
|
816
|
+
} : 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));
|
|
827
817
|
return _objectSpread$1(_objectSpread$1({}, state), {}, {
|
|
828
818
|
navBarNode,
|
|
829
819
|
handleToggleItem,
|
|
@@ -835,7 +825,7 @@ const useNavbarStateManager = props => {
|
|
|
835
825
|
};
|
|
836
826
|
|
|
837
827
|
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; }
|
|
838
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
828
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context0, _context1; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context0 = ownKeys(Object(t), !0)).call(_context0, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context1 = ownKeys(Object(t))).call(_context1, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
839
829
|
// Helper function to extract accessible label from menu objects
|
|
840
830
|
const getMenuAccessibleLabel = (labelAllLocales, defaultLabel, applicationLocale) => {
|
|
841
831
|
const localizedLabel = _findInstanceProperty__default["default"](labelAllLocales).call(labelAllLocales, loc => _startsWithInstanceProperty__default["default"](applicationLocale).call(applicationLocale, loc.locale));
|
|
@@ -843,18 +833,16 @@ const getMenuAccessibleLabel = (labelAllLocales, defaultLabel, applicationLocale
|
|
|
843
833
|
if (defaultLabel) return defaultLabel;
|
|
844
834
|
return constants.NO_VALUE_FALLBACK;
|
|
845
835
|
};
|
|
846
|
-
const
|
|
847
|
-
var _context
|
|
848
|
-
return
|
|
836
|
+
const getIsSubmenuRouteActive = (uriPath, props) => {
|
|
837
|
+
var _context;
|
|
838
|
+
return Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
839
|
+
path: _concatInstanceProperty__default["default"](_context = "/".concat(props.projectKey, "/")).call(_context, uriPath),
|
|
840
|
+
exact: true,
|
|
841
|
+
strict: false
|
|
842
|
+
}));
|
|
849
843
|
};
|
|
850
|
-
const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
|
|
851
|
-
const getIsSubmenuRouteActive = (uriPath, props) => Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
852
|
-
path: `/${props.projectKey}/${uriPath}`,
|
|
853
|
-
exact: true,
|
|
854
|
-
strict: false
|
|
855
|
-
}));
|
|
856
844
|
const ApplicationMenu = props => {
|
|
857
|
-
var _context3;
|
|
845
|
+
var _context3, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context4, _context5;
|
|
858
846
|
const _useState = react$1.useState(0),
|
|
859
847
|
_useState2 = _slicedToArray(_useState, 2),
|
|
860
848
|
submenuVerticalPosition = _useState2[0],
|
|
@@ -881,12 +869,13 @@ const ApplicationMenu = props => {
|
|
|
881
869
|
const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
|
|
882
870
|
const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
|
|
883
871
|
const calculateSafeAreaStartPositon = react$1.useCallback(e => {
|
|
884
|
-
|
|
885
|
-
const
|
|
886
|
-
const
|
|
887
|
-
const
|
|
888
|
-
const
|
|
889
|
-
const
|
|
872
|
+
var _submenuSafeAreaRef$c, _document$querySelect;
|
|
873
|
+
const currentSafeAreaRect = (_submenuSafeAreaRef$c = submenuSafeAreaRef.current) === null || _submenuSafeAreaRef$c === void 0 ? void 0 : _submenuSafeAreaRef$c.getBoundingClientRect();
|
|
874
|
+
const menuItemRect = (_document$querySelect = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
|
|
875
|
+
const currentSafeAreaLeft = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.left) || 0;
|
|
876
|
+
const currentSafeAreaTop = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.top) || 0;
|
|
877
|
+
const currentSafeAreaWidth = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.width) || 0;
|
|
878
|
+
const currentSafeAreaHeight = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.height) || 0;
|
|
890
879
|
const localX = e.clientX - currentSafeAreaLeft;
|
|
891
880
|
const localY = e.clientY - currentSafeAreaTop;
|
|
892
881
|
let minXPercent = 0;
|
|
@@ -932,15 +921,17 @@ const ApplicationMenu = props => {
|
|
|
932
921
|
};
|
|
933
922
|
}, [calculateSafeAreaStartPositon]);
|
|
934
923
|
react$1.useLayoutEffect(() => {
|
|
924
|
+
var _context2;
|
|
935
925
|
if (!submenuRef.current) return;
|
|
936
926
|
const safeX = _Number$isFinite__default["default"](percentageX) ? percentageX : 0;
|
|
937
927
|
const safeY = _Number$isFinite__default["default"](percentageY) ? percentageY : 100;
|
|
938
|
-
submenuRef.current.style.setProperty('--safe-start',
|
|
928
|
+
submenuRef.current.style.setProperty('--safe-start', _concatInstanceProperty__default["default"](_context2 = "".concat(safeX, "% ")).call(_context2, safeY, "%"));
|
|
939
929
|
}, [percentageX, percentageY]);
|
|
940
930
|
const callbackFn = react$1.useCallback(entries => {
|
|
941
|
-
|
|
942
|
-
const
|
|
943
|
-
const
|
|
931
|
+
var _document$querySelect2;
|
|
932
|
+
const menuItemBoundingClientRect = (_document$querySelect2 = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect();
|
|
933
|
+
const menuItemTop = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.top) || 0;
|
|
934
|
+
const menuItemBottom = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.bottom) || 0;
|
|
944
935
|
const _entries = _slicedToArray(entries, 1),
|
|
945
936
|
entry = _entries[0];
|
|
946
937
|
|
|
@@ -966,7 +957,10 @@ const ApplicationMenu = props => {
|
|
|
966
957
|
observerRef.current = new IntersectionObserver(callbackFn, {
|
|
967
958
|
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
|
|
968
959
|
});
|
|
969
|
-
return () =>
|
|
960
|
+
return () => {
|
|
961
|
+
var _observerRef$current;
|
|
962
|
+
return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
|
|
963
|
+
};
|
|
970
964
|
}, [callbackFn, props.isMenuOpen]);
|
|
971
965
|
react$1.useLayoutEffect(() => {
|
|
972
966
|
const currentSubmenuRef = submenuRef.current;
|
|
@@ -976,10 +970,10 @@ const ApplicationMenu = props => {
|
|
|
976
970
|
observer.observe(currentSubmenuRef);
|
|
977
971
|
}
|
|
978
972
|
setIsSubmenuFocused(false);
|
|
979
|
-
return () => observer
|
|
973
|
+
return () => observer === null || observer === void 0 ? void 0 : observer.disconnect();
|
|
980
974
|
}, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
|
|
981
975
|
const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
982
|
-
path:
|
|
976
|
+
path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, props.menu.uriPath),
|
|
983
977
|
exact: false,
|
|
984
978
|
strict: false
|
|
985
979
|
}));
|
|
@@ -992,25 +986,24 @@ const ApplicationMenu = props => {
|
|
|
992
986
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
993
987
|
}, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
|
|
994
988
|
|
|
995
|
-
const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
|
|
996
989
|
const handleKeyDown = e => {
|
|
997
|
-
|
|
990
|
+
var _submenuRef$current;
|
|
991
|
+
const currentlyFocusedItem = (_submenuRef$current = submenuRef.current) === null || _submenuRef$current === void 0 ? void 0 : _submenuRef$current.querySelector(':focus');
|
|
998
992
|
if (e.key === 'Enter') {
|
|
999
993
|
setIsSubmenuFocused(true);
|
|
1000
994
|
if (!currentlyFocusedItem) {
|
|
1001
|
-
|
|
995
|
+
var _submenuRef$current2;
|
|
996
|
+
(_submenuRef$current2 = submenuRef.current) === null || _submenuRef$current2 === void 0 || (_submenuRef$current2 = _submenuRef$current2.querySelector('a')) === null || _submenuRef$current2 === void 0 || _submenuRef$current2.focus();
|
|
1002
997
|
}
|
|
1003
998
|
}
|
|
1004
999
|
};
|
|
1005
1000
|
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
1006
1001
|
keyOfMenuItem: props.menu.key,
|
|
1007
|
-
featureToggle: props.menu.featureToggle
|
|
1002
|
+
featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
|
|
1008
1003
|
permissions: props.menu.permissions,
|
|
1009
|
-
actionRights: props.menu.actionRights
|
|
1010
|
-
dataFences: props.menu.dataFences
|
|
1004
|
+
actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
|
|
1005
|
+
dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
|
|
1011
1006
|
projectPermissions: props.projectPermissions,
|
|
1012
|
-
menuVisibilities: props.menuVisibilities,
|
|
1013
|
-
namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
|
|
1014
1007
|
children: jsxRuntime.jsxs(MenuItem$1, {
|
|
1015
1008
|
hasSubmenu: hasSubmenu,
|
|
1016
1009
|
isActive: props.isActive,
|
|
@@ -1024,7 +1017,7 @@ const ApplicationMenu = props => {
|
|
|
1024
1017
|
identifier: menuItemIdentifier,
|
|
1025
1018
|
ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
|
|
1026
1019
|
children: [jsxRuntime.jsx(MenuItemLink, {
|
|
1027
|
-
linkTo:
|
|
1020
|
+
linkTo: _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath),
|
|
1028
1021
|
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
1029
1022
|
onClick: props.onMenuItemClick,
|
|
1030
1023
|
ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
|
|
@@ -1036,7 +1029,7 @@ const ApplicationMenu = props => {
|
|
|
1036
1029
|
isMenuOpen: props.isMenuOpen
|
|
1037
1030
|
})
|
|
1038
1031
|
}), jsxRuntime.jsxs(MenuGroup, {
|
|
1039
|
-
id:
|
|
1032
|
+
id: "group-".concat(props.menu.key),
|
|
1040
1033
|
level: 2,
|
|
1041
1034
|
isActive: props.isActive,
|
|
1042
1035
|
isExpanded: props.isMenuOpen,
|
|
@@ -1047,7 +1040,7 @@ const ApplicationMenu = props => {
|
|
|
1047
1040
|
children: [!props.isMenuOpen && jsxRuntime.jsx(TooltipContainer, {
|
|
1048
1041
|
alignsAgainstBottom: isSubmenuAboveMenuItem,
|
|
1049
1042
|
children: jsxRuntime.jsx(Tooltip, {
|
|
1050
|
-
"aria-owns":
|
|
1043
|
+
"aria-owns": "group-".concat(props.menu.key),
|
|
1051
1044
|
role: "tooltip",
|
|
1052
1045
|
children: jsxRuntime.jsx(MenuLabel, {
|
|
1053
1046
|
labelAllLocales: props.menu.labelAllLocales,
|
|
@@ -1055,38 +1048,39 @@ const ApplicationMenu = props => {
|
|
|
1055
1048
|
applicationLocale: props.applicationLocale
|
|
1056
1049
|
})
|
|
1057
1050
|
})
|
|
1058
|
-
}), hasSubmenu ? _mapInstanceProperty__default["default"](
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1051
|
+
}), hasSubmenu ? _mapInstanceProperty__default["default"](_context5 = props.menu.submenu).call(_context5, submenu => {
|
|
1052
|
+
var _context6, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context7;
|
|
1053
|
+
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
1054
|
+
keyOfMenuItem: submenu.key,
|
|
1055
|
+
featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
|
|
1056
|
+
permissions: submenu.permissions,
|
|
1057
|
+
actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
|
|
1058
|
+
dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
|
|
1059
|
+
projectPermissions: props.projectPermissions,
|
|
1060
|
+
children: jsxRuntime.jsx(SublistItem, {
|
|
1061
|
+
isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
|
|
1062
|
+
children: jsxRuntime.jsx(Text, {
|
|
1063
|
+
children: jsxRuntime.jsx(MenuItemLink, {
|
|
1064
|
+
linkTo: _concatInstanceProperty__default["default"](_context7 = "/".concat(props.projectKey, "/")).call(_context7, submenu.uriPath)
|
|
1065
|
+
// We want to use an exact matching strategy to avoid multiple
|
|
1066
|
+
// links matching sub-routes.
|
|
1067
|
+
,
|
|
1068
|
+
exactMatch: true,
|
|
1069
|
+
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
1070
|
+
onClick: props.onMenuItemClick,
|
|
1071
|
+
isSubmenuLink: true,
|
|
1072
|
+
isSubmenuFocused: isSubmenuFocused,
|
|
1073
|
+
ariaLabel: getMenuAccessibleLabel(submenu.labelAllLocales, submenu.defaultLabel, props.applicationLocale),
|
|
1074
|
+
children: jsxRuntime.jsx(MenuLabel, {
|
|
1075
|
+
labelAllLocales: submenu.labelAllLocales,
|
|
1076
|
+
defaultLabel: submenu.defaultLabel,
|
|
1077
|
+
applicationLocale: props.applicationLocale
|
|
1078
|
+
})
|
|
1085
1079
|
})
|
|
1086
1080
|
})
|
|
1087
1081
|
})
|
|
1088
|
-
})
|
|
1089
|
-
}
|
|
1082
|
+
}, _concatInstanceProperty__default["default"](_context6 = "".concat(props.menu.key, "-submenu-")).call(_context6, submenu.key));
|
|
1083
|
+
}) : null, jsxRuntime.jsx(SafeArea, {
|
|
1090
1084
|
ref: submenuSafeAreaRef
|
|
1091
1085
|
})]
|
|
1092
1086
|
})]
|
|
@@ -1113,12 +1107,14 @@ const NavBar = props => {
|
|
|
1113
1107
|
const location = reactRouterDom.useLocation();
|
|
1114
1108
|
const _useIntl = reactIntl.useIntl(),
|
|
1115
1109
|
formatMessage = _useIntl.formatMessage;
|
|
1116
|
-
const projectPermissions = react$1.useMemo(() =>
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1110
|
+
const projectPermissions = react$1.useMemo(() => {
|
|
1111
|
+
var _props$project, _props$project2, _props$project3;
|
|
1112
|
+
return {
|
|
1113
|
+
permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
|
|
1114
|
+
actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
|
|
1115
|
+
dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
|
|
1116
|
+
};
|
|
1117
|
+
}, [props.project]);
|
|
1122
1118
|
const applicationLocale = props.applicationLocale;
|
|
1123
1119
|
|
|
1124
1120
|
// Render the loading navbar as long as all the data
|
|
@@ -1149,11 +1145,12 @@ const NavBar = props => {
|
|
|
1149
1145
|
children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
|
|
1150
1146
|
scale: "l",
|
|
1151
1147
|
children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
|
|
1152
|
-
var
|
|
1148
|
+
var _context8;
|
|
1153
1149
|
return jsxRuntime.jsx("div", {
|
|
1154
|
-
children: _mapInstanceProperty__default["default"](
|
|
1150
|
+
children: _mapInstanceProperty__default["default"](_context8 = navbarMenuGroup.items).call(_context8, menu => {
|
|
1151
|
+
var _context9;
|
|
1155
1152
|
const menuType = 'scrollable';
|
|
1156
|
-
const itemIndex =
|
|
1153
|
+
const itemIndex = _concatInstanceProperty__default["default"](_context9 = "".concat(menuType, "-")).call(_context9, menu.key);
|
|
1157
1154
|
return jsxRuntime.jsx(ApplicationMenu, {
|
|
1158
1155
|
location: location,
|
|
1159
1156
|
menu: menu,
|
|
@@ -1162,7 +1159,6 @@ const NavBar = props => {
|
|
|
1162
1159
|
isMenuOpen: isMenuOpen,
|
|
1163
1160
|
shouldCloseMenuFly: shouldCloseMenuFly,
|
|
1164
1161
|
projectPermissions: projectPermissions,
|
|
1165
|
-
menuVisibilities: menuVisibilities,
|
|
1166
1162
|
applicationLocale: applicationLocale,
|
|
1167
1163
|
projectKey: props.projectKey,
|
|
1168
1164
|
useFullRedirectsForLinks: useFullRedirectsForLinks,
|