@entur-partner/micro-frontend 2.7.7 → 2.8.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/AppProvider.d.ts +1 -1
- package/dist/events.d.ts +2 -2
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.mjs +65 -0
- package/dist/index.mjs.map +1 -0
- package/dist/registerMicroFrontend.d.ts +6 -5
- package/dist/{Payload.d.ts → types.d.ts} +30 -2
- package/package.json +14 -21
- package/dist/User.d.ts +0 -19
- package/dist/index.js +0 -8
- package/dist/micro-frontend.cjs.development.js +0 -336
- package/dist/micro-frontend.cjs.development.js.map +0 -1
- package/dist/micro-frontend.cjs.production.min.js +0 -2
- package/dist/micro-frontend.cjs.production.min.js.map +0 -1
- package/dist/micro-frontend.esm.js +0 -322
- package/dist/micro-frontend.esm.js.map +0 -1
package/dist/AppProvider.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Permission } from "@entur-partner/permission-client-node";
|
|
2
2
|
import { type FC, type ReactNode } from "react";
|
|
3
|
-
import type { User } from "./
|
|
3
|
+
import type { User } from "./types";
|
|
4
4
|
interface AppContextType {
|
|
5
5
|
getToken: () => Promise<string>;
|
|
6
6
|
user: User;
|
package/dist/events.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { MicroFrontendPayload } from "./
|
|
1
|
+
import type { MicroFrontendPayload, PublicMicroFrontendPayload } from "./types";
|
|
2
2
|
type MountEventDetail = {
|
|
3
3
|
id: string;
|
|
4
4
|
mountPoint: HTMLDivElement;
|
|
5
|
-
payload: MicroFrontendPayload;
|
|
5
|
+
payload: MicroFrontendPayload | PublicMicroFrontendPayload;
|
|
6
6
|
};
|
|
7
7
|
type UnmountEventDetail = {
|
|
8
8
|
id: string;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@entur-partner/util`),t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(void 0),i=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.user},a=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.activeOrgId},o=()=>{let n=(0,t.useContext)(r);return(0,e.assertIsDefined)(n),n.navigate},s=({children:e,organisationId:i,getPermissions:a,...o})=>{let[s,c]=(0,t.useState)([]);return(0,t.useEffect)(()=>{async function e(){try{c(await a())}catch(e){console.error(`Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:`,e)}}e()},[a]),(0,n.jsx)(r.Provider,{value:{...o,user:{...o.user,permissions:s},activeOrgId:Number(i)},children:e})},c=`@entur-partner:mount`,l=`@entur-partner:unmount`;function u(e){return new CustomEvent(c,{detail:e})}function d(e){return new CustomEvent(l,{detail:e})}var f=`@entur-partner:after-route-change`;function p(e){let{unmount:t,microFrontendId:n,mount:r}=e,i=(e=>{e.detail.id.startsWith(n)&&r(e.detail.mountPoint,e.detail.payload,e.detail.mountPoint)}),a=(e=>{e.detail.id.startsWith(n)&&t(e.detail.mountPoint)});return window.addEventListener(c,i),window.addEventListener(l,a),()=>{window.removeEventListener(c,i),window.removeEventListener(l,a)}}function m(e){return p(e)}function h(e){return p(e)}exports.AppProvider=s,exports.MOUNT_EVENT_TYPE=c,exports.ROUTE_CHANGE_EVENT_TYPE=f,exports.UNMOUNT_EVENT_TYPE=l,exports.createMountEvent=u,exports.createUnmountEvent=d,exports.registerMicroFrontend=m,exports.registerPublicMicroFrontend=h,exports.useActiveOrgId=a,exports.useNavigate=o,exports.useUser=i;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":"0JAqBA,IAAa,GAAA,EAAA,EAAA,eAAuD,IAAA,GAAU,CAEjE,MAAgB,CAC5B,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,MAGH,MAAuB,CACnC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,aAYH,MAAoB,CAChC,IAAM,GAAA,EAAA,EAAA,YAAqB,EAAW,CAEtC,OADA,EAAA,EAAA,iBAAgB,EAAQ,CACjB,EAAQ,UAGH,GAAqC,CACjD,WACA,iBACA,iBACA,GAAG,KACE,CACL,GAAM,CAAC,EAAa,IAAA,EAAA,EAAA,UAAyC,EAAE,CAAC,CAkBhE,OAhBA,EAAA,EAAA,eAAgB,CACf,eAAe,GAAY,CAC1B,GAAI,CAEH,EAD2B,MAAM,GAAgB,CACf,OAC1B,EAAO,CACf,QAAQ,MACP,iHACA,EACA,EAIH,GAAW,EACT,CAAC,EAAe,CAAC,EAGnB,EAAA,EAAA,KAAC,EAAW,SAAZ,CACC,MAAO,CACN,GAAG,EACH,KAAM,CAAE,GAAG,EAAK,KAAmB,cAAa,CAChD,YAAa,OAAO,EAAe,CACnC,CAEA,WACoB,CAAA,ECtEX,EAAmB,uBACnB,EAAqB,yBAKlC,SAAgB,EAAiB,EAA0B,CAC1D,OAAO,IAAI,YAA8B,EAAkB,CAAE,SAAQ,CAAC,CAGvE,SAAgB,EAAmB,EAA4B,CAC9D,OAAO,IAAI,YAAgC,EAAoB,CAAE,SAAQ,CAAC,CAG3E,IAAa,EAA0B,oCCPvC,SAAS,EAA2B,EAAsC,CACzE,GAAM,CAAE,UAAS,kBAAiB,SAAU,EAEtC,GAAY,GAAsB,CAClC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EACC,EAAM,OAAO,WACb,EAAM,OAAO,QACb,EAAM,OAAO,WACb,GAGI,GAAc,GAAwB,CACtC,EAAM,OAAO,GAAG,WAAW,EAAgB,EAGhD,EAAQ,EAAM,OAAO,WAAW,GAMjC,OAHA,OAAO,iBAAiB,EAAkB,EAAQ,CAClD,OAAO,iBAAiB,EAAoB,EAAU,KAEzC,CACZ,OAAO,oBAAoB,EAAkB,EAAQ,CACrD,OAAO,oBAAoB,EAAoB,EAAU,EAI3D,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO,CAGhC,SAAgB,EACf,EACa,CACb,OAAO,EAAiB,EAAO"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
1
|
+
export type { AppProviderProps } from "./AppProvider";
|
|
2
|
+
export { AppProvider, useActiveOrgId, useNavigate, useUser, } from "./AppProvider";
|
|
3
|
+
export type { MountEvent, RouteAction, RouteChangeEvent, UnmountEvent, } from "./events";
|
|
4
|
+
export { createMountEvent, createUnmountEvent, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, UNMOUNT_EVENT_TYPE, } from "./events";
|
|
5
|
+
export { registerMicroFrontend, registerPublicMicroFrontend, } from "./registerMicroFrontend";
|
|
6
|
+
export type { MenuItem, MicroFrontendPayload, NavigationFunction, PublicMicroFrontendPayload, User, } from "./types";
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { assertIsDefined as e } from "@entur-partner/util";
|
|
2
|
+
import { createContext as t, useContext as n, useEffect as r, useState as i } from "react";
|
|
3
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
4
|
+
//#region src/AppProvider.tsx
|
|
5
|
+
var o = t(void 0), s = () => {
|
|
6
|
+
let t = n(o);
|
|
7
|
+
return e(t), t.user;
|
|
8
|
+
}, c = () => {
|
|
9
|
+
let t = n(o);
|
|
10
|
+
return e(t), t.activeOrgId;
|
|
11
|
+
}, l = () => {
|
|
12
|
+
let t = n(o);
|
|
13
|
+
return e(t), t.navigate;
|
|
14
|
+
}, u = ({ children: e, organisationId: t, getPermissions: n, ...s }) => {
|
|
15
|
+
let [c, l] = i([]);
|
|
16
|
+
return r(() => {
|
|
17
|
+
async function e() {
|
|
18
|
+
try {
|
|
19
|
+
l(await n());
|
|
20
|
+
} catch (e) {
|
|
21
|
+
console.error("Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:", e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
e();
|
|
25
|
+
}, [n]), /* @__PURE__ */ a(o.Provider, {
|
|
26
|
+
value: {
|
|
27
|
+
...s,
|
|
28
|
+
user: {
|
|
29
|
+
...s.user,
|
|
30
|
+
permissions: c
|
|
31
|
+
},
|
|
32
|
+
activeOrgId: Number(t)
|
|
33
|
+
},
|
|
34
|
+
children: e
|
|
35
|
+
});
|
|
36
|
+
}, d = "@entur-partner:mount", f = "@entur-partner:unmount";
|
|
37
|
+
function p(e) {
|
|
38
|
+
return new CustomEvent(d, { detail: e });
|
|
39
|
+
}
|
|
40
|
+
function m(e) {
|
|
41
|
+
return new CustomEvent(f, { detail: e });
|
|
42
|
+
}
|
|
43
|
+
var h = "@entur-partner:after-route-change";
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/registerMicroFrontend.ts
|
|
46
|
+
function g(e) {
|
|
47
|
+
let { unmount: t, microFrontendId: n, mount: r } = e, i = ((e) => {
|
|
48
|
+
e.detail.id.startsWith(n) && r(e.detail.mountPoint, e.detail.payload, e.detail.mountPoint);
|
|
49
|
+
}), a = ((e) => {
|
|
50
|
+
e.detail.id.startsWith(n) && t(e.detail.mountPoint);
|
|
51
|
+
});
|
|
52
|
+
return window.addEventListener(d, i), window.addEventListener(f, a), () => {
|
|
53
|
+
window.removeEventListener(d, i), window.removeEventListener(f, a);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function _(e) {
|
|
57
|
+
return g(e);
|
|
58
|
+
}
|
|
59
|
+
function v(e) {
|
|
60
|
+
return g(e);
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { u as AppProvider, d as MOUNT_EVENT_TYPE, h as ROUTE_CHANGE_EVENT_TYPE, f as UNMOUNT_EVENT_TYPE, p as createMountEvent, m as createUnmountEvent, _ as registerMicroFrontend, v as registerPublicMicroFrontend, c as useActiveOrgId, l as useNavigate, s as useUser };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./types\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload | PublicMicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload, PublicMicroFrontendPayload } from \"./types\";\n\ntype Config<TPayload> = {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: TPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n};\n\nfunction registerFrontend<TPayload>(config: Config<TPayload>): () => void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\tconst onMount = ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload as TPayload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener;\n\n\tconst onUnmount = ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, onMount);\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\n\treturn () => {\n\t\twindow.removeEventListener(MOUNT_EVENT_TYPE, onMount);\n\t\twindow.removeEventListener(UNMOUNT_EVENT_TYPE, onUnmount);\n\t};\n}\n\nexport function registerMicroFrontend(\n\tconfig: Config<MicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n\nexport function registerPublicMicroFrontend(\n\tconfig: Config<PublicMicroFrontendPayload>,\n): () => void {\n\treturn registerFrontend(config);\n}\n"],"mappings":";;;;AAqBA,IAAa,IAAa,EAA0C,KAAA,EAAU,EAEjE,UAAgB;CAC5B,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,UAAuB;CACnC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAYH,UAAoB;CAChC,IAAM,IAAU,EAAW,EAAW;AAEtC,QADA,EAAgB,EAAQ,EACjB,EAAQ;GAGH,KAAqC,EACjD,aACA,mBACA,mBACA,GAAG,QACE;CACL,IAAM,CAAC,GAAa,KAAkB,EAAuB,EAAE,CAAC;AAkBhE,QAhBA,QAAgB;EACf,eAAe,IAAY;AAC1B,OAAI;AAEH,MAD2B,MAAM,GAAgB,CACf;YAC1B,GAAO;AACf,YAAQ,MACP,kHACA,EACA;;;AAIH,KAAW;IACT,CAAC,EAAe,CAAC,EAGnB,kBAAC,EAAW,UAAZ;EACC,OAAO;GACN,GAAG;GACH,MAAM;IAAE,GAAG,EAAK;IAAmB;IAAa;GAChD,aAAa,OAAO,EAAe;GACnC;EAEA;EACoB,CAAA;GCtEX,IAAmB,wBACnB,IAAqB;AAKlC,SAAgB,EAAiB,GAA0B;AAC1D,QAAO,IAAI,YAA8B,GAAkB,EAAE,WAAQ,CAAC;;AAGvE,SAAgB,EAAmB,GAA4B;AAC9D,QAAO,IAAI,YAAgC,GAAoB,EAAE,WAAQ,CAAC;;AAG3E,IAAa,IAA0B;;;ACPvC,SAAS,EAA2B,GAAsC;CACzE,IAAM,EAAE,YAAS,oBAAiB,aAAU,GAEtC,MAAY,MAAsB;AAClC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EACC,EAAM,OAAO,YACb,EAAM,OAAO,SACb,EAAM,OAAO,WACb;KAGI,MAAc,MAAwB;AACtC,IAAM,OAAO,GAAG,WAAW,EAAgB,IAGhD,EAAQ,EAAM,OAAO,WAAW;;AAMjC,QAHA,OAAO,iBAAiB,GAAkB,EAAQ,EAClD,OAAO,iBAAiB,GAAoB,EAAU,QAEzC;AAEZ,EADA,OAAO,oBAAoB,GAAkB,EAAQ,EACrD,OAAO,oBAAoB,GAAoB,EAAU;;;AAI3D,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO;;AAGhC,SAAgB,EACf,GACa;AACb,QAAO,EAAiB,EAAO"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { MicroFrontendPayload } from "./
|
|
2
|
-
|
|
1
|
+
import type { MicroFrontendPayload, PublicMicroFrontendPayload } from "./types";
|
|
2
|
+
type Config<TPayload> = {
|
|
3
3
|
microFrontendId: string;
|
|
4
|
-
mount: (mountPoint: HTMLDivElement, payload:
|
|
4
|
+
mount: (mountPoint: HTMLDivElement, payload: TPayload, deprecatedMountPoint: HTMLDivElement) => void;
|
|
5
5
|
unmount: (mountPoint: HTMLDivElement) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare function registerMicroFrontend(config: Config): void;
|
|
6
|
+
};
|
|
7
|
+
export declare function registerMicroFrontend(config: Config<MicroFrontendPayload>): () => void;
|
|
8
|
+
export declare function registerPublicMicroFrontend(config: Config<PublicMicroFrontendPayload>): () => void;
|
|
8
9
|
export {};
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import type { GetTokenSilentlyOptions } from "@auth0/auth0-spa-js";
|
|
2
|
-
import type { BusinessCapability } from "@entur-partner/permission-client-node";
|
|
3
|
-
|
|
2
|
+
import type { BusinessCapability, Permission } from "@entur-partner/permission-client-node";
|
|
3
|
+
export interface User {
|
|
4
|
+
sub: string;
|
|
5
|
+
name: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
picture: string;
|
|
8
|
+
nickname: string;
|
|
9
|
+
family_name: string;
|
|
10
|
+
given_name: string;
|
|
11
|
+
"https://entur.io/organisationID": number;
|
|
12
|
+
/**
|
|
13
|
+
* Permissions granted to the user. Comes from Permission-Store.
|
|
14
|
+
*/
|
|
15
|
+
permissions: Permission[];
|
|
16
|
+
/**
|
|
17
|
+
* Legacy permissions for Entur Partner.
|
|
18
|
+
*/
|
|
19
|
+
enturPartnerPermissions: string[];
|
|
20
|
+
}
|
|
4
21
|
export interface MenuItem {
|
|
5
22
|
/** Title of the menu item */
|
|
6
23
|
title: string;
|
|
@@ -14,6 +31,8 @@ export interface MenuItem {
|
|
|
14
31
|
navigate: (path: string) => void;
|
|
15
32
|
/** Is menu item disabled? */
|
|
16
33
|
disabled?: boolean;
|
|
34
|
+
/** Is public menu item? */
|
|
35
|
+
isPublic?: boolean;
|
|
17
36
|
/** Permissions required to view menu item */
|
|
18
37
|
requiredPermissions?: {
|
|
19
38
|
oneOf?: BusinessCapability[];
|
|
@@ -41,3 +60,12 @@ export interface MicroFrontendPayload {
|
|
|
41
60
|
* will try to use the navigate function from the first menu item instead. */
|
|
42
61
|
setMFNavigate: (navigate: NavigationFunction) => void;
|
|
43
62
|
}
|
|
63
|
+
export type PublicMicroFrontendPayload = Pick<MicroFrontendPayload, "language" | "navigate" | "setMFNavigate" | "addMenuItems"> & {
|
|
64
|
+
user?: User;
|
|
65
|
+
/** Function for getting an accessToken */
|
|
66
|
+
getToken?(options?: GetTokenSilentlyOptions): Promise<string>;
|
|
67
|
+
/** Active organisation identifier*/
|
|
68
|
+
organisationId?: string;
|
|
69
|
+
/** Log the user out */
|
|
70
|
+
logout?: () => void;
|
|
71
|
+
};
|
package/package.json
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur-partner/micro-frontend",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0-alpha.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"require": "./dist/index.cjs",
|
|
10
|
+
"import": "./dist/index.mjs"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
8
13
|
"files": [
|
|
9
14
|
"dist"
|
|
10
15
|
],
|
|
@@ -17,10 +22,8 @@
|
|
|
17
22
|
"access": "public"
|
|
18
23
|
},
|
|
19
24
|
"scripts": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"test": "dts test --env=jsdom --passWithNoTests",
|
|
23
|
-
"lint": "dts lint"
|
|
25
|
+
"build": "vite build && tsc -p tsconfig.build.json",
|
|
26
|
+
"test": "vitest run"
|
|
24
27
|
},
|
|
25
28
|
"peerDependencies": {
|
|
26
29
|
"react": ">=18.0.0",
|
|
@@ -29,20 +32,10 @@
|
|
|
29
32
|
"devDependencies": {
|
|
30
33
|
"@auth0/auth0-spa-js": "2.18.3",
|
|
31
34
|
"@entur-partner/permission-client-node": "3.6.2",
|
|
32
|
-
"posthog-js": "^1.
|
|
35
|
+
"posthog-js": "^1.365.5"
|
|
33
36
|
},
|
|
34
37
|
"dependencies": {
|
|
35
|
-
"@entur-partner/util": "^1.
|
|
36
|
-
},
|
|
37
|
-
"jest": {
|
|
38
|
-
"collectCoverageFrom": [
|
|
39
|
-
"<rootDir>/src/**/*.{js,jsx,ts,tsx}"
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
"jestSonar": {
|
|
43
|
-
"reportPath": "reports/jest/",
|
|
44
|
-
"reportFile": "jest-sonar-report.xml",
|
|
45
|
-
"indent": 4
|
|
38
|
+
"@entur-partner/util": "^1.4.0-alpha.0"
|
|
46
39
|
},
|
|
47
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "80555bc6012ccbf5221cea5e1199b4b72bd090ae"
|
|
48
41
|
}
|
package/dist/User.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Permission } from "@entur-partner/permission-client-node";
|
|
2
|
-
export interface User {
|
|
3
|
-
sub: string;
|
|
4
|
-
name: string;
|
|
5
|
-
email?: string;
|
|
6
|
-
picture: string;
|
|
7
|
-
nickname: string;
|
|
8
|
-
family_name: string;
|
|
9
|
-
given_name: string;
|
|
10
|
-
"https://entur.io/organisationID": number;
|
|
11
|
-
/**
|
|
12
|
-
* Permissions granted to the user. Comes from Permission-Store.
|
|
13
|
-
*/
|
|
14
|
-
permissions: Permission[];
|
|
15
|
-
/**
|
|
16
|
-
* Legacy permissions for Entur Partner.
|
|
17
|
-
*/
|
|
18
|
-
enturPartnerPermissions: string[];
|
|
19
|
-
}
|
package/dist/index.js
DELETED
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var util = require('@entur-partner/util');
|
|
7
|
-
var react = require('react');
|
|
8
|
-
|
|
9
|
-
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
10
|
-
try {
|
|
11
|
-
var i = n[a](c),
|
|
12
|
-
u = i.value;
|
|
13
|
-
} catch (n) {
|
|
14
|
-
return void e(n);
|
|
15
|
-
}
|
|
16
|
-
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
17
|
-
}
|
|
18
|
-
function _asyncToGenerator(n) {
|
|
19
|
-
return function () {
|
|
20
|
-
var t = this,
|
|
21
|
-
e = arguments;
|
|
22
|
-
return new Promise(function (r, o) {
|
|
23
|
-
var a = n.apply(t, e);
|
|
24
|
-
function _next(n) {
|
|
25
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
26
|
-
}
|
|
27
|
-
function _throw(n) {
|
|
28
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
29
|
-
}
|
|
30
|
-
_next(void 0);
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function _construct(t, e, r) {
|
|
35
|
-
if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
36
|
-
var o = [null];
|
|
37
|
-
o.push.apply(o, e);
|
|
38
|
-
var p = new (t.bind.apply(t, o))();
|
|
39
|
-
return r && _setPrototypeOf(p, r.prototype), p;
|
|
40
|
-
}
|
|
41
|
-
function _extends() {
|
|
42
|
-
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
43
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
44
|
-
var t = arguments[e];
|
|
45
|
-
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
46
|
-
}
|
|
47
|
-
return n;
|
|
48
|
-
}, _extends.apply(null, arguments);
|
|
49
|
-
}
|
|
50
|
-
function _getPrototypeOf(t) {
|
|
51
|
-
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
52
|
-
return t.__proto__ || Object.getPrototypeOf(t);
|
|
53
|
-
}, _getPrototypeOf(t);
|
|
54
|
-
}
|
|
55
|
-
function _inheritsLoose(t, o) {
|
|
56
|
-
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
57
|
-
}
|
|
58
|
-
function _isNativeFunction(t) {
|
|
59
|
-
try {
|
|
60
|
-
return -1 !== Function.toString.call(t).indexOf("[native code]");
|
|
61
|
-
} catch (n) {
|
|
62
|
-
return "function" == typeof t;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function _isNativeReflectConstruct() {
|
|
66
|
-
try {
|
|
67
|
-
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
68
|
-
} catch (t) {}
|
|
69
|
-
return (_isNativeReflectConstruct = function () {
|
|
70
|
-
return !!t;
|
|
71
|
-
})();
|
|
72
|
-
}
|
|
73
|
-
function _objectWithoutPropertiesLoose(r, e) {
|
|
74
|
-
if (null == r) return {};
|
|
75
|
-
var t = {};
|
|
76
|
-
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
77
|
-
if (-1 !== e.indexOf(n)) continue;
|
|
78
|
-
t[n] = r[n];
|
|
79
|
-
}
|
|
80
|
-
return t;
|
|
81
|
-
}
|
|
82
|
-
function _regenerator() {
|
|
83
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
84
|
-
var e,
|
|
85
|
-
t,
|
|
86
|
-
r = "function" == typeof Symbol ? Symbol : {},
|
|
87
|
-
n = r.iterator || "@@iterator",
|
|
88
|
-
o = r.toStringTag || "@@toStringTag";
|
|
89
|
-
function i(r, n, o, i) {
|
|
90
|
-
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
91
|
-
u = Object.create(c.prototype);
|
|
92
|
-
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
93
|
-
var i,
|
|
94
|
-
c,
|
|
95
|
-
u,
|
|
96
|
-
f = 0,
|
|
97
|
-
p = o || [],
|
|
98
|
-
y = !1,
|
|
99
|
-
G = {
|
|
100
|
-
p: 0,
|
|
101
|
-
n: 0,
|
|
102
|
-
v: e,
|
|
103
|
-
a: d,
|
|
104
|
-
f: d.bind(e, 4),
|
|
105
|
-
d: function (t, r) {
|
|
106
|
-
return i = t, c = 0, u = e, G.n = r, a;
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
function d(r, n) {
|
|
110
|
-
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
111
|
-
var o,
|
|
112
|
-
i = p[t],
|
|
113
|
-
d = G.p,
|
|
114
|
-
l = i[2];
|
|
115
|
-
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
116
|
-
}
|
|
117
|
-
if (o || r > 1) return a;
|
|
118
|
-
throw y = !0, n;
|
|
119
|
-
}
|
|
120
|
-
return function (o, p, l) {
|
|
121
|
-
if (f > 1) throw TypeError("Generator is already running");
|
|
122
|
-
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
123
|
-
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
124
|
-
try {
|
|
125
|
-
if (f = 2, i) {
|
|
126
|
-
if (c || (o = "next"), t = i[o]) {
|
|
127
|
-
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
128
|
-
if (!t.done) return t;
|
|
129
|
-
u = t.value, c < 2 && (c = 0);
|
|
130
|
-
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
131
|
-
i = e;
|
|
132
|
-
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
133
|
-
} catch (t) {
|
|
134
|
-
i = e, c = 1, u = t;
|
|
135
|
-
} finally {
|
|
136
|
-
f = 1;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
value: t,
|
|
141
|
-
done: y
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
}(r, o, i), !0), u;
|
|
145
|
-
}
|
|
146
|
-
var a = {};
|
|
147
|
-
function Generator() {}
|
|
148
|
-
function GeneratorFunction() {}
|
|
149
|
-
function GeneratorFunctionPrototype() {}
|
|
150
|
-
t = Object.getPrototypeOf;
|
|
151
|
-
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
152
|
-
return this;
|
|
153
|
-
}), t),
|
|
154
|
-
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
155
|
-
function f(e) {
|
|
156
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
157
|
-
}
|
|
158
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
159
|
-
return this;
|
|
160
|
-
}), _regeneratorDefine(u, "toString", function () {
|
|
161
|
-
return "[object Generator]";
|
|
162
|
-
}), (_regenerator = function () {
|
|
163
|
-
return {
|
|
164
|
-
w: i,
|
|
165
|
-
m: f
|
|
166
|
-
};
|
|
167
|
-
})();
|
|
168
|
-
}
|
|
169
|
-
function _regeneratorDefine(e, r, n, t) {
|
|
170
|
-
var i = Object.defineProperty;
|
|
171
|
-
try {
|
|
172
|
-
i({}, "", {});
|
|
173
|
-
} catch (e) {
|
|
174
|
-
i = 0;
|
|
175
|
-
}
|
|
176
|
-
_regeneratorDefine = function (e, r, n, t) {
|
|
177
|
-
function o(r, n) {
|
|
178
|
-
_regeneratorDefine(e, r, function (e) {
|
|
179
|
-
return this._invoke(r, n, e);
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
r ? i ? i(e, r, {
|
|
183
|
-
value: n,
|
|
184
|
-
enumerable: !t,
|
|
185
|
-
configurable: !t,
|
|
186
|
-
writable: !t
|
|
187
|
-
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
188
|
-
}, _regeneratorDefine(e, r, n, t);
|
|
189
|
-
}
|
|
190
|
-
function _setPrototypeOf(t, e) {
|
|
191
|
-
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
192
|
-
return t.__proto__ = e, t;
|
|
193
|
-
}, _setPrototypeOf(t, e);
|
|
194
|
-
}
|
|
195
|
-
function _wrapNativeSuper(t) {
|
|
196
|
-
var r = "function" == typeof Map ? new Map() : void 0;
|
|
197
|
-
return _wrapNativeSuper = function (t) {
|
|
198
|
-
if (null === t || !_isNativeFunction(t)) return t;
|
|
199
|
-
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
|
|
200
|
-
if (void 0 !== r) {
|
|
201
|
-
if (r.has(t)) return r.get(t);
|
|
202
|
-
r.set(t, Wrapper);
|
|
203
|
-
}
|
|
204
|
-
function Wrapper() {
|
|
205
|
-
return _construct(t, arguments, _getPrototypeOf(this).constructor);
|
|
206
|
-
}
|
|
207
|
-
return Wrapper.prototype = Object.create(t.prototype, {
|
|
208
|
-
constructor: {
|
|
209
|
-
value: Wrapper,
|
|
210
|
-
enumerable: !1,
|
|
211
|
-
writable: !0,
|
|
212
|
-
configurable: !0
|
|
213
|
-
}
|
|
214
|
-
}), _setPrototypeOf(Wrapper, t);
|
|
215
|
-
}, _wrapNativeSuper(t);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
var _excluded = ["children", "organisationId", "getPermissions"];
|
|
219
|
-
var AppContext = /*#__PURE__*/react.createContext(undefined);
|
|
220
|
-
var useUser = function useUser() {
|
|
221
|
-
var context = react.useContext(AppContext);
|
|
222
|
-
util.assertIsDefined(context);
|
|
223
|
-
return context.user;
|
|
224
|
-
};
|
|
225
|
-
var useActiveOrgId = function useActiveOrgId() {
|
|
226
|
-
var context = react.useContext(AppContext);
|
|
227
|
-
util.assertIsDefined(context);
|
|
228
|
-
return context.activeOrgId;
|
|
229
|
-
};
|
|
230
|
-
var useNavigate = function useNavigate() {
|
|
231
|
-
var context = react.useContext(AppContext);
|
|
232
|
-
util.assertIsDefined(context);
|
|
233
|
-
return context.navigate;
|
|
234
|
-
};
|
|
235
|
-
var AppProvider = function AppProvider(_ref) {
|
|
236
|
-
var children = _ref.children,
|
|
237
|
-
organisationId = _ref.organisationId,
|
|
238
|
-
getPermissions = _ref.getPermissions,
|
|
239
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
240
|
-
var _useState = react.useState([]),
|
|
241
|
-
permissions = _useState[0],
|
|
242
|
-
setPermissions = _useState[1];
|
|
243
|
-
react.useEffect(function () {
|
|
244
|
-
function fetchData() {
|
|
245
|
-
return _fetchData.apply(this, arguments);
|
|
246
|
-
}
|
|
247
|
-
function _fetchData() {
|
|
248
|
-
_fetchData = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
249
|
-
var fetchedPermissions, _t;
|
|
250
|
-
return _regenerator().w(function (_context) {
|
|
251
|
-
while (1) switch (_context.p = _context.n) {
|
|
252
|
-
case 0:
|
|
253
|
-
_context.p = 0;
|
|
254
|
-
_context.n = 1;
|
|
255
|
-
return getPermissions();
|
|
256
|
-
case 1:
|
|
257
|
-
fetchedPermissions = _context.v;
|
|
258
|
-
setPermissions(fetchedPermissions);
|
|
259
|
-
_context.n = 3;
|
|
260
|
-
break;
|
|
261
|
-
case 2:
|
|
262
|
-
_context.p = 2;
|
|
263
|
-
_t = _context.v;
|
|
264
|
-
console.error("Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:", _t);
|
|
265
|
-
case 3:
|
|
266
|
-
return _context.a(2);
|
|
267
|
-
}
|
|
268
|
-
}, _callee, null, [[0, 2]]);
|
|
269
|
-
}));
|
|
270
|
-
return _fetchData.apply(this, arguments);
|
|
271
|
-
}
|
|
272
|
-
fetchData();
|
|
273
|
-
}, [getPermissions]);
|
|
274
|
-
return jsxRuntime.jsx(AppContext.Provider, {
|
|
275
|
-
value: _extends({}, rest, {
|
|
276
|
-
user: _extends({}, rest.user, {
|
|
277
|
-
permissions: permissions
|
|
278
|
-
}),
|
|
279
|
-
activeOrgId: Number(organisationId)
|
|
280
|
-
}),
|
|
281
|
-
children: children
|
|
282
|
-
});
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
var MOUNT_EVENT_TYPE = "@entur-partner:mount";
|
|
286
|
-
var UNMOUNT_EVENT_TYPE = "@entur-partner:unmount";
|
|
287
|
-
function createMountEvent(detail) {
|
|
288
|
-
return new CustomEvent(MOUNT_EVENT_TYPE, {
|
|
289
|
-
detail: detail
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
function createUnmountEvent(detail) {
|
|
293
|
-
return new CustomEvent(UNMOUNT_EVENT_TYPE, {
|
|
294
|
-
detail: detail
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
var ROUTE_CHANGE_EVENT_TYPE = "@entur-partner:after-route-change";
|
|
298
|
-
var RouteChangeEvent = /*#__PURE__*/function (_CustomEvent) {
|
|
299
|
-
function RouteChangeEvent() {
|
|
300
|
-
return _CustomEvent.apply(this, arguments) || this;
|
|
301
|
-
}
|
|
302
|
-
_inheritsLoose(RouteChangeEvent, _CustomEvent);
|
|
303
|
-
return RouteChangeEvent;
|
|
304
|
-
}(/*#__PURE__*/_wrapNativeSuper(CustomEvent));
|
|
305
|
-
|
|
306
|
-
/*global EventListener*/
|
|
307
|
-
function registerMicroFrontend(config) {
|
|
308
|
-
var unmount = config.unmount,
|
|
309
|
-
microFrontendId = config.microFrontendId,
|
|
310
|
-
mount = config.mount;
|
|
311
|
-
window.addEventListener(MOUNT_EVENT_TYPE, function (event) {
|
|
312
|
-
if (!event.detail.id.startsWith(microFrontendId)) {
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
mount(event.detail.mountPoint, event.detail.payload, event.detail.mountPoint);
|
|
316
|
-
});
|
|
317
|
-
window.addEventListener(UNMOUNT_EVENT_TYPE, function (event) {
|
|
318
|
-
if (!event.detail.id.startsWith(microFrontendId)) {
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
unmount(event.detail.mountPoint);
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
exports.AppProvider = AppProvider;
|
|
326
|
-
exports.MOUNT_EVENT_TYPE = MOUNT_EVENT_TYPE;
|
|
327
|
-
exports.ROUTE_CHANGE_EVENT_TYPE = ROUTE_CHANGE_EVENT_TYPE;
|
|
328
|
-
exports.RouteChangeEvent = RouteChangeEvent;
|
|
329
|
-
exports.UNMOUNT_EVENT_TYPE = UNMOUNT_EVENT_TYPE;
|
|
330
|
-
exports.createMountEvent = createMountEvent;
|
|
331
|
-
exports.createUnmountEvent = createUnmountEvent;
|
|
332
|
-
exports.registerMicroFrontend = registerMicroFrontend;
|
|
333
|
-
exports.useActiveOrgId = useActiveOrgId;
|
|
334
|
-
exports.useNavigate = useNavigate;
|
|
335
|
-
exports.useUser = useUser;
|
|
336
|
-
//# sourceMappingURL=micro-frontend.cjs.development.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"micro-frontend.cjs.development.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.tsx"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./User\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload } from \"./Payload\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload } from \"./Payload\";\n\ninterface Config {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: MicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n}\n\nexport function registerMicroFrontend(config: Config): void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener);\n\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener);\n}\n"],"names":["AppContext","createContext","undefined","useUser","context","useContext","assertIsDefined","user","useActiveOrgId","activeOrgId","useNavigate","navigate","AppProvider","_ref","children","organisationId","getPermissions","rest","_objectWithoutPropertiesLoose","_excluded","_useState","useState","permissions","setPermissions","useEffect","fetchData","_fetchData","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","fetchedPermissions","_t","w","_context","p","n","v","console","error","a","_jsx","Provider","value","_extends","Number","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","createMountEvent","detail","CustomEvent","createUnmountEvent","ROUTE_CHANGE_EVENT_TYPE","RouteChangeEvent","_CustomEvent","_inheritsLoose","_wrapNativeSuper","registerMicroFrontend","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,IAAMA,UAAU,gBAAGC,mBAAa,CAA6BC,SAAS,CAAC,CAAA;IAEjEC,OAAO,GAAG,SAAVA,OAAOA,GAAQ;AAC3B,EAAA,IAAMC,OAAO,GAAGC,gBAAU,CAACL,UAAU,CAAC,CAAA;EACtCM,oBAAe,CAACF,OAAO,CAAC,CAAA;EACxB,OAAOA,OAAO,CAACG,IAAI,CAAA;AACpB,EAAC;IAEYC,cAAc,GAAG,SAAjBA,cAAcA,GAAQ;AAClC,EAAA,IAAMJ,OAAO,GAAGC,gBAAU,CAACL,UAAU,CAAC,CAAA;EACtCM,oBAAe,CAACF,OAAO,CAAC,CAAA;EACxB,OAAOA,OAAO,CAACK,WAAW,CAAA;AAC3B,EAAC;IAWYC,WAAW,GAAG,SAAdA,WAAWA,GAAQ;AAC/B,EAAA,IAAMN,OAAO,GAAGC,gBAAU,CAACL,UAAU,CAAC,CAAA;EACtCM,oBAAe,CAACF,OAAO,CAAC,CAAA;EACxB,OAAOA,OAAO,CAACO,QAAQ,CAAA;AACxB,EAAC;IAEYC,WAAW,GAAyB,SAApCA,WAAWA,CAAAC,IAAA,EAKnB;AAAA,EAAA,IAJJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,cAAc,GAAAH,IAAA,CAAdG,cAAc;AACXC,IAAAA,IAAI,GAAAC,6BAAA,CAAAL,IAAA,EAAAM,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAAsCC,cAAQ,CAAe,EAAE,CAAC;AAAzDC,IAAAA,WAAW,GAAAF,SAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,SAAA,CAAA,CAAA,CAAA,CAAA;AAElCI,EAAAA,eAAS,CAAC,YAAK;AAAA,IAAA,SACCC,SAASA,GAAA;AAAA,MAAA,OAAAC,UAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,SAAAF,UAAA,GAAA;MAAAA,UAAA,GAAAG,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAxB,SAAAC,OAAA,GAAA;QAAA,IAAAC,kBAAA,EAAAC,EAAA,CAAA;AAAA,QAAA,OAAAJ,YAAA,EAAA,CAAAK,CAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA,GAAAD,QAAA,CAAAE,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;cAAA,OAEmCtB,cAAc,EAAE,CAAA;AAAA,YAAA,KAAA,CAAA;cAA3CiB,kBAAkB,GAAAG,QAAA,CAAAG,CAAA,CAAA;cACxBhB,cAAc,CAACU,kBAAkB,CAAC,CAAA;AAACG,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;cAAAH,EAAA,GAAAE,QAAA,CAAAG,CAAA,CAAA;AAEnCC,cAAAA,OAAO,CAACC,KAAK,CACZ,gHAAgH,EAAAP,EAC3G,CACL,CAAA;AAAC,YAAA,KAAA,CAAA;cAAA,OAAAE,QAAA,CAAAM,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAV,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAEH,CAAA,CAAA,CAAA;AAAA,MAAA,OAAAN,UAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAEDH,IAAAA,SAAS,EAAE,CAAA;AACZ,GAAC,EAAE,CAACT,cAAc,CAAC,CAAC,CAAA;AAEpB,EAAA,OACC2B,cAAC,CAAA3C,UAAU,CAAC4C,QAAQ,EAAA;IACnBC,KAAK,EAAAC,QAAA,CAAA,EAAA,EACD7B,IAAI,EAAA;AACPV,MAAAA,IAAI,EAAAuC,QAAA,CAAO7B,EAAAA,EAAAA,IAAI,CAACV,IAAI,EAAA;AAAEe,QAAAA,WAAW,EAAEA,WAAAA;OAAa,CAAA;MAChDb,WAAW,EAAEsC,MAAM,CAAChC,cAAc,CAAA;KAClC,CAAA;AAEAD,IAAAA,QAAA,EAAAA,QAAAA;AACoB,GAAA,CAAA,CAAA;AAExB;;ACxEO,IAAMkC,gBAAgB,GAAG,uBAAsB;AAC/C,IAAMC,kBAAkB,GAAG,yBAAwB;AAKpD,SAAUC,gBAAgBA,CAACC,MAAwB,EAAA;AACxD,EAAA,OAAO,IAAIC,WAAW,CAAmBJ,gBAAgB,EAAE;AAAEG,IAAAA,MAAM,EAANA,MAAAA;AAAQ,GAAA,CAAC,CAAA;AACvE,CAAA;AAEM,SAAUE,kBAAkBA,CAACF,MAA0B,EAAA;AAC5D,EAAA,OAAO,IAAIC,WAAW,CAAqBH,kBAAkB,EAAE;AAAEE,IAAAA,MAAM,EAANA,MAAAA;AAAQ,GAAA,CAAC,CAAA;AAC3E,CAAA;AAEO,IAAMG,uBAAuB,GAAG,oCAAmC;AAS7DC,IAAAA,gBAAiB,0BAAAC,YAAA,EAAA;AAAA,EAAA,SAAAD,gBAAA,GAAA;AAAA,IAAA,OAAAC,YAAA,CAAA7B,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,IAAA,IAAA,CAAA;AAAA,GAAA;EAAA6B,cAAA,CAAAF,gBAAA,EAAAC,YAAA,CAAA,CAAA;AAAA,EAAA,OAAAD,gBAAA,CAAA;AAAA,CAAAG,cAAAA,gBAAA,CAAQN,WAAmC,CAAA;;ACpCzE;AAoBM,SAAUO,qBAAqBA,CAACC,MAAc,EAAA;AACnD,EAAA,IAAQC,OAAO,GAA6BD,MAAM,CAA1CC,OAAO;IAAEC,eAAe,GAAYF,MAAM,CAAjCE,eAAe;IAAEC,KAAK,GAAKH,MAAM,CAAhBG,KAAK,CAAA;AAEvCC,EAAAA,MAAM,CAACC,gBAAgB,CAACjB,gBAAgB,EAAG,UAACkB,KAAiB,EAAI;IAChE,IAAI,CAACA,KAAK,CAACf,MAAM,CAACgB,EAAE,CAACC,UAAU,CAACN,eAAe,CAAC,EAAE;AACjD,MAAA,OAAA;AACD,KAAA;AACAC,IAAAA,KAAK,CACJG,KAAK,CAACf,MAAM,CAACkB,UAAU,EACvBH,KAAK,CAACf,MAAM,CAACmB,OAAO,EACpBJ,KAAK,CAACf,MAAM,CAACkB,UAAU,CACvB,CAAA;AACF,GAAmB,CAAC,CAAA;AAEpBL,EAAAA,MAAM,CAACC,gBAAgB,CAAChB,kBAAkB,EAAG,UAACiB,KAAmB,EAAI;IACpE,IAAI,CAACA,KAAK,CAACf,MAAM,CAACgB,EAAE,CAACC,UAAU,CAACN,eAAe,CAAC,EAAE;AACjD,MAAA,OAAA;AACD,KAAA;AACAD,IAAAA,OAAO,CAACK,KAAK,CAACf,MAAM,CAACkB,UAAU,CAAC,CAAA;AACjC,GAAmB,CAAC,CAAA;AACrB;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react/jsx-runtime"),e=require("@entur-partner/util"),r=require("react");function n(t,e,r,n,o,i,u){try{var c=t[i](u),a=c.value}catch(t){return void r(t)}c.done?e(a):Promise.resolve(a).then(n,o)}function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},o.apply(null,arguments)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(u=function(){return!!t})()}function c(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=Object.create((n&&n.prototype instanceof s?n:s).prototype);return a(c,"_invoke",function(r,n,o){var i,c,a,s=0,f=o||[],p=!1,l={p:0,n:0,v:t,a:v,f:v.bind(t,4),d:function(e,r){return i=e,c=0,a=t,l.n=r,u}};function v(r,n){for(c=r,a=n,e=0;!p&&s&&!o&&e<f.length;e++){var o,i=f[e],v=l.p,d=i[2];r>3?(o=d===n)&&(a=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=t):i[0]<=v&&((o=r<2&&v<i[1])?(c=0,l.v=n,l.n=i[1]):v<d&&(o=r<3||i[0]>n||n>d)&&(i[4]=r,i[5]=n,l.n=d,c=0))}if(o||r>1)return u;throw p=!0,n}return function(o,f,d){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&v(f,d),c=f,a=d;(e=c<2?t:a)||!p;){i||(c?c<3?(c>1&&(l.n=-1),v(c,a)):l.n=a:l.v=a);try{if(s=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,a)))throw TypeError("iterator result is not an object");if(!e.done)return e;a=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=t}else if((e=(p=l.n<0)?a:r.call(n,l))!==u)break}catch(e){i=t,c=1,a=e}finally{s=1}}return{value:e,done:p}}}(r,o,i),!0),c}var u={};function s(){}function f(){}function p(){}e=Object.getPrototypeOf;var l=[][n]?e(e([][n]())):(a(e={},n,function(){return this}),e),v=p.prototype=s.prototype=Object.create(l);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a(t,o,"GeneratorFunction")),t.prototype=Object.create(v),t}return f.prototype=p,a(v,"constructor",p),a(p,"constructor",f),f.displayName="GeneratorFunction",a(p,o,"GeneratorFunction"),a(v),a(v,o,"Generator"),a(v,n,function(){return this}),a(v,"toString",function(){return"[object Generator]"}),(c=function(){return{w:i,m:d}})()}function a(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}a=function(t,e,r,n){function i(e,r){a(t,e,function(t){return this._invoke(e,r,t)})}e?o?o(t,e,{value:r,enumerable:!n,configurable:!n,writable:!n}):t[e]=r:(i("next",0),i("throw",1),i("return",2))},a(t,e,r,n)}function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function f(t){var e="function"==typeof Map?new Map:void 0;return f=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(u())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&s(o,r.prototype),o}(t,arguments,i(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,t)},f(t)}var p=["children","organisationId","getPermissions"],l=r.createContext(void 0),v="@entur-partner:mount",d="@entur-partner:unmount",y=function(t){function e(){return t.apply(this,arguments)||this}var r,n;return n=t,(r=e).prototype=Object.create(n.prototype),r.prototype.constructor=r,s(r,n),e}(f(CustomEvent));exports.AppProvider=function(e){var i=e.children,u=e.organisationId,a=e.getPermissions,s=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(e,p),f=r.useState([]),v=f[0],d=f[1];return r.useEffect(function(){function t(){var e;return e=c().m(function t(){return c().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,a();case 1:d(t.v),t.n=3;break;case 2:t.p=2,console.error("Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:",t.v);case 3:return t.a(2)}},t,null,[[0,2]])}),t=function(){var t=this,r=arguments;return new Promise(function(o,i){var u=e.apply(t,r);function c(t){n(u,o,i,c,a,"next",t)}function a(t){n(u,o,i,c,a,"throw",t)}c(void 0)})},t.apply(this,arguments)}!function(){t.apply(this,arguments)}()},[a]),t.jsx(l.Provider,{value:o({},s,{user:o({},s.user,{permissions:v}),activeOrgId:Number(u)}),children:i})},exports.MOUNT_EVENT_TYPE=v,exports.ROUTE_CHANGE_EVENT_TYPE="@entur-partner:after-route-change",exports.RouteChangeEvent=y,exports.UNMOUNT_EVENT_TYPE=d,exports.createMountEvent=function(t){return new CustomEvent(v,{detail:t})},exports.createUnmountEvent=function(t){return new CustomEvent(d,{detail:t})},exports.registerMicroFrontend=function(t){var e=t.unmount,r=t.microFrontendId,n=t.mount;window.addEventListener(v,function(t){t.detail.id.startsWith(r)&&n(t.detail.mountPoint,t.detail.payload,t.detail.mountPoint)}),window.addEventListener(d,function(t){t.detail.id.startsWith(r)&&e(t.detail.mountPoint)})},exports.useActiveOrgId=function(){var t=r.useContext(l);return e.assertIsDefined(t),t.activeOrgId},exports.useNavigate=function(){var t=r.useContext(l);return e.assertIsDefined(t),t.navigate},exports.useUser=function(){var t=r.useContext(l);return e.assertIsDefined(t),t.user};
|
|
2
|
-
//# sourceMappingURL=micro-frontend.cjs.production.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"micro-frontend.cjs.production.min.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.tsx"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./User\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload } from \"./Payload\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload } from \"./Payload\";\n\ninterface Config {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: MicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n}\n\nexport function registerMicroFrontend(config: Config): void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener);\n\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener);\n}\n"],"names":["AppContext","createContext","undefined","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","RouteChangeEvent","_CustomEvent","apply","this","arguments","_wrapNativeSuper","CustomEvent","_ref","children","organisationId","getPermissions","rest","_objectWithoutPropertiesLoose","_excluded","_useState","useState","permissions","setPermissions","useEffect","_fetchData","_regenerator","m","_callee","w","_context","p","n","v","console","error","a","fetchData","_jsx","jsx","Provider","value","_extends","user","activeOrgId","Number","detail","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload","context","useContext","assertIsDefined","navigate"],"mappings":"ynHAqBaA,EAAaC,EAAAA,mBAA0CC,GCRvDC,EAAmB,uBACnBC,EAAqB,yBAsBrBC,WAAiBC,GAAA,SAAAD,IAAA,OAAAC,EAAAC,MAAAC,KAAAC,YAAAD,IAAA,SAAA,SAAAF,KAAAD,yEAAAA,CAAA,EAAAK,EAAQC,kCDcW,SAAzBC,GAKnB,IAJJC,EAAQD,EAARC,SACAC,EAAcF,EAAdE,eACAC,EAAcH,EAAdG,eACGC,6IAAIC,CAAAL,EAAAM,GAEPC,EAAsCC,EAAQA,SAAe,IAAtDC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAkBlC,OAhBAI,EAAAA,UAAU,WACe,SAAAC,UAUvB,SAVuBC,IAAAC,EAAxB,SAAAC,IAAA,OAAAF,IAAAG,EAAA,SAAAC,GAAA,cAAAA,EAAAC,EAAAD,EAAAE,GAAA,KAAA,EAAA,OAAAF,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAEmChB,IAAgB,KAAA,EACjDO,EADwBO,EAAAG,GACWH,EAAAE,EAAA,EAAA,MAAA,KAAA,EAAAF,EAAAC,EAAA,EAEnCG,QAAQC,MACP,iHAHkCL,EAAAG,GAKjC,KAAA,EAAA,OAAAH,EAAAM,EAAA,GAAA,EAAAR,EAAA,KAAA,CAAA,CAAA,EAAA,IAEH,GAVuBH,8KAUvBA,EAAAjB,MAAAC,KAAAC,UAAA,EAXa,WACUe,EAAAjB,MAAAC,KAAAC,UAAA,CAYxB2B,EACD,EAAG,CAACrB,IAGHsB,EAACC,IAAAtC,EAAWuC,SAAQ,CACnBC,MAAKC,EAAA,CAAA,EACDzB,EAAI,CACP0B,KAAID,EAAOzB,GAAAA,EAAK0B,KAAI,CAAErB,YAAaA,IACnCsB,YAAaC,OAAO9B,KAGpBD,SAAAA,GAGJ,6DC1DuC,qHARjC,SAA2BgC,GAChC,OAAO,IAAIlC,YAA8BR,EAAkB,CAAE0C,OAAAA,GAC9D,6BAEM,SAA6BA,GAClC,OAAO,IAAIlC,YAAgCP,EAAoB,CAAEyC,OAAAA,GAClE,gCCLM,SAAgCC,GACrC,IAAQC,EAAoCD,EAApCC,QAASC,EAA2BF,EAA3BE,gBAAiBC,EAAUH,EAAVG,MAElCC,OAAOC,iBAAiBhD,EAAmB,SAACiD,GACtCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCC,EACCG,EAAMP,OAAOU,WACbH,EAAMP,OAAOW,QACbJ,EAAMP,OAAOU,WAEf,GAEAL,OAAOC,iBAAiB/C,EAAqB,SAACgD,GACxCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCD,EAAQK,EAAMP,OAAOU,WACtB,EACD,yBFX8B,WAC7B,IAAME,EAAUC,aAAW1D,GAE3B,OADA2D,EAAeA,gBAACF,GACTA,EAAQd,WAChB,sBAW2B,WAC1B,IAAMc,EAAUC,aAAW1D,GAE3B,OADA2D,EAAeA,gBAACF,GACTA,EAAQG,QAChB,kBAzBuB,WACtB,IAAMH,EAAUC,aAAW1D,GAE3B,OADA2D,EAAeA,gBAACF,GACTA,EAAQf,IAChB"}
|
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { assertIsDefined } from '@entur-partner/util';
|
|
3
|
-
import { useContext, useState, useEffect, createContext } from 'react';
|
|
4
|
-
|
|
5
|
-
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
6
|
-
try {
|
|
7
|
-
var i = n[a](c),
|
|
8
|
-
u = i.value;
|
|
9
|
-
} catch (n) {
|
|
10
|
-
return void e(n);
|
|
11
|
-
}
|
|
12
|
-
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
13
|
-
}
|
|
14
|
-
function _asyncToGenerator(n) {
|
|
15
|
-
return function () {
|
|
16
|
-
var t = this,
|
|
17
|
-
e = arguments;
|
|
18
|
-
return new Promise(function (r, o) {
|
|
19
|
-
var a = n.apply(t, e);
|
|
20
|
-
function _next(n) {
|
|
21
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
22
|
-
}
|
|
23
|
-
function _throw(n) {
|
|
24
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
25
|
-
}
|
|
26
|
-
_next(void 0);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function _construct(t, e, r) {
|
|
31
|
-
if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
32
|
-
var o = [null];
|
|
33
|
-
o.push.apply(o, e);
|
|
34
|
-
var p = new (t.bind.apply(t, o))();
|
|
35
|
-
return r && _setPrototypeOf(p, r.prototype), p;
|
|
36
|
-
}
|
|
37
|
-
function _extends() {
|
|
38
|
-
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
39
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
40
|
-
var t = arguments[e];
|
|
41
|
-
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
42
|
-
}
|
|
43
|
-
return n;
|
|
44
|
-
}, _extends.apply(null, arguments);
|
|
45
|
-
}
|
|
46
|
-
function _getPrototypeOf(t) {
|
|
47
|
-
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
48
|
-
return t.__proto__ || Object.getPrototypeOf(t);
|
|
49
|
-
}, _getPrototypeOf(t);
|
|
50
|
-
}
|
|
51
|
-
function _inheritsLoose(t, o) {
|
|
52
|
-
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
53
|
-
}
|
|
54
|
-
function _isNativeFunction(t) {
|
|
55
|
-
try {
|
|
56
|
-
return -1 !== Function.toString.call(t).indexOf("[native code]");
|
|
57
|
-
} catch (n) {
|
|
58
|
-
return "function" == typeof t;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function _isNativeReflectConstruct() {
|
|
62
|
-
try {
|
|
63
|
-
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
64
|
-
} catch (t) {}
|
|
65
|
-
return (_isNativeReflectConstruct = function () {
|
|
66
|
-
return !!t;
|
|
67
|
-
})();
|
|
68
|
-
}
|
|
69
|
-
function _objectWithoutPropertiesLoose(r, e) {
|
|
70
|
-
if (null == r) return {};
|
|
71
|
-
var t = {};
|
|
72
|
-
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
73
|
-
if (-1 !== e.indexOf(n)) continue;
|
|
74
|
-
t[n] = r[n];
|
|
75
|
-
}
|
|
76
|
-
return t;
|
|
77
|
-
}
|
|
78
|
-
function _regenerator() {
|
|
79
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
80
|
-
var e,
|
|
81
|
-
t,
|
|
82
|
-
r = "function" == typeof Symbol ? Symbol : {},
|
|
83
|
-
n = r.iterator || "@@iterator",
|
|
84
|
-
o = r.toStringTag || "@@toStringTag";
|
|
85
|
-
function i(r, n, o, i) {
|
|
86
|
-
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
87
|
-
u = Object.create(c.prototype);
|
|
88
|
-
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
89
|
-
var i,
|
|
90
|
-
c,
|
|
91
|
-
u,
|
|
92
|
-
f = 0,
|
|
93
|
-
p = o || [],
|
|
94
|
-
y = !1,
|
|
95
|
-
G = {
|
|
96
|
-
p: 0,
|
|
97
|
-
n: 0,
|
|
98
|
-
v: e,
|
|
99
|
-
a: d,
|
|
100
|
-
f: d.bind(e, 4),
|
|
101
|
-
d: function (t, r) {
|
|
102
|
-
return i = t, c = 0, u = e, G.n = r, a;
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
function d(r, n) {
|
|
106
|
-
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
107
|
-
var o,
|
|
108
|
-
i = p[t],
|
|
109
|
-
d = G.p,
|
|
110
|
-
l = i[2];
|
|
111
|
-
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
112
|
-
}
|
|
113
|
-
if (o || r > 1) return a;
|
|
114
|
-
throw y = !0, n;
|
|
115
|
-
}
|
|
116
|
-
return function (o, p, l) {
|
|
117
|
-
if (f > 1) throw TypeError("Generator is already running");
|
|
118
|
-
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
119
|
-
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
120
|
-
try {
|
|
121
|
-
if (f = 2, i) {
|
|
122
|
-
if (c || (o = "next"), t = i[o]) {
|
|
123
|
-
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
124
|
-
if (!t.done) return t;
|
|
125
|
-
u = t.value, c < 2 && (c = 0);
|
|
126
|
-
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
127
|
-
i = e;
|
|
128
|
-
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
129
|
-
} catch (t) {
|
|
130
|
-
i = e, c = 1, u = t;
|
|
131
|
-
} finally {
|
|
132
|
-
f = 1;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
value: t,
|
|
137
|
-
done: y
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
}(r, o, i), !0), u;
|
|
141
|
-
}
|
|
142
|
-
var a = {};
|
|
143
|
-
function Generator() {}
|
|
144
|
-
function GeneratorFunction() {}
|
|
145
|
-
function GeneratorFunctionPrototype() {}
|
|
146
|
-
t = Object.getPrototypeOf;
|
|
147
|
-
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
148
|
-
return this;
|
|
149
|
-
}), t),
|
|
150
|
-
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
151
|
-
function f(e) {
|
|
152
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
153
|
-
}
|
|
154
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
155
|
-
return this;
|
|
156
|
-
}), _regeneratorDefine(u, "toString", function () {
|
|
157
|
-
return "[object Generator]";
|
|
158
|
-
}), (_regenerator = function () {
|
|
159
|
-
return {
|
|
160
|
-
w: i,
|
|
161
|
-
m: f
|
|
162
|
-
};
|
|
163
|
-
})();
|
|
164
|
-
}
|
|
165
|
-
function _regeneratorDefine(e, r, n, t) {
|
|
166
|
-
var i = Object.defineProperty;
|
|
167
|
-
try {
|
|
168
|
-
i({}, "", {});
|
|
169
|
-
} catch (e) {
|
|
170
|
-
i = 0;
|
|
171
|
-
}
|
|
172
|
-
_regeneratorDefine = function (e, r, n, t) {
|
|
173
|
-
function o(r, n) {
|
|
174
|
-
_regeneratorDefine(e, r, function (e) {
|
|
175
|
-
return this._invoke(r, n, e);
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
r ? i ? i(e, r, {
|
|
179
|
-
value: n,
|
|
180
|
-
enumerable: !t,
|
|
181
|
-
configurable: !t,
|
|
182
|
-
writable: !t
|
|
183
|
-
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
184
|
-
}, _regeneratorDefine(e, r, n, t);
|
|
185
|
-
}
|
|
186
|
-
function _setPrototypeOf(t, e) {
|
|
187
|
-
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
188
|
-
return t.__proto__ = e, t;
|
|
189
|
-
}, _setPrototypeOf(t, e);
|
|
190
|
-
}
|
|
191
|
-
function _wrapNativeSuper(t) {
|
|
192
|
-
var r = "function" == typeof Map ? new Map() : void 0;
|
|
193
|
-
return _wrapNativeSuper = function (t) {
|
|
194
|
-
if (null === t || !_isNativeFunction(t)) return t;
|
|
195
|
-
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
|
|
196
|
-
if (void 0 !== r) {
|
|
197
|
-
if (r.has(t)) return r.get(t);
|
|
198
|
-
r.set(t, Wrapper);
|
|
199
|
-
}
|
|
200
|
-
function Wrapper() {
|
|
201
|
-
return _construct(t, arguments, _getPrototypeOf(this).constructor);
|
|
202
|
-
}
|
|
203
|
-
return Wrapper.prototype = Object.create(t.prototype, {
|
|
204
|
-
constructor: {
|
|
205
|
-
value: Wrapper,
|
|
206
|
-
enumerable: !1,
|
|
207
|
-
writable: !0,
|
|
208
|
-
configurable: !0
|
|
209
|
-
}
|
|
210
|
-
}), _setPrototypeOf(Wrapper, t);
|
|
211
|
-
}, _wrapNativeSuper(t);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
var _excluded = ["children", "organisationId", "getPermissions"];
|
|
215
|
-
var AppContext = /*#__PURE__*/createContext(undefined);
|
|
216
|
-
var useUser = function useUser() {
|
|
217
|
-
var context = useContext(AppContext);
|
|
218
|
-
assertIsDefined(context);
|
|
219
|
-
return context.user;
|
|
220
|
-
};
|
|
221
|
-
var useActiveOrgId = function useActiveOrgId() {
|
|
222
|
-
var context = useContext(AppContext);
|
|
223
|
-
assertIsDefined(context);
|
|
224
|
-
return context.activeOrgId;
|
|
225
|
-
};
|
|
226
|
-
var useNavigate = function useNavigate() {
|
|
227
|
-
var context = useContext(AppContext);
|
|
228
|
-
assertIsDefined(context);
|
|
229
|
-
return context.navigate;
|
|
230
|
-
};
|
|
231
|
-
var AppProvider = function AppProvider(_ref) {
|
|
232
|
-
var children = _ref.children,
|
|
233
|
-
organisationId = _ref.organisationId,
|
|
234
|
-
getPermissions = _ref.getPermissions,
|
|
235
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
236
|
-
var _useState = useState([]),
|
|
237
|
-
permissions = _useState[0],
|
|
238
|
-
setPermissions = _useState[1];
|
|
239
|
-
useEffect(function () {
|
|
240
|
-
function fetchData() {
|
|
241
|
-
return _fetchData.apply(this, arguments);
|
|
242
|
-
}
|
|
243
|
-
function _fetchData() {
|
|
244
|
-
_fetchData = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
245
|
-
var fetchedPermissions, _t;
|
|
246
|
-
return _regenerator().w(function (_context) {
|
|
247
|
-
while (1) switch (_context.p = _context.n) {
|
|
248
|
-
case 0:
|
|
249
|
-
_context.p = 0;
|
|
250
|
-
_context.n = 1;
|
|
251
|
-
return getPermissions();
|
|
252
|
-
case 1:
|
|
253
|
-
fetchedPermissions = _context.v;
|
|
254
|
-
setPermissions(fetchedPermissions);
|
|
255
|
-
_context.n = 3;
|
|
256
|
-
break;
|
|
257
|
-
case 2:
|
|
258
|
-
_context.p = 2;
|
|
259
|
-
_t = _context.v;
|
|
260
|
-
console.error("Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:", _t);
|
|
261
|
-
case 3:
|
|
262
|
-
return _context.a(2);
|
|
263
|
-
}
|
|
264
|
-
}, _callee, null, [[0, 2]]);
|
|
265
|
-
}));
|
|
266
|
-
return _fetchData.apply(this, arguments);
|
|
267
|
-
}
|
|
268
|
-
fetchData();
|
|
269
|
-
}, [getPermissions]);
|
|
270
|
-
return jsx(AppContext.Provider, {
|
|
271
|
-
value: _extends({}, rest, {
|
|
272
|
-
user: _extends({}, rest.user, {
|
|
273
|
-
permissions: permissions
|
|
274
|
-
}),
|
|
275
|
-
activeOrgId: Number(organisationId)
|
|
276
|
-
}),
|
|
277
|
-
children: children
|
|
278
|
-
});
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
var MOUNT_EVENT_TYPE = "@entur-partner:mount";
|
|
282
|
-
var UNMOUNT_EVENT_TYPE = "@entur-partner:unmount";
|
|
283
|
-
function createMountEvent(detail) {
|
|
284
|
-
return new CustomEvent(MOUNT_EVENT_TYPE, {
|
|
285
|
-
detail: detail
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
function createUnmountEvent(detail) {
|
|
289
|
-
return new CustomEvent(UNMOUNT_EVENT_TYPE, {
|
|
290
|
-
detail: detail
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
var ROUTE_CHANGE_EVENT_TYPE = "@entur-partner:after-route-change";
|
|
294
|
-
var RouteChangeEvent = /*#__PURE__*/function (_CustomEvent) {
|
|
295
|
-
function RouteChangeEvent() {
|
|
296
|
-
return _CustomEvent.apply(this, arguments) || this;
|
|
297
|
-
}
|
|
298
|
-
_inheritsLoose(RouteChangeEvent, _CustomEvent);
|
|
299
|
-
return RouteChangeEvent;
|
|
300
|
-
}(/*#__PURE__*/_wrapNativeSuper(CustomEvent));
|
|
301
|
-
|
|
302
|
-
/*global EventListener*/
|
|
303
|
-
function registerMicroFrontend(config) {
|
|
304
|
-
var unmount = config.unmount,
|
|
305
|
-
microFrontendId = config.microFrontendId,
|
|
306
|
-
mount = config.mount;
|
|
307
|
-
window.addEventListener(MOUNT_EVENT_TYPE, function (event) {
|
|
308
|
-
if (!event.detail.id.startsWith(microFrontendId)) {
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
mount(event.detail.mountPoint, event.detail.payload, event.detail.mountPoint);
|
|
312
|
-
});
|
|
313
|
-
window.addEventListener(UNMOUNT_EVENT_TYPE, function (event) {
|
|
314
|
-
if (!event.detail.id.startsWith(microFrontendId)) {
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
unmount(event.detail.mountPoint);
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
export { AppProvider, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, RouteChangeEvent, UNMOUNT_EVENT_TYPE, createMountEvent, createUnmountEvent, registerMicroFrontend, useActiveOrgId, useNavigate, useUser };
|
|
322
|
-
//# sourceMappingURL=micro-frontend.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"micro-frontend.esm.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/registerMicroFrontend.tsx"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport {\n\tcreateContext,\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\n\nimport type { User } from \"./User\";\n\ninterface AppContextType {\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tlogout?: () => void;\n\tactiveOrgId: number;\n\tnavigate: (path: string) => void;\n}\n\nexport const AppContext = createContext<AppContextType | undefined>(undefined);\n\nexport const useUser = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.user;\n};\n\nexport const useActiveOrgId = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.activeOrgId;\n};\n\nexport interface AppProviderProps {\n\tchildren: ReactNode;\n\tgetToken: () => Promise<string>;\n\tuser: User;\n\tgetPermissions: () => Promise<Permission[]>;\n\torganisationId: string;\n\tnavigate: (path: string) => void;\n}\n\nexport const useNavigate = () => {\n\tconst context = useContext(AppContext);\n\tassertIsDefined(context);\n\treturn context.navigate;\n};\n\nexport const AppProvider: FC<AppProviderProps> = ({\n\tchildren,\n\torganisationId,\n\tgetPermissions,\n\t...rest\n}) => {\n\tconst [permissions, setPermissions] = useState<Permission[]>([]);\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst fetchedPermissions = await getPermissions();\n\t\t\t\tsetPermissions(fetchedPermissions);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Fetching permissions with the provided getPermissions function failed in AppProvider with the following error:\",\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfetchData();\n\t}, [getPermissions]);\n\n\treturn (\n\t\t<AppContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...rest,\n\t\t\t\tuser: { ...rest.user, permissions: permissions },\n\t\t\t\tactiveOrgId: Number(organisationId),\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</AppContext.Provider>\n\t);\n};\n","import type { MicroFrontendPayload } from \"./Payload\";\n\ntype MountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n\tpayload: MicroFrontendPayload;\n};\n\ntype UnmountEventDetail = {\n\tid: string;\n\tmountPoint: HTMLDivElement;\n};\n\nexport const MOUNT_EVENT_TYPE = \"@entur-partner:mount\";\nexport const UNMOUNT_EVENT_TYPE = \"@entur-partner:unmount\";\n\nexport interface MountEvent extends CustomEvent<MountEventDetail> {}\nexport interface UnmountEvent extends CustomEvent<UnmountEventDetail> {}\n\nexport function createMountEvent(detail: MountEventDetail) {\n\treturn new CustomEvent<MountEventDetail>(MOUNT_EVENT_TYPE, { detail });\n}\n\nexport function createUnmountEvent(detail: UnmountEventDetail) {\n\treturn new CustomEvent<UnmountEventDetail>(UNMOUNT_EVENT_TYPE, { detail });\n}\n\nexport const ROUTE_CHANGE_EVENT_TYPE = \"@entur-partner:after-route-change\";\n\nexport type RouteAction = \"PUSH\" | \"POP\" | \"REPLACE\";\n\ntype RouteChangeEventDetail = {\n\tlocation: Location;\n\taction: RouteAction;\n};\n\nexport class RouteChangeEvent extends CustomEvent<RouteChangeEventDetail> {}\n","/*global EventListener*/\n\nimport {\n\tMOUNT_EVENT_TYPE,\n\ttype MountEvent,\n\tUNMOUNT_EVENT_TYPE,\n\ttype UnmountEvent,\n} from \"./events\";\nimport type { MicroFrontendPayload } from \"./Payload\";\n\ninterface Config {\n\tmicroFrontendId: string;\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: MicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n\tunmount: (mountPoint: HTMLDivElement) => void;\n}\n\nexport function registerMicroFrontend(config: Config): void {\n\tconst { unmount, microFrontendId, mount } = config;\n\n\twindow.addEventListener(MOUNT_EVENT_TYPE, ((event: MountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tmount(\n\t\t\tevent.detail.mountPoint,\n\t\t\tevent.detail.payload,\n\t\t\tevent.detail.mountPoint,\n\t\t);\n\t}) as EventListener);\n\n\twindow.addEventListener(UNMOUNT_EVENT_TYPE, ((event: UnmountEvent) => {\n\t\tif (!event.detail.id.startsWith(microFrontendId)) {\n\t\t\treturn;\n\t\t}\n\t\tunmount(event.detail.mountPoint);\n\t}) as EventListener);\n}\n"],"names":["AppContext","createContext","undefined","useUser","context","useContext","assertIsDefined","user","useActiveOrgId","activeOrgId","useNavigate","navigate","AppProvider","_ref","children","organisationId","getPermissions","rest","_objectWithoutPropertiesLoose","_excluded","_useState","useState","permissions","setPermissions","useEffect","fetchData","_fetchData","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","fetchedPermissions","_t","w","_context","p","n","v","console","error","a","_jsx","Provider","value","_extends","Number","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","createMountEvent","detail","CustomEvent","createUnmountEvent","ROUTE_CHANGE_EVENT_TYPE","RouteChangeEvent","_CustomEvent","_inheritsLoose","_wrapNativeSuper","registerMicroFrontend","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload"],"mappings":"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"}
|