{"mappings":"YAAA,IAAIA,KAAEC,EAAIC,QAAEC,EAAOC,IAAEC,EAAGC,UAAEC,EAASC,uBAAEC,GAA2BC,QAC5DC,EAAU,aAGVC,EAAc,EAKlB,MAAMC,UAAyBJ,EAChBK,iBAAY,OAAOH,CAAI,CACvBI,qBAAY,MATb,OAS4B,CAG3BC,gCAAuB,MAAO,CAAC,OAAQ,SAAW,CAkB7DC,SACI,IAAIC,EAAUC,KACVC,EAAUF,EAAKE,OACfC,EAAUH,EAAKG,KACfC,EAAUJ,EAAKI,QAEnB,IAAMF,IAAUC,EACZ,OAAOlB,EAGX,IAA4B,IAAxBiB,EAAOG,QAAQ,OAAqC,IAAtBF,EAAKE,QAAQ,KAC3C,OAAOpB,EAGX,IAAKmB,EAAS,CACV,IAAIE,EAAcN,EAAKO,aAAa,eAGpC,GAAe,WAAXL,IAAuBI,EAIvB,OAAOrB,EAHPmB,EAAUJ,EAAKI,QAAUJ,EAAKQ,IAAoB,SAAhBF,EAAyB,oBAAsC,OAAhBA,EAAuB,UAAY,UAK5H,CAEA,IAAIG,GAAaT,EAAKO,aAAa,cAAgB,IAAIG,UAAU,KAIjE,OAFAD,EAAY,GAAGA,IAAaA,EAAY,IAAM,WAAYT,EAAKW,MAExD5B,CAAI,uIAAuIqB,EACxIrB,CAAI,WAAWI,EAAIa,EAAKY,4JAA4JR,EAAU,IAAMF,GAAUF,EAAKa,KAAmB,WAAXX,EAAuB,QAAW,IAAM,IAAMO,EAAY,KAAON,eAC5RpB,CAAI,6HAClB,CAKA+B,cACIC,OAAOC,oBAAoB,UAAWf,KAAKgB,KAC3CF,OAAOG,iBAAoB,UAAWjB,KAAKgB,IAC/C,CAKAE,iBACIJ,OAAOC,oBAAoB,UAAWf,KAAKgB,IAC/C,CAKAA,IAAIG,GACA,IAAIpB,EAAOC,KACPoB,EAAOD,EAAMC,KAGbA,EAAKC,OAAStB,EAAKW,MAIJ,gCAAfU,EAAKD,MAKTpB,EAAKuB,cAAc5B,EAAiBC,IAAM,aAAc,C,KAAEyB,IAJtDrB,EAAKuB,cAAc,sCAK3B,CAKAC,WAAWC,GACP,IAAIzB,EAAQC,KACRyB,EAAQC,KAAKC,MAAMb,OAAOc,KAAKJ,EAASK,YAAYC,MAAM,KAAK,KAEnE,IAAK/B,EAAKI,QAAS,CAIf,GAHAJ,EAAKa,KAAyC,IAAnCa,EAAMM,IAAI3B,QAAQ,aAC7BL,EAAKI,QAAcJ,EAAKQ,IAAIkB,EAAMM,MAE7BhC,EAAKE,OAAQ,CACd,IAAI+B,EAAgBP,EAAMQ,UAAUH,MAAM,KAE1C/B,EAAKE,OAAS+B,EAAcA,EAAcE,OAAS,EACvD,CAEAnC,EAAKoC,cAAc,mBACvB,CAEApC,EAAKY,IAAIyB,OAAOC,cAAcC,YAAY,CACtCnB,MAAO,0BACPC,KAAOI,GACRzB,EAAKI,QACZ,CAMAI,IAAIgC,GAGA,MAAoB,UAFFvC,KAAKM,aAAa,eAGzB,wCAGJ,YAAciC,EAAenC,QAAQ,WAAa,GAAKoC,OAAOpC,QAAQ,aAAe,EAClE,oBACAmC,EAAenC,QAAQ,WAAa,EAChC,oCACA,oCAClC,CAGAqC,YACIC,MAAMD,YACKzC,KAENW,IAAM,KAFAX,KAGNU,IAAQ,IACjB,CAtIAiC,cACID,MAAMhD,GAEN,IAAIK,EAAOC,KAEXD,EAAKW,IAAW,SAAS,IAAIkC,MAAOC,eAAgBpD,IACpDM,EAAKY,IAASvB,IACdW,EAAKiB,IAAMjB,EAAKiB,IAAI8B,KAAK/C,EAC7B,EAkICe,OAAOiC,eAAeC,IAAIxD,IAC3BsB,OAAOiC,eAAeE,OAAOzD,EAAKE,E","sources":["dist/pages-page/pages-page.js"],"sourcesContent":["let { html, nothing, ref, createRef, CustomTokenHTMLElement } = lithtml;\r\nlet tag = 'pages-page';\r\nlet version = '0.9.0';\r\n\r\nlet uniqueIndex = 0;\r\n\r\n/**\r\n * Pages element that displays any Pages page inside an iframe\r\n */\r\nclass PagesPageElement extends CustomTokenHTMLElement {\r\n static get tag() { return tag }\r\n static get version() { return version }\r\n\r\n // We want to rerender each time the page or tenant attribute changes\r\n static get observedAttributes() { return ['page', 'tenant']; }\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super(PagesPageElement);\r\n\r\n let self = this;\r\n\r\n self._ad = `wcid_${(new Date().getTime())}_${++uniqueIndex}`;\r\n self._ae = createRef();\r\n self._af = self._af.bind(self);\r\n }\r\n\r\n /**\r\n * The rendered component\r\n */\r\n render() {\r\n let self = this;\r\n let tenant = self.tenant;\r\n let page = self.page;\r\n let baseUrl = self.baseUrl;\r\n\r\n if (!(tenant && page)) {\r\n return nothing;\r\n }\r\n\r\n if (tenant.indexOf('{') !== -1 || page.indexOf('{') !== -1) {\r\n return nothing;\r\n }\r\n\r\n if (!baseUrl) {\r\n let environment = self.getAttribute('environment');\r\n\r\n // Should only come here if we're not depending on tokens\r\n if (tenant === 'public' && environment) {\r\n baseUrl = self.baseUrl = self._ag(environment === 'prod' ? 'idsrv.onpowel.com' : environment === 'qa' ? 'qaidsrv' : 'ciidsrv')\r\n }\r\n else {\r\n return nothing;\r\n }\r\n }\r\n\r\n let urlParams = (self.getAttribute('urlparams') || '').trimStart('?');\r\n\r\n urlParams = `${urlParams}${(urlParams ? '&' : '')}$wcid=${self._ad}`;\r\n\r\n return html`${baseUrl\r\n ? html``\r\n : html`
Could not find Pages url (no baseurl/environment attribute set and the location is unknown)!
`}`;\r\n }\r\n\r\n /**\r\n * Make sure we attach listener for postMessage's coming from the iframe\r\n */\r\n onConnected() {\r\n window.removeEventListener('message', this._af);\r\n window.addEventListener ('message', this._af);\r\n }\r\n\r\n /**\r\n * Clean up when the component is disconnected from the DOM\r\n */\r\n onDisconnected() {\r\n window.removeEventListener('message', this._af);\r\n }\r\n\r\n /**\r\n * Listen on messages from the iframe\r\n */\r\n _af(event) {\r\n let self = this;\r\n let data = event.data;\r\n\r\n // Only interested in messages from the iframe in this component\r\n if (data.wcid !== self._ad) {\r\n return;\r\n }\r\n\r\n if (data.event === '$pages.needuserinfoandtoken') {\r\n self.$triggerEvent('web-component-needUserInfoAndToken')\r\n return;\r\n }\r\n\r\n self.$triggerEvent(PagesPageElement.tag + '-pageevent', { data })\r\n }\r\n\r\n /**\r\n * Sends the userinfo and token to the iframe\r\n */\r\n onUserData(userData) {\r\n let self = this;\r\n let token = JSON.parse(window.atob(userData.accessToken.split('.')[1]));\r\n\r\n if (!self.baseUrl) {\r\n self._ah = token.iss.indexOf('powel.net') !== -1;\r\n self.baseUrl = self._ag(token.iss);\r\n\r\n if (!self.tenant) {\r\n let clientIdSplit = token.client_id.split('_');\r\n\r\n self.tenant = clientIdSplit[clientIdSplit.length - 1];\r\n }\r\n\r\n self.requestRender('baseurlretrieved');\r\n }\r\n\r\n self._ae.value?.contentWindow.postMessage({\r\n event: '$pages.userinfoandtoken',\r\n data : userData\r\n }, self.baseUrl);\r\n }\r\n\r\n /**\r\n *\r\n * @param {string} tokenIssuerUrl\r\n */\r\n _ag(tokenIssuerUrl) {\r\n let environment = this.getAttribute('environment');\r\n\r\n if (environment === 'local') {\r\n return 'https://water.local.voluead.volue.com'\r\n }\r\n\r\n return 'https://' + (tokenIssuerUrl.indexOf('onpowel') > 0 || origin.indexOf('powel.net') > 0\r\n ? 'pages.onpowel.com'\r\n : tokenIssuerUrl.indexOf('qaidsrv') > 0\r\n ? 'powelappqawater.azurewebsites.net'\r\n : 'powelappciwater.azurewebsites.net')\r\n }\r\n\r\n /** Called when destroy has been called on the element, so we do some cleanup */\r\n onDestroy () {\r\n super.onDestroy();\r\n let self = this;\r\n\r\n self._ae = null;\r\n self._ad = null;\r\n }\r\n}\r\n\r\n// Define the new web component\r\nif (!window.customElements.get(tag)) {\r\n window.customElements.define(tag, PagesPageElement);\r\n}"],"names":["html","$72e27d8799679615$var$html","nothing","$72e27d8799679615$var$nothing","ref","$72e27d8799679615$var$ref","createRef","$72e27d8799679615$var$createRef","CustomTokenHTMLElement","$72e27d8799679615$var$CustomTokenHTMLElement","lithtml","$72e27d8799679615$var$tag","$72e27d8799679615$var$uniqueIndex","$72e27d8799679615$var$PagesPageElement","tag","version","observedAttributes","render","self","this","tenant","page","baseUrl","indexOf","environment","getAttribute","_ag","urlParams","trimStart","_ad","_ae","_ah","onConnected","window","removeEventListener","_af","addEventListener","onDisconnected","event","data","wcid","$triggerEvent","onUserData","userData","token","JSON","parse","atob","accessToken","split","iss","clientIdSplit","client_id","length","requestRender","value","contentWindow","postMessage","tokenIssuerUrl","origin","onDestroy","super","constructor","Date","getTime","bind","customElements","get","define"],"version":3,"file":"pages-page.js.map"}