@entur-partner/app-shell 6.0.5-alpha.1 → 6.0.5-alpha.2

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.
@@ -10,7 +10,6 @@ var tokens = require('@entur/tokens');
10
10
  var auth0React = require('@auth0/auth0-react');
11
11
  var common = require('@entur-partner/common');
12
12
  var util = require('@entur-partner/util');
13
- var reactRouter = require('react-router');
14
13
 
15
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
15
 
@@ -884,7 +883,6 @@ var useConsentManager = function useConsentManager() {
884
883
  };
885
884
  var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
886
885
  var children = _ref.children;
887
- var navigate = reactRouter.useNavigate();
888
886
  var _useState = React.useState(DEFAULT_CONSENT_GIVEN),
889
887
  consentManager = _useState[0],
890
888
  setConsentManager = _useState[1];
@@ -917,7 +915,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
917
915
  return _extends({}, acc, curr);
918
916
  }, DEFAULT_CONSENT_GIVEN);
919
917
  setConsentManager(updatedConsentManager);
920
- navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated
918
+ window.location.href = '/';
921
919
  case 7:
922
920
  case "end":
923
921
  return _context.stop();
@@ -932,7 +930,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
932
930
  return function () {
933
931
  return window.removeEventListener('UC_CONSENT', handleConsentEvent);
934
932
  };
935
- }, [navigate]);
933
+ }, []);
936
934
  return React__default["default"].createElement(ConsentContext.Provider, {
937
935
  value: consentManager
938
936
  }, children);
@@ -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/ConsentManagerProvider.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 './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","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","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\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","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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","useNavigate","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"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/ConsentManagerProvider.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 './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","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","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider'\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\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"],"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","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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@entur/alert"),r=require("@entur/typography"),n=require("@entur/loader"),o=require("@entur/tokens"),a=require("@auth0/auth0-react"),i=require("@entur-partner/common"),u=require("@entur-partner/util"),c=require("react-router");function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var l=s(t);function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function h(){h=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new k(n||[]);return o(a,"_invoke",{value:C(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",d="suspendedYield",g="executing",v="completed",y={};function m(){}function w(){}function x(){}var E={};s(E,i,(function(){return this}));var b=Object.getPrototypeOf,O=b&&b(b(N([])));O&&O!==r&&n.call(O,i)&&(E=O);var S=x.prototype=m.prototype=Object.create(E);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,a,i,u){var c=f(t[o],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function C(e,r,n){var o=p;return function(a,i){if(o===g)throw Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=I(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:d,s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return w.prototype=x,o(S,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=s(x,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,c,"GeneratorFunction")),t.prototype=Object.create(S),t},e.awrap=function(t){return{__await:t}},L(P.prototype),s(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new P(l(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(S),s(S,c,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),_(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function p(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function d(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){p(a,n,o,i,u,"next",t)}function u(t){p(a,n,o,i,u,"throw",t)}i(void 0)}))}}function g(){return g=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},g.apply(this,arguments)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},v(t)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function m(t){var e="function"==typeof Map?new Map:void 0;return m=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(f())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&y(o,r.prototype),o}(t,arguments,v(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),y(r,t)},m(t)}function w(t,e){if(null==t)return{};var r,n,o={},a=Object.keys(t);for(n=0;n<a.length;n++)e.indexOf(r=a[n])>=0||(o[r]=t[r]);return o}var x=function(t){return l.default.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(t.environment)}})},E=function(i){var c=i.children,s=i.decorateUser,f=t.useState(void 0),p=f[0],g=f[1],v=a.useAuth0(),y=v.user,m=v.getAccessTokenSilently,w=v.loginWithRedirect,x=v.logout,E=v.isLoading,b=v.isAuthenticated,O=v.error;return t.useEffect((function(){var t=function(){var t=d(h().mark((function t(){var e;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,m();case 3:return e=t.sent,t.next=6,s(y,e);case 6:g(t.sent),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(0),console.error("Error fetching user data:",t.t0);case 13:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();b&&t()}),[s,m,b,y]),E||b?E||!p?l.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Authenticating"):O?l.default.createElement(e.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},l.default.createElement(r.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",l.default.createElement(r.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),l.default.createElement(r.Paragraph,null,"Authentication failed with: ",l.default.createElement(r.CodeText,null,null==O?void 0:O.toString()))):(u.assertIsDefined(p),l.default.createElement(l.default.Fragment,null,c({user:p,logout:function(){return t=window.location,x({logoutParams:{returnTo:t.protocol+"//"+t.hostname+":"+t.port}});var t},getToken:m}))):(w(),l.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Redirecting to login page"))},b=["navigate","children","onClick","target"],O=l.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),S=function(){return t.useContext(O)},L="EP::activeOrgId",P={get:function(){return localStorage.getItem(L)},set:function(t){return localStorage.setItem(L,t)}},C="EP::locale",I={get:function(){return localStorage.getItem(C)},set:function(t){return localStorage.setItem(C,t)}},j=l.default.createContext(void 0),_=l.default.createContext(void 0),k=function(){var e=t.useContext(_);return u.assertIsDefined(e),e},N=function(t){function e(){for(var e,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).message="Failed fetching organisations",e}var r,n;return n=t,(r=e).prototype=Object.create(n.prototype),r.prototype.constructor=r,y(r,n),e}(m(Error)),F=["getToken","getOrganisations","selectedOrganisationId","onChange"],M={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},A={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},T=t.createContext(M);exports.AppShell=function(t){var e=t.children,r=t.environment;return l.default.createElement(a.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:window.location.origin,audience:t.audience}},l.default.createElement(E,{decorateUser:t.decorateUser},(function(t){return l.default.createElement(l.default.Fragment,null,r&&r!==i.Environment.Production&&l.default.createElement(x,{environment:r}),e(t))})))},exports.ConsentManagerProvider=function(e){var r=e.children,n=c.useNavigate(),o=t.useState(M),a=o[0],i=o[1];return t.useEffect((function(){var t=function(){var t=d(h().mark((function t(e){var r,o;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!=typeof window){t.next=2;break}return t.abrupt("return");case 2:r=Object.values(e.detail.services),o=r.map((function(t){var e,r,n=null==(e=Object.entries(A).find((function(e){return e[1]===t.name})))?void 0:e[0];return u.assertIsDefined(n,"Service name "+t.name+" not found in SERVICE_NAMES"),(r={})[n]={consentGiven:t.consent.given},r})).reduce((function(t,e){return g({},t,e)}),M),i(o),n("/");case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",t),function(){return window.removeEventListener("UC_CONSENT",t)}}),[n]),l.default.createElement(T.Provider,{value:a},r)},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){I.set(n)}),[n=r[0]]),[n,o]);return l.default.createElement(_.Provider,{value:{language:i[0],setLanguage:i[1]}},a)},exports.MenuProvider=function(e){var r=e.children,n=t.useState({}),o=n[0],a=n[1],i=t.useState({}),u=i[0],c=i[1],s=t.useCallback((function(t,e){a((function(r){var n;return g({},r,((n={})[e]=t,n))}))}),[a]);return l.default.createElement(O.Provider,{value:{addItems:s,getItemsForPath:function(t){var e;return null!=(e=o[t])?e:[]},getMFNavigate:function(t){return u[t]},setMFNavigate:function(t,e){return c((function(r){var n;return g({},r,((n={})[t]=e,n))}))}}},r)},exports.MicroFrontendLink=function(t){var e=t.navigate,r=t.children,n=t.onClick,o=t.target,a=w(t,b);return l.default.createElement("a",g({onClick:function(t){try{n&&n(t)}catch(e){throw t.preventDefault(),e}t.defaultPrevented||0!==t.button||o&&"_self"!==o||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||(t.preventDefault(),e())},target:o},a),r)},exports.OrganisationProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(Number(e.organisationId)))[1],t.useEffect((function(){P.set(n.toString())}),[n=r[0]]),[n,o]);return l.default.createElement(j.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(e){var r=e.getToken,o=e.getOrganisations,a=e.selectedOrganisationId,u=e.onChange,c=w(e,F),s=t.useState([]),f=s[0],p=s[1],v=k().language,y=t.useState("LOADING"),m=y[0],x=y[1];switch(t.useEffect((function(){var t=function(){var t=d(h().mark((function t(){var e,n;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r();case 2:if(e=t.sent,"string"!=typeof o){t.next=9;break}return t.next=6,fetch(o,{headers:{Authorization:"Bearer "+e,Accept:"application/json"}}).then((function(t){return t.json()}));case 6:n=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:n=t.sent;case 12:p(n),x("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){x("ERROR")}))}),[o,r]),m){case"LOADING":return l.default.createElement("div",{className:"eds-contrast"},l.default.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return l.default.createElement(i.OrganisationDropDown,g({label:"nb"===v||"nb-NO"===v?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:f,onChange:u},c));case"ERROR":throw new N;default:return null}},exports.OrganisationsError=N,exports.languageStorage=I,exports.organisationStorage=P,exports.useConsentManager=function(){var e=t.useContext(T);if(!e)throw new Error("useConsentManager must be used within a ConsentManagerProvider");return e},exports.useLanguage=k,exports.useMFNavigation=function(t){return(0,S().getMFNavigate)(t)},exports.useMenu=S,exports.useMenuGroupItems=function(e){return t.useContext(O).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(j);return u.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(j);return u.assertIsDefined(e),e.organisationId};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@entur/alert"),r=require("@entur/typography"),n=require("@entur/loader"),o=require("@entur/tokens"),a=require("@auth0/auth0-react"),i=require("@entur-partner/common"),u=require("@entur-partner/util");function c(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=c(t);function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function f(){f=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new k(n||[]);return o(a,"_invoke",{value:C(t,r,i)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",d="suspendedYield",g="executing",v="completed",y={};function m(){}function w(){}function x(){}var E={};s(E,i,(function(){return this}));var b=Object.getPrototypeOf,O=b&&b(b(N([])));O&&O!==r&&n.call(O,i)&&(E=O);var S=x.prototype=m.prototype=Object.create(E);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,a,i,u){var c=h(t[o],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function C(e,r,n){var o=p;return function(a,i){if(o===g)throw Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=I(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var s=h(e,r,n);if("normal"===s.type){if(o=n.done?v:d,s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return w.prototype=x,o(S,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=s(x,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,c,"GeneratorFunction")),t.prototype=Object.create(S),t},e.awrap=function(t){return{__await:t}},L(P.prototype),s(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new P(l(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(S),s(S,c,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),_(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function h(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function p(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){h(a,n,o,i,u,"next",t)}function u(t){h(a,n,o,i,u,"throw",t)}i(void 0)}))}}function d(){return d=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},d.apply(this,arguments)}function g(t){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},g(t)}function v(t,e){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},v(t,e)}function y(t){var e="function"==typeof Map?new Map:void 0;return y=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(l())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&v(o,r.prototype),o}(t,arguments,g(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),v(r,t)},y(t)}function m(t,e){if(null==t)return{};var r,n,o={},a=Object.keys(t);for(n=0;n<a.length;n++)e.indexOf(r=a[n])>=0||(o[r]=t[r]);return o}var w=function(t){return s.default.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(t.environment)}})},x=function(i){var c=i.children,l=i.decorateUser,h=t.useState(void 0),d=h[0],g=h[1],v=a.useAuth0(),y=v.user,m=v.getAccessTokenSilently,w=v.loginWithRedirect,x=v.logout,E=v.isLoading,b=v.isAuthenticated,O=v.error;return t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,m();case 3:return e=t.sent,t.next=6,l(y,e);case 6:g(t.sent),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(0),console.error("Error fetching user data:",t.t0);case 13:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();b&&t()}),[l,m,b,y]),E||b?E||!d?s.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Authenticating"):O?s.default.createElement(e.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},s.default.createElement(r.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",s.default.createElement(r.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),s.default.createElement(r.Paragraph,null,"Authentication failed with: ",s.default.createElement(r.CodeText,null,null==O?void 0:O.toString()))):(u.assertIsDefined(d),s.default.createElement(s.default.Fragment,null,c({user:d,logout:function(){return t=window.location,x({logoutParams:{returnTo:t.protocol+"//"+t.hostname+":"+t.port}});var t},getToken:m}))):(w(),s.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Redirecting to login page"))},E=["navigate","children","onClick","target"],b=s.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),O=function(){return t.useContext(b)},S="EP::activeOrgId",L={get:function(){return localStorage.getItem(S)},set:function(t){return localStorage.setItem(S,t)}},P="EP::locale",C={get:function(){return localStorage.getItem(P)},set:function(t){return localStorage.setItem(P,t)}},I=s.default.createContext(void 0),j=s.default.createContext(void 0),_=function(){var e=t.useContext(j);return u.assertIsDefined(e),e},k=function(t){function e(){for(var e,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).message="Failed fetching organisations",e}var r,n;return n=t,(r=e).prototype=Object.create(n.prototype),r.prototype.constructor=r,v(r,n),e}(y(Error)),N=["getToken","getOrganisations","selectedOrganisationId","onChange"],F={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},M={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},A=t.createContext(F);exports.AppShell=function(t){var e=t.children,r=t.environment;return s.default.createElement(a.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:window.location.origin,audience:t.audience}},s.default.createElement(x,{decorateUser:t.decorateUser},(function(t){return s.default.createElement(s.default.Fragment,null,r&&r!==i.Environment.Production&&s.default.createElement(w,{environment:r}),e(t))})))},exports.ConsentManagerProvider=function(e){var r=e.children,n=t.useState(F),o=n[0],a=n[1];return t.useEffect((function(){var t=function(){var t=p(f().mark((function t(e){var r,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!=typeof window){t.next=2;break}return t.abrupt("return");case 2:r=Object.values(e.detail.services),n=r.map((function(t){var e,r,n=null==(e=Object.entries(M).find((function(e){return e[1]===t.name})))?void 0:e[0];return u.assertIsDefined(n,"Service name "+t.name+" not found in SERVICE_NAMES"),(r={})[n]={consentGiven:t.consent.given},r})).reduce((function(t,e){return d({},t,e)}),F),a(n),window.location.href="/";case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",t),function(){return window.removeEventListener("UC_CONSENT",t)}}),[]),s.default.createElement(A.Provider,{value:o},r)},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){C.set(n)}),[n=r[0]]),[n,o]);return s.default.createElement(j.Provider,{value:{language:i[0],setLanguage:i[1]}},a)},exports.MenuProvider=function(e){var r=e.children,n=t.useState({}),o=n[0],a=n[1],i=t.useState({}),u=i[0],c=i[1],l=t.useCallback((function(t,e){a((function(r){var n;return d({},r,((n={})[e]=t,n))}))}),[a]);return s.default.createElement(b.Provider,{value:{addItems:l,getItemsForPath:function(t){var e;return null!=(e=o[t])?e:[]},getMFNavigate:function(t){return u[t]},setMFNavigate:function(t,e){return c((function(r){var n;return d({},r,((n={})[t]=e,n))}))}}},r)},exports.MicroFrontendLink=function(t){var e=t.navigate,r=t.children,n=t.onClick,o=t.target,a=m(t,E);return s.default.createElement("a",d({onClick:function(t){try{n&&n(t)}catch(e){throw t.preventDefault(),e}t.defaultPrevented||0!==t.button||o&&"_self"!==o||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||(t.preventDefault(),e())},target:o},a),r)},exports.OrganisationProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(Number(e.organisationId)))[1],t.useEffect((function(){L.set(n.toString())}),[n=r[0]]),[n,o]);return s.default.createElement(I.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(e){var r=e.getToken,o=e.getOrganisations,a=e.selectedOrganisationId,u=e.onChange,c=m(e,N),l=t.useState([]),h=l[0],g=l[1],v=_().language,y=t.useState("LOADING"),w=y[0],x=y[1];switch(t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r();case 2:if(e=t.sent,"string"!=typeof o){t.next=9;break}return t.next=6,fetch(o,{headers:{Authorization:"Bearer "+e,Accept:"application/json"}}).then((function(t){return t.json()}));case 6:n=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:n=t.sent;case 12:g(n),x("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){x("ERROR")}))}),[o,r]),w){case"LOADING":return s.default.createElement("div",{className:"eds-contrast"},s.default.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return s.default.createElement(i.OrganisationDropDown,d({label:"nb"===v||"nb-NO"===v?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:h,onChange:u},c));case"ERROR":throw new k;default:return null}},exports.OrganisationsError=k,exports.languageStorage=C,exports.organisationStorage=L,exports.useConsentManager=function(){var e=t.useContext(A);if(!e)throw new Error("useConsentManager must be used within a ConsentManagerProvider");return e},exports.useLanguage=_,exports.useMFNavigation=function(t){return(0,O().getMFNavigate)(t)},exports.useMenu=O,exports.useMenuGroupItems=function(e){return t.useContext(b).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(I);return u.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(I);return u.assertIsDefined(e),e.organisationId};
2
2
  //# sourceMappingURL=app-shell.cjs.production.min.js.map
@@ -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/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.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 './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","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, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\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"],"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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","_ref3","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","navigate","useNavigate","consentManager","setConsentManager","handleConsentEvent","event","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","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"],"mappings":"6/QAOO,IAAMA,EAAoB,SAAHC,GAC5B,OACEC,EACE,QAAAC,cAAA,MAAA,CAAAC,UAAU,yBACVC,MAAO,CACLC,SAAU,QACVC,OAAQ,KACRC,IAAK,EACLC,KAAM,EACNC,MAAO,EACPC,MAAO,QACPC,OAAQ,OACRC,gBAAiBC,EAAsBA,uBAZAb,EAAXc,eAgBpC,ECaMC,EAAsC,SAA1Bf,GAAyD,IAA5BgB,EAAQhB,EAARgB,SAAUC,EAAYjB,EAAZiB,aACvDC,EAAoDC,EAAQA,cAE1DC,GAFKC,EAAkBH,EAAA,GAAEI,EAAqBJ,EAAA,GAGhDK,EAQIC,EAAAA,WAPFC,EAAIF,EAAJE,KACAC,EAAsBH,EAAtBG,uBACAC,EAAiBJ,EAAjBI,kBACAC,EAAML,EAANK,OACAC,EAASN,EAATM,UACAC,EAAeP,EAAfO,gBACAC,EAAKR,EAALQ,MAmBF,OAhBAC,EAAAA,WAAU,WACR,IAAMC,EAAa,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,IAAA,IAAAC,EAAA,OAAAH,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEEjB,IAAwB,KAAA,EAAjC,OAALa,EAAKE,EAAAG,KAAAH,EAAAE,KAAA,EACiB1B,EAAaQ,EAAcc,GAAM,KAAA,EAC7DjB,EADmBmB,EAAAG,MACkBH,EAAAE,KAAA,GAAA,MAAA,KAAA,GAAAF,EAAAC,KAAA,GAAAD,EAAAI,GAAAJ,EAAA,MAAA,GAErCK,QAAQf,MAAM,4BAA2BU,EAAAI,IAAS,KAAA,GAAA,IAAA,MAAA,OAAAJ,EAAAM,OAAA,GAAAT,EAAA,KAAA,CAAA,CAAA,EAAA,KAErD,KAAA,OAAA,WARkB,OAAAJ,EAAAc,MAAAC,KAAAC,UAAA,EAAA,GAUfpB,GACFG,GAEH,GAAE,CAAChB,EAAcS,EAAwBI,EAAiBL,IAEtDI,GAAcC,EASfD,IAAcR,EAEdpB,EAAA,QAAAC,cAACiD,SAAM,CAAC/C,MAAO,CAAEgD,UAAWC,EAAKA,MAACC,cAAa,kBAI/CvB,EAGA9B,wBAACsD,iBAAc,CACbC,QAAQ,QACRC,MAAM,wBACNrD,MAAO,CAAEsD,SAAU,QAASC,OAAQ,WAEpC1D,EAAA,QAAAC,cAAC0D,EAAAA,UAAS,yGAEoB,IAC5B3D,EAAAA,QAAAC,cAAC2D,OAAI,CAACC,KAAK,4BAAmD,qBAEpD,wBACZ7D,EAAAA,QAAAC,cAAC0D,EAASA,UAAA,oCACoB3D,EAAC,QAAAC,cAAA6D,WAAU,KAAAhC,MAAAA,OAAAA,EAAAA,EAAOiC,eAKtDC,EAAeA,gBAAC5C,GAEdpB,EAAAA,QACGC,cAAAD,EAAAA,QAAAiE,SAAA,KAAAlD,EAAS,CACRS,KAAMJ,EACNO,OAAQ,WAAF,OAvFZuC,EAAqCC,OAAOC,SAuFbzC,EAtFjB,CACZ0C,aAAc,CAAEC,SAFFJ,EAARK,SAEoCC,KAFlBN,EAARM,SAEsCC,IAFxBP,EAAJO,QAD9B,IACEP,CAuFsC,EAChCQ,SAAUjD,OAxCdC,IAEE1B,EAAA,QAAAC,cAACiD,SAAM,CAAC/C,MAAO,CAAEgD,UAAWC,EAAKA,MAACC,cAAa,6BA0CrD,+CCjGasB,EAAc3E,EAAK,QAAC4E,cAA+B,CAC9DC,SAAU,WAAQ,EAClBC,gBAAiB,WAAF,MAAQ,EAAE,EACzBC,cAAe,WAAe,EAC9BC,cAAe,WAAO,IAQXC,EAAU,WACrB,OAAOC,EAAAA,WAAWP,EACpB,EC5BaQ,EAA2B,kBAE3BC,EAAsB,CACjCC,IAAK,WAAF,OAAQC,aAAaC,QAAQJ,EAAyB,EACzDK,IAAK,SAACC,GAAa,OAAKH,aAAaI,QAAQP,EAA0BM,EAAM,GAGlEE,EAAuB,aAEvBC,EAAkB,CAC7BP,IAAK,WAAF,OAAQC,aAAaC,QAAQI,EAAqB,EACrDH,IAAK,SAACC,GAAa,OAAKH,aAAaI,QAAQC,EAAsBF,EAAM,GCOrEI,EAAsB7F,EAAK,QAAC4E,mBAEhCzD,GCFI2E,EAAkB9F,EAAK,QAAC4E,mBAC5BzD,GAeW4E,EAAc,WACzB,IAAMC,EAAUd,aAAWY,GAE3B,OADA9B,EAAeA,gBAACgC,GACTA,CACT,ECtCaC,WAAmBC,GAAA,SAAAD,IAAA,IAAA,IAAAE,EAAAC,EAAAnD,UAAAoD,OAAAC,EAAAC,IAAAA,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAAF,EAAAE,GAAAvD,UAAAuD,GACW,OADXL,EAAAD,EAAAO,KAAA1D,MAAAmD,EAAA,CAAAlD,MAAA0D,OAAAJ,KAAAtD,MAC9B2D,QAAU,gCAA+BR,CAAA,SAAA,SAAAD,KAAAD,yEAAAA,CAAA,EAAAW,EADHC,8ECmB3BC,EAAwB,CACnCC,aAAc,CAAEC,cAAc,GAC9BC,QAAS,CAAED,cAAc,GACzBE,OAAQ,CAAEF,cAAc,IAGpBG,EAAgB,CACpBJ,aAAc,2CACdE,QAAS,cACTC,OAAQ,UAQJE,EAAiBxC,EAAAA,cAAwBkC,oBNuFvB,SAAHO,GAOD,IANlBtG,EAAQsG,EAARtG,SAKAF,EAAWwG,EAAXxG,YAEA,OACEb,EAAA,QAAAC,cAACqH,gBAAa,CACZC,OAPEF,EAANE,OAQIC,SAPIH,EAARG,SAQIC,oBAAqB,CACnBC,aAAcvD,OAAOC,SAASuD,OAC9BC,SAZEP,EAARO,WAeI5H,EAAC,QAAAC,cAAAa,EAAa,CAAAE,aAZNqG,EAAZrG,eAaO,SAAC6G,GAAM,OACN7H,EAAA,QAAAC,cAAAD,UAAAiE,SAAA,KACGpD,GAAeA,IAAgBiH,EAAWA,YAACC,YAC1C/H,UAAAC,cAACH,EAAkB,CAAAe,YAAaA,IAEjCE,EAAS8G,GAEb,IAIT,iCMxGsC,SAAH9H,GAI9B,IAHHgB,EAAQhB,EAARgB,SAIMiH,EAAWC,EAAAA,cACjBhH,EAA4CC,EAAQA,SAClD4F,GADKoB,EAAcjH,EAAA,GAAEkH,EAAiBlH,EAAA,GA4CxC,OAxCAc,EAAAA,WAAU,WACR,IAAMqG,EAAkB,WAAA,IAAAnG,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,EAAOgG,GAAY,IAAAC,EAAAC,EAAA,OAAApG,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GACtB,oBAAXyB,OAAsB,CAAA3B,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAgG,OAAA,UAAA,KAAA,EAG3BF,EAAWG,OAAOC,OADJL,EAENM,OAAOL,UAGfC,EAAwBD,EAC3BM,KAAI,SAACC,GAAW,IAAAC,EAAAzB,EACT0B,EAAcD,OAAHA,EAAGL,OAAOO,QAAQ7B,GAAe8B,MAChD,SAACC,GAAQ,OAAKA,EAAS,KAAOL,EAAQM,IAAI,UADxBL,EAAAA,EAEhB,GAQJ,OALA9E,EAAeA,gBACb+E,EAAW,gBACKF,EAAQM,qCAG1B9B,EAAA,CAAA,GACG0B,GAAc,CACb/B,aAAc6B,EAAQO,QAAQC,OAC/BhC,CAEJ,IACAiC,QACC,SAACC,EAAKC,GAAI,OAAAC,EAAA,CAAA,EAAWF,EAAQC,EAAO,GACpC1C,GAEJqB,EAAkBI,GAClBP,EAAS,KAAM,KAAA,EAAA,IAAA,MAAA,OAAAxF,EAAAM,OAAA,GAAAT,EAChB,KAAA,OAhCK+F,SAAkBsB,GAAA,OAAAzH,EAAAc,MAAAC,KAAAC,UAAA,EAAA,GAoCxB,OAFAkB,OAAOwF,iBAAiB,aAAcvB,GAE/B,WAAA,OAAMjE,OAAOyF,oBAAoB,aAAcxB,EAAmB,CAC3E,GAAG,CAACJ,IAGFhI,UAAAC,cAACmH,EAAeyC,SAAQ,CAACpE,MAAOyC,GAC7BnH,EAGP,2BF1D2D,SAA9BhB,GAGxB,IAvBHkB,EAAO6I,EAAgBC,EAqBvBhJ,EAAQhB,EAARgB,SAGAiJ,GAxBuBD,GAAvB9I,EAAsCC,EAAQA,SAsBtCnB,EAARkK,WAtBkC,GAElClI,EAAAA,WAAU,WACR6D,EAAgBJ,IAAIsE,EACtB,GAAG,CAJIA,EAAc7I,EAAA,KAMd,CAAC6I,EAAgBC,IAmBxB,OACE/J,UAACC,cAAA6F,EAAgB+D,SAAQ,CAACpE,MAAO,CAAEwE,SAFhBD,EAAA,GAE0CD,YAF7BC,EAAA,KAG7BjJ,EAGP,uBHhBmD,SAA1BhB,GAA2C,IAAdgB,EAAQhB,EAARgB,SACpDE,EAA4BC,EAAQA,SAAa,IAA1CgJ,EAAMjJ,EAAA,GAAEkJ,EAASlJ,EAAA,GACxBmJ,EAAgClJ,EAAQA,SACtC,IADKmJ,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAItBvF,EAAW0F,EAAAA,aACf,SAACC,EAAsBC,GACrBN,GAAU,SAACO,GAAS,IAAAC,EAAA,OAAAlB,EAAA,CAAA,EACfiB,IAASC,EAAA,CAAA,GACXF,GAAOD,EAAQG,GAAA,GAEpB,GACA,CAACR,IAOH,OACEnK,UAACC,cAAA0E,EAAYkF,SAAQ,CACnBpE,MAAO,CACLZ,SAAAA,EACAC,gBAAiB,SAAC2F,GAAI,IAAAG,EAAA,OAAiB,OAAjBA,EAAKV,EAAOO,IAAKG,EAAI,EAAE,EAC7C7F,cATgB,SAAC0F,GAAY,OAAKJ,EAASI,EAAK,EAUhDzF,cATgB,SAACyF,EAAcI,GAA8B,OACjEP,GAAY,SAAC7H,GAAI,IAAAqI,EAAA,OAAArB,EAAA,CAAA,EAAWhH,IAAIqI,EAAA,CAAA,GAAGL,GAAOI,EAAUC,GAAA,GAAI,IAWrD/J,EAGP,4BM3DgD,SAAlBhB,GAMzB,IALHiI,EAAQjI,EAARiI,SACAjH,EAAQhB,EAARgB,SACAgK,EAAOhL,EAAPgL,QACAC,EAAMjL,EAANiL,OACGC,EAAIC,EAAAnL,EAAAoL,GAEP,OACEnL,UACEC,cAAA,IAAAwJ,EAAA,CAAAsB,QAAS,SAAC1C,GACR,IACM0C,GAASA,EAAQ1C,EACtB,CAAC,MAAO+C,GAEP,MADA/C,EAAMgD,iBACAD,CACP,CAGE/C,EAAMiD,kBACU,IAAjBjD,EAAMkD,QACJP,GAAqB,UAAXA,GAxBtB,SAAyB3C,GACvB,SAAUA,EAAMmD,SAAWnD,EAAMoD,QAAUpD,EAAMqD,SAAWrD,EAAMsD,SACpE,CAuBWC,CAAgBvD,KAEjBA,EAAMgD,iBACNrD,IAEH,EACDgD,OAAQA,GACJC,GAEHlK,EAGP,+BJQmE,SAAlChB,GAG5B,IAnBHkB,EAAO4K,EAAgBC,EAiBvB/K,EAAQhB,EAARgB,SAGAgL,GApBuBD,GAAvB7K,EAA4CC,EAAAA,SAC1C8K,OAiBYjM,EAAd8L,kBAlBwC,GAIxC9J,EAAAA,WAAU,WACRqD,EAAoBI,IAAIqG,EAAe9H,WACzC,GAAG,CANI8H,EAAc5K,EAAA,KAQd,CAAC4K,EAAgBC,IAaxB,OACE9L,UAACC,cAAA4F,EAAoBgE,SAAQ,CAC3BpE,MAAO,CAAEoG,eAHDE,EAAA,GAGwBD,kBAHLC,EAAA,KAK1BhL,EAGP,+BK1CmE,SAAlChB,GAM5B,IALH2E,EAAQ3E,EAAR2E,SACAuH,EAAgBlM,EAAhBkM,iBACAC,EAAsBnM,EAAtBmM,uBACAC,EAAQpM,EAARoM,SACGlB,EAAIC,EAAAnL,EAAAoL,GAEPlK,EAA0CC,EAAQA,SAAmB,IAA9DkL,EAAanL,EAAA,GAAEoL,EAAgBpL,EAAA,GAC9BgJ,EAAalE,IAAbkE,SAERG,EAA4BlJ,EAAQA,SAClC,WADKoL,EAAMlC,EAAA,GAAEmC,EAASnC,EAAA,GA8BxB,OA1BArI,EAAAA,WAAU,WACR,IAAMyK,EAAkB,WAAA,IAAAvK,EAAAC,EAAAC,IAAAC,MAAG,SAAAC,IAAA,IAAAC,EAAA8J,EAAA,OAAAjK,IAAAI,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACLgC,IAAU,KAAA,EAAnB,GAALpC,EAAKE,EAAAG,KAEqB,iBAArBsJ,EAA6B,CAAAzJ,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAE,KAAA,EAChB+J,MAAMR,EAAkB,CAC5CS,QAAS,CACPC,wBAAyBrK,EACzBsK,OAAQ,sBAETC,MAAK,SAACC,GAAQ,OAAKA,EAASC,UAAO,KAAA,EALtCX,EAAa5J,EAAAG,KAAAH,EAAAE,KAAA,GAAA,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,GAOSuJ,EAAiB3J,GAAM,KAAA,GAA7C8J,EAAa5J,EAAAG,KAAA,KAAA,GAEf0J,EAAiBD,GACjBG,EAAU,WAAW,KAAA,GAAA,IAAA,MAAA,OAAA/J,EAAAM,OAAA,GAAAT,EACtB,KAAA,OAAA,WAfuB,OAAAJ,EAAAc,MAAAC,KAAAC,UAAA,EAAA,GAiBxBuJ,IAAoB,OAAO,SAAC1K,GAI1ByK,EAAU,QACZ,GACF,GAAG,CAACN,EAAkBvH,IAEd4H,GACN,IAAK,UACH,OACEtM,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,gBACbF,EAAA,QAAAC,cAAC+M,oBAAiB,CAAC7M,MAAO,CAAEO,OAAQ,aAG1C,IAAK,UACH,OACEV,UAAAC,cAACgN,EAAoBA,qBAAAxD,EAAA,CACnByD,MACe,OAAbjD,GAAkC,UAAbA,EACjB,eACA,eAENiC,uBAAwBA,EACxBE,cAAeA,EACfD,SAAUA,GACNlB,IAGV,IAAK,QACH,MAAM,IAAIhF,EACZ,QACE,OAAO,KAEb,iHFnDiC,WAC/B,IAAMD,EAAUd,aAAWkC,GAC3B,IAAKpB,EACH,MAAM,IAAIa,MACR,kEAGJ,OAAOb,CACT,gDLhB+B,SAACyE,GAE9B,OAAO1F,EADmBE,IAAlBF,eACa0F,EACvB,8CAZiC,SAACA,GAEhC,OADgBvF,aAAWP,GACZG,gBAAgB2F,EACjC,0BEF+B,WAC7B,IAAMzE,EAAUd,aAAWW,GAE3B,OADA7B,EAAeA,gBAACgC,GACTA,CACT,4BAEiC,WAC/B,IAAMA,EAAUd,aAAWW,GAE3B,OADA7B,EAAeA,gBAACgC,GACTA,EAAQ6F,cACjB"}
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/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.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 './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","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, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider'\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\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"],"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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","_ref3","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","consentManager","setConsentManager","handleConsentEvent","event","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","_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"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { space } from '@entur/tokens';
6
6
  import { Auth0Provider, useAuth0 } from '@auth0/auth0-react';
7
7
  import { getColorForEnvironment, Environment, OrganisationDropDown } from '@entur-partner/common';
8
8
  import { assertIsDefined } from '@entur-partner/util';
9
- import { useNavigate } from 'react-router';
10
9
 
11
10
  function _construct(t, e, r) {
12
11
  if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
@@ -876,7 +875,6 @@ var useConsentManager = function useConsentManager() {
876
875
  };
877
876
  var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
878
877
  var children = _ref.children;
879
- var navigate = useNavigate();
880
878
  var _useState = useState(DEFAULT_CONSENT_GIVEN),
881
879
  consentManager = _useState[0],
882
880
  setConsentManager = _useState[1];
@@ -909,7 +907,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
909
907
  return _extends({}, acc, curr);
910
908
  }, DEFAULT_CONSENT_GIVEN);
911
909
  setConsentManager(updatedConsentManager);
912
- navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated
910
+ window.location.href = '/';
913
911
  case 7:
914
912
  case "end":
915
913
  return _context.stop();
@@ -924,7 +922,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
924
922
  return function () {
925
923
  return window.removeEventListener('UC_CONSENT', handleConsentEvent);
926
924
  };
927
- }, [navigate]);
925
+ }, []);
928
926
  return React.createElement(ConsentContext.Provider, {
929
927
  value: consentManager
930
928
  }, children);
@@ -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/ConsentManagerProvider.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 './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","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","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\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","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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","useNavigate","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"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/ConsentManagerProvider.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 './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","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","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider'\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\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 = 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 is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\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"],"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","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","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/app-shell",
3
- "version": "6.0.5-alpha.1",
3
+ "version": "6.0.5-alpha.2",
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.1",
38
+ "@entur-partner/micro-frontend": "^2.4.10-alpha.2",
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": "67ba46d287c09f1b4203431ba3f296ca2e4c8a8f"
55
+ "gitHead": "67fb7d5f0eca6b155805849e1d4a285cb8cb3da5"
56
56
  }