{"version":3,"file":"js/16061-92aea861d833e172b112.js","mappings":"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","sources":["webpack://StravaModern/../src/Element.tsx","webpack://StravaModern/../src/Filter.ts","webpack://StravaModern/../src/constants.ts","webpack://StravaModern/../src/StyleFilter.ts","webpack://StravaModern/../src/Parser.ts","webpack://StravaModern/../src/Interweave.tsx","webpack://StravaModern/../src/Markup.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/AccountAuthButton/AccountAuthButton.module.scss?771e","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/AccountAuthButton/AccountAuthButton.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/DisclaimerText/DisclaimerText.module.scss?86ce","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/DisclaimerText/DisclaimerText.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://StravaModern/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/index.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/lodash-es/isNil.js","webpack://StravaModern/./node_modules/@strava/ui/Input/Input.module.scss?50e4","webpack://StravaModern/./node_modules/@strava/ui/Input/Input.tsx","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsVisibleDisabledNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsVisibleNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/Input/PasswordInput.module.scss?7172","webpack://StravaModern/./node_modules/@strava/ui/Input/PasswordInput.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/RegistrationInput/RegistrationInput.module.scss?70f3","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/RegistrationInput/RegistrationInput.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/EmailRegistrationForm.module.scss?ddf9","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/EmailRegistrationForm.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/email-registration-api.ts","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/OrDivider/OrDivider.module.scss?37b1","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/OrDivider/OrDivider.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/constants.ts","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/utils.ts","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelCircleHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCheckCircleOnMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationWarningHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationInformationNormalMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/react-hooks/src/use-interval/useInterval.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.module.scss?7e0f","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.tsx","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/react-hooks/src/use-queue/useQueue.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/constants/src/appConstants.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/utils/src/utils.ts","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContext.tsx","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContainer.module.scss?1a42","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContainer.tsx","webpack://StravaModern/./node_modules/@strava/ui/Spinner/Spinner.module.scss?87e9","webpack://StravaModern/./node_modules/@strava/ui/Spinner/Spinner.tsx","webpack://StravaModern/./node_modules/@strava/ui/VisuallyHidden/VisuallyHidden.tsx","webpack://StravaModern/./node_modules/email-validator/index.js","webpack://StravaModern/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"],"sourcesContent":[null,null,null,null,null,null,null,"// extracted by mini-css-extract-plugin\nexport default {\"authButton\":\"AccountAuthButton--authButton--yFnD+\",\"placeholder\":\"AccountAuthButton--placeholder--JAgxq\",\"facebookBlue\":\"AccountAuthButton--facebookBlue--eWNdO\"};","import React, { ReactNode } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport Button from '@strava/ui/Button';\nimport styles from './AccountAuthButton.module.scss';\n\nconst AppleLogo = React.lazy(() => import('@strava/icons/LogosAppleSmall'));\nconst FacebookLogo = React.lazy(\n () => import('@strava/icons/LogosFacebookSmall')\n);\nconst GoogleLogo = React.lazy(() => import('@strava/icons/LogosGoogleSmall'));\nconst EmailLogo = React.lazy(\n () => import('@strava/icons/ActionsEmailNormalSmall')\n);\n\nexport type AuthButtonVariantTypes =\n | 'apple'\n | 'email'\n | 'facebook'\n | 'facebook-blue' // ironically corresponds to the lighter version of the icon\n | 'google';\n\ntype AccountAuthButtonProps = {\n children: ReactNode;\n className?: string;\n variant?: AuthButtonVariantTypes;\n onClick?: () => void;\n};\n\nconst AccountAuthButton = ({\n children,\n onClick,\n variant,\n className,\n ...options\n}: AccountAuthButtonProps) => {\n return (\n \n }>\n {variant === 'apple' && }\n {variant === 'facebook' && }\n {variant === 'facebook-blue' && }\n {variant === 'google' && }\n {variant === 'email' && }\n \n {children}\n \n );\n};\n\nexport default AccountAuthButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"disclaimerText\":\"DisclaimerText--disclaimerText--oXzH1\"};","import React from 'react';\nimport { Markup } from 'interweave';\nimport { useStravaTranslations } from '@strava/container-context';\nimport clsx from '@strava/ui/clsx/clsx';\n\nimport styles from './DisclaimerText.module.scss';\n\ntype DisclaimerTextProps = {\n className?: string;\n};\n\nconst DisclaimerText = ({ className }: DisclaimerTextProps) => {\n const { t } = useStravaTranslations();\n\n const legalTerms = t(\n 'authentication_ui.disclaimer_text.by_clicking_cta_html',\n { terms_path: '/legal/terms' }\n );\n\n const legalPrivacy = t(\n 'authentication_ui.disclaimer_text.view_privacy_policy_html',\n { privacy_path: '/legal/privacy' }\n );\n\n return (\n

\n {' '}\n \n

\n );\n};\n\nexport default DisclaimerText;\n","var _excluded = [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\", \"isolated\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n function ReCAPTCHA() {\n var _this;\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto = ReCAPTCHA.prototype;\n _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n if (this.props.grecaptcha) {\n if (this.props.grecaptcha.enterprise) {\n return this.props.grecaptcha.enterprise[fnName];\n }\n return this.props.grecaptcha[fnName];\n }\n return null;\n };\n _proto.getValue = function getValue() {\n var getResponse = this.getCaptchaFunction(\"getResponse\");\n if (getResponse && this._widgetId !== undefined) {\n return getResponse(this._widgetId);\n }\n return null;\n };\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n return null;\n };\n _proto.execute = function execute() {\n var execute = this.getCaptchaFunction(\"execute\");\n if (execute && this._widgetId !== undefined) {\n return execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n _this2.execute();\n });\n };\n _proto.reset = function reset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter && this._widgetId !== undefined) {\n resetter(this._widgetId);\n }\n };\n _proto.forceReset = function forceReset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter) {\n resetter();\n }\n };\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n _proto.explicitRender = function explicitRender() {\n var render = this.getCaptchaFunction(\"render\");\n if (render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge,\n isolated: this.props.isolated\n });\n this.captcha.appendChild(wrapper);\n }\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n isolated = _this$props.isolated,\n childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n /* eslint-enable no-unused-vars */\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"]),\n isolated: PropTypes.bool\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n if (dynamicOptions.enterprise) {\n return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n }\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName,\n attributes: getOptions().nonce ? {\n nonce: getOptions().nonce\n } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"Input--input--myCs3\"};","import React, { forwardRef } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport styles from './Input.module.scss';\n\ntype InputProps = React.ComponentPropsWithoutRef<'input'>;\n\nexport const Input = forwardRef(\n ({ className, ...props }, ref) => (\n \n )\n);\n\nexport default Input;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsVisibleDisabledNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgActionsVisibleDisabledNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsVisibleDisabledNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsVisibleDisabledNormalSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsVisibleNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgActionsVisibleNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsVisibleNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsVisibleNormalSmall;\n","// extracted by mini-css-extract-plugin\nexport default {\"passwordInput\":\"Input--passwordInput--ARtRG\",\"showPasswordButton\":\"Input--showPasswordButton--9Ubgm\"};","import React, { forwardRef, useState } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport ActionsVisibleDisabledNormalSmall from '@strava/icons/ActionsVisibleDisabledNormalSmall';\nimport ActionsVisibleNormalSmall from '@strava/icons/ActionsVisibleNormalSmall';\nimport VisuallyHidden from '../VisuallyHidden';\nimport Input from '.';\n\nimport styles from './PasswordInput.module.scss';\n\nexport type PasswordInputProps = React.ComponentPropsWithoutRef<'input'> & {\n showPasswordText: string; // translated text for accessibility. Should inform users that clicking show password button will display the password on the screen\n hidePasswordText: string;\n};\n\nconst PasswordInput = forwardRef(\n ({ showPasswordText, hidePasswordText, className, ...props }, ref) => {\n const [passwordIsVisible, setPasswordIsVisible] = useState(false);\n\n return (\n
\n \n setPasswordIsVisible((prev) => !prev)}\n className={styles.showPasswordButton}\n type=\"button\"\n role=\"switch\"\n aria-checked={passwordIsVisible}\n title={passwordIsVisible ? hidePasswordText : showPasswordText}\n >\n {passwordIsVisible ? (\n \n ) : (\n \n )}\n \n {passwordIsVisible ? hidePasswordText : showPasswordText}\n \n \n
\n );\n }\n);\n\nexport default PasswordInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"RegistrationInput--input--AQh-V\",\"label\":\"RegistrationInput--label--0tXB5\",\"light\":\"RegistrationInput--light--xymPQ\",\"textInput\":\"RegistrationInput--textInput--zLJDS\",\"message\":\"RegistrationInput--message--zQeRu\",\"error\":\"RegistrationInput--error--40No1\"};","import React, { forwardRef } from 'react';\nimport Input, { PasswordInput } from '@strava/ui/Input';\nimport { ThemeTypes } from '@strava/authentication-ui';\nimport clsx from '@strava/ui/clsx';\nimport styles from './RegistrationInput.module.scss';\n\ntype RegistrationInputProps = React.ComponentPropsWithoutRef<'input'> &\n (\n | {\n // type just has to not be 'password' or string for the conditional to work\n type: 'email' | 'text';\n hidePasswordText?: string;\n showPasswordText?: string;\n }\n | {\n type: 'password';\n hidePasswordText: string;\n showPasswordText: string;\n }\n ) & {\n label: string;\n inputMessage?: string | null;\n errorMessage?: string | null;\n errorMessageTestId?: string;\n theme?: ThemeTypes;\n };\n\nexport const RegistrationInput = forwardRef<\n HTMLInputElement,\n RegistrationInputProps\n>(\n (\n {\n label,\n id,\n type,\n inputMessage,\n errorMessage,\n errorMessageTestId,\n hidePasswordText,\n showPasswordText,\n theme = 'dark',\n ...props\n },\n ref\n ) => (\n
\n \n {type === 'password' ? (\n \n ) : (\n \n )}\n {inputMessage && !errorMessage && (\n

{inputMessage}

\n )}\n {errorMessage && (\n

\n {errorMessage}\n

\n )}\n
\n )\n);\n\nexport default RegistrationInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"emailCaption\":\"EmailRegistrationForm--emailCaption--Ccjzm\",\"submitButton\":\"EmailRegistrationForm--submitButton--4ptar\"};","import React, { useState, useRef } from 'react';\nimport Button from '@strava/ui/Button';\nimport * as EmailValidator from 'email-validator';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { isNil } from 'lodash-es';\nimport Spinner from '@strava/ui/Spinner';\nimport { AlertStatus, useAlertContext } from '@strava/ui/Alert';\nimport {\n elemAttrForAnalytics,\n EMAIL,\n ThemeTypes\n} from '@strava/authentication-ui';\nimport RegistrationInput from '../RegistrationInput';\nimport {\n submitFormData,\n isAlreadyRegisteredEmail\n} from './email-registration-api';\n\nimport {\n useStravaErrorLogging,\n useStravaTranslations\n} from '@strava/container-context';\n\nimport styles from './EmailRegistrationForm.module.scss';\n\nconst i18nPrefix = 'authentication_ui.email_registration_form';\n\nexport const EMAIL_REGISTRATION_FORM_ALERT_ID = 'email-registration-form-alert';\n\n// these props are passed into the parent component from the active\nexport interface EmailRegistrationFormProps {\n reCaptchaSiteKey: string;\n clubId?: number;\n isPremium: boolean;\n challengeId?: number;\n autoJoinChallenge?: boolean;\n honeyPot: string;\n plan?: string;\n formAuthToken?: string;\n}\n\ntype FormInputTypes = {\n email: string;\n password: string;\n honeyPot: string;\n};\n\ntype EmailValidationStateTypes = {\n message: string;\n isExistingEmail: boolean;\n isValidEmail: boolean;\n};\n\nexport type AnalyticsFieldsTypes = {\n action: string;\n element?: string;\n properties?: Record;\n};\n\nexport type AlertConfigTypes = {\n className?: string;\n contentPosition?: 'left' | 'center' | 'right';\n};\n\nconst EmailRegistrationForm = ({\n authorizationUrl,\n reCaptchaSiteKey,\n honeyPot,\n isPremium,\n clubId,\n plan,\n challengeId,\n autoJoinChallenge,\n formAuthToken,\n track,\n className,\n theme = 'dark',\n idPrefix,\n alertConfig,\n isInView = true\n}: EmailRegistrationFormProps & {\n // these props are passed in from the parent component\n authorizationUrl: string; // this url generally still comes from active\n track: (fields: AnalyticsFieldsTypes) => void;\n className?: string;\n idPrefix: string;\n theme?: ThemeTypes;\n alertConfig?: AlertConfigTypes;\n isInView?: boolean;\n}) => {\n const [formInput, setFormInput] = useState({\n email: '',\n password: '',\n honeyPot: '' // if this field gets filled out, user is probably a bot\n });\n const [passwordErrorMsg, setPasswordErrMsg] = useState(null);\n const [emailValidationState, setEmailValidationState] =\n useState(null);\n const [isProcessing, setIsProcessing] = useState(false);\n\n const emailInput = useRef(null);\n const passwordInput = useRef(null);\n const recaptchaRef = useRef(null);\n\n const useRecaptcha = !!reCaptchaSiteKey && isInView;\n\n const { logError } = useStravaErrorLogging();\n const { t } = useStravaTranslations();\n const { showAlert, clearAlerts } = useAlertContext();\n\n const emailRegFormAlert = (content: React.ReactNode, id: string) => ({\n content,\n alertType: AlertStatus.ERROR,\n containerId: EMAIL_REGISTRATION_FORM_ALERT_ID,\n hideCloseButton: true,\n ...(alertConfig && { ...alertConfig }),\n id // to prevent showing duplicate error messages\n });\n\n const getRecaptchaToken = async () => {\n if (useRecaptcha) {\n return (await recaptchaRef?.current?.executeAsync()) ?? '';\n }\n return '';\n };\n\n const handleEmailFormSubmit = async () => {\n const recaptchaToken = await getRecaptchaToken();\n\n const element = elemAttrForAnalytics(EMAIL);\n const { email, password, honeyPot } = formInput;\n\n const formData = new FormData();\n formData.append('web_registration_form', 'true');\n formData.append('email', email);\n formData.append('password', password);\n formData.append('g-recaptcha-response', recaptchaToken);\n formData.append('checkbox_agreed_to_terms', 'on');\n formData.append(honeyPot, honeyPot);\n formData.append('plan', String(plan));\n formData.append('authenticity_token', String(formAuthToken));\n\n if (isPremium) {\n formData.append('premium', 'true');\n }\n if (!isNil(clubId)) {\n formData.append('club_id', String(clubId));\n }\n if (!isNil(challengeId)) {\n formData.append('challenge_id', String(challengeId));\n }\n if (!isNil(autoJoinChallenge)) {\n formData.append('auto_join_challenge', String(autoJoinChallenge));\n }\n\n try {\n const response = await submitFormData({\n formData,\n url: authorizationUrl,\n logError\n });\n\n if ('error' in response) {\n // join request failed server-side validations,\n // flash message is populated and shown if an error occurred\n showAlert(emailRegFormAlert(response.error, 'submitFormData error'));\n setIsProcessing(false); // let user try again\n } else {\n const { pathType, load } = response;\n track({\n action: 'redirect',\n element,\n properties: {\n path_type: pathType,\n redirect_url: load\n }\n });\n\n // navigate to onboarding flow if no errors were encountered\n window.location.href = load;\n }\n } catch (error) {\n logError(error);\n\n // generic \"something went wrong\" alert\n showAlert(\n emailRegFormAlert(\n t(`${i18nPrefix}.error_message`),\n 'submitFormData catch'\n )\n );\n setIsProcessing(false); // let user try again\n }\n };\n\n /**\n * Validate athlete email -\n * 1 - value should be provided (required)\n * 2 - valid email address should be entered (eg. should have @)\n * 3 - email address should not be already registered on strava\n *\n * @returns {Object} result\n * @returns {boolean} result.isValidEmail - true when the email has passed all validation criteria\n * @returns {string} result.isExistingEmail - true when the email is already registered on strava\n * @returns {string} result.message - string message to display to athlete when an error occurs\n */\n const validateEmail = async () => {\n const { email } = formInput;\n if (emailValidationState) {\n // avoid validating email if there is already an error that is not addressed by the athlete yet\n // this prevents making an unnecessary api call to check if email is already registered (see #isAlreadyRegisteredEmail)\n return emailValidationState;\n } else {\n let isValidEmail = true;\n let isExistingEmail = false;\n let message = null;\n\n if (!(email && email.length > 0)) {\n message = t(`${i18nPrefix}.email_required`);\n isValidEmail = false;\n } else if (!EmailValidator.validate(email)) {\n message = t(`${i18nPrefix}.email_invalid`);\n isValidEmail = false;\n } else {\n try {\n const isUniqueEmail = await isAlreadyRegisteredEmail(email);\n if (!isUniqueEmail) {\n message = t(`${i18nPrefix}.email_taken`);\n isExistingEmail = true;\n }\n } catch (error) {\n logError(error);\n isValidEmail = false;\n\n // generic \"something went wrong\" alert\n showAlert(\n emailRegFormAlert(\n t(`${i18nPrefix}.error_message`),\n 'isAlreadyRegisteredEmail catch'\n )\n );\n }\n }\n setEmailValidationState({ isExistingEmail, isValidEmail, message });\n return { message, isValidEmail, isExistingEmail };\n }\n };\n\n /**\n * Validates athlete password\n * - value should be provided (required)\n * - max length of 40 chars\n * - min length of 8 chars\n *\n * @returns {boolean} result true when the password is valid\n */\n const validatePassword = () => {\n const { password } = formInput;\n\n if (!passwordErrorMsg) {\n // avoid validating email if there is already an error that is not addressed by the athlete yet\n let isValidPassword = true;\n let passwordValidationMsg = null;\n if (!(password && password.length > 0)) {\n passwordValidationMsg = t(`${i18nPrefix}.password_required`);\n isValidPassword = false;\n } else if (password.length > 40) {\n passwordValidationMsg = t(`${i18nPrefix}.password_max_length`);\n isValidPassword = false;\n } else if (password.length < 8) {\n passwordValidationMsg = t(`${i18nPrefix}.password_min_length`);\n isValidPassword = false;\n }\n setPasswordErrMsg(passwordValidationMsg);\n return isValidPassword;\n }\n return false;\n };\n\n const validateForm = async () => {\n return {\n ...(await validateEmail()),\n isValidPassword: validatePassword()\n };\n };\n\n /**\n * Actions to perform when a user hits the \"sign up\" button (account registration using email).\n * - validate user input (email and password)\n * - submit form if input is valid\n * - focus on invalid inputs if input is invalid\n */\n const handleFormSubmission = async (\n event: React.FormEvent\n ) => {\n event.preventDefault();\n setIsProcessing(true); // prevent impatient submit clicks\n\n const { isValidEmail, isValidPassword, isExistingEmail } =\n await validateForm();\n\n track({\n action: 'click',\n element: 'signup',\n properties: {\n is_valid_email: isValidEmail,\n is_valid_password: isValidPassword,\n is_existing_email: isExistingEmail\n }\n });\n\n if (isValidEmail && !isExistingEmail && isValidPassword) {\n handleEmailFormSubmit();\n } else {\n setIsProcessing(false); // let user try again\n\n if (recaptchaRef.current) {\n recaptchaRef.current.reset();\n }\n if (!isValidPassword) {\n passwordInput?.current?.focus();\n }\n // prioritize focus on email input if both password and email inputs are invalid\n if (!isValidEmail || isExistingEmail) {\n emailInput?.current?.focus();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent) => {\n const { target } = event;\n const { name } = target;\n\n // save honeyPot input as 'honeyPot' instead of whatever the value of honeyPot is\n // (server determines honeyPot value)\n setFormInput((prev) => {\n return { ...prev, [name === honeyPot ? 'honeyPot' : name]: target.value };\n });\n\n // clear input specific errors\n if (name === 'email' && emailValidationState?.message) {\n setEmailValidationState(null);\n } else if (passwordErrorMsg) {\n setPasswordErrMsg(null);\n }\n // clear alerts on all input changes\n clearAlerts(EMAIL_REGISTRATION_FORM_ALERT_ID);\n };\n\n return (\n \n \n\n \n\n {/**\n * Honeypot input is hidden to real users but visible to bots.\n * It should be a value that seems legit to bots but one we don't actually use/care about.\n * If the input is populated, we know it's a bot. */}\n
\n \n \n
\n\n {useRecaptcha && (\n \n )}\n\n \n {isProcessing ? : t(`${i18nPrefix}.sign_up`)}\n \n \n );\n};\n\nexport default EmailRegistrationForm;\n","import apiClient from '@strava/api/lib/axios-client';\n\ntype SubmitFormDataSuccessResponse = {\n success: boolean;\n pathType: string;\n load: string;\n};\n\ntype SubmitFormDataErrorResponse = {\n error: string;\n};\n\ntype SubmitFormDataResponseType =\n | SubmitFormDataSuccessResponse\n | SubmitFormDataErrorResponse;\n\nexport const submitFormData = async ({\n formData,\n url,\n logError\n}: {\n formData: FormData;\n url: string;\n logError: (s: string | unknown) => void;\n}): Promise => {\n return new Promise((resolve, reject) => {\n apiClient({\n options: {\n headers: { 'Content-Type': 'multipart/form-data' }\n }\n })\n .post(url, formData)\n .then((response: { data: SubmitFormDataResponseType }) => {\n resolve(response.data);\n })\n .catch((error: unknown) => {\n logError(error);\n reject(error);\n });\n });\n};\n\nexport const isAlreadyRegisteredEmail = async (email: string) => {\n return new Promise((resolve, reject) => {\n apiClient()\n .get('/athletes/email_unique', { params: { email } })\n .then(({ data }: { data: boolean }) => {\n resolve(data);\n })\n .catch((error: unknown) => {\n reject(error);\n });\n });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"orDivider\":\"OrDivider--orDivider--X6SS0\",\"or\":\"OrDivider--or--rdcMJ\",\"light\":\"OrDivider--light--BPhFE\",\"line\":\"OrDivider--line--LX6dD\"};","import React from 'react';\nimport clsx from '@strava/ui/clsx';\n\nimport styles from './OrDivider.module.scss';\nimport { ThemeTypes } from '..';\n\ninterface OrDividerProps {\n text: string;\n theme?: ThemeTypes;\n className?: string;\n}\n\nexport const OrDivider = ({\n text,\n theme = 'dark',\n className\n}: OrDividerProps) => {\n return (\n
\n
\n {text}\n
\n
\n );\n};\n\nexport default OrDivider;\n","// authentication options\nexport const APPLE = 'apple';\nexport const EMAIL = 'email';\nexport const FACEBOOK = 'facebook';\nexport const GOOGLE = 'google';\n\n// session storage key(s)\nexport const HIDE_TIME_DELAY_MODAL = 'hide-time-delay-modal';\n","import { APPLE, EMAIL, FACEBOOK, GOOGLE } from './constants';\n\ntype ElementTypes =\n | typeof APPLE\n | typeof EMAIL\n | typeof FACEBOOK\n | typeof GOOGLE;\n\nexport const elemAttrForAnalytics = (option: ElementTypes) => {\n switch (option) {\n case FACEBOOK:\n return 'facebook_signup';\n case APPLE:\n return 'apple_signup';\n case EMAIL:\n return 'email_signup';\n case GOOGLE:\n return 'google_signup';\n default:\n return 'signup';\n }\n};\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelCircleHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelCircleHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelCircleHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelCircleHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCheckCircleOnMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCheckCircleOnMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCheckCircleOnMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCheckCircleOnMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationWarningHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationWarningHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationWarningHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationWarningHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationInformationNormalMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgNavigationInformationNormalMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationInformationNormalMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationInformationNormalMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelNormalSmall;\n","import { useRef, useEffect } from 'react';\n\n/**\n * Declarative setInterval React hook.\n *\n * `useInterval` uses the same API as setInterval, but the arguments of this hook is \"dynamic\".\n * Set your `callback` function as the first argument and the `delay` as the second argument.\n * When passing `null` or `undefined` to the `delay` arg then it will stop/pause the interval.\n *\n * For implementation details explanation, why to use useInterval hook, and an example see Dan Abramov's blog post\n * 👀: https://overreacted.io/making-setinterval-declarative-with-react-hooks/\n * */\nexport const useInterval = (callback: Function, delay: number | null) => {\n const savedCallback = useRef(null);\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n // If no delay then pause/stop the interval.\n // Delay of 0 is valid delay.\n if ((!delay && delay !== 0) || delay < 0) {\n return;\n }\n\n const id = setInterval(() => savedCallback.current?.(), delay);\n // eslint-disable-next-line consistent-return\n return () => clearInterval(id);\n }, [delay]);\n};\n\nexport default useInterval;\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"Alert--alert--mHJG0\",\"alertInner\":\"Alert--alertInner--Cohht\",\"hasError\":\"Alert--hasError--6H8nL\",\"buttonError\":\"Alert--buttonError--JNCju\",\"hasWarning\":\"Alert--hasWarning--XMcB+\",\"buttonWarning\":\"Alert--buttonWarning--B8+01\",\"hasSuccess\":\"Alert--hasSuccess--HEVyx\",\"buttonSuccess\":\"Alert--buttonSuccess--8cDF1\",\"hasInfo\":\"Alert--hasInfo--cIXeI\",\"buttonInfo\":\"Alert--buttonInfo--3W2YL\",\"alertContent\":\"Alert--alertContent--Ady-v\",\"alignLeft\":\"Alert--alignLeft--TWc3-\",\"alignCenter\":\"Alert--alignCenter--Wjvd+\",\"alignRight\":\"Alert--alignRight--GltzN\",\"indicatorIcon\":\"Alert--indicatorIcon--mcHuS\",\"closeButtonContainer\":\"Alert--closeButtonContainer--0bGld\",\"button\":\"Alert--button--j9wSm\",\"autoDismissBar\":\"Alert--autoDismissBar--mBh+B\",\"countdown\":\"Alert--countdown--4hdDW\",\"fadeIn\":\"Alert--fadeIn--m0c6K\",\"fadeOut\":\"Alert--fadeOut--V2zHS\",\"enterFadeOut\":\"Alert--enterFadeOut--ZHCGw\",\"newKudo\":\"Alert--newKudo--xwJ9a\"};","import React, { ComponentPropsWithoutRef, ReactNode, useState } from 'react';\n// import ReachAlert from '@reach/alert';\nimport {\n ActionsCancelCircleHighlightedMedium as ErrorIcon,\n ActionsCheckCircleOnMedium as SuccessIcon,\n NavigationWarningHighlightedMedium as WarningIcon,\n NavigationInformationNormalMedium as InfoIcon,\n ActionsCancelNormalSmall as CancelIcon\n} from '@strava/icons';\nimport { useInterval } from '@strava/react-hooks';\nimport { isTest } from '@strava/utils';\nimport clsx from '../clsx';\nimport VisuallyHidden from '../VisuallyHidden';\nimport styles from './Alert.module.scss';\n\nexport const AlertStatus = {\n ERROR: 'error',\n SUCCESS: 'success',\n WARNING: 'warning',\n INFO: 'info'\n} as const;\n\nexport type AlertStatusType = (typeof AlertStatus)[keyof typeof AlertStatus];\n\nexport type AlertStyleType =\n | 'hasError'\n | 'hasSuccess'\n | 'hasWarning'\n | 'hasInfo';\nexport type AlertButtonStyleType =\n | 'buttonError'\n | 'buttonSuccess'\n | 'buttonWarning'\n | 'buttonInfo';\n\nconst ALERT_DELAY = 8000;\n\nconst getAlertDetails = ({\n type,\n iconSize\n}: {\n type: AlertStatusType;\n iconSize: number;\n}): {\n indicatorIcon: ReactNode;\n messageType: AlertStatusType;\n alertStyle: AlertStyleType;\n buttonStyle: AlertButtonStyleType;\n} =>\n ({\n [AlertStatus.ERROR]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.ERROR,\n alertStyle: 'hasError' as const,\n buttonStyle: 'buttonError' as const\n },\n [AlertStatus.SUCCESS]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.SUCCESS,\n alertStyle: 'hasSuccess' as const,\n buttonStyle: 'buttonSuccess' as const\n },\n [AlertStatus.WARNING]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.WARNING,\n alertStyle: 'hasWarning' as const,\n buttonStyle: 'buttonWarning' as const\n },\n [AlertStatus.INFO]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.INFO,\n alertStyle: 'hasInfo' as const,\n buttonStyle: 'buttonInfo' as const\n }\n }[type]);\n\nconst fadeStyles = {\n enter: isTest() ? '' : 'fadeIn',\n exit: isTest() ? '' : 'fadeOut'\n};\n\nexport interface AlertProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactNode;\n alertType?: AlertStatusType;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n className?: string;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport const Alert = ({\n children,\n className,\n alertType = AlertStatus.ERROR,\n autoDismiss = false,\n autoDismissDelay = ALERT_DELAY,\n contentPosition = 'left',\n hideCloseButton = false,\n hideIcon = true,\n iconSize = 32,\n onClose = () => {},\n ...options\n}: AlertProps) => {\n const { indicatorIcon, messageType, alertStyle, buttonStyle } =\n getAlertDetails({ type: alertType, iconSize });\n const [fadeStyle, setFadeStyle] = useState(fadeStyles.enter);\n\n const handleOnClose = async () => {\n setFadeStyle(fadeStyles.exit);\n // eslint-disable-next-line no-unused-expressions\n !isTest() && (await new Promise((resolve) => setTimeout(resolve, 0)));\n onClose();\n };\n\n useInterval(\n () => {\n handleOnClose();\n },\n autoDismiss ? autoDismissDelay : null\n );\n\n return (\n \n
\n {/* Icon */}\n {!hideIcon && (\n
{indicatorIcon}
\n )}\n\n {/* Content */}\n \n {messageType}: \n
{children}
\n
\n\n {/* Close Button */}\n {!hideCloseButton && (\n
\n \n \n \n
\n )}\n
\n\n {/* Auto Dismiss Progress */}\n {autoDismiss && (\n \n
\n
\n )}\n
\n );\n};\n\nexport default Alert;\n","import { useState, useCallback } from 'react';\n\ninterface QueueOptions {\n initialValues?: T[];\n}\n\nexport interface QueueState {\n queue: T[];\n length: number;\n enqueue: (...items: T[]) => void;\n dequeue: () => void;\n updateQueue: (fn: (current: T[]) => T[]) => void;\n clearQueue: () => void;\n peek: () => T | undefined;\n}\n\nexport const useQueue = ({\n initialValues = []\n}: QueueOptions = {}): QueueState => {\n const [queue, setState] = useState(initialValues);\n\n /**\n * Enqueue; Adds item to queue.\n */\n const enqueue = useCallback((...items: T[]) => {\n setState((current) => [...current, ...items]);\n }, []);\n\n /**\n * Dequeue; Removes first item in queue.\n */\n const dequeue = useCallback(() => {\n // Immutable solution to remove first element in array.\n setState((current) => current.slice(1));\n }, []);\n\n /**\n * Update function to allow for more granular control of updating the queue.\n * The `update` function accepts a callback fn where the first arg is the\n * current queue state that we can then manipulate. See tests for examples.\n * */\n const updateQueue = useCallback(\n (fn: (current: T[]) => T[]) => setState((current) => fn([...current])),\n []\n );\n\n /**\n * Remove all items from queue.\n */\n const clearQueue = useCallback(() => setState(() => []), []);\n\n /**\n * Returns the first item in the queue.\n */\n const peek = useCallback(() => {\n if (queue.length > 0) {\n return queue[0];\n }\n\n return undefined;\n }, [queue]);\n\n return {\n queue,\n length: queue.length,\n enqueue,\n dequeue,\n updateQueue,\n clearQueue,\n peek\n };\n};\n\nexport default useQueue;\n","export const YOUNGEST_AGE_ON_PLATFORM = 13;\n\nexport const YOUNGEST_AGE_FOR_HEALTH_AND_PROMO = 16;\n\nexport const GENDER = Object.freeze({\n man: 'man',\n woman: 'woman',\n preferNotSay: 'prefer_not_say',\n nonBinary: 'nonbinary'\n});\n\nexport const LOCALE = Object.freeze({\n deDE: 'de-DE',\n enUS: 'en-US',\n enGB: 'en-GB',\n esES: 'es-ES',\n es419: 'es-419',\n frFR: 'fr-FR',\n itIT: 'it-IT',\n jaJP: 'ja-JP',\n koKR: 'ko-KR',\n nlNL: 'nl-NL',\n ptBR: 'pt-BR',\n ptPT: 'pt-PT',\n ruRU: 'ru-RU',\n zhCN: 'zh-CN',\n zhTW: 'zh-TW'\n});\n\n// If a language has more than one locale, the first in the list is the default\nexport const LANGUAGE_LOCALES = Object.freeze({\n de: [LOCALE.deDE],\n // en is intentionally omitted here since English is the global default\n es: [LOCALE.esES, LOCALE.es419],\n fr: [LOCALE.frFR],\n it: [LOCALE.itIT],\n ja: [LOCALE.jaJP],\n ko: [LOCALE.koKR],\n nl: [LOCALE.nlNL],\n pt: [LOCALE.ptPT, LOCALE.ptBR],\n ru: [LOCALE.ruRU],\n zh: [LOCALE.zhCN, LOCALE.zhTW]\n});\n\nexport const EXPERIMENT_COHORTS = Object.freeze({\n control: 'control',\n variantA: 'variant-a',\n variantB: 'variant-b'\n});\n\nexport const MOBILE_OS = Object.freeze({\n android: 'android',\n iPhone: 'iphone',\n iPad: 'ipad'\n});\n\nexport const SUPPORTED_BROWSERS = Object.freeze({\n chrome: 'chrome',\n firefox: 'firefox',\n safari: 'safari'\n});\n\n// universal link paths from 'apple-app-site-association' file in active\nexport const APPLE_APP_LINK_PATHS = [\n '/dashboard',\n '/activities/*',\n '/athletes/*',\n '/segments/*',\n '/challenges/*',\n '/videos/*',\n '/routes/*',\n '/premium/*',\n '/settings/*',\n '/shop/*',\n '/athlete/*',\n '/clubs/*',\n '/summit/join',\n '/summit/perks',\n '/oauth/mobile/authorize'\n];\n\nexport const ATHLETES_VISIBILITY = Object.freeze({\n optedOut: 'opted_out' // Strava::Athletes::Visibility::OPTED_OUT\n});\n\nexport default {\n YOUNGEST_AGE_ON_PLATFORM,\n YOUNGEST_AGE_FOR_HEALTH_AND_PROMO,\n GENDER,\n LOCALE,\n EXPERIMENT_COHORTS,\n MOBILE_OS,\n SUPPORTED_BROWSERS,\n APPLE_APP_LINK_PATHS,\n ATHLETES_VISIBILITY\n};\n","import {\n MOBILE_OS,\n SUPPORTED_BROWSERS,\n APPLE_APP_LINK_PATHS\n} from '@strava/constants/src/appConstants';\nimport { isString } from 'lodash-es';\nimport camelCase from 'lodash-es/camelCase';\nimport snakeCase from 'lodash-es/snakeCase';\nimport isObject from 'lodash-es/isObject';\nimport { CamelCasedPropertiesDeep, SnakeCasedPropertiesDeep } from 'type-fest';\n\nexport const generateRandomId = () => Math.random().toString(36).substring(2);\n\n// Capitalizes all the words and replaces some characters in the string to create a nicer looking title.\n// eg. 'man from the boondocks' => 'Man From The Boondocks'\nexport const titleize = (sentence: string) => {\n return sentence\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n\nexport const displayName = (\n { firstName = '', lastName = '' },\n options = { forceAnonymize: false, maxLength: 100 }\n) => {\n const { maxLength, forceAnonymize } = options;\n const fullName = `${firstName} ${lastName}`;\n\n if (forceAnonymize || fullName.length > maxLength) {\n if (firstName.length > maxLength - 3) {\n return `${titleize(firstName.substring(0, maxLength - 4))}... ${lastName\n .charAt(0)\n .toUpperCase()}.`;\n }\n return `${titleize(firstName)} ${lastName.charAt(0).toUpperCase()}.`;\n }\n return fullName.trim();\n};\n\n/**\n * Checks to see if device is mobile\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {boolean} - true if the device is mobile\n */\nexport const isMobile = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n // ref - https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#mobile_tablet_or_desktop\n return userAgent.toLowerCase().includes('mobi');\n }\n return false;\n};\n\n/**\n * Determines the OS for mobile devices\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {(string|null)} - one of ['android', 'ipad', 'iphone'] or null for unknown\n */\nexport const getMobileOS = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n if (userAgent.includes('Android')) {\n return MOBILE_OS.android;\n }\n if (userAgent.includes('iPad')) {\n return MOBILE_OS.iPad;\n }\n if (userAgent.includes('iPhone')) {\n return MOBILE_OS.iPhone;\n }\n }\n return null;\n};\n\n/**\n * Determines, in a limited fashion, the browser according to the user agent.\n * NOTE: UAs are notoriously difficult to parse. This is meant as a bare-bones, noncomprehensive parser,\n * based on https://www.whatismybrowser.com/guides/the-latest-user-agent/.\n *\n * The order of conditionals is important, bc some Chrome & Firefox UAs include 'Safari', too.\n * Some Edge UAs may be recognized as Chrome for now, since they can include 'Chrome'. We don't\n * officially support Edge (yet?).\n *\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {(string|null)} - one of ['chrome', 'firefox', 'safari'] or null for unknown/unsupported browser\n */\nexport const getBrowser = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n if (userAgent.includes('Chrome') || userAgent.includes('CriOS')) {\n return SUPPORTED_BROWSERS.chrome;\n }\n if (userAgent.includes('Firefox') || userAgent.includes('FxiOS'))\n return SUPPORTED_BROWSERS.firefox;\n if (userAgent.includes('Safari')) {\n return SUPPORTED_BROWSERS.safari;\n }\n }\n\n return null;\n};\n\n/**\n * Universal links are determined by the paths described in `apple-app-site-association` in active.\n * @param {string} pathname - window.location.pathname or nextjs equivalent\n * @returns {boolean} - whether the pathname string matches\n */\nexport const isUniversalLinkPage = (pathname: string) => {\n if (isString(pathname)) {\n return APPLE_APP_LINK_PATHS.some((path: string) => {\n const pathWithoutAsterisk = path.replace('/*', '');\n return pathname.startsWith(pathWithoutAsterisk);\n });\n }\n return false;\n};\n\n// eg. given,\n// \"urls\": {\n// \"100\": \"https://photo_url_1\",\n// \"1800\": \"https://photo_url_2\"\n// }\n// returns https://photo_url_2\nexport const getPhotoWithMaxDimension = (\n photoUrlHash: Record\n) => {\n if (!isObject(photoUrlHash)) {\n return '';\n }\n const key = Object.keys(photoUrlHash).reduce((a, b) => (a > b ? a : b));\n return photoUrlHash[key];\n};\n\n/**\n * Immutably merges a payload into an item in an array of objects\n * @param {array} array - An array of objects\n * @param {string|number} id - The unique id of the item in the array to update\n * @param {object} payload - the value to merge into the matched item\n * @param {object} options\n * @param {string} [options.idName=id] - the key of the unique identifier\n * @param {bool} [options.upsert=false] - if true, will insert the payload into the array as a new item if no matching item is found\n * @return {array} - A copy of the original array with the matching item updated\n */\nexport function arrayUpdateItemById(\n array: T[],\n id: string | number,\n payload: Partial,\n { idName, upsert }: { idName?: keyof T; upsert?: boolean } = {}\n): T[] {\n let itemFound = false;\n const property = idName || ('id' as keyof T);\n const mappedArray = array.map((item) => {\n itemFound = itemFound || item[property] === id;\n return item[property] === id ? { ...item, ...payload } : item;\n });\n\n return itemFound || !upsert ? mappedArray : ([...array, payload] as T[]);\n}\n\n/**\n * Immutably removes an item from an array by index\n * @param {array} array\n * @param {number} index - the index of the item to remove\n * @return {array} - A copy of the original array with the matching item removed\n */\nexport function arrayRemoveByIndex(array: T[], index: number): T[] {\n return index === -1\n ? array\n : [...array.slice(0, index), ...array.slice(index + 1)];\n}\n\n/**\n * Immutably removes an item from an array of objects\n * @param {array} array - An array of objects\n * @param {string|number} id - The unique id of the item in the array to remove\n * @param {string} [idName=id] - the key of the unique identifier\n * @return {array} - A copy of the original array with the matching item removed\n */\n\nexport function arrayRemoveItemById(\n array: T[],\n propertyValue: string | number,\n idName = 'id'\n): T[] {\n const index = array.findIndex(\n (item) => item[idName as keyof T] === propertyValue\n );\n return arrayRemoveByIndex(array, index);\n}\n\nexport const capitalizeFirstLetter = (string: string) =>\n `${string.charAt(0).toUpperCase()}${string.slice(1)}`;\n\n/**\n * @description Converts Object keys from string of any case to camelCase.\n * Handles nested objects and arrays.\n * */\nexport function convertKeysToCamel(object: T): CamelCasedPropertiesDeep {\n if (Array.isArray(object)) {\n return (object as unknown[]).map((item) =>\n convertKeysToCamel(item)\n ) as CamelCasedPropertiesDeep;\n }\n\n if (isObject(object)) {\n return Object.keys(object).reduce((o, k) => {\n const key = camelCase(k);\n const value = object[\n k as keyof typeof object\n ] as CamelCasedPropertiesDeep;\n\n if (isObject(value)) {\n return {\n ...o,\n [key]: convertKeysToCamel(value)\n };\n }\n\n if (Array.isArray(value)) {\n return {\n ...o,\n [key]: (value as unknown[]).map((item) => convertKeysToCamel(item))\n };\n }\n\n return {\n ...o,\n [key]: value\n };\n }, {} as CamelCasedPropertiesDeep);\n }\n\n return object as CamelCasedPropertiesDeep;\n}\n\n/**\n * @description Converts Object keys from string of any case to snakeCase.\n * Handles nested objects and arrays.\n * */\nexport function convertKeysToSnake(object: T): SnakeCasedPropertiesDeep {\n if (Array.isArray(object)) {\n return (object as unknown[]).map((item) =>\n convertKeysToSnake(item)\n ) as SnakeCasedPropertiesDeep;\n }\n\n if (isObject(object)) {\n return Object.keys(object).reduce((o, k) => {\n const key = snakeCase(k);\n const value = object[\n k as keyof typeof object\n ] as SnakeCasedPropertiesDeep;\n\n if (isObject(value)) {\n return {\n ...o,\n [key]: convertKeysToSnake(value)\n };\n }\n\n if (Array.isArray(value)) {\n return {\n ...o,\n [key]: (value as unknown[]).map((item) => convertKeysToSnake(item))\n };\n }\n\n return {\n ...o,\n [key]: value\n };\n }, {} as SnakeCasedPropertiesDeep);\n }\n\n return object as SnakeCasedPropertiesDeep;\n}\n\n/**\n * Checks to see if localStorage is available\n *\n * @return {boolean} - true if localStorage can be used\n */\nexport const isLocalStorageAvailable = () => {\n const test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Appends querystring params to a URL\n *\n * @param {string} originalUrl - The original URL to append params to\n * @param {object} params - An object of key value parameters to append to URL\n * @return {string} - URL with params appended\n */\nexport const addParamsToURL = (originalUrl: string, params: object) => {\n const url = new URL(originalUrl);\n\n Object.entries(params).forEach(([key, value]) => {\n url.searchParams.append(key, value);\n });\n\n return url.toString();\n};\n\n/**\n * Some of our logged-out pages have a full-screen image background.\n * This util helps with setting the background image on the `` element, and\n * just requires passing in the image to be used.\n * @param {string} background\n */\nexport const setFullScreenBackgroundImage = (background: string) => {\n // apply background image directly to ``\n const body = document.querySelector('body');\n if (body) {\n body.style.setProperty('background-image', `url(${background})`);\n body.style.setProperty('background-size', 'cover');\n body.style.setProperty('background-position', 'center');\n }\n};\n\n/**\n * Uses the host to determine if a page is being loaded in staging or localhost.\n *\n * This util function is helpful for apps that run on nextJS which has node process\n * defined as production in both staging and production.\n *\n * @param host - host name\n * @returns {boolean} - true if app is running in staging or local\n */\nexport const isStagingOrLocal = (host: string) =>\n ['staging', 'localhost'].some((_host) => host.includes(_host));\n\n/**\n * Adds an id property to each object in an array. Uses the object's index as the value for the id\n * @param {array} objects - An array of objects\n * @return {array} - A copy of the original array with id property added to each object\n */\nexport const arrayAddIndexAsId = (objects: Array) =>\n objects.map((object, index) => ({ ...object, id: index }));\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo\n} from 'react';\nimport { useQueue } from '@strava/react-hooks';\nimport { generateRandomId } from '@strava/utils';\nimport { AlertStatusType } from '../Alert';\n\nexport interface AlertConfig {\n alertType: AlertStatusType;\n content: ReactNode;\n containerId?: string;\n id?: string;\n className?: string;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport interface AlertState {\n alerts: AlertConfig[];\n showAlert: (config: AlertConfig) => string;\n hideAlert: (id: string) => void;\n clearAlerts: (containerId?: string) => void;\n}\n\nconst AlertContext = createContext(undefined);\nAlertContext.displayName = 'AlertContext';\n\nexport const useAlertContext = () => {\n const context = useContext(AlertContext);\n\n // Fail fast if useAlertContext hook is used outside the Provider.\n if (!context) {\n throw new Error(`useAlertContext must be used within the AlertProvider`);\n }\n\n return context;\n};\n\ninterface AlertProviderProps {\n children: ReactNode;\n}\n\nexport const AlertProvider = ({ children }: AlertProviderProps) => {\n const { queue, updateQueue, clearQueue } = useQueue({\n initialValues: []\n });\n\n /**\n * @description Display an alert.\n *\n * @param {Object} alertConfig\n * @param {'error' | 'warning' | 'info' | 'success'} alertConfig.alertType\n * @param {ReactNode} alertConfig.content - Message to display in the the content of the Alert Component.\n * @param {string} [alertConfig.containerId=\"base\"] - It's used to identify which `AlertContainer` the alert is associated to.\n * @param {string | number} [alertConfig.id] - Optional; by default id is randomly generated. Used to update or close alert.\n * @param {string} [alertConfig.className] - The className passed to Alert component.\n * @param {boolean} [alertConfig.autoDismiss=false] - Determine if alert will auto dismiss/close.\n * @param {number} [alertConfig.autoDismissDelay=8000] - Delay in ms that alert will auto dismiss.\n * @param {'left' | 'center' | 'right'} [alertConfig.contentPosition=\"left\"] - Position to align content inside of alert container.\n * @param {boolean} [alertConfig.hideCloseButton=false] - Hides the close button, alert can only be closed programmatically.\n * @param {boolean} [alertConfig.hideIcon=false] - Display or hide alert icon.\n * @param {number} [alertConfig.iconSize=32] - The Alert's SVG icon's width and height.\n * @param {Function} [alertConfig.onClose] - Callback fn; called when alert closes.\n *\n * @return {string} - Alert ID\n */\n const showAlert = useCallback(\n (alertConfig: AlertConfig) => {\n const id = alertConfig.id ?? generateRandomId();\n const containerId = alertConfig.containerId ?? 'base';\n\n updateQueue((alerts) => {\n const hasAlert =\n alertConfig?.id &&\n alerts.some((alert) => alert.id === alertConfig.id);\n // Check if alert exist in queue.\n // If true then return hasAlerts\n // Else add/append alert to queue.\n if (hasAlert) {\n return alerts;\n }\n\n return [...alerts, { ...alertConfig, id, containerId }];\n });\n\n return `${id}`;\n },\n [updateQueue]\n );\n\n /**\n * @description Hide an alert by id.\n *\n * @param {string} id - Unique id to hide/remove alert.\n *\n * @return {boolean}\n * */\n const hideAlert = useCallback(\n (id) =>\n updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.id === id) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n ),\n [updateQueue]\n );\n\n /**\n * @description Clears/remove all alerts.\n * If no `containerId` provided then removes ALL alerts. Else if `containerId`\n * provided then clears alerts for specific container when working with multiple containers.\n *\n * @param {string} [containerId] - Optional; Clear alerts for specific container when working with multiple containers.\n *\n * @return {boolean}\n * */\n const clearAlerts = useCallback(\n (containerId) => {\n // If containerId is passed then remove all alerts for specific container\n if (containerId) {\n return updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.containerId === containerId) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n );\n }\n // Else clear entire queue\n return clearQueue();\n },\n [updateQueue, clearQueue]\n );\n\n const providerState = useMemo(\n () => ({\n alerts: queue,\n showAlert,\n hideAlert,\n clearAlerts\n }),\n [queue, showAlert, hideAlert, clearAlerts]\n );\n\n return (\n \n {children}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"alertContainerInfoContainer\":\"AlertProvider--alertContainerInfoContainer--dxEXE\",\"alertContainerInfo\":\"AlertProvider--alertContainerInfo--RDrkO\"};","import React from 'react';\nimport { AlertConfig, useAlertContext } from './AlertContext';\nimport Alert from '../Alert';\nimport styles from './AlertContainer.module.scss';\n\nconst defaultTranslateAlertInfoText = (\n totalAlertsShown: number,\n totalAlerts: number\n) => `Showing ${totalAlertsShown} of ${totalAlerts} alerts`;\n\ninterface AlertContainerProps {\n containerId?: string;\n limit?: number;\n shouldShowAlertInfoText?: boolean;\n translateAlertInfoText?: typeof defaultTranslateAlertInfoText;\n}\n\nexport const AlertContainer = ({\n containerId = 'base',\n limit,\n shouldShowAlertInfoText = true,\n translateAlertInfoText = defaultTranslateAlertInfoText\n}: AlertContainerProps) => {\n const { alerts, hideAlert } = useAlertContext();\n\n const handleOnClose = (id?: string) => {\n if (id) {\n hideAlert(id);\n }\n };\n\n const filterLimit = (_: unknown, index: number) => !limit || index < limit;\n const filterContainer = (alert: AlertConfig) =>\n alert?.containerId === containerId;\n\n const totalAlerts = alerts.filter(filterContainer).length;\n const totalAlertsShown = alerts\n .filter(filterContainer)\n .filter(filterLimit).length;\n\n return (\n <>\n {alerts\n .filter(filterContainer)\n .filter(filterLimit)\n .map(\n ({\n alertType,\n id,\n content,\n containerId: containerIdProp,\n ...rest\n }) => (\n handleOnClose(id)}\n >\n {content}\n \n )\n )}\n {shouldShowAlertInfoText && totalAlerts > totalAlertsShown && (\n \n
\n {translateAlertInfoText(totalAlertsShown, totalAlerts)}\n
\n \n )}\n \n );\n};\n\nexport default AlertContainer;\n","// extracted by mini-css-extract-plugin\nexport default {\"spinner\":\"Spinner--spinner--VZwB-\",\"graphic\":\"Spinner--graphic--D-BJP\",\"spin\":\"Spinner--spin--Rlswq\"};","import React from 'react';\nimport clsx from '../clsx';\n\nimport styles from './Spinner.module.scss';\n\nexport type SpinnerProps = {\n color?: 'default' | 'white';\n size?: number;\n};\n\nconst Spinner = ({ color = 'default', size = 20 }: SpinnerProps) => (\n \n \n \n);\n\nexport default Spinner;\n","import React, { forwardRef } from 'react';\n\ntype VisuallyHiddenProps = React.ComponentPropsWithoutRef<'span'>;\n\n// visually hidden styling comes from https://www.a11yproject.com/posts/how-to-hide-content/\nconst VisuallyHidden = forwardRef(\n ({ style, ...props }, ref) => {\n return (\n \n );\n }\n);\n\nexport default VisuallyHidden;\n","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n"],"names":["target","arguments","Element","_ref","attributes","_ref$attributes","className","_ref$children","children","_ref$selfClose","selfClose","Tag","_proto","name","_node","Filter","a","content","self","type","address","invalid","audio","br","void","body","TYPE_FLOW","button","TYPE_PHRASING","caption","parent","col","colgroup","details","dd","dl","dt","figcaption","footer","header","hr","img","li","main","ol","picture","rb","rp","rt","rtc","ruby","source","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","createConfigBuilder","config","tagConfigs","_extends2","forEach","TYPE_PALPABLE","Object","tag","alt","cite","class","colspan","controls","datetime","default","disabled","dir","height","href","id","kind","label","lang","loading","loop","media","muted","poster","role","sizes","span","start","style","src","srclang","srcset","title","width","rowspan","StyleFilter","_Filter","apply","value","keys","key","String","match","INVALID_STYLES","document","createHTMLDocument","Parser","props","matchers","filters","concat","keyIndex","container","allowed","allowList","ALLOWED_TAG_LIST","Set","BANNED_TAG_LIST","_proto3","reduce","nextNode","filter","node","string","parentConfig","tagName","matchedString","parts","index","length","valid","_parts","isVoid","partProps","tokenName","elementIndex","tokenizedString","_this","elements","_match","slice","includes","childConfig","Boolean","noHtml","disableLineBreaks","nextMarkup","createContainer","global","createDocument","INVALID_ROOTS","el","Array","newName","ATTRIBUTES","newValue","Number","_this2","count","styles","letter","toUpperCase","protocol","toLowerCase","parseNode","parentNode","transform","transformOnlyAllowList","mergedText","_this3","React","transformed","has","elementProps","open","_open","_match2","text","startIndex","_elements$tokenName","matcher","endIndex","nodes","push","containerTagName","emptyContent","parsedContent","mainContent","markup","AppleLogo","FacebookLogo","GoogleLogo","EmailLogo","onClick","variant","options","Button","_extends","clsx","fallback","fill","t","useStravaTranslations","legalTerms","terms_path","legalPrivacy","privacy_path","Markup","noWrap","_excluded","assign","bind","i","prototype","hasOwnProperty","call","this","_assertThisInitialized","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","create","constructor","getCaptchaFunction","fnName","grecaptcha","enterprise","getValue","getResponse","undefined","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","Promise","resolve","reject","executionResolve","executionReject","reset","resetter","forceReset","onExpired","onErrored","token","onChange","explicitRender","render","wrapper","createElement","sitekey","callback","theme","tabindex","size","stoken","hl","badge","isolated","captcha","appendChild","componentDidMount","componentDidUpdate","elem","_this$props","childProps","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","ref","displayName","propTypes","PropTypes","isRequired","defaultProps","SCRIPT_MAP","idCount","callbackName","getOptions","window","recaptchaOptions","getScriptURL","dynamicOptions","hostname","useRecaptchaNet","globalName","nonce","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","context","state","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","Error","obsKey","observers","scriptURL","_options","scriptId","entry","errored","script","attribute","async","setAttribute","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","componentWillUnmount","removeOnUnmount","allScripts","getElementsByTagName","removeChild","forwardedRef","Component","ForwardedComponent","forwardRef","SvgActionsVisibleDisabledNormalSmall","color","titleId","xmlns","viewBox","d","SvgActionsVisibleNormalSmall","showPasswordText","hidePasswordText","passwordIsVisible","setPasswordIsVisible","useState","Input","prev","ActionsVisibleNormalSmall","ActionsVisibleDisabledNormalSmall","VisuallyHidden","inputMessage","errorMessage","errorMessageTestId","input","htmlFor","PasswordInput","textInput","message","error","i18nPrefix","EMAIL_REGISTRATION_FORM_ALERT_ID","authorizationUrl","reCaptchaSiteKey","honeyPot","isPremium","clubId","plan","challengeId","autoJoinChallenge","formAuthToken","idPrefix","alertConfig","isInView","formInput","setFormInput","email","password","passwordErrorMsg","setPasswordErrMsg","emailValidationState","setEmailValidationState","isProcessing","setIsProcessing","emailInput","useRef","passwordInput","recaptchaRef","useRecaptcha","logError","useStravaErrorLogging","showAlert","clearAlerts","useAlertContext","emailRegFormAlert","alertType","AlertStatus","ERROR","containerId","hideCloseButton","handleEmailFormSubmit","recaptchaToken","current","getRecaptchaToken","element","elemAttrForAnalytics","EMAIL","formData","FormData","append","isNil","response","url","apiClient","headers","post","then","data","catch","submitFormData","pathType","load","action","properties","path_type","redirect_url","location","validateEmail","isValidEmail","isExistingEmail","EmailValidator","isUniqueEmail","get","params","_ref2","isAlreadyRegisteredEmail","validatePassword","isValidPassword","passwordValidationMsg","handleInputChange","event","onSubmit","preventDefault","validateForm","is_valid_email","is_valid_password","is_existing_email","focus","noValidate","RegistrationInput","placeholder","onBlur","autoComplete","display","Spinner","orDivider","line","or","APPLE","FACEBOOK","GOOGLE","HIDE_TIME_DELAY_MODAL","option","SvgActionsCancelCircleHighlightedMedium","fillRule","SvgActionsCheckCircleOnMedium","SvgNavigationWarningHighlightedMedium","SvgNavigationInformationNormalMedium","SvgActionsCancelNormalSmall","useInterval","delay","savedCallback","useEffect","setInterval","clearInterval","SUCCESS","WARNING","INFO","ALERT_DELAY","fadeStyles","enter","exit","autoDismiss","autoDismissDelay","contentPosition","hideIcon","iconSize","onClose","indicatorIcon","messageType","alertStyle","buttonStyle","ErrorIcon","SuccessIcon","WarningIcon","InfoIcon","getAlertDetails","fadeStyle","setFadeStyle","handleOnClose","setTimeout","alert","fadeIn","fadeOut","alertInner","alertContent","alignLeft","alignCenter","alignRight","closeButtonContainer","CancelIcon","autoDismissBar","useQueue","initialValues","_temp","queue","enqueue","useCallback","items","_key","dequeue","updateQueue","fn","clearQueue","peek","freeze","man","woman","preferNotSay","nonBinary","LOCALE","deDE","enUS","enGB","esES","es419","frFR","itIT","jaJP","koKR","nlNL","ptBR","ptPT","ruRU","zhCN","zhTW","de","es","fr","it","ja","ko","nl","pt","ru","zh","control","variantA","variantB","android","iPhone","iPad","chrome","firefox","safari","optedOut","AlertContext","createContext","useContext","AlertProvider","Math","random","toString","substring","alerts","some","hideAlert","providerState","useMemo","Provider","defaultTranslateAlertInfoText","totalAlertsShown","totalAlerts","AlertContainer","limit","shouldShowAlertInfoText","translateAlertInfoText","filterLimit","_","filterContainer","map","containerIdProp","rest","Alert","clip","clipPath","overflow","position","whiteSpace","tester","exports","test","split","part","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","e"],"sourceRoot":""}