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

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.
@@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
2
2
  import { GetTokenSilentlyOptions, Auth0ContextInterface } from '@auth0/auth0-react';
3
3
  import { User } from '@entur-partner/micro-frontend';
4
4
  import { Environment } from '@entur-partner/common';
5
- import { DecorateUserFn } from './UserTypes';
5
+ import { DecorateUserFn } from './types/UserTypes';
6
6
  export interface AppShellValues {
7
7
  logout: Auth0ContextInterface['logout'];
8
8
  user: User;
@@ -7,18 +7,9 @@ declare global {
7
7
  };
8
8
  }
9
9
  }
10
- export declare const DEFAULT_CONSENT_GIVEN: {
11
- readonly Usercentrics: {
12
- readonly consentGiven: false;
13
- };
14
- readonly PostHog: {
15
- readonly consentGiven: false;
16
- };
17
- readonly Sentry: {
18
- readonly consentGiven: false;
19
- };
20
- };
21
10
  export declare const useConsentManager: () => Consents;
22
- export declare const ConsentManagerProvider: ({ children, }: {
11
+ type Props = {
23
12
  children: ReactNode;
24
- }) => React.JSX.Element;
13
+ };
14
+ export declare const ConsentManagerProvider: ({ children }: Props) => React.JSX.Element;
15
+ export {};
@@ -10,7 +10,6 @@ var tokens = require('@entur/tokens');
10
10
  var auth0React = require('@auth0/auth0-react');
11
11
  var common = require('@entur-partner/common');
12
12
  var util = require('@entur-partner/util');
13
- var reactRouter = require('react-router');
14
13
 
15
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
15
 
@@ -689,6 +688,12 @@ var languageStorage = {
689
688
  return localStorage.setItem(LANGUAGE_STORAGE_KEY, value);
690
689
  }
691
690
  };
691
+ var UC_UI_STORAGE_KEY = 'ucData';
692
+ var ucUiStorage = {
693
+ get: function get() {
694
+ return localStorage.getItem(UC_UI_STORAGE_KEY);
695
+ }
696
+ };
692
697
 
693
698
  var OrganisationContext = /*#__PURE__*/React__default["default"].createContext(undefined);
694
699
  var useOrganisation = function useOrganisation() {
@@ -858,6 +863,12 @@ var OrganisationSelector = function OrganisationSelector(_ref) {
858
863
  }
859
864
  };
860
865
 
866
+ var SERVICE_NAMES = {
867
+ Usercentrics: 'Usercentrics Consent Management Platform',
868
+ PostHog: 'PostHog.com',
869
+ Sentry: 'Sentry'
870
+ };
871
+
861
872
  var DEFAULT_CONSENT_GIVEN = {
862
873
  Usercentrics: {
863
874
  consentGiven: false
@@ -869,25 +880,56 @@ var DEFAULT_CONSENT_GIVEN = {
869
880
  consentGiven: false
870
881
  }
871
882
  };
872
- var SERVICE_NAMES = {
873
- Usercentrics: 'Usercentrics Consent Management Platform',
874
- PostHog: 'PostHog.com',
875
- Sentry: 'Sentry'
883
+ var convertUCServicesToConsents = function convertUCServicesToConsents(services) {
884
+ return services.map(function (service) {
885
+ var _Object$entries$find, _ref3;
886
+ var serviceName = (_Object$entries$find = Object.entries(SERVICE_NAMES).find(function (keyValue) {
887
+ return keyValue[1] === service.name;
888
+ })) == null ? void 0 : _Object$entries$find[0];
889
+ // Ensure the service name exists in SERVICE_NAMES
890
+ util.assertIsDefined(serviceName, "Service name " + service.name + " not found in SERVICE_NAMES");
891
+ if (typeof service.consent == 'boolean') {
892
+ var _ref;
893
+ var consentGiven = service.consent;
894
+ return _ref = {}, _ref[serviceName] = {
895
+ consentGiven: consentGiven
896
+ }, _ref;
897
+ } else if (typeof service.consent === 'object' && 'given' in service.consent) {
898
+ var _ref2;
899
+ var _consentGiven = service.consent.given;
900
+ return _ref2 = {}, _ref2[serviceName] = {
901
+ consentGiven: _consentGiven
902
+ }, _ref2;
903
+ }
904
+ return _ref3 = {}, _ref3[serviceName] = {
905
+ consentGiven: false
906
+ }, _ref3;
907
+ }).reduce(function (acc, curr) {
908
+ return _extends({}, acc, curr);
909
+ }, DEFAULT_CONSENT_GIVEN);
876
910
  };
911
+
877
912
  var ConsentContext = /*#__PURE__*/React.createContext(DEFAULT_CONSENT_GIVEN);
878
913
  var useConsentManager = function useConsentManager() {
879
914
  var context = React.useContext(ConsentContext);
880
- if (!context) {
881
- throw new Error('useConsentManager must be used within a ConsentManagerProvider');
882
- }
883
915
  return context;
884
916
  };
885
917
  var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
886
918
  var children = _ref.children;
887
- var navigate = reactRouter.useNavigate();
888
919
  var _useState = React.useState(DEFAULT_CONSENT_GIVEN),
889
920
  consentManager = _useState[0],
890
921
  setConsentManager = _useState[1];
922
+ // Initialize consent manager from local storage once
923
+ React.useEffect(function () {
924
+ if (typeof window === 'undefined') return;
925
+ var ucData = ucUiStorage.get();
926
+ if (ucData) {
927
+ var data = JSON.parse(ucData);
928
+ var services = convertUCServicesToConsents(Object.values(data.consent.services));
929
+ setConsentManager(services);
930
+ }
931
+ }, []);
932
+ // Listen for Usercentrics consent events and update consent manager state
891
933
  React.useEffect(function () {
892
934
  var handleConsentEvent = /*#__PURE__*/function () {
893
935
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
@@ -903,21 +945,9 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
903
945
  case 2:
904
946
  customEvent = event;
905
947
  services = Object.values(customEvent.detail.services);
906
- updatedConsentManager = services.map(function (service) {
907
- var _Object$entries$find, _ref3;
908
- var serviceName = (_Object$entries$find = Object.entries(SERVICE_NAMES).find(function (keyValue) {
909
- return keyValue[1] === service.name;
910
- })) == null ? void 0 : _Object$entries$find[0];
911
- // Ensure the service name is defined in SERVICE_NAMES
912
- util.assertIsDefined(serviceName, "Service name " + service.name + " not found in SERVICE_NAMES");
913
- return _ref3 = {}, _ref3[serviceName] = {
914
- consentGiven: service.consent.given
915
- }, _ref3;
916
- }).reduce(function (acc, curr) {
917
- return _extends({}, acc, curr);
918
- }, DEFAULT_CONSENT_GIVEN);
948
+ updatedConsentManager = convertUCServicesToConsents(services);
919
949
  setConsentManager(updatedConsentManager);
920
- navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated
950
+ window.location.href = '/';
921
951
  case 7:
922
952
  case "end":
923
953
  return _context.stop();
@@ -932,7 +962,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
932
962
  return function () {
933
963
  return window.removeEventListener('UC_CONSENT', handleConsentEvent);
934
964
  };
935
- }, [navigate]);
965
+ }, []);
936
966
  return React__default["default"].createElement(ConsentContext.Provider, {
937
967
  value: consentManager
938
968
  }, children);
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/ConsentManagerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[],\n );\n\n const updatedConsentManager = services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name,\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","useNavigate","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@entur/alert"),r=require("@entur/typography"),n=require("@entur/loader"),o=require("@entur/tokens"),a=require("@auth0/auth0-react"),i=require("@entur-partner/common"),u=require("@entur-partner/util"),c=require("react-router");function s(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var l=s(t);function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function h(){h=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new k(n||[]);return o(a,"_invoke",{value:C(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",d="suspendedYield",g="executing",v="completed",y={};function m(){}function w(){}function x(){}var E={};s(E,i,(function(){return this}));var b=Object.getPrototypeOf,O=b&&b(b(N([])));O&&O!==r&&n.call(O,i)&&(E=O);var S=x.prototype=m.prototype=Object.create(E);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,a,i,u){var c=f(t[o],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function C(e,r,n){var o=p;return function(a,i){if(o===g)throw Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=I(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:d,s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return w.prototype=x,o(S,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=s(x,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,c,"GeneratorFunction")),t.prototype=Object.create(S),t},e.awrap=function(t){return{__await:t}},L(P.prototype),s(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new P(l(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(S),s(S,c,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),_(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function p(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function d(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){p(a,n,o,i,u,"next",t)}function u(t){p(a,n,o,i,u,"throw",t)}i(void 0)}))}}function g(){return g=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},g.apply(this,arguments)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},v(t)}function y(t,e){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},y(t,e)}function m(t){var e="function"==typeof Map?new Map:void 0;return m=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(f())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&y(o,r.prototype),o}(t,arguments,v(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),y(r,t)},m(t)}function w(t,e){if(null==t)return{};var r,n,o={},a=Object.keys(t);for(n=0;n<a.length;n++)e.indexOf(r=a[n])>=0||(o[r]=t[r]);return o}var x=function(t){return l.default.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(t.environment)}})},E=function(i){var c=i.children,s=i.decorateUser,f=t.useState(void 0),p=f[0],g=f[1],v=a.useAuth0(),y=v.user,m=v.getAccessTokenSilently,w=v.loginWithRedirect,x=v.logout,E=v.isLoading,b=v.isAuthenticated,O=v.error;return t.useEffect((function(){var t=function(){var t=d(h().mark((function t(){var e;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,m();case 3:return e=t.sent,t.next=6,s(y,e);case 6:g(t.sent),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(0),console.error("Error fetching user data:",t.t0);case 13:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();b&&t()}),[s,m,b,y]),E||b?E||!p?l.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Authenticating"):O?l.default.createElement(e.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},l.default.createElement(r.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",l.default.createElement(r.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),l.default.createElement(r.Paragraph,null,"Authentication failed with: ",l.default.createElement(r.CodeText,null,null==O?void 0:O.toString()))):(u.assertIsDefined(p),l.default.createElement(l.default.Fragment,null,c({user:p,logout:function(){return t=window.location,x({logoutParams:{returnTo:t.protocol+"//"+t.hostname+":"+t.port}});var t},getToken:m}))):(w(),l.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Redirecting to login page"))},b=["navigate","children","onClick","target"],O=l.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),S=function(){return t.useContext(O)},L="EP::activeOrgId",P={get:function(){return localStorage.getItem(L)},set:function(t){return localStorage.setItem(L,t)}},C="EP::locale",I={get:function(){return localStorage.getItem(C)},set:function(t){return localStorage.setItem(C,t)}},j=l.default.createContext(void 0),_=l.default.createContext(void 0),k=function(){var e=t.useContext(_);return u.assertIsDefined(e),e},N=function(t){function e(){for(var e,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).message="Failed fetching organisations",e}var r,n;return n=t,(r=e).prototype=Object.create(n.prototype),r.prototype.constructor=r,y(r,n),e}(m(Error)),F=["getToken","getOrganisations","selectedOrganisationId","onChange"],M={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},A={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},T=t.createContext(M);exports.AppShell=function(t){var e=t.children,r=t.environment;return l.default.createElement(a.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:window.location.origin,audience:t.audience}},l.default.createElement(E,{decorateUser:t.decorateUser},(function(t){return l.default.createElement(l.default.Fragment,null,r&&r!==i.Environment.Production&&l.default.createElement(x,{environment:r}),e(t))})))},exports.ConsentManagerProvider=function(e){var r=e.children,n=c.useNavigate(),o=t.useState(M),a=o[0],i=o[1];return t.useEffect((function(){var t=function(){var t=d(h().mark((function t(e){var r,o;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!=typeof window){t.next=2;break}return t.abrupt("return");case 2:r=Object.values(e.detail.services),o=r.map((function(t){var e,r,n=null==(e=Object.entries(A).find((function(e){return e[1]===t.name})))?void 0:e[0];return u.assertIsDefined(n,"Service name "+t.name+" not found in SERVICE_NAMES"),(r={})[n]={consentGiven:t.consent.given},r})).reduce((function(t,e){return g({},t,e)}),M),i(o),n("/");case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",t),function(){return window.removeEventListener("UC_CONSENT",t)}}),[n]),l.default.createElement(T.Provider,{value:a},r)},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){I.set(n)}),[n=r[0]]),[n,o]);return l.default.createElement(_.Provider,{value:{language:i[0],setLanguage:i[1]}},a)},exports.MenuProvider=function(e){var r=e.children,n=t.useState({}),o=n[0],a=n[1],i=t.useState({}),u=i[0],c=i[1],s=t.useCallback((function(t,e){a((function(r){var n;return g({},r,((n={})[e]=t,n))}))}),[a]);return l.default.createElement(O.Provider,{value:{addItems:s,getItemsForPath:function(t){var e;return null!=(e=o[t])?e:[]},getMFNavigate:function(t){return u[t]},setMFNavigate:function(t,e){return c((function(r){var n;return g({},r,((n={})[t]=e,n))}))}}},r)},exports.MicroFrontendLink=function(t){var e=t.navigate,r=t.children,n=t.onClick,o=t.target,a=w(t,b);return l.default.createElement("a",g({onClick:function(t){try{n&&n(t)}catch(e){throw t.preventDefault(),e}t.defaultPrevented||0!==t.button||o&&"_self"!==o||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||(t.preventDefault(),e())},target:o},a),r)},exports.OrganisationProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(Number(e.organisationId)))[1],t.useEffect((function(){P.set(n.toString())}),[n=r[0]]),[n,o]);return l.default.createElement(j.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(e){var r=e.getToken,o=e.getOrganisations,a=e.selectedOrganisationId,u=e.onChange,c=w(e,F),s=t.useState([]),f=s[0],p=s[1],v=k().language,y=t.useState("LOADING"),m=y[0],x=y[1];switch(t.useEffect((function(){var t=function(){var t=d(h().mark((function t(){var e,n;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r();case 2:if(e=t.sent,"string"!=typeof o){t.next=9;break}return t.next=6,fetch(o,{headers:{Authorization:"Bearer "+e,Accept:"application/json"}}).then((function(t){return t.json()}));case 6:n=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:n=t.sent;case 12:p(n),x("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){x("ERROR")}))}),[o,r]),m){case"LOADING":return l.default.createElement("div",{className:"eds-contrast"},l.default.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return l.default.createElement(i.OrganisationDropDown,g({label:"nb"===v||"nb-NO"===v?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:f,onChange:u},c));case"ERROR":throw new N;default:return null}},exports.OrganisationsError=N,exports.languageStorage=I,exports.organisationStorage=P,exports.useConsentManager=function(){var e=t.useContext(T);if(!e)throw new Error("useConsentManager must be used within a ConsentManagerProvider");return e},exports.useLanguage=k,exports.useMFNavigation=function(t){return(0,S().getMFNavigate)(t)},exports.useMenu=S,exports.useMenuGroupItems=function(e){return t.useContext(O).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(j);return u.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(j);return u.assertIsDefined(e),e.organisationId};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@entur/alert"),r=require("@entur/typography"),n=require("@entur/loader"),o=require("@entur/tokens"),a=require("@auth0/auth0-react"),i=require("@entur-partner/common"),u=require("@entur-partner/util");function c(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=c(t);function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function f(){f=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new k(n||[]);return o(a,"_invoke",{value:I(t,r,i)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",d="suspendedYield",v="executing",g="completed",y={};function m(){}function w(){}function x(){}var E={};s(E,i,(function(){return this}));var b=Object.getPrototypeOf,O=b&&b(b(N([])));O&&O!==r&&n.call(O,i)&&(E=O);var S=x.prototype=m.prototype=Object.create(E);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,a,i,u){var c=h(t[o],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return a=a?a.then(o,o):o()}})}function I(e,r,n){var o=p;return function(a,i){if(o===v)throw Error("Generator is already running");if(o===g){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=j(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=h(e,r,n);if("normal"===s.type){if(o=n.done?g:d,s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=g,n.method="throw",n.arg=s.arg)}}}function j(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,j(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function C(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[i];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return w.prototype=x,o(S,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=s(x,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,s(t,c,"GeneratorFunction")),t.prototype=Object.create(S),t},e.awrap=function(t){return{__await:t}},L(P.prototype),s(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new P(l(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(S),s(S,c,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return u.type="throw",u.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),_(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function h(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function p(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){h(a,n,o,i,u,"next",t)}function u(t){h(a,n,o,i,u,"throw",t)}i(void 0)}))}}function d(){return d=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},d.apply(this,arguments)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},v(t)}function g(t,e){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},g(t,e)}function y(t){var e="function"==typeof Map?new Map:void 0;return y=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(l())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&g(o,r.prototype),o}(t,arguments,v(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,t)},y(t)}function m(t,e){if(null==t)return{};var r,n,o={},a=Object.keys(t);for(n=0;n<a.length;n++)e.indexOf(r=a[n])>=0||(o[r]=t[r]);return o}var w=function(t){return s.default.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(t.environment)}})},x=function(i){var c=i.children,l=i.decorateUser,h=t.useState(void 0),d=h[0],v=h[1],g=a.useAuth0(),y=g.user,m=g.getAccessTokenSilently,w=g.loginWithRedirect,x=g.logout,E=g.isLoading,b=g.isAuthenticated,O=g.error;return t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,m();case 3:return e=t.sent,t.next=6,l(y,e);case 6:v(t.sent),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(0),console.error("Error fetching user data:",t.t0);case 13:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();b&&t()}),[l,m,b,y]),E||b?E||!d?s.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Authenticating"):O?s.default.createElement(e.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},s.default.createElement(r.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",s.default.createElement(r.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),s.default.createElement(r.Paragraph,null,"Authentication failed with: ",s.default.createElement(r.CodeText,null,null==O?void 0:O.toString()))):(u.assertIsDefined(d),s.default.createElement(s.default.Fragment,null,c({user:d,logout:function(){return t=window.location,x({logoutParams:{returnTo:t.protocol+"//"+t.hostname+":"+t.port}});var t},getToken:m}))):(w(),s.default.createElement(n.Loader,{style:{marginTop:o.space.extraLarge9}},"Redirecting to login page"))},E=["navigate","children","onClick","target"],b=s.default.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),O=function(){return t.useContext(b)},S="EP::activeOrgId",L={get:function(){return localStorage.getItem(S)},set:function(t){return localStorage.setItem(S,t)}},P="EP::locale",I={get:function(){return localStorage.getItem(P)},set:function(t){return localStorage.setItem(P,t)}},j=s.default.createContext(void 0),C=s.default.createContext(void 0),_=function(){var e=t.useContext(C);return u.assertIsDefined(e),e},k=function(t){function e(){for(var e,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return(e=t.call.apply(t,[this].concat(n))||this).message="Failed fetching organisations",e}var r,n;return n=t,(r=e).prototype=Object.create(n.prototype),r.prototype.constructor=r,g(r,n),e}(y(Error)),N=["getToken","getOrganisations","selectedOrganisationId","onChange"],F={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},A={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},G=function(t){return t.map((function(t){var e,r,n,o,a=null==(e=Object.entries(F).find((function(e){return e[1]===t.name})))?void 0:e[0];return u.assertIsDefined(a,"Service name "+t.name+" not found in SERVICE_NAMES"),"boolean"==typeof t.consent?((n={})[a]={consentGiven:t.consent},n):"object"==typeof t.consent&&"given"in t.consent?((o={})[a]={consentGiven:t.consent.given},o):((r={})[a]={consentGiven:!1},r)})).reduce((function(t,e){return d({},t,e)}),A)},M=t.createContext(A);exports.AppShell=function(t){var e=t.children,r=t.environment;return s.default.createElement(a.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:window.location.origin,audience:t.audience}},s.default.createElement(x,{decorateUser:t.decorateUser},(function(t){return s.default.createElement(s.default.Fragment,null,r&&r!==i.Environment.Production&&s.default.createElement(w,{environment:r}),e(t))})))},exports.ConsentManagerProvider=function(e){var r=e.children,n=t.useState(A),o=n[0],a=n[1];return t.useEffect((function(){if("undefined"!=typeof window){var t=localStorage.getItem("ucData");if(t){var e=JSON.parse(t),r=G(Object.values(e.consent.services));a(r)}}}),[]),t.useEffect((function(){var t=function(){var t=p(f().mark((function t(e){var r,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!=typeof window){t.next=2;break}return t.abrupt("return");case 2:r=Object.values(e.detail.services),n=G(r),a(n),window.location.href="/";case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",t),function(){return window.removeEventListener("UC_CONSENT",t)}}),[]),s.default.createElement(M.Provider,{value:o},r)},exports.LanguageProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(e.language))[1],t.useEffect((function(){I.set(n)}),[n=r[0]]),[n,o]);return s.default.createElement(C.Provider,{value:{language:i[0],setLanguage:i[1]}},a)},exports.MenuProvider=function(e){var r=e.children,n=t.useState({}),o=n[0],a=n[1],i=t.useState({}),u=i[0],c=i[1],l=t.useCallback((function(t,e){a((function(r){var n;return d({},r,((n={})[e]=t,n))}))}),[a]);return s.default.createElement(b.Provider,{value:{addItems:l,getItemsForPath:function(t){var e;return null!=(e=o[t])?e:[]},getMFNavigate:function(t){return u[t]},setMFNavigate:function(t,e){return c((function(r){var n;return d({},r,((n={})[t]=e,n))}))}}},r)},exports.MicroFrontendLink=function(t){var e=t.navigate,r=t.children,n=t.onClick,o=t.target,a=m(t,E);return s.default.createElement("a",d({onClick:function(t){try{n&&n(t)}catch(e){throw t.preventDefault(),e}t.defaultPrevented||0!==t.button||o&&"_self"!==o||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||(t.preventDefault(),e())},target:o},a),r)},exports.OrganisationProvider=function(e){var r,n,o,a=e.children,i=(o=(r=t.useState(Number(e.organisationId)))[1],t.useEffect((function(){L.set(n.toString())}),[n=r[0]]),[n,o]);return s.default.createElement(j.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},a)},exports.OrganisationSelector=function(e){var r=e.getToken,o=e.getOrganisations,a=e.selectedOrganisationId,u=e.onChange,c=m(e,N),l=t.useState([]),h=l[0],v=l[1],g=_().language,y=t.useState("LOADING"),w=y[0],x=y[1];switch(t.useEffect((function(){var t=function(){var t=p(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,r();case 2:if(e=t.sent,"string"!=typeof o){t.next=9;break}return t.next=6,fetch(o,{headers:{Authorization:"Bearer "+e,Accept:"application/json"}}).then((function(t){return t.json()}));case 6:n=t.sent,t.next=12;break;case 9:return t.next=11,o(e);case 11:n=t.sent;case 12:v(n),x("SUCCESS");case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();t().catch((function(t){x("ERROR")}))}),[o,r]),w){case"LOADING":return s.default.createElement("div",{className:"eds-contrast"},s.default.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return s.default.createElement(i.OrganisationDropDown,d({label:"nb"===g||"nb-NO"===g?"Organisasjon":"Organisation",selectedOrganisationId:a,organisations:h,onChange:u},c));case"ERROR":throw new k;default:return null}},exports.OrganisationsError=k,exports.languageStorage=I,exports.organisationStorage=L,exports.useConsentManager=function(){return t.useContext(M)},exports.useLanguage=_,exports.useMFNavigation=function(t){return(0,O().getMFNavigate)(t)},exports.useMenu=O,exports.useMenuGroupItems=function(e){return t.useContext(b).getItemsForPath(e)},exports.useOrganisation=function(){var e=t.useContext(j);return u.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=t.useContext(j);return u.assertIsDefined(e),e.organisationId};
2
2
  //# sourceMappingURL=app-shell.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[],\n );\n\n const updatedConsentManager = services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name,\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","sent","t0","console","stop","apply","this","arguments","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","_window$location","window","location","logoutParams","returnTo","protocol","hostname","port","getToken","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","useContext","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","_ref3","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","navigate","useNavigate","consentManager","setConsentManager","handleConsentEvent","event","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","_useOrganisationState","Number","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","wrap","_context","prev","next","sent","t0","console","stop","apply","this","arguments","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","_window$location","window","location","logoutParams","returnTo","protocol","hostname","port","getToken","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","useContext","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","LanguageContext","useLanguage","context","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","_ref3","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","_extends","ConsentContext","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","params","Environment","Production","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","_extends3","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","organisationId","setOrganisationId","_useOrganisationState","Number","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { space } from '@entur/tokens';
6
6
  import { Auth0Provider, useAuth0 } from '@auth0/auth0-react';
7
7
  import { getColorForEnvironment, Environment, OrganisationDropDown } from '@entur-partner/common';
8
8
  import { assertIsDefined } from '@entur-partner/util';
9
- import { useNavigate } from 'react-router';
10
9
 
11
10
  function _construct(t, e, r) {
12
11
  if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
@@ -681,6 +680,12 @@ var languageStorage = {
681
680
  return localStorage.setItem(LANGUAGE_STORAGE_KEY, value);
682
681
  }
683
682
  };
683
+ var UC_UI_STORAGE_KEY = 'ucData';
684
+ var ucUiStorage = {
685
+ get: function get() {
686
+ return localStorage.getItem(UC_UI_STORAGE_KEY);
687
+ }
688
+ };
684
689
 
685
690
  var OrganisationContext = /*#__PURE__*/React.createContext(undefined);
686
691
  var useOrganisation = function useOrganisation() {
@@ -850,6 +855,12 @@ var OrganisationSelector = function OrganisationSelector(_ref) {
850
855
  }
851
856
  };
852
857
 
858
+ var SERVICE_NAMES = {
859
+ Usercentrics: 'Usercentrics Consent Management Platform',
860
+ PostHog: 'PostHog.com',
861
+ Sentry: 'Sentry'
862
+ };
863
+
853
864
  var DEFAULT_CONSENT_GIVEN = {
854
865
  Usercentrics: {
855
866
  consentGiven: false
@@ -861,25 +872,56 @@ var DEFAULT_CONSENT_GIVEN = {
861
872
  consentGiven: false
862
873
  }
863
874
  };
864
- var SERVICE_NAMES = {
865
- Usercentrics: 'Usercentrics Consent Management Platform',
866
- PostHog: 'PostHog.com',
867
- Sentry: 'Sentry'
875
+ var convertUCServicesToConsents = function convertUCServicesToConsents(services) {
876
+ return services.map(function (service) {
877
+ var _Object$entries$find, _ref3;
878
+ var serviceName = (_Object$entries$find = Object.entries(SERVICE_NAMES).find(function (keyValue) {
879
+ return keyValue[1] === service.name;
880
+ })) == null ? void 0 : _Object$entries$find[0];
881
+ // Ensure the service name exists in SERVICE_NAMES
882
+ assertIsDefined(serviceName, "Service name " + service.name + " not found in SERVICE_NAMES");
883
+ if (typeof service.consent == 'boolean') {
884
+ var _ref;
885
+ var consentGiven = service.consent;
886
+ return _ref = {}, _ref[serviceName] = {
887
+ consentGiven: consentGiven
888
+ }, _ref;
889
+ } else if (typeof service.consent === 'object' && 'given' in service.consent) {
890
+ var _ref2;
891
+ var _consentGiven = service.consent.given;
892
+ return _ref2 = {}, _ref2[serviceName] = {
893
+ consentGiven: _consentGiven
894
+ }, _ref2;
895
+ }
896
+ return _ref3 = {}, _ref3[serviceName] = {
897
+ consentGiven: false
898
+ }, _ref3;
899
+ }).reduce(function (acc, curr) {
900
+ return _extends({}, acc, curr);
901
+ }, DEFAULT_CONSENT_GIVEN);
868
902
  };
903
+
869
904
  var ConsentContext = /*#__PURE__*/createContext(DEFAULT_CONSENT_GIVEN);
870
905
  var useConsentManager = function useConsentManager() {
871
906
  var context = useContext(ConsentContext);
872
- if (!context) {
873
- throw new Error('useConsentManager must be used within a ConsentManagerProvider');
874
- }
875
907
  return context;
876
908
  };
877
909
  var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
878
910
  var children = _ref.children;
879
- var navigate = useNavigate();
880
911
  var _useState = useState(DEFAULT_CONSENT_GIVEN),
881
912
  consentManager = _useState[0],
882
913
  setConsentManager = _useState[1];
914
+ // Initialize consent manager from local storage once
915
+ useEffect(function () {
916
+ if (typeof window === 'undefined') return;
917
+ var ucData = ucUiStorage.get();
918
+ if (ucData) {
919
+ var data = JSON.parse(ucData);
920
+ var services = convertUCServicesToConsents(Object.values(data.consent.services));
921
+ setConsentManager(services);
922
+ }
923
+ }, []);
924
+ // Listen for Usercentrics consent events and update consent manager state
883
925
  useEffect(function () {
884
926
  var handleConsentEvent = /*#__PURE__*/function () {
885
927
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
@@ -895,21 +937,9 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
895
937
  case 2:
896
938
  customEvent = event;
897
939
  services = Object.values(customEvent.detail.services);
898
- updatedConsentManager = services.map(function (service) {
899
- var _Object$entries$find, _ref3;
900
- var serviceName = (_Object$entries$find = Object.entries(SERVICE_NAMES).find(function (keyValue) {
901
- return keyValue[1] === service.name;
902
- })) == null ? void 0 : _Object$entries$find[0];
903
- // Ensure the service name is defined in SERVICE_NAMES
904
- assertIsDefined(serviceName, "Service name " + service.name + " not found in SERVICE_NAMES");
905
- return _ref3 = {}, _ref3[serviceName] = {
906
- consentGiven: service.consent.given
907
- }, _ref3;
908
- }).reduce(function (acc, curr) {
909
- return _extends({}, acc, curr);
910
- }, DEFAULT_CONSENT_GIVEN);
940
+ updatedConsentManager = convertUCServicesToConsents(services);
911
941
  setConsentManager(updatedConsentManager);
912
- navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated
942
+ window.location.href = '/';
913
943
  case 7:
914
944
  case "end":
915
945
  return _context.stop();
@@ -924,7 +954,7 @@ var ConsentManagerProvider = function ConsentManagerProvider(_ref) {
924
954
  return function () {
925
955
  return window.removeEventListener('UC_CONSENT', handleConsentEvent);
926
956
  };
927
- }, [navigate]);
957
+ }, []);
928
958
  return React.createElement(ConsentContext.Provider, {
929
959
  value: consentManager
930
960
  }, children);
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/ConsentManagerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { useNavigate } from 'react-router';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Consents } from '@entur-partner/micro-frontend';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nconst SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\ninterface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error(\n 'useConsentManager must be used within a ConsentManagerProvider',\n );\n }\n return context;\n};\n\nexport const ConsentManagerProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const navigate = useNavigate();\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN,\n );\n\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[],\n );\n\n const updatedConsentManager = services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name,\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name is defined in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`,\n );\n\n return {\n [serviceName]: {\n consentGiven: service.consent.given,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents,\n );\n setConsentManager(updatedConsentManager);\n navigate('/'); // Go to home page after consent is given and make sure MFs payload.user is updated\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, [navigate]);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","DEFAULT_CONSENT_GIVEN","Usercentrics","consentGiven","PostHog","Sentry","SERVICE_NAMES","ConsentContext","useConsentManager","ConsentManagerProvider","useNavigate","consentManager","setConsentManager","handleConsentEvent","customEvent","services","updatedConsentManager","abrupt","Object","values","detail","map","service","_Object$entries$find","serviceName","entries","find","keyValue","name","consent","given","reduce","acc","curr","_x","addEventListener","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './types/UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = 'ucData';\n\nexport const ucUiStorage = {\n get: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n organisationId: number;\n tradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n selectedOrganisationId: number;\n onChange: (organisationId: number) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n selectedOrganisationId,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: OrganisationV3[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={\n language === 'nb' || language === 'nb-NO'\n ? 'Organisasjon'\n : 'Organisation'\n }\n selectedOrganisationId={selectedOrganisationId}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n","export const SERVICE_NAMES = {\n Usercentrics: 'Usercentrics Consent Management Platform',\n PostHog: 'PostHog.com',\n Sentry: 'Sentry',\n} as const;\n\nexport interface ServiceConsent {\n name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n consent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n consent: {\n services: {\n [key: string]: {\n name: string;\n consent: boolean;\n };\n };\n };\n}\n\nexport type UCServiceArray = Array<\n UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]\n>;\n","import { Consents } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport {\n SERVICE_NAMES,\n ServiceConsent,\n UCServiceArray,\n} from '../types/ConsentTypes';\n\nexport const DEFAULT_CONSENT_GIVEN = {\n Usercentrics: { consentGiven: false },\n PostHog: { consentGiven: false },\n Sentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n services: ServiceConsent[] | UCServiceArray\n): Consents => {\n return services\n .map((service) => {\n const serviceName = Object.entries(SERVICE_NAMES).find(\n (keyValue) => keyValue[1] === service.name\n )?.[0] as keyof typeof SERVICE_NAMES;\n\n // Ensure the service name exists in SERVICE_NAMES\n assertIsDefined(\n serviceName,\n `Service name ${service.name} not found in SERVICE_NAMES`\n );\n\n if (typeof service.consent == 'boolean') {\n const consentGiven = service.consent as boolean;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n } else if (\n typeof service.consent === 'object' &&\n 'given' in service.consent\n ) {\n const consentGiven = service.consent.given;\n return {\n [serviceName]: {\n consentGiven: consentGiven,\n },\n };\n }\n\n return {\n [serviceName]: {\n consentGiven: false,\n },\n };\n })\n .reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n DEFAULT_CONSENT_GIVEN as Consents\n );\n};\n","import React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from 'react';\nimport { Consents } from '@entur-partner/micro-frontend';\n\nimport { ucUiStorage } from './storage';\nimport {\n ServiceConsent,\n UCDataConsentDataFromLocalStorage,\n} from './types/ConsentTypes';\nimport {\n convertUCServicesToConsents,\n DEFAULT_CONSENT_GIVEN,\n} from './util/convertUCServicesToConsents';\n\ndeclare global {\n interface Window {\n UC_UI: {\n showSecondLayer: () => void;\n };\n }\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n const context = useContext(ConsentContext);\n return context;\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n const [consentManager, setConsentManager] = useState<Consents>(\n DEFAULT_CONSENT_GIVEN\n );\n\n // Initialize consent manager from local storage once\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const ucData = ucUiStorage.get();\n\n if (ucData) {\n const data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n const services = convertUCServicesToConsents(\n Object.values(data.consent.services)\n );\n\n setConsentManager(services);\n }\n }, []);\n\n // Listen for Usercentrics consent events and update consent manager state\n useEffect(() => {\n const handleConsentEvent = async (event: Event) => {\n if (typeof window === 'undefined') return;\n\n const customEvent = event as CustomEvent;\n const services = Object.values(\n customEvent.detail.services as ServiceConsent[]\n );\n\n const updatedConsentManager = convertUCServicesToConsents(services);\n setConsentManager(updatedConsentManager);\n window.location.href = '/';\n };\n\n window.addEventListener('UC_CONSENT', handleConsentEvent);\n\n return () => window.removeEventListener('UC_CONSENT', handleConsentEvent);\n }, []);\n\n return (\n <ConsentContext.Provider value={consentManager}>\n {children}\n </ConsentContext.Provider>\n );\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","selectedOrganisationId","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","consent","given","reduce","acc","curr","ConsentContext","useConsentManager","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","customEvent","updatedConsentManager","abrupt","detail","_x","addEventListener","removeEventListener"],"mappings":"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"}
package/dist/storage.d.ts CHANGED
@@ -8,3 +8,7 @@ export declare const languageStorage: {
8
8
  get: () => string | null;
9
9
  set: (value: string) => void;
10
10
  };
11
+ export declare const UC_UI_STORAGE_KEY = "ucData";
12
+ export declare const ucUiStorage: {
13
+ get: () => string | null;
14
+ };
@@ -0,0 +1,22 @@
1
+ export declare const SERVICE_NAMES: {
2
+ readonly Usercentrics: "Usercentrics Consent Management Platform";
3
+ readonly PostHog: "PostHog.com";
4
+ readonly Sentry: "Sentry";
5
+ };
6
+ export interface ServiceConsent {
7
+ name: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];
8
+ consent: {
9
+ given: boolean;
10
+ };
11
+ }
12
+ export interface UCDataConsentDataFromLocalStorage {
13
+ consent: {
14
+ services: {
15
+ [key: string]: {
16
+ name: string;
17
+ consent: boolean;
18
+ };
19
+ };
20
+ };
21
+ }
22
+ export type UCServiceArray = Array<UCDataConsentDataFromLocalStorage['consent']['services'][keyof UCDataConsentDataFromLocalStorage['consent']['services']]>;
@@ -0,0 +1,14 @@
1
+ import { Consents } from '@entur-partner/micro-frontend';
2
+ import { ServiceConsent, UCServiceArray } from '../types/ConsentTypes';
3
+ export declare const DEFAULT_CONSENT_GIVEN: {
4
+ readonly Usercentrics: {
5
+ readonly consentGiven: false;
6
+ };
7
+ readonly PostHog: {
8
+ readonly consentGiven: false;
9
+ };
10
+ readonly Sentry: {
11
+ readonly consentGiven: false;
12
+ };
13
+ };
14
+ export declare const convertUCServicesToConsents: (services: ServiceConsent[] | UCServiceArray) => Consents;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/app-shell",
3
- "version": "6.0.5-alpha.1",
3
+ "version": "6.0.5-alpha.3",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/app-shell.esm.js",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@auth0/auth0-react": "^2.2.4",
37
37
  "@entur-partner/common": "^9.1.0",
38
- "@entur-partner/micro-frontend": "^2.4.10-alpha.1",
38
+ "@entur-partner/micro-frontend": "^2.4.10-alpha.3",
39
39
  "@entur-partner/util": "^1.2.4"
40
40
  },
41
41
  "devDependencies": {
@@ -52,5 +52,5 @@
52
52
  "reportFile": "jest-sonar-report.xml",
53
53
  "indent": 4
54
54
  },
55
- "gitHead": "67ba46d287c09f1b4203431ba3f296ca2e4c8a8f"
55
+ "gitHead": "13f6276735c7881c3dc47c075e0dfb7950f845eb"
56
56
  }
File without changes