@entur-partner/app-shell 3.0.3 → 3.0.4
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.
- package/dist/app-shell.cjs.development.js +1 -0
- package/dist/app-shell.cjs.development.js.map +1 -1
- package/dist/app-shell.cjs.production.min.js +1 -1
- package/dist/app-shell.cjs.production.min.js.map +1 -1
- package/dist/app-shell.esm.js +1 -0
- package/dist/app-shell.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -802,6 +802,7 @@ var AuthProvider = function AuthProvider(_ref) {
|
|
|
802
802
|
var EnvironmentBanner = function EnvironmentBanner(_ref) {
|
|
803
803
|
var environment = _ref.environment;
|
|
804
804
|
return React__default["default"].createElement("div", {
|
|
805
|
+
className: "epp-environment-banner",
|
|
805
806
|
style: {
|
|
806
807
|
position: 'fixed',
|
|
807
808
|
zIndex: 9999,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.cjs.development.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../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"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","POST_LOGIN_ROUTE_KEY","LOGIN_LAST_RETRY","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","children","decorateUser","initOptions","_excluded","useReducer","dispatch","useState","auth0Client","setAuth0","useEffect","initAuth0","createAuth0Client","client","location","search","includes","handleRedirectCallback","route","localStorage","getItem","removeItem","postLoginRoute","isAuthenticated","getUser","auth0User","getTokenSilently","token","lastRetryEpochSeconds","parseInt","nowEpochSeconds","Math","floor","Date","now","timeSinceLastRetry","minimumTimeForRetry","setItem","toString","logout","protocol","hostname","port","returnTo","login","redirectUri","origin","loginWithRedirect","redirect_uri","getToken","options","createElement","Provider","value","EnvironmentBanner","environment","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","Login","Authenticate","Fragment","Loader","marginTop","space","extraLarge9","process","console","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","AppShell","audience","domain","clientId","client_id","params","Environment","Production","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useMenu","useMFNavigation","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","navigation","prev","ORGANISATION_STORAGE_KEY","organisationStorage","get","set","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","OrganisationsError","message","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","className","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.cjs.development.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../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"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","POST_LOGIN_ROUTE_KEY","LOGIN_LAST_RETRY","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","children","decorateUser","initOptions","_excluded","useReducer","dispatch","useState","auth0Client","setAuth0","useEffect","initAuth0","createAuth0Client","client","location","search","includes","handleRedirectCallback","route","localStorage","getItem","removeItem","postLoginRoute","isAuthenticated","getUser","auth0User","getTokenSilently","token","lastRetryEpochSeconds","parseInt","nowEpochSeconds","Math","floor","Date","now","timeSinceLastRetry","minimumTimeForRetry","setItem","toString","logout","protocol","hostname","port","returnTo","login","redirectUri","origin","loginWithRedirect","redirect_uri","getToken","options","createElement","Provider","value","EnvironmentBanner","environment","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","Login","Authenticate","Fragment","Loader","marginTop","space","extraLarge9","process","console","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","AppShell","audience","domain","clientId","client_id","params","Environment","Production","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useMenu","useMFNavigation","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","navigation","prev","ORGANISATION_STORAGE_KEY","organisationStorage","get","set","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","OrganisationsError","message","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"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/loader"),r=require("@entur/alert"),n=require("@entur/tokens"),o=require("@entur/typography"),a=require("@entur-partner/util"),i=require("@entur-partner/common"),u=require("@auth0/auth0-spa-js");function c(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=c(t),l=c(u);function f(){f=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=Object.create((e&&e.prototype instanceof h?e:h).prototype),a=new I(n||[]);return o._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=E(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),o}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function h(){}function p(){}function d(){}var g={};u(g,o,(function(){return this}));var v=Object.getPrototypeOf,y=v&&v(v(T([])));y&&y!==e&&r.call(y,o)&&(g=y);var m=d.prototype=h.prototype=Object.create(g);function w(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function E(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function b(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 O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function T(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=d,u(m,"constructor",d),u(d,"constructor",p),p.displayName=u(d,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,u(t,i,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},w(x.prototype),u(x.prototype,a,(function(){return this})),t.AsyncIterator=x,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new x(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},w(m),u(m,i,"Generator"),u(m,o,(function(){return this})),u(m,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=T,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.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,l):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),l},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),O(r),l}},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;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}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(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function m(t,e,r){return m=y()?Reflect.construct.bind():function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&v(o,r.prototype),o},m.apply(null,arguments)}function w(t){var e="function"==typeof Map?new Map:void 0;return w=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))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 m(t,arguments,g(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),v(r,t)},w(t)}function x(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 E={status:"AUTHENTICATING"};function b(t,e){switch(e.type){case"AUTHENTICATED":return{status:"AUTHENTICATED",user:e.data.user};case"LOGOUT":return E;case"ERROR":return{error:e.error,status:"ERROR"};case"NOT_AUTHENTICATED":return d({},t,{status:"NOT_AUTHENTICATED"});default:return t}}var O=["children","decorateUser"],I=function(t){return void 0===t&&(t="/"),window.history.replaceState({},document.title,t)},T=s.default.createContext(void 0),S=function(){var e=t.useContext(T);return a.assertIsDefined(e,"A `<Auth0Provider>` component needs to be higher up in the component hierarchy."),e},k={status:"AUTHENTICATING"},L=function(e){var r=e.children,n=e.decorateUser,o=x(e,O),i=t.useReducer(b,k),u=i[0],c=i[1],h=t.useState(),g=h[0],v=h[1];t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,r,a,i;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.default(o);case 2:if(v(e=t.sent),!window.location.search.includes("code=")){t.next=11;break}return t.next=7,e.handleRedirectCallback();case 7:r=localStorage.getItem("@entur-partner:post-login-route"),localStorage.removeItem("@entur-partner:post-login-route"),I(r||"/");case 11:return t.next=13,e.isAuthenticated();case 13:if(!t.sent){t.next=27;break}return t.next=17,e.getUser();case 17:return a=t.sent,t.next=20,e.getTokenSilently();case 20:return i=t.sent,t.next=23,n(a,i);case 23:c({type:"AUTHENTICATED",data:{user:t.sent}}),t.next=28;break;case 27:c({type:"NOT_AUTHENTICATED"});case 28:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch(function(){var e=p(f().mark((function e(r){var n,o,a;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=parseInt(null!=(n=localStorage.getItem("@entur-partner:last-login-retry"))?n:"0"),!((a=Math.floor(Date.now()/1e3))-o>=120)){e.next=12;break}return localStorage.setItem("@entur-partner:last-login-retry",a.toString()),I("/"),e.next=10,t();case 10:e.next=13;break;case 12:throw r;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),c({type:"ERROR",error:r});case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t){return e.apply(this,arguments)}}())}),[]);var y=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:void 0===e&&(e=window.location.origin),a.assertIsDefined(g),r=window,n=r.location,localStorage.setItem("@entur-partner:post-login-route",""+n.pathname+n.search),g.loginWithRedirect({redirect_uri:e});case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),m=function(){var t=p(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a.assertIsDefined(g),t.abrupt("return",g.getTokenSilently(e));case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return s.default.createElement(T.Provider,{value:d({},u,{auth0Client:g,logout:function(){a.assertIsDefined(g);var t=window.location;g.logout({returnTo:t.protocol+"//"+t.hostname+":"+t.port})},getToken:m,login:y})},r)},A=function(t){return s.default.createElement("div",{style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(t.environment)}})},C=function(e){var r=e.redirectUri,n=S().login;return t.useEffect((function(){n(r)}),[n,r]),null},N=function(t){var i=t.children,u=t.redirectUri,c=S(),l=c.user,f=c.error,h=c.logout,p=c.getToken;switch(c.status){case"NOT_AUTHENTICATED":return s.default.createElement(C,{redirectUri:u});case"AUTHENTICATED":return a.assertIsDefined(l),s.default.createElement(s.default.Fragment,null,i({user:l,logout:h,getToken:p}));case"AUTHENTICATING":return s.default.createElement(e.Loader,{style:{marginTop:n.space.extraLarge9}},"Authenticating");case"ERROR":return s.default.createElement(r.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},s.default.createElement(o.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",s.default.createElement(o.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),s.default.createElement(o.Paragraph,null,"Authentication failed with: ",s.default.createElement(o.CodeText,null,null==f?void 0:f.toString())));default:return null}},P=["navigate","children","onClick","target"],_=s.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),j=function(){return t.useContext(_)},R={get:function(){return localStorage.getItem("EP::activeOrgId")},set:function(t){return localStorage.setItem("EP::activeOrgId",t)}},U={get:function(){return localStorage.getItem("EP::locale")},set:function(t){return localStorage.setItem("EP::locale",t)}},D=s.default.createContext(void 0),F=s.default.createContext(void 0),G=function(){var e=t.useContext(F);return a.assertIsDefined(e),e},M=function(t){var e,r;function n(){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}return r=t,(e=n).prototype=Object.create(r.prototype),e.prototype.constructor=e,v(e,r),n}(w(Error)),H=["getToken","getOrganisations","value","onChange"];exports.AppShell=function(t){var e=t.children,r=t.environment;return s.default.createElement(L,{audience:t.audience,domain:t.domain,client_id:t.clientId,decorateUser:t.decorateUser},s.default.createElement(N,{redirectUri:t.redirectUri},(function(t){return s.default.createElement(s.default.Fragment,null,r&&r!==i.Environment.Production&&s.default.createElement(A,{environment:r}),e(t))})))},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){U.set(n)}),[n=r[0]]),[n,o]);return s.default.createElement(F.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(_.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=x(t,P);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(){R.set(n.toString())}),[n=r[0]]),[n,o]);return s.default.createElement(D.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(r){var n=r.getToken,o=r.getOrganisations,a=r.value,u=r.onChange,c=x(r,H),l=t.useState([]),h=l[0],g=l[1],v=G().language,y=t.useState("LOADING"),m=y[0],w=y[1];switch(t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,r;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n();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:r=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:r=t.sent;case 12:g(r),w("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){w("ERROR")}))}),[o,n]),m){case"LOADING":return s.default.createElement("div",{className:"eds-contrast"},s.default.createElement(e.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return s.default.createElement(i.OrganisationDropDown,d({label:"nb"===v?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:h,onChange:u},c));case"ERROR":throw new M;default:return null}},exports.OrganisationsError=M,exports.languageStorage=U,exports.organisationStorage=R,exports.useLanguage=G,exports.useMFNavigation=function(t){return(0,j().getMFNavigate)(t)},exports.useMenu=j,exports.useMenuGroupItems=function(e){return t.useContext(_).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(D);return a.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(D);return a.assertIsDefined(e),e.organisationId};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@entur/loader"),r=require("@entur/alert"),n=require("@entur/tokens"),o=require("@entur/typography"),a=require("@entur-partner/util"),i=require("@entur-partner/common"),u=require("@auth0/auth0-spa-js");function c(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=c(t),l=c(u);function f(){f=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=Object.create((e&&e.prototype instanceof h?e:h).prototype),a=new I(n||[]);return o._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=E(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),o}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function h(){}function p(){}function d(){}var g={};u(g,o,(function(){return this}));var v=Object.getPrototypeOf,y=v&&v(v(T([])));y&&y!==e&&r.call(y,o)&&(g=y);var m=d.prototype=h.prototype=Object.create(g);function w(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function E(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function b(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 O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function T(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=d,u(m,"constructor",d),u(d,"constructor",p),p.displayName=u(d,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,u(t,i,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},w(x.prototype),u(x.prototype,a,(function(){return this})),t.AsyncIterator=x,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new x(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},w(m),u(m,i,"Generator"),u(m,o,(function(){return this})),u(m,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=T,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.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,l):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),l},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),O(r),l}},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;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}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(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function m(t,e,r){return m=y()?Reflect.construct.bind():function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&v(o,r.prototype),o},m.apply(null,arguments)}function w(t){var e="function"==typeof Map?new Map:void 0;return w=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))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 m(t,arguments,g(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),v(r,t)},w(t)}function x(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 E={status:"AUTHENTICATING"};function b(t,e){switch(e.type){case"AUTHENTICATED":return{status:"AUTHENTICATED",user:e.data.user};case"LOGOUT":return E;case"ERROR":return{error:e.error,status:"ERROR"};case"NOT_AUTHENTICATED":return d({},t,{status:"NOT_AUTHENTICATED"});default:return t}}var O=["children","decorateUser"],I=function(t){return void 0===t&&(t="/"),window.history.replaceState({},document.title,t)},T=s.default.createContext(void 0),S=function(){var e=t.useContext(T);return a.assertIsDefined(e,"A `<Auth0Provider>` component needs to be higher up in the component hierarchy."),e},k={status:"AUTHENTICATING"},L=function(e){var r=e.children,n=e.decorateUser,o=x(e,O),i=t.useReducer(b,k),u=i[0],c=i[1],h=t.useState(),g=h[0],v=h[1];t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,r,a,i;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.default(o);case 2:if(v(e=t.sent),!window.location.search.includes("code=")){t.next=11;break}return t.next=7,e.handleRedirectCallback();case 7:r=localStorage.getItem("@entur-partner:post-login-route"),localStorage.removeItem("@entur-partner:post-login-route"),I(r||"/");case 11:return t.next=13,e.isAuthenticated();case 13:if(!t.sent){t.next=27;break}return t.next=17,e.getUser();case 17:return a=t.sent,t.next=20,e.getTokenSilently();case 20:return i=t.sent,t.next=23,n(a,i);case 23:c({type:"AUTHENTICATED",data:{user:t.sent}}),t.next=28;break;case 27:c({type:"NOT_AUTHENTICATED"});case 28:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch(function(){var e=p(f().mark((function e(r){var n,o,a;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=parseInt(null!=(n=localStorage.getItem("@entur-partner:last-login-retry"))?n:"0"),!((a=Math.floor(Date.now()/1e3))-o>=120)){e.next=12;break}return localStorage.setItem("@entur-partner:last-login-retry",a.toString()),I("/"),e.next=10,t();case 10:e.next=13;break;case 12:throw r;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),c({type:"ERROR",error:r});case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t){return e.apply(this,arguments)}}())}),[]);var y=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:void 0===e&&(e=window.location.origin),a.assertIsDefined(g),r=window,n=r.location,localStorage.setItem("@entur-partner:post-login-route",""+n.pathname+n.search),g.loginWithRedirect({redirect_uri:e});case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),m=function(){var t=p(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a.assertIsDefined(g),t.abrupt("return",g.getTokenSilently(e));case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return s.default.createElement(T.Provider,{value:d({},u,{auth0Client:g,logout:function(){a.assertIsDefined(g);var t=window.location;g.logout({returnTo:t.protocol+"//"+t.hostname+":"+t.port})},getToken:m,login:y})},r)},A=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)}})},C=function(e){var r=e.redirectUri,n=S().login;return t.useEffect((function(){n(r)}),[n,r]),null},N=function(t){var i=t.children,u=t.redirectUri,c=S(),l=c.user,f=c.error,h=c.logout,p=c.getToken;switch(c.status){case"NOT_AUTHENTICATED":return s.default.createElement(C,{redirectUri:u});case"AUTHENTICATED":return a.assertIsDefined(l),s.default.createElement(s.default.Fragment,null,i({user:l,logout:h,getToken:p}));case"AUTHENTICATING":return s.default.createElement(e.Loader,{style:{marginTop:n.space.extraLarge9}},"Authenticating");case"ERROR":return s.default.createElement(r.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},s.default.createElement(o.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",s.default.createElement(o.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),s.default.createElement(o.Paragraph,null,"Authentication failed with: ",s.default.createElement(o.CodeText,null,null==f?void 0:f.toString())));default:return null}},P=["navigate","children","onClick","target"],_=s.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),j=function(){return t.useContext(_)},R={get:function(){return localStorage.getItem("EP::activeOrgId")},set:function(t){return localStorage.setItem("EP::activeOrgId",t)}},U={get:function(){return localStorage.getItem("EP::locale")},set:function(t){return localStorage.setItem("EP::locale",t)}},D=s.default.createContext(void 0),F=s.default.createContext(void 0),G=function(){var e=t.useContext(F);return a.assertIsDefined(e),e},M=function(t){var e,r;function n(){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}return r=t,(e=n).prototype=Object.create(r.prototype),e.prototype.constructor=e,v(e,r),n}(w(Error)),H=["getToken","getOrganisations","value","onChange"];exports.AppShell=function(t){var e=t.children,r=t.environment;return s.default.createElement(L,{audience:t.audience,domain:t.domain,client_id:t.clientId,decorateUser:t.decorateUser},s.default.createElement(N,{redirectUri:t.redirectUri},(function(t){return s.default.createElement(s.default.Fragment,null,r&&r!==i.Environment.Production&&s.default.createElement(A,{environment:r}),e(t))})))},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){U.set(n)}),[n=r[0]]),[n,o]);return s.default.createElement(F.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(_.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=x(t,P);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(){R.set(n.toString())}),[n=r[0]]),[n,o]);return s.default.createElement(D.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(r){var n=r.getToken,o=r.getOrganisations,a=r.value,u=r.onChange,c=x(r,H),l=t.useState([]),h=l[0],g=l[1],v=G().language,y=t.useState("LOADING"),m=y[0],w=y[1];switch(t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,r;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n();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:r=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:r=t.sent;case 12:g(r),w("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){w("ERROR")}))}),[o,n]),m){case"LOADING":return s.default.createElement("div",{className:"eds-contrast"},s.default.createElement(e.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return s.default.createElement(i.OrganisationDropDown,d({label:"nb"===v?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:h,onChange:u},c));case"ERROR":throw new M;default:return null}},exports.OrganisationsError=M,exports.languageStorage=U,exports.organisationStorage=R,exports.useLanguage=G,exports.useMFNavigation=function(t){return(0,j().getMFNavigate)(t)},exports.useMenu=j,exports.useMenuGroupItems=function(e){return t.useContext(_).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(D);return a.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(D);return a.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/authReducer.tsx","../src/Auth.tsx","../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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, 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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","_extends","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","_ref","children","decorateUser","initOptions","_objectWithoutPropertiesLoose","_excluded","_useReducer","useReducer","dispatch","_useState","useState","auth0Client","setAuth0","useEffect","initAuth0","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","client","route","auth0User","token","wrap","_context","prev","next","createAuth0Client","sent","location","search","includes","handleRedirectCallback","localStorage","getItem","removeItem","isAuthenticated","getUser","getTokenSilently","stop","apply","this","arguments","_ref3","_localStorage$getItem","lastRetryEpochSeconds","nowEpochSeconds","_context2","parseInt","Math","floor","Date","now","setItem","toString","t0","_callee2","_x","login","_ref4","redirectUri","_window","_context3","origin","loginWithRedirect","redirect_uri","_callee3","_x2","getToken","_ref5","options","_context4","abrupt","_callee4","_x3","createElement","Provider","value","logout","returnTo","protocol","hostname","port","EnvironmentBanner","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Login","Authenticate","_useAuth2","Fragment","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","organisationStorage","get","set","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","audience","domain","client_id","clientId","params","Environment","Production","activeLanguage","setLanguage","useLanguageState","language","_useLanguageState","groups","setGroups","navFuncs","_useState2","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","useOrganisationState","Number","_useOrganisationState","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","className","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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, 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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","_extends","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","_ref","children","decorateUser","initOptions","_objectWithoutPropertiesLoose","_excluded","_useReducer","useReducer","dispatch","_useState","useState","auth0Client","setAuth0","useEffect","initAuth0","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","client","route","auth0User","token","wrap","_context","prev","next","createAuth0Client","sent","location","search","includes","handleRedirectCallback","localStorage","getItem","removeItem","isAuthenticated","getUser","getTokenSilently","stop","apply","this","arguments","_ref3","_localStorage$getItem","lastRetryEpochSeconds","nowEpochSeconds","_context2","parseInt","Math","floor","Date","now","setItem","toString","t0","_callee2","_x","login","_ref4","redirectUri","_window","_context3","origin","loginWithRedirect","redirect_uri","_callee3","_x2","getToken","_ref5","options","_context4","abrupt","_callee4","_x3","createElement","Provider","value","logout","returnTo","protocol","hostname","port","EnvironmentBanner","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Login","Authenticate","_useAuth2","Fragment","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","organisationStorage","get","set","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","audience","domain","client_id","clientId","params","Environment","Production","activeLanguage","setLanguage","useLanguageState","language","_useLanguageState","groups","setGroups","navFuncs","_useState2","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","useOrganisationState","Number","_useOrganisationState","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
|
package/dist/app-shell.esm.js
CHANGED
|
@@ -793,6 +793,7 @@ var AuthProvider = function AuthProvider(_ref) {
|
|
|
793
793
|
var EnvironmentBanner = function EnvironmentBanner(_ref) {
|
|
794
794
|
var environment = _ref.environment;
|
|
795
795
|
return React.createElement("div", {
|
|
796
|
+
className: "epp-environment-banner",
|
|
796
797
|
style: {
|
|
797
798
|
position: 'fixed',
|
|
798
799
|
zIndex: 9999,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.esm.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../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"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","POST_LOGIN_ROUTE_KEY","LOGIN_LAST_RETRY","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","children","decorateUser","initOptions","_excluded","useReducer","dispatch","useState","auth0Client","setAuth0","useEffect","initAuth0","createAuth0Client","client","location","search","includes","handleRedirectCallback","route","localStorage","getItem","removeItem","postLoginRoute","isAuthenticated","getUser","auth0User","getTokenSilently","token","lastRetryEpochSeconds","parseInt","nowEpochSeconds","Math","floor","Date","now","timeSinceLastRetry","minimumTimeForRetry","setItem","toString","logout","protocol","hostname","port","returnTo","login","redirectUri","origin","loginWithRedirect","redirect_uri","getToken","options","createElement","Provider","value","EnvironmentBanner","environment","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","Login","Authenticate","Fragment","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","console","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","AppShell","audience","domain","clientId","client_id","params","Environment","Production","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useMenu","useMFNavigation","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","navigation","prev","ORGANISATION_STORAGE_KEY","organisationStorage","get","set","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","OrganisationsError","message","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","className","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.esm.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../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"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","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 } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case '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\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\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 redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\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<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\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: Organisation[];\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={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\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":["initialState","status","authReducer","state","event","type","user","data","error","POST_LOGIN_ROUTE_KEY","LOGIN_LAST_RETRY","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","children","decorateUser","initOptions","_excluded","useReducer","dispatch","useState","auth0Client","setAuth0","useEffect","initAuth0","createAuth0Client","client","location","search","includes","handleRedirectCallback","route","localStorage","getItem","removeItem","postLoginRoute","isAuthenticated","getUser","auth0User","getTokenSilently","token","lastRetryEpochSeconds","parseInt","nowEpochSeconds","Math","floor","Date","now","timeSinceLastRetry","minimumTimeForRetry","setItem","toString","logout","protocol","hostname","port","returnTo","login","redirectUri","origin","loginWithRedirect","redirect_uri","getToken","options","createElement","Provider","value","EnvironmentBanner","environment","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","Login","Authenticate","Fragment","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","console","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","AppShell","audience","domain","clientId","client_id","params","Environment","Production","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useMenu","useMFNavigation","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","navigation","prev","ORGANISATION_STORAGE_KEY","organisationStorage","get","set","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","OrganisationsError","message","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur-partner/app-shell",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/app-shell.esm.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@auth0/auth0-spa-js": "^1.8.1",
|
|
36
|
-
"@entur-partner/common": "^5.1.
|
|
36
|
+
"@entur-partner/common": "^5.1.2",
|
|
37
37
|
"@entur-partner/micro-frontend": "^2.4.2",
|
|
38
38
|
"@entur-partner/util": "^1.1.6"
|
|
39
39
|
},
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"reportFile": "jest-sonar-report.xml",
|
|
51
51
|
"indent": 4
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "80bc168be7493a23f1464affe1507218c2e2b516"
|
|
54
54
|
}
|