@luigi-project/core-modular 0.0.9-dev.202606110810 → 0.0.9-dev.202606130119

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/luigi.js CHANGED
@@ -91,5 +91,5 @@ Affected pathSegment:`,t,"Children:",n),n=n.filter(u=>u.pathSegment&&u.pathSegme
91
91
  Multiple dynamic nodes are not allowed on the same level. Stopped navigation.
92
92
  Invalid Children:`,n);return}return n.some(u=>{if(u.pathSegment===t||u.pathSegment&&u.pathSegment.startsWith(":"))return s=u,!0}),s}buildNavItems(t,n,s){const a={},l=[];return t?.forEach(u=>{if(Oe.isNodeAccessPermitted(u,this.getParentNode(s.selectedNode,s),s?.selectedNode?.context||{},this.luigi))if(u.category){const f=u.category.id||u.category.label||u.category,h=this.luigi.i18n().getTranslation(u.category.label||u.category.id||u.category);let g=a[f];g||(g={category:{altText:u.category.altText||"",icon:u.category.icon,id:f,label:h,nodes:[],tooltip:this.resolveTooltipText(u.category,h)}},a[f]=g,l.push(g)),g.category?.nodes?.push({node:u,selected:u===n,label:u.label?this.luigi.i18n().getTranslation(u.label):void 0,tooltip:u.label?this.resolveTooltipText(u,u.label):void 0,altText:u.altText,icon:u.icon,externalLink:u.externalLink,href:u.externalLink?.url||D.getNodeHref(u,s.pathParams,this.luigi)})}else l.push({altText:u.altText,icon:u.icon,label:u.label?this.luigi.i18n().getTranslation(u.label):void 0,tooltip:u.label?this.resolveTooltipText(u,u.label):void 0,node:u,selected:u===n,externalLink:u.externalLink,href:u.externalLink?.url||D.getNodeHref(u,s.pathParams,this.luigi)})}),l}async getCurrentNode(t){const n=await this.getPathData(t);let s=n.selectedNode;if(!s&&n.nodesInPath?.length===1&&(s=n.nodesInPath[0]),!(!s||!Oe.isNodeAccessPermitted(s,this.getParentNode(n.selectedNode,n),n?.selectedNode?.context||{},this.luigi)))return s}async getPathParams(t){return(await this.getPathData(t)).pathParams}getTruncatedChildren(t){let n=!1,s=!1,a=[];return t.slice().reverse().forEach(l=>{(!n||l.tabNav)&&(l.tabNav===!1&&(s=!0),l.keepSelectedForChildren===!1?n=!0:(l.keepSelectedForChildren||l.tabNav&&!s)&&(n=!0,a=[])),a.push(l)}),a.reverse()}applyNavGroups(t){const n={},s=[],l=[];return t.forEach(u=>{if(u.node)l.push(u);else if(u.category){const f=u.category.id;f&&f.indexOf("::")>0?s.push(u):(u.category.isGroup,n[f]=u,l.push(u))}}),s.forEach(u=>{const f=u.category?.id.split("::")[0]||"",h=n[f];h&&h.category&&(h.category.isGroup||(h.category.isGroup=!0),h.category.nodes||(h.category.nodes=[]),h.category.nodes.push(u))}),l.filter(u=>{if(u.category?.isGroup&&u.category?.nodes&&u.category?.nodes.length>0){for(let f=0;f<u.category?.nodes.length;f++){const h=u.category?.nodes[f];if(h.node&&!h.node.hideFromNav&&h.node.label||h.category?.nodes&&h.category.nodes.filter(g=>!g.node?.hideFromNav&&g.node?.label).length>0)return!0}return!1}return!0})}async getLeftNavData(t,n){const s=n??await this.getPathData(t);if(t===""&&s?.nodesInPath?.[0].viewUrl)return{items:[],basePath:"",selectedNode:{},navClick:void 0};let a=[];const l=[];let u="";s.nodesInPath?.forEach(E=>{E.children&&(E.tabNav||(u+="/"+(E.pathSegment||"")),l.push(E))});const f=this.getTruncatedChildren(s.nodesInPath??[]);let h=[...f].pop(),g=s.selectedNode;(h?.keepSelectedForChildren||h?.tabNav)&&(g=h,f.pop(),h=[...f].pop());let _,w=g;g?s.rootNodes.includes(g)?(_=g,w=void 0):g.tabNav||g.keepSelectedForChildren?_=h:_=[...l].pop():(_=[...l].pop(),w=void 0);let m=await this.getChildren(_,_?.context||{})||[];return a=this.buildNavItems(m,w,s),a=this.applyNavGroups(a),{selectedNode:g||{},items:a,basePath:u.replace(/\/\/+/g,"/"),sideNavFooterText:this.luigi.getConfig().settings?.sideNavFooterText,navClick:E=>E.node?this.navItemClick(E.node,s):Promise.resolve()}}async navItemClick(t,n){if(await j.get(un).getUnsavedChangesModalPromise(),t.externalLink?.url){Oe.openExternalLink(t.externalLink,n?.pathParams);return}let a=D.getNodePath(t),l=n?.pathParams;if(a=M.replaceVars(a,l||{},":",!1),!a&&a!==""){console.error("Navigation error: could not build path for the node. Check if pathSegment is defined for all nodes in the path and if there are no duplicate pathSegments on the same level.");return}return this.luigi.navigation().navigate(a)}async getTopNavData(t,n){const s=this.luigi.getConfig(),a=n??await this.getPathData(t),l=s.navigation?.profile?.items?.length?JSON.parse(JSON.stringify(s.navigation.profile.items)):[],u=s.navigation?.appSwitcher&&this.getAppSwitcherData(s.navigation?.appSwitcher,s.settings?.header),f=Oe.updateHeaderTitle(u,a);l?.length&&l.forEach(N=>{N.label=this.luigi.i18n().getTranslation(N.label||""),N.children?.length&&N.children.forEach(F=>{F.label=this.luigi.i18n().getTranslation(F.label||"")})});const h=this.luigi.i18n().getTranslation(s.navigation?.profile?.logout?.label)||Mr.logout.label,g=N=>{N.openNodeInModal&&!N.externalLink?.url?this.luigi.navigation().openAsModal(N.link||"",N.openNodeInModal===!0?{}:N.openNodeInModal):N.link?this.luigi.navigation().navigate(N.link):N.externalLink?.url&&Oe.openExternalLink(N.externalLink)},_=s.userSettings;let w={};_&&(w={...Mr.userSettingsProfileMenuEntry,...s.userSettings?.userSettingsProfileMenuEntry});const m={authEnabled:this.luigi.auth().isAuthorizationEnabled(),signedIn:this.luigi.auth().isAuthorizationEnabled()&&ir.isLoggedIn(),items:l,itemClick:g,logout:{altText:this.luigi.i18n().getTranslation(s.navigation?.profile?.logout?.altText)||Mr.logout.label,label:h,icon:s.navigation?.profile?.logout?.icon||Mr.logout.icon,testId:s.navigation?.profile?.logout?.testId||Oe.prepareForTests(h),doLogout:()=>{ar.logout()}},settings:{...w,openUserSettings:()=>{this.luigi.ux().openUserSettings()}},onUserInfoUpdate:N=>{this.luigi.getConfigValueAsync("navigation.profile.staticUserInfoFn").then(F=>{F?N(F):ar.getUserInfoStore().subscribe(J=>{N(J)})})}},E=a.selectedNode,C=E&&a.rootNodes.includes(E)?E:void 0,R=await this.buildContextSwitcher(),I={...s.navigation?.productSwitcher,productSwitcherItemClick:N=>{N.externalLink?.url?Oe.openExternalLink(N.externalLink):N.link&&this.luigi.navigation().navigate(N.link)}};return{appTitle:f||s.settings?.header?.title,logo:s.settings?.header?.logo,topNodes:this.buildNavItems(a.rootNodes,C,a),contextSwitcher:R,productSwitcher:I,profile:this.luigi.auth().isAuthorizationEnabled()||s.navigation?.profile?m:void 0,appSwitcher:s.navigation?.appSwitcher&&this.getAppSwitcherData(s.navigation?.appSwitcher,s.settings?.header),navClick:N=>N.node?this.navItemClick(N.node,a):Promise.resolve()}}getParentNode(t,n){if(t&&t===n.nodesInPath?.[n.nodesInPath.length-1])return n.nodesInPath[n.nodesInPath.length-2]}getAppSwitcherData(t,n){const s=t,a=s?.showMainAppEntry;if(s&&s.items&&a){const l={title:this.luigi.i18n().getTranslation(n.title||""),subTitle:n.subTitle,link:"/"};if(s.items?.map(u=>({...u,title:this.luigi.i18n().getTranslation(u.title||"")})),s.items.some(u=>u.link===l.link))return s;s.items.unshift(l)}return s}async getTabNavData(t,n){const s=n??await this.getPathData(t);if(t===""&&s?.nodesInPath?.[0].viewUrl)return{};const a=s?.selectedNode;let l;if(!a)return{};if(!a.tabNav&&(l=this.getParentNode(a,s),l&&!l.tabNav))return{};let u="";s.nodesInPath?.forEach(g=>{g.children&&(u+="/"+(g.pathSegment||""))});const f=l?this.getTruncatedChildren(l.children??[]):this.getTruncatedChildren(a.children??[]),h=this.buildNavItems(f,a,s);return{selectedNode:a,items:h,basePath:u.replace(/\/\/+/g,"/"),navClick:g=>g.node?this.navItemClick(g.node,s):Promise.resolve()}}async getBreadcrumbData(t,n,s){const a=this.luigi.getConfigValue("navigation.breadcrumbs"),l=n??await this.getPathData(t),u=l?.nodesInPath||[],f=[];let h=!!a,g="";if(!a||t===""&&u?.[0].viewUrl)return this.previousBreadcrumbs={},{};if(u.forEach(R=>{R.children&&(g+="/"+(R.pathSegment||"")),R.showBreadcrumbs===!1?h=!1:R.showBreadcrumbs===!0&&(h=!0)}),!h)return{clearBeforeRender:!0};const _=this.luigi.getConfigValue("routing.useHashRouting"),w=D.getCurrentPath(this.luigi,_),m=a.omitRoot?2:1;for(let R=m;R<u.length;R++){const I=u[R],N=D.mapPathToNode(w.path,I);if(N&&this.previousBreadcrumbs[N])f.push(this.previousBreadcrumbs[N]);else if(I.label||I.pathSegment||I.titleResolver)if(I.titleResolver)f.push({label:I.titleResolver.prerenderFallback&&I.titleResolver.fallbackTitle?this.luigi.i18n().getTranslation(I.titleResolver.fallbackTitle):a.pendingItemLabel||"",node:I,route:N,pending:!0});else{const F=await D.getNodeLabel(I,this.luigi);F&&f.push({label:F,node:I,route:N})}}const E=f.some(R=>R.pending),C=R=>({basePath:g.replace(/\/\/+/g,"/"),clearBeforeRender:a.clearBeforeRender,items:R,renderer:a.renderer,selectedNode:l?.selectedNode||{}});if(E&&s)return this.resolveBreadcrumbTitles(u,m,w,_,a,C,s),C(f);if(w.path===D.getCurrentPath(this.luigi,_).path){const R={};f.length>1?f[f.length-1].last=!0:a.autoHide&&(f.length=0),f.map(I=>{I.route&&(R[I.route]=I)}),this.previousBreadcrumbs=R}return C(f)}async resolveBreadcrumbTitles(t,n,s,a,l,u,f){const h=[];for(let g=n;g<t.length;g++){const _=t[g],w=D.mapPathToNode(s.path,_);if(_.titleResolver)try{const E=await this.extractDataFromPath(w||""),C=D.substituteDynamicParamsInObject(Object.assign({},E.pathData.context,_.context),E.pathData.pathParams||{}),R=await Oe.fetchNodeTitleData(_,C);h.push({label:R.label,node:_,route:w});continue}catch{}const m=await D.getNodeLabel(_,this.luigi);m&&h.push({label:m,node:_,route:w})}if(s.path===D.getCurrentPath(this.luigi,a).path){const g={};h.length>1?h[h.length-1].last=!0:l.autoHide&&(h.length=0),h.map(_=>{_.route&&(g[_.route]=_)}),this.previousBreadcrumbs=g}f(u(h))}onNodeChange(t,n){const s=this.luigi.getConfigValue("navigation.nodeChangeHook");M.isFunction(s)?s(t,n):s!==void 0&&console.warn("nodeChangeHook is not a function!")}async extractDataFromPath(t){const n=await this.getPathData(t);return{nodeObject:D.getLastNodeObject(n),pathData:n}}async shouldPreventNavigation(t){return!!(t?.onNodeActivation&&(M.isFunction(t.onNodeActivation)||M.isAsyncFunction(t.onNodeActivation))&&await t.onNodeActivation(t)===!1)}async shouldPreventNavigationForPath(t){const{nodeObject:n}=await this.extractDataFromPath(t);return!!await this.shouldPreventNavigation(n)}async openViewInNewTab(t){if(await this.shouldPreventNavigationForPath(t))return;this.luigi.getConfigValue("routing.useHashRouting")&&(t="#"+t);let s;try{if(s=new URL(t,window.location.origin),s.origin!==window.location.origin)return}catch{return}window.open(s.toString(),"_blank","noopener,noreferrer")}resolveTooltipText(t,n){return Oe.generateTooltipText(t,n,this.luigi)}prepareRootNodes(t,n){const s=t;return s.length&&s.forEach(a=>{a.isRootNode=!0}),s}getAccessibleNodes(t,n,s){return n?n.filter(a=>Oe.isNodeAccessPermitted(a,t,s,this.luigi)):[]}async handleNavigationRequest(t,n){const{path:s,intent:a,preserveView:l,drawerSettings:u,modalSettings:f,newTab:h,withoutSync:g,preventContextUpdate:_,preventHistoryEntry:w,options:m}=t,E=this.luigi.getConfig().routing?.useHashRouting,C=!!(u||f);let R=await this.buildPath(s,m||{});if(!C){const J=j.get(un);try{await J.getUnsavedChangesModalPromise()}catch{return}}if(a){const J=D.getIntentPath(s.replace("#",""),this.luigi);if(!J)return;if(typeof J=="string")R=J;else if(M.isObject(J)){D.handleExternalIntentPath(J);return}}const I=R.replace(/\/\/+/g,"/"),N=w?"replaceState":"pushState",F=D.getCurrentPath(this.luigi,E).path;if(M.trimLeadingSlash(F)!==M.trimLeadingSlash(I))if(u||f)if(u)this.luigi.navigation().openAsDrawer(I,u,n);else{if(!f.keepPrevious&&!await this.getModalService().closeModalsWithDirtyCheck())return;this.luigi.navigation().openAsModal(I,f,n)}else{const J={detail:{preventContextUpdate:!!_,preventHistoryEntry:!!w,withoutSync:!!g}},de=j.get(un);if(G.drawerContainer&&de.shouldShowUnsavedChangesModal(G.drawerContainer))try{await de.getUnsavedChangesModalPromise(G.drawerContainer)}catch{return}if(!await j.get(fr).closeModalsWithDirtyCheck())return;if(h){await this.openViewInNewTab(I);return}const pe=this.luigi.getConfigValue("routing.disableBrowserHistory")?"replaceState":N;if(E)if(!g&&pe!=="replaceState")location.hash=I;else{const oe=new CustomEvent("hashchange",J);window.history[pe]({path:"/#"+I},"","/#"+I),window.dispatchEvent(oe)}else{const oe=new CustomEvent("popstate",J);window.history[pe]({path:I},"",I),window.dispatchEvent(oe)}}}async getChildren(t,n={}){const s=j.get(hr);if(!t)return[];let a=[];if(s.hasChildren(t)){let u=s.getChildren(t);u&&(a=u.children)}else try{a=await $r.getConfigValueFromObjectAsync(t,"children",n||t.context),a==null&&(a=[]),a=a.map(u=>this.getExpandStructuralPathSegment(u)).map(u=>this.bindChildToParent(u,t))||[]}catch(u){console.error("Could not lazy-load children for node",u)}let l=this.getAccessibleNodes(t,a,n);return s.setChildren(t,{children:a,filteredChildren:l}),l}getExpandStructuralPathSegment(t){if(t&&t.pathSegment&&t.pathSegment.indexOf("/")!==-1){const n=t.pathSegment.split("/"),s={...t},a=(l,u)=>{const f=l.shift();let h={};return l.length?(h.pathSegment=f,u.hideFromNav&&(h.hideFromNav=u.hideFromNav),h.children=[a(l,u)]):(h=s,h.pathSegment=f),h};return a(n,t)}return t}bindChildToParent(t,n){return n&&n.pathSegment&&(t.parent=n),t}buildVirtualTree(t,n,s){const a=t.virtualTree,l=t._virtualTree,u=t._virtualViewUrl||t.viewUrl;if((a||l)&&n){let f=typeof t._virtualPathIndex=="number"?t._virtualPathIndex:void 0;a&&(f=void 0,t.keepSelectedForChildren=!0);const h=50;if(typeof f=="number"&&f>h)return;const g=(f??0)+1;if(g>h)return;const _=["_*","virtualTree","parent","children","keepSelectedForChildren","navigationContext"],w=M.removeProperties(t,_);Object.assign(w,{pathSegment:":virtualSegment_"+g,label:":virtualSegment_"+g,viewUrl:M.trimTrailingSlash(this.buildVirtualViewUrl(u||"",s,g)),_virtualTree:!0,_virtualPathIndex:g,_virtualViewUrl:u});const m=Array.isArray(t.children)&&t.children.length>0?t.children[0]._virtualTree:!1;return t.children&&!m&&console.warn(`Found both virtualTree and children nodes defined on a navigation node.
93
93
  Children nodes are redundant and ignored when virtualTree is enabled.
94
- Please refer to documentation`),[w]}}buildVirtualViewUrl(t,n,s){let a="";for(const u in n)u.startsWith("virtualSegment")&&(a+=":"+u+"/");if(!s)return t;a+=":virtualSegment_"+s+"/";let l=t;t.includes("{virtualTreePath}")?l=t.replace("{virtualTreePath}",a):l=t+"/"+a;try{if(new URL(l,"http://dummy-base").origin===new URL(t,"http://dummy-base").origin)return l}catch(u){console.error("Error building virtual view URL -- make sure virtualTreePath is not part of origin.",u)}return t}async buildPath(t,n){const{fromVirtualTreeRoot:s,fromContext:a,fromClosestContext:l,fromParent:u,relative:f,nodeParams:h}=n,g=this.luigi.getConfigValue("routing.useHashRouting"),{path:_,query:w}=D.getCurrentPath(this.luigi,g),m=_+(w?"?"+w:""),E=await this.getPathData(m),C=E.nodesInPath;let R=t;if(C===void 0)return console.warn("No nodes in path found for current path:",m),R;if(s){R="";const I=[...C].map((N,F)=>N.virtualTree?F:-1).filter(N=>N!==-1).pop();C.forEach((N,F)=>{N.pathSegment&&(I===void 0||F<=I)&&(R+="/"+N.pathSegment)}),R+="/"+t}else if(a){const I=a,N=[...C].reverse().find(F=>I===F.navigationContext);R=D.concatenatePath(D.getSubPath(N,E.pathParams),t)}else if(l){const I=[...C].reverse().find(N=>N.navigationContext&&N.navigationContext.length>0);R=D.concatenatePath(D.getSubPath(I,E.pathParams),t)}else u?R=D.concatenatePath(D.getSubPath(E.selectedNode?.parent,E.pathParams),t):f&&(R=D.concatenatePath(D.getSubPath(E.selectedNode,E.pathParams),t));return h&&Object.keys(h).length>0&&(R+=R.includes("?")?"&":"?",Object.entries(h).forEach((I,N)=>{R+=encodeURIComponent(D.getContentViewParamPrefix(this.luigi)+I[0])+"="+encodeURIComponent(I[1])+(N<Object.keys(h).length-1?"&":"")})),R}async buildContextSwitcher(){const t=this.luigi.getConfigValue("navigation.contextSwitcher");if(!t)return;Qe.resetFallbackLabelCache();const n=await this.luigi.getConfigValueAsync("navigation.contextSwitcher.actions"),s=await Qe.fetchOptions(this.luigi),a=this.luigi.getConfig().routing?.useHashRouting,l=D.getCurrentPath(this.luigi,a),u=t.parentNodePath,f=t.fallbackLabelResolver;let h=await Qe.getSelectedLabel(l?.path,s,u,f,this.luigi),g=Qe.getSelectedNode(l?.path,s,u),_=Qe.getSelectedOption(l?.path,s,u);const w=(m,E)=>{if(!(!m||typeof m!="string"))if(E==="action"){const C=n.find(R=>R.link===m);if(C?.clickHandler&&!C.clickHandler(C))return;this.luigi.navigation().navigate(m)}else this.luigi.navigation().navigate(m)};if(t?.preserveSubPathOnSwitch&&s?.length&&_&&s.forEach(m=>{m.linkFromPath=Qe.getNodePathFromCurrentPath(m,_,this.luigi),m.link===_.link&&(_.linkFromPath=m.linkFromPath)}),!_&&n?.length){const m=n?.find(E=>E.link===`/${l?.path}`);m&&(h=m.label,g=m.link,_=m)}return{actions:n,config:t,options:s,selectedLabel:h,selectedNodePath:g,selectedOption:_,switcherChange:(m,E)=>w(m,E)}}}class Di{constructor(t){this.luigi=t,this.preloadBatchSize=1,this.shouldPreload=!1}preloadViewGroups(t=3,n){const s=this.luigi.getConfigValue("navigation.preloadViewGroups"),a=this.luigi.getConfigValue("navigation.viewGroupSettings"),l=this.luigi.getEngine()._connector?.getContainerWrapper();if(s===!1||!a||!l)return;const u=Date.now();if(this.getPreloadingContainers(l).filter(_=>u-(_._luigiPreloadCreatedAt||0)<3e4).length>0){console.log("skipping view group preloading (busy)");return}const h=[...l.childNodes].filter(_=>_.tagName?.startsWith("LUIGI-")&&_.viewGroup).map(_=>_.viewGroup),g=Object.entries(a).filter(([_])=>!h.includes(_)).filter(([_,w])=>w&&w.preloadUrl);n?g.forEach(([_,w])=>{w.loadOnStartup&&this.preloadContainerOnBackground(w,_,l)}):g.filter((_,w)=>w<t).forEach(([_,w])=>{this.preloadContainerOnBackground(w,_,l)})}preloadContainerOnBackground(t,n,s){const a=document.createElement("luigi-container");a.setAttribute("lui_container","true"),a.viewurl=t.preloadUrl,a.viewGroup=n,a.style.display="none",a._luigiPreloading=!0,a._luigiPreloadCreatedAt=Date.now(),a.luigiMfId=M.getRandomId(),this.luigi.getEngine()._comm.addListeners(a,this.luigi),s.appendChild(a)}preload(t){this.shouldPreload&&setTimeout(()=>{this.preloadViewGroups(this.preloadBatchSize,!!t)},t?1:0),this.shouldPreload=!0}viewGroupLoaded(t){if(t._luigiPreloading){const n=Date.now()-(t._luigiPreloadCreatedAt||0);let s=1;n<500?s=3:n<1e3&&(s=2),this.preloadBatchSize=s,setTimeout(()=>{t._luigiPreloading=!1},this.preloadBatchSize>2?500:1e3)}}getPreloadingContainers(t){return[...t.childNodes].filter(n=>n.tagName?.startsWith("LUIGI-")&&n._luigiPreloading)}}const zl={listeners:[],hashChangeWithoutSync:!1,addEventListener(r,t){this.listeners.push({type:r,listenerFn:t}),window.addEventListener(r,t)},removeEventListener(r,t){this.listeners=this.listeners.filter(n=>!(n.type===r&&n.listenerFn===t)),window.removeEventListener(r,t)},removeAllEventListeners(){this.listeners.forEach(r=>{window.removeEventListener(r.type,r.listenerFn)}),this.listeners=[]}};class Wr{constructor(t){this.luigi=t}getNavigationService(){return this.navigationService||(this.navigationService=j.get(dr),this.dirtyStatusService=j.get(un)),this.navigationService}shouldSkipRoutingForUrlPatterns(){const t=[/access_token=/,/id_token=/];return(this.luigi.getConfigValue("routing.skipRoutingForUrlPatterns")||t).filter(s=>location.href.match(s)).length!==0}enableRouting(){this.luigi.getConfig().routing?.useHashRouting?(zl.addEventListener("hashchange",n=>{const s=!!n?.detail?.preventContextUpdate,a=!!n?.detail?.withoutSync;this.handleRouteChange(D.getCurrentPath(this.luigi,!0,!0),a,s)}),this.handleRouteChange(D.getCurrentPath(this.luigi,!0,!0))):(zl.addEventListener("popstate",n=>{const s=!!n?.detail?.preventContextUpdate,a=!!n?.detail?.withoutSync;this.handleRouteChange(D.getCurrentPath(this.luigi,!1,!0),a,s)}),this.handleRouteChange(D.getCurrentPath(this.luigi,!1,!0)))}async handleRouteChange(t,n=!1,s=!1){const a=t.path,l=t.query,u=a+(l?"?"+l:""),f=new URLSearchParams(l),h=Object.create(null);try{if(this.dirtyStatusService?.shouldShowUnsavedChangesModal()){const R=window.location.href,I=this.dirtyStatusService.unsavedChanges.persistUrl;I&&history.pushState(window.state,"",I)}}catch{return}if(this.shouldSkipRoutingForUrlPatterns())return;this.setFeatureToggle(u),await this.shouldShowModalPathInUrl(t),f.forEach((R,I)=>{h[I]=R}),this.checkInvalidateCache(this.previousPathData,a);const g=await this.getNavigationService().getPathData(a),_=D.filterNodeParams(h,this.luigi),w=M.getPathWithoutHash(a)||"";this.currentRoute={raw:window.location.href,path:a,nodeParams:_};const m=g?.selectedNode??await this.getNavigationService().getCurrentNode(a),E=m?.viewUrl||"";if(m&&this.previousPathData&&await this.handleViewUrlMisconfigured(m,E,this.previousPathData,w)||await this.handlePageNotFound(m,E,g,a,w))return;const C=this.luigi.getEngine()._connector;if(C?.renderTopNav(await this.getNavigationService().getTopNavData(a,g)),C?.renderLeftNav(await this.getNavigationService().getLeftNavData(a,g)),C?.renderTabNav(await this.getNavigationService().getTabNavData(a,g)),C?.renderBreadcrumbs(await this.getNavigationService().getBreadcrumbData(a,g,R=>{C?.renderBreadcrumbs(R)})),m){const R={nodeParams:_||{},pathParams:g?.pathParams||{},searchParams:D.prepareSearchParamsForClient(m,this.luigi)};this.currentRoute.node=m,this.getNavigationService().onNodeChange(this.previousNode,m),this.previousNode=m,await G.updateMainContent(m,this.luigi,R,n,s),this.previousPathData=g}}getCurrentRoute(){return this.currentRoute}async shouldShowModalPathInUrl(t){this.luigi.getConfigValue("routing.showModalPathInUrl")&&await this.handleBookmarkableModalPath(t)}async handleBookmarkableModalPath(t){const n=j.get(dr),s=j.get(fr),a=new URLSearchParams(t?.query||""),l=D.getModalViewParamName(this.luigi),u=a.get(l);if(u){const f=a.get(`${l}Params`);try{const h=JSON.parse(f||"{}"),{nodeObject:g}=await n.extractDataFromPath(u);document.querySelector(".lui-modal luigi-container")?this.luigi.getEngine()._connector?.updateModalSettings(h):this.luigi.navigation().openAsModal(u,h||g.openNodeInModal)}catch(h){console.error("Error parsing modal settings from URL parameters",h)}}else return await s.closeModalsWithDirtyCheck(),void 0}appendModalDataToUrl(t,n){const s=D.getHashQueryParamSeparator(),a=D.getQueryParams(this.luigi),l=D.getModalViewParamName(this.luigi),u=a[l],f=new URL(location.href),h=this.luigi.getConfigValue("routing.useHashRouting");let g=history.state,_,w;if(h){let[m,E]=f.hash.split("?");_=m,w=D.getURLWithoutModalData(E,l),w&&(_+="?"+w)}else _=f.pathname,w=D.getURLWithoutModalData(f.search,l),w&&(_+="?"+D.getURLWithoutModalData(f.search,l));if(g=D.handleHistoryState(g,_),u!==t){if(a[l]=t,n&&Object.keys(n).length&&(a[`${l}Params`]=JSON.stringify(n)),h){const m=location.hash.indexOf(s);m!==-1&&(f.hash=f.hash.slice(0,m)),f.hash=`${f.hash}${s}${D.encodeParams(a)}`}else f.search=`?${D.encodeParams(a)}`;history.pushState(g,"",f.href)}else{const m=new URL(f);if(h){let E=m.hash.split("?")[0];m.hash=E,w&&(m.hash+="?"+w)}else m.search=w;history.replaceState({},"",m.href),history.pushState(g,"",f.href)}}removeModalDataFromUrl(t){const n=D.getQueryParams(this.luigi),s=D.getModalViewParamName(this.luigi);let a=new URL(location.href);if(this.luigi.getConfigValue("routing.useHashRouting")){let u={};n[s]&&(u[s]=n[s]),n[`${s}Params`]&&(u[`${s}Params`]=n[`${s}Params`]);let f=D.encodeParams(u);a.hash.includes(`?${f}`)?a.hash=a.hash.replace(`?${f}`,""):a.hash.includes(`&${f}`)&&(a.hash=a.hash.replace(`&${f}`,""))}else{let u=new URLSearchParams(a.search.slice(1));u.delete(s),u.delete(`${s}Params`);let f="";Array.from(u.keys()).forEach(h=>{f+=(f===""?"?":"&")+h+"="+u.get(h)}),a.search=f}if(history.state&&history.state.modalHistoryLength>=0&&t){history.state.modalHistoryLength;const u=history.state.pathBeforeHistory;let f=!1;if(window.addEventListener("popstate",h=>{f?(history.replaceState({},"",u),history.pushState({},"",u),history.back()):(history.pushState({},"",u),history.back())},{once:!0}),history.state.historygap===history.length-history.state.modalHistoryLength)history.go(-history.state.modalHistoryLength);else if(history.state.modalHistoryLength>history.length){const h=history.length-1;f=!0,history.go(-h),window.Luigi.preventLoadingModalData=!0}else{const h=history.state.modalHistoryLength;history.go(-h)}}else history.pushState({},"",a.href)}setFeatureToggle(t){const n=this.luigi.getConfigValue("settings.featureToggles.queryStringParam"),s=this.luigi.featureToggles();n&&typeof t=="string"&&D.setFeatureToggles(n,t,s)}updateModalDataInUrl(t,n,s){let a=D.getHashQueryParamSeparator();const l=D.getQueryParams(this.luigi),u=D.getModalViewParamName(this.luigi);l[u]=t,n&&Object.keys(n).length&&(l[`${u}Params`]=JSON.stringify(n));const f=new URL(location.href);if(this.luigi.getConfigValue("routing.useHashRouting")){const g=location.hash.indexOf(a);g!==-1&&(f.hash=f.hash.slice(0,g)),f.hash=`${f.hash}${a}${D.encodeParams(l)}`}else f.search=`?${D.encodeParams(l)}`;s?history.pushState(window.state,"",f.href):history.replaceState(window.state,"",f.href)}checkInvalidateCache(t,n){if(!t)return;const s=j.get(hr);let a=n.split("/");if(t.nodesInPath&&t.nodesInPath.length>0){let l=t.nodesInPath.slice(1),u=!0;for(let f=0;f<l.length;f++){let h=a.length>f?a[f]:void 0,g=l[f];if(h!==g.pathSegment||!u)if(D.isDynamicNode(g)){if(!u||h!==D.getDynamicNodeValue(g,t.pathParams)){s.deleteNodesRecursively(g);break}}else u=!1}}else s.deleteCache()}async handlePageNotFound(t,n,s,a,l){const u=M.getTrimmedUrl(a),f=D.isExistingRoute(u,s);if(!n&&!t?.compound||t?.tabNav?.showAsTabHeader){const h=await D.getDefaultChildNode(s,async(g,_)=>await this.getNavigationService().getChildren(g,_));if(f){const g=M.getTrimmedUrl(a);return this.getNavigationService().handleNavigationRequest({path:`${g?`/${g}`:""}/${h}`,preserveView:void 0,modalSettings:void 0,newTab:!1,withoutSync:!1,preventContextUpdate:!1,preventHistoryEntry:!0}),!1}else{if(h&&s?.nodesInPath&&s.nodesInPath.length>1)return this.showPageNotFoundError(M.trimTrailingSlash(u||"")+"/"+h,l,!0),!0;const g=await D.getDefaultChildNode(s);this.showPageNotFoundError(g,l,!1)}return!0}return f?!1:(this.showPageNotFoundError(s.matchedPath,l,!0),!0)}async showPageNotFoundError(t,n,s=!1){const a=D.getPageNotFoundRedirectResult(n,s,this.luigi);if(a.ignoreLuigiErrorHandling)return;const l=a.path;if(l){if(a.keepURL){const u=this.luigi.getConfig().routing?.useHashRouting,f=D.getCurrentPath(this.luigi,u);f.path=l,this.handleRouteChange(f)}else this.getNavigationService().handleNavigationRequest({path:l});return}D.showRouteNotFoundAlert(n,s,this.luigi),this.getNavigationService().handleNavigationRequest({path:M.addLeadingSlash(t)})}async handleViewUrlMisconfigured(t,n,s,a){const{children:l,intendToHaveEmptyViewUrl:u,compound:f}=t,h=!!l?.length;if(!f&&n.trim()===""&&!h&&!u){if(console.warn("The intended target route can't be accessed since it has neither a viewUrl nor children. This is most likely a misconfiguration."),!(s&&(s.selectedNode?.viewUrl||s.selectedNode&&s.selectedNode.compound))){const g=await this.getNavigationService().getPathData("/"),_=await D.getDefaultChildNode(g);this.showPageNotFoundError(_,a,!1),this.getNavigationService().handleNavigationRequest({path:_})}return!0}return!1}}class Mi{constructor(){this.decorators=[]}hasDecorators(){return this.decorators.length>0}add(t){this.decorators=this.decorators.filter(n=>n.uid!==t.uid).concat(t)}applyDecorators(t,n){if(!t)return t;const s=new URL(M.prependOrigin(t)),a=this.decorators.filter(l=>l.type==="queryString");for(let l=0;l<a.length;l++){const u=a[l];s.searchParams.has(u.key)&&s.searchParams.delete(u.key);const f=u.valueFn();s.searchParams.append(u.key,f)}return n&&(s.search=decodeURIComponent(s.search)),s.href}}const Ia=async(r,t,n)=>{const s=await t.readUserSettings(),l=r.userSettingsGroup&&typeof s=="object"&&s!==null&&r.userSettingsGroup?s[r.userSettingsGroup]:null,u=n?.nodeParams||{},f=n?.pathParams||{},h=n?.searchParams||{};if(r.webcomponent&&r.viewUrl&&!D.checkWCUrl(r.viewUrl,t))return console.warn(`View URL '${r.viewUrl}' not allowed to be included`),document.createElement("div");if(r.compound){const g=document.createElement("luigi-compound-container");return g.setAttribute("lui_container","true"),g.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,f,u,t),r.decodeViewUrl??!1):"",g.webcomponent=r.webcomponent??!1,g.compoundConfig=r.compound,g.context=r.context,g.clientPermissions=r.clientPermissions??{},g.nodeParams=u,g.pathParams=f,g.userSettingsGroup=r.userSettingsGroup,g.userSettings=l,g.searchParams=h,g.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),g.locale=t.i18n().getCurrentLocale(),g.theme=t.theming().getCurrentTheme(),g.viewGroup=r.viewGroup,g.virtualTree=r.virtualTree||r._virtualTree,g.virtualTreeRootNode=Oe.findVirtualTreeRootNode(r),t.getEngine()._comm.addListeners(g,t),g}else{const g=document.createElement("luigi-container");return g.setAttribute("lui_container","true"),g.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,f,u,t),r.decodeViewUrl??!1):"",g.webcomponent=r.webcomponent??!1,g.context=r.context,g.authData=ir.getStoredAuthData(),g.clientPermissions=r.clientPermissions??{},g.cssVariables=await t.theming().getCSSVariables(),g.nodeParams=u,g.pathParams=f,g.userSettingsGroup=r.userSettingsGroup,g.userSettings=l,g.searchParams=h,g.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),g.locale=t.i18n().getCurrentLocale(),g.theme=t.theming().getCurrentTheme(),g.viewGroup=r.viewGroup,g.virtualTree=r.virtualTree||r._virtualTree,g.virtualTreeRootNode=Oe.findVirtualTreeRootNode(r),qd(g,t),zd(g,t),t.getEngine()._comm.addListeners(g,t),g.luigiMfId=M.getRandomId(),g}},qd=(r,t)=>{const n=t.getConfigValue("settings.customSandboxRules");if(!n?.length)return;const s=["allow-forms","allow-modals","allow-popups","allow-popups-to-escape-sandbox","allow-same-origin","allow-scripts"],a=n?[...new Set([...s,...n])]:s;r.sandboxRules=a},zd=(r,t)=>{const n=t.getConfigValue("settings.allowRules");n?.length&&(n.forEach((s,a)=>{n[a]=s+(s.indexOf(";")!=-1?"":";")}),r.allowRules=n)},G={navService:void 0,routingService:void 0,luigi:void 0,modalContainer:[],drawerContainer:void 0,init:r=>{G.navService=j.get(dr),G.routingService=j.get(Wr),G.luigi=r,r.getEngine()._connector?.renderMainLayout();const t=j.get(Di);t.shouldPreload=!0,t.preload(!0),t.shouldPreload=!1},update:async r=>{const t=G.routingService.getCurrentRoute();if(!t)return;const n=!r||r.length===0;if((n||r.includes("settings.header")||r.includes("settings")||r.includes("navigation")||r.includes("navigation.profile")||r.includes("navigation.contextSwitcher")||r.includes("navigation.productSwitcher"))&&G.luigi.getEngine()._connector?.renderTopNav(await G.navService.getTopNavData(t.path)),n||r.includes("navigation")||r.includes("navigation.nodes")||r.includes("navigation.viewgroupdata")||r.includes("settings")||r.includes("settings.footer")){j.get(hr).deleteCache(),G.luigi.getEngine()._connector?.renderLeftNav(await G.navService.getLeftNavData(t.path)),G.luigi.getEngine()._connector?.renderTabNav(await G.navService.getTabNavData(t.path));const s=G.luigi.getEngine()._connector;s?.renderBreadcrumbs(await G.navService.getBreadcrumbData(t.path,void 0,a=>{s?.renderBreadcrumbs(a)}))}if(n||r.includes("navigation")||r.includes("navigation.nodes")||r.includes("navigation.viewgroupdata")){if(j.get(hr).deleteCache(),t.path){const a=(await G.navService.getPathData(t.path))?.selectedNode??t.node;a&&(t.node=a,G.updateMainContent(a,G.luigi))}}else r.includes("settings.theming")&&t.node&&G.updateMainContent(t.node,G.luigi)},updateMainContent:async(r,t,n,s,a)=>{const l=await t.readUserSettings(),f=r.userSettingsGroup&&typeof l=="object"&&l!==null&&r.userSettingsGroup?l[r.userSettingsGroup]:null,h=t.getEngine()._connector?.getContainerWrapper();t.getEngine()._connector?.hideLoadingIndicator(h);const g=n?.nodeParams||{},_=n?.pathParams||{},w=n?.searchParams||{};if(r&&h){let m,E;if((r.virtualTree||r._virtualTree)&&(E=Oe.findVirtualTreeRootNode(r)),[...h.childNodes].forEach(C=>{if(C.tagName?.indexOf("LUIGI-")===0)if(C.viewGroup&&r.viewGroup!==C.viewGroup){C.style.display="none";const R=t.getConfigValue("navigation.viewGroupSettings")?.[C.viewGroup];R?.preloadUrl&&(C.viewurl=R.preloadUrl,C.context={},C.nodeParams={},C.pathParams={})}else C.viewGroup||C.virtualTree&&E===C.virtualTreeRootNode?m=C:C.remove()}),m&&m._luigiPreloading&&(m._luigiPreloading=!1,j.get(Di).viewGroupLoaded(m)),m)s||(m.style.display="block",m.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,_,g,t),r.decodeViewUrl??!1):"",m.nodeParams=g,m.pathParams=_,m.clientPermissions=r.clientPermissions,m.searchParams=w,m.locale=t.i18n().getCurrentLocale(),m.theme=t.theming().getCurrentTheme(),m.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),m.userSettingsGroup=r.userSettingsGroup,m.userSettings=f,qd(m,t),zd(m,t)),a||m.updateContext(r.context||{},{withoutSync:!1});else{const C=await Ia(r,t,n);h?.appendChild(C);const R=t.getEngine()._connector;r.loadingIndicator?.enabled!==!1&&R?.showLoadingIndicator(h)}}},openModal:async(r,t,n,s)=>{const a=await Ia(t,r);G.modalContainer.push(a);const l=j.get(Wr),u=j.get(fr),f=j.get(un);let h=!1,g,_;const m=new Promise(R=>{g=()=>{h||(h=!0,R(),u.removeLastModalFromStack())},_=async()=>{try{await f.getUnsavedChangesModalPromise(a)}catch{return}g&&g(),r.getConfigValue("routing.showModalPathInUrl")&&u.getModalStackLength()===0&&l.removeModalDataFromUrl(!0)},a.addEventListener(k.CLOSE_CURRENT_MODAL_REQUEST,_)}),E={closePromise:m,resolveFn:g,onCloseRequestHandler:_,onInternalClose:()=>{try{f.clearDirtyState(a),E.resolveFn&&E.resolveFn()}catch(R){console.warn("onInternalClose failed",R)}},modalsettings:n};u.registerModal(E),r.getEngine()._connector?.renderModal(a,n,async()=>{try{await f.getUnsavedChangesModalPromise(a)}catch{return}s?.(),g&&g(),r.getConfigValue("routing.showModalPathInUrl")&&u.getModalStackLength()===0&&l.removeModalDataFromUrl(!0)},()=>m);const C=r.getEngine()._connector;t.loadingIndicator?.enabled!==!1&&C?.showLoadingIndicator(a.parentElement)},updateModalSettings:(r,t,n)=>{const s=j.get(fr);if(s.getModalStackLength()===0)return;s.updateFirstModalSettings(r);const a=j.get(Wr),l=D.getModalPathFromPath(n);l&&a.updateModalDataInUrl(l,s.getModalSettings(),t),n.getEngine()._connector?.updateModalSettings(s.getModalSettings())},openDrawer:async(r,t,n,s)=>{const a=j.get(un);if(G.drawerContainer&&a.shouldShowUnsavedChangesModal(G.drawerContainer))try{await a.getUnsavedChangesModalPromise(G.drawerContainer)}catch{return}const l=await Ia(t,r);G.drawerContainer=l;const u=new Promise(h=>{const g=async()=>{try{await a.getUnsavedChangesModalPromise(l)}catch{return}G.drawerContainer=void 0,a.clearDirtyState(l),h()};l.addEventListener(k.CLOSE_CURRENT_MODAL_REQUEST,g)});r.getEngine()._connector?.renderDrawer(l,n,async()=>{try{await a.getUnsavedChangesModalPromise(l)}catch{return}s?.(),G.drawerContainer=void 0,a.clearDirtyState(l)},()=>u);const f=r.getEngine()._connector;t.loadingIndicator?.enabled!==!1&&f?.showLoadingIndicator(l.parentElement)},openUserSettings:async(r,t,n,s)=>{const a={},l=async(f,h)=>{const g=f.viewUrl,_=f.webcomponent??!1,w=n?.[h]||{},m={...f.context,userSettingsData:w},E=await Ia({viewUrl:g,userSettingsGroup:h,webcomponent:_,context:m},s);return E.addEventListener(k.CUSTOM_MESSAGE,C=>{const R=C.detail;R?.id==="luigi.updateUserSettings"&&(a[h]=R.data?.data??R.data)}),E},u=async(f,h)=>{const g={...f,...a};await s.storeUserSettings(g,h)};r.renderMicroFrontendContainer=l,r.onCloseCallback=u,s.getEngine()._connector?.openUserSettings(r,t,n)}};class iC{constructor(){this._userInfoStore=$a({}),this._loggedInStore=$a(!1)}setUserInfo(t){this._userInfoStore.set(t)}setLoggedIn(t){this._loggedInStore.set(t)}getUserInfoStore(){return this._userInfoStore}getLoggedInStore(){return this._loggedInStore}async init(){const t=ot.getConfigValue("auth.use");if(!t)return Promise.resolve(!0);const n=ot.getConfigValue(`auth.${t}`),s=ir.parseUrlAuthErrors()||{};if(await ir.handleUrlAuthErrors(n,s.error,s.errorDescription))return this.idpProviderInstance=this.getIdpProviderInstance(t,n),M.isPromise(this.idpProviderInstance)?this.idpProviderInstance.then(l=>(this.idpProviderInstance=l,this.checkAuth(n))).catch(l=>{const u=`Error: ${l.message||l}`;console.error(u,l.message&&l),ot.setErrorMessage(u)}):this.checkAuth(n)}async checkAuth(t){const n=ir.getStoredAuthData();if(!n||!ir.isLoggedIn()){if(ot.getConfigValue("auth.disableAutoLogin"))return;let a=!0;return n&&(a=await _i.handleAuthEvent("onAuthExpired",t)),a?this.startAuthorization():void 0}this.idpProviderInstance.settings&&M.isFunction(this.idpProviderInstance.settings.userInfoFn)?this.idpProviderInstance.settings.userInfoFn(this.idpProviderInstance.settings,n).then(a=>{this.setUserInfo(a),this.setLoggedIn(!0)}):M.isFunction(this.idpProviderInstance.userInfo)?this.idpProviderInstance.userInfo(t).then(a=>{this.setUserInfo(a),this.setLoggedIn(!0)}):(this.setLoggedIn(!0),this.setUserInfo(Bh(this._userInfoStore))),M.isFunction(ot.getConfigValue("auth.events.onAuthSuccessful"))&&rn.isNewlyAuthorized()&&await _i.handleAuthEvent("onAuthSuccessful",t,n),rn.removeNewlyAuthorized(),M.isFunction(this.idpProviderInstance.setTokenExpirationAction)&&this.idpProviderInstance.setTokenExpirationAction(),M.isFunction(this.idpProviderInstance.setTokenExpireSoonAction)&&this.idpProviderInstance.setTokenExpireSoonAction()}async startAuthorization(){if(this.idpProviderInstance)return this.idpProviderInstance.login().then(t=>{rn.setNewlyAuthorized(),t&&console.error(t)})}logout(){const t=ir.getStoredAuthData(),n=async l=>{await _i.handleAuthEvent("onLogout",this.idpProviderInstance.settings,void 0,l),rn.removeAuthData()},s=ot.getConfigValue(`auth.${ot.getConfigValue("auth.use")}.logoutFn`),a=ot.getConfigValueAsync("navigation.profile.logout.customLogoutFn");M.isFunction(s)?s(this.idpProviderInstance.settings,t,n):M.isFunction(this.idpProviderInstance.logout)?this.idpProviderInstance.logout(t,n):a&&M.isFunction(a)?a(t,n):n(this.idpProviderInstance.settings.logoutUrl)}createIdpProviderException(t){return{message:t,name:"IdpProviderException"}}async getIdpProviderInstance(t,n){const s=M.getConfigValueFromObject(n,"idpProvider");if(s){const l=await new s(n);return["login"].forEach(u=>{if(!M.isFunction(l[u]))throw this.createIdpProviderException(`${u} function does not exist in custom IDP Provider ${t}`)}),l}if(M.isFunction(ot.getConfigValue("auth.events.onAuthConfigError")))await _i.handleAuthEvent("onAuthConfigError",{idpProviderName:t,type:"IdpProviderException"});else throw this.createIdpProviderException(`IDP Provider ${t} does not exist.`)}unload(){this.idpProviderInstance&&M.isFunction(this.idpProviderInstance.unload)&&this.idpProviderInstance.unload()}resetExpirationChecks(){this.idpProviderInstance&&M.isFunction(this.idpProviderInstance.resetExpirationChecks)&&this.idpProviderInstance.resetExpirationChecks()}broadcastAuthData(t){const s=ot.getLuigi()?.getEngine()?._connector?.getContainerWrapper();if(s){for(const a of s.childNodes)a.tagName?.startsWith("LUIGI-")&&a.setAttribute("auth-data",JSON.stringify(t));G.modalContainer?.forEach(a=>a.setAttribute("auth-data",JSON.stringify(t))),G.drawerContainer&&G.drawerContainer.setAttribute("auth-data",JSON.stringify(t))}}}const ar=new iC,sC={luigi:{button:{confirm:"Yes",dismiss:"No"},confirmationModal:{body:"Are you sure you want to do this?",header:"Confirmation"},navigation:{up:"Up"},notExactTargetNode:"Could not map the exact target node for the requested route {route}.",requestedRouteNotFound:"Could not find the requested route {route}.",unsavedChangesAlert:{body:"Unsaved changes will be lost. Do you want to continue?",header:"Unsaved changes detected"}}},aC=sC;class oC{constructor(t){this.luigi=t,this.currentLocaleStorageKey="luigi.currentLocale",this.defaultLocale="en",this.listeners={},this.translationTable=aC}_init(){this._initCustomImplementation(),this.addCurrentLocaleChangeListener(t=>{this.broadcastLocaleToAllContainers(t)})}getCurrentLocale(){return sessionStorage.getItem(this.currentLocaleStorageKey)||this.defaultLocale}setCurrentLocale(t){t&&(sessionStorage.setItem(this.currentLocaleStorageKey,t),this._notifyLocaleChange(t)),this.luigi.getEngine()._connector?.setCurrentLocale(t)}addCurrentLocaleChangeListener(t){let n=null;return M.isFunction(t)?(n=M.getRandomId(),this.listeners[n]=t):console.error("Provided locale change listener is not a function."),n}removeCurrentLocaleChangeListener(t){t&&this.listeners[t]?delete this.listeners[t]:console.error("Unable to remove locale change listener - no listener registered for given ID.")}getTranslation(t,n=void 0,s=void 0){if(!t)return"";if(this.translationImpl){const l=this.translationImpl.getTranslation(t,n,s);if(l!==t)return l}const a=this.findTranslation(t,this.translationTable,n);return a||t}_notifyLocaleChange(t){Object.getOwnPropertyNames(this.listeners).forEach(n=>{this.listeners[Number(n)](t)}),this.luigi.configChanged()}_initCustomImplementation(){this.translationImpl=this.luigi.getConfigValue("settings.customTranslationImplementation"),M.isFunction(this.translationImpl)&&(this.translationImpl=this.translationImpl())}broadcastLocaleToAllContainers(t){const n=M.getNodeList("luigi-container[lui_container]");n?.length&&t&&n.forEach(s=>{s.locale=t,s.updateContext({locale:t})})}findTranslation(t,n,s){const a=t.split(".");for(let l=0;l<a.length;l++){const u=a[l];if(Object.prototype.hasOwnProperty.call(n,u)&&typeof n[u]=="object")n=n[u];else return s?this.findInterpolations(n[u],s):n[u]}}findInterpolations(t,n){return typeof t!="string"||!t.trim()||Object.keys(n).forEach(s=>{t=t.replace(new RegExp("{"+Ba.escapeKeyForRegexp(s)+"}","gi"),n[s])}),t}}const Kl={getMicrofrontendsInDom(r){return[...this.getMainMicrofrontends(r).map(t=>({container:t.iframe,active:t.active,type:"main",id:t.id})),...this.getModalMicrofrontends().map(t=>({container:t.iframe,active:t.active,type:"modal",id:t.id})),...(()=>{const t=this.getDrawerMicrofrontends();return t.iframe?[{container:t.iframe,active:t.active,type:"drawer",id:t.id}]:[]})()]},getMainMicrofrontends(r){const t=r.getEngine()._connector?.getContainerWrapper();if(!t)return[];const n=[];for(const s of t.childNodes)if(s.tagName?.startsWith("LUIGI-"))if(s.iframeHandle?.iframe)n.push({iframe:s.iframeHandle.iframe,id:s.luigiMfId,active:M.isElementVisible(s)});else{const a=s.shadowRoot?.firstElementChild?.firstElementChild??null;a&&n.push({iframe:a,id:s.luigiMfId,active:M.isElementVisible(s)})}return n},getModalMicrofrontends(){const r=[];for(const t of G.modalContainer)if(t.iframeHandle?.iframe)r.push({iframe:t.iframeHandle.iframe,id:t.luigiMfId,active:M.isElementVisible(t)});else{const n=t.shadowRoot?.firstElementChild?.firstElementChild??null;n&&r.push({iframe:n,id:t.luigiMfId,active:M.isElementVisible(t)})}return r},getDrawerMicrofrontends(){if(!G.drawerContainer)return{};if(G.drawerContainer.iframeHandle?.iframe)return{iframe:G.drawerContainer.iframeHandle.iframe,id:G.drawerContainer.luigiMfId,active:M.isElementVisible(G.drawerContainer)};{const r=G.drawerContainer.shadowRoot?.firstElementChild?.firstElementChild??null;if(r)return{iframe:r,id:G.drawerContainer.luigiMfId,active:M.isElementVisible(G.drawerContainer)}}return{}},getAllLuigiContainerIframe(r){const t=r.getEngine()._connector?.getContainerWrapper();if(!t)return;const n=[...t.children].filter(s=>s.tagName?.indexOf("LUIGI-CONTAINER")===0&&s.iframeHandle?.iframe);for(const s of G.modalContainer)s.iframeHandle?.iframe&&n.push(s);return G.drawerContainer&&G.drawerContainer.iframeHandle?.iframe&&n.push(G.drawerContainer),n.length>0?n:void 0}};class lC{constructor(t){this.luigi=t}getShellbar(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getShellbarElement()||null}getShellbarActions(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getShellbarActions()||null}getLuigiContainer(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getLuigiContainer()||null}getNavFooterContainer(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getNavFooterContainer()||null}getMicrofrontends(){return Kl.getMicrofrontendsInDom(this.luigi)}getMicrofrontendIframes(){const t=this.luigi.getEngine()._connector?.getContainerWrapper();let n=[];if(G.modalContainer)for(const s of Array.from(G.modalContainer))s.tagName?.startsWith("LUIGI-")&&s.iframeHandle?.iframe&&n.push(s.iframeHandle.iframe);if(G.drawerContainer&&n.push(G.drawerContainer.iframeHandle.iframe),!t)return null;for(const s of Array.from(t.childNodes))s.tagName?.startsWith("LUIGI-")&&s.iframeHandle?.iframe&&n.push(s.iframeHandle.iframe);return n}getCurrentMicrofrontendIframe(){const t=this.luigi.getEngine()._connector?.getContainerWrapper();if(!t)return null;const n=G.modalContainer[0]?.iframeHandle?.iframe??null;let s=null,a=null;for(const l of Array.from(t.children))l.tagName?.startsWith("LUIGI-")&&M.isElementVisible(l)&&(l.iframeHandle?.iframe?s=l.iframeHandle.iframe:a=l.shadowRoot?.firstElementChild?.firstElementChild??null);return n||s||a}}const uC={luigiAfterInit:async r=>{M.getConfigBooleanValue(r.getConfig(),"settings.appLoadingIndicator.hideAutomatically")&&setTimeout(()=>{r.ux().hideAppLoadingIndicator()},0),await ot.executeConfigFnAsync("lifecycleHooks.luigiAfterInit")}};class cC{constructor(){this.featureToggleList=new Set}setFeatureToggle(t,n=!1){this.isValid(t)&&(t.startsWith("!")&&!n||this.isDuplicatedOrDisabled(t)||this.featureToggleList.add(t))}unsetFeatureToggle(t){if(this.isValid(t)){if(!this.featureToggleList.has(t)){console.warn("Feature toggle name is not in the list.");return}this.featureToggleList.delete(t)}}getActiveFeatureToggleList(){return[...Array.from(this.featureToggleList)].filter(n=>!n.startsWith("!"))}isValid(t){return M.isString(t)?!0:(console.warn("Feature toggle name is not valid or not of type 'string'"),!1)}isDuplicatedOrDisabled(t){return this.featureToggleList.has(t)?(console.warn("Feature toggle name already exists"),!0):this.featureToggleList.has(`!${t}`)?(console.warn("Disabled feature toggle can not be activated"),!0):!1}}class fC{constructor(t){this.hashRouting=!1,this.options={fromContext:null,fromClosestContext:!1,fromVirtualTreeRoot:!1,fromParent:!1,nodeParams:{}},this.navigate=async(n,s,a,l,u)=>{const f=n[0]!=="/";this.options.relative=f;const h={modalSettings:a,newTab:!1,options:this.options,path:n,preserveView:s,preventContextUpdate:!1,preventHistoryEntry:!1,withoutSync:!1};return this.navService.handleNavigationRequest(h,void 0)},this.navigateToIntent=(n,s={})=>{let a="#?intent=";if(a+=n,s&&Object.keys(s)?.length){const l=Object.entries(s);if(l.length>0){a+="?";for(const[u,f]of l)a+=u+"="+f+"&";a=a.slice(0,-1)}}this.navigate(a)},this.openAsModal=async(n,s,a)=>{if(!s?.keepPrevious&&!await this.modalService.closeModalsWithDirtyCheck())return;const l=n.replace(/\/\/+/g,"/");if(!await Oe.validatePathAndGetRedirect(l,this.luigi))return;const f=await this.navService.getCurrentNode(l),h=s||{};h.title||(h.title=f?.label),this.luigi.getConfigValue("routing.showModalPathInUrl")&&this.modalService.getModalStackLength()===0&&this.routingService.appendModalDataToUrl(l,h),this.luigi.getEngine()._ui.openModal(this.luigi,f,h,a)},this.openAsDrawer=async(n,s,a)=>{const l=n.replace(/\/\/+/g,"/");if(!await Oe.validatePathAndGetRedirect(l,this.luigi))return;const f=await this.navService.getCurrentNode(l),h=s||{};if(!h.header?.title){const _=await D.getNodeLabel(f,this.luigi)||"";h.header?h.header.title=_:h.header={title:_}}h.overlap===void 0&&(h.overlap=!0),this.luigi.getEngine()._ui.openDrawer(this.luigi,f,h,a)},this.runTimeErrorHandler=async n=>{const{path:s}=D.getCurrentPath(this.luigi,this.luigi.getConfig().routing?.useHashRouting),a=await this.navService.getCurrentNode(s),l=this.luigi.getConfigValue("navigation.defaults.runTimeErrorHandler");a?.runTimeErrorHandler?.errorFn&&M.isFunction(a?.runTimeErrorHandler?.errorFn)?a.runTimeErrorHandler.errorFn(n,a):l?.errorFn&&M.isFunction(l.errorFn)&&l.errorFn(n,a)},this.pathExists=async n=>await D.pathExists(n,this.luigi),this.luigi=t,this.hashRouting=t.getConfig().routing?.useHashRouting,this.navService=j.get(dr),this.routingService=j.get(Wr),this.modalService=j.get(fr)}fromVirtualTreeRoot(){return this.options.fromContext=null,this.options.fromClosestContext=!1,this.options.fromVirtualTreeRoot=!0,this.options.fromParent=!1,this}fromContext(t){return this.options.fromContext=t,this}fromClosestContext(){return this.options.fromContext=null,this.options.fromClosestContext=!0,this.options.fromParent=!1,this}fromParent(){return this.options.fromContext=null,this.options.fromClosestContext=!1,this.options.fromVirtualTreeRoot=!1,this.options.fromParent=!0,this}withParams(t){return t&&Object.assign(this.options.nodeParams??{},t),this}}class hC{constructor(t){this.luigi=t}addSearchParams(t,n=!1){if(!M.isObject(t)){console.log("Params argument must be an object");return}const s=new URL(location.href);this.luigi.getConfigValue("routing.useHashRouting")?s.hash=D.addParamsOnHashRouting(t,s.hash):D.modifySearchParams(t,s.searchParams),this.handleBrowserHistory(n,s),this.luigi.configChanged()}getSearchParams(){const t={},n=["__proto__","constructor","prototype"],s=new URL(location.href);let a;if(this.luigi.getConfigValue("routing.useHashRouting")){const l=s.hash.split("?")[1];a=l?new URLSearchParams(l).entries():[]}else a=s.searchParams.entries();for(const[l,u]of a){if(n.some(f=>l===f)){console.warn(`Blocked because of potentially dangerous query param: ${l}`);continue}t[l]=u}return t}handleBrowserHistory(t,n){const s=this.sanitizeUrl(n.href);if(!s){console.warn("invalid url: "+s);return}t?window.history.pushState({},"",s):window.history.replaceState({},"",s)}sanitizeUrl(t){return new URL(location.href).origin===new URL(t).origin?t:void 0}addNodeParams(t,n){if(!M.isObject(t)){console.log("Params argument must be an object");return}const s=D.getContentViewParamPrefix(this.luigi),a=new URL(location.href);this.luigi.getConfigValue("routing.useHashRouting")?a.hash=D.addParamsOnHashRouting(t,a.hash,s):D.modifySearchParams(t,a.searchParams,s),this.handleBrowserHistory(n,a),this.luigi.getConfigValue("routing.useHashRouting")?window.dispatchEvent(new HashChangeEvent("hashchange")):this.luigi.configChanged()}}class dC{#e;#n="";constructor(t){this.#e=t}async getAvailableThemes(){return await this.#e.getConfigValueAsync("settings.theming.themes")}setCurrentTheme(t){this.#n=t,this.#e.__cssVars=void 0}async getThemeObject(t){return(await this.getAvailableThemes())?.find(s=>s.id===t)}getCurrentTheme(){if(!this.isThemingAvailable())return!1;if(this.#n)return this.#n;const t=this.#e.getConfigValue("settings.theming");return t.defaultTheme||console.error("[Theming] getCurrentTheme() error. No theme set and no defaultTheme found in configuration",t),t.defaultTheme}isThemingAvailable(){return!!this.#e.getConfigValue("settings.theming")}async getCSSVariables(){if(!window.Luigi.__cssVars){const t=this.#e.getConfigValue("settings.theming.variables.file");if(t)try{const n=await fetch(t);window.Luigi.__cssVars=(await n.json()).root,Object.keys(window.Luigi.__cssVars).forEach(s=>{const a=getComputedStyle(document.documentElement).getPropertyValue("--"+s);a&&(window.Luigi.__cssVars[s]=a)})}catch(n){M.isFunction(this.#e.getConfigValue("settings.theming.variables.errorHandling"))?this.#e.getConfigValue("settings.theming.variables.errorHandling")(n):console.error("CSS variables file error: ",n)}else this.#e.getConfigValue("settings.theming.variables")==="fiori"&&window.__luigiThemeVars?(window.Luigi.__cssVars={},window.__luigiThemeVars.forEach(n=>{window.Luigi.__cssVars[n]=getComputedStyle(document.documentElement).getPropertyValue("--"+n)})):window.Luigi.__cssVars={}}return window.Luigi.__cssVars}_init(){const t=j.get(Mi);(()=>{const s=this.#e.getConfigValue("settings.theming");s&&s.nodeViewURLDecorator&&s.nodeViewURLDecorator.queryStringParameter&&t.add({type:"queryString",uid:"theming",key:s.nodeViewURLDecorator.queryStringParameter.keyName,valueFn:()=>{const a=this.getCurrentTheme(),l=s.nodeViewURLDecorator.queryStringParameter.value;return l?l(a):a}}),s&&s.useFioriScrollbars===!0&&document.body.classList.add("fioriScrollbars")})()}}let Lh;const qe={luigi:void 0,documentTitle:void 0,init:r=>{qe.luigi=r,qe.documentTitle=$a(void 0),Lh=j.get(un)},processAlert:(r,t,n)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");const s={openFromClient:t,close:()=>{r.id&&n.notifyAlertClosed(r.id)},link:a=>{if(r.links){const l=r.links[a];if(l&&(l.url&&qe.luigi?.navigation().navigate(l.url),l.dismissKey&&r.id))return n.notifyAlertClosed(r.id,l.dismissKey),!0}return!1}};qe.luigi.getEngine()._connector?.renderAlert(r,s)},handleConfirmationModalRequest:(r,t)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");r&&(r={...r,header:qe.luigi.i18n().getTranslation(r.header||"luigi.confirmationModal.header"),body:qe.luigi.i18n().getTranslation(r.body||"luigi.confirmationModal.body"),buttonDismiss:qe.luigi.i18n().getTranslation(r.buttonDismiss||"luigi.button.dismiss"),buttonConfirm:qe.luigi.i18n().getTranslation(r.buttonConfirm||"luigi.button.confirm")}),qe.luigi.getEngine()._connector?.renderConfirmationModal(r,{confirm(){t.notifyConfirmationModalClosed(!0)},dismiss(){t.notifyConfirmationModalClosed(!1)}})},handleDirtyStatusRequest:(r,t)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");Lh.updateDirtyStatus(r,t)}};class gC{processUserSettingGroups(t,n){const s=[],a=t?.userSettingGroups,l=n?.userSettings?.userSettingGroups,u=a||l;if(M.isObject(u)){for(const f in u){const h={};h[f]=u[f],s.push(h)}return s}return s}getUserSettingsIframesInDom(){const t=document.querySelector(".iframeUserSettingsCtn");return t?[...t.children]:[]}hideUserSettingsIframe(){this.getUserSettingsIframesInDom().forEach(t=>{t.style.display="none"})}findActiveCustomUserSettingsIframe(t){const n=document.querySelectorAll("[userSettingsGroup]");for(let s=0;s<n.length;s++)if(n[s].contentWindow===t)return n[s];return null}}const pC=new gC;class vC{constructor(t){this.dirtyStatusService=j.get(un),this.appLoadingIndicatorSelector="[luigi-app-loading-indicator]",this.showAlert=n=>new Promise(s=>{n.id||(n.id=M.getRandomId().toString());const a={openFromClient:!1,close:()=>{s(!0)},link:l=>{if(n.links){const u=n.links[l];if(u&&(u.url&&this.luigi?.navigation().navigate(u.url),u.dismissKey))return s(u.dismissKey),!0}return!1}};this.luigi.getEngine()._connector?.renderAlert(n,a)}),this.showConfirmationModal=n=>(n&&(n={...n,header:this.luigi.i18n().getTranslation(n.header||"luigi.confirmationModal.header"),body:this.luigi.i18n().getTranslation(n.body||"luigi.confirmationModal.body"),buttonDismiss:this.luigi.i18n().getTranslation(n.buttonDismiss||"luigi.button.dismiss"),buttonConfirm:this.luigi.i18n().getTranslation(n.buttonConfirm||"luigi.button.confirm")}),new Promise((s,a)=>{this.luigi.getEngine()._connector?.renderConfirmationModal(n,{confirm(){s(!0)},dismiss(){a()}})})),this.openUserSettings=async()=>{const n=this.luigi.getConfigValue("userSettings");if(!n)return;const s=this.luigi.getConfigValue("settings"),a=await this.luigi.readUserSettings(),l=pC.processUserSettingGroups(n,s),u=n.userSettingsDialog||{},f=u.dialogHeader||Mr.userSettingsDialog.dialogHeader,h=u.saveBtn||Mr.userSettingsDialog.saveBtn,g=u.dismissBtn||Mr.userSettingsDialog.dismissBtn,_={dialogHeader:this.luigi.i18n().getTranslation(f),saveBtn:this.luigi.i18n().getTranslation(h),dismissBtn:this.luigi.i18n().getTranslation(g)};this.luigi.getEngine()._ui?.openUserSettings(_,l,a,this.luigi)},this.closeUserSettings=()=>{this.luigi.getEngine()._connector?.closeUserSettings()},this.setDocumentTitle=n=>{this.luigi.getEngine()._ux?.documentTitle?.set(n),this.luigi.getEngine()._connector?.setDocumentTitle(n)},this.getDocumentTitle=()=>Bh(this.luigi.getEngine()._ux?.documentTitle)||window.document.title||"",this.hideAppLoadingIndicator=()=>{const n=document.querySelector(this.appLoadingIndicatorSelector);n&&(n.classList.add("hidden"),setTimeout(()=>{n.parentNode?.removeChild(n)},500))},this.showLoadingIndicator=n=>this.luigi.getEngine()._connector?.showLoadingIndicator(n),this.hideLoadingIndicator=n=>this.luigi.getEngine()._connector?.hideLoadingIndicator(n),this.addBackdrop=()=>this.luigi.getEngine()._connector?.addBackdrop(),this.removeBackdrop=()=>this.luigi.getEngine()._connector?.removeBackdrop(),this.getDirtyStatus=()=>this.dirtyStatusService.readDirtyStatus(),this.luigi=t}}class _C{filterIdFromMessageObject(t){const{id:n,...s}=t;return{id:n,messageWithoutId:s}}}const Nh=new _C;class mC{constructor(t){this.luigi=t}sendToAll(t){const n=Kl.getAllLuigiContainerIframe(this.luigi);if(!n){console.warn("No Luigi containers found to send the message to.");return}const{id:s,messageWithoutId:a}=Nh.filterIdFromMessageObject(t);if(!s){console.warn('Message object must contain an "id" property to specify the message type.');return}for(const l of n)l.sendCustomMessage?l.sendCustomMessage(s,a):console.warn("Container does not support sending custom messages:",l)}send(t,n){const s=Kl.getAllLuigiContainerIframe(this.luigi);if(!s){console.warn("No Luigi containers found to send the message to.");return}const{id:a,messageWithoutId:l}=Nh.filterIdFromMessageObject(n);if(!a){console.warn('Message object must contain an "id" property to specify the message type.');return}for(const u of s)if(u.luigiMfId===t){u.sendCustomMessage?u.sendCustomMessage(a,l):console.warn("Container does not support sending custom messages:",u);return}console.warn(`No container found with microfrontend ID: ${t}`)}}class wC{constructor(t){this.engine=t,this.initialized=!1,this.configReadyCallback=function(){},this.USER_SETTINGS_KEY="luigi.preferences.userSettings",this.setConfig=n=>{this.config=n,this.setConfigCallback(this.getConfigReadyCallback()),ar.init().then(()=>{this.engine.init(),this.initialized||(this.initialized=!0,uC.luigiAfterInit(this))})},this.getConfig=()=>this.config,this.configChanged=(...n)=>{this.getEngine()._ui.update(n)},this.customMessages=()=>(this._customMessages||(this._customMessages=new mC(this)),this._customMessages),this.i18n=()=>(this._i18n||(this._i18n=new oC(this)),this._i18n),this.elements=()=>(this._elements||(this._elements=new lC(this)),this._elements),this.navigation=()=>new fC(this),this.ux=()=>new vC(this),this.featureToggles=()=>(this._featureToggles||(this._featureToggles=new cC),this._featureToggles),this.routing=()=>(this._routing||(this._routing=new hC(this)),this._routing),this.theming=()=>(this._theming||(this._theming=new dC(this)),this._theming),this.auth=()=>_i,this._store=this.createConfigStore()}getEngine(){return this.engine}getConfigValue(t){return M.getConfigValueFromObject(this.getConfig(),t)}getConfigValueAsync(t,...n){return $r.getConfigValueFromObjectAsync(this.getConfig(),t,n)}clearNavigationCache(){j.get(hr).deleteCache();const t=n=>{n&&n.forEach&&n.forEach(s=>{s.titleResolver&&s.titleResolver._cache&&(s.titleResolver._cache=void 0),s.children&&t(s.children)})};t(this.getConfig().navigation.nodes)}setGlobalContext(t,n){this.config&&this.config.navigation&&(this.config.navigation.globalContext=t,n||this.configChanged("navigation"))}getGlobalContext(){return this.config?.navigation?.globalContext||{}}updateContextValues(t){const n=M.getNodeList("luigi-container[lui_container]");n&&n.forEach(s=>{const l={...s.context||{},...t};s.context=l,s.updateContext&&s.updateContext(l,{withoutSync:!1})})}async readUserSettings(){const t=await this.getConfigValueAsync("userSettings"),n=t||await this.getConfigValueAsync("settings.userSettings");if(n&&M.isFunction(n.readUserSettings))return n.readUserSettings();const s=localStorage.getItem(this.USER_SETTINGS_KEY);return s&&JSON.parse(s)}async storeUserSettings(t,n){const s=await this.getConfigValueAsync("userSettings"),a=s||await this.getConfigValueAsync("settings.userSettings");if(a&&M.isFunction(a.storeUserSettings))return a.storeUserSettings(t,n);localStorage.setItem(this.USER_SETTINGS_KEY,JSON.stringify(t)),this.configChanged()}reset(){const t=this.getConfig();this.unload(),this.setConfig(t)}unload(){this.initialized=!1,window.Luigi._store.clear(),ar.unload(),zl.removeAllEventListeners(),this.getEngine()._connector?.unload(),this._i18n=void 0}createConfigStore(){const t=$a({}),n={};let s=[];return{subscribe:a=>{s.push(t.subscribe(a))},reset:a=>{t.update(a)},subscribeToScope:(a,l)=>{let u=n[l];u||(u=new Set,n[l]=u),u.add(a)},fire:(a,l)=>{const u=n[a];u&&[...u].forEach(f=>{f(l)})},clear:()=>{s.forEach(a=>{a()}),s=[]}}}getConfigReadyCallback(){return new Promise(t=>{this.i18n()._init(),t()})}setConfigCallback(t){this.configReadyCallback=t}}const Kd=!1;var SC=Array.isArray,yC=Array.prototype.indexOf,ki=Array.prototype.includes,EC=Array.from,CC=Object.defineProperty,ps=Object.getOwnPropertyDescriptor,bC=Object.prototype,TC=Array.prototype,RC=Object.getPrototypeOf,Oh=Object.isExtensible;const AC=()=>{};function PC(r){for(var t=0;t<r.length;t++)r[t]()}function IC(){var r,t,n=new Promise((s,a)=>{r=s,t=a});return{promise:n,resolve:r,reject:t}}const rt=2,bs=4,jd=8,Yd=1<<24,an=16,gr=32,pr=64,jl=128,qt=512,Je=1024,nt=2048,Cn=4096,Sn=8192,lr=16384,Ls=32768,Uh=1<<25,Ga=65536,Qa=1<<17,xC=1<<18,Ja=1<<19,LC=1<<20,Kr=65536,qa=1<<21,vs=1<<22,Ts=1<<23,Ll=Symbol("$state"),NC=Symbol("attributes"),OC=Symbol("class"),UC=Symbol("style"),DC=Symbol("text"),_u=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function MC(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function kC(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function $C(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function FC(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function HC(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const tt=Symbol();function VC(){console.warn("https://svelte.dev/e/derived_inert")}function WC(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function BC(r){return r===this.v}let mu=!1,GC=!1;function QC(){mu=!0}let fn=null;function za(r){fn=r}function qC(r,t=!1,n){fn={p:fn,i:!1,c:null,e:null,s:r,x:null,r:Le,l:mu&&!t?{s:null,u:null,$:[]}:null}}function zC(r){var t=fn,n=t.e;if(n!==null){t.e=null;for(var s of n)o0(s)}return t.i=!0,fn=t.p,{}}function Xa(){return!mu||fn!==null&&fn.l===null}let Ci=[];function KC(){var r=Ci;Ci=[],PC(r)}function Pi(r){if(Ci.length===0){var t=Ci;queueMicrotask(()=>{t===Ci&&KC()})}Ci.push(r)}function Jd(r){var t=Le;if(t===null)return ye.f|=Ts,r;if((t.f&Ls)===0&&(t.f&bs)===0)throw r;bi(r,t)}function bi(r,t){for(;t!==null;){if((t.f&jl)!==0){if((t.f&Ls)===0)throw r;try{t.b.error(r);return}catch(n){r=n}}t=t.parent}throw r}const jC=-7169;function Fe(r,t){r.f=r.f&jC|t}function wu(r){(r.f&qt)!==0||r.deps===null?Fe(r,Je):Fe(r,Cn)}function Xd(r){if(r!==null)for(const t of r)(t.f&rt)===0||(t.f&Kr)===0||(t.f^=Kr,Xd(t.deps))}function Zd(r,t,n){(r.f&nt)!==0?t.add(r):(r.f&Cn)!==0&&n.add(r),Xd(r.deps),Fe(r,Je)}let Nl=null,gi=null,Ie=null,Yl=null,on=null,Jl=null,Ol=!1,Ti=null,Da=null;var Dh=0;let YC=1;class jr{id=YC++;#e=!1;linked=!0;#n=null;#t=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#l=new Set;#i=new Set;#o=new Set;#s=0;#r=new Map;#h=null;#a=[];#g=[];#d=new Set;#c=new Set;#f=new Map;#u=new Set;is_fork=!1;#_=!1;#E(){if(this.is_fork)return!0;for(const s of this.#r.keys()){for(var t=s,n=!1;t.parent!==null;){if(this.#f.has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1}skip_effect(t){this.#f.has(t)||this.#f.set(t,{d:[],m:[]}),this.#u.delete(t)}unskip_effect(t,n=s=>this.schedule(s)){var s=this.#f.get(t);if(s){this.#f.delete(t);for(var a of s.d)Fe(a,nt),n(a);for(a of s.m)Fe(a,Cn),n(a)}this.#u.add(t)}#v(){if(this.#e=!0,Dh++>1e3&&(this.#S(),JC()),!this.#E()){for(const h of this.#d)this.#c.delete(h),Fe(h,nt),this.schedule(h);for(const h of this.#c)Fe(h,Cn),this.schedule(h)}const t=this.#a;this.#a=[],this.apply();var n=Ti=[],s=[],a=Da=[];for(const h of t)try{this.#C(h,n,s)}catch(g){throw ng(h),g}if(Ie=null,a.length>0){var l=jr.ensure();for(const h of a)l.schedule(h)}if(Ti=null,Da=null,this.#E()){this.#p(s),this.#p(n);for(const[h,g]of this.#f)tg(h,g);a.length>0&&Ie.#v();return}const u=this.#y();if(u){u.#m(this);return}this.#d.clear(),this.#c.clear();for(const h of this.#l)h(this);this.#l.clear(),Yl=this,Mh(s),Mh(n),Yl=null,this.#h?.resolve();var f=Ie;if(this.linked&&this.#s===0&&this.#S(),this.#a.length>0){f===null&&(f=this,this.#w());const h=f;h.#a.push(...this.#a.filter(g=>!h.#a.includes(g)))}f!==null&&f.#v()}#C(t,n,s){t.f^=Je;for(var a=t.first;a!==null;){var l=a.f,u=(l&(gr|pr))!==0,f=u&&(l&Je)!==0,h=f||(l&Sn)!==0||this.#f.has(a);if(!h&&a.fn!==null){u?a.f^=Je:(l&bs)!==0?n.push(a):Os(a)&&((l&an)!==0&&this.#c.add(a),$i(a));var g=a.first;if(g!==null){a=g;continue}}for(;a!==null;){var _=a.next;if(_!==null){a=_;break}a=a.parent}}}#y(){for(var t=this.#n;t!==null;){if(!t.is_fork){for(const[n,[,s]]of this.current)if(t.current.has(n)&&!s)return t}t=t.#n}return null}#m(t){for(const[s,a]of t.current)!this.previous.has(s)&&t.previous.has(s)&&this.previous.set(s,t.previous.get(s)),this.current.set(s,a);for(const[s,a]of t.async_deriveds){const l=this.async_deriveds.get(s);l&&a.promise.then(l.resolve)}const n=s=>{var a=s.reactions;if(a!==null)for(const f of a){var l=f.f;if((l&rt)!==0)n(f);else{var u=f;l&(vs|an)&&!this.async_deriveds.has(u)&&(this.#c.delete(u),Fe(u,nt),this.schedule(u))}}};for(const s of this.current.keys())n(s);this.oncommit(()=>t.discard()),t.#S(),Ie=this,this.#v()}#p(t){for(var n=0;n<t.length;n+=1)Zd(t[n],this.#d,this.#c)}capture(t,n,s=!1){t.v!==tt&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Ts)===0&&(this.current.set(t,[n,s]),on?.set(t,n)),this.is_fork||(t.v=n)}activate(){Ie=this}deactivate(){Ie=null,on=null}flush(){try{Ol=!0,Ie=this,this.#v()}finally{Dh=0,Jl=null,Ti=null,Da=null,Ol=!1,Ie=null,on=null,Br.clear()}}discard(){for(const t of this.#i)t(this);this.#i.clear(),this.#o.clear(),this.#S()}register_created_effect(t){this.#g.push(t)}#b(){this.#S();for(let _=Nl;_!==null;_=_.#t){var t=_.id<this.id,n=[];for(const[w,[m,E]]of this.current){if(_.current.has(w)){var s=_.current.get(w)[0];if(t&&m!==s)_.current.set(w,[m,E]);else continue}n.push(w)}if(t)for(const[w,m]of this.async_deriveds){const E=_.async_deriveds.get(w);E&&m.promise.then(E.resolve)}if(_.#e){var a=[..._.current.keys()].filter(w=>!this.current.has(w));if(a.length===0)t&&_.discard();else if(n.length>0){if(t)for(const w of this.#u)_.unskip_effect(w,m=>{(m.f&(an|vs))!==0?_.schedule(m):_.#p([m])});_.activate();var l=new Set,u=new Map;for(var f of n)eg(f,a,l,u);u=new Map;var h=[..._.current.keys()].filter(w=>this.current.has(w)?this.current.get(w)[0]!==w.v:!0);if(h.length>0)for(const w of this.#g)(w.f&(lr|Sn|Qa))===0&&Su(w,h,u)&&((w.f&(vs|an))!==0?(Fe(w,nt),_.schedule(w)):_.#d.add(w));if(_.#a.length>0){_.apply();for(var g of _.#a)_.#C(g,[],[]);_.#a=[]}_.deactivate()}}}}increment(t,n){if(this.#s+=1,t){let s=this.#r.get(n)??0;this.#r.set(n,s+1)}}decrement(t,n){if(this.#s-=1,t){let s=this.#r.get(n)??0;s===1?this.#r.delete(n):this.#r.set(n,s-1)}this.#_||(this.#_=!0,Pi(()=>{this.#_=!1,this.linked&&this.flush()}))}transfer_effects(t,n){for(const s of t)this.#d.add(s);for(const s of n)this.#c.add(s);t.clear(),n.clear()}oncommit(t){this.#l.add(t)}ondiscard(t){this.#i.add(t)}on_fork_commit(t){this.#o.add(t)}run_fork_commit_callbacks(){for(const t of this.#o)t(this);this.#o.clear()}settled(){return(this.#h??=IC()).promise}static ensure(){if(Ie===null){const t=Ie=new jr;t.#w(),Ol||Pi(()=>{t.#e||t.flush()})}return Ie}apply(){{on=null;return}}schedule(t){if(Jl=t,t.b?.is_pending&&(t.f&(bs|jd|Yd))!==0&&(t.f&Ls)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var s=n.f;if(Ti!==null&&n===Le&&(ye===null||(ye.f&rt)===0))return;if((s&(pr|gr))!==0){if((s&Je)===0)return;n.f^=Je}}this.#a.push(n)}#w(){gi===null?Nl=gi=this:(gi.#t=this,this.#n=gi),gi=this}#S(){var t=this.#n,n=this.#t;t===null?Nl=n:t.#t=n,n===null?gi=t:n.#n=t,this.linked=!1}}function JC(){try{MC()}catch(r){bi(r,Jl)}}let kn=null;function Mh(r){var t=r.length;if(t!==0){for(var n=0;n<t;){var s=r[n++];if((s.f&(lr|Sn))===0&&Os(s)&&(kn=new Set,$i(s),s.deps===null&&s.first===null&&s.nodes===null&&s.teardown===null&&s.ac===null&&dg(s),kn?.size>0)){Br.clear();for(const a of kn){if((a.f&(lr|Sn))!==0)continue;const l=[a];let u=a.parent;for(;u!==null;)kn.has(u)&&(kn.delete(u),l.push(u)),u=u.parent;for(let f=l.length-1;f>=0;f--){const h=l[f];(h.f&(lr|Sn))===0&&$i(h)}}kn.clear()}}kn=null}}function eg(r,t,n,s){if(!n.has(r)&&(n.add(r),r.reactions!==null))for(const a of r.reactions){const l=a.f;(l&rt)!==0?eg(a,t,n,s):(l&(vs|an))!==0&&(l&nt)===0&&Su(a,t,s)&&(Fe(a,nt),yu(a))}}function Su(r,t,n){const s=n.get(r);if(s!==void 0)return s;if(r.deps!==null)for(const a of r.deps){if(ki.call(t,a))return!0;if((a.f&rt)!==0&&Su(a,t,n))return n.set(a,!0),!0}return n.set(r,!1),!1}function yu(r){Ie.schedule(r)}function tg(r,t){if(!((r.f&gr)!==0&&(r.f&Je)!==0)){(r.f&nt)!==0?t.d.push(r):(r.f&Cn)!==0&&t.m.push(r),Fe(r,Je);for(var n=r.first;n!==null;)tg(n,t),n=n.next}}function ng(r){Fe(r,Je);for(var t=r.first;t!==null;)ng(t),t=t.next}function XC(r){let t=0,n=Cu(0),s;return()=>{bu()&&(Ri(n),u0(()=>(t===0&&(s=_0(()=>r(()=>_s(n)))),t+=1,()=>{Pi(()=>{t-=1,t===0&&(s?.(),s=void 0,_s(n))})})))}}var ZC=Ga|Ja;function e0(r,t,n,s){new t0(r,t,n,s)}class t0{parent;is_pending=!1;transform_error;#e;#n=null;#t;#l;#i;#o=null;#s=null;#r=null;#h=null;#a=0;#g=0;#d=!1;#c=new Set;#f=new Set;#u=null;#_=XC(()=>(this.#u=Cu(this.#a),()=>{this.#u=null}));constructor(t,n,s,a){this.#e=t,this.#t=n,this.#l=l=>{var u=Le;u.b=this,u.f|=jl,s(l)},this.parent=Le.b,this.transform_error=a??this.parent?.transform_error??(l=>l),this.#i=c0(()=>{this.#y()},ZC)}#E(){try{this.#o=Nr(()=>this.#l(this.#e))}catch(t){this.error(t)}}#v(t){const n=this.#t.failed;n&&(this.#r=Nr(()=>{n(this.#e,()=>t,()=>()=>{})}))}#C(){const t=this.#t.pending;t&&(this.is_pending=!0,this.#s=Nr(()=>t(this.#e)),Pi(()=>{var n=this.#h=document.createDocumentFragment(),s=ug();n.append(s),this.#o=this.#p(()=>Nr(()=>this.#l(s))),this.#g===0&&(this.#e.before(n),this.#h=null,Ma(this.#s,()=>{this.#s=null}),this.#m(Ie))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#g=0,this.#a=0,this.#o=Nr(()=>{this.#l(this.#e)}),this.#g>0){var t=this.#h=document.createDocumentFragment();d0(this.#o,t);const n=this.#t.pending;this.#s=Nr(()=>n(this.#e))}else this.#m(Ie)}catch(n){this.error(n)}}#m(t){this.is_pending=!1,t.transfer_effects(this.#c,this.#f)}defer_effect(t){Zd(t,this.#c,this.#f)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#p(t){var n=Le,s=ye,a=fn;vr(this.#i),bn(this.#i),za(this.#i.ctx);try{return jr.ensure(),t()}catch(l){return Jd(l),null}finally{vr(n),bn(s),za(a)}}#b(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#b(t,n);return}this.#g+=t,this.#g===0&&(this.#m(n),this.#s&&Ma(this.#s,()=>{this.#s=null}),this.#h&&(this.#e.before(this.#h),this.#h=null))}update_pending_count(t,n){this.#b(t,n),this.#a+=t,!(!this.#u||this.#d)&&(this.#d=!0,Pi(()=>{this.#d=!1,this.#u&&ag(this.#u,this.#a)}))}get_effect_pending(){return this.#_(),Ri(this.#u)}error(t){if(!this.#t.onerror&&!this.#t.failed)throw t;Ie?.is_fork?(this.#o&&Ie.skip_effect(this.#o),this.#s&&Ie.skip_effect(this.#s),this.#r&&Ie.skip_effect(this.#r),Ie.on_fork_commit(()=>{this.#w(t)})):this.#w(t)}#w(t){this.#o&&(yn(this.#o),this.#o=null),this.#s&&(yn(this.#s),this.#s=null),this.#r&&(yn(this.#r),this.#r=null);var n=this.#t.onerror;let s=this.#t.failed;var a=!1,l=!1;const u=()=>{if(a){WC();return}a=!0,l&&HC(),this.#r!==null&&Ma(this.#r,()=>{this.#r=null}),this.#p(()=>{this.#y()})},f=h=>{try{l=!0,n?.(h,u),l=!1}catch(g){bi(g,this.#i&&this.#i.parent)}s&&(this.#r=this.#p(()=>{try{return Nr(()=>{var g=Le;g.b=this,g.f|=jl,s(this.#e,()=>h,()=>u)})}catch(g){return bi(g,this.#i.parent),null}}))};Pi(()=>{var h;try{h=this.transform_error(t)}catch(g){bi(g,this.#i&&this.#i.parent);return}h!==null&&typeof h=="object"&&typeof h.then=="function"?h.then(f,g=>bi(g,this.#i&&this.#i.parent)):f(h)})}}function n0(r){var t=r.effects;if(t!==null){r.effects=null;for(var n=0;n<t.length;n+=1)yn(t[n])}}function Eu(r){var t,n=Le,s=r.parent;if(!Yr&&s!==null&&(s.f&(lr|Sn))!==0)return VC(),r.v;vr(s);try{r.f&=~Kr,n0(r),t=mg(r)}finally{vr(n)}return t}function rg(r){var t=Eu(r);if(!r.equals(t)&&(r.wv=vg(),(!Ie?.is_fork||r.deps===null)&&(Ie!==null?(Ie.capture(r,t,!0),Yl?.capture(r,t,!0)):r.v=t,r.deps===null))){Fe(r,Je);return}Yr||(on!==null?(bu()||Ie?.is_fork)&&on.set(r,t):wu(r))}function r0(r){if(r.effects!==null)for(const t of r.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(_u),t.teardown=AC,t.ac=null,Rs(t,0),Tu(t))}function ig(r){if(r.effects!==null)for(const t of r.effects)t.teardown&&$i(t)}let Ka=new Set;const Br=new Map;let sg=!1;function Cu(r,t){var n={f:0,v:r,reactions:null,equals:BC,rv:0,wv:0};return n}function tr(r,t){const n=Cu(r);return g0(n),n}function Or(r,t,n=!1){ye!==null&&(!ln||(ye.f&Qa)!==0)&&Xa()&&(ye.f&(rt|an|vs|Qa))!==0&&(zt===null||!ki.call(zt,r))&&FC();let s=n?us(t):t;return ag(r,s,Da)}function ag(r,t,n=null){if(!r.equals(t)){Br.set(r,Yr?t:r.v);var s=jr.ensure();if(s.capture(r,t),(r.f&rt)!==0){const a=r;(r.f&nt)!==0&&Eu(a),on===null&&wu(a)}r.wv=vg(),og(r,nt,n),Xa()&&Le!==null&&(Le.f&Je)!==0&&(Le.f&(gr|pr))===0&&(Vt===null?p0([r]):Vt.push(r)),!s.is_fork&&Ka.size>0&&!sg&&i0()}return t}function i0(){sg=!1;for(const r of Ka){(r.f&Je)!==0&&Fe(r,Cn);let t;try{t=Os(r)}catch{t=!0}t&&$i(r)}Ka.clear()}function _s(r){Or(r,r.v+1)}function og(r,t,n){var s=r.reactions;if(s!==null)for(var a=Xa(),l=s.length,u=0;u<l;u++){var f=s[u],h=f.f;if(!(!a&&f===Le)){var g=(h&nt)===0;if(g&&Fe(f,t),(h&Qa)!==0)Ka.add(f);else if((h&rt)!==0){var _=f;on?.delete(_),(h&Kr)===0&&(h&qt&&(Le===null||(Le.f&qa)===0)&&(f.f|=Kr),og(_,Cn,n))}else if(g){var w=f;(h&an)!==0&&kn!==null&&kn.add(w),n!==null?n.push(w):yu(w)}}}}function us(r){if(typeof r!="object"||r===null||Ll in r)return r;const t=RC(r);if(t!==bC&&t!==TC)return r;var n=new Map,s=SC(r),a=tr(0),l=Gr,u=f=>{if(Gr===l)return f();var h=ye,g=Gr;bn(null),Fh(l);var _=f();return bn(h),Fh(g),_};return s&&n.set("length",tr(r.length)),new Proxy(r,{defineProperty(f,h,g){(!("value"in g)||g.configurable===!1||g.enumerable===!1||g.writable===!1)&&kC();var _=n.get(h);return _===void 0?u(()=>{var w=tr(g.value);return n.set(h,w),w}):Or(_,g.value,!0),!0},deleteProperty(f,h){var g=n.get(h);if(g===void 0){if(h in f){const _=u(()=>tr(tt));n.set(h,_),_s(a)}}else Or(g,tt),_s(a);return!0},get(f,h,g){if(h===Ll)return r;var _=n.get(h),w=h in f;if(_===void 0&&(!w||ps(f,h)?.writable)&&(_=u(()=>{var E=us(w?f[h]:tt),C=tr(E);return C}),n.set(h,_)),_!==void 0){var m=Ri(_);return m===tt?void 0:m}return Reflect.get(f,h,g)},getOwnPropertyDescriptor(f,h){var g=Reflect.getOwnPropertyDescriptor(f,h);if(g&&"value"in g){var _=n.get(h);_&&(g.value=Ri(_))}else if(g===void 0){var w=n.get(h),m=w?.v;if(w!==void 0&&m!==tt)return{enumerable:!0,configurable:!0,value:m,writable:!0}}return g},has(f,h){if(h===Ll)return!0;var g=n.get(h),_=g!==void 0&&g.v!==tt||Reflect.has(f,h);if(g!==void 0||Le!==null&&(!_||ps(f,h)?.writable)){g===void 0&&(g=u(()=>{var m=_?us(f[h]):tt,E=tr(m);return E}),n.set(h,g));var w=Ri(g);if(w===tt)return!1}return _},set(f,h,g,_){var w=n.get(h),m=h in f;if(s&&h==="length")for(var E=g;E<w.v;E+=1){var C=n.get(E+"");C!==void 0?Or(C,tt):E in f&&(C=u(()=>tr(tt)),n.set(E+"",C))}if(w===void 0)(!m||ps(f,h)?.writable)&&(w=u(()=>tr(void 0)),Or(w,us(g)),n.set(h,w));else{m=w.v!==tt;var R=u(()=>us(g));Or(w,R)}var I=Reflect.getOwnPropertyDescriptor(f,h);if(I?.set&&I.set.call(_,g),!m){if(s&&typeof h=="string"){var N=n.get("length"),F=Number(h);Number.isInteger(F)&&F>=N.v&&Or(N,F+1)}_s(a)}return!0},ownKeys(f){Ri(a);var h=Reflect.ownKeys(f).filter(w=>{var m=n.get(w);return m===void 0||m.v!==tt});for(var[g,_]of n)_.v!==tt&&!(g in f)&&h.push(g);return h},setPrototypeOf(){$C()}})}var kh,lg;function s0(){if(kh===void 0){kh=window;var r=Element.prototype,t=Node.prototype,n=Text.prototype;ps(t,"firstChild").get,lg=ps(t,"nextSibling").get,Oh(r)&&(r[OC]=void 0,r[NC]=null,r[UC]=void 0,r.__e=void 0),Oh(n)&&(n[DC]=void 0)}}function ug(r=""){return document.createTextNode(r)}function cg(r){return lg.call(r)}function fg(r){var t=ye,n=Le;bn(null),vr(null);try{return r()}finally{bn(t),vr(n)}}function a0(r,t){var n=t.last;n===null?t.last=t.first=r:(n.next=r,r.prev=n,t.last=r)}function Ns(r,t){var n=Le;n!==null&&(n.f&Sn)!==0&&(r|=Sn);var s={ctx:fn,deps:null,nodes:null,f:r|nt|qt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Ie?.register_created_effect(s);var a=s;if((r&bs)!==0)Ti!==null?Ti.push(s):jr.ensure().schedule(s);else if(t!==null){try{$i(s)}catch(u){throw yn(s),u}a.deps===null&&a.teardown===null&&a.nodes===null&&a.first===a.last&&(a.f&Ja)===0&&(a=a.first,(r&an)!==0&&(r&Ga)!==0&&a!==null&&(a.f|=Ga))}if(a!==null&&(a.parent=n,n!==null&&a0(a,n),ye!==null&&(ye.f&rt)!==0&&(r&pr)===0)){var l=ye;(l.effects??=[]).push(a)}return s}function bu(){return ye!==null&&!ln}function o0(r){return Ns(bs|LC,r)}function l0(r){jr.ensure();const t=Ns(pr|Ja,r);return(n={})=>new Promise(s=>{n.outro?Ma(t,()=>{yn(t),s(void 0)}):(yn(t),s(void 0))})}function u0(r,t=0){return Ns(jd|t,r)}function c0(r,t=0){var n=Ns(an|t,r);return n}function Nr(r){return Ns(gr|Ja,r)}function hg(r){var t=r.teardown;if(t!==null){const n=Yr,s=ye;$h(!0),bn(null);try{t.call(null)}finally{$h(n),bn(s)}}}function Tu(r,t=!1){var n=r.first;for(r.first=r.last=null;n!==null;){const a=n.ac;a!==null&&fg(()=>{a.abort(_u)});var s=n.next;(n.f&pr)!==0?n.parent=null:yn(n,t),n=s}}function f0(r){for(var t=r.first;t!==null;){var n=t.next;(t.f&gr)===0&&yn(t),t=n}}function yn(r,t=!0){var n=!1;(t||(r.f&xC)!==0)&&r.nodes!==null&&r.nodes.end!==null&&(h0(r.nodes.start,r.nodes.end),n=!0),Fe(r,Uh),Tu(r,t&&!n),Rs(r,0);var s=r.nodes&&r.nodes.t;if(s!==null)for(const l of s)l.stop();hg(r),r.f^=Uh,r.f|=lr;var a=r.parent;a!==null&&a.first!==null&&dg(r),r.next=r.prev=r.teardown=r.ctx=r.deps=r.fn=r.nodes=r.ac=r.b=null}function h0(r,t){for(;r!==null;){var n=r===t?null:cg(r);r.remove(),r=n}}function dg(r){var t=r.parent,n=r.prev,s=r.next;n!==null&&(n.next=s),s!==null&&(s.prev=n),t!==null&&(t.first===r&&(t.first=s),t.last===r&&(t.last=n))}function Ma(r,t,n=!0){var s=[];gg(r,s,!0);var a=()=>{n&&yn(r),t&&t()},l=s.length;if(l>0){var u=()=>--l||a();for(var f of s)f.out(u)}else a()}function gg(r,t,n){if((r.f&Sn)===0){r.f^=Sn;var s=r.nodes&&r.nodes.t;if(s!==null)for(const f of s)(f.is_global||n)&&t.push(f);for(var a=r.first;a!==null;){var l=a.next;if((a.f&pr)===0){var u=(a.f&Ga)!==0||(a.f&gr)!==0&&(r.f&an)!==0;gg(a,t,u?n:!1)}a=l}}}function d0(r,t){if(r.nodes)for(var n=r.nodes.start,s=r.nodes.end;n!==null;){var a=n===s?null:cg(n);t.append(n),n=a}}let ka=!1,Yr=!1;function $h(r){Yr=r}let ye=null,ln=!1;function bn(r){ye=r}let Le=null;function vr(r){Le=r}let zt=null;function g0(r){ye!==null&&(zt===null?zt=[r]:zt.push(r))}let vt=null,It=0,Vt=null;function p0(r){Vt=r}let pg=1,kr=0,Gr=kr;function Fh(r){Gr=r}function vg(){return++pg}function Os(r){var t=r.f;if((t&nt)!==0)return!0;if(t&rt&&(r.f&=~Kr),(t&Cn)!==0){for(var n=r.deps,s=n.length,a=0;a<s;a++){var l=n[a];if(Os(l)&&rg(l),l.wv>r.wv)return!0}(t&qt)!==0&&on===null&&Fe(r,Je)}return!1}function _g(r,t,n=!0){var s=r.reactions;if(s!==null&&!(zt!==null&&ki.call(zt,r)))for(var a=0;a<s.length;a++){var l=s[a];(l.f&rt)!==0?_g(l,t,!1):t===l&&(n?Fe(l,nt):(l.f&Je)!==0&&Fe(l,Cn),yu(l))}}function mg(r){var t=vt,n=It,s=Vt,a=ye,l=zt,u=fn,f=ln,h=Gr,g=r.f;vt=null,It=0,Vt=null,ye=(g&(gr|pr))===0?r:null,zt=null,za(r.ctx),ln=!1,Gr=++kr,r.ac!==null&&(fg(()=>{r.ac.abort(_u)}),r.ac=null);try{r.f|=qa;var _=r.fn,w=_();r.f|=Ls;var m=r.deps,E=Ie?.is_fork;if(vt!==null){var C;if(E||Rs(r,It),m!==null&&It>0)for(m.length=It+vt.length,C=0;C<vt.length;C++)m[It+C]=vt[C];else r.deps=m=vt;if(bu()&&(r.f&qt)!==0)for(C=It;C<m.length;C++)(m[C].reactions??=[]).push(r)}else!E&&m!==null&&It<m.length&&(Rs(r,It),m.length=It);if(Xa()&&Vt!==null&&!ln&&m!==null&&(r.f&(rt|Cn|nt))===0)for(C=0;C<Vt.length;C++)_g(Vt[C],r);if(a!==null&&a!==r){if(kr++,a.deps!==null)for(let R=0;R<n;R+=1)a.deps[R].rv=kr;if(t!==null)for(const R of t)R.rv=kr;Vt!==null&&(s===null?s=Vt:s.push(...Vt))}return(r.f&Ts)!==0&&(r.f^=Ts),w}catch(R){return Jd(R)}finally{r.f^=qa,vt=t,It=n,Vt=s,ye=a,zt=l,za(u),ln=f,Gr=h}}function v0(r,t){let n=t.reactions;if(n!==null){var s=yC.call(n,r);if(s!==-1){var a=n.length-1;a===0?n=t.reactions=null:(n[s]=n[a],n.pop())}}if(n===null&&(t.f&rt)!==0&&(vt===null||!ki.call(vt,t))){var l=t;(l.f&qt)!==0&&(l.f^=qt,l.f&=~Kr),l.v!==tt&&wu(l),r0(l),Rs(l,0)}}function Rs(r,t){var n=r.deps;if(n!==null)for(var s=t;s<n.length;s++)v0(r,n[s])}function $i(r){var t=r.f;if((t&lr)===0){Fe(r,Je);var n=Le,s=ka;Le=r,ka=!0;try{(t&(an|Yd))!==0?f0(r):Tu(r),hg(r);var a=mg(r);r.teardown=typeof a=="function"?a:null,r.wv=pg;var l;Kd&&GC&&(r.f&nt)!==0&&r.deps}finally{ka=s,Le=n}}}function Ri(r){var t=r.f,n=(t&rt)!==0;if(ye!==null&&!ln){var s=Le!==null&&(Le.f&lr)!==0;if(!s&&(zt===null||!ki.call(zt,r))){var a=ye.deps;if((ye.f&qa)!==0)r.rv<kr&&(r.rv=kr,vt===null&&a!==null&&a[It]===r?It++:vt===null?vt=[r]:vt.push(r));else{(ye.deps??=[]).push(r);var l=r.reactions;l===null?r.reactions=[ye]:ki.call(l,ye)||l.push(ye)}}}if(Yr&&Br.has(r))return Br.get(r);if(n){var u=r;if(Yr){var f=u.v;return((u.f&Je)===0&&u.reactions!==null||Sg(u))&&(f=Eu(u)),Br.set(u,f),f}var h=(u.f&qt)===0&&!ln&&ye!==null&&(ka||(ye.f&qt)!==0),g=(u.f&Ls)===0;Os(u)&&(h&&(u.f|=qt),rg(u)),h&&!g&&(ig(u),wg(u))}if(on?.has(r))return on.get(r);if((r.f&Ts)!==0)throw r.v;return r.v}function wg(r){if(r.f|=qt,r.deps!==null)for(const t of r.deps)(t.reactions??=[]).push(r),(t.f&rt)!==0&&(t.f&qt)===0&&(ig(t),wg(t))}function Sg(r){if(r.v===tt)return!0;if(r.deps===null)return!1;for(const t of r.deps)if(Br.has(t)||(t.f&rt)!==0&&Sg(t))return!0;return!1}function _0(r){var t=ln;try{return ln=!0,r()}finally{ln=t}}const m0=["touchstart","touchmove"];function w0(r){return m0.includes(r)}const xa=Symbol("events"),S0=new Set,Hh=new Set;let Vh=null;function Wh(r){var t=this,n=t.ownerDocument,s=r.type,a=r.composedPath?.()||[],l=a[0]||r.target;Vh=r;var u=0,f=Vh===r&&r[xa];if(f){var h=a.indexOf(f);if(h!==-1&&(t===document||t===window)){r[xa]=t;return}var g=a.indexOf(t);if(g===-1)return;h<=g&&(u=h)}if(l=a[u]||r.target,l!==t){CC(r,"currentTarget",{configurable:!0,get(){return l||n}});var _=ye,w=Le;bn(null),vr(null);try{for(var m,E=[];l!==null;){var C=l.assignedSlot||l.parentNode||l.host||null;try{var R=l[xa]?.[s];R!=null&&(!l.disabled||r.target===l)&&R.call(l,r)}catch(I){m?E.push(I):m=I}if(r.cancelBubble||C===t||C===null)break;l=C}if(m){for(let I of E)queueMicrotask(()=>{throw I});throw m}}finally{r[xa]=t,delete r.currentTarget,bn(_),vr(w)}}}function y0(r,t){return E0(r,t)}const La=new Map;function E0(r,{target:t,anchor:n,props:s={},events:a,context:l,intro:u=!0,transformError:f}){s0();var h=void 0,g=l0(()=>{var _=n??t.appendChild(ug());e0(_,{pending:()=>{}},E=>{qC({});var C=fn;l&&(C.c=l),a&&(s.$$events=a),h=r(E,s)||{},zC()},f);var w=new Set,m=E=>{for(var C=0;C<E.length;C++){var R=E[C];if(!w.has(R)){w.add(R);var I=w0(R);for(const J of[t,document]){var N=La.get(J);N===void 0&&(N=new Map,La.set(J,N));var F=N.get(R);F===void 0?(J.addEventListener(R,Wh,{passive:I}),N.set(R,1)):N.set(R,F+1)}}}};return m(EC(S0)),Hh.add(m),()=>{for(var E of w)for(const I of[t,document]){var C=La.get(I),R=C.get(E);--R==0?(I.removeEventListener(E,Wh),C.delete(E),C.size===0&&La.delete(I)):C.set(E,R)}Hh.delete(m),_!==n&&_.parentNode?.removeChild(_)}});return C0.set(h,g),h}let C0=new WeakMap;const b0="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(b0);QC();function T0(r){}const Xl={init:r=>{j.get(Wr).enableRouting()},handlePageErrorHandler:(r,t,n)=>{r&&r.timeout&&setTimeout(()=>{if(r.viewUrl)t.viewUrl=r.viewUrl,n.getEngine()._ui.updateMainContent(t,n);else if(r.errorFn)r.errorFn(t);else{console.warn("Something went wrong with a client! You will be redirected to another page.");const s=r.redirectPath||"/";n.navigation().navigate(s)}},r.timeout)},handleExternalLinkNavigation:r=>{if(r.url)if(r.sameWindow||!1)window.location.href=r.url;else{const n=window.open(r.url,"_blank","noopener noreferrer");n&&(n.opener=null,n.focus())}},async addSearchParamsFromClient(r,t,n){const s=j.get(dr),a=D.getCurrentPath(n,n.getConfig().routing?.useHashRouting),u=(await s.getCurrentNode(a.path))?.clientPermissions?.urlParameters,f={...r};if(u){const h={};Object.keys(u).forEach(g=>{g in f&&u[g]?.write===!0&&(h[g]=f[g],delete f[g])});for(const g in f)console.warn(`No permission to add the search param "${g}" to the url`);Object.keys(h).length>0&&n.routing().addSearchParams(h,t)}}};class R0{static hasLocaleChangePermission(t){return t?.clientPermissions?.changeCurrentLocale?!0:(console.error('Current locale change declined from client, as client permission "changeCurrentLocale" is not set for this view.'),!1)}}const $n={luigi:{},init:r=>{$n.luigi=r},addListeners:(r,t)=>{r.addEventListener(k.INITIALIZED,n=>{qe.luigi?.ux().hideLoadingIndicator(r.parentNode);const s=j.get(Di);s.viewGroupLoaded(r),!r._luigiPreloading&&r.style.display!=="none"&&s.preload()}),r.addEventListener(k.NAVIGATION_COMPLETED_REPORT,()=>{j.get(Di).preload()}),r.addEventListener(k.NAVIGATION_REQUEST,n=>{const{drawer:s,link:a,intent:l,preserveView:u,modal:f,newTab:h,withoutSync:g,preventContextUpdate:_,preventHistoryEntry:w,fromVirtualTreeRoot:m,fromContext:E,fromClosestContext:C,fromParent:R,relative:I,nodeParams:N}=n.detail,F={drawerSettings:s,intent:l,modalSettings:f,newTab:h,path:a,preserveView:u,preventContextUpdate:_,options:{fromVirtualTreeRoot:m,fromContext:E,fromClosestContext:C,fromParent:R,relative:I,nodeParams:N},preventHistoryEntry:w,withoutSync:g};j.get(dr).handleNavigationRequest(F,n.callbackFn)}),r.addEventListener(k.RUNTIME_ERROR_HANDLING_REQUEST,n=>{t.navigation().runTimeErrorHandler(n.payload?.data?.errorObj||{})}),r.addEventListener(k.ALERT_REQUEST,n=>{qe.processAlert(n.payload,!0,r)}),r.addEventListener(k.SHOW_CONFIRMATION_MODAL_REQUEST,n=>{qe.handleConfirmationModalRequest(n.payload,r)}),r.addEventListener(k.SET_DOCUMENT_TITLE_REQUEST,n=>{$n.luigi.getEngine()._connector?.setDocumentTitle(n.detail.title)}),r.addEventListener(k.SHOW_LOADING_INDICATOR_REQUEST,n=>{$n.luigi.getEngine()._connector?.showLoadingIndicator(r.parentNode)}),r.addEventListener(k.HIDE_LOADING_INDICATOR_REQUEST,n=>{$n.luigi.getEngine()._connector?.hideLoadingIndicator(r.parentNode)}),r.addEventListener(k.ADD_BACKDROP_REQUEST,n=>{$n.luigi.getEngine()._connector?.addBackdrop()}),r.addEventListener(k.REMOVE_BACKDROP_REQUEST,n=>{$n.luigi.getEngine()._connector?.removeBackdrop()}),r.addEventListener(k.SET_DIRTY_STATUS_REQUEST,n=>{qe.handleDirtyStatusRequest(n.detail?.data?.dirty,r)}),r.addEventListener(k.ADD_NODE_PARAMS_REQUEST,n=>{t.routing().addNodeParams(n.payload.data,n.payload.keepBrowserHistory)}),r.addEventListener(k.OPEN_USER_SETTINGS_REQUEST,n=>{t.ux().openUserSettings()}),r.addEventListener(k.CLOSE_USER_SETTINGS_REQUEST,n=>{$n.luigi.getEngine()._connector?.closeUserSettings()}),r.addEventListener(k.ADD_SEARCH_PARAMS_REQUEST,n=>{Xl.addSearchParamsFromClient(n.detail.data,n.detail.keepBrowserHistory,t)}),r.addEventListener(k.UPDATE_MODAL_SETTINGS_REQUEST,n=>{G.updateModalSettings(n.payload.updatedModalSettings,n.payload.addHistoryEntry,t)}),r.addEventListener(k.SET_CURRENT_LOCALE_REQUEST,n=>{R0.hasLocaleChangePermission(r)&&t.i18n().setCurrentLocale(n.detail?.data?.data?.currentLocale)})}};class A0{constructor(){this._ui=G,this._comm=$n,this._ux=qe,this._routing=Xl}bootstrap(t){this._app=y0(T0,{target:document.body}),this._connector=t}init(){const t=window.Luigi;j.register(un,()=>new un(t)),j.register(dr,()=>new dr(t)),j.register(hr,()=>new hr),j.register(Wr,()=>new Wr(t)),j.register(Mi,()=>new Mi),j.register(fr,()=>new fr(t)),j.register(Di,()=>new Di(t)),t.theming()._init(),G.init(t),Xl.init(t),$n.init(t),qe.init(t)}}window.Luigi=new wC(new A0);
94
+ Please refer to documentation`),[w]}}buildVirtualViewUrl(t,n,s){let a="";for(const u in n)u.startsWith("virtualSegment")&&(a+=":"+u+"/");if(!s)return t;a+=":virtualSegment_"+s+"/";let l=t;t.includes("{virtualTreePath}")?l=t.replace("{virtualTreePath}",a):l=t+"/"+a;try{if(new URL(l,"http://dummy-base").origin===new URL(t,"http://dummy-base").origin)return l}catch(u){console.error("Error building virtual view URL -- make sure virtualTreePath is not part of origin.",u)}return t}async buildPath(t,n){const{fromVirtualTreeRoot:s,fromContext:a,fromClosestContext:l,fromParent:u,relative:f,nodeParams:h}=n,g=this.luigi.getConfigValue("routing.useHashRouting"),{path:_,query:w}=D.getCurrentPath(this.luigi,g),m=_+(w?"?"+w:""),E=await this.getPathData(m),C=E.nodesInPath;let R=t;if(C===void 0)return console.warn("No nodes in path found for current path:",m),R;if(s){R="";const I=[...C].map((N,F)=>N.virtualTree?F:-1).filter(N=>N!==-1).pop();C.forEach((N,F)=>{N.pathSegment&&(I===void 0||F<=I)&&(R+="/"+N.pathSegment)}),R+="/"+t}else if(a){const I=a,N=[...C].reverse().find(F=>I===F.navigationContext);R=D.concatenatePath(D.getSubPath(N,E.pathParams),t)}else if(l){const I=[...C].reverse().find(N=>N.navigationContext&&N.navigationContext.length>0);R=D.concatenatePath(D.getSubPath(I,E.pathParams),t)}else u?R=D.concatenatePath(D.getSubPath(E.selectedNode?.parent,E.pathParams),t):f&&(R=D.concatenatePath(D.getSubPath(E.selectedNode,E.pathParams),t));return h&&Object.keys(h).length>0&&(R+=R.includes("?")?"&":"?",Object.entries(h).forEach((I,N)=>{R+=encodeURIComponent(D.getContentViewParamPrefix(this.luigi)+I[0])+"="+encodeURIComponent(I[1])+(N<Object.keys(h).length-1?"&":"")})),R}async buildContextSwitcher(){const t=this.luigi.getConfigValue("navigation.contextSwitcher");if(!t)return;Qe.resetFallbackLabelCache();const n=await this.luigi.getConfigValueAsync("navigation.contextSwitcher.actions"),s=await Qe.fetchOptions(this.luigi),a=this.luigi.getConfig().routing?.useHashRouting,l=D.getCurrentPath(this.luigi,a),u=t.parentNodePath,f=t.fallbackLabelResolver;let h=await Qe.getSelectedLabel(l?.path,s,u,f,this.luigi),g=Qe.getSelectedNode(l?.path,s,u),_=Qe.getSelectedOption(l?.path,s,u);const w=(m,E)=>{if(!(!m||typeof m!="string"))if(E==="action"){const C=n.find(R=>R.link===m);if(C?.clickHandler&&!C.clickHandler(C))return;this.luigi.navigation().navigate(m)}else this.luigi.navigation().navigate(m)};if(t?.preserveSubPathOnSwitch&&s?.length&&_&&s.forEach(m=>{m.linkFromPath=Qe.getNodePathFromCurrentPath(m,_,this.luigi),m.link===_.link&&(_.linkFromPath=m.linkFromPath)}),!_&&n?.length){const m=n?.find(E=>E.link===`/${l?.path}`);m&&(h=m.label,g=m.link,_=m)}return{actions:n,config:t,options:s,selectedLabel:h,selectedNodePath:g,selectedOption:_,switcherChange:(m,E)=>w(m,E)}}}class Di{constructor(t){this.luigi=t,this.preloadBatchSize=1,this.shouldPreload=!1}preloadViewGroups(t=3,n){const s=this.luigi.getConfigValue("navigation.preloadViewGroups"),a=this.luigi.getConfigValue("navigation.viewGroupSettings"),l=this.luigi.getEngine()._connector?.getContainerWrapper();if(s===!1||!a||!l)return;const u=Date.now();if(this.getPreloadingContainers(l).filter(_=>u-(_._luigiPreloadCreatedAt||0)<3e4).length>0){console.log("skipping view group preloading (busy)");return}const h=[...l.childNodes].filter(_=>_.tagName?.startsWith("LUIGI-")&&_.viewGroup).map(_=>_.viewGroup),g=Object.entries(a).filter(([_])=>!h.includes(_)).filter(([_,w])=>w&&w.preloadUrl);n?g.forEach(([_,w])=>{w.loadOnStartup&&this.preloadContainerOnBackground(w,_,l)}):g.filter((_,w)=>w<t).forEach(([_,w])=>{this.preloadContainerOnBackground(w,_,l)})}preloadContainerOnBackground(t,n,s){const a=document.createElement("luigi-container");a.setAttribute("lui_container","true"),a.viewurl=t.preloadUrl,a.viewGroup=n,a.style.display="none",a._luigiPreloading=!0,a._luigiPreloadCreatedAt=Date.now(),a.luigiMfId=M.getRandomId(),this.luigi.getEngine()._comm.addListeners(a,this.luigi),s.appendChild(a)}preload(t){this.shouldPreload&&setTimeout(()=>{this.preloadViewGroups(this.preloadBatchSize,!!t)},t?1:0),this.shouldPreload=!0}viewGroupLoaded(t){if(t._luigiPreloading){const n=Date.now()-(t._luigiPreloadCreatedAt||0);let s=1;n<500?s=3:n<1e3&&(s=2),this.preloadBatchSize=s,setTimeout(()=>{t._luigiPreloading=!1},this.preloadBatchSize>2?500:1e3)}}getPreloadingContainers(t){return[...t.childNodes].filter(n=>n.tagName?.startsWith("LUIGI-")&&n._luigiPreloading)}}const zl={listeners:[],hashChangeWithoutSync:!1,addEventListener(r,t){this.listeners.push({type:r,listenerFn:t}),window.addEventListener(r,t)},removeEventListener(r,t){this.listeners=this.listeners.filter(n=>!(n.type===r&&n.listenerFn===t)),window.removeEventListener(r,t)},removeAllEventListeners(){this.listeners.forEach(r=>{window.removeEventListener(r.type,r.listenerFn)}),this.listeners=[]}};class Wr{constructor(t){this.luigi=t}getNavigationService(){return this.navigationService||(this.navigationService=j.get(dr),this.dirtyStatusService=j.get(un)),this.navigationService}shouldSkipRoutingForUrlPatterns(){const t=[/access_token=/,/id_token=/];return(this.luigi.getConfigValue("routing.skipRoutingForUrlPatterns")||t).filter(s=>location.href.match(s)).length!==0}enableRouting(){this.luigi.getConfig().routing?.useHashRouting?(zl.addEventListener("hashchange",n=>{const s=!!n?.detail?.preventContextUpdate,a=!!n?.detail?.withoutSync;this.handleRouteChange(D.getCurrentPath(this.luigi,!0,!0),a,s)}),this.handleRouteChange(D.getCurrentPath(this.luigi,!0,!0))):(zl.addEventListener("popstate",n=>{const s=!!n?.detail?.preventContextUpdate,a=!!n?.detail?.withoutSync;this.handleRouteChange(D.getCurrentPath(this.luigi,!1,!0),a,s)}),this.handleRouteChange(D.getCurrentPath(this.luigi,!1,!0)))}async handleRouteChange(t,n=!1,s=!1){const a=t.path,l=t.query,u=a+(l?"?"+l:""),f=new URLSearchParams(l),h=Object.create(null);try{if(this.dirtyStatusService?.shouldShowUnsavedChangesModal()){const R=this.dirtyStatusService.unsavedChanges.persistUrl;R&&history.pushState(window.state,"",R);return}}catch{return}if(this.shouldSkipRoutingForUrlPatterns())return;this.setFeatureToggle(u),await this.shouldShowModalPathInUrl(t),f.forEach((R,I)=>{h[I]=R}),this.checkInvalidateCache(this.previousPathData,a);const g=await this.getNavigationService().getPathData(a),_=D.filterNodeParams(h,this.luigi),w=M.getPathWithoutHash(a)||"";this.currentRoute={raw:window.location.href,path:a,nodeParams:_};const m=g?.selectedNode??await this.getNavigationService().getCurrentNode(a),E=m?.viewUrl||"";if(m&&this.previousPathData&&await this.handleViewUrlMisconfigured(m,E,this.previousPathData,w)||await this.handlePageNotFound(m,E,g,a,w))return;const C=this.luigi.getEngine()._connector;if(C?.renderTopNav(await this.getNavigationService().getTopNavData(a,g)),C?.renderLeftNav(await this.getNavigationService().getLeftNavData(a,g)),C?.renderTabNav(await this.getNavigationService().getTabNavData(a,g)),C?.renderBreadcrumbs(await this.getNavigationService().getBreadcrumbData(a,g,R=>{C?.renderBreadcrumbs(R)})),m){const R={nodeParams:_||{},pathParams:g?.pathParams||{},searchParams:D.prepareSearchParamsForClient(m,this.luigi)};this.currentRoute.node=m,this.getNavigationService().onNodeChange(this.previousNode,m),this.previousNode=m,await G.updateMainContent(m,this.luigi,R,n,s),this.previousPathData=g}}getCurrentRoute(){return this.currentRoute}async shouldShowModalPathInUrl(t){this.luigi.getConfigValue("routing.showModalPathInUrl")&&await this.handleBookmarkableModalPath(t)}async handleBookmarkableModalPath(t){const n=j.get(dr),s=j.get(fr),a=new URLSearchParams(t?.query||""),l=D.getModalViewParamName(this.luigi),u=a.get(l);if(u){const f=a.get(`${l}Params`);try{const h=JSON.parse(f||"{}"),{nodeObject:g}=await n.extractDataFromPath(u);document.querySelector(".lui-modal luigi-container")?this.luigi.getEngine()._connector?.updateModalSettings(h):this.luigi.navigation().openAsModal(u,h||g.openNodeInModal)}catch(h){console.error("Error parsing modal settings from URL parameters",h)}}else return await s.closeModalsWithDirtyCheck(),void 0}appendModalDataToUrl(t,n){const s=D.getHashQueryParamSeparator(),a=D.getQueryParams(this.luigi),l=D.getModalViewParamName(this.luigi),u=a[l],f=new URL(location.href),h=this.luigi.getConfigValue("routing.useHashRouting");let g=history.state,_,w;if(h){let[m,E]=f.hash.split("?");_=m,w=D.getURLWithoutModalData(E,l),w&&(_+="?"+w)}else _=f.pathname,w=D.getURLWithoutModalData(f.search,l),w&&(_+="?"+D.getURLWithoutModalData(f.search,l));if(g=D.handleHistoryState(g,_),u!==t){if(a[l]=t,n&&Object.keys(n).length&&(a[`${l}Params`]=JSON.stringify(n)),h){const m=location.hash.indexOf(s);m!==-1&&(f.hash=f.hash.slice(0,m)),f.hash=`${f.hash}${s}${D.encodeParams(a)}`}else f.search=`?${D.encodeParams(a)}`;history.pushState(g,"",f.href)}else{const m=new URL(f);if(h){let E=m.hash.split("?")[0];m.hash=E,w&&(m.hash+="?"+w)}else m.search=w;history.replaceState({},"",m.href),history.pushState(g,"",f.href)}}removeModalDataFromUrl(t){const n=D.getQueryParams(this.luigi),s=D.getModalViewParamName(this.luigi);let a=new URL(location.href);if(this.luigi.getConfigValue("routing.useHashRouting")){let u={};n[s]&&(u[s]=n[s]),n[`${s}Params`]&&(u[`${s}Params`]=n[`${s}Params`]);let f=D.encodeParams(u);a.hash.includes(`?${f}`)?a.hash=a.hash.replace(`?${f}`,""):a.hash.includes(`&${f}`)&&(a.hash=a.hash.replace(`&${f}`,""))}else{let u=new URLSearchParams(a.search.slice(1));u.delete(s),u.delete(`${s}Params`);let f="";Array.from(u.keys()).forEach(h=>{f+=(f===""?"?":"&")+h+"="+u.get(h)}),a.search=f}if(history.state&&history.state.modalHistoryLength>=0&&t){history.state.modalHistoryLength;const u=history.state.pathBeforeHistory;let f=!1;if(window.addEventListener("popstate",h=>{f?(history.replaceState({},"",u),history.pushState({},"",u),history.back()):(history.pushState({},"",u),history.back())},{once:!0}),history.state.historygap===history.length-history.state.modalHistoryLength)history.go(-history.state.modalHistoryLength);else if(history.state.modalHistoryLength>history.length){const h=history.length-1;f=!0,history.go(-h),window.Luigi.preventLoadingModalData=!0}else{const h=history.state.modalHistoryLength;history.go(-h)}}else history.pushState({},"",a.href)}setFeatureToggle(t){const n=this.luigi.getConfigValue("settings.featureToggles.queryStringParam"),s=this.luigi.featureToggles();n&&typeof t=="string"&&D.setFeatureToggles(n,t,s)}updateModalDataInUrl(t,n,s){let a=D.getHashQueryParamSeparator();const l=D.getQueryParams(this.luigi),u=D.getModalViewParamName(this.luigi);l[u]=t,n&&Object.keys(n).length&&(l[`${u}Params`]=JSON.stringify(n));const f=new URL(location.href);if(this.luigi.getConfigValue("routing.useHashRouting")){const g=location.hash.indexOf(a);g!==-1&&(f.hash=f.hash.slice(0,g)),f.hash=`${f.hash}${a}${D.encodeParams(l)}`}else f.search=`?${D.encodeParams(l)}`;s?history.pushState(window.state,"",f.href):history.replaceState(window.state,"",f.href)}checkInvalidateCache(t,n){if(!t)return;const s=j.get(hr);let a=n.split("/");if(t.nodesInPath&&t.nodesInPath.length>0){let l=t.nodesInPath.slice(1),u=!0;for(let f=0;f<l.length;f++){let h=a.length>f?a[f]:void 0,g=l[f];if(h!==g.pathSegment||!u)if(D.isDynamicNode(g)){if(!u||h!==D.getDynamicNodeValue(g,t.pathParams)){s.deleteNodesRecursively(g);break}}else u=!1}}else s.deleteCache()}async handlePageNotFound(t,n,s,a,l){const u=M.getTrimmedUrl(a),f=D.isExistingRoute(u,s);if(!n&&!t?.compound||t?.tabNav?.showAsTabHeader){const h=await D.getDefaultChildNode(s,async(g,_)=>await this.getNavigationService().getChildren(g,_));if(f){const g=M.getTrimmedUrl(a);return this.getNavigationService().handleNavigationRequest({path:`${g?`/${g}`:""}/${h}`,preserveView:void 0,modalSettings:void 0,newTab:!1,withoutSync:!1,preventContextUpdate:!1,preventHistoryEntry:!0}),!1}else{if(h&&s?.nodesInPath&&s.nodesInPath.length>1)return this.showPageNotFoundError(M.trimTrailingSlash(u||"")+"/"+h,l,!0),!0;const g=await D.getDefaultChildNode(s);this.showPageNotFoundError(g,l,!1)}return!0}return f?!1:(this.showPageNotFoundError(s.matchedPath,l,!0),!0)}async showPageNotFoundError(t,n,s=!1){const a=D.getPageNotFoundRedirectResult(n,s,this.luigi);if(a.ignoreLuigiErrorHandling)return;const l=a.path;if(l){if(a.keepURL){const u=this.luigi.getConfig().routing?.useHashRouting,f=D.getCurrentPath(this.luigi,u);f.path=l,this.handleRouteChange(f)}else this.getNavigationService().handleNavigationRequest({path:l});return}D.showRouteNotFoundAlert(n,s,this.luigi),this.getNavigationService().handleNavigationRequest({path:M.addLeadingSlash(t)})}async handleViewUrlMisconfigured(t,n,s,a){const{children:l,intendToHaveEmptyViewUrl:u,compound:f}=t,h=!!l?.length;if(!f&&n.trim()===""&&!h&&!u){if(console.warn("The intended target route can't be accessed since it has neither a viewUrl nor children. This is most likely a misconfiguration."),!(s&&(s.selectedNode?.viewUrl||s.selectedNode&&s.selectedNode.compound))){const g=await this.getNavigationService().getPathData("/"),_=await D.getDefaultChildNode(g);this.showPageNotFoundError(_,a,!1),this.getNavigationService().handleNavigationRequest({path:_})}return!0}return!1}}class Mi{constructor(){this.decorators=[]}hasDecorators(){return this.decorators.length>0}add(t){this.decorators=this.decorators.filter(n=>n.uid!==t.uid).concat(t)}applyDecorators(t,n){if(!t)return t;const s=new URL(M.prependOrigin(t)),a=this.decorators.filter(l=>l.type==="queryString");for(let l=0;l<a.length;l++){const u=a[l];s.searchParams.has(u.key)&&s.searchParams.delete(u.key);const f=u.valueFn();s.searchParams.append(u.key,f)}return n&&(s.search=decodeURIComponent(s.search)),s.href}}const Ia=async(r,t,n)=>{const s=await t.readUserSettings(),l=r.userSettingsGroup&&typeof s=="object"&&s!==null&&r.userSettingsGroup?s[r.userSettingsGroup]:null,u=n?.nodeParams||{},f=n?.pathParams||{},h=n?.searchParams||{};if(r.webcomponent&&r.viewUrl&&!D.checkWCUrl(r.viewUrl,t))return console.warn(`View URL '${r.viewUrl}' not allowed to be included`),document.createElement("div");if(r.compound){const g=document.createElement("luigi-compound-container");return g.setAttribute("lui_container","true"),g.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,f,u,t),r.decodeViewUrl??!1):"",g.webcomponent=r.webcomponent??!1,g.compoundConfig=r.compound,g.context=r.context,g.clientPermissions=r.clientPermissions??{},g.nodeParams=u,g.pathParams=f,g.userSettingsGroup=r.userSettingsGroup,g.userSettings=l,g.searchParams=h,g.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),g.locale=t.i18n().getCurrentLocale(),g.theme=t.theming().getCurrentTheme(),g.viewGroup=r.viewGroup,g.virtualTree=r.virtualTree||r._virtualTree,g.virtualTreeRootNode=Oe.findVirtualTreeRootNode(r),t.getEngine()._comm.addListeners(g,t),g}else{const g=document.createElement("luigi-container");return g.setAttribute("lui_container","true"),g.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,f,u,t),r.decodeViewUrl??!1):"",g.webcomponent=r.webcomponent??!1,g.context=r.context,g.authData=ir.getStoredAuthData(),g.clientPermissions=r.clientPermissions??{},g.cssVariables=await t.theming().getCSSVariables(),g.nodeParams=u,g.pathParams=f,g.userSettingsGroup=r.userSettingsGroup,g.userSettings=l,g.searchParams=h,g.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),g.locale=t.i18n().getCurrentLocale(),g.theme=t.theming().getCurrentTheme(),g.viewGroup=r.viewGroup,g.virtualTree=r.virtualTree||r._virtualTree,g.virtualTreeRootNode=Oe.findVirtualTreeRootNode(r),qd(g,t),zd(g,t),t.getEngine()._comm.addListeners(g,t),g.luigiMfId=M.getRandomId(),g}},qd=(r,t)=>{const n=t.getConfigValue("settings.customSandboxRules");if(!n?.length)return;const s=["allow-forms","allow-modals","allow-popups","allow-popups-to-escape-sandbox","allow-same-origin","allow-scripts"],a=n?[...new Set([...s,...n])]:s;r.sandboxRules=a},zd=(r,t)=>{const n=t.getConfigValue("settings.allowRules");n?.length&&(n.forEach((s,a)=>{n[a]=s+(s.indexOf(";")!=-1?"":";")}),r.allowRules=n)},G={navService:void 0,routingService:void 0,luigi:void 0,modalContainer:[],drawerContainer:void 0,init:r=>{G.navService=j.get(dr),G.routingService=j.get(Wr),G.luigi=r,r.getEngine()._connector?.renderMainLayout();const t=j.get(Di);t.shouldPreload=!0,t.preload(!0),t.shouldPreload=!1},update:async r=>{const t=G.routingService.getCurrentRoute();if(!t)return;const n=!r||r.length===0;if((n||r.includes("settings.header")||r.includes("settings")||r.includes("navigation")||r.includes("navigation.profile")||r.includes("navigation.contextSwitcher")||r.includes("navigation.productSwitcher"))&&G.luigi.getEngine()._connector?.renderTopNav(await G.navService.getTopNavData(t.path)),n||r.includes("navigation")||r.includes("navigation.nodes")||r.includes("navigation.viewgroupdata")||r.includes("settings")||r.includes("settings.footer")){j.get(hr).deleteCache(),G.luigi.getEngine()._connector?.renderLeftNav(await G.navService.getLeftNavData(t.path)),G.luigi.getEngine()._connector?.renderTabNav(await G.navService.getTabNavData(t.path));const s=G.luigi.getEngine()._connector;s?.renderBreadcrumbs(await G.navService.getBreadcrumbData(t.path,void 0,a=>{s?.renderBreadcrumbs(a)}))}if(n||r.includes("navigation")||r.includes("navigation.nodes")||r.includes("navigation.viewgroupdata")){if(j.get(hr).deleteCache(),t.path){const a=(await G.navService.getPathData(t.path))?.selectedNode??t.node;a&&(t.node=a,G.updateMainContent(a,G.luigi))}}else r.includes("settings.theming")&&t.node&&G.updateMainContent(t.node,G.luigi)},updateMainContent:async(r,t,n,s,a)=>{const l=await t.readUserSettings(),f=r.userSettingsGroup&&typeof l=="object"&&l!==null&&r.userSettingsGroup?l[r.userSettingsGroup]:null,h=t.getEngine()._connector?.getContainerWrapper();t.getEngine()._connector?.hideLoadingIndicator(h);const g=n?.nodeParams||{},_=n?.pathParams||{},w=n?.searchParams||{};if(r&&h){let m,E;if((r.virtualTree||r._virtualTree)&&(E=Oe.findVirtualTreeRootNode(r)),[...h.childNodes].forEach(C=>{if(C.tagName?.indexOf("LUIGI-")===0)if(C.viewGroup&&r.viewGroup!==C.viewGroup){C.style.display="none";const R=t.getConfigValue("navigation.viewGroupSettings")?.[C.viewGroup];R?.preloadUrl&&(C.viewurl=R.preloadUrl,C.context={},C.nodeParams={},C.pathParams={})}else C.viewGroup||C.virtualTree&&E===C.virtualTreeRootNode?m=C:C.remove()}),m&&m._luigiPreloading&&(m._luigiPreloading=!1,j.get(Di).viewGroupLoaded(m)),m)s||(m.style.display="block",m.viewurl=r.viewUrl?j.get(Mi).applyDecorators(D.substituteViewUrl(r,_,g,t),r.decodeViewUrl??!1):"",m.nodeParams=g,m.pathParams=_,m.clientPermissions=r.clientPermissions,m.searchParams=w,m.locale=t.i18n().getCurrentLocale(),m.theme=t.theming().getCurrentTheme(),m.activeFeatureToggleList=t.featureToggles().getActiveFeatureToggleList(),m.userSettingsGroup=r.userSettingsGroup,m.userSettings=f,qd(m,t),zd(m,t)),a||m.updateContext(r.context||{},{withoutSync:!1});else{const C=await Ia(r,t,n);h?.appendChild(C);const R=t.getEngine()._connector;r.loadingIndicator?.enabled!==!1&&R?.showLoadingIndicator(h)}}},openModal:async(r,t,n,s)=>{const a=await Ia(t,r);G.modalContainer.push(a);const l=j.get(Wr),u=j.get(fr),f=j.get(un);let h=!1,g,_;const m=new Promise(R=>{g=()=>{h||(h=!0,R(),u.removeLastModalFromStack())},_=async()=>{try{await f.getUnsavedChangesModalPromise(a)}catch{return}g&&g(),r.getConfigValue("routing.showModalPathInUrl")&&u.getModalStackLength()===0&&l.removeModalDataFromUrl(!0)},a.addEventListener(k.CLOSE_CURRENT_MODAL_REQUEST,_)}),E={closePromise:m,resolveFn:g,onCloseRequestHandler:_,onInternalClose:()=>{try{f.clearDirtyState(a),E.resolveFn&&E.resolveFn()}catch(R){console.warn("onInternalClose failed",R)}},modalsettings:n};u.registerModal(E),r.getEngine()._connector?.renderModal(a,n,async()=>{try{await f.getUnsavedChangesModalPromise(a)}catch{return}s?.(),g&&g(),r.getConfigValue("routing.showModalPathInUrl")&&u.getModalStackLength()===0&&l.removeModalDataFromUrl(!0)},()=>m);const C=r.getEngine()._connector;t.loadingIndicator?.enabled!==!1&&C?.showLoadingIndicator(a.parentElement)},updateModalSettings:(r,t,n)=>{const s=j.get(fr);if(s.getModalStackLength()===0)return;s.updateFirstModalSettings(r);const a=j.get(Wr),l=D.getModalPathFromPath(n);l&&a.updateModalDataInUrl(l,s.getModalSettings(),t),n.getEngine()._connector?.updateModalSettings(s.getModalSettings())},openDrawer:async(r,t,n,s)=>{const a=j.get(un);if(G.drawerContainer&&a.shouldShowUnsavedChangesModal(G.drawerContainer))try{await a.getUnsavedChangesModalPromise(G.drawerContainer)}catch{return}const l=await Ia(t,r);G.drawerContainer=l;const u=new Promise(h=>{const g=async()=>{try{await a.getUnsavedChangesModalPromise(l)}catch{return}G.drawerContainer=void 0,a.clearDirtyState(l),h()};l.addEventListener(k.CLOSE_CURRENT_MODAL_REQUEST,g)});r.getEngine()._connector?.renderDrawer(l,n,async()=>{try{await a.getUnsavedChangesModalPromise(l)}catch{return}s?.(),G.drawerContainer=void 0,a.clearDirtyState(l)},()=>u);const f=r.getEngine()._connector;t.loadingIndicator?.enabled!==!1&&f?.showLoadingIndicator(l.parentElement)},openUserSettings:async(r,t,n,s)=>{const a={},l=async(f,h)=>{const g=f.viewUrl,_=f.webcomponent??!1,w=n?.[h]||{},m={...f.context,userSettingsData:w},E=await Ia({viewUrl:g,userSettingsGroup:h,webcomponent:_,context:m},s);return E.addEventListener(k.CUSTOM_MESSAGE,C=>{const R=C.detail;R?.id==="luigi.updateUserSettings"&&(a[h]=R.data?.data??R.data)}),E},u=async(f,h)=>{const g={...f,...a};await s.storeUserSettings(g,h)};r.renderMicroFrontendContainer=l,r.onCloseCallback=u,s.getEngine()._connector?.openUserSettings(r,t,n)}};class iC{constructor(){this._userInfoStore=$a({}),this._loggedInStore=$a(!1)}setUserInfo(t){this._userInfoStore.set(t)}setLoggedIn(t){this._loggedInStore.set(t)}getUserInfoStore(){return this._userInfoStore}getLoggedInStore(){return this._loggedInStore}async init(){const t=ot.getConfigValue("auth.use");if(!t)return Promise.resolve(!0);const n=ot.getConfigValue(`auth.${t}`),s=ir.parseUrlAuthErrors()||{};if(await ir.handleUrlAuthErrors(n,s.error,s.errorDescription))return this.idpProviderInstance=this.getIdpProviderInstance(t,n),M.isPromise(this.idpProviderInstance)?this.idpProviderInstance.then(l=>(this.idpProviderInstance=l,this.checkAuth(n))).catch(l=>{const u=`Error: ${l.message||l}`;console.error(u,l.message&&l),ot.setErrorMessage(u)}):this.checkAuth(n)}async checkAuth(t){const n=ir.getStoredAuthData();if(!n||!ir.isLoggedIn()){if(ot.getConfigValue("auth.disableAutoLogin"))return;let a=!0;return n&&(a=await _i.handleAuthEvent("onAuthExpired",t)),a?this.startAuthorization():void 0}this.idpProviderInstance.settings&&M.isFunction(this.idpProviderInstance.settings.userInfoFn)?this.idpProviderInstance.settings.userInfoFn(this.idpProviderInstance.settings,n).then(a=>{this.setUserInfo(a),this.setLoggedIn(!0)}):M.isFunction(this.idpProviderInstance.userInfo)?this.idpProviderInstance.userInfo(t).then(a=>{this.setUserInfo(a),this.setLoggedIn(!0)}):(this.setLoggedIn(!0),this.setUserInfo(Bh(this._userInfoStore))),M.isFunction(ot.getConfigValue("auth.events.onAuthSuccessful"))&&rn.isNewlyAuthorized()&&await _i.handleAuthEvent("onAuthSuccessful",t,n),rn.removeNewlyAuthorized(),M.isFunction(this.idpProviderInstance.setTokenExpirationAction)&&this.idpProviderInstance.setTokenExpirationAction(),M.isFunction(this.idpProviderInstance.setTokenExpireSoonAction)&&this.idpProviderInstance.setTokenExpireSoonAction()}async startAuthorization(){if(this.idpProviderInstance)return this.idpProviderInstance.login().then(t=>{rn.setNewlyAuthorized(),t&&console.error(t)})}logout(){const t=ir.getStoredAuthData(),n=async l=>{await _i.handleAuthEvent("onLogout",this.idpProviderInstance.settings,void 0,l),rn.removeAuthData()},s=ot.getConfigValue(`auth.${ot.getConfigValue("auth.use")}.logoutFn`),a=ot.getConfigValueAsync("navigation.profile.logout.customLogoutFn");M.isFunction(s)?s(this.idpProviderInstance.settings,t,n):M.isFunction(this.idpProviderInstance.logout)?this.idpProviderInstance.logout(t,n):a&&M.isFunction(a)?a(t,n):n(this.idpProviderInstance.settings.logoutUrl)}createIdpProviderException(t){return{message:t,name:"IdpProviderException"}}async getIdpProviderInstance(t,n){const s=M.getConfigValueFromObject(n,"idpProvider");if(s){const l=await new s(n);return["login"].forEach(u=>{if(!M.isFunction(l[u]))throw this.createIdpProviderException(`${u} function does not exist in custom IDP Provider ${t}`)}),l}if(M.isFunction(ot.getConfigValue("auth.events.onAuthConfigError")))await _i.handleAuthEvent("onAuthConfigError",{idpProviderName:t,type:"IdpProviderException"});else throw this.createIdpProviderException(`IDP Provider ${t} does not exist.`)}unload(){this.idpProviderInstance&&M.isFunction(this.idpProviderInstance.unload)&&this.idpProviderInstance.unload()}resetExpirationChecks(){this.idpProviderInstance&&M.isFunction(this.idpProviderInstance.resetExpirationChecks)&&this.idpProviderInstance.resetExpirationChecks()}broadcastAuthData(t){const s=ot.getLuigi()?.getEngine()?._connector?.getContainerWrapper();if(s){for(const a of s.childNodes)a.tagName?.startsWith("LUIGI-")&&a.setAttribute("auth-data",JSON.stringify(t));G.modalContainer?.forEach(a=>a.setAttribute("auth-data",JSON.stringify(t))),G.drawerContainer&&G.drawerContainer.setAttribute("auth-data",JSON.stringify(t))}}}const ar=new iC,sC={luigi:{button:{confirm:"Yes",dismiss:"No"},confirmationModal:{body:"Are you sure you want to do this?",header:"Confirmation"},navigation:{up:"Up"},notExactTargetNode:"Could not map the exact target node for the requested route {route}.",requestedRouteNotFound:"Could not find the requested route {route}.",unsavedChangesAlert:{body:"Unsaved changes will be lost. Do you want to continue?",header:"Unsaved changes detected"}}},aC=sC;class oC{constructor(t){this.luigi=t,this.currentLocaleStorageKey="luigi.currentLocale",this.defaultLocale="en",this.listeners={},this.translationTable=aC}_init(){this._initCustomImplementation(),this.addCurrentLocaleChangeListener(t=>{this.broadcastLocaleToAllContainers(t)})}getCurrentLocale(){return sessionStorage.getItem(this.currentLocaleStorageKey)||this.defaultLocale}setCurrentLocale(t){t&&(sessionStorage.setItem(this.currentLocaleStorageKey,t),this._notifyLocaleChange(t)),this.luigi.getEngine()._connector?.setCurrentLocale(t)}addCurrentLocaleChangeListener(t){let n=null;return M.isFunction(t)?(n=M.getRandomId(),this.listeners[n]=t):console.error("Provided locale change listener is not a function."),n}removeCurrentLocaleChangeListener(t){t&&this.listeners[t]?delete this.listeners[t]:console.error("Unable to remove locale change listener - no listener registered for given ID.")}getTranslation(t,n=void 0,s=void 0){if(!t)return"";if(this.translationImpl){const l=this.translationImpl.getTranslation(t,n,s);if(l!==t)return l}const a=this.findTranslation(t,this.translationTable,n);return a||t}_notifyLocaleChange(t){Object.getOwnPropertyNames(this.listeners).forEach(n=>{this.listeners[Number(n)](t)}),this.luigi.configChanged()}_initCustomImplementation(){this.translationImpl=this.luigi.getConfigValue("settings.customTranslationImplementation"),M.isFunction(this.translationImpl)&&(this.translationImpl=this.translationImpl())}broadcastLocaleToAllContainers(t){const n=M.getNodeList("luigi-container[lui_container]");n?.length&&t&&n.forEach(s=>{s.locale=t,s.updateContext({locale:t})})}findTranslation(t,n,s){const a=t.split(".");for(let l=0;l<a.length;l++){const u=a[l];if(Object.prototype.hasOwnProperty.call(n,u)&&typeof n[u]=="object")n=n[u];else return s?this.findInterpolations(n[u],s):n[u]}}findInterpolations(t,n){return typeof t!="string"||!t.trim()||Object.keys(n).forEach(s=>{t=t.replace(new RegExp("{"+Ba.escapeKeyForRegexp(s)+"}","gi"),n[s])}),t}}const Kl={getMicrofrontendsInDom(r){return[...this.getMainMicrofrontends(r).map(t=>({container:t.iframe,active:t.active,type:"main",id:t.id})),...this.getModalMicrofrontends().map(t=>({container:t.iframe,active:t.active,type:"modal",id:t.id})),...(()=>{const t=this.getDrawerMicrofrontends();return t.iframe?[{container:t.iframe,active:t.active,type:"drawer",id:t.id}]:[]})()]},getMainMicrofrontends(r){const t=r.getEngine()._connector?.getContainerWrapper();if(!t)return[];const n=[];for(const s of t.childNodes)if(s.tagName?.startsWith("LUIGI-"))if(s.iframeHandle?.iframe)n.push({iframe:s.iframeHandle.iframe,id:s.luigiMfId,active:M.isElementVisible(s)});else{const a=s.shadowRoot?.firstElementChild?.firstElementChild??null;a&&n.push({iframe:a,id:s.luigiMfId,active:M.isElementVisible(s)})}return n},getModalMicrofrontends(){const r=[];for(const t of G.modalContainer)if(t.iframeHandle?.iframe)r.push({iframe:t.iframeHandle.iframe,id:t.luigiMfId,active:M.isElementVisible(t)});else{const n=t.shadowRoot?.firstElementChild?.firstElementChild??null;n&&r.push({iframe:n,id:t.luigiMfId,active:M.isElementVisible(t)})}return r},getDrawerMicrofrontends(){if(!G.drawerContainer)return{};if(G.drawerContainer.iframeHandle?.iframe)return{iframe:G.drawerContainer.iframeHandle.iframe,id:G.drawerContainer.luigiMfId,active:M.isElementVisible(G.drawerContainer)};{const r=G.drawerContainer.shadowRoot?.firstElementChild?.firstElementChild??null;if(r)return{iframe:r,id:G.drawerContainer.luigiMfId,active:M.isElementVisible(G.drawerContainer)}}return{}},getAllLuigiContainerIframe(r){const t=r.getEngine()._connector?.getContainerWrapper();if(!t)return;const n=[...t.children].filter(s=>s.tagName?.indexOf("LUIGI-CONTAINER")===0&&s.iframeHandle?.iframe);for(const s of G.modalContainer)s.iframeHandle?.iframe&&n.push(s);return G.drawerContainer&&G.drawerContainer.iframeHandle?.iframe&&n.push(G.drawerContainer),n.length>0?n:void 0}};class lC{constructor(t){this.luigi=t}getShellbar(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getShellbarElement()||null}getShellbarActions(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getShellbarActions()||null}getLuigiContainer(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getLuigiContainer()||null}getNavFooterContainer(){return this.luigi.getEngine()._connector?.getCoreAPISupportedElements().getNavFooterContainer()||null}getMicrofrontends(){return Kl.getMicrofrontendsInDom(this.luigi)}getMicrofrontendIframes(){const t=this.luigi.getEngine()._connector?.getContainerWrapper();let n=[];if(G.modalContainer)for(const s of Array.from(G.modalContainer))s.tagName?.startsWith("LUIGI-")&&s.iframeHandle?.iframe&&n.push(s.iframeHandle.iframe);if(G.drawerContainer&&n.push(G.drawerContainer.iframeHandle.iframe),!t)return null;for(const s of Array.from(t.childNodes))s.tagName?.startsWith("LUIGI-")&&s.iframeHandle?.iframe&&n.push(s.iframeHandle.iframe);return n}getCurrentMicrofrontendIframe(){const t=this.luigi.getEngine()._connector?.getContainerWrapper();if(!t)return null;const n=G.modalContainer[0]?.iframeHandle?.iframe??null;let s=null,a=null;for(const l of Array.from(t.children))l.tagName?.startsWith("LUIGI-")&&M.isElementVisible(l)&&(l.iframeHandle?.iframe?s=l.iframeHandle.iframe:a=l.shadowRoot?.firstElementChild?.firstElementChild??null);return n||s||a}}const uC={luigiAfterInit:async r=>{M.getConfigBooleanValue(r.getConfig(),"settings.appLoadingIndicator.hideAutomatically")&&setTimeout(()=>{r.ux().hideAppLoadingIndicator()},0),await ot.executeConfigFnAsync("lifecycleHooks.luigiAfterInit")}};class cC{constructor(){this.featureToggleList=new Set}setFeatureToggle(t,n=!1){this.isValid(t)&&(t.startsWith("!")&&!n||this.isDuplicatedOrDisabled(t)||this.featureToggleList.add(t))}unsetFeatureToggle(t){if(this.isValid(t)){if(!this.featureToggleList.has(t)){console.warn("Feature toggle name is not in the list.");return}this.featureToggleList.delete(t)}}getActiveFeatureToggleList(){return[...Array.from(this.featureToggleList)].filter(n=>!n.startsWith("!"))}isValid(t){return M.isString(t)?!0:(console.warn("Feature toggle name is not valid or not of type 'string'"),!1)}isDuplicatedOrDisabled(t){return this.featureToggleList.has(t)?(console.warn("Feature toggle name already exists"),!0):this.featureToggleList.has(`!${t}`)?(console.warn("Disabled feature toggle can not be activated"),!0):!1}}class fC{constructor(t){this.hashRouting=!1,this.options={fromContext:null,fromClosestContext:!1,fromVirtualTreeRoot:!1,fromParent:!1,nodeParams:{}},this.navigate=async(n,s,a,l,u)=>{const f=n[0]!=="/";this.options.relative=f;const h={modalSettings:a,newTab:!1,options:this.options,path:n,preserveView:s,preventContextUpdate:!1,preventHistoryEntry:!1,withoutSync:!1};return this.navService.handleNavigationRequest(h,void 0)},this.navigateToIntent=(n,s={})=>{let a="#?intent=";if(a+=n,s&&Object.keys(s)?.length){const l=Object.entries(s);if(l.length>0){a+="?";for(const[u,f]of l)a+=u+"="+f+"&";a=a.slice(0,-1)}}this.navigate(a)},this.openAsModal=async(n,s,a)=>{if(!s?.keepPrevious&&!await this.modalService.closeModalsWithDirtyCheck())return;const l=n.replace(/\/\/+/g,"/");if(!await Oe.validatePathAndGetRedirect(l,this.luigi))return;const f=await this.navService.getCurrentNode(l),h=s||{};h.title||(h.title=f?.label),this.luigi.getConfigValue("routing.showModalPathInUrl")&&this.modalService.getModalStackLength()===0&&this.routingService.appendModalDataToUrl(l,h),this.luigi.getEngine()._ui.openModal(this.luigi,f,h,a)},this.openAsDrawer=async(n,s,a)=>{const l=n.replace(/\/\/+/g,"/");if(!await Oe.validatePathAndGetRedirect(l,this.luigi))return;const f=await this.navService.getCurrentNode(l),h=s||{};if(!h.header?.title){const _=await D.getNodeLabel(f,this.luigi)||"";h.header?h.header.title=_:h.header={title:_}}h.overlap===void 0&&(h.overlap=!0),this.luigi.getEngine()._ui.openDrawer(this.luigi,f,h,a)},this.runTimeErrorHandler=async n=>{const{path:s}=D.getCurrentPath(this.luigi,this.luigi.getConfig().routing?.useHashRouting),a=await this.navService.getCurrentNode(s),l=this.luigi.getConfigValue("navigation.defaults.runTimeErrorHandler");a?.runTimeErrorHandler?.errorFn&&M.isFunction(a?.runTimeErrorHandler?.errorFn)?a.runTimeErrorHandler.errorFn(n,a):l?.errorFn&&M.isFunction(l.errorFn)&&l.errorFn(n,a)},this.pathExists=async n=>await D.pathExists(n,this.luigi),this.luigi=t,this.hashRouting=t.getConfig().routing?.useHashRouting,this.navService=j.get(dr),this.routingService=j.get(Wr),this.modalService=j.get(fr)}fromVirtualTreeRoot(){return this.options.fromContext=null,this.options.fromClosestContext=!1,this.options.fromVirtualTreeRoot=!0,this.options.fromParent=!1,this}fromContext(t){return this.options.fromContext=t,this}fromClosestContext(){return this.options.fromContext=null,this.options.fromClosestContext=!0,this.options.fromParent=!1,this}fromParent(){return this.options.fromContext=null,this.options.fromClosestContext=!1,this.options.fromVirtualTreeRoot=!1,this.options.fromParent=!0,this}withParams(t){return t&&Object.assign(this.options.nodeParams??{},t),this}}class hC{constructor(t){this.luigi=t}addSearchParams(t,n=!1){if(!M.isObject(t)){console.log("Params argument must be an object");return}const s=new URL(location.href);this.luigi.getConfigValue("routing.useHashRouting")?s.hash=D.addParamsOnHashRouting(t,s.hash):D.modifySearchParams(t,s.searchParams),this.handleBrowserHistory(n,s),this.luigi.configChanged()}getSearchParams(){const t={},n=["__proto__","constructor","prototype"],s=new URL(location.href);let a;if(this.luigi.getConfigValue("routing.useHashRouting")){const l=s.hash.split("?")[1];a=l?new URLSearchParams(l).entries():[]}else a=s.searchParams.entries();for(const[l,u]of a){if(n.some(f=>l===f)){console.warn(`Blocked because of potentially dangerous query param: ${l}`);continue}t[l]=u}return t}handleBrowserHistory(t,n){const s=this.sanitizeUrl(n.href);if(!s){console.warn("invalid url: "+s);return}t?window.history.pushState({},"",s):window.history.replaceState({},"",s)}sanitizeUrl(t){return new URL(location.href).origin===new URL(t).origin?t:void 0}addNodeParams(t,n){if(!M.isObject(t)){console.log("Params argument must be an object");return}const s=D.getContentViewParamPrefix(this.luigi),a=new URL(location.href);this.luigi.getConfigValue("routing.useHashRouting")?a.hash=D.addParamsOnHashRouting(t,a.hash,s):D.modifySearchParams(t,a.searchParams,s),this.handleBrowserHistory(n,a),this.luigi.getConfigValue("routing.useHashRouting")?window.dispatchEvent(new HashChangeEvent("hashchange")):this.luigi.configChanged()}}class dC{#e;#n="";constructor(t){this.#e=t}async getAvailableThemes(){return await this.#e.getConfigValueAsync("settings.theming.themes")}setCurrentTheme(t){this.#n=t,this.#e.__cssVars=void 0}async getThemeObject(t){return(await this.getAvailableThemes())?.find(s=>s.id===t)}getCurrentTheme(){if(!this.isThemingAvailable())return!1;if(this.#n)return this.#n;const t=this.#e.getConfigValue("settings.theming");return t.defaultTheme||console.error("[Theming] getCurrentTheme() error. No theme set and no defaultTheme found in configuration",t),t.defaultTheme}isThemingAvailable(){return!!this.#e.getConfigValue("settings.theming")}async getCSSVariables(){if(!window.Luigi.__cssVars){const t=this.#e.getConfigValue("settings.theming.variables.file");if(t)try{const n=await fetch(t);window.Luigi.__cssVars=(await n.json()).root,Object.keys(window.Luigi.__cssVars).forEach(s=>{const a=getComputedStyle(document.documentElement).getPropertyValue("--"+s);a&&(window.Luigi.__cssVars[s]=a)})}catch(n){M.isFunction(this.#e.getConfigValue("settings.theming.variables.errorHandling"))?this.#e.getConfigValue("settings.theming.variables.errorHandling")(n):console.error("CSS variables file error: ",n)}else this.#e.getConfigValue("settings.theming.variables")==="fiori"&&window.__luigiThemeVars?(window.Luigi.__cssVars={},window.__luigiThemeVars.forEach(n=>{window.Luigi.__cssVars[n]=getComputedStyle(document.documentElement).getPropertyValue("--"+n)})):window.Luigi.__cssVars={}}return window.Luigi.__cssVars}_init(){const t=j.get(Mi);(()=>{const s=this.#e.getConfigValue("settings.theming");s&&s.nodeViewURLDecorator&&s.nodeViewURLDecorator.queryStringParameter&&t.add({type:"queryString",uid:"theming",key:s.nodeViewURLDecorator.queryStringParameter.keyName,valueFn:()=>{const a=this.getCurrentTheme(),l=s.nodeViewURLDecorator.queryStringParameter.value;return l?l(a):a}}),s&&s.useFioriScrollbars===!0&&document.body.classList.add("fioriScrollbars")})()}}let Lh;const qe={luigi:void 0,documentTitle:void 0,init:r=>{qe.luigi=r,qe.documentTitle=$a(void 0),Lh=j.get(un)},processAlert:(r,t,n)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");const s={openFromClient:t,close:()=>{r.id&&n.notifyAlertClosed(r.id)},link:a=>{if(r.links){const l=r.links[a];if(l&&(l.url&&qe.luigi?.navigation().navigate(l.url),l.dismissKey&&r.id))return n.notifyAlertClosed(r.id,l.dismissKey),!0}return!1}};qe.luigi.getEngine()._connector?.renderAlert(r,s)},handleConfirmationModalRequest:(r,t)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");r&&(r={...r,header:qe.luigi.i18n().getTranslation(r.header||"luigi.confirmationModal.header"),body:qe.luigi.i18n().getTranslation(r.body||"luigi.confirmationModal.body"),buttonDismiss:qe.luigi.i18n().getTranslation(r.buttonDismiss||"luigi.button.dismiss"),buttonConfirm:qe.luigi.i18n().getTranslation(r.buttonConfirm||"luigi.button.confirm")}),qe.luigi.getEngine()._connector?.renderConfirmationModal(r,{confirm(){t.notifyConfirmationModalClosed(!0)},dismiss(){t.notifyConfirmationModalClosed(!1)}})},handleDirtyStatusRequest:(r,t)=>{if(!qe.luigi)throw new Error("Luigi is not initialized.");Lh.updateDirtyStatus(r,t)}};class gC{processUserSettingGroups(t,n){const s=[],a=t?.userSettingGroups,l=n?.userSettings?.userSettingGroups,u=a||l;if(M.isObject(u)){for(const f in u){const h={};h[f]=u[f],s.push(h)}return s}return s}getUserSettingsIframesInDom(){const t=document.querySelector(".iframeUserSettingsCtn");return t?[...t.children]:[]}hideUserSettingsIframe(){this.getUserSettingsIframesInDom().forEach(t=>{t.style.display="none"})}findActiveCustomUserSettingsIframe(t){const n=document.querySelectorAll("[userSettingsGroup]");for(let s=0;s<n.length;s++)if(n[s].contentWindow===t)return n[s];return null}}const pC=new gC;class vC{constructor(t){this.dirtyStatusService=j.get(un),this.appLoadingIndicatorSelector="[luigi-app-loading-indicator]",this.showAlert=n=>new Promise(s=>{n.id||(n.id=M.getRandomId().toString());const a={openFromClient:!1,close:()=>{s(!0)},link:l=>{if(n.links){const u=n.links[l];if(u&&(u.url&&this.luigi?.navigation().navigate(u.url),u.dismissKey))return s(u.dismissKey),!0}return!1}};this.luigi.getEngine()._connector?.renderAlert(n,a)}),this.showConfirmationModal=n=>(n&&(n={...n,header:this.luigi.i18n().getTranslation(n.header||"luigi.confirmationModal.header"),body:this.luigi.i18n().getTranslation(n.body||"luigi.confirmationModal.body"),buttonDismiss:this.luigi.i18n().getTranslation(n.buttonDismiss||"luigi.button.dismiss"),buttonConfirm:this.luigi.i18n().getTranslation(n.buttonConfirm||"luigi.button.confirm")}),new Promise((s,a)=>{this.luigi.getEngine()._connector?.renderConfirmationModal(n,{confirm(){s(!0)},dismiss(){a()}})})),this.openUserSettings=async()=>{const n=this.luigi.getConfigValue("userSettings");if(!n)return;const s=this.luigi.getConfigValue("settings"),a=await this.luigi.readUserSettings(),l=pC.processUserSettingGroups(n,s),u=n.userSettingsDialog||{},f=u.dialogHeader||Mr.userSettingsDialog.dialogHeader,h=u.saveBtn||Mr.userSettingsDialog.saveBtn,g=u.dismissBtn||Mr.userSettingsDialog.dismissBtn,_={dialogHeader:this.luigi.i18n().getTranslation(f),saveBtn:this.luigi.i18n().getTranslation(h),dismissBtn:this.luigi.i18n().getTranslation(g)};this.luigi.getEngine()._ui?.openUserSettings(_,l,a,this.luigi)},this.closeUserSettings=()=>{this.luigi.getEngine()._connector?.closeUserSettings()},this.setDocumentTitle=n=>{this.luigi.getEngine()._ux?.documentTitle?.set(n),this.luigi.getEngine()._connector?.setDocumentTitle(n)},this.getDocumentTitle=()=>Bh(this.luigi.getEngine()._ux?.documentTitle)||window.document.title||"",this.hideAppLoadingIndicator=()=>{const n=document.querySelector(this.appLoadingIndicatorSelector);n&&(n.classList.add("hidden"),setTimeout(()=>{n.parentNode?.removeChild(n)},500))},this.showLoadingIndicator=n=>this.luigi.getEngine()._connector?.showLoadingIndicator(n),this.hideLoadingIndicator=n=>this.luigi.getEngine()._connector?.hideLoadingIndicator(n),this.addBackdrop=()=>this.luigi.getEngine()._connector?.addBackdrop(),this.removeBackdrop=()=>this.luigi.getEngine()._connector?.removeBackdrop(),this.getDirtyStatus=()=>this.dirtyStatusService.readDirtyStatus(),this.luigi=t}}class _C{filterIdFromMessageObject(t){const{id:n,...s}=t;return{id:n,messageWithoutId:s}}}const Nh=new _C;class mC{constructor(t){this.luigi=t}sendToAll(t){const n=Kl.getAllLuigiContainerIframe(this.luigi);if(!n){console.warn("No Luigi containers found to send the message to.");return}const{id:s,messageWithoutId:a}=Nh.filterIdFromMessageObject(t);if(!s){console.warn('Message object must contain an "id" property to specify the message type.');return}for(const l of n)l.sendCustomMessage?l.sendCustomMessage(s,a):console.warn("Container does not support sending custom messages:",l)}send(t,n){const s=Kl.getAllLuigiContainerIframe(this.luigi);if(!s){console.warn("No Luigi containers found to send the message to.");return}const{id:a,messageWithoutId:l}=Nh.filterIdFromMessageObject(n);if(!a){console.warn('Message object must contain an "id" property to specify the message type.');return}for(const u of s)if(u.luigiMfId===t){u.sendCustomMessage?u.sendCustomMessage(a,l):console.warn("Container does not support sending custom messages:",u);return}console.warn(`No container found with microfrontend ID: ${t}`)}}class wC{constructor(t){this.engine=t,this.initialized=!1,this.configReadyCallback=function(){},this.USER_SETTINGS_KEY="luigi.preferences.userSettings",this.setConfig=n=>{this.config=n,this.setConfigCallback(this.getConfigReadyCallback()),ar.init().then(()=>{this.engine.init(),this.initialized||(this.initialized=!0,uC.luigiAfterInit(this))})},this.getConfig=()=>this.config,this.configChanged=(...n)=>{this.getEngine()._ui.update(n)},this.customMessages=()=>(this._customMessages||(this._customMessages=new mC(this)),this._customMessages),this.i18n=()=>(this._i18n||(this._i18n=new oC(this)),this._i18n),this.elements=()=>(this._elements||(this._elements=new lC(this)),this._elements),this.navigation=()=>new fC(this),this.ux=()=>new vC(this),this.featureToggles=()=>(this._featureToggles||(this._featureToggles=new cC),this._featureToggles),this.routing=()=>(this._routing||(this._routing=new hC(this)),this._routing),this.theming=()=>(this._theming||(this._theming=new dC(this)),this._theming),this.auth=()=>_i,this._store=this.createConfigStore()}getEngine(){return this.engine}getConfigValue(t){return M.getConfigValueFromObject(this.getConfig(),t)}getConfigValueAsync(t,...n){return $r.getConfigValueFromObjectAsync(this.getConfig(),t,n)}clearNavigationCache(){j.get(hr).deleteCache();const t=n=>{n&&n.forEach&&n.forEach(s=>{s.titleResolver&&s.titleResolver._cache&&(s.titleResolver._cache=void 0),s.children&&t(s.children)})};t(this.getConfig().navigation.nodes)}setGlobalContext(t,n){this.config&&this.config.navigation&&(this.config.navigation.globalContext=t,n||this.configChanged("navigation"))}getGlobalContext(){return this.config?.navigation?.globalContext||{}}updateContextValues(t){const n=M.getNodeList("luigi-container[lui_container]");n&&n.forEach(s=>{const l={...s.context||{},...t};s.context=l,s.updateContext&&s.updateContext(l,{withoutSync:!1})})}async readUserSettings(){const t=await this.getConfigValueAsync("userSettings"),n=t||await this.getConfigValueAsync("settings.userSettings");if(n&&M.isFunction(n.readUserSettings))return n.readUserSettings();const s=localStorage.getItem(this.USER_SETTINGS_KEY);return s&&JSON.parse(s)}async storeUserSettings(t,n){const s=await this.getConfigValueAsync("userSettings"),a=s||await this.getConfigValueAsync("settings.userSettings");if(a&&M.isFunction(a.storeUserSettings))return a.storeUserSettings(t,n);localStorage.setItem(this.USER_SETTINGS_KEY,JSON.stringify(t)),this.configChanged()}reset(){const t=this.getConfig();this.unload(),this.setConfig(t)}unload(){this.initialized=!1,window.Luigi._store.clear(),ar.unload(),zl.removeAllEventListeners(),this.getEngine()._connector?.unload(),this._i18n=void 0}createConfigStore(){const t=$a({}),n={};let s=[];return{subscribe:a=>{s.push(t.subscribe(a))},reset:a=>{t.update(a)},subscribeToScope:(a,l)=>{let u=n[l];u||(u=new Set,n[l]=u),u.add(a)},fire:(a,l)=>{const u=n[a];u&&[...u].forEach(f=>{f(l)})},clear:()=>{s.forEach(a=>{a()}),s=[]}}}getConfigReadyCallback(){return new Promise(t=>{this.i18n()._init(),t()})}setConfigCallback(t){this.configReadyCallback=t}}const Kd=!1;var SC=Array.isArray,yC=Array.prototype.indexOf,ki=Array.prototype.includes,EC=Array.from,CC=Object.defineProperty,ps=Object.getOwnPropertyDescriptor,bC=Object.prototype,TC=Array.prototype,RC=Object.getPrototypeOf,Oh=Object.isExtensible;const AC=()=>{};function PC(r){for(var t=0;t<r.length;t++)r[t]()}function IC(){var r,t,n=new Promise((s,a)=>{r=s,t=a});return{promise:n,resolve:r,reject:t}}const rt=2,bs=4,jd=8,Yd=1<<24,an=16,gr=32,pr=64,jl=128,qt=512,Je=1024,nt=2048,Cn=4096,Sn=8192,lr=16384,Ls=32768,Uh=1<<25,Ga=65536,Qa=1<<17,xC=1<<18,Ja=1<<19,LC=1<<20,Kr=65536,qa=1<<21,vs=1<<22,Ts=1<<23,Ll=Symbol("$state"),NC=Symbol("attributes"),OC=Symbol("class"),UC=Symbol("style"),DC=Symbol("text"),_u=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function MC(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function kC(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function $C(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function FC(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function HC(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const tt=Symbol();function VC(){console.warn("https://svelte.dev/e/derived_inert")}function WC(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function BC(r){return r===this.v}let mu=!1,GC=!1;function QC(){mu=!0}let fn=null;function za(r){fn=r}function qC(r,t=!1,n){fn={p:fn,i:!1,c:null,e:null,s:r,x:null,r:Le,l:mu&&!t?{s:null,u:null,$:[]}:null}}function zC(r){var t=fn,n=t.e;if(n!==null){t.e=null;for(var s of n)o0(s)}return t.i=!0,fn=t.p,{}}function Xa(){return!mu||fn!==null&&fn.l===null}let Ci=[];function KC(){var r=Ci;Ci=[],PC(r)}function Pi(r){if(Ci.length===0){var t=Ci;queueMicrotask(()=>{t===Ci&&KC()})}Ci.push(r)}function Jd(r){var t=Le;if(t===null)return ye.f|=Ts,r;if((t.f&Ls)===0&&(t.f&bs)===0)throw r;bi(r,t)}function bi(r,t){for(;t!==null;){if((t.f&jl)!==0){if((t.f&Ls)===0)throw r;try{t.b.error(r);return}catch(n){r=n}}t=t.parent}throw r}const jC=-7169;function Fe(r,t){r.f=r.f&jC|t}function wu(r){(r.f&qt)!==0||r.deps===null?Fe(r,Je):Fe(r,Cn)}function Xd(r){if(r!==null)for(const t of r)(t.f&rt)===0||(t.f&Kr)===0||(t.f^=Kr,Xd(t.deps))}function Zd(r,t,n){(r.f&nt)!==0?t.add(r):(r.f&Cn)!==0&&n.add(r),Xd(r.deps),Fe(r,Je)}let Nl=null,gi=null,Ie=null,Yl=null,on=null,Jl=null,Ol=!1,Ti=null,Da=null;var Dh=0;let YC=1;class jr{id=YC++;#e=!1;linked=!0;#n=null;#t=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#l=new Set;#i=new Set;#o=new Set;#s=0;#r=new Map;#h=null;#a=[];#g=[];#d=new Set;#c=new Set;#f=new Map;#u=new Set;is_fork=!1;#_=!1;#E(){if(this.is_fork)return!0;for(const s of this.#r.keys()){for(var t=s,n=!1;t.parent!==null;){if(this.#f.has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1}skip_effect(t){this.#f.has(t)||this.#f.set(t,{d:[],m:[]}),this.#u.delete(t)}unskip_effect(t,n=s=>this.schedule(s)){var s=this.#f.get(t);if(s){this.#f.delete(t);for(var a of s.d)Fe(a,nt),n(a);for(a of s.m)Fe(a,Cn),n(a)}this.#u.add(t)}#v(){if(this.#e=!0,Dh++>1e3&&(this.#S(),JC()),!this.#E()){for(const h of this.#d)this.#c.delete(h),Fe(h,nt),this.schedule(h);for(const h of this.#c)Fe(h,Cn),this.schedule(h)}const t=this.#a;this.#a=[],this.apply();var n=Ti=[],s=[],a=Da=[];for(const h of t)try{this.#C(h,n,s)}catch(g){throw ng(h),g}if(Ie=null,a.length>0){var l=jr.ensure();for(const h of a)l.schedule(h)}if(Ti=null,Da=null,this.#E()){this.#p(s),this.#p(n);for(const[h,g]of this.#f)tg(h,g);a.length>0&&Ie.#v();return}const u=this.#y();if(u){u.#m(this);return}this.#d.clear(),this.#c.clear();for(const h of this.#l)h(this);this.#l.clear(),Yl=this,Mh(s),Mh(n),Yl=null,this.#h?.resolve();var f=Ie;if(this.linked&&this.#s===0&&this.#S(),this.#a.length>0){f===null&&(f=this,this.#w());const h=f;h.#a.push(...this.#a.filter(g=>!h.#a.includes(g)))}f!==null&&f.#v()}#C(t,n,s){t.f^=Je;for(var a=t.first;a!==null;){var l=a.f,u=(l&(gr|pr))!==0,f=u&&(l&Je)!==0,h=f||(l&Sn)!==0||this.#f.has(a);if(!h&&a.fn!==null){u?a.f^=Je:(l&bs)!==0?n.push(a):Os(a)&&((l&an)!==0&&this.#c.add(a),$i(a));var g=a.first;if(g!==null){a=g;continue}}for(;a!==null;){var _=a.next;if(_!==null){a=_;break}a=a.parent}}}#y(){for(var t=this.#n;t!==null;){if(!t.is_fork){for(const[n,[,s]]of this.current)if(t.current.has(n)&&!s)return t}t=t.#n}return null}#m(t){for(const[s,a]of t.current)!this.previous.has(s)&&t.previous.has(s)&&this.previous.set(s,t.previous.get(s)),this.current.set(s,a);for(const[s,a]of t.async_deriveds){const l=this.async_deriveds.get(s);l&&a.promise.then(l.resolve)}const n=s=>{var a=s.reactions;if(a!==null)for(const f of a){var l=f.f;if((l&rt)!==0)n(f);else{var u=f;l&(vs|an)&&!this.async_deriveds.has(u)&&(this.#c.delete(u),Fe(u,nt),this.schedule(u))}}};for(const s of this.current.keys())n(s);this.oncommit(()=>t.discard()),t.#S(),Ie=this,this.#v()}#p(t){for(var n=0;n<t.length;n+=1)Zd(t[n],this.#d,this.#c)}capture(t,n,s=!1){t.v!==tt&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Ts)===0&&(this.current.set(t,[n,s]),on?.set(t,n)),this.is_fork||(t.v=n)}activate(){Ie=this}deactivate(){Ie=null,on=null}flush(){try{Ol=!0,Ie=this,this.#v()}finally{Dh=0,Jl=null,Ti=null,Da=null,Ol=!1,Ie=null,on=null,Br.clear()}}discard(){for(const t of this.#i)t(this);this.#i.clear(),this.#o.clear(),this.#S()}register_created_effect(t){this.#g.push(t)}#b(){this.#S();for(let _=Nl;_!==null;_=_.#t){var t=_.id<this.id,n=[];for(const[w,[m,E]]of this.current){if(_.current.has(w)){var s=_.current.get(w)[0];if(t&&m!==s)_.current.set(w,[m,E]);else continue}n.push(w)}if(t)for(const[w,m]of this.async_deriveds){const E=_.async_deriveds.get(w);E&&m.promise.then(E.resolve)}if(_.#e){var a=[..._.current.keys()].filter(w=>!this.current.has(w));if(a.length===0)t&&_.discard();else if(n.length>0){if(t)for(const w of this.#u)_.unskip_effect(w,m=>{(m.f&(an|vs))!==0?_.schedule(m):_.#p([m])});_.activate();var l=new Set,u=new Map;for(var f of n)eg(f,a,l,u);u=new Map;var h=[..._.current.keys()].filter(w=>this.current.has(w)?this.current.get(w)[0]!==w.v:!0);if(h.length>0)for(const w of this.#g)(w.f&(lr|Sn|Qa))===0&&Su(w,h,u)&&((w.f&(vs|an))!==0?(Fe(w,nt),_.schedule(w)):_.#d.add(w));if(_.#a.length>0){_.apply();for(var g of _.#a)_.#C(g,[],[]);_.#a=[]}_.deactivate()}}}}increment(t,n){if(this.#s+=1,t){let s=this.#r.get(n)??0;this.#r.set(n,s+1)}}decrement(t,n){if(this.#s-=1,t){let s=this.#r.get(n)??0;s===1?this.#r.delete(n):this.#r.set(n,s-1)}this.#_||(this.#_=!0,Pi(()=>{this.#_=!1,this.linked&&this.flush()}))}transfer_effects(t,n){for(const s of t)this.#d.add(s);for(const s of n)this.#c.add(s);t.clear(),n.clear()}oncommit(t){this.#l.add(t)}ondiscard(t){this.#i.add(t)}on_fork_commit(t){this.#o.add(t)}run_fork_commit_callbacks(){for(const t of this.#o)t(this);this.#o.clear()}settled(){return(this.#h??=IC()).promise}static ensure(){if(Ie===null){const t=Ie=new jr;t.#w(),Ol||Pi(()=>{t.#e||t.flush()})}return Ie}apply(){{on=null;return}}schedule(t){if(Jl=t,t.b?.is_pending&&(t.f&(bs|jd|Yd))!==0&&(t.f&Ls)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var s=n.f;if(Ti!==null&&n===Le&&(ye===null||(ye.f&rt)===0))return;if((s&(pr|gr))!==0){if((s&Je)===0)return;n.f^=Je}}this.#a.push(n)}#w(){gi===null?Nl=gi=this:(gi.#t=this,this.#n=gi),gi=this}#S(){var t=this.#n,n=this.#t;t===null?Nl=n:t.#t=n,n===null?gi=t:n.#n=t,this.linked=!1}}function JC(){try{MC()}catch(r){bi(r,Jl)}}let kn=null;function Mh(r){var t=r.length;if(t!==0){for(var n=0;n<t;){var s=r[n++];if((s.f&(lr|Sn))===0&&Os(s)&&(kn=new Set,$i(s),s.deps===null&&s.first===null&&s.nodes===null&&s.teardown===null&&s.ac===null&&dg(s),kn?.size>0)){Br.clear();for(const a of kn){if((a.f&(lr|Sn))!==0)continue;const l=[a];let u=a.parent;for(;u!==null;)kn.has(u)&&(kn.delete(u),l.push(u)),u=u.parent;for(let f=l.length-1;f>=0;f--){const h=l[f];(h.f&(lr|Sn))===0&&$i(h)}}kn.clear()}}kn=null}}function eg(r,t,n,s){if(!n.has(r)&&(n.add(r),r.reactions!==null))for(const a of r.reactions){const l=a.f;(l&rt)!==0?eg(a,t,n,s):(l&(vs|an))!==0&&(l&nt)===0&&Su(a,t,s)&&(Fe(a,nt),yu(a))}}function Su(r,t,n){const s=n.get(r);if(s!==void 0)return s;if(r.deps!==null)for(const a of r.deps){if(ki.call(t,a))return!0;if((a.f&rt)!==0&&Su(a,t,n))return n.set(a,!0),!0}return n.set(r,!1),!1}function yu(r){Ie.schedule(r)}function tg(r,t){if(!((r.f&gr)!==0&&(r.f&Je)!==0)){(r.f&nt)!==0?t.d.push(r):(r.f&Cn)!==0&&t.m.push(r),Fe(r,Je);for(var n=r.first;n!==null;)tg(n,t),n=n.next}}function ng(r){Fe(r,Je);for(var t=r.first;t!==null;)ng(t),t=t.next}function XC(r){let t=0,n=Cu(0),s;return()=>{bu()&&(Ri(n),u0(()=>(t===0&&(s=_0(()=>r(()=>_s(n)))),t+=1,()=>{Pi(()=>{t-=1,t===0&&(s?.(),s=void 0,_s(n))})})))}}var ZC=Ga|Ja;function e0(r,t,n,s){new t0(r,t,n,s)}class t0{parent;is_pending=!1;transform_error;#e;#n=null;#t;#l;#i;#o=null;#s=null;#r=null;#h=null;#a=0;#g=0;#d=!1;#c=new Set;#f=new Set;#u=null;#_=XC(()=>(this.#u=Cu(this.#a),()=>{this.#u=null}));constructor(t,n,s,a){this.#e=t,this.#t=n,this.#l=l=>{var u=Le;u.b=this,u.f|=jl,s(l)},this.parent=Le.b,this.transform_error=a??this.parent?.transform_error??(l=>l),this.#i=c0(()=>{this.#y()},ZC)}#E(){try{this.#o=Nr(()=>this.#l(this.#e))}catch(t){this.error(t)}}#v(t){const n=this.#t.failed;n&&(this.#r=Nr(()=>{n(this.#e,()=>t,()=>()=>{})}))}#C(){const t=this.#t.pending;t&&(this.is_pending=!0,this.#s=Nr(()=>t(this.#e)),Pi(()=>{var n=this.#h=document.createDocumentFragment(),s=ug();n.append(s),this.#o=this.#p(()=>Nr(()=>this.#l(s))),this.#g===0&&(this.#e.before(n),this.#h=null,Ma(this.#s,()=>{this.#s=null}),this.#m(Ie))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#g=0,this.#a=0,this.#o=Nr(()=>{this.#l(this.#e)}),this.#g>0){var t=this.#h=document.createDocumentFragment();d0(this.#o,t);const n=this.#t.pending;this.#s=Nr(()=>n(this.#e))}else this.#m(Ie)}catch(n){this.error(n)}}#m(t){this.is_pending=!1,t.transfer_effects(this.#c,this.#f)}defer_effect(t){Zd(t,this.#c,this.#f)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#p(t){var n=Le,s=ye,a=fn;vr(this.#i),bn(this.#i),za(this.#i.ctx);try{return jr.ensure(),t()}catch(l){return Jd(l),null}finally{vr(n),bn(s),za(a)}}#b(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#b(t,n);return}this.#g+=t,this.#g===0&&(this.#m(n),this.#s&&Ma(this.#s,()=>{this.#s=null}),this.#h&&(this.#e.before(this.#h),this.#h=null))}update_pending_count(t,n){this.#b(t,n),this.#a+=t,!(!this.#u||this.#d)&&(this.#d=!0,Pi(()=>{this.#d=!1,this.#u&&ag(this.#u,this.#a)}))}get_effect_pending(){return this.#_(),Ri(this.#u)}error(t){if(!this.#t.onerror&&!this.#t.failed)throw t;Ie?.is_fork?(this.#o&&Ie.skip_effect(this.#o),this.#s&&Ie.skip_effect(this.#s),this.#r&&Ie.skip_effect(this.#r),Ie.on_fork_commit(()=>{this.#w(t)})):this.#w(t)}#w(t){this.#o&&(yn(this.#o),this.#o=null),this.#s&&(yn(this.#s),this.#s=null),this.#r&&(yn(this.#r),this.#r=null);var n=this.#t.onerror;let s=this.#t.failed;var a=!1,l=!1;const u=()=>{if(a){WC();return}a=!0,l&&HC(),this.#r!==null&&Ma(this.#r,()=>{this.#r=null}),this.#p(()=>{this.#y()})},f=h=>{try{l=!0,n?.(h,u),l=!1}catch(g){bi(g,this.#i&&this.#i.parent)}s&&(this.#r=this.#p(()=>{try{return Nr(()=>{var g=Le;g.b=this,g.f|=jl,s(this.#e,()=>h,()=>u)})}catch(g){return bi(g,this.#i.parent),null}}))};Pi(()=>{var h;try{h=this.transform_error(t)}catch(g){bi(g,this.#i&&this.#i.parent);return}h!==null&&typeof h=="object"&&typeof h.then=="function"?h.then(f,g=>bi(g,this.#i&&this.#i.parent)):f(h)})}}function n0(r){var t=r.effects;if(t!==null){r.effects=null;for(var n=0;n<t.length;n+=1)yn(t[n])}}function Eu(r){var t,n=Le,s=r.parent;if(!Yr&&s!==null&&(s.f&(lr|Sn))!==0)return VC(),r.v;vr(s);try{r.f&=~Kr,n0(r),t=mg(r)}finally{vr(n)}return t}function rg(r){var t=Eu(r);if(!r.equals(t)&&(r.wv=vg(),(!Ie?.is_fork||r.deps===null)&&(Ie!==null?(Ie.capture(r,t,!0),Yl?.capture(r,t,!0)):r.v=t,r.deps===null))){Fe(r,Je);return}Yr||(on!==null?(bu()||Ie?.is_fork)&&on.set(r,t):wu(r))}function r0(r){if(r.effects!==null)for(const t of r.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(_u),t.teardown=AC,t.ac=null,Rs(t,0),Tu(t))}function ig(r){if(r.effects!==null)for(const t of r.effects)t.teardown&&$i(t)}let Ka=new Set;const Br=new Map;let sg=!1;function Cu(r,t){var n={f:0,v:r,reactions:null,equals:BC,rv:0,wv:0};return n}function tr(r,t){const n=Cu(r);return g0(n),n}function Or(r,t,n=!1){ye!==null&&(!ln||(ye.f&Qa)!==0)&&Xa()&&(ye.f&(rt|an|vs|Qa))!==0&&(zt===null||!ki.call(zt,r))&&FC();let s=n?us(t):t;return ag(r,s,Da)}function ag(r,t,n=null){if(!r.equals(t)){Br.set(r,Yr?t:r.v);var s=jr.ensure();if(s.capture(r,t),(r.f&rt)!==0){const a=r;(r.f&nt)!==0&&Eu(a),on===null&&wu(a)}r.wv=vg(),og(r,nt,n),Xa()&&Le!==null&&(Le.f&Je)!==0&&(Le.f&(gr|pr))===0&&(Vt===null?p0([r]):Vt.push(r)),!s.is_fork&&Ka.size>0&&!sg&&i0()}return t}function i0(){sg=!1;for(const r of Ka){(r.f&Je)!==0&&Fe(r,Cn);let t;try{t=Os(r)}catch{t=!0}t&&$i(r)}Ka.clear()}function _s(r){Or(r,r.v+1)}function og(r,t,n){var s=r.reactions;if(s!==null)for(var a=Xa(),l=s.length,u=0;u<l;u++){var f=s[u],h=f.f;if(!(!a&&f===Le)){var g=(h&nt)===0;if(g&&Fe(f,t),(h&Qa)!==0)Ka.add(f);else if((h&rt)!==0){var _=f;on?.delete(_),(h&Kr)===0&&(h&qt&&(Le===null||(Le.f&qa)===0)&&(f.f|=Kr),og(_,Cn,n))}else if(g){var w=f;(h&an)!==0&&kn!==null&&kn.add(w),n!==null?n.push(w):yu(w)}}}}function us(r){if(typeof r!="object"||r===null||Ll in r)return r;const t=RC(r);if(t!==bC&&t!==TC)return r;var n=new Map,s=SC(r),a=tr(0),l=Gr,u=f=>{if(Gr===l)return f();var h=ye,g=Gr;bn(null),Fh(l);var _=f();return bn(h),Fh(g),_};return s&&n.set("length",tr(r.length)),new Proxy(r,{defineProperty(f,h,g){(!("value"in g)||g.configurable===!1||g.enumerable===!1||g.writable===!1)&&kC();var _=n.get(h);return _===void 0?u(()=>{var w=tr(g.value);return n.set(h,w),w}):Or(_,g.value,!0),!0},deleteProperty(f,h){var g=n.get(h);if(g===void 0){if(h in f){const _=u(()=>tr(tt));n.set(h,_),_s(a)}}else Or(g,tt),_s(a);return!0},get(f,h,g){if(h===Ll)return r;var _=n.get(h),w=h in f;if(_===void 0&&(!w||ps(f,h)?.writable)&&(_=u(()=>{var E=us(w?f[h]:tt),C=tr(E);return C}),n.set(h,_)),_!==void 0){var m=Ri(_);return m===tt?void 0:m}return Reflect.get(f,h,g)},getOwnPropertyDescriptor(f,h){var g=Reflect.getOwnPropertyDescriptor(f,h);if(g&&"value"in g){var _=n.get(h);_&&(g.value=Ri(_))}else if(g===void 0){var w=n.get(h),m=w?.v;if(w!==void 0&&m!==tt)return{enumerable:!0,configurable:!0,value:m,writable:!0}}return g},has(f,h){if(h===Ll)return!0;var g=n.get(h),_=g!==void 0&&g.v!==tt||Reflect.has(f,h);if(g!==void 0||Le!==null&&(!_||ps(f,h)?.writable)){g===void 0&&(g=u(()=>{var m=_?us(f[h]):tt,E=tr(m);return E}),n.set(h,g));var w=Ri(g);if(w===tt)return!1}return _},set(f,h,g,_){var w=n.get(h),m=h in f;if(s&&h==="length")for(var E=g;E<w.v;E+=1){var C=n.get(E+"");C!==void 0?Or(C,tt):E in f&&(C=u(()=>tr(tt)),n.set(E+"",C))}if(w===void 0)(!m||ps(f,h)?.writable)&&(w=u(()=>tr(void 0)),Or(w,us(g)),n.set(h,w));else{m=w.v!==tt;var R=u(()=>us(g));Or(w,R)}var I=Reflect.getOwnPropertyDescriptor(f,h);if(I?.set&&I.set.call(_,g),!m){if(s&&typeof h=="string"){var N=n.get("length"),F=Number(h);Number.isInteger(F)&&F>=N.v&&Or(N,F+1)}_s(a)}return!0},ownKeys(f){Ri(a);var h=Reflect.ownKeys(f).filter(w=>{var m=n.get(w);return m===void 0||m.v!==tt});for(var[g,_]of n)_.v!==tt&&!(g in f)&&h.push(g);return h},setPrototypeOf(){$C()}})}var kh,lg;function s0(){if(kh===void 0){kh=window;var r=Element.prototype,t=Node.prototype,n=Text.prototype;ps(t,"firstChild").get,lg=ps(t,"nextSibling").get,Oh(r)&&(r[OC]=void 0,r[NC]=null,r[UC]=void 0,r.__e=void 0),Oh(n)&&(n[DC]=void 0)}}function ug(r=""){return document.createTextNode(r)}function cg(r){return lg.call(r)}function fg(r){var t=ye,n=Le;bn(null),vr(null);try{return r()}finally{bn(t),vr(n)}}function a0(r,t){var n=t.last;n===null?t.last=t.first=r:(n.next=r,r.prev=n,t.last=r)}function Ns(r,t){var n=Le;n!==null&&(n.f&Sn)!==0&&(r|=Sn);var s={ctx:fn,deps:null,nodes:null,f:r|nt|qt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Ie?.register_created_effect(s);var a=s;if((r&bs)!==0)Ti!==null?Ti.push(s):jr.ensure().schedule(s);else if(t!==null){try{$i(s)}catch(u){throw yn(s),u}a.deps===null&&a.teardown===null&&a.nodes===null&&a.first===a.last&&(a.f&Ja)===0&&(a=a.first,(r&an)!==0&&(r&Ga)!==0&&a!==null&&(a.f|=Ga))}if(a!==null&&(a.parent=n,n!==null&&a0(a,n),ye!==null&&(ye.f&rt)!==0&&(r&pr)===0)){var l=ye;(l.effects??=[]).push(a)}return s}function bu(){return ye!==null&&!ln}function o0(r){return Ns(bs|LC,r)}function l0(r){jr.ensure();const t=Ns(pr|Ja,r);return(n={})=>new Promise(s=>{n.outro?Ma(t,()=>{yn(t),s(void 0)}):(yn(t),s(void 0))})}function u0(r,t=0){return Ns(jd|t,r)}function c0(r,t=0){var n=Ns(an|t,r);return n}function Nr(r){return Ns(gr|Ja,r)}function hg(r){var t=r.teardown;if(t!==null){const n=Yr,s=ye;$h(!0),bn(null);try{t.call(null)}finally{$h(n),bn(s)}}}function Tu(r,t=!1){var n=r.first;for(r.first=r.last=null;n!==null;){const a=n.ac;a!==null&&fg(()=>{a.abort(_u)});var s=n.next;(n.f&pr)!==0?n.parent=null:yn(n,t),n=s}}function f0(r){for(var t=r.first;t!==null;){var n=t.next;(t.f&gr)===0&&yn(t),t=n}}function yn(r,t=!0){var n=!1;(t||(r.f&xC)!==0)&&r.nodes!==null&&r.nodes.end!==null&&(h0(r.nodes.start,r.nodes.end),n=!0),Fe(r,Uh),Tu(r,t&&!n),Rs(r,0);var s=r.nodes&&r.nodes.t;if(s!==null)for(const l of s)l.stop();hg(r),r.f^=Uh,r.f|=lr;var a=r.parent;a!==null&&a.first!==null&&dg(r),r.next=r.prev=r.teardown=r.ctx=r.deps=r.fn=r.nodes=r.ac=r.b=null}function h0(r,t){for(;r!==null;){var n=r===t?null:cg(r);r.remove(),r=n}}function dg(r){var t=r.parent,n=r.prev,s=r.next;n!==null&&(n.next=s),s!==null&&(s.prev=n),t!==null&&(t.first===r&&(t.first=s),t.last===r&&(t.last=n))}function Ma(r,t,n=!0){var s=[];gg(r,s,!0);var a=()=>{n&&yn(r),t&&t()},l=s.length;if(l>0){var u=()=>--l||a();for(var f of s)f.out(u)}else a()}function gg(r,t,n){if((r.f&Sn)===0){r.f^=Sn;var s=r.nodes&&r.nodes.t;if(s!==null)for(const f of s)(f.is_global||n)&&t.push(f);for(var a=r.first;a!==null;){var l=a.next;if((a.f&pr)===0){var u=(a.f&Ga)!==0||(a.f&gr)!==0&&(r.f&an)!==0;gg(a,t,u?n:!1)}a=l}}}function d0(r,t){if(r.nodes)for(var n=r.nodes.start,s=r.nodes.end;n!==null;){var a=n===s?null:cg(n);t.append(n),n=a}}let ka=!1,Yr=!1;function $h(r){Yr=r}let ye=null,ln=!1;function bn(r){ye=r}let Le=null;function vr(r){Le=r}let zt=null;function g0(r){ye!==null&&(zt===null?zt=[r]:zt.push(r))}let vt=null,It=0,Vt=null;function p0(r){Vt=r}let pg=1,kr=0,Gr=kr;function Fh(r){Gr=r}function vg(){return++pg}function Os(r){var t=r.f;if((t&nt)!==0)return!0;if(t&rt&&(r.f&=~Kr),(t&Cn)!==0){for(var n=r.deps,s=n.length,a=0;a<s;a++){var l=n[a];if(Os(l)&&rg(l),l.wv>r.wv)return!0}(t&qt)!==0&&on===null&&Fe(r,Je)}return!1}function _g(r,t,n=!0){var s=r.reactions;if(s!==null&&!(zt!==null&&ki.call(zt,r)))for(var a=0;a<s.length;a++){var l=s[a];(l.f&rt)!==0?_g(l,t,!1):t===l&&(n?Fe(l,nt):(l.f&Je)!==0&&Fe(l,Cn),yu(l))}}function mg(r){var t=vt,n=It,s=Vt,a=ye,l=zt,u=fn,f=ln,h=Gr,g=r.f;vt=null,It=0,Vt=null,ye=(g&(gr|pr))===0?r:null,zt=null,za(r.ctx),ln=!1,Gr=++kr,r.ac!==null&&(fg(()=>{r.ac.abort(_u)}),r.ac=null);try{r.f|=qa;var _=r.fn,w=_();r.f|=Ls;var m=r.deps,E=Ie?.is_fork;if(vt!==null){var C;if(E||Rs(r,It),m!==null&&It>0)for(m.length=It+vt.length,C=0;C<vt.length;C++)m[It+C]=vt[C];else r.deps=m=vt;if(bu()&&(r.f&qt)!==0)for(C=It;C<m.length;C++)(m[C].reactions??=[]).push(r)}else!E&&m!==null&&It<m.length&&(Rs(r,It),m.length=It);if(Xa()&&Vt!==null&&!ln&&m!==null&&(r.f&(rt|Cn|nt))===0)for(C=0;C<Vt.length;C++)_g(Vt[C],r);if(a!==null&&a!==r){if(kr++,a.deps!==null)for(let R=0;R<n;R+=1)a.deps[R].rv=kr;if(t!==null)for(const R of t)R.rv=kr;Vt!==null&&(s===null?s=Vt:s.push(...Vt))}return(r.f&Ts)!==0&&(r.f^=Ts),w}catch(R){return Jd(R)}finally{r.f^=qa,vt=t,It=n,Vt=s,ye=a,zt=l,za(u),ln=f,Gr=h}}function v0(r,t){let n=t.reactions;if(n!==null){var s=yC.call(n,r);if(s!==-1){var a=n.length-1;a===0?n=t.reactions=null:(n[s]=n[a],n.pop())}}if(n===null&&(t.f&rt)!==0&&(vt===null||!ki.call(vt,t))){var l=t;(l.f&qt)!==0&&(l.f^=qt,l.f&=~Kr),l.v!==tt&&wu(l),r0(l),Rs(l,0)}}function Rs(r,t){var n=r.deps;if(n!==null)for(var s=t;s<n.length;s++)v0(r,n[s])}function $i(r){var t=r.f;if((t&lr)===0){Fe(r,Je);var n=Le,s=ka;Le=r,ka=!0;try{(t&(an|Yd))!==0?f0(r):Tu(r),hg(r);var a=mg(r);r.teardown=typeof a=="function"?a:null,r.wv=pg;var l;Kd&&GC&&(r.f&nt)!==0&&r.deps}finally{ka=s,Le=n}}}function Ri(r){var t=r.f,n=(t&rt)!==0;if(ye!==null&&!ln){var s=Le!==null&&(Le.f&lr)!==0;if(!s&&(zt===null||!ki.call(zt,r))){var a=ye.deps;if((ye.f&qa)!==0)r.rv<kr&&(r.rv=kr,vt===null&&a!==null&&a[It]===r?It++:vt===null?vt=[r]:vt.push(r));else{(ye.deps??=[]).push(r);var l=r.reactions;l===null?r.reactions=[ye]:ki.call(l,ye)||l.push(ye)}}}if(Yr&&Br.has(r))return Br.get(r);if(n){var u=r;if(Yr){var f=u.v;return((u.f&Je)===0&&u.reactions!==null||Sg(u))&&(f=Eu(u)),Br.set(u,f),f}var h=(u.f&qt)===0&&!ln&&ye!==null&&(ka||(ye.f&qt)!==0),g=(u.f&Ls)===0;Os(u)&&(h&&(u.f|=qt),rg(u)),h&&!g&&(ig(u),wg(u))}if(on?.has(r))return on.get(r);if((r.f&Ts)!==0)throw r.v;return r.v}function wg(r){if(r.f|=qt,r.deps!==null)for(const t of r.deps)(t.reactions??=[]).push(r),(t.f&rt)!==0&&(t.f&qt)===0&&(ig(t),wg(t))}function Sg(r){if(r.v===tt)return!0;if(r.deps===null)return!1;for(const t of r.deps)if(Br.has(t)||(t.f&rt)!==0&&Sg(t))return!0;return!1}function _0(r){var t=ln;try{return ln=!0,r()}finally{ln=t}}const m0=["touchstart","touchmove"];function w0(r){return m0.includes(r)}const xa=Symbol("events"),S0=new Set,Hh=new Set;let Vh=null;function Wh(r){var t=this,n=t.ownerDocument,s=r.type,a=r.composedPath?.()||[],l=a[0]||r.target;Vh=r;var u=0,f=Vh===r&&r[xa];if(f){var h=a.indexOf(f);if(h!==-1&&(t===document||t===window)){r[xa]=t;return}var g=a.indexOf(t);if(g===-1)return;h<=g&&(u=h)}if(l=a[u]||r.target,l!==t){CC(r,"currentTarget",{configurable:!0,get(){return l||n}});var _=ye,w=Le;bn(null),vr(null);try{for(var m,E=[];l!==null;){var C=l.assignedSlot||l.parentNode||l.host||null;try{var R=l[xa]?.[s];R!=null&&(!l.disabled||r.target===l)&&R.call(l,r)}catch(I){m?E.push(I):m=I}if(r.cancelBubble||C===t||C===null)break;l=C}if(m){for(let I of E)queueMicrotask(()=>{throw I});throw m}}finally{r[xa]=t,delete r.currentTarget,bn(_),vr(w)}}}function y0(r,t){return E0(r,t)}const La=new Map;function E0(r,{target:t,anchor:n,props:s={},events:a,context:l,intro:u=!0,transformError:f}){s0();var h=void 0,g=l0(()=>{var _=n??t.appendChild(ug());e0(_,{pending:()=>{}},E=>{qC({});var C=fn;l&&(C.c=l),a&&(s.$$events=a),h=r(E,s)||{},zC()},f);var w=new Set,m=E=>{for(var C=0;C<E.length;C++){var R=E[C];if(!w.has(R)){w.add(R);var I=w0(R);for(const J of[t,document]){var N=La.get(J);N===void 0&&(N=new Map,La.set(J,N));var F=N.get(R);F===void 0?(J.addEventListener(R,Wh,{passive:I}),N.set(R,1)):N.set(R,F+1)}}}};return m(EC(S0)),Hh.add(m),()=>{for(var E of w)for(const I of[t,document]){var C=La.get(I),R=C.get(E);--R==0?(I.removeEventListener(E,Wh),C.delete(E),C.size===0&&La.delete(I)):C.set(E,R)}Hh.delete(m),_!==n&&_.parentNode?.removeChild(_)}});return C0.set(h,g),h}let C0=new WeakMap;const b0="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(b0);QC();function T0(r){}const Xl={init:r=>{j.get(Wr).enableRouting()},handlePageErrorHandler:(r,t,n)=>{r&&r.timeout&&setTimeout(()=>{if(r.viewUrl)t.viewUrl=r.viewUrl,n.getEngine()._ui.updateMainContent(t,n);else if(r.errorFn)r.errorFn(t);else{console.warn("Something went wrong with a client! You will be redirected to another page.");const s=r.redirectPath||"/";n.navigation().navigate(s)}},r.timeout)},handleExternalLinkNavigation:r=>{if(r.url)if(r.sameWindow||!1)window.location.href=r.url;else{const n=window.open(r.url,"_blank","noopener noreferrer");n&&(n.opener=null,n.focus())}},async addSearchParamsFromClient(r,t,n){const s=j.get(dr),a=D.getCurrentPath(n,n.getConfig().routing?.useHashRouting),u=(await s.getCurrentNode(a.path))?.clientPermissions?.urlParameters,f={...r};if(u){const h={};Object.keys(u).forEach(g=>{g in f&&u[g]?.write===!0&&(h[g]=f[g],delete f[g])});for(const g in f)console.warn(`No permission to add the search param "${g}" to the url`);Object.keys(h).length>0&&n.routing().addSearchParams(h,t)}}};class R0{static hasLocaleChangePermission(t){return t?.clientPermissions?.changeCurrentLocale?!0:(console.error('Current locale change declined from client, as client permission "changeCurrentLocale" is not set for this view.'),!1)}}const $n={luigi:{},init:r=>{$n.luigi=r},addListeners:(r,t)=>{r.addEventListener(k.INITIALIZED,n=>{qe.luigi?.ux().hideLoadingIndicator(r.parentNode);const s=j.get(Di);s.viewGroupLoaded(r),!r._luigiPreloading&&r.style.display!=="none"&&s.preload()}),r.addEventListener(k.NAVIGATION_COMPLETED_REPORT,()=>{j.get(Di).preload()}),r.addEventListener(k.NAVIGATION_REQUEST,n=>{const{drawer:s,link:a,intent:l,preserveView:u,modal:f,newTab:h,withoutSync:g,preventContextUpdate:_,preventHistoryEntry:w,fromVirtualTreeRoot:m,fromContext:E,fromClosestContext:C,fromParent:R,relative:I,nodeParams:N}=n.detail,F={drawerSettings:s,intent:l,modalSettings:f,newTab:h,path:a,preserveView:u,preventContextUpdate:_,options:{fromVirtualTreeRoot:m,fromContext:E,fromClosestContext:C,fromParent:R,relative:I,nodeParams:N},preventHistoryEntry:w,withoutSync:g};j.get(dr).handleNavigationRequest(F,n.callbackFn)}),r.addEventListener(k.RUNTIME_ERROR_HANDLING_REQUEST,n=>{t.navigation().runTimeErrorHandler(n.payload?.data?.errorObj||{})}),r.addEventListener(k.ALERT_REQUEST,n=>{qe.processAlert(n.payload,!0,r)}),r.addEventListener(k.SHOW_CONFIRMATION_MODAL_REQUEST,n=>{qe.handleConfirmationModalRequest(n.payload,r)}),r.addEventListener(k.SET_DOCUMENT_TITLE_REQUEST,n=>{$n.luigi.getEngine()._connector?.setDocumentTitle(n.detail.title)}),r.addEventListener(k.SHOW_LOADING_INDICATOR_REQUEST,n=>{$n.luigi.getEngine()._connector?.showLoadingIndicator(r.parentNode)}),r.addEventListener(k.HIDE_LOADING_INDICATOR_REQUEST,n=>{$n.luigi.getEngine()._connector?.hideLoadingIndicator(r.parentNode)}),r.addEventListener(k.ADD_BACKDROP_REQUEST,n=>{$n.luigi.getEngine()._connector?.addBackdrop()}),r.addEventListener(k.REMOVE_BACKDROP_REQUEST,n=>{$n.luigi.getEngine()._connector?.removeBackdrop()}),r.addEventListener(k.SET_DIRTY_STATUS_REQUEST,n=>{qe.handleDirtyStatusRequest(n.payload?.dirty,r)}),r.addEventListener(k.ADD_NODE_PARAMS_REQUEST,n=>{t.routing().addNodeParams(n.payload.data,n.payload.keepBrowserHistory)}),r.addEventListener(k.OPEN_USER_SETTINGS_REQUEST,n=>{t.ux().openUserSettings()}),r.addEventListener(k.CLOSE_USER_SETTINGS_REQUEST,n=>{$n.luigi.getEngine()._connector?.closeUserSettings()}),r.addEventListener(k.ADD_SEARCH_PARAMS_REQUEST,n=>{Xl.addSearchParamsFromClient(n.detail.data,n.detail.keepBrowserHistory,t)}),r.addEventListener(k.UPDATE_MODAL_SETTINGS_REQUEST,n=>{G.updateModalSettings(n.payload.updatedModalSettings,n.payload.addHistoryEntry,t)}),r.addEventListener(k.SET_CURRENT_LOCALE_REQUEST,n=>{R0.hasLocaleChangePermission(r)&&t.i18n().setCurrentLocale(n.detail?.data?.data?.currentLocale)})}};class A0{constructor(){this._ui=G,this._comm=$n,this._ux=qe,this._routing=Xl}bootstrap(t){this._app=y0(T0,{target:document.body}),this._connector=t}init(){const t=window.Luigi;j.register(un,()=>new un(t)),j.register(dr,()=>new dr(t)),j.register(hr,()=>new hr),j.register(Wr,()=>new Wr(t)),j.register(Mi,()=>new Mi),j.register(fr,()=>new fr(t)),j.register(Di,()=>new Di(t)),t.theming()._init(),G.init(t),Xl.init(t),$n.init(t),qe.init(t)}}window.Luigi=new wC(new A0);
95
95
  //# sourceMappingURL=luigi.js.map