@entur-partner/app-shell 6.2.1-alpha.0 → 7.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppShell.d.ts +6 -3
- package/dist/OrganisationProvider.d.ts +2 -2
- package/dist/app-shell.cjs.development.js +29 -18
- package/dist/app-shell.cjs.development.js.map +1 -1
- package/dist/app-shell.cjs.production.min.js +1 -1
- package/dist/app-shell.cjs.production.min.js.map +1 -1
- package/dist/app-shell.esm.js +29 -18
- package/dist/app-shell.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/AppShell.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import React, { type ReactNode } from "react";
|
|
|
5
5
|
import type { DecorateUserFn } from "./types/UserTypes";
|
|
6
6
|
export interface AppShellValues {
|
|
7
7
|
logout: Auth0ContextInterface["logout"];
|
|
8
|
-
user
|
|
8
|
+
user?: User;
|
|
9
9
|
getToken(options?: GetTokenSilentlyOptions): Promise<string>;
|
|
10
10
|
}
|
|
11
11
|
export interface AppShellProps {
|
|
@@ -14,11 +14,14 @@ export interface AppShellProps {
|
|
|
14
14
|
domain: string;
|
|
15
15
|
clientId: string;
|
|
16
16
|
decorateUser: DecorateUserFn;
|
|
17
|
+
/**
|
|
18
|
+
* Optional redirect URI to use after login. If not provided, the intended path or "/" will be used.
|
|
19
|
+
*/
|
|
17
20
|
redirectUri?: string;
|
|
18
21
|
environment?: Environment;
|
|
19
|
-
restoreOriginalUri?: boolean;
|
|
20
22
|
navigate?: (to: string, options?: {
|
|
21
23
|
replace?: boolean;
|
|
22
24
|
}) => void;
|
|
25
|
+
isPublicView?: boolean;
|
|
23
26
|
}
|
|
24
|
-
export declare const AppShell: ({ children, audience, domain, clientId, decorateUser, environment, redirectUri, navigate, }: AppShellProps) => React.JSX.Element;
|
|
27
|
+
export declare const AppShell: ({ children, audience, domain, clientId, decorateUser, environment, redirectUri, navigate, isPublicView, }: AppShellProps) => React.JSX.Element;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type FC, type ReactNode } from "react";
|
|
2
2
|
interface OrganisationContextType {
|
|
3
|
-
organisationId
|
|
3
|
+
organisationId?: number;
|
|
4
4
|
setOrganisationId: (organisationId: number) => void;
|
|
5
5
|
}
|
|
6
6
|
export declare const useOrganisation: () => OrganisationContextType;
|
|
7
|
-
export declare const useOrganisationId: () => number;
|
|
7
|
+
export declare const useOrganisationId: () => number | undefined;
|
|
8
8
|
interface OrganisationProviderProps {
|
|
9
9
|
children: ReactNode;
|
|
10
10
|
organisationId: string;
|
|
@@ -8,8 +8,8 @@ var loader = require('@entur/loader');
|
|
|
8
8
|
var tokens = require('@entur/tokens');
|
|
9
9
|
var typography = require('@entur/typography');
|
|
10
10
|
var common = require('@entur-partner/common');
|
|
11
|
-
var util = require('@entur-partner/util');
|
|
12
11
|
var React = require('react');
|
|
12
|
+
var util = require('@entur-partner/util');
|
|
13
13
|
var postHog = require('posthog-js');
|
|
14
14
|
var react = require('posthog-js/react');
|
|
15
15
|
|
|
@@ -253,10 +253,14 @@ function userLogout(logout) {
|
|
|
253
253
|
var Authenticate = function Authenticate(_ref) {
|
|
254
254
|
var children = _ref.children,
|
|
255
255
|
decorateUser = _ref.decorateUser,
|
|
256
|
-
getReturnPath = _ref.getReturnPath
|
|
256
|
+
getReturnPath = _ref.getReturnPath,
|
|
257
|
+
isPublicView = _ref.isPublicView;
|
|
257
258
|
var _useState = React.useState(undefined),
|
|
258
259
|
userWithPermission = _useState[0],
|
|
259
260
|
setUserWithPermission = _useState[1];
|
|
261
|
+
var _useState2 = React.useState(false),
|
|
262
|
+
loadInUserData = _useState2[0],
|
|
263
|
+
setLoadInUserData = _useState2[1];
|
|
260
264
|
var _useAuth = auth0React.useAuth0(),
|
|
261
265
|
user = _useAuth.user,
|
|
262
266
|
getAccessTokenSilently = _useAuth.getAccessTokenSilently,
|
|
@@ -272,26 +276,31 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
272
276
|
return _regenerator().w(function (_context) {
|
|
273
277
|
while (1) switch (_context.p = _context.n) {
|
|
274
278
|
case 0:
|
|
275
|
-
|
|
276
|
-
_context.
|
|
279
|
+
setLoadInUserData(true);
|
|
280
|
+
_context.p = 1;
|
|
281
|
+
_context.n = 2;
|
|
277
282
|
return getAccessTokenSilently();
|
|
278
|
-
case
|
|
283
|
+
case 2:
|
|
279
284
|
token = _context.v;
|
|
280
|
-
_context.n =
|
|
285
|
+
_context.n = 3;
|
|
281
286
|
return decorateUser(user, token);
|
|
282
|
-
case
|
|
287
|
+
case 3:
|
|
283
288
|
decoratedUser = _context.v;
|
|
284
289
|
setUserWithPermission(decoratedUser);
|
|
285
|
-
_context.n =
|
|
290
|
+
_context.n = 5;
|
|
286
291
|
break;
|
|
287
|
-
case
|
|
288
|
-
_context.p =
|
|
292
|
+
case 4:
|
|
293
|
+
_context.p = 4;
|
|
289
294
|
_t = _context.v;
|
|
290
295
|
console.error("Error fetching user data:", _t);
|
|
291
|
-
case
|
|
296
|
+
case 5:
|
|
297
|
+
_context.p = 5;
|
|
298
|
+
setLoadInUserData(false);
|
|
299
|
+
return _context.f(5);
|
|
300
|
+
case 6:
|
|
292
301
|
return _context.a(2);
|
|
293
302
|
}
|
|
294
|
-
}, _callee, null, [[
|
|
303
|
+
}, _callee, null, [[1, 4, 5, 6]]);
|
|
295
304
|
}));
|
|
296
305
|
return function fetchUserData() {
|
|
297
306
|
return _ref2.apply(this, arguments);
|
|
@@ -301,7 +310,7 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
301
310
|
fetchUserData();
|
|
302
311
|
}
|
|
303
312
|
}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);
|
|
304
|
-
if (!
|
|
313
|
+
if (!isAuthenticated && !isPublicView) {
|
|
305
314
|
loginWithRedirect({
|
|
306
315
|
appState: {
|
|
307
316
|
returnTo: getReturnPath()
|
|
@@ -313,7 +322,7 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
313
322
|
}
|
|
314
323
|
}, "Redirecting to login page");
|
|
315
324
|
}
|
|
316
|
-
if (isLoading ||
|
|
325
|
+
if (isLoading || loadInUserData) {
|
|
317
326
|
return React.createElement(loader.Loader, {
|
|
318
327
|
style: {
|
|
319
328
|
marginTop: tokens.space.extraLarge9
|
|
@@ -333,7 +342,6 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
333
342
|
href: "mailto:support@entur.org"
|
|
334
343
|
}, "support@entur.org"), " to get it resolved."), React.createElement(typography.Paragraph, null, "Authentication failed with: ", React.createElement(typography.CodeText, null, error == null ? void 0 : error.toString())));
|
|
335
344
|
}
|
|
336
|
-
util.assertIsDefined(userWithPermission);
|
|
337
345
|
return React.createElement(React.Fragment, null, children({
|
|
338
346
|
user: userWithPermission,
|
|
339
347
|
logout: function logout() {
|
|
@@ -350,7 +358,9 @@ var AppShell = function AppShell(_ref3) {
|
|
|
350
358
|
decorateUser = _ref3.decorateUser,
|
|
351
359
|
environment = _ref3.environment,
|
|
352
360
|
redirectUri = _ref3.redirectUri,
|
|
353
|
-
navigate = _ref3.navigate
|
|
361
|
+
navigate = _ref3.navigate,
|
|
362
|
+
_ref3$isPublicView = _ref3.isPublicView,
|
|
363
|
+
isPublicView = _ref3$isPublicView === void 0 ? false : _ref3$isPublicView;
|
|
354
364
|
// Central place to derive current in-app location (excluding origin)
|
|
355
365
|
var getCurrentAppPath = function getCurrentAppPath() {
|
|
356
366
|
return "" + window.location.pathname + window.location.search + window.location.hash;
|
|
@@ -358,7 +368,7 @@ var AppShell = function AppShell(_ref3) {
|
|
|
358
368
|
// Provide an Auth0 onRedirectCallback that restores the stored path
|
|
359
369
|
var handleRedirectCallback = function handleRedirectCallback(appState) {
|
|
360
370
|
var target = appState == null ? void 0 : appState.returnTo;
|
|
361
|
-
var destination =
|
|
371
|
+
var destination = redirectUri || target || "/";
|
|
362
372
|
if (navigate) {
|
|
363
373
|
navigate(destination, {
|
|
364
374
|
replace: true
|
|
@@ -378,7 +388,8 @@ var AppShell = function AppShell(_ref3) {
|
|
|
378
388
|
onRedirectCallback: handleRedirectCallback
|
|
379
389
|
}, React.createElement(Authenticate, {
|
|
380
390
|
decorateUser: decorateUser,
|
|
381
|
-
getReturnPath: getCurrentAppPath
|
|
391
|
+
getReturnPath: getCurrentAppPath,
|
|
392
|
+
isPublicView: isPublicView
|
|
382
393
|
}, function (params) {
|
|
383
394
|
return React.createElement(React.Fragment, null, environment && environment !== common.Environment.Production && React.createElement(EnvironmentBanner, {
|
|
384
395
|
environment: environment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isLoading && !isAuthenticated) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || !userWithPermission) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\tassertIsDefined(userWithPermission);\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\trestoreOriginalUri?: boolean; // default true\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = target || redirectUri || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","getReturnPath","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","decoratedUser","_t","w","_context","p","n","v","console","a","apply","arguments","appState","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","redirectUri","navigate","getCurrentAppPath","pathname","search","hash","handleRedirectCallback","target","destination","replace","history","replaceState","Auth0Provider","authorizationParams","redirect_uri","origin","onRedirectCallback","params","Environment","Production","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","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","_extends","ConsentContext","createContext","useConsentManager","context","useContext","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","customEvent","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","prev","_extends3","_groups$path","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","onClick","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","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","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.cjs.development.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser?: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n\tisPublicView: boolean;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n\tisPublicView,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst [loadInUserData, setLoadInUserData] = useState<boolean>(false);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\tsetLoadInUserData(true);\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t} finally {\n\t\t\t\tsetLoadInUserData(false);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isAuthenticated && !isPublicView) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || loadInUserData) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\t/**\n\t * Optional redirect URI to use after login. If not provided, the intended path or \"/\" will be used.\n\t */\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n\tisPublicView?: boolean;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n\tisPublicView = false,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = redirectUri || target || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t\tisPublicView={isPublicView}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId?: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","getReturnPath","isPublicView","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useState2","loadInUserData","setLoadInUserData","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","decoratedUser","_t","w","_context","p","n","v","console","f","a","apply","arguments","appState","Loader","marginTop","space","extraLarge9","process","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","redirectUri","navigate","_ref3$isPublicView","getCurrentAppPath","pathname","search","hash","handleRedirectCallback","target","destination","replace","history","replaceState","Auth0Provider","authorizationParams","redirect_uri","origin","onRedirectCallback","params","Environment","Production","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","assertIsDefined","consent","given","reduce","acc","curr","_extends","ConsentContext","createContext","useConsentManager","context","useContext","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","customEvent","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","prev","_extends3","_groups$path","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","onClick","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","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","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@auth0/auth0-react"),t=require("@entur/alert"),n=require("@entur/loader"),r=require("@entur/tokens"),o=require("@entur/typography"),a=require("@entur-partner/common"),i=require("@entur-partner/util"),u=require("react"),c=require("posthog-js"),s=require("posthog-js/react");function l(e,t,n,r,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function f(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){l(a,r,o,i,u,"next",e)}function u(e){l(a,r,o,i,u,"throw",e)}i(void 0)})}}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(null,arguments)}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function d(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(d=function(){return!!e})()}function v(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function h(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var c=Object.create((r&&r.prototype instanceof u?r:u).prototype);return m(c,"_invoke",function(n,r,o){var a,u,c,s=0,l=o||[],f=!1,p={p:0,n:0,v:e,a:g,f:g.bind(e,4),d:function(t,n){return a=t,u=0,c=e,p.n=n,i}};function g(n,r){for(u=n,c=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,a=l[t],g=p.p,d=a[2];n>3?(o=d===r)&&(c=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=g&&((o=n<2&&g<a[1])?(u=0,p.v=r,p.n=a[1]):g<d&&(o=n<3||a[0]>r||r>d)&&(a[4]=n,a[5]=r,p.n=d,u=0))}if(o||n>1)return i;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&g(l,d),u=l,c=d;(t=u<2?e:c)||!f;){a||(u?u<3?(u>1&&(p.n=-1),g(u,c)):p.n=c:p.v=c);try{if(s=2,a){if(u||(o="next"),t=a[o]){if(!(t=t.call(a,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=a.return)&&t.call(a),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((t=(f=p.n<0)?c:n.call(r,p))!==i)break}catch(t){a=e,u=1,c=t}finally{s=1}}return{value:t,done:f}}}(n,o,a),!0),c}var i={};function u(){}function c(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(m(t={},r,function(){return this}),t),f=s.prototype=u.prototype=Object.create(l);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,m(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=s,m(f,"constructor",s),m(s,"constructor",c),c.displayName="GeneratorFunction",m(s,o,"GeneratorFunction"),m(f),m(f,o,"Generator"),m(f,r,function(){return this}),m(f,"toString",function(){return"[object Generator]"}),(h=function(){return{w:a,m:p}})()}function m(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}m=function(e,t,n,r){function a(t,n){m(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(a("next",0),a("throw",1),a("return",2))},m(e,t,n,r)}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function b(e){var t="function"==typeof Map?new Map:void 0;return b=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(d())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&y(o,n.prototype),o}(e,arguments,g(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),y(n,e)},b(e)}var w=function(e){return u.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:a.getColorForEnvironment(e.environment)}})},O=function(a){var c=a.children,s=a.decorateUser,l=a.getReturnPath,p=u.useState(void 0),g=p[0],d=p[1],v=e.useAuth0(),m=v.user,y=v.getAccessTokenSilently,b=v.loginWithRedirect,w=v.logout,O=v.isLoading,E=v.isAuthenticated,P=v.error;return u.useEffect(function(){var e=function(){var e=f(h().m(function e(){var t;return h().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,y();case 1:return t=e.v,e.n=2,s(m,t);case 2:d(e.v),e.n=4;break;case 3:e.p=3,console.error("Error fetching user data:",e.v);case 4:return e.a(2)}},e,null,[[0,3]])}));return function(){return e.apply(this,arguments)}}();E&&e()},[s,y,E,m]),O||E?O||!g?u.createElement(n.Loader,{style:{marginTop:r.space.extraLarge9}},"Authenticating"):P?u.createElement(t.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},u.createElement(o.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",u.createElement(o.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),u.createElement(o.Paragraph,null,"Authentication failed with: ",u.createElement(o.CodeText,null,null==P?void 0:P.toString()))):(i.assertIsDefined(g),u.createElement(u.Fragment,null,c({user:g,logout:function(){return e=window.location,w({logoutParams:{returnTo:e.protocol+"//"+e.hostname+":"+e.port}});var e},getToken:y}))):(b({appState:{returnTo:l()}}),u.createElement(n.Loader,{style:{marginTop:r.space.extraLarge9}},"Redirecting to login page"))},E="EP::activeOrgId",P={get:function(){return localStorage.getItem(E)},set:function(e){return localStorage.setItem(E,e)}},S="EP::locale",x={get:function(){return localStorage.getItem(S)},set:function(e){return localStorage.setItem(S,e)}},C={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},I={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},_=function(e){return e.map(function(e){var t,n,r,o,a=null==(t=Object.entries(C).find(function(t){return t[1]===e.name}))?void 0:t[0];return i.assertIsDefined(a,"Service name "+e.name+" not found in SERVICE_NAMES"),"boolean"==typeof e.consent?((r={})[a]={consentGiven:e.consent},r):"object"==typeof e.consent&&"given"in e.consent?((o={})[a]={consentGiven:e.consent.given},o):((n={})[a]={consentGiven:!1},n)}).reduce(function(e,t){return p({},e,t)},I)},j=u.createContext(I),k=function(){return u.useContext(j)},A=u.createContext(void 0),F=function(){var e=u.useContext(A);return i.assertIsDefined(e),e},N=u.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),T=function(){return u.useContext(N)},G=["navigate","children","onClick","target"],M=u.createContext(void 0),R=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).message="Failed fetching organisations",t}var n,r;return r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,y(n,r),t}(b(Error)),L=["getToken","getOrganisations","selectedOrganisationId","onChange"];exports.AppShell=function(t){var n=t.children,r=t.environment,o=t.redirectUri,i=t.navigate;return u.createElement(e.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:null!=o?o:window.location.origin,audience:t.audience},onRedirectCallback:function(e){var t=(null==e?void 0:e.returnTo)||o||"/";i?i(t,{replace:!0}):window.history.replaceState({},"",t)}},u.createElement(O,{decorateUser:t.decorateUser,getReturnPath:function(){return""+window.location.pathname+window.location.search+window.location.hash}},function(e){return u.createElement(u.Fragment,null,r&&r!==a.Environment.Production&&u.createElement(w,{environment:r}),n(e))}))},exports.ConsentManagerProvider=function(e){var t=e.children,n=u.useState(I),r=n[0],o=n[1];return u.useEffect(function(){if("undefined"!=typeof window){var e=localStorage.getItem("ucData");if(e){var t=JSON.parse(e),n=_(Object.values(t.consent.services));o(n)}}},[]),u.useEffect(function(){var e=function(){var e=f(h().m(function e(t){var n,r;return h().w(function(e){for(;;)switch(e.n){case 0:if("undefined"!=typeof window){e.n=1;break}return e.a(2);case 1:n=Object.values(t.detail.services),r=_(n),o(r);case 2:return e.a(2)}},e)}));return function(t){return e.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",e),function(){return window.removeEventListener("UC_CONSENT",e)}},[]),u.createElement(j.Provider,{value:r},t)},exports.LanguageProvider=function(e){var t,n,r,o=e.children,a=(r=(t=u.useState(e.language))[1],u.useEffect(function(){x.set(n)},[n=t[0]]),[n,r]);return u.createElement(A.Provider,{value:{language:a[0],setLanguage:a[1]}},o)},exports.MenuProvider=function(e){var t=e.children,n=u.useState({}),r=n[0],o=n[1],a=u.useState({}),i=a[0],c=a[1],s=u.useCallback(function(e,t){o(function(n){var r;return p({},n,((r={})[t]=e,r))})},[]);return u.createElement(N.Provider,{value:{addItems:s,getItemsForPath:function(e){var t;return null!=(t=r[e])?t:[]},getMFNavigate:function(e){return i[e]},setMFNavigate:function(e,t){return c(function(n){var r;return p({},n,((r={})[e]=t,r))})}}},t)},exports.MicroFrontendLink=function(e){var t=e.navigate,n=e.children,r=e.onClick,o=e.target,a=v(e,G);return u.createElement("a",p({onClick:function(e){try{r&&r(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||o&&"_self"!==o||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),t())},target:o},a),n)},exports.OrganisationProvider=function(e){var t,n,r,o=e.children,a=(r=(t=u.useState(Number(e.organisationId)))[1],u.useEffect(function(){P.set(n.toString())},[n=t[0]]),[n,r]);return u.createElement(M.Provider,{value:{organisationId:a[0],setOrganisationId:a[1]}},o)},exports.OrganisationSelector=function(e){var t=e.getToken,r=e.getOrganisations,o=e.selectedOrganisationId,i=e.onChange,c=v(e,L),s=u.useState([]),l=s[0],g=s[1],d=F().language,m=u.useState("LOADING"),y=m[0],b=m[1];switch(u.useEffect(function(){var e=function(){var e=f(h().m(function e(){var n,o;return h().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t();case 1:if(n=e.v,"string"!=typeof r){e.n=3;break}return e.n=2,fetch(r,{headers:{Authorization:"Bearer "+n,Accept:"application/json"}}).then(function(e){return e.json()});case 2:o=e.v,e.n=5;break;case 3:return e.n=4,r(n);case 4:o=e.v;case 5:g(o),b("SUCCESS");case 6:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();e().catch(function(e){b("ERROR")})},[r,t]),y){case"LOADING":return u.createElement("div",{className:"eds-contrast"},u.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return u.createElement(a.OrganisationDropDown,p({label:"nb"===d||"nb-NO"===d?"Organisasjon":"Organisation",selectedOrganisationId:o,organisations:l,onChange:i},c));case"ERROR":throw new R;default:return null}},exports.OrganisationsError=R,exports.PostHogProviderWrapper=function(e){var t=e.debug,n=void 0!==t&&t,r=e.postHogApiKey,o=e.isStandalone,a=e.project,i=e.forceDisablePostHog,l=void 0!==i&&i,f=e.children,p=k();return u.useEffect(function(){r&&!l&&(null!=p&&p.PostHog.consentGiven?c.opt_in_capturing():c.opt_out_capturing())},[p.PostHog.consentGiven,l,r]),!r||l?(l?console.warn("AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized."):console.warn("AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized."),u.createElement(u.Fragment,null,f)):(c.init(r,{debug:n,api_host:o?"https://eu.posthog.com":"/ingest",ui_host:"https://eu.posthog.com",opt_out_capturing_by_default:!0,autocapture:o},a),u.createElement(s.PostHogProvider,{client:c},f))},exports.languageStorage=x,exports.organisationStorage=P,exports.useConsentManager=k,exports.useLanguage=F,exports.useMFNavigation=function(e){return(0,T().getMFNavigate)(e)},exports.useMenu=T,exports.useMenuGroupItems=function(e){return u.useContext(N).getItemsForPath(e)},exports.useOrganisation=function(){var e=u.useContext(M);return i.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=u.useContext(M);return i.assertIsDefined(e),e.organisationId};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@auth0/auth0-react"),t=require("@entur/alert"),n=require("@entur/loader"),r=require("@entur/tokens"),o=require("@entur/typography"),i=require("@entur-partner/common"),a=require("react"),u=require("@entur-partner/util"),c=require("posthog-js"),s=require("posthog-js/react");function l(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function f(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){l(i,r,o,a,u,"next",e)}function u(e){l(i,r,o,a,u,"throw",e)}a(void 0)})}}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(null,arguments)}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function d(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(d=function(){return!!e})()}function v(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function h(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var c=Object.create((r&&r.prototype instanceof u?r:u).prototype);return m(c,"_invoke",function(n,r,o){var i,u,c,s=0,l=o||[],f=!1,p={p:0,n:0,v:e,a:g,f:g.bind(e,4),d:function(t,n){return i=t,u=0,c=e,p.n=n,a}};function g(n,r){for(u=n,c=r,t=0;!f&&s&&!o&&t<l.length;t++){var o,i=l[t],g=p.p,d=i[2];n>3?(o=d===r)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=g&&((o=n<2&&g<i[1])?(u=0,p.v=r,p.n=i[1]):g<d&&(o=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,p.n=d,u=0))}if(o||n>1)return a;throw f=!0,r}return function(o,l,d){if(s>1)throw TypeError("Generator is already running");for(f&&1===l&&g(l,d),u=l,c=d;(t=u<2?e:c)||!f;){i||(u?u<3?(u>1&&(p.n=-1),g(u,c)):p.n=c:p.v=c);try{if(s=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(f=p.n<0)?c:n.call(r,p))!==a)break}catch(t){i=e,u=1,c=t}finally{s=1}}return{value:t,done:f}}}(n,o,i),!0),c}var a={};function u(){}function c(){}function s(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(m(t={},r,function(){return this}),t),f=s.prototype=u.prototype=Object.create(l);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,m(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=s,m(f,"constructor",s),m(s,"constructor",c),c.displayName="GeneratorFunction",m(s,o,"GeneratorFunction"),m(f),m(f,o,"Generator"),m(f,r,function(){return this}),m(f,"toString",function(){return"[object Generator]"}),(h=function(){return{w:i,m:p}})()}function m(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}m=function(e,t,n,r){function i(t,n){m(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},m(e,t,n,r)}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function b(e){var t="function"==typeof Map?new Map:void 0;return b=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(d())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&y(o,n.prototype),o}(e,arguments,g(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),y(n,e)},b(e)}var w=function(e){return a.createElement("div",{className:"epp-environment-banner",style:{position:"fixed",zIndex:9999,top:0,left:0,right:0,width:"100vw",height:"16px",backgroundColor:i.getColorForEnvironment(e.environment)}})},O=function(i){var u=i.children,c=i.decorateUser,s=i.getReturnPath,l=i.isPublicView,p=a.useState(void 0),g=p[0],d=p[1],v=a.useState(!1),m=v[0],y=v[1],b=e.useAuth0(),w=b.user,O=b.getAccessTokenSilently,P=b.loginWithRedirect,E=b.logout,S=b.isLoading,x=b.isAuthenticated,C=b.error;return a.useEffect(function(){var e=function(){var e=f(h().m(function e(){var t;return h().w(function(e){for(;;)switch(e.p=e.n){case 0:return y(!0),e.p=1,e.n=2,O();case 2:return t=e.v,e.n=3,c(w,t);case 3:d(e.v),e.n=5;break;case 4:e.p=4,console.error("Error fetching user data:",e.v);case 5:return e.p=5,y(!1),e.f(5);case 6:return e.a(2)}},e,null,[[1,4,5,6]])}));return function(){return e.apply(this,arguments)}}();x&&e()},[c,O,x,w]),x||l?S||m?a.createElement(n.Loader,{style:{marginTop:r.space.extraLarge9}},"Authenticating"):C?a.createElement(t.BannerAlertBox,{variant:"error",title:"Authentication failed",style:{maxWidth:"600px",margin:"0 auto"}},a.createElement(o.Paragraph,null,"Something went wrong while trying to authenticate you. If the problem persists you should contact"," ",a.createElement(o.Link,{href:"mailto:support@entur.org"},"support@entur.org")," to get it resolved."),a.createElement(o.Paragraph,null,"Authentication failed with: ",a.createElement(o.CodeText,null,null==C?void 0:C.toString()))):a.createElement(a.Fragment,null,u({user:g,logout:function(){return e=window.location,E({logoutParams:{returnTo:e.protocol+"//"+e.hostname+":"+e.port}});var e},getToken:O})):(P({appState:{returnTo:s()}}),a.createElement(n.Loader,{style:{marginTop:r.space.extraLarge9}},"Redirecting to login page"))},P="EP::activeOrgId",E={get:function(){return localStorage.getItem(P)},set:function(e){return localStorage.setItem(P,e)}},S="EP::locale",x={get:function(){return localStorage.getItem(S)},set:function(e){return localStorage.setItem(S,e)}},C={Usercentrics:"Usercentrics Consent Management Platform",PostHog:"PostHog.com",Sentry:"Sentry"},I={Usercentrics:{consentGiven:!1},PostHog:{consentGiven:!1},Sentry:{consentGiven:!1}},_=function(e){return e.map(function(e){var t,n,r,o,i=null==(t=Object.entries(C).find(function(t){return t[1]===e.name}))?void 0:t[0];return u.assertIsDefined(i,"Service name "+e.name+" not found in SERVICE_NAMES"),"boolean"==typeof e.consent?((r={})[i]={consentGiven:e.consent},r):"object"==typeof e.consent&&"given"in e.consent?((o={})[i]={consentGiven:e.consent.given},o):((n={})[i]={consentGiven:!1},n)}).reduce(function(e,t){return p({},e,t)},I)},j=a.createContext(I),k=function(){return a.useContext(j)},A=a.createContext(void 0),F=function(){var e=a.useContext(A);return u.assertIsDefined(e),e},N=a.createContext({addItems:function(){},getItemsForPath:function(){return[]},getMFNavigate:function(){},setMFNavigate:function(){}}),T=function(){return a.useContext(N)},G=["navigate","children","onClick","target"],M=a.createContext(void 0),R=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).message="Failed fetching organisations",t}var n,r;return r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,y(n,r),t}(b(Error)),L=["getToken","getOrganisations","selectedOrganisationId","onChange"];exports.AppShell=function(t){var n=t.children,r=t.environment,o=t.redirectUri,u=t.navigate,c=t.isPublicView;return a.createElement(e.Auth0Provider,{domain:t.domain,clientId:t.clientId,authorizationParams:{redirect_uri:null!=o?o:window.location.origin,audience:t.audience},onRedirectCallback:function(e){var t=o||(null==e?void 0:e.returnTo)||"/";u?u(t,{replace:!0}):window.history.replaceState({},"",t)}},a.createElement(O,{decorateUser:t.decorateUser,getReturnPath:function(){return""+window.location.pathname+window.location.search+window.location.hash},isPublicView:void 0!==c&&c},function(e){return a.createElement(a.Fragment,null,r&&r!==i.Environment.Production&&a.createElement(w,{environment:r}),n(e))}))},exports.ConsentManagerProvider=function(e){var t=e.children,n=a.useState(I),r=n[0],o=n[1];return a.useEffect(function(){if("undefined"!=typeof window){var e=localStorage.getItem("ucData");if(e){var t=JSON.parse(e),n=_(Object.values(t.consent.services));o(n)}}},[]),a.useEffect(function(){var e=function(){var e=f(h().m(function e(t){var n,r;return h().w(function(e){for(;;)switch(e.n){case 0:if("undefined"!=typeof window){e.n=1;break}return e.a(2);case 1:n=Object.values(t.detail.services),r=_(n),o(r);case 2:return e.a(2)}},e)}));return function(t){return e.apply(this,arguments)}}();return window.addEventListener("UC_CONSENT",e),function(){return window.removeEventListener("UC_CONSENT",e)}},[]),a.createElement(j.Provider,{value:r},t)},exports.LanguageProvider=function(e){var t,n,r,o=e.children,i=(r=(t=a.useState(e.language))[1],a.useEffect(function(){x.set(n)},[n=t[0]]),[n,r]);return a.createElement(A.Provider,{value:{language:i[0],setLanguage:i[1]}},o)},exports.MenuProvider=function(e){var t=e.children,n=a.useState({}),r=n[0],o=n[1],i=a.useState({}),u=i[0],c=i[1],s=a.useCallback(function(e,t){o(function(n){var r;return p({},n,((r={})[t]=e,r))})},[]);return a.createElement(N.Provider,{value:{addItems:s,getItemsForPath:function(e){var t;return null!=(t=r[e])?t:[]},getMFNavigate:function(e){return u[e]},setMFNavigate:function(e,t){return c(function(n){var r;return p({},n,((r={})[e]=t,r))})}}},t)},exports.MicroFrontendLink=function(e){var t=e.navigate,n=e.children,r=e.onClick,o=e.target,i=v(e,G);return a.createElement("a",p({onClick:function(e){try{r&&r(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||o&&"_self"!==o||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),t())},target:o},i),n)},exports.OrganisationProvider=function(e){var t,n,r,o=e.children,i=(r=(t=a.useState(Number(e.organisationId)))[1],a.useEffect(function(){E.set(n.toString())},[n=t[0]]),[n,r]);return a.createElement(M.Provider,{value:{organisationId:i[0],setOrganisationId:i[1]}},o)},exports.OrganisationSelector=function(e){var t=e.getToken,r=e.getOrganisations,o=e.selectedOrganisationId,u=e.onChange,c=v(e,L),s=a.useState([]),l=s[0],g=s[1],d=F().language,m=a.useState("LOADING"),y=m[0],b=m[1];switch(a.useEffect(function(){var e=function(){var e=f(h().m(function e(){var n,o;return h().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t();case 1:if(n=e.v,"string"!=typeof r){e.n=3;break}return e.n=2,fetch(r,{headers:{Authorization:"Bearer "+n,Accept:"application/json"}}).then(function(e){return e.json()});case 2:o=e.v,e.n=5;break;case 3:return e.n=4,r(n);case 4:o=e.v;case 5:g(o),b("SUCCESS");case 6:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();e().catch(function(e){b("ERROR")})},[r,t]),y){case"LOADING":return a.createElement("div",{className:"eds-contrast"},a.createElement(n.SkeletonRectangle,{style:{height:"2.4rem"}}));case"SUCCESS":return a.createElement(i.OrganisationDropDown,p({label:"nb"===d||"nb-NO"===d?"Organisasjon":"Organisation",selectedOrganisationId:o,organisations:l,onChange:u},c));case"ERROR":throw new R;default:return null}},exports.OrganisationsError=R,exports.PostHogProviderWrapper=function(e){var t=e.debug,n=void 0!==t&&t,r=e.postHogApiKey,o=e.isStandalone,i=e.project,u=e.forceDisablePostHog,l=void 0!==u&&u,f=e.children,p=k();return a.useEffect(function(){r&&!l&&(null!=p&&p.PostHog.consentGiven?c.opt_in_capturing():c.opt_out_capturing())},[p.PostHog.consentGiven,l,r]),!r||l?(l?console.warn("AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized."):console.warn("AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized."),a.createElement(a.Fragment,null,f)):(c.init(r,{debug:n,api_host:o?"https://eu.posthog.com":"/ingest",ui_host:"https://eu.posthog.com",opt_out_capturing_by_default:!0,autocapture:o},i),a.createElement(s.PostHogProvider,{client:c},f))},exports.languageStorage=x,exports.organisationStorage=E,exports.useConsentManager=k,exports.useLanguage=F,exports.useMFNavigation=function(e){return(0,T().getMFNavigate)(e)},exports.useMenu=T,exports.useMenuGroupItems=function(e){return a.useContext(N).getItemsForPath(e)},exports.useOrganisation=function(){var e=a.useContext(M);return u.assertIsDefined(e),e},exports.useOrganisationId=function(){var e=a.useContext(M);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/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isLoading && !isAuthenticated) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || !userWithPermission) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\tassertIsDefined(userWithPermission);\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\trestoreOriginalUri?: boolean; // default true\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = target || redirectUri || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","getReturnPath","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","w","_context","p","n","v","console","a","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","appState","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","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","createContext","useConsentManager","useContext","LanguageContext","useLanguage","context","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","OrganisationContext","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","redirectUri","navigate","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","onRedirectCallback","destination","replace","history","replaceState","pathname","search","hash","params","Environment","Production","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","prev","_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","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.cjs.production.min.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/MicroFrontendLink.tsx","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser?: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n\tisPublicView: boolean;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n\tisPublicView,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst [loadInUserData, setLoadInUserData] = useState<boolean>(false);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\tsetLoadInUserData(true);\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t} finally {\n\t\t\t\tsetLoadInUserData(false);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isAuthenticated && !isPublicView) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || loadInUserData) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\t/**\n\t * Optional redirect URI to use after login. If not provided, the intended path or \"/\" will be used.\n\t */\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n\tisPublicView?: boolean;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n\tisPublicView = false,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = redirectUri || target || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t\tisPublicView={isPublicView}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId?: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","environment","Authenticate","children","decorateUser","getReturnPath","isPublicView","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useState2","loadInUserData","setLoadInUserData","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","logout","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","w","_context","p","n","v","console","f","a","apply","this","arguments","Loader","marginTop","space","extraLarge9","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","Fragment","_window$location","window","location","logoutParams","returnTo","protocol","hostname","port","getToken","appState","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","_ref3","serviceName","Object","entries","find","keyValue","name","assertIsDefined","consent","given","reduce","acc","curr","_extends","ConsentContext","createContext","useConsentManager","useContext","LanguageContext","useLanguage","context","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenu","OrganisationContext","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_wrapNativeSuper","Error","redirectUri","navigate","_ref3$isPublicView","Auth0Provider","domain","clientId","authorizationParams","redirect_uri","origin","audience","onRedirectCallback","destination","replace","history","replaceState","pathname","search","hash","params","Environment","Production","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","activeLanguage","setLanguage","_useLanguageState","language","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","path","prevState","_extends2","_groups$path","navigation","prev","_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","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
package/dist/app-shell.esm.js
CHANGED
|
@@ -4,8 +4,8 @@ import { Loader, SkeletonRectangle } from '@entur/loader';
|
|
|
4
4
|
import { space } from '@entur/tokens';
|
|
5
5
|
import { Paragraph, Link, CodeText } from '@entur/typography';
|
|
6
6
|
import { getColorForEnvironment, Environment, OrganisationDropDown } from '@entur-partner/common';
|
|
7
|
-
import { assertIsDefined } from '@entur-partner/util';
|
|
8
7
|
import React, { useState, useEffect, useContext, createContext, useCallback } from 'react';
|
|
8
|
+
import { assertIsDefined } from '@entur-partner/util';
|
|
9
9
|
import postHog from 'posthog-js';
|
|
10
10
|
import { PostHogProvider } from 'posthog-js/react';
|
|
11
11
|
|
|
@@ -249,10 +249,14 @@ function userLogout(logout) {
|
|
|
249
249
|
var Authenticate = function Authenticate(_ref) {
|
|
250
250
|
var children = _ref.children,
|
|
251
251
|
decorateUser = _ref.decorateUser,
|
|
252
|
-
getReturnPath = _ref.getReturnPath
|
|
252
|
+
getReturnPath = _ref.getReturnPath,
|
|
253
|
+
isPublicView = _ref.isPublicView;
|
|
253
254
|
var _useState = useState(undefined),
|
|
254
255
|
userWithPermission = _useState[0],
|
|
255
256
|
setUserWithPermission = _useState[1];
|
|
257
|
+
var _useState2 = useState(false),
|
|
258
|
+
loadInUserData = _useState2[0],
|
|
259
|
+
setLoadInUserData = _useState2[1];
|
|
256
260
|
var _useAuth = useAuth0(),
|
|
257
261
|
user = _useAuth.user,
|
|
258
262
|
getAccessTokenSilently = _useAuth.getAccessTokenSilently,
|
|
@@ -268,26 +272,31 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
268
272
|
return _regenerator().w(function (_context) {
|
|
269
273
|
while (1) switch (_context.p = _context.n) {
|
|
270
274
|
case 0:
|
|
271
|
-
|
|
272
|
-
_context.
|
|
275
|
+
setLoadInUserData(true);
|
|
276
|
+
_context.p = 1;
|
|
277
|
+
_context.n = 2;
|
|
273
278
|
return getAccessTokenSilently();
|
|
274
|
-
case
|
|
279
|
+
case 2:
|
|
275
280
|
token = _context.v;
|
|
276
|
-
_context.n =
|
|
281
|
+
_context.n = 3;
|
|
277
282
|
return decorateUser(user, token);
|
|
278
|
-
case
|
|
283
|
+
case 3:
|
|
279
284
|
decoratedUser = _context.v;
|
|
280
285
|
setUserWithPermission(decoratedUser);
|
|
281
|
-
_context.n =
|
|
286
|
+
_context.n = 5;
|
|
282
287
|
break;
|
|
283
|
-
case
|
|
284
|
-
_context.p =
|
|
288
|
+
case 4:
|
|
289
|
+
_context.p = 4;
|
|
285
290
|
_t = _context.v;
|
|
286
291
|
console.error("Error fetching user data:", _t);
|
|
287
|
-
case
|
|
292
|
+
case 5:
|
|
293
|
+
_context.p = 5;
|
|
294
|
+
setLoadInUserData(false);
|
|
295
|
+
return _context.f(5);
|
|
296
|
+
case 6:
|
|
288
297
|
return _context.a(2);
|
|
289
298
|
}
|
|
290
|
-
}, _callee, null, [[
|
|
299
|
+
}, _callee, null, [[1, 4, 5, 6]]);
|
|
291
300
|
}));
|
|
292
301
|
return function fetchUserData() {
|
|
293
302
|
return _ref2.apply(this, arguments);
|
|
@@ -297,7 +306,7 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
297
306
|
fetchUserData();
|
|
298
307
|
}
|
|
299
308
|
}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);
|
|
300
|
-
if (!
|
|
309
|
+
if (!isAuthenticated && !isPublicView) {
|
|
301
310
|
loginWithRedirect({
|
|
302
311
|
appState: {
|
|
303
312
|
returnTo: getReturnPath()
|
|
@@ -309,7 +318,7 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
309
318
|
}
|
|
310
319
|
}, "Redirecting to login page");
|
|
311
320
|
}
|
|
312
|
-
if (isLoading ||
|
|
321
|
+
if (isLoading || loadInUserData) {
|
|
313
322
|
return React.createElement(Loader, {
|
|
314
323
|
style: {
|
|
315
324
|
marginTop: space.extraLarge9
|
|
@@ -329,7 +338,6 @@ var Authenticate = function Authenticate(_ref) {
|
|
|
329
338
|
href: "mailto:support@entur.org"
|
|
330
339
|
}, "support@entur.org"), " to get it resolved."), React.createElement(Paragraph, null, "Authentication failed with: ", React.createElement(CodeText, null, error == null ? void 0 : error.toString())));
|
|
331
340
|
}
|
|
332
|
-
assertIsDefined(userWithPermission);
|
|
333
341
|
return React.createElement(React.Fragment, null, children({
|
|
334
342
|
user: userWithPermission,
|
|
335
343
|
logout: function logout() {
|
|
@@ -346,7 +354,9 @@ var AppShell = function AppShell(_ref3) {
|
|
|
346
354
|
decorateUser = _ref3.decorateUser,
|
|
347
355
|
environment = _ref3.environment,
|
|
348
356
|
redirectUri = _ref3.redirectUri,
|
|
349
|
-
navigate = _ref3.navigate
|
|
357
|
+
navigate = _ref3.navigate,
|
|
358
|
+
_ref3$isPublicView = _ref3.isPublicView,
|
|
359
|
+
isPublicView = _ref3$isPublicView === void 0 ? false : _ref3$isPublicView;
|
|
350
360
|
// Central place to derive current in-app location (excluding origin)
|
|
351
361
|
var getCurrentAppPath = function getCurrentAppPath() {
|
|
352
362
|
return "" + window.location.pathname + window.location.search + window.location.hash;
|
|
@@ -354,7 +364,7 @@ var AppShell = function AppShell(_ref3) {
|
|
|
354
364
|
// Provide an Auth0 onRedirectCallback that restores the stored path
|
|
355
365
|
var handleRedirectCallback = function handleRedirectCallback(appState) {
|
|
356
366
|
var target = appState == null ? void 0 : appState.returnTo;
|
|
357
|
-
var destination =
|
|
367
|
+
var destination = redirectUri || target || "/";
|
|
358
368
|
if (navigate) {
|
|
359
369
|
navigate(destination, {
|
|
360
370
|
replace: true
|
|
@@ -374,7 +384,8 @@ var AppShell = function AppShell(_ref3) {
|
|
|
374
384
|
onRedirectCallback: handleRedirectCallback
|
|
375
385
|
}, React.createElement(Authenticate, {
|
|
376
386
|
decorateUser: decorateUser,
|
|
377
|
-
getReturnPath: getCurrentAppPath
|
|
387
|
+
getReturnPath: getCurrentAppPath,
|
|
388
|
+
isPublicView: isPublicView
|
|
378
389
|
}, function (params) {
|
|
379
390
|
return React.createElement(React.Fragment, null, environment && environment !== Environment.Production && React.createElement(EnvironmentBanner, {
|
|
380
391
|
environment: environment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isLoading && !isAuthenticated) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || !userWithPermission) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\tassertIsDefined(userWithPermission);\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\trestoreOriginalUri?: boolean; // default true\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = target || redirectUri || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","getReturnPath","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","decoratedUser","_t","w","_context","p","n","v","console","a","apply","arguments","appState","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","redirectUri","navigate","getCurrentAppPath","pathname","search","hash","handleRedirectCallback","target","destination","replace","history","replaceState","Auth0Provider","authorizationParams","redirect_uri","origin","onRedirectCallback","params","Environment","Production","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","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","_extends","ConsentContext","createContext","useConsentManager","context","useContext","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","customEvent","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","prev","_extends3","_groups$path","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","onClick","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","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","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/storage.ts","../src/types/ConsentTypes.ts","../src/util/convertUCServicesToConsents.ts","../src/ConsentManagerProvider.tsx","../src/LanguageProvider.tsx","../src/MenuProvider.tsx","../src/MicroFrontendLink.tsx","../src/OrganisationProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx","../src/PostHogProviderWrapper.tsx"],"sourcesContent":["import {\n\ttype Environment,\n\tgetColorForEnvironment,\n} from \"@entur-partner/common\";\nimport React from \"react\";\n\ntype EnvironmentBannerProps = {\n\tenvironment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"epp-environment-banner\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\tzIndex: 9999,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\twidth: \"100vw\",\n\t\t\t\theight: \"16px\",\n\t\t\t\tbackgroundColor: getColorForEnvironment(environment),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import {\n\ttype Auth0ContextInterface,\n\tAuth0Provider,\n\ttype GetTokenSilentlyOptions,\n\tuseAuth0,\n} from \"@auth0/auth0-react\";\nimport { BannerAlertBox } from \"@entur/alert\";\nimport { Loader } from \"@entur/loader\";\nimport { space } from \"@entur/tokens\";\nimport { CodeText, Link, Paragraph } from \"@entur/typography\";\nimport { Environment } from \"@entur-partner/common\";\nimport type { User } from \"@entur-partner/micro-frontend\";\nimport React, { type FC, type ReactNode, useEffect, useState } from \"react\";\nimport { EnvironmentBanner } from \"./EnvironmentBanner\";\nimport type { DecorateUserFn } from \"./types/UserTypes\";\n\nfunction userLogout(logout: Auth0ContextInterface[\"logout\"]) {\n\tconst { protocol, hostname, port } = window.location;\n\treturn logout({\n\t\tlogoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n\t});\n}\n\nexport interface AppShellValues {\n\tlogout: Auth0ContextInterface[\"logout\"];\n\tuser?: User;\n\tgetToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\tdecorateUser: DecorateUserFn;\n\tgetReturnPath: () => string;\n\tisPublicView: boolean;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({\n\tchildren,\n\tdecorateUser,\n\tgetReturnPath,\n\tisPublicView,\n}) => {\n\tconst [userWithPermission, setUserWithPermission] = useState<\n\t\tUser | undefined\n\t>(undefined);\n\tconst [loadInUserData, setLoadInUserData] = useState<boolean>(false);\n\tconst {\n\t\tuser,\n\t\tgetAccessTokenSilently,\n\t\tloginWithRedirect,\n\t\tlogout,\n\t\tisLoading,\n\t\tisAuthenticated,\n\t\terror,\n\t} = useAuth0();\n\n\tuseEffect(() => {\n\t\tconst fetchUserData = async () => {\n\t\t\tsetLoadInUserData(true);\n\t\t\ttry {\n\t\t\t\tconst token = await getAccessTokenSilently();\n\t\t\t\tconst decoratedUser = await decorateUser(user as User, token);\n\t\t\t\tsetUserWithPermission(decoratedUser);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error fetching user data:\", error);\n\t\t\t} finally {\n\t\t\t\tsetLoadInUserData(false);\n\t\t\t}\n\t\t};\n\n\t\tif (isAuthenticated) {\n\t\t\tfetchUserData();\n\t\t}\n\t}, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n\tif (!isAuthenticated && !isPublicView) {\n\t\tloginWithRedirect({\n\t\t\tappState: {\n\t\t\t\treturnTo: getReturnPath(),\n\t\t\t},\n\t\t});\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>\n\t\t\t\tRedirecting to login page\n\t\t\t</Loader>\n\t\t);\n\t}\n\n\tif (isLoading || loadInUserData) {\n\t\treturn (\n\t\t\t<Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n\t\t);\n\t}\n\n\tif (error) {\n\t\tprocess.env.NODE_ENV !== \"production\" && console.error(error);\n\t\treturn (\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"error\"\n\t\t\t\ttitle=\"Authentication failed\"\n\t\t\t\tstyle={{ maxWidth: \"600px\", margin: \"0 auto\" }}\n\t\t\t>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tSomething went wrong while trying to authenticate you. If the problem\n\t\t\t\t\tpersists you should contact{\" \"}\n\t\t\t\t\t<Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n\t\t\t\t\tit resolved.\n\t\t\t\t</Paragraph>\n\t\t\t\t<Paragraph>\n\t\t\t\t\tAuthentication failed with: <CodeText>{error?.toString()}</CodeText>\n\t\t\t\t</Paragraph>\n\t\t\t</BannerAlertBox>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children({\n\t\t\t\tuser: userWithPermission,\n\t\t\t\tlogout: () => userLogout(logout),\n\t\t\t\tgetToken: getAccessTokenSilently,\n\t\t\t})}\n\t\t</>\n\t);\n};\n\nexport interface AppShellProps {\n\tchildren: (options: AppShellValues) => ReactNode;\n\taudience: string;\n\tdomain: string;\n\tclientId: string;\n\tdecorateUser: DecorateUserFn;\n\t/**\n\t * Optional redirect URI to use after login. If not provided, the intended path or \"/\" will be used.\n\t */\n\tredirectUri?: string;\n\tenvironment?: Environment;\n\tnavigate?: (to: string, options?: { replace?: boolean }) => void;\n\tisPublicView?: boolean;\n}\n\nexport const AppShell = ({\n\tchildren,\n\taudience,\n\tdomain,\n\tclientId,\n\tdecorateUser,\n\tenvironment,\n\tredirectUri,\n\tnavigate,\n\tisPublicView = false,\n}: AppShellProps) => {\n\t// Central place to derive current in-app location (excluding origin)\n\tconst getCurrentAppPath = () =>\n\t\t`${window.location.pathname}${window.location.search}${window.location.hash}`;\n\n\t// Provide an Auth0 onRedirectCallback that restores the stored path\n\tconst handleRedirectCallback = (appState?: { returnTo?: string }) => {\n\t\tconst target = appState?.returnTo;\n\t\tconst destination = redirectUri || target || \"/\";\n\t\tif (navigate) {\n\t\t\tnavigate(destination, { replace: true });\n\t\t} else {\n\t\t\t// Fallback: use History API\n\t\t\twindow.history.replaceState({}, \"\", destination);\n\t\t}\n\t};\n\treturn (\n\t\t<Auth0Provider\n\t\t\tdomain={domain}\n\t\t\tclientId={clientId}\n\t\t\tauthorizationParams={{\n\t\t\t\tredirect_uri: redirectUri ?? window.location.origin,\n\t\t\t\taudience: audience,\n\t\t\t}}\n\t\t\tonRedirectCallback={handleRedirectCallback}\n\t\t>\n\t\t\t<Authenticate\n\t\t\t\tdecorateUser={decorateUser}\n\t\t\t\tgetReturnPath={getCurrentAppPath}\n\t\t\t\tisPublicView={isPublicView}\n\t\t\t>\n\t\t\t\t{(params) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{environment && environment !== Environment.Production && (\n\t\t\t\t\t\t\t<EnvironmentBanner environment={environment} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children(params)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Authenticate>\n\t\t</Auth0Provider>\n\t);\n};\n","export const ORGANISATION_STORAGE_KEY = \"EP::activeOrgId\";\n\nexport const organisationStorage = {\n\tget: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nexport const languageStorage = {\n\tget: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n\tset: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n\nexport const UC_UI_STORAGE_KEY = \"ucData\";\n\nexport const ucUiStorage = {\n\tget: () => localStorage.getItem(UC_UI_STORAGE_KEY),\n};\n","export const SERVICE_NAMES = {\n\tUsercentrics: \"Usercentrics Consent Management Platform\",\n\tPostHog: \"PostHog.com\",\n\tSentry: \"Sentry\",\n} as const;\n\nexport interface ServiceConsent {\n\tname: (typeof SERVICE_NAMES)[keyof typeof SERVICE_NAMES];\n\tconsent: { given: boolean };\n}\n\nexport interface UCDataConsentDataFromLocalStorage {\n\tconsent: {\n\t\tservices: {\n\t\t\t[key: string]: {\n\t\t\t\tname: string;\n\t\t\t\tconsent: boolean;\n\t\t\t};\n\t\t};\n\t};\n}\n\nexport type UCServiceArray = Array<\n\tUCDataConsentDataFromLocalStorage[\"consent\"][\"services\"][keyof UCDataConsentDataFromLocalStorage[\"consent\"][\"services\"]]\n>;\n\nexport interface Consents {\n\tUsercentrics: {\n\t\tconsentGiven: boolean;\n\t};\n\tPostHog: {\n\t\tconsentGiven: boolean;\n\t};\n\tSentry: {\n\t\tconsentGiven: boolean;\n\t};\n}\n","import { assertIsDefined } from \"@entur-partner/util\";\n\nimport {\n\ttype Consents,\n\tSERVICE_NAMES,\n\ttype ServiceConsent,\n\ttype UCServiceArray,\n} from \"../types/ConsentTypes\";\n\nexport const DEFAULT_CONSENT_GIVEN = {\n\tUsercentrics: { consentGiven: false },\n\tPostHog: { consentGiven: false },\n\tSentry: { consentGiven: false },\n} as const;\n\nexport const convertUCServicesToConsents = (\n\tservices: ServiceConsent[] | UCServiceArray,\n): Consents => {\n\treturn services\n\t\t.map((service) => {\n\t\t\tconst serviceName = Object.entries(SERVICE_NAMES).find(\n\t\t\t\t(keyValue) => keyValue[1] === service.name,\n\t\t\t)?.[0] as keyof typeof SERVICE_NAMES;\n\n\t\t\t// Ensure the service name exists in SERVICE_NAMES\n\t\t\tassertIsDefined(\n\t\t\t\tserviceName,\n\t\t\t\t`Service name ${service.name} not found in SERVICE_NAMES`,\n\t\t\t);\n\n\t\t\tif (typeof service.consent === \"boolean\") {\n\t\t\t\tconst consentGiven = service.consent as boolean;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttypeof service.consent === \"object\" &&\n\t\t\t\t\"given\" in service.consent\n\t\t\t) {\n\t\t\t\tconst consentGiven = service.consent.given;\n\t\t\t\treturn {\n\t\t\t\t\t[serviceName]: {\n\t\t\t\t\t\tconsentGiven: consentGiven,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t[serviceName]: {\n\t\t\t\t\tconsentGiven: false,\n\t\t\t\t},\n\t\t\t};\n\t\t})\n\t\t.reduce(\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: Ignore it for now. No changes in code.\n\t\t\t(acc, curr) => ({ ...acc, ...curr }),\n\t\t\tDEFAULT_CONSENT_GIVEN as Consents,\n\t\t);\n};\n","import React, {\n\tcreateContext,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { ucUiStorage } from \"./storage\";\nimport type {\n\tConsents,\n\tServiceConsent,\n\tUCDataConsentDataFromLocalStorage,\n} from \"./types/ConsentTypes\";\nimport {\n\tconvertUCServicesToConsents,\n\tDEFAULT_CONSENT_GIVEN,\n} from \"./util/convertUCServicesToConsents\";\n\ndeclare global {\n\tinterface Window {\n\t\tUC_UI: {\n\t\t\tshowFirstLayer: () => void;\n\t\t\tshowSecondLayer: () => void;\n\t\t};\n\t}\n}\n\nconst ConsentContext = createContext<Consents>(DEFAULT_CONSENT_GIVEN);\n\nexport const useConsentManager = () => {\n\tconst context = useContext(ConsentContext);\n\treturn context;\n};\n\ntype Props = {\n\tchildren: ReactNode;\n};\n\nexport const ConsentManagerProvider = ({ children }: Props) => {\n\tconst [consentManager, setConsentManager] = useState<Consents>(\n\t\tDEFAULT_CONSENT_GIVEN,\n\t);\n\n\t// Initialize consent manager from local storage once\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst ucData = ucUiStorage.get();\n\n\t\tif (ucData) {\n\t\t\tconst data = JSON.parse(ucData) as UCDataConsentDataFromLocalStorage;\n\t\t\tconst services = convertUCServicesToConsents(\n\t\t\t\tObject.values(data.consent.services),\n\t\t\t);\n\n\t\t\tsetConsentManager(services);\n\t\t}\n\t}, []);\n\n\t// Listen for Usercentrics consent events and update consent manager state\n\tuseEffect(() => {\n\t\tconst handleConsentEvent = async (event: Event) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\n\t\t\tconst customEvent = event as CustomEvent;\n\t\t\tconst services = Object.values(\n\t\t\t\tcustomEvent.detail.services as ServiceConsent[],\n\t\t\t);\n\n\t\t\tconst updatedConsentManager = convertUCServicesToConsents(services);\n\t\t\tsetConsentManager(updatedConsentManager);\n\t\t};\n\n\t\twindow.addEventListener(\"UC_CONSENT\", handleConsentEvent);\n\n\t\treturn () => window.removeEventListener(\"UC_CONSENT\", handleConsentEvent);\n\t}, []);\n\n\treturn (\n\t\t<ConsentContext.Provider value={consentManager}>\n\t\t\t{children}\n\t\t</ConsentContext.Provider>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { languageStorage } from \"./storage\";\n\ninterface LanguageContextType {\n\tlanguage: string;\n\tsetLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n\tundefined,\n);\n\nconst useLanguageState = (\n\tlanguage: string,\n): [string, Dispatch<SetStateAction<string>>] => {\n\tconst [activeLanguage, setLanguage] = useState(language);\n\n\tuseEffect(() => {\n\t\tlanguageStorage.set(activeLanguage);\n\t}, [activeLanguage]);\n\n\treturn [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n\tconst context = useContext(LanguageContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\ninterface LanguageProviderProps {\n\tchildren: ReactNode;\n\tlanguage: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n\tchildren,\n\tlanguage,\n}) => {\n\tconst [activeLanguage, setLanguage] = useLanguageState(language);\n\treturn (\n\t\t<LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n\t\t\t{children}\n\t\t</LanguageContext.Provider>\n\t);\n};\n","import type {\n\tMenuItem,\n\tNavigationFunction,\n} from \"@entur-partner/micro-frontend\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseState,\n} from \"react\";\n\ninterface MenuGroups {\n\t[path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n\tgetItemsForPath: (path: string) => MenuItem[];\n\taddItems: (items: MenuItem[], path: string) => void;\n\tgetMFNavigate: (path: string) => NavigationFunction | undefined;\n\tsetMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n\taddItems: () => {},\n\tgetItemsForPath: () => [],\n\tgetMFNavigate: () => undefined,\n\tsetMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n\tconst context = useContext(MenuContext);\n\treturn context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n\treturn useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n\tconst { getMFNavigate } = useMenu();\n\treturn getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n\tchildren: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n\tconst [groups, setGroups] = useState<MenuGroups>({});\n\tconst [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n\t\t{},\n\t);\n\n\tconst addItems = useCallback((newItems: MenuItem[], path: string) => {\n\t\tsetGroups((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[path]: newItems,\n\t\t}));\n\t}, []);\n\n\tconst getMFNavigate = (path: string) => navFuncs[path];\n\tconst setMFNavigate = (path: string, navigation: NavigationFunction) =>\n\t\tsetNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n\treturn (\n\t\t<MenuContext.Provider\n\t\t\tvalue={{\n\t\t\t\taddItems,\n\t\t\t\tgetItemsForPath: (path) => groups[path] ?? [],\n\t\t\t\tgetMFNavigate,\n\t\t\t\tsetMFNavigate,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MenuContext.Provider>\n\t);\n};\n","import React, {\n\ttype AnchorHTMLAttributes,\n\ttype FC,\n\ttype MouseEvent,\n\ttype ReactNode,\n} from \"react\";\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\thref: string;\n\tnavigate: () => void;\n\tchildren: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n\treturn !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n\tnavigate,\n\tchildren,\n\tonClick,\n\ttarget,\n\t...rest\n}) => {\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore lint rule for now. No changes in code.\n\t\t<a\n\t\t\t// biome-ignore lint/a11y/useValidAnchor: Ignore lint rule for now. No changes in code.\n\t\t\tonClick={(event) => {\n\t\t\t\ttry {\n\t\t\t\t\tif (onClick) onClick(event);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthrow ex;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!event.defaultPrevented && // onClick prevented default\n\t\t\t\t\tevent.button === 0 && // ignore everything but right clicks\n\t\t\t\t\t(!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n\t\t\t\t\t!isModifiedEvent(event) // ignore clicks with modifier keys\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnavigate();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttarget={target}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n};\n","import { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype Dispatch,\n\ttype FC,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport { organisationStorage } from \"./storage\";\n\ninterface OrganisationContextType {\n\torganisationId?: number;\n\tsetOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n\tOrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context;\n};\n\nexport const useOrganisationId = () => {\n\tconst context = useContext(OrganisationContext);\n\tassertIsDefined(context);\n\treturn context.organisationId;\n};\n\nconst useOrganisationState = (\n\tinitialOrganisationId: string,\n): [number, Dispatch<SetStateAction<number>>] => {\n\tconst [organisationId, setOrganisationId] = useState<number>(\n\t\tNumber(initialOrganisationId),\n\t);\n\n\tuseEffect(() => {\n\t\torganisationStorage.set(organisationId.toString());\n\t}, [organisationId]);\n\n\treturn [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n\tchildren: ReactNode;\n\torganisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n\tchildren,\n\torganisationId,\n}) => {\n\tconst [orgId, setOrganisationId] = useOrganisationState(organisationId);\n\treturn (\n\t\t<OrganisationContext.Provider\n\t\t\tvalue={{ organisationId: orgId, setOrganisationId }}\n\t\t>\n\t\t\t{children}\n\t\t</OrganisationContext.Provider>\n\t);\n};\n","export class OrganisationsError extends Error {\n\tmessage = \"Failed fetching organisations\";\n}\n","import type { GetTokenSilentlyOptions } from \"@auth0/auth0-spa-js\";\nimport { SkeletonRectangle } from \"@entur/loader\";\nimport { OrganisationDropDown } from \"@entur-partner/common\";\nimport React, { type FC, useEffect, useState } from \"react\";\nimport { useLanguage } from \"./LanguageProvider\";\nimport { OrganisationsError } from \"./OrganisationsError\";\n\nexport type GetOrganisationsFn = (token: string) => Promise<OrganisationV3[]>;\n\nexport interface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\nexport interface OrganisationSelectorProps {\n\tgetToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n\tgetOrganisations: GetOrganisationsFn | string;\n\tselectedOrganisationId: number;\n\tonChange: (organisationId: number) => void;\n\t[key: string]: object | string | number | boolean;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n\tgetToken,\n\tgetOrganisations,\n\tselectedOrganisationId,\n\tonChange,\n\t...rest\n}) => {\n\tconst [organisations, setOrganisations] = useState<OrganisationV3[]>([]);\n\tconst { language } = useLanguage();\n\n\tconst [status, setStatus] = useState<\"LOADING\" | \"ERROR\" | \"SUCCESS\">(\n\t\t\"LOADING\",\n\t);\n\n\tuseEffect(() => {\n\t\tconst fetchOrganisations = async () => {\n\t\t\tconst token = await getToken();\n\t\t\tlet organisations: OrganisationV3[];\n\t\t\tif (typeof getOrganisations === \"string\") {\n\t\t\t\torganisations = await fetch(getOrganisations, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t\t},\n\t\t\t\t}).then((response) => response.json());\n\t\t\t} else {\n\t\t\t\torganisations = await getOrganisations(token);\n\t\t\t}\n\t\t\tsetOrganisations(organisations);\n\t\t\tsetStatus(\"SUCCESS\");\n\t\t};\n\n\t\tfetchOrganisations().catch((error) => {\n\t\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t\tsetStatus(\"ERROR\");\n\t\t});\n\t}, [getOrganisations, getToken]);\n\n\tswitch (status) {\n\t\tcase \"LOADING\":\n\t\t\treturn (\n\t\t\t\t<div className=\"eds-contrast\">\n\t\t\t\t\t<SkeletonRectangle style={{ height: \"2.4rem\" }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\tcase \"SUCCESS\":\n\t\t\treturn (\n\t\t\t\t<OrganisationDropDown\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tlanguage === \"nb\" || language === \"nb-NO\"\n\t\t\t\t\t\t\t? \"Organisasjon\"\n\t\t\t\t\t\t\t: \"Organisation\"\n\t\t\t\t\t}\n\t\t\t\t\tselectedOrganisationId={selectedOrganisationId}\n\t\t\t\t\torganisations={organisations}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"ERROR\":\n\t\t\tthrow new OrganisationsError();\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import postHog from \"posthog-js\";\nimport { PostHogProvider } from \"posthog-js/react\";\nimport React, { type ReactNode, useEffect } from \"react\";\nimport { useConsentManager } from \"./ConsentManagerProvider\";\n\ntype Props = {\n\t/**\n\t * Debug mode for PostHog.\n\t */\n\tdebug?: boolean;\n\t/**\n\t * PostHog API key for initializing the PostHog client.\n\t * If not provided, PostHog will not be initialized.\n\t */\n\tpostHogApiKey?: string;\n\t/**\n\t * Flag to indicate if the application is running in a standalone mode or as a micro-frontend.\n\t * When true, it will turn on autocapture and go directly to PostHog's cloud.\n\t * When false, it will turn off autocapture and the local ingest endpoint from App-Shell. Instead auto-capture\n\t * will be handled by the App-Shell.\n\t */\n\tisStandalone: boolean;\n\t/**\n\t * Optional project identifier for PostHog.\n\t * This can be used to differentiate between different projects in PostHog.\n\t */\n\tproject?: string;\n\t/**\n\t * Flag to force disable PostHog tracking.\n\t * If true, PostHog will not be initialized even if postHogApiKey is provided.\n\t */\n\tforceDisablePostHog?: boolean;\n\tchildren: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({\n\tdebug = false,\n\tpostHogApiKey,\n\tisStandalone,\n\tproject,\n\tforceDisablePostHog = false,\n\tchildren,\n}: Props) => {\n\tconst consents = useConsentManager();\n\n\tuseEffect(() => {\n\t\tif (!postHogApiKey || forceDisablePostHog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (consents?.PostHog.consentGiven) {\n\t\t\tpostHog.opt_in_capturing();\n\t\t} else {\n\t\t\tpostHog.opt_out_capturing();\n\t\t}\n\t}, [consents.PostHog.consentGiven, forceDisablePostHog, postHogApiKey]);\n\n\t// If no API key is provided or PostHog is forced to be disabled, do not initialize PostHog\n\tif (!postHogApiKey || forceDisablePostHog) {\n\t\tif (!forceDisablePostHog) {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.\",\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"AppShellStandalone Warning: PostHog tracking is disabled by force. PostHog will not be initialized.\",\n\t\t\t);\n\t\t}\n\n\t\treturn <>{children}</>;\n\t}\n\n\tpostHog.init(\n\t\tpostHogApiKey,\n\t\t{\n\t\t\tdebug,\n\t\t\tapi_host: isStandalone ? \"https://eu.posthog.com\" : \"/ingest\",\n\t\t\tui_host: \"https://eu.posthog.com\",\n\t\t\topt_out_capturing_by_default: true,\n\t\t\tautocapture: isStandalone,\n\t\t},\n\t\tproject,\n\t);\n\n\treturn <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","getReturnPath","isPublicView","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useState2","loadInUserData","setLoadInUserData","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regenerator","m","_callee","token","decoratedUser","_t","w","_context","p","n","v","console","f","a","apply","arguments","appState","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","redirectUri","navigate","_ref3$isPublicView","getCurrentAppPath","pathname","search","hash","handleRedirectCallback","target","destination","replace","history","replaceState","Auth0Provider","authorizationParams","redirect_uri","origin","onRedirectCallback","params","Environment","Production","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","value","setItem","LANGUAGE_STORAGE_KEY","languageStorage","UC_UI_STORAGE_KEY","ucUiStorage","SERVICE_NAMES","Usercentrics","PostHog","Sentry","DEFAULT_CONSENT_GIVEN","consentGiven","convertUCServicesToConsents","services","map","service","_Object$entries$find","serviceName","Object","entries","find","keyValue","name","assertIsDefined","consent","given","reduce","acc","curr","_extends","ConsentContext","createContext","useConsentManager","context","useContext","ConsentManagerProvider","consentManager","setConsentManager","ucData","data","JSON","parse","values","handleConsentEvent","event","customEvent","updatedConsentManager","detail","_x","addEventListener","removeEventListener","Provider","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","prev","_extends3","_groups$path","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","onClick","rest","_objectWithoutPropertiesLoose","_excluded","ex","preventDefault","defaultPrevented","button","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","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","PostHogProviderWrapper","_ref$debug","debug","postHogApiKey","isStandalone","project","_ref$forceDisablePost","forceDisablePostHog","consents","postHog","opt_in_capturing","opt_out_capturing","warn","init","api_host","ui_host","opt_out_capturing_by_default","autocapture","PostHogProvider","client"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur-partner/app-shell",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0-alpha.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/app-shell.esm.js",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@auth0/auth0-react": "2.4.0",
|
|
38
|
-
"@entur-partner/common": "^
|
|
39
|
-
"@entur-partner/micro-frontend": "^2.6.3",
|
|
38
|
+
"@entur-partner/common": "^11.0.0-alpha.0",
|
|
39
|
+
"@entur-partner/micro-frontend": "^2.6.4-3.0.0-alpha.6.0",
|
|
40
40
|
"@entur-partner/util": "^1.3.3"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"reportFile": "jest-sonar-report.xml",
|
|
54
54
|
"indent": 4
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "4f7923dfa4d48067fb9403b46572a98eb4842f58"
|
|
57
57
|
}
|