@commercetools-frontend/application-shell 24.11.0 → 24.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/{application-entry-point-c87294b0.cjs.dev.js → application-entry-point-18d8fba0.cjs.dev.js} +7 -4
  2. package/dist/{application-entry-point-10a5e1a5.esm.js → application-entry-point-1b23fb6b.esm.js} +6 -4
  3. package/dist/{application-entry-point-8c4b8e53.cjs.prod.js → application-entry-point-74a06151.cjs.prod.js} +4 -3
  4. package/dist/commercetools-frontend-application-shell.cjs.dev.js +12 -11
  5. package/dist/commercetools-frontend-application-shell.cjs.prod.js +12 -11
  6. package/dist/commercetools-frontend-application-shell.esm.js +12 -11
  7. package/dist/{custom-view-dev-host-6091b78a.esm.js → custom-view-dev-host-091163ea.esm.js} +20 -16
  8. package/dist/{custom-view-dev-host-40b33836.cjs.dev.js → custom-view-dev-host-17daf42a.cjs.dev.js} +21 -16
  9. package/dist/{custom-view-dev-host-3a171a01.cjs.prod.js → custom-view-dev-host-a682a499.cjs.prod.js} +21 -16
  10. package/dist/{index-a57c8458.cjs.dev.js → index-1d1cc31f.cjs.dev.js} +212 -363
  11. package/dist/{index-67a5d8e8.esm.js → index-1dadca21.esm.js} +213 -362
  12. package/dist/{index-614accc4.cjs.dev.js → index-25183095.cjs.dev.js} +2 -2
  13. package/dist/{index-7bdde97c.cjs.prod.js → index-3cfc1f1e.cjs.prod.js} +200 -343
  14. package/dist/{index-245e2980.cjs.prod.js → index-52c724ed.cjs.prod.js} +2 -2
  15. package/dist/{index-86039df7.esm.js → index-5aaa33bb.esm.js} +2 -2
  16. package/dist/{navbar-022383bd.cjs.dev.js → navbar-586f7774.cjs.dev.js} +111 -92
  17. package/dist/{navbar-844d350d.esm.js → navbar-88e0fd1f.esm.js} +110 -92
  18. package/dist/{navbar-acc2cd1b.cjs.prod.js → navbar-93183a2d.cjs.prod.js} +111 -92
  19. package/dist/oidc-258fc018.cjs.prod.js +115 -0
  20. package/dist/oidc-35e8e62a.esm.js +100 -0
  21. package/dist/oidc-87d116c1.cjs.dev.js +115 -0
  22. package/dist/{oidc-callback-5f3d5280.esm.js → oidc-callback-019d623d.esm.js} +16 -14
  23. package/dist/{oidc-callback-e07f0c20.cjs.dev.js → oidc-callback-47743232.cjs.dev.js} +16 -14
  24. package/dist/{oidc-callback-ce8cbdfe.cjs.prod.js → oidc-callback-6bdb3c6f.cjs.prod.js} +16 -14
  25. package/dist/{project-container-a11a31ca.cjs.dev.js → project-container-2245f020.cjs.dev.js} +53 -19
  26. package/dist/{project-container-fba09841.esm.js → project-container-7fce9e66.esm.js} +52 -19
  27. package/dist/{project-container-2d3d027a.cjs.prod.js → project-container-954dbf0f.cjs.prod.js} +53 -19
  28. package/dist/{project-expired-ede4d485.esm.js → project-expired-1b0845c5.esm.js} +12 -11
  29. package/dist/{project-expired-9620dee4.cjs.dev.js → project-expired-c941b592.cjs.dev.js} +12 -11
  30. package/dist/{project-expired-f38a712a.cjs.prod.js → project-expired-ee8b232c.cjs.prod.js} +12 -11
  31. package/dist/{project-not-found-093ab795.esm.js → project-not-found-340217f6.esm.js} +11 -10
  32. package/dist/{project-not-found-05683f8e.cjs.dev.js → project-not-found-9b7cfe88.cjs.dev.js} +11 -10
  33. package/dist/{project-not-found-cfa934da.cjs.prod.js → project-not-found-9cee9625.cjs.prod.js} +11 -10
  34. package/dist/{project-not-initialized-1d934ae7.esm.js → project-not-initialized-55fd8df4.esm.js} +12 -11
  35. package/dist/{project-not-initialized-b5a1400f.cjs.prod.js → project-not-initialized-7a058b68.cjs.prod.js} +12 -11
  36. package/dist/{project-not-initialized-1ed56a00.cjs.dev.js → project-not-initialized-7b3843a3.cjs.dev.js} +12 -11
  37. package/dist/{project-suspended-8e15a452.cjs.prod.js → project-suspended-12618898.cjs.prod.js} +11 -10
  38. package/dist/{project-suspended-e0722654.esm.js → project-suspended-529b09d6.esm.js} +11 -10
  39. package/dist/{project-suspended-68e80299.cjs.dev.js → project-suspended-78e94b85.cjs.dev.js} +11 -10
  40. package/dist/{redirect-to-login-12f467b8.cjs.prod.js → redirect-to-login-3e4a6434.cjs.prod.js} +13 -10
  41. package/dist/{redirect-to-login-3bee13ba.cjs.dev.js → redirect-to-login-66ea895a.cjs.dev.js} +13 -10
  42. package/dist/{redirect-to-login-2944c890.esm.js → redirect-to-login-edbfacbc.esm.js} +13 -10
  43. package/dist/{redirect-to-logout-2802852c.cjs.prod.js → redirect-to-logout-52a7810f.cjs.prod.js} +14 -12
  44. package/dist/{redirect-to-logout-5db48f16.esm.js → redirect-to-logout-5d5fc361.esm.js} +14 -12
  45. package/dist/{redirect-to-logout-74b72fe8.cjs.dev.js → redirect-to-logout-b331b037.cjs.dev.js} +14 -12
  46. package/dist/{redirector-72ccfbc2.cjs.dev.js → redirector-0efdd994.cjs.dev.js} +4 -3
  47. package/dist/{redirector-d856975f.esm.js → redirector-656c6ee7.esm.js} +4 -3
  48. package/dist/{redirector-0c72d0a4.cjs.prod.js → redirector-c858d578.cjs.prod.js} +4 -3
  49. package/dist/{requests-in-flight-loader-e25f4c31.esm.js → requests-in-flight-loader-20021ccc.esm.js} +11 -10
  50. package/dist/{requests-in-flight-loader-877c1541.cjs.prod.js → requests-in-flight-loader-64d2e12d.cjs.prod.js} +11 -10
  51. package/dist/{requests-in-flight-loader-bc904171.cjs.dev.js → requests-in-flight-loader-83cab813.cjs.dev.js} +11 -10
  52. package/dist/{service-page-project-switcher-af044ac6.cjs.dev.js → service-page-project-switcher-49dabe13.cjs.dev.js} +1 -1
  53. package/dist/{service-page-project-switcher-f3eac18a.esm.js → service-page-project-switcher-6cdd506b.esm.js} +1 -1
  54. package/dist/{service-page-project-switcher-1dad9871.cjs.prod.js → service-page-project-switcher-f1b43eb7.cjs.prod.js} +1 -1
  55. package/dist/{use-applications-menu-14a5a1f4.cjs.prod.js → use-applications-menu-48d924bd.cjs.prod.js} +47 -39
  56. package/dist/{use-applications-menu-823a2492.cjs.dev.js → use-applications-menu-7f548a7a.cjs.dev.js} +47 -39
  57. package/dist/{use-applications-menu-1514af11.esm.js → use-applications-menu-b871849c.esm.js} +44 -37
  58. package/dist/{user-settings-menu-d75f4958.cjs.prod.js → user-settings-menu-6660f508.cjs.prod.js} +29 -22
  59. package/dist/{user-settings-menu-f98bea89.esm.js → user-settings-menu-afa82f2a.esm.js} +29 -22
  60. package/dist/{user-settings-menu-6113cdd3.cjs.dev.js → user-settings-menu-f5c74042.cjs.dev.js} +29 -22
  61. package/package.json +16 -16
  62. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -1
  63. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -1
  64. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -1
  65. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +26 -22
  66. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +26 -22
  67. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +20 -17
  68. package/dist/oidc-8827f9fe.cjs.dev.js +0 -98
  69. package/dist/oidc-b2520905.esm.js +0 -84
  70. package/dist/oidc-d74e6aa2.cjs.prod.js +0 -98
  71. package/dist/quick-access-9dd197bb.cjs.prod.js +0 -1875
  72. package/dist/quick-access-a665bbb7.cjs.dev.js +0 -1893
  73. package/dist/quick-access-dfc1f8a9.esm.js +0 -1865
@@ -6,6 +6,7 @@ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/insta
6
6
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
7
7
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
8
8
  var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
9
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
9
10
  var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
10
11
  var _Number$isFinite = require('@babel/runtime-corejs3/core-js-stable/number/is-finite');
11
12
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
@@ -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-d74e6aa2.cjs.prod.js');
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
36
  var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
@@ -43,7 +45,7 @@ var _keysInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/insta
43
45
  var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
44
46
  var isNil = require('lodash/isNil');
45
47
  var throttle = require('lodash/throttle');
46
- var useApplicationsMenu = require('./use-applications-menu-14a5a1f4.cjs.prod.js');
48
+ var useApplicationsMenu = require('./use-applications-menu-48d924bd.cjs.prod.js');
47
49
  require('@apollo/client');
48
50
  require('@commercetools-frontend/l10n');
49
51
 
@@ -53,6 +55,7 @@ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceP
53
55
  var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
54
56
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
55
57
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
58
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
56
59
  var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
57
60
  var _Number$isFinite__default = /*#__PURE__*/_interopDefault(_Number$isFinite);
58
61
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
@@ -95,6 +98,7 @@ const Title = /*#__PURE__*/_styled__default["default"]("div", {
95
98
  target: "e1wv1pdj0"
96
99
  } )("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
100
 
101
+ var _templateObject$1;
98
102
  const getSubmenuPositionBasedOnMenuItemPosition = (isSubmenuAboveMenuItem, submenuVerticalPosition) => /*#__PURE__*/react.css(isSubmenuAboveMenuItem ? 'bottom' : 'top', ":", submenuVerticalPosition, "px;" + ("" ), "" );
99
103
  var _ref4 = {
100
104
  name: "abcix4",
@@ -105,10 +109,7 @@ var _ref5 = {
105
109
  styles: "bottom:0"
106
110
  } ;
107
111
  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
- `;
112
+ const fadeIn = react.keyframes(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\nfrom {opacity: 0;}\n to { opacity: 1;}\n"])));
112
113
  var _ref3 = {
113
114
  name: "eivff4",
114
115
  styles: "display:none"
@@ -159,14 +160,8 @@ const SafeArea = /*#__PURE__*/_styled__default["default"]("span", {
159
160
  target: "e1i568cv0"
160
161
  } )("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
162
 
162
- const visible = react.keyframes`
163
- from {
164
- opacity: 0;
165
- }
166
- to {
167
- opacity: 1;
168
- }
169
- `;
163
+ var _templateObject;
164
+ const visible = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"])));
170
165
  const FixedMenu = /*#__PURE__*/_styled__default["default"]("div", {
171
166
  target: "e1meml8k10"
172
167
  } )("position:relative;width:", oidc.NAVBAR.widthLeftNavigation, ";", MenuListItem, " ", ItemIconText, "{justify-content:center;display:flex;width:100%;}" + ("" ));
@@ -333,8 +328,8 @@ const MenuGroup = /*#__PURE__*/react$1.forwardRef((props, ref) => {
333
328
  return jsxRuntime.jsx(MenuList, {
334
329
  ref: ref && props.level === 2 ? ref : null,
335
330
  level: props.level,
336
- id: `group-${props.id}`,
337
- "data-testid": `group-${props.id}`,
331
+ id: "group-".concat(props.id),
332
+ "data-testid": "group-".concat(props.id),
338
333
  role: "menu",
339
334
  onKeyDown: props.handleKeyDown,
340
335
  className: classnames__default["default"]({
@@ -434,7 +429,7 @@ const MenuItemLink = _ref3 => {
434
429
  MenuItemLink.displayName = 'MenuItemLink';
435
430
  const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
436
431
  function isLongLivedFlag(flag) {
437
- return typeof flag?.value === 'boolean';
432
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
438
433
  }
439
434
  const RestrictedMenuItem = _ref4 => {
440
435
  let _ref4$permissions = _ref4.permissions,
@@ -656,13 +651,15 @@ const reducer = (state, action) => {
656
651
  return state;
657
652
  }
658
653
  };
659
- const isFocusOutEventCalledBySubmenuItem = event =>
660
- // a case when a submenu item loses focus
661
- event.type === 'focusout' &&
662
- // element receiving focus
663
- event.relatedTarget?.matches('a[data-link-level="text-link"]') &&
664
- // element losing focus
665
- event.target?.matches('a[data-link-level="text-link-sublist"]');
654
+ const isFocusOutEventCalledBySubmenuItem = event => {
655
+ var _event$relatedTarget, _event$target;
656
+ return (
657
+ // a case when a submenu item loses focus
658
+ event.type === 'focusout' && (// element receiving focus
659
+ (_event$relatedTarget = event.relatedTarget) === null || _event$relatedTarget === void 0 ? void 0 : _event$relatedTarget.matches('a[data-link-level="text-link"]')) && (// element losing focus
660
+ (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.matches('a[data-link-level="text-link-sublist"]'))
661
+ );
662
+ };
666
663
  const useNavbarStateManager = props => {
667
664
  var _context, _context2, _context4, _context5;
668
665
  const navBarNode = react$1.useRef(null);
@@ -758,7 +755,8 @@ const useNavbarStateManager = props => {
758
755
  }
759
756
  }, 100), [isForcedMenuOpen, state.isExpanderVisible, state.isMenuOpen]);
760
757
  const shouldCloseMenuFly = react$1.useCallback(event => {
761
- if (!navBarNode?.current?.contains(event.target) && !state.isMenuOpen) {
758
+ var _navBarNode$current;
759
+ if (!(navBarNode !== null && navBarNode !== void 0 && (_navBarNode$current = navBarNode.current) !== null && _navBarNode$current !== void 0 && _navBarNode$current.contains(event.target)) && !state.isMenuOpen) {
762
760
  dispatch({
763
761
  type: 'unsetActiveItemIndex'
764
762
  });
@@ -823,7 +821,7 @@ const useNavbarStateManager = props => {
823
821
  const allApplicationsNavbarMenuGroups = _sortInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = applicationsNavBarMenuGroups || []).call(_context5, navbarMenuGroup => navbarMenuGroup.key === '2' && allCustomApplicationsNavbarMenu.length > 0 ? {
824
822
  key: navbarMenuGroup.key,
825
823
  items: [...navbarMenuGroup.items, ...allCustomApplicationsNavbarMenu]
826
- } : navbarMenuGroup)).call(_context4, (navBarMenuGroupA, navBarMenuGroupB) => Number(navBarMenuGroupA?.key) - Number(navBarMenuGroupB?.key));
824
+ } : 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
825
  return _objectSpread$1(_objectSpread$1({}, state), {}, {
828
826
  navBarNode,
829
827
  handleToggleItem,
@@ -835,7 +833,7 @@ const useNavbarStateManager = props => {
835
833
  };
836
834
 
837
835
  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 _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; }
836
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context10, _context11; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context10 = ownKeys(Object(t), !0)).call(_context10, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context11 = ownKeys(Object(t))).call(_context11, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
839
837
  // Helper function to extract accessible label from menu objects
840
838
  const getMenuAccessibleLabel = (labelAllLocales, defaultLabel, applicationLocale) => {
841
839
  const localizedLabel = _findInstanceProperty__default["default"](labelAllLocales).call(labelAllLocales, loc => _startsWithInstanceProperty__default["default"](applicationLocale).call(applicationLocale, loc.locale));
@@ -848,13 +846,16 @@ const getMenuVisibilitiesOfSubmenus = menu => {
848
846
  return _filterInstanceProperty__default["default"](_context = _mapInstanceProperty__default["default"](_context2 = menu.submenu).call(_context2, submenu => submenu.menuVisibility)).call(_context, nonNullable);
849
847
  };
850
848
  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
- const ApplicationMenu = props => {
849
+ const getIsSubmenuRouteActive = (uriPath, props) => {
857
850
  var _context3;
851
+ return Boolean(reactRouterDom.matchPath(props.location.pathname, {
852
+ path: _concatInstanceProperty__default["default"](_context3 = "/".concat(props.projectKey, "/")).call(_context3, uriPath),
853
+ exact: true,
854
+ strict: false
855
+ }));
856
+ };
857
+ const ApplicationMenu = props => {
858
+ var _context5, _props$menu$featureTo, _props$menu$actionRig, _props$menu$dataFence, _context6, _context7;
858
859
  const _useState = react$1.useState(0),
859
860
  _useState2 = _slicedToArray(_useState, 2),
860
861
  submenuVerticalPosition = _useState2[0],
@@ -881,12 +882,13 @@ const ApplicationMenu = props => {
881
882
  const hasSubmenu = _Array$isArray__default["default"](props.menu.submenu) && props.menu.submenu.length > 0;
882
883
  const menuItemIdentifier = snakeCase__default["default"](props.menu.key);
883
884
  const calculateSafeAreaStartPositon = react$1.useCallback(e => {
884
- const currentSafeAreaRect = submenuSafeAreaRef.current?.getBoundingClientRect();
885
- const menuItemRect = document.querySelector(`[data-menuitem="${menuItemIdentifier}"]`)?.getBoundingClientRect();
886
- const currentSafeAreaLeft = currentSafeAreaRect?.left || 0;
887
- const currentSafeAreaTop = currentSafeAreaRect?.top || 0;
888
- const currentSafeAreaWidth = currentSafeAreaRect?.width || 0;
889
- const currentSafeAreaHeight = currentSafeAreaRect?.height || 0;
885
+ var _submenuSafeAreaRef$c, _document$querySelect;
886
+ const currentSafeAreaRect = (_submenuSafeAreaRef$c = submenuSafeAreaRef.current) === null || _submenuSafeAreaRef$c === void 0 ? void 0 : _submenuSafeAreaRef$c.getBoundingClientRect();
887
+ const menuItemRect = (_document$querySelect = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getBoundingClientRect();
888
+ const currentSafeAreaLeft = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.left) || 0;
889
+ const currentSafeAreaTop = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.top) || 0;
890
+ const currentSafeAreaWidth = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.width) || 0;
891
+ const currentSafeAreaHeight = (currentSafeAreaRect === null || currentSafeAreaRect === void 0 ? void 0 : currentSafeAreaRect.height) || 0;
890
892
  const localX = e.clientX - currentSafeAreaLeft;
891
893
  const localY = e.clientY - currentSafeAreaTop;
892
894
  let minXPercent = 0;
@@ -932,15 +934,17 @@ const ApplicationMenu = props => {
932
934
  };
933
935
  }, [calculateSafeAreaStartPositon]);
934
936
  react$1.useLayoutEffect(() => {
937
+ var _context4;
935
938
  if (!submenuRef.current) return;
936
939
  const safeX = _Number$isFinite__default["default"](percentageX) ? percentageX : 0;
937
940
  const safeY = _Number$isFinite__default["default"](percentageY) ? percentageY : 100;
938
- submenuRef.current.style.setProperty('--safe-start', `${safeX}% ${safeY}%`);
941
+ submenuRef.current.style.setProperty('--safe-start', _concatInstanceProperty__default["default"](_context4 = "".concat(safeX, "% ")).call(_context4, safeY, "%"));
939
942
  }, [percentageX, percentageY]);
940
943
  const callbackFn = react$1.useCallback(entries => {
941
- const menuItemBoundingClientRect = document.querySelector(`[data-menuitem="${menuItemIdentifier}"]`)?.getBoundingClientRect();
942
- const menuItemTop = menuItemBoundingClientRect?.top || 0;
943
- const menuItemBottom = menuItemBoundingClientRect?.bottom || 0;
944
+ var _document$querySelect2;
945
+ const menuItemBoundingClientRect = (_document$querySelect2 = document.querySelector("[data-menuitem=\"".concat(menuItemIdentifier, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect();
946
+ const menuItemTop = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.top) || 0;
947
+ const menuItemBottom = (menuItemBoundingClientRect === null || menuItemBoundingClientRect === void 0 ? void 0 : menuItemBoundingClientRect.bottom) || 0;
944
948
  const _entries = _slicedToArray(entries, 1),
945
949
  entry = _entries[0];
946
950
 
@@ -966,7 +970,10 @@ const ApplicationMenu = props => {
966
970
  observerRef.current = new IntersectionObserver(callbackFn, {
967
971
  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
972
  });
969
- return () => observerRef.current?.disconnect();
973
+ return () => {
974
+ var _observerRef$current;
975
+ return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
976
+ };
970
977
  }, [callbackFn, props.isMenuOpen]);
971
978
  react$1.useLayoutEffect(() => {
972
979
  const currentSubmenuRef = submenuRef.current;
@@ -976,10 +983,10 @@ const ApplicationMenu = props => {
976
983
  observer.observe(currentSubmenuRef);
977
984
  }
978
985
  setIsSubmenuFocused(false);
979
- return () => observer?.disconnect();
986
+ return () => observer === null || observer === void 0 ? void 0 : observer.disconnect();
980
987
  }, [menuItemIdentifier, props.isMenuOpen, props.handleToggleItem, callbackFn]);
981
988
  const isMainMenuRouteActive = Boolean(reactRouterDom.matchPath(props.location.pathname, {
982
- path: `/${props.projectKey}/${props.menu.uriPath}`,
989
+ path: _concatInstanceProperty__default["default"](_context5 = "/".concat(props.projectKey, "/")).call(_context5, props.menu.uriPath),
983
990
  exact: false,
984
991
  strict: false
985
992
  }));
@@ -994,20 +1001,22 @@ const ApplicationMenu = props => {
994
1001
 
995
1002
  const namesOfMenuVisibilitiesOfAllSubmenus = hasSubmenu ? getMenuVisibilitiesOfSubmenus(props.menu) : getMenuVisibilityOfMainmenu(props.menu);
996
1003
  const handleKeyDown = e => {
997
- const currentlyFocusedItem = submenuRef.current?.querySelector(':focus');
1004
+ var _submenuRef$current;
1005
+ const currentlyFocusedItem = (_submenuRef$current = submenuRef.current) === null || _submenuRef$current === void 0 ? void 0 : _submenuRef$current.querySelector(':focus');
998
1006
  if (e.key === 'Enter') {
999
1007
  setIsSubmenuFocused(true);
1000
1008
  if (!currentlyFocusedItem) {
1001
- submenuRef.current?.querySelector('a')?.focus();
1009
+ var _submenuRef$current2;
1010
+ (_submenuRef$current2 = submenuRef.current) === null || _submenuRef$current2 === void 0 || (_submenuRef$current2 = _submenuRef$current2.querySelector('a')) === null || _submenuRef$current2 === void 0 || _submenuRef$current2.focus();
1002
1011
  }
1003
1012
  }
1004
1013
  };
1005
1014
  return jsxRuntime.jsx(RestrictedMenuItem, {
1006
1015
  keyOfMenuItem: props.menu.key,
1007
- featureToggle: props.menu.featureToggle ?? undefined,
1016
+ featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
1008
1017
  permissions: props.menu.permissions,
1009
- actionRights: props.menu.actionRights ?? undefined,
1010
- dataFences: props.menu.dataFences ?? undefined,
1018
+ actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
1019
+ dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
1011
1020
  projectPermissions: props.projectPermissions,
1012
1021
  menuVisibilities: props.menuVisibilities,
1013
1022
  namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
@@ -1024,7 +1033,7 @@ const ApplicationMenu = props => {
1024
1033
  identifier: menuItemIdentifier,
1025
1034
  ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
1026
1035
  children: [jsxRuntime.jsx(MenuItemLink, {
1027
- linkTo: `/${props.projectKey}/${props.menu.uriPath}`,
1036
+ linkTo: _concatInstanceProperty__default["default"](_context6 = "/".concat(props.projectKey, "/")).call(_context6, props.menu.uriPath),
1028
1037
  useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1029
1038
  onClick: props.onMenuItemClick,
1030
1039
  ariaLabel: getMenuAccessibleLabel(props.menu.labelAllLocales, props.menu.defaultLabel, props.applicationLocale),
@@ -1036,7 +1045,7 @@ const ApplicationMenu = props => {
1036
1045
  isMenuOpen: props.isMenuOpen
1037
1046
  })
1038
1047
  }), jsxRuntime.jsxs(MenuGroup, {
1039
- id: `group-${props.menu.key}`,
1048
+ id: "group-".concat(props.menu.key),
1040
1049
  level: 2,
1041
1050
  isActive: props.isActive,
1042
1051
  isExpanded: props.isMenuOpen,
@@ -1047,7 +1056,7 @@ const ApplicationMenu = props => {
1047
1056
  children: [!props.isMenuOpen && jsxRuntime.jsx(TooltipContainer, {
1048
1057
  alignsAgainstBottom: isSubmenuAboveMenuItem,
1049
1058
  children: jsxRuntime.jsx(Tooltip, {
1050
- "aria-owns": `group-${props.menu.key}`,
1059
+ "aria-owns": "group-".concat(props.menu.key),
1051
1060
  role: "tooltip",
1052
1061
  children: jsxRuntime.jsx(MenuLabel, {
1053
1062
  labelAllLocales: props.menu.labelAllLocales,
@@ -1055,38 +1064,41 @@ const ApplicationMenu = props => {
1055
1064
  applicationLocale: props.applicationLocale
1056
1065
  })
1057
1066
  })
1058
- }), hasSubmenu ? _mapInstanceProperty__default["default"](_context3 = props.menu.submenu).call(_context3, submenu => jsxRuntime.jsx(RestrictedMenuItem, {
1059
- keyOfMenuItem: submenu.key,
1060
- featureToggle: submenu.featureToggle ?? undefined,
1061
- permissions: submenu.permissions,
1062
- actionRights: submenu.actionRights ?? undefined,
1063
- dataFences: submenu.dataFences ?? undefined,
1064
- projectPermissions: props.projectPermissions,
1065
- menuVisibilities: props.menuVisibilities,
1066
- namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
1067
- children: jsxRuntime.jsx(SublistItem, {
1068
- isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
1069
- children: jsxRuntime.jsx(Text, {
1070
- children: jsxRuntime.jsx(MenuItemLink, {
1071
- linkTo: `/${props.projectKey}/${submenu.uriPath}`
1072
- // We want to use an exact matching strategy to avoid multiple
1073
- // links matching sub-routes.
1074
- ,
1075
- exactMatch: true,
1076
- useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1077
- onClick: props.onMenuItemClick,
1078
- isSubmenuLink: true,
1079
- isSubmenuFocused: isSubmenuFocused,
1080
- ariaLabel: getMenuAccessibleLabel(submenu.labelAllLocales, submenu.defaultLabel, props.applicationLocale),
1081
- children: jsxRuntime.jsx(MenuLabel, {
1082
- labelAllLocales: submenu.labelAllLocales,
1083
- defaultLabel: submenu.defaultLabel,
1084
- applicationLocale: props.applicationLocale
1067
+ }), hasSubmenu ? _mapInstanceProperty__default["default"](_context7 = props.menu.submenu).call(_context7, submenu => {
1068
+ var _context8, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context9;
1069
+ return jsxRuntime.jsx(RestrictedMenuItem, {
1070
+ keyOfMenuItem: submenu.key,
1071
+ featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
1072
+ permissions: submenu.permissions,
1073
+ actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
1074
+ dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
1075
+ projectPermissions: props.projectPermissions,
1076
+ menuVisibilities: props.menuVisibilities,
1077
+ namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
1078
+ children: jsxRuntime.jsx(SublistItem, {
1079
+ isActive: getIsSubmenuRouteActive(submenu.uriPath, props),
1080
+ children: jsxRuntime.jsx(Text, {
1081
+ children: jsxRuntime.jsx(MenuItemLink, {
1082
+ linkTo: _concatInstanceProperty__default["default"](_context9 = "/".concat(props.projectKey, "/")).call(_context9, submenu.uriPath)
1083
+ // We want to use an exact matching strategy to avoid multiple
1084
+ // links matching sub-routes.
1085
+ ,
1086
+ exactMatch: true,
1087
+ useFullRedirectsForLinks: props.useFullRedirectsForLinks,
1088
+ onClick: props.onMenuItemClick,
1089
+ isSubmenuLink: true,
1090
+ isSubmenuFocused: isSubmenuFocused,
1091
+ ariaLabel: getMenuAccessibleLabel(submenu.labelAllLocales, submenu.defaultLabel, props.applicationLocale),
1092
+ children: jsxRuntime.jsx(MenuLabel, {
1093
+ labelAllLocales: submenu.labelAllLocales,
1094
+ defaultLabel: submenu.defaultLabel,
1095
+ applicationLocale: props.applicationLocale
1096
+ })
1085
1097
  })
1086
1098
  })
1087
1099
  })
1088
- })
1089
- }, `${props.menu.key}-submenu-${submenu.key}`)) : null, jsxRuntime.jsx(SafeArea, {
1100
+ }, _concatInstanceProperty__default["default"](_context8 = "".concat(props.menu.key, "-submenu-")).call(_context8, submenu.key));
1101
+ }) : null, jsxRuntime.jsx(SafeArea, {
1090
1102
  ref: submenuSafeAreaRef
1091
1103
  })]
1092
1104
  })]
@@ -1113,12 +1125,18 @@ const NavBar = props => {
1113
1125
  const location = reactRouterDom.useLocation();
1114
1126
  const _useIntl = reactIntl.useIntl(),
1115
1127
  formatMessage = _useIntl.formatMessage;
1116
- const projectPermissions = react$1.useMemo(() => ({
1117
- permissions: applicationShellConnectors.normalizeAllAppliedPermissions(props.project?.allPermissionsForAllApplications.allAppliedPermissions),
1118
- actionRights: applicationShellConnectors.normalizeAllAppliedActionRights(props.project?.allPermissionsForAllApplications.allAppliedActionRights),
1119
- dataFences: applicationShellConnectors.normalizeAllAppliedDataFences(props.project?.allPermissionsForAllApplications.allAppliedDataFences)
1120
- }), [props.project]);
1121
- const menuVisibilities = react$1.useMemo(() => applicationShellConnectors.normalizeAllAppliedMenuVisibilities(props.project?.allPermissionsForAllApplications.allAppliedMenuVisibilities), [props.project]);
1128
+ const projectPermissions = react$1.useMemo(() => {
1129
+ var _props$project, _props$project2, _props$project3;
1130
+ return {
1131
+ permissions: applicationShellConnectors.normalizeAllAppliedPermissions((_props$project = props.project) === null || _props$project === void 0 ? void 0 : _props$project.allPermissionsForAllApplications.allAppliedPermissions),
1132
+ actionRights: applicationShellConnectors.normalizeAllAppliedActionRights((_props$project2 = props.project) === null || _props$project2 === void 0 ? void 0 : _props$project2.allPermissionsForAllApplications.allAppliedActionRights),
1133
+ dataFences: applicationShellConnectors.normalizeAllAppliedDataFences((_props$project3 = props.project) === null || _props$project3 === void 0 ? void 0 : _props$project3.allPermissionsForAllApplications.allAppliedDataFences)
1134
+ };
1135
+ }, [props.project]);
1136
+ const menuVisibilities = react$1.useMemo(() => {
1137
+ var _props$project4;
1138
+ return applicationShellConnectors.normalizeAllAppliedMenuVisibilities((_props$project4 = props.project) === null || _props$project4 === void 0 ? void 0 : _props$project4.allPermissionsForAllApplications.allAppliedMenuVisibilities);
1139
+ }, [props.project]);
1122
1140
  const applicationLocale = props.applicationLocale;
1123
1141
 
1124
1142
  // Render the loading navbar as long as all the data
@@ -1149,11 +1167,12 @@ const NavBar = props => {
1149
1167
  children: jsxRuntime.jsx(Spacings__default["default"].Stack, {
1150
1168
  scale: "l",
1151
1169
  children: _mapInstanceProperty__default["default"](allApplicationsNavbarMenuGroups).call(allApplicationsNavbarMenuGroups, navbarMenuGroup => {
1152
- var _context4;
1170
+ var _context0;
1153
1171
  return jsxRuntime.jsx("div", {
1154
- children: _mapInstanceProperty__default["default"](_context4 = navbarMenuGroup.items).call(_context4, menu => {
1172
+ children: _mapInstanceProperty__default["default"](_context0 = navbarMenuGroup.items).call(_context0, menu => {
1173
+ var _context1;
1155
1174
  const menuType = 'scrollable';
1156
- const itemIndex = `${menuType}-${menu.key}`;
1175
+ const itemIndex = _concatInstanceProperty__default["default"](_context1 = "".concat(menuType, "-")).call(_context1, menu.key);
1157
1176
  return jsxRuntime.jsx(ApplicationMenu, {
1158
1177
  location: location,
1159
1178
  menu: menu,
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
4
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
5
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
8
+
9
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
10
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
11
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
12
+
13
+ const DIMENSIONS = {
14
+ header: '56px'
15
+ };
16
+ const NAVBAR = {
17
+ expanderHeight: '50px',
18
+ expanderSize: '40px',
19
+ iconSize: '24px',
20
+ iconSizeHover: '28px',
21
+ itemSize: '48px',
22
+ itemHeight: '56px',
23
+ sublistIndentationWhenCollapsed: '72px',
24
+ sublistIndentationWhenExpanded: '248px',
25
+ sublistItemMinHeight: '50px',
26
+ sublistWidth: '272px',
27
+ leftNavigationTransition: 'all 150ms cubic-bezier(1, 0, 0.58, 1)',
28
+ widthLeftNavigation: '80px',
29
+ widthLeftNavigationWhenExpanded: '256px'
30
+ };
31
+ const WINDOW_SIZES = {
32
+ STANDARD: 1024,
33
+ WIDE: 1200
34
+ };
35
+ const CONTAINERS = {
36
+ LOCALE_SWITCHER: 'locale-switcher-container',
37
+ LEFT_OF_PROFILE: 'left-of-profile'
38
+ };
39
+ const SUSPENSION_REASONS = {
40
+ TEMPORARY_MAINTENANCE: 'TemporaryMaintenance',
41
+ PAYMENT: 'Payment',
42
+ OTHER: 'Other'
43
+ };
44
+
45
+ // OIDC params
46
+ const OIDC_RESPONSE_TYPES = {
47
+ ID_TOKEN: 'id_token'
48
+ };
49
+ const OIDC_CLAIMS = {
50
+ OPEN_ID: 'openid',
51
+ PROJECT_KEY: 'project_key',
52
+ TEAM_ID: 'team_id',
53
+ APPLICATION_ID: 'application_id',
54
+ VIEW: 'view',
55
+ MANAGE: 'manage'
56
+ };
57
+
58
+ const buildOidcScope = options => {
59
+ var _context2, _options$oAuthScopes$, _options$oAuthScopes, _context4, _options$oAuthScopes$2, _options$oAuthScopes2;
60
+ const claims = [];
61
+
62
+ // Set the projectKey
63
+ if (options.projectKey) {
64
+ var _context;
65
+ claims.push(_concatInstanceProperty__default["default"](_context = "".concat(OIDC_CLAIMS.PROJECT_KEY, ":")).call(_context, options.projectKey));
66
+ }
67
+
68
+ // Set the OAuth Scopes
69
+ claims.push(..._mapInstanceProperty__default["default"](_context2 = (_options$oAuthScopes$ = (_options$oAuthScopes = options.oAuthScopes) === null || _options$oAuthScopes === void 0 ? void 0 : _options$oAuthScopes.view) !== null && _options$oAuthScopes$ !== void 0 ? _options$oAuthScopes$ : []).call(_context2, scope => {
70
+ var _context3;
71
+ return _concatInstanceProperty__default["default"](_context3 = "".concat(OIDC_CLAIMS.VIEW, ":")).call(_context3, scope);
72
+ }));
73
+ claims.push(..._mapInstanceProperty__default["default"](_context4 = (_options$oAuthScopes$2 = (_options$oAuthScopes2 = options.oAuthScopes) === null || _options$oAuthScopes2 === void 0 ? void 0 : _options$oAuthScopes2.manage) !== null && _options$oAuthScopes$2 !== void 0 ? _options$oAuthScopes$2 : []).call(_context4, scope => {
74
+ var _context5;
75
+ return _concatInstanceProperty__default["default"](_context5 = "".concat(OIDC_CLAIMS.MANAGE, ":")).call(_context5, scope);
76
+ }));
77
+ // Set additional OAuth scopes
78
+ if (options !== null && options !== void 0 && options.additionalOAuthScopes) {
79
+ var _context6;
80
+ _forEachInstanceProperty__default["default"](_context6 = options.additionalOAuthScopes).call(_context6, additionalOAuthScope => {
81
+ var _context7, _additionalOAuthScope, _context9, _additionalOAuthScope2;
82
+ claims.push(..._mapInstanceProperty__default["default"](_context7 = (_additionalOAuthScope = additionalOAuthScope.view) !== null && _additionalOAuthScope !== void 0 ? _additionalOAuthScope : []).call(_context7, viewOAuthScope => {
83
+ var _context8;
84
+ return _concatInstanceProperty__default["default"](_context8 = "view/".concat(additionalOAuthScope.name, ":")).call(_context8, viewOAuthScope);
85
+ }), ..._mapInstanceProperty__default["default"](_context9 = (_additionalOAuthScope2 = additionalOAuthScope.manage) !== null && _additionalOAuthScope2 !== void 0 ? _additionalOAuthScope2 : []).call(_context9, manageOAuthScope => {
86
+ var _context0;
87
+ return _concatInstanceProperty__default["default"](_context0 = "manage/".concat(additionalOAuthScope.name, ":")).call(_context0, manageOAuthScope);
88
+ }));
89
+ });
90
+ }
91
+
92
+ // Set the teamId and applicationId
93
+ if (options.teamId) {
94
+ var _context1;
95
+ claims.push(_concatInstanceProperty__default["default"](_context1 = "".concat(OIDC_CLAIMS.TEAM_ID, ":")).call(_context1, options.teamId));
96
+ if (options.applicationId) {
97
+ var _context10;
98
+ claims.push(_concatInstanceProperty__default["default"](_context10 = "".concat(OIDC_CLAIMS.APPLICATION_ID, ":")).call(_context10, options.applicationId));
99
+ }
100
+ }
101
+ return [
102
+ // This is required as per OIDC spec.
103
+ OIDC_CLAIMS.OPEN_ID,
104
+ // Custom claims
105
+ ...claims].join(' ');
106
+ };
107
+
108
+ exports.CONTAINERS = CONTAINERS;
109
+ exports.DIMENSIONS = DIMENSIONS;
110
+ exports.NAVBAR = NAVBAR;
111
+ exports.OIDC_CLAIMS = OIDC_CLAIMS;
112
+ exports.OIDC_RESPONSE_TYPES = OIDC_RESPONSE_TYPES;
113
+ exports.SUSPENSION_REASONS = SUSPENSION_REASONS;
114
+ exports.WINDOW_SIZES = WINDOW_SIZES;
115
+ exports.buildOidcScope = buildOidcScope;
@@ -0,0 +1,100 @@
1
+ import _concatInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/concat';
2
+ import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
3
+ import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
4
+
5
+ const DIMENSIONS = {
6
+ header: '56px'
7
+ };
8
+ const NAVBAR = {
9
+ expanderHeight: '50px',
10
+ expanderSize: '40px',
11
+ iconSize: '24px',
12
+ iconSizeHover: '28px',
13
+ itemSize: '48px',
14
+ itemHeight: '56px',
15
+ sublistIndentationWhenCollapsed: '72px',
16
+ sublistIndentationWhenExpanded: '248px',
17
+ sublistItemMinHeight: '50px',
18
+ sublistWidth: '272px',
19
+ leftNavigationTransition: 'all 150ms cubic-bezier(1, 0, 0.58, 1)',
20
+ widthLeftNavigation: '80px',
21
+ widthLeftNavigationWhenExpanded: '256px'
22
+ };
23
+ const WINDOW_SIZES = {
24
+ STANDARD: 1024,
25
+ WIDE: 1200
26
+ };
27
+ const CONTAINERS = {
28
+ LOCALE_SWITCHER: 'locale-switcher-container',
29
+ LEFT_OF_PROFILE: 'left-of-profile'
30
+ };
31
+ const SUSPENSION_REASONS = {
32
+ TEMPORARY_MAINTENANCE: 'TemporaryMaintenance',
33
+ PAYMENT: 'Payment',
34
+ OTHER: 'Other'
35
+ };
36
+
37
+ // OIDC params
38
+ const OIDC_RESPONSE_TYPES = {
39
+ ID_TOKEN: 'id_token'
40
+ };
41
+ const OIDC_CLAIMS = {
42
+ OPEN_ID: 'openid',
43
+ PROJECT_KEY: 'project_key',
44
+ TEAM_ID: 'team_id',
45
+ APPLICATION_ID: 'application_id',
46
+ VIEW: 'view',
47
+ MANAGE: 'manage'
48
+ };
49
+
50
+ const buildOidcScope = options => {
51
+ var _context2, _options$oAuthScopes$, _options$oAuthScopes, _context4, _options$oAuthScopes$2, _options$oAuthScopes2;
52
+ const claims = [];
53
+
54
+ // Set the projectKey
55
+ if (options.projectKey) {
56
+ var _context;
57
+ claims.push(_concatInstanceProperty(_context = "".concat(OIDC_CLAIMS.PROJECT_KEY, ":")).call(_context, options.projectKey));
58
+ }
59
+
60
+ // Set the OAuth Scopes
61
+ claims.push(..._mapInstanceProperty(_context2 = (_options$oAuthScopes$ = (_options$oAuthScopes = options.oAuthScopes) === null || _options$oAuthScopes === void 0 ? void 0 : _options$oAuthScopes.view) !== null && _options$oAuthScopes$ !== void 0 ? _options$oAuthScopes$ : []).call(_context2, scope => {
62
+ var _context3;
63
+ return _concatInstanceProperty(_context3 = "".concat(OIDC_CLAIMS.VIEW, ":")).call(_context3, scope);
64
+ }));
65
+ claims.push(..._mapInstanceProperty(_context4 = (_options$oAuthScopes$2 = (_options$oAuthScopes2 = options.oAuthScopes) === null || _options$oAuthScopes2 === void 0 ? void 0 : _options$oAuthScopes2.manage) !== null && _options$oAuthScopes$2 !== void 0 ? _options$oAuthScopes$2 : []).call(_context4, scope => {
66
+ var _context5;
67
+ return _concatInstanceProperty(_context5 = "".concat(OIDC_CLAIMS.MANAGE, ":")).call(_context5, scope);
68
+ }));
69
+ // Set additional OAuth scopes
70
+ if (options !== null && options !== void 0 && options.additionalOAuthScopes) {
71
+ var _context6;
72
+ _forEachInstanceProperty(_context6 = options.additionalOAuthScopes).call(_context6, additionalOAuthScope => {
73
+ var _context7, _additionalOAuthScope, _context9, _additionalOAuthScope2;
74
+ claims.push(..._mapInstanceProperty(_context7 = (_additionalOAuthScope = additionalOAuthScope.view) !== null && _additionalOAuthScope !== void 0 ? _additionalOAuthScope : []).call(_context7, viewOAuthScope => {
75
+ var _context8;
76
+ return _concatInstanceProperty(_context8 = "view/".concat(additionalOAuthScope.name, ":")).call(_context8, viewOAuthScope);
77
+ }), ..._mapInstanceProperty(_context9 = (_additionalOAuthScope2 = additionalOAuthScope.manage) !== null && _additionalOAuthScope2 !== void 0 ? _additionalOAuthScope2 : []).call(_context9, manageOAuthScope => {
78
+ var _context0;
79
+ return _concatInstanceProperty(_context0 = "manage/".concat(additionalOAuthScope.name, ":")).call(_context0, manageOAuthScope);
80
+ }));
81
+ });
82
+ }
83
+
84
+ // Set the teamId and applicationId
85
+ if (options.teamId) {
86
+ var _context1;
87
+ claims.push(_concatInstanceProperty(_context1 = "".concat(OIDC_CLAIMS.TEAM_ID, ":")).call(_context1, options.teamId));
88
+ if (options.applicationId) {
89
+ var _context10;
90
+ claims.push(_concatInstanceProperty(_context10 = "".concat(OIDC_CLAIMS.APPLICATION_ID, ":")).call(_context10, options.applicationId));
91
+ }
92
+ }
93
+ return [
94
+ // This is required as per OIDC spec.
95
+ OIDC_CLAIMS.OPEN_ID,
96
+ // Custom claims
97
+ ...claims].join(' ');
98
+ };
99
+
100
+ export { CONTAINERS as C, DIMENSIONS as D, NAVBAR as N, OIDC_CLAIMS as O, SUSPENSION_REASONS as S, WINDOW_SIZES as W, OIDC_RESPONSE_TYPES as a, buildOidcScope as b };