@laerdal/life-react-components 1.8.0-dev.16 → 1.8.0-dev.17

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 (163) hide show
  1. package/dist/GlobalNavigationBar/Actions.cjs +185 -0
  2. package/dist/GlobalNavigationBar/Actions.cjs.map +1 -0
  3. package/dist/GlobalNavigationBar/Actions.d.ts +13 -0
  4. package/dist/GlobalNavigationBar/Actions.js +160 -0
  5. package/dist/GlobalNavigationBar/Actions.js.map +1 -0
  6. package/dist/GlobalNavigationBar/Avatar.cjs +104 -0
  7. package/dist/GlobalNavigationBar/Avatar.cjs.map +1 -0
  8. package/dist/GlobalNavigationBar/Avatar.d.ts +15 -0
  9. package/dist/GlobalNavigationBar/Avatar.js +77 -0
  10. package/dist/GlobalNavigationBar/Avatar.js.map +1 -0
  11. package/dist/GlobalNavigationBar/{desktop/ExtendedMainMenu.cjs → ExtendedMainMenu.cjs} +9 -7
  12. package/dist/GlobalNavigationBar/ExtendedMainMenu.cjs.map +1 -0
  13. package/dist/GlobalNavigationBar/{desktop/ExtendedMainMenu.d.ts → ExtendedMainMenu.d.ts} +2 -2
  14. package/dist/GlobalNavigationBar/{desktop/ExtendedMainMenu.js → ExtendedMainMenu.js} +6 -6
  15. package/dist/GlobalNavigationBar/ExtendedMainMenu.js.map +1 -0
  16. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +176 -107
  17. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  18. package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +27 -13
  19. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +176 -106
  20. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  21. package/dist/GlobalNavigationBar/Logo.cjs +5 -3
  22. package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
  23. package/dist/GlobalNavigationBar/Logo.js +1 -1
  24. package/dist/GlobalNavigationBar/Logo.js.map +1 -1
  25. package/dist/GlobalNavigationBar/{desktop/MainMenu.cjs → MainMenu.cjs} +21 -17
  26. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -0
  27. package/dist/GlobalNavigationBar/MainMenu.d.ts +8 -0
  28. package/dist/GlobalNavigationBar/{desktop/MainMenu.js → MainMenu.js} +21 -17
  29. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -0
  30. package/dist/GlobalNavigationBar/{desktop/RightSideNav.cjs → RightSideNav.cjs} +26 -22
  31. package/dist/GlobalNavigationBar/RightSideNav.cjs.map +1 -0
  32. package/dist/GlobalNavigationBar/RightSideNav.d.ts +8 -0
  33. package/dist/GlobalNavigationBar/RightSideNav.js +61 -0
  34. package/dist/GlobalNavigationBar/RightSideNav.js.map +1 -0
  35. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs +112 -0
  36. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs.map +1 -0
  37. package/dist/GlobalNavigationBar/UserMenu/MenuLink.d.ts +11 -0
  38. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js +86 -0
  39. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js.map +1 -0
  40. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs +178 -0
  41. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs.map +1 -0
  42. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.d.ts +16 -0
  43. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js +146 -0
  44. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +1 -0
  45. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs +168 -0
  46. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs.map +1 -0
  47. package/dist/GlobalNavigationBar/UserMenu/UserMenu.d.ts +15 -0
  48. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js +135 -0
  49. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -0
  50. package/dist/GlobalNavigationBar/index.cjs +18 -15
  51. package/dist/GlobalNavigationBar/index.cjs.map +1 -1
  52. package/dist/GlobalNavigationBar/index.d.ts +2 -2
  53. package/dist/GlobalNavigationBar/index.js +2 -2
  54. package/dist/GlobalNavigationBar/index.js.map +1 -1
  55. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +21 -15
  56. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  57. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +6 -3
  58. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +15 -14
  59. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  60. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs +49 -0
  61. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs.map +1 -0
  62. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.d.ts +6 -0
  63. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js +27 -0
  64. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js.map +1 -0
  65. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs +91 -0
  66. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs.map +1 -0
  67. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.d.ts +13 -0
  68. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js +70 -0
  69. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js.map +1 -0
  70. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +221 -114
  71. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  72. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +25 -6
  73. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +216 -113
  74. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  75. package/dist/MenuItem/MenuItem.cjs +10 -16
  76. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  77. package/dist/MenuItem/MenuItem.d.ts +3 -3
  78. package/dist/MenuItem/MenuItem.js +8 -14
  79. package/dist/MenuItem/MenuItem.js.map +1 -1
  80. package/dist/ProfileButton/ProfileButton.cjs +11 -20
  81. package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
  82. package/dist/ProfileButton/ProfileButton.d.ts +1 -3
  83. package/dist/ProfileButton/ProfileButton.js +10 -18
  84. package/dist/ProfileButton/ProfileButton.js.map +1 -1
  85. package/dist/Switcher/MobileSwitcherMenu.cjs +78 -24
  86. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  87. package/dist/Switcher/MobileSwitcherMenu.d.ts +5 -6
  88. package/dist/Switcher/MobileSwitcherMenu.js +70 -26
  89. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  90. package/dist/Tile/TileBody.cjs +1 -1
  91. package/dist/Tile/TileBody.cjs.map +1 -1
  92. package/dist/Tile/TileBody.js +1 -1
  93. package/dist/Tile/TileBody.js.map +1 -1
  94. package/dist/Tile/TileCommonItems.cjs +1 -1
  95. package/dist/Tile/TileCommonItems.cjs.map +1 -1
  96. package/dist/Tile/TileCommonItems.js +1 -1
  97. package/dist/Tile/TileCommonItems.js.map +1 -1
  98. package/dist/Tile/TileFooter.cjs +1 -1
  99. package/dist/Tile/TileFooter.cjs.map +1 -1
  100. package/dist/Tile/TileFooter.js +1 -1
  101. package/dist/Tile/TileFooter.js.map +1 -1
  102. package/dist/Tile/TileHeader.cjs +1 -1
  103. package/dist/Tile/TileHeader.cjs.map +1 -1
  104. package/dist/Tile/TileHeader.js +2 -2
  105. package/dist/Tile/TileHeader.js.map +1 -1
  106. package/dist/hooks/useClickOutside.cjs +2 -6
  107. package/dist/hooks/useClickOutside.cjs.map +1 -1
  108. package/dist/hooks/useClickOutside.d.ts +1 -1
  109. package/dist/hooks/useClickOutside.js +2 -6
  110. package/dist/hooks/useClickOutside.js.map +1 -1
  111. package/dist/index.cjs +8 -8
  112. package/dist/index.cjs.map +1 -1
  113. package/dist/index.d.ts +1 -1
  114. package/dist/index.js +1 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/types.cjs.map +1 -1
  117. package/dist/types.d.ts +32 -0
  118. package/dist/types.js.map +1 -1
  119. package/package.json +8 -10
  120. package/dist/GlobalNavigationBar/NavigationHelper.cjs +0 -38
  121. package/dist/GlobalNavigationBar/NavigationHelper.cjs.map +0 -1
  122. package/dist/GlobalNavigationBar/NavigationHelper.d.ts +0 -4
  123. package/dist/GlobalNavigationBar/NavigationHelper.js +0 -27
  124. package/dist/GlobalNavigationBar/NavigationHelper.js.map +0 -1
  125. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +0 -127
  126. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +0 -1
  127. package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +0 -15
  128. package/dist/GlobalNavigationBar/desktop/DesktopActions.js +0 -98
  129. package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +0 -1
  130. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +0 -1
  131. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +0 -1
  132. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +0 -1
  133. package/dist/GlobalNavigationBar/desktop/MainMenu.d.ts +0 -8
  134. package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +0 -1
  135. package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +0 -1
  136. package/dist/GlobalNavigationBar/desktop/RightSideNav.d.ts +0 -8
  137. package/dist/GlobalNavigationBar/desktop/RightSideNav.js +0 -59
  138. package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +0 -1
  139. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +0 -204
  140. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +0 -1
  141. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -7
  142. package/dist/GlobalNavigationBar/desktop/UserMenu.js +0 -163
  143. package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +0 -1
  144. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +0 -221
  145. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +0 -1
  146. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.d.ts +0 -11
  147. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +0 -184
  148. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +0 -1
  149. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs +0 -160
  150. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs.map +0 -1
  151. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.d.ts +0 -12
  152. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js +0 -139
  153. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js.map +0 -1
  154. package/dist/GlobalNavigationBar/types.cjs +0 -6
  155. package/dist/GlobalNavigationBar/types.cjs.map +0 -1
  156. package/dist/GlobalNavigationBar/types.d.ts +0 -120
  157. package/dist/GlobalNavigationBar/types.js +0 -2
  158. package/dist/GlobalNavigationBar/types.js.map +0 -1
  159. package/dist/common/StackState.cjs +0 -47
  160. package/dist/common/StackState.cjs.map +0 -1
  161. package/dist/common/StackState.d.ts +0 -7
  162. package/dist/common/StackState.js +0 -30
  163. package/dist/common/StackState.js.map +0 -1
@@ -19,11 +19,13 @@ var React = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _styles = require("../../styles");
22
+ var _styles = require("../styles");
23
23
 
24
- var _Tabs = require("../../Tabs");
24
+ var _Tabs = require("../Tabs");
25
25
 
26
- var _index = require("../../index");
26
+ var _ = require("..");
27
+
28
+ var _zIndexes = require("../styles/z-indexes");
27
29
 
28
30
  var _jsxRuntime = require("react/jsx-runtime");
29
31
 
@@ -35,9 +37,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
37
 
36
38
  var flowDown = (0, _styledComponents.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n"])));
37
39
 
38
- var Menu = _styledComponents.default.ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n right: -8px;\n min-width: 300px;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n z-index: ", ";\n\n top: 12px;\n ", " {\n top: 18px;\n }\n ", " {\n top: 24px;\n }\n\n .open & {\n display: block;\n }\n"])), _styles.COLORS.white, flowDown, flowDown, _styles.Z_INDEXES.dropdown, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM);
40
+ var Menu = _styledComponents.default.ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n right: -8px;\n min-width: 300px;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n z-index: ", ";\n\n top: 12px;\n ", " {\n top: 18px;\n }\n ", " {\n top: 24px;\n }\n\n .open & {\n display: block;\n }\n"])), _styles.COLORS.white, flowDown, flowDown, _zIndexes.Z_INDEXES.dropdown, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM);
39
41
 
40
- var MenuSection = _styledComponents.default.li(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ", ";\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n"])), _styles.COLORS.neutral_100);
42
+ var MenuSection = _styledComponents.default.li(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ", ";\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n"])), _styles.COLORS.neutral_100);
41
43
 
42
44
  var MenuSectionList = _styledComponents.default.ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n list-style: none;\n margin: 0;\n padding: 0 2px;\n"])));
43
45
 
@@ -68,7 +70,7 @@ var ExtendedMainMenu = function ExtendedMainMenu(_ref) {
68
70
  requiredLine: n.label,
69
71
  to: n.to,
70
72
  disabled: n.disabled,
71
- onClick: n.action,
73
+ onClick: n.onClick,
72
74
  exact: n.exact
73
75
  };
74
76
  });
@@ -82,7 +84,7 @@ var ExtendedMainMenu = function ExtendedMainMenu(_ref) {
82
84
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuSectionList, {
83
85
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tabs.VerticalTabs, {
84
86
  entries: entries,
85
- size: _index.Size.Medium
87
+ size: _.Size.Medium
86
88
  }, "ExtendedMenu")
87
89
  })
88
90
  })
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/GlobalNavigationBar/ExtendedMainMenu.tsx"],"names":["flowDown","keyframes","Menu","styled","ul","COLORS","white","Z_INDEXES","dropdown","BREAKPOINTS","SMALL","MEDIUM","MenuSection","li","neutral_100","MenuSectionList","ExtendedMainMenu","clickMenuAction","navigationOptions","React","useState","entries","setEntries","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","list","map","n","requiredLine","label","to","disabled","onClick","exact","Size","Medium"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,IAAMA,QAAQ,OAAGC,2BAAH,oNAAd;;AAWA,IAAMC,IAAI,GAAGC,0BAAOC,EAAV,gjBAIYC,eAAOC,KAJnB,EASaN,QATb,EAUKA,QAVL,EAcGO,oBAAUC,QAdb,EAiBNC,oBAAYC,KAjBN,EAoBND,oBAAYE,MApBN,CAAV;;AA6BA,IAAMC,WAAW,GAAGT,0BAAOU,EAAV,oZAOCR,eAAOS,WAPR,CAAjB;;AAqBA,IAAMC,eAAe,GAAGZ,0BAAOC,EAAV,6IAArB;;AAWA,IAAMY,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAmD;AAAA,MAAhDC,eAAgD,QAAhDA,eAAgD;AAAA,MAA/BC,iBAA+B,QAA/BA,iBAA+B;;AAC1E,wBAA8BC,KAAK,CAACC,QAAN,CAAmC,EAAnC,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACAH,EAAAA,KAAK,CAACI,SAAN,CAAgB,YAAM;AACpB,aAASC,cAAT,CAAwBC,CAAxB,EAAgC;AAC9B,UAAIA,CAAC,CAACC,OAAF,KAAc,EAAlB,EAAsB;AACpBT,QAAAA,eAAe;AAChB;AACF;;AAEDU,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCJ,cAArC,EAAqD,KAArD;AACA,WAAO,YAAM;AACXG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCL,cAAxC,EAAwD,KAAxD;AACD,KAFD;AAGD,GAXD,EAWG,CAACP,eAAD,CAXH;AAaAE,EAAAA,KAAK,CAACI,SAAN,CAAgB,YAAM;AACpB,QAAMO,IAAI,GAAGZ,iBAAH,aAAGA,iBAAH,uBAAGA,iBAAiB,CAAEa,GAAnB,CAAuB,UAAAC,CAAC,EAAI;AACvC,aAAO;AAAEC,QAAAA,YAAY,EAAED,CAAC,CAACE,KAAlB;AAAyBC,QAAAA,EAAE,EAAEH,CAAC,CAACG,EAA/B;AAAmCC,QAAAA,QAAQ,EAAEJ,CAAC,CAACI,QAA/C;AAAyDC,QAAAA,OAAO,EAAEL,CAAC,CAACK,OAApE;AAA6EC,QAAAA,KAAK,EAAEN,CAAC,CAACM;AAAtF,OAAP;AACD,KAFY,CAAb;AAGAhB,IAAAA,UAAU,CAACQ,IAAD,CAAV;AACD,GALD,EAKG,CAACZ,iBAAD,CALH;AAOA,sBACE,qBAAC,IAAD;AAAM,IAAA,OAAO,EAAED,eAAf;AAAgC,IAAA,IAAI,EAAC,MAArC;AAA4C,uBAAgB,gBAA5D;AAAA,2BACE,qBAAC,WAAD;AAAA,6BACE,qBAAC,eAAD;AAAA,+BACE,qBAAC,kBAAD;AAAiC,UAAA,OAAO,EAAEI,OAA1C;AAAmD,UAAA,IAAI,EAAEkB,OAAKC;AAA9D,WAAkB,cAAlB;AADF;AADF;AADF,IADF;AASD,CA/BD;;;AAJEvB,EAAAA,e;AACAC,EAAAA,iB;;eAoCaF,gB","sourcesContent":["import * as React from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nimport { NavOption } from '../types';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { VerticalTabs } from '../Tabs';\nimport { VerticalTabEntry } from '../Tabs/VerticalTabs';\nimport { Size } from '..';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nconst flowDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n right: -8px;\n min-width: 300px;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n z-index: ${Z_INDEXES.dropdown};\n\n top: 12px;\n ${BREAKPOINTS.SMALL} {\n top: 18px;\n }\n ${BREAKPOINTS.MEDIUM} {\n top: 24px;\n }\n\n .open & {\n display: block;\n }\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ${COLORS.neutral_100};\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0 2px;\n`;\n\ntype Props = {\n clickMenuAction: () => void;\n navigationOptions: NavOption[];\n};\n\nconst ExtendedMainMenu = ({ clickMenuAction, navigationOptions }: Props) => {\n const [entries, setEntries] = React.useState<VerticalTabEntry[]>([]);\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n React.useEffect(() => {\n const list = navigationOptions?.map(n => {\n return { requiredLine: n.label, to: n.to, disabled: n.disabled, onClick: n.onClick, exact: n.exact };\n }) as VerticalTabEntry[];\n setEntries(list);\n }, [navigationOptions]);\n\n return (\n <Menu onClick={clickMenuAction} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MenuSection>\n <MenuSectionList>\n <VerticalTabs key=\"ExtendedMenu\" entries={entries} size={Size.Medium} />\n </MenuSectionList>\n </MenuSection>\n </Menu>\n );\n};\n\nexport default ExtendedMainMenu;\n"],"file":"ExtendedMainMenu.cjs"}
@@ -1,7 +1,7 @@
1
- import { MenuNavigationItemTypeItem } from '../../index';
1
+ import { NavOption } from '../types';
2
2
  declare type Props = {
3
3
  clickMenuAction: () => void;
4
- navigationOptions: MenuNavigationItemTypeItem[];
4
+ navigationOptions: NavOption[];
5
5
  };
6
6
  declare const ExtendedMainMenu: ({ clickMenuAction, navigationOptions }: Props) => JSX.Element;
7
7
  export default ExtendedMainMenu;
@@ -6,14 +6,14 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
6
 
7
7
  import * as React from 'react';
8
8
  import styled, { keyframes } from 'styled-components';
9
- import { BREAKPOINTS, COLORS } from '../../styles';
10
- import { VerticalTabs } from '../../Tabs';
11
- import { Size } from '../../index';
12
- import { Z_INDEXES } from '../../styles';
9
+ import { BREAKPOINTS, COLORS } from '../styles';
10
+ import { VerticalTabs } from '../Tabs';
11
+ import { Size } from '..';
12
+ import { Z_INDEXES } from '../styles/z-indexes';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  var flowDown = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n"])));
15
15
  var Menu = styled.ul(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n right: -8px;\n min-width: 300px;\n -webkit-animation: ", " 0.2s ease-in-out;\n animation: ", " 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n z-index: ", ";\n\n top: 12px;\n ", " {\n top: 18px;\n }\n ", " {\n top: 24px;\n }\n\n .open & {\n display: block;\n }\n"])), COLORS.white, flowDown, flowDown, Z_INDEXES.dropdown, BREAKPOINTS.SMALL, BREAKPOINTS.MEDIUM);
16
- var MenuSection = styled.li(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ", ";\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n"])), COLORS.neutral_100);
16
+ var MenuSection = styled.li(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ", ";\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n"])), COLORS.neutral_100);
17
17
  var MenuSectionList = styled.ul(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n list-style: none;\n margin: 0;\n padding: 0 2px;\n"])));
18
18
 
19
19
  var ExtendedMainMenu = function ExtendedMainMenu(_ref) {
@@ -43,7 +43,7 @@ var ExtendedMainMenu = function ExtendedMainMenu(_ref) {
43
43
  requiredLine: n.label,
44
44
  to: n.to,
45
45
  disabled: n.disabled,
46
- onClick: n.action,
46
+ onClick: n.onClick,
47
47
  exact: n.exact
48
48
  };
49
49
  });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/GlobalNavigationBar/ExtendedMainMenu.tsx"],"names":["React","styled","keyframes","BREAKPOINTS","COLORS","VerticalTabs","Size","Z_INDEXES","flowDown","Menu","ul","white","dropdown","SMALL","MEDIUM","MenuSection","li","neutral_100","MenuSectionList","ExtendedMainMenu","clickMenuAction","navigationOptions","useState","entries","setEntries","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","list","map","n","requiredLine","label","to","disabled","onClick","exact","Medium"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,IAAiBC,SAAjB,QAAkC,mBAAlC;AAGA,SAASC,WAAT,EAAsBC,MAAtB,QAAoC,WAApC;AACA,SAASC,YAAT,QAA6B,SAA7B;AAEA,SAASC,IAAT,QAAqB,IAArB;AACA,SAAQC,SAAR,QAAwB,qBAAxB;;AAEA,IAAMC,QAAQ,GAAGN,SAAH,qMAAd;AAWA,IAAMO,IAAI,GAAGR,MAAM,CAACS,EAAV,kiBAIYN,MAAM,CAACO,KAJnB,EASaH,QATb,EAUKA,QAVL,EAcGD,SAAS,CAACK,QAdb,EAiBNT,WAAW,CAACU,KAjBN,EAoBNV,WAAW,CAACW,MApBN,CAAV;AA6BA,IAAMC,WAAW,GAAGd,MAAM,CAACe,EAAV,sYAOCZ,MAAM,CAACa,WAPR,CAAjB;AAqBA,IAAMC,eAAe,GAAGjB,MAAM,CAACS,EAAV,+HAArB;;AAWA,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAmD;AAAA,MAAhDC,eAAgD,QAAhDA,eAAgD;AAAA,MAA/BC,iBAA+B,QAA/BA,iBAA+B;;AAC1E,wBAA8BrB,KAAK,CAACsB,QAAN,CAAmC,EAAnC,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACAxB,EAAAA,KAAK,CAACyB,SAAN,CAAgB,YAAM;AACpB,aAASC,cAAT,CAAwBC,CAAxB,EAAgC;AAC9B,UAAIA,CAAC,CAACC,OAAF,KAAc,EAAlB,EAAsB;AACpBR,QAAAA,eAAe;AAChB;AACF;;AAEDS,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCJ,cAArC,EAAqD,KAArD;AACA,WAAO,YAAM;AACXG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCL,cAAxC,EAAwD,KAAxD;AACD,KAFD;AAGD,GAXD,EAWG,CAACN,eAAD,CAXH;AAaApB,EAAAA,KAAK,CAACyB,SAAN,CAAgB,YAAM;AACpB,QAAMO,IAAI,GAAGX,iBAAH,aAAGA,iBAAH,uBAAGA,iBAAiB,CAAEY,GAAnB,CAAuB,UAAAC,CAAC,EAAI;AACvC,aAAO;AAAEC,QAAAA,YAAY,EAAED,CAAC,CAACE,KAAlB;AAAyBC,QAAAA,EAAE,EAAEH,CAAC,CAACG,EAA/B;AAAmCC,QAAAA,QAAQ,EAAEJ,CAAC,CAACI,QAA/C;AAAyDC,QAAAA,OAAO,EAAEL,CAAC,CAACK,OAApE;AAA6EC,QAAAA,KAAK,EAAEN,CAAC,CAACM;AAAtF,OAAP;AACD,KAFY,CAAb;AAGAhB,IAAAA,UAAU,CAACQ,IAAD,CAAV;AACD,GALD,EAKG,CAACX,iBAAD,CALH;AAOA,sBACE,KAAC,IAAD;AAAM,IAAA,OAAO,EAAED,eAAf;AAAgC,IAAA,IAAI,EAAC,MAArC;AAA4C,uBAAgB,gBAA5D;AAAA,2BACE,KAAC,WAAD;AAAA,6BACE,KAAC,eAAD;AAAA,+BACE,KAAC,YAAD;AAAiC,UAAA,OAAO,EAAEG,OAA1C;AAAmD,UAAA,IAAI,EAAEjB,IAAI,CAACmC;AAA9D,WAAkB,cAAlB;AADF;AADF;AADF,IADF;AASD,CA/BD;;;AAJErB,EAAAA,e;AACAC,EAAAA,iB;;AAoCF,eAAeF,gBAAf","sourcesContent":["import * as React from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nimport { NavOption } from '../types';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { VerticalTabs } from '../Tabs';\nimport { VerticalTabEntry } from '../Tabs/VerticalTabs';\nimport { Size } from '..';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nconst flowDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n right: -8px;\n min-width: 300px;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n z-index: ${Z_INDEXES.dropdown};\n\n top: 12px;\n ${BREAKPOINTS.SMALL} {\n top: 18px;\n }\n ${BREAKPOINTS.MEDIUM} {\n top: 24px;\n }\n\n .open & {\n display: block;\n }\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ${COLORS.neutral_100};\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0 2px;\n`;\n\ntype Props = {\n clickMenuAction: () => void;\n navigationOptions: NavOption[];\n};\n\nconst ExtendedMainMenu = ({ clickMenuAction, navigationOptions }: Props) => {\n const [entries, setEntries] = React.useState<VerticalTabEntry[]>([]);\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n React.useEffect(() => {\n const list = navigationOptions?.map(n => {\n return { requiredLine: n.label, to: n.to, disabled: n.disabled, onClick: n.onClick, exact: n.exact };\n }) as VerticalTabEntry[];\n setEntries(list);\n }, [navigationOptions]);\n\n return (\n <Menu onClick={clickMenuAction} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MenuSection>\n <MenuSectionList>\n <VerticalTabs key=\"ExtendedMenu\" entries={entries} size={Size.Medium} />\n </MenuSectionList>\n </MenuSection>\n </Menu>\n );\n};\n\nexport default ExtendedMainMenu;\n"],"file":"ExtendedMainMenu.js"}
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -23,29 +21,27 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
23
21
 
24
22
  var _Logo = _interopRequireDefault(require("./Logo"));
25
23
 
26
- var _MainMenu = _interopRequireDefault(require("./desktop/MainMenu"));
24
+ var _MainMenu = _interopRequireDefault(require("./MainMenu"));
25
+
26
+ var _Actions = _interopRequireDefault(require("./Actions"));
27
27
 
28
28
  var _Layouts = require("../Layouts");
29
29
 
30
30
  var _styles = require("../styles");
31
31
 
32
- var _RightSideNav = _interopRequireDefault(require("./desktop/RightSideNav"));
32
+ var _RightSideNav = _interopRequireDefault(require("./RightSideNav"));
33
33
 
34
34
  var _MobileMenu = _interopRequireDefault(require("./mobile/MobileMenu"));
35
35
 
36
36
  var _SystemIcons = require("../icons/systemicons/SystemIcons");
37
37
 
38
- var _UserMenu = _interopRequireDefault(require("./desktop/UserMenu"));
38
+ var _UserMenu = _interopRequireDefault(require("./UserMenu/UserMenu"));
39
39
 
40
40
  var _useClickOutside = _interopRequireDefault(require("../hooks/useClickOutside"));
41
41
 
42
42
  var _CommonStyles = require("./mobile/CommonStyles");
43
43
 
44
- var _Button = require("../Button");
45
-
46
- var _DesktopActions = _interopRequireDefault(require("./desktop/DesktopActions"));
47
-
48
- var _rooks = require("rooks");
44
+ var _zIndexes = require("../styles/z-indexes");
49
45
 
50
46
  var _jsxRuntime = require("react/jsx-runtime");
51
47
 
@@ -55,23 +51,23 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
55
51
 
56
52
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
57
53
 
58
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
59
-
60
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
61
-
62
- var HeaderWrapper = _styledComponents.default.header(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: white;\n border-bottom: 1px solid ", ";\n\n z-index: ", ";\n position: relative;\n\n height: 48px;\n\n ", " {\n height: 56px;\n }\n\n ", " {\n height: 64px;\n }\n\n @media all and (-ms-high-contrast: none) {\n height: auto;\n }\n\n @media print {\n border-bottom: none;\n }\n"])), _styles.COLORS.neutral_200, _styles.Z_INDEXES.sticky_menu, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM);
54
+ var HeaderWrapper = _styledComponents.default.header(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: white;\n border-bottom: 1px solid ", ";\n \n z-index: ", ";\n position: relative;\n \n height: 48px;\n\n ", " {\n height: 56px;\n }\n ", " {\n height: 64px;\n }\n\n @media all and (-ms-high-contrast: none) {\n height: auto;\n }\n\n @media print {\n border-bottom: none;\n }\n"])), _styles.COLORS.neutral_200, _zIndexes.Z_INDEXES.sticky_menu, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM);
63
55
 
64
56
  var RowLayout = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n"])));
65
57
 
66
- var HamburgerButton = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", " button {\n height: 56px;\n }\n\n ", " {\n display: none;\n }\n"])), _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM);
67
-
68
- var RightSide = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin: 0 0 0 auto;\n\n &.reverse {\n ", " {\n order: -1;\n }\n\n flex-direction: row-reverse;\n }\n"])), HamburgerButton);
58
+ var RightSide = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin: 0 0 0 auto;\n"])));
69
59
 
70
- var MobileMenuBackdrop = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n overflow: hidden;\n z-index: ", ";\n visibility: hidden;\n\n\n &.open {\n visibility: visible;\n animation: ", " 0.3s ease-in-out;\n }\n\n &.closed {\n visibility: hidden;\n animation: ", " 0.3s ease-in-out;\n }\n\n ", " {\n visibility: hidden !important;\n }\n"])), _styles.Z_INDEXES.backdrop, _CommonStyles.fadeIn, _CommonStyles.fadeOut, _styles.BREAKPOINTS.MEDIUM);
60
+ var MenuWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n background: rgba(0, 0, 0, 0.5);\n display: ", ";\n position: fixed;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n overflow-y: hidden;\n bottom: 0;\n right: 0;\n z-index: ", ";\n"])), function (props) {
61
+ return props.isVisible ? 'flex' : 'none';
62
+ }, _zIndexes.Z_INDEXES.backdrop);
71
63
 
72
- var UserMenuWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n display: flex;\n position: absolute;\n\n ", " {\n top: 56px;\n right: ", ";\n }\n"])), _styles.COLORS.white, _styles.BREAKPOINTS.MEDIUM, function (props) {
64
+ var UserMenuWrapper = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n display: flex;\n margin-left: ", ";\n position: absolute;\n right: ", ";\n top: 56px;\n\n &:focus-within,\n &:hover,\n &.open {\n background: ", ";\n }\n"])), _styles.COLORS.white, function (props) {
65
+ return props.floatRight ? 'auto' : 'unset';
66
+ }, function (props) {
73
67
  return props.offsetRight ? "".concat(window.innerWidth - props.offsetRight + 296, "px") : '10%';
74
- });
68
+ }, _styles.COLORS.white);
69
+
70
+ var HamburgerButton = _styledComponents.default.button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n border-width: 0;\n background-color: ", ";\n height: 48px;\n\n ", " {\n height: 56px;\n }\n ", " {\n height: 64px;\n }\n &:hover {\n cursor: pointer;\n }\n\n ", " {\n display: none;\n }\n"])), _styles.COLORS.white, _styles.BREAKPOINTS.SMALL, _styles.BREAKPOINTS.MEDIUM, _styles.BREAKPOINTS.MEDIUM);
75
71
 
76
72
  /**
77
73
  * @param props
@@ -79,67 +75,91 @@ var UserMenuWrapper = _styledComponents.default.div(_templateObject6 || (_templa
79
75
  * @description This component is a global navigation header bar
80
76
  */
81
77
  var GlobalNavigationBar = function GlobalNavigationBar(_ref) {
82
- var _actionsRef$current, _actionsRef$current$b, _actionsRef$current$b2, _actionsRef$current$b3, _desktop$items, _desktop$buttons;
78
+ var _document2, _document2$getElement, _document2$getElement2;
83
79
 
84
80
  var name = _ref.name,
81
+ mainNavigationOptions = _ref.mainNavigationOptions,
82
+ secondaryNavigationOptions = _ref.secondaryNavigationOptions,
83
+ secondaryButton = _ref.secondaryButton,
84
+ actions = _ref.actions,
85
+ firstName = _ref.firstName,
86
+ lastName = _ref.lastName,
87
+ email = _ref.email,
88
+ organizationName = _ref.organizationName,
89
+ signout = _ref.signout,
85
90
  isAuthenticated = _ref.isAuthenticated,
86
- logo = _ref.logo,
87
- profile = _ref.profile,
88
- mobile = _ref.mobile,
89
- desktop = _ref.desktop,
91
+ mobileActions = _ref.mobileActions,
92
+ notifications = _ref.notifications,
93
+ switcherAction = _ref.switcherAction,
94
+ _ref$reverseRightSide = _ref.reverseRightSideOrder,
95
+ reverseRightSideOrder = _ref$reverseRightSide === void 0 ? false : _ref$reverseRightSide,
96
+ showBetaTag = _ref.showBetaTag,
97
+ accountSection = _ref.accountSection,
98
+ organizationSection = _ref.organizationSection,
99
+ supportSection = _ref.supportSection,
100
+ accountMenuHeader = _ref.accountMenuHeader,
101
+ signOutLabel = _ref.signOutLabel,
102
+ useUserMenu = _ref.useUserMenu,
103
+ mainLogoTo = _ref.mainLogoTo,
104
+ trackLogoClick = _ref.trackLogoClick,
90
105
  testId = _ref.testId,
91
106
  _ref$useMaxWidth = _ref.useMaxWidth,
92
107
  useMaxWidth = _ref$useMaxWidth === void 0 ? true : _ref$useMaxWidth;
93
108
 
94
109
  var _React$useState = React.useState(false),
95
110
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
96
- showMobileMenu = _React$useState2[0],
97
- setShowMobileMenu = _React$useState2[1];
98
-
99
- var wasMobileMenuOpen = (0, _rooks.usePreviousImmediate)(showMobileMenu);
111
+ showMenu = _React$useState2[0],
112
+ setShowMenu = _React$useState2[1];
100
113
 
101
114
  var _React$useState3 = React.useState(false),
102
115
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
103
116
  showUserMenu = _React$useState4[0],
104
117
  setShowUserMenu = _React$useState4[1];
105
118
 
106
- var mobileMenuRef = React.useRef(null);
119
+ var _React$useState5 = React.useState(false),
120
+ _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
121
+ showMobileUserMenu = _React$useState6[0],
122
+ setShowMobileUserMenu = _React$useState6[1];
123
+
124
+ var menuRef = React.useRef(null);
107
125
  var userMenuRef = React.useRef(null);
108
- var actionsRef = React.useRef(null);
109
- var profileButtonRef = React.useRef();
110
- profileButtonRef.current = actionsRef === null || actionsRef === void 0 ? void 0 : (_actionsRef$current = actionsRef.current) === null || _actionsRef$current === void 0 ? void 0 : (_actionsRef$current$b = _actionsRef$current.buttons) === null || _actionsRef$current$b === void 0 ? void 0 : (_actionsRef$current$b2 = _actionsRef$current$b.find(function (a) {
111
- return a.type === 'profile';
112
- })) === null || _actionsRef$current$b2 === void 0 ? void 0 : (_actionsRef$current$b3 = _actionsRef$current$b2.ref) === null || _actionsRef$current$b3 === void 0 ? void 0 : _actionsRef$current$b3.current;
113
- var mobileMenuButtonRef = React.useRef(null);
114
126
  var rightSideRef = React.useRef(null);
115
127
 
116
- var _React$useState5 = React.useState(0),
117
- _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
118
- avatarRight = _React$useState6[0],
119
- setAvatarRight = _React$useState6[1];
128
+ var _React$useState7 = React.useState(0),
129
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
130
+ avatarRight = _React$useState8[0],
131
+ setAvatarRight = _React$useState8[1];
132
+
133
+ var handleClickMenuAction = function handleClickMenuAction() {
134
+ setShowMenu(false);
135
+ };
120
136
 
121
137
  (0, _useClickOutside.default)(userMenuRef, function () {
122
- return setShowUserMenu(false);
123
- }, [profileButtonRef]);
124
- (0, _useClickOutside.default)(mobileMenuRef, function () {
125
- return setShowMobileMenu(false);
126
- }, [mobileMenuButtonRef]);
138
+ return showUserMenu ? setShowUserMenu(false) : null;
139
+ });
140
+ (0, _useClickOutside.default)(menuRef, function () {
141
+ if (showMenu) {
142
+ setShowMobileUserMenu(false);
143
+ setShowMenu(false);
144
+ }
145
+ });
127
146
  React.useEffect(function () {
128
- if (!profileButtonRef.current) return;
129
-
130
147
  var handleResize = function handleResize() {
131
- var _profileButtonRef$cur, _profileButtonRef$cur2;
148
+ var _document, _document$getElementB, _document$getElementB2;
149
+
150
+ var right = (_document = document) === null || _document === void 0 ? void 0 : (_document$getElementB = _document.getElementById('avatarContainer')) === null || _document$getElementB === void 0 ? void 0 : (_document$getElementB2 = _document$getElementB.getBoundingClientRect()) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.right;
132
151
 
133
- var profileRightOffset = (_profileButtonRef$cur = profileButtonRef.current) === null || _profileButtonRef$cur === void 0 ? void 0 : (_profileButtonRef$cur2 = _profileButtonRef$cur.getBoundingClientRect()) === null || _profileButtonRef$cur2 === void 0 ? void 0 : _profileButtonRef$cur2.right;
134
- setAvatarRight(profileRightOffset || 0);
152
+ if (right) {
153
+ setAvatarRight(right);
154
+ }
135
155
  };
136
156
 
137
157
  handleResize();
138
158
  window.addEventListener('resize', handleResize);
139
159
  return function () {
140
160
  return window.removeEventListener('resize', handleResize);
141
- };
142
- }, [profileButtonRef.current]);
161
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
162
+ }, [(_document2 = document) === null || _document2 === void 0 ? void 0 : (_document2$getElement = _document2.getElementById('avatarContainer')) === null || _document2$getElement === void 0 ? void 0 : (_document2$getElement2 = _document2$getElement.getBoundingClientRect()) === null || _document2$getElement2 === void 0 ? void 0 : _document2$getElement2.right]);
143
163
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
144
164
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderWrapper, {
145
165
  "data-testid": testId,
@@ -148,86 +168,135 @@ var GlobalNavigationBar = function GlobalNavigationBar(_ref) {
148
168
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(RowLayout, {
149
169
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Logo.default, {
150
170
  name: name || '',
151
- showBetaTag: logo === null || logo === void 0 ? void 0 : logo.showBetaTag,
152
- onClick: logo === null || logo === void 0 ? void 0 : logo.onClick,
153
- to: logo === null || logo === void 0 ? void 0 : logo.to
171
+ showBetaTag: showBetaTag,
172
+ onClick: trackLogoClick,
173
+ to: mainLogoTo
154
174
  }), isAuthenticated && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MainMenu.default, {
155
- items: (desktop === null || desktop === void 0 ? void 0 : desktop.items.filter(function (a) {
156
- return !a.pinned;
157
- })) || [],
175
+ navigationOptions: mainNavigationOptions || [],
158
176
  rightSideRef: rightSideRef
159
177
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(RightSide, {
160
- className: "".concat(desktop !== null && desktop !== void 0 && desktop.reverseRightSideOrder ? 'reverse' : ''),
178
+ className: "GlobalNavigationRightSide",
161
179
  ref: rightSideRef,
162
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RightSideNav.default, {
163
- items: desktop === null || desktop === void 0 ? void 0 : (_desktop$items = desktop.items) === null || _desktop$items === void 0 ? void 0 : _desktop$items.filter(function (a) {
164
- return a.pinned;
165
- }),
166
- action: desktop === null || desktop === void 0 ? void 0 : desktop.action
167
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DesktopActions.default, {
168
- ref: actionsRef,
169
- buttons: desktop === null || desktop === void 0 ? void 0 : desktop.buttons,
170
- onShowUserMenu: function onShowUserMenu() {
171
- return setShowUserMenu(!showUserMenu);
172
- },
173
- user: profile === null || profile === void 0 ? void 0 : profile.user
180
+ children: [reverseRightSideOrder ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
181
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.default, {
182
+ actions: actions,
183
+ firstName: firstName || '',
184
+ lastName: lastName || '',
185
+ hideOnLowWidth: true,
186
+ useUserMenu: useUserMenu,
187
+ setShowUserMenu: setShowUserMenu
188
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RightSideNav.default, {
189
+ navigationOptions: secondaryNavigationOptions,
190
+ secondaryButton: secondaryButton
191
+ })]
192
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
193
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RightSideNav.default, {
194
+ navigationOptions: secondaryNavigationOptions,
195
+ secondaryButton: secondaryButton
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.default, {
197
+ actions: actions,
198
+ firstName: firstName || '',
199
+ lastName: lastName || '',
200
+ hideOnLowWidth: true,
201
+ useUserMenu: useUserMenu,
202
+ setShowUserMenu: setShowUserMenu
203
+ })]
174
204
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(HamburgerButton, {
205
+ onClick: function onClick() {
206
+ return setShowMenu(!showMenu);
207
+ },
175
208
  hidden: !isAuthenticated,
176
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
177
- action: function action() {
178
- return setShowMobileMenu(!showMobileMenu);
179
- },
180
- ref: mobileMenuButtonRef,
181
- shape: 'circular',
182
- variant: 'secondary',
183
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.Menu, {
184
- size: "24px"
185
- })
209
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.Menu, {
210
+ size: "24px"
186
211
  })
187
212
  })]
188
213
  })]
189
214
  })
190
215
  })
191
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MobileMenuBackdrop, {
192
- className: showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : '',
216
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuWrapper, {
217
+ className: showMenu ? 'open' : 'closed',
218
+ isVisible: showMenu,
193
219
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyles.Menu, {
194
- ref: mobileMenuRef,
220
+ ref: menuRef,
221
+ onClick: function onClick() {},
195
222
  role: "menu",
196
223
  "aria-labelledby": "UserMenuButton",
197
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileMenu.default, _objectSpread(_objectSpread({}, mobile), {}, {
198
- show: showMobileMenu,
199
- onClose: function onClose() {
200
- return setShowMobileMenu(false);
224
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileMenu.default, {
225
+ name: name || '',
226
+ clickMenuAction: function clickMenuAction() {
227
+ setShowMobileUserMenu(false);
228
+ handleClickMenuAction();
201
229
  },
202
- profile: profile
203
- }))
230
+ navigationOptions: mainNavigationOptions || [],
231
+ secondaryNavigationOptions: secondaryNavigationOptions,
232
+ secondaryButton: secondaryButton,
233
+ firstName: firstName || '',
234
+ lastName: lastName || '',
235
+ email: email || '',
236
+ signout: signout,
237
+ notifications: notifications,
238
+ actions: mobileActions,
239
+ switcherAction: switcherAction,
240
+ isAuthenticated: isAuthenticated,
241
+ accountSection: accountSection || [],
242
+ organizationSection: organizationSection || [],
243
+ supportSection: supportSection || [],
244
+ accountMenuHeader: accountMenuHeader || '',
245
+ signOutLabel: signOutLabel || '',
246
+ organizationName: organizationName || '',
247
+ useUserMenu: useUserMenu,
248
+ showUserMenu: showMobileUserMenu,
249
+ setShowUserMenu: setShowMobileUserMenu
250
+ })
204
251
  })
205
- }), (desktop === null || desktop === void 0 ? void 0 : (_desktop$buttons = desktop.buttons) === null || _desktop$buttons === void 0 ? void 0 : _desktop$buttons.some(function (a) {
206
- return a.type === 'profile';
207
- })) && !!profile && /*#__PURE__*/(0, _jsxRuntime.jsx)(UserMenuWrapper, {
252
+ }), useUserMenu && /*#__PURE__*/(0, _jsxRuntime.jsx)(UserMenuWrapper, {
208
253
  ref: userMenuRef,
254
+ className: showUserMenu ? 'open' : 'closed',
255
+ floatRight: false,
209
256
  offsetRight: avatarRight,
210
257
  "data-testid": "testUserMenuWrapper",
211
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_UserMenu.default, _objectSpread(_objectSpread({}, profile), {}, {
212
- show: showUserMenu,
213
- onHideUserMenu: function onHideUserMenu() {
258
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_UserMenu.default, {
259
+ firstName: firstName || '',
260
+ lastName: lastName || '',
261
+ email: email || '',
262
+ organizationName: organizationName || '',
263
+ clickMenuAction: function clickMenuAction() {
214
264
  return setShowUserMenu(false);
215
- }
216
- }))
265
+ },
266
+ accountSection: accountSection,
267
+ organizationSection: organizationSection,
268
+ supportSection: supportSection,
269
+ signOut: signout,
270
+ signOutLabel: signOutLabel || ''
271
+ })
217
272
  })]
218
273
  });
219
274
  };
220
275
 
221
276
  GlobalNavigationBar.propTypes = {
222
- isAuthenticated: _propTypes.default.bool,
223
- useMaxWidth: _propTypes.default.bool,
224
277
  name: _propTypes.default.string,
225
- logo: _propTypes.default.shape({
226
- onClick: _propTypes.default.func,
227
- to: _propTypes.default.string,
228
- showBetaTag: _propTypes.default.bool
229
- }),
230
- testId: _propTypes.default.string
278
+ mainNavigationOptions: _propTypes.default.array,
279
+ secondaryNavigationOptions: _propTypes.default.array,
280
+ firstName: _propTypes.default.string,
281
+ lastName: _propTypes.default.string,
282
+ email: _propTypes.default.string,
283
+ organizationName: _propTypes.default.string,
284
+ signout: _propTypes.default.func,
285
+ isAuthenticated: _propTypes.default.bool,
286
+ notifications: _propTypes.default.array,
287
+ switcherAction: _propTypes.default.func,
288
+ reverseRightSideOrder: _propTypes.default.bool,
289
+ showBetaTag: _propTypes.default.bool,
290
+ accountSection: _propTypes.default.array,
291
+ organizationSection: _propTypes.default.array,
292
+ supportSection: _propTypes.default.array,
293
+ accountMenuHeader: _propTypes.default.string,
294
+ signOutLabel: _propTypes.default.string,
295
+ useUserMenu: _propTypes.default.bool,
296
+ trackLogoClick: _propTypes.default.func,
297
+ mainLogoTo: _propTypes.default.string,
298
+ testId: _propTypes.default.string,
299
+ useMaxWidth: _propTypes.default.bool
231
300
  };
232
301
  var _default = GlobalNavigationBar;
233
302
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"names":["HeaderWrapper","styled","header","COLORS","neutral_200","Z_INDEXES","sticky_menu","BREAKPOINTS","SMALL","MEDIUM","RowLayout","div","HamburgerButton","RightSide","MobileMenuBackdrop","backdrop","fadeIn","fadeOut","UserMenuWrapper","white","props","offsetRight","window","innerWidth","GlobalNavigationBar","name","isAuthenticated","logo","profile","mobile","desktop","testId","useMaxWidth","React","useState","showMobileMenu","setShowMobileMenu","wasMobileMenuOpen","showUserMenu","setShowUserMenu","mobileMenuRef","useRef","userMenuRef","actionsRef","profileButtonRef","current","buttons","find","a","type","ref","mobileMenuButtonRef","rightSideRef","avatarRight","setAvatarRight","useEffect","handleResize","profileRightOffset","getBoundingClientRect","right","addEventListener","removeEventListener","showBetaTag","onClick","to","items","filter","pinned","reverseRightSideOrder","action","user","some"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport Logo from './Logo';\nimport MainMenu from './desktop/MainMenu';\nimport {PageWidth} from '../Layouts';\nimport {COLORS, BREAKPOINTS} from '../styles';\nimport RightSideNav from './desktop/RightSideNav';\nimport MobileMenu from './mobile/MobileMenu';\nimport {Menu} from '../icons/systemicons/SystemIcons';\nimport UserMenu from './desktop/UserMenu';\nimport useClickOutside from '../hooks/useClickOutside';\nimport {fadeIn, fadeOut, Menu as MobileMenuWrapper} from './mobile/CommonStyles';\nimport {Z_INDEXES} from '../styles';\nimport {\n DesktopNavigationMenuProps, MenuProfileButton,\n MobileNavigationMenuProps,\n ProfileMenu\n} from './types';\nimport {IconButton} from '../Button';\nimport DesktopActions, {DesktopActionsRef} from './desktop/DesktopActions';\nimport {usePreviousImmediate} from 'rooks';\n\nconst HeaderWrapper = styled.header`\n background: white;\n border-bottom: 1px solid ${COLORS.neutral_200};\n\n z-index: ${Z_INDEXES.sticky_menu};\n position: relative;\n\n height: 48px;\n\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n }\n\n ${BREAKPOINTS.MEDIUM} {\n height: 64px;\n }\n\n @media all and (-ms-high-contrast: none) {\n height: auto;\n }\n\n @media print {\n border-bottom: none;\n }\n`;\n\nconst RowLayout = styled.div`\n display: flex;\n`;\n\n\nconst HamburgerButton = styled.div`\n ${BREAKPOINTS.SMALL} button {\n height: 56px;\n }\n\n ${BREAKPOINTS.MEDIUM} {\n display: none;\n }\n`;\n\nconst RightSide = styled.div`\n display: flex;\n margin: 0 0 0 auto;\n\n &.reverse {\n ${HamburgerButton} {\n order: -1;\n }\n\n flex-direction: row-reverse;\n }\n`;\n\nconst MobileMenuBackdrop = styled.div`\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n overflow: hidden;\n z-index: ${Z_INDEXES.backdrop};\n visibility: hidden;\n\n\n &.open {\n visibility: visible;\n animation: ${fadeIn} 0.3s ease-in-out;\n }\n\n &.closed {\n visibility: hidden;\n animation: ${fadeOut} 0.3s ease-in-out;\n }\n\n ${BREAKPOINTS.MEDIUM} {\n visibility: hidden !important;\n }\n`;\n\nconst UserMenuWrapper = styled.div<{ offsetRight?: number }>`\n background-color: ${COLORS.white};\n display: flex;\n position: absolute;\n\n ${BREAKPOINTS.MEDIUM} {\n top: 56px;\n right: ${(props) => (props.offsetRight ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\n }\n`;\n\n\ntype GlobalNavigationBarProps = {\n isAuthenticated?: boolean;\n useMaxWidth?: boolean;\n\n name?: string;\n logo?: { onClick?: () => void; to?: string; showBetaTag?: boolean; };\n\n profile?: ProfileMenu;\n\n mobile?: MobileNavigationMenuProps;\n desktop?: DesktopNavigationMenuProps;\n\n testId?: string;\n};\n\n/**\n * @param props\n * @constructor\n * @description This component is a global navigation header bar\n */\nconst GlobalNavigationBar = ({\n name,\n isAuthenticated,\n logo,\n profile,\n mobile,\n desktop,\n testId,\n useMaxWidth = true,\n }: GlobalNavigationBarProps): React.ReactElement<GlobalNavigationBarProps> => {\n const [showMobileMenu, setShowMobileMenu] = React.useState(false);\n const wasMobileMenuOpen = usePreviousImmediate(showMobileMenu);\n\n const [showUserMenu, setShowUserMenu] = React.useState(false);\n const mobileMenuRef = React.useRef(null);\n const userMenuRef = React.useRef<HTMLDivElement>(null);\n\n const actionsRef = React.useRef<DesktopActionsRef>(null);\n const profileButtonRef = React.useRef<HTMLButtonElement | null>() as React.MutableRefObject<HTMLButtonElement | null | undefined>;\n profileButtonRef.current = actionsRef?.current?.buttons?.find(a => a.type === 'profile')?.ref?.current;\n\n const mobileMenuButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const rightSideRef = React.useRef(null);\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\n\n\n useClickOutside(userMenuRef, () => setShowUserMenu(false), [profileButtonRef]);\n useClickOutside(mobileMenuRef, () => setShowMobileMenu(false), [mobileMenuButtonRef]);\n\n React.useEffect(() => {\n if (!profileButtonRef.current) return;\n\n const handleResize = () => {\n const profileRightOffset = profileButtonRef.current?.getBoundingClientRect()?.right;\n setAvatarRight(profileRightOffset || 0);\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [profileButtonRef.current]);\n\n\n return (\n <>\n <HeaderWrapper data-testid={testId}>\n <PageWidth useMaxWidth={useMaxWidth}>\n <RowLayout>\n <Logo name={name || ''} showBetaTag={logo?.showBetaTag} onClick={logo?.onClick} to={logo?.to}/>\n {\n isAuthenticated &&\n <MainMenu items={desktop?.items.filter(a => !a.pinned) || []} rightSideRef={rightSideRef}/>\n }\n <RightSide className={`${desktop?.reverseRightSideOrder ? 'reverse' : ''}`}\n ref={rightSideRef}>\n <RightSideNav items={desktop?.items?.filter(a => a.pinned)} action={desktop?.action}/>\n <DesktopActions ref={actionsRef}\n buttons={desktop?.buttons}\n onShowUserMenu={() => setShowUserMenu(!showUserMenu)}\n user={profile?.user}/>\n <HamburgerButton hidden={!isAuthenticated}>\n <IconButton action={() => setShowMobileMenu(!showMobileMenu)}\n ref={mobileMenuButtonRef}\n shape={'circular'}\n variant={'secondary'}>\n <Menu size=\"24px\"/>\n </IconButton>\n </HamburgerButton>\n </RightSide>\n </RowLayout>\n </PageWidth>\n </HeaderWrapper>\n <MobileMenuBackdrop className={showMobileMenu ? 'open' : !showUserMenu && wasMobileMenuOpen ? 'closed' : ''}>\n <MobileMenuWrapper ref={mobileMenuRef}\n role=\"menu\"\n aria-labelledby=\"UserMenuButton\">\n <MobileMenu {...mobile}\n show={showMobileMenu}\n onClose={() => setShowMobileMenu(false)}\n profile={profile}/>\n </MobileMenuWrapper>\n </MobileMenuBackdrop>\n {\n desktop?.buttons?.some(a => a.type === 'profile') && !!profile &&\n <UserMenuWrapper ref={userMenuRef}\n offsetRight={avatarRight}\n data-testid=\"testUserMenuWrapper\">\n <UserMenu {...profile}\n show={showUserMenu}\n onHideUserMenu={() => setShowUserMenu(false)}/>\n </UserMenuWrapper>\n }\n </>\n );\n};\n\nexport default GlobalNavigationBar;\n"],"file":"GlobalNavigationBar.cjs"}
1
+ {"version":3,"sources":["../../src/GlobalNavigationBar/GlobalNavigationBar.tsx"],"names":["HeaderWrapper","styled","header","COLORS","neutral_200","Z_INDEXES","sticky_menu","BREAKPOINTS","SMALL","MEDIUM","RowLayout","div","RightSide","MenuWrapper","props","isVisible","backdrop","UserMenuWrapper","white","floatRight","offsetRight","window","innerWidth","HamburgerButton","button","GlobalNavigationBar","name","mainNavigationOptions","secondaryNavigationOptions","secondaryButton","actions","firstName","lastName","email","organizationName","signout","isAuthenticated","mobileActions","notifications","switcherAction","reverseRightSideOrder","showBetaTag","accountSection","organizationSection","supportSection","accountMenuHeader","signOutLabel","useUserMenu","mainLogoTo","trackLogoClick","testId","useMaxWidth","React","useState","showMenu","setShowMenu","showUserMenu","setShowUserMenu","showMobileUserMenu","setShowMobileUserMenu","menuRef","useRef","userMenuRef","rightSideRef","avatarRight","setAvatarRight","handleClickMenuAction","useEffect","handleResize","right","document","getElementById","getBoundingClientRect","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport Logo from './Logo';\nimport MainMenu from './MainMenu';\nimport Actions from './Actions';\nimport { PageWidth } from '../Layouts';\nimport { COLORS, BREAKPOINTS } from '../styles';\nimport RightSideNav from './RightSideNav';\nimport { NavOption, NavButton, ActionOptions, UserMenuItem } from '../types';\nimport MobileMenu from './mobile/MobileMenu';\nimport { Menu } from '../icons/systemicons/SystemIcons';\nimport UserMenu from './UserMenu/UserMenu';\nimport useClickOutside from '../hooks/useClickOutside';\nimport { Menu as MobileMenuWrapper } from './mobile/CommonStyles';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\nconst HeaderWrapper = styled.header`\n background: white;\n border-bottom: 1px solid ${COLORS.neutral_200};\n \n z-index: ${Z_INDEXES.sticky_menu};\n position: relative;\n \n height: 48px;\n\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n }\n ${BREAKPOINTS.MEDIUM} {\n height: 64px;\n }\n\n @media all and (-ms-high-contrast: none) {\n height: auto;\n }\n\n @media print {\n border-bottom: none;\n }\n`;\n\nconst RowLayout = styled.div`\n display: flex;\n`;\n\nconst RightSide = styled.div`\n display: flex;\n margin: 0 0 0 auto;\n`;\n\nconst MenuWrapper = styled.div<MenuWrapperProps>`\n background: rgba(0, 0, 0, 0.5);\n display: ${(props) => (props.isVisible ? 'flex' : 'none')};\n position: fixed;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n overflow-y: hidden;\n bottom: 0;\n right: 0;\n z-index: ${Z_INDEXES.backdrop};\n`;\n\nconst UserMenuWrapper = styled.div<UserMenuWrapperProps>`\n background-color: ${COLORS.white};\n display: flex;\n margin-left: ${(props) => (props.floatRight ? 'auto' : 'unset')};\n position: absolute;\n right: ${(props) => (props.offsetRight ? `${window.innerWidth - props.offsetRight + 296}px` : '10%')};\n top: 56px;\n\n &:focus-within,\n &:hover,\n &.open {\n background: ${COLORS.white};\n }\n`;\n\ninterface UserMenuWrapperProps {\n floatRight: boolean;\n offsetRight: number | null | undefined;\n}\n\nconst HamburgerButton = styled.button`\n border-width: 0;\n background-color: ${COLORS.white};\n height: 48px;\n\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n }\n ${BREAKPOINTS.MEDIUM} {\n height: 64px;\n }\n &:hover {\n cursor: pointer;\n }\n\n ${BREAKPOINTS.MEDIUM} {\n display: none;\n }\n`;\n\ninterface MenuWrapperProps {\n isVisible: boolean;\n}\n\ntype Props = {\n name?: string;\n mainNavigationOptions?: NavOption[];\n secondaryNavigationOptions?: NavOption[];\n secondaryButton?: NavButton;\n actions?: ActionOptions;\n firstName?: string;\n lastName?: string;\n email?: string;\n organizationName?: string;\n signout?: (e: any) => void;\n isAuthenticated?: boolean;\n mobileActions?: ActionOptions;\n notifications?: NavOption[];\n switcherAction?: () => void;\n reverseRightSideOrder?: boolean;\n showBetaTag?: boolean;\n accountSection?: UserMenuItem[];\n organizationSection?: UserMenuItem[];\n supportSection?: UserMenuItem[];\n accountMenuHeader?: string;\n signOutLabel?: string;\n useUserMenu?: boolean;\n trackLogoClick?: () => void;\n mainLogoTo?: string;\n testId?: string;\n useMaxWidth?: boolean;\n};\n\n/**\n * @param props\n * @constructor\n * @description This component is a global navigation header bar\n */\nconst GlobalNavigationBar = ({\n name,\n mainNavigationOptions,\n secondaryNavigationOptions,\n secondaryButton,\n actions,\n firstName,\n lastName,\n email,\n organizationName,\n signout,\n isAuthenticated,\n mobileActions,\n notifications,\n switcherAction,\n reverseRightSideOrder = false,\n showBetaTag,\n accountSection,\n organizationSection,\n supportSection,\n accountMenuHeader,\n signOutLabel,\n useUserMenu,\n mainLogoTo,\n trackLogoClick,\n testId,\n useMaxWidth = true,\n}: Props): React.ReactElement<Props> => {\n const [showMenu, setShowMenu] = React.useState(false);\n const [showUserMenu, setShowUserMenu] = React.useState(false);\n const [showMobileUserMenu, setShowMobileUserMenu] = React.useState<boolean>(false);\n const menuRef = React.useRef(null);\n const userMenuRef = React.useRef<HTMLDivElement>(null);\n const rightSideRef = React.useRef(null);\n const [avatarRight, setAvatarRight] = React.useState<number>(0);\n\n const handleClickMenuAction = () => {\n setShowMenu(false);\n };\n\n useClickOutside(userMenuRef, () => (showUserMenu ? setShowUserMenu(false) : null));\n useClickOutside(menuRef, () => {\n if (showMenu) {\n setShowMobileUserMenu(false);\n setShowMenu(false);\n }\n });\n\n React.useEffect(() => {\n const handleResize = () => {\n const right = document?.getElementById('avatarContainer')?.getBoundingClientRect()?.right;\n if (right) {\n setAvatarRight(right);\n }\n };\n\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [document?.getElementById('avatarContainer')?.getBoundingClientRect()?.right]);\n\n return (\n <>\n <HeaderWrapper data-testid={testId}>\n <PageWidth useMaxWidth={useMaxWidth}>\n <RowLayout>\n <Logo name={name || ''} showBetaTag={showBetaTag} onClick={trackLogoClick} to={mainLogoTo} />\n {isAuthenticated && <MainMenu navigationOptions={mainNavigationOptions || []} rightSideRef={rightSideRef} />}\n <RightSide className=\"GlobalNavigationRightSide\" ref={rightSideRef}>\n {reverseRightSideOrder ? (\n <>\n <Actions\n actions={actions}\n firstName={firstName || ''}\n lastName={lastName || ''}\n hideOnLowWidth={true}\n useUserMenu={useUserMenu}\n setShowUserMenu={setShowUserMenu}\n />\n <RightSideNav navigationOptions={secondaryNavigationOptions} secondaryButton={secondaryButton} />\n </>\n ) : (\n <>\n <RightSideNav navigationOptions={secondaryNavigationOptions} secondaryButton={secondaryButton} />\n <Actions\n actions={actions}\n firstName={firstName || ''}\n lastName={lastName || ''}\n hideOnLowWidth={true}\n useUserMenu={useUserMenu}\n setShowUserMenu={setShowUserMenu}\n />\n </>\n )}\n <HamburgerButton onClick={() => setShowMenu(!showMenu)} hidden={!isAuthenticated}>\n <Menu size=\"24px\" />\n </HamburgerButton>\n </RightSide>\n </RowLayout>\n </PageWidth>\n </HeaderWrapper>\n <MenuWrapper className={showMenu ? 'open' : 'closed'} isVisible={showMenu}>\n <MobileMenuWrapper ref={menuRef} onClick={() => {}} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <MobileMenu\n name={name || ''}\n clickMenuAction={() => {\n setShowMobileUserMenu(false);\n handleClickMenuAction();\n }}\n navigationOptions={mainNavigationOptions || []}\n secondaryNavigationOptions={secondaryNavigationOptions}\n secondaryButton={secondaryButton}\n firstName={firstName || ''}\n lastName={lastName || ''}\n email={email || ''}\n signout={signout}\n notifications={notifications}\n actions={mobileActions}\n switcherAction={switcherAction}\n isAuthenticated={isAuthenticated}\n accountSection={accountSection || []}\n organizationSection={organizationSection || []}\n supportSection={supportSection || []}\n accountMenuHeader={accountMenuHeader || ''}\n signOutLabel={signOutLabel || ''}\n organizationName={organizationName || ''}\n useUserMenu={useUserMenu}\n showUserMenu={showMobileUserMenu}\n setShowUserMenu={setShowMobileUserMenu}\n />\n </MobileMenuWrapper>\n </MenuWrapper>\n {useUserMenu && (\n <UserMenuWrapper ref={userMenuRef} className={showUserMenu ? 'open' : 'closed'} floatRight={false} offsetRight={avatarRight} data-testid=\"testUserMenuWrapper\">\n <UserMenu\n firstName={firstName || ''}\n lastName={lastName || ''}\n email={email || ''}\n organizationName={organizationName || ''}\n clickMenuAction={() => setShowUserMenu(false)}\n accountSection={accountSection}\n organizationSection={organizationSection}\n supportSection={supportSection}\n signOut={signout}\n signOutLabel={signOutLabel || ''}\n />\n </UserMenuWrapper>\n )}\n </>\n );\n};\n\nexport default GlobalNavigationBar;\n"],"file":"GlobalNavigationBar.cjs"}