{"version":3,"file":"chunks/442.b7d5b7.js","mappings":"oPAQqBA,EAAAA,WAKpB,mBAA0B,IAAdC,EAAc,uDAAJ,IAAI,kHACzBC,KAAKC,QAAU,KAEfD,KAAKD,QAAUG,IAAAA,MACd,CACCC,OAAQ,KACRC,UAAW,KAEXC,6BAA8B,MAE9BC,OAAQ,KAERC,MAAO,IAERR,GAGDC,KAAKD,QAAQQ,MAAQL,IAAAA,MACpB,CACCM,KAAM,CACLC,SAAUT,KAAKD,QAAQI,OACvBC,UAAWJ,KAAKD,QAAQK,UAExBM,aAAaC,EAAAA,EAAAA,GAAeX,KAAKY,MAAMC,cACvCC,uBAAuBH,EAAAA,EAAAA,GACtBX,KAAKY,MACJC,eAEHE,MAAO,CACNC,cAAe,iBACfC,wBAAwB,IAG1BjB,KAAKD,QAAQQ,O,6CAIf,WACC,QAASP,KAAKC,U,2BAGf,WACC,MAAO,CACNiB,OAAQ,CACP,SACA,WACAC,EAAAA,EAAAA,GAASnB,KAAKoB,KAAM,0B,2BAKvB,WACC,yBACIpB,KAAKqB,iBADT,IAECpB,QAASD,KAAKC,Y,gBAIhB,WACC,MAAO,CAACqB,OAAOC,SAASC,SAAUF,OAAOC,SAASH,MAAMK,KAAK,Q,gBAG9D,WAAW,QACV,MAAO,CACNH,OAAOC,SAASC,SAChB,OACCF,OAAOC,SAASH,KAChBE,OAAOC,SAASG,SAASC,OACxB,EACA,MAAAL,OAAOC,SAASG,UAAhB,OAAqC,QAJvC,OAOSE,SACPH,KAAK,MACNA,KAAK,Q,kBAGR,WAAO,WAGN,OAFAzB,KAAK6B,QAAU,IAAIC,EAAAA,EAAwB9B,KAAKD,QAAQQ,OAEjDP,KAAK6B,QACVE,wBACAC,MAAK,SAACC,GAGN,GAFA,EAAKC,aAAaD,IAEb,EAAKE,WACT,OAAO,EAAKC,WANR,OASC,SAACC,GAAD,OAAY,EAAKC,OAAOD,Q,0BAGjC,SAAaJ,GACU,OAAlBA,EACHjC,KAAKuC,WAAWN,EAAchC,SAE9BD,KAAKwC,kB,mBAIP,WAAQ,MACP,iBAAOxC,KAAK6B,eAAZ,aAAO,EAAcY,cAAczC,KAAKqB,mB,oBAGzC,WAAS,MACR,iBAAOrB,KAAK6B,eAAZ,aAAO,EAAca,W,wBAGtB,SAAWzC,GACVD,KAAKC,QAAUA,I,2BAGhB,WAAgB,MACT0C,EAAe,UAAG3C,KAAK6B,eAAR,aAAG,EAAce,iBAElCD,GAA8C,IAA3BA,EAAgBE,QAEtC7C,KAAKuC,WAAWI,EAAgB,M,oCAIlC,WAAyB,WACxB,OAAO3C,KAAK8C,WAAWd,MAAK,SAACe,GAAD,OAC3B,EAAKC,yBAAyBD,Q,sCAIhC,SAAyBE,GAAY,MACpC,MAAO,CACNC,cAAe,OAACD,MAAAA,OAAD,EAACA,EAAOE,UAAWF,MAAAA,OAAnB,EAAmBA,EAAOG,cAA1B,OACNxB,SACPH,KAAK,Q,sBAIT,WAAW,WACV,OAAOzB,KAAK6B,QACVwB,mBAAmBrD,KAAKsD,iBADnB,OAEC,SAACjB,GACP,GAAIA,aAAakB,EAAAA,GAEhB,OAAO,EAAK1B,QAAQ2B,qBACnB,EAAKF,iBAGN,EAAKhB,OAAOD,Q,4BAKhB,WACC,OAAOrC,KAAK8C,WAAWd,MAAK,SAACiB,GAAD,OAAgBA,MAAAA,OAAhB,EAAgBA,EAAOG,iB,oBAGpD,SAAOf,GACN,IAAMoB,EAAMC,SAASC,uBACpB3D,KAAKD,QAAQM,8BAGVoD,EAAIZ,SACPY,EAAI,GAAGG,UAAP,yCAAqDvB,EAAEwB,QAAvD,e,QArKkB/D","sources":["webpack:///./components/Auth/AzureAD.ts"],"sourcesContent":["import _ from 'lodash';\r\nimport { buildUrl, denormalizeUrl } from '../../libs/utils';\r\n\r\nimport {\r\n\tPublicClientApplication,\r\n\tInteractionRequiredAuthError\r\n} from '@azure/msal-browser';\r\n\r\nexport default class AzureAD {\r\n\taccount: any;\r\n\toptions: any;\r\n\tmanager: any;\r\n\r\n\tconstructor(options = {}) {\r\n\t\tthis.account = null;\r\n\r\n\t\tthis.options = _.merge(\r\n\t\t\t{\r\n\t\t\t\tclient: null,\r\n\t\t\t\tauthority: null,\r\n\r\n\t\t\t\tnotificationElementClassName: 'app',\r\n\r\n\t\t\t\tlogger: null,\r\n\r\n\t\t\t\tazure: {}\r\n\t\t\t},\r\n\t\t\toptions\r\n\t\t);\r\n\r\n\t\tthis.options.azure = _.merge(\r\n\t\t\t{\r\n\t\t\t\tauth: {\r\n\t\t\t\t\tclientId: this.options.client,\r\n\t\t\t\t\tauthority: this.options.authority,\r\n\r\n\t\t\t\t\tredirectUri: denormalizeUrl(this.root).toLowerCase(),\r\n\t\t\t\t\tpostLogoutRedirectUri: denormalizeUrl(\r\n\t\t\t\t\t\tthis.root\r\n\t\t\t\t\t).toLowerCase()\r\n\t\t\t\t},\r\n\t\t\t\tcache: {\r\n\t\t\t\t\tcacheLocation: 'sessionStorage', // This configures where your cache will be stored\r\n\t\t\t\t\tstoreAuthStateInCookie: false\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tthis.options.azure\r\n\t\t);\r\n\t}\r\n\r\n\tget isLoggedIn() {\r\n\t\treturn !!this.account;\r\n\t}\r\n\r\n\tget loginParameters() {\r\n\t\treturn {\r\n\t\t\tscopes: [\r\n\t\t\t\t'openid',\r\n\t\t\t\t'profile',\r\n\t\t\t\tbuildUrl(this.host, 'user_impersonation')\r\n\t\t\t]\r\n\t\t};\r\n\t}\r\n\r\n\tget tokenParameters() {\r\n\t\treturn {\r\n\t\t\t...this.loginParameters,\r\n\t\t\taccount: this.account\r\n\t\t};\r\n\t}\r\n\r\n\tget host() {\r\n\t\treturn [window.location.protocol, window.location.host].join('//');\r\n\t}\r\n\r\n\tget root() {\r\n\t\treturn [\r\n\t\t\twindow.location.protocol,\r\n\t\t\t[\r\n\t\t\t\twindow.location.host,\r\n\t\t\t\twindow.location.pathname.substr(\r\n\t\t\t\t\t1,\r\n\t\t\t\t\twindow.location.pathname.lastIndexOf('/')\r\n\t\t\t\t)\r\n\t\t\t]\r\n\t\t\t\t.filter(Boolean)\r\n\t\t\t\t.join('/')\r\n\t\t].join('//');\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.manager = new PublicClientApplication(this.options.azure);\r\n\r\n\t\treturn this.manager\r\n\t\t\t.handleRedirectPromise()\r\n\t\t\t.then((tokenResponse: any) => {\r\n\t\t\t\tthis.authenticate(tokenResponse);\r\n\r\n\t\t\t\tif (!this.isLoggedIn) {\r\n\t\t\t\t\treturn this.login();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((e: any) => this.notify(e));\r\n\t}\r\n\r\n\tauthenticate(tokenResponse: any) {\r\n\t\tif (tokenResponse !== null) {\r\n\t\t\tthis.setAccount(tokenResponse.account);\r\n\t\t} else {\r\n\t\t\tthis.selectAccount();\r\n\t\t}\r\n\t}\r\n\r\n\tlogin() {\r\n\t\treturn this.manager?.loginRedirect(this.loginParameters);\r\n\t}\r\n\r\n\tlogout() {\r\n\t\treturn this.manager?.logout();\r\n\t}\r\n\r\n\tsetAccount(account: any) {\r\n\t\tthis.account = account;\r\n\t}\r\n\r\n\tselectAccount() {\r\n\t\tconst currentAccounts = this.manager?.getAllAccounts();\r\n\r\n\t\tif (currentAccounts && currentAccounts.length === 1) {\r\n\t\t\t// no support for multiple accounts yet\r\n\t\t\tthis.setAccount(currentAccounts[0]);\r\n\t\t}\r\n\t}\r\n\r\n\tgetAuthorizationHeader() {\r\n\t\treturn this.getToken().then((response: any) =>\r\n\t\t\tthis.buildAuthorizationHeader(response)\r\n\t\t);\r\n\t}\r\n\r\n\tbuildAuthorizationHeader(token: any) {\r\n\t\treturn {\r\n\t\t\tAuthorization: [token?.tokenType, token?.accessToken]\r\n\t\t\t\t.filter(Boolean)\r\n\t\t\t\t.join(' ')\r\n\t\t};\r\n\t}\r\n\r\n\tgetToken() {\r\n\t\treturn this.manager\r\n\t\t\t.acquireTokenSilent(this.tokenParameters)\r\n\t\t\t.catch((e: any) => {\r\n\t\t\t\tif (e instanceof InteractionRequiredAuthError) {\r\n\t\t\t\t\t// fallback to interaction when silent call fails\r\n\t\t\t\t\treturn this.manager.acquireTokenRedirect(\r\n\t\t\t\t\t\tthis.tokenParameters\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.notify(e);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tgetAccessToken() {\r\n\t\treturn this.getToken().then((token: any) => token?.accessToken);\r\n\t}\r\n\r\n\tnotify(e: any) {\r\n\t\tconst elm = document.getElementsByClassName(\r\n\t\t\tthis.options.notificationElementClassName\r\n\t\t);\r\n\r\n\t\tif (elm.length) {\r\n\t\t\telm[0].outerHTML = `
${e.message}
`;\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["AzureAD","options","this","account","_","client","authority","notificationElementClassName","logger","azure","auth","clientId","redirectUri","denormalizeUrl","root","toLowerCase","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","scopes","buildUrl","host","loginParameters","window","location","protocol","join","pathname","substr","Boolean","manager","PublicClientApplication","handleRedirectPromise","then","tokenResponse","authenticate","isLoggedIn","login","e","notify","setAccount","selectAccount","loginRedirect","logout","currentAccounts","getAllAccounts","length","getToken","response","buildAuthorizationHeader","token","Authorization","tokenType","accessToken","acquireTokenSilent","tokenParameters","InteractionRequiredAuthError","acquireTokenRedirect","elm","document","getElementsByClassName","outerHTML","message"],"sourceRoot":""}