{"version":3,"sources":["webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///./node_modules/@n8tb1t/use-scroll-position/lib/useIsomorphicLayoutEffect.js","webpack:///./src/components/heading.tsx","webpack:///./node_modules/react-modal/lib/index.js","webpack:///./node_modules/@n8tb1t/use-scroll-position/lib/useScrollPosition.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///./node_modules/react-modal/lib/helpers/focusManager.js","webpack:///./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///./node_modules/react-modal/lib/helpers/tabbable.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/@n8tb1t/use-scroll-position/lib/index.js","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./src/components/rootModal.tsx","webpack:///./src/components/forms/externalLinkButton.ts","webpack:///./src/components/nav.tsx","webpack:///./src/components/LanguageSelectorElement.tsx","webpack:///./src/components/LanguageSelector.tsx","webpack:///./src/components/CurrencySelectorElement.tsx","webpack:///./src/components/CurrencySelector.tsx","webpack:///./src/components/page.tsx"],"names":["warning","module","exports","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","Object","defineProperty","value","undefined","obj","_exenv","EE","__esModule","default","SafeHTMLElement","HTMLElement","useIsomorphicLayoutEffect","_react","useLayoutEffect","useEffect","headingStyles","css","colors","dark","styledHeading","h1","styled","h2","h3","h4","h5","Heading","content","level","size","isInverted","ignoreMarginBottom","pro","rest","c","className","attr","clsx","inverted","StyledH","priceData","useContext","PriceContext","html","replace","em","substring","length","paragraph","childMarkdownRemark","contentWithDynamicPrice","generateAllPriceWithCurrency","currency","currencySymbol","dangerouslySetInnerHTML","__html","_Modal","_Modal2","useScrollPosition","_useIsomorphicLayoutEffect","isBrowser","getScrollPosition","_ref","element","useWindow","x","y","position","current","body","getBoundingClientRect","scrollX","scrollY","left","top","effect","deps","wait","useRef","throttleTimeout","callBack","currPos","prevPos","handleScroll","setTimeout","removeEventListener","defaultProps","_extends","assign","target","i","arguments","source","key","prototype","hasOwnProperty","call","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","focusManager","_interopRequireWildcard","_scopeTab2","ariaAppHider","classList","_safeHTMLElement2","_portalOpenInstances2","newObj","CLASS_NAMES","overlay","ariaHiddenInstances","ModalPortal","_Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","setOverlayRef","overlayRef","setContentRef","contentRef","afterClose","_this$props","appElement","ariaHideApp","htmlOpenClassName","bodyOpenClassName","remove","getElementsByTagName","show","shouldFocusAfterRender","shouldReturnFocusAfterClose","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","open","beforeOpen","state","afterOpen","beforeClose","clearTimeout","closeTimer","setState","setupScopedFocus","node","markForFocusLater","isOpen","onAfterOpen","overlayEl","contentEl","close","closeTimeoutMS","closeWithTimeout","closeWithoutTimeout","focusContent","contentHasFocus","focus","closesAt","Date","now","handleKeyDown","event","keyCode","shouldCloseOnEsc","stopPropagation","requestClose","handleOverlayOnClick","shouldClose","shouldCloseOnOverlayClick","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","preventDefault","handleContentOnClick","handleContentOnMouseDown","onRequestClose","shouldBeClosed","activeElement","contains","buildClassName","which","additional","classNames","base","attributesFromObject","prefix","items","keys","reduce","acc","name","moveFromContentToOverlay","subClass","superClass","create","setPrototypeOf","_inherits","prevProps","prevState","_props","add","hide","register","_props2","id","overlayClassName","defaultStyles","contentStyles","overlayStyles","ref","style","onClick","onMouseDown","tabIndex","onKeyDown","onMouseUp","role","contentLabel","aria","data","testId","children","Component","propTypes","bool","isRequired","shape","object","oneOfType","string","instanceOf","func","number","tabbable","_tabbable2","shiftKey","head","tail","checkSafari","exec","navigator","userAgent","indexOf","_tabbable","portalOpenInstances","PortalOpenInstances","openInstance","openInstances","push","emit","index","splice","subscribe","callback","subscribers","eventType","forEach","subscriber","slice","handleBlur","handleFocus","focusLaterElements","toFocus","pop","e","console","warn","join","modalElement","detachEvent","needToFocus","_portalOpenInstances","before","after","instances","setAttribute","opacity","cloneNode","firstChild","insertBefore","lastChild","appendChild","parentElement","removeChild","assertNodeList","setElement","useElement","_safeHTMLElement","el","querySelectorAll","globalElement","validateElement","removeAttribute","documentNotReadyOrSSRTesting","resetForTesting","_warning","_warning2","nodeList","selector","Error","filter","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","innerHTML","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","focusable","isTabIndexNotNaN","nodeName","toLowerCase","test","disabled","href","parentNode","visible","getAttribute","isTabIndexNaN","isNaN","dumpClassLists","htmlClassList","docBodyClassList","classString","classListRef","poll","split","incrementReference","decrementReference","get","_useScrollPosition","portalClassName","_reactDom2","_ModalPortal2","_reactLifecyclesCompat","isReact16","createPortal","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","parentSelector","Modal","_temp","_len","args","Array","_key","apply","concat","removePortal","unmountComponentAtNode","parent","portalRef","portal","renderPortal","prevParent","nextParent","_","snapshot","right","bottom","backgroundColor","border","background","overflow","WebkitOverflowScrolling","borderRadius","outline","padding","polyfill","ModalStatus","a","teal","transparent","transparentButtonStyles","basicButtonStyles","gray10","hexToRgba","red","setAppElement","StyledIcon","div","CloseButton","button","gray60","Container","createGlobalStyle","white","bp","tabletMax","desktop","mobileMax","mobile","tabletMin","desktopMin","modalBackdrop","gray5","TripleColumnContainer","Button","Icon","RootLayout","isTransparent","black","SubContainerStretch","nav","absolute","SubContainerNonStretch","SubContainer","justifyContent","stretch","fixedWidth","MenuToggle","gray","NavSpacer","grayLight10","footer","hasBottomMargin"],"mappings":"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","file":"b9fb8acf4e49c7c00aef848daece8cea7238d516-f3556ffbb15a39af78fd.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n var ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen\n };\n\n if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n define(function () {\n return ExecutionEnvironment;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = ExecutionEnvironment;\n } else {\n window.ExecutionEnvironment = ExecutionEnvironment;\n }\n})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar EE = _exenv2.default;\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useIsomorphicLayoutEffect = void 0;\n\nvar _react = require(\"react\");\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;","import React, { useContext } from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { ContentfulParagraph, ParagraphWithRemarkFragment } from \"../../types/graphql-types\"\nimport { PriceContext, PriceContextType } from \"../context/priceContext\"\nimport colors from \"../utils/colors\"\nimport { generateAllPriceWithCurrency } from \"../utils/currencyList\"\nimport clsx from \"clsx\"\n\nexport interface Props extends StylingProps, React.HTMLAttributes {\n content?: ParagraphWithRemarkFragment | ContentfulParagraph | string | null\n level: HeadingLevel\n}\n\ninterface StylingProps {\n size?: HeadingLevel\n isInverted?: boolean\n pro?: boolean\n ignoreMarginBottom?: boolean\n}\n\nconst headingStyles = css`\n color: ${colors.dark};\n`\nconst styledHeading = {\n h1: styled.h1`\n ${headingStyles}\n `,\n h2: styled.h2`\n ${headingStyles}\n `,\n h3: styled.h3`\n ${headingStyles}\n `,\n h4: styled.h4`\n ${headingStyles}\n `,\n h5: styled.h5`\n ${headingStyles}\n `,\n}\n\ntype HeadingLevel = keyof typeof styledHeading\n\nconst Heading = ({\n content,\n level,\n size,\n isInverted,\n ignoreMarginBottom = false,\n pro = false,\n ...rest\n}: Props) => {\n if (!content) {\n return null\n }\n const { className: c, ...attr } = rest\n const className = clsx(\n c,\n size,\n {\n inverted: isInverted,\n \"ignore-margin-bottom\": ignoreMarginBottom,\n },\n pro && \"heading--pro\"\n )\n const H: HeadingLevel = level\n const StyledH = styledHeading[H]\n const { priceData } = useContext(PriceContext) as PriceContextType\n\n const html =\n typeof content === \"string\"\n ? content\n .replace(/\\\\n/g, \"
\")\n .replace(/\\*[^\\*]*\\*/g, em => `${em.substring(1, em.length - 1)}`)\n : (content as ParagraphWithRemarkFragment).paragraph?.childMarkdownRemark?.html\n\n if (html) {\n const contentWithDynamicPrice = generateAllPriceWithCurrency(\n priceData.currency,\n priceData,\n priceData.currencySymbol,\n html\n )\n\n return (\n \n )\n } else {\n return null\n }\n}\n\nexport default Heading\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useScrollPosition = useScrollPosition;\n\nvar _react = require(\"react\");\n\nvar _useIsomorphicLayoutEffect = require(\"./useIsomorphicLayoutEffect\");\n/* eslint-disable react-hooks/exhaustive-deps */\n\n\nvar isBrowser = typeof window !== \"undefined\";\n\nfunction getScrollPosition(_ref) {\n var element = _ref.element,\n useWindow = _ref.useWindow;\n if (!isBrowser) return {\n x: 0,\n y: 0\n };\n var target = element ? element.current : document.body;\n var position = target.getBoundingClientRect();\n return useWindow ? {\n x: window.scrollX,\n y: window.scrollY\n } : {\n x: position.left,\n y: position.top\n };\n}\n\nfunction useScrollPosition(effect, deps, element, useWindow, wait) {\n var position = (0, _react.useRef)(getScrollPosition({\n useWindow: useWindow\n }));\n var throttleTimeout = null;\n\n var callBack = function callBack() {\n var currPos = getScrollPosition({\n element: element,\n useWindow: useWindow\n });\n effect({\n prevPos: position.current,\n currPos: currPos\n });\n position.current = currPos;\n throttleTimeout = null;\n };\n\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {\n if (!isBrowser) {\n return;\n }\n\n var handleScroll = function handleScroll() {\n if (wait) {\n if (throttleTimeout === null) {\n throttleTimeout = setTimeout(callBack, wait);\n }\n } else {\n callBack();\n }\n };\n\n window.addEventListener('scroll', handleScroll);\n return function () {\n return window.removeEventListener('scroll', handleScroll);\n };\n }, deps);\n}\n\nuseScrollPosition.defaultProps = {\n deps: [],\n element: false,\n useWindow: false,\n wait: null\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // so that our CSS is statically analyzable\n\n\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName; // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName); // Reset aria-hidden attribute if all modals have been removed\n\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus();\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n\n _this.setState({\n beforeClose: false\n });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({\n isOpen: true\n }, function () {\n _this.setState({\n afterOpen: true\n });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus();\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n\n _this.setState({\n beforeClose: true,\n closesAt: closesAt\n }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n } // Focus only needs to be set once when the modal is being opened\n\n\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName; // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n } // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles;\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n return this.shouldBeClosed() ? null : _react2.default.createElement(\"div\", {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n }, _react2.default.createElement(\"div\", _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", this.props.aria || {}), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n }), this.props.children));\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1]; // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n } // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n\n\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null; // If we are not in safari desktop, let the browser control\n // the focus\n\n if (!isSafariDesktop) return;\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x]; // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n target.focus();\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n} // Tracks portals that are open and emits events to subscribers\n\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n\n return;\n }\n\n _this.openInstances.push(openInstance);\n\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n\n return;\n }\n\n _this.openInstances.splice(index, 1);\n\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType, // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!modalElement) {\n return;\n } // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n\n\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n/* eslint-disable no-console */\n\n\nfunction returnFocus() {\n var toFocus = null;\n\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus();\n }\n\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Body focus trap see Issue #742\n\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n\n return;\n }\n\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0; // If the node is empty, this is good enough\n\n if (zeroSize && !element.innerHTML) return true; // Otherwise we need to check some styles\n\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" || // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n buffer += \" (\" + classes + \"):\\n\";\n\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className; // eslint-disable-next-line max-len\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\"; // eslint-disable-next-line no-console\n\n console.log(buffer);\n }\n}\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\n\n\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n\n poll[className] += 1;\n return className;\n};\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\n\n\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n\n return className;\n};\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\n\n\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\n\n\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\n\n\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\n\n\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"useScrollPosition\", {\n enumerable: true,\n get: function get() {\n return _useScrollPosition.useScrollPosition;\n }\n});\n\nvar _useScrollPosition = require(\"./useScrollPosition\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n\n if (parent) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({\n defaultStyles: Modal.defaultStyles\n }, props)), _this.node);\n\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n this.node.className = this.props.portalClassName;\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return {\n prevParent: prevParent,\n nextParent: nextParent\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n } // Stop unnecessary renders if modal is remaining closed\n\n\n if (!prevProps.isOpen && !isOpen) return;\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n parentSelector: function parentSelector() {\n return document.body;\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n(0, _reactLifecyclesCompat.polyfill)(Modal);\nexports.default = Modal;","import React from \"react\"\nimport Modal from \"react-modal\"\nimport styled, { createGlobalStyle } from \"styled-components\"\nimport colors from \"../utils/colors\"\nimport { padding, breakpoints as bp } from \"./layout\"\nimport Icon from \"./Icon\"\nimport { ParagraphWithRemarkFragment } from \"../../types/graphql-types\"\nimport Heading from \"./heading\"\nimport clsx from \"clsx\"\n\nModal.setAppElement(\"#___gatsby\")\n\nexport enum ModalStatus {\n SUCCESS = \"success\",\n ERROR = \"error\",\n DOWNLOAD = \"download\",\n CLOSE = \"close\",\n}\ninterface Props {\n children: React.ReactNode\n header?: string\n headerWithRemark?: ParagraphWithRemarkFragment\n modalStatus?: ModalStatus\n onClose(): void\n full?: boolean\n showCloseCta?: boolean\n showToggleIcon?: boolean\n}\n\nconst StyledIcon = styled.div`\n display: flex;\n padding: 24px;\n border-radius: 100%;\n color: ${colors.teal};\n background-color: rgba(0, 147, 154, 0.1);\n svg {\n width: 40px;\n height: 40px;\n }\n &.error {\n color: ${colors.red};\n background-color: rgba(239, 78, 82, 0.1);\n }\n`\n\nconst CloseButton = styled.button`\n position: absolute;\n right: 20px;\n top: 20px;\n padding: 9px;\n color: ${colors.gray60};\n background-color: transparent;\n border: none;\n outline: none;\n\n &:hover {\n color: ${colors.dark};\n }\n\n svg {\n width: 24px;\n height: 24px;\n }\n`\n\nconst StyledModal = createGlobalStyle`\n .base-modal {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n position: absolute;\n width: 640px;\n min-height: 240px;\n top: 50%;\n left: 50%;\n right: auto;\n bottom: auto;\n margin-right: -50%;\n transform: translate(-50%, -50%);\n padding: 56px;\n box-sizing: border-box;\n background-color: ${colors.white};\n border: none;\n outline: none;\n border-radius: 1rem;\n\n @media (max-width: ${bp.tabletMax}) {\n width: calc(100% - 2 * ${padding.desktop});\n }\n @media (max-width: ${bp.mobileMax}) {\n width: calc(100% - 2 * ${padding.mobile});\n }\n &--full{\n height: 100%;\n width: 100%;\n border-radius: unset;\n padding: ${padding.mobile} 0 0 0;\n margin: auto;\n justify-content: flex-start;\n .h4{\n font-size: 28px;\n margin-top: 24px;\n @media (min-width: ${bp.tabletMin}){\n font-size: 32px;\n margin-top: 96px;\n }\n @media (min-width: ${bp.desktopMin}){\n font-size: 48px;\n margin-top: 153px;\n }\n }\n }\n &--toggleIcon{\n ${CloseButton as any} {\n display: none;\n }\n ${StyledIcon as any} {\n padding:12px;\n svg{\n width:24px;\n height:24px;\n }\n }\n\n @media (min-width: ${bp.tabletMin}){\n ${CloseButton as any} {\n display: block;\n }\n ${StyledIcon as any} {\n display: none;\n } \n }\n }\n }\n\n .base-modal-overlay {\n position: fixed;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n z-index: 20;\n background-color: ${colors.modalBackdrop};\n z-index: 20;\n }\n hr {\n border: none;\n border-top: 1px solid ${colors.gray5};\n width: 100%;\n }\n h3 {\n margin-top: 2rem;\n margin-bottom: 1rem;\n em {\n color: ${colors.teal};\n font-style: normal;\n }\n }\n div.error h3 em {\n color: ${colors.red};\n }\n\n .info {\n height: 36px;\n color: ${colors.gray60};\n font-size: 24px;\n font-weight: 500;\n letter-spacing: -0.5px;\n line-height: 36px;\n }\n h4 {\n font-size: 24px;\n line-height: 28px;\n }\n`\n\nconst BaseModal = ({\n children,\n header,\n headerWithRemark,\n modalStatus = ModalStatus.SUCCESS,\n onClose,\n full: isFull = false,\n showToggleIcon = false,\n ...props\n}: Props & ReactModal.Props) => {\n const Icons = () => {\n switch (modalStatus) {\n case (modalStatus = ModalStatus.ERROR):\n return \n case (modalStatus = ModalStatus.DOWNLOAD):\n return \n case (modalStatus = ModalStatus.CLOSE):\n return \n default:\n return \n }\n }\n const error = modalStatus === ModalStatus.ERROR\n\n const cNames = clsx(\n \"base-modal\",\n { \"base-modal--full\": isFull },\n { \"base-modal--toggleIcon\": showToggleIcon }\n )\n return (\n \n \n \n \n \n \n \n \n\n {header && (\n \n )}\n {headerWithRemark && (\n \n )}\n {children}\n \n )\n}\n\nexport default BaseModal\n","import styled, { css } from \"styled-components\"\n\nimport colors, { hexToRgba } from \"../../utils/colors\"\nimport { basicButtonStyles, transparentButtonStyles } from \"./button\"\n\nexport interface ButtonProps {\n transparent?: boolean\n inverted?: boolean\n \"data-gtm-cta\": string\n}\n\nconst ExternalLinkButton = styled.a`\n display: inline-block;\n color: ${colors.teal};\n background-color: ${colors.teal};\n padding: 0px 20px;\n border: none;\n border-radius: 10px;\n outline: 0;\n font-size: 18px;\n font-weight: bold;\n transition: all 0.3s ease;\n height: 42px;\n line-height: 42px;\n\n ${props => (props.transparent ? transparentButtonStyles : basicButtonStyles)}\n ${props =>\n props.transparent && props.inverted ? `border-color: ${colors.gray10};` : \"\"}\n\n &:disabled {\n cursor: auto;\n pointer-events: none;\n color: ${hexToRgba(colors.dark, 0.3)};\n background-color: ${hexToRgba(colors.dark, 0.1)};\n }\n &.error {\n background-color: ${colors.red};\n }\n`\n\nexport default ExternalLinkButton\n","import React, { useState, useContext } from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { Link, StaticQuery, graphql, navigate } from \"gatsby\"\nimport { useScrollPosition } from \"@n8tb1t/use-scroll-position\"\nimport clsx from \"clsx\"\n\nimport {\n NavQuery,\n ContentfulHeading,\n ParagraphWithRemarkFragment,\n ContentfulLink,\n ContentfulNavigation,\n} from \"../../types/graphql-types\"\nimport { RootLayout, nav, padding, breakpoints as bp } from \"./layout\"\nimport { HmdConnectLogo } from \"./logo\"\nimport Button from \"./forms/button\"\nimport colors, { hexToRgba } from \"../utils/colors\"\nimport LocaleContext from \"../context/localeContext\"\n\nimport Icon from \"./Icon\"\nimport ExternalLinkButton from \"./forms/externalLinkButton\"\nimport BaseModal, { ModalStatus } from \"./rootModal\"\nimport Paragraph from \"./paragraph\"\nimport { GooglePlayCta, AppStoreCta, WebStoreCta } from \"./downloadButtons\"\nimport LanguageSelector from \"./LanguageSelector\"\nimport CurrencySelector from \"./CurrencySelector\"\nimport { createLocalizedPath } from \"../utils/urlUtils\"\n\ninterface Props {\n activeTab?: string\n isInverted?: boolean\n}\n\ninterface NavProps extends Props {\n data: NavQuery\n}\n\ninterface DesktopMenuBarProps {\n isFull: boolean\n}\n\ninterface MobileMenuBarProps {\n isFull: boolean\n}\n\ninterface ChangesOnMobile {\n isMobile?: boolean\n}\n\nconst Container = styled(RootLayout)<{\n isTransparent?: boolean\n isInverted?: boolean\n}>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n font-weight: bold;\n z-index: 10;\n font-size: 1rem;\n\n a.active {\n color: ${props => (props.isTransparent && props.isInverted ? colors.white : colors.black)};\n }\n\n background-color: ${props => (props.isTransparent ? \"transparent\" : colors.white)};\n`\n\nconst DesktopContainer = styled(Container)`\n height: ${nav.desktop};\n\n @media (max-width: ${bp.tabletMax}) {\n display: none;\n }\n`\n\nconst MobileContainer = styled(Container)<{ absolute?: boolean }>`\n padding: 0;\n height: ${nav.mobile};\n ${props => (props.absolute ? \"position: absolute;\" : \"\")}\n\n @media (min-width: ${bp.desktopMin}) {\n display: none;\n }\n\n @media (min-width: ${bp.tabletMin}) {\n padding: 0;\n height: ${nav.desktop};\n }\n`\n\nconst SubContainerStretch = css`\n flex: 1;\n`\n\nconst SubContainerNonStretch = css`\n width: 210px;\n\n @media (max-width: ${bp.tabletMax}) {\n width: 50px;\n }\n`\n\nconst SubContainer = styled.div<{\n justifyContent?: string\n stretch?: boolean\n fixedWidth?: string\n}>`\n display: flex;\n align-items: center;\n height: 100%;\n justify-content: ${props => (props.justifyContent ? props.justifyContent : \"center\")};\n\n @media (max-width: ${bp.tabletMax}) {\n padding: 0 ${padding.desktop};\n }\n @media (max-width: ${bp.mobileMax}) {\n padding: 0 ${padding.mobile};\n }\n\n ${props =>\n props.stretch\n ? SubContainerStretch\n : props.fixedWidth\n ? `width: ${props.fixedWidth};`\n : SubContainerNonStretch}\n`\n\nconst TabletSubContainer = styled(SubContainer)`\n display: none;\n @media (min-width: ${bp.tabletMin}) and (max-width: ${bp.tabletMax}) {\n display: inherit;\n }\n`\n\nconst MobileSubContainer = styled(SubContainer)`\n display: none;\n @media (max-width: ${bp.mobileMax}) {\n display: inherit;\n }\n`\n\nconst SelectorWrapper = styled.div<{ isInverted?: boolean }>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n margin: calc((${nav.mobile} * 1.3) - 1em) ${padding.mobile} 0 ${padding.mobile};\n\n button {\n font-size: 1rem;\n font-weight: 700;\n font-family: inherit;\n border: 2px solid ${colors.gray};\n margin-right: 0;\n margin-top: 1em;\n height: 3em;\n color: ${props => (props.isInverted ? colors.white : colors.dark)};\n width: auto;\n\n &:first-child,\n &:nth-child(2) {\n margin-right: 1em;\n }\n }\n\n @media (min-width: ${bp.tabletMin}) {\n margin: calc(${nav.desktop} * 1.2) ${padding.desktop} 0 ${padding.desktop};\n }\n\n @media (min-width: ${bp.desktopMin}) {\n margin: 0 0;\n\n button {\n margin-top: 0;\n font-size: inherit;\n border: none;\n flex: 0;\n\n &:first-child,\n &:nth-child(2) {\n margin-right: 0;\n }\n }\n }\n`\n\nconst Links = styled.div<{ isInverted?: boolean }>`\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n\n a {\n margin: 0 15px;\n height: calc(${nav.desktop} - 8px);\n border-top: 6px solid transparent;\n border-bottom: 4px solid transparent;\n font-weight: 500;\n color: ${props => (props.isInverted ? \"rgba(255, 255, 255, 0.6)\" : colors.gray60)};\n display: flex;\n\n div {\n margin: auto;\n }\n &.active {\n border-top-color: ${colors.black};\n color: ${colors.dark};\n font-weight: 600;\n\n ${props =>\n props.isInverted\n ? `\n border-top-color: ${colors.white};\n color: ${colors.white};\n `\n : \"\"}\n }\n }\n`\n\nconst Scrim = styled.div`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(230, 245, 245, 0.9);\n z-index: 2;\n\n display: none;\n @media (min-width: ${bp.tabletMin}) and (max-width: ${bp.tabletMax}) {\n display: block;\n }\n`\n\nconst ButtonIcon = styled(Icon)`\n vertical-align: middle;\n margin-left: 1.1875em;\n`\n\n/**\n * Mobile Menu & buttons\n */\nconst MobileMenu = styled.div<{ isOpen: boolean }>`\n position: fixed;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n background-color: ${colors.white};\n overflow: hidden;\n z-index: 3;\n\n width: ${props => (props.isOpen ? \"100%;\" : \"0px;\")};\n transition: width 0.1s;\n\n @media (min-width: ${bp.tabletMin}) {\n width: ${props => (props.isOpen ? \"75%;\" : \"0px;\")};\n box-shadow: 0px 0px 32px -8px rgba(0, 30, 45, 0.2);\n }\n\n @media (min-width: ${bp.desktopMin}) {\n display: none;\n }\n`\n\nconst MenuToggle = styled.button`\n width: 48px;\n height: 48px;\n border: none;\n background-color: transparent;\n\n &:focus {\n outline: none;\n }\n`\n\nconst MobileLinks = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n font-weight: 500;\n text-align: left;\n font-size: 1.125rem;\n margin: ${padding.mobile};\n @media (min-width: ${bp.tabletMin}) {\n margin: ${padding.desktop};\n }\n\n a {\n margin: 0.888em 0;\n padding-left: 1rem;\n border-left: 4px solid transparent;\n color: ${colors.gray60};\n font-size: 1.125rem;\n font-weight: 500;\n background: none;\n line-height: 32px;\n\n &:hover {\n background: none;\n }\n\n &.active {\n border-left-color: ${colors.black};\n color: ${colors.dark};\n font-weight: 600;\n }\n\n @media (min-width: ${bp.tabletMin}) {\n padding-left: 1.5rem;\n font-size: 2rem;\n }\n }\n`\n\nconst MobileButtons = styled.div`\n margin: ${padding.mobile};\n\n button {\n width: 100%;\n margin-bottom: 1rem;\n height: 3.5rem;\n font-family: inherit;\n }\n\n @media (min-width: ${bp.tabletMin}) {\n margin: ${padding.desktop};\n\n button {\n font-size: 1.125rem;\n }\n }\n`\n\n/**\n * Desktop Menu & buttons\n */\nconst DesktopMenuToggle = styled(MenuToggle)`\n margin-left: 2.875em;\n`\n\nconst DesktopMenu = styled(Container)<{ isOpen?: boolean; isInverted?: boolean }>`\n top: calc(${nav.desktop} - 1px);\n display: none;\n flex-direction: column;\n overflow: hidden;\n align-items: flex-end;\n justify-content: center;\n background-color: ${props => (props.isInverted ? colors.dark : colors.white)};\n\n height: ${props => (props.isOpen ? `calc(0.75 * ${nav.desktop})` : \"0;\")};\n transition: height 0.1s;\n\n @media (min-width: ${bp.desktopMin}) {\n display: flex;\n }\n`\n\nconst DesktopButtons = styled.div<{ isInverted?: boolean }>`\n display: flex;\n align-items: center;\n\n > * {\n position: relative;\n\n &:before {\n content: \"\";\n display: block;\n position: absolute;\n left: 0;\n top: 23%;\n bottom: 23%;\n width: 1px;\n background-color: ${props =>\n props.isInverted ? colors.grayLight10 : hexToRgba(colors.black, 0.12)};\n }\n\n &:first-child:before {\n display: none;\n }\n }\n\n button {\n font-size: inherit;\n font-family: inherit;\n }\n`\n\nconst DesktopMenuDivider = styled.div<{ isInverted?: boolean }>`\n position: absolute;\n top: 0;\n left: ${padding.desktop};\n right: ${padding.desktop};\n height: 2px;\n background-color: ${props => (props.isInverted ? colors.grayLight10 : colors.gray10)};\n`\n\nconst MenuButton = styled(Button)`\n font-weight: 500;\n height: 2.5em;\n line-height: 2.5em;\n padding: 0 1.25em;\n font-weight: 700;\n\n @media (min-width: ${bp.desktopMin}) {\n border: none;\n font-weight: 500;\n }\n`\n\nconst StyledOrderButton = styled(Button)`\n font-weight: 700;\n font-size: 1rem;\n padding: 0;\n\n @media (min-width: ${bp.desktopMin}) {\n font-size: 0.875rem;\n padding: 0.7em 1.25em;\n }\n`\n\nconst DownloadLinks = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n justify-content: space-between;\n @media (min-width: ${bp.desktopMin}) {\n flex-direction: row;\n }\n button {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n @media (min-width: ${bp.desktopMin}) {\n margin-top: 40px;\n margin-bottom: 40px;\n }\n }\n`\n\nconst ModalDescription = styled.div`\n margin-bottom: 1rem;\n p {\n color: ${colors.black};\n margin-bottom: 0;\n }\n`\n\nconst ModalNextSteps = styled.div`\n p {\n margin: 0;\n a {\n color: ${colors.black};\n border-bottom: 1px solid ${colors.black};\n padding-bottom: 1px;\n }\n }\n`\n\nconst Nav = ({ activeTab, isInverted, data }: NavProps) => {\n const locale = useContext(LocaleContext)\n const { navigationData } = data\n const navigation = navigationData.nodes.find(item => item.node_locale === locale)\n const langaugeSelectorContent = (navigationData?.nodes.find(\n item => item.languageModalSection\n ) as ContentfulNavigation)?.languageModalSection\n const currencySelectorContent = (navigationData?.nodes.find(\n item => item.currencyModalSection\n ) as ContentfulNavigation)?.currencyModalSection\n const downloadModal = navigation?.downloadModalSection\n const [isOnTop, setIsOnTop] = useState(true)\n const [isOpen, setIsOpen] = useState(false)\n const [isDownloadModalOpen, setDownloadModalOpen] = useState(false)\n\n useScrollPosition(\n ({ currPos }) => {\n setIsOnTop(currPos.y === 0)\n },\n undefined,\n undefined,\n true,\n 50\n )\n\n const toDownload = () => {\n const isAndroid: boolean = /(android)/i.test(navigator.userAgent) && !window.MSStream\n const isIos: boolean = /iPad|iPhone/.test(navigator.userAgent) && !window.MSStream\n if (isAndroid) {\n return window.location.assign(\n \"https://play.google.com/store/apps/details?id=com.hmdglobal.app.hydra\"\n )\n } else if (isIos) {\n return window.location.assign(\n \"https://apps.apple.com/us/app/hmd-connect/id1508102559?ls=1itms-apps://itunes.apple.com/app/apple-store/id1508102559?mt=8\"\n )\n } else {\n return setDownloadModalOpen(true)\n }\n }\n\n const links = navigation?.links?.map(item =>\n item?.url?.startsWith(\"http\") ? (\n \n
{item?.heading}
\n
\n ) : (\n setIsOpen(false)}\n >\n
{item?.heading}
\n \n )\n )\n\n const SignInButton = ({ isMobile }: ChangesOnMobile) => {\n const props = {\n onClick: () => window.location.assign(`${navigation?.signInLink?.url}`),\n \"data-gtm-cta\": (navigation?.signInLink?.gtm || \"\").toString(),\n }\n\n return isMobile ? (\n \n
{navigation?.signInLink?.heading}
\n
\n ) : (\n \n {navigation?.signInLink?.heading}\n \n \n )\n }\n\n const DownloadButton = ({ isMobile }: ChangesOnMobile) => (\n toDownload()}\n data-gtm-cta={navigation?.downloadButton?.gtm!}\n >\n {navigation?.downloadButton?.heading!}\n {!isMobile && }\n \n )\n\n const OrderButton = () => (\n navigate(createLocalizedPath(locale, navigation?.getSimButton?.url!))}\n >\n {navigation?.getSimButton?.heading}\n \n )\n\n const DesktopMenuBar = ({ isFull }: DesktopMenuBarProps) => (\n setIsOpen(!isOpen)}\n data-gtm-cta=\"mobile-menu-open\"\n >\n {isFull ? (\n \n ) : (\n \n )}\n \n )\n\n const MobileMenuBar = ({ isFull }: MobileMenuBarProps) => (\n <>\n \n setIsOpen(!isOpen)}\n data-gtm-cta=\"mobile-menu-open\"\n >\n {isFull ? (\n \n ) : (\n \n )}\n \n \n \n \n \n {!isFull && }\n \n \n \n \n )\n\n const DownloadModal = () => {\n const modalHeading = (downloadModal?.heading as ContentfulHeading).heading!\n const modalDescription = downloadModal?.description as ParagraphWithRemarkFragment\n const modalSectionFields = downloadModal?.contentfulfields\n const modalSectionFieldsLength = modalSectionFields!.length\n const nextSteps =\n modalSectionFields &&\n (modalSectionFields[modalSectionFieldsLength - 1] as ParagraphWithRemarkFragment)\n\n return (\n setDownloadModalOpen(false)}\n header={modalHeading}\n modalStatus={ModalStatus.DOWNLOAD}\n >\n \n \n \n \n {(downloadModal?.contentfulfields as ContentfulLink[])?.map(item => (\n <>\n {item.preset === \"google-play\" && (\n \n )}\n {item.preset === \"app-store\" && (\n \n )}\n {item.preset === \"web-app\" && (\n \n )}\n \n ))}\n \n {nextSteps && }\n \n )\n }\n\n return (\n <>\n \n \n \n \n \n {links}\n \n \n \n \n \n \n \n \n {langaugeSelectorContent && currencySelectorContent && (\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n {isOpen && }\n \n \n \n \n {langaugeSelectorContent && currencySelectorContent && (\n \n \n \n \n )}\n \n {links}\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default (props: Props) => (\n