@commercetools-frontend/application-shell 22.30.3 → 22.32.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-2365588d.esm.js → application-entry-point-44f059a0.esm.js} +3 -3
- package/dist/{application-entry-point-257a1cbc.cjs.prod.js → application-entry-point-654951a6.cjs.prod.js} +2 -2
- package/dist/{application-entry-point-a403a123.cjs.dev.js → application-entry-point-c2f77f23.cjs.dev.js} +3 -3
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +11 -5
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +11 -5
- package/dist/commercetools-frontend-application-shell.esm.js +5 -5
- package/dist/{custom-view-dev-host-4e28e0f9.cjs.prod.js → custom-view-dev-host-50d585ab.cjs.prod.js} +12 -16
- package/dist/{custom-view-dev-host-e57a61c2.esm.js → custom-view-dev-host-8c058d60.esm.js} +12 -15
- package/dist/{custom-view-dev-host-2cc66e5d.cjs.dev.js → custom-view-dev-host-d7d6a676.cjs.dev.js} +12 -16
- package/dist/declarations/src/components/application-page-title/application-page-title.d.ts +16 -0
- package/dist/declarations/src/components/application-shell/application-shell.d.ts +17 -0
- package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +4 -0
- package/dist/declarations/src/components/navbar/menu-items.d.ts +1 -0
- package/dist/declarations/src/components/navbar/menu-items.styles.d.ts +5 -1
- package/dist/declarations/src/components/navbar/navbar.d.ts +4 -0
- package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +6 -0
- package/dist/declarations/src/components/workspaces-navigation-button/index.d.ts +1 -0
- package/dist/declarations/src/components/workspaces-navigation-button/messages.d.ts +8 -0
- package/dist/declarations/src/components/workspaces-navigation-button/workspaces-navigation-button.d.ts +3 -0
- package/dist/declarations/src/configure-store.d.ts +3 -0
- package/dist/declarations/src/hooks/use-routes-creator/use-routes-creator.d.ts +3 -0
- package/dist/declarations/src/index.d.ts +16 -1
- package/dist/declarations/src/types/generated/ctp.d.ts +562 -0
- package/dist/declarations/src/types/generated/mc.d.ts +5 -0
- package/dist/declarations/src/types/generated/proxy.d.ts +3 -0
- package/dist/declarations/src/types/generated/settings.d.ts +22 -0
- package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +16 -0
- package/dist/{index-01054d41.esm.js → index-30d34b7f.esm.js} +185 -154
- package/dist/{index-986cb2e3.cjs.prod.js → index-312ee159.cjs.prod.js} +175 -144
- package/dist/{index-9ad54c23.cjs.dev.js → index-89389085.cjs.dev.js} +190 -153
- package/dist/{index-055ebc13.cjs.prod.js → index-91985d64.cjs.prod.js} +2 -2
- package/dist/{index-ca730730.cjs.dev.js → index-b1476d46.cjs.dev.js} +2 -2
- package/dist/{index-4e5248df.esm.js → index-b6081c20.esm.js} +2 -2
- package/dist/navbar-3b9c6b6b.esm.js +1394 -0
- package/dist/{navbar-ced649a9.cjs.prod.js → navbar-9da45ea7.cjs.prod.js} +172 -111
- package/dist/navbar-b18bb556.cjs.dev.js +1426 -0
- package/dist/oidc-6c6599a2.cjs.dev.js +98 -0
- package/dist/oidc-8275c04f.esm.js +84 -0
- package/dist/{oidc-callback-64f9a790.cjs.prod.js → oidc-callback-0e597d85.cjs.prod.js} +11 -12
- package/dist/{oidc-callback-bc478925.esm.js → oidc-callback-427bb1fe.esm.js} +11 -12
- package/dist/{oidc-callback-651f63e0.cjs.dev.js → oidc-callback-cb22ccb9.cjs.dev.js} +11 -12
- package/dist/oidc-d02d4ab8.cjs.prod.js +98 -0
- package/dist/{project-container-7b970853.cjs.prod.js → project-container-8ea3157d.cjs.prod.js} +14 -16
- package/dist/{project-container-7f10329f.cjs.dev.js → project-container-a3583d97.cjs.dev.js} +14 -16
- package/dist/{project-container-e9061cf4.esm.js → project-container-e40ef9d5.esm.js} +14 -16
- package/dist/{project-expired-7b154842.cjs.dev.js → project-expired-5fcc5f07.cjs.dev.js} +8 -8
- package/dist/{project-expired-1cb50976.esm.js → project-expired-d577ae18.esm.js} +8 -8
- package/dist/{project-expired-08aee9c1.cjs.prod.js → project-expired-dfccc21f.cjs.prod.js} +8 -8
- package/dist/{project-not-found-d1bc7cf2.cjs.prod.js → project-not-found-2278758f.cjs.prod.js} +7 -7
- package/dist/{project-not-found-1b3a3444.cjs.dev.js → project-not-found-4604d59d.cjs.dev.js} +7 -7
- package/dist/{project-not-found-3dc52680.esm.js → project-not-found-fd3a1f58.esm.js} +7 -7
- package/dist/{project-not-initialized-3ca17563.esm.js → project-not-initialized-b34c95c9.esm.js} +8 -8
- package/dist/{project-not-initialized-f314f99a.cjs.prod.js → project-not-initialized-cb1d4d19.cjs.prod.js} +8 -8
- package/dist/{project-not-initialized-72ca9efb.cjs.dev.js → project-not-initialized-d85c316d.cjs.dev.js} +8 -8
- package/dist/{project-suspended-944c20e8.esm.js → project-suspended-56e0ee3b.esm.js} +7 -7
- package/dist/{project-suspended-f767d4f0.cjs.dev.js → project-suspended-5e490e56.cjs.dev.js} +7 -7
- package/dist/{project-suspended-c5ae709a.cjs.prod.js → project-suspended-ec44d7fc.cjs.prod.js} +7 -7
- package/dist/{quick-access-ee9ef366.cjs.dev.js → quick-access-809ff4ff.cjs.dev.js} +204 -133
- package/dist/{quick-access-30cee256.esm.js → quick-access-a19e4dc0.esm.js} +204 -132
- package/dist/{quick-access-c4f74cba.cjs.prod.js → quick-access-cbb7a118.cjs.prod.js} +204 -133
- package/dist/{redirect-to-login-3ebce35d.cjs.dev.js → redirect-to-login-32ebe009.cjs.dev.js} +10 -13
- package/dist/{redirect-to-login-3c5a3f4a.cjs.prod.js → redirect-to-login-60a00442.cjs.prod.js} +10 -13
- package/dist/{redirect-to-login-af9860c8.esm.js → redirect-to-login-b69fb5ce.esm.js} +10 -13
- package/dist/{redirect-to-logout-e365ba72.cjs.prod.js → redirect-to-logout-1ffebbfe.cjs.prod.js} +9 -10
- package/dist/{redirect-to-logout-fff4cb7c.cjs.dev.js → redirect-to-logout-371cc9b1.cjs.dev.js} +9 -10
- package/dist/{redirect-to-logout-f3172701.esm.js → redirect-to-logout-7b502bb5.esm.js} +9 -10
- package/dist/{redirector-0a16c1d1.cjs.prod.js → redirector-01f35da8.cjs.prod.js} +3 -4
- package/dist/{redirector-d2fd2b5e.esm.js → redirector-76670a54.esm.js} +3 -4
- package/dist/{redirector-e58b9bc3.cjs.dev.js → redirector-98dfc5f0.cjs.dev.js} +3 -4
- package/dist/{requests-in-flight-loader-171a2177.cjs.prod.js → requests-in-flight-loader-49463178.cjs.prod.js} +7 -7
- package/dist/{requests-in-flight-loader-dd3f8cbb.cjs.dev.js → requests-in-flight-loader-7d5f946c.cjs.dev.js} +7 -7
- package/dist/{requests-in-flight-loader-acb4dbaa.esm.js → requests-in-flight-loader-e45b9001.esm.js} +7 -7
- package/dist/{service-page-project-switcher-6c523761.cjs.dev.js → service-page-project-switcher-679fa3be.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-65755fa9.esm.js → service-page-project-switcher-9bebaaa0.esm.js} +1 -1
- package/dist/{service-page-project-switcher-2b3f4d1d.cjs.prod.js → service-page-project-switcher-d3bc9ef6.cjs.prod.js} +1 -1
- package/dist/{use-applications-menu-2fe3d465.cjs.dev.js → use-applications-menu-222b9106.cjs.prod.js} +40 -49
- package/dist/{use-applications-menu-0d3f4ffc.cjs.prod.js → use-applications-menu-302a0ac8.cjs.dev.js} +40 -49
- package/dist/{use-applications-menu-03759eab.esm.js → use-applications-menu-b583e9c3.esm.js} +38 -46
- package/dist/{user-settings-menu-bbc43c88.cjs.dev.js → user-settings-menu-7c17f227.cjs.dev.js} +22 -29
- package/dist/{user-settings-menu-3f86267c.cjs.prod.js → user-settings-menu-8bba9f50.cjs.prod.js} +22 -29
- package/dist/{user-settings-menu-36bea559.esm.js → user-settings-menu-ff4a6c63.esm.js} +22 -29
- package/dist/{version-tracker-2ce61357.esm.js → version-tracker-58df65c0.esm.js} +6 -6
- package/dist/{version-tracker-ab883166.cjs.dev.js → version-tracker-66d5d210.cjs.dev.js} +6 -6
- package/dist/{version-tracker-b049fca7.cjs.prod.js → version-tracker-a984dbbe.cjs.prod.js} +6 -6
- package/package.json +17 -16
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +1 -2
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +1 -2
- package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +1 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +21 -26
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +21 -26
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +16 -20
- package/dist/navbar-e3ee2a76.esm.js +0 -1325
- package/dist/navbar-f981de75.cjs.dev.js +0 -1358
- package/dist/oidc-63e926e1.cjs.dev.js +0 -115
- package/dist/oidc-cfa56c46.cjs.prod.js +0 -115
- 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-
|
|
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-
|
|
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);
|
|
@@ -109,27 +106,31 @@ var _ref5 = {
|
|
|
109
106
|
styles: "bottom:0"
|
|
110
107
|
} ;
|
|
111
108
|
const getContainerPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, isSublistActiveWhileIsMenuExpanded, isSublistActiveWhileIsMenuCollapsed) => [isSublistActiveWhileIsMenuCollapsed && /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":-", oidc.NAVBAR.itemSize, ";" + ("" ), "" ), isSublistActiveWhileIsMenuExpanded && isSubmenuAboveMenuItem && _ref5, isSublistActiveWhileIsMenuExpanded && !isSubmenuAboveMenuItem && _ref4];
|
|
109
|
+
const fadeIn = react.keyframes`
|
|
110
|
+
from {opacity: 0;}
|
|
111
|
+
to { opacity: 1;}
|
|
112
|
+
`;
|
|
112
113
|
var _ref3 = {
|
|
113
114
|
name: "eivff4",
|
|
114
115
|
styles: "display:none"
|
|
115
116
|
} ;
|
|
116
117
|
const Expander = /*#__PURE__*/_styled__default["default"]("li", {
|
|
117
|
-
target: "
|
|
118
|
+
target: "e1i568cv8"
|
|
118
119
|
} )("display:flex;align-items:center;justify-content:center;background:", designSystem.designTokens.colorPrimary10, ";padding:", designSystem.designTokens.spacing30, " ", designSystem.designTokens.spacing25, ";", props => !props.isVisible && _ref3, "::before{content:'';position:absolute;top:", oidc.NAVBAR.itemHeight, ";height:1px;background:rgba(255, 255, 255, 0.5);width:calc(100% - 2 * ", designSystem.designTokens.spacing30, ");}" + ("" ));
|
|
119
120
|
const ExpanderIcon = /*#__PURE__*/_styled__default["default"]("div", {
|
|
120
|
-
target: "
|
|
121
|
+
target: "e1i568cv7"
|
|
121
122
|
} )("height:", oidc.NAVBAR.expanderSize, ";width:", oidc.NAVBAR.expanderSize, ";border-radius:", designSystem.designTokens.borderRadius4, ";padding:", designSystem.designTokens.spacing20, ";background:rgba(255, 255, 255, 0.2);display:flex;justify-content:center;align-items:center;:hover,:focus{background:rgba(255, 255, 255, 0.3);cursor:pointer;}" + ("" ));
|
|
122
123
|
const LeftNavigation = /*#__PURE__*/_styled__default["default"]("nav", {
|
|
123
|
-
target: "
|
|
124
|
+
target: "e1i568cv6"
|
|
124
125
|
} )("display:grid;width:", oidc.NAVBAR.widthLeftNavigation, ";background:", applicationComponents.designTokens.backgroundColorForNavbar, ";height:100%;grid-template-rows:56px 1fr;transition:", oidc.NAVBAR.leftNavigationTransition, ";" + ("" ));
|
|
125
126
|
const TextLinkSublistWrapper = /*#__PURE__*/_styled__default["default"]("div", {
|
|
126
|
-
target: "
|
|
127
|
+
target: "e1i568cv5"
|
|
127
128
|
} )({
|
|
128
129
|
name: "khglpi",
|
|
129
130
|
styles: "display:flex;flex-direction:column;position:relative;min-height:0"
|
|
130
131
|
} );
|
|
131
132
|
const NavlinkClickableContent = /*#__PURE__*/_styled__default["default"]("div", {
|
|
132
|
-
target: "
|
|
133
|
+
target: "e1i568cv4"
|
|
133
134
|
} )({
|
|
134
135
|
name: "1kzq5ms",
|
|
135
136
|
styles: "height:100%;width:100%"
|
|
@@ -144,23 +145,32 @@ var _ref2 = {
|
|
|
144
145
|
styles: "visibility:hidden"
|
|
145
146
|
} ;
|
|
146
147
|
const MenuList = /*#__PURE__*/_styled__default["default"]("ul", {
|
|
147
|
-
target: "
|
|
148
|
+
target: "e1i568cv3"
|
|
148
149
|
} )(props => [props.level === 1 && listStyles, getSubmenuPositionBasedOnMenuItemPosition(props.isSubmenuAboveMenuItem, props.submenuVerticalPosition), props.level === 2 && sublistStyles,
|
|
149
150
|
// prevent glitchy behavior during the initial render when the submenu's vertical position is evaluated as 0
|
|
150
|
-
props.submenuVerticalPosition === 0 && _ref2, (props.isSublistActiveWhileIsMenuExpanded || props.isSublistCollapsedAndActive || props.isSublistCollapsedAndActiveAndAbove) && /*#__PURE__*/react.css("opacity:
|
|
151
|
+
props.submenuVerticalPosition === 0 && _ref2, (props.isSublistActiveWhileIsMenuExpanded || props.isSublistCollapsedAndActive || props.isSublistCollapsedAndActiveAndAbove) && /*#__PURE__*/react.css("opacity:0;display:none;text-align:left;background-color:", designSystem.designTokens.colorAccent20, ";::before{content:'';position:absolute;display:block;width:calc(", oidc.NAVBAR.sublistWidth, " + ", designSystem.designTokens.spacing20, ");height:", oidc.NAVBAR.itemSize, ";left:calc(-1 * ", designSystem.designTokens.spacing20, ");", getContainerPositionBasedOnMenuItemPosition(props.isSubmenuAboveMenuItem, props.isSublistActiveWhileIsMenuExpanded, props.isSublistActiveWhileIsMenuCollapsed), ";}" + ("" ), "" )], " & .highlighted,& .highlighted ", Title, "{color:", designSystem.designTokens.colorSurface, "!important;font-weight:", designSystem.designTokens.fontWeight600, ";}" + ("" ));
|
|
151
152
|
const SublistItem = /*#__PURE__*/_styled__default["default"]("li", {
|
|
152
|
-
target: "
|
|
153
|
+
target: "e1i568cv2"
|
|
153
154
|
} )("display:flex;align-items:center;align-self:stretch;", props => [props.isActive && /*#__PURE__*/react.css("border-radius:", designSystem.designTokens.borderRadius4, ";background:", designSystem.designTokens.colorPrimary40, ";" + ("" ), "" ), !props.isActive && /*#__PURE__*/react.css(":hover,:focus-within{color:", designSystem.designTokens.colorSurface, ";font-weight:", designSystem.designTokens.fontWeight600, ";border-radius:", designSystem.designTokens.borderRadius4, ";background:", designSystem.designTokens.colorPrimary95, ";[data-link-level='text-link-sublist']{padding:", designSystem.designTokens.spacing25, " ", designSystem.designTokens.spacing25, " ", designSystem.designTokens.spacing25, " calc(\n ", designSystem.designTokens.spacing30, " + ", designSystem.designTokens.spacing20, "\n );}}" + ("" ), "" )], ";" + ("" ));
|
|
154
155
|
var _ref = {
|
|
155
156
|
name: "1azakc",
|
|
156
157
|
styles: "text-align:center"
|
|
157
158
|
} ;
|
|
158
159
|
const MenuListItem = /*#__PURE__*/_styled__default["default"]("li", {
|
|
160
|
+
target: "e1i568cv1"
|
|
161
|
+
} )("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{animation-name:", fadeIn, ";animation-duration:16ms;animation-delay:100ms;animation-fill-mode:forwards;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, ";}" + ("" ));
|
|
162
|
+
const SafeArea = /*#__PURE__*/_styled__default["default"]("span", {
|
|
159
163
|
target: "e1i568cv0"
|
|
160
|
-
} )("
|
|
164
|
+
} )("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
165
|
|
|
162
|
-
|
|
163
|
-
|
|
166
|
+
const visible = react.keyframes`
|
|
167
|
+
from {
|
|
168
|
+
opacity: 0;
|
|
169
|
+
}
|
|
170
|
+
to {
|
|
171
|
+
opacity: 1;
|
|
172
|
+
}
|
|
173
|
+
`;
|
|
164
174
|
const FixedMenu = /*#__PURE__*/_styled__default["default"]("div", {
|
|
165
175
|
target: "e1meml8k10"
|
|
166
176
|
} )("position:relative;width:", oidc.NAVBAR.widthLeftNavigation, ";", MenuListItem, " ", ItemIconText, "{justify-content:center;display:flex;width:100%;}" + ("" ));
|
|
@@ -308,8 +318,8 @@ const MenuGroup = /*#__PURE__*/react$1.forwardRef((props, ref) => {
|
|
|
308
318
|
return jsxRuntime.jsx(MenuList, {
|
|
309
319
|
ref: ref && props.level === 2 ? ref : null,
|
|
310
320
|
level: props.level,
|
|
311
|
-
id:
|
|
312
|
-
"data-testid":
|
|
321
|
+
id: `group-${props.id}`,
|
|
322
|
+
"data-testid": `group-${props.id}`,
|
|
313
323
|
role: "menu",
|
|
314
324
|
"aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
|
|
315
325
|
onKeyDown: props.handleKeyDown,
|
|
@@ -348,6 +358,7 @@ const MenuItem$1 = props => {
|
|
|
348
358
|
isActive: props.isActive,
|
|
349
359
|
isRouteActive: Boolean(props.isMainMenuRouteActive),
|
|
350
360
|
isCollapsed: !props.isMenuOpen,
|
|
361
|
+
onMouseMove: props.onMouseMove,
|
|
351
362
|
children: jsxRuntime.jsx(ItemContent, {
|
|
352
363
|
children: props.children
|
|
353
364
|
})
|
|
@@ -411,7 +422,7 @@ const restrictedMenuItemDefaultProps = {
|
|
|
411
422
|
permissions: []
|
|
412
423
|
};
|
|
413
424
|
function isLongLivedFlag(flag) {
|
|
414
|
-
return typeof
|
|
425
|
+
return typeof flag?.value === 'boolean';
|
|
415
426
|
}
|
|
416
427
|
const RestrictedMenuItem = props => {
|
|
417
428
|
// NOTE: Custom application are activated/deactivated while their
|
|
@@ -599,7 +610,11 @@ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _
|
|
|
599
610
|
var FetchProjectExtensionsNavbar = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProjectExtensionsNavbar" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "projectExtension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "installedApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "application" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "entryPointUriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "mainMenuLink" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "submenuLinks" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }] } }], loc: { start: 0, end: 537, source: { body: "query FetchProjectExtensionsNavbar {\n projectExtension {\n id\n installedApplications {\n application {\n id\n entryPointUriPath\n icon\n mainMenuLink {\n id\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n submenuLinks {\n id\n uriPath\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
|
|
600
611
|
const getInitialState = isForcedMenuOpen => ({
|
|
601
612
|
isExpanderVisible: true,
|
|
602
|
-
isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen
|
|
613
|
+
isMenuOpen: isNil__default["default"](isForcedMenuOpen) ? false : isForcedMenuOpen,
|
|
614
|
+
mousePosition: {
|
|
615
|
+
clientX: 0,
|
|
616
|
+
clientY: 0
|
|
617
|
+
}
|
|
603
618
|
});
|
|
604
619
|
const isForcedMenuOpenDefaultValue = false;
|
|
605
620
|
const reducer = (state, action) => {
|
|
@@ -625,24 +640,30 @@ const reducer = (state, action) => {
|
|
|
625
640
|
isExpanderVisible: true,
|
|
626
641
|
isMenuOpen: action.payload
|
|
627
642
|
});
|
|
643
|
+
case 'getMousePosition':
|
|
644
|
+
return _objectSpread$1(_objectSpread$1({}, state), {}, {
|
|
645
|
+
mousePosition: action.payload
|
|
646
|
+
});
|
|
628
647
|
case 'reset':
|
|
629
648
|
return {
|
|
630
649
|
isExpanderVisible: false,
|
|
631
|
-
isMenuOpen: false
|
|
650
|
+
isMenuOpen: false,
|
|
651
|
+
mousePosition: {
|
|
652
|
+
clientX: 0,
|
|
653
|
+
clientY: 0
|
|
654
|
+
}
|
|
632
655
|
};
|
|
633
656
|
default:
|
|
634
657
|
return state;
|
|
635
658
|
}
|
|
636
659
|
};
|
|
637
|
-
const isFocusOutEventCalledBySubmenuItem = event =>
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
);
|
|
645
|
-
};
|
|
660
|
+
const isFocusOutEventCalledBySubmenuItem = event =>
|
|
661
|
+
// a case when a submenu item loses focus
|
|
662
|
+
event.type === 'focusout' &&
|
|
663
|
+
// element receiving focus
|
|
664
|
+
event.relatedTarget?.matches('a[data-link-level="text-link"]') &&
|
|
665
|
+
// element losing focus
|
|
666
|
+
event.target?.matches('a[data-link-level="text-link-sublist"]');
|
|
646
667
|
const useNavbarStateManager = props => {
|
|
647
668
|
var _context, _context2, _context4, _context5;
|
|
648
669
|
const navBarNode = react$1.useRef(null);
|
|
@@ -742,8 +763,7 @@ const useNavbarStateManager = props => {
|
|
|
742
763
|
}
|
|
743
764
|
}, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
|
|
744
765
|
const shouldCloseMenuFly = react$1.useCallback(event => {
|
|
745
|
-
|
|
746
|
-
if (!(navBarNode !== null && navBarNode !== void 0 && (_navBarNode$current = navBarNode.current) !== null && _navBarNode$current !== void 0 && _navBarNode$current.contains(event.target)) && !state.isMenuOpen) {
|
|
766
|
+
if (!navBarNode?.current?.contains(event.target) && !state.isMenuOpen) {
|
|
747
767
|
dispatch({
|
|
748
768
|
type: 'unsetActiveItemIndex'
|
|
749
769
|
});
|
|
@@ -782,6 +802,17 @@ const useNavbarStateManager = props => {
|
|
|
782
802
|
payload: nextActiveItemIndex
|
|
783
803
|
});
|
|
784
804
|
}, [state.activeItemIndex]);
|
|
805
|
+
const getMousePosition = react$1.useCallback((e, itemIndex) => {
|
|
806
|
+
if (state.activeItemIndex === itemIndex) {
|
|
807
|
+
dispatch({
|
|
808
|
+
type: 'getMousePosition',
|
|
809
|
+
payload: {
|
|
810
|
+
clientX: e.clientX,
|
|
811
|
+
clientY: e.clientY
|
|
812
|
+
}
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
}, [state.activeItemIndex]);
|
|
785
816
|
const handleToggleMenu = react$1.useCallback(() => {
|
|
786
817
|
if (state.isMenuOpen && state.activeItemIndex) {
|
|
787
818
|
dispatch({
|
|
@@ -797,33 +828,31 @@ const useNavbarStateManager = props => {
|
|
|
797
828
|
const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
|
|
798
829
|
key: navbarMenuGroup.key,
|
|
799
830
|
items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
|
|
800
|
-
} : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA
|
|
831
|
+
} : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA?.key) - Number(navBarMenuGroupB?.key));
|
|
801
832
|
return _objectSpread$1(_objectSpread$1({}, state), {}, {
|
|
802
833
|
navBarNode,
|
|
803
834
|
handleToggleItem,
|
|
804
835
|
handleToggleMenu,
|
|
805
836
|
shouldCloseMenuFly,
|
|
837
|
+
getMousePosition,
|
|
806
838
|
allApplicationsNavbarMenuGroups
|
|
807
839
|
});
|
|
808
840
|
};
|
|
809
841
|
|
|
810
842
|
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
|
|
843
|
+
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
844
|
const getMenuVisibilitiesOfSubmenus = menu => {
|
|
813
845
|
var _context, _context2;
|
|
814
846
|
return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
|
|
815
847
|
};
|
|
816
848
|
const getMenuVisibilityOfMainmenu = menu => menu.menuVisibility ? [menu.menuVisibility] : [];
|
|
817
|
-
const getIsSubmenuRouteActive = (uriPath, props) => {
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
strict: false
|
|
823
|
-
}));
|
|
824
|
-
};
|
|
849
|
+
const getIsSubmenuRouteActive = (uriPath, props) => Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
850
|
+
path: `/${props.projectKey}/${uriPath}`,
|
|
851
|
+
exact: true,
|
|
852
|
+
strict: false
|
|
853
|
+
}));
|
|
825
854
|
const ApplicationMenu = props => {
|
|
826
|
-
var
|
|
855
|
+
var _context3;
|
|
827
856
|
const _useState = react$1.useState(0),
|
|
828
857
|
_useState2 = _slicedToArray(_useState, 2),
|
|
829
858
|
submenuVerticalPosition = _useState2[0],
|
|
@@ -836,15 +865,54 @@ const ApplicationMenu = props => {
|
|
|
836
865
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
837
866
|
isSubmenuFocused = _useState6[0],
|
|
838
867
|
setIsSubmenuFocused = _useState6[1];
|
|
868
|
+
const _useState7 = react$1.useState(0),
|
|
869
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
870
|
+
percentageX = _useState8[0],
|
|
871
|
+
setPercentageX = _useState8[1];
|
|
872
|
+
const _useState9 = react$1.useState(0),
|
|
873
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
874
|
+
percentageY = _useState10[0],
|
|
875
|
+
setPercentageY = _useState10[1];
|
|
839
876
|
const observerRef = react$1.useRef(null);
|
|
840
877
|
const submenuRef = react$1.useRef(null);
|
|
878
|
+
const submenuSafeAreaRef = react$1.useRef(null);
|
|
879
|
+
|
|
880
|
+
/* Getting the width and height of the menu*/
|
|
881
|
+
const subRefBoundingClientRect = submenuRef.current?.getBoundingClientRect();
|
|
882
|
+
const _ref = subRefBoundingClientRect ?? {},
|
|
883
|
+
menuItemWidth = _ref.width,
|
|
884
|
+
menuItemHeight = _ref.height;
|
|
885
|
+
|
|
886
|
+
// /* We want to track the left, top, width, and height of the safe area */
|
|
887
|
+
const submenuSafeAreaRefBoundingClientRect = submenuSafeAreaRef.current?.getBoundingClientRect();
|
|
888
|
+
const safeAreaLeftPos = submenuSafeAreaRefBoundingClientRect?.left || 0;
|
|
889
|
+
const safeAreaTopPos = submenuSafeAreaRefBoundingClientRect?.top || 0;
|
|
890
|
+
const safeAreaWidth = submenuSafeAreaRefBoundingClientRect?.width || 0;
|
|
891
|
+
const safeAreaHeight = submenuSafeAreaRefBoundingClientRect?.height || 0;
|
|
892
|
+
const calculateSafeAreaStartPositon = react$1.useCallback(e => {
|
|
893
|
+
const localX = e.clientX - safeAreaLeftPos;
|
|
894
|
+
const localY = e.clientY - safeAreaTopPos;
|
|
895
|
+
setPercentageX(localX / safeAreaWidth * 100);
|
|
896
|
+
setPercentageY(localY / safeAreaHeight * 100);
|
|
897
|
+
}, [safeAreaHeight, safeAreaLeftPos, safeAreaTopPos, safeAreaWidth]);
|
|
898
|
+
react$1.useEffect(() => {
|
|
899
|
+
calculateSafeAreaStartPositon(e => e);
|
|
900
|
+
window.addEventListener('mousemove', calculateSafeAreaStartPositon);
|
|
901
|
+
return () => {
|
|
902
|
+
window.removeEventListener('mousemove', calculateSafeAreaStartPositon);
|
|
903
|
+
};
|
|
904
|
+
}, [calculateSafeAreaStartPositon, menuItemHeight, menuItemWidth, safeAreaHeight, safeAreaLeftPos, safeAreaTopPos, safeAreaWidth]);
|
|
905
|
+
react$1.useLayoutEffect(() => {
|
|
906
|
+
submenuRef.current?.style.setProperty('--safe-start',
|
|
907
|
+
// Adding the +1 to slightly keep the cursor inside the safe area while moving
|
|
908
|
+
`${percentageX}% ${percentageY + 1}%`);
|
|
909
|
+
}, [calculateSafeAreaStartPositon, percentageX, percentageY]);
|
|
841
910
|
const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
|
|
842
911
|
const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
|
|
843
912
|
const callbackFn = react$1.useCallback(entries => {
|
|
844
|
-
|
|
845
|
-
const
|
|
846
|
-
const
|
|
847
|
-
const menuItemBottom = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.bottom) || 0;
|
|
913
|
+
const menuItemBoundingClientRect = document.querySelector(`[data-menuitem="${menuItemIdentifier}"]`)?.getBoundingClientRect();
|
|
914
|
+
const menuItemTop = menuItemBoundingClientRect?.top || 0;
|
|
915
|
+
const menuItemBottom = menuItemBoundingClientRect?.bottom || 0;
|
|
848
916
|
const _entries = _slicedToArray(entries, 1),
|
|
849
917
|
entry = _entries[0];
|
|
850
918
|
const doesSubmenuFitWithinViewportBelowMenuItem = entry.boundingClientRect.height + (props.isMenuOpen ? menuItemTop : menuItemBottom) > window.innerHeight;
|
|
@@ -862,10 +930,7 @@ const ApplicationMenu = props => {
|
|
|
862
930
|
observerRef.current = new IntersectionObserver(callbackFn, {
|
|
863
931
|
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
932
|
});
|
|
865
|
-
return () =>
|
|
866
|
-
var _observerRef$current;
|
|
867
|
-
return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
|
|
868
|
-
};
|
|
933
|
+
return () => observerRef.current?.disconnect();
|
|
869
934
|
}, [callbackFn, props.isMenuOpen]);
|
|
870
935
|
react$1.useLayoutEffect(() => {
|
|
871
936
|
const currentSubmenuRef = submenuRef.current;
|
|
@@ -875,10 +940,10 @@ const ApplicationMenu = props => {
|
|
|
875
940
|
observer.observe(currentSubmenuRef);
|
|
876
941
|
}
|
|
877
942
|
setIsSubmenuFocused(false);
|
|
878
|
-
return () => observer
|
|
943
|
+
return () => observer?.disconnect();
|
|
879
944
|
}, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
|
|
880
945
|
const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
|
|
881
|
-
path:
|
|
946
|
+
path: `/${props.projectKey}/${props.menu.uriPath}`,
|
|
882
947
|
exact: false,
|
|
883
948
|
strict: false
|
|
884
949
|
}));
|
|
@@ -893,22 +958,20 @@ const ApplicationMenu = props => {
|
|
|
893
958
|
|
|
894
959
|
const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
|
|
895
960
|
const handleKeyDown = e => {
|
|
896
|
-
|
|
897
|
-
const currentlyFocusedItem = (_submenuRef$current = submenuRef.current) === null || _submenuRef$current === void 0 ? void 0 : _submenuRef$current.querySelector(':focus');
|
|
961
|
+
const currentlyFocusedItem = submenuRef.current?.querySelector(':focus');
|
|
898
962
|
if (e.key === 'Enter') {
|
|
899
963
|
setIsSubmenuFocused(true);
|
|
900
964
|
if (!currentlyFocusedItem) {
|
|
901
|
-
|
|
902
|
-
(_submenuRef$current2 = submenuRef.current) === null || _submenuRef$current2 === void 0 || (_submenuRef$current2 = _submenuRef$current2.querySelector('a')) === null || _submenuRef$current2 === void 0 || _submenuRef$current2.focus();
|
|
965
|
+
submenuRef.current?.querySelector('a')?.focus();
|
|
903
966
|
}
|
|
904
967
|
}
|
|
905
968
|
};
|
|
906
969
|
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
907
970
|
keyOfMenuItem: props.menu.key,
|
|
908
|
-
featureToggle:
|
|
971
|
+
featureToggle: props.menu.featureToggle ?? undefined,
|
|
909
972
|
permissions: props.menu.permissions,
|
|
910
|
-
actionRights:
|
|
911
|
-
dataFences:
|
|
973
|
+
actionRights: props.menu.actionRights ?? undefined,
|
|
974
|
+
dataFences: props.menu.dataFences ?? undefined,
|
|
912
975
|
projectPermissions: props.projectPermissions,
|
|
913
976
|
menuVisibilities: props.menuVisibilities,
|
|
914
977
|
namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
|
|
@@ -921,9 +984,10 @@ const ApplicationMenu = props => {
|
|
|
921
984
|
onKeyDown: handleKeyDown,
|
|
922
985
|
onMouseEnter: props.handleToggleItem,
|
|
923
986
|
onMouseLeave: props.shouldCloseMenuFly,
|
|
987
|
+
onMouseMove: props.onMouseMove,
|
|
924
988
|
identifier: menuItemIdentifier,
|
|
925
989
|
children: [jsxRuntime.jsx(MenuItemLink, {
|
|
926
|
-
linkTo:
|
|
990
|
+
linkTo: `/${props.projectKey}/${props.menu.uriPath}`,
|
|
927
991
|
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
928
992
|
onClick: props.onMenuItemClick,
|
|
929
993
|
children: jsxRuntime.jsx(ItemContainer, {
|
|
@@ -934,7 +998,7 @@ const ApplicationMenu = props => {
|
|
|
934
998
|
isMenuOpen: props.isMenuOpen
|
|
935
999
|
})
|
|
936
1000
|
}), jsxRuntime.jsxs(MenuGroup, {
|
|
937
|
-
id:
|
|
1001
|
+
id: `group-${props.menu.key}`,
|
|
938
1002
|
level: 2,
|
|
939
1003
|
isActive: props.isActive,
|
|
940
1004
|
isExpanded: props.isMenuOpen,
|
|
@@ -945,7 +1009,7 @@ const ApplicationMenu = props => {
|
|
|
945
1009
|
children: [!props.isMenuOpen && jsxRuntime.jsx(TooltipContainer, {
|
|
946
1010
|
alignsAgainstBottom: isSubmenuAboveMenuItem,
|
|
947
1011
|
children: jsxRuntime.jsx(Tooltip, {
|
|
948
|
-
"aria-owns":
|
|
1012
|
+
"aria-owns": `group-${props.menu.key}`,
|
|
949
1013
|
role: "tooltip",
|
|
950
1014
|
children: jsxRuntime.jsx(MenuLabel, {
|
|
951
1015
|
labelAllLocales: props.menu.labelAllLocales,
|
|
@@ -953,40 +1017,39 @@ const ApplicationMenu = props => {
|
|
|
953
1017
|
applicationLocale: props.applicationLocale
|
|
954
1018
|
})
|
|
955
1019
|
})
|
|
956
|
-
}), hasSubmenu ? _mapInstanceProperty__default["default"](
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
children: jsxRuntime.jsx(
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
defaultLabel: submenu.defaultLabel,
|
|
983
|
-
applicationLocale: props.applicationLocale
|
|
984
|
-
})
|
|
1020
|
+
}), hasSubmenu ? _mapInstanceProperty__default["default"](_context3 = props.menu.submenu).call(_context3, submenu => jsxRuntime.jsx(RestrictedMenuItem, {
|
|
1021
|
+
keyOfMenuItem: submenu.key,
|
|
1022
|
+
featureToggle: submenu.featureToggle ?? undefined,
|
|
1023
|
+
permissions: submenu.permissions,
|
|
1024
|
+
actionRights: submenu.actionRights ?? undefined,
|
|
1025
|
+
dataFences: submenu.dataFences ?? undefined,
|
|
1026
|
+
projectPermissions: props.projectPermissions,
|
|
1027
|
+
menuVisibilities: props.menuVisibilities,
|
|
1028
|
+
namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
|
|
1029
|
+
children: jsxRuntime.jsx(SublistItem, {
|
|
1030
|
+
isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
|
|
1031
|
+
children: jsxRuntime.jsx(Text, {
|
|
1032
|
+
children: jsxRuntime.jsx(MenuItemLink, {
|
|
1033
|
+
linkTo: `/${props.projectKey}/${submenu.uriPath}`
|
|
1034
|
+
// We want to use an exact matching strategy to avoid multiple
|
|
1035
|
+
// links matching sub-routes.
|
|
1036
|
+
,
|
|
1037
|
+
exactMatch: true,
|
|
1038
|
+
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
1039
|
+
onClick: props.onMenuItemClick,
|
|
1040
|
+
isSubmenuLink: true,
|
|
1041
|
+
isSubmenuFocused: isSubmenuFocused,
|
|
1042
|
+
children: jsxRuntime.jsx(MenuLabel, {
|
|
1043
|
+
labelAllLocales: submenu.labelAllLocales,
|
|
1044
|
+
defaultLabel: submenu.defaultLabel,
|
|
1045
|
+
applicationLocale: props.applicationLocale
|
|
985
1046
|
})
|
|
986
1047
|
})
|
|
987
1048
|
})
|
|
988
|
-
}
|
|
989
|
-
}) : null
|
|
1049
|
+
})
|
|
1050
|
+
}, `${props.menu.key}-submenu-${submenu.key}`)) : null, jsxRuntime.jsx(SafeArea, {
|
|
1051
|
+
ref: submenuSafeAreaRef
|
|
1052
|
+
})]
|
|
990
1053
|
})]
|
|
991
1054
|
})
|
|
992
1055
|
}, props.menu.key);
|
|
@@ -1002,24 +1065,20 @@ const NavBar = props => {
|
|
|
1002
1065
|
isMenuOpen = _useNavbarStateManage.isMenuOpen,
|
|
1003
1066
|
isExpanderVisible = _useNavbarStateManage.isExpanderVisible,
|
|
1004
1067
|
activeItemIndex = _useNavbarStateManage.activeItemIndex,
|
|
1068
|
+
mousePosition = _useNavbarStateManage.mousePosition,
|
|
1005
1069
|
handleToggleItem = _useNavbarStateManage.handleToggleItem,
|
|
1006
1070
|
handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
|
|
1007
1071
|
shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
|
|
1008
|
-
allApplicationsNavbarMenuGroups = _useNavbarStateManage.allApplicationsNavbarMenuGroups
|
|
1072
|
+
allApplicationsNavbarMenuGroups = _useNavbarStateManage.allApplicationsNavbarMenuGroups,
|
|
1073
|
+
getMousePosition = _useNavbarStateManage.getMousePosition;
|
|
1009
1074
|
const useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
|
|
1010
1075
|
const location = reactRouterDom.useLocation();
|
|
1011
|
-
const projectPermissions = react$1.useMemo(() => {
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
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]);
|
|
1076
|
+
const projectPermissions = react$1.useMemo(() => ({
|
|
1077
|
+
permissions: applicationShellConnectors.normalizeAllAppliedPermissions(props.project?.allPermissionsForAllApplications.allAppliedPermissions),
|
|
1078
|
+
actionRights: applicationShellConnectors.normalizeAllAppliedActionRights(props.project?.allPermissionsForAllApplications.allAppliedActionRights),
|
|
1079
|
+
dataFences: applicationShellConnectors.normalizeAllAppliedDataFences(props.project?.allPermissionsForAllApplications.allAppliedDataFences)
|
|
1080
|
+
}), [props.project]);
|
|
1081
|
+
const menuVisibilities = react$1.useMemo(() => applicationShellConnectors.normalizeAllAppliedMenuVisibilities(props.project?.allPermissionsForAllApplications.allAppliedMenuVisibilities), [props.project]);
|
|
1023
1082
|
const applicationLocale = props.applicationLocale;
|
|
1024
1083
|
|
|
1025
1084
|
// Render the loading navbar as long as all the data
|
|
@@ -1050,11 +1109,11 @@ const NavBar = props => {
|
|
|
1050
1109
|
children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
|
|
1051
1110
|
scale: "l",
|
|
1052
1111
|
children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
|
|
1053
|
-
var
|
|
1112
|
+
var _context4;
|
|
1054
1113
|
return jsxRuntime.jsx("div", {
|
|
1055
|
-
children: _mapInstanceProperty__default["default"](
|
|
1114
|
+
children: _mapInstanceProperty__default["default"](_context4 = navbarMenuGroup.items).call(_context4, menu => {
|
|
1056
1115
|
const menuType = 'scrollable';
|
|
1057
|
-
const itemIndex =
|
|
1116
|
+
const itemIndex = `${menuType}-${menu.key}`;
|
|
1058
1117
|
return jsxRuntime.jsx(ApplicationMenu, {
|
|
1059
1118
|
location: location,
|
|
1060
1119
|
menu: menu,
|
|
@@ -1067,7 +1126,9 @@ const NavBar = props => {
|
|
|
1067
1126
|
applicationLocale: applicationLocale,
|
|
1068
1127
|
projectKey: props.projectKey,
|
|
1069
1128
|
useFullRedirectsForLinks: useFullRedirectsForLinks,
|
|
1070
|
-
onMenuItemClick: props.onMenuItemClick
|
|
1129
|
+
onMenuItemClick: props.onMenuItemClick,
|
|
1130
|
+
onMouseMove: e => getMousePosition(e, itemIndex),
|
|
1131
|
+
mousePosition: mousePosition
|
|
1071
1132
|
}, menu.key);
|
|
1072
1133
|
})
|
|
1073
1134
|
}, navbarMenuGroup.key);
|