{"version":3,"sources":["webpack:///../node_modules/@ux/bookends/dist/es/sales-header-83031bcd.js","webpack:///../node_modules/@ux/bookends/dist/es/PopoutLink-f4595f02.js","webpack:///../node_modules/is-uuid/lib/is-uuid.js","webpack:///../node_modules/@ux/flag/dist/es/flag.js","webpack:///../node_modules/@ux/currency-symbol/dist/es/currency-symbol.js","webpack:///../node_modules/@ux/bookends/dist/es/MastheadPopoutButton-a2f33826.js","webpack:///../node_modules/@ux/bookends/dist/es/ConnectedCurrencyPicker-6089ad8b.js","webpack:///../node_modules/@ux/bookends/dist/es/index-3289ecbd.js"],"names":["useBookendsConfig","useColorway","config","_config$sales","_config$sales$header","sales","header","colorway","useHelpUrl","brandConfig","data","lang","normalize","support","url","useLinks","_config$sales$header$","_config$sales2","_config$sales2$header","menu","map","menuItem","_menuItem$submenu$ite","_menuItem$submenu","submenu","items","useAccountLinks","_config$sales$header$2","_config$sales3","_config$sales3$header","_config$sales3$header2","_config$sales3$header3","account","useSupplementaryLinks","_config$sales$header$3","_config$sales4","_config$sales4$header","_config$sales4$header2","_config$sales4$header3","supplementary","slice","useContactLinks","_config$sales$header$4","_config$sales5","_config$sales5$header","_config$sales5$header2","_config$sales5$header3","contact","useShortcuts","label","to","icon","analyticsKey","filter","Boolean","PopoutLink","props","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","v1Regex","v2Regex","v3Regex","v4Regex","v5Regex","nilRegex","anyRegex","module","exports","v1","str","test","v2","v3","v4","v5","nil","anyNonNil","SVGFlag","_ref","code","Icon","Promise","resolve","importSvgIcon","createElement","fallback","Fragment","flag","prunedCode","replace","split","toUpperCase","char","String","fromCodePoint","charCodeAt","getEmojiFlag","EmojiFlag","_ref2","getCountryCode","Flag","parsedCode","enhance$1","svg","CurrencySymbol","currency","intl","currencySymbol","formatNumber","maximumSignificantDigits","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","GlyphAlignment","displayName","hocus","href","glyphAlign","headerForeground","opacity","transition","height","marginRight","noop","pointerEvents","END","marginLeft","order","stylesheet","MastheadLink","id","glyph","externalRoutes","size","MastheadPopoutButton","showArrow","popoutOpened","isMinMd","backdrop","borderTopRightRadius","bottom","left","transform","popoutOpenedDesktop","popoutGapFiller","stylesheet$1","connect","logout","loggedIn","loginUrl","registerUrl","helpUrl","accountUrl","links","app","path","hasAccount","userDetails","_account$firstName","_account$lastName","name","firstName","lastName","trim","email","username","userName","usernameIsUuid","getUserDetails","evt","preventDefault","AccountOptionsDesktop","async","AccountOptionsMobile","PickerMobile","then","PickerDesktop","getCurrentLanguage","currentLanguage","_links$find","find","link","key","formatCountryIntl","LanguagePicker","item","lineHeight","_props$languageMap","Object","keys","languageMap","cascade","option","currentLink","onLanguageChange","length","onLinkClick","ConnectedLanguagePicker","setLanguage","newLanguage","getColors","HEADER","headerBackground","Currency$1","radiusMap","symbol","justifyContent","borderRadius","enhance$2","toLowerCase","values","hasCurrencyPicker","x","currencies","hasMultipleCurrencies","isLoggedIn","accountFetched","hasAccountsFetched","accountCurrency","hasAccountCurrency","getCurrentCurrency","currentCurrency","PickerMobile$1","PickerDesktop$1","CurrencyPicker","_props$currencies","curr","formatMessage","enhance$3","showPicker","CurrencyPicker$1","saveCurrency","status","enhance$4","SupplementaryLinks","i","undefined","ContactLinks","flexDirection","useStylesheet$1","tel","formatted","AccountLinks","useStylesheet$2","alt","MastheadSpacer","Desktop","inner","A","logo","logoImage","shortcutsContainer","flex","shortcuts","utils","shortcutNav","showBasket","showAccount","basketUrl","basketItemCount","homeUrl","showLogo","supplementaryLinks","contactLinks","src","shortcut","index","locale","count"],"mappings":"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","file":"pex-static/12/68.07a5bebecf7321caffc0.chunk.js","sourcesContent":["import { useMemo } from 'react';\nimport { useAppConfig, useBrandConfig } from '@ux/whitelabel';\nimport { useLanguage } from '@ux/language';\nimport { b as useControlPanelUrl } from './index-7a407b2e.js';\nimport { n as normalizeLinkUrl } from './utils-2cbabf7b.js';\n\n/* eslint-disable react-hooks/rules-of-hooks */\n\nconst useBookendsConfig = () => useAppConfig('bks');\n\nconst useColorway = (config = useBookendsConfig()) => {\n var _config$sales, _config$sales$header;\n\n return (_config$sales = config.sales) === null || _config$sales === void 0 ? void 0 : (_config$sales$header = _config$sales.header) === null || _config$sales$header === void 0 ? void 0 : _config$sales$header.colorway;\n};\nconst useHelpUrl = (brandConfig = useBrandConfig(), {\n data: lang\n} = useLanguage()) => {\n return useMemo(() => {\n const normalize = normalizeLinkUrl(lang);\n const support = brandConfig.support;\n return normalize(support).url;\n }, [lang, brandConfig]);\n};\nconst useLinks = (config = useBookendsConfig(), {\n data: lang\n} = useLanguage()) => {\n return useMemo(() => {\n var _config$sales$header$, _config$sales2, _config$sales2$header;\n\n const normalize = normalizeLinkUrl(lang);\n return ((_config$sales$header$ = config === null || config === void 0 ? void 0 : (_config$sales2 = config.sales) === null || _config$sales2 === void 0 ? void 0 : (_config$sales2$header = _config$sales2.header) === null || _config$sales2$header === void 0 ? void 0 : _config$sales2$header.menu) != null ? _config$sales$header$ : []).map(normalize).map(menuItem => {\n var _menuItem$submenu$ite, _menuItem$submenu;\n\n if (!menuItem.submenu) {\n return menuItem;\n }\n\n const items = ((_menuItem$submenu$ite = menuItem === null || menuItem === void 0 ? void 0 : (_menuItem$submenu = menuItem.submenu) === null || _menuItem$submenu === void 0 ? void 0 : _menuItem$submenu.items) != null ? _menuItem$submenu$ite : []).map(normalize);\n return { ...menuItem,\n submenu: { ...menuItem.submenu,\n items\n }\n };\n });\n }, [config, lang]);\n};\nconst useAccountLinks = (config = useBookendsConfig(), {\n data: lang\n} = useLanguage()) => {\n return useMemo(() => {\n var _config$sales$header$2, _config$sales3, _config$sales3$header, _config$sales3$header2, _config$sales3$header3;\n\n return ((_config$sales$header$2 = config === null || config === void 0 ? void 0 : (_config$sales3 = config.sales) === null || _config$sales3 === void 0 ? void 0 : (_config$sales3$header = _config$sales3.header) === null || _config$sales3$header === void 0 ? void 0 : (_config$sales3$header2 = _config$sales3$header.account) === null || _config$sales3$header2 === void 0 ? void 0 : (_config$sales3$header3 = _config$sales3$header2.menu) === null || _config$sales3$header3 === void 0 ? void 0 : _config$sales3$header3.items) != null ? _config$sales$header$2 : []).map(normalizeLinkUrl(lang));\n }, [config, lang]);\n};\nconst useSupplementaryLinks = (config = useBookendsConfig(), {\n data: lang\n} = useLanguage()) => {\n return useMemo(() => {\n var _config$sales$header$3, _config$sales4, _config$sales4$header, _config$sales4$header2, _config$sales4$header3;\n\n return ((_config$sales$header$3 = config === null || config === void 0 ? void 0 : (_config$sales4 = config.sales) === null || _config$sales4 === void 0 ? void 0 : (_config$sales4$header = _config$sales4.header) === null || _config$sales4$header === void 0 ? void 0 : (_config$sales4$header2 = _config$sales4$header.supplementary) === null || _config$sales4$header2 === void 0 ? void 0 : (_config$sales4$header3 = _config$sales4$header2.menu) === null || _config$sales4$header3 === void 0 ? void 0 : _config$sales4$header3.items) != null ? _config$sales$header$3 : []).slice(0, 5).map(normalizeLinkUrl(lang));\n }, [config, lang]);\n};\nconst useContactLinks = (config = useBookendsConfig(), {\n data: lang\n} = useLanguage()) => {\n return useMemo(() => {\n var _config$sales$header$4, _config$sales5, _config$sales5$header, _config$sales5$header2, _config$sales5$header3;\n\n return ((_config$sales$header$4 = config === null || config === void 0 ? void 0 : (_config$sales5 = config.sales) === null || _config$sales5 === void 0 ? void 0 : (_config$sales5$header = _config$sales5.header) === null || _config$sales5$header === void 0 ? void 0 : (_config$sales5$header2 = _config$sales5$header.contact) === null || _config$sales5$header2 === void 0 ? void 0 : (_config$sales5$header3 = _config$sales5$header2.menu) === null || _config$sales5$header3 === void 0 ? void 0 : _config$sales5$header3.items) != null ? _config$sales$header$4 : []).map(normalizeLinkUrl(lang));\n }, [config, lang]);\n};\nconst useShortcuts = (url = useControlPanelUrl()) => {\n // Urls may not be set on non-ecommerce brands so we must filter them out\n return useMemo(() => {\n return [{\n label: 'bks.masthead.controlPanel',\n to: url,\n icon: 'controls',\n analyticsKey: 'control-panel'\n }].filter(({\n to\n }) => Boolean(to));\n }, [url]);\n};\n\nexport { useLinks as a, useSupplementaryLinks as b, useContactLinks as c, useShortcuts as d, useHelpUrl as e, useAccountLinks as f, useColorway as u };\n","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","'use strict';\nvar v1Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nvar v2Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[2][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nvar v3Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[3][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nvar v4Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nvar v5Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nvar nilRegex = /^[0]{8}-[0]{4}-[0]{4}-[0]{4}-[0]{12}$/i;\nvar anyRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nfunction v1(str) {\n return v1Regex.test(str);\n}\n\nfunction v2(str) {\n return v2Regex.test(str);\n}\n\nfunction v3(str) {\n return v3Regex.test(str);\n}\n\nfunction v4(str) {\n return v4Regex.test(str);\n}\n\nfunction v5(str) {\n return v5Regex.test(str);\n}\n\nfunction nil(str) {\n return nilRegex.test(str);\n}\n\nfunction anyNonNil(str) {\n return anyRegex.test(str);\n}\n\nmodule.exports = {\n v1: v1,\n v2: v2,\n v3: v3,\n v4: v4,\n v5: v5,\n nil: nil,\n anyNonNil: anyNonNil\n};","import React__default, { useMemo, lazy, Suspense } from 'react';\nimport { puree } from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport { cond, startsWith, always, T } from 'ramda';\nimport { getCountryCode as getCountryCode$1 } from '@ux/language';\n\n/*\n Current flags:\n au\n cn\n fr\n de\n it\n no\n ru\n es\n gb\n us\n*/\n\n/* eslint-disable indent */\nvar importSvgIcon = function importSvgIcon(code) {\n switch (code) {\n case 'au':\n return import('./flag-austria-e3ba3662.js');\n\n case 'cn':\n return import('./flag-china-5a2d520e.js');\n\n case 'fr':\n return import('./flag-france-6f70740a.js');\n\n case 'de':\n return import('./flag-germany-7102ae56.js');\n\n case 'it':\n return import('./flag-italy-ba730e56.js');\n\n case 'no':\n return import('./flag-norway-e2bdadd5.js');\n\n case 'ru':\n return import('./flag-russia-1e122067.js');\n\n case 'es':\n return import('./flag-spain-1b0cd4b0.js');\n\n case 'gb':\n return import('./flag-uk-5e3111e8.js');\n\n case 'us':\n return import('./flag-usa-ff20383b.js');\n\n default:\n return Promise.resolve({\n default: function _default() {\n return null;\n }\n });\n }\n};\n\nvar SVGFlag = function SVGFlag(_ref) {\n var code = _ref.code;\n var Icon = useMemo(function () {\n return lazy(function () {\n return importSvgIcon(code);\n });\n }, [code]);\n return /*#__PURE__*/React__default.createElement(Suspense, {\n fallback: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, code)\n }, /*#__PURE__*/React__default.createElement(Icon, null));\n};\n\n// takes a country code and returns the emoji\n// https://github.com/danalloway/react-country-flag/blob/master/src/index.js#L23\nvar base = 127397; // Root Unicode flags index\n\nvar getEmojiFlag = (function (code) {\n var countryCode = code.replace('-', '.');\n var prunedCode = countryCode.split('.'); //it's usually language.country\n\n var correctCode = prunedCode[1] || prunedCode[0];\n return correctCode.toUpperCase().replace(/./g, function (char) {\n return String.fromCodePoint(char.charCodeAt(0) + base);\n });\n});\n\nvar enhance = puree('EmojiFlag')(withProps(function (_ref) {\n var code = _ref.code;\n var flag = getEmojiFlag(code);\n return {\n flag: flag\n };\n}));\nvar styles = {\n //eslint-disable-next-line max-len\n fontFamily: 'apple color emoji,segoe ui emoji,noto color emoji,android emoji,emojisymbols,emojione mozilla,twemoji mozilla,segoe ui symbol'\n};\n\nvar PureFlag = function PureFlag(_ref2) {\n var flag = _ref2.flag;\n return /*#__PURE__*/React__default.createElement(\"span\", {\n style: styles\n }, flag);\n};\n\nvar EmojiFlag = enhance(PureFlag); // eslint-disable-next-line no-underscore-dangle\n\nvar getCountryCode = (function (code) {\n return cond([// always return china for chinese (zh) locale\n [startsWith('zh'), always('cn')], // any other custom maps go here\n // ...\n // Otherwise return the country side of a locale code,\n [T, getCountryCode$1]])(code);\n});\n\nvar enhance$1 = puree('Flag')(withProps(function (props) {\n return {\n parsedCode: getCountryCode(props.code)\n };\n}));\n\nvar PureFlag$1 = function PureFlag(_ref) {\n var parsedCode = _ref.parsedCode,\n svg = _ref.svg;\n return svg ? /*#__PURE__*/React__default.createElement(SVGFlag, {\n code: parsedCode\n }) : /*#__PURE__*/React__default.createElement(EmojiFlag, {\n code: parsedCode\n });\n};\n\nvar Flag = enhance$1(PureFlag$1); // eslint-disable-next-line no-underscore-dangle\n\nexport default Flag;\nexport { Flag, getCountryCode as getFlagCountryCode, getEmojiFlag as getFlagEmojiCode };\n","import React, { useMemo } from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport { puree } from '@ux/pure-enhance';\nimport { useIntl } from 'react-intl';\n\nconst enhance = puree('CurrencySymbol')(withProps(({\n currency\n}) => {\n const intl = useIntl();\n const currencySymbol = useMemo(() => {\n return intl.formatNumber(0, {\n style: 'currency',\n currency: currency,\n maximumSignificantDigits: 1\n }).replace('0', '');\n }, [intl, currency]);\n return {\n currencySymbol\n };\n}));\n\nconst PureCurrencySymbol = ({\n currencySymbol,\n style\n}) => /*#__PURE__*/React.createElement(\"span\", {\n style: style\n}, currencySymbol);\n\nvar CurrencySymbol = enhance(PureCurrencySymbol); // eslint-disable-next-line no-underscore-dangle\n\nexport default CurrencySymbol;\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 { withSuspenseLazy } from 'react-with-suspense-lazy';\nimport { useLogout, useIsAuthenticated } from '@ux/auth';\nimport { puree } from '@ux/pure-enhance';\nimport { withProps, withHandlers } from '@team-griffin/rehook';\nimport { useMyAccount } from '@ux/accounts-client';\nimport React, { useCallback, useMemo } from 'react';\nimport { h as useLoginUrl, i as useRegisterUrl, j as useAccountUrl, k as useHasAccount, l as useSetLanguage } from './index-7a407b2e.js';\nimport { e as useHelpUrl, f as useAccountLinks } from './sales-header-83031bcd.js';\nimport { anyNonNil } from 'is-uuid';\nimport { getLocaleCode, getCountryCode, useLanguage } from '@ux/language';\nimport { useIntl } from 'react-intl';\nimport Message, { getMessage } from '@ux/message';\nimport Flag from '@ux/flag';\nimport { withBreakpointsHook } from '@ux/responsive';\nimport { useTheme, gu2px, Curvature } from '@ux/theme-utils';\nimport { useStyles } from '@team-griffin/stylr';\nimport 'react-query';\nimport { useSupportedCurrencies, useCurrency, useSaveCurrency } from '@ux/currency';\nimport CurrencySymbol from '@ux/currency-symbol';\nimport { headingXxs } from '@ux/type-size';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { Against } from '@ux/badge';\n\nconst getUserDetails = account => {\n var _account$firstName, _account$lastName;\n\n const name = `${(_account$firstName = account === null || account === void 0 ? void 0 : account.firstName) != null ? _account$firstName : ''} ${(_account$lastName = account === null || account === void 0 ? void 0 : account.lastName) != null ? _account$lastName : ''}`.trim();\n const email = account === null || account === void 0 ? void 0 : account.email;\n const username = account === null || account === void 0 ? void 0 : account.userName;\n const usernameIsUuid = anyNonNil(account === null || account === void 0 ? void 0 : account.userName);\n return {\n name,\n email,\n username,\n usernameIsUuid\n };\n};\n\nvar connect = puree('ConnectedAccountOptions')(withProps(() => {\n const [logout] = useLogout();\n const loggedIn = useIsAuthenticated();\n return {\n loggedIn,\n loginUrl: useLoginUrl(),\n registerUrl: useRegisterUrl(),\n helpUrl: useHelpUrl(),\n accountUrl: useAccountUrl(),\n links: useAccountLinks(),\n logout: useCallback((app, path) => {\n logout({\n path\n });\n }, [logout])\n };\n}), withProps(() => {\n const {\n data: account\n } = useMyAccount();\n const hasAccount = useHasAccount();\n const userDetails = useMemo(() => getUserDetails(account), [account]);\n return {\n hasAccount,\n userDetails\n };\n}), withHandlers({\n logout: ({\n logout\n }) => evt => {\n evt.preventDefault();\n logout('usf', '/');\n }\n}));\n\nconst AccountOptionsDesktop = withSuspenseLazy(async () => {\n const module = await import('./Desktop-623b22e4.js');\n return {\n default: connect(module.default)\n };\n});\nconst AccountOptionsMobile = withSuspenseLazy(async () => {\n const module = await import('./Mobile-5f4ac504.js');\n return {\n default: connect(module.default)\n };\n});\n\nvar stylesheet = (() => {\n const {\n theme: {\n spacing\n }\n } = useTheme();\n return useStyles({\n default: {\n item: {\n display: 'flex',\n alignItems: 'center'\n },\n flag: {\n width: gu2px(3, spacing),\n display: 'inline-block',\n marginRight: gu2px(1, spacing),\n lineHeight: 1\n }\n }\n });\n});\n\nconst PickerMobile = withSuspenseLazy(() => import('./index-f93e747f.js').then(module => ({\n default: module.PickerMobile\n})));\nconst PickerDesktop = withSuspenseLazy(() => import('./index-f93e747f.js').then(module => ({\n default: module.PickerDesktop\n})));\nconst getCurrentLanguage = (links, currentLanguage) => {\n var _links$find;\n\n return (_links$find = links.find(link => link.key === currentLanguage)) != null ? _links$find : links[0];\n};\n\nconst formatCountryIntl = code => code.replace('-', '.');\n\nconst enhance = puree('LanguagePicker')(withBreakpointsHook, withProps(() => stylesheet()), withProps(useTheme), withProps(props => {\n var _props$languageMap;\n\n const intl = useIntl();\n const links = Object.keys((_props$languageMap = props.languageMap) != null ? _props$languageMap : {}).map(item => {\n const label = /*#__PURE__*/React.createElement(\"span\", {\n style: props.styles.item\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: props.styles.flag\n }, /*#__PURE__*/React.createElement(Flag, {\n code: item,\n svg: true\n })), /*#__PURE__*/React.createElement(Message, {\n cascade: [{\n id: `country.language.iso2.${formatCountryIntl(item)}`\n }, {\n id: `country.language.iso2.${getLocaleCode(formatCountryIntl(item))}`\n }, {\n id: `country.language.iso2.${getCountryCode(formatCountryIntl(item))}`\n }]\n })); // @ts-ignore\n\n const href = props.languageMap[item];\n const option = getMessage({\n cascade: [{\n id: `country.language.iso2.${formatCountryIntl(item)}`\n }, {\n id: `country.language.iso2.${getLocaleCode(formatCountryIntl(item))}`\n }, {\n id: `country.language.iso2.${getCountryCode(formatCountryIntl(item))}`\n }]\n }, intl);\n return {\n key: item,\n label,\n href,\n option\n };\n });\n return {\n links,\n currentLink: getCurrentLanguage(links, props.currentLanguage)\n };\n}));\nconst PureLanguagePicker = ({\n links,\n colorway,\n currentLink,\n onLanguageChange,\n isMinMd\n}) => links.length > 1 ? isMinMd ? /*#__PURE__*/React.createElement(PickerDesktop, {\n name: \"language\",\n links: links,\n colorway: colorway,\n currentLink: currentLink,\n onLinkClick: onLanguageChange\n}) : /*#__PURE__*/React.createElement(PickerMobile, {\n name: \"language\",\n links: links,\n colorway: colorway,\n currentLink: currentLink,\n onLinkClick: onLanguageChange\n}) : null;\nconst LanguagePicker = enhance(PureLanguagePicker);\n\nconst enhance$1 = puree('ConnectedLanguagePicker')(withProps(() => {\n const {\n data: currentLanguage\n } = useLanguage();\n const setLanguage = useSetLanguage();\n\n const onLanguageChange = newLanguage => {\n setLanguage(newLanguage);\n };\n\n return {\n currentLanguage,\n onLanguageChange\n };\n}));\nconst ConnectedLanguagePicker = enhance$1(LanguagePicker);\n\nconst getColors = (colorway, palette) => {\n if (colorway === Against.HEADER) {\n return {\n backgroundColor: palette.headerForeground,\n color: palette.headerBackground\n };\n } // this gets annoying and confusing but bookends has a *colorway*\n // which sets what color the menu and others should use\n // so this means that when we check this colorway we basically want\n // to return the inverse. As \"light\" colorway on bookends, means dropdowns will be dark etc\n // here we're just handling the 2 different colours that a Popout can be (light or dark)\n // since this is where currency is used\n\n\n if (colorway === Against.NEUTRAL || colorway === Against.LIGHT) {\n return {\n backgroundColor: '#fff',\n color: palette.grey02\n };\n }\n\n return {\n backgroundColor: palette.grey02,\n color: '#fff'\n };\n};\n\nvar stylesheet$1 = (({\n colorway\n}) => {\n const {\n theme: {\n spacing,\n palette,\n curvature\n }\n } = useTheme();\n const radiusMap = {\n [Curvature.OFF]: 0,\n [Curvature.WEAK]: gu2px(0.5, spacing),\n [Curvature.STRONG]: gu2px(3, spacing)\n };\n return useStyles({\n default: {\n root: {\n display: 'flex',\n alignItems: 'center'\n },\n symbol: {\n marginLeft: gu2px(1, spacing),\n height: gu2px(3, spacing),\n minHeight: gu2px(3, spacing),\n minWidth: gu2px(3, spacing),\n lineHeight: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: radiusMap[curvature],\n ...headingXxs(),\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n ...getColors(colorway, palette)\n }\n }\n }, [{\n colorway\n }]);\n});\n\nconst enhance$2 = puree('Currency')(withProps(props => stylesheet$1(props)));\n\nconst Currency = ({\n currency,\n styles\n}) => /*#__PURE__*/React.createElement(\"span\", {\n style: styles.root\n}, /*#__PURE__*/React.createElement(Message, {\n id: `bks.currency.label.${currency.toLowerCase()}`,\n values: {\n currencySymbol: null\n }\n}), /*#__PURE__*/React.createElement(\"span\", {\n style: styles.symbol\n}, /*#__PURE__*/React.createElement(CurrencySymbol, {\n currency: currency\n})));\n\nvar Currency$1 = enhance$2(Currency);\n\nconst hasMultipleCurrencies = x => x.currencies.length > 1;\n\nconst isLoggedIn = x => x.loggedIn;\n\nconst hasAccountsFetched = x => x.accountFetched;\n\nconst hasAccountCurrency = x => x.accountCurrency != null;\n/**\n * show the currency dropdown when\n * the user is not logged in, or when\n * the user is logged in, his account is fetched and there's no currency assigned to his account\n */\n\n\nconst hasCurrencyPicker = props => {\n if (hasMultipleCurrencies(props)) {\n if (isLoggedIn(props)) {\n if (hasAccountsFetched(props) && !hasAccountCurrency(props)) {\n return true;\n }\n } else {\n return true;\n }\n }\n\n return false;\n};\nconst getCurrentCurrency = (links, currentCurrency) => {\n var _links$find;\n\n return (_links$find = links.find(link => link.key === currentCurrency)) != null ? _links$find : links[0];\n};\n\nconst PickerMobile$1 = withSuspenseLazy(async () => {\n const module = await import('./index-f93e747f.js');\n return {\n default: module.PickerMobile\n };\n});\nconst PickerDesktop$1 = withSuspenseLazy(async () => {\n const module = await import('./index-f93e747f.js');\n return {\n default: module.PickerDesktop\n };\n});\nconst enhance$3 = puree('CurrencyPicker')(withBreakpointsHook, withProps(() => ({\n intl: useIntl()\n})), withProps(props => {\n var _props$currencies;\n\n const links = ((_props$currencies = props.currencies) != null ? _props$currencies : []).map(curr => {\n const key = curr;\n const label = /*#__PURE__*/React.createElement(Currency$1, {\n currency: curr,\n colorway: props.colorway\n });\n const option = props.intl.formatMessage({\n id: `bks.currency.label.${curr.toLowerCase()}`\n }, {\n currencySymbol: props.intl.formatNumber(0, {\n style: 'currency',\n currency: curr,\n maximumSignificantDigits: 1\n }).replace('0', '')\n });\n return {\n key,\n label,\n option\n };\n });\n return {\n links\n };\n}), withProps(props => ({\n currentLink: getCurrentCurrency(props.links, props.currency)\n})));\nconst PureCurrencyPicker = ({\n links,\n colorway,\n onLinkClick,\n currentLink,\n showPicker,\n isMinMd\n}) => showPicker ? isMinMd ? /*#__PURE__*/React.createElement(PickerDesktop$1, {\n name: \"currency\",\n links: links,\n colorway: colorway,\n currentLink: currentLink,\n onLinkClick: onLinkClick\n}) : /*#__PURE__*/React.createElement(PickerMobile$1, {\n name: \"currency\",\n links: links,\n colorway: colorway,\n currentLink: currentLink,\n onLinkClick: onLinkClick\n}) : null;\nconst CurrencyPicker = enhance$3(PureCurrencyPicker);\n\nconst enhance$4 = puree('ConnectedCurrencyPicker')(withProps(() => {\n const currencies = useSupportedCurrencies();\n const {\n data: currency\n } = useCurrency();\n const [saveCurrency] = useSaveCurrency();\n const onLinkClick = useCallback(({\n key\n }) => {\n saveCurrency({\n currency: key\n });\n }, [saveCurrency]);\n return {\n currencies,\n currency,\n onLinkClick\n };\n}), withProps(({\n currencies\n}) => {\n const loggedIn = useIsAuthenticated();\n const {\n data: account,\n status\n } = useMyAccount();\n const accountCurrency = account === null || account === void 0 ? void 0 : account.currency;\n const accountFetched = status === 'success';\n return {\n showPicker: hasCurrencyPicker({\n currencies,\n loggedIn,\n accountCurrency,\n accountFetched\n })\n };\n})); // @ts-ignore\n\nvar CurrencyPicker$1 = enhance$4(CurrencyPicker);\n\nexport { AccountOptionsDesktop as A, CurrencyPicker$1 as C, ConnectedLanguagePicker as a, AccountOptionsMobile as b, hasCurrencyPicker as h };\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":""}