{"version":3,"file":"js/strava_for_legal-f61636eedbfa639d5507.js","mappings":"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","sources":["webpack://StravaModern/./app/javascript/coreLibraries.js","webpack://StravaModern/./app/javascript/globalLibraries.js","webpack://StravaModern/./app/javascript/components/CookieSettingsForm/CookieSettingsForm.scss?e772","webpack://StravaModern/./app/javascript/components/CookieSettingsForm/CookieSettingsForm.js","webpack://StravaModern/./app/javascript/components/CookieSettingsForm/index.js","webpack://StravaModern/./app/javascript/packs/strava_for_legal.js","webpack://StravaModern/./app/javascript/utils/networking-client.js","webpack://StravaModern/./app/javascript/utils/public-service-env.js","webpack://StravaModern/./node_modules/@strava/ui/Button/Button.tsx","webpack://StravaModern/./node_modules/@strava/ui/Button/LinkButton.tsx","webpack://StravaModern/./node_modules/@strava/ui/Button/Button.module.scss?471e"],"sourcesContent":["//\n// This file contains imports, such as React and other 3rd party libraries,\n// that do not change frequently.\n//\n// adding random string to force recompile:\n// A998D3152224818D225A880A9B627F1FB4484DD7E408EACA1B243326ED4AA01B\n// General polifyll's\nimport 'core-js/es6/array';\n// React polifyll's\nimport 'core-js/es6/promise'; // for IE 11 and below\nimport 'core-js/es6/map';\nimport 'core-js/es6/set';\nimport 'core-js/modules/es6.object.assign';\nimport 'core-js/es6/string';\nimport 'raf/polyfill';\n// React core\nimport 'react';\nimport 'react-dom';\n/* eslint-disable no-unused-vars */\nimport PropTypes from 'prop-types';\n// Utils\nimport ReactComponentMounter from './utils/react-component-mounter';\nimport Microfrontend from './apps/Microfrontend';\n\nReactComponentMounter.register({\n Microfrontend\n});\n","// This file is deprecated and only used to move node_modules accessed in the\n// sprockets asset pipeline to webpack entry points\n// adding random string to force recompile:\n// A998D3152224818D225A880A9B627F1FB4484DD7E408EACA1B243326ED4AA01B\n\n// importing jquery using script-loader to mimic adding jQuery via a script tag\n/* eslint-disable no-unused-vars,import/extensions */\nimport 'jquery/dist/jquery.min.js';\nimport 'leaflet/dist/leaflet.js';\nimport 'dexie/dist/dexie.min.js';\nimport 'intersection-observer/intersection-observer.js';\nimport '@strava/autotrack/autotrack.js';\nimport 'dropzone/dist/dropzone.js';\nimport 'blueimp-load-image/js/load-image.all.min.js';\nimport 'dropzone/dist/min/dropzone.min.css';\n\nimport { setPublicServiceEnv } from './utils/public-service-env';\nimport { devLog, isDev } from './utils/devUtils';\n\nimport { logError } from './utils/sentry';\n\n// Expose method on global scope that sets public keys that are commonly passed\n// to 3rd party libs or tooling.\nif (window.stravaPublicServiceEnv === undefined) {\n window.stravaPublicServiceEnv = setPublicServiceEnv;\n}\n\n// check if global libraries are being loaded multiple times.\n// Loading the libs might cause issues like https://reactjs.org/docs/error-decoder.html/?invariant=321\n// since react is loaded twice etc\nif (window.globalLibsLoaded === undefined) {\n window.globalLibsLoaded = true;\n} else if (isDev()) {\n // eslint-disable-next-line no-alert\n alert(\n 'WARNING: global libraries are loaded twice on this page. This could cause react errors.'\n );\n} else {\n logError(\n new Error(`global libraries are loaded twice on - ${window.location.href}`)\n );\n}\n\ndevLog('loading global libraries');\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"CookieSettingsForm--wrapper--+da4L\",\"switch\":\"CookieSettingsForm--switch--GnQsW\",\"button\":\"CookieSettingsForm--button--01ZHv\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from 'utils/I18n';\nimport Button from '@strava/ui/Button';\nimport Switch from '@strava/ui/Switch';\nimport createNetworkingClient from '../../utils/networking-client';\nimport styles from './CookieSettingsForm.scss';\n\nconst CookieSettingsForm = ({ allCookiesAccepted, isLoggedIn }) => {\n const [cookiePreferences, setCookiePreferences] = React.useState({\n performanceAndAnalytics: allCookiesAccepted,\n targetingAndMarketing: allCookiesAccepted\n });\n\n const handleCookieUpdate = (cookieType, value) => {\n setCookiePreferences({\n ...cookiePreferences,\n [cookieType]: value\n });\n };\n\n // TODO: This is _not_ the final implementation of the cookie preference\n // update logic. We'll need to update this method to use the new field names\n // once they're available. Currently, this just updates the existing preference\n // field in a way that won't break anything.\n const handleSave = async () => {\n const preference =\n cookiePreferences.performanceAndAnalytics &&\n cookiePreferences.targetingAndMarketing;\n\n if (!isLoggedIn) {\n const cookieExpiration = new Date();\n cookieExpiration.setFullYear(cookieExpiration.getFullYear() + 1);\n\n let domain;\n if (/localhost/.test(window.location.hostname)) {\n domain = 'localhost';\n } else if (/staging\\./.test(window.location.hostname)) {\n domain = '.staging.strava.com';\n } else {\n domain = '.strava.com';\n }\n\n document.cookie =\n `_strava_cbv3=${preference};` +\n `expires=${cookieExpiration.toString()};` +\n `domain=${domain};` +\n `path=/;`;\n\n return;\n }\n\n await createNetworkingClient().put('/frontend/athlete/preferences', {\n allow_nonessential_cookies_v3: preference\n });\n };\n\n return (\n
\n

{I18n.t('legal.cookie_settings.title')}

\n

\n {I18n.t_html('legal.cookie_settings.description_html', {\n cookie_policy_url: 'https://www.strava.com/legal/cookie_policy'\n })}\n

\n\n
\n\n

{I18n.t('legal.cookie_settings.performance_and_analytics.title')}

\n
\n

\n {I18n.t(\n 'legal.cookie_settings.performance_and_analytics.description'\n )}\n

\n {\n handleCookieUpdate(\n 'performanceAndAnalytics',\n !cookiePreferences.performanceAndAnalytics\n );\n }}\n />\n
\n\n
\n\n

{I18n.t('legal.cookie_settings.targeting_and_marketing.title')}

\n
\n

\n {I18n.t('legal.cookie_settings.targeting_and_marketing.description')}\n

\n {\n handleCookieUpdate(\n 'targetingAndMarketing',\n !cookiePreferences.targetingAndMarketing\n );\n }}\n />\n
\n\n \n
\n );\n};\n\nCookieSettingsForm.propTypes = {\n allCookiesAccepted: PropTypes.bool,\n isLoggedIn: PropTypes.bool\n};\n\nconst CookieSettingsFormWrapper = ({\n allowNonessentialCookies,\n isLoggedIn\n}) => {\n let allCookiesAccepted = allowNonessentialCookies;\n\n if (allowNonessentialCookies === null) {\n // If the user is not logged in, check for the cookie value that indicates\n // if they have accepted non essential cookies.\n const cookie =\n document.cookie\n .split(';')\n .find((c) => c.trim().startsWith('_strava_cbv3='))\n ?.split('=')[1] ?? null;\n\n allCookiesAccepted = cookie && cookie === 'true';\n }\n\n return (\n \n );\n};\n\nCookieSettingsFormWrapper.propTypes = {\n allowNonessentialCookies: PropTypes.bool,\n isLoggedIn: PropTypes.bool\n};\n\nexport default CookieSettingsFormWrapper;\n","export { default } from './CookieSettingsForm';\n","import '../globalLibraries';\nimport '../coreLibraries';\n\nimport ReactComponentMounter from '../utils/react-component-mounter';\nimport CookieSettingsForm from '../components/CookieSettingsForm';\n\nReactComponentMounter.register({\n CookieSettingsForm\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","// Object containing no secret key value pairs that are expected to be seen and\n// used in the browser. This keys are commonly passed to 3rd party libs or tooling.\n//\n// Data that gets set to this object is set in the following file:\n// app/views/common/_react_public_service_env.haml\n//\n// Do not set values directly into this object here as that is not intended use\nconst publicServiceEnv = {};\n\n/**\n * Sets data to an object and freezes it on the initial call.\n * @param {Object} envData Object containing key value pairs that are not nested objects\n */\nfunction setPublicServiceEnv(envData) {\n // Only update the object if it's empty as we do not want to allow any updated\n // after the initial call to this method\n if (Object.keys(publicServiceEnv).length === 0) {\n const keys = Object.keys(envData);\n\n if (keys.length > 0) {\n keys.forEach((value) => {\n publicServiceEnv[value] = envData[value];\n });\n\n // Freeze object so that it can not be updated or changed\n Object.freeze(publicServiceEnv);\n }\n }\n}\n\nexport { publicServiceEnv, setPublicServiceEnv };\n","import React, { ReactNode } from 'react';\n\nimport styles from './Button.module.scss';\nimport clsx from '../clsx';\n\nexport const buttonVariants = [\n 'default',\n 'text',\n 'icon',\n 'primaryOutline',\n 'primary',\n 'secondary'\n] as const;\nexport type ButtonVariant = (typeof buttonVariants)[number];\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n children: ReactNode;\n variant?: ButtonVariant;\n className?: string;\n}\n\nexport const Button = React.forwardRef(\n ({ children, className, variant = 'default', ...props }, ref) => (\n \n {children}\n \n )\n);\n\nexport default Button;\n","import React, { ComponentPropsWithoutRef, forwardRef } from 'react';\n\nimport clsx from '../clsx';\nimport { ButtonProps } from './Button';\nimport styles from './Button.module.scss';\n\nexport type LinkButtonProps = ButtonProps & ComponentPropsWithoutRef<'a'>;\n\nexport const LinkButton = forwardRef(\n ({ href, children, className, variant = 'default', ...otherProps }, ref) => {\n return (\n \n {children}\n \n );\n }\n);\n\nexport default LinkButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"btn\":\"Button--btn--psP-o\",\"default\":\"Button--default--OIEUT\",\"primary\":\"Button--primary--js2Gt\",\"primaryOutline\":\"Button--primaryOutline--EcwFT\",\"secondary\":\"Button--secondary--OBfOC\",\"icon\":\"Button--icon--PxM4k\",\"text\":\"Button--text--6SyCP\"};"],"names":["cov_2rfth1sbl9","ReactComponentMounter","register","Microfrontend","cov_24hcbxduh8","undefined","window","stravaPublicServiceEnv","setPublicServiceEnv","globalLibsLoaded","isDev","alert","logError","Error","location","href","devLog","cov_1qjhwr2iq","CookieSettingsForm","_ref","allCookiesAccepted","isLoggedIn","React","performanceAndAnalytics","targetingAndMarketing","cookiePreferences","setCookiePreferences","handleCookieUpdate","cookieType","value","handleSave","preference","cookieExpiration","Date","setFullYear","getFullYear","test","hostname","domain","document","cookie","toString","createNetworkingClient","put","allow_nonessential_cookies_v3","I18n","t","t_html","cookie_policy_url","className","styles","Switch","checked","onClick","Button","variant","_ref2","allowNonessentialCookies","split","find","c","trim","startsWith","cov_23u52gfb2d","cov_oofm9qtoq","cov_1d4dxkq6n5","baseUrl","port","protocol","csrfToken","querySelector","getAttribute","options","axios","timeout","headers","cov_1nmpizsroc","publicServiceEnv","envData","Object","keys","length","forEach","freeze","ref","children","props","clsx","btn","forwardRef","otherProps"],"sourceRoot":""}