@pega/cosmos-react-wss 10.0.0-build.10.2 → 10.0.0-build.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.js +3 -3
- package/lib/components/AppShell/AppShell.js.map +1 -1
- package/lib/components/AppShell/AppShell.types.d.ts +2 -0
- package/lib/components/AppShell/AppShell.types.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.types.js.map +1 -1
- package/lib/components/AppShell/GroupedMenu.styles.d.ts +2 -4
- package/lib/components/AppShell/GroupedMenu.styles.d.ts.map +1 -1
- package/lib/components/AppShell/GroupedMenu.styles.js +14 -18
- package/lib/components/AppShell/GroupedMenu.styles.js.map +1 -1
- package/lib/components/AppShell/MegaMenu.js +1 -1
- package/lib/components/AppShell/MegaMenu.js.map +1 -1
- package/lib/components/AppShell/MegaMenu.styles.d.ts +1 -3
- package/lib/components/AppShell/MegaMenu.styles.d.ts.map +1 -1
- package/lib/components/AppShell/MegaMenu.styles.js +2 -5
- package/lib/components/AppShell/MegaMenu.styles.js.map +1 -1
- package/lib/components/AppShell/MobileHeaderContent.d.ts +1 -0
- package/lib/components/AppShell/MobileHeaderContent.d.ts.map +1 -1
- package/lib/components/AppShell/MobileHeaderContent.js +2 -2
- package/lib/components/AppShell/MobileHeaderContent.js.map +1 -1
- package/lib/components/Footer/Footer.styles.d.ts +1 -3
- package/lib/components/Footer/Footer.styles.d.ts.map +1 -1
- package/lib/components/Footer/Footer.styles.js +1 -3
- package/lib/components/Footer/Footer.styles.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,+BAA+B,EAAkB,MAAM,yBAAyB,CAAC;AAc/F,OAAO,KAAK,EAAE,aAAa,EAAgD,MAAM,kBAAkB,CAAC;AAwBpG,QAAA,MAAM,QAAQ,EAAE,+BAA+B,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,+BAA+B,EAAkB,MAAM,yBAAyB,CAAC;AAc/F,OAAO,KAAK,EAAE,aAAa,EAAgD,MAAM,kBAAkB,CAAC;AAwBpG,QAAA,MAAM,QAAQ,EAAE,+BAA+B,CAAC,aAAa,CA0wB3D,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -17,7 +17,7 @@ import AppShellMenuControl from './AppShellMenuControl';
|
|
|
17
17
|
import { MegaMenuPanel, MegaMenuTriggers, useMegaMenu } from './MegaMenu';
|
|
18
18
|
registerIcon(shareExternalIcon);
|
|
19
19
|
const AppShell = forwardRef(function AppShell(props, ref) {
|
|
20
|
-
const { main, banners, appInfo, mainNav, navLinks: deprecatedNavLinks, appSwitcherMenu: configuredAppSwitcherMenu, operator, notifications, searchInput, contextSwitcher = {}, navAlignment = 'end', navPosition = 'inline', isDefaultWSS = true, helpMenu, shareApp, portalSwitcher, footer } = props;
|
|
20
|
+
const { main, banners, appInfo, mainNav, navLinks: deprecatedNavLinks, appSwitcherMenu: configuredAppSwitcherMenu, operator, showOperator = true, notifications, searchInput, contextSwitcher = {}, navAlignment = 'end', navPosition = 'inline', isDefaultWSS = true, helpMenu, shareApp, portalSwitcher, footer } = props;
|
|
21
21
|
const configuredMainMenu = Array.isArray(mainNav) ? undefined : mainNav;
|
|
22
22
|
let legacyNavLinks;
|
|
23
23
|
if (Array.isArray(mainNav)) {
|
|
@@ -294,7 +294,7 @@ const AppShell = forwardRef(function AppShell(props, ref) {
|
|
|
294
294
|
}, children: _jsx(Notifications, { ...notifications, popover: true }) }) })] })), helpMenu && (_jsx(MenuButton, { variant: 'simple', icon: 'help', text: t('app_header_help'), iconOnly: true, menu: {
|
|
295
295
|
items: helpMenu
|
|
296
296
|
} })), portalSwitcher && _jsx(MenuButton, { ...portalSwitcher, iconOnly: hasMobileNav }), shareApp &&
|
|
297
|
-
(hasMobileNav ? (_jsx(Button, { variant: 'secondary', icon: true, label: shareLabel, onClick: shareApp.onClick, children: _jsx(StyledShareButtonContent, { name: 'share-external', set: 'budicon' }) })) : (_jsxs(Button, { variant: 'secondary', onClick: shareApp.onClick, children: [_jsx(StyledShareButtonContent, { name: 'share-external', set: 'budicon' }), _jsx("span", { children: shareLabel })] }))), !hasMobileNav && (_jsx(Operator, { as: StyledAppHeaderOperator, actions: operator.actions, popover: { placement: 'bottom-start' }, name: operator.avatar.name, children: _jsx(Avatar, { ...operator.avatar }) })), hasMobileNav && (_jsx(Button, { as: StyledHamburgerMenu, label: t('open_app_header_drawer'), variant: 'simple', icon: true, onClick: () => {
|
|
297
|
+
(hasMobileNav ? (_jsx(Button, { variant: 'secondary', icon: true, label: shareLabel, onClick: shareApp.onClick, children: _jsx(StyledShareButtonContent, { name: 'share-external', set: 'budicon' }) })) : (_jsxs(Button, { variant: 'secondary', onClick: shareApp.onClick, children: [_jsx(StyledShareButtonContent, { name: 'share-external', set: 'budicon' }), _jsx("span", { children: shareLabel })] }))), showOperator && !hasMobileNav && (_jsx(Operator, { as: StyledAppHeaderOperator, actions: operator.actions, popover: { placement: 'bottom-start' }, name: operator.avatar.name, children: _jsx(Avatar, { ...operator.avatar }) })), hasMobileNav && (_jsx(Button, { as: StyledHamburgerMenu, label: t('open_app_header_drawer'), variant: 'simple', icon: true, onClick: () => {
|
|
298
298
|
megaMenu.close();
|
|
299
299
|
openDrawer('navigationOperator');
|
|
300
300
|
}, children: _jsx(Icon, { name: 'bars' }) }))] })] }), navPosition === 'below' &&
|
|
@@ -311,7 +311,7 @@ const AppShell = forwardRef(function AppShell(props, ref) {
|
|
|
311
311
|
if (drawerContent === 'notifications') {
|
|
312
312
|
notifications?.onNotificationsOpen?.();
|
|
313
313
|
}
|
|
314
|
-
}, position: 'fixed', placement: end, size: 'min(26rem, calc(100vw - 5rem))', nullWhenClosed: true, children: [drawerContent === 'notifications' && notifications && (_jsx(Notifications, { ...notifications, onClose: () => setDrawerOpen(false) })), drawerContent === 'navigationOperator' && (_jsx(MobileHeaderContent, { appInfo: appInfo, navLinks: resolvedMainMenu.length ? flattenMenuItems(resolvedMainMenu) : legacyNavLinks, operator: operator, onClose: () => setDrawerOpen(false) }))] }) })] }));
|
|
314
|
+
}, position: 'fixed', placement: end, size: 'min(26rem, calc(100vw - 5rem))', nullWhenClosed: true, children: [drawerContent === 'notifications' && notifications && (_jsx(Notifications, { ...notifications, onClose: () => setDrawerOpen(false) })), drawerContent === 'navigationOperator' && (_jsx(MobileHeaderContent, { appInfo: appInfo, navLinks: resolvedMainMenu.length ? flattenMenuItems(resolvedMainMenu) : legacyNavLinks, operator: operator, showOperator: showOperator, onClose: () => setDrawerOpen(false) }))] }) })] }));
|
|
315
315
|
});
|
|
316
316
|
export default AppShell;
|
|
317
317
|
//# sourceMappingURL=AppShell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG7F,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,aAAa,EACb,eAAe,EACf,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,UAAU,EACV,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,QAAQ,MAAM,0DAA0D,CAAC;AAChF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,kEAAkE,CAAC;AAC1E,OAAO,UAAU,MAAM,0DAA0D,CAAC;AAClF,OAAO,KAAK,iBAAiB,MAAM,uEAAuE,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAC7F,OAAO,YAAY,MAAM,gDAAgD,CAAC;AAE1E,OAAO,MAAM,MAAM,WAAW,CAAC;AAI/B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAEhC,MAAM,QAAQ,GAAmD,UAAU,CAAC,SAAS,QAAQ,CAC3F,KAAqC,EACrC,GAAyB;IAEzB,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,yBAAyB,EAC1C,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,KAAK,EACpB,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,MAAM,EACP,GAAG,KAAK,CAAC;IACV,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,IAAI,cAA8B,CAAC;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,cAAc,GAAG,OAAO,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,cAAc,GAAG,kBAAkB,EAAE,aAAa,IAAI,EAAE,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,kBAAkB,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,eAAe,GAAG,kBAAkB,EAAE,OAAO,IAAI,WAAW,CAAC;IACnE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,EAAE,aAAa,IAAI,EAAE,CAAC;IAC/F,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EACJ,QAAQ,EACR,cAAc,EACd,KAAK,EAAE,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,EAC7C,GAAG,eAAe,CAAC;IACpB,MAAM,wBAAwB,GAC5B,yBAAyB,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,0BAA0B,GAAG,OAAO,CACxC,GAAG,EAAE,CAAC,CAAC;QACL,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAmB,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;KACJ,CAAC,EACF,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CACjD,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,EAAe,CAAC;IAC1D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,UAAU,EAAkB,CAAC;IACrE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,UAAU,EAAkB,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,EAAkB,CAAC;IAC/D,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,UAAU,EAAqB,CAAC;IAC1F,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,UAAU,EAAkB,CAAC;IAC/E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,EAAe,CAAC;IAC1D,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,EAAU,CAAC;IAC/E,MAAM,cAAc,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC9C,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAElE,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,uBAAuB,GAAG,kBAAkB,EAAE,KAAK,CAAC;IAC1D,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EACpD,CAAC,uBAAuB,CAAC,CAC1B,CAAC;IACF,MAAM,kBAAkB,GAAG,OAAO,CAA8B,GAAG,EAAE;QACnE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC1D,IAAI,oBAAoB,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,EAAE,MAAe;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAC/C,CAAC,CAAC,CAAC;QACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC3B,MAAM,mBAAmB,GAAG,CAAC,CAAC,oBAAoB,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACtC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC;YACpD,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;YACvD,IAAI,YAAY,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,yBAAyB,CAAC,GAAG,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QAEF,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC;IACnF,MAAM,eAAe,GAAG,KAAK,EAAE,CAAC;IAChC,MAAM,kBAAkB,GAAG,KAAK,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,WAAW,CAAC;QACtC,KAAK,EAAE,CAAC,0BAA0B,CAAC;QACnC,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAE/B,IAAI,SAAS,GAAgB,KAAK,CAAC;IACnC,IAAI,OAAO,CAAC,IAAI;QAAE,SAAS,GAAG,GAAG,CAAC;SAC7B,IAAI,OAAO,CAAC,OAAO;QAAE,SAAS,GAAG,UAAU,CAAC;IAEjD,MAAM,SAAS,GAA4B,OAAO,CAChD,GAAG,EAAE,CAAC;QACJ;YACE,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC;YAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;SAC3D;KACF,EACD,CAAC,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,yBAAyB,GAAG,WAAW,CAAC,GAAG,EAAE;QACjD,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAElC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/B,aAAa,EAAE,oBAAoB,EAAE,EAAE,CAAC;QAExC,qBAAqB,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,oBAAoB,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEjE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAA+C,EAAE,EAAE;QACrE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAE1F,SAAS,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,OAA8B,EAAE,EAAE;QAClE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1D,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;QAE3B,IAAI,cAAc,EAAE,CAAC;YACnB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;QAC3D,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,oBAAsD,CAAC;QAE3D,IAAI,YAAY,EAAE,iBAAiB,IAAI,YAAY,EAAE,gBAAgB,EAAE,CAAC;YACtE,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,CAAC;YACpD,MAAM,WAAW,GAAG,YAAY,CAAC,gBAAgB,CAAC;YAElD,oBAAoB,GAAG,IAAI,oBAAoB,CAC7C,OAAO,CAAC,EAAE;gBACR,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtF,cAAc,CAAC,OAAO,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;oBAClD,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5C,CAAC;YACH,CAAC,EACD,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CACrC,CAAC;YAEF,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE3C,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;gBACjC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,GAAG,EAAE;YACV,oBAAoB,EAAE,UAAU,EAAE,CAAC;YACnC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,QAAQ;QACR,YAAY;QACZ,cAAc;QACd,eAAe;QACf,YAAY;QACZ,WAAW;QACX,cAAc;KACf,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc;YAAE,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,cAAc,CAAC,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,EAAE;QAC9C,IAAI,CAAC,SAAS,IAAI,cAAc,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;YACxD,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,aAAa,KAAK,eAAe,IAAI,aAAa,EAAE,CAAC;gBACvD,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,YAAY,IAAI,oBAAoB,EAAE,CAAC;YAChD,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/B,UAAU,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC;IAC/D,MAAM,sBAAsB,GAAG,YAAY,IAAI,WAAW,KAAK,QAAQ,CAAC;IACxE,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,eAAe,KAAK,kBAAkB,EAAE,CAAC;YAC3C,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAClC,KAAC,kBAAkB,IACjB,EAAE,EAAE,mBAAmB,EAEvB,IAAI,EAAE,IAAI,mBACK,YAAY,kBACb,WAAW,IAHpB,IAAI,CAAC,EAAE,CAIZ,CACH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CACL,KAAC,gBAAgB,IACf,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,QAAQ,CAAC,UAAU,EAC3B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,EAAE,CAAC,EAAE;gBACjB,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC,EACD,aAAa,EAAE,QAAQ,CAAC,aAAa,EACrC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,0BAAmC,EAAE,EAAE;QAChE,IACE,yBAAyB,EAAE,OAAO,KAAK,WAAW;YAClD,yBAAyB,CAAC,KAAK,CAAC,MAAM;YACtC,CAAC,YAAY,EACb,CAAC;YACD,OAAO,CACL,KAAC,IAAI,IACH,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAEtE,KAAC,MAAM,IACL,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,KAAK,EAAE,oBAAoB,gBACf,oBAAoB,mBACjB,mBAAmB,CAAC,UAAU,KAAK,0BAA0B,CAAC,EAAE,mBAE7E,mBAAmB,CAAC,UAAU,KAAK,0BAA0B,CAAC,EAAE;wBAC9D,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,SAAS,EAEf,OAAO,EAAE,CAAC,KAAoC,EAAE,EAAE;wBAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,KAAK,0BAA0B,CAAC,EAAE,CAAC;wBAChF,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;wBAC7E,CAAC;wBACD,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjB,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;oBACvF,CAAC,YAED,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,GAAG,GACpB,GACJ,CACR,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,GACzB,yBAAyB,EAAE,OAAO,KAAK,kBAAkB;YACzD,CAAC,yBAAyB,EAAE,OAAO,KAAK,WAAW,IAAI,YAAY,CAAC,CAAC;QACvE,MAAM,oBAAoB,GAAG,qBAAqB;YAChD,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM;YACpB,CAAC,CAAC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,QAAQ,IAAI,cAAc,IAAI,oBAAoB,EAAE,CAAC;YACvD,OAAO,CACL,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GACtE,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3D,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,kBAAkB,EAAE,CAAC;QACvB,aAAa,GAAG,CACd,KAAC,MAAM,IACL,MAAM,EAAC,MAAM,EACb,IAAI,EAAE,kBAAkB,EACxB,aAAa,EAAE,WAAW,EAC1B,UAAU,EAAE,WAAW,GACvB,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9B,aAAa,GAAG,KAAC,MAAM,IAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,GAAI,CAAC;IAC1F,CAAC;IAED,OAAO,CACL,8BACE,KAAC,sBAAsB,IACrB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAChF,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,sBAAsB,GACpC,EACF,KAAC,SAAS,IAAC,KAAK,EAAE,SAAS,GAAI,EAC/B,MAAC,aAAa,IAAC,KAAK,EAAE,WAAW,aAC/B,MAAC,eAAe,IACd,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,WAAW,mBACT,YAAY,mBACZ,YAAY,aAE3B,MAAC,IAAI,IACH,SAAS,EAAE;oCACT,UAAU,EAAE,QAAQ;oCACpB,OAAO,EAAE,SAAS;oCAClB,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iCAC1C,aAEA,sBAAsB,CAAC,CAAC,CAAC,CACxB,8BACE,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aACtC,iBAAiB,CAAC,IAAI,CAAC,EAExB,MAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAC9D,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,OAAO,CAAC,MAAM,aAEtB,KAAC,KAAK,IAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,GAAI,EACrD,CAAC,YAAY,IAAI,CAChB,MAAC,IAAI,IACH,EAAE,EAAC,MAAM,EACT,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,aAE/D,KAAC,IAAI,IACH,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAClE,OAAO,EAAC,IAAI,YAEX,OAAO,CAAC,OAAO,GACX,EACN,OAAO,CAAC,UAAU,IAAI,CACrB,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,OAAO,CAAC,UAAU,GAAQ,CACtD,IACI,CACR,IACI,IACF,EAEN,CAAC,YAAY;gDACZ,WAAW,KAAK,QAAQ;gDACxB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAC7B,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,YAEnE,cAAc,EAAE,GACZ,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,SACZ,CACH,CAAC,EAEH,CAAC,YAAY,IAAI,WAAW,KAAK,QAAQ,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAC7E,KAAC,QAAQ,IACP,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,SACZ,CACH,IACA,CACJ,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aACtC,iBAAiB,CAAC,IAAI,CAAC,EAEvB,WAAW,KAAK,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CACzC,MAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAC9D,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,OAAO,CAAC,MAAM,aAEtB,KAAC,KAAK,IAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,GAAI,EACrD,CAAC,YAAY,IAAI,CAChB,MAAC,IAAI,IACH,EAAE,EAAC,MAAM,EACT,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,aAE/D,KAAC,IAAI,IACH,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAClE,OAAO,EAAC,IAAI,YAEX,OAAO,CAAC,OAAO,GACX,EACN,OAAO,CAAC,UAAU,IAAI,CACrB,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,OAAO,CAAC,UAAU,GAAQ,CACtD,IACI,CACR,IACI,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,EAED,MAAC,IAAI,IACH,EAAE,EAAE,iBAAiB,EACrB,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAC3C,MAAM,EAAE,YAAY,aAEnB,CAAC,YAAY,IAAI,WAAW,IAAI,CAC/B,cAAK,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAC,QAAQ,gBAAa,CAAC,CAAC,QAAQ,CAAC,YAClE,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,WAAW,OACN,WAAW,EACf,GAAG,EAAE,cAAc,EACnB,cAAc,EACZ,WAAW,CAAC,cAAc;wDACxB,CAAC,CAAC,KAAK,CAAC,EAAE;4DACN,WAAW,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;4DACpC,iBAAiB,CAAC,KAAK,CAAC,CAAC;wDAC3B,CAAC;wDACH,CAAC,CAAC,SAAS,GAEf,CACH,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,IAAI,QACJ,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,gBACN,CAAC,CAAC,eAAe,CAAC,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAEtC,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,GACf,CACV,GACG,CACP,EAEA,iBAAiB,IAAI,CACpB,KAAC,aAAa,IAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,GAAI,CAC9E,EAEA,aAAa,IAAI,CAChB,8BACE,KAAC,MAAM,IACL,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC,EACzC,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;4DACZ,IAAI,CAAC,YAAY,EAAE,CAAC;gEAClB,IAAI,oBAAoB,EAAE,CAAC;oEACzB,uBAAuB,CAAC,KAAK,CAAC,CAAC;oEAC/B,aAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC;gEACzC,CAAC;qEAAM,CAAC;oEACN,uBAAuB,CAAC,IAAI,CAAC,CAAC;oEAC9B,aAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC;gEACxC,CAAC;4DACH,CAAC;iEAAM,CAAC;gEACN,UAAU,CAAC,eAAe,CAAC,CAAC;4DAC9B,CAAC;wDACH,CAAC,YAED,MAAC,uBAAuB,eACtB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,EACnB,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CACxB,KAAC,eAAe,IAAC,OAAO,EAAC,QAAQ,YAAE,aAAa,CAAC,KAAK,GAAmB,CAC1E,IACuB,GACnB,EACT,KAAC,OAAO,IACN,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAC,YAAY,YAEtB,KAAC,aAAa,IACZ,KAAK,EAAE;gEACL,IAAI,EAAE;oEACJ,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;iEACxE;6DACF,YAED,KAAC,aAAa,OAAK,aAAa,EAAE,OAAO,SAAG,GAC9B,GACR,IACT,CACJ,EAEA,QAAQ,IAAI,CACX,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAC1B,QAAQ,QACR,IAAI,EAAE;oDACJ,KAAK,EAAE,QAAQ;iDAChB,GACD,CACH,EAEA,cAAc,IAAI,KAAC,UAAU,OAAK,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAI,EAE5E,QAAQ;gDACP,CAAC,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,QAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,YAC3E,KAAC,wBAAwB,IAAC,IAAI,EAAC,gBAAgB,EAAC,GAAG,EAAC,SAAS,GAAG,GACzD,CACV,CAAC,CAAC,CAAC,CACF,MAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,aACnD,KAAC,wBAAwB,IAAC,IAAI,EAAC,gBAAgB,EAAC,GAAG,EAAC,SAAS,GAAG,EAChE,yBAAO,UAAU,GAAQ,IAClB,CACV,CAAC,EAEH,CAAC,YAAY,IAAI,CAChB,KAAC,QAAQ,IACP,EAAE,EAAE,uBAAuB,EAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EACtC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,YAE1B,KAAC,MAAM,OAAK,QAAQ,CAAC,MAAM,GAAI,GACtB,CACZ,EAEA,YAAY,IAAI,CACf,KAAC,MAAM,IACL,EAAE,EAAE,mBAAmB,EACvB,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC,EAClC,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;oDACZ,QAAQ,CAAC,KAAK,EAAE,CAAC;oDACjB,UAAU,CAAC,oBAAoB,CAAC,CAAC;gDACnC,CAAC,YAED,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,GACb,CACV,IACI,IACF,EAEN,WAAW,KAAK,OAAO;gCACtB,CAAC,YAAY;gCACb,CAAC,sBAAsB,CAAC,CAAC,CAAC,CACxB,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,YACvC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAC7B,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,YAEnE,cAAc,EAAE,GACZ,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,SACZ,CACH,GACI,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC/C,MAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAC3C,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,OAAO,CAAC,MAAM,aAEtB,KAAC,KAAK,IAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,GAAI,EACtD,MAAC,IAAI,IAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,aAC7E,KAAC,IAAI,IACH,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAClE,OAAO,EAAC,IAAI,YAEX,OAAO,CAAC,OAAO,GACX,EACN,OAAO,CAAC,UAAU,IAAI,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,OAAO,CAAC,UAAU,GAAQ,IACvE,IACF,EACN,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EACjB,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,YAEnE,cAAc,EAAE,GACZ,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAC,OAAO,EACnB,YAAY,EAAE,YAAY,GAC1B,CACH,IACI,CACR,CAAC,IACY,EACjB,CAAC,YAAY,IAAI,eAAe,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,IAAI,CACxE,KAAC,aAAa,IACZ,IAAI,EAAE,QAAQ,CAAC,QAAQ,EACvB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAC3C,aAAa,EAAE,QAAQ,CAAC,aAAa,EACrC,WAAW,EAAE,QAAQ,CAAC,WAAW,GACjC,CACH,EACA,CAAC,YAAY,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,QAAQ,IAAI,CACvF,KAAC,aAAa,IACZ,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAClC,OAAO,EAAE,kBAAkB,EAC3B,aAAa,EAAE,gBAAgB,IAAI,SAAS,EAC5C,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EACtC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EACpC,gBAAgB,EAAE,mBAAmB,CAAC,gBAAgB,EACtD,aAAa,EAAE,mBAAmB,CAAC,aAAa,EAChD,WAAW,EAAE,mBAAmB,CAAC,WAAW,GAC5C,CACH,IACa,EAEhB,MAAC,UAAU,IACT,WAAW,EAAE,WAAW,mBACT,sBAAsB,gBACzB,SAAS,0BACC,mBAAmB,EACzC,aAAa,EAAE,aAAa,aAE3B,OAAO,IAAI,KAAC,kBAAkB,cAAE,OAAO,GAAsB,EAC7D,IAAI,IACM,EAEZ,kBAAkB,CAAC,CAAC,CAAC,CACpB,KAAC,aAAa,IAAC,KAAK,EAAE,WAAW,YAAG,aAAa,GAAiB,CACnE,CAAC,CAAC,CAAC,CACF,aAAa,CACd,EAED,KAAC,QAAQ,IACP,IAAI,EAAE,YAAY,EAClB,eAAe,EAAC,MAAM,EACtB,mBAAmB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAC9C,qBAAqB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACjD,OAAO,EAAE,CAAC,CAAC,EAAE;oBACX,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM;wBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzD,CAAC,YAED,MAAC,MAAM,IACL,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,GAAG,EAAE;wBACjB,WAAW,EAAE,CAAC;wBACd,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;4BACtC,aAAa,EAAE,oBAAoB,EAAE,EAAE,CAAC;wBAC1C,CAAC;oBACH,CAAC,EACD,WAAW,EAAE,GAAG,EAAE;wBAChB,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;4BACtC,aAAa,EAAE,mBAAmB,EAAE,EAAE,CAAC;wBACzC,CAAC;oBACH,CAAC,EACD,QAAQ,EAAC,OAAO,EAChB,SAAS,EAAE,GAAG,EACd,IAAI,EAAC,gCAAgC,EACrC,cAAc,mBAEb,aAAa,KAAK,eAAe,IAAI,aAAa,IAAI,CACrD,KAAC,aAAa,OAAK,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,CAC1E,EACA,aAAa,KAAK,oBAAoB,IAAI,CACzC,KAAC,mBAAmB,IAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,EAE/E,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GACnC,CACH,IACM,GACA,IACV,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';\nimport type { ElementType, MouseEvent, PropsWithoutRef } from 'react';\n\nimport {\n Avatar,\n Backdrop,\n Button,\n ThemeOverride,\n ContextSwitcher,\n debounce,\n Drawer,\n Flex,\n Icon,\n Image,\n Popover,\n registerIcon,\n SearchInput,\n SkipLinks,\n Text,\n useBreakpoint,\n useConsolidatedRef,\n useDirection,\n useElement,\n useEscape,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n usePreviewManager,\n useTheme,\n VisuallyHiddenText,\n MenuButton,\n ThemeSwitcher\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent, SkipLinksProps } from '@pega/cosmos-react-core';\nimport Operator from '@pega/cosmos-react-core/lib/components/AppShell/Operator';\nimport {\n StyledAppHeaderOperator,\n StyledContextSwitcher\n} from '@pega/cosmos-react-core/lib/components/AppShell/AppHeader.styles';\nimport BareButton from '@pega/cosmos-react-core/lib/components/Button/BareButton';\nimport * as shareExternalIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/share-external.icon';\nimport { getHeaderTheme } from '@pega/cosmos-react-core/lib/components/AppShell/style-utils';\nimport useThemeMode from '@pega/cosmos-react-core/lib/hooks/useThemeMode';\n\nimport Footer from '../Footer';\nimport type { FooterMenuProps } from '../Footer';\n\nimport type { AppShellProps, NavLinkProps, NavMenuItemProps, NavMenuProps } from './AppShell.types';\nimport { flattenMenuItems, toFooterMenuEntries } from './AppShell.utils';\nimport {\n WSSAppShellGlobalStyle,\n StyledAppHeader,\n StyledCountIcon,\n StyledHamburgerMenu,\n StyledMain,\n StyledNotificationCount,\n StyledMainMenuLink,\n StyledNav,\n StyledPrimaryName,\n StyledEndNavBlock,\n StyledBannerRegion,\n StyledShareButtonContent\n} from './AppShell.styles';\nimport Notifications from './Notifications';\nimport MobileHeaderContent from './MobileHeaderContent';\nimport NavLinks from './NavLinks';\nimport AppShellMenuControl from './AppShellMenuControl';\nimport { MegaMenuPanel, MegaMenuTriggers, useMegaMenu } from './MegaMenu';\n\nregisterIcon(shareExternalIcon);\n\nconst AppShell: ForwardRefForwardPropsComponent<AppShellProps> = forwardRef(function AppShell(\n props: PropsWithoutRef<AppShellProps>,\n ref: AppShellProps['ref']\n) {\n const {\n main,\n banners,\n appInfo,\n mainNav,\n navLinks: deprecatedNavLinks,\n appSwitcherMenu: configuredAppSwitcherMenu,\n operator,\n notifications,\n searchInput,\n contextSwitcher = {},\n navAlignment = 'end',\n navPosition = 'inline',\n isDefaultWSS = true,\n helpMenu,\n shareApp,\n portalSwitcher,\n footer\n } = props;\n const configuredMainMenu = Array.isArray(mainNav) ? undefined : mainNav;\n let legacyNavLinks: NavLinkProps[];\n if (Array.isArray(mainNav)) {\n legacyNavLinks = mainNav;\n } else if (mainNav !== undefined) {\n legacyNavLinks = configuredMainMenu?.fallbackLinks ?? [];\n } else {\n legacyNavLinks = deprecatedNavLinks ?? [];\n }\n const mainMenuVariant = configuredMainMenu?.variant ?? 'mega-menu';\n const configuredFooterMenu = footer && !Array.isArray(footer) ? footer : undefined;\n const footerLinks = Array.isArray(footer) ? footer : configuredFooterMenu?.fallbackLinks ?? [];\n const t = useI18n();\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher;\n const appSwitcherMegaMenuItems =\n configuredAppSwitcherMenu?.variant === 'mega-menu' ? configuredAppSwitcherMenu.items : [];\n const appSwitcherMegaMenuContent = useMemo<NavMenuProps>(\n () => ({\n id: 'app-switcher-menu',\n label: contextSwitcherLabel,\n items: appSwitcherMegaMenuItems.map<NavMenuItemProps>(menu => ({\n id: menu.id,\n primary: menu.label,\n ...(menu.items?.length ? { items: menu.items } : {}),\n ...(menu.onClick ? { onClick: menu.onClick } : {}),\n ...(menu.disabled ? { disabled: true } : {})\n }))\n }),\n [appSwitcherMegaMenuItems, contextSwitcherLabel]\n );\n const [backdropOpen, setBackdropOpen] = useState(false);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const [drawerContent, setDrawerContent] = useState('');\n const [notificationsPopover, setNotificationsPopover] = useState(false);\n const [searchExpanded, setSearchExpanded] = useState(false);\n const [linksCollapsed, setLinksCollapsed] = useState(false);\n const [hasMobileNav, setHasMobileNav] = useState(true);\n\n const [headerEl, setHeaderEl] = useElement<HTMLElement>();\n const [navSectionEl, setNavSectionEl] = useElement<HTMLDivElement>();\n const [appSwitcherNavEl, setAppSwitcherNavEl] = useElement<HTMLDivElement>();\n const [popoverEl, setPopoverEl] = useElement<HTMLDivElement>();\n const [notificationsButtonEl, setNotificationsButtonEl] = useElement<HTMLButtonElement>();\n const [searchContainerEl, setSearchContainerEl] = useElement<HTMLDivElement>();\n const [footerEl, setFooterEl] = useElement<HTMLElement>();\n const [configuredFooterHeight, setConfiguredFooterHeight] = useState<string>();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const minInlineWidth = useRef(0);\n const theme = useTheme();\n const { previewActive } = usePreviewManager();\n const { themeMode, onThemeModeChange } = useThemeMode();\n const headerTheme = useMemo(() => getHeaderTheme(theme), [theme]);\n\n const headerRef = useConsolidatedRef(setHeaderEl, ref);\n\n const isSmallOrAbove = useBreakpoint('sm');\n const configuredMainMenuItems = configuredMainMenu?.items;\n const resolvedMainMenu = useMemo(\n () => configuredMainMenuItems?.filter(Boolean) ?? [],\n [configuredMainMenuItems]\n );\n const resolvedFooterMenu = useMemo<FooterMenuProps | undefined>(() => {\n if (!configuredFooterMenu?.items.length) return undefined;\n if (configuredFooterMenu.variant === 'fat-footer') {\n const items = toFooterMenuEntries(configuredFooterMenu.items);\n return items.length ? { variant: 'fat-footer', items } : undefined;\n }\n\n const items = flattenMenuItems(configuredFooterMenu.items).map(item => ({\n type: 'link' as const,\n id: item.id,\n label: item.text,\n ...(item.onClick && { onClick: item.onClick })\n }));\n return items.length ? { variant: configuredFooterMenu.variant, items } : undefined;\n }, [configuredFooterMenu]);\n const hasConfiguredFooter = !!configuredFooterMenu;\n\n useEffect(() => {\n if (!footerEl || !hasConfiguredFooter) {\n setConfiguredFooterHeight(undefined);\n return undefined;\n }\n\n const measureFooter = () => {\n const root = footerEl.ownerDocument.documentElement;\n const rootFontSize = parseFloat(getComputedStyle(root).fontSize);\n const height = footerEl.getBoundingClientRect().height;\n if (rootFontSize > 0 && height > 0) {\n setConfiguredFooterHeight(`${height / rootFontSize}rem`);\n }\n };\n\n measureFooter();\n const observer = new ResizeObserver(measureFooter);\n observer.observe(footerEl);\n return () => observer.disconnect();\n }, [footerEl, hasConfiguredFooter]);\n\n const activeNavItems = resolvedMainMenu.length ? resolvedMainMenu : legacyNavLinks;\n const mainMenuPanelId = useId();\n const appSwitcherPanelId = useId();\n const megaMenu = useMegaMenu({\n menus: resolvedMainMenu,\n navElement: navSectionEl,\n isMobile: hasMobileNav\n });\n const appSwitcherMegaMenu = useMegaMenu({\n menus: [appSwitcherMegaMenuContent],\n navElement: appSwitcherNavEl,\n isMobile: hasMobileNav\n });\n const { end } = useDirection();\n\n let appInfoAs: ElementType = 'div';\n if (appInfo.href) appInfoAs = 'a';\n else if (appInfo.onClick) appInfoAs = BareButton;\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const closeNotificationsPopover = useCallback(() => {\n if (!notificationsPopover) return;\n\n setNotificationsPopover(false);\n notifications?.onNotificationsClose?.();\n\n notificationsButtonEl?.focus();\n }, [notificationsPopover, notifications, notificationsButtonEl]);\n\n const closeDrawer = () => {\n setDrawerContent('');\n setBackdropOpen(false);\n };\n\n const openDrawer = (content: 'notifications' | 'navigationOperator') => {\n setDrawerContent(content);\n setBackdropOpen(true);\n };\n\n useOuterEvent('mousedown', [popoverEl, notificationsButtonEl], closeNotificationsPopover);\n\n useEscape(closeNotificationsPopover, popoverEl);\n\n const debouncedResize = debounce((entries: ResizeObserverEntry[]) => {\n if (entries[0].contentRect.width > minInlineWidth.current) {\n setLinksCollapsed(false);\n }\n }, 100);\n\n useEffect(() => {\n minInlineWidth.current = 0;\n\n if (isSmallOrAbove) {\n setLinksCollapsed(false);\n }\n }, [isSmallOrAbove, navAlignment, activeNavItems, mainMenuVariant, navPosition, isDefaultWSS]);\n\n useEffect(() => {\n if (!headerEl) return undefined;\n\n const resizeObserver = new ResizeObserver(debouncedResize);\n resizeObserver.observe(headerEl);\n\n let intersectionObserver: IntersectionObserver | undefined;\n\n if (navSectionEl?.firstElementChild && navSectionEl?.lastElementChild) {\n const firstNavItem = navSectionEl.firstElementChild;\n const lastNavItem = navSectionEl.lastElementChild;\n\n intersectionObserver = new IntersectionObserver(\n entries => {\n if (entries.some(({ intersectionRatio }) => intersectionRatio < 1) && !linksCollapsed) {\n minInlineWidth.current = headerEl.clientWidth + 1;\n setLinksCollapsed(true);\n } else {\n navSectionEl.style.visibility = 'visible';\n }\n },\n { root: navSectionEl, threshold: 1 }\n );\n\n intersectionObserver.observe(firstNavItem);\n\n if (lastNavItem !== firstNavItem) {\n intersectionObserver.observe(lastNavItem);\n }\n }\n\n return () => {\n intersectionObserver?.disconnect();\n resizeObserver.disconnect();\n };\n }, [\n headerEl,\n navSectionEl,\n activeNavItems,\n mainMenuVariant,\n navAlignment,\n navPosition,\n linksCollapsed\n ]);\n\n useEffect(() => {\n setHasMobileNav(!isSmallOrAbove || linksCollapsed);\n }, [isSmallOrAbove, linksCollapsed]);\n\n useEffect(() => {\n if (searchExpanded) searchInputRef.current?.focus();\n }, [searchExpanded]);\n\n useFocusWithin([searchContainerEl], isFocused => {\n if (!isFocused && searchExpanded && !searchInput?.value) {\n setSearchExpanded(false);\n }\n });\n\n useEffect(() => {\n if (!hasMobileNav && drawerOpen) {\n if (drawerContent === 'notifications' && notifications) {\n setNotificationsPopover(true);\n }\n setDrawerOpen(false);\n } else if (hasMobileNav && notificationsPopover) {\n setNotificationsPopover(false);\n openDrawer('notifications');\n }\n }, [hasMobileNav, drawerOpen]);\n\n const hasFooter = !!(footerLinks.length || resolvedFooterMenu);\n const useDefaultInlineLayout = isDefaultWSS || navPosition === 'inline';\n const renderMainMenu = () => {\n if (mainMenuVariant === 'individual-menus') {\n return resolvedMainMenu.map(menu => (\n <StyledMainMenuLink\n as={AppShellMenuControl}\n key={menu.id}\n menu={menu}\n $isDefaultWSS={isDefaultWSS}\n $navPosition={navPosition}\n />\n ));\n }\n\n return (\n <MegaMenuTriggers\n menus={resolvedMainMenu}\n openId={megaMenu.openMenuId}\n panelId={mainMenuPanelId}\n onOpenChange={id => {\n appSwitcherMegaMenu.close();\n megaMenu.onOpenChange(id);\n }}\n onTriggerOpen={megaMenu.onTriggerOpen}\n isDefaultWSS={isDefaultWSS}\n navPosition={navPosition}\n />\n );\n };\n const renderAppSwitcher = (allowLegacyContextSwitcher: boolean) => {\n if (\n configuredAppSwitcherMenu?.variant === 'mega-menu' &&\n configuredAppSwitcherMenu.items.length &&\n !hasMobileNav\n ) {\n return (\n <Flex\n as={StyledContextSwitcher}\n ref={setAppSwitcherNavEl}\n container={{ justify: 'center', pad: [0, 0, 0, isDefaultWSS ? 1 : 0] }}\n >\n <Button\n variant='simple'\n icon\n label={contextSwitcherLabel}\n aria-label={contextSwitcherLabel}\n aria-expanded={appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id}\n aria-controls={\n appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id\n ? appSwitcherPanelId\n : undefined\n }\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n const isOpen = appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id;\n if (!isOpen) {\n appSwitcherMegaMenu.onTriggerOpen(event.currentTarget, event.detail === 0);\n }\n megaMenu.close();\n appSwitcherMegaMenu.onOpenChange(isOpen ? undefined : appSwitcherMegaMenuContent.id);\n }}\n >\n <Icon name='dot-9-solid' />\n </Button>\n </Flex>\n );\n }\n\n const configuredCompactMenu =\n configuredAppSwitcherMenu?.variant === 'context-switcher' ||\n (configuredAppSwitcherMenu?.variant === 'mega-menu' && hasMobileNav);\n const shouldRenderContexts = configuredCompactMenu\n ? !!contexts?.length\n : allowLegacyContextSwitcher && (contexts?.length ?? 0) > 1;\n\n if (contexts && onContextClick && shouldRenderContexts) {\n return (\n <ContextSwitcher\n contexts={contexts}\n onContextClick={onContextClick}\n label={contextSwitcherLabel}\n container={{ justify: 'center', pad: [0, 0, 0, isDefaultWSS ? 1 : 0] }}\n />\n );\n }\n\n return null;\n };\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n let footerElement = null;\n if (resolvedFooterMenu) {\n footerElement = (\n <Footer\n source='menu'\n menu={resolvedFooterMenu}\n fallbackLinks={footerLinks}\n elementRef={setFooterEl}\n />\n );\n } else if (footerLinks.length) {\n footerElement = <Footer source='legacy' links={footerLinks} elementRef={setFooterEl} />;\n }\n\n return (\n <>\n <WSSAppShellGlobalStyle\n navPosition={navPosition}\n hasFooter={hasFooter}\n configuredFooterHeight={hasConfiguredFooter ? configuredFooterHeight : undefined}\n hasMobileNav={hasMobileNav}\n isDefaultWSS={useDefaultInlineLayout}\n />\n <SkipLinks items={skipLinks} />\n <ThemeOverride theme={headerTheme}>\n <StyledAppHeader\n ref={headerRef}\n navPosition={navPosition}\n $isDefaultWSS={isDefaultWSS}\n $hasMobileNav={hasMobileNav}\n >\n <Flex\n container={{\n alignItems: 'center',\n justify: 'between',\n pad: navPosition === 'below' ? [1, 0] : 0\n }}\n >\n {useDefaultInlineLayout ? (\n <>\n <Flex container={{ alignItems: 'center' }}>\n {renderAppSwitcher(true)}\n\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', pad: [1, 4, 1, 1], gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n {!hasMobileNav && (\n <Flex\n as='span'\n container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}\n >\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && (\n <Text variant='secondary'>{appInfo.portalName}</Text>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n\n {!hasMobileNav &&\n navPosition === 'inline' &&\n (resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1, basis: '0' }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n ))}\n\n {!hasMobileNav && navPosition !== 'inline' && resolvedMainMenu.length === 0 && (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n )}\n </>\n ) : (\n <Flex container={{ alignItems: 'center' }}>\n {renderAppSwitcher(true)}\n\n {navPosition !== 'below' || hasMobileNav ? (\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', pad: [1, 4, 1, 1], gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n {!hasMobileNav && (\n <Flex\n as='span'\n container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}\n >\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && (\n <Text variant='secondary'>{appInfo.portalName}</Text>\n )}\n </Flex>\n )}\n </Flex>\n ) : null}\n </Flex>\n )}\n\n <Flex\n as={StyledEndNavBlock}\n container={{ alignItems: 'center', gap: 1 }}\n mobile={hasMobileNav}\n >\n {!hasMobileNav && searchInput && (\n <div ref={setSearchContainerEl} role='search' aria-label={t('search')}>\n {searchExpanded ? (\n <SearchInput\n {...searchInput}\n ref={searchInputRef}\n onSearchSubmit={\n searchInput.onSearchSubmit\n ? value => {\n searchInput.onSearchSubmit?.(value);\n setSearchExpanded(false);\n }\n : undefined\n }\n />\n ) : (\n <Button\n icon\n variant='simple'\n label={t('search')}\n aria-label={t('expand_search')}\n onClick={() => setSearchExpanded(true)}\n >\n <Icon name='search' />\n </Button>\n )}\n </div>\n )}\n\n {onThemeModeChange && (\n <ThemeSwitcher themeMode={themeMode} onThemeModeChange={onThemeModeChange} />\n )}\n\n {notifications && (\n <>\n <Button\n ref={setNotificationsButtonEl}\n variant='simple'\n label={t('open_app_header_notifications')}\n icon\n onClick={() => {\n if (!hasMobileNav) {\n if (notificationsPopover) {\n setNotificationsPopover(false);\n notifications.onNotificationsClose?.();\n } else {\n setNotificationsPopover(true);\n notifications.onNotificationsOpen?.();\n }\n } else {\n openDrawer('notifications');\n }\n }}\n >\n <StyledNotificationCount>\n <Icon name='bell' />\n {!!notifications.count && (\n <StyledCountIcon variant='urgent'>{notifications.count}</StyledCountIcon>\n )}\n </StyledNotificationCount>\n </Button>\n <Popover\n ref={setPopoverEl}\n show={notificationsPopover}\n target={notificationsButtonEl}\n placement='bottom-end'\n >\n <ThemeOverride\n theme={{\n base: {\n palette: { 'foreground-color': theme.base.palette['foreground-color'] }\n }\n }}\n >\n <Notifications {...notifications} popover />\n </ThemeOverride>\n </Popover>\n </>\n )}\n\n {helpMenu && (\n <MenuButton\n variant='simple'\n icon='help'\n text={t('app_header_help')}\n iconOnly\n menu={{\n items: helpMenu\n }}\n />\n )}\n\n {portalSwitcher && <MenuButton {...portalSwitcher} iconOnly={hasMobileNav} />}\n\n {shareApp &&\n (hasMobileNav ? (\n <Button variant='secondary' icon label={shareLabel} onClick={shareApp.onClick}>\n <StyledShareButtonContent name='share-external' set='budicon' />\n </Button>\n ) : (\n <Button variant='secondary' onClick={shareApp.onClick}>\n <StyledShareButtonContent name='share-external' set='budicon' />\n <span>{shareLabel}</span>\n </Button>\n ))}\n\n {!hasMobileNav && (\n <Operator\n as={StyledAppHeaderOperator}\n actions={operator.actions}\n popover={{ placement: 'bottom-start' }}\n name={operator.avatar.name}\n >\n <Avatar {...operator.avatar} />\n </Operator>\n )}\n\n {hasMobileNav && (\n <Button\n as={StyledHamburgerMenu}\n label={t('open_app_header_drawer')}\n variant='simple'\n icon\n onClick={() => {\n megaMenu.close();\n openDrawer('navigationOperator');\n }}\n >\n <Icon name='bars' />\n </Button>\n )}\n </Flex>\n </Flex>\n\n {navPosition === 'below' &&\n !hasMobileNav &&\n (useDefaultInlineLayout ? (\n <Flex container={{ justify: navAlignment }}>\n {resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1, basis: '0' }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n )}\n </Flex>\n ) : (\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n <Flex as='span' container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}>\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && <Text variant='secondary'>{appInfo.portalName}</Text>}\n </Flex>\n </Flex>\n {resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1 }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition='below'\n isDefaultWSS={isDefaultWSS}\n />\n )}\n </Flex>\n ))}\n </StyledAppHeader>\n {!hasMobileNav && mainMenuVariant === 'mega-menu' && megaMenu.openMenu && (\n <MegaMenuPanel\n menu={megaMenu.openMenu}\n panelId={mainMenuPanelId}\n panelRef={megaMenu.panelRef}\n onClose={megaMenu.onClose}\n onTabForwardExit={megaMenu.onTabForwardExit}\n onActionClose={megaMenu.onActionClose}\n focusOnOpen={megaMenu.focusOnOpen}\n />\n )}\n {!hasMobileNav && appSwitcherMegaMenuItems.length > 0 && appSwitcherMegaMenu.openMenu && (\n <MegaMenuPanel\n menu={appSwitcherMegaMenu.openMenu}\n panelId={appSwitcherPanelId}\n anchorElement={appSwitcherNavEl ?? undefined}\n panelRef={appSwitcherMegaMenu.panelRef}\n onClose={appSwitcherMegaMenu.onClose}\n onTabForwardExit={appSwitcherMegaMenu.onTabForwardExit}\n onActionClose={appSwitcherMegaMenu.onActionClose}\n focusOnOpen={appSwitcherMegaMenu.focusOnOpen}\n />\n )}\n </ThemeOverride>\n\n <StyledMain\n navPosition={navPosition}\n $isDefaultWSS={useDefaultInlineLayout}\n $hasFooter={hasFooter}\n $hasConfiguredFooter={hasConfiguredFooter}\n previewActive={previewActive}\n >\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledMain>\n\n {resolvedFooterMenu ? (\n <ThemeOverride theme={headerTheme}>{footerElement}</ThemeOverride>\n ) : (\n footerElement\n )}\n\n <Backdrop\n open={backdropOpen}\n transitionSpeed='none'\n onAfterTransitionIn={() => setDrawerOpen(true)}\n onBeforeTransitionOut={() => setDrawerOpen(false)}\n onClick={e => {\n if (e.currentTarget === e.target) setDrawerOpen(false);\n }}\n >\n <Drawer\n open={drawerOpen}\n onAfterClose={() => {\n closeDrawer();\n if (drawerContent === 'notifications') {\n notifications?.onNotificationsClose?.();\n }\n }}\n onAfterOpen={() => {\n if (drawerContent === 'notifications') {\n notifications?.onNotificationsOpen?.();\n }\n }}\n position='fixed'\n placement={end}\n size='min(26rem, calc(100vw - 5rem))'\n nullWhenClosed\n >\n {drawerContent === 'notifications' && notifications && (\n <Notifications {...notifications} onClose={() => setDrawerOpen(false)} />\n )}\n {drawerContent === 'navigationOperator' && (\n <MobileHeaderContent\n appInfo={appInfo}\n navLinks={\n resolvedMainMenu.length ? flattenMenuItems(resolvedMainMenu) : legacyNavLinks\n }\n operator={operator}\n onClose={() => setDrawerOpen(false)}\n />\n )}\n </Drawer>\n </Backdrop>\n </>\n );\n});\n\nexport default AppShell;\n"]}
|
|
1
|
+
{"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';\nimport type { ElementType, MouseEvent, PropsWithoutRef } from 'react';\n\nimport {\n Avatar,\n Backdrop,\n Button,\n ThemeOverride,\n ContextSwitcher,\n debounce,\n Drawer,\n Flex,\n Icon,\n Image,\n Popover,\n registerIcon,\n SearchInput,\n SkipLinks,\n Text,\n useBreakpoint,\n useConsolidatedRef,\n useDirection,\n useElement,\n useEscape,\n useFocusWithin,\n useI18n,\n useOuterEvent,\n usePreviewManager,\n useTheme,\n VisuallyHiddenText,\n MenuButton,\n ThemeSwitcher\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent, SkipLinksProps } from '@pega/cosmos-react-core';\nimport Operator from '@pega/cosmos-react-core/lib/components/AppShell/Operator';\nimport {\n StyledAppHeaderOperator,\n StyledContextSwitcher\n} from '@pega/cosmos-react-core/lib/components/AppShell/AppHeader.styles';\nimport BareButton from '@pega/cosmos-react-core/lib/components/Button/BareButton';\nimport * as shareExternalIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/share-external.icon';\nimport { getHeaderTheme } from '@pega/cosmos-react-core/lib/components/AppShell/style-utils';\nimport useThemeMode from '@pega/cosmos-react-core/lib/hooks/useThemeMode';\n\nimport Footer from '../Footer';\nimport type { FooterMenuProps } from '../Footer';\n\nimport type { AppShellProps, NavLinkProps, NavMenuItemProps, NavMenuProps } from './AppShell.types';\nimport { flattenMenuItems, toFooterMenuEntries } from './AppShell.utils';\nimport {\n WSSAppShellGlobalStyle,\n StyledAppHeader,\n StyledCountIcon,\n StyledHamburgerMenu,\n StyledMain,\n StyledNotificationCount,\n StyledMainMenuLink,\n StyledNav,\n StyledPrimaryName,\n StyledEndNavBlock,\n StyledBannerRegion,\n StyledShareButtonContent\n} from './AppShell.styles';\nimport Notifications from './Notifications';\nimport MobileHeaderContent from './MobileHeaderContent';\nimport NavLinks from './NavLinks';\nimport AppShellMenuControl from './AppShellMenuControl';\nimport { MegaMenuPanel, MegaMenuTriggers, useMegaMenu } from './MegaMenu';\n\nregisterIcon(shareExternalIcon);\n\nconst AppShell: ForwardRefForwardPropsComponent<AppShellProps> = forwardRef(function AppShell(\n props: PropsWithoutRef<AppShellProps>,\n ref: AppShellProps['ref']\n) {\n const {\n main,\n banners,\n appInfo,\n mainNav,\n navLinks: deprecatedNavLinks,\n appSwitcherMenu: configuredAppSwitcherMenu,\n operator,\n showOperator = true,\n notifications,\n searchInput,\n contextSwitcher = {},\n navAlignment = 'end',\n navPosition = 'inline',\n isDefaultWSS = true,\n helpMenu,\n shareApp,\n portalSwitcher,\n footer\n } = props;\n const configuredMainMenu = Array.isArray(mainNav) ? undefined : mainNav;\n let legacyNavLinks: NavLinkProps[];\n if (Array.isArray(mainNav)) {\n legacyNavLinks = mainNav;\n } else if (mainNav !== undefined) {\n legacyNavLinks = configuredMainMenu?.fallbackLinks ?? [];\n } else {\n legacyNavLinks = deprecatedNavLinks ?? [];\n }\n const mainMenuVariant = configuredMainMenu?.variant ?? 'mega-menu';\n const configuredFooterMenu = footer && !Array.isArray(footer) ? footer : undefined;\n const footerLinks = Array.isArray(footer) ? footer : configuredFooterMenu?.fallbackLinks ?? [];\n const t = useI18n();\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher;\n const appSwitcherMegaMenuItems =\n configuredAppSwitcherMenu?.variant === 'mega-menu' ? configuredAppSwitcherMenu.items : [];\n const appSwitcherMegaMenuContent = useMemo<NavMenuProps>(\n () => ({\n id: 'app-switcher-menu',\n label: contextSwitcherLabel,\n items: appSwitcherMegaMenuItems.map<NavMenuItemProps>(menu => ({\n id: menu.id,\n primary: menu.label,\n ...(menu.items?.length ? { items: menu.items } : {}),\n ...(menu.onClick ? { onClick: menu.onClick } : {}),\n ...(menu.disabled ? { disabled: true } : {})\n }))\n }),\n [appSwitcherMegaMenuItems, contextSwitcherLabel]\n );\n const [backdropOpen, setBackdropOpen] = useState(false);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const [drawerContent, setDrawerContent] = useState('');\n const [notificationsPopover, setNotificationsPopover] = useState(false);\n const [searchExpanded, setSearchExpanded] = useState(false);\n const [linksCollapsed, setLinksCollapsed] = useState(false);\n const [hasMobileNav, setHasMobileNav] = useState(true);\n\n const [headerEl, setHeaderEl] = useElement<HTMLElement>();\n const [navSectionEl, setNavSectionEl] = useElement<HTMLDivElement>();\n const [appSwitcherNavEl, setAppSwitcherNavEl] = useElement<HTMLDivElement>();\n const [popoverEl, setPopoverEl] = useElement<HTMLDivElement>();\n const [notificationsButtonEl, setNotificationsButtonEl] = useElement<HTMLButtonElement>();\n const [searchContainerEl, setSearchContainerEl] = useElement<HTMLDivElement>();\n const [footerEl, setFooterEl] = useElement<HTMLElement>();\n const [configuredFooterHeight, setConfiguredFooterHeight] = useState<string>();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const minInlineWidth = useRef(0);\n const theme = useTheme();\n const { previewActive } = usePreviewManager();\n const { themeMode, onThemeModeChange } = useThemeMode();\n const headerTheme = useMemo(() => getHeaderTheme(theme), [theme]);\n\n const headerRef = useConsolidatedRef(setHeaderEl, ref);\n\n const isSmallOrAbove = useBreakpoint('sm');\n const configuredMainMenuItems = configuredMainMenu?.items;\n const resolvedMainMenu = useMemo(\n () => configuredMainMenuItems?.filter(Boolean) ?? [],\n [configuredMainMenuItems]\n );\n const resolvedFooterMenu = useMemo<FooterMenuProps | undefined>(() => {\n if (!configuredFooterMenu?.items.length) return undefined;\n if (configuredFooterMenu.variant === 'fat-footer') {\n const items = toFooterMenuEntries(configuredFooterMenu.items);\n return items.length ? { variant: 'fat-footer', items } : undefined;\n }\n\n const items = flattenMenuItems(configuredFooterMenu.items).map(item => ({\n type: 'link' as const,\n id: item.id,\n label: item.text,\n ...(item.onClick && { onClick: item.onClick })\n }));\n return items.length ? { variant: configuredFooterMenu.variant, items } : undefined;\n }, [configuredFooterMenu]);\n const hasConfiguredFooter = !!configuredFooterMenu;\n\n useEffect(() => {\n if (!footerEl || !hasConfiguredFooter) {\n setConfiguredFooterHeight(undefined);\n return undefined;\n }\n\n const measureFooter = () => {\n const root = footerEl.ownerDocument.documentElement;\n const rootFontSize = parseFloat(getComputedStyle(root).fontSize);\n const height = footerEl.getBoundingClientRect().height;\n if (rootFontSize > 0 && height > 0) {\n setConfiguredFooterHeight(`${height / rootFontSize}rem`);\n }\n };\n\n measureFooter();\n const observer = new ResizeObserver(measureFooter);\n observer.observe(footerEl);\n return () => observer.disconnect();\n }, [footerEl, hasConfiguredFooter]);\n\n const activeNavItems = resolvedMainMenu.length ? resolvedMainMenu : legacyNavLinks;\n const mainMenuPanelId = useId();\n const appSwitcherPanelId = useId();\n const megaMenu = useMegaMenu({\n menus: resolvedMainMenu,\n navElement: navSectionEl,\n isMobile: hasMobileNav\n });\n const appSwitcherMegaMenu = useMegaMenu({\n menus: [appSwitcherMegaMenuContent],\n navElement: appSwitcherNavEl,\n isMobile: hasMobileNav\n });\n const { end } = useDirection();\n\n let appInfoAs: ElementType = 'div';\n if (appInfo.href) appInfoAs = 'a';\n else if (appInfo.onClick) appInfoAs = BareButton;\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const closeNotificationsPopover = useCallback(() => {\n if (!notificationsPopover) return;\n\n setNotificationsPopover(false);\n notifications?.onNotificationsClose?.();\n\n notificationsButtonEl?.focus();\n }, [notificationsPopover, notifications, notificationsButtonEl]);\n\n const closeDrawer = () => {\n setDrawerContent('');\n setBackdropOpen(false);\n };\n\n const openDrawer = (content: 'notifications' | 'navigationOperator') => {\n setDrawerContent(content);\n setBackdropOpen(true);\n };\n\n useOuterEvent('mousedown', [popoverEl, notificationsButtonEl], closeNotificationsPopover);\n\n useEscape(closeNotificationsPopover, popoverEl);\n\n const debouncedResize = debounce((entries: ResizeObserverEntry[]) => {\n if (entries[0].contentRect.width > minInlineWidth.current) {\n setLinksCollapsed(false);\n }\n }, 100);\n\n useEffect(() => {\n minInlineWidth.current = 0;\n\n if (isSmallOrAbove) {\n setLinksCollapsed(false);\n }\n }, [isSmallOrAbove, navAlignment, activeNavItems, mainMenuVariant, navPosition, isDefaultWSS]);\n\n useEffect(() => {\n if (!headerEl) return undefined;\n\n const resizeObserver = new ResizeObserver(debouncedResize);\n resizeObserver.observe(headerEl);\n\n let intersectionObserver: IntersectionObserver | undefined;\n\n if (navSectionEl?.firstElementChild && navSectionEl?.lastElementChild) {\n const firstNavItem = navSectionEl.firstElementChild;\n const lastNavItem = navSectionEl.lastElementChild;\n\n intersectionObserver = new IntersectionObserver(\n entries => {\n if (entries.some(({ intersectionRatio }) => intersectionRatio < 1) && !linksCollapsed) {\n minInlineWidth.current = headerEl.clientWidth + 1;\n setLinksCollapsed(true);\n } else {\n navSectionEl.style.visibility = 'visible';\n }\n },\n { root: navSectionEl, threshold: 1 }\n );\n\n intersectionObserver.observe(firstNavItem);\n\n if (lastNavItem !== firstNavItem) {\n intersectionObserver.observe(lastNavItem);\n }\n }\n\n return () => {\n intersectionObserver?.disconnect();\n resizeObserver.disconnect();\n };\n }, [\n headerEl,\n navSectionEl,\n activeNavItems,\n mainMenuVariant,\n navAlignment,\n navPosition,\n linksCollapsed\n ]);\n\n useEffect(() => {\n setHasMobileNav(!isSmallOrAbove || linksCollapsed);\n }, [isSmallOrAbove, linksCollapsed]);\n\n useEffect(() => {\n if (searchExpanded) searchInputRef.current?.focus();\n }, [searchExpanded]);\n\n useFocusWithin([searchContainerEl], isFocused => {\n if (!isFocused && searchExpanded && !searchInput?.value) {\n setSearchExpanded(false);\n }\n });\n\n useEffect(() => {\n if (!hasMobileNav && drawerOpen) {\n if (drawerContent === 'notifications' && notifications) {\n setNotificationsPopover(true);\n }\n setDrawerOpen(false);\n } else if (hasMobileNav && notificationsPopover) {\n setNotificationsPopover(false);\n openDrawer('notifications');\n }\n }, [hasMobileNav, drawerOpen]);\n\n const hasFooter = !!(footerLinks.length || resolvedFooterMenu);\n const useDefaultInlineLayout = isDefaultWSS || navPosition === 'inline';\n const renderMainMenu = () => {\n if (mainMenuVariant === 'individual-menus') {\n return resolvedMainMenu.map(menu => (\n <StyledMainMenuLink\n as={AppShellMenuControl}\n key={menu.id}\n menu={menu}\n $isDefaultWSS={isDefaultWSS}\n $navPosition={navPosition}\n />\n ));\n }\n\n return (\n <MegaMenuTriggers\n menus={resolvedMainMenu}\n openId={megaMenu.openMenuId}\n panelId={mainMenuPanelId}\n onOpenChange={id => {\n appSwitcherMegaMenu.close();\n megaMenu.onOpenChange(id);\n }}\n onTriggerOpen={megaMenu.onTriggerOpen}\n isDefaultWSS={isDefaultWSS}\n navPosition={navPosition}\n />\n );\n };\n const renderAppSwitcher = (allowLegacyContextSwitcher: boolean) => {\n if (\n configuredAppSwitcherMenu?.variant === 'mega-menu' &&\n configuredAppSwitcherMenu.items.length &&\n !hasMobileNav\n ) {\n return (\n <Flex\n as={StyledContextSwitcher}\n ref={setAppSwitcherNavEl}\n container={{ justify: 'center', pad: [0, 0, 0, isDefaultWSS ? 1 : 0] }}\n >\n <Button\n variant='simple'\n icon\n label={contextSwitcherLabel}\n aria-label={contextSwitcherLabel}\n aria-expanded={appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id}\n aria-controls={\n appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id\n ? appSwitcherPanelId\n : undefined\n }\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n const isOpen = appSwitcherMegaMenu.openMenuId === appSwitcherMegaMenuContent.id;\n if (!isOpen) {\n appSwitcherMegaMenu.onTriggerOpen(event.currentTarget, event.detail === 0);\n }\n megaMenu.close();\n appSwitcherMegaMenu.onOpenChange(isOpen ? undefined : appSwitcherMegaMenuContent.id);\n }}\n >\n <Icon name='dot-9-solid' />\n </Button>\n </Flex>\n );\n }\n\n const configuredCompactMenu =\n configuredAppSwitcherMenu?.variant === 'context-switcher' ||\n (configuredAppSwitcherMenu?.variant === 'mega-menu' && hasMobileNav);\n const shouldRenderContexts = configuredCompactMenu\n ? !!contexts?.length\n : allowLegacyContextSwitcher && (contexts?.length ?? 0) > 1;\n\n if (contexts && onContextClick && shouldRenderContexts) {\n return (\n <ContextSwitcher\n contexts={contexts}\n onContextClick={onContextClick}\n label={contextSwitcherLabel}\n container={{ justify: 'center', pad: [0, 0, 0, isDefaultWSS ? 1 : 0] }}\n />\n );\n }\n\n return null;\n };\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n let footerElement = null;\n if (resolvedFooterMenu) {\n footerElement = (\n <Footer\n source='menu'\n menu={resolvedFooterMenu}\n fallbackLinks={footerLinks}\n elementRef={setFooterEl}\n />\n );\n } else if (footerLinks.length) {\n footerElement = <Footer source='legacy' links={footerLinks} elementRef={setFooterEl} />;\n }\n\n return (\n <>\n <WSSAppShellGlobalStyle\n navPosition={navPosition}\n hasFooter={hasFooter}\n configuredFooterHeight={hasConfiguredFooter ? configuredFooterHeight : undefined}\n hasMobileNav={hasMobileNav}\n isDefaultWSS={useDefaultInlineLayout}\n />\n <SkipLinks items={skipLinks} />\n <ThemeOverride theme={headerTheme}>\n <StyledAppHeader\n ref={headerRef}\n navPosition={navPosition}\n $isDefaultWSS={isDefaultWSS}\n $hasMobileNav={hasMobileNav}\n >\n <Flex\n container={{\n alignItems: 'center',\n justify: 'between',\n pad: navPosition === 'below' ? [1, 0] : 0\n }}\n >\n {useDefaultInlineLayout ? (\n <>\n <Flex container={{ alignItems: 'center' }}>\n {renderAppSwitcher(true)}\n\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', pad: [1, 4, 1, 1], gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n {!hasMobileNav && (\n <Flex\n as='span'\n container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}\n >\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && (\n <Text variant='secondary'>{appInfo.portalName}</Text>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n\n {!hasMobileNav &&\n navPosition === 'inline' &&\n (resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1, basis: '0' }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n ))}\n\n {!hasMobileNav && navPosition !== 'inline' && resolvedMainMenu.length === 0 && (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n )}\n </>\n ) : (\n <Flex container={{ alignItems: 'center' }}>\n {renderAppSwitcher(true)}\n\n {navPosition !== 'below' || hasMobileNav ? (\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', pad: [1, 4, 1, 1], gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n {!hasMobileNav && (\n <Flex\n as='span'\n container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}\n >\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && (\n <Text variant='secondary'>{appInfo.portalName}</Text>\n )}\n </Flex>\n )}\n </Flex>\n ) : null}\n </Flex>\n )}\n\n <Flex\n as={StyledEndNavBlock}\n container={{ alignItems: 'center', gap: 1 }}\n mobile={hasMobileNav}\n >\n {!hasMobileNav && searchInput && (\n <div ref={setSearchContainerEl} role='search' aria-label={t('search')}>\n {searchExpanded ? (\n <SearchInput\n {...searchInput}\n ref={searchInputRef}\n onSearchSubmit={\n searchInput.onSearchSubmit\n ? value => {\n searchInput.onSearchSubmit?.(value);\n setSearchExpanded(false);\n }\n : undefined\n }\n />\n ) : (\n <Button\n icon\n variant='simple'\n label={t('search')}\n aria-label={t('expand_search')}\n onClick={() => setSearchExpanded(true)}\n >\n <Icon name='search' />\n </Button>\n )}\n </div>\n )}\n\n {onThemeModeChange && (\n <ThemeSwitcher themeMode={themeMode} onThemeModeChange={onThemeModeChange} />\n )}\n\n {notifications && (\n <>\n <Button\n ref={setNotificationsButtonEl}\n variant='simple'\n label={t('open_app_header_notifications')}\n icon\n onClick={() => {\n if (!hasMobileNav) {\n if (notificationsPopover) {\n setNotificationsPopover(false);\n notifications.onNotificationsClose?.();\n } else {\n setNotificationsPopover(true);\n notifications.onNotificationsOpen?.();\n }\n } else {\n openDrawer('notifications');\n }\n }}\n >\n <StyledNotificationCount>\n <Icon name='bell' />\n {!!notifications.count && (\n <StyledCountIcon variant='urgent'>{notifications.count}</StyledCountIcon>\n )}\n </StyledNotificationCount>\n </Button>\n <Popover\n ref={setPopoverEl}\n show={notificationsPopover}\n target={notificationsButtonEl}\n placement='bottom-end'\n >\n <ThemeOverride\n theme={{\n base: {\n palette: { 'foreground-color': theme.base.palette['foreground-color'] }\n }\n }}\n >\n <Notifications {...notifications} popover />\n </ThemeOverride>\n </Popover>\n </>\n )}\n\n {helpMenu && (\n <MenuButton\n variant='simple'\n icon='help'\n text={t('app_header_help')}\n iconOnly\n menu={{\n items: helpMenu\n }}\n />\n )}\n\n {portalSwitcher && <MenuButton {...portalSwitcher} iconOnly={hasMobileNav} />}\n\n {shareApp &&\n (hasMobileNav ? (\n <Button variant='secondary' icon label={shareLabel} onClick={shareApp.onClick}>\n <StyledShareButtonContent name='share-external' set='budicon' />\n </Button>\n ) : (\n <Button variant='secondary' onClick={shareApp.onClick}>\n <StyledShareButtonContent name='share-external' set='budicon' />\n <span>{shareLabel}</span>\n </Button>\n ))}\n\n {showOperator && !hasMobileNav && (\n <Operator\n as={StyledAppHeaderOperator}\n actions={operator.actions}\n popover={{ placement: 'bottom-start' }}\n name={operator.avatar.name}\n >\n <Avatar {...operator.avatar} />\n </Operator>\n )}\n\n {hasMobileNav && (\n <Button\n as={StyledHamburgerMenu}\n label={t('open_app_header_drawer')}\n variant='simple'\n icon\n onClick={() => {\n megaMenu.close();\n openDrawer('navigationOperator');\n }}\n >\n <Icon name='bars' />\n </Button>\n )}\n </Flex>\n </Flex>\n\n {navPosition === 'below' &&\n !hasMobileNav &&\n (useDefaultInlineLayout ? (\n <Flex container={{ justify: navAlignment }}>\n {resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1, basis: '0' }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition={navPosition}\n isDefaultWSS\n />\n )}\n </Flex>\n ) : (\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Flex\n as={appInfoAs}\n container={{ alignItems: 'center', gap: 1 }}\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Image src={appInfo.imageSrc} alt={appInfo.appName} />\n <Flex as='span' container={{ direction: 'row', gap: 1, alignItems: 'baseline' }}>\n <Text\n as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName}\n variant='h1'\n >\n {appInfo.appName}\n </Text>\n {appInfo.portalName && <Text variant='secondary'>{appInfo.portalName}</Text>}\n </Flex>\n </Flex>\n {resolvedMainMenu.length ? (\n <Flex\n as={StyledNav}\n ref={setNavSectionEl}\n item={{ grow: 1 }}\n container={{ alignItems: 'center', gap: 0.5, justify: navAlignment }}\n >\n {renderMainMenu()}\n </Flex>\n ) : (\n <NavLinks\n ref={setNavSectionEl}\n navLinks={legacyNavLinks}\n navAlignment={navAlignment}\n navPosition='below'\n isDefaultWSS={isDefaultWSS}\n />\n )}\n </Flex>\n ))}\n </StyledAppHeader>\n {!hasMobileNav && mainMenuVariant === 'mega-menu' && megaMenu.openMenu && (\n <MegaMenuPanel\n menu={megaMenu.openMenu}\n panelId={mainMenuPanelId}\n panelRef={megaMenu.panelRef}\n onClose={megaMenu.onClose}\n onTabForwardExit={megaMenu.onTabForwardExit}\n onActionClose={megaMenu.onActionClose}\n focusOnOpen={megaMenu.focusOnOpen}\n />\n )}\n {!hasMobileNav && appSwitcherMegaMenuItems.length > 0 && appSwitcherMegaMenu.openMenu && (\n <MegaMenuPanel\n menu={appSwitcherMegaMenu.openMenu}\n panelId={appSwitcherPanelId}\n anchorElement={appSwitcherNavEl ?? undefined}\n panelRef={appSwitcherMegaMenu.panelRef}\n onClose={appSwitcherMegaMenu.onClose}\n onTabForwardExit={appSwitcherMegaMenu.onTabForwardExit}\n onActionClose={appSwitcherMegaMenu.onActionClose}\n focusOnOpen={appSwitcherMegaMenu.focusOnOpen}\n />\n )}\n </ThemeOverride>\n\n <StyledMain\n navPosition={navPosition}\n $isDefaultWSS={useDefaultInlineLayout}\n $hasFooter={hasFooter}\n $hasConfiguredFooter={hasConfiguredFooter}\n previewActive={previewActive}\n >\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledMain>\n\n {resolvedFooterMenu ? (\n <ThemeOverride theme={headerTheme}>{footerElement}</ThemeOverride>\n ) : (\n footerElement\n )}\n\n <Backdrop\n open={backdropOpen}\n transitionSpeed='none'\n onAfterTransitionIn={() => setDrawerOpen(true)}\n onBeforeTransitionOut={() => setDrawerOpen(false)}\n onClick={e => {\n if (e.currentTarget === e.target) setDrawerOpen(false);\n }}\n >\n <Drawer\n open={drawerOpen}\n onAfterClose={() => {\n closeDrawer();\n if (drawerContent === 'notifications') {\n notifications?.onNotificationsClose?.();\n }\n }}\n onAfterOpen={() => {\n if (drawerContent === 'notifications') {\n notifications?.onNotificationsOpen?.();\n }\n }}\n position='fixed'\n placement={end}\n size='min(26rem, calc(100vw - 5rem))'\n nullWhenClosed\n >\n {drawerContent === 'notifications' && notifications && (\n <Notifications {...notifications} onClose={() => setDrawerOpen(false)} />\n )}\n {drawerContent === 'navigationOperator' && (\n <MobileHeaderContent\n appInfo={appInfo}\n navLinks={\n resolvedMainMenu.length ? flattenMenuItems(resolvedMainMenu) : legacyNavLinks\n }\n operator={operator}\n showOperator={showOperator}\n onClose={() => setDrawerOpen(false)}\n />\n )}\n </Drawer>\n </Backdrop>\n </>\n );\n});\n\nexport default AppShell;\n"]}
|
|
@@ -86,6 +86,8 @@ export interface AppShellProps extends BaseProps, NoChildrenProp {
|
|
|
86
86
|
navLinks?: NavLinkProps[];
|
|
87
87
|
/** Props for the operator menu. */
|
|
88
88
|
operator: OperatorProps;
|
|
89
|
+
/** Whether to show the operator control and account section. @default true */
|
|
90
|
+
showOperator?: boolean;
|
|
89
91
|
/** Props related to notifications for the application. */
|
|
90
92
|
notifications?: NotificationProps;
|
|
91
93
|
/** Props related to the search input for the application. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.types.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppShell.types.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.types.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MouseEventHandler, ReactNode, Ref } from 'react';\n\nimport type {\n AvatarProps,\n BaseProps,\n ImageProps,\n MenuItemProps,\n NoChildrenProp,\n SearchInputProps,\n ShareAppConfig,\n PortalSwitcherConfig\n} from '@pega/cosmos-react-core';\nimport type {\n ContextSwitcherProps,\n NavListItemProps\n} from '@pega/cosmos-react-core/lib/components/AppShell/AppShell.types';\n\nimport type { FooterLink } from '../Footer';\n\nimport type {\n AppShellNavPosition,\n FooterMenuConfig,\n InteractionEvent,\n MainMenuConfig,\n NavMenuProps,\n NavLinkProps\n} from './AppShellMenu.types';\n\nexport type {\n AppShellMenuControlProps,\n AppShellNavPosition,\n FooterMenuConfig,\n InteractionEvent,\n MainMenuConfig,\n MainMenuVariant,\n MegaMenuColumn,\n MegaMenuPanelProps,\n MegaMenuTriggersProps,\n NavLinkProps,\n NavMenuEntryProps,\n NavMenuGroupProps,\n NavMenuItemProps,\n NavMenuProps,\n UseMegaMenuOptions\n} from './AppShellMenu.types';\n\n/** Application identity and navigation settings shown in the AppShell header. */\ninterface AppInfoProps {\n /** Name of the application. */\n appName: string;\n /** URL source of the logo image. */\n imageSrc: ImageProps['src'];\n /** URL or DOM id to navigate to from the logo and appName. */\n href?: string;\n /** Click handler for the logo and appName. */\n onClick?: MouseEventHandler<HTMLAnchorElement>;\n /** Specifies where to open the link href. */\n target?: string;\n /** If true, the appName will not be visibly displayed on screen. */\n appNameHidden?: boolean;\n /** The secondary text to render in the header. */\n portalName?: string;\n}\n\n/** Operator details and actions shown in the AppShell. */\ninterface OperatorProps {\n /** Props for constructing the operator avatar. */\n avatar: AvatarProps;\n /** The title of the operator menu. */\n title: string;\n /** A list of actions that will populate a menu attached to the operator. */\n actions: Pick<NavListItemProps, 'id' | 'primary' | 'href' | 'onClick' | 'visual'>[];\n}\n\n/** A single notification displayed by the AppShell. */\nexport interface NotificationItem {\n /** An id representing the item. */\n id: string;\n /** The primary text for the item. */\n primary: string;\n /** Secondary text that will be rendered as a Meta List. */\n secondary?: string[];\n /** A visual associated with the item. */\n visual?: ReactNode;\n /** A flag indicating if the item has been read. */\n unread?: boolean;\n /** URL or DOM id to navigate to. */\n href?: string;\n /** The onClick handler for the item. */\n onClick?: (event: InteractionEvent) => void;\n}\n\n/** Notification panel state and callbacks for the AppShell. */\nexport interface NotificationProps {\n /** The title of the notifications view. */\n title: string;\n /** The number of new notifications. */\n count: number;\n /** A list of notification items. */\n items: NotificationItem[];\n /** If true, a loading indicator will render in place of the list. */\n loading?: boolean;\n /** Click event for items within the list. */\n onItemClick?: (id: string, event: InteractionEvent) => void;\n /** Callback that fires when the notification view opens. */\n onNotificationsOpen?: () => void;\n /** Callback that fires when the notification view closes. */\n onNotificationsClose?: () => void;\n}\n\nexport type { FooterLink } from '../Footer';\n\n/** Public configuration for the WSS AppShell component. */\nexport interface AppShellProps extends BaseProps, NoChildrenProp {\n /** The content of the application. */\n main: ReactNode;\n /** Banners will render above the main content if they are provided. */\n banners?: ReactNode;\n /** Props related to the app name and logo. */\n appInfo: AppInfoProps;\n /** Context manager configuration. */\n contextSwitcher?: ContextSwitcherProps;\n /** Configured app-switcher menu and its presentation variant. */\n appSwitcherMenu?: {\n variant: 'context-switcher' | 'mega-menu';\n items: NavMenuProps[];\n };\n /** Preferred flat links or configured hierarchical menu. */\n mainNav?: NavLinkProps[] | MainMenuConfig;\n /** @deprecated Use `mainNav` for flat links. */\n navLinks?: NavLinkProps[];\n /** Props for the operator menu. */\n operator: OperatorProps;\n /** Props related to notifications for the application. */\n notifications?: NotificationProps;\n /** Props related to the search input for the application. */\n searchInput?: SearchInputProps;\n /**\n * The alignment of navigation links within the header.\n * @default 'end'\n */\n navAlignment?: 'start' | 'center' | 'end';\n /**\n * The positioning of the navigation links relative to the other app header elements.\n * @default 'inline'\n */\n navPosition?: AppShellNavPosition;\n /** Whether the shell should render the default WSS layout. */\n isDefaultWSS?: boolean;\n /** Configuration for the help menu in the header */\n helpMenu?: MenuItemProps[];\n /** Configuration for the Share Application button. */\n shareApp?: ShareAppConfig;\n /** Configuration for the portal switcher button. */\n portalSwitcher?: PortalSwitcherConfig;\n /** Legacy links or a configured menu with optional legacy fallback links. */\n footer?: FooterLink[] | FooterMenuConfig;\n /** Ref for the wrapping div element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AppShell.types.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MouseEventHandler, ReactNode, Ref } from 'react';\n\nimport type {\n AvatarProps,\n BaseProps,\n ImageProps,\n MenuItemProps,\n NoChildrenProp,\n SearchInputProps,\n ShareAppConfig,\n PortalSwitcherConfig\n} from '@pega/cosmos-react-core';\nimport type {\n ContextSwitcherProps,\n NavListItemProps\n} from '@pega/cosmos-react-core/lib/components/AppShell/AppShell.types';\n\nimport type { FooterLink } from '../Footer';\n\nimport type {\n AppShellNavPosition,\n FooterMenuConfig,\n InteractionEvent,\n MainMenuConfig,\n NavMenuProps,\n NavLinkProps\n} from './AppShellMenu.types';\n\nexport type {\n AppShellMenuControlProps,\n AppShellNavPosition,\n FooterMenuConfig,\n InteractionEvent,\n MainMenuConfig,\n MainMenuVariant,\n MegaMenuColumn,\n MegaMenuPanelProps,\n MegaMenuTriggersProps,\n NavLinkProps,\n NavMenuEntryProps,\n NavMenuGroupProps,\n NavMenuItemProps,\n NavMenuProps,\n UseMegaMenuOptions\n} from './AppShellMenu.types';\n\n/** Application identity and navigation settings shown in the AppShell header. */\ninterface AppInfoProps {\n /** Name of the application. */\n appName: string;\n /** URL source of the logo image. */\n imageSrc: ImageProps['src'];\n /** URL or DOM id to navigate to from the logo and appName. */\n href?: string;\n /** Click handler for the logo and appName. */\n onClick?: MouseEventHandler<HTMLAnchorElement>;\n /** Specifies where to open the link href. */\n target?: string;\n /** If true, the appName will not be visibly displayed on screen. */\n appNameHidden?: boolean;\n /** The secondary text to render in the header. */\n portalName?: string;\n}\n\n/** Operator details and actions shown in the AppShell. */\ninterface OperatorProps {\n /** Props for constructing the operator avatar. */\n avatar: AvatarProps;\n /** The title of the operator menu. */\n title: string;\n /** A list of actions that will populate a menu attached to the operator. */\n actions: Pick<NavListItemProps, 'id' | 'primary' | 'href' | 'onClick' | 'visual'>[];\n}\n\n/** A single notification displayed by the AppShell. */\nexport interface NotificationItem {\n /** An id representing the item. */\n id: string;\n /** The primary text for the item. */\n primary: string;\n /** Secondary text that will be rendered as a Meta List. */\n secondary?: string[];\n /** A visual associated with the item. */\n visual?: ReactNode;\n /** A flag indicating if the item has been read. */\n unread?: boolean;\n /** URL or DOM id to navigate to. */\n href?: string;\n /** The onClick handler for the item. */\n onClick?: (event: InteractionEvent) => void;\n}\n\n/** Notification panel state and callbacks for the AppShell. */\nexport interface NotificationProps {\n /** The title of the notifications view. */\n title: string;\n /** The number of new notifications. */\n count: number;\n /** A list of notification items. */\n items: NotificationItem[];\n /** If true, a loading indicator will render in place of the list. */\n loading?: boolean;\n /** Click event for items within the list. */\n onItemClick?: (id: string, event: InteractionEvent) => void;\n /** Callback that fires when the notification view opens. */\n onNotificationsOpen?: () => void;\n /** Callback that fires when the notification view closes. */\n onNotificationsClose?: () => void;\n}\n\nexport type { FooterLink } from '../Footer';\n\n/** Public configuration for the WSS AppShell component. */\nexport interface AppShellProps extends BaseProps, NoChildrenProp {\n /** The content of the application. */\n main: ReactNode;\n /** Banners will render above the main content if they are provided. */\n banners?: ReactNode;\n /** Props related to the app name and logo. */\n appInfo: AppInfoProps;\n /** Context manager configuration. */\n contextSwitcher?: ContextSwitcherProps;\n /** Configured app-switcher menu and its presentation variant. */\n appSwitcherMenu?: {\n variant: 'context-switcher' | 'mega-menu';\n items: NavMenuProps[];\n };\n /** Preferred flat links or configured hierarchical menu. */\n mainNav?: NavLinkProps[] | MainMenuConfig;\n /** @deprecated Use `mainNav` for flat links. */\n navLinks?: NavLinkProps[];\n /** Props for the operator menu. */\n operator: OperatorProps;\n /** Whether to show the operator control and account section. @default true */\n showOperator?: boolean;\n /** Props related to notifications for the application. */\n notifications?: NotificationProps;\n /** Props related to the search input for the application. */\n searchInput?: SearchInputProps;\n /**\n * The alignment of navigation links within the header.\n * @default 'end'\n */\n navAlignment?: 'start' | 'center' | 'end';\n /**\n * The positioning of the navigation links relative to the other app header elements.\n * @default 'inline'\n */\n navPosition?: AppShellNavPosition;\n /** Whether the shell should render the default WSS layout. */\n isDefaultWSS?: boolean;\n /** Configuration for the help menu in the header */\n helpMenu?: MenuItemProps[];\n /** Configuration for the Share Application button. */\n shareApp?: ShareAppConfig;\n /** Configuration for the portal switcher button. */\n portalSwitcher?: PortalSwitcherConfig;\n /** Legacy links or a configured menu with optional legacy fallback links. */\n footer?: FooterLink[] | FooterMenuConfig;\n /** Ref for the wrapping div element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
|
|
@@ -2,11 +2,9 @@ import type { DefaultTheme } from 'styled-components';
|
|
|
2
2
|
export declare const groupedMenuContentGap = 0.125;
|
|
3
3
|
export declare const groupedMenuGridStyles: (theme: DefaultTheme) => import("styled-components").RuleSet<object>;
|
|
4
4
|
export declare const groupedMenuColumnStyles: (theme: DefaultTheme, borderColor: string) => import("styled-components").RuleSet<object>;
|
|
5
|
-
export declare const groupedMenuHeadingStyles: (theme: DefaultTheme
|
|
5
|
+
export declare const groupedMenuHeadingStyles: (theme: DefaultTheme) => import("styled-components").RuleSet<object>;
|
|
6
6
|
export declare const groupedMenuActionTextStyles: (theme: DefaultTheme) => import("styled-components").RuleSet<object>;
|
|
7
|
-
export declare const StyledGroupedMenuHeading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components
|
|
8
|
-
$actionable?: boolean;
|
|
9
|
-
}>> & string;
|
|
7
|
+
export declare const StyledGroupedMenuHeading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
10
8
|
export declare const StyledGroupedMenuAction: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
11
9
|
ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
12
10
|
}>, never>, never>> & string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedMenu.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/GroupedMenu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"GroupedMenu.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/GroupedMenu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,gDAQxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,YAAY,EAAE,aAAa,MAAM,gDAY/E,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,YAAY,gDAG3D,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,OAAO,YAAY,gDAK9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,qOAOnC,CAAC;AAIH,eAAO,MAAM,uBAAuB;;4BAmBlC,CAAC;AAIH,eAAO,MAAM,8BAA8B;;oCAYzC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { lighten } from 'polished';
|
|
2
1
|
import styled, { css } from 'styled-components';
|
|
3
2
|
import { calculateFontSize, defaultThemeProp } from '@pega/cosmos-react-core';
|
|
4
3
|
export const groupedMenuContentGap = 0.125;
|
|
@@ -24,32 +23,23 @@ export const groupedMenuColumnStyles = (theme, borderColor) => css `
|
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
`;
|
|
27
|
-
export const groupedMenuHeadingStyles = (theme
|
|
26
|
+
export const groupedMenuHeadingStyles = (theme) => css `
|
|
28
27
|
margin: 0;
|
|
29
28
|
padding-block-end: calc(0.5 * ${theme.base.spacing});
|
|
30
|
-
border-block-end: 0.0625rem solid ${borderColor};
|
|
31
29
|
`;
|
|
32
30
|
export const groupedMenuActionTextStyles = (theme) => css `
|
|
33
31
|
color: ${theme.base.palette.interactive};
|
|
34
|
-
font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).
|
|
32
|
+
font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).xs};
|
|
35
33
|
font-weight: ${theme.base['font-weight'].normal};
|
|
36
34
|
text-decoration: none;
|
|
37
35
|
`;
|
|
38
|
-
export const StyledGroupedMenuHeading = styled.h2(({ theme
|
|
39
|
-
const hoverColor = lighten(0.2, theme.base.palette.interactive);
|
|
36
|
+
export const StyledGroupedMenuHeading = styled.h2(({ theme }) => {
|
|
40
37
|
return css `
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
css `
|
|
47
|
-
&:hover,
|
|
48
|
-
&:focus-within {
|
|
49
|
-
border-block-end-color: ${hoverColor};
|
|
50
|
-
}
|
|
51
|
-
`}
|
|
52
|
-
`;
|
|
38
|
+
${groupedMenuHeadingStyles(theme)}
|
|
39
|
+
color: ${theme.base.palette['foreground-color']};
|
|
40
|
+
font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).m};
|
|
41
|
+
font-weight: ${theme.base['font-weight'].bold};
|
|
42
|
+
`;
|
|
53
43
|
});
|
|
54
44
|
StyledGroupedMenuHeading.defaultProps = defaultThemeProp;
|
|
55
45
|
export const StyledGroupedMenuAction = styled.button.attrs({ type: 'button' })(({ theme }) => {
|
|
@@ -78,6 +68,12 @@ export const StyledGroupedMenuHeadingAction = styled(StyledGroupedMenuAction)(({
|
|
|
78
68
|
color: ${theme.base.palette['foreground-color']};
|
|
79
69
|
font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).m};
|
|
80
70
|
font-weight: ${theme.base['font-weight'].bold};
|
|
71
|
+
min-height: auto;
|
|
72
|
+
|
|
73
|
+
&:hover,
|
|
74
|
+
&:focus-visible {
|
|
75
|
+
text-decoration: underline;
|
|
76
|
+
}
|
|
81
77
|
`;
|
|
82
78
|
});
|
|
83
79
|
StyledGroupedMenuHeadingAction.defaultProps = defaultThemeProp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedMenu.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/GroupedMenu.styles.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"GroupedMenu.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/GroupedMenu.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\n\nimport { calculateFontSize, defaultThemeProp } from '@pega/cosmos-react-core';\n\nexport const groupedMenuContentGap = 0.125;\n\nexport const groupedMenuGridStyles = (theme: DefaultTheme) => css`\n grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));\n gap: calc(2.5 * ${theme.base.spacing}) calc(3 * ${theme.base.spacing});\n\n @media (max-width: ${theme.base.breakpoints.md}) {\n grid-template-columns: 1fr;\n gap: calc(1.5 * ${theme.base.spacing});\n }\n`;\n\nexport const groupedMenuColumnStyles = (theme: DefaultTheme, borderColor: string) => css`\n & > * + * {\n border-inline-start: 0.0625rem solid ${borderColor};\n padding-inline-start: calc(1.5 * ${theme.base.spacing});\n }\n\n @media (max-width: ${theme.base.breakpoints.md}) {\n & > * + * {\n border-inline-start: 0;\n padding-inline-start: 0;\n }\n }\n`;\n\nexport const groupedMenuHeadingStyles = (theme: DefaultTheme) => css`\n margin: 0;\n padding-block-end: calc(0.5 * ${theme.base.spacing});\n`;\n\nexport const groupedMenuActionTextStyles = (theme: DefaultTheme) => css`\n color: ${theme.base.palette.interactive};\n font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).xs};\n font-weight: ${theme.base['font-weight'].normal};\n text-decoration: none;\n`;\n\nexport const StyledGroupedMenuHeading = styled.h2(({ theme }) => {\n return css`\n ${groupedMenuHeadingStyles(theme)}\n color: ${theme.base.palette['foreground-color']};\n font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).m};\n font-weight: ${theme.base['font-weight'].bold};\n `;\n});\n\nStyledGroupedMenuHeading.defaultProps = defaultThemeProp;\n\nexport const StyledGroupedMenuAction = styled.button.attrs({ type: 'button' })(({ theme }) => {\n return css`\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n text-align: start;\n ${groupedMenuActionTextStyles(theme)}\n min-height: ${theme.base['hit-area']['mouse-min']};\n cursor: pointer;\n\n &:hover {\n color: ${theme.base.palette['foreground-color']};\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledGroupedMenuAction.defaultProps = defaultThemeProp;\n\nexport const StyledGroupedMenuHeadingAction = styled(StyledGroupedMenuAction)(({ theme }) => {\n return css`\n color: ${theme.base.palette['foreground-color']};\n font-size: ${calculateFontSize(theme.base['font-size'], theme.base['font-scale']).m};\n font-weight: ${theme.base['font-weight'].bold};\n min-height: auto;\n\n &:hover,\n &:focus-visible {\n text-decoration: underline;\n }\n `;\n});\n\nStyledGroupedMenuHeadingAction.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -175,7 +175,7 @@ export const MegaMenuPanel = ({ menu, panelId, panelRef, anchorElement, onClose,
|
|
|
175
175
|
onTabForwardExit();
|
|
176
176
|
}, children: _jsx(StyledGrid, { children: groups.map((group, index) => {
|
|
177
177
|
const headingId = `${panelId}-${group.id}`;
|
|
178
|
-
return (_jsxs(StyledGroup, { container: { direction: 'column', gap: groupedMenuContentGap }, children: [group.label && (_jsx(StyledGroupHeading, { id: headingId,
|
|
178
|
+
return (_jsxs(StyledGroup, { container: { direction: 'column', gap: groupedMenuContentGap }, children: [group.label && (_jsx(StyledGroupHeading, { id: headingId, children: group.action ? (_jsx(StyledMegaMenuGroupAction, { ref: index === firstFocusableGroup && focusActionHeading
|
|
179
179
|
? actionHeadingRef
|
|
180
180
|
: undefined, disabled: group.action.disabled, onClick: (event) => activateGroupAction(group.action, event, onActionClose), children: group.label })) : (group.label) })), _jsx(MegaMenuItems, { ref: index === firstFocusableGroup && !focusActionHeading ? menuRootRef : undefined, items: captureItemFocus(group.items), "aria-label": group.label ?? menuLabel, onItemClick: () => {
|
|
181
181
|
onActionClose(focusedDestinationRef.current ?? undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MegaMenu.js","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { MouseEvent, ReactElement } from 'react';\n\nimport {\n Button,\n Flex,\n Icon,\n getFocusables,\n isInstance,\n useConsolidatedRef,\n useElement,\n useEscape,\n useFocusWithin,\n useI18n,\n useOuterEvent\n} from '@pega/cosmos-react-core';\nimport type { MenuProps } from '@pega/cosmos-react-core';\n\nimport { StyledMainMenuLink } from './AppShell.styles';\nimport type {\n MegaMenuPanelProps,\n MegaMenuTriggersProps,\n UseMegaMenuOptions,\n NavMenuEntryProps,\n NavMenuItemProps\n} from './AppShellMenu.types';\nimport { toMegaMenuGroups } from './AppShell.utils';\nimport { groupedMenuContentGap } from './GroupedMenu.styles';\nimport {\n StyledAnchoredPanel,\n StyledBackdrop,\n StyledGrid,\n StyledGroup,\n StyledGroupHeading,\n StyledMegaMenuGroupAction,\n StyledMegaMenuItems,\n StyledPanel\n} from './MegaMenu.styles';\n\nconst MegaMenuItems = forwardRef<HTMLDivElement, MenuProps>(function MegaMenuItems(props, ref) {\n const [focusControl, setFocusControl] = useElement<HTMLDivElement>();\n const focusControlRef = useConsolidatedRef(ref, setFocusControl);\n\n return (\n <Flex\n ref={focusControlRef}\n container={{ direction: 'column' }}\n role='group'\n aria-label={props['aria-label']}\n tabIndex={0}\n >\n <StyledMegaMenuItems {...props} focusControlEl={focusControl ?? undefined} />\n </Flex>\n );\n});\n\n/** Invokes an enabled group action and dismisses its panel. */\nconst activateGroupAction = (\n item: NavMenuItemProps,\n event: MouseEvent<HTMLButtonElement>,\n onClose: () => void\n) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n if (item.onClick) {\n item.onClick(item.id, event);\n }\n onClose();\n};\n\n/** Owns MegaMenu visibility and focus behavior across its trigger and panel. */\nexport const useMegaMenu = ({ menus, navElement, isMobile }: UseMegaMenuOptions) => {\n const [openMenuId, setOpenMenuId] = useState<string>();\n const [focusOnOpen, setFocusOnOpen] = useState(false);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const [panelElement, setPanelElement] = useElement<HTMLElement>();\n const openMenu = menus.find(menu => menu.id === openMenuId);\n const focusRoots = useMemo(() => [navElement, panelElement], [navElement, panelElement]);\n\n // Dismisses the panel without changing focus.\n const close = useCallback(() => {\n setOpenMenuId(undefined);\n }, []);\n\n // Returns focus to the trigger when the panel is dismissed.\n const onClose = useCallback(() => {\n close();\n triggerRef.current?.focus();\n }, [close]);\n\n // Continues forward tab order after the trigger when leaving the panel.\n const onTabForwardExit = useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n close();\n return;\n }\n\n const rootNode = trigger.getRootNode();\n if (isInstance(rootNode, Document, ShadowRoot)) {\n const focusables = getFocusables(rootNode);\n focusables[focusables.indexOf(trigger) + 1]?.focus();\n }\n\n close();\n }, [close]);\n\n // Restores focus to the action destination or trigger after selection.\n const onActionClose = useCallback(\n (focusTarget?: HTMLElement) => {\n const focusRemainsInPanel = panelElement?.contains(document.activeElement);\n close();\n if (focusTarget?.isConnected) focusTarget.focus();\n else if (focusRemainsInPanel) triggerRef.current?.focus();\n },\n [close, panelElement]\n );\n\n // Closes on Escape only while a menu is open and restores trigger focus.\n const onEscape = useCallback(() => {\n if (!openMenuId) return;\n\n close();\n triggerRef.current?.focus();\n }, [openMenuId, close]);\n\n useOuterEvent('mousedown', [navElement, panelElement], close);\n useFocusWithin(\n focusRoots,\n useCallback(\n (isFocused: boolean) => {\n if (!isFocused && openMenuId) close();\n },\n [close, openMenuId]\n )\n );\n useEscape(onEscape);\n\n // Dismisses the desktop panel when responsive layout switches to mobile.\n useEffect(() => {\n if (isMobile) close();\n }, [isMobile, close]);\n\n return {\n openMenu,\n openMenuId,\n focusOnOpen,\n close,\n panelRef: setPanelElement,\n onOpenChange: setOpenMenuId,\n onTriggerOpen: (trigger: HTMLButtonElement, shouldFocus: boolean) => {\n triggerRef.current = trigger;\n setFocusOnOpen(shouldFocus);\n },\n onClose,\n onTabForwardExit,\n onActionClose\n };\n};\n\nexport const MegaMenuTriggers = ({\n menus,\n openId,\n panelId,\n onOpenChange,\n onTriggerOpen,\n iconOnly = false,\n isDefaultWSS,\n navPosition\n}: MegaMenuTriggersProps): ReactElement[] =>\n menus.map(menu => {\n const label = menu.label ?? menu.id;\n const isOpen = openId === menu.id;\n const isActionMenu = !!menu.onClick;\n const hasPanel = !isActionMenu && !!menu.items?.length;\n const showIconOnly = iconOnly && !!menu.icon;\n\n return (\n <StyledMainMenuLink\n as={Button}\n key={menu.id}\n variant='text'\n icon={showIconOnly}\n compact={showIconOnly}\n label={showIconOnly ? label : undefined}\n aria-label={showIconOnly ? label : undefined}\n aria-expanded={hasPanel ? isOpen : undefined}\n aria-controls={hasPanel && isOpen ? panelId : undefined}\n disabled={menu.disabled || menu.loading}\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n if (menu.onClick) {\n onOpenChange(undefined);\n menu.onClick(menu.id, event);\n return;\n }\n\n if (!menu.items?.length) {\n onOpenChange(undefined);\n return;\n }\n\n if (!isOpen) {\n menu.onMenuOpen?.();\n onTriggerOpen?.(event.currentTarget, event.detail === 0);\n }\n onOpenChange(isOpen ? undefined : menu.id);\n }}\n $isDefaultWSS={isDefaultWSS}\n $navPosition={navPosition}\n >\n {menu.icon && <Icon name={menu.icon} />}\n {!showIconOnly && ` ${label}`}\n </StyledMainMenuLink>\n );\n });\n\nexport const MegaMenuPanel = ({\n menu,\n panelId,\n panelRef,\n anchorElement,\n onClose,\n onTabForwardExit = onClose,\n onActionClose = onClose,\n focusOnOpen = false\n}: MegaMenuPanelProps): ReactElement => {\n const t = useI18n();\n const menuLabel = menu.label ?? t('menu');\n const groups = toMegaMenuGroups(menu);\n const firstFocusableGroup = groups.findIndex(\n group =>\n (group.action && !group.action.disabled) ||\n group.items.some(item => 'primary' in item && !item.disabled)\n );\n const focusActionHeading =\n firstFocusableGroup >= 0 &&\n !!groups[firstFocusableGroup].action &&\n !groups[firstFocusableGroup].action.disabled;\n const actionHeadingRef = useRef<HTMLButtonElement>(null);\n const menuRootRef = useRef<HTMLDivElement>(null);\n const panelElementRef = useConsolidatedRef<HTMLElement>(panelRef);\n const focusedDestinationRef = useRef<HTMLElement | null>(null);\n\n // Records focus moved outside the panel by an item action.\n const captureItemFocus = (items: NavMenuEntryProps[]): NavMenuEntryProps[] =>\n items.map(item => {\n if (!('primary' in item) || !item.onClick) return item;\n\n const onClick: NonNullable<NavMenuItemProps['onClick']> = (id, event) => {\n item.onClick?.(id, event);\n const focused = document.activeElement;\n focusedDestinationRef.current =\n isInstance(focused, HTMLElement) &&\n focused !== document.body &&\n !panelElementRef.current?.contains(focused)\n ? focused\n : null;\n };\n return { ...item, onClick };\n });\n\n // Moves keyboard-opened panels to their first actionable target.\n useEffect(() => {\n if (!focusOnOpen) return;\n (focusActionHeading\n ? actionHeadingRef.current\n : menuRootRef.current ?? panelElementRef.current\n )?.focus();\n }, [menu.id, firstFocusableGroup, focusActionHeading, focusOnOpen]);\n\n const panel = (\n <StyledPanel\n ref={panelElementRef}\n id={panelId}\n role='region'\n aria-label={menuLabel}\n tabIndex={-1}\n onKeyDown={event => {\n // Match MenuButton by dismissing at either panel tab boundary.\n if (event.key !== 'Tab') return;\n\n const firstFocusTarget = focusActionHeading\n ? actionHeadingRef.current\n : menuRootRef.current ?? panelElementRef.current;\n const lastFocusTarget =\n firstFocusableGroup < 0\n ? panelElementRef.current\n : getFocusables(panelElementRef).at(-1) ?? panelElementRef.current;\n const exitTarget = event.shiftKey ? firstFocusTarget : lastFocusTarget;\n if (event.target !== exitTarget) return;\n\n event.preventDefault();\n if (event.shiftKey) onClose();\n else onTabForwardExit();\n }}\n >\n <StyledGrid>\n {groups.map((group, index) => {\n const headingId = `${panelId}-${group.id}`;\n return (\n <StyledGroup\n key={group.id}\n container={{ direction: 'column', gap: groupedMenuContentGap }}\n >\n {group.label && (\n <StyledGroupHeading id={headingId} $actionable={!!group.action}>\n {group.action ? (\n <StyledMegaMenuGroupAction\n ref={\n index === firstFocusableGroup && focusActionHeading\n ? actionHeadingRef\n : undefined\n }\n disabled={group.action.disabled}\n onClick={(event: MouseEvent<HTMLButtonElement>) =>\n activateGroupAction(group.action as NavMenuItemProps, event, onActionClose)\n }\n >\n {group.label}\n </StyledMegaMenuGroupAction>\n ) : (\n group.label\n )}\n </StyledGroupHeading>\n )}\n <MegaMenuItems\n ref={index === firstFocusableGroup && !focusActionHeading ? menuRootRef : undefined}\n items={captureItemFocus(group.items)}\n aria-label={group.label ?? menuLabel}\n onItemClick={() => {\n onActionClose(focusedDestinationRef.current ?? undefined);\n focusedDestinationRef.current = null;\n }}\n />\n </StyledGroup>\n );\n })}\n </StyledGrid>\n </StyledPanel>\n );\n\n return (\n <>\n <StyledBackdrop type='button' tabIndex={-1} aria-label={t('close')} onClick={onClose} />\n {anchorElement ? (\n <StyledAnchoredPanel show target={anchorElement} placement='bottom-start'>\n {panel}\n </StyledAnchoredPanel>\n ) : (\n panel\n )}\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"MegaMenu.js","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { MouseEvent, ReactElement } from 'react';\n\nimport {\n Button,\n Flex,\n Icon,\n getFocusables,\n isInstance,\n useConsolidatedRef,\n useElement,\n useEscape,\n useFocusWithin,\n useI18n,\n useOuterEvent\n} from '@pega/cosmos-react-core';\nimport type { MenuProps } from '@pega/cosmos-react-core';\n\nimport { StyledMainMenuLink } from './AppShell.styles';\nimport type {\n MegaMenuPanelProps,\n MegaMenuTriggersProps,\n UseMegaMenuOptions,\n NavMenuEntryProps,\n NavMenuItemProps\n} from './AppShellMenu.types';\nimport { toMegaMenuGroups } from './AppShell.utils';\nimport { groupedMenuContentGap } from './GroupedMenu.styles';\nimport {\n StyledAnchoredPanel,\n StyledBackdrop,\n StyledGrid,\n StyledGroup,\n StyledGroupHeading,\n StyledMegaMenuGroupAction,\n StyledMegaMenuItems,\n StyledPanel\n} from './MegaMenu.styles';\n\nconst MegaMenuItems = forwardRef<HTMLDivElement, MenuProps>(function MegaMenuItems(props, ref) {\n const [focusControl, setFocusControl] = useElement<HTMLDivElement>();\n const focusControlRef = useConsolidatedRef(ref, setFocusControl);\n\n return (\n <Flex\n ref={focusControlRef}\n container={{ direction: 'column' }}\n role='group'\n aria-label={props['aria-label']}\n tabIndex={0}\n >\n <StyledMegaMenuItems {...props} focusControlEl={focusControl ?? undefined} />\n </Flex>\n );\n});\n\n/** Invokes an enabled group action and dismisses its panel. */\nconst activateGroupAction = (\n item: NavMenuItemProps,\n event: MouseEvent<HTMLButtonElement>,\n onClose: () => void\n) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n if (item.onClick) {\n item.onClick(item.id, event);\n }\n onClose();\n};\n\n/** Owns MegaMenu visibility and focus behavior across its trigger and panel. */\nexport const useMegaMenu = ({ menus, navElement, isMobile }: UseMegaMenuOptions) => {\n const [openMenuId, setOpenMenuId] = useState<string>();\n const [focusOnOpen, setFocusOnOpen] = useState(false);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const [panelElement, setPanelElement] = useElement<HTMLElement>();\n const openMenu = menus.find(menu => menu.id === openMenuId);\n const focusRoots = useMemo(() => [navElement, panelElement], [navElement, panelElement]);\n\n // Dismisses the panel without changing focus.\n const close = useCallback(() => {\n setOpenMenuId(undefined);\n }, []);\n\n // Returns focus to the trigger when the panel is dismissed.\n const onClose = useCallback(() => {\n close();\n triggerRef.current?.focus();\n }, [close]);\n\n // Continues forward tab order after the trigger when leaving the panel.\n const onTabForwardExit = useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n close();\n return;\n }\n\n const rootNode = trigger.getRootNode();\n if (isInstance(rootNode, Document, ShadowRoot)) {\n const focusables = getFocusables(rootNode);\n focusables[focusables.indexOf(trigger) + 1]?.focus();\n }\n\n close();\n }, [close]);\n\n // Restores focus to the action destination or trigger after selection.\n const onActionClose = useCallback(\n (focusTarget?: HTMLElement) => {\n const focusRemainsInPanel = panelElement?.contains(document.activeElement);\n close();\n if (focusTarget?.isConnected) focusTarget.focus();\n else if (focusRemainsInPanel) triggerRef.current?.focus();\n },\n [close, panelElement]\n );\n\n // Closes on Escape only while a menu is open and restores trigger focus.\n const onEscape = useCallback(() => {\n if (!openMenuId) return;\n\n close();\n triggerRef.current?.focus();\n }, [openMenuId, close]);\n\n useOuterEvent('mousedown', [navElement, panelElement], close);\n useFocusWithin(\n focusRoots,\n useCallback(\n (isFocused: boolean) => {\n if (!isFocused && openMenuId) close();\n },\n [close, openMenuId]\n )\n );\n useEscape(onEscape);\n\n // Dismisses the desktop panel when responsive layout switches to mobile.\n useEffect(() => {\n if (isMobile) close();\n }, [isMobile, close]);\n\n return {\n openMenu,\n openMenuId,\n focusOnOpen,\n close,\n panelRef: setPanelElement,\n onOpenChange: setOpenMenuId,\n onTriggerOpen: (trigger: HTMLButtonElement, shouldFocus: boolean) => {\n triggerRef.current = trigger;\n setFocusOnOpen(shouldFocus);\n },\n onClose,\n onTabForwardExit,\n onActionClose\n };\n};\n\nexport const MegaMenuTriggers = ({\n menus,\n openId,\n panelId,\n onOpenChange,\n onTriggerOpen,\n iconOnly = false,\n isDefaultWSS,\n navPosition\n}: MegaMenuTriggersProps): ReactElement[] =>\n menus.map(menu => {\n const label = menu.label ?? menu.id;\n const isOpen = openId === menu.id;\n const isActionMenu = !!menu.onClick;\n const hasPanel = !isActionMenu && !!menu.items?.length;\n const showIconOnly = iconOnly && !!menu.icon;\n\n return (\n <StyledMainMenuLink\n as={Button}\n key={menu.id}\n variant='text'\n icon={showIconOnly}\n compact={showIconOnly}\n label={showIconOnly ? label : undefined}\n aria-label={showIconOnly ? label : undefined}\n aria-expanded={hasPanel ? isOpen : undefined}\n aria-controls={hasPanel && isOpen ? panelId : undefined}\n disabled={menu.disabled || menu.loading}\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n if (menu.onClick) {\n onOpenChange(undefined);\n menu.onClick(menu.id, event);\n return;\n }\n\n if (!menu.items?.length) {\n onOpenChange(undefined);\n return;\n }\n\n if (!isOpen) {\n menu.onMenuOpen?.();\n onTriggerOpen?.(event.currentTarget, event.detail === 0);\n }\n onOpenChange(isOpen ? undefined : menu.id);\n }}\n $isDefaultWSS={isDefaultWSS}\n $navPosition={navPosition}\n >\n {menu.icon && <Icon name={menu.icon} />}\n {!showIconOnly && ` ${label}`}\n </StyledMainMenuLink>\n );\n });\n\nexport const MegaMenuPanel = ({\n menu,\n panelId,\n panelRef,\n anchorElement,\n onClose,\n onTabForwardExit = onClose,\n onActionClose = onClose,\n focusOnOpen = false\n}: MegaMenuPanelProps): ReactElement => {\n const t = useI18n();\n const menuLabel = menu.label ?? t('menu');\n const groups = toMegaMenuGroups(menu);\n const firstFocusableGroup = groups.findIndex(\n group =>\n (group.action && !group.action.disabled) ||\n group.items.some(item => 'primary' in item && !item.disabled)\n );\n const focusActionHeading =\n firstFocusableGroup >= 0 &&\n !!groups[firstFocusableGroup].action &&\n !groups[firstFocusableGroup].action.disabled;\n const actionHeadingRef = useRef<HTMLButtonElement>(null);\n const menuRootRef = useRef<HTMLDivElement>(null);\n const panelElementRef = useConsolidatedRef<HTMLElement>(panelRef);\n const focusedDestinationRef = useRef<HTMLElement | null>(null);\n\n // Records focus moved outside the panel by an item action.\n const captureItemFocus = (items: NavMenuEntryProps[]): NavMenuEntryProps[] =>\n items.map(item => {\n if (!('primary' in item) || !item.onClick) return item;\n\n const onClick: NonNullable<NavMenuItemProps['onClick']> = (id, event) => {\n item.onClick?.(id, event);\n const focused = document.activeElement;\n focusedDestinationRef.current =\n isInstance(focused, HTMLElement) &&\n focused !== document.body &&\n !panelElementRef.current?.contains(focused)\n ? focused\n : null;\n };\n return { ...item, onClick };\n });\n\n // Moves keyboard-opened panels to their first actionable target.\n useEffect(() => {\n if (!focusOnOpen) return;\n (focusActionHeading\n ? actionHeadingRef.current\n : menuRootRef.current ?? panelElementRef.current\n )?.focus();\n }, [menu.id, firstFocusableGroup, focusActionHeading, focusOnOpen]);\n\n const panel = (\n <StyledPanel\n ref={panelElementRef}\n id={panelId}\n role='region'\n aria-label={menuLabel}\n tabIndex={-1}\n onKeyDown={event => {\n // Match MenuButton by dismissing at either panel tab boundary.\n if (event.key !== 'Tab') return;\n\n const firstFocusTarget = focusActionHeading\n ? actionHeadingRef.current\n : menuRootRef.current ?? panelElementRef.current;\n const lastFocusTarget =\n firstFocusableGroup < 0\n ? panelElementRef.current\n : getFocusables(panelElementRef).at(-1) ?? panelElementRef.current;\n const exitTarget = event.shiftKey ? firstFocusTarget : lastFocusTarget;\n if (event.target !== exitTarget) return;\n\n event.preventDefault();\n if (event.shiftKey) onClose();\n else onTabForwardExit();\n }}\n >\n <StyledGrid>\n {groups.map((group, index) => {\n const headingId = `${panelId}-${group.id}`;\n return (\n <StyledGroup\n key={group.id}\n container={{ direction: 'column', gap: groupedMenuContentGap }}\n >\n {group.label && (\n <StyledGroupHeading id={headingId}>\n {group.action ? (\n <StyledMegaMenuGroupAction\n ref={\n index === firstFocusableGroup && focusActionHeading\n ? actionHeadingRef\n : undefined\n }\n disabled={group.action.disabled}\n onClick={(event: MouseEvent<HTMLButtonElement>) =>\n activateGroupAction(group.action as NavMenuItemProps, event, onActionClose)\n }\n >\n {group.label}\n </StyledMegaMenuGroupAction>\n ) : (\n group.label\n )}\n </StyledGroupHeading>\n )}\n <MegaMenuItems\n ref={index === firstFocusableGroup && !focusActionHeading ? menuRootRef : undefined}\n items={captureItemFocus(group.items)}\n aria-label={group.label ?? menuLabel}\n onItemClick={() => {\n onActionClose(focusedDestinationRef.current ?? undefined);\n focusedDestinationRef.current = null;\n }}\n />\n </StyledGroup>\n );\n })}\n </StyledGrid>\n </StyledPanel>\n );\n\n return (\n <>\n <StyledBackdrop type='button' tabIndex={-1} aria-label={t('close')} onClick={onClose} />\n {anchorElement ? (\n <StyledAnchoredPanel show target={anchorElement} placement='bottom-start'>\n {panel}\n </StyledAnchoredPanel>\n ) : (\n panel\n )}\n </>\n );\n};\n"]}
|
|
@@ -188,9 +188,7 @@ export declare const StyledGroup: import("styled-components/dist/types").IStyled
|
|
|
188
188
|
export declare const StyledMegaMenuGroupAction: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
189
189
|
ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
190
190
|
}>, never>, never>, never>, never>> & string;
|
|
191
|
-
export declare const StyledGroupHeading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components
|
|
192
|
-
$actionable?: boolean;
|
|
193
|
-
}>> & string;
|
|
191
|
+
export declare const StyledGroupHeading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
194
192
|
export declare const StyledMegaMenuItems: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<Omit<import("@pega/cosmos-react-core").MenuProps, "ref"> & import("react").RefAttributes<HTMLDivElement> & import("@pega/cosmos-react-core").ForwardProps, "ref"> & {
|
|
195
193
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
196
194
|
}, never>> & string & Omit<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").MenuProps> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MegaMenu.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MegaMenu.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.styles.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,cAAc,yOAY1B,CAAC;AAIF,eAAO,MAAM,WAAW,uNAgBvB,CAAC;AAIF,eAAO,MAAM,mBAAmB,0dAY/B,CAAC;AAIF,eAAO,MAAM,UAAU,6NAetB,CAAC;AAIF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAEvB,CAAC;AAIF,eAAO,MAAM,yBAAyB;;4CAIrC,CAAC;AAIF,eAAO,MAAM,kBAAkB,qOAA2B,CAAC;AAE3D,eAAO,MAAM,mBAAmB;;;2BAnGpB,CAAC;iDA0JX,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
|
+
import { transparentize } from 'polished';
|
|
2
3
|
import { Flex, Menu, Popover, defaultThemeProp } from '@pega/cosmos-react-core';
|
|
3
4
|
import { StyledMenuItem, StyledMenuListContainer, StyledMenuListWrapper } from '@pega/cosmos-react-core/lib/components/Menu';
|
|
4
5
|
import { groupedMenuActionTextStyles, groupedMenuColumnStyles, groupedMenuGridStyles, StyledGroupedMenuHeading, StyledGroupedMenuHeadingAction } from './GroupedMenu.styles';
|
|
@@ -27,8 +28,7 @@ export const StyledPanel = styled.section(({ theme }) => `
|
|
|
27
28
|
overflow-y: auto;
|
|
28
29
|
background: ${theme.base.palette['primary-background']};
|
|
29
30
|
color: ${theme.base.palette['foreground-color']};
|
|
30
|
-
|
|
31
|
-
box-shadow: ${theme.base.shadow.high};
|
|
31
|
+
box-shadow: 0 0.25rem 0.25rem ${transparentize(0.8, theme.base.palette['foreground-color'])};
|
|
32
32
|
`);
|
|
33
33
|
StyledPanel.defaultProps = defaultThemeProp;
|
|
34
34
|
export const StyledAnchoredPanel = styled(Popover)(({ theme }) => css `
|
|
@@ -65,9 +65,6 @@ StyledGroup.defaultProps = defaultThemeProp;
|
|
|
65
65
|
export const StyledMegaMenuGroupAction = styled(StyledGroupedMenuHeadingAction) `
|
|
66
66
|
display: flex;
|
|
67
67
|
width: 100%;
|
|
68
|
-
height: auto;
|
|
69
|
-
margin: 0;
|
|
70
|
-
font-size: inherit;
|
|
71
68
|
justify-content: flex-start;
|
|
72
69
|
`;
|
|
73
70
|
StyledMegaMenuGroupAction.defaultProps = defaultThemeProp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MegaMenu.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MegaMenu.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/MegaMenu.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { transparentize } from 'polished';\n\nimport { Flex, Menu, Popover, defaultThemeProp } from '@pega/cosmos-react-core';\nimport {\n StyledMenuItem,\n StyledMenuListContainer,\n StyledMenuListWrapper\n} from '@pega/cosmos-react-core/lib/components/Menu';\n\nimport {\n groupedMenuActionTextStyles,\n groupedMenuColumnStyles,\n groupedMenuGridStyles,\n StyledGroupedMenuHeading,\n StyledGroupedMenuHeadingAction\n} from './GroupedMenu.styles';\n\nexport const StyledBackdrop = styled.button(\n ({ theme }) => `\n position: fixed;\n inset-block-start: calc(var(--appshell-hard-top-offset, 0) + var(--app-header-height, 3rem));\n inset-inline: 0;\n inset-block-end: 0;\n z-index: calc(${theme.base['z-index'].popover} + 1);\n border: 0;\n padding: 0;\n background: transparent;\n cursor: default;\n`\n);\n\nStyledBackdrop.defaultProps = defaultThemeProp;\n\nexport const StyledPanel = styled.section(\n ({ theme }) => `\n position: fixed;\n inset-block-start: var(--appshell-hard-top-offset, 0);\n margin-block-start: var(--app-header-height, 3rem);\n inset-inline: 0;\n z-index: calc(${theme.base['z-index'].popover} + 2);\n max-height: calc(\n 100dvh - var(--appshell-hard-top-offset, 0) - var(--app-header-height, 3rem) -\n var(--appshell-hard-bottom-offset, 0)\n );\n overflow-y: auto;\n background: ${theme.base.palette['primary-background']};\n color: ${theme.base.palette['foreground-color']};\n box-shadow: 0 0.25rem 0.25rem ${transparentize(0.8, theme.base.palette['foreground-color'])};\n`\n);\n\nStyledPanel.defaultProps = defaultThemeProp;\n\nexport const StyledAnchoredPanel = styled(Popover)(\n ({ theme }) => css`\n z-index: calc(${theme.base['z-index'].popover} + 2);\n\n ${StyledPanel} {\n position: relative;\n inset: auto;\n margin: 0;\n width: min(60rem, calc(100vw - 4 * ${theme.base.spacing}));\n max-height: inherit;\n }\n `\n);\n\nStyledAnchoredPanel.defaultProps = defaultThemeProp;\n\nexport const StyledGrid = styled.div(\n ({ theme }) => css`\n display: grid;\n ${groupedMenuGridStyles(theme)}\n width: min(80rem, calc(100% - 4 * ${theme.base.spacing}));\n max-width: 80rem;\n padding-block: calc(2 * ${theme.base.spacing});\n margin-inline: auto;\n ${groupedMenuColumnStyles(theme, theme.base.palette['border-line'])}\n\n @media (max-width: ${theme.base.breakpoints.md}) {\n width: 100%;\n padding: calc(1.25 * ${theme.base.spacing}) calc(2 * ${theme.base.spacing});\n }\n `\n);\n\nStyledGrid.defaultProps = defaultThemeProp;\n\nexport const StyledGroup = styled(Flex)`\n min-width: 0;\n`;\n\nStyledGroup.defaultProps = defaultThemeProp;\n\nexport const StyledMegaMenuGroupAction = styled(StyledGroupedMenuHeadingAction)`\n display: flex;\n width: 100%;\n justify-content: flex-start;\n`;\n\nStyledMegaMenuGroupAction.defaultProps = defaultThemeProp;\n\nexport const StyledGroupHeading = StyledGroupedMenuHeading;\n\nexport const StyledMegaMenuItems = styled(Menu)(({ theme }) => {\n return css`\n max-height: none;\n\n ${StyledMenuListWrapper} {\n overflow: visible;\n transition: none;\n }\n\n ${StyledMenuListContainer} {\n min-width: 0;\n padding: 0;\n border: 0;\n border-radius: 0;\n background: transparent;\n }\n\n ul {\n height: auto;\n overflow: visible;\n border-radius: 0;\n }\n\n ${StyledMenuItem} {\n min-height: ${theme.base['hit-area']['mouse-min']};\n padding-block: calc(0.45 * ${theme.base.spacing});\n padding-inline: 0;\n\n > div > div > span {\n display: inline-block;\n ${groupedMenuActionTextStyles(theme)}\n }\n\n &:hover:not([aria-disabled='true']) {\n background-color: transparent;\n\n > div > div > span {\n color: ${theme.base.palette['foreground-color']};\n text-decoration: underline;\n }\n }\n\n &:focus-within {\n background-color: transparent;\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n\n > div > div > span {\n text-decoration: underline;\n }\n }\n }\n `;\n});\n\nStyledMegaMenuItems.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -4,6 +4,7 @@ interface MobileHeaderContentProps {
|
|
|
4
4
|
appInfo: AppShellProps['appInfo'];
|
|
5
5
|
navLinks: NavLinkProps[];
|
|
6
6
|
operator: AppShellProps['operator'];
|
|
7
|
+
showOperator: boolean;
|
|
7
8
|
onClose: () => void;
|
|
8
9
|
}
|
|
9
10
|
declare const MobileHeaderContent: FunctionComponent<MobileHeaderContentProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileHeaderContent.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/MobileHeaderContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAqB/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE,UAAU,wBAAwB;IAChC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"MobileHeaderContent.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/MobileHeaderContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAqB/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE,UAAU,wBAAwB;IAChC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,mBAAmB,EAAE,iBAAiB,CAAC,wBAAwB,CA2EpE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex, Button, Avatar, Icon, Text, useI18n, VisuallyHiddenText } from '@pega/cosmos-react-core';
|
|
3
3
|
import { HorizontalBreak, StyledLinkSection, StyledMobileLink, StyledMobileNav, StyledMobileNavHeader, StyledOperatorSection, StyledPrimaryName } from './AppShell.styles';
|
|
4
|
-
const MobileHeaderContent = ({ appInfo, navLinks, operator, onClose }) => {
|
|
4
|
+
const MobileHeaderContent = ({ appInfo, navLinks, operator, showOperator, onClose }) => {
|
|
5
5
|
const t = useI18n();
|
|
6
|
-
return (_jsxs(Flex, { as: StyledMobileNav, container: { direction: 'column' }, children: [_jsxs(Flex, { as: StyledMobileNavHeader, container: { alignItems: 'start', justify: 'between', pad: [1, 0, 0] }, children: [_jsxs(Button, { as: StyledMobileLink, variant: 'text', href: appInfo.href, onClick: appInfo.onClick, target: appInfo.target, children: [_jsx(Text, { as: appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName, variant: 'h1', children: appInfo.appName }), appInfo.portalName && _jsx(Text, { variant: 'secondary', children: appInfo.portalName })] }), _jsx(Button, { variant: 'simple', icon: true, onClick: onClose, label: t('close'), children: _jsx(Icon, { name: 'times' }) })] }), _jsx(Flex, { as: StyledLinkSection, container: { direction: 'column', gap: 1, pad: [1, 0] }, children: navLinks.map(navLink => (_jsx(Button, { as: StyledMobileLink, variant: 'text', "aria-current": navLink.active ? 'page' : undefined, href: navLink.href, onClick: navLink.onClick, children: navLink.text }, navLink.id))) }), _jsxs(Flex, { as: StyledOperatorSection, container: { direction: 'column', gap: 2, pad: [0, 0, 2, 0] }, children: [_jsx(HorizontalBreak, {}), _jsxs(Flex, { container: { gap: 1, alignItems: 'center' }, children: [_jsx(Avatar, { ...operator.avatar }), _jsx(Text, { as: StyledPrimaryName, variant: 'h2', children: "Account" })] }), _jsx(Flex, { container: { direction: 'column', gap: 1 }, children: operator.actions.map(action => (_jsx(Button, { as: StyledMobileLink, variant: 'text', href: action.href, onClick: action.onClick, children: action.primary }, action.id))) })] })] }));
|
|
6
|
+
return (_jsxs(Flex, { as: StyledMobileNav, container: { direction: 'column' }, children: [_jsxs(Flex, { as: StyledMobileNavHeader, container: { alignItems: 'start', justify: 'between', pad: [1, 0, 0] }, children: [_jsxs(Button, { as: StyledMobileLink, variant: 'text', href: appInfo.href, onClick: appInfo.onClick, target: appInfo.target, children: [_jsx(Text, { as: appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName, variant: 'h1', children: appInfo.appName }), appInfo.portalName && _jsx(Text, { variant: 'secondary', children: appInfo.portalName })] }), _jsx(Button, { variant: 'simple', icon: true, onClick: onClose, label: t('close'), children: _jsx(Icon, { name: 'times' }) })] }), _jsx(Flex, { as: StyledLinkSection, container: { direction: 'column', gap: 1, pad: [1, 0] }, children: navLinks.map(navLink => (_jsx(Button, { as: StyledMobileLink, variant: 'text', "aria-current": navLink.active ? 'page' : undefined, href: navLink.href, onClick: navLink.onClick, children: navLink.text }, navLink.id))) }), showOperator && (_jsxs(Flex, { as: StyledOperatorSection, container: { direction: 'column', gap: 2, pad: [0, 0, 2, 0] }, children: [_jsx(HorizontalBreak, {}), _jsxs(Flex, { container: { gap: 1, alignItems: 'center' }, children: [_jsx(Avatar, { ...operator.avatar }), _jsx(Text, { as: StyledPrimaryName, variant: 'h2', children: "Account" })] }), _jsx(Flex, { container: { direction: 'column', gap: 1 }, children: operator.actions.map(action => (_jsx(Button, { as: StyledMobileLink, variant: 'text', href: action.href, onClick: action.onClick, children: action.primary }, action.id))) })] }))] }));
|
|
7
7
|
};
|
|
8
8
|
export default MobileHeaderContent;
|
|
9
9
|
//# sourceMappingURL=MobileHeaderContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileHeaderContent.js","sourceRoot":"","sources":["../../../src/components/AppShell/MobileHeaderContent.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MobileHeaderContent.js","sourceRoot":"","sources":["../../../src/components/AppShell/MobileHeaderContent.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FunctionComponent } from 'react';\n\nimport {\n Flex,\n Button,\n Avatar,\n Icon,\n Text,\n useI18n,\n VisuallyHiddenText\n} from '@pega/cosmos-react-core';\n\nimport {\n HorizontalBreak,\n StyledLinkSection,\n StyledMobileLink,\n StyledMobileNav,\n StyledMobileNavHeader,\n StyledOperatorSection,\n StyledPrimaryName\n} from './AppShell.styles';\nimport type { AppShellProps, NavLinkProps } from './AppShell.types';\n\ninterface MobileHeaderContentProps {\n appInfo: AppShellProps['appInfo'];\n navLinks: NavLinkProps[];\n operator: AppShellProps['operator'];\n showOperator: boolean;\n onClose: () => void;\n}\n\nconst MobileHeaderContent: FunctionComponent<MobileHeaderContentProps> = ({\n appInfo,\n navLinks,\n operator,\n showOperator,\n onClose\n}: MobileHeaderContentProps) => {\n const t = useI18n();\n\n return (\n <Flex as={StyledMobileNav} container={{ direction: 'column' }}>\n <Flex\n as={StyledMobileNavHeader}\n container={{ alignItems: 'start', justify: 'between', pad: [1, 0, 0] }}\n >\n <Button\n as={StyledMobileLink}\n variant='text'\n href={appInfo.href}\n onClick={appInfo.onClick}\n target={appInfo.target}\n >\n <Text as={appInfo.appNameHidden ? VisuallyHiddenText : StyledPrimaryName} variant='h1'>\n {appInfo.appName}\n </Text>\n {appInfo.portalName && <Text variant='secondary'>{appInfo.portalName}</Text>}\n </Button>\n <Button variant='simple' icon onClick={onClose} label={t('close')}>\n <Icon name='times' />\n </Button>\n </Flex>\n <Flex as={StyledLinkSection} container={{ direction: 'column', gap: 1, pad: [1, 0] }}>\n {navLinks.map(navLink => (\n <Button\n as={StyledMobileLink}\n variant='text'\n key={navLink.id}\n aria-current={navLink.active ? 'page' : undefined}\n href={navLink.href}\n onClick={navLink.onClick}\n >\n {navLink.text}\n </Button>\n ))}\n </Flex>\n\n {showOperator && (\n <Flex\n as={StyledOperatorSection}\n container={{ direction: 'column', gap: 2, pad: [0, 0, 2, 0] }}\n >\n <HorizontalBreak />\n <Flex container={{ gap: 1, alignItems: 'center' }}>\n <Avatar {...operator.avatar} />\n <Text as={StyledPrimaryName} variant='h2'>\n Account\n </Text>\n </Flex>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {operator.actions.map(action => (\n <Button\n as={StyledMobileLink}\n variant='text'\n key={action.id}\n href={action.href}\n onClick={action.onClick}\n >\n {action.primary}\n </Button>\n ))}\n </Flex>\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport default MobileHeaderContent;\n"]}
|
|
@@ -193,9 +193,7 @@ export declare const StyledFooterMenuList: import("styled-components/dist/types"
|
|
|
193
193
|
$fatFooter?: boolean;
|
|
194
194
|
}>> & string;
|
|
195
195
|
export declare const StyledFooterMenuColumn: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
|
|
196
|
-
export declare const StyledFooterMenuGroupLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components
|
|
197
|
-
$actionable?: boolean;
|
|
198
|
-
}>> & string;
|
|
196
|
+
export declare const StyledFooterMenuGroupLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
199
197
|
export declare const StyledFooterMenuGroupAction: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
200
198
|
ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
201
199
|
}>, never>, never>, never>> & string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.styles.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,eAAO,MAAM,YAAY;aAA4B,OAAO;YAU1D,CAAC;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAE/B,CAAC;AAIF,eAAO,MAAM,gBAAgB;cAA0B,iBAAiB;YAevE,CAAC;AAIF,eAAO,MAAM,oBAAoB;iBAClB,KAAK,GAAG,QAAQ;iBAChB,OAAO;
|
|
1
|
+
{"version":3,"file":"Footer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.styles.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,eAAO,MAAM,YAAY;aAA4B,OAAO;YAU1D,CAAC;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAE/B,CAAC;AAIF,eAAO,MAAM,gBAAgB;cAA0B,iBAAiB;YAevE,CAAC;AAIF,eAAO,MAAM,oBAAoB;iBAClB,KAAK,GAAG,QAAQ;iBAChB,OAAO;YA6BrB,CAAC;AAIF,eAAO,MAAM,sBAAsB,uNAOlC,CAAC;AAIF,eAAO,MAAM,0BAA0B,qOAA2B,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;oCAAiC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;oCAUjC,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;2BA0CQ,CAAC;iDA3BpC,CAAC;AAIH,eAAO,MAAM,gBAAgB,+NAU3B,CAAC;AAIH,eAAO,MAAM,iBAAiB,oOAM7B,CAAC"}
|
|
@@ -37,9 +37,7 @@ export const StyledFooterMenuList = styled.ul(({ $direction = 'row', $fatFooter,
|
|
|
37
37
|
flex-direction: ${$direction};
|
|
38
38
|
align-items: ${$fatFooter || $direction === 'column' ? 'stretch' : 'center'};
|
|
39
39
|
flex-wrap: wrap;
|
|
40
|
-
gap: ${$direction === 'column'
|
|
41
|
-
? `calc(0.5 * ${theme.base.spacing})`
|
|
42
|
-
: `calc(2 * ${theme.base.spacing})`};
|
|
40
|
+
gap: ${$direction === 'column' ? 0 : `calc(2 * ${theme.base.spacing})`};
|
|
43
41
|
list-style: none;
|
|
44
42
|
margin: 0;
|
|
45
43
|
padding: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.styles.js","sourceRoot":"","sources":["../../../src/components/Footer/Footer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACrF,OAAO,GAAG,CAAA;;gBAEI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;MACzC,OAAO,IAAI,yDAAyD;;eAE3D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO;kCACV,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;wBAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;GAC7D,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,YAAY,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;CAE9C,CAAC;AAEF,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CACxC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;mBAIX,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;uBAC/C,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACnD,KAAK,CAAC,IAAI,CAAC,OAAO;;eAEvB,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;;sBAE3E,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;;;GAG5C,CACF,CAAC;AAEF,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAI3C,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;eACrC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;sBACrB,UAAU;mBACb,UAAU,IAAI,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;WAEpE,UAAU,KAAK,QAAQ
|
|
1
|
+
{"version":3,"file":"Footer.styles.js","sourceRoot":"","sources":["../../../src/components/Footer/Footer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACrF,OAAO,GAAG,CAAA;;gBAEI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;MACzC,OAAO,IAAI,yDAAyD;;eAE3D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO;kCACV,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;wBAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;GAC7D,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,YAAY,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;CAE9C,CAAC;AAEF,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CACxC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;mBAIX,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;uBAC/C,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACnD,KAAK,CAAC,IAAI,CAAC,OAAO;;eAEvB,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;;sBAE3E,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;;;GAG5C,CACF,CAAC;AAEF,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAI3C,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;eACrC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;sBACrB,UAAU;mBACb,UAAU,IAAI,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;WAEpE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG;;;;;MAKpE,UAAU;IACZ,GAAG,CAAA;QACC,qBAAqB,CAAC,KAAK,CAAC;;;QAG5B,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACpE;;;;;;;sBAOiB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACvC,CAAC,UAAU,IAAI,8BAA8B;;GAElD,CACF,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAClD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;gBAIJ,qBAAqB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;GAC1D,CACF,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAEnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAClF,OAAO,GAAG,CAAA;;MAEN,2BAA2B,CAAC,KAAK,CAAC;;;;;;GAMrC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtF,OAAO,GAAG,CAAA;;;iBAGK,QAAQ,CAAC,CAAC;aACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;;;;;;;GAOxC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtF,OAAO,GAAG,CAAA;;;iBAGK,QAAQ,CAAC,CAAC;aACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;eACpC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;GACpD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAM1C,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { Flex, Link, calculateFontSize, defaultThemeProp } from '@pega/cosmos-react-core';\n\nimport {\n groupedMenuColumnStyles,\n groupedMenuActionTextStyles,\n groupedMenuContentGap,\n groupedMenuGridStyles,\n StyledGroupedMenuAction,\n StyledGroupedMenuHeading,\n StyledGroupedMenuHeadingAction\n} from '../AppShell/GroupedMenu.styles';\n\nimport type { FooterMenuVariant } from './Footer.types';\n\nexport const StyledFooter = styled.footer<{ $sticky: boolean }>(({ theme, $sticky }) => {\n return css`\n display: flex;\n position: ${$sticky ? 'sticky' : 'relative'};\n ${$sticky && 'inset-block-end: var(--appshell-hard-bottom-offset, 0);'}\n min-height: 2.5rem;\n z-index: ${theme.base['z-index'].popover};\n border-top: 0.0625rem solid ${theme.base.palette['border-line']};\n background-color: ${theme.base.palette['primary-background']};\n `;\n});\n\nStyledFooter.defaultProps = defaultThemeProp;\n\nexport const StyledFooterContent = styled(Flex)`\n flex: 1;\n`;\n\nStyledFooterContent.defaultProps = defaultThemeProp;\n\nexport const StyledFooterMenu = styled.div<{ $variant: FooterMenuVariant }>(\n ({ theme, $variant }) => css`\n display: flex;\n flex: 1;\n min-width: 0;\n align-items: ${$variant === 'fat-footer' ? 'flex-start' : 'center'};\n justify-content: ${$variant === 'fat-footer' ? 'stretch' : 'center'};\n gap: calc(2 * ${theme.base.spacing});\n flex-wrap: wrap;\n padding: ${$variant === 'fat-footer' ? `calc(2 * ${theme.base.spacing})` : theme.base.spacing};\n\n @media (width < ${theme.base.breakpoints.sm}) {\n justify-content: flex-start;\n }\n `\n);\n\nStyledFooterMenu.defaultProps = defaultThemeProp;\n\nexport const StyledFooterMenuList = styled.ul<{\n $direction?: 'row' | 'column';\n $fatFooter?: boolean;\n}>(\n ({ $direction = 'row', $fatFooter, theme }) => css`\n display: ${$fatFooter ? 'grid' : 'flex'};\n flex-direction: ${$direction};\n align-items: ${$fatFooter || $direction === 'column' ? 'stretch' : 'center'};\n flex-wrap: wrap;\n gap: ${$direction === 'column' ? 0 : `calc(2 * ${theme.base.spacing})`};\n list-style: none;\n margin: 0;\n padding: 0;\n\n ${$fatFooter &&\n css`\n ${groupedMenuGridStyles(theme)}\n width: min(80rem, 100%);\n margin-inline: auto;\n ${groupedMenuColumnStyles(theme, theme.base.palette['border-line'])}\n `}\n\n & > li {\n min-width: 0;\n overflow-wrap: anywhere;\n }\n\n @media (width < ${theme.base.breakpoints.md}) {\n ${!$fatFooter && 'justify-content: flex-start;'}\n }\n `\n);\n\nStyledFooterMenuList.defaultProps = defaultThemeProp;\n\nexport const StyledFooterMenuColumn = styled.section(\n ({ theme }) => css`\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: calc(${groupedMenuContentGap} * ${theme.base.spacing});\n `\n);\n\nStyledFooterMenuColumn.defaultProps = defaultThemeProp;\n\nexport const StyledFooterMenuGroupLabel = StyledGroupedMenuHeading;\n\nexport const StyledFooterMenuGroupAction = StyledGroupedMenuHeadingAction;\n\nexport const StyledFooterMenuAction = styled(StyledGroupedMenuAction)(({ theme }) => {\n return css`\n padding: 0;\n ${groupedMenuActionTextStyles(theme)}\n\n &:hover,\n &:focus-visible {\n text-decoration: underline;\n }\n `;\n});\n\nStyledFooterMenuAction.defaultProps = defaultThemeProp;\n\nexport const StyledFooterLink = styled(Link)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n display: flex;\n align-items: center;\n font-size: ${fontSize.s};\n color: ${theme.base.palette.interactive};\n text-decoration: none;\n\n &:hover,\n &:focus-visible {\n text-decoration: underline;\n }\n `;\n});\n\nStyledFooterLink.defaultProps = defaultThemeProp;\n\nexport const StyledFooterText = styled.span(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n display: flex;\n align-items: center;\n font-size: ${fontSize.s};\n color: ${theme.base.palette['foreground-color']};\n opacity: ${theme.base.transparency['transparent-3']};\n `;\n});\n\nStyledFooterText.defaultProps = defaultThemeProp;\n\nexport const StyledFooterImage = styled.img`\n display: inline-block;\n align-self: center;\n height: 2.25rem;\n width: auto;\n vertical-align: middle;\n`;\n\nStyledFooterImage.defaultProps = defaultThemeProp;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-wss",
|
|
3
|
-
"version": "10.0.0-build.
|
|
3
|
+
"version": "10.0.0-build.11.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"author": "Pegasystems",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-core": "10.0.0-build.
|
|
18
|
-
"@pega/cosmos-react-work": "10.0.0-build.
|
|
17
|
+
"@pega/cosmos-react-core": "10.0.0-build.11.0",
|
|
18
|
+
"@pega/cosmos-react-work": "10.0.0-build.11.0",
|
|
19
19
|
"@types/react": "^17.0.62 || ^18.3.3",
|
|
20
20
|
"@types/react-dom": "^17.0.20 || ^18.3.0",
|
|
21
21
|
"polished": "^4.1.0",
|