{"version":3,"file":"js/25952-023afa072d4ce62462e0.js","mappings":"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","sources":["webpack://StravaModern/./app/javascript/constants/alerts/alert-types.js","webpack://StravaModern/./app/javascript/components/StravaAlert/StravaAlert.scss?a1ac","webpack://StravaModern/./app/javascript/components/StravaAlert/StravaAlert.js","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/ButtonWrapper/index.scss?5210","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/ButtonWrapper/ButtonWrapper.js","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/FacebookButton/index.scss?deb1","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/FacebookButton/FacebookButton.js","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/GoogleButton/index.scss?1b4a","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/GoogleButton/GoogleButton.js","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/EmailButton/index.scss?46a9","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/EmailButton/EmailButton.js","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/AccountAuthButton.js","webpack://StravaModern/./app/javascript/externalSocialPartners.js","webpack://StravaModern/./app/javascript/hooks/externalSocialPartners/useApple.js","webpack://StravaModern/./app/javascript/components/shared/AccountSignupForm/index.scss?885e","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/AppleButton/index.scss?6e0c","webpack://StravaModern/./app/javascript/components/shared/AccountAuthButton/AppleButton/AppleButton.js","webpack://StravaModern/./app/javascript/components/shared/AccountSignupForm/AccountSignupForm.js","webpack://StravaModern/./app/javascript/components/shared/DisclaimerText/index.scss?253f","webpack://StravaModern/./app/javascript/components/shared/DisclaimerText/DisclaimerText.js","webpack://StravaModern/./app/javascript/components/shared/DropdownDatePicker/styles.scss?7327","webpack://StravaModern/./app/javascript/components/shared/StravaDropdownSelect/StravaDropdownSelect.js","webpack://StravaModern/./app/javascript/components/shared/DropdownDatePicker/DropdownDatePicker.js","webpack://StravaModern/./app/javascript/components/shared/SignupAgeGateModal/index.scss?f088","webpack://StravaModern/./app/javascript/components/shared/SignupAgeGateModal/SignupAgeGateModal.js","webpack://StravaModern/./app/javascript/constants/appConstants.js","webpack://StravaModern/./app/javascript/utils/analytics.js","webpack://StravaModern/./app/javascript/utils/generalUtils.js","webpack://StravaModern/./app/javascript/utils/networking-client.js","webpack://StravaModern/./app/javascript/utils/onboarding.js"],"sourcesContent":["export const ALERT_TYPES = Object.freeze({\n warning: 'warning',\n error: 'error',\n info: 'info',\n success: 'success'\n});\n\nexport default { ALERT_TYPES };\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"StravaAlert--alert--0tRrZ\",\"error\":\"StravaAlert--error--Cha6i\",\"success\":\"StravaAlert--success--52fm+\",\"warning\":\"StravaAlert--warning--JQQmd\",\"info\":\"StravaAlert--info---apjx\"};","import React from 'react';\nimport Alert from '@reach/alert';\nimport PropTypes from 'prop-types';\nimport clsx from '@strava/ui/clsx';\nimport { ALERT_TYPES } from 'constants/alerts/alert-types';\nimport styles from './StravaAlert.scss';\n\nconst StravaAlert = ({ children, className, severity, ...options }) => {\n return (\n \n {children}\n \n );\n};\n\nStravaAlert.defaultProps = {\n className: null\n};\n\nStravaAlert.propTypes = {\n severity: PropTypes.oneOf(Object.values(ALERT_TYPES)).isRequired,\n children: PropTypes.node.isRequired,\n className: PropTypes.string\n};\n\nexport default StravaAlert;\n","// extracted by mini-css-extract-plugin\nexport default {\"auth-button\":\"ButtonWrapper--auth-button--7vRBM\",\"authButton\":\"ButtonWrapper--auth-button--7vRBM\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\n\nexport const LOG_IN = 'log_in';\nexport const SIGN_UP = 'sign_up';\n\nconst ButtonWrapper = ({ children, className, ...options }) => {\n return (\n \n {children}\n \n );\n};\n\nButtonWrapper.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string.isRequired\n};\n\nexport default ButtonWrapper;\n","// extracted by mini-css-extract-plugin\nexport default {\"facebook-button\":\"FacebookButton--facebook-button---mxGR\",\"facebookButton\":\"FacebookButton--facebook-button---mxGR\"};","import React from 'react';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\nimport ButtonWrapper, { LOG_IN, SIGN_UP } from '../ButtonWrapper';\n\nconst FacebookButton = ({ type, onClick }) => {\n const I18nPrefix = 'strava.landing_page';\n\n return (\n \n {type === SIGN_UP\n ? I18n.t(`${I18nPrefix}.here_to_join.facebook_cta`)\n : 'implement_me'}\n \n );\n};\n\nFacebookButton.propTypes = {\n onClick: PropTypes.func,\n type: PropTypes.oneOf([SIGN_UP, LOG_IN]).isRequired\n};\n\nFacebookButton.defaultProps = {\n onClick: () => {}\n};\n\nexport default FacebookButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"google-button\":\"GoogleButton--google-button--oTGb8\",\"googleButton\":\"GoogleButton--google-button--oTGb8\"};","import React from 'react';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\nimport ButtonWrapper, { LOG_IN, SIGN_UP } from '../ButtonWrapper';\n\nconst GoogleButton = ({ type, onClick }) => {\n const I18nPrefix = 'strava.landing_page';\n\n return (\n \n {type === SIGN_UP\n ? I18n.t(`${I18nPrefix}.here_to_join.google_cta`)\n : 'implement_me'}\n \n );\n};\n\nGoogleButton.propTypes = {\n onClick: PropTypes.func,\n type: PropTypes.oneOf([SIGN_UP, LOG_IN]).isRequired\n};\n\nGoogleButton.defaultProps = {\n onClick: () => {}\n};\n\nexport default GoogleButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"email-button\":\"EmailButton--email-button--EJuHg\",\"emailButton\":\"EmailButton--email-button--EJuHg\"};","import React from 'react';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\nimport ButtonWrapper, { LOG_IN, SIGN_UP } from '../ButtonWrapper';\n\nconst AccountAuthEmailButton = ({ type, onClick }) => {\n const I18nPrefix = 'strava.landing_page';\n\n return (\n \n {type === SIGN_UP\n ? I18n.t(`${I18nPrefix}.here_to_join.email_cta`)\n : 'implement_me'}\n \n );\n};\n\nAccountAuthEmailButton.propTypes = {\n onClick: PropTypes.func,\n type: PropTypes.oneOf([SIGN_UP, LOG_IN]).isRequired\n};\n\nAccountAuthEmailButton.defaultProps = {\n onClick: () => {}\n};\n\nexport default AccountAuthEmailButton;\n","import FacebookButton from './FacebookButton';\nimport GoogleButton from './GoogleButton';\nimport EmailButton from './EmailButton';\n\nimport { LOG_IN, SIGN_UP } from './ButtonWrapper';\n\nconst APPLE = 'apple';\nconst EMAIL = 'email';\nconst FACEBOOK = 'facebook';\nconst GOOGLE = 'google';\n\nconst elemAttrForAnalytics = (option) => {\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\nexport {\n APPLE,\n EMAIL,\n EmailButton,\n FACEBOOK,\n FacebookButton,\n GOOGLE,\n GoogleButton,\n LOG_IN,\n SIGN_UP,\n elemAttrForAnalytics\n};\n","import { replace } from 'lodash-es';\nimport { logError } from './utils/sentry';\n\nconst appendScriptToBody = ({ script, name }) => {\n if (document.querySelector('body')) {\n document.querySelector('body').appendChild(script);\n } else {\n const e = new Error(`Failed to inject ${name} script`);\n logError(e);\n }\n};\n\n// this injects window.google and not the legacy window.gapi JS api\nexport const injectGoogleScript = (callback) => {\n if (!window.google) {\n const script = document.createElement('script');\n script.src = 'https://accounts.google.com/gsi/client';\n script.async = true;\n script.onload = callback;\n script.id = 'google-client-script';\n appendScriptToBody({ script, name: 'google gsi' });\n } else {\n callback();\n }\n};\n\nexport const injectAppleScript = (locale = 'en_US') => {\n if (!window.apple) {\n const script = window.document.createElement('script');\n const formattedLocale = replace(locale, '-', '_');\n script.src = `https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/${formattedLocale}/appleid.auth.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'apple' });\n }\n};\n\nexport const injectFacebookScript = ({\n appId,\n version,\n callback,\n locale = 'en_US'\n}) => {\n if (!window.FB) {\n window.fbAsyncInit = () => {\n // ref - https://developers.facebook.com/docs/javascript/reference/FB.init/v13.0\n window.FB.init({\n appId,\n xfbml: true,\n version,\n status: true,\n cookie: true\n });\n callback();\n };\n\n // facebook uses format ll_CC - see https://developers.facebook.com/docs/javascript/internationalization\n const formattedLocale = replace(locale, '-', '_');\n\n const script = window.document.createElement('script');\n script.src = `https://connect.facebook.net/${formattedLocale}/sdk.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'facebook-jssdk' });\n } else {\n callback();\n }\n};\n\nexport default { injectGoogleScript, injectAppleScript, injectFacebookScript };\n","import { useEffect } from 'react';\nimport { injectAppleScript } from 'externalSocialPartners';\n\n/**\n *\n * @param {String} state https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230956-state\n */\nconst useApple = (state) => {\n useEffect(() => {\n injectAppleScript();\n }, []);\n\n const signin = () => {\n if (!window.AppleID.stravaInit) {\n window.AppleID.auth.init({\n clientId: 'com.strava.app.sign.in',\n scope: 'name email',\n redirectURI: 'https://www.strava.com/o_auth/apple',\n state\n });\n window.AppleID.stravaInit = true;\n }\n window.AppleID.auth.signIn();\n };\n\n return { signin };\n};\n\nexport default useApple;\n","// extracted by mini-css-extract-plugin\nexport default {\"hr\":\"AccountSignupForm--hr--UJLN0\",\"hr-text\":\"AccountSignupForm--hr-text--rrMpt\",\"hrText\":\"AccountSignupForm--hr-text--rrMpt\"};","// extracted by mini-css-extract-plugin\nexport default {\"apple-button\":\"AppleButton--apple-button--fZrIp\",\"appleButton\":\"AppleButton--apple-button--fZrIp\"};","import React from 'react';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\nimport ButtonWrapper, { LOG_IN, SIGN_UP } from '../ButtonWrapper';\n\nconst AppleButton = ({ type, onClick }) => {\n const I18nPrefix = 'strava.landing_page';\n\n return (\n \n {type === SIGN_UP\n ? I18n.t(`${I18nPrefix}.here_to_join.apple_cta`)\n : 'implement_me'}\n \n );\n};\n\nAppleButton.propTypes = {\n onClick: PropTypes.func,\n type: PropTypes.oneOf([SIGN_UP, LOG_IN]).isRequired\n};\n\nAppleButton.defaultProps = {\n onClick: () => {}\n};\n\nexport default AppleButton;\n","import React, { useState, useEffect } from 'react';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport useApple from 'hooks/externalSocialPartners/useApple';\nimport { isEmpty } from 'lodash-es';\nimport clsx from '@strava/ui/clsx';\nimport styles from './index.scss';\nimport DisclaimerText from '../DisclaimerText';\n\nimport SignupAgeGateModal from '../SignupAgeGateModal';\n\nimport {\n FacebookButton,\n GoogleButton,\n EmailButton,\n SIGN_UP,\n FACEBOOK,\n GOOGLE,\n EMAIL,\n APPLE,\n elemAttrForAnalytics\n} from '../AccountAuthButton';\nimport AppleButton from '../AccountAuthButton/AppleButton';\n\nimport {\n LANDING_PAGE,\n PRIVATE_ACTIVITY,\n MOBILE_REGISTRATION_PAGE,\n pageAttrForAnalytics,\n track\n} from '../../../utils/onboarding';\nimport StravaAlert from '../../StravaAlert';\n\nconst AccountSignupForm = ({\n authorizationUrls,\n config,\n locale,\n page,\n flashMessage,\n className\n}) => {\n const [openModal, setOpenModal] = useState(false);\n const [option, setOption] = useState(null);\n\n const { signin: appleSignin } = useApple(config.appleState);\n\n const I18nPrefix = 'strava.landing_page';\n\n useEffect(() => {\n if (page !== LANDING_PAGE) {\n track({\n page: pageAttrForAnalytics(page),\n action: 'screen_enter'\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOnClick = (clickedOption) => {\n track({\n page: pageAttrForAnalytics(page),\n action: 'click',\n element: elemAttrForAnalytics(clickedOption)\n });\n setOption(clickedOption);\n if (clickedOption === EMAIL && page !== MOBILE_REGISTRATION_PAGE) {\n window.location.href = authorizationUrls[EMAIL];\n return;\n }\n setOpenModal(true);\n };\n\n const handleModalDobSubmit = () => {\n setOpenModal(false);\n if (option === APPLE) {\n appleSignin(config.appleState);\n } else {\n window.location.href = authorizationUrls[option];\n }\n };\n\n const orDivider = (\n
\n
{I18n.t(`${I18nPrefix}.or`)}
\n
\n );\n\n return (\n
\n {!isEmpty(flashMessage) && (\n {flashMessage}\n )}\n handleOnClick(FACEBOOK)} />\n handleOnClick(GOOGLE)} />\n {config.appleEnabled && (\n handleOnClick(APPLE)} />\n )}\n {page === LANDING_PAGE && orDivider}\n handleOnClick(EMAIL)} />\n \n {page === PRIVATE_ACTIVITY && orDivider}\n {\n setOpenModal(false);\n }}\n locale={locale}\n onSuccessCallback={handleModalDobSubmit}\n page={page}\n />\n
\n );\n};\n\nAccountSignupForm.defaultProps = {\n flashMessage: null,\n className: null\n};\n\nAccountSignupForm.propTypes = {\n page: PropTypes.oneOf([\n LANDING_PAGE,\n PRIVATE_ACTIVITY,\n MOBILE_REGISTRATION_PAGE\n ]).isRequired,\n config: PropTypes.shape({\n appleEnabled: PropTypes.bool.isRequired,\n appleState: PropTypes.string.isRequired // https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230956-state\n }).isRequired,\n authorizationUrls: PropTypes.shape({\n google: PropTypes.string.isRequired,\n facebook: PropTypes.string.isRequired\n }).isRequired,\n locale: PropTypes.string.isRequired,\n flashMessage: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default AccountSignupForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"disclaimer-text\":\"DisclaimerText--disclaimer-text--T2255\",\"disclaimerText\":\"DisclaimerText--disclaimer-text--T2255\"};","import React from 'react';\nimport { Markup } from 'interweave';\nimport I18n from 'utils/I18n';\nimport PropTypes from 'prop-types';\n\nimport styles from './index.scss';\n\nconst DisclaimerText = ({ showLoginOption }) => {\n const I18nPrefix = 'strava.landing_page';\n\n const legalTerms = I18n.t(\n `${I18nPrefix}.disclaimer_text.by_clicking_cta_html`,\n {\n terms_path: '/legal/terms'\n }\n );\n\n const legalPrivacy = I18n.t(\n `${I18nPrefix}.disclaimer_text.view_privacy_policy_html`,\n {\n privacy_path: '/legal/privacy'\n }\n );\n\n return (\n
\n

\n {' '}\n \n

\n {showLoginOption && (\n

\n {I18n.t(`${I18nPrefix}.already_a_member`)}{' '}\n \n {' '}\n {I18n.t(`${I18nPrefix}.log_in`)}\n \n

\n )}\n
\n );\n};\n\nDisclaimerText.propTypes = {\n showLoginOption: PropTypes.bool\n};\n\nDisclaimerText.defaultProps = {\n showLoginOption: true\n};\n\nexport default DisclaimerText;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"DropdownDatePicker--container--Gsl3M\",\"day\":\"DropdownDatePicker--day--SMWsK\",\"year\":\"DropdownDatePicker--year--imWte\",\"month\":\"DropdownDatePicker--month--PYgYy\",\"error\":\"DropdownDatePicker--error--93oPI\"};","import React, { useEffect, useRef } from 'react';\nimport ReactSelect from 'react-select';\nimport PropTypes, { number, string } from 'prop-types';\nimport { isMobile } from 'utils/generalUtils';\n\nimport colors from '@strava/ui/colors';\n\nconst StravaDropdownSelect = ({\n name,\n isFocused,\n hasError,\n value,\n options,\n ariaLabel,\n className,\n disabled,\n onChange,\n placeholder,\n styles,\n ...props\n}) => {\n const ref = useRef(null);\n\n useEffect(() => {\n if (ref.current && isFocused) {\n ref.current.focus();\n }\n }, [isFocused]);\n\n const controlColor = (provided) =>\n hasError ? colors.BRAND_DANGER : provided.borderColor;\n\n const controlBoxShadow = (provided, state) => {\n if (hasError) {\n return '';\n }\n if (state.isFocused) {\n return `0 0 0 1px #${colors.N70_GRAVEL}`;\n }\n return provided.boxShadow;\n };\n\n const customStyles = (() => {\n return {\n indicatorSeparator: (provided) => ({\n ...provided,\n display: 'none'\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n padding: '2px'\n }),\n valueContainer: (provided) => ({\n ...provided,\n padding: '5px',\n height: '50px',\n fontSize: '17px',\n color: controlColor(provided)\n }),\n control: (provided, state) => ({\n ...provided,\n borderColor: controlColor(provided),\n boxShadow: controlBoxShadow(provided, state)\n }),\n ...styles\n };\n })();\n\n const theme = (provided) => ({\n ...provided,\n colors: {\n ...provided.colors,\n primary25: colors.N30_SILVER,\n primary: colors.N70_GRAVEL,\n danger: colors.BRAND_DANGER\n }\n });\n\n return (\n \n );\n};\n\nconst optionProps = PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.oneOfType([number, string])\n});\n\nStravaDropdownSelect.defaultProps = {\n hasError: false,\n disabled: false,\n className: null,\n value: null,\n onChange: () => {},\n placeholder: null,\n isFocused: false,\n styles: {}\n};\n\nStravaDropdownSelect.propTypes = {\n name: PropTypes.string.isRequired,\n isFocused: PropTypes.bool,\n hasError: PropTypes.bool,\n value: optionProps,\n disabled: PropTypes.bool,\n ariaLabel: PropTypes.string.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(optionProps).isRequired,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n styles: PropTypes.shape({})\n};\n\nexport default StravaDropdownSelect;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport I18n from 'utils/I18n';\nimport { isMobile, dateYearsAgo } from 'utils/generalUtils';\nimport { YOUNGEST_AGE_ON_PLATFORM } from 'constants/appConstants';\nimport { isNil } from 'lodash-es';\nimport styles from './styles.scss';\nimport StravaDropdownSelect from '../StravaDropdownSelect/StravaDropdownSelect';\n\nconst MIN_YEARS_BEFORE_TODAY = 125;\n\nconst I18N_MONTHS = (() => {\n const prefix = 'templates.settings.months.';\n return [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sep',\n 'oct',\n 'nov',\n 'dec'\n ].map((m) => prefix + m);\n})();\n\nconst DropdownDatePicker = ({\n className,\n dateMax,\n dateSelected,\n dateChangeCallback,\n erroredControls,\n required,\n disabled,\n locale,\n focusTarget,\n enableDefaultFocus\n}) => {\n // IMPORTANT - using defaultProps does not reflect the mocked global system date\n // that unit tests need for this component uses.\n // ie. new Date() initiated using defaultProps is always the current date while\n // new Date() in the mounted react would be the mocked date.\n //\n // Setting a custom date during tests if very important for this component since\n // we need to be able to test specific scenarios at any time. Because of this need,\n // maxDate default is being handled inside the mounted component.\n // Also, reactjs seems to be on the path to deprecate defaultProps - https://github.com/jsx-eslint/eslint-plugin-react/issues/2396\n // so this approach aligns more with how the future of reactjs will look like.\n const correctedDateMax = isNil(dateMax)\n ? dateYearsAgo(YOUNGEST_AGE_ON_PLATFORM)\n : dateMax;\n\n const [day, setDay] = useState(dateSelected ? dateSelected.getDate() : null);\n const [month, setMonth] = useState(\n dateSelected ? dateSelected.getMonth() + 1 : null\n ); // UI January => numeric value 1\n const [year, setYear] = useState(\n dateSelected ? dateSelected.getFullYear() : null\n );\n\n const yearMax = correctedDateMax.getFullYear();\n const monthMax = correctedDateMax.getMonth() + 1; // UI January => numeric value is 1\n\n // DD\n const daySelectDefault = I18n.t(\n 'templates.settings.birthday_select_defaults.day'\n );\n // MM or MONTH\n const monthSelectDefault = isMobile()\n ? I18n.t('templates.settings.birthday_select_defaults.month')\n : I18n.t('templates.settings.birthday_select_defaults.month_full');\n // YYYY\n const yearSelectDefault = I18n.t(\n 'templates.settings.birthday_select_defaults.year'\n );\n\n /**\n * Helper function\n * given, min =5, max =7 returns array [5,6,7]\n */\n const intArray = (min, max) =>\n Array.from({ length: max - min + 1 }, (_, i) => i + min);\n\n /**\n * Number in days in a given month for a specific year.\n */\n const numDaysInMonth = (y, m) => new Date(y, m, 0).getDate();\n\n const blankOption = { label: '', value: '' };\n\n /**\n * Day options that an athlete can choose from the day dropdown\n */\n const dayOptions = (() => {\n const options = required ? [] : [blankOption];\n intArray(\n 1,\n year === yearMax && month === monthMax\n ? correctedDateMax.getDate()\n : numDaysInMonth(year, month)\n ).forEach((d) => {\n options.push({ label: d.toString(), value: d });\n });\n return options;\n })();\n\n /**\n * Localized Month options that an athlete can choose from the month dropdown\n *\n * Note: January => 1 and December => 12, Unlike JS Date where January => 0\n */\n const monthOptions = (() => {\n const options = required ? [] : [blankOption];\n intArray(1, year === yearMax ? monthMax : 12).forEach((m) => {\n const label = isMobile() ? m.toString() : I18n.t(I18N_MONTHS[m - 1]);\n options.push({ label, value: m });\n });\n return options;\n })();\n\n /**\n * Year options that an athlete can choose from the year dropdown\n */\n const yearOptions = (() => {\n const options = required ? [] : [blankOption];\n intArray(\n correctedDateMax.getFullYear() - MIN_YEARS_BEFORE_TODAY,\n correctedDateMax.getFullYear()\n )\n .reverse() // descending order - current year first\n .forEach((y) => {\n options.push({ label: y.toString(), value: y });\n });\n return options;\n })();\n\n const handleYearChange = (option) => {\n const newYear = option.value;\n setYear(newYear);\n let newDay = day;\n let newMonth = month;\n if (day > numDaysInMonth(newYear, month)) {\n newDay = null;\n setDay(newDay); // clear out the selected day\n }\n if (newYear === yearMax && month > monthMax) {\n newMonth = null;\n setMonth(newMonth); // clear out the month field (this avoids dates that are before the dateMax from being entered)\n }\n dateChangeCallback({ month: newMonth, day: newDay, year: newYear });\n };\n\n const handleMonthChange = (option) => {\n const newMonth = option.value;\n setMonth(newMonth);\n let newDay = day;\n if (day > numDaysInMonth(year, newMonth)) {\n newDay = null;\n setDay(newDay); // clear out the selected day\n }\n dateChangeCallback({ month: newMonth, day: newDay, year });\n };\n\n const handleDayChange = (option) => {\n const newDay = option.value;\n setDay(newDay);\n dateChangeCallback({ month, day: newDay, year });\n };\n\n /**\n * The date control that gains focus\n */\n const defaultFocus = (() => {\n if (enableDefaultFocus) {\n switch (locale) {\n case 'en-US':\n return 'month';\n case 'ko-KR':\n case 'ja-JP':\n return 'year';\n default:\n return 'day';\n }\n }\n return null;\n })();\n\n const monthSelector = (\n o.value === month)}\n onChange={handleMonthChange}\n placeholder={monthSelectDefault}\n ariaLabel={monthSelectDefault}\n data-cy=\"month\"\n hasError={erroredControls.includes('month')}\n isFocused={[focusTarget, defaultFocus].includes('month')}\n />\n );\n\n const daySelector = (\n o.value === day)}\n onChange={handleDayChange}\n placeholder={daySelectDefault}\n ariaLabel={daySelectDefault}\n hasError={erroredControls.includes('day')}\n isFocused={[focusTarget, defaultFocus].includes('day')}\n />\n );\n\n const yearSelector = (\n o.value === year)}\n onChange={handleYearChange}\n placeholder={yearSelectDefault}\n ariaLabel={yearSelectDefault}\n hasError={erroredControls.includes('year')}\n isFocused={[focusTarget, defaultFocus].includes('year')}\n />\n );\n\n /**\n * Determines date layout based on the language\n */\n const buildSelectors = () => {\n switch (locale) {\n case 'en-US':\n return [monthSelector, daySelector, yearSelector];\n case 'ko-KR':\n case 'ja-JP':\n return [yearSelector, monthSelector, daySelector];\n default:\n return [daySelector, monthSelector, yearSelector];\n }\n };\n\n const classNames = [styles.container];\n if (className) {\n classNames.push(className);\n }\n return (\n
\n {buildSelectors()}\n
\n );\n};\n\nDropdownDatePicker.defaultProps = {\n className: null,\n dateMax: null,\n dateSelected: null,\n erroredControls: [],\n required: false,\n locale: window.navigator.userLanguage || window.navigator.language,\n disabled: false,\n focusTarget: null,\n enableDefaultFocus: false\n};\n\nDropdownDatePicker.propTypes = {\n className: PropTypes.string,\n dateMax: PropTypes.instanceOf(Date),\n dateSelected: PropTypes.instanceOf(Date),\n dateChangeCallback: PropTypes.func.isRequired,\n erroredControls: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year'])),\n locale: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n focusTarget: PropTypes.string,\n enableDefaultFocus: PropTypes.bool\n};\n\nexport default DropdownDatePicker;\n","// extracted by mini-css-extract-plugin\nexport default {\"modal\":\"SignupAgeGateModal--modal--smgNx\",\"modal-title\":\"SignupAgeGateModal--modal-title--1dq21\",\"modalTitle\":\"SignupAgeGateModal--modal-title--1dq21\",\"modal-body\":\"SignupAgeGateModal--modal-body--Ur7Jt\",\"modalBody\":\"SignupAgeGateModal--modal-body--Ur7Jt\",\"modal-actions\":\"SignupAgeGateModal--modal-actions--yB7GV\",\"modalActions\":\"SignupAgeGateModal--modal-actions--yB7GV\",\"subtitle\":\"SignupAgeGateModal--subtitle--Nlw+5\",\"text\":\"SignupAgeGateModal--text--HTLTO\",\"datepicker\":\"SignupAgeGateModal--datepicker---45FB\",\"tool-tip\":\"SignupAgeGateModal--tool-tip--F4AYv\",\"toolTip\":\"SignupAgeGateModal--tool-tip--F4AYv\",\"signup-button\":\"SignupAgeGateModal--signup-button--0pBfO\",\"signupButton\":\"SignupAgeGateModal--signup-button--0pBfO\",\"error-message\":\"SignupAgeGateModal--error-message--kjG0B\",\"errorMessage\":\"SignupAgeGateModal--error-message--kjG0B\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal, { ModalActions, ModalTitle, ModalBody } from '@strava/ui/Modal';\nimport Button from '@strava/ui/Button';\nimport Tooltip from '@strava/ui/Tooltip';\nimport NavigationHelpNormalXsmall from '@strava/icons/NavigationHelpNormalXsmall';\nimport I18n from 'utils/I18n';\nimport { Markup } from 'interweave';\n\nimport createNetworkingClient from 'utils/networking-client';\nimport { YOUNGEST_AGE_ON_PLATFORM } from 'constants/appConstants';\nimport styles from './index.scss';\nimport DisclaimerText from '../DisclaimerText';\nimport DropdownDatePicker from '../DropdownDatePicker';\nimport {\n LANDING_PAGE,\n MOBILE_REGISTRATION_PAGE,\n pageAttrForAnalytics,\n PRIVATE_ACTIVITY,\n REGISTRATION_PAGE,\n track\n} from '../../../utils/onboarding';\n\nconst SignupAgeGateModal = ({\n open,\n onSuccessCallback,\n onDismissCallback,\n locale,\n page\n}) => {\n const [dob, setDob] = useState({ month: '', day: '', year: '' });\n const [erroredControls, setErroredControls] = useState([]);\n const [errorMessage, setErrorMessage] = useState(null);\n\n const I18nPrefix = 'strava.landing_page';\n\n const copyCantMakeAccount = I18n.t(`${I18nPrefix}.cant_make_account`);\n\n useEffect(() => {\n if (open) {\n setErrorMessage(null);\n track({\n page: 'dob',\n action: 'screen_enter',\n properties: {\n source: pageAttrForAnalytics(page)\n }\n });\n }\n }, [open, page]);\n\n const isCompleteDate = ({ month, day, year }) => {\n let result = true;\n if (month === null || month === '') {\n setErroredControls((prev) => [...prev, 'month']);\n result = false;\n }\n if (day === null || day === '') {\n setErroredControls((prev) => [...prev, 'day']);\n result = false;\n }\n if (year === null || year === '') {\n setErroredControls((prev) => [...prev, 'year']);\n result = false;\n }\n return result;\n };\n\n const dateWithoutTime = (date) => {\n return new Date(date.toDateString());\n };\n\n /**\n * Athlete must be >= 13 years to create an account\n */\n const isAllowedAge = ({ month, day, year }) => {\n const inputDate = dateWithoutTime(new Date(year, month - 1, day)); // Jan => 1 for input UI\n const today = dateWithoutTime(new Date());\n const minDate = dateWithoutTime(\n new Date(\n today.getFullYear() - YOUNGEST_AGE_ON_PLATFORM,\n today.getMonth(),\n today.getDate()\n )\n );\n return inputDate <= minDate;\n };\n\n const remove = (arr, value) => {\n let i = 0;\n while (i < arr.length) {\n if (arr[i] === value) {\n arr.splice(i, 1);\n } else {\n i += 1;\n }\n }\n return arr;\n };\n\n const updateErrorState = ({ month, day, year }) => {\n if (month) {\n setErroredControls((prev) => remove(prev, 'month'));\n }\n if (day) {\n setErroredControls((prev) => remove(prev, 'day'));\n }\n if (year) {\n setErroredControls((prev) => remove(prev, 'year'));\n }\n };\n\n const handleSignup = () => {\n const { month, day, year } = dob;\n\n track({\n page: 'dob',\n action: 'click',\n element: 'agree_signup',\n properties: {\n source: pageAttrForAnalytics(page),\n dob: `${month === '' ? null : month}-${day === '' ? null : day}-${\n year === '' ? null : year\n }`, // eg. track as null-12-2020 instead of -12-2020\n dob_complete: isCompleteDate({ month, day, year }),\n dob_allowed: isCompleteDate({ month, day, year })\n ? isAllowedAge({ month, day, year })\n : false\n }\n });\n\n if (!isCompleteDate({ month, day, year })) {\n return; // block signup process\n }\n if (!isAllowedAge({ month, day, year })) {\n setErrorMessage(copyCantMakeAccount);\n return; // block signup process\n }\n createNetworkingClient()\n .post('/onboarding/age_gate', {\n age_gate_year: year,\n age_gate_month: month,\n age_gate_day: day\n })\n .then((response) => {\n if (response && response.status === 200) {\n onSuccessCallback();\n } else {\n setErrorMessage(I18n.t(`${I18nPrefix}.errors.generic`));\n }\n })\n .catch(() => {\n setErrorMessage(I18n.t(`${I18nPrefix}.errors.generic`));\n });\n };\n\n const handleDobChange = (d) => {\n setDob(d);\n updateErrorState(d);\n setErrorMessage(null);\n };\n\n return (\n \n \n {I18n.t(`${I18nPrefix}.before_you_sign_up`)}\n \n \n
\n
{I18n.t(`${I18nPrefix}.birthday`)}
\n \n }\n position=\"top\"\n className={styles.toolTip}\n >\n \n \n
\n\n \n\n \n\n {errorMessage && (\n \n {errorMessage}\n \n )}\n
\n \n \n {I18n.t(`${I18nPrefix}.agree_and_signup`)}\n \n \n \n );\n};\n\nSignupAgeGateModal.defaultProps = {\n page: ''\n};\n\nSignupAgeGateModal.propTypes = {\n open: PropTypes.bool.isRequired,\n onSuccessCallback: PropTypes.func.isRequired,\n onDismissCallback: PropTypes.func.isRequired,\n locale: PropTypes.string.isRequired,\n page: PropTypes.oneOf([\n LANDING_PAGE,\n PRIVATE_ACTIVITY,\n MOBILE_REGISTRATION_PAGE,\n REGISTRATION_PAGE\n ])\n};\n\nexport default SignupAgeGateModal;\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 enUS: 'en-US',\n frFR: 'fr-FR',\n deDE: 'de-DE',\n esES: 'es-ES',\n ptBR: 'pt-BR',\n ruRU: 'ru-RU',\n itIT: 'it-IT',\n jaJP: 'ja-JP',\n es419: 'es-419',\n koKR: 'ko-KR',\n nlNL: 'nl-NL',\n zhTW: 'zh-TW',\n ptPT: 'pt-PT',\n zhCN: 'zh-CN'\n});\n\nexport default {\n YOUNGEST_AGE_ON_PLATFORM,\n YOUNGEST_AGE_FOR_HEALTH_AND_PROMO,\n GENDER,\n LOCALE\n};\n","import { logMessage } from './sentry';\n\nexport function trackV2({ category, page, action, element, properties = {} }) {\n try {\n window.Strava.ExternalAnalytics.trackV2({\n category,\n page,\n action,\n element,\n properties\n });\n } catch (e) {\n logMessage(\n `Could not execute Strava.ExternalAnalytics.trackV2 event with the category:action ${category}:${action}`\n );\n }\n}\n\nexport default {\n trackV2\n};\n","import { split } from 'lodash-es';\n\nexport { timeout } from './devUtils';\n\nexport const generateRandomId = () =>\n Math.random()\n .toString(36)\n .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'\nconst titleize = (str) =>\n str.replace(\n /\\w\\S*/g,\n (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\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(\n firstName.substring(0, maxLength - 4)\n )}... ${lastName.charAt(0).toUpperCase()}.`;\n }\n return `${titleize(firstName)} ${lastName.charAt(0).toUpperCase()}.`;\n }\n return fullName.trim();\n};\n\nexport const isMobile = () => window.navigator.userAgent.includes('Mobile');\n\nexport const dateYearsAgo = (years) => {\n const d = new Date(new Date().toDateString());\n d.setFullYear(d.getFullYear() - years);\n return d;\n};\n\nexport const parseServerDateString = (date) => {\n const dobArray = split(date, '-');\n return {\n year: parseInt(dobArray[0], 10),\n month: parseInt(dobArray[1], 10),\n day: parseInt(dobArray[2], 10)\n };\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 = (photoUrlHash) => {\n const key = Object.keys(photoUrlHash).reduce((a, b) => (a > b ? a : b));\n return photoUrlHash[key];\n};\n\nexport default {\n displayName,\n generateRandomId,\n isMobile,\n dateYearsAgo,\n parseServerDateString,\n getPhotoWithMaxDimension\n};\n","import axios from 'axios';\n\nfunction baseUrl() {\n const port = window.location.port === '' ? '' : `:${window.location.port}`;\n\n return `${window.location.protocol}//${window.location.hostname}${port}`;\n}\n\nexport function csrfToken() {\n return document\n .querySelector('meta[name=\"csrf-token\"]')\n .getAttribute('content');\n}\n\nexport default function createNetworkingClient(options = {}) {\n return axios.create({\n baseUrl: baseUrl(),\n /**\n * The Axios timeout was set to 5s, causing requests taking longer than 5s to error out, and therefore causing Sentry errors.\n * Several factors can cause a slow request, such as slow network speeds or server.\n * Bumping the timeout to 30s should help account for these slow requests but also ensure that\n * we are not waiting for request resources for an indefinite time.\n * */\n timeout: 30000, // 30 seconds\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-TOKEN': csrfToken()\n },\n ...options\n });\n}\n","import { trackV2 } from 'utils/analytics';\n\nconst LANDING_PAGE = 'landing_page';\nconst PRIVATE_ACTIVITY = 'private_activity';\nconst MOBILE_REGISTRATION_PAGE = 'mobile_registration';\nconst REGISTRATION_PAGE = 'registration';\n\nconst pageAttrForAnalytics = (page) => {\n switch (page) {\n case LANDING_PAGE:\n return 'home';\n case PRIVATE_ACTIVITY:\n return 'referral';\n case MOBILE_REGISTRATION_PAGE:\n return 'register_mobile';\n case REGISTRATION_PAGE:\n return 'register';\n default:\n return '';\n }\n};\n\nconst track = (attrs) => {\n trackV2({\n category: 'onboarding',\n ...attrs,\n properties: {\n ...attrs.properties\n }\n });\n};\n\n// Get background CSS class added to html element on register page, e.g. 'background-7' for use in analytics. Ref: https://strava.atlassian.net/browse/ACQN-141\nconst getBackgroundName = () => {\n const classList = document.querySelector('html')?.classList;\n return classList\n ? Array.from(classList).find((item) => item.includes('background-')) || null\n : null;\n};\n\nexport {\n LANDING_PAGE,\n PRIVATE_ACTIVITY,\n MOBILE_REGISTRATION_PAGE,\n REGISTRATION_PAGE,\n pageAttrForAnalytics,\n track,\n getBackgroundName\n};\n"],"names":["Object","freeze","warning","error","info","success","StravaAlert","children","className","severity","options","clsx","styles","defaultProps","SIGN_UP","variant","type","FacebookButton","onClick","I18nPrefix","ButtonWrapper","I18n","GoogleButton","AccountAuthEmailButton","APPLE","EMAIL","FACEBOOK","GOOGLE","elemAttrForAnalytics","option","appendScriptToBody","script","name","document","querySelector","appendChild","e","Error","logError","injectAppleScript","locale","window","apple","createElement","formattedLocale","replace","src","async","state","useEffect","signin","AppleID","stravaInit","auth","init","clientId","scope","redirectURI","signIn","AppleButton","AccountSignupForm","authorizationUrls","config","page","flashMessage","useState","openModal","setOpenModal","setOption","appleSignin","useApple","appleState","LANDING_PAGE","track","pageAttrForAnalytics","action","handleOnClick","clickedOption","element","MOBILE_REGISTRATION_PAGE","location","href","orDivider","isEmpty","appleEnabled","DisclaimerText","showLoginOption","PRIVATE_ACTIVITY","SignupAgeGateModal","open","onDismissCallback","onSuccessCallback","legalTerms","terms_path","legalPrivacy","privacy_path","noWrap","content","StravaDropdownSelect","isFocused","hasError","value","ariaLabel","disabled","onChange","placeholder","props","ref","useRef","current","focus","controlColor","provided","colors","borderColor","controlBoxShadow","boxShadow","customStyles","indicatorSeparator","display","dropdownIndicator","padding","valueContainer","height","fontSize","color","control","classNamePrefix","isDisabled","isSearchable","isMobile","theme","primary25","primary","danger","MIN_YEARS_BEFORE_TODAY","I18N_MONTHS","prefix","map","m","DropdownDatePicker","dateMax","dateSelected","dateChangeCallback","erroredControls","required","focusTarget","enableDefaultFocus","correctedDateMax","isNil","dateYearsAgo","YOUNGEST_AGE_ON_PLATFORM","getDate","day","setDay","getMonth","month","setMonth","getFullYear","year","setYear","yearMax","monthMax","daySelectDefault","monthSelectDefault","yearSelectDefault","intArray","min","max","Array","from","length","_","i","numDaysInMonth","y","Date","blankOption","label","dayOptions","forEach","d","push","toString","monthOptions","yearOptions","reverse","defaultFocus","monthSelector","key","find","o","newMonth","newDay","includes","daySelector","yearSelector","newYear","classNames","join","buildSelectors","navigator","userLanguage","language","dob","setDob","setErroredControls","errorMessage","setErrorMessage","copyCantMakeAccount","properties","source","isCompleteDate","result","prev","dateWithoutTime","date","toDateString","isAllowedAge","inputDate","today","minDate","remove","arr","splice","Modal","isOpen","onDismiss","hasClose","id","Tooltip","position","NavigationHelpNormalXsmall","Button","dob_complete","dob_allowed","createNetworkingClient","post","age_gate_year","age_gate_month","age_gate_day","then","response","status","catch","LOCALE","man","woman","preferNotSay","nonBinary","enUS","frFR","deDE","esES","ptBR","ruRU","itIT","jaJP","es419","koKR","nlNL","zhTW","ptPT","zhCN","trackV2","category","Strava","ExternalAnalytics","logMessage","titleize","str","s","txt","charAt","toUpperCase","substr","toLowerCase","displayName","firstName","lastName","forceAnonymize","maxLength","fullName","substring","trim","userAgent","years","setFullYear","getPhotoWithMaxDimension","photoUrlHash","keys","reduce","a","b","generateRandomId","Math","random","parseServerDateString","dobArray","split","parseInt","baseUrl","port","protocol","hostname","csrfToken","getAttribute","axios","timeout","headers","REGISTRATION_PAGE","attrs","getBackgroundName","classList","item"],"sourceRoot":""}