@entur-partner/app-shell-standalone 6.0.4 → 6.0.5-alpha.2

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("@entur-partner/common"),t=require("@entur-partner/app-shell"),a=require("@entur/menu"),r=require("@entur/tokens");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(e);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l.apply(this,arguments)}var u={switchLanguage:"Bytt til norsk",logout:"Sign out",appVersion:"Versjon",myProfile:"My profile"},g={switchLanguage:"Switch to English",logout:"Logg ut",appVersion:"Version",myProfile:"Min profil"},s={nb:g,en:u,"nb-NO":g,"en-GB":u},c=function(e){var i=e.getOrganisations,u=e.user,g=e.getToken,c=e.logout,d=e.environment,m=t.useMenu().getItemsForPath,f=t.useLanguage(),p=f.language,v=f.setLanguage,h=t.useOrganisation(),E=h.setOrganisationId,O=h.organisationId,y=m("app-shell");return o.default.createElement(n.Menu,null,o.default.createElement("div",{style:{marginLeft:r.space.extraLarge2,marginTop:r.space.large,marginBottom:r.space.extraLarge}},o.default.createElement(n.EnturPartnerLogo,{altText:"Entur partner logo",className:"menu-space menu-logo",environment:d})),o.default.createElement("div",{style:{margin:r.space.large}},o.default.createElement(n.Stack,{space:"small"},o.default.createElement(n.UserMenu,{onLanguageChange:v,onLogout:c,language:p,messages:s[p],userName:u.given_name?u.given_name+" "+u.family_name:u.name,environment:d,showVersionItem:!1,showMyProfileItem:!1,onNavigateToMyProfile:function(){}}),o.default.createElement(t.OrganisationSelector,{getOrganisations:i,getToken:g,selectedOrganisationId:O,onChange:function(e){return E(e)}}))),o.default.createElement(a.SideNavigation,null,y.map((function(e){var n=e.to,r=e.title,i=e.disabled,u=e.navigate,g={as:t.MicroFrontendLink,href:n,navigate:i?null:function(){return u(n)},disabled:!!i};return o.default.createElement(a.SideNavigationItem,l({key:n.toString()},g),r)}))))},d=function(e){var a=e.children,r=e.values,i=t.useMenu(),u=i.addItems,g=i.setMFNavigate,s=t.useOrganisationId(),c=t.useLanguage();return o.default.createElement(n.Content,null,a(l({},r,{language:c.language,navigate:function(){},addMenuItems:function(e){return u(e,"app-shell")},organisationId:s.toString(),setMFNavigate:function(e){return g("app-shell",e)}})))};exports.AppShellStandalone=function(e){var n=e.children,a=e.getOrganisations,r=e.environment;return o.default.createElement(t.AppShell,{audience:e.audience,domain:e.domain,clientId:e.clientId,decorateUser:e.decorateUser,redirectUri:e.redirectUri,environment:r},(function(e){var i,u;return o.default.createElement(t.LanguageProvider,{language:null!=(i=t.languageStorage.get())?i:"nb"},o.default.createElement(t.OrganisationProvider,{organisationId:null!=(u=t.organisationStorage.get())?u:e.user["https://entur.io/organisationID"].toString()},o.default.createElement(t.MenuProvider,null,o.default.createElement(c,l({},e,{getOrganisations:a,environment:r})),o.default.createElement(d,{children:n,values:e}))))}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@entur-partner/common"),r=require("@entur-partner/app-shell"),n=require("@entur/menu"),o=require("@entur/tokens"),a=require("posthog-js"),i=require("posthog-js/react");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(e),s=u(a);function l(){l=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function f(e,t,r,n){var a=Object.create((t&&t.prototype instanceof m?t:m).prototype),i=new M(n||[]);return o(a,"_invoke",{value:S(e,r,i)}),a}function g(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var h="suspendedStart",p="suspendedYield",d="executing",v="completed",y={};function m(){}function w(){}function E(){}var L={};s(L,i,(function(){return this}));var b=Object.getPrototypeOf,P=b&&b(b(N([])));P&&P!==r&&n.call(P,i)&&(L=P);var x=E.prototype=m.prototype=Object.create(L);function _(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function r(o,a,i,u){var c=g(e[o],e,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):t.resolve(l).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return a=a?a.then(o,o):o()}})}function S(t,r,n){var o=h;return function(a,i){if(o===d)throw Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:e,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=k(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=g(t,r,n);if("normal"===s.type){if(o=n.done?v:p,s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function k(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=g(o,t.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function N(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return w.prototype=E,o(x,"constructor",{value:E,configurable:!0}),o(E,"constructor",{value:w,configurable:!0}),w.displayName=s(E,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,E):(e.__proto__=E,s(e,c,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},_(O.prototype),s(O.prototype,u,(function(){return this})),t.AsyncIterator=O,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new O(f(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},_(x),s(x,c,"Generator"),s(x,i,(function(){return this})),s(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=N,M.prototype={constructor:M,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(j),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return u.type="throw",u.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:N(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function f(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},g.apply(this,arguments)}var h=function(){var e=i.usePostHog();if(!e)throw new Error("PostHog is not initialized. Ensure PostHog API key is provided in the AppShellStandalone.");return{capture:e.capture,alias:e.alias,identify:e.identify,register:e.register,register_once:e.register_once,unregister:e.unregister,group:e.group,setPersonProperties:e.setPersonProperties,reset:e.reset}},p=function(t){var n=t.postHogApiKey,o=t.children,a=r.useConsentManager();return e.useEffect((function(){n&&(a.PostHog.consentGiven?s.default.opt_in_capturing():s.default.opt_out_capturing())}),[a.PostHog.consentGiven,n]),n?(s.default.init(n,{api_host:"https://eu.posthog.com",opt_out_capturing_by_default:!0}),c.default.createElement(i.PostHogProvider,{client:s.default},o)):(console.warn("AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized."),c.default.createElement(c.default.Fragment,null,o))},d={switchLanguage:"Bytt til norsk",logout:"Sign out",appVersion:"Versjon",myProfile:"My profile",cookieSettings:"Cookie settings"},v={switchLanguage:"Switch to English",logout:"Logg ut",appVersion:"Version",myProfile:"Min profil",cookieSettings:"Cookieinstillinger"},y={nb:v,en:d,"nb-NO":v,"en-GB":d},m=function(e){var a,i,u=e.getOrganisations,s=e.user,p=e.getToken,d=e.logout,v=e.environment,m=r.useMenu().getItemsForPath,w=r.useLanguage(),E=w.language,L=w.setLanguage,b=r.useOrganisation(),P=b.setOrganisationId,x=b.organisationId,_=m("app-shell"),O=h();return c.default.createElement(t.Menu,null,c.default.createElement("div",{style:{marginLeft:o.space.extraLarge2,marginTop:o.space.large,marginBottom:o.space.extraLarge}},c.default.createElement(t.EnturPartnerLogo,{altText:"Entur partner logo",className:"menu-space menu-logo",environment:v})),c.default.createElement("div",{style:{margin:o.space.large}},c.default.createElement(t.Stack,{space:"small"},c.default.createElement(t.UserMenu,{onLanguageChange:L,onLogout:(a=l().mark((function e(){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return O.reset(),e.next=3,d();case 3:case"end":return e.stop()}}),e)})),i=function(){var e=this,t=arguments;return new Promise((function(r,n){var o=a.apply(e,t);function i(e){f(o,r,n,i,u,"next",e)}function u(e){f(o,r,n,i,u,"throw",e)}i(void 0)}))},function(){return i.apply(this,arguments)}),language:E,messages:y[E],userName:s.given_name?s.given_name+" "+s.family_name:s.name,environment:v,showVersionItem:!1,showMyProfileItem:!1,showCookieSettingsItem:!0,onCookieSettingsOpen:function(){window.UC_UI.showSecondLayer()},onNavigateToMyProfile:function(){}}),c.default.createElement(r.OrganisationSelector,{getOrganisations:u,getToken:p,selectedOrganisationId:x,onChange:function(e){return P(e)}}))),c.default.createElement(n.SideNavigation,null,_.map((function(e){var t=e.to,o=e.title,a=e.disabled,i=e.navigate,u={as:r.MicroFrontendLink,href:t,navigate:a?null:function(){return i(t)},disabled:!!a};return c.default.createElement(n.SideNavigationItem,g({key:t.toString()},u),o)}))))},w=function(e){var n=e.children,o=e.values,a=h(),i=r.useConsentManager(),u=r.useMenu(),s=u.addItems,l=u.setMFNavigate,f=r.useOrganisationId(),p=r.useLanguage().language;return c.default.createElement(t.Content,null,n(g({},o,{user:g({},o.user,{consents:i}),language:p,navigate:function(){},addMenuItems:function(e){return s(e,"app-shell")},organisationId:f.toString(),setMFNavigate:function(e){return l("app-shell",e)},mfPostHog:a})))};exports.AppShellStandalone=function(e){var t=e.children,n=e.getOrganisations,o=e.environment,a=e.postHogApiKey;return c.default.createElement(r.AppShell,{audience:e.audience,domain:e.domain,clientId:e.clientId,decorateUser:e.decorateUser,redirectUri:e.redirectUri,environment:o},(function(e){var i,u;return c.default.createElement(r.LanguageProvider,{language:null!=(i=r.languageStorage.get())?i:"nb"},c.default.createElement(r.OrganisationProvider,{organisationId:null!=(u=r.organisationStorage.get())?u:e.user["https://entur.io/organisationID"].toString()},c.default.createElement(r.ConsentManagerProvider,null,c.default.createElement(p,{postHogApiKey:a},c.default.createElement(r.MenuProvider,null,c.default.createElement(m,g({},e,{getOrganisations:n,environment:o})),c.default.createElement(w,{children:t,values:e}))))))}))};
2
2
  //# sourceMappingURL=app-shell-standalone.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell-standalone.cjs.production.min.js","sources":["../src/Menu.tsx","../src/AppShellStandalone.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Menu as MenuContainer,\n UserMenu,\n EnturPartnerLogo,\n Stack,\n} from '@entur-partner/common';\nimport { SideNavigation, SideNavigationItem } from '@entur/menu';\nimport { space } from '@entur/tokens';\nimport {\n AppShellValues,\n useLanguage,\n useMenu,\n GetOrganisationsFn,\n OrganisationSelector,\n MicroFrontendLink,\n useOrganisation,\n} from '@entur-partner/app-shell';\nimport { Environment } from '@entur-partner/common/src';\n\nconst EN_GB = {\n switchLanguage: 'Bytt til norsk',\n logout: 'Sign out',\n appVersion: 'Versjon',\n myProfile: 'My profile',\n};\n\nconst NO_NB = {\n switchLanguage: 'Switch to English',\n logout: 'Logg ut',\n appVersion: 'Version',\n myProfile: 'Min profil',\n};\n\nexport const messages = {\n nb: NO_NB,\n en: EN_GB,\n 'nb-NO': NO_NB,\n 'en-GB': EN_GB,\n} as const;\n\ninterface MenuProps extends AppShellValues {\n getOrganisations: GetOrganisationsFn | string;\n environment?: Environment;\n}\n\nexport const Menu = ({\n getOrganisations,\n user,\n getToken,\n logout,\n environment,\n}: MenuProps) => {\n const { getItemsForPath } = useMenu();\n const { language, setLanguage } = useLanguage();\n const { setOrganisationId, organisationId } = useOrganisation();\n const items = getItemsForPath('app-shell');\n\n return (\n <MenuContainer>\n <div\n style={{\n marginLeft: space.extraLarge2,\n marginTop: space.large,\n marginBottom: space.extraLarge,\n }}\n >\n <EnturPartnerLogo\n altText={'Entur partner logo'}\n className=\"menu-space menu-logo\"\n environment={environment}\n />\n </div>\n <div style={{ margin: space.large }}>\n <Stack space=\"small\">\n <UserMenu\n onLanguageChange={setLanguage}\n onLogout={logout}\n language={language}\n messages={messages[language as keyof typeof messages]}\n userName={\n user.given_name\n ? `${user.given_name} ${user.family_name}`\n : user.name\n }\n environment={environment}\n showVersionItem={false}\n showMyProfileItem={false}\n onNavigateToMyProfile={() => {}}\n />\n <OrganisationSelector\n getOrganisations={getOrganisations}\n getToken={getToken}\n selectedOrganisationId={organisationId}\n onChange={(organisationId: number) =>\n setOrganisationId(organisationId)\n }\n />\n </Stack>\n </div>\n <SideNavigation>\n {items.map(({ to, title, disabled, navigate }) => {\n const itemProps = {\n as: MicroFrontendLink,\n href: to,\n navigate: disabled ? null : () => navigate(to),\n disabled: !!disabled,\n };\n return (\n <SideNavigationItem key={to.toString()} {...itemProps}>\n {title}\n </SideNavigationItem>\n );\n })}\n </SideNavigation>\n </MenuContainer>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { Content as ContentWrapper, Environment } from '@entur-partner/common';\nimport { MenuItem, MicroFrontendPayload } from '@entur-partner/micro-frontend';\nimport {\n AppShell,\n AppShellValues,\n AppShellProps,\n MenuProvider,\n useMenu,\n OrganisationProvider,\n useOrganisationId,\n useLanguage,\n LanguageProvider,\n languageStorage,\n GetOrganisationsFn,\n organisationStorage,\n} from '@entur-partner/app-shell';\n\nimport { Menu } from './Menu';\n\ntype ContentProps = {\n values: AppShellValues;\n children: (options: MicroFrontendPayload) => ReactNode;\n};\n\nconst Content = ({ children, values }: ContentProps) => {\n const { addItems, setMFNavigate } = useMenu();\n const organisationId = useOrganisationId();\n const { language } = useLanguage();\n\n const addMenuItems = (items: MenuItem[]) => addItems(items, 'app-shell');\n\n return (\n <ContentWrapper>\n {children({\n ...values,\n language,\n navigate: () => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Calling navigate() from app shell has no effect. It is only provided so that the app shell values are equal to MicroFrontendPayload.'\n );\n }\n },\n addMenuItems,\n organisationId: organisationId.toString(),\n setMFNavigate: (navigate) => setMFNavigate('app-shell', navigate),\n })}\n </ContentWrapper>\n );\n};\n\nexport interface AppShellStandaloneProps\n extends Omit<AppShellProps, 'children'> {\n children: (options: MicroFrontendPayload) => ReactNode;\n /**\n * Either a function for fetching organisations or an url where organisations\n * can be fetched. Url will be called with access token in header.\n */\n getOrganisations: GetOrganisationsFn | string;\n environment?: Environment;\n}\n\nexport const AppShellStandalone = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n getOrganisations,\n redirectUri,\n environment,\n}: AppShellStandaloneProps) => {\n return (\n <AppShell\n audience={audience}\n domain={domain}\n clientId={clientId}\n decorateUser={decorateUser}\n redirectUri={redirectUri}\n environment={environment}\n >\n {(values) => (\n <LanguageProvider language={languageStorage.get() ?? 'nb'}>\n <OrganisationProvider\n organisationId={\n organisationStorage.get() ??\n values.user['https://entur.io/organisationID'].toString()\n }\n >\n <MenuProvider>\n <Menu\n {...values}\n getOrganisations={getOrganisations}\n environment={environment}\n />\n <Content children={children} values={values} />\n </MenuProvider>\n </OrganisationProvider>\n </LanguageProvider>\n )}\n </AppShell>\n );\n};\n"],"names":["EN_GB","switchLanguage","logout","appVersion","myProfile","NO_NB","messages","nb","en","Menu","_ref","getOrganisations","user","getToken","environment","getItemsForPath","useMenu","_useLanguage","useLanguage","language","setLanguage","_useOrganisation","useOrganisation","setOrganisationId","organisationId","items","React","MenuContainer","createElement","style","marginLeft","space","extraLarge2","marginTop","large","marginBottom","extraLarge","EnturPartnerLogo","altText","className","margin","Stack","UserMenu","onLanguageChange","onLogout","userName","given_name","family_name","name","showVersionItem","showMyProfileItem","onNavigateToMyProfile","OrganisationSelector","selectedOrganisationId","onChange","SideNavigation","map","_ref2","to","title","disabled","navigate","itemProps","as","MicroFrontendLink","href","SideNavigationItem","_extends","key","toString","Content","children","values","_useMenu","addItems","setMFNavigate","useOrganisationId","ContentWrapper","addMenuItems","AppShell","audience","domain","clientId","decorateUser","redirectUri","_languageStorage$get","_organisationStorage$","LanguageProvider","languageStorage","get","OrganisationProvider","organisationStorage","MenuProvider"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell-standalone.cjs.production.min.js","sources":["../src/PostHogProviderWrapper.tsx","../src/Menu.tsx","../src/AppShellStandalone.tsx"],"sourcesContent":["import React, { ReactNode, useEffect } from 'react';\nimport postHog from 'posthog-js';\nimport { PostHogProvider, usePostHog } from 'posthog-js/react';\nimport { useConsentManager } from '@entur-partner/app-shell';\nimport { MFPostHog } from '@entur-partner/micro-frontend';\n\nexport const useMFPostHog = () => {\n const postHog = usePostHog();\n if (!postHog) {\n throw new Error(\n 'PostHog is not initialized. Ensure PostHog API key is provided in the AppShellStandalone.'\n );\n }\n\n return {\n capture: postHog.capture,\n alias: postHog.alias,\n identify: postHog.identify,\n register: postHog.register,\n register_once: postHog.register_once,\n unregister: postHog.unregister,\n group: postHog.group,\n setPersonProperties: postHog.setPersonProperties,\n reset: postHog.reset,\n } satisfies MFPostHog;\n};\n\ntype Props = {\n postHogApiKey?: string;\n children: ReactNode;\n};\n\nexport const PostHogProviderWrapper = ({ postHogApiKey, children }: Props) => {\n const consents = useConsentManager();\n\n useEffect(() => {\n if (!postHogApiKey) {\n return;\n }\n\n if (consents.PostHog.consentGiven) {\n postHog.opt_in_capturing();\n } else {\n postHog.opt_out_capturing();\n }\n }, [consents.PostHog.consentGiven, postHogApiKey]);\n\n if (!postHogApiKey) {\n console.warn(\n 'AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.'\n );\n return <>{children}</>;\n }\n\n postHog.init(postHogApiKey, {\n api_host: 'https://eu.posthog.com',\n opt_out_capturing_by_default: true,\n });\n\n return <PostHogProvider client={postHog}>{children}</PostHogProvider>;\n};\n","import React from 'react';\nimport {\n Menu as MenuContainer,\n UserMenu,\n EnturPartnerLogo,\n Stack,\n Environment,\n} from '@entur-partner/common';\nimport { SideNavigation, SideNavigationItem } from '@entur/menu';\nimport { space } from '@entur/tokens';\nimport {\n AppShellValues,\n useLanguage,\n useMenu,\n GetOrganisationsFn,\n OrganisationSelector,\n MicroFrontendLink,\n useOrganisation,\n} from '@entur-partner/app-shell';\n\nimport { useMFPostHog } from './PostHogProviderWrapper';\n\nconst EN_GB = {\n switchLanguage: 'Bytt til norsk',\n logout: 'Sign out',\n appVersion: 'Versjon',\n myProfile: 'My profile',\n cookieSettings: 'Cookie settings',\n};\n\nconst NO_NB = {\n switchLanguage: 'Switch to English',\n logout: 'Logg ut',\n appVersion: 'Version',\n myProfile: 'Min profil',\n cookieSettings: 'Cookieinstillinger',\n};\n\nexport const messages = {\n nb: NO_NB,\n en: EN_GB,\n 'nb-NO': NO_NB,\n 'en-GB': EN_GB,\n} as const;\n\ninterface MenuProps extends AppShellValues {\n getOrganisations: GetOrganisationsFn | string;\n environment?: Environment;\n}\n\nexport const Menu = ({\n getOrganisations,\n user,\n getToken,\n logout,\n environment,\n}: MenuProps) => {\n const { getItemsForPath } = useMenu();\n const { language, setLanguage } = useLanguage();\n const { setOrganisationId, organisationId } = useOrganisation();\n const items = getItemsForPath('app-shell');\n const mfPostHog = useMFPostHog();\n\n return (\n <MenuContainer>\n <div\n style={{\n marginLeft: space.extraLarge2,\n marginTop: space.large,\n marginBottom: space.extraLarge,\n }}\n >\n <EnturPartnerLogo\n altText={'Entur partner logo'}\n className=\"menu-space menu-logo\"\n environment={environment}\n />\n </div>\n <div style={{ margin: space.large }}>\n <Stack space=\"small\">\n <UserMenu\n onLanguageChange={setLanguage}\n onLogout={async () => {\n mfPostHog.reset();\n await logout();\n }}\n language={language}\n messages={messages[language as keyof typeof messages]}\n userName={\n user.given_name\n ? `${user.given_name} ${user.family_name}`\n : user.name\n }\n environment={environment}\n showVersionItem={false}\n showMyProfileItem={false}\n showCookieSettingsItem={true}\n onCookieSettingsOpen={() => {\n window.UC_UI.showSecondLayer();\n }}\n onNavigateToMyProfile={() => {}}\n />\n <OrganisationSelector\n getOrganisations={getOrganisations}\n getToken={getToken}\n selectedOrganisationId={organisationId}\n onChange={(organisationId: number) =>\n setOrganisationId(organisationId)\n }\n />\n </Stack>\n </div>\n <SideNavigation>\n {items.map(({ to, title, disabled, navigate }) => {\n const itemProps = {\n as: MicroFrontendLink,\n href: to,\n navigate: disabled ? null : () => navigate(to),\n disabled: !!disabled,\n };\n return (\n <SideNavigationItem key={to.toString()} {...itemProps}>\n {title}\n </SideNavigationItem>\n );\n })}\n </SideNavigation>\n </MenuContainer>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { Content as ContentWrapper, Environment } from '@entur-partner/common';\nimport { MenuItem, MicroFrontendPayload } from '@entur-partner/micro-frontend';\nimport {\n AppShell,\n AppShellValues,\n AppShellProps,\n MenuProvider,\n useMenu,\n OrganisationProvider,\n useOrganisationId,\n useLanguage,\n LanguageProvider,\n languageStorage,\n GetOrganisationsFn,\n organisationStorage,\n ConsentManagerProvider,\n useConsentManager,\n} from '@entur-partner/app-shell';\n\nimport { Menu } from './Menu';\nimport { PostHogProviderWrapper, useMFPostHog } from './PostHogProviderWrapper';\n\ntype ContentProps = {\n values: AppShellValues;\n children: (options: MicroFrontendPayload) => ReactNode;\n};\n\nconst Content = ({ children, values }: ContentProps) => {\n const mfPostHog = useMFPostHog();\n const consents = useConsentManager();\n const { addItems, setMFNavigate } = useMenu();\n const organisationId = useOrganisationId();\n const { language } = useLanguage();\n\n const addMenuItems = (items: MenuItem[]) => addItems(items, 'app-shell');\n\n return (\n <ContentWrapper>\n {children({\n ...values,\n user: {\n ...values.user,\n consents,\n },\n language,\n navigate: () => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Calling navigate() from app shell has no effect. It is only provided so that the app shell values are equal to MicroFrontendPayload.'\n );\n }\n },\n addMenuItems,\n organisationId: organisationId.toString(),\n setMFNavigate: (navigate) => setMFNavigate('app-shell', navigate),\n mfPostHog: mfPostHog,\n })}\n </ContentWrapper>\n );\n};\n\nexport interface AppShellStandaloneProps\n extends Omit<AppShellProps, 'children'> {\n children: (options: MicroFrontendPayload) => ReactNode;\n /**\n * Either a function for fetching organisations or an url where organisations\n * can be fetched. Url will be called with access token in header.\n */\n getOrganisations: GetOrganisationsFn | string;\n environment?: Environment;\n postHogApiKey?: string;\n}\n\nexport const AppShellStandalone = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n getOrganisations,\n redirectUri,\n environment,\n postHogApiKey,\n}: AppShellStandaloneProps) => {\n return (\n <AppShell\n audience={audience}\n domain={domain}\n clientId={clientId}\n decorateUser={decorateUser}\n redirectUri={redirectUri}\n environment={environment}\n >\n {(values) => (\n <LanguageProvider language={languageStorage.get() ?? 'nb'}>\n <OrganisationProvider\n organisationId={\n organisationStorage.get() ??\n values.user['https://entur.io/organisationID'].toString()\n }\n >\n <ConsentManagerProvider>\n <PostHogProviderWrapper postHogApiKey={postHogApiKey}>\n <MenuProvider>\n <Menu\n {...values}\n getOrganisations={getOrganisations}\n environment={environment}\n />\n <Content children={children} values={values} />\n </MenuProvider>\n </PostHogProviderWrapper>\n </ConsentManagerProvider>\n </OrganisationProvider>\n </LanguageProvider>\n )}\n </AppShell>\n );\n};\n"],"names":["useMFPostHog","postHog","usePostHog","Error","capture","alias","identify","register","register_once","unregister","group","setPersonProperties","reset","PostHogProviderWrapper","_ref","postHogApiKey","children","consents","useConsentManager","useEffect","PostHog","consentGiven","opt_in_capturing","opt_out_capturing","init","api_host","opt_out_capturing_by_default","React","createElement","PostHogProvider","client","console","warn","Fragment","EN_GB","switchLanguage","logout","appVersion","myProfile","cookieSettings","NO_NB","messages","nb","en","Menu","_onLogout","getOrganisations","user","getToken","environment","getItemsForPath","useMenu","_useLanguage","useLanguage","language","setLanguage","_useOrganisation","useOrganisation","setOrganisationId","organisationId","items","mfPostHog","MenuContainer","style","marginLeft","space","extraLarge2","marginTop","large","marginBottom","extraLarge","EnturPartnerLogo","altText","className","margin","Stack","UserMenu","onLanguageChange","onLogout","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","stop","apply","this","arguments","userName","given_name","family_name","name","showVersionItem","showMyProfileItem","showCookieSettingsItem","onCookieSettingsOpen","window","UC_UI","showSecondLayer","onNavigateToMyProfile","OrganisationSelector","selectedOrganisationId","onChange","SideNavigation","map","_ref2","to","title","disabled","navigate","itemProps","as","MicroFrontendLink","href","SideNavigationItem","_extends","key","toString","Content","values","_useMenu","addItems","setMFNavigate","useOrganisationId","ContentWrapper","addMenuItems","AppShell","audience","domain","clientId","decorateUser","redirectUri","_languageStorage$get","_organisationStorage$","LanguageProvider","languageStorage","get","OrganisationProvider","organisationStorage","ConsentManagerProvider","MenuProvider"],"mappings":"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"}
@@ -1,9 +1,342 @@
1
- import React from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import { Menu as Menu$1, EnturPartnerLogo, Stack, UserMenu, Content as Content$1 } from '@entur-partner/common';
3
- import { useMenu, useLanguage, useOrganisation, OrganisationSelector, MicroFrontendLink, AppShell, LanguageProvider, languageStorage, OrganisationProvider, organisationStorage, MenuProvider, useOrganisationId } from '@entur-partner/app-shell';
3
+ import { useConsentManager, useMenu, useLanguage, useOrganisation, OrganisationSelector, MicroFrontendLink, AppShell, LanguageProvider, languageStorage, OrganisationProvider, organisationStorage, ConsentManagerProvider, MenuProvider, useOrganisationId } from '@entur-partner/app-shell';
4
4
  import { SideNavigation, SideNavigationItem } from '@entur/menu';
5
5
  import { space } from '@entur/tokens';
6
+ import postHog from 'posthog-js';
7
+ import { PostHogProvider, usePostHog } from 'posthog-js/react';
6
8
 
9
+ function _regeneratorRuntime() {
10
+ _regeneratorRuntime = function () {
11
+ return e;
12
+ };
13
+ var t,
14
+ e = {},
15
+ r = Object.prototype,
16
+ n = r.hasOwnProperty,
17
+ o = Object.defineProperty || function (t, e, r) {
18
+ t[e] = r.value;
19
+ },
20
+ i = "function" == typeof Symbol ? Symbol : {},
21
+ a = i.iterator || "@@iterator",
22
+ c = i.asyncIterator || "@@asyncIterator",
23
+ u = i.toStringTag || "@@toStringTag";
24
+ function define(t, e, r) {
25
+ return Object.defineProperty(t, e, {
26
+ value: r,
27
+ enumerable: !0,
28
+ configurable: !0,
29
+ writable: !0
30
+ }), t[e];
31
+ }
32
+ try {
33
+ define({}, "");
34
+ } catch (t) {
35
+ define = function (t, e, r) {
36
+ return t[e] = r;
37
+ };
38
+ }
39
+ function wrap(t, e, r, n) {
40
+ var i = e && e.prototype instanceof Generator ? e : Generator,
41
+ a = Object.create(i.prototype),
42
+ c = new Context(n || []);
43
+ return o(a, "_invoke", {
44
+ value: makeInvokeMethod(t, r, c)
45
+ }), a;
46
+ }
47
+ function tryCatch(t, e, r) {
48
+ try {
49
+ return {
50
+ type: "normal",
51
+ arg: t.call(e, r)
52
+ };
53
+ } catch (t) {
54
+ return {
55
+ type: "throw",
56
+ arg: t
57
+ };
58
+ }
59
+ }
60
+ e.wrap = wrap;
61
+ var h = "suspendedStart",
62
+ l = "suspendedYield",
63
+ f = "executing",
64
+ s = "completed",
65
+ y = {};
66
+ function Generator() {}
67
+ function GeneratorFunction() {}
68
+ function GeneratorFunctionPrototype() {}
69
+ var p = {};
70
+ define(p, a, function () {
71
+ return this;
72
+ });
73
+ var d = Object.getPrototypeOf,
74
+ v = d && d(d(values([])));
75
+ v && v !== r && n.call(v, a) && (p = v);
76
+ var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
77
+ function defineIteratorMethods(t) {
78
+ ["next", "throw", "return"].forEach(function (e) {
79
+ define(t, e, function (t) {
80
+ return this._invoke(e, t);
81
+ });
82
+ });
83
+ }
84
+ function AsyncIterator(t, e) {
85
+ function invoke(r, o, i, a) {
86
+ var c = tryCatch(t[r], t, o);
87
+ if ("throw" !== c.type) {
88
+ var u = c.arg,
89
+ h = u.value;
90
+ return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
91
+ invoke("next", t, i, a);
92
+ }, function (t) {
93
+ invoke("throw", t, i, a);
94
+ }) : e.resolve(h).then(function (t) {
95
+ u.value = t, i(u);
96
+ }, function (t) {
97
+ return invoke("throw", t, i, a);
98
+ });
99
+ }
100
+ a(c.arg);
101
+ }
102
+ var r;
103
+ o(this, "_invoke", {
104
+ value: function (t, n) {
105
+ function callInvokeWithMethodAndArg() {
106
+ return new e(function (e, r) {
107
+ invoke(t, n, e, r);
108
+ });
109
+ }
110
+ return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
111
+ }
112
+ });
113
+ }
114
+ function makeInvokeMethod(e, r, n) {
115
+ var o = h;
116
+ return function (i, a) {
117
+ if (o === f) throw Error("Generator is already running");
118
+ if (o === s) {
119
+ if ("throw" === i) throw a;
120
+ return {
121
+ value: t,
122
+ done: !0
123
+ };
124
+ }
125
+ for (n.method = i, n.arg = a;;) {
126
+ var c = n.delegate;
127
+ if (c) {
128
+ var u = maybeInvokeDelegate(c, n);
129
+ if (u) {
130
+ if (u === y) continue;
131
+ return u;
132
+ }
133
+ }
134
+ if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
135
+ if (o === h) throw o = s, n.arg;
136
+ n.dispatchException(n.arg);
137
+ } else "return" === n.method && n.abrupt("return", n.arg);
138
+ o = f;
139
+ var p = tryCatch(e, r, n);
140
+ if ("normal" === p.type) {
141
+ if (o = n.done ? s : l, p.arg === y) continue;
142
+ return {
143
+ value: p.arg,
144
+ done: n.done
145
+ };
146
+ }
147
+ "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
148
+ }
149
+ };
150
+ }
151
+ function maybeInvokeDelegate(e, r) {
152
+ var n = r.method,
153
+ o = e.iterator[n];
154
+ if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
155
+ var i = tryCatch(o, e.iterator, r.arg);
156
+ if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
157
+ var a = i.arg;
158
+ return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
159
+ }
160
+ function pushTryEntry(t) {
161
+ var e = {
162
+ tryLoc: t[0]
163
+ };
164
+ 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
165
+ }
166
+ function resetTryEntry(t) {
167
+ var e = t.completion || {};
168
+ e.type = "normal", delete e.arg, t.completion = e;
169
+ }
170
+ function Context(t) {
171
+ this.tryEntries = [{
172
+ tryLoc: "root"
173
+ }], t.forEach(pushTryEntry, this), this.reset(!0);
174
+ }
175
+ function values(e) {
176
+ if (e || "" === e) {
177
+ var r = e[a];
178
+ if (r) return r.call(e);
179
+ if ("function" == typeof e.next) return e;
180
+ if (!isNaN(e.length)) {
181
+ var o = -1,
182
+ i = function next() {
183
+ for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
184
+ return next.value = t, next.done = !0, next;
185
+ };
186
+ return i.next = i;
187
+ }
188
+ }
189
+ throw new TypeError(typeof e + " is not iterable");
190
+ }
191
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
192
+ value: GeneratorFunctionPrototype,
193
+ configurable: !0
194
+ }), o(GeneratorFunctionPrototype, "constructor", {
195
+ value: GeneratorFunction,
196
+ configurable: !0
197
+ }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
198
+ var e = "function" == typeof t && t.constructor;
199
+ return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
200
+ }, e.mark = function (t) {
201
+ return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
202
+ }, e.awrap = function (t) {
203
+ return {
204
+ __await: t
205
+ };
206
+ }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
207
+ return this;
208
+ }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
209
+ void 0 === i && (i = Promise);
210
+ var a = new AsyncIterator(wrap(t, r, n, o), i);
211
+ return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
212
+ return t.done ? t.value : a.next();
213
+ });
214
+ }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
215
+ return this;
216
+ }), define(g, "toString", function () {
217
+ return "[object Generator]";
218
+ }), e.keys = function (t) {
219
+ var e = Object(t),
220
+ r = [];
221
+ for (var n in e) r.push(n);
222
+ return r.reverse(), function next() {
223
+ for (; r.length;) {
224
+ var t = r.pop();
225
+ if (t in e) return next.value = t, next.done = !1, next;
226
+ }
227
+ return next.done = !0, next;
228
+ };
229
+ }, e.values = values, Context.prototype = {
230
+ constructor: Context,
231
+ reset: function (e) {
232
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
233
+ },
234
+ stop: function () {
235
+ this.done = !0;
236
+ var t = this.tryEntries[0].completion;
237
+ if ("throw" === t.type) throw t.arg;
238
+ return this.rval;
239
+ },
240
+ dispatchException: function (e) {
241
+ if (this.done) throw e;
242
+ var r = this;
243
+ function handle(n, o) {
244
+ return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
245
+ }
246
+ for (var o = this.tryEntries.length - 1; o >= 0; --o) {
247
+ var i = this.tryEntries[o],
248
+ a = i.completion;
249
+ if ("root" === i.tryLoc) return handle("end");
250
+ if (i.tryLoc <= this.prev) {
251
+ var c = n.call(i, "catchLoc"),
252
+ u = n.call(i, "finallyLoc");
253
+ if (c && u) {
254
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
255
+ if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
256
+ } else if (c) {
257
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
258
+ } else {
259
+ if (!u) throw Error("try statement without catch or finally");
260
+ if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
261
+ }
262
+ }
263
+ }
264
+ },
265
+ abrupt: function (t, e) {
266
+ for (var r = this.tryEntries.length - 1; r >= 0; --r) {
267
+ var o = this.tryEntries[r];
268
+ if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
269
+ var i = o;
270
+ break;
271
+ }
272
+ }
273
+ i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
274
+ var a = i ? i.completion : {};
275
+ return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
276
+ },
277
+ complete: function (t, e) {
278
+ if ("throw" === t.type) throw t.arg;
279
+ return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
280
+ },
281
+ finish: function (t) {
282
+ for (var e = this.tryEntries.length - 1; e >= 0; --e) {
283
+ var r = this.tryEntries[e];
284
+ if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
285
+ }
286
+ },
287
+ catch: function (t) {
288
+ for (var e = this.tryEntries.length - 1; e >= 0; --e) {
289
+ var r = this.tryEntries[e];
290
+ if (r.tryLoc === t) {
291
+ var n = r.completion;
292
+ if ("throw" === n.type) {
293
+ var o = n.arg;
294
+ resetTryEntry(r);
295
+ }
296
+ return o;
297
+ }
298
+ }
299
+ throw Error("illegal catch attempt");
300
+ },
301
+ delegateYield: function (e, r, n) {
302
+ return this.delegate = {
303
+ iterator: values(e),
304
+ resultName: r,
305
+ nextLoc: n
306
+ }, "next" === this.method && (this.arg = t), y;
307
+ }
308
+ }, e;
309
+ }
310
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
311
+ try {
312
+ var info = gen[key](arg);
313
+ var value = info.value;
314
+ } catch (error) {
315
+ reject(error);
316
+ return;
317
+ }
318
+ if (info.done) {
319
+ resolve(value);
320
+ } else {
321
+ Promise.resolve(value).then(_next, _throw);
322
+ }
323
+ }
324
+ function _asyncToGenerator(fn) {
325
+ return function () {
326
+ var self = this,
327
+ args = arguments;
328
+ return new Promise(function (resolve, reject) {
329
+ var gen = fn.apply(self, args);
330
+ function _next(value) {
331
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
332
+ }
333
+ function _throw(err) {
334
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
335
+ }
336
+ _next(undefined);
337
+ });
338
+ };
339
+ }
7
340
  function _extends() {
8
341
  _extends = Object.assign ? Object.assign.bind() : function (target) {
9
342
  for (var i = 1; i < arguments.length; i++) {
@@ -19,17 +352,63 @@ function _extends() {
19
352
  return _extends.apply(this, arguments);
20
353
  }
21
354
 
355
+ var useMFPostHog = function useMFPostHog() {
356
+ var postHog = usePostHog();
357
+ if (!postHog) {
358
+ throw new Error('PostHog is not initialized. Ensure PostHog API key is provided in the AppShellStandalone.');
359
+ }
360
+ return {
361
+ capture: postHog.capture,
362
+ alias: postHog.alias,
363
+ identify: postHog.identify,
364
+ register: postHog.register,
365
+ register_once: postHog.register_once,
366
+ unregister: postHog.unregister,
367
+ group: postHog.group,
368
+ setPersonProperties: postHog.setPersonProperties,
369
+ reset: postHog.reset
370
+ };
371
+ };
372
+ var PostHogProviderWrapper = function PostHogProviderWrapper(_ref) {
373
+ var postHogApiKey = _ref.postHogApiKey,
374
+ children = _ref.children;
375
+ var consents = useConsentManager();
376
+ useEffect(function () {
377
+ if (!postHogApiKey) {
378
+ return;
379
+ }
380
+ if (consents.PostHog.consentGiven) {
381
+ postHog.opt_in_capturing();
382
+ } else {
383
+ postHog.opt_out_capturing();
384
+ }
385
+ }, [consents.PostHog.consentGiven, postHogApiKey]);
386
+ if (!postHogApiKey) {
387
+ console.warn('AppShellStandalone Warning: PostHog API key is not provided. PostHog will not be initialized.');
388
+ return React.createElement(React.Fragment, null, children);
389
+ }
390
+ postHog.init(postHogApiKey, {
391
+ api_host: 'https://eu.posthog.com',
392
+ opt_out_capturing_by_default: true
393
+ });
394
+ return React.createElement(PostHogProvider, {
395
+ client: postHog
396
+ }, children);
397
+ };
398
+
22
399
  var EN_GB = {
23
400
  switchLanguage: 'Bytt til norsk',
24
401
  logout: 'Sign out',
25
402
  appVersion: 'Versjon',
26
- myProfile: 'My profile'
403
+ myProfile: 'My profile',
404
+ cookieSettings: 'Cookie settings'
27
405
  };
28
406
  var NO_NB = {
29
407
  switchLanguage: 'Switch to English',
30
408
  logout: 'Logg ut',
31
409
  appVersion: 'Version',
32
- myProfile: 'Min profil'
410
+ myProfile: 'Min profil',
411
+ cookieSettings: 'Cookieinstillinger'
33
412
  };
34
413
  var messages = {
35
414
  nb: NO_NB,
@@ -52,6 +431,7 @@ var Menu = function Menu(_ref) {
52
431
  setOrganisationId = _useOrganisation.setOrganisationId,
53
432
  organisationId = _useOrganisation.organisationId;
54
433
  var items = getItemsForPath('app-shell');
434
+ var mfPostHog = useMFPostHog();
55
435
  return React.createElement(Menu$1, null, React.createElement("div", {
56
436
  style: {
57
437
  marginLeft: space.extraLarge2,
@@ -70,13 +450,35 @@ var Menu = function Menu(_ref) {
70
450
  space: "small"
71
451
  }, React.createElement(UserMenu, {
72
452
  onLanguageChange: setLanguage,
73
- onLogout: logout,
453
+ onLogout: function () {
454
+ var _onLogout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
455
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
456
+ while (1) switch (_context.prev = _context.next) {
457
+ case 0:
458
+ mfPostHog.reset();
459
+ _context.next = 3;
460
+ return logout();
461
+ case 3:
462
+ case "end":
463
+ return _context.stop();
464
+ }
465
+ }, _callee);
466
+ }));
467
+ function onLogout() {
468
+ return _onLogout.apply(this, arguments);
469
+ }
470
+ return onLogout;
471
+ }(),
74
472
  language: language,
75
473
  messages: messages[language],
76
474
  userName: user.given_name ? user.given_name + " " + user.family_name : user.name,
77
475
  environment: environment,
78
476
  showVersionItem: false,
79
477
  showMyProfileItem: false,
478
+ showCookieSettingsItem: true,
479
+ onCookieSettingsOpen: function onCookieSettingsOpen() {
480
+ window.UC_UI.showSecondLayer();
481
+ },
80
482
  onNavigateToMyProfile: function onNavigateToMyProfile() {}
81
483
  }), React.createElement(OrganisationSelector, {
82
484
  getOrganisations: getOrganisations,
@@ -107,6 +509,8 @@ var Menu = function Menu(_ref) {
107
509
  var Content = function Content(_ref) {
108
510
  var children = _ref.children,
109
511
  values = _ref.values;
512
+ var mfPostHog = useMFPostHog();
513
+ var consents = useConsentManager();
110
514
  var _useMenu = useMenu(),
111
515
  addItems = _useMenu.addItems,
112
516
  _setMFNavigate = _useMenu.setMFNavigate;
@@ -117,6 +521,9 @@ var Content = function Content(_ref) {
117
521
  return addItems(items, 'app-shell');
118
522
  };
119
523
  return React.createElement(Content$1, null, children(_extends({}, values, {
524
+ user: _extends({}, values.user, {
525
+ consents: consents
526
+ }),
120
527
  language: language,
121
528
  navigate: function navigate() {
122
529
  if (process.env.NODE_ENV !== 'production') {
@@ -127,7 +534,8 @@ var Content = function Content(_ref) {
127
534
  organisationId: organisationId.toString(),
128
535
  setMFNavigate: function setMFNavigate(navigate) {
129
536
  return _setMFNavigate('app-shell', navigate);
130
- }
537
+ },
538
+ mfPostHog: mfPostHog
131
539
  })));
132
540
  };
133
541
  var AppShellStandalone = function AppShellStandalone(_ref2) {
@@ -138,7 +546,8 @@ var AppShellStandalone = function AppShellStandalone(_ref2) {
138
546
  decorateUser = _ref2.decorateUser,
139
547
  getOrganisations = _ref2.getOrganisations,
140
548
  redirectUri = _ref2.redirectUri,
141
- environment = _ref2.environment;
549
+ environment = _ref2.environment,
550
+ postHogApiKey = _ref2.postHogApiKey;
142
551
  return React.createElement(AppShell, {
143
552
  audience: audience,
144
553
  domain: domain,
@@ -152,13 +561,15 @@ var AppShellStandalone = function AppShellStandalone(_ref2) {
152
561
  language: (_languageStorage$get = languageStorage.get()) != null ? _languageStorage$get : 'nb'
153
562
  }, React.createElement(OrganisationProvider, {
154
563
  organisationId: (_organisationStorage$ = organisationStorage.get()) != null ? _organisationStorage$ : values.user['https://entur.io/organisationID'].toString()
564
+ }, React.createElement(ConsentManagerProvider, null, React.createElement(PostHogProviderWrapper, {
565
+ postHogApiKey: postHogApiKey
155
566
  }, React.createElement(MenuProvider, null, React.createElement(Menu, _extends({}, values, {
156
567
  getOrganisations: getOrganisations,
157
568
  environment: environment
158
569
  })), React.createElement(Content, {
159
570
  children: children,
160
571
  values: values
161
- }))));
572
+ }))))));
162
573
  });
163
574
  };
164
575