UNPKG

@sassoftware/va-report-components

Version:

The SAS Visual Analytics SDK is a set of JavaScript APIs and web components that enable SAS Visual Analytics report content to be easily embedded in a third-party application or web page.

2 lines 20.2 kB
/*! License information is available at ../../LICENSE.txt and ../../LICENSE-3RD-PARTY.txt */"use strict";(globalThis["va-report-componentsJsonp"]=globalThis["va-report-componentsJsonp"]||[]).push([[37],{919:(e,t,s)=>{s.r(t),s.d(t,{APP_ADDED:()=>c.dt,APP_DATA_LOADED:()=>c.N7,CREATE:()=>c.JV,DIRTY_FLAG_CHANGED:()=>c.NL,HIDE:()=>c.B8,LOGOFF_IMMINENT:()=>c.hU,OPEN:()=>c.o1,PREFERENCE_CHANGED:()=>c.zg,RETURN:()=>c.Yl,SHOW:()=>c.nr,SUBSCRIBE_ALL:()=>c.lS,SWITCH:()=>c.Yu,UPDATE_MODEL:()=>c.Yh,USE_NOVA_APPSWITCHER:()=>c.XA,applicationSwitcher:()=>j});var i=s(63),a=s(80),n=s(920),o=s(350),r=s(414),p=s(19),l=s(684),c=s(356);const d="broadcastMessage",h="_sendMessageToApp",u="gotoApp",g="logoff",m="doNovaLogoff",f="sendMessageToApp",A="setLogoffUrl",b="timeout",v="updateAppName",y="updateDirtyFlag",w="updateCleanupFn",M=window.location.origin;var T=class{constructor(e){this.observable=new c.ZP,this.model={availableApplications:[],publicTypeSupportingApplications:new Map},this.messageQueue=[],this.readyForMessages=!1,this.appId="",this.dirtyAppNames="\n",window.addEventListener("message",this.onMessage.bind(this)),this.observable.subscribe(c.Yh,(()=>this.updateModel())),this.observable.subscribe(c.XA,((e,t)=>{this.dirtyAppNames=t.dirtyAppNames})),this.config=e,this.updateModel(),o.Z.subscribe(r.Kv,((e,t)=>{t?.data.handled||(t&&(t.data.handled=!0),"\n"!==this.dirtyAppNames?o.Z.publish(r.vR,{data:{dirtyAppNames:this.dirtyAppNames,onDiscardAndExit:()=>this.doNovaLogoff()}}):this.logoff())})),window.onpopstate||(window.onpopstate=this.onPopState.bind(this))}onPopState(){this.appId&&this.gotoApp(this.appId,window.location.href,!0)}onMessage(e){if(window.location.origin!==e.origin)return;let t;if("string"==typeof e.data)try{t=JSON.parse(e.data)}catch(e){return}else t=e.data;if(null!==t&&void 0!==t.version&&t.command===h)this.processMessage(t)}processMessage(e){this.readyForMessages?this.observable.fire(e.type,e.data):this.messageQueue.push(e)}async updateModel(){this.model.availableApplications=await this.config.applicationService.getAvailableApps(),this.model.publicTypeSupportingApplications=await this.config.applicationService.getPublicTypeSupportingApps(),this.observable.fire(c.N7)}gotoApp(e,t,s,i={}){const a={version:"5.0",command:u,appId:e,url:t,isCompliant:s,options:i};this.sendCommandToMain(a)}updateAppName(e,t){const s={version:"5.0",command:v,appId:e,appName:t};this.sendCommandToMain(s)}sendCommandToMain(e){top?.window.postMessage(JSON.stringify(e),M)}sendMessageToApp(e,t,s){const i={version:"5.0",command:f,appId:e,type:t,data:s};this.sendCommandToMain(i)}subscribe(e,t,s){this.observable.subscribe(e,t,s)}unsubscribe(e,t,s){this.observable.unsubscribe(e,t,s)}broadcastMessage(e,t={}){const s={version:"5.0",command:d,type:e,data:t};this.sendCommandToMain(s)}setLogoffUrl(e){const t={version:"5.0",command:A,logoffUrl:e};this.sendCommandToMain(t)}logoff(){const e={version:"5.0",command:g};this.sendCommandToMain(e)}doNovaLogoff(e){const t={version:"5.0",command:m,alreadyInitiated:e};this.sendCommandToMain(t)}setDirtyMessageEnabled(e){const t={version:"5.0",command:"setDirtyMessageEnabled",allowDirtyMessage:e};this.sendCommandToMain(t)}timeout(e){const t={version:"5.0",command:b,url:e};this.sendCommandToMain(t)}updateDirtyFlag(e,t){const s={version:"5.0",command:y,appId:e,dirtyFlag:t};this.sendCommandToMain(s)}updateCleanupFnHandler(e){this.cleanupFnHandler=async()=>{o.Z.publish(r.fD),await e(),this.doNovaLogoff(!0)},this.observable.subscribe(c.hU,this.cleanupFnHandler)}updateCleanupFn(e){this.cleanupFnHandler&&this.observable.unsubscribe(c.hU,this.cleanupFnHandler),this.updateCleanupFnHandler(e);const t={version:"5.0",command:w,appId:this.appId,hasCleanupFn:!0};this.sendCommandToMain(t)}removeCleanupFn(){if(this.cleanupFnHandler){this.observable.unsubscribe(c.hU,this.cleanupFnHandler),this.cleanupFnHandler=void 0;const e={version:"5.0",command:w,appId:this.appId,hasCleanupFn:!1};this.sendCommandToMain(e)}}registerApp(e,t,s){this.appId=e,this.gotoApp(e,t,!0),this.updateAppName(e,s),this.readyForMessages=!0,this.flushMessageQueue()}getModel(){return this.model}openObject(e,t,s,i){const a=this.getAppIdForType(e,i);if(!a)return;const n=this.getAvailableApp(a);n&&(this.gotoApp(n.appId,n.uri,n.appSwitcherCompliance),this.sendMessageToApp(n.appId,s,{...t,directive:n.directiveId,targetPublicType:e}))}getAppIdForType(e,t){const s=this.model.publicTypeSupportingApplications.get(e);if(!s)return null;let i=null;return t&&s.filter((e=>e.appId===t)).length>0&&(i=t),!i&&s.length>0&&(i=s[0].appId),i}getAvailableApp(e){let t=null;const s=this.model.availableApplications;for(const i of s)if(void 0!==i.children)for(const s of i.children)s.appId===e&&(t=s);else i.appId===e&&(t=i);return t}flushMessageQueue(){for(const e of this.messageQueue)this.observable.fire(e.type,e.data);this.messageQueue=[]}},S=s(18),I=class{constructor(e,t=!1){this.app=e,this.loaded=t}getHTMLElement(e){let t;return e||(t=document.querySelector("body")),t||(t=this.createIFrame(this.app.appId)),t}createIFrame(e){const t=document.createElement("iframe");return t.setAttribute("id",`${e}_iframe`),t.setAttribute("allowfullscreen","true"),t.setAttribute("title","SAS"),t.style.top="0",t.style.left="0",t.style.height="100%",t.style.width="100%",t.style.border="0",t.style.position="absolute",t}initHTMLElement(e,t){const s=this.app.getHTMLElement();if(s instanceof HTMLIFrameElement){const i=s;let a=this.addUrlParameter(e,"launchedFromAppSwitcher=true");t&&(a=this.addUrlParameter(a,"useTransitionSplash=true")),i.src=a,i.addEventListener("load",(()=>{this.loaded=!0}))}else this.loaded=!0}addUrlParameter(e,t){let s="?";return e.includes("?")&&(s="&"),e+s+t}getWindow(){const e=this.app.getHTMLElement();return e instanceof HTMLIFrameElement?e.contentWindow:window}isLoaded(){return this.loaded}queueMessage(e,t){const s=this.app.getHTMLElement();if(!(s instanceof HTMLIFrameElement))return;const i=s,a=this.getWindow();i.addEventListener("load",(()=>{t(e,a)}))}hideHTMLElement(){const e=this.app.getHTMLElement();if(e instanceof HTMLIFrameElement)this.doHideElement(e);else{const e=document.querySelector("body")?.childNodes;for(const t of e)!(t instanceof HTMLIFrameElement)&&t instanceof HTMLElement&&this.doHideElement(t)}}doHideElement(e){e.setAttribute("active","false"),e.style.display="none"}showHTMLElement(){const e=this.app.getHTMLElement();if(e instanceof HTMLIFrameElement)this.doShowElement(e);else{const e=document.querySelector("body")?.childNodes;for(const t of e)!(t instanceof HTMLIFrameElement)&&t instanceof HTMLElement&&"sas-nc-splashscreen"!==t.id&&this.doShowElement(t)}}doShowElement(e){e.setAttribute("active","true"),e.focus(),e.style.removeProperty("display")}},F=class{constructor(e,t,s){this.appId=e,this.url=t,this.appName="",this.dirty=!1,this.initialized=!1,this.title="",this.stashedUrl="",this.cleanupFn=!1,this.appName=e,this.elementManager=new I(this),this.htmlElement=this.elementManager.getHTMLElement(s)}hide(){this.elementManager.hideHTMLElement()}show(){this.elementManager.showHTMLElement()}init(e){this.elementManager.initHTMLElement(this.url,e),this.initialized=!0}isInitialized(){return this.initialized}isLoaded(){return this.elementManager.isLoaded()}getHTMLElement(){return this.htmlElement}getWindow(){return this.elementManager.getWindow()}getStashedUrl(){return this.stashedUrl}setStashedUrl(e){this.stashedUrl=e}hasCleanupFn(){return this.cleanupFn}setCleanupFn(e){this.cleanupFn=e}queueMessage(e,t){this.elementManager.queueMessage(e,t)}};const L=(e,t)=>{const s=e.split("#"),i=s[0].split("?");if(i.length>=2){const e=`${encodeURIComponent(t)}=`,a=i[1].split(/[&;]/g);for(let t=a.length;t-- >0;)-1!==a[t].lastIndexOf(e,0)&&a.splice(t,1);const n=i[0]+(a.length>0?`?${a.join("&")}`:"");return s.length>=2?(s[0]=n,s.join("#")):n}return e},E=(0,p.jl)("ApplicationSwitcherMain");var C=class{constructor(e){this.config=e,this.alreadyShownDirtyMessage=!1,this.applications=new Map,this.logoffUrl="",this.dirtyMessageEnabled=!0,this.dirtyAppNames="\n",this.cleanupFns=0,this.LOGOFF_TIMEOUT=2e3,E.info("Creating ApplicationSwitcherMain instance"),window.addEventListener("message",this.onMessage.bind(this)),this.getLogoffUrl=this.config.getLogoffUrl?this.config.getLogoffUrl:()=>this.logoffUrl,this.currentApp=void 0,window.addEventListener("beforeunload",this.showUnsavedChangesDialog.bind(this)),window.onpopstate||(window.onpopstate=this.onPopState.bind(this)),this.setupPWAInstallability()}setupPWAInstallability(){const e=(0,S.Ak)();if(void 0!==e&&"serviceWorker"in navigator){navigator.serviceWorker.register(`${e}pwa/root-service-worker.js`,{scope:"/"}).then((function(e){E.info(`SAS root service worker registration successful with scope: ${e.scope}`)}),(function(e){E.error(`SAS root service worker registration failed: ${e}`)}));const t=window.document,s=t.createElement("link");s.setAttribute("rel","manifest"),s.setAttribute("id","sas-manifest"),s.setAttribute("crossOrigin","use-credentials"),s.setAttribute("href",`${e}pwa/sas-manifest.json`),t.querySelector("head")?.prepend(s)}}showUnsavedChangesDialog(e){this.getShowDirtyMessage(this.alreadyShownDirtyMessage)&&(e.preventDefault(),e.returnValue=this.config.getUnsavedChangesLocalizedString(this.dirtyAppNames))}onPopState(e){if(e&&e.state&&e.state.appId){const t=e.state;this.gotoApp(t.appId,t.url,t.isCompliant,!0)}else{const e=this.getCurrentApp()?.appId;e&&window.history.replaceState({appId:e,url:window.location.href,isCompliant:!0},document.title,window.location.href)}}getShowDirtyMessage(e){return!("\n"===this.dirtyAppNames||void 0!==e&&!1!==e||!this.dirtyMessageEnabled)}getAppAddedData(){const e=[];return this.applications.forEach(((t,s)=>{e.push({appId:s,title:t.title,url:t.url,isDirty:t.dirty})})),e}gotoApp(e,t,s,i,a,n){let o=!1;if(this.appExists(e)&&a)return;if(this.isCurrentApp(e))return this.currentApp.setStashedUrl(window.location.href),void this.updateHistory(e,t,!0,!1,n);if(!s)return void this.gotoUrl(t);let r=this.getApp(e);r||(o=!0,r=this.addApplication(e,t));const p={appId:e,previousAppId:""},l=this.createAppShowMessageData(e,t);if(a||(this.currentApp&&(i||this.currentApp.setStashedUrl(window.location.href),this.currentApp.hide(),p.previousAppId=this.currentApp.appId,this.sendMessageToApp(this.currentApp.appId,c.B8,{})),this.currentApp=r),r.isInitialized())this.sendMessageToApp(e,c.Yl,l),this.sendMessageToApp(e,c.nr,l),this.broadcastMessage(c.Yu,p);else{const t=this.applications.size>1;if(r.init(t),this.broadcastMessage(c.dt,{appId:e,availableApps:this.getAppAddedData()}),a||(this.sendMessageToApp(e,c.nr,l),this.broadcastMessage(c.Yu,p)),1===this.applications.size){const t=new URLSearchParams(window.location.search).get("appSwitcherMessage");if(t)try{const s=JSON.parse(t);this.sendMessageToApp(e,s.type,s.data)}catch{E.error("Failed to send ApplicationSwitcher message via URL parameter")}}else"\n"!==this.dirtyAppNames&&this.sendMessageToApp(e,c.XA,{dirtyAppNames:this.dirtyAppNames})}a?(r.hide(),this.sendMessageToApp(e,c.B8,{})):(r.show(),r.appName&&!o&&this.updateBrowserTabTitle(r.appName),i||this.updateHistory(e,t,s,1!==this.applications.size,n))}isCurrentApp(e){return!(!this.currentApp||!0!==this.appExists(e)||this.currentApp.appId!==e)}gotoUrl(e){window.location.assign(e)}appExists(e){return this.applications.has(e)}addApplication(e,t){let s=!0;0!==this.applications.size||this.config.renderFirstAppInIFrame||(s=!1);const i=new F(e,t,s),a=document.querySelector("body"),n=i.getHTMLElement();return"BODY"!==n.tagName&&a.appendChild(n),this.applications.set(e,i),i}createAppShowMessageData(e,t){return{appId:e,url:t}}getApp(e){if(this.appExists(e))return this.applications.get(e)}updateBrowserTabTitle(e){document.title=e}onMessage(e){if(window.location.origin!==e.origin)return;let t=null;if("string"==typeof e.data)try{t=JSON.parse(e.data)}catch(e){return}else t=e.data;if(null!==t&&void 0!==t.version)switch(t.command){case d:this.broadcastMessage(t.type,t.data);break;case u:this.gotoApp(t.appId,t.url,t.isCompliant,t.options?.suppressUpdateHistory,t.options?.loadInBackground,t.options?.useStashedUrl);break;case g:this.logoff();break;case m:this.alreadyShownDirtyMessage=!0,this.doLogoff(t?.alreadyInitiated);break;case"removeSplash":this.removeSplash();break;case f:this.sendMessageToApp(t.appId,t.type,t.data);break;case A:this.setLogoffUrl(t.logoffUrl);break;case b:this.timeout(t.url);break;case v:this.updateAppName(t.appId,t.appName);break;case y:this.updateDirtyFlag(t.appId,t.dirtyFlag);break;case w:const e=this.getApp(t.appId);t.hasCleanupFn&&!e?.hasCleanupFn()?this.cleanupFns++:!t.hasCleanupFn&&e?.hasCleanupFn()&&this.cleanupFns--,e?.setCleanupFn(t.hasCleanupFn)}}removeSplash(){const e=document.querySelector("#sas-hc-splash");e&&e.remove()}updateAppName(e,t){const s=this.getApp(e);s&&(s.appName=t,this.currentApp===s&&this.updateBrowserTabTitle(s.appName))}sendMessageToApp(e,t,s={}){const i=this.getApp(e);if(!i)return;const a={version:"5.0",command:h,appId:e,type:t,data:s},n=i.getWindow();n&&(i.isLoaded()?this.executePostMessage(a,n):i.queueMessage(a,this.executePostMessage))}executePostMessage(e,t){const s=JSON.stringify(e);t&&t.postMessage(s,M)}updateHistory(e,t,s,i,a){let n=t;a&&this.currentApp?.getStashedUrl()&&(n=this.currentApp?.getStashedUrl()),n=L(n,"launchedFromAppSwitcher"),n=L(n,"useTransitionSplash");const o=[{appId:e,url:t,isCompliant:s},"",n];i?window.history.pushState(...o):window.history.replaceState(...o)}broadcastMessage(e,t={}){this.doBroadcast(e,t)}doBroadcast(e,t){for(const[s]of this.applications)this.sendMessageToApp(s,e,t)}setLogoffUrl(e){this.logoffUrl=e}getCurrentApp(){return this.currentApp}logoff(){if(this.getShowDirtyMessage()){if(!confirm(this.config.getUnsavedChangesLocalizedString(this.dirtyAppNames)))return;this.alreadyShownDirtyMessage=!0,this.doLogoff()}else this.doLogoff()}getDirtyApps(){const e=[];return this.dirtyAppNames="\n",this.applications.forEach((t=>{t.dirty&&(e.push(t),this.dirtyAppNames+=`${t.appName}\n`)})),e}doLogoff(e){const t=this.logoffUrl?this.logoffUrl:this.getLogoffUrl();if(e){if(this.cleanupFns--,this.cleanupFns>0)return;window.location.assign(t)}else this.broadcastMessage(c.hU),setTimeout((()=>window.location.assign(t)),this.cleanupFns?this.LOGOFF_TIMEOUT:0)}updateDirtyFlag(e,t){const s=this.getApp(e);s&&(s.dirty=t,this.broadcastMessage(c.NL,{appId:e,dirtyFlag:t}),this.getDirtyApps(),this.broadcastMessage(c.XA,{dirtyAppNames:this.dirtyAppNames}))}timeout(e){this.dirtyMessageEnabled=!1,window.location.assign(e)}},N=s(355),U=s(683);const D=(0,p.jl)("AppRegistryService");var H=class{constructor(){this.favoritesUrl="/appRegistry/applications/favorites"}async getAvailableApps(){let e=[];try{const t=await this.fetchApps();t&&t.items&&(e=this.createAppTreeModel(t.items))}catch(e){}return e}async fetchApps(){return(await this.doGet("/appRegistry/applications/applicationTree")).data}async doGet(e){return await U.ZP.get(e)}createAppTreeModel(e){const t=[];for(const s of e)t.push(this.createNode(s));return t}createNode(e){return!0===e.branch?this.createBranchNode(e):this.createLeaf(e)}createBranchNode(e){const t=[];for(const s of e.children)t.push(this.createLeaf(s));return{children:t,id:e.id,label:e.label}}createLeaf(e){return{appId:e.appId,appName:e.appName,appSwitcherCompliance:e.appSwitcherCompliance,cdcDocId:e.cdcDocId,createDefaultShortcut:e.createDefaultShortcut,directiveId:e.id,hidden:e.hidden,label:e.label,shortcutLabel:e.shortcutLabel,specialRole:e.specialRole,uri:e.uri,favoriteUri:e.links?.find((e=>"addFavorite"===e.rel||"removeFavorite"===e.rel))?.uri,appIcon:e.icon}}async getPublicTypeSupportingApps(){let e=new Map;try{const t=await this.fetchTypes();t&&t.items&&(e=this.createTypesModel(t.items))}catch(e){}return e}async fetchTypes(){return(await this.doGet("/appRegistry/types")).data}createTypesModel(e){const t=new Map;for(const s of e)t.set(s.id,this.createTypeApps(s.apps));return t}createTypeApps(e){const t=[];for(const s of e){const e={appId:s.appId,directiveId:s.directive,verbLabel:s.targetVerbLabel,verbCode:s.targetVerbCode};t.push(e)}return t}async updateFavorites(e){try{await U.ZP.put(this.favoritesUrl,e,{headers:{Accept:"application/vnd.sas.collection+json","Content-Type":"application/vnd.sas.collection+json"}})}catch(e){D.error("Unable to update favorited applications")}}async addFavorite(e){try{await U.ZP.put(e,{headers:{Accept:"application/vnd.sas.app.registry.favorite+json"}})}catch(e){D.error("Unable to add to favorited applications")}}async removeFavorite(e){try{await U.ZP.delete(e)}catch(e){D.error("Unable to remove from favorited applications")}}},P=class{constructor(e){this.config=e,window===top?.window&&new C(e),"false"!==new URLSearchParams(window.location.search).get("launchedFromAppSwitcher")&&(this.client=new T(e))}broadcastMessage(e,t={}){this.client&&this.client.broadcastMessage(e,t)}getAvailableApps(){return this.client?this.client?.getModel().availableApplications:[]}async updateFavorites(e){this.client&&(await this.config.applicationService.updateFavorites(e),await this.client.updateModel(),this.client.broadcastMessage(c.Yh))}async addFavorite(e){this.client&&(await this.config.applicationService.addFavorite(e),await this.client.updateModel(),this.client.broadcastMessage(c.Yh))}async removeFavorite(e){this.client&&(await this.config.applicationService.removeFavorite(e),await this.client.updateModel(),this.client.broadcastMessage(c.Yh))}getPublicTypes(){return this.client?this.client.getModel().publicTypeSupportingApplications:new Map}gotoApp(e,t,s,i){this.client&&this.client.gotoApp(e,t,s,i)}logoff(){this.client&&this.client.logoff()}sendMessageToApp(e,t,s){this.client&&this.client.sendMessageToApp(e,t,s)}setDirtyMessageEnabled(e){this.client&&this.client.setDirtyMessageEnabled(e)}setLogoffUrl(e){this.client&&this.client.setLogoffUrl(e)}subscribe(e,t,s){this.client&&this.client.subscribe(e,t,s)}timeout(e){this.client&&this.client.timeout(e)}unsubscribe(e,t,s){this.client&&this.client.unsubscribe(e,t,s)}updateAppName(e,t){this.client&&this.client.updateAppName(e,t)}updateDirtyFlag(e,t){this.client&&this.client.updateDirtyFlag(e,t)}updateCleanupFn(e){this.client&&this.client.updateCleanupFn(e)}removeCleanupFn(){this.client&&this.client.removeCleanupFn()}registerApp(e,t,s){this.client&&this.client.registerApp(e,t,s)}openObject(e,t,s){this.client&&this.client.openObject(e,t,c.o1,s)}createObject(e,t,s){this.client&&this.client.openObject(e,t,c.JV,s)}updateModel(){this.client&&this.client.updateModel()}setUnsavedChangesLocalizedFn(e){this.config.getUnsavedChangesLocalizedString=e}getAvailableApp(e){return this.client?this.client.getAvailableApp(e):null}};function O(e){(0,l.Oh)([{id:"sas.drive.logon.lastAppDirective",value:e}]).catch((t=>(0,p.jl)("appSwitcher").error(`set preference sas.drive.logon.lastAppDirective to ${e} failed.`)))}const k=()=>{const e=window.location.origin,t=window.location.pathname,s=t.indexOf("/",1);return e+t.substring(0,s)+"/logout"};let R;let z;(0,a.Kv)(n.Z),(0,i.Bi)("NovaComponents-NovaApplicationSwitcher-gui-icu").then((e=>{z=e}));const j=(R||(R=(e=>{const t=new P(e);let s,i;return(0,N.j)(),t.subscribe(c.zg,((e,t)=>{if(t?.settings)for(const{id:e,newValue:a}of t.settings){const n="sas.drive.logon.action"===e,o="sas.drive.logon.specificAppDirective"===e;if(n||o){i=n&&"lastAppDirective"===a||o&&"lastAppDirective"===a;const e=t.broadcaster?.appId&&t.broadcaster.appId===s;i&&s&&e&&O(s);break}}})),t.subscribe(c.nr,((e,t)=>{o.Z.publish(c.nr,{data:t}),function(e){return e&&"object"==typeof e&&"appId"in e}(t)&&"string"==typeof t.appId&&(s=t.appId,!0===i?O(s):void 0===i&&(0,l.Oz)("sas.drive.logon.action").then((e=>{void 0===i&&("lastAppDirective"===e.value&&s?(i=!0,O(s)):i=!1)})).catch((e=>{})))})),t.subscribe(c.B8,((e,t)=>{s=void 0,o.Z.publish("Cache.Reload",{data:t})})),o.Z.subscribe(r.VP,(()=>{t.setDirtyMessageEnabled(!1)})),t})({applicationService:new H,getLogoffUrl:k,getUnsavedChangesLocalizedString:()=>""})),R);j.setUnsavedChangesLocalizedFn((e=>`${z("dirtySignOutMessageDialog.followingApplications.msg")}\n${e}\n${z("dirtySignOutMessageDialog.exitApplications.msg")}`))}}]); //# sourceMappingURL=37.va-report-components.js.map