{"version":3,"file":"js/18010-2bcbee04d2cb13af971d.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/apps/Microfrontend/index.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 ExperimentContext,\n TranslationContext\n} = ContainerContext;\n\nconst { Provider: AnalyticsProvider } = AnalyticsContext;\nconst { Provider: TranslationProvider } = TranslationContext;\nconst { Provider: ErrorLoggingProvider } = ErrorLoggingContext;\nconst { Provider: ExperimentProvider } = ExperimentContext;\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 experiments\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 experimentContext = React.useContext(ExperimentContext).experiment ?? {\n getExperiment: (name) => experiments[name]\n };\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