{"version":3,"sources":["webpack:///../node_modules/@ux/bookends/dist/es/PopoutLink-f4595f02.js","webpack:///../node_modules/@ux/bookends/dist/es/MastheadPopoutButton-a2f33826.js","webpack:///../node_modules/@ux/bookends/dist/es/index-3289ecbd.js"],"names":["PopoutLink","props","colorway","theme","spacing","typography","palette","default","root","fontFamily","display","color","grey02","minHeight","alignItems","width","X","Y","textDecoration","backgroundColor","borderWidth","outline","textAlign","cursor","LIGHT","NEUTRAL","useStylesheet","enhance","children","styles","style","rest","cloneElement","useWithClickOutside","ref","open","onClick","handleClick","event","current","contains","target","document","addEventListener","removeEventListener","Popout","flush","radius","OFF","WEAK","STRONG","curvature","padding","position","top","minWidth","right","zIndex","whiteSpace","borderTopLeftRadius","borderBottomLeftRadius","borderBottomRightRadius","createElement","GlyphAlignment","displayName","hocus","href","to","glyphAlign","headerForeground","opacity","transition","height","icon","marginRight","noop","pointerEvents","END","marginLeft","order","stylesheet","MastheadLink","id","glyph","externalRoutes","Boolean","size","MastheadPopoutButton","showArrow","popoutOpened","isMinMd","backdrop","borderTopRightRadius","bottom","left","transform","popoutOpenedDesktop","popoutGapFiller","stylesheet$1","enhance$1","SupplementaryLinks","links","path","map","link","i","key","analyticsKey","url","undefined","ContactLinks","flexDirection","useStylesheet$1","tel","formatted","AccountLinks","useStylesheet$2","enhance$2","intl","alt","MastheadSpacer","Desktop","headerBackground","inner","justifyContent","A","logo","logoImage","shortcutsContainer","flex","shortcuts","utils","enhance$3","shortcutNav","showBasket","showAccount","basketUrl","basketItemCount","homeUrl","showLogo","supplementaryLinks","contactLinks","languageMap","src","formatMessage","shortcut","index","label","locale","values","count"],"mappings":"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","file":"pex-static/40/76.10bfd3f0f32cb0d8bece.chunk.js","sourcesContent":["import React from 'react';\nimport { useStyles } from '@team-griffin/stylr';\nimport { withProps } from '@team-griffin/rehook';\nimport { percentage, modifier } from '@ux/style-utils';\nimport { gu2px, Colorway, useTheme } from '@ux/theme-utils';\nimport { headingXxs } from '@ux/type-size';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { puree } from '@ux/pure-enhance';\nimport './index-b94e3459.js';\n\nconst useStylesheet = ({\n colorway\n}) => {\n const {\n theme\n } = useTheme();\n const {\n spacing,\n typography,\n palette\n } = theme;\n return useStyles({\n default: {\n root: { ...headingXxs(),\n fontFamily: typography.display,\n color: palette.grey02,\n display: 'flex',\n minHeight: gu2px(4, spacing),\n alignItems: 'center',\n width: percentage(100),\n ...cssSides('padding', Side.X, gu2px(2, spacing)),\n ...cssSides('margin', Side.Y, gu2px(0.5, spacing)),\n textDecoration: 'none',\n ...headingXxs(),\n backgroundColor: 'transparent',\n borderWidth: 0,\n outline: 0,\n textAlign: 'left',\n cursor: 'pointer'\n }\n },\n [modifier('colorway', Colorway.LIGHT)]: {\n root: {\n color: '#fff'\n }\n },\n [modifier('colorway', Colorway.NEUTRAL)]: {\n root: {\n color: '#fff'\n }\n }\n }, [{\n colorway\n }]);\n};\n\nconst enhance = puree('PopoutLink')(withProps(props => useStylesheet(props)));\nconst PurePopoutLink = ({\n children,\n styles,\n style,\n ...rest\n}) => /*#__PURE__*/React.cloneElement(children, { ...rest,\n style: { ...styles.root,\n ...style\n }\n});\nvar PopoutLink = enhance(PurePopoutLink);\n\nexport { PopoutLink as P };\n","import React, { useRef, useEffect, forwardRef } from 'react';\nimport { useStyles, withInteraction } from '@team-griffin/stylr';\nimport { percentage, modifier, opacify } from '@ux/style-utils';\nimport { gu2px, Colorway, useTheme, Curvature } from '@ux/theme-utils';\nimport './index-b94e3459.js';\nimport { puree } from '@ux/pure-enhance';\nimport { withProps, defaultProps } from '@team-griffin/rehook';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport Glyph from '@ux/glyphs';\nimport { headingXxs } from '@ux/type-size';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { useBreakpoints } from '@ux/responsive';\n\nconst useWithClickOutside = props => {\n const ref = useRef(null);\n const {\n open,\n onClick\n } = props;\n useEffect(() => {\n const handleClick = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n if (open) {\n onClick();\n }\n }\n };\n\n document.addEventListener('click', handleClick, true);\n return () => {\n document.removeEventListener('click', handleClick, true);\n };\n }, [open, onClick]);\n return { ...props,\n ref\n };\n};\n\nconst useStylesheet = ({\n colorway,\n flush\n}) => {\n const {\n theme\n } = useTheme();\n const {\n palette,\n spacing\n } = theme;\n const radiusMap = {\n [Curvature.OFF]: 0,\n [Curvature.WEAK]: gu2px(0.5, spacing),\n [Curvature.STRONG]: gu2px(1.5, spacing)\n };\n const radius = radiusMap[theme.curvature];\n return useStyles({\n default: {\n root: {\n padding: gu2px(1, spacing),\n backgroundColor: '#fff',\n color: palette.grey02,\n position: 'absolute',\n top: percentage(100),\n minWidth: `calc(100% + ${gu2px(2, spacing)}px)`,\n right: -gu2px(1, spacing),\n zIndex: 2,\n whiteSpace: 'nowrap',\n borderTopLeftRadius: radius,\n borderBottomLeftRadius: radius,\n borderBottomRightRadius: radius\n }\n },\n [modifier('colorway', Colorway.LIGHT)]: {\n root: {\n backgroundColor: palette.grey02,\n color: '#fff'\n }\n },\n [modifier('colorway', Colorway.NEUTRAL)]: {\n root: {\n backgroundColor: palette.grey02,\n color: '#fff'\n }\n },\n flush: {\n root: {\n padding: 0\n }\n }\n }, [{\n colorway\n }, {\n flush\n }]);\n};\n\nconst Popout = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n styles\n } = useStylesheet(props);\n const {\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root,\n ref: ref\n }, children);\n});\nPopout.displayName = 'Popout';\n\nlet GlyphAlignment;\n\n(function (GlyphAlignment) {\n GlyphAlignment[\"START\"] = \"START\";\n GlyphAlignment[\"END\"] = \"END\";\n})(GlyphAlignment || (GlyphAlignment = {}));\n\nvar stylesheet = (({\n hocus,\n href,\n to,\n onClick,\n glyphAlign\n}) => {\n const {\n theme\n } = useTheme();\n const {\n palette,\n spacing,\n typography\n } = theme;\n return useStyles({\n default: {\n root: { ...cssSides('padding', Side.X, gu2px(2, spacing)),\n ...cssSides('padding', Side.Y, gu2px(1, spacing)),\n ...headingXxs(),\n fontFamily: typography.display,\n color: palette.headerForeground,\n backgroundColor: 'transparent',\n borderWidth: 0,\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n outline: 0,\n textDecoration: 'none',\n opacity: 0.85,\n transition: 'opacity 0.3s ease-in-out',\n height: percentage(100)\n },\n icon: {\n display: 'flex',\n // keeps glyph img inline\n height: gu2px(3, spacing),\n width: gu2px(3, spacing),\n minWidth: gu2px(3, spacing),\n marginRight: gu2px(1, spacing),\n color: palette.headerForeground,\n transition: 'transform 0.3s ease-in-out'\n }\n },\n noop: {\n root: {\n cursor: 'default',\n pointerEvents: 'none'\n }\n },\n hocus: {\n root: {\n opacity: 1\n }\n },\n [modifier('glyphAlign', GlyphAlignment.END)]: {\n icon: {\n marginRight: 0,\n marginLeft: gu2px(1, spacing),\n order: 3\n }\n }\n }, [{\n hocus\n }, {\n glyphAlign\n }, {\n noop: !href && !to && !onClick\n }]);\n});\n\nconst enhance = puree('MastheadLink')(withProps(props => stylesheet(props)));\n\nconst PureMastheadLink = ({\n styles,\n onClick,\n children,\n href,\n to,\n id,\n glyph,\n externalRoutes\n}) => /*#__PURE__*/React.createElement(DynamicLink, {\n style: styles.root,\n onClick: onClick,\n href: href,\n to: to,\n id: id,\n externalRoutes: externalRoutes\n}, Boolean(glyph) ? /*#__PURE__*/React.createElement(\"span\", {\n style: styles.icon\n}, /*#__PURE__*/React.createElement(Glyph, {\n size: styles.icon.height,\n color: styles.icon.color,\n icon: glyph\n})) : null, children);\n\nvar MastheadLink = withInteraction(enhance(PureMastheadLink));\n\nvar stylesheet$1 = (({\n popoutOpened,\n colorway\n}) => {\n const {\n isMinMd\n } = useBreakpoints();\n const {\n theme\n } = useTheme();\n const {\n palette,\n spacing,\n curvature\n } = theme;\n const radiusMap = {\n [Curvature.OFF]: 0,\n [Curvature.WEAK]: gu2px(0.5, spacing),\n [Curvature.STRONG]: gu2px(1.5, spacing)\n };\n const radius = radiusMap[curvature];\n return useStyles({\n default: {\n root: {\n position: 'relative',\n display: 'flex'\n },\n backdrop: {\n borderBottomLeftRadius: radius,\n borderBottomRightRadius: radius,\n borderTopRightRadius: radius,\n borderTopLeftRadius: radius,\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n pointerEvents: 'none'\n },\n icon: {\n display: 'flex',\n height: gu2px(3, spacing),\n marginRight: gu2px(1, spacing),\n color: palette.headerForeground,\n transition: 'transform 0.3s ease-in-out'\n }\n },\n popoutOpened: {\n backdrop: {\n backgroundColor: opacify(palette.headerForeground, 0.1)\n },\n icon: {\n transform: 'rotate(180deg)'\n }\n },\n // funky overspill required on desktop\n isMinMd: {\n backdrop: {\n left: -gu2px(1, spacing),\n right: -gu2px(1, spacing)\n }\n },\n popoutOpenedDesktop: {\n backdrop: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n },\n popoutGapFiller: {\n position: 'absolute',\n top: percentage(100),\n height: gu2px(2, spacing),\n left: -gu2px(1, spacing),\n right: -gu2px(1, spacing),\n backgroundColor: 'white'\n }\n },\n [modifier('colorway', Colorway.LIGHT)]: {\n popoutGapFiller: {\n backgroundColor: palette.grey02\n }\n },\n [modifier('colorway', Colorway.NEUTRAL)]: {\n popoutGapFiller: {\n backgroundColor: palette.grey02\n }\n }\n }, [{\n popoutOpened\n }, {\n isMinMd\n }, {\n popoutOpenedDesktop: popoutOpened && isMinMd\n }, {\n colorway\n }]);\n});\n\nconst enhance$1 = puree('MastheadLink')(defaultProps({\n showArrow: true\n}), withProps(props => stylesheet$1(props)));\n\nconst PureMastheadLink$1 = ({\n styles,\n colorway,\n onClick,\n children,\n id,\n externalRoutes,\n showArrow\n}) => /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(\"span\", {\n style: styles.backdrop\n}), /*#__PURE__*/React.createElement(MastheadLink, {\n onClick: onClick,\n id: id,\n externalRoutes: externalRoutes,\n colorway: colorway,\n glyph: showArrow ? 'chevronDown' : null,\n glyphAlign: GlyphAlignment.END\n}, children), /*#__PURE__*/React.createElement(\"span\", {\n style: styles.popoutGapFiller\n}));\n\nvar MastheadPopoutButton = enhance$1(PureMastheadLink$1);\n\nexport { MastheadPopoutButton as M, Popout as P, MastheadLink as a, useWithClickOutside as u };\n","import React from 'react';\nimport { puree, mush, withHooks } from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport Message, { getMessage } from '@ux/message';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport { Container } from '@ux/grid';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { injectIntl, useIntl } from 'react-intl';\nimport { a as hasLength } from './utils-b53f15f5.js';\nimport { useStyles } from '@team-griffin/stylr';\nimport { useIsOpen, useToggleDropdown, DropdownRoute } from 'react-dropdown-router';\nimport { u as useWithClickOutside, M as MastheadPopoutButton, P as Popout, a as MastheadLink } from './MastheadPopoutButton-a2f33826.js';\nimport { P as PopoutLink } from './PopoutLink-f4595f02.js';\nimport { Glyph } from '@ux/glyphs';\nimport { A as AccountOptionsDesktop, C as CurrencyPicker, a as ConnectedLanguagePicker } from './ConnectedCurrencyPicker-6089ad8b.js';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport longhand from '@team-griffin/css-longhand';\nimport { opacify } from '@ux/style-utils';\nimport './index-b94e3459.js';\nimport '@ux/type-size';\nimport '@ux/responsive';\nimport 'react-with-suspense-lazy';\nimport '@ux/auth';\nimport '@ux/accounts-client';\nimport './index-7a407b2e.js';\nimport 'jpex';\nimport 'browser-cookies';\nimport '@ux/drivers';\nimport 'react-query';\nimport 'react-jpex';\nimport '@ux/language';\nimport 'react-router';\nimport '@ux/whitelabel';\nimport '@ux/bus';\nimport './sales-header-83031bcd.js';\nimport './utils-2cbabf7b.js';\nimport 'is-uuid';\nimport '@ux/flag';\nimport '@ux/currency';\nimport '@ux/currency-symbol';\nimport '@ux/badge';\n\nconst useStylesheet = () => useStyles({\n default: {\n root: {\n display: 'flex',\n position: 'relative'\n }\n }\n});\n\nconst enhance = puree('SupplementaryLinks')(withProps(useStylesheet), withProps(() => {\n const open = useIsOpen('@ux/bookends/supplementary');\n const onClick = useToggleDropdown('@ux/bookends/supplementary');\n return {\n open,\n onClick\n };\n}), useWithClickOutside);\n\nconst PureSupplementaryLinks = ({\n styles,\n colorway,\n externalRoutes,\n ref,\n links,\n open,\n onClick\n}) => /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: styles.root\n}, /*#__PURE__*/React.createElement(MastheadPopoutButton, {\n colorway: colorway,\n popoutOpened: open,\n onClick: onClick\n}, /*#__PURE__*/React.createElement(Message, {\n id: \"bks.header.supplementary.menu.open\"\n})), /*#__PURE__*/React.createElement(DropdownRoute, {\n path: \"@ux/bookends/supplementary\"\n}, /*#__PURE__*/React.createElement(Popout, {\n colorway: colorway\n}, links.map(function (link, i) {\n return /*#__PURE__*/React.createElement(PopoutLink, {\n colorway: colorway,\n key: i\n }, /*#__PURE__*/React.createElement(DynamicLink, {\n id: link.analyticsKey ? `bks-more-menu-${link.analyticsKey}` : null,\n externalRoutes: externalRoutes,\n to: link.url\n }, /*#__PURE__*/React.createElement(Message, {\n id: `bks.header.supplementary.menu.items.${i}.label`\n })));\n}, undefined))));\n\nvar SupplementaryLinks = enhance(PureSupplementaryLinks);\n\nconst useStylesheet$1 = () => useStyles({\n default: {\n root: {\n position: 'relative',\n display: 'flex'\n },\n link: {\n flexDirection: 'column',\n alignItems: 'flex-start'\n }\n }\n});\n\nconst enhance$1 = puree('ContactLinks')(withProps(() => useStylesheet$1()), withProps(() => {\n const open = useIsOpen('@ux/bookends/contact');\n const onClick = useToggleDropdown('@ux/bookends/contact');\n return {\n open,\n onClick\n };\n}), useWithClickOutside);\n\nconst PureContactLinks = ({\n styles,\n colorway,\n externalRoutes,\n ref,\n links,\n open,\n onClick\n}) => /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: styles.root\n}, /*#__PURE__*/React.createElement(MastheadPopoutButton, {\n colorway: colorway,\n popoutOpened: open,\n onClick: onClick\n}, /*#__PURE__*/React.createElement(Message, {\n id: \"bks.header.supplementary.contact.open\"\n})), /*#__PURE__*/React.createElement(DropdownRoute, {\n path: \"@ux/bookends/contact\"\n}, /*#__PURE__*/React.createElement(Popout, {\n colorway: colorway\n}, links.map(function (link, i) {\n return /*#__PURE__*/React.createElement(PopoutLink, {\n colorway: colorway,\n key: i,\n style: styles.link\n }, link.tel != null ? /*#__PURE__*/React.createElement(DynamicLink, {\n id: link.analyticsKey ? `bks-contact-menu-${link.analyticsKey}` : null,\n externalRoutes: externalRoutes,\n to: `tel:${link.tel}`\n }, /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Message, {\n id: `bks.header.contact.menu.items.${i}.label`\n })), link.formatted) : /*#__PURE__*/React.createElement(DynamicLink, {\n id: link.analyticsKey ? `bks-contact-menu-${link.analyticsKey}` : null,\n externalRoutes: externalRoutes,\n to: link.url\n }, /*#__PURE__*/React.createElement(Message, {\n id: `bks.header.contact.menu.items.${i}.label`\n })));\n}, undefined))));\n\nvar ContactLinks = enhance$1(PureContactLinks);\n\nconst useStylesheet$2 = () => {\n const {\n theme\n } = useTheme();\n const {\n palette,\n spacing\n } = theme;\n return useStyles({\n default: {\n root: {\n position: 'relative',\n display: 'flex'\n },\n glyph: {\n display: 'flex',\n color: palette.headerForeground,\n height: gu2px(3, spacing),\n minWidth: gu2px(3, spacing)\n }\n }\n });\n};\n\nconst enhance$2 = mush('AccountLinks')(injectIntl, withHooks(withProps(() => ({\n open: useIsOpen('@ux/bookends/account-options'),\n onClick: useToggleDropdown('@ux/bookends/account-options')\n})), withProps(() => useStylesheet$2()), useWithClickOutside));\n\nconst PureAccountLinks = ({\n styles,\n colorway,\n intl,\n ref,\n open,\n externalRoutes,\n onClick\n}) => /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: styles.root\n}, /*#__PURE__*/React.createElement(MastheadPopoutButton, {\n colorway: colorway,\n popoutOpened: open,\n onClick: onClick,\n showArrow: false\n}, /*#__PURE__*/React.createElement(\"span\", {\n style: styles.glyph\n}, /*#__PURE__*/React.createElement(Glyph, {\n size: styles.glyph.height,\n color: styles.glyph.color,\n icon: \"avatar\",\n alt: getMessage({\n id: 'bks.masthead.account'\n }, intl)\n}))), /*#__PURE__*/React.createElement(DropdownRoute, {\n path: \"@ux/bookends/account-options\"\n}, /*#__PURE__*/React.createElement(Popout, {\n colorway: colorway,\n flush: true\n}, /*#__PURE__*/React.createElement(AccountOptionsDesktop, {\n colorway: colorway,\n externalRoutes: externalRoutes\n}))));\n\nvar AccountLinks = enhance$2(PureAccountLinks);\n\nconst MastheadSpacer = () => {\n const {\n theme: {\n spacing\n }\n } = useTheme();\n const styles = {\n width: gu2px(1, spacing)\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n style: styles\n });\n};\n\nvar stylesheet = (({\n theme: {\n spacing,\n palette\n }\n}) => useStyles({\n default: {\n root: {\n backgroundColor: palette.headerBackground,\n ...longhand('borderBottom', {\n style: 'solid',\n color: opacify('#000000', 0.1),\n width: 1\n })\n },\n inner: {\n display: 'flex',\n justifyContent: 'space-between',\n ...cssSides('padding', Side.A, gu2px(4, spacing))\n },\n logo: {\n marginRight: gu2px(4, spacing),\n display: 'flex',\n alignItems: 'center'\n },\n logoImage: {\n height: gu2px(4, spacing)\n },\n shortcutsContainer: {\n flex: 1,\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'flex-end'\n },\n shortcuts: {\n display: 'flex'\n },\n utils: {\n display: 'flex'\n }\n }\n}));\n\nconst enhance$3 = mush('MastheadDesktop')(withHooks(withProps(useTheme), withProps(props => stylesheet(props)), withProps(() => ({\n intl: useIntl()\n}))));\nconst PureMastheadDesktop = ({\n intl,\n styles,\n colorway,\n shortcutNav,\n showBasket,\n showAccount,\n basketUrl,\n basketItemCount,\n logo,\n homeUrl,\n showLogo,\n supplementaryLinks,\n contactLinks,\n externalRoutes,\n languageMap\n}) => /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.inner\n}, showLogo ? /*#__PURE__*/React.createElement(\"div\", {\n style: styles.logo\n}, /*#__PURE__*/React.createElement(DynamicLink, {\n externalRoutes: externalRoutes,\n to: homeUrl,\n id: \"bks-logo\"\n}, /*#__PURE__*/React.createElement(\"img\", {\n src: logo,\n alt: intl.formatMessage({\n id: 'bks.header.logo.alt'\n }),\n style: styles.logoImage\n}))) : null, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.shortcutsContainer\n}, /*#__PURE__*/React.createElement(\"div\", {\n style: styles.shortcuts\n}, shortcutNav.map(function (shortcut, index) {\n return [/*#__PURE__*/React.createElement(MastheadSpacer, {\n key: \"0\"\n }), /*#__PURE__*/React.createElement(MastheadLink, {\n colorway: colorway,\n id: shortcut.analyticsKey ? `bks-${shortcut.analyticsKey}` : null,\n href: shortcut.to,\n glyph: shortcut.icon,\n externalRoutes: externalRoutes // @todo fix this - only way it re-renders on lang change\n ,\n key: `${shortcut.label}_${intl.locale}`\n }, /*#__PURE__*/React.createElement(Message, {\n id: shortcut.label\n }))];\n}, undefined), hasLength(supplementaryLinks) ? [/*#__PURE__*/React.createElement(MastheadSpacer, {\n key: \"0\"\n}), /*#__PURE__*/React.createElement(SupplementaryLinks, {\n colorway: colorway,\n externalRoutes: externalRoutes,\n links: supplementaryLinks,\n key: \"1\"\n})] : null), /*#__PURE__*/React.createElement(\"div\", {\n style: styles.utils\n}, hasLength(contactLinks) ? [/*#__PURE__*/React.createElement(MastheadSpacer, {\n key: \"0\"\n}), /*#__PURE__*/React.createElement(ContactLinks, {\n colorway: colorway,\n links: contactLinks,\n externalRoutes: externalRoutes,\n key: \"1\"\n})] : null, /*#__PURE__*/React.createElement(MastheadSpacer, null), /*#__PURE__*/React.createElement(CurrencyPicker, {\n colorway: colorway\n}), /*#__PURE__*/React.createElement(MastheadSpacer, null), /*#__PURE__*/React.createElement(ConnectedLanguagePicker, {\n colorway: colorway,\n languageMap: languageMap\n}), showBasket ? [/*#__PURE__*/React.createElement(MastheadSpacer, {\n key: \"0\"\n}), /*#__PURE__*/React.createElement(MastheadLink, {\n colorway: colorway,\n id: \"bks-basket\",\n externalRoutes: externalRoutes,\n href: basketItemCount > 0 ? basketUrl : null,\n glyph: \"cart\" // @todo fix this - only way it re-renders on lang change\n ,\n key: `basket_${intl.locale}`\n}, /*#__PURE__*/React.createElement(Message, {\n id: \"bks.header.basketCount.desktop\",\n values: {\n count: basketItemCount\n }\n}))] : null, showAccount ? [/*#__PURE__*/React.createElement(MastheadSpacer, {\n key: \"0\"\n}), /*#__PURE__*/React.createElement(AccountLinks, {\n colorway: colorway,\n externalRoutes: externalRoutes,\n key: \"1\"\n})] : null)))));\nvar Desktop = enhance$3(PureMastheadDesktop);\n\nexport default Desktop;\n"],"sourceRoot":""}