@entur-partner/micro-frontend 3.0.0-alpha.4 → 3.0.0-alpha.6

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.
@@ -19,5 +19,6 @@ export interface AppProviderProps {
19
19
  organisationId: string;
20
20
  navigate: (path: string) => void;
21
21
  }
22
+ export declare const useNavigate: () => (path: string) => void;
22
23
  export declare const AppProvider: FC<AppProviderProps>;
23
24
  export {};
package/dist/Payload.d.ts CHANGED
@@ -14,6 +14,8 @@ export interface MenuItem {
14
14
  navigate: (path: string) => void;
15
15
  /** Is menu item disabled? */
16
16
  disabled?: boolean;
17
+ /** Is public menu item? */
18
+ isPublic?: boolean;
17
19
  /** Permissions required to view menu item */
18
20
  requiredPermissions?: {
19
21
  oneOf?: BusinessCapability[];
@@ -23,13 +25,13 @@ export interface MenuItem {
23
25
  export type NavigationFunction = (to: string) => void;
24
26
  export interface MicroFrontendPayload {
25
27
  /** Logged in auth0 user */
26
- user: User;
28
+ user?: User;
27
29
  /** Function for getting an accessToken */
28
30
  getToken(options?: GetTokenSilentlyOptions): Promise<string>;
29
31
  /** User selected language. Either 'nb', 'en', 'en-GB' or 'nb-NO' */
30
32
  language: string;
31
33
  /** Active organisation identifier*/
32
- organisationId: string;
34
+ organisationId?: string;
33
35
  /** Function for adding menu items to the global menu */
34
36
  addMenuItems: (items: MenuItem[]) => void;
35
37
  /** Log the user out */
@@ -41,3 +43,11 @@ export interface MicroFrontendPayload {
41
43
  * will try to use the navigate function from the first menu item instead. */
42
44
  setMFNavigate: (navigate: NavigationFunction) => void;
43
45
  }
46
+ export type PublicMicroFrontendPayload = Pick<MicroFrontendPayload, "language" | "navigate" | "setMFNavigate" | "addMenuItems" | "user"> & {
47
+ /** Function for getting an accessToken */
48
+ getToken?(options?: GetTokenSilentlyOptions): Promise<string>;
49
+ /** Active organisation identifier*/
50
+ organisationId?: string;
51
+ /** Log the user out */
52
+ logout?: () => void;
53
+ };
package/dist/events.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import type { MicroFrontendPayload } from "./Payload";
1
+ import type { MicroFrontendPayload, PublicMicroFrontendPayload } from "./Payload";
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.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- export { AppProvider, AppProviderProps, useActiveOrgId, useUser, } from "./AppProvider";
1
+ export { AppProvider, AppProviderProps, useActiveOrgId, useNavigate, useUser, } from "./AppProvider";
2
2
  export { createMountEvent, createUnmountEvent, MOUNT_EVENT_TYPE, MountEvent, ROUTE_CHANGE_EVENT_TYPE, RouteAction, RouteChangeEvent, UNMOUNT_EVENT_TYPE, UnmountEvent, } from "./events";
3
- export { useNavigateParams } from "./hooks/useNavigateParams";
4
- export { MenuItem, MicroFrontendPayload, NavigationFunction } from "./Payload";
5
- export { registerMicroFrontend } from "./registerMicroFrontend";
3
+ export { MenuItem, MicroFrontendPayload, NavigationFunction, PublicMicroFrontendPayload, } from "./Payload";
4
+ export { registerMicroFrontend, registerPublicMicroFrontend, } from "./registerMicroFrontend";
6
5
  export { User } from "./User";
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var util = require('@entur-partner/util');
6
6
  var React = require('react');
7
- var reactRouterDom = require('react-router-dom');
8
7
 
9
8
  function asyncGeneratorStep(n, t, e, r, o, a, c) {
10
9
  try {
@@ -227,6 +226,11 @@ var useActiveOrgId = function useActiveOrgId() {
227
226
  util.assertIsDefined(context);
228
227
  return context.activeOrgId;
229
228
  };
229
+ var useNavigate = function useNavigate() {
230
+ var context = React.useContext(AppContext);
231
+ util.assertIsDefined(context);
232
+ return context.navigate;
233
+ };
230
234
  var AppProvider = function AppProvider(_ref) {
231
235
  var children = _ref.children,
232
236
  organisationId = _ref.organisationId,
@@ -297,35 +301,6 @@ var RouteChangeEvent = /*#__PURE__*/function (_CustomEvent) {
297
301
  return RouteChangeEvent;
298
302
  }(/*#__PURE__*/_wrapNativeSuper(CustomEvent));
299
303
 
300
- var PARAMS_TO_KEEP = ["organisationId"];
301
-
302
- /**
303
- * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State
304
- *
305
- * @param to can be a string path, a To object, or a number (delta)
306
- * @param options contains options for modifying the navigation
307
- * @returns a function that navigates to the specified path with organisationId in the search params
308
- */
309
- var useNavigateParams = function useNavigateParams() {
310
- var navigate = reactRouterDom.useNavigate();
311
- var _useSearchParams = reactRouterDom.useSearchParams(),
312
- searchParams = _useSearchParams[0];
313
- var modifiedSearchParams = PARAMS_TO_KEEP.reduce(function (params, key) {
314
- var value = searchParams.get(key);
315
- if (value) {
316
- params.append(key, value);
317
- }
318
- return params;
319
- }, new URLSearchParams());
320
- return function (to, options) {
321
- return navigate(to, _extends({
322
- state: _extends({}, options == null ? void 0 : options.state, {
323
- searchParams: modifiedSearchParams.toString()
324
- })
325
- }, options));
326
- };
327
- };
328
-
329
304
  /*global EventListener*/
330
305
  function registerMicroFrontend(config) {
331
306
  var unmount = config.unmount,
@@ -344,6 +319,23 @@ function registerMicroFrontend(config) {
344
319
  unmount(event.detail.mountPoint);
345
320
  });
346
321
  }
322
+ function registerPublicMicroFrontend(config) {
323
+ var unmount = config.unmount,
324
+ microFrontendId = config.microFrontendId,
325
+ mount = config.mount;
326
+ window.addEventListener(MOUNT_EVENT_TYPE, function (event) {
327
+ if (!event.detail.id.startsWith(microFrontendId)) {
328
+ return;
329
+ }
330
+ mount(event.detail.mountPoint, event.detail.payload, event.detail.mountPoint);
331
+ });
332
+ window.addEventListener(UNMOUNT_EVENT_TYPE, function (event) {
333
+ if (!event.detail.id.startsWith(microFrontendId)) {
334
+ return;
335
+ }
336
+ unmount(event.detail.mountPoint);
337
+ });
338
+ }
347
339
 
348
340
  exports.AppProvider = AppProvider;
349
341
  exports.MOUNT_EVENT_TYPE = MOUNT_EVENT_TYPE;
@@ -353,7 +345,8 @@ exports.UNMOUNT_EVENT_TYPE = UNMOUNT_EVENT_TYPE;
353
345
  exports.createMountEvent = createMountEvent;
354
346
  exports.createUnmountEvent = createUnmountEvent;
355
347
  exports.registerMicroFrontend = registerMicroFrontend;
348
+ exports.registerPublicMicroFrontend = registerPublicMicroFrontend;
356
349
  exports.useActiveOrgId = useActiveOrgId;
357
- exports.useNavigateParams = useNavigateParams;
350
+ exports.useNavigate = useNavigate;
358
351
  exports.useUser = useUser;
359
352
  //# sourceMappingURL=micro-frontend.cjs.development.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"micro-frontend.cjs.development.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/constant.ts","../src/hooks/useNavigateParams.ts","../src/registerMicroFrontend.tsx"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 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","export const PARAMS_TO_KEEP = [\"organisationId\"] as const;\n","import {\n\tNavigateFunction,\n\tNavigateOptions,\n\tTo,\n\tuseNavigate,\n\tuseSearchParams,\n} from \"react-router-dom\";\n\nimport { PARAMS_TO_KEEP } from \"../constant\";\n\n/**\n * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State\n *\n * @param to can be a string path, a To object, or a number (delta)\n * @param options contains options for modifying the navigation\n * @returns a function that navigates to the specified path with organisationId in the search params\n */\nexport const useNavigateParams: NavigateFunction = () => {\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\n\tconst modifiedSearchParams = PARAMS_TO_KEEP.reduce((params, key) => {\n\t\tconst value = searchParams.get(key);\n\t\tif (value) {\n\t\t\tparams.append(key, value);\n\t\t}\n\t\treturn params;\n\t}, new URLSearchParams());\n\n\treturn (to: To, options?: NavigateOptions) =>\n\t\tnavigate(to, {\n\t\t\tstate: {\n\t\t\t\t...options?.state,\n\t\t\t\tsearchParams: modifiedSearchParams.toString(),\n\t\t\t},\n\t\t\t...options,\n\t\t});\n};\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","React","createContext","undefined","useUser","context","useContext","assertIsDefined","user","useActiveOrgId","activeOrgId","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","createElement","Provider","value","_extends","Number","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","createMountEvent","detail","CustomEvent","createUnmountEvent","ROUTE_CHANGE_EVENT_TYPE","RouteChangeEvent","_CustomEvent","_inheritsLoose","_wrapNativeSuper","PARAMS_TO_KEEP","useNavigateParams","navigate","useNavigate","_useSearchParams","useSearchParams","searchParams","modifiedSearchParams","reduce","params","key","get","append","URLSearchParams","to","options","state","toString","registerMicroFrontend","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload"],"mappings":"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"}
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 React, {\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} from \"./Payload\";\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} 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 as MicroFrontendPayload,\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\ntype ConfigPublic = Config & {\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: PublicMicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n};\n\nexport function registerPublicMicroFrontend(config: ConfigPublic): 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 as PublicMicroFrontendPayload,\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","React","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","createElement","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","registerPublicMicroFrontend"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@entur-partner/util"),e=require("react"),r=require("react-router-dom");function n(t,e,r,n,o,i,u){try{var a=t[i](u),c=a.value}catch(t){return void r(t)}a.done?e(c):Promise.resolve(c).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 a(){var t,e,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var a=Object.create((n&&n.prototype instanceof s?n:s).prototype);return c(a,"_invoke",function(r,n,o){var i,a,c,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,a=0,c=t,l.n=r,u}};function v(r,n){for(a=r,c=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)&&(c=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=t):i[0]<=v&&((o=r<2&&v<i[1])?(a=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,a=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),a=f,c=d;(e=a<2?t:c)||!p;){i||(a?a<3?(a>1&&(l.n=-1),v(a,c)):l.n=c:l.v=c);try{if(s=2,i){if(a||(o="next"),e=i[o]){if(!(e=e.call(i,c)))throw TypeError("iterator result is not an object");if(!e.done)return e;c=e.value,a<2&&(a=0)}else 1===a&&(e=i.return)&&e.call(i),a<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),a=1);i=t}else if((e=(p=l.n<0)?c:r.call(n,l))!==u)break}catch(e){i=t,a=1,c=e}finally{s=1}}return{value:e,done:p}}}(r,o,i),!0),a}var u={};function s(){}function f(){}function p(){}e=Object.getPrototypeOf;var l=[][n]?e(e([][n]())):(c(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,c(t,o,"GeneratorFunction")),t.prototype=Object.create(v),t}return f.prototype=p,c(v,"constructor",p),c(p,"constructor",f),f.displayName="GeneratorFunction",c(p,o,"GeneratorFunction"),c(v),c(v,o,"Generator"),c(v,n,function(){return this}),c(v,"toString",function(){return"[object Generator]"}),(a=function(){return{w:i,m:d}})()}function c(t,e,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}c=function(t,e,r,n){function i(e,r){c(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))},c(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=e.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)),h=["organisationId"];exports.AppProvider=function(t){var r=t.children,i=t.organisationId,u=t.getPermissions,c=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}(t,p),s=e.useState([]),f=s[0],v=s[1];return e.useEffect(function(){function t(){var e;return e=a().m(function t(){return a().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,u();case 1:v(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 a(t){n(u,o,i,a,c,"next",t)}function c(t){n(u,o,i,a,c,"throw",t)}a(void 0)})},t.apply(this,arguments)}!function(){t.apply(this,arguments)}()},[u]),e.createElement(l.Provider,{value:o({},c,{user:o({},c.user,{permissions:f}),activeOrgId:Number(i)})},r)},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 r=e.useContext(l);return t.assertIsDefined(r),r.activeOrgId},exports.useNavigateParams=function(){var t=r.useNavigate(),e=r.useSearchParams()[0],n=h.reduce(function(t,r){var n=e.get(r);return n&&t.append(r,n),t},new URLSearchParams);return function(e,r){return t(e,o({state:o({},null==r?void 0:r.state,{searchParams:n.toString()})},r))}},exports.useUser=function(){var r=e.useContext(l);return t.assertIsDefined(r),r.user};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@entur-partner/util"),e=require("react");function n(t,e,n,r,o,i,u){try{var a=t[i](u),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,o)}function r(){return r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r.apply(null,arguments)}function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}function i(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(i=function(){return!!t})()}function u(){var t,e,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var u=Object.create((r&&r.prototype instanceof s?r:s).prototype);return a(u,"_invoke",function(n,r,o){var i,u,a,s=0,f=o||[],p=!1,l={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,n){return i=e,u=0,a=t,l.n=n,c}};function d(n,r){for(u=n,a=r,e=0;!p&&s&&!o&&e<f.length;e++){var o,i=f[e],d=l.p,v=i[2];n>3?(o=v===r)&&(a=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=d&&((o=n<2&&d<i[1])?(u=0,l.v=r,l.n=i[1]):d<v&&(o=n<3||i[0]>r||r>v)&&(i[4]=n,i[5]=r,l.n=v,u=0))}if(o||n>1)return c;throw p=!0,r}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&d(f,v),u=f,a=v;(e=u<2?t:a)||!p;){i||(u?u<3?(u>1&&(l.n=-1),d(u,a)):l.n=a:l.v=a);try{if(s=2,i){if(u||(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,u<2&&(u=0)}else 1===u&&(e=i.return)&&e.call(i),u<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((e=(p=l.n<0)?a:n.call(r,l))!==c)break}catch(e){i=t,u=1,a=e}finally{s=1}}return{value:e,done:p}}}(n,o,i),!0),u}var c={};function s(){}function f(){}function p(){}e=Object.getPrototypeOf;var l=[][r]?e(e([][r]())):(a(e={},r,function(){return this}),e),d=p.prototype=s.prototype=Object.create(l);function v(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,a(t,o,"GeneratorFunction")),t.prototype=Object.create(d),t}return f.prototype=p,a(d,"constructor",p),a(p,"constructor",f),f.displayName="GeneratorFunction",a(p,o,"GeneratorFunction"),a(d),a(d,o,"Generator"),a(d,r,function(){return this}),a(d,"toString",function(){return"[object Generator]"}),(u=function(){return{w:i,m:v}})()}function a(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}a=function(t,e,n,r){function i(e,n){a(t,e,function(t){return this._invoke(e,n,t)})}e?o?o(t,e,{value:n,enumerable:!r,configurable:!r,writable:!r}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},a(t,e,n,r)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function s(t){var e="function"==typeof Map?new Map:void 0;return s=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,n)}function n(){return function(t,e,n){if(i())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&c(o,n.prototype),o}(t,arguments,o(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,t)},s(t)}var f=["children","organisationId","getPermissions"],p=e.createContext(void 0),l="@entur-partner:mount",d="@entur-partner:unmount",v=function(t){function e(){return t.apply(this,arguments)||this}var n,r;return r=t,(n=e).prototype=Object.create(r.prototype),n.prototype.constructor=n,c(n,r),e}(s(CustomEvent));exports.AppProvider=function(t){var o=t.children,i=t.organisationId,a=t.getPermissions,c=function(t,e){if(null==t)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(-1!==e.indexOf(r))continue;n[r]=t[r]}return n}(t,f),s=e.useState([]),l=s[0],d=s[1];return e.useEffect(function(){function t(){var e;return e=u().m(function t(){return u().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 a(t){n(u,o,i,a,c,"next",t)}function c(t){n(u,o,i,a,c,"throw",t)}a(void 0)})},t.apply(this,arguments)}!function(){t.apply(this,arguments)}()},[a]),e.createElement(p.Provider,{value:r({},c,{user:r({},c.user,{permissions:l}),activeOrgId:Number(i)})},o)},exports.MOUNT_EVENT_TYPE=l,exports.ROUTE_CHANGE_EVENT_TYPE="@entur-partner:after-route-change",exports.RouteChangeEvent=v,exports.UNMOUNT_EVENT_TYPE=d,exports.createMountEvent=function(t){return new CustomEvent(l,{detail:t})},exports.createUnmountEvent=function(t){return new CustomEvent(d,{detail:t})},exports.registerMicroFrontend=function(t){var e=t.unmount,n=t.microFrontendId,r=t.mount;window.addEventListener(l,function(t){t.detail.id.startsWith(n)&&r(t.detail.mountPoint,t.detail.payload,t.detail.mountPoint)}),window.addEventListener(d,function(t){t.detail.id.startsWith(n)&&e(t.detail.mountPoint)})},exports.registerPublicMicroFrontend=function(t){var e=t.unmount,n=t.microFrontendId,r=t.mount;window.addEventListener(l,function(t){t.detail.id.startsWith(n)&&r(t.detail.mountPoint,t.detail.payload,t.detail.mountPoint)}),window.addEventListener(d,function(t){t.detail.id.startsWith(n)&&e(t.detail.mountPoint)})},exports.useActiveOrgId=function(){var n=e.useContext(p);return t.assertIsDefined(n),n.activeOrgId},exports.useNavigate=function(){var n=e.useContext(p);return t.assertIsDefined(n),n.navigate},exports.useUser=function(){var n=e.useContext(p);return t.assertIsDefined(n),n.user};
2
2
  //# sourceMappingURL=micro-frontend.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"micro-frontend.cjs.production.min.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/constant.ts","../src/registerMicroFrontend.tsx","../src/hooks/useNavigateParams.ts"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 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","export const PARAMS_TO_KEEP = [\"organisationId\"] as const;\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","import {\n\tNavigateFunction,\n\tNavigateOptions,\n\tTo,\n\tuseNavigate,\n\tuseSearchParams,\n} from \"react-router-dom\";\n\nimport { PARAMS_TO_KEEP } from \"../constant\";\n\n/**\n * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State\n *\n * @param to can be a string path, a To object, or a number (delta)\n * @param options contains options for modifying the navigation\n * @returns a function that navigates to the specified path with organisationId in the search params\n */\nexport const useNavigateParams: NavigateFunction = () => {\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\n\tconst modifiedSearchParams = PARAMS_TO_KEEP.reduce((params, key) => {\n\t\tconst value = searchParams.get(key);\n\t\tif (value) {\n\t\t\tparams.append(key, value);\n\t\t}\n\t\treturn params;\n\t}, new URLSearchParams());\n\n\treturn (to: To, options?: NavigateOptions) =>\n\t\tnavigate(to, {\n\t\t\tstate: {\n\t\t\t\t...options?.state,\n\t\t\t\tsearchParams: modifiedSearchParams.toString(),\n\t\t\t},\n\t\t\t...options,\n\t\t});\n};\n"],"names":["AppContext","React","createContext","undefined","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","RouteChangeEvent","_CustomEvent","apply","this","arguments","_wrapNativeSuper","CustomEvent","PARAMS_TO_KEEP","_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","createElement","Provider","value","_extends","user","activeOrgId","Number","detail","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload","context","useContext","assertIsDefined","navigate","useNavigate","searchParams","useSearchParams","modifiedSearchParams","reduce","params","key","get","append","URLSearchParams","to","options","state","toString"],"mappings":"wnHAmBaA,EAAaC,EAAMC,mBAC/BC,GCPYC,EAAmB,uBACnBC,EAAqB,yBAsBrBC,WAAiBC,GAAA,SAAAD,IAAA,OAAAC,EAAAC,MAAAC,KAAAC,YAAAD,IAAA,SAAA,SAAAF,KAAAD,yEAAAA,CAAA,EAAAK,EAAQC,cCpCzBC,EAAiB,CAAC,sCF4CkB,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,EAAAlB,MAAAC,KAAAC,UAAA,EAXa,WACUgB,EAAAlB,MAAAC,KAAAC,UAAA,CAYxB4B,EACD,EAAG,CAACrB,IAGHhB,EAACsC,cAAAvC,EAAWwC,SAAQ,CACnBC,MAAKC,EAAA,CAAA,EACDxB,EAAI,CACPyB,KAAID,EAAOxB,GAAAA,EAAKyB,KAAI,CAAEpB,YAAaA,IACnCqB,YAAaC,OAAO7B,MAGpBD,EAGJ,6DCpDuC,qHARjC,SAA2B+B,GAChC,OAAO,IAAIlC,YAA8BR,EAAkB,CAAE0C,OAAAA,GAC9D,6BAEM,SAA6BA,GAClC,OAAO,IAAIlC,YAAgCP,EAAoB,CAAEyC,OAAAA,GAClE,gCELM,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,yBHX8B,WAC7B,IAAME,EAAUC,aAAW3D,GAE3B,OADA4D,EAAeA,gBAACF,GACTA,EAAQd,WAChB,4BIhBmD,WAClD,IAAMiB,EAAWC,EAAAA,cACVC,EAAgBC,EAAAA,kBAAJ,GAEbC,EAAuBpD,EAAeqD,OAAO,SAACC,EAAQC,GAC3D,IAAM3B,EAAQsB,EAAaM,IAAID,GAI/B,OAHI3B,GACH0B,EAAOG,OAAOF,EAAK3B,GAEb0B,CACR,EAAG,IAAII,iBAEP,OAAO,SAACC,EAAQC,GAAyB,OACxCZ,EAASW,EAAE9B,EAAA,CACVgC,MAAKhC,EAAA,CAAA,EACD+B,MAAAA,OAAAA,EAAAA,EAASC,MAAK,CACjBX,aAAcE,EAAqBU,cAEjCF,GACF,CACJ,kBJduB,WACtB,IAAMf,EAAUC,aAAW3D,GAE3B,OADA4D,EAAeA,gBAACF,GACTA,EAAQf,IAChB"}
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 React, {\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} from \"./Payload\";\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} 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 as MicroFrontendPayload,\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\ntype ConfigPublic = Config & {\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: PublicMicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n};\n\nexport function registerPublicMicroFrontend(config: ConfigPublic): 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 as PublicMicroFrontendPayload,\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","React","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","createElement","Provider","value","_extends","user","activeOrgId","Number","detail","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload","context","useContext","assertIsDefined","navigate"],"mappings":"0lHAoBaA,EAAaC,EAAMC,mBAC/BC,GCLYC,EAAmB,uBACnBC,EAAqB,yBAsBrBC,WAAiBC,GAAA,SAAAD,IAAA,OAAAC,EAAAC,MAAAC,KAAAC,YAAAD,IAAA,SAAA,SAAAF,KAAAD,yEAAAA,CAAA,EAAAK,EAAQC,kCDYW,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,IAGHf,EAACqC,cAAAtC,EAAWuC,SAAQ,CACnBC,MAAKC,EAAA,CAAA,EACDxB,EAAI,CACPyB,KAAID,EAAOxB,GAAAA,EAAKyB,KAAI,CAAEpB,YAAaA,IACnCqB,YAAaC,OAAO7B,MAGpBD,EAGJ,6DCxDuC,qHARjC,SAA2B+B,GAChC,OAAO,IAAIjC,YAA8BR,EAAkB,CAAEyC,OAAAA,GAC9D,6BAEM,SAA6BA,GAClC,OAAO,IAAIjC,YAAgCP,EAAoB,CAAEwC,OAAAA,GAClE,gCCLM,SAAgCC,GACrC,IAAQC,EAAoCD,EAApCC,QAASC,EAA2BF,EAA3BE,gBAAiBC,EAAUH,EAAVG,MAElCC,OAAOC,iBAAiB/C,EAAmB,SAACgD,GACtCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCC,EACCG,EAAMP,OAAOU,WACbH,EAAMP,OAAOW,QACbJ,EAAMP,OAAOU,WAEf,GAEAL,OAAOC,iBAAiB9C,EAAqB,SAAC+C,GACxCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCD,EAAQK,EAAMP,OAAOU,WACtB,EACD,sCAUM,SAAsCT,GAC3C,IAAQC,EAAoCD,EAApCC,QAASC,EAA2BF,EAA3BE,gBAAiBC,EAAUH,EAAVG,MAElCC,OAAOC,iBAAiB/C,EAAmB,SAACgD,GACtCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCC,EACCG,EAAMP,OAAOU,WACbH,EAAMP,OAAOW,QACbJ,EAAMP,OAAOU,WAEf,GAEAL,OAAOC,iBAAiB9C,EAAqB,SAAC+C,GACxCA,EAAMP,OAAOQ,GAAGC,WAAWN,IAGhCD,EAAQK,EAAMP,OAAOU,WACtB,EACD,yBF3C8B,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,6 +1,5 @@
1
1
  import { assertIsDefined } from '@entur-partner/util';
2
2
  import React, { useContext, useState, useEffect } from 'react';
3
- import { useNavigate, useSearchParams } from 'react-router-dom';
4
3
 
5
4
  function asyncGeneratorStep(n, t, e, r, o, a, c) {
6
5
  try {
@@ -223,6 +222,11 @@ var useActiveOrgId = function useActiveOrgId() {
223
222
  assertIsDefined(context);
224
223
  return context.activeOrgId;
225
224
  };
225
+ var useNavigate = function useNavigate() {
226
+ var context = useContext(AppContext);
227
+ assertIsDefined(context);
228
+ return context.navigate;
229
+ };
226
230
  var AppProvider = function AppProvider(_ref) {
227
231
  var children = _ref.children,
228
232
  organisationId = _ref.organisationId,
@@ -293,35 +297,6 @@ var RouteChangeEvent = /*#__PURE__*/function (_CustomEvent) {
293
297
  return RouteChangeEvent;
294
298
  }(/*#__PURE__*/_wrapNativeSuper(CustomEvent));
295
299
 
296
- var PARAMS_TO_KEEP = ["organisationId"];
297
-
298
- /**
299
- * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State
300
- *
301
- * @param to can be a string path, a To object, or a number (delta)
302
- * @param options contains options for modifying the navigation
303
- * @returns a function that navigates to the specified path with organisationId in the search params
304
- */
305
- var useNavigateParams = function useNavigateParams() {
306
- var navigate = useNavigate();
307
- var _useSearchParams = useSearchParams(),
308
- searchParams = _useSearchParams[0];
309
- var modifiedSearchParams = PARAMS_TO_KEEP.reduce(function (params, key) {
310
- var value = searchParams.get(key);
311
- if (value) {
312
- params.append(key, value);
313
- }
314
- return params;
315
- }, new URLSearchParams());
316
- return function (to, options) {
317
- return navigate(to, _extends({
318
- state: _extends({}, options == null ? void 0 : options.state, {
319
- searchParams: modifiedSearchParams.toString()
320
- })
321
- }, options));
322
- };
323
- };
324
-
325
300
  /*global EventListener*/
326
301
  function registerMicroFrontend(config) {
327
302
  var unmount = config.unmount,
@@ -340,6 +315,23 @@ function registerMicroFrontend(config) {
340
315
  unmount(event.detail.mountPoint);
341
316
  });
342
317
  }
318
+ function registerPublicMicroFrontend(config) {
319
+ var unmount = config.unmount,
320
+ microFrontendId = config.microFrontendId,
321
+ mount = config.mount;
322
+ window.addEventListener(MOUNT_EVENT_TYPE, function (event) {
323
+ if (!event.detail.id.startsWith(microFrontendId)) {
324
+ return;
325
+ }
326
+ mount(event.detail.mountPoint, event.detail.payload, event.detail.mountPoint);
327
+ });
328
+ window.addEventListener(UNMOUNT_EVENT_TYPE, function (event) {
329
+ if (!event.detail.id.startsWith(microFrontendId)) {
330
+ return;
331
+ }
332
+ unmount(event.detail.mountPoint);
333
+ });
334
+ }
343
335
 
344
- export { AppProvider, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, RouteChangeEvent, UNMOUNT_EVENT_TYPE, createMountEvent, createUnmountEvent, registerMicroFrontend, useActiveOrgId, useNavigateParams, useUser };
336
+ export { AppProvider, MOUNT_EVENT_TYPE, ROUTE_CHANGE_EVENT_TYPE, RouteChangeEvent, UNMOUNT_EVENT_TYPE, createMountEvent, createUnmountEvent, registerMicroFrontend, registerPublicMicroFrontend, useActiveOrgId, useNavigate, useUser };
345
337
  //# sourceMappingURL=micro-frontend.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"micro-frontend.esm.js","sources":["../src/AppProvider.tsx","../src/events.ts","../src/constant.ts","../src/hooks/useNavigateParams.ts","../src/registerMicroFrontend.tsx"],"sourcesContent":["import type { Permission } from \"@entur-partner/permission-client-node\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport React, {\n\ttype FC,\n\ttype ReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from \"react\";\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 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","export const PARAMS_TO_KEEP = [\"organisationId\"] as const;\n","import {\n\tNavigateFunction,\n\tNavigateOptions,\n\tTo,\n\tuseNavigate,\n\tuseSearchParams,\n} from \"react-router-dom\";\n\nimport { PARAMS_TO_KEEP } from \"../constant\";\n\n/**\n * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State\n *\n * @param to can be a string path, a To object, or a number (delta)\n * @param options contains options for modifying the navigation\n * @returns a function that navigates to the specified path with organisationId in the search params\n */\nexport const useNavigateParams: NavigateFunction = () => {\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\n\tconst modifiedSearchParams = PARAMS_TO_KEEP.reduce((params, key) => {\n\t\tconst value = searchParams.get(key);\n\t\tif (value) {\n\t\t\tparams.append(key, value);\n\t\t}\n\t\treturn params;\n\t}, new URLSearchParams());\n\n\treturn (to: To, options?: NavigateOptions) =>\n\t\tnavigate(to, {\n\t\t\tstate: {\n\t\t\t\t...options?.state,\n\t\t\t\tsearchParams: modifiedSearchParams.toString(),\n\t\t\t},\n\t\t\t...options,\n\t\t});\n};\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","React","createContext","undefined","useUser","context","useContext","assertIsDefined","user","useActiveOrgId","activeOrgId","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","createElement","Provider","value","_extends","Number","MOUNT_EVENT_TYPE","UNMOUNT_EVENT_TYPE","createMountEvent","detail","CustomEvent","createUnmountEvent","ROUTE_CHANGE_EVENT_TYPE","RouteChangeEvent","_CustomEvent","_inheritsLoose","_wrapNativeSuper","PARAMS_TO_KEEP","useNavigateParams","navigate","useNavigate","_useSearchParams","useSearchParams","searchParams","modifiedSearchParams","reduce","params","key","get","append","URLSearchParams","to","options","state","toString","registerMicroFrontend","config","unmount","microFrontendId","mount","window","addEventListener","event","id","startsWith","mountPoint","payload"],"mappings":"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"}
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 React, {\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 = React.createContext<AppContextType | undefined>(\n\tundefined,\n);\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} from \"./Payload\";\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 {\n\tMicroFrontendPayload,\n\tPublicMicroFrontendPayload,\n} 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 as MicroFrontendPayload,\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\ntype ConfigPublic = Config & {\n\tmount: (\n\t\tmountPoint: HTMLDivElement,\n\t\tpayload: PublicMicroFrontendPayload,\n\t\tdeprecatedMountPoint: HTMLDivElement,\n\t) => void;\n};\n\nexport function registerPublicMicroFrontend(config: ConfigPublic): 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 as PublicMicroFrontendPayload,\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","React","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","createElement","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","registerPublicMicroFrontend"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- import type { MicroFrontendPayload } from "./Payload";
1
+ import type { MicroFrontendPayload, PublicMicroFrontendPayload } from "./Payload";
2
2
  interface Config {
3
3
  microFrontendId: string;
4
4
  mount: (mountPoint: HTMLDivElement, payload: MicroFrontendPayload, deprecatedMountPoint: HTMLDivElement) => void;
5
5
  unmount: (mountPoint: HTMLDivElement) => void;
6
6
  }
7
7
  export declare function registerMicroFrontend(config: Config): void;
8
+ type ConfigPublic = Config & {
9
+ mount: (mountPoint: HTMLDivElement, payload: PublicMicroFrontendPayload, deprecatedMountPoint: HTMLDivElement) => void;
10
+ };
11
+ export declare function registerPublicMicroFrontend(config: ConfigPublic): void;
8
12
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/micro-frontend",
3
- "version": "3.0.0-alpha.4",
3
+ "version": "3.0.0-alpha.6",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/micro-frontend.esm.js",
@@ -29,8 +29,7 @@
29
29
  "devDependencies": {
30
30
  "@auth0/auth0-spa-js": "1.22.6",
31
31
  "@entur-partner/permission-client-node": "3.4.6",
32
- "posthog-js": "1.245.0",
33
- "react-router-dom": "6.30.1"
32
+ "posthog-js": "^1.245.0"
34
33
  },
35
34
  "dependencies": {
36
35
  "@entur-partner/util": "^1.3.3"
@@ -45,5 +44,5 @@
45
44
  "reportFile": "jest-sonar-report.xml",
46
45
  "indent": 4
47
46
  },
48
- "gitHead": "5267b88cc33703f87416b876c111d83d18800df1"
47
+ "gitHead": "155f3d881a185e71bb143db88082de77e9972bfc"
49
48
  }
@@ -1 +0,0 @@
1
- export declare const PARAMS_TO_KEEP: readonly ["organisationId"];
@@ -1,9 +0,0 @@
1
- import { NavigateFunction } from "react-router-dom";
2
- /**
3
- * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State
4
- *
5
- * @param to can be a string path, a To object, or a number (delta)
6
- * @param options contains options for modifying the navigation
7
- * @returns a function that navigates to the specified path with organisationId in the search params
8
- */
9
- export declare const useNavigateParams: NavigateFunction;