@laerdal/life-react-components 1.11.0-dev.1.full → 1.11.0-dev.2

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.
@@ -49,7 +49,7 @@ var UserMenuScrollContainer = _styledComponents.default.div(_templateObject || (
49
49
 
50
50
  var UserMenuPinnedContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)([""])));
51
51
 
52
- var UserMenuWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ", ";\n height: 100%;\n flex-flow: column;\n\n\n ", " {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ", " 0.2s ease-in-out;\n box-shadow: ", ";\n border-radius: 8px;\n border: 1px solid ", ";\n z-index: ", ";\n padding: 24px 0;\n }\n"])), _styles.COLORS.white, _styles.Z_INDEXES.off_canvas, _breakpoints.default.MEDIUM, _CommonStyles.flowDown, _styles.BOXSHADOWS.BOXSHADOW_CENTERED, _styles.COLORS.neutral_200, _styles.Z_INDEXES.fixed_menu);
52
+ var UserMenuWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ", ";\n height: 100%;\n flex-flow: column;\n\n ", " {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ", " 0.2s ease-in-out;\n box-shadow: ", ";\n border-radius: 8px;\n border: 1px solid ", ";\n z-index: ", ";\n padding: 24px 0;\n }\n"])), _styles.COLORS.white, _styles.Z_INDEXES.off_canvas, _breakpoints.default.MEDIUM, _CommonStyles.flowDown, _styles.BOXSHADOWS.BOXSHADOW_CENTERED, _styles.COLORS.neutral_200, _styles.Z_INDEXES.fixed_menu);
53
53
 
54
54
  var MenuSection = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ", ";\n }\n"])), _styles.COLORS.neutral_200);
55
55
 
@@ -99,8 +99,10 @@ var UserMenu = function UserMenu(_ref) {
99
99
  }, [onHideUserMenu]);
100
100
 
101
101
  var renderItem = function renderItem(item, section, index) {
102
+ var _item$id;
103
+
102
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.MenuItem, {
103
- id: "profile_".concat(index),
105
+ id: (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : "profile_".concat(index),
104
106
  active: !item.external && isActiveRoute(item.to, !!item.exact),
105
107
  item: {
106
108
  value: item.to,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GlobalNavigationBar/desktop/UserMenu.tsx"],"names":["UserMenuScrollContainer","styled","div","UserMenuPinnedContainer","UserMenuWrapper","COLORS","white","Z_INDEXES","off_canvas","Breakpoints","MEDIUM","flowDown","BOXSHADOWS","BOXSHADOW_CENTERED","neutral_200","fixed_menu","MenuSection","SignOutActionWrapper","MenuSectionHeader","neutral_20","ComponentTextStyle","Bold","neutral_500","MenuSectionList","UserMenuSectionListStyling","UserSectionAvatar","UserSectionInfo","UserSectionInfoName","neutral_600","UserSectionInfoEmail","Regular","UserSectionInfoLink","UserSection","UserMenu","show","user","onHideUserMenu","sections","signOut","label","navigate","isActiveRoute","React","useEffect","handleKeyPress","e","key","document","addEventListener","removeEventListener","renderItem","item","section","index","external","to","exact","value","disabled","icon","displayLabel","action","firstName","lastName","email","link","href","target","id","onClick","cloneElement","size","filter","a","pinned","map","divider","items","Size","Large","preventDefault"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AASA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,uBAAuB,GAAGC,0BAAOC,GAAV,iGAA7B;;AAIA,IAAMC,uBAAuB,GAAGF,0BAAOC,GAAV,qFAA7B;;AAGA,IAAME,eAAe,GAAGH,0BAAOC,GAAV,2lBAECG,eAAOC,KAFR,EAeRC,kBAAUC,UAfF,EAoBjBC,qBAAYC,MApBK,EAyBJC,sBAzBI,EA0BHC,mBAAWC,kBA1BR,EA4BGR,eAAOS,WA5BV,EA6BNP,kBAAUQ,UA7BJ,CAArB;;AAmCA,IAAMC,WAAW,GAAGf,0BAAOC,GAAV,+NAOWG,eAAOS,WAPlB,CAAjB;;AAWA,IAAMG,oBAAoB,GAAG,+BAAOD,WAAP,CAAH,2IAA1B;;AAKA,IAAME,iBAAiB,GAAGjB,0BAAOC,GAAV,sPAMDG,eAAOc,UANN,EAQnB,+BAAkBC,2BAAmBC,IAArC,EAA2ChB,eAAOiB,WAAlD,CARmB,CAAvB;;AAWA,IAAMC,eAAe,GAAGtB,0BAAOC,GAAV,gIAIjBsB,wCAJiB,CAArB;;AAQA,IAAMC,iBAAiB,GAAGxB,0BAAOC,GAAV,uRAAvB;;AAcA,IAAMwB,eAAe,GAAGzB,0BAAOC,GAAV,oKAArB;;AAOA,IAAMyB,mBAAmB,GAAG1B,0BAAOC,GAAV,kGACrB,+BAAkBkB,2BAAmBC,IAArC,EAA2ChB,eAAOuB,WAAlD,CADqB,CAAzB;;AAIA,IAAMC,oBAAoB,GAAG5B,0BAAOC,GAAV,4HAEtB,gCAAmBkB,2BAAmBU,OAAtC,EAA+CzB,eAAOiB,WAAtD,CAFsB,CAA1B;;AAKA,IAAMS,mBAAmB,GAAG9B,0BAAOC,GAAV,iOAMrB,gCAAmBkB,2BAAmBC,IAAtC,EAA4C,IAA5C,CANqB,CAAzB;;AAaA,IAAMW,WAAW,GAAG/B,0BAAOC,GAAV,8KAAjB;;AAYA,IAAM+B,QAAQ,GAAG,SAAXA,QAAW,OAA2E;AAAA,MAAzEC,IAAyE,QAAzEA,IAAyE;AAAA,MAAnEC,IAAmE,QAAnEA,IAAmE;AAAA,MAA7DC,cAA6D,QAA7DA,cAA6D;AAAA,MAA7CC,QAA6C,QAA7CA,QAA6C;AAAA,MAAnCC,OAAmC,QAAnCA,OAAmC;AAAA,MAA1BC,KAA0B,QAA1BA,KAA0B;;AAE1F,6BAAkC,4CAAlC;AAAA,MAAOC,QAAP,wBAAOA,QAAP;AAAA,MAAiBC,aAAjB,wBAAiBA,aAAjB;;AAEAC,EAAAA,KAAK,CAACC,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACP,cAAL,EAAqB;;AAErB,aAASQ,cAAT,CAAwBC,CAAxB,EAAgC;AAC9B,UAAIA,CAAC,CAACC,GAAF,KAAU,QAAV,IAAsBD,CAAC,CAACC,GAAF,KAAU,KAApC,EAA2C;AACzCV,QAAAA,cAAc;AACf;AACF;;AAEDW,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,GAbD,EAaG,CAACR,cAAD,CAbH;;AAeA,MAAMc,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAA2BC,OAA3B,EAA2DC,KAA3D;AAAA,wBACjB,qBAAC,kBAAD;AACU,MAAA,EAAE,oBAAaA,KAAb,CADZ;AAEU,MAAA,MAAM,EAAE,CAACF,IAAI,CAACG,QAAN,IAAkBb,aAAa,CAACU,IAAI,CAACI,EAAN,EAAU,CAAC,CAACJ,IAAI,CAACK,KAAjB,CAFjD;AAGU,MAAA,IAAI,EAAE;AACJC,QAAAA,KAAK,EAAEN,IAAI,CAACI,EADR;AAEJG,QAAAA,QAAQ,EAAEP,IAAI,CAACO,QAFX;AAGJC,QAAAA,IAAI,EAAER,IAAI,CAACQ,IAHP;AAIJC,QAAAA,YAAY,EAAET,IAAI,CAACZ;AAJf,OAHhB;AASU,MAAA,cAAc,EAAE,wBAACM,CAAD,EAAO;AACrBM,QAAAA,IAAI,CAACU,MAAL,IAAeV,IAAI,CAACU,MAAL,CAAYhB,CAAZ,CAAf;AACAL,QAAAA,QAAQ,CAACW,IAAI,CAACI,EAAN,EAAU,CAAC,CAACJ,IAAI,CAACG,QAAjB,CAAR;AACD;AAZX,OAAeD,KAAf,CADiB;AAAA,GAAnB;;AAeA,sBACE,sBAAC,eAAD;AAAiB,IAAA,OAAO,EAAEjB,cAA1B;AACiB,IAAA,SAAS,EAAEF,IAAI,GAAG,MAAH,GAAY,EAD5C;AAEiB,IAAA,IAAI,EAAC,MAFtB;AAGiB,uBAAgB,gBAHjC;AAAA,4BAIE,sBAAC,uBAAD;AAAA,8BACE,sBAAC,WAAD;AAAA,gCACE,qBAAC,iBAAD;AAAA,iCACE,qBAAC,4BAAD;AAAe,YAAA,OAAO,EAAE,mBAAM,CAC7B,CADD;AAEe,YAAA,QAAQ,EAAE,CAAC,CAF1B;AAGe,YAAA,QAAQ,EAAEC,IAAI,CAAC2B,SAAL,CAAe,CAAf,IAAoB3B,IAAI,CAAC4B,QAAL,CAAc,CAAd;AAH7C;AADF,UADF,eAOE,sBAAC,eAAD;AAAA,kCACE,qBAAC,mBAAD;AAAqB,oCAArB;AAAA,gCAA0C5B,IAAI,CAAC2B,SAA/C,cAA4D3B,IAAI,CAAC4B,QAAjE;AAAA,YADF,eAEE,qBAAC,oBAAD;AAAsB,oCAAtB;AAAA,sBAAwC5B,IAAI,CAAC6B;AAA7C,YAFF,EAII7B,IAAI,CAAC8B,IAAL,iBACA,qBAAC,oBAAD;AAAW,YAAA,OAAO,EAAE,SAApB;AACW,YAAA,IAAI,EAAE9B,IAAI,CAAC8B,IAAL,CAAUC,IAD3B;AAEW,YAAA,MAAM,EAAE/B,IAAI,CAAC8B,IAAL,CAAUE,MAF7B;AAGW,YAAA,EAAE,EAAEhC,IAAI,CAAC8B,IAAL,CAAUG,EAHzB;AAIW,YAAA,OAAO,EAAEjC,IAAI,CAAC8B,IAAL,CAAUI,OAJ9B;AAAA,mCAKE,sBAAC,mBAAD;AAAA,sCACE;AAAA,0BACGlC,IAAI,CAAC8B,IAAL,CAAU1B;AADb,gBADF,EAIGJ,IAAI,CAAC8B,IAAL,CAAUN,IAAV,iBAAkBjB,KAAK,CAAC4B,YAAN,CAAmBnC,IAAI,CAAC8B,IAAL,CAAUN,IAA7B,EAAmC;AAACY,gBAAAA,IAAI,EAAE;AAAP,eAAnC,CAJrB;AAAA;AALF,YALJ;AAAA,UAPF;AAAA,QADF,EA6BIlC,QAAQ,CAACmC,MAAT,CAAgB,UAAAC,CAAC;AAAA,eAAI,CAACA,CAAC,CAACC,MAAP;AAAA,OAAjB,EAAgCC,GAAhC,CAAoC,UAACvB,OAAD,EAAUC,KAAV;AAAA,4BAClC,sBAAC,WAAD;AAAyB,UAAA,SAAS,EAAED,OAAO,CAACwB,OAAR,GAAkB,SAAlB,GAA8B,EAAlE;AAAA,qBACGxB,OAAO,CAACb,KAAR,iBAAiB,qBAAC,iBAAD;AAAA,sBAAoBa,OAAO,CAACb;AAA5B,YADpB,eAEE,qBAAC,eAAD;AAAA,sBACGa,OAAO,CAACyB,KAAR,CAAcF,GAAd,CAAkB,UAACxB,IAAD,EAAOE,KAAP;AAAA,qBAAiBH,UAAU,CAACC,IAAD,EAAOC,OAAP,EAAgBC,KAAhB,CAA3B;AAAA,aAAlB;AADH,aAAsBA,KAAtB,CAFF;AAAA,WAAkBA,KAAlB,CADkC;AAAA,OAApC,CA7BJ;AAAA,MAJF,eA2CE,sBAAC,uBAAD;AAAA,iBAEIhB,QAAQ,CAACmC,MAAT,CAAgB,UAAAC,CAAC;AAAA,eAAI,CAAC,CAACA,CAAC,CAACC,MAAR;AAAA,OAAjB,EAAiCC,GAAjC,CAAqC,UAACvB,OAAD,EAAUC,KAAV;AAAA,4BACnC,sBAAC,WAAD;AAAyB,UAAA,SAAS,EAAED,OAAO,CAACwB,OAAR,IAAmBvB,KAAK,KAAK,CAA7B,GAAiC,SAAjC,GAA6C,EAAjF;AAAA,qBACGD,OAAO,CAACb,KAAR,iBAAiB,qBAAC,iBAAD;AAAA,sBAAoBa,OAAO,CAACb;AAA5B,YADpB,eAEE,qBAAC,eAAD;AAAA,sBACGa,OAAO,CAACyB,KAAR,CAAcF,GAAd,CAAkB,UAACxB,IAAD,EAAOE,KAAP;AAAA,qBAAiBH,UAAU,CAACC,IAAD,EAAOC,OAAP,EAAgBC,KAAhB,CAA3B;AAAA,aAAlB;AADH,aAAsBA,KAAtB,CAFF;AAAA,WAAkBA,KAAlB,CADmC;AAAA,OAArC,CAFJ,EAYIf,OAAO,iBACP,qBAAC,oBAAD;AAAA,+BACE,qBAAC,cAAD;AAAQ,UAAA,KAAK,EAAE,OAAf;AACQ,UAAA,OAAO,EAAC,WADhB;AAEQ,UAAA,IAAI,eAAE,qBAAC,kBAAD,CAAa,MAAb,KAFd;AAGQ,UAAA,IAAI,EAAEwC,YAAKC,KAHnB;AAIQ,UAAA,OAAO,EAAE,iBAAAlC,CAAC,EAAI;AACZA,YAAAA,CAAC,CAACmC,cAAF;AACA1C,YAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEuB,MAAT;AACD,WAPT;AAAA,oBAQGvB,OARH,aAQGA,OARH,uBAQGA,OAAO,CAAEC;AARZ;AADF,QAbJ;AAAA,MA3CF;AAAA,IADF;AAyED,CA3GD;;;AAJEL,EAAAA,I;AACAE,EAAAA,c;;eAgHaH,Q","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../../Button';\nimport {\n BOXSHADOWS,\n COLORS,\n ComponentLStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n Z_INDEXES\n} from '../../styles';\nimport {Size} from '../../types';\nimport {flowDown, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {SystemIcons} from '../../icons';\nimport {HyperLink} from '../../HyperLink';\nimport {MenuNavigationItem, MenuNavigationItemTypeItem, MenuNavigationSection, ProfileMenu} from '../types';\nimport MobileMenuHeader from '../mobile/MobileMenuHeader';\nimport Breakpoints from '../../styles/breakpoints';\nimport {MenuItem} from '../../MenuItem';\nimport {useNavigationHelper} from '../../common/NavigationHelper';\nimport {ProfileButton} from '../../ProfileButton';\n\nconst UserMenuScrollContainer = styled.div`\n flex: 1;\n`;\n\nconst UserMenuPinnedContainer = styled.div``;\n\n\nconst UserMenuWrapper = styled.div`\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n flex-flow: column;\n\n\n ${Breakpoints.MEDIUM} {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ${flowDown} 0.2s ease-in-out;\n box-shadow: ${BOXSHADOWS.BOXSHADOW_CENTERED};\n border-radius: 8px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: ${Z_INDEXES.fixed_menu};\n padding: 24px 0;\n }\n`;\n\n\nconst MenuSection = styled.div`\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst SignOutActionWrapper = styled(MenuSection)`\n align-items: center;\n justify-content: center;\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 24px 4px 24px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\n\nconst UserSectionAvatar = styled.div`\n pointer-events: none;\n\n button {\n padding: 0 !important;\n }\n\n button > div {\n width: 48px !important;\n height: 48px !important;\n border-radius: 50% !important;\n }\n`;\n\nconst UserSectionInfo = styled.div`\n padding: 2px 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst UserSectionInfoName = styled.div`\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\nconst UserSectionInfoEmail = styled.div`\n word-break: break-all;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n`;\n\nconst UserSectionInfoLink = styled.div`\n padding: 2px 0;\n display: flex;\n align-items: center;\n gap: 4px;\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nconst UserSection = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 24px 8px 24px;\n gap: 16px;\n`;\n\ninterface UserMenuProps extends ProfileMenu {\n show?: boolean;\n onHideUserMenu: () => void;\n}\n\nconst UserMenu = ({show, user, onHideUserMenu, sections, signOut, label}: UserMenuProps) => {\n\n const {navigate, isActiveRoute} = useNavigationHelper();\n\n React.useEffect(() => {\n if (!onHideUserMenu) return;\n\n function handleKeyPress(e: any) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n onHideUserMenu();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [onHideUserMenu]);\n\n const renderItem = (item: MenuNavigationItem, section: MenuNavigationSection, index: number) =>\n <MenuItem key={index}\n id={`profile_${index}`}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}/>\n\n return (\n <UserMenuWrapper onClick={onHideUserMenu}\n className={show ? 'show' : ''}\n role=\"menu\"\n aria-labelledby=\"UserMenuButton\">\n <UserMenuScrollContainer>\n <UserSection>\n <UserSectionAvatar>\n <ProfileButton onClick={() => {\n }}\n tabIndex={-1}\n initials={user.firstName[0] + user.lastName[0]}/>\n </UserSectionAvatar>\n <UserSectionInfo>\n <UserSectionInfoName data-hj-suppress>{`${user.firstName} ${user.lastName}`}</UserSectionInfoName>\n <UserSectionInfoEmail data-hj-suppress>{user.email}</UserSectionInfoEmail>\n {\n user.link &&\n <HyperLink variant={'default'}\n href={user.link.href}\n target={user.link.target}\n id={user.link.id}\n onClick={user.link.onClick}>\n <UserSectionInfoLink>\n <span>\n {user.link.label}\n </span>\n {user.link.icon && React.cloneElement(user.link.icon, {size: '16px'})}\n </UserSectionInfoLink>\n </HyperLink>\n }\n </UserSectionInfo>\n </UserSection>\n {\n sections.filter(a => !a.pinned).map((section, index) =>\n <MenuSection key={index} className={section.divider ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>\n {section.items.map((item, index) => renderItem(item, section, index))}\n </MenuSectionList>\n </MenuSection>\n )\n }\n </UserMenuScrollContainer>\n <UserMenuPinnedContainer>\n {\n sections.filter(a => !!a.pinned).map((section, index) =>\n <MenuSection key={index} className={section.divider || index === 0 ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>\n {section.items.map((item, index) => renderItem(item, section, index))}\n </MenuSectionList>\n </MenuSection>\n )\n }\n {\n signOut &&\n <SignOutActionWrapper>\n <Button width={'272px'}\n variant=\"secondary\"\n icon={<SystemIcons.Logout/>}\n size={Size.Large}\n onClick={e => {\n e.preventDefault();\n signOut?.action();\n }}>\n {signOut?.label}\n </Button>\n </SignOutActionWrapper>\n }\n </UserMenuPinnedContainer>\n </UserMenuWrapper>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.cjs"}
1
+ {"version":3,"sources":["../../../src/GlobalNavigationBar/desktop/UserMenu.tsx"],"names":["UserMenuScrollContainer","styled","div","UserMenuPinnedContainer","UserMenuWrapper","COLORS","white","Z_INDEXES","off_canvas","Breakpoints","MEDIUM","flowDown","BOXSHADOWS","BOXSHADOW_CENTERED","neutral_200","fixed_menu","MenuSection","SignOutActionWrapper","MenuSectionHeader","neutral_20","ComponentTextStyle","Bold","neutral_500","MenuSectionList","UserMenuSectionListStyling","UserSectionAvatar","UserSectionInfo","UserSectionInfoName","neutral_600","UserSectionInfoEmail","Regular","UserSectionInfoLink","UserSection","UserMenu","show","user","onHideUserMenu","sections","signOut","label","navigate","isActiveRoute","React","useEffect","handleKeyPress","e","key","document","addEventListener","removeEventListener","renderItem","item","section","index","id","external","to","exact","value","disabled","icon","displayLabel","action","firstName","lastName","email","link","href","target","onClick","cloneElement","size","filter","a","pinned","map","divider","items","Size","Large","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { Button } from '../../Button';\nimport { BOXSHADOWS, COLORS, ComponentLStyling, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES } from '../../styles';\nimport { Size } from '../../types';\nimport { flowDown, UserMenuSectionListStyling } from '../mobile/CommonStyles';\nimport { SystemIcons } from '../../icons';\nimport { HyperLink } from '../../HyperLink';\nimport { MenuNavigationItem, MenuNavigationItemTypeItem, MenuNavigationSection, ProfileMenu } from '../types';\nimport MobileMenuHeader from '../mobile/MobileMenuHeader';\nimport Breakpoints from '../../styles/breakpoints';\nimport { MenuItem } from '../../MenuItem';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { ProfileButton } from '../../ProfileButton';\n\nconst UserMenuScrollContainer = styled.div`\n flex: 1;\n`;\n\nconst UserMenuPinnedContainer = styled.div``;\n\nconst UserMenuWrapper = styled.div`\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n flex-flow: column;\n\n ${Breakpoints.MEDIUM} {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ${flowDown} 0.2s ease-in-out;\n box-shadow: ${BOXSHADOWS.BOXSHADOW_CENTERED};\n border-radius: 8px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: ${Z_INDEXES.fixed_menu};\n padding: 24px 0;\n }\n`;\n\nconst MenuSection = styled.div`\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst SignOutActionWrapper = styled(MenuSection)`\n align-items: center;\n justify-content: center;\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 24px 4px 24px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\nconst UserSectionAvatar = styled.div`\n pointer-events: none;\n\n button {\n padding: 0 !important;\n }\n\n button > div {\n width: 48px !important;\n height: 48px !important;\n border-radius: 50% !important;\n }\n`;\n\nconst UserSectionInfo = styled.div`\n padding: 2px 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst UserSectionInfoName = styled.div`\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\nconst UserSectionInfoEmail = styled.div`\n word-break: break-all;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n`;\n\nconst UserSectionInfoLink = styled.div`\n padding: 2px 0;\n display: flex;\n align-items: center;\n gap: 4px;\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nconst UserSection = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 24px 8px 24px;\n gap: 16px;\n`;\n\ninterface UserMenuProps extends ProfileMenu {\n show?: boolean;\n onHideUserMenu: () => void;\n}\n\nconst UserMenu = ({ show, user, onHideUserMenu, sections, signOut, label }: UserMenuProps) => {\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n React.useEffect(() => {\n if (!onHideUserMenu) return;\n\n function handleKeyPress(e: any) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n onHideUserMenu();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [onHideUserMenu]);\n\n const renderItem = (item: MenuNavigationItem, section: MenuNavigationSection, index: number) => (\n <MenuItem\n key={index}\n id={item.id ?? `profile_${index}`}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n\n return (\n <UserMenuWrapper onClick={onHideUserMenu} className={show ? 'show' : ''} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <UserMenuScrollContainer>\n <UserSection>\n <UserSectionAvatar>\n <ProfileButton onClick={() => {}} tabIndex={-1} initials={user.firstName[0] + user.lastName[0]} />\n </UserSectionAvatar>\n <UserSectionInfo>\n <UserSectionInfoName data-hj-suppress>{`${user.firstName} ${user.lastName}`}</UserSectionInfoName>\n <UserSectionInfoEmail data-hj-suppress>{user.email}</UserSectionInfoEmail>\n {user.link && (\n <HyperLink variant={'default'} href={user.link.href} target={user.link.target} id={user.link.id} onClick={user.link.onClick}>\n <UserSectionInfoLink>\n <span>{user.link.label}</span>\n {user.link.icon && React.cloneElement(user.link.icon, { size: '16px' })}\n </UserSectionInfoLink>\n </HyperLink>\n )}\n </UserSectionInfo>\n </UserSection>\n {sections\n .filter((a) => !a.pinned)\n .map((section, index) => (\n <MenuSection key={index} className={section.divider ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>{section.items.map((item, index) => renderItem(item, section, index))}</MenuSectionList>\n </MenuSection>\n ))}\n </UserMenuScrollContainer>\n <UserMenuPinnedContainer>\n {sections\n .filter((a) => !!a.pinned)\n .map((section, index) => (\n <MenuSection key={index} className={section.divider || index === 0 ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>{section.items.map((item, index) => renderItem(item, section, index))}</MenuSectionList>\n </MenuSection>\n ))}\n {signOut && (\n <SignOutActionWrapper>\n <Button\n width={'272px'}\n variant=\"secondary\"\n icon={<SystemIcons.Logout />}\n size={Size.Large}\n onClick={(e) => {\n e.preventDefault();\n signOut?.action();\n }}>\n {signOut?.label}\n </Button>\n </SignOutActionWrapper>\n )}\n </UserMenuPinnedContainer>\n </UserMenuWrapper>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.cjs"}
@@ -19,7 +19,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
19
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
20
20
  var UserMenuScrollContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex: 1;\n"])));
21
21
  var UserMenuPinnedContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([""])));
22
- var UserMenuWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ", ";\n height: 100%;\n flex-flow: column;\n\n\n ", " {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ", " 0.2s ease-in-out;\n box-shadow: ", ";\n border-radius: 8px;\n border: 1px solid ", ";\n z-index: ", ";\n padding: 24px 0;\n }\n"])), COLORS.white, Z_INDEXES.off_canvas, Breakpoints.MEDIUM, flowDown, BOXSHADOWS.BOXSHADOW_CENTERED, COLORS.neutral_200, Z_INDEXES.fixed_menu);
22
+ var UserMenuWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: 0;\n background-color: ", ";\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ", ";\n height: 100%;\n flex-flow: column;\n\n ", " {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ", " 0.2s ease-in-out;\n box-shadow: ", ";\n border-radius: 8px;\n border: 1px solid ", ";\n z-index: ", ";\n padding: 24px 0;\n }\n"])), COLORS.white, Z_INDEXES.off_canvas, Breakpoints.MEDIUM, flowDown, BOXSHADOWS.BOXSHADOW_CENTERED, COLORS.neutral_200, Z_INDEXES.fixed_menu);
23
23
  var MenuSection = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ", ";\n }\n"])), COLORS.neutral_200);
24
24
  var SignOutActionWrapper = styled(MenuSection)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n align-items: center;\n justify-content: center;\n"])));
25
25
  var MenuSectionHeader = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 8px 24px 4px 24px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ", ";\n\n ", "\n"])), COLORS.neutral_20, ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500));
@@ -59,8 +59,10 @@ var UserMenu = function UserMenu(_ref) {
59
59
  }, [onHideUserMenu]);
60
60
 
61
61
  var renderItem = function renderItem(item, section, index) {
62
+ var _item$id;
63
+
62
64
  return /*#__PURE__*/_jsx(MenuItem, {
63
- id: "profile_".concat(index),
65
+ id: (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : "profile_".concat(index),
64
66
  active: !item.external && isActiveRoute(item.to, !!item.exact),
65
67
  item: {
66
68
  value: item.to,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GlobalNavigationBar/desktop/UserMenu.tsx"],"names":["React","styled","Button","BOXSHADOWS","COLORS","ComponentLStyling","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","Z_INDEXES","Size","flowDown","UserMenuSectionListStyling","SystemIcons","HyperLink","Breakpoints","MenuItem","useNavigationHelper","ProfileButton","UserMenuScrollContainer","div","UserMenuPinnedContainer","UserMenuWrapper","white","off_canvas","MEDIUM","BOXSHADOW_CENTERED","neutral_200","fixed_menu","MenuSection","SignOutActionWrapper","MenuSectionHeader","neutral_20","Bold","neutral_500","MenuSectionList","UserSectionAvatar","UserSectionInfo","UserSectionInfoName","neutral_600","UserSectionInfoEmail","Regular","UserSectionInfoLink","UserSection","UserMenu","show","user","onHideUserMenu","sections","signOut","label","navigate","isActiveRoute","useEffect","handleKeyPress","e","key","document","addEventListener","removeEventListener","renderItem","item","section","index","external","to","exact","value","disabled","icon","displayLabel","action","firstName","lastName","email","link","href","target","id","onClick","cloneElement","size","filter","a","pinned","map","divider","items","Large","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../../Button';\nimport {\n BOXSHADOWS,\n COLORS,\n ComponentLStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n Z_INDEXES\n} from '../../styles';\nimport {Size} from '../../types';\nimport {flowDown, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {SystemIcons} from '../../icons';\nimport {HyperLink} from '../../HyperLink';\nimport {MenuNavigationItem, MenuNavigationItemTypeItem, MenuNavigationSection, ProfileMenu} from '../types';\nimport MobileMenuHeader from '../mobile/MobileMenuHeader';\nimport Breakpoints from '../../styles/breakpoints';\nimport {MenuItem} from '../../MenuItem';\nimport {useNavigationHelper} from '../../common/NavigationHelper';\nimport {ProfileButton} from '../../ProfileButton';\n\nconst UserMenuScrollContainer = styled.div`\n flex: 1;\n`;\n\nconst UserMenuPinnedContainer = styled.div``;\n\n\nconst UserMenuWrapper = styled.div`\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n flex-flow: column;\n\n\n ${Breakpoints.MEDIUM} {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ${flowDown} 0.2s ease-in-out;\n box-shadow: ${BOXSHADOWS.BOXSHADOW_CENTERED};\n border-radius: 8px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: ${Z_INDEXES.fixed_menu};\n padding: 24px 0;\n }\n`;\n\n\nconst MenuSection = styled.div`\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst SignOutActionWrapper = styled(MenuSection)`\n align-items: center;\n justify-content: center;\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 24px 4px 24px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\n\nconst UserSectionAvatar = styled.div`\n pointer-events: none;\n\n button {\n padding: 0 !important;\n }\n\n button > div {\n width: 48px !important;\n height: 48px !important;\n border-radius: 50% !important;\n }\n`;\n\nconst UserSectionInfo = styled.div`\n padding: 2px 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst UserSectionInfoName = styled.div`\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\nconst UserSectionInfoEmail = styled.div`\n word-break: break-all;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n`;\n\nconst UserSectionInfoLink = styled.div`\n padding: 2px 0;\n display: flex;\n align-items: center;\n gap: 4px;\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nconst UserSection = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 24px 8px 24px;\n gap: 16px;\n`;\n\ninterface UserMenuProps extends ProfileMenu {\n show?: boolean;\n onHideUserMenu: () => void;\n}\n\nconst UserMenu = ({show, user, onHideUserMenu, sections, signOut, label}: UserMenuProps) => {\n\n const {navigate, isActiveRoute} = useNavigationHelper();\n\n React.useEffect(() => {\n if (!onHideUserMenu) return;\n\n function handleKeyPress(e: any) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n onHideUserMenu();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [onHideUserMenu]);\n\n const renderItem = (item: MenuNavigationItem, section: MenuNavigationSection, index: number) =>\n <MenuItem key={index}\n id={`profile_${index}`}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}/>\n\n return (\n <UserMenuWrapper onClick={onHideUserMenu}\n className={show ? 'show' : ''}\n role=\"menu\"\n aria-labelledby=\"UserMenuButton\">\n <UserMenuScrollContainer>\n <UserSection>\n <UserSectionAvatar>\n <ProfileButton onClick={() => {\n }}\n tabIndex={-1}\n initials={user.firstName[0] + user.lastName[0]}/>\n </UserSectionAvatar>\n <UserSectionInfo>\n <UserSectionInfoName data-hj-suppress>{`${user.firstName} ${user.lastName}`}</UserSectionInfoName>\n <UserSectionInfoEmail data-hj-suppress>{user.email}</UserSectionInfoEmail>\n {\n user.link &&\n <HyperLink variant={'default'}\n href={user.link.href}\n target={user.link.target}\n id={user.link.id}\n onClick={user.link.onClick}>\n <UserSectionInfoLink>\n <span>\n {user.link.label}\n </span>\n {user.link.icon && React.cloneElement(user.link.icon, {size: '16px'})}\n </UserSectionInfoLink>\n </HyperLink>\n }\n </UserSectionInfo>\n </UserSection>\n {\n sections.filter(a => !a.pinned).map((section, index) =>\n <MenuSection key={index} className={section.divider ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>\n {section.items.map((item, index) => renderItem(item, section, index))}\n </MenuSectionList>\n </MenuSection>\n )\n }\n </UserMenuScrollContainer>\n <UserMenuPinnedContainer>\n {\n sections.filter(a => !!a.pinned).map((section, index) =>\n <MenuSection key={index} className={section.divider || index === 0 ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>\n {section.items.map((item, index) => renderItem(item, section, index))}\n </MenuSectionList>\n </MenuSection>\n )\n }\n {\n signOut &&\n <SignOutActionWrapper>\n <Button width={'272px'}\n variant=\"secondary\"\n icon={<SystemIcons.Logout/>}\n size={Size.Large}\n onClick={e => {\n e.preventDefault();\n signOut?.action();\n }}>\n {signOut?.label}\n </Button>\n </SignOutActionWrapper>\n }\n </UserMenuPinnedContainer>\n </UserMenuWrapper>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.js"}
1
+ {"version":3,"sources":["../../../src/GlobalNavigationBar/desktop/UserMenu.tsx"],"names":["React","styled","Button","BOXSHADOWS","COLORS","ComponentLStyling","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","Z_INDEXES","Size","flowDown","UserMenuSectionListStyling","SystemIcons","HyperLink","Breakpoints","MenuItem","useNavigationHelper","ProfileButton","UserMenuScrollContainer","div","UserMenuPinnedContainer","UserMenuWrapper","white","off_canvas","MEDIUM","BOXSHADOW_CENTERED","neutral_200","fixed_menu","MenuSection","SignOutActionWrapper","MenuSectionHeader","neutral_20","Bold","neutral_500","MenuSectionList","UserSectionAvatar","UserSectionInfo","UserSectionInfoName","neutral_600","UserSectionInfoEmail","Regular","UserSectionInfoLink","UserSection","UserMenu","show","user","onHideUserMenu","sections","signOut","label","navigate","isActiveRoute","useEffect","handleKeyPress","e","key","document","addEventListener","removeEventListener","renderItem","item","section","index","id","external","to","exact","value","disabled","icon","displayLabel","action","firstName","lastName","email","link","href","target","onClick","cloneElement","size","filter","a","pinned","map","divider","items","Large","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { Button } from '../../Button';\nimport { BOXSHADOWS, COLORS, ComponentLStyling, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES } from '../../styles';\nimport { Size } from '../../types';\nimport { flowDown, UserMenuSectionListStyling } from '../mobile/CommonStyles';\nimport { SystemIcons } from '../../icons';\nimport { HyperLink } from '../../HyperLink';\nimport { MenuNavigationItem, MenuNavigationItemTypeItem, MenuNavigationSection, ProfileMenu } from '../types';\nimport MobileMenuHeader from '../mobile/MobileMenuHeader';\nimport Breakpoints from '../../styles/breakpoints';\nimport { MenuItem } from '../../MenuItem';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { ProfileButton } from '../../ProfileButton';\n\nconst UserMenuScrollContainer = styled.div`\n flex: 1;\n`;\n\nconst UserMenuPinnedContainer = styled.div``;\n\nconst UserMenuWrapper = styled.div`\n margin: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n width: 320px;\n\n position: absolute;\n\n &.show {\n display: block;\n }\n\n top: 0;\n right: 0;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n flex-flow: column;\n\n ${Breakpoints.MEDIUM} {\n flex-flow: initial;\n top: initial;\n right: initial;\n height: initial;\n animation: ${flowDown} 0.2s ease-in-out;\n box-shadow: ${BOXSHADOWS.BOXSHADOW_CENTERED};\n border-radius: 8px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: ${Z_INDEXES.fixed_menu};\n padding: 24px 0;\n }\n`;\n\nconst MenuSection = styled.div`\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst SignOutActionWrapper = styled(MenuSection)`\n align-items: center;\n justify-content: center;\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 24px 4px 24px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\nconst UserSectionAvatar = styled.div`\n pointer-events: none;\n\n button {\n padding: 0 !important;\n }\n\n button > div {\n width: 48px !important;\n height: 48px !important;\n border-radius: 50% !important;\n }\n`;\n\nconst UserSectionInfo = styled.div`\n padding: 2px 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst UserSectionInfoName = styled.div`\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\nconst UserSectionInfoEmail = styled.div`\n word-break: break-all;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n`;\n\nconst UserSectionInfoLink = styled.div`\n padding: 2px 0;\n display: flex;\n align-items: center;\n gap: 4px;\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nconst UserSection = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0 24px 8px 24px;\n gap: 16px;\n`;\n\ninterface UserMenuProps extends ProfileMenu {\n show?: boolean;\n onHideUserMenu: () => void;\n}\n\nconst UserMenu = ({ show, user, onHideUserMenu, sections, signOut, label }: UserMenuProps) => {\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n React.useEffect(() => {\n if (!onHideUserMenu) return;\n\n function handleKeyPress(e: any) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n onHideUserMenu();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [onHideUserMenu]);\n\n const renderItem = (item: MenuNavigationItem, section: MenuNavigationSection, index: number) => (\n <MenuItem\n key={index}\n id={item.id ?? `profile_${index}`}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n\n return (\n <UserMenuWrapper onClick={onHideUserMenu} className={show ? 'show' : ''} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <UserMenuScrollContainer>\n <UserSection>\n <UserSectionAvatar>\n <ProfileButton onClick={() => {}} tabIndex={-1} initials={user.firstName[0] + user.lastName[0]} />\n </UserSectionAvatar>\n <UserSectionInfo>\n <UserSectionInfoName data-hj-suppress>{`${user.firstName} ${user.lastName}`}</UserSectionInfoName>\n <UserSectionInfoEmail data-hj-suppress>{user.email}</UserSectionInfoEmail>\n {user.link && (\n <HyperLink variant={'default'} href={user.link.href} target={user.link.target} id={user.link.id} onClick={user.link.onClick}>\n <UserSectionInfoLink>\n <span>{user.link.label}</span>\n {user.link.icon && React.cloneElement(user.link.icon, { size: '16px' })}\n </UserSectionInfoLink>\n </HyperLink>\n )}\n </UserSectionInfo>\n </UserSection>\n {sections\n .filter((a) => !a.pinned)\n .map((section, index) => (\n <MenuSection key={index} className={section.divider ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>{section.items.map((item, index) => renderItem(item, section, index))}</MenuSectionList>\n </MenuSection>\n ))}\n </UserMenuScrollContainer>\n <UserMenuPinnedContainer>\n {sections\n .filter((a) => !!a.pinned)\n .map((section, index) => (\n <MenuSection key={index} className={section.divider || index === 0 ? 'divider' : ''}>\n {section.label && <MenuSectionHeader>{section.label}</MenuSectionHeader>}\n <MenuSectionList key={index}>{section.items.map((item, index) => renderItem(item, section, index))}</MenuSectionList>\n </MenuSection>\n ))}\n {signOut && (\n <SignOutActionWrapper>\n <Button\n width={'272px'}\n variant=\"secondary\"\n icon={<SystemIcons.Logout />}\n size={Size.Large}\n onClick={(e) => {\n e.preventDefault();\n signOut?.action();\n }}>\n {signOut?.label}\n </Button>\n </SignOutActionWrapper>\n )}\n </UserMenuPinnedContainer>\n </UserMenuWrapper>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "1.11.0-dev.1.full",
3
+ "version": "1.11.0-dev.2",
4
4
  "private": false,
5
5
  "author": "Thomas Kalve <thomas.kalve@laerdal.com>",
6
6
  "contributors": [