@igo2/auth 1.9.3 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-auth.umd.js","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.html","../../../node_modules/tslib/tslib.es6.js","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.html","../../../packages/auth/src/lib/shared/auth-msalServiceb2c.service..ts","../../../packages/auth/src/lib/shared/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.html","../../../packages/auth/src/lib/auth-form/auth-facebook.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.ts","../../../packages/auth/src/lib/auth-form/auth-form.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/auth-microsoft.provider.ts","../../../packages/auth/src/lib/shared/protected.directive.ts","../../../packages/auth/src/lib/shared/storage.service.ts","../../../packages/auth/src/lib/auth-routing.module.ts","../../../packages/auth/src/lib/auth.module.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n private options: AuthOptions;\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n set(token: string) {\r\n localStorage.setItem(this.tokenKey, token);\r\n }\r\n\r\n remove() {\r\n localStorage.removeItem(this.tokenKey);\r\n }\r\n\r\n get(): string {\r\n return localStorage.getItem(this.tokenKey);\r\n }\r\n\r\n decode() {\r\n const token = this.get();\r\n if (!token) {\r\n return;\r\n }\r\n return jwtDecode(token);\r\n }\r\n\r\n isExpired() {\r\n const jwt = this.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n if (jwt && currentTime < jwt.exp) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private get tokenKey() {\r\n const config = this.injector.get<ConfigService>(ConfigService);\r\n this.options = config.getConfig('auth') || {};\r\n return this.options.tokenKey;\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\r\n\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { Base64 } from '@igo2/utils';\r\n\r\nimport { User, IInfosUser } from './auth.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\r\n public logged$ = new BehaviorSubject<boolean>(undefined);\r\n public redirectUrl: string;\r\n private anonymous = false;\r\n\r\n get hasAuthService() {\r\n return this.config.getConfig('auth.url') !== undefined;\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private tokenService: TokenService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n @Optional() private router: Router\r\n ) {\r\n this.authenticate$.next(this.authenticated);\r\n this.authenticate$.subscribe((authenticated) => {\r\n this.logged$.next(authenticated);\r\n globalCacheBusterNotifier.next();\r\n });\r\n }\r\n\r\n login(username: string, password: string): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n username,\r\n password: this.encodePassword(password)\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginWithToken(token: string, type: string, infosUser?: IInfosUser): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n token,\r\n typeConnection: type,\r\n infosUser\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginAnonymous(): Observable<boolean> {\r\n this.anonymous = true;\r\n this.logged$.next(true);\r\n return of(true);\r\n }\r\n\r\n refresh(): Observable<void> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/refresh`, {}).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n logout(): Observable<boolean> {\r\n this.anonymous = false;\r\n this.tokenService.remove();\r\n this.authenticate$.next(false);\r\n return of(true);\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !this.tokenService.isExpired();\r\n }\r\n\r\n getToken(): string {\r\n return this.tokenService.get();\r\n }\r\n\r\n decodeToken() {\r\n if (this.isAuthenticated()) {\r\n return this.tokenService.decode();\r\n }\r\n return false;\r\n }\r\n\r\n goToRedirectUrl() {\r\n if (!this.router) {\r\n return;\r\n }\r\n const redirectUrl = this.redirectUrl || this.router.url;\r\n\r\n const options = this.config.getConfig('auth') || {};\r\n if (redirectUrl === options.loginRoute) {\r\n const homeRoute = options.homeRoute || '/';\r\n this.router.navigateByUrl(homeRoute);\r\n } else if (redirectUrl) {\r\n this.router.navigateByUrl(redirectUrl);\r\n }\r\n }\r\n\r\n getUserInfo(): Observable<User> {\r\n const url = this.config.getConfig('auth.url') + '/info';\r\n return this.http.get<User>(url);\r\n }\r\n\r\n getProfils(): Observable<{ profils: string[] }> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.get<{ profils: string[] }>(`${url}/profils`);\r\n }\r\n\r\n updateUser(user: User): Observable<User> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.patch<User>(url, user);\r\n }\r\n\r\n private encodePassword(password: string) {\r\n return Base64.encode(password);\r\n }\r\n\r\n // authenticated or anonymous\r\n get logged(): boolean {\r\n return this.authenticated || this.isAnonymous;\r\n }\r\n\r\n get isAnonymous(): boolean {\r\n return this.anonymous;\r\n }\r\n\r\n get authenticated(): boolean {\r\n return this.isAuthenticated();\r\n }\r\n\r\n get isAdmin(): boolean {\r\n const token = this.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private loginCall(body, headers) {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/login`, body, { headers }).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n const tokenDecoded = this.decodeToken();\r\n if (tokenDecoded && tokenDecoded.user) {\r\n if (tokenDecoded.user.locale) {\r\n this.languageService.setLanguage(tokenDecoded.user.locale);\r\n }\r\n if (tokenDecoded.user.isExpired) {\r\n this.languageService.translate\r\n .get('igo.auth.error.Password expired')\r\n .subscribe((expiredAlert) =>\r\n this.messageService.alert(expiredAlert)\r\n );\r\n }\r\n }\r\n this.authenticate$.next(true);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\nimport { AuthGoogleOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-google',\r\n templateUrl: './auth-google.component.html',\r\n styleUrls: ['./auth-google.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthGoogleComponent {\r\n private options: AuthGoogleOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.google') || {};\r\n\r\n if (this.options.apiKey && this.options.clientId) {\r\n this.loadSDKGoogle();\r\n this.loadPlatform();\r\n } else {\r\n console.warn('Google authentification needs \"apiKey\" and \"clientId\" options');\r\n }\r\n }\r\n\r\n public handleSignInClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signIn();\r\n }\r\n\r\n public handleSignOutClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signOut();\r\n }\r\n\r\n private handleClientLoad() {\r\n (window as any).gapi.load('client:auth2', () => this.initClient());\r\n }\r\n\r\n private initClient() {\r\n (window as any).gapi.client\r\n .init({\r\n apiKey: this.options.apiKey,\r\n clientId: this.options.clientId,\r\n discoveryDocs: [\r\n 'https://people.googleapis.com/$discovery/rest?version=v1'\r\n ],\r\n scope: 'profile'\r\n })\r\n .then(() => {\r\n this.handleSignOutClick();\r\n this.updateTextButton();\r\n (window as any).gapi.auth2.getAuthInstance().isSignedIn.listen(rep => {\r\n this.updateSigninStatus(rep);\r\n });\r\n });\r\n }\r\n\r\n private updateSigninStatus(isSignedIn) {\r\n this.updateTextButton();\r\n if (isSignedIn) {\r\n this.loginGoogle((window as any).gapi.client.getToken().access_token);\r\n }\r\n }\r\n\r\n private updateTextButton() {\r\n const btn = document.querySelector('span[id^=\"not_signed_\"]');\r\n if (btn && this.languageService.getLanguage() !== 'en') {\r\n if (btn.innerHTML === 'Sign in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant('igo.auth.google.login');\r\n } else if (btn.innerHTML === 'Signed in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant('igo.auth.google.logged');\r\n }\r\n }\r\n }\r\n\r\n private loginGoogle(token) {\r\n this.authService.loginWithToken(token, 'google').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKGoogle() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-jssdk';\r\n js.src = 'https://apis.google.com/js/api.js';\r\n js.onload = () => {\r\n this.handleClientLoad();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n\r\n private loadPlatform() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-platform';\r\n js.src = 'https://apis.google.com/js/platform.js';\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div class=\"g-signin2 google-login-button\" data-height=\"40\" data-width=\"265\" data-longtitle=\"true\">\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter,\r\n Inject\r\n} from '@angular/core';\r\nimport { MsalBroadcastService, MsalService, MSAL_GUARD_CONFIG} from '@azure/msal-angular';\r\nimport {\r\n InteractionStatus,\r\n AuthenticationResult,\r\n PublicClientApplication,\r\n PopupRequest,\r\n SilentRequest,\r\n InteractionRequiredAuthError\r\n} from '@azure/msal-browser';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthMicrosoftOptions, MSPMsalGuardConfiguration } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoft',\r\n templateUrl: './auth-microsoft.component.html',\r\n styleUrls: ['./auth-microsoft.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftComponent {\r\n private options: AuthMicrosoftOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastService;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MSPMsalGuardConfiguration[],\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoft') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastService(this.msalService.instance, this.msalService);\r\n\r\n if (this.options.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoft() {\r\n this.msalService.loginPopup({...this.getConf().authRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const tokenAccess = response.accessToken;\r\n const tokenId = response.idToken;\r\n this.authService.loginWithToken(tokenAccess, 'microsoft', { tokenId } ).subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(this.getConf().authRequest as SilentRequest);\r\n }\r\n console.log(error);\r\n }).catch(error => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter(conf => conf.type === 'add')[0];\r\n }\r\n}\r\n","<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoft()\">\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{'igo.auth.microsoft.login' | translate}}\r\n</button>\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport {\r\n IPublicClientApplication,\r\n EndSessionRequest,\r\n EndSessionPopupRequest,\r\n AuthenticationResult,\r\n RedirectRequest,\r\n SilentRequest,\r\n PopupRequest,\r\n SsoSilentRequest,\r\n Logger,\r\n WrapperSKU\r\n} from '@azure/msal-browser';\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { Observable, from } from 'rxjs';\r\nimport { IMsalService } from '@azure/msal-angular';\r\n\r\n@Injectable()\r\nexport class MsalServiceb2c implements IMsalService {\r\n private redirectHash: string;\r\n private logger: Logger;\r\n private name = '@azure/msal-angular';\r\n private version = '2.0.0-beta.2';\r\n constructor(\r\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\r\n private location: Location\r\n ) {\r\n const hash = this.location.path(true).split('#').pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\r\n }\r\n\r\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(silentRequest: SilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request?: RedirectRequest): Observable<void> {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger(): Logger {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(this.name, this.version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger: Logger): void {\r\n this.logger = logger.clone(this.name, this.version);\r\n this.instance.setLogger(logger);\r\n }\r\n\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { EventMessage, EventMessageUtils, IPublicClientApplication, InteractionStatus } from '@azure/msal-browser';\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\n@Injectable()\r\nexport class MsalBroadcastServiceb2c {\r\n private _msalSubject: Subject<EventMessage>;\r\n public msalSubject$: Observable<EventMessage>;\r\n private _inProgress: BehaviorSubject<InteractionStatus>;\r\n public inProgress$: Observable<InteractionStatus>;\r\n\r\n constructor(\r\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\r\n private authService: MsalServiceb2c\r\n ) {\r\n this._msalSubject = new Subject<EventMessage>();\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject<InteractionStatus>(InteractionStatus.Startup);\r\n this.inProgress$ = this._inProgress.asObservable();\r\n\r\n this.msalInstance.addEventCallback((message: EventMessage) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\r\n if (status !== null) {\r\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress to ${status}`);\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter,\r\n Inject\r\n} from '@angular/core';\r\n\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport {\r\n InteractionStatus,\r\n AuthenticationResult,\r\n PublicClientApplication,\r\n PopupRequest,\r\n SilentRequest,\r\n InteractionRequiredAuthError\r\n} from '@azure/msal-browser';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthMicrosoftb2cOptions, MSPMsalGuardConfiguration } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';\r\nimport { MsalServiceb2c } from '../shared/auth-msalServiceb2c.service.';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoftb2c',\r\n templateUrl: './auth-microsoftb2c.component.html',\r\n styleUrls: ['./auth-microsoftb2c.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftb2cComponent {\r\n private options: AuthMicrosoftb2cOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastServiceb2c;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalServiceb2c,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MSPMsalGuardConfiguration[],\r\n ) {\r\n\r\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options.browserAuthOptions,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastServiceb2c(this.msalService.instance, this.msalService);\r\n\r\n if (this.options.browserAuthOptions.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoftb2c() {\r\n this.msalService.loginPopup({...this.getConf().authRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const token = response.idToken;\r\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(this.getConf().authRequest as SilentRequest);\r\n }\r\n }).catch(error => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter(conf => conf.type === 'b2c')[0];\r\n }\r\n}\r\n","<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoftb2c()\">\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{'igo.auth.microsoftb2c.login' | translate}}\r\n</button>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthFacebookOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-facebook',\r\n templateUrl: './auth-facebook.component.html',\r\n styleUrls: ['./auth-facebook.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthFacebookComponent {\r\n private options: AuthFacebookOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.facebook') || {};\r\n\r\n if (this.options.appId) {\r\n this.loadSDKFacebook();\r\n } else {\r\n console.warn('Facebook authentification needs \"appId\" option');\r\n }\r\n }\r\n\r\n private subscribeEvents() {\r\n (window as any).FB.Event.subscribe('auth.statusChange', rep => {\r\n this.statusChangeCallback(rep);\r\n });\r\n }\r\n\r\n private statusChangeCallback(response) {\r\n if (response.status === 'connected') {\r\n const accessToken = response.authResponse.accessToken;\r\n this.loginFacebook(accessToken);\r\n }\r\n }\r\n\r\n private loginFacebook(token) {\r\n this.authService.loginWithToken(token, 'facebook').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKFacebook() {\r\n if (document.getElementById('facebook-jssdk')) {\r\n return;\r\n }\r\n\r\n const urlSDK =\r\n 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';\r\n\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'facebook-jssdk';\r\n js.src = `${urlSDK}&appId=${this.options.appId}`;\r\n js.onload = () => {\r\n this.subscribeEvents();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div scope=\"public_profile,email\"\r\n class=\"fb-login-button\" data-max-rows=\"1\" data-size=\"large\"\r\n data-button-type=\"login_with\" data-show-faces=\"false\"\r\n data-auto-logout-link=\"false\" data-use-continue-as=\"false\">\r\n</div>\r\n","<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required placeholder=\"{{'igo.auth.user' | translate}}\" formControlName=\"username\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required type=\"password\" placeholder=\"{{'igo.auth.password' | translate}}\" formControlName=\"password\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid || loading\">{{'igo.auth.login' | translate}}</button>\r\n <button *ngIf=\"allowAnonymous\" mat-raised-button class=\"anonymous\" type=\"button\" [disabled]=\"loading\" (click)=\"loginAnonymous()\">\r\n {{'igo.auth.accessAnonymous' | translate }}\r\n </button>\r\n <div *ngIf=\"error\">\r\n <br/>\r\n <font size=\"3\" color=\"red\">{{error}}</font>\r\n </div>\r\n</form>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'igo-auth-intern',\r\n templateUrl: './auth-intern.component.html',\r\n styleUrls: ['./auth-intern.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthInternComponent {\r\n @Input()\r\n get allowAnonymous(): boolean {\r\n return this._allowAnonymous;\r\n }\r\n set allowAnonymous(value: boolean) {\r\n this._allowAnonymous = value;\r\n }\r\n private _allowAnonymous = true;\r\n\r\n public error = '';\r\n public form: FormGroup;\r\n public loading = false;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private languageService: LanguageService,\r\n fb: FormBuilder\r\n ) {\r\n this.form = fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n }\r\n\r\n loginUser(values: any) {\r\n this.loading = true;\r\n this.auth.login(values.username, values.password).subscribe(\r\n () => {\r\n this.login.emit(true);\r\n this.loading = false;\r\n },\r\n (error: any) => {\r\n try {\r\n this.languageService.translate\r\n .get('igo.auth.error.' + error.error.message)\r\n .subscribe(errorMsg => (this.error = errorMsg));\r\n } catch (e) {\r\n this.error = error.error.message;\r\n }\r\n this.loading = false;\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n loginAnonymous() {\r\n this.auth.loginAnonymous().subscribe(() => {\r\n this.login.emit(true);\r\n });\r\n }\r\n}\r\n","<div *ngIf=\"visible\">\r\n <div *ngIf=\"!auth.logged && backgroundDisable\" class=\"backgroundDisable\"></div>\r\n\r\n <div *ngIf=\"!auth.logged && showLoginDiv\" class=\"login center-block\">\r\n <h1>{{'igo.auth.connection' | translate}}</h1>\r\n\r\n <igo-auth-google\r\n *ngIf=\"options.google && options.google.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-google>\r\n <igo-auth-microsoft\r\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-microsoft>\r\n <igo-auth-microsoftb2c\r\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-microsoftb2c>\r\n <igo-auth-facebook\r\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-facebook>\r\n <igo-auth-intern\r\n *ngIf=\"!options.intern || options.intern.enabled !== false\"\r\n [allowAnonymous]=\"options.allowAnonymous\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-intern>\r\n </div>\r\n\r\n <div *ngIf=\"auth.logged && showAlreadyConnectedDiv\" class=\"login center-block\">\r\n <p>{{'igo.auth.welcome' | translate: user}}</p>\r\n <button mat-raised-button type=\"button\" (click)=\"logout()\">{{'igo.auth.signOut' | translate}}</button>\r\n </div>\r\n\r\n <div *ngIf=\"showLogoutDiv\" class=\"login center-block\">\r\n <p>{{'igo.auth.deconnection' | translate}}</p>\r\n <button *ngIf=\"options.homeRoute\" mat-raised-button type=\"button\" (click)=\"home()\">{{'igo.auth.home' | translate}}</button>\r\n </div>\r\n\r\n</div>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n Input,\r\n Optional,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-form',\r\n templateUrl: './auth-form.component.html',\r\n styleUrls: ['./auth-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthFormComponent implements OnInit {\r\n @Input()\r\n get backgroundDisable(): boolean {\r\n if (this.isLogoutRoute || this.isLogoutRoute) {\r\n return false;\r\n }\r\n return this._backgroundDisable;\r\n }\r\n set backgroundDisable(value: boolean) {\r\n this._backgroundDisable = value.toString() === 'true';\r\n }\r\n private _backgroundDisable = true;\r\n\r\n @Input()\r\n get hasAlreadyConnectedDiv(): boolean {\r\n return this._hasAlreadyConnectedDiv;\r\n }\r\n set hasAlreadyConnectedDiv(value: boolean) {\r\n this._hasAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _hasAlreadyConnectedDiv = true;\r\n\r\n @Input()\r\n get hasLogoutDiv(): boolean {\r\n return this._hasLogoutDiv;\r\n }\r\n set hasLogoutDiv(value: boolean) {\r\n this._hasLogoutDiv = value.toString() === 'true';\r\n }\r\n private _hasLogoutDiv = true;\r\n\r\n @Input()\r\n get showAlreadyConnectedDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasAlreadyConnectedDiv;\r\n }\r\n return this._showAlreadyConnectedDiv;\r\n }\r\n set showAlreadyConnectedDiv(value: boolean) {\r\n this._showAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _showAlreadyConnectedDiv = false;\r\n\r\n @Input()\r\n get showLogoutDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasLogoutDiv;\r\n }\r\n return this._showLogoutDiv;\r\n }\r\n set showLogoutDiv(value: boolean) {\r\n this._showLogoutDiv = value.toString() === 'true';\r\n }\r\n private _showLogoutDiv = false;\r\n\r\n get showLoginDiv(): boolean {\r\n if (!this.isLogoutRoute) {\r\n return true;\r\n }\r\n }\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public options: AuthOptions;\r\n public user;\r\n\r\n public visible = true;\r\n\r\n private isLoginRoute: boolean;\r\n private isLogoutRoute: boolean;\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private config: ConfigService,\r\n @Optional() private router: Router\r\n ) {\r\n this.options = this.config.getConfig('auth') || {};\r\n this.visible = Object.getOwnPropertyNames(this.options).length !== 0;\r\n }\r\n\r\n public ngOnInit() {\r\n this.analyzeRoute();\r\n this.getName();\r\n }\r\n\r\n public onLogin() {\r\n this.auth.goToRedirectUrl();\r\n this.getName();\r\n this.login.emit(true);\r\n }\r\n\r\n public logout() {\r\n this.auth.logout().subscribe(() => {\r\n this.user = undefined;\r\n if (this.router) {\r\n if (this.options.logoutRoute) {\r\n this.router.navigate([this.options.logoutRoute]);\r\n } else if (this.options.homeRoute) {\r\n this.router.navigate([this.options.homeRoute]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public home() {\r\n if (this.router && this.options.homeRoute) {\r\n this.router.navigate([this.options.homeRoute]);\r\n }\r\n }\r\n\r\n private getName() {\r\n const tokenDecoded = this.auth.decodeToken();\r\n if (tokenDecoded) {\r\n this.user = {\r\n name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId\r\n };\r\n }\r\n }\r\n\r\n private analyzeRoute() {\r\n if (!this.router) {\r\n return;\r\n }\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationStart))\r\n .subscribe((changeEvent: any) => {\r\n if (changeEvent.url) {\r\n const currentRoute = changeEvent.url;\r\n const logoutRoute = this.options.logoutRoute;\r\n const loginRoute = this.options.loginRoute;\r\n\r\n this.isLogoutRoute = currentRoute === logoutRoute;\r\n this.isLoginRoute = currentRoute === loginRoute;\r\n\r\n if (this.isLogoutRoute) {\r\n this.auth.logout();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggedGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.logged) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.authenticated) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const token = this.authService.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfilsGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.authService.getProfils().pipe(\r\n map((profils: { profils: string[] }) => {\r\n const authConfig = this.config.getConfig('auth');\r\n if (\r\n profils &&\r\n profils.profils &&\r\n profils.profils.some(v => authConfig.profilsGuard.indexOf(v) !== -1)\r\n ) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Md5 } from 'ts-md5';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { TokenService } from './token.service';\r\nimport { WithCredentialsOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private refreshInProgress = false;\r\n\r\n private get trustHosts() {\r\n const trustHosts = this.config.getConfig('auth.trustHosts') || [];\r\n trustHosts.push(window.location.hostname);\r\n return trustHosts;\r\n }\r\n\r\n private get hostsWithCredentials(): WithCredentialsOptions[] {\r\n return this.config.getConfig('auth.hostsWithCredentials') || [];\r\n }\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private tokenService: TokenService,\r\n private http: HttpClient\r\n ) {}\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\r\n let req = originalReq.clone();\r\n if (withCredentials) {\r\n req = originalReq.clone({\r\n withCredentials\r\n });\r\n }\r\n this.refreshToken();\r\n const token = this.tokenService.get();\r\n const element = document.createElement('a');\r\n element.href = req.url;\r\n if (element.host === '') {\r\n element.href = element.href; // FIX IE11, DO NOT REMOVE\r\n }\r\n\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return next.handle(req);\r\n }\r\n\r\n const authHeader = `Bearer ${token}`;\r\n let authReq = req.clone({\r\n headers: req.headers.set('Authorization', authHeader)\r\n });\r\n\r\n const tokenDecoded: any = this.tokenService.decode();\r\n if (\r\n authReq.params.get('_i') === 'true' &&\r\n tokenDecoded &&\r\n tokenDecoded.user &&\r\n tokenDecoded.user.sourceId\r\n ) {\r\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\r\n authReq = authReq.clone({\r\n params: authReq.params.set('_i', hashUser)\r\n });\r\n } else if (authReq.params.get('_i') === 'true') {\r\n authReq = authReq.clone({\r\n params: authReq.params.delete('_i')\r\n });\r\n }\r\n\r\n return next.handle(authReq);\r\n }\r\n\r\n interceptXhr(xhr, url: string): boolean {\r\n const withCredentials = this.handleHostsWithCredentials(url);\r\n if (withCredentials) {\r\n xhr.withCredentials = withCredentials;\r\n return true;\r\n }\r\n\r\n this.refreshToken();\r\n const element = document.createElement('a');\r\n element.href = url;\r\n\r\n const token = this.tokenService.get();\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return false;\r\n }\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n return true;\r\n }\r\n\r\n private handleHostsWithCredentials(reqUrl: string) {\r\n let withCredentials = false;\r\n for (const hostWithCredentials of this.hostsWithCredentials) {\r\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n withCredentials = hostWithCredentials.withCredentials !== undefined ? hostWithCredentials.withCredentials : undefined;\r\n break;\r\n }\r\n }\r\n return withCredentials;\r\n }\r\n\r\n refreshToken() {\r\n const jwt = this.tokenService.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n\r\n if (\r\n !this.refreshInProgress &&\r\n jwt &&\r\n currentTime < jwt.exp &&\r\n currentTime > jwt.exp - 1800\r\n ) {\r\n this.refreshInProgress = true;\r\n\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/refresh`, {}).subscribe(\r\n (data: any) => {\r\n this.tokenService.set(data.token);\r\n this.refreshInProgress = false;\r\n },\r\n err => {\r\n err.error.caught = true;\r\n return err;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","import {\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INSTANCE,\r\n MsalService,\r\n} from '@azure/msal-angular';\r\n\r\nimport {\r\n PublicClientApplication,\r\n InteractionType\r\n} from '@azure/msal-browser';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { BrowserAuthOptions } from '@azure/msal-browser';\r\n\r\nimport { AuthMicrosoftOptions, MSPMsalGuardConfiguration } from './auth.interface';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\nexport function MSALConfigFactory(config: ConfigService): PublicClientApplication {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoft') || {};\r\n\r\n msConf.redirectUri = msConf.redirectUri || window.location.href;\r\n msConf.authority = msConf.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALConfigFactoryb2c(config: ConfigService): PublicClientApplication {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoftb2c.browserAuthOptions') || {};\r\n msConf.redirectUri = msConf.redirectUri || window.location.href;\r\n msConf.authority = msConf.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALAngularConfigFactory(config: ConfigService): MSPMsalGuardConfiguration {\r\n\r\n const msConf: AuthMicrosoftOptions = config.getConfig('auth.microsoft') || {};\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: ['user.read'],\r\n loginHint: 'todo',\r\n },\r\n type: 'add'\r\n };\r\n}\r\n\r\nexport function MSALAngularConfigFactoryb2c(config: ConfigService): MSPMsalGuardConfiguration {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoftb2c.browserAuthOptions') || {};\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [msConf.clientId]\r\n },\r\n type: 'b2c'\r\n };\r\n}\r\n\r\nexport function provideAuthMicrosoft(type?: string) {\r\n if (type === 'b2c') {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactoryb2c,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactoryb2c,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalServiceb2c\r\n ];\r\n } else {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactory,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactory,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalService\r\n ];\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Directive({\r\n selector: '[igoProtected]'\r\n})\r\nexport class ProtectedDirective {\r\n constructor(authentication: AuthService, el: ElementRef) {\r\n if (!authentication.isAuthenticated()) {\r\n el.nativeElement.parentNode.removeChild(el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\nimport { TokenService } from './token.service';\r\nimport { AuthStorageOptions } from './storage.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthStorageService extends StorageService {\r\n protected options: AuthStorageOptions;\r\n\r\n constructor(\r\n config: ConfigService,\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {\r\n super(config);\r\n\r\n this.authService.authenticate$.subscribe(isAuthenticated => {\r\n if (isAuthenticated && this.options.url) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = value;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.set(key, value, scope);\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = undefined;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.remove(key, scope);\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http.patch(this.options.url, { preference: {}}, {\r\n params: {\r\n mergePreference: 'false'\r\n }\r\n }).subscribe();\r\n }\r\n\r\n let token: string;\r\n if (scope === StorageScope.LOCAL) {\r\n token = this.tokenService.get();\r\n }\r\n\r\n super.clear(scope);\r\n\r\n if (token) {\r\n this.tokenService.set(token);\r\n }\r\n\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: AuthFormComponent },\r\n { path: 'logout', component: AuthFormComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: []\r\n})\r\nexport class AuthRoutingModule {}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MsalModule } from '@azure/msal-angular';\r\n\r\nimport { StorageService, IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { AuthStorageService } from './shared/storage.service';\r\nimport { ProtectedDirective } from './shared/protected.directive';\r\nimport { AuthInterceptor } from './shared/auth.interceptor';\r\nimport { provideAuthMicrosoft } from './shared/auth-microsoft.provider';\r\n\r\nimport { AuthInternComponent } from './auth-form/auth-intern.component';\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\nimport { AuthGoogleComponent } from './auth-form/auth-google.component';\r\nimport { AuthFacebookComponent } from './auth-form/auth-facebook.component';\r\nimport { AuthMicrosoftComponent } from './auth-form/auth-microsoft.component';\r\nimport { AuthMicrosoftb2cComponent } from './auth-form/auth-microsoftb2c.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n MsalModule\r\n ],\r\n declarations: [\r\n AuthFormComponent,\r\n AuthGoogleComponent,\r\n AuthInternComponent,\r\n AuthFacebookComponent,\r\n AuthMicrosoftComponent,\r\n AuthMicrosoftb2cComponent,\r\n ProtectedDirective\r\n ],\r\n exports: [AuthFormComponent, ProtectedDirective]\r\n})\r\nexport class IgoAuthModule {\r\n static forRoot(): ModuleWithProviders<IgoAuthModule> {\r\n return {\r\n ngModule: IgoAuthModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: StorageService,\r\n useClass: AuthStorageService\r\n },\r\n ...provideAuthMicrosoft('add'),\r\n ...provideAuthMicrosoft('b2c')\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of auth\r\n */\r\n\r\nexport { AuthFormComponent } from './lib/auth-form';\r\nexport * from './lib/shared/auth.service';\r\nexport * from './lib/shared/logged.guard';\r\nexport * from './lib/shared/auth.guard';\r\nexport * from './lib/shared/admin.guard';\r\nexport * from './lib/shared/profils.guard';\r\nexport * from './lib/shared/auth.interceptor';\r\nexport * from './lib/shared/auth.interface';\r\nexport * from './lib/shared/auth-microsoft.provider';\r\nexport * from './lib/shared/protected.directive';\r\nexport * from './lib/shared/token.service';\r\nexport * from './lib/shared/storage.interface';\r\nexport * from './lib/shared/storage.service';\r\nexport * from './lib/auth-routing.module';\r\nexport * from './lib/auth.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["jwtDecode","ConfigService","Injectable","BehaviorSubject","globalCacheBusterNotifier","HttpHeaders","of","tap","catchError","Base64","Optional","EventEmitter","i0","Component","ChangeDetectionStrategy","Output","Subject","PublicClientApplication","MsalBroadcastService","filter","InteractionStatus","takeUntil","InteractionRequiredAuthError","MSAL_GUARD_CONFIG","Inject","WrapperSKU","from","MSAL_INSTANCE","EventMessageUtils","Validators","Input","NavigationStart","map","Md5","InteractionType","MsalService","Directive","StorageScope","StorageService","RouterModule","NgModule","HTTP_INTERCEPTORS","CommonModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatButtonModule","IgoLanguageModule","MsalModule"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-auth.umd.js","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.html","../../../node_modules/tslib/tslib.es6.js","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.html","../../../packages/auth/src/lib/shared/auth-msalServiceb2c.service..ts","../../../packages/auth/src/lib/shared/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.html","../../../packages/auth/src/lib/auth-form/auth-facebook.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.ts","../../../packages/auth/src/lib/auth-form/auth-form.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/auth-microsoft.provider.ts","../../../packages/auth/src/lib/shared/protected.directive.ts","../../../packages/auth/src/lib/shared/storage.service.ts","../../../packages/auth/src/lib/auth-routing.module.ts","../../../packages/auth/src/lib/auth.module.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n private options: AuthOptions;\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n set(token: string) {\r\n localStorage.setItem(this.tokenKey, token);\r\n }\r\n\r\n remove() {\r\n localStorage.removeItem(this.tokenKey);\r\n }\r\n\r\n get(): string {\r\n return localStorage.getItem(this.tokenKey);\r\n }\r\n\r\n decode() {\r\n const token = this.get();\r\n if (!token) {\r\n return;\r\n }\r\n return jwtDecode(token);\r\n }\r\n\r\n isExpired() {\r\n const jwt = this.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n if (jwt && currentTime < jwt.exp) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private get tokenKey() {\r\n const config = this.injector.get<ConfigService>(ConfigService);\r\n this.options = config.getConfig('auth') || {};\r\n return this.options.tokenKey;\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\r\n\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { Base64 } from '@igo2/utils';\r\n\r\nimport { User, IInfosUser } from './auth.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\r\n public logged$ = new BehaviorSubject<boolean>(undefined);\r\n public redirectUrl: string;\r\n private anonymous = false;\r\n\r\n get hasAuthService() {\r\n return this.config.getConfig('auth.url') !== undefined;\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private tokenService: TokenService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n @Optional() private router: Router\r\n ) {\r\n this.authenticate$.next(this.authenticated);\r\n this.authenticate$.subscribe((authenticated) => {\r\n this.logged$.next(authenticated);\r\n globalCacheBusterNotifier.next();\r\n });\r\n }\r\n\r\n login(username: string, password: string): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n username,\r\n password: this.encodePassword(password)\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginWithToken(token: string, type: string, infosUser?: IInfosUser): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n token,\r\n typeConnection: type,\r\n infosUser\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginAnonymous(): Observable<boolean> {\r\n this.anonymous = true;\r\n this.logged$.next(true);\r\n return of(true);\r\n }\r\n\r\n refresh(): Observable<void> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/refresh`, {}).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n logout(): Observable<boolean> {\r\n this.anonymous = false;\r\n this.tokenService.remove();\r\n this.authenticate$.next(false);\r\n return of(true);\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !this.tokenService.isExpired();\r\n }\r\n\r\n getToken(): string {\r\n return this.tokenService.get();\r\n }\r\n\r\n decodeToken() {\r\n if (this.isAuthenticated()) {\r\n return this.tokenService.decode();\r\n }\r\n return false;\r\n }\r\n\r\n goToRedirectUrl() {\r\n if (!this.router) {\r\n return;\r\n }\r\n const redirectUrl = this.redirectUrl || this.router.url;\r\n\r\n const options = this.config.getConfig('auth') || {};\r\n if (redirectUrl === options.loginRoute) {\r\n const homeRoute = options.homeRoute || '/';\r\n this.router.navigateByUrl(homeRoute);\r\n } else if (redirectUrl) {\r\n this.router.navigateByUrl(redirectUrl);\r\n }\r\n }\r\n\r\n getUserInfo(): Observable<User> {\r\n const url = this.config.getConfig('auth.url') + '/info';\r\n return this.http.get<User>(url);\r\n }\r\n\r\n getProfils(): Observable<{ profils: string[] }> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.get<{ profils: string[] }>(`${url}/profils`);\r\n }\r\n\r\n updateUser(user: User): Observable<User> {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.patch<User>(url, user);\r\n }\r\n\r\n private encodePassword(password: string) {\r\n return Base64.encode(password);\r\n }\r\n\r\n // authenticated or anonymous\r\n get logged(): boolean {\r\n return this.authenticated || this.isAnonymous;\r\n }\r\n\r\n get isAnonymous(): boolean {\r\n return this.anonymous;\r\n }\r\n\r\n get authenticated(): boolean {\r\n return this.isAuthenticated();\r\n }\r\n\r\n get isAdmin(): boolean {\r\n const token = this.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private loginCall(body, headers) {\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/login`, body, { headers }).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n const tokenDecoded = this.decodeToken();\r\n if (tokenDecoded && tokenDecoded.user) {\r\n if (tokenDecoded.user.locale) {\r\n this.languageService.setLanguage(tokenDecoded.user.locale);\r\n }\r\n if (tokenDecoded.user.isExpired) {\r\n this.languageService.translate\r\n .get('igo.auth.error.Password expired')\r\n .subscribe((expiredAlert) =>\r\n this.messageService.alert(expiredAlert)\r\n );\r\n }\r\n }\r\n this.authenticate$.next(true);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\nimport { AuthGoogleOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-google',\r\n templateUrl: './auth-google.component.html',\r\n styleUrls: ['./auth-google.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthGoogleComponent {\r\n private options: AuthGoogleOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.google') || {};\r\n\r\n if (this.options.apiKey && this.options.clientId) {\r\n this.loadSDKGoogle();\r\n this.loadPlatform();\r\n } else {\r\n console.warn('Google authentification needs \"apiKey\" and \"clientId\" options');\r\n }\r\n }\r\n\r\n public handleSignInClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signIn();\r\n }\r\n\r\n public handleSignOutClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signOut();\r\n }\r\n\r\n private handleClientLoad() {\r\n (window as any).gapi.load('client:auth2', () => this.initClient());\r\n }\r\n\r\n private initClient() {\r\n (window as any).gapi.client\r\n .init({\r\n apiKey: this.options.apiKey,\r\n clientId: this.options.clientId,\r\n discoveryDocs: [\r\n 'https://people.googleapis.com/$discovery/rest?version=v1'\r\n ],\r\n scope: 'profile'\r\n })\r\n .then(() => {\r\n this.handleSignOutClick();\r\n this.updateTextButton();\r\n (window as any).gapi.auth2.getAuthInstance().isSignedIn.listen(rep => {\r\n this.updateSigninStatus(rep);\r\n });\r\n });\r\n }\r\n\r\n private updateSigninStatus(isSignedIn) {\r\n this.updateTextButton();\r\n if (isSignedIn) {\r\n this.loginGoogle((window as any).gapi.client.getToken().access_token);\r\n }\r\n }\r\n\r\n private updateTextButton() {\r\n const btn = document.querySelector('span[id^=\"not_signed_\"]');\r\n if (btn && this.languageService.getLanguage() !== 'en') {\r\n if (btn.innerHTML === 'Sign in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant('igo.auth.google.login');\r\n } else if (btn.innerHTML === 'Signed in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant('igo.auth.google.logged');\r\n }\r\n }\r\n }\r\n\r\n private loginGoogle(token) {\r\n this.authService.loginWithToken(token, 'google').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKGoogle() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-jssdk';\r\n js.src = 'https://apis.google.com/js/api.js';\r\n js.onload = () => {\r\n this.handleClientLoad();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n\r\n private loadPlatform() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-platform';\r\n js.src = 'https://apis.google.com/js/platform.js';\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div class=\"g-signin2 google-login-button\" data-height=\"40\" data-width=\"265\" data-longtitle=\"true\">\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter,\r\n Inject\r\n} from '@angular/core';\r\nimport { MsalBroadcastService, MsalService, MSAL_GUARD_CONFIG} from '@azure/msal-angular';\r\nimport {\r\n InteractionStatus,\r\n AuthenticationResult,\r\n PublicClientApplication,\r\n PopupRequest,\r\n SilentRequest,\r\n InteractionRequiredAuthError\r\n} from '@azure/msal-browser';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthMicrosoftOptions, MSPMsalGuardConfiguration } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoft',\r\n templateUrl: './auth-microsoft.component.html',\r\n styleUrls: ['./auth-microsoft.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftComponent {\r\n private options: AuthMicrosoftOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastService;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MSPMsalGuardConfiguration[],\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoft') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastService(this.msalService.instance, this.msalService);\r\n\r\n if (this.options.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoft() {\r\n this.msalService.loginPopup({...this.getConf().authRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const tokenAccess = response.accessToken;\r\n const tokenId = response.idToken;\r\n this.authService.loginWithToken(tokenAccess, 'microsoft', { tokenId } ).subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(this.getConf().authRequest as SilentRequest);\r\n }\r\n console.log(error);\r\n }).catch(error => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter(conf => conf.type === 'add')[0];\r\n }\r\n}\r\n","<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoft()\">\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{'igo.auth.microsoft.login' | translate}}\r\n</button>\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport {\r\n IPublicClientApplication,\r\n EndSessionRequest,\r\n EndSessionPopupRequest,\r\n AuthenticationResult,\r\n RedirectRequest,\r\n SilentRequest,\r\n PopupRequest,\r\n SsoSilentRequest,\r\n Logger,\r\n WrapperSKU\r\n} from '@azure/msal-browser';\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { Observable, from } from 'rxjs';\r\nimport { IMsalService } from '@azure/msal-angular';\r\n\r\n@Injectable()\r\nexport class MsalServiceb2c implements IMsalService {\r\n private redirectHash: string;\r\n private logger: Logger;\r\n private name = '@azure/msal-angular';\r\n private version = '2.0.0-beta.2';\r\n constructor(\r\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\r\n private location: Location\r\n ) {\r\n const hash = this.location.path(true).split('#').pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\r\n }\r\n\r\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(silentRequest: SilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request?: RedirectRequest): Observable<void> {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger(): Logger {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(this.name, this.version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger: Logger): void {\r\n this.logger = logger.clone(this.name, this.version);\r\n this.instance.setLogger(logger);\r\n }\r\n\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { EventMessage, EventMessageUtils, IPublicClientApplication, InteractionStatus } from '@azure/msal-browser';\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\n@Injectable()\r\nexport class MsalBroadcastServiceb2c {\r\n private _msalSubject: Subject<EventMessage>;\r\n public msalSubject$: Observable<EventMessage>;\r\n private _inProgress: BehaviorSubject<InteractionStatus>;\r\n public inProgress$: Observable<InteractionStatus>;\r\n\r\n constructor(\r\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\r\n private authService: MsalServiceb2c\r\n ) {\r\n this._msalSubject = new Subject<EventMessage>();\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject<InteractionStatus>(InteractionStatus.Startup);\r\n this.inProgress$ = this._inProgress.asObservable();\r\n\r\n this.msalInstance.addEventCallback((message: EventMessage) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\r\n if (status !== null) {\r\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress to ${status}`);\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter,\r\n Inject\r\n} from '@angular/core';\r\n\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport {\r\n InteractionStatus,\r\n AuthenticationResult,\r\n PublicClientApplication,\r\n PopupRequest,\r\n SilentRequest,\r\n InteractionRequiredAuthError\r\n} from '@azure/msal-browser';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthMicrosoftb2cOptions, MSPMsalGuardConfiguration } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';\r\nimport { MsalServiceb2c } from '../shared/auth-msalServiceb2c.service.';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoftb2c',\r\n templateUrl: './auth-microsoftb2c.component.html',\r\n styleUrls: ['./auth-microsoftb2c.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftb2cComponent {\r\n private options: AuthMicrosoftb2cOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastServiceb2c;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalServiceb2c,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MSPMsalGuardConfiguration[],\r\n ) {\r\n\r\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options.browserAuthOptions,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastServiceb2c(this.msalService.instance, this.msalService);\r\n\r\n if (this.options.browserAuthOptions.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoftb2c() {\r\n this.msalService.loginPopup({...this.getConf().authRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const token = response.idToken;\r\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(this.getConf().authRequest as SilentRequest);\r\n }\r\n }).catch(error => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter(conf => conf.type === 'b2c')[0];\r\n }\r\n}\r\n","<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoftb2c()\">\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{'igo.auth.microsoftb2c.login' | translate}}\r\n</button>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ApplicationRef,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthFacebookOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-facebook',\r\n templateUrl: './auth-facebook.component.html',\r\n styleUrls: ['./auth-facebook.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthFacebookComponent {\r\n private options: AuthFacebookOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.facebook') || {};\r\n\r\n if (this.options.appId) {\r\n this.loadSDKFacebook();\r\n } else {\r\n console.warn('Facebook authentification needs \"appId\" option');\r\n }\r\n }\r\n\r\n private subscribeEvents() {\r\n (window as any).FB.Event.subscribe('auth.statusChange', rep => {\r\n this.statusChangeCallback(rep);\r\n });\r\n }\r\n\r\n private statusChangeCallback(response) {\r\n if (response.status === 'connected') {\r\n const accessToken = response.authResponse.accessToken;\r\n this.loginFacebook(accessToken);\r\n }\r\n }\r\n\r\n private loginFacebook(token) {\r\n this.authService.loginWithToken(token, 'facebook').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKFacebook() {\r\n if (document.getElementById('facebook-jssdk')) {\r\n return;\r\n }\r\n\r\n const urlSDK =\r\n 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';\r\n\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'facebook-jssdk';\r\n js.src = `${urlSDK}&appId=${this.options.appId}`;\r\n js.onload = () => {\r\n this.subscribeEvents();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div scope=\"public_profile,email\"\r\n class=\"fb-login-button\" data-max-rows=\"1\" data-size=\"large\"\r\n data-button-type=\"login_with\" data-show-faces=\"false\"\r\n data-auto-logout-link=\"false\" data-use-continue-as=\"false\">\r\n</div>\r\n","<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required placeholder=\"{{'igo.auth.user' | translate}}\" formControlName=\"username\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required type=\"password\" placeholder=\"{{'igo.auth.password' | translate}}\" formControlName=\"password\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <button mat-raised-button type=\"submit\">{{'igo.auth.login' | translate}}</button>\r\n <button *ngIf=\"allowAnonymous\" mat-raised-button class=\"anonymous\" type=\"button\" [disabled]=\"loading\" (click)=\"loginAnonymous()\">\r\n {{'igo.auth.accessAnonymous' | translate }}\r\n </button>\r\n <div *ngIf=\"error\">\r\n <br/>\r\n <font size=\"3\" color=\"red\">{{error}}</font>\r\n </div>\r\n</form>\r\n\r\n<!--\r\nThis part was removed from the below line to fix Angular issue 30616 : [disabled]=\"!form.valid || loading\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid || loading\">{{'igo.auth.login' | translate}}</button>*/\r\n-->\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { AuthService } from '../shared/auth.service';\r\nimport { LanguageService } from '@igo2/core';\r\n\r\n@Component({\r\n selector: 'igo-auth-intern',\r\n templateUrl: './auth-intern.component.html',\r\n styleUrls: ['./auth-intern.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthInternComponent {\r\n @Input()\r\n get allowAnonymous(): boolean {\r\n return this._allowAnonymous;\r\n }\r\n set allowAnonymous(value: boolean) {\r\n this._allowAnonymous = value;\r\n }\r\n private _allowAnonymous = true;\r\n\r\n public error = '';\r\n public form: FormGroup;\r\n public loading = false;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private languageService: LanguageService,\r\n fb: FormBuilder\r\n ) {\r\n this.form = fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n }\r\n\r\n loginUser(values: any) {\r\n this.loading = true;\r\n this.auth.login(values.username, values.password).subscribe(\r\n () => {\r\n this.login.emit(true);\r\n this.loading = false;\r\n },\r\n (error: any) => {\r\n try {\r\n this.languageService.translate\r\n .get('igo.auth.error.' + error.error.message)\r\n .subscribe(errorMsg => (this.error = errorMsg));\r\n } catch (e) {\r\n this.error = error.error.message;\r\n }\r\n this.loading = false;\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n loginAnonymous() {\r\n this.auth.loginAnonymous().subscribe(() => {\r\n this.login.emit(true);\r\n });\r\n }\r\n}\r\n","<div *ngIf=\"visible\">\r\n <div *ngIf=\"!auth.logged && backgroundDisable\" class=\"backgroundDisable\"></div>\r\n\r\n <div *ngIf=\"!auth.logged && showLoginDiv\" class=\"login center-block\">\r\n <h1>{{'igo.auth.connection' | translate}}</h1>\r\n\r\n <igo-auth-google\r\n *ngIf=\"options.google && options.google.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-google>\r\n <igo-auth-microsoft\r\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-microsoft>\r\n <igo-auth-microsoftb2c\r\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-microsoftb2c>\r\n <igo-auth-facebook\r\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-facebook>\r\n <igo-auth-intern\r\n *ngIf=\"!options.intern || options.intern.enabled !== false\"\r\n [allowAnonymous]=\"options.allowAnonymous\"\r\n (login)=\"onLogin()\">\r\n </igo-auth-intern>\r\n </div>\r\n\r\n <div *ngIf=\"auth.logged && showAlreadyConnectedDiv\" class=\"login center-block\">\r\n <p>{{'igo.auth.welcome' | translate: user}}</p>\r\n <button mat-raised-button type=\"button\" (click)=\"logout()\">{{'igo.auth.signOut' | translate}}</button>\r\n </div>\r\n\r\n <div *ngIf=\"showLogoutDiv\" class=\"login center-block\">\r\n <p>{{'igo.auth.deconnection' | translate}}</p>\r\n <button *ngIf=\"options.homeRoute\" mat-raised-button type=\"button\" (click)=\"home()\">{{'igo.auth.home' | translate}}</button>\r\n </div>\r\n\r\n</div>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n Input,\r\n Optional,\r\n Output,\r\n EventEmitter\r\n} from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-form',\r\n templateUrl: './auth-form.component.html',\r\n styleUrls: ['./auth-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthFormComponent implements OnInit {\r\n @Input()\r\n get backgroundDisable(): boolean {\r\n if (this.isLogoutRoute || this.isLogoutRoute) {\r\n return false;\r\n }\r\n return this._backgroundDisable;\r\n }\r\n set backgroundDisable(value: boolean) {\r\n this._backgroundDisable = value.toString() === 'true';\r\n }\r\n private _backgroundDisable = true;\r\n\r\n @Input()\r\n get hasAlreadyConnectedDiv(): boolean {\r\n return this._hasAlreadyConnectedDiv;\r\n }\r\n set hasAlreadyConnectedDiv(value: boolean) {\r\n this._hasAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _hasAlreadyConnectedDiv = true;\r\n\r\n @Input()\r\n get hasLogoutDiv(): boolean {\r\n return this._hasLogoutDiv;\r\n }\r\n set hasLogoutDiv(value: boolean) {\r\n this._hasLogoutDiv = value.toString() === 'true';\r\n }\r\n private _hasLogoutDiv = true;\r\n\r\n @Input()\r\n get showAlreadyConnectedDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasAlreadyConnectedDiv;\r\n }\r\n return this._showAlreadyConnectedDiv;\r\n }\r\n set showAlreadyConnectedDiv(value: boolean) {\r\n this._showAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _showAlreadyConnectedDiv = false;\r\n\r\n @Input()\r\n get showLogoutDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasLogoutDiv;\r\n }\r\n return this._showLogoutDiv;\r\n }\r\n set showLogoutDiv(value: boolean) {\r\n this._showLogoutDiv = value.toString() === 'true';\r\n }\r\n private _showLogoutDiv = false;\r\n\r\n get showLoginDiv(): boolean {\r\n if (!this.isLogoutRoute) {\r\n return true;\r\n }\r\n }\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public options: AuthOptions;\r\n public user;\r\n\r\n public visible = true;\r\n\r\n private isLoginRoute: boolean;\r\n private isLogoutRoute: boolean;\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private config: ConfigService,\r\n @Optional() private router: Router\r\n ) {\r\n this.options = this.config.getConfig('auth') || {};\r\n this.visible = Object.getOwnPropertyNames(this.options).length !== 0;\r\n }\r\n\r\n public ngOnInit() {\r\n this.analyzeRoute();\r\n this.getName();\r\n }\r\n\r\n public onLogin() {\r\n this.auth.goToRedirectUrl();\r\n this.getName();\r\n this.login.emit(true);\r\n }\r\n\r\n public logout() {\r\n this.auth.logout().subscribe(() => {\r\n this.user = undefined;\r\n if (this.router) {\r\n if (this.options.logoutRoute) {\r\n this.router.navigate([this.options.logoutRoute]);\r\n } else if (this.options.homeRoute) {\r\n this.router.navigate([this.options.homeRoute]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public home() {\r\n if (this.router && this.options.homeRoute) {\r\n this.router.navigate([this.options.homeRoute]);\r\n }\r\n }\r\n\r\n private getName() {\r\n const tokenDecoded = this.auth.decodeToken();\r\n if (tokenDecoded) {\r\n this.user = {\r\n name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId\r\n };\r\n }\r\n }\r\n\r\n private analyzeRoute() {\r\n if (!this.router) {\r\n return;\r\n }\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationStart))\r\n .subscribe((changeEvent: any) => {\r\n if (changeEvent.url) {\r\n const currentRoute = changeEvent.url;\r\n const logoutRoute = this.options.logoutRoute;\r\n const loginRoute = this.options.loginRoute;\r\n\r\n this.isLogoutRoute = currentRoute === logoutRoute;\r\n this.isLoginRoute = currentRoute === loginRoute;\r\n\r\n if (this.isLogoutRoute) {\r\n this.auth.logout();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggedGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.logged) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.authenticated) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const token = this.authService.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth');\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfilsGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.authService.getProfils().pipe(\r\n map((profils: { profils: string[] }) => {\r\n const authConfig = this.config.getConfig('auth');\r\n if (\r\n profils &&\r\n profils.profils &&\r\n profils.profils.some(v => authConfig.profilsGuard.indexOf(v) !== -1)\r\n ) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n if (authConfig && authConfig.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Md5 } from 'ts-md5';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\nimport { TokenService } from './token.service';\r\nimport { AuthByKeyOptions, WithCredentialsOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private refreshInProgress = false;\r\n\r\n private get trustHosts() {\r\n const trustHosts = this.config.getConfig('auth.trustHosts') || [];\r\n trustHosts.push(window.location.hostname);\r\n return trustHosts;\r\n }\r\n\r\n private get hostsWithCredentials(): WithCredentialsOptions[] {\r\n return this.config.getConfig('auth.hostsWithCredentials') || [];\r\n }\r\n\r\n private get hostsWithAuthByKey(): AuthByKeyOptions[] {\r\n return this.config.getConfig('auth.hostsByKey') || [];\r\n }\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private tokenService: TokenService,\r\n private http: HttpClient\r\n ) {}\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\r\n let req = originalReq.clone();\r\n const hostWithKey = this.handleHostsAuthByKey(originalReq.url);\r\n if (hostWithKey) {\r\n req = req.clone({\r\n params: req.params.set(hostWithKey.key, hostWithKey.value)\r\n });\r\n }\r\n if (withCredentials) {\r\n req = originalReq.clone({\r\n withCredentials\r\n });\r\n }\r\n this.refreshToken();\r\n const token = this.tokenService.get();\r\n const element = document.createElement('a');\r\n element.href = req.url;\r\n if (element.host === '') {\r\n element.href = element.href; // FIX IE11, DO NOT REMOVE\r\n }\r\n\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return next.handle(req);\r\n }\r\n\r\n const authHeader = `Bearer ${token}`;\r\n let authReq = req.clone({\r\n headers: req.headers.set('Authorization', authHeader)\r\n });\r\n\r\n const tokenDecoded: any = this.tokenService.decode();\r\n if (\r\n authReq.params.get('_i') === 'true' &&\r\n tokenDecoded &&\r\n tokenDecoded.user &&\r\n tokenDecoded.user.sourceId\r\n ) {\r\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\r\n authReq = authReq.clone({\r\n params: authReq.params.set('_i', hashUser)\r\n });\r\n } else if (authReq.params.get('_i') === 'true') {\r\n authReq = authReq.clone({\r\n params: authReq.params.delete('_i')\r\n });\r\n }\r\n\r\n return next.handle(authReq);\r\n }\r\n\r\n interceptXhr(xhr, url: string): boolean {\r\n const withCredentials = this.handleHostsWithCredentials(url);\r\n if (withCredentials) {\r\n xhr.withCredentials = withCredentials;\r\n return true;\r\n }\r\n\r\n this.refreshToken();\r\n const element = document.createElement('a');\r\n element.href = url;\r\n\r\n const token = this.tokenService.get();\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return false;\r\n }\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n return true;\r\n }\r\n\r\n alterUrlWithKeyAuth(url: string): string {\r\n const hostWithKey = this.handleHostsAuthByKey(url);\r\n let interceptedUrl = url;\r\n if (hostWithKey) {\r\n const urlDecomposed = interceptedUrl.split(/[?&]/);\r\n let urlWithKeyAdded = urlDecomposed.shift();\r\n const paramsToKeep = urlDecomposed.filter(p => p.length !== 0);\r\n paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);\r\n if (paramsToKeep.length) {\r\n urlWithKeyAdded += '?' + paramsToKeep.join('&');\r\n }\r\n return urlWithKeyAdded;\r\n }\r\n return;\r\n }\r\n\r\n private handleHostsWithCredentials(reqUrl: string) {\r\n let withCredentials = false;\r\n for (const hostWithCredentials of this.hostsWithCredentials) {\r\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n withCredentials = hostWithCredentials.withCredentials !== undefined ? hostWithCredentials.withCredentials : undefined;\r\n break;\r\n }\r\n }\r\n return withCredentials;\r\n }\r\n\r\n private handleHostsAuthByKey(reqUrl: string): {key: string, value: string} {\r\n let hostWithKey;\r\n for (const hostWithAuthByKey of this.hostsWithAuthByKey) {\r\n const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;\r\n var keyAdded = new RegExp(replace,\"gm\");\r\n if (!keyAdded.test(reqUrl)) {\r\n hostWithKey = {key : hostWithAuthByKey.keyProperty, value: hostWithAuthByKey.keyValue};\r\n break;\r\n }\r\n }\r\n }\r\n return hostWithKey;\r\n }\r\n\r\n refreshToken() {\r\n const jwt = this.tokenService.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n\r\n if (\r\n !this.refreshInProgress &&\r\n jwt &&\r\n currentTime < jwt.exp &&\r\n currentTime > jwt.exp - 1800\r\n ) {\r\n this.refreshInProgress = true;\r\n\r\n const url = this.config.getConfig('auth.url');\r\n return this.http.post(`${url}/refresh`, {}).subscribe(\r\n (data: any) => {\r\n this.tokenService.set(data.token);\r\n this.refreshInProgress = false;\r\n },\r\n err => {\r\n err.error.caught = true;\r\n return err;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","import {\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INSTANCE,\r\n MsalService,\r\n} from '@azure/msal-angular';\r\n\r\nimport {\r\n PublicClientApplication,\r\n InteractionType\r\n} from '@azure/msal-browser';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { BrowserAuthOptions } from '@azure/msal-browser';\r\n\r\nimport { AuthMicrosoftOptions, MSPMsalGuardConfiguration } from './auth.interface';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\nexport function MSALConfigFactory(config: ConfigService): PublicClientApplication {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoft') || {};\r\n\r\n msConf.redirectUri = msConf.redirectUri || window.location.href;\r\n msConf.authority = msConf.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALConfigFactoryb2c(config: ConfigService): PublicClientApplication {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoftb2c.browserAuthOptions') || {};\r\n msConf.redirectUri = msConf.redirectUri || window.location.href;\r\n msConf.authority = msConf.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALAngularConfigFactory(config: ConfigService): MSPMsalGuardConfiguration {\r\n\r\n const msConf: AuthMicrosoftOptions = config.getConfig('auth.microsoft') || {};\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: ['user.read'],\r\n loginHint: 'todo',\r\n },\r\n type: 'add'\r\n };\r\n}\r\n\r\nexport function MSALAngularConfigFactoryb2c(config: ConfigService): MSPMsalGuardConfiguration {\r\n\r\n const msConf: BrowserAuthOptions = config.getConfig('auth.microsoftb2c.browserAuthOptions') || {};\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [msConf.clientId]\r\n },\r\n type: 'b2c'\r\n };\r\n}\r\n\r\nexport function provideAuthMicrosoft(type?: string) {\r\n if (type === 'b2c') {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactoryb2c,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactoryb2c,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalServiceb2c\r\n ];\r\n } else {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactory,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactory,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalService\r\n ];\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Directive({\r\n selector: '[igoProtected]'\r\n})\r\nexport class ProtectedDirective {\r\n constructor(authentication: AuthService, el: ElementRef) {\r\n if (!authentication.isAuthenticated()) {\r\n el.nativeElement.parentNode.removeChild(el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { AuthService } from './auth.service';\r\nimport { TokenService } from './token.service';\r\nimport { AuthStorageOptions } from './storage.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthStorageService extends StorageService {\r\n protected options: AuthStorageOptions;\r\n\r\n constructor(\r\n config: ConfigService,\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {\r\n super(config);\r\n\r\n this.authService.authenticate$.subscribe(isAuthenticated => {\r\n if (isAuthenticated && this.options.url) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = value;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.set(key, value, scope);\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = undefined;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.remove(key, scope);\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http.patch(this.options.url, { preference: {}}, {\r\n params: {\r\n mergePreference: 'false'\r\n }\r\n }).subscribe();\r\n }\r\n\r\n let token: string;\r\n if (scope === StorageScope.LOCAL) {\r\n token = this.tokenService.get();\r\n }\r\n\r\n super.clear(scope);\r\n\r\n if (token) {\r\n this.tokenService.set(token);\r\n }\r\n\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: AuthFormComponent },\r\n { path: 'logout', component: AuthFormComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: []\r\n})\r\nexport class AuthRoutingModule {}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MsalModule } from '@azure/msal-angular';\r\n\r\nimport { StorageService, IgoLanguageModule } from '@igo2/core';\r\n\r\nimport { AuthStorageService } from './shared/storage.service';\r\nimport { ProtectedDirective } from './shared/protected.directive';\r\nimport { AuthInterceptor } from './shared/auth.interceptor';\r\nimport { provideAuthMicrosoft } from './shared/auth-microsoft.provider';\r\n\r\nimport { AuthInternComponent } from './auth-form/auth-intern.component';\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\nimport { AuthGoogleComponent } from './auth-form/auth-google.component';\r\nimport { AuthFacebookComponent } from './auth-form/auth-facebook.component';\r\nimport { AuthMicrosoftComponent } from './auth-form/auth-microsoft.component';\r\nimport { AuthMicrosoftb2cComponent } from './auth-form/auth-microsoftb2c.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n MsalModule\r\n ],\r\n declarations: [\r\n AuthFormComponent,\r\n AuthGoogleComponent,\r\n AuthInternComponent,\r\n AuthFacebookComponent,\r\n AuthMicrosoftComponent,\r\n AuthMicrosoftb2cComponent,\r\n ProtectedDirective\r\n ],\r\n exports: [AuthFormComponent, ProtectedDirective]\r\n})\r\nexport class IgoAuthModule {\r\n static forRoot(): ModuleWithProviders<IgoAuthModule> {\r\n return {\r\n ngModule: IgoAuthModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: StorageService,\r\n useClass: AuthStorageService\r\n },\r\n ...provideAuthMicrosoft('add'),\r\n ...provideAuthMicrosoft('b2c')\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of auth\r\n */\r\n\r\nexport { AuthFormComponent } from './lib/auth-form';\r\nexport * from './lib/shared/auth.service';\r\nexport * from './lib/shared/logged.guard';\r\nexport * from './lib/shared/auth.guard';\r\nexport * from './lib/shared/admin.guard';\r\nexport * from './lib/shared/profils.guard';\r\nexport * from './lib/shared/auth.interceptor';\r\nexport * from './lib/shared/auth.interface';\r\nexport * from './lib/shared/auth-microsoft.provider';\r\nexport * from './lib/shared/protected.directive';\r\nexport * from './lib/shared/token.service';\r\nexport * from './lib/shared/storage.interface';\r\nexport * from './lib/shared/storage.service';\r\nexport * from './lib/auth-routing.module';\r\nexport * from './lib/auth.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["jwtDecode","ConfigService","Injectable","BehaviorSubject","globalCacheBusterNotifier","HttpHeaders","of","tap","catchError","Base64","Optional","EventEmitter","i0","Component","ChangeDetectionStrategy","Output","Subject","PublicClientApplication","MsalBroadcastService","filter","InteractionStatus","takeUntil","InteractionRequiredAuthError","MSAL_GUARD_CONFIG","Inject","WrapperSKU","from","MSAL_INSTANCE","EventMessageUtils","Validators","Input","NavigationStart","map","Md5","InteractionType","MsalService","Directive","StorageScope","StorageService","RouterModule","NgModule","HTTP_INTERCEPTORS","CommonModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatIconModule","MatButtonModule","IgoLanguageModule","MsalModule"],"mappings":"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"}