@entur-partner/app-shell 6.0.5-alpha.5 → 6.0.5-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { Consents } from '@entur-partner/micro-frontend';
2
+ import { Consents } from './types/ConsentTypes';
3
3
  declare global {
4
4
  interface Window {
5
5
  UC_UI: {
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n\nexport interface Consents {\n Usercentrics: {\n consentGiven: boolean;\n };\n PostHog: {\n consentGiven: boolean;\n };\n Sentry: {\n consentGiven: boolean;\n };\n}\n","import { assertIsDefined } from '@entur-partner/util';\n\nimport {\n Consents,\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n Consents,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","sent","t0","console","stop","apply","this","arguments","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","_window$location","window","location","logoutParams","returnTo","protocol","hostname","port","getToken","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","useContext","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","_ref3","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","ConsentContext","useConsentManager","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","_useOrganisationState","Number","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n\nexport interface Consents {\n Usercentrics: {\n consentGiven: boolean;\n };\n PostHog: {\n consentGiven: boolean;\n };\n Sentry: {\n consentGiven: boolean;\n };\n}\n","import { assertIsDefined } from '@entur-partner/util';\n\nimport {\n Consents,\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n Consents,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","sent","t0","console","stop","apply","this","arguments","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","_window$location","window","location","logoutParams","returnTo","protocol","hostname","port","getToken","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","useContext","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","_ref3","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","ConsentContext","useConsentManager","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","_useOrganisationState","Number","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n\nexport interface Consents {\n Usercentrics: {\n consentGiven: boolean;\n };\n PostHog: {\n consentGiven: boolean;\n };\n Sentry: {\n consentGiven: boolean;\n };\n}\n","import { assertIsDefined } from '@entur-partner/util';\n\nimport {\n Consents,\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\n\nimport { ucUiStorage } from './storage';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n Consents,\n} from './types/ConsentTypes';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider } from 'posthog-js/react';\n\nimport { useConsentManager } from './ConsentManagerProvider';\n\ntype Props = {\n /**\n * Debug mode for PostHog.\n */\n debug?: boolean;\n /**\n * PostHog API key for initializing the PostHog client.\n * If not provided, PostHog will not be initialized.\n */\n postHogApiKey?: string;\n /**\n * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n */\n isStandalone: boolean;\n /**\n * Optional project identifier for PostHog.\n * This can be used to differentiate between different projects in PostHog.\n */\n project?: string;\n /**\n * Flag to force disable PostHog tracking.\n * If true, PostHog will not be initialized even if postHogApiKey is provided.\n */\n forceDisablePostHog?: boolean;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n debug = false,\n postHogApiKey,\n isStandalone,\n project,\n forceDisablePostHog = false,\n children,\n}: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey || forceDisablePostHog) {\n return;\n }\n\n if (consents?.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n // If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n if (!postHogApiKey || forceDisablePostHog) {\n if (!forceDisablePostHog) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n } else {\n console.warn(\n 'AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.'\n );\n }\n\n return <>{children}</>;\n }\n\n postHog.init(\n postHogApiKey,\n {\n debug,\n api_host: isStandalone ? 'https://eu.posthog.com' : '/ingest',\n ui_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n },\n project\n );\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","PostHogProvider","client"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,6 @@ export { languageStorage, organisationStorage } from './storage';
7
7
  export { OrganisationSelector, OrganisationSelectorProps, GetOrganisationsFn, } from './OrganisationSelector';
8
8
  export { OrganisationsError } from './OrganisationsError';
9
9
  export { Auth0User, DecorateUserFn } from './types/UserTypes';
10
+ export { Consents } from './types/ConsentTypes';
10
11
  export { ConsentManagerProvider, useConsentManager, } from './ConsentManagerProvider';
11
12
  export { PostHogProviderWrapper } from './PostHogProviderWrapper';
@@ -20,3 +20,14 @@ export interface UCDataConsentDataFromLocalStorage {
20
20
  };
21
21
  }
22
22
  export type UCServiceArray = Array<UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]>;
23
+ export interface Consents {
24
+ Usercentrics: {
25
+ consentGiven: boolean;
26
+ };
27
+ PostHog: {
28
+ consentGiven: boolean;
29
+ };
30
+ Sentry: {
31
+ consentGiven: boolean;
32
+ };
33
+ }
@@ -1,5 +1,4 @@
1
- import { Consents } from '@entur-partner/micro-frontend';
2
- import { ServiceConsent, UCServiceArray } from '../types/ConsentTypes';
1
+ import { Consents, ServiceConsent, UCServiceArray } from '../types/ConsentTypes';
3
2
  export declare const DEFAULT_CONSENT_GIVEN: {
4
3
  readonly Usercentrics: {
5
4
  readonly consentGiven: false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/app-shell",
3
- "version": "6.0.5-alpha.5",
3
+ "version": "6.0.5-alpha.6",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/app-shell.esm.js",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@auth0/auth0-react": "^2.2.4",
37
37
  "@entur-partner/common": "^9.1.0",
38
- "@entur-partner/micro-frontend": "^2.4.10-alpha.4",
38
+ "@entur-partner/micro-frontend": "^2.4.10-alpha.5",
39
39
  "@entur-partner/util": "^1.2.4"
40
40
  },
41
41
  "devDependencies": {
@@ -52,5 +52,5 @@
52
52
  "reportFile": "jest-sonar-report.xml",
53
53
  "indent": 4
54
54
  },
55
- "gitHead": "8aa11f6e37591d6c7589ddd951ada5c40f1a3ad5"
55
+ "gitHead": "e419f7e16a22dae09ece0d036a3e81509b9852fd"
56
56
  }