@commercetools-frontend/application-shell 27.9.0 → 27.9.1
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/{application-shell-splitter-dbae9dfc.esm.js → application-shell-splitter-2c38991b.esm.js} +2 -1
- package/dist/{application-shell-splitter-e87a060f.cjs.dev.js → application-shell-splitter-a527378f.cjs.dev.js} +2 -1
- package/dist/{application-shell-splitter-62fabf2c.cjs.prod.js → application-shell-splitter-b560f8be.cjs.prod.js} +2 -1
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +5 -4
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +5 -4
- package/dist/commercetools-frontend-application-shell.esm.js +5 -4
- package/dist/{custom-view-dev-host-a506643d.cjs.dev.js → custom-view-dev-host-61a6875f.cjs.dev.js} +15 -10
- package/dist/{custom-view-dev-host-48d2bc48.cjs.prod.js → custom-view-dev-host-6802db5c.cjs.prod.js} +15 -10
- package/dist/{custom-view-dev-host-856878ae.esm.js → custom-view-dev-host-b47bb9bc.esm.js} +14 -10
- package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +15 -0
- package/dist/{index-614accc4.cjs.dev.js → index-25183095.cjs.dev.js} +2 -2
- package/dist/{index-c4358b17.cjs.dev.js → index-419ebe37.cjs.dev.js} +145 -113
- 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-2e1b3109.cjs.prod.js → index-ae34310f.cjs.prod.js} +145 -113
- package/dist/{index-8202b8ac.esm.js → index-f440fbdc.esm.js} +144 -113
- package/dist/{navbar-9eb6c972.esm.js → navbar-5290186f.esm.js} +104 -89
- package/dist/{navbar-f4b2552d.cjs.prod.js → navbar-9a1054eb.cjs.prod.js} +105 -89
- package/dist/{navbar-59504b51.cjs.dev.js → navbar-f2740795.cjs.dev.js} +105 -89
- package/dist/oidc-349b18df.cjs.dev.js +119 -0
- package/dist/oidc-3ad2f42d.cjs.prod.js +119 -0
- package/dist/{oidc-callback-51b6c2c0.esm.js → oidc-callback-a6d80251.esm.js} +11 -9
- package/dist/{oidc-callback-d8a01652.cjs.dev.js → oidc-callback-b47c8b7e.cjs.dev.js} +11 -10
- package/dist/{oidc-callback-cd36b191.cjs.prod.js → oidc-callback-e6029355.cjs.prod.js} +11 -10
- package/dist/oidc-ddd328fa.esm.js +103 -0
- package/dist/{project-container-289c1867.cjs.dev.js → project-container-2a79f361.cjs.dev.js} +14 -11
- package/dist/{project-container-cba9e7cb.esm.js → project-container-ad07cd24.esm.js} +14 -11
- package/dist/{project-container-ebc714c6.cjs.prod.js → project-container-f3e06769.cjs.prod.js} +14 -11
- package/dist/{project-expired-8a005b06.cjs.prod.js → project-expired-a9741dd7.cjs.prod.js} +6 -5
- package/dist/{project-expired-149df88a.cjs.dev.js → project-expired-ce1a7855.cjs.dev.js} +6 -5
- package/dist/{project-expired-bcaaefdd.esm.js → project-expired-dba360dc.esm.js} +6 -5
- package/dist/{project-not-found-5289edf3.cjs.prod.js → project-not-found-0dd37054.cjs.prod.js} +5 -4
- package/dist/{project-not-found-3d54a0a9.cjs.dev.js → project-not-found-43912d11.cjs.dev.js} +5 -4
- package/dist/{project-not-found-a816829d.esm.js → project-not-found-65aed038.esm.js} +5 -4
- package/dist/{project-not-initialized-6f782586.esm.js → project-not-initialized-3eb732fc.esm.js} +6 -5
- package/dist/{project-not-initialized-e3aa75cc.cjs.prod.js → project-not-initialized-4fecb9ed.cjs.prod.js} +6 -5
- package/dist/{project-not-initialized-f0debef3.cjs.dev.js → project-not-initialized-52f39003.cjs.dev.js} +6 -5
- package/dist/{project-suspended-d7af8cd7.cjs.prod.js → project-suspended-5b1f484a.cjs.prod.js} +5 -4
- package/dist/{project-suspended-596a4e02.esm.js → project-suspended-663d9875.esm.js} +5 -4
- package/dist/{project-suspended-dbb8a967.cjs.dev.js → project-suspended-b3b9d9d4.cjs.dev.js} +5 -4
- package/dist/{redirect-to-login-6675c038.cjs.prod.js → redirect-to-login-0596ba25.cjs.prod.js} +13 -10
- package/dist/{redirect-to-login-8a61864c.cjs.dev.js → redirect-to-login-6c3b5cc4.cjs.dev.js} +13 -10
- package/dist/{redirect-to-login-b79d0910.esm.js → redirect-to-login-c5629017.esm.js} +13 -10
- package/dist/{redirect-to-logout-29e049ae.cjs.prod.js → redirect-to-logout-7d335145.cjs.prod.js} +8 -6
- package/dist/{redirect-to-logout-6b536a7a.cjs.dev.js → redirect-to-logout-8b0b2e2c.cjs.dev.js} +8 -6
- package/dist/{redirect-to-logout-e3a515f4.esm.js → redirect-to-logout-9994a431.esm.js} +8 -6
- 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-ae82cf37.cjs.dev.js → requests-in-flight-loader-497fc4b0.cjs.dev.js} +5 -4
- package/dist/{requests-in-flight-loader-529103d5.cjs.prod.js → requests-in-flight-loader-52e3eb92.cjs.prod.js} +5 -4
- package/dist/{requests-in-flight-loader-22c2de59.esm.js → requests-in-flight-loader-c56604f2.esm.js} +5 -4
- package/dist/{service-page-project-switcher-c0306e45.esm.js → service-page-project-switcher-8942f997.esm.js} +1 -1
- package/dist/{service-page-project-switcher-e339dd8e.cjs.dev.js → service-page-project-switcher-d98264a0.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-baa2016f.cjs.prod.js → service-page-project-switcher-f332cda6.cjs.prod.js} +1 -1
- package/dist/{use-applications-menu-8984efa1.cjs.prod.js → use-applications-menu-21c7420b.cjs.prod.js} +47 -39
- package/dist/{use-applications-menu-bd718ac8.cjs.dev.js → use-applications-menu-7a85c3ee.cjs.dev.js} +47 -39
- package/dist/{use-applications-menu-bc2b9a66.esm.js → use-applications-menu-8ff2d130.esm.js} +44 -37
- package/dist/{user-settings-menu-b8359b8b.cjs.dev.js → user-settings-menu-0f655cb1.cjs.dev.js} +30 -23
- package/dist/{user-settings-menu-a1d0ba8e.esm.js → user-settings-menu-bcb676d5.esm.js} +30 -23
- package/dist/{user-settings-menu-2235add2.cjs.prod.js → user-settings-menu-c52bf93a.cjs.prod.js} +30 -23
- package/package.json +53 -53
- 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 +35 -33
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +35 -33
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +29 -28
- package/dist/oidc-0cba182b.cjs.prod.js +0 -102
- package/dist/oidc-b9e7297c.cjs.dev.js +0 -102
- package/dist/oidc-cb344fae.esm.js +0 -87
|
@@ -4,6 +4,7 @@ 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 _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
7
8
|
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
8
9
|
var _Number$isFinite = require('@babel/runtime-corejs3/core-js-stable/number/is-finite');
|
|
9
10
|
var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
|
|
@@ -24,11 +25,12 @@ 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-3ad2f42d.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
36
|
var reactBroadcast = require('@flopflip/react-broadcast');
|
|
@@ -42,7 +44,7 @@ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/insta
|
|
|
42
44
|
var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
|
|
43
45
|
var isNil = require('lodash/isNil');
|
|
44
46
|
var throttle = require('lodash/throttle');
|
|
45
|
-
var useApplicationsMenu = require('./use-applications-menu-
|
|
47
|
+
var useApplicationsMenu = require('./use-applications-menu-21c7420b.cjs.prod.js');
|
|
46
48
|
require('@apollo/client');
|
|
47
49
|
require('@commercetools-frontend/l10n');
|
|
48
50
|
|
|
@@ -50,6 +52,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
|
|
|
50
52
|
|
|
51
53
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
52
54
|
var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
|
|
55
|
+
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
|
|
53
56
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
54
57
|
var _Number$isFinite__default = /*#__PURE__*/_interopDefault(_Number$isFinite);
|
|
55
58
|
var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
|
|
@@ -93,6 +96,7 @@ const Title = /*#__PURE__*/_styled__default["default"]("div", {
|
|
|
93
96
|
target: "e1wv1pdj0"
|
|
94
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;" + ("" ));
|
|
95
98
|
|
|
99
|
+
var _templateObject$1;
|
|
96
100
|
const getSubmenuPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, submenuVerticalPosition) => /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":", submenuVerticalPosition, "px;" + ("" ), "" );
|
|
97
101
|
var _ref4 = {
|
|
98
102
|
name: "abcix4",
|
|
@@ -103,10 +107,7 @@ var _ref5 = {
|
|
|
103
107
|
styles: "bottom:0"
|
|
104
108
|
} ;
|
|
105
109
|
const getContainerPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, isSublistActiveWhileIsMenuExpanded, isSublistActiveWhileIsMenuCollapsed) => [isSublistActiveWhileIsMenuCollapsed && /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":-", oidc.NAVBAR.itemSize, ";" + ("" ), "" ), isSublistActiveWhileIsMenuExpanded && isSubmenuAboveMenuItem && _ref5, isSublistActiveWhileIsMenuExpanded && !isSubmenuAboveMenuItem && _ref4];
|
|
106
|
-
const fadeIn = react.keyframes
|
|
107
|
-
from {opacity: 0;}
|
|
108
|
-
to { opacity: 1;}
|
|
109
|
-
`;
|
|
110
|
+
const fadeIn = react.keyframes(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\nfrom {opacity: 0;}\n to { opacity: 1;}\n"])));
|
|
110
111
|
var _ref3 = {
|
|
111
112
|
name: "eivff4",
|
|
112
113
|
styles: "display:none"
|
|
@@ -157,14 +158,8 @@ const SafeArea = /*#__PURE__*/_styled__default["default"]("span", {
|
|
|
157
158
|
target: "e1i568cv0"
|
|
158
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);" + ("" ));
|
|
159
160
|
|
|
160
|
-
|
|
161
|
-
from {
|
|
162
|
-
opacity: 0;
|
|
163
|
-
}
|
|
164
|
-
to {
|
|
165
|
-
opacity: 1;
|
|
166
|
-
}
|
|
167
|
-
`;
|
|
161
|
+
var _templateObject;
|
|
162
|
+
const visible = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"])));
|
|
168
163
|
const FixedMenu = /*#__PURE__*/_styled__default["default"]("div", {
|
|
169
164
|
target: "e1meml8k10"
|
|
170
165
|
} )("position:relative;width:", oidc.NAVBAR.widthLeftNavigation, ";", MenuListItem, " ", ItemIconText, "{justify-content:center;display:flex;width:100%;}" + ("" ));
|
|
@@ -331,8 +326,8 @@ const MenuGroup = /*#__PURE__*/react$1.forwardRef((props, ref) => {
|
|
|
331
326
|
return jsxRuntime.jsx(MenuList, {
|
|
332
327
|
ref: ref && props.level === 2 ? ref : null,
|
|
333
328
|
level: props.level,
|
|
334
|
-
id:
|
|
335
|
-
"data-testid":
|
|
329
|
+
id: "group-".concat(props.id),
|
|
330
|
+
"data-testid": "group-".concat(props.id),
|
|
336
331
|
role: "menu",
|
|
337
332
|
onKeyDown: props.handleKeyDown,
|
|
338
333
|
className: classnames__default["default"]({
|
|
@@ -431,7 +426,7 @@ const MenuItemLink = _ref3 => {
|
|
|
431
426
|
};
|
|
432
427
|
MenuItemLink.displayName = 'MenuItemLink';
|
|
433
428
|
function isLongLivedFlag(flag) {
|
|
434
|
-
return typeof flag
|
|
429
|
+
return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
|
|
435
430
|
}
|
|
436
431
|
const RestrictedMenuItem = _ref4 => {
|
|
437
432
|
let _ref4$permissions = _ref4.permissions,
|
|
@@ -650,13 +645,15 @@ const reducer = (state, action) => {
|
|
|
650
645
|
return state;
|
|
651
646
|
}
|
|
652
647
|
};
|
|
653
|
-
const isFocusOutEventCalledBySubmenuItem = event =>
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
//
|
|
657
|
-
event.
|
|
658
|
-
// element losing focus
|
|
659
|
-
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
|
+
};
|
|
660
657
|
const useNavbarStateManager = props => {
|
|
661
658
|
var _context, _context2, _context4, _context5;
|
|
662
659
|
const navBarNode = react$1.useRef(null);
|
|
@@ -750,7 +747,8 @@ const useNavbarStateManager = props => {
|
|
|
750
747
|
}
|
|
751
748
|
}, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
|
|
752
749
|
const shouldCloseMenuFly = react$1.useCallback(event => {
|
|
753
|
-
|
|
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) {
|
|
754
752
|
dispatch({
|
|
755
753
|
type: 'unsetActiveItemIndex'
|
|
756
754
|
});
|
|
@@ -815,7 +813,7 @@ const useNavbarStateManager = props => {
|
|
|
815
813
|
const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
|
|
816
814
|
key: navbarMenuGroup.key,
|
|
817
815
|
items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
|
|
818
|
-
} : 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));
|
|
819
817
|
return _objectSpread$1(_objectSpread$1({}, state), {}, {
|
|
820
818
|
navBarNode,
|
|
821
819
|
handleToggleItem,
|
|
@@ -827,7 +825,7 @@ const useNavbarStateManager = props => {
|
|
|
827
825
|
};
|
|
828
826
|
|
|
829
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; }
|
|
830
|
-
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; }
|
|
831
829
|
// Helper function to extract accessible label from menu objects
|
|
832
830
|
const getMenuAccessibleLabel = (labelAllLocales, defaultLabel, applicationLocale) => {
|
|
833
831
|
const localizedLabel = _findInstanceProperty__default["default"](labelAllLocales).call(labelAllLocales, loc => _startsWithInstanceProperty__default["default"](applicationLocale).call(applicationLocale, loc.locale));
|
|
@@ -835,13 +833,16 @@ const getMenuAccessibleLabel = (labelAllLocales, defaultLabel, applicationLocale
|
|
|
835
833
|
if (defaultLabel) return defaultLabel;
|
|
836
834
|
return constants.NO_VALUE_FALLBACK;
|
|
837
835
|
};
|
|
838
|
-
const getIsSubmenuRouteActive = (uriPath, props) =>
|
|
839
|
-
path: `/${props.projectKey}/${uriPath}`,
|
|
840
|
-
exact: true,
|
|
841
|
-
strict: false
|
|
842
|
-
}));
|
|
843
|
-
const ApplicationMenu = props => {
|
|
836
|
+
const getIsSubmenuRouteActive = (uriPath, props) => {
|
|
844
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
|
+
}));
|
|
843
|
+
};
|
|
844
|
+
const ApplicationMenu = props => {
|
|
845
|
+
var _context3, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context4, _context5;
|
|
845
846
|
const _useState = react$1.useState(0),
|
|
846
847
|
_useState2 = _slicedToArray(_useState, 2),
|
|
847
848
|
submenuVerticalPosition = _useState2[0],
|
|
@@ -868,12 +869,13 @@ const ApplicationMenu = props => {
|
|
|
868
869
|
const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
|
|
869
870
|
const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
|
|
870
871
|
const calculateSafeAreaStartPositon = react$1.useCallback(e => {
|
|
871
|
-
|
|
872
|
-
const
|
|
873
|
-
const
|
|
874
|
-
const
|
|
875
|
-
const
|
|
876
|
-
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;
|
|
877
879
|
const localX = e.clientX - currentSafeAreaLeft;
|
|
878
880
|
const localY = e.clientY - currentSafeAreaTop;
|
|
879
881
|
let minXPercent = 0;
|
|
@@ -919,15 +921,17 @@ const ApplicationMenu = props => {
|
|
|
919
921
|
};
|
|
920
922
|
}, [calculateSafeAreaStartPositon]);
|
|
921
923
|
react$1.useLayoutEffect(() => {
|
|
924
|
+
var _context2;
|
|
922
925
|
if (!submenuRef.current) return;
|
|
923
926
|
const safeX = _Number$isFinite__default["default"](percentageX) ? percentageX : 0;
|
|
924
927
|
const safeY = _Number$isFinite__default["default"](percentageY) ? percentageY : 100;
|
|
925
|
-
submenuRef.current.style.setProperty('--safe-start',
|
|
928
|
+
submenuRef.current.style.setProperty('--safe-start', _concatInstanceProperty__default["default"](_context2 = "".concat(safeX, "% ")).call(_context2, safeY, "%"));
|
|
926
929
|
}, [percentageX, percentageY]);
|
|
927
930
|
const callbackFn = react$1.useCallback(entries => {
|
|
928
|
-
|
|
929
|
-
const
|
|
930
|
-
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;
|
|
931
935
|
const _entries = _slicedToArray(entries, 1),
|
|
932
936
|
entry = _entries[0];
|
|
933
937
|
|
|
@@ -953,7 +957,10 @@ const ApplicationMenu = props => {
|
|
|
953
957
|
observerRef.current = new IntersectionObserver(callbackFn, {
|
|
954
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
|
|
955
959
|
});
|
|
956
|
-
return () =>
|
|
960
|
+
return () => {
|
|
961
|
+
var _observerRef$current;
|
|
962
|
+
return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
|
|
963
|
+
};
|
|
957
964
|
}, [callbackFn, props.isMenuOpen]);
|
|
958
965
|
react$1.useLayoutEffect(() => {
|
|
959
966
|
const currentSubmenuRef = submenuRef.current;
|
|
@@ -963,10 +970,10 @@ const ApplicationMenu = props => {
|
|
|
963
970
|
observer.observe(currentSubmenuRef);
|
|
964
971
|
}
|
|
965
972
|
setIsSubmenuFocused(false);
|
|
966
|
-
return () => observer
|
|
973
|
+
return () => observer === null || observer === void 0 ? void 0 : observer.disconnect();
|
|
967
974
|
}, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
|
|
968
975
|
const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
969
|
-
path:
|
|
976
|
+
path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, props.menu.uriPath),
|
|
970
977
|
exact: false,
|
|
971
978
|
strict: false
|
|
972
979
|
}));
|
|
@@ -980,20 +987,22 @@ const ApplicationMenu = props => {
|
|
|
980
987
|
}, [props.isMenuOpen]); // <-- (re)run this only when the all menu expands
|
|
981
988
|
|
|
982
989
|
const handleKeyDown = e => {
|
|
983
|
-
|
|
990
|
+
var _submenuRef$current;
|
|
991
|
+
const currentlyFocusedItem = (_submenuRef$current = submenuRef.current) === null || _submenuRef$current === void 0 ? void 0 : _submenuRef$current.querySelector(':focus');
|
|
984
992
|
if (e.key === 'Enter') {
|
|
985
993
|
setIsSubmenuFocused(true);
|
|
986
994
|
if (!currentlyFocusedItem) {
|
|
987
|
-
|
|
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();
|
|
988
997
|
}
|
|
989
998
|
}
|
|
990
999
|
};
|
|
991
1000
|
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
992
1001
|
keyOfMenuItem: props.menu.key,
|
|
993
|
-
featureToggle: props.menu.featureToggle
|
|
1002
|
+
featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
|
|
994
1003
|
permissions: props.menu.permissions,
|
|
995
|
-
actionRights: props.menu.actionRights
|
|
996
|
-
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,
|
|
997
1006
|
projectPermissions: props.projectPermissions,
|
|
998
1007
|
children: jsxRuntime.jsxs(MenuItem$1, {
|
|
999
1008
|
hasSubmenu: hasSubmenu,
|
|
@@ -1008,7 +1017,7 @@ const ApplicationMenu = props => {
|
|
|
1008
1017
|
identifier: menuItemIdentifier,
|
|
1009
1018
|
ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
|
|
1010
1019
|
children: [jsxRuntime.jsx(MenuItemLink, {
|
|
1011
|
-
linkTo:
|
|
1020
|
+
linkTo: _concatInstanceProperty__default["default"](_context4 = "/".concat(props.projectKey, "/")).call(_context4, props.menu.uriPath),
|
|
1012
1021
|
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
1013
1022
|
onClick: props.onMenuItemClick,
|
|
1014
1023
|
ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
|
|
@@ -1020,7 +1029,7 @@ const ApplicationMenu = props => {
|
|
|
1020
1029
|
isMenuOpen: props.isMenuOpen
|
|
1021
1030
|
})
|
|
1022
1031
|
}), jsxRuntime.jsxs(MenuGroup, {
|
|
1023
|
-
id:
|
|
1032
|
+
id: "group-".concat(props.menu.key),
|
|
1024
1033
|
level: 2,
|
|
1025
1034
|
isActive: props.isActive,
|
|
1026
1035
|
isExpanded: props.isMenuOpen,
|
|
@@ -1031,7 +1040,7 @@ const ApplicationMenu = props => {
|
|
|
1031
1040
|
children: [!props.isMenuOpen && jsxRuntime.jsx(TooltipContainer, {
|
|
1032
1041
|
alignsAgainstBottom: isSubmenuAboveMenuItem,
|
|
1033
1042
|
children: jsxRuntime.jsx(Tooltip, {
|
|
1034
|
-
"aria-owns":
|
|
1043
|
+
"aria-owns": "group-".concat(props.menu.key),
|
|
1035
1044
|
role: "tooltip",
|
|
1036
1045
|
children: jsxRuntime.jsx(MenuLabel, {
|
|
1037
1046
|
labelAllLocales: props.menu.labelAllLocales,
|
|
@@ -1039,36 +1048,39 @@ const ApplicationMenu = props => {
|
|
|
1039
1048
|
applicationLocale: props.applicationLocale
|
|
1040
1049
|
})
|
|
1041
1050
|
})
|
|
1042
|
-
}), hasSubmenu ? _mapInstanceProperty__default["default"](
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
children: jsxRuntime.jsx(
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
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
|
+
})
|
|
1067
1079
|
})
|
|
1068
1080
|
})
|
|
1069
1081
|
})
|
|
1070
|
-
})
|
|
1071
|
-
}
|
|
1082
|
+
}, _concatInstanceProperty__default["default"](_context6 = "".concat(props.menu.key, "-submenu-")).call(_context6, submenu.key));
|
|
1083
|
+
}) : null, jsxRuntime.jsx(SafeArea, {
|
|
1072
1084
|
ref: submenuSafeAreaRef
|
|
1073
1085
|
})]
|
|
1074
1086
|
})]
|
|
@@ -1095,11 +1107,14 @@ const NavBar = props => {
|
|
|
1095
1107
|
const location = reactRouterDom.useLocation();
|
|
1096
1108
|
const _useIntl = reactIntl.useIntl(),
|
|
1097
1109
|
formatMessage = _useIntl.formatMessage;
|
|
1098
|
-
const projectPermissions = react$1.useMemo(() =>
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
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]);
|
|
1103
1118
|
const applicationLocale = props.applicationLocale;
|
|
1104
1119
|
|
|
1105
1120
|
// Render the loading navbar as long as all the data
|
|
@@ -1130,11 +1145,12 @@ const NavBar = props => {
|
|
|
1130
1145
|
children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
|
|
1131
1146
|
scale: "l",
|
|
1132
1147
|
children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
|
|
1133
|
-
var
|
|
1148
|
+
var _context8;
|
|
1134
1149
|
return jsxRuntime.jsx("div", {
|
|
1135
|
-
children: _mapInstanceProperty__default["default"](
|
|
1150
|
+
children: _mapInstanceProperty__default["default"](_context8 = navbarMenuGroup.items).call(_context8, menu => {
|
|
1151
|
+
var _context9;
|
|
1136
1152
|
const menuType = 'scrollable';
|
|
1137
|
-
const itemIndex =
|
|
1153
|
+
const itemIndex = _concatInstanceProperty__default["default"](_context9 = "".concat(menuType, "-")).call(_context9, menu.key);
|
|
1138
1154
|
return jsxRuntime.jsx(ApplicationMenu, {
|
|
1139
1155
|
location: location,
|
|
1140
1156
|
menu: menu,
|