{"version":3,"file":"js/58603-7632c062624ae96b60b1.js","mappings":"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","sources":["webpack://StravaModern/./app/javascript/apps/Microfrontend/styles.scss?dd46","webpack://StravaModern/./app/javascript/apps/Microfrontend/Microfrontend.js","webpack://StravaModern/./app/javascript/utils/Cldr.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"mfcontainer\":\"Microfrontend--mfcontainer--Sw1H-\"};","import * as ContainerContext from '@strava/container-context';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport Cldr from '../../utils/Cldr';\nimport { devLog } from '../../utils/devUtils';\nimport I18n from '../../utils/I18n';\nimport {\n logError,\n logMessage,\n setTag,\n setTags,\n setContext,\n withScope\n} from '../../utils/sentry';\nimport styles from './styles.scss';\n\n// eslint-disable-next-line no-underscore-dangle\nwindow.__mfe_containers__ ??= {};\n\nconst ENTRY_ERROR_CODE_GENERAL = 0;\n\nconst ENTRY_ERROR_CODE_NETWORK = 1;\n\nconst DEFAULT_ACTIVE_SHARE_SCOPE = {\n react: {\n [React.version]: {\n get: () => () => React,\n from: 'webpack4',\n loaded: true,\n singleton: true\n }\n },\n '@strava/container-context': {\n // eslint-disable-next-line no-undef\n [CONTAINER_CONTEXT_VERSION]: {\n get: () => () => ContainerContext,\n from: 'webpack4',\n loaded: true,\n singleton: true\n }\n }\n};\n\nconst DEFAULT_ANALYTICS_CONTEXT_VALUE = {\n track: (data) => window.Strava.ExternalAnalytics.trackV2(data)\n};\n\nconst DEFAULT_TRANSLATION_CONTEXT_VALUE = {\n t: (key, props = {}) => I18n.t(key, props),\n getLanguage: () => I18n.language(),\n Cldr\n};\n\nconst DEFAULT_ERROR_LOGGING_CONTEXT_VALUE = {\n logError,\n logMessage,\n setContext,\n setTag,\n setTags,\n withScope\n};\n\nconst {\n AnalyticsContext,\n ErrorLoggingContext,\n TranslationContext\n} = ContainerContext;\n\nconst { Provider: AnalyticsProvider } = AnalyticsContext;\nconst { Provider: TranslationProvider } = TranslationContext;\nconst { Provider: ErrorLoggingProvider } = ErrorLoggingContext;\n\nconst isNil = (value) => value === null || value === undefined;\n\nconst isFunction = (value) => typeof value === 'function';\n\nconst hasProperty = (object, property) =>\n Object.prototype.hasOwnProperty.call(object, property);\n\nconst resolveRemoteContainer = ({\n shareScope = {},\n remoteEntry,\n containerName\n}) => {\n // eslint-disable-next-line no-underscore-dangle\n const containers = window.__mfe_containers__;\n\n containers[containerName] ??= new Promise((resolve, reject) => {\n const headEl = document.querySelector('head');\n const scriptEl = document.createElement('script');\n\n const onEntryError = (error, code = ENTRY_ERROR_CODE_GENERAL) => {\n if (error instanceof Error) {\n reject(error);\n } else {\n const entryError = new Error(error);\n\n entryError.name = 'MfeError';\n entryError.code = code;\n\n reject(entryError);\n }\n };\n\n const onEntryLoaded = () => {\n if (!hasProperty(window, containerName)) {\n onEntryError(\n `Remote container with name \"${containerName}\" does not exist.`\n );\n return;\n }\n\n const container = window[containerName];\n\n if (isNil(container)) {\n onEntryError(`Remote container with name \"${containerName}\" is nil.`);\n return;\n }\n\n if (!isFunction(container.get) || !isFunction(container.init)) {\n onEntryError(\n `Remote container with name \"${containerName}\" is invalid.`\n );\n return;\n }\n\n Promise.resolve(container.init(shareScope))\n .catch(onEntryError)\n .then(() => {\n resolve(container);\n devLog(`MFE Loaded:\\n${containerName}\\n${remoteEntry}`);\n });\n };\n\n scriptEl.src = remoteEntry;\n scriptEl.type = 'text/javascript';\n scriptEl.async = true;\n\n scriptEl.addEventListener('load', () => onEntryLoaded());\n scriptEl.addEventListener('error', () =>\n onEntryError(\n `Remote container with name \"${containerName}\" failed to load.`,\n ENTRY_ERROR_CODE_NETWORK\n )\n );\n\n headEl.appendChild(scriptEl);\n });\n\n return containers[containerName];\n};\n\nconst createFederatedComponent = (options) => {\n const {\n mfeStatus,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n } = options;\n\n return React.lazy(() => {\n const onBeforeUnload = () => {\n window.removeEventListener('beforeunload', onBeforeUnload);\n mfeStatus.isUnloading = true;\n };\n\n const cleanup = () => {\n window.removeEventListener('beforeunload', onBeforeUnload);\n };\n\n const tapReject = (error) => {\n cleanup();\n return Promise.reject(error);\n };\n\n mfeStatus.isResolving = true;\n\n window.addEventListener('beforeunload', onBeforeUnload);\n\n return resolveRemoteContainer({\n shareScope,\n remoteEntry,\n containerName\n })\n .catch(tapReject)\n .then((container) => {\n const moduleFactory = Promise.resolve(container.get(containerRequest))\n .catch(tapReject)\n .then((value) => {\n cleanup();\n\n mfeStatus.isResolving = false;\n\n return Promise.resolve(value);\n });\n\n return moduleFactory.then((resolveModule) => resolveModule());\n });\n });\n};\n\nclass MfeErrorBoundary extends React.Component {\n static contextType = ErrorLoggingContext;\n\n state = { error: false };\n\n static getDerivedStateFromError = (error) => ({ error });\n\n componentDidCatch(error, { componentStack }) {\n if (this.isFalsePositiveNetworkError(error)) {\n return;\n }\n\n const { shareScope } = this.props;\n\n const { logError: logException = logError } =\n /** @type {{ logError?: typeof logError }} */ (this.context ?? {});\n\n logException(error, {\n contexts: {\n contexts: {\n react: { componentStack },\n microfrontend: {\n // eslint-disable-next-line no-underscore-dangle\n containers: Object.keys(window.__mfe_containers__),\n shareScope: JSON.stringify(\n Object.keys(shareScope).reduce(\n (memo, current) => ({\n ...memo,\n [current]: Object.keys(shareScope[current])\n }),\n {}\n ),\n null,\n 2\n )\n }\n }\n }\n });\n }\n\n isFalsePositiveNetworkError(error) {\n const { mfeStatus } = this.props;\n const { isUnloading, isResolving } = mfeStatus;\n\n const isChunkLoadError = error.name === 'ChunkLoadError';\n const isMfeNetworkError =\n error.name === 'MfeError' && error.code === ENTRY_ERROR_CODE_NETWORK;\n\n return (\n (isUnloading || isResolving) && (isChunkLoadError || isMfeNetworkError)\n );\n }\n\n render() {\n const { error } = this.state;\n const { children } = this.props;\n\n if (error) {\n return null;\n }\n\n return children;\n }\n}\n\nMfeErrorBoundary.propTypes = {\n children: PropTypes.element.isRequired,\n mfeStatus: PropTypes.shape({\n isUnloading: PropTypes.bool.isRequired,\n isResolving: PropTypes.bool.isRequired\n }).isRequired,\n shareScope: PropTypes.shape({}).isRequired\n};\n\nconst Microfrontend = ({\n url: remoteEntry,\n scope: containerName,\n component: containerRequest,\n appContext\n}) => {\n const isMountedRef = React.useRef(false);\n const mfeStatusRef = React.useRef({ isUnloading: false, isResolving: false });\n const shareScope = DEFAULT_ACTIVE_SHARE_SCOPE;\n const analyticsContext =\n React.useContext(AnalyticsContext) ?? DEFAULT_ANALYTICS_CONTEXT_VALUE;\n const translationContext =\n React.useContext(TranslationContext) ?? DEFAULT_TRANSLATION_CONTEXT_VALUE;\n const errorLoggingContext =\n React.useContext(ErrorLoggingContext) ??\n DEFAULT_ERROR_LOGGING_CONTEXT_VALUE;\n\n const wrappedErrorLoggingContext = React.useMemo(() => {\n const {\n logError: originalLogError,\n logMessage: originalLogMessage\n } = errorLoggingContext;\n\n /** @type {typeof logError} */\n const wrappedLogError = (exception, captureContext) => {\n withScope((scope) => {\n scope.setTags({\n 'mfe.name': containerName,\n 'mfe.request': containerRequest,\n 'mfe.remoteEntry': remoteEntry\n });\n\n originalLogError(exception, captureContext);\n });\n };\n\n /** @type {typeof logMessage} */\n const wrappedLogMessage = (exception, captureContext) => {\n withScope((scope) => {\n scope.setTags({\n 'mfe.name': containerName,\n 'mfe.request': containerRequest,\n 'mfe.remoteEntry': remoteEntry\n });\n\n originalLogMessage(exception, captureContext);\n });\n };\n\n return {\n ...errorLoggingContext,\n logError: wrappedLogError,\n logMessage: wrappedLogMessage,\n setContext,\n setTag,\n setTags,\n withScope\n };\n }, [containerName, containerRequest, remoteEntry, errorLoggingContext]);\n\n const [\n { errorBoundaryKey, FederatedComponent },\n updateMfeState\n ] = React.useState(() => ({\n errorBoundaryKey: 0,\n FederatedComponent: createFederatedComponent({\n mfeStatus: mfeStatusRef.current,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n })\n }));\n\n React.useEffect(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n updateMfeState(({ errorBoundaryKey: currentBoundaryKey }) => ({\n errorBoundaryKey: currentBoundaryKey + 1,\n FederatedComponent: createFederatedComponent({\n mfeStatus: mfeStatusRef.current,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n })\n }));\n }, [\n shareScope,\n remoteEntry,\n isMountedRef,\n mfeStatusRef,\n containerName,\n containerRequest\n ]);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, [isMountedRef]);\n\n return (\n
\n \n \n \n \n\n \n \n \n \n \n \n \n
\n );\n};\n\nMicrofrontend.propTypes = {\n url: PropTypes.string.isRequired,\n scope: PropTypes.string.isRequired,\n component: PropTypes.string.isRequired,\n appContext: PropTypes.shape({}).isRequired\n};\n\nexport default Microfrontend;\n","export default {\n calendar: {\n weekdays(...args) {\n const calendar = window.TwitterCldr.Calendar;\n return calendar.weekdays.call(calendar, ...args);\n }\n },\n formatCurrency(amount, currency) {\n const currencyFormatter = new window.TwitterCldr.CurrencyFormatter();\n return currencyFormatter.format(amount, { currency });\n },\n formatDateTime(date, options) {\n const dateTimeFormatter = new window.TwitterCldr.DateTimeFormatter();\n return dateTimeFormatter.format(date, options);\n },\n formatDecimal(value, precision) {\n const decimalFormatter = new window.TwitterCldr.DecimalFormatter();\n return decimalFormatter.format(value, { precision });\n },\n formatTimespan(time, options) {\n const timespanFormatter = new window.TwitterCldr.TimespanFormatter();\n return timespanFormatter.format(\n time - Math.round(Date.now() / 1000),\n options\n );\n }\n};\n"],"names":["cov_1puxbgw8ju","window","__mfe_containers__","ENTRY_ERROR_CODE_GENERAL","ENTRY_ERROR_CODE_NETWORK","DEFAULT_ACTIVE_SHARE_SCOPE","react","React","get","from","loaded","singleton","CONTAINER_CONTEXT_VERSION","ContainerContext","DEFAULT_ANALYTICS_CONTEXT_VALUE","track","data","Strava","ExternalAnalytics","trackV2","DEFAULT_TRANSLATION_CONTEXT_VALUE","t","key","props","I18n","getLanguage","Cldr","DEFAULT_ERROR_LOGGING_CONTEXT_VALUE","logError","logMessage","setContext","setTag","setTags","withScope","AnalyticsContext","ErrorLoggingContext","TranslationContext","AnalyticsProvider","Provider","TranslationProvider","ErrorLoggingProvider","isFunction","value","resolveRemoteContainer","_ref","shareScope","remoteEntry","containerName","containers","Promise","resolve","reject","headEl","document","querySelector","scriptEl","createElement","onEntryError","error","code","Error","entryError","name","onEntryLoaded","object","property","Object","prototype","hasOwnProperty","call","hasProperty","container","undefined","init","catch","then","devLog","src","type","async","addEventListener","appendChild","createFederatedComponent","options","mfeStatus","containerRequest","onBeforeUnload","removeEventListener","isUnloading","cleanup","tapReject","isResolving","moduleFactory","resolveModule","MfeErrorBoundary","constructor","state","componentDidCatch","_ref2","componentStack","this","isFalsePositiveNetworkError","context","logException","contexts","microfrontend","keys","JSON","stringify","reduce","memo","current","isChunkLoadError","isMfeNetworkError","render","children","contextType","getDerivedStateFromError","_ref3","url","scope","component","appContext","isMountedRef","mfeStatusRef","analyticsContext","translationContext","errorLoggingContext","wrappedErrorLoggingContext","originalLogError","originalLogMessage","wrappedLogError","exception","captureContext","wrappedLogMessage","errorBoundaryKey","FederatedComponent","updateMfeState","_ref4","currentBoundaryKey","className","styles","fallback","cov_2d11z1jmpr","calendar","weekdays","TwitterCldr","Calendar","args","_key","arguments","formatCurrency","amount","currency","currencyFormatter","CurrencyFormatter","format","formatDateTime","date","dateTimeFormatter","DateTimeFormatter","formatDecimal","precision","decimalFormatter","DecimalFormatter","formatTimespan","time","timespanFormatter","TimespanFormatter","Math","round","Date","now"],"sourceRoot":""}