@igo2/auth 1.15.3 → 1.15.5

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.
Files changed (55) hide show
  1. package/esm2020/igo2-auth.mjs +4 -4
  2. package/esm2020/lib/auth-form/auth-facebook.component.mjs +61 -61
  3. package/esm2020/lib/auth-form/auth-form.component.mjs +277 -277
  4. package/esm2020/lib/auth-form/auth-google.component.mjs +99 -99
  5. package/esm2020/lib/auth-form/auth-intern.component.mjs +119 -119
  6. package/esm2020/lib/auth-form/auth-microsoft.component.mjs +94 -94
  7. package/esm2020/lib/auth-form/auth-microsoftb2c.component.mjs +93 -93
  8. package/esm2020/lib/auth-form/index.mjs +5 -5
  9. package/esm2020/lib/auth-routing.module.mjs +24 -24
  10. package/esm2020/lib/auth.module.mjs +91 -91
  11. package/esm2020/lib/shared/admin.guard.mjs +33 -33
  12. package/esm2020/lib/shared/auth-microsoft.provider.mjs +84 -84
  13. package/esm2020/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +38 -38
  14. package/esm2020/lib/shared/auth-msalServiceb2c.service..mjs +80 -80
  15. package/esm2020/lib/shared/auth.guard.mjs +32 -32
  16. package/esm2020/lib/shared/auth.interceptor.mjs +155 -155
  17. package/esm2020/lib/shared/auth.interface.mjs +2 -2
  18. package/esm2020/lib/shared/auth.service.mjs +158 -158
  19. package/esm2020/lib/shared/logged.guard.mjs +32 -32
  20. package/esm2020/lib/shared/profils.guard.mjs +37 -37
  21. package/esm2020/lib/shared/protected.directive.mjs +19 -19
  22. package/esm2020/lib/shared/storage.interface.mjs +2 -2
  23. package/esm2020/lib/shared/storage.service.mjs +91 -91
  24. package/esm2020/lib/shared/token.service.mjs +47 -47
  25. package/esm2020/public_api.mjs +19 -19
  26. package/fesm2015/igo2-auth.mjs +1577 -1577
  27. package/fesm2015/igo2-auth.mjs.map +1 -1
  28. package/fesm2020/igo2-auth.mjs +1475 -1475
  29. package/fesm2020/igo2-auth.mjs.map +1 -1
  30. package/index.d.ts +5 -5
  31. package/lib/auth-form/auth-facebook.component.d.ts +18 -18
  32. package/lib/auth-form/auth-form.component.d.ts +42 -42
  33. package/lib/auth-form/auth-google.component.d.ts +24 -24
  34. package/lib/auth-form/auth-intern.component.d.ts +21 -21
  35. package/lib/auth-form/auth-microsoft.component.d.ts +23 -23
  36. package/lib/auth-form/auth-microsoftb2c.component.d.ts +23 -23
  37. package/lib/auth-form/index.d.ts +4 -4
  38. package/lib/auth-routing.module.d.ts +7 -7
  39. package/lib/auth.module.d.ts +23 -23
  40. package/lib/shared/admin.guard.d.ts +13 -13
  41. package/lib/shared/auth-microsoft.provider.d.ts +30 -30
  42. package/lib/shared/auth-msalBroadcastServiceb2c.service.d.ts +15 -15
  43. package/lib/shared/auth-msalServiceb2c.service..d.ts +33 -33
  44. package/lib/shared/auth.guard.d.ts +13 -13
  45. package/lib/shared/auth.interceptor.d.ts +24 -24
  46. package/lib/shared/auth.interface.d.ts +99 -99
  47. package/lib/shared/auth.service.d.ts +44 -44
  48. package/lib/shared/logged.guard.d.ts +13 -13
  49. package/lib/shared/profils.guard.d.ts +13 -13
  50. package/lib/shared/protected.directive.d.ts +8 -8
  51. package/lib/shared/storage.interface.d.ts +4 -4
  52. package/lib/shared/storage.service.d.ts +18 -18
  53. package/lib/shared/token.service.d.ts +15 -15
  54. package/package.json +3 -3
  55. package/public_api.d.ts +15 -15
@@ -1,94 +1,94 @@
1
- import { Component, ChangeDetectionStrategy, Output, EventEmitter, Inject } from '@angular/core';
2
- import { MsalBroadcastService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';
3
- import { InteractionStatus, PublicClientApplication, InteractionRequiredAuthError } from '@azure/msal-browser';
4
- import { filter, takeUntil } from 'rxjs/operators';
5
- import { Subject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../shared/auth.service";
8
- import * as i2 from "@igo2/core";
9
- import * as i3 from "@azure/msal-angular";
10
- import * as i4 from "@angular/material/icon";
11
- import * as i5 from "@angular/material/button";
12
- import * as i6 from "@ngx-translate/core";
13
- export class AuthMicrosoftComponent {
14
- constructor(authService, config, appRef, msalService, msalGuardConfig) {
15
- this.authService = authService;
16
- this.config = config;
17
- this.appRef = appRef;
18
- this.msalService = msalService;
19
- this.msalGuardConfig = msalGuardConfig;
20
- this._destroying$ = new Subject();
21
- this.login = new EventEmitter();
22
- this.options = this.config.getConfig('auth.microsoft') || {};
23
- this.msalService.instance = new PublicClientApplication({
24
- auth: this.options,
25
- cache: {
26
- cacheLocation: 'sessionStorage'
27
- }
28
- });
29
- this.broadcastService = new MsalBroadcastService(this.msalService.instance, this.msalService);
30
- if (this.options.clientId) {
31
- this.broadcastService.inProgress$
32
- .pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
33
- .subscribe(() => {
34
- this.checkAccount();
35
- });
36
- }
37
- else {
38
- console.warn('Microsoft authentification needs "clientId" option');
39
- }
40
- }
41
- loginMicrosoft() {
42
- this.msalService.loginPopup({ ...this.getConf().authRequest })
43
- .subscribe((response) => {
44
- this.msalService.instance.setActiveAccount(response.account);
45
- this.checkAccount();
46
- });
47
- }
48
- checkAccount() {
49
- this.msalService.instance
50
- .acquireTokenSilent(this.getConf().authRequest)
51
- .then((response) => {
52
- const tokenAccess = response.accessToken;
53
- const tokenId = response.idToken;
54
- this.authService.loginWithToken(tokenAccess, 'microsoft', { tokenId }).subscribe(() => {
55
- this.appRef.tick();
56
- this.login.emit(true);
57
- });
58
- })
59
- .catch(async (error) => {
60
- if (error instanceof InteractionRequiredAuthError) {
61
- // fallback to interaction when silent call fails
62
- return this.msalService.acquireTokenPopup(this.getConf().authRequest);
63
- }
64
- console.log(error);
65
- }).catch(error => {
66
- console.log('Silent token fails');
67
- });
68
- }
69
- getConf() {
70
- return this.msalGuardConfig.filter(conf => conf.type === 'add')[0];
71
- }
72
- }
73
- AuthMicrosoftComponent.ɵfac = function AuthMicrosoftComponent_Factory(t) { return new (t || AuthMicrosoftComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i3.MsalService), i0.ɵɵdirectiveInject(MSAL_GUARD_CONFIG)); };
74
- AuthMicrosoftComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthMicrosoftComponent, selectors: [["igo-auth-microsoft"]], outputs: { login: "login" }, decls: 4, vars: 3, consts: [["mat-raised-button", "", 1, "microsoft-login-button", 3, "click"], ["svgIcon", "microsoft"]], template: function AuthMicrosoftComponent_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelementStart(0, "button", 0);
76
- i0.ɵɵlistener("click", function AuthMicrosoftComponent_Template_button_click_0_listener() { return ctx.loginMicrosoft(); });
77
- i0.ɵɵelement(1, "mat-icon", 1);
78
- i0.ɵɵtext(2);
79
- i0.ɵɵpipe(3, "translate");
80
- i0.ɵɵelementEnd();
81
- } if (rf & 2) {
82
- i0.ɵɵadvance(2);
83
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "igo.auth.microsoft.login"), "\n");
84
- } }, dependencies: [i4.MatIcon, i5.MatButton, i6.TranslatePipe], styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}[_nghost-%COMP%] > button[_ngcontent-%COMP%]{font-size:15px;height:40px;width:265px}mat-icon[_ngcontent-%COMP%]{margin-right:10px}"], changeDetection: 0 });
85
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthMicrosoftComponent, [{
86
- type: Component,
87
- args: [{ selector: 'igo-auth-microsoft', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"] }]
88
- }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }, { type: i3.MsalService }, { type: undefined, decorators: [{
89
- type: Inject,
90
- args: [MSAL_GUARD_CONFIG]
91
- }] }]; }, { login: [{
92
- type: Output
93
- }] }); })();
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtbWljcm9zb2Z0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBZSxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFRL0IsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQXNCLEVBQ3RCLFdBQXdCLEVBQ0csZUFBNEM7UUFKdkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNHLG9CQUFlLEdBQWYsZUFBZSxDQUE2QjtRQVRoRSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDMUMsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBVW5FLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQztZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbEIsS0FBSyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxnQkFBZ0I7YUFDaEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFOUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVztpQkFDaEMsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLE1BQXlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFDeEUsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7U0FFSjthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQWlCLENBQUM7YUFDM0UsU0FBUyxDQUFDLENBQUMsUUFBOEIsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7YUFDdEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQTRCLENBQUM7YUFDL0QsSUFBSSxDQUFDLENBQUMsUUFBOEIsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNyRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLFlBQVksNEJBQTRCLEVBQUU7Z0JBQ2pELGlEQUFpRDtnQkFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUE0QixDQUFDLENBQUM7YUFDeEY7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7NEZBdkVVLHNCQUFzQixvTEFXdkIsaUJBQWlCO3lFQVhoQixzQkFBc0I7UUM3Qm5DLGlDQUFvRjtRQUEzQixtR0FBUyxvQkFBZ0IsSUFBQztRQUNqRiw4QkFBeUM7UUFDekMsWUFDRjs7UUFBQSxpQkFBUzs7UUFEUCxlQUNGO1FBREUsa0ZBQ0Y7O3VGRDBCYSxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs7c0JBYTVDLE1BQU07dUJBQUMsaUJBQWlCO3dCQVJqQixLQUFLO2tCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbFNlcnZpY2UsIE1TQUxfR1VBUkRfQ09ORklHfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBJbnRlcmFjdGlvblN0YXR1cyxcclxuICBBdXRoZW50aWNhdGlvblJlc3VsdCxcclxuICBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbixcclxuICBQb3B1cFJlcXVlc3QsXHJcbiAgU2lsZW50UmVxdWVzdCxcclxuICBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yXHJcbn0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgQXV0aE1pY3Jvc29mdE9wdGlvbnMsIE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tYXV0aC1taWNyb3NvZnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC1taWNyb3NvZnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aE1pY3Jvc29mdENvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBBdXRoTWljcm9zb2Z0T3B0aW9ucztcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95aW5nJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGxvZ2luOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlOiBNc2FsQnJvYWRjYXN0U2VydmljZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKSBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbltdLFxyXG4gICkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLm1pY3Jvc29mdCcpIHx8IHt9O1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UgPSBuZXcgUHVibGljQ2xpZW50QXBwbGljYXRpb24oe1xyXG4gICAgICBhdXRoOiB0aGlzLm9wdGlvbnMsXHJcbiAgICAgIGNhY2hlOiB7XHJcbiAgICAgICAgY2FjaGVMb2NhdGlvbjogJ3Nlc3Npb25TdG9yYWdlJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UgPSBuZXcgTXNhbEJyb2FkY2FzdFNlcnZpY2UodGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSwgdGhpcy5tc2FsU2VydmljZSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jbGllbnRJZCkge1xyXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChzdGF0dXM6IEludGVyYWN0aW9uU3RhdHVzKSA9PiBzdGF0dXMgPT09IEludGVyYWN0aW9uU3RhdHVzLk5vbmUpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95aW5nJClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrQWNjb3VudCgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ01pY3Jvc29mdCBhdXRoZW50aWZpY2F0aW9uIG5lZWRzIFwiY2xpZW50SWRcIiBvcHRpb24nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dpbk1pY3Jvc29mdCgpIHtcclxuICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh7Li4udGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3R9IGFzIFBvcHVwUmVxdWVzdClcclxuICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XHJcbiAgICAgIHRoaXMuY2hlY2tBY2NvdW50KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tBY2NvdW50KCkge1xyXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZVxyXG4gICAgICAuYWNxdWlyZVRva2VuU2lsZW50KHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpXHJcbiAgICAgIC50aGVuKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICBjb25zdCB0b2tlbkFjY2VzcyA9IHJlc3BvbnNlLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgIGNvbnN0IHRva2VuSWQgPSByZXNwb25zZS5pZFRva2VuO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW5XaXRoVG9rZW4odG9rZW5BY2Nlc3MsICdtaWNyb3NvZnQnLCB7IHRva2VuSWQgfSApLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XHJcbiAgICAgICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyb3IpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yKSB7XHJcbiAgICAgICAgICAvLyBmYWxsYmFjayB0byBpbnRlcmFjdGlvbiB3aGVuIHNpbGVudCBjYWxsIGZhaWxzXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tc2FsU2VydmljZS5hY3F1aXJlVG9rZW5Qb3B1cCh0aGlzLmdldENvbmYoKS5hdXRoUmVxdWVzdCBhcyBTaWxlbnRSZXF1ZXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9KS5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1NpbGVudCB0b2tlbiBmYWlscycpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29uZigpOiBNU1BNc2FsR3VhcmRDb25maWd1cmF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5maWx0ZXIoY29uZiA9PiBjb25mLnR5cGUgPT09ICdhZGQnKVswXTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiBjbGFzcz1cIm1pY3Jvc29mdC1sb2dpbi1idXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwibG9naW5NaWNyb3NvZnQoKVwiPlxyXG4gIDxtYXQtaWNvbiBzdmdJY29uPVwibWljcm9zb2Z0XCI+PC9tYXQtaWNvbj5cclxuICB7eydpZ28uYXV0aC5taWNyb3NvZnQubG9naW4nIHwgdHJhbnNsYXRlfX1cclxuPC9idXR0b24+XHJcbiJdfQ==
1
+ import { Component, ChangeDetectionStrategy, Output, EventEmitter, Inject } from '@angular/core';
2
+ import { MsalBroadcastService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';
3
+ import { InteractionStatus, PublicClientApplication, InteractionRequiredAuthError } from '@azure/msal-browser';
4
+ import { filter, takeUntil } from 'rxjs/operators';
5
+ import { Subject } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../shared/auth.service";
8
+ import * as i2 from "@igo2/core";
9
+ import * as i3 from "@azure/msal-angular";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/material/button";
12
+ import * as i6 from "@ngx-translate/core";
13
+ export class AuthMicrosoftComponent {
14
+ constructor(authService, config, appRef, msalService, msalGuardConfig) {
15
+ this.authService = authService;
16
+ this.config = config;
17
+ this.appRef = appRef;
18
+ this.msalService = msalService;
19
+ this.msalGuardConfig = msalGuardConfig;
20
+ this._destroying$ = new Subject();
21
+ this.login = new EventEmitter();
22
+ this.options = this.config.getConfig('auth.microsoft') || {};
23
+ this.msalService.instance = new PublicClientApplication({
24
+ auth: this.options,
25
+ cache: {
26
+ cacheLocation: 'sessionStorage'
27
+ }
28
+ });
29
+ this.broadcastService = new MsalBroadcastService(this.msalService.instance, this.msalService);
30
+ if (this.options.clientId) {
31
+ this.broadcastService.inProgress$
32
+ .pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
33
+ .subscribe(() => {
34
+ this.checkAccount();
35
+ });
36
+ }
37
+ else {
38
+ console.warn('Microsoft authentification needs "clientId" option');
39
+ }
40
+ }
41
+ loginMicrosoft() {
42
+ this.msalService.loginPopup({ ...this.getConf().authRequest })
43
+ .subscribe((response) => {
44
+ this.msalService.instance.setActiveAccount(response.account);
45
+ this.checkAccount();
46
+ });
47
+ }
48
+ checkAccount() {
49
+ this.msalService.instance
50
+ .acquireTokenSilent(this.getConf().authRequest)
51
+ .then((response) => {
52
+ const tokenAccess = response.accessToken;
53
+ const tokenId = response.idToken;
54
+ this.authService.loginWithToken(tokenAccess, 'microsoft', { tokenId }).subscribe(() => {
55
+ this.appRef.tick();
56
+ this.login.emit(true);
57
+ });
58
+ })
59
+ .catch(async (error) => {
60
+ if (error instanceof InteractionRequiredAuthError) {
61
+ // fallback to interaction when silent call fails
62
+ return this.msalService.acquireTokenPopup(this.getConf().authRequest);
63
+ }
64
+ console.log(error);
65
+ }).catch(error => {
66
+ console.log('Silent token fails');
67
+ });
68
+ }
69
+ getConf() {
70
+ return this.msalGuardConfig.filter(conf => conf.type === 'add')[0];
71
+ }
72
+ }
73
+ AuthMicrosoftComponent.ɵfac = function AuthMicrosoftComponent_Factory(t) { return new (t || AuthMicrosoftComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i3.MsalService), i0.ɵɵdirectiveInject(MSAL_GUARD_CONFIG)); };
74
+ AuthMicrosoftComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthMicrosoftComponent, selectors: [["igo-auth-microsoft"]], outputs: { login: "login" }, decls: 4, vars: 3, consts: [["mat-raised-button", "", 1, "microsoft-login-button", 3, "click"], ["svgIcon", "microsoft"]], template: function AuthMicrosoftComponent_Template(rf, ctx) { if (rf & 1) {
75
+ i0.ɵɵelementStart(0, "button", 0);
76
+ i0.ɵɵlistener("click", function AuthMicrosoftComponent_Template_button_click_0_listener() { return ctx.loginMicrosoft(); });
77
+ i0.ɵɵelement(1, "mat-icon", 1);
78
+ i0.ɵɵtext(2);
79
+ i0.ɵɵpipe(3, "translate");
80
+ i0.ɵɵelementEnd();
81
+ } if (rf & 2) {
82
+ i0.ɵɵadvance(2);
83
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "igo.auth.microsoft.login"), "\n");
84
+ } }, dependencies: [i4.MatIcon, i5.MatButton, i6.TranslatePipe], styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}[_nghost-%COMP%] > button[_ngcontent-%COMP%]{font-size:15px;height:40px;width:265px}mat-icon[_ngcontent-%COMP%]{margin-right:10px}"], changeDetection: 0 });
85
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthMicrosoftComponent, [{
86
+ type: Component,
87
+ args: [{ selector: 'igo-auth-microsoft', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoft()\">\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\n {{'igo.auth.microsoft.login' | translate}}\n</button>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"] }]
88
+ }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }, { type: i3.MsalService }, { type: undefined, decorators: [{
89
+ type: Inject,
90
+ args: [MSAL_GUARD_CONFIG]
91
+ }] }]; }, { login: [{
92
+ type: Output
93
+ }] }); })();
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtbWljcm9zb2Z0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBZSxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFRL0IsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQXNCLEVBQ3RCLFdBQXdCLEVBQ0csZUFBNEM7UUFKdkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNHLG9CQUFlLEdBQWYsZUFBZSxDQUE2QjtRQVRoRSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDMUMsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBVW5FLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFD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QUFDLENBQUM7SUFDckUsQ0FBQzs7NEZBdkVVLHNCQUFzQixvTEFXdkIsaUJBQWlCO3lFQVhoQixzQkFBc0I7UUM3Qm5DLGlDQUFvRjtRQUEzQixtR0FBUyxvQkFBZ0IsSUFBQztRQUNqRiw4QkFBeUM7UUFDekMsWUFDRjs7UUFBQSxpQkFBUzs7UUFEUCxlQUNGO1FBREUsa0ZBQ0Y7O3VGRDBCYSxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs7c0JBYTVDLE1BQU07dUJBQUMsaUJBQWlCO3dCQVJqQixLQUFLO2tCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBBcHBsaWNhdGlvblJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1zYWxCcm9hZGNhc3RTZXJ2aWNlLCBNc2FsU2VydmljZSwgTVNBTF9HVUFSRF9DT05GSUd9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgSW50ZXJhY3Rpb25TdGF0dXMsXG4gIEF1dGhlbnRpY2F0aW9uUmVzdWx0LFxuICBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbixcbiAgUG9wdXBSZXF1ZXN0LFxuICBTaWxlbnRSZXF1ZXN0LFxuICBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yXG59IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgQXV0aE1pY3Jvc29mdE9wdGlvbnMsIE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tYXV0aC1taWNyb3NvZnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1taWNyb3NvZnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRoLW1pY3Jvc29mdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTWljcm9zb2Z0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zOiBBdXRoTWljcm9zb2Z0T3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWluZyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBAT3V0cHV0KCkgbG9naW46IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlOiBNc2FsQnJvYWRjYXN0U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UsXG4gICAgQEluamVjdChNU0FMX0dVQVJEX0NPTkZJRykgcHJpdmF0ZSBtc2FsR3VhcmRDb25maWc6IE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb25bXSxcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLm1pY3Jvc29mdCcpIHx8IHt9O1xuXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSA9IG5ldyBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbih7XG4gICAgICBhdXRoOiB0aGlzLm9wdGlvbnMsXG4gICAgICBjYWNoZToge1xuICAgICAgICBjYWNoZUxvY2F0aW9uOiAnc2Vzc2lvblN0b3JhZ2UnXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UgPSBuZXcgTXNhbEJyb2FkY2FzdFNlcnZpY2UodGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSwgdGhpcy5tc2FsU2VydmljZSk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNsaWVudElkKSB7XG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+IHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuTm9uZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95aW5nJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWNjb3VudCgpO1xuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdNaWNyb3NvZnQgYXV0aGVudGlmaWNhdGlvbiBuZWVkcyBcImNsaWVudElkXCIgb3B0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvZ2luTWljcm9zb2Z0KCkge1xuICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh7Li4udGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3R9IGFzIFBvcHVwUmVxdWVzdClcbiAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcbiAgICAgIHRoaXMuY2hlY2tBY2NvdW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQWNjb3VudCgpIHtcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlXG4gICAgICAuYWNxdWlyZVRva2VuU2lsZW50KHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpXG4gICAgICAudGhlbigocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuQWNjZXNzID0gcmVzcG9uc2UuYWNjZXNzVG9rZW47XG4gICAgICAgIGNvbnN0IHRva2VuSWQgPSByZXNwb25zZS5pZFRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luV2l0aFRva2VuKHRva2VuQWNjZXNzLCAnbWljcm9zb2Z0JywgeyB0b2tlbklkIH0gKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcikge1xuICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIGludGVyYWN0aW9uIHdoZW4gc2lsZW50IGNhbGwgZmFpbHNcbiAgICAgICAgICByZXR1cm4gdGhpcy5tc2FsU2VydmljZS5hY3F1aXJlVG9rZW5Qb3B1cCh0aGlzLmdldENvbmYoKS5hdXRoUmVxdWVzdCBhcyBTaWxlbnRSZXF1ZXN0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdTaWxlbnQgdG9rZW4gZmFpbHMnKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25mKCk6IE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5maWx0ZXIoY29uZiA9PiBjb25mLnR5cGUgPT09ICdhZGQnKVswXTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cIm1pY3Jvc29mdC1sb2dpbi1idXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwibG9naW5NaWNyb3NvZnQoKVwiPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cIm1pY3Jvc29mdFwiPjwvbWF0LWljb24+XG4gIHt7J2lnby5hdXRoLm1pY3Jvc29mdC5sb2dpbicgfCB0cmFuc2xhdGV9fVxuPC9idXR0b24+XG4iXX0=
@@ -1,93 +1,93 @@
1
- import { Component, ChangeDetectionStrategy, Output, EventEmitter, Inject } from '@angular/core';
2
- import { MSAL_GUARD_CONFIG } from '@azure/msal-angular';
3
- import { InteractionStatus, PublicClientApplication, InteractionRequiredAuthError } from '@azure/msal-browser';
4
- import { filter, takeUntil } from 'rxjs/operators';
5
- import { Subject } from 'rxjs';
6
- import { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../shared/auth.service";
9
- import * as i2 from "@igo2/core";
10
- import * as i3 from "../shared/auth-msalServiceb2c.service.";
11
- import * as i4 from "@angular/material/icon";
12
- import * as i5 from "@angular/material/button";
13
- import * as i6 from "@ngx-translate/core";
14
- export class AuthMicrosoftb2cComponent {
15
- constructor(authService, config, appRef, msalService, msalGuardConfig) {
16
- this.authService = authService;
17
- this.config = config;
18
- this.appRef = appRef;
19
- this.msalService = msalService;
20
- this.msalGuardConfig = msalGuardConfig;
21
- this._destroying$ = new Subject();
22
- this.login = new EventEmitter();
23
- this.options = this.config.getConfig('auth.microsoftb2c') || {};
24
- this.msalService.instance = new PublicClientApplication({
25
- auth: this.options.browserAuthOptions,
26
- cache: {
27
- cacheLocation: 'sessionStorage'
28
- }
29
- });
30
- this.broadcastService = new MsalBroadcastServiceb2c(this.msalService.instance, this.msalService);
31
- if (this.options.browserAuthOptions.clientId) {
32
- this.broadcastService.inProgress$
33
- .pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
34
- .subscribe(() => {
35
- this.checkAccount();
36
- });
37
- }
38
- else {
39
- console.warn('Microsoft authentification needs "clientId" option');
40
- }
41
- }
42
- loginMicrosoftb2c() {
43
- this.msalService.loginPopup({ ...this.getConf().authRequest })
44
- .subscribe((response) => {
45
- this.msalService.instance.setActiveAccount(response.account);
46
- this.checkAccount();
47
- });
48
- }
49
- checkAccount() {
50
- this.msalService.instance
51
- .acquireTokenSilent(this.getConf().authRequest)
52
- .then((response) => {
53
- const token = response.idToken;
54
- this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {
55
- this.appRef.tick();
56
- this.login.emit(true);
57
- });
58
- })
59
- .catch(async (error) => {
60
- if (error instanceof InteractionRequiredAuthError) {
61
- // fallback to interaction when silent call fails
62
- return this.msalService.acquireTokenPopup(this.getConf().authRequest);
63
- }
64
- }).catch(error => {
65
- console.log('Silent token fails');
66
- });
67
- }
68
- getConf() {
69
- return this.msalGuardConfig.filter(conf => conf.type === 'b2c')[0];
70
- }
71
- }
72
- AuthMicrosoftb2cComponent.ɵfac = function AuthMicrosoftb2cComponent_Factory(t) { return new (t || AuthMicrosoftb2cComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i3.MsalServiceb2c), i0.ɵɵdirectiveInject(MSAL_GUARD_CONFIG)); };
73
- AuthMicrosoftb2cComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthMicrosoftb2cComponent, selectors: [["igo-auth-microsoftb2c"]], outputs: { login: "login" }, decls: 4, vars: 3, consts: [["mat-raised-button", "", 1, "microsoft-login-button", 3, "click"], ["svgIcon", "microsoft"]], template: function AuthMicrosoftb2cComponent_Template(rf, ctx) { if (rf & 1) {
74
- i0.ɵɵelementStart(0, "button", 0);
75
- i0.ɵɵlistener("click", function AuthMicrosoftb2cComponent_Template_button_click_0_listener() { return ctx.loginMicrosoftb2c(); });
76
- i0.ɵɵelement(1, "mat-icon", 1);
77
- i0.ɵɵtext(2);
78
- i0.ɵɵpipe(3, "translate");
79
- i0.ɵɵelementEnd();
80
- } if (rf & 2) {
81
- i0.ɵɵadvance(2);
82
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "igo.auth.microsoftb2c.login"), "\n");
83
- } }, dependencies: [i4.MatIcon, i5.MatButton, i6.TranslatePipe], styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}[_nghost-%COMP%] > button[_ngcontent-%COMP%]{font-size:15px;height:40px;width:265px}mat-icon[_ngcontent-%COMP%]{margin-right:10px}"], changeDetection: 0 });
84
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthMicrosoftb2cComponent, [{
85
- type: Component,
86
- args: [{ selector: 'igo-auth-microsoftb2c', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"] }]
87
- }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }, { type: i3.MsalServiceb2c }, { type: undefined, decorators: [{
88
- type: Inject,
89
- args: [MSAL_GUARD_CONFIG]
90
- }] }]; }, { login: [{
91
- type: Output
92
- }] }); })();
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnRiMmMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLW1pY3Jvc29mdGIyYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtbWljcm9zb2Z0YjJjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQXNCLEVBQ3RCLFdBQTJCLEVBQ0EsZUFBNEM7UUFKdkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDQSxvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7UUFUaEUsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVduRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRWhFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksdUJBQXVCLENBQUM7WUFDdEQsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCO1lBQ3JDLEtBQUssRUFBRTtnQkFDTCxhQUFhLEVBQUUsZ0JBQWdCO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVc7aUJBQ2hDLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxNQUF5QixFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQ3hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQzdCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBRUo7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0RBQW9ELENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQWlCLENBQUM7YUFDM0UsU0FBUyxDQUFDLENBQUMsUUFBOEIsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7YUFDdEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQTRCLENBQUM7YUFDL0QsSUFBSSxDQUFDLENBQUMsUUFBOEIsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssWUFBWSw0QkFBNEIsRUFBRTtnQkFDakQsaURBQWlEO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQTRCLENBQUMsQ0FBQzthQUN4RjtRQUNELENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7a0dBdEVVLHlCQUF5Qix1TEFXMUIsaUJBQWlCOzRFQVhoQix5QkFBeUI7UUNoQ3RDLGlDQUF1RjtRQUE5QixzR0FBUyx1QkFBbUIsSUFBQztRQUNwRiw4QkFBeUM7UUFDekMsWUFDRjs7UUFBQSxpQkFBUzs7UUFEUCxlQUNGO1FBREUscUZBQ0Y7O3VGRDZCYSx5QkFBeUI7Y0FOckMsU0FBUzsyQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07O3NCQWE1QyxNQUFNO3VCQUFDLGlCQUFpQjt3QkFSakIsS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1TQUxfR1VBUkRfQ09ORklHIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XHJcbmltcG9ydCB7XHJcbiAgSW50ZXJhY3Rpb25TdGF0dXMsXHJcbiAgQXV0aGVudGljYXRpb25SZXN1bHQsXHJcbiAgUHVibGljQ2xpZW50QXBwbGljYXRpb24sXHJcbiAgUG9wdXBSZXF1ZXN0LFxyXG4gIFNpbGVudFJlcXVlc3QsXHJcbiAgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvclxyXG59IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zLCBNU1BNc2FsR3VhcmRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTXNhbEJyb2FkY2FzdFNlcnZpY2ViMmMgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC1tc2FsQnJvYWRjYXN0U2VydmljZWIyYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2ViMmMgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC1tc2FsU2VydmljZWIyYy5zZXJ2aWNlLic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1hdXRoLW1pY3Jvc29mdGIyYycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGgtbWljcm9zb2Z0YjJjLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdXRoLW1pY3Jvc29mdGIyYy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoTWljcm9zb2Z0YjJjQ29tcG9uZW50IHtcclxuICBwcml2YXRlIG9wdGlvbnM6IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lpbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgbG9naW46IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlYjJjO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZWIyYyxcclxuICAgIEBJbmplY3QoTVNBTF9HVUFSRF9DT05GSUcpIHByaXZhdGUgbXNhbEd1YXJkQ29uZmlnOiBNU1BNc2FsR3VhcmRDb25maWd1cmF0aW9uW10sXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLm1pY3Jvc29mdGIyYycpIHx8IHt9O1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UgPSBuZXcgUHVibGljQ2xpZW50QXBwbGljYXRpb24oe1xyXG4gICAgICBhdXRoOiB0aGlzLm9wdGlvbnMuYnJvd3NlckF1dGhPcHRpb25zLFxyXG4gICAgICBjYWNoZToge1xyXG4gICAgICAgIGNhY2hlTG9jYXRpb246ICdzZXNzaW9uU3RvcmFnZSdcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlID0gbmV3IE1zYWxCcm9hZGNhc3RTZXJ2aWNlYjJjKHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UsIHRoaXMubXNhbFNlcnZpY2UpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuYnJvd3NlckF1dGhPcHRpb25zLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5pblByb2dyZXNzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+IHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuTm9uZSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3lpbmckKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBY2NvdW50KCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignTWljcm9zb2Z0IGF1dGhlbnRpZmljYXRpb24gbmVlZHMgXCJjbGllbnRJZFwiIG9wdGlvbicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ2luTWljcm9zb2Z0YjJjKCkge1xyXG4gICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblBvcHVwKHsuLi50aGlzLmdldENvbmYoKS5hdXRoUmVxdWVzdH0gYXMgUG9wdXBSZXF1ZXN0KVxyXG4gICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcclxuICAgICAgdGhpcy5jaGVja0FjY291bnQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0FjY291bnQoKSB7XHJcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlXHJcbiAgICAgIC5hY3F1aXJlVG9rZW5TaWxlbnQodGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3QgYXMgU2lsZW50UmVxdWVzdClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gcmVzcG9uc2UuaWRUb2tlbjtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luV2l0aFRva2VuKHRva2VuLCAnbWljcm9zb2Z0YjJjJykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcclxuICAgICAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEludGVyYWN0aW9uUmVxdWlyZWRBdXRoRXJyb3IpIHtcclxuICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIGludGVyYWN0aW9uIHdoZW4gc2lsZW50IGNhbGwgZmFpbHNcclxuICAgICAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblBvcHVwKHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9KS5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2lsZW50IHRva2VuIGZhaWxzJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbmYoKTogTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tc2FsR3VhcmRDb25maWcuZmlsdGVyKGNvbmYgPT4gY29uZi50eXBlID09PSAnYjJjJylbMF07XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gY2xhc3M9XCJtaWNyb3NvZnQtbG9naW4tYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImxvZ2luTWljcm9zb2Z0YjJjKClcIj5cclxuICA8bWF0LWljb24gc3ZnSWNvbj1cIm1pY3Jvc29mdFwiPjwvbWF0LWljb24+XHJcbiAge3snaWdvLmF1dGgubWljcm9zb2Z0YjJjLmxvZ2luJyB8IHRyYW5zbGF0ZX19XHJcbjwvYnV0dG9uPlxyXG4iXX0=
1
+ import { Component, ChangeDetectionStrategy, Output, EventEmitter, Inject } from '@angular/core';
2
+ import { MSAL_GUARD_CONFIG } from '@azure/msal-angular';
3
+ import { InteractionStatus, PublicClientApplication, InteractionRequiredAuthError } from '@azure/msal-browser';
4
+ import { filter, takeUntil } from 'rxjs/operators';
5
+ import { Subject } from 'rxjs';
6
+ import { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../shared/auth.service";
9
+ import * as i2 from "@igo2/core";
10
+ import * as i3 from "../shared/auth-msalServiceb2c.service.";
11
+ import * as i4 from "@angular/material/icon";
12
+ import * as i5 from "@angular/material/button";
13
+ import * as i6 from "@ngx-translate/core";
14
+ export class AuthMicrosoftb2cComponent {
15
+ constructor(authService, config, appRef, msalService, msalGuardConfig) {
16
+ this.authService = authService;
17
+ this.config = config;
18
+ this.appRef = appRef;
19
+ this.msalService = msalService;
20
+ this.msalGuardConfig = msalGuardConfig;
21
+ this._destroying$ = new Subject();
22
+ this.login = new EventEmitter();
23
+ this.options = this.config.getConfig('auth.microsoftb2c') || {};
24
+ this.msalService.instance = new PublicClientApplication({
25
+ auth: this.options.browserAuthOptions,
26
+ cache: {
27
+ cacheLocation: 'sessionStorage'
28
+ }
29
+ });
30
+ this.broadcastService = new MsalBroadcastServiceb2c(this.msalService.instance, this.msalService);
31
+ if (this.options.browserAuthOptions.clientId) {
32
+ this.broadcastService.inProgress$
33
+ .pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
34
+ .subscribe(() => {
35
+ this.checkAccount();
36
+ });
37
+ }
38
+ else {
39
+ console.warn('Microsoft authentification needs "clientId" option');
40
+ }
41
+ }
42
+ loginMicrosoftb2c() {
43
+ this.msalService.loginPopup({ ...this.getConf().authRequest })
44
+ .subscribe((response) => {
45
+ this.msalService.instance.setActiveAccount(response.account);
46
+ this.checkAccount();
47
+ });
48
+ }
49
+ checkAccount() {
50
+ this.msalService.instance
51
+ .acquireTokenSilent(this.getConf().authRequest)
52
+ .then((response) => {
53
+ const token = response.idToken;
54
+ this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {
55
+ this.appRef.tick();
56
+ this.login.emit(true);
57
+ });
58
+ })
59
+ .catch(async (error) => {
60
+ if (error instanceof InteractionRequiredAuthError) {
61
+ // fallback to interaction when silent call fails
62
+ return this.msalService.acquireTokenPopup(this.getConf().authRequest);
63
+ }
64
+ }).catch(error => {
65
+ console.log('Silent token fails');
66
+ });
67
+ }
68
+ getConf() {
69
+ return this.msalGuardConfig.filter(conf => conf.type === 'b2c')[0];
70
+ }
71
+ }
72
+ AuthMicrosoftb2cComponent.ɵfac = function AuthMicrosoftb2cComponent_Factory(t) { return new (t || AuthMicrosoftb2cComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i3.MsalServiceb2c), i0.ɵɵdirectiveInject(MSAL_GUARD_CONFIG)); };
73
+ AuthMicrosoftb2cComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthMicrosoftb2cComponent, selectors: [["igo-auth-microsoftb2c"]], outputs: { login: "login" }, decls: 4, vars: 3, consts: [["mat-raised-button", "", 1, "microsoft-login-button", 3, "click"], ["svgIcon", "microsoft"]], template: function AuthMicrosoftb2cComponent_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "button", 0);
75
+ i0.ɵɵlistener("click", function AuthMicrosoftb2cComponent_Template_button_click_0_listener() { return ctx.loginMicrosoftb2c(); });
76
+ i0.ɵɵelement(1, "mat-icon", 1);
77
+ i0.ɵɵtext(2);
78
+ i0.ɵɵpipe(3, "translate");
79
+ i0.ɵɵelementEnd();
80
+ } if (rf & 2) {
81
+ i0.ɵɵadvance(2);
82
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "igo.auth.microsoftb2c.login"), "\n");
83
+ } }, dependencies: [i4.MatIcon, i5.MatButton, i6.TranslatePipe], styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}[_nghost-%COMP%] > button[_ngcontent-%COMP%]{font-size:15px;height:40px;width:265px}mat-icon[_ngcontent-%COMP%]{margin-right:10px}"], changeDetection: 0 });
84
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthMicrosoftb2cComponent, [{
85
+ type: Component,
86
+ args: [{ selector: 'igo-auth-microsoftb2c', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"microsoft-login-button\" mat-raised-button (click)=\"loginMicrosoftb2c()\">\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\n {{'igo.auth.microsoftb2c.login' | translate}}\n</button>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-15px}:host>button{font-size:15px;height:40px;width:265px}mat-icon{margin-right:10px}\n"] }]
87
+ }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }, { type: i3.MsalServiceb2c }, { type: undefined, decorators: [{
88
+ type: Inject,
89
+ args: [MSAL_GUARD_CONFIG]
90
+ }] }]; }, { login: [{
91
+ type: Output
92
+ }] }); })();
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnRiMmMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLW1pY3Jvc29mdGIyYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtbWljcm9zb2Z0YjJjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUM3QixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7QUFTekYsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQXNCLEVBQ3RCLFdBQTJCLEVBQ0EsZUFBNEM7UUFKdkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDQSxvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7UUFUaEUsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVB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Qix1TEFXMUIsaUJBQWlCOzRFQVhoQix5QkFBeUI7UUNoQ3RDLGlDQUF1RjtRQUE5QixzR0FBUyx1QkFBbUIsSUFBQztRQUNwRiw4QkFBeUM7UUFDekMsWUFDRjs7UUFBQSxpQkFBUzs7UUFEUCxlQUNGO1FBREUscUZBQ0Y7O3VGRDZCYSx5QkFBeUI7Y0FOckMsU0FBUzsyQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07O3NCQWE1QyxNQUFNO3VCQUFDLGlCQUFpQjt3QkFSakIsS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQXBwbGljYXRpb25SZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1TQUxfR1VBUkRfQ09ORklHIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJbnRlcmFjdGlvblN0YXR1cyxcbiAgQXV0aGVudGljYXRpb25SZXN1bHQsXG4gIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLFxuICBQb3B1cFJlcXVlc3QsXG4gIFNpbGVudFJlcXVlc3QsXG4gIEludGVyYWN0aW9uUmVxdWlyZWRBdXRoRXJyb3Jcbn0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBBdXRoTWljcm9zb2Z0YjJjT3B0aW9ucywgTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNc2FsQnJvYWRjYXN0U2VydmljZWIyYyB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLW1zYWxCcm9hZGNhc3RTZXJ2aWNlYjJjLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2ViMmMgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC1tc2FsU2VydmljZWIyYy5zZXJ2aWNlLic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1hdXRoLW1pY3Jvc29mdGIyYycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLW1pY3Jvc29mdGIyYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dGgtbWljcm9zb2Z0YjJjLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhNaWNyb3NvZnRiMmNDb21wb25lbnQge1xuICBwcml2YXRlIG9wdGlvbnM6IEF1dGhNaWNyb3NvZnRiMmNPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95aW5nJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBsb2dpbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlYjJjO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZWIyYyxcbiAgICBASW5qZWN0KE1TQUxfR1VBUkRfQ09ORklHKSBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTVNQTXNhbEd1YXJkQ29uZmlndXJhdGlvbltdLFxuICApIHtcblxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC5taWNyb3NvZnRiMmMnKSB8fCB7fTtcblxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UgPSBuZXcgUHVibGljQ2xpZW50QXBwbGljYXRpb24oe1xuICAgICAgYXV0aDogdGhpcy5vcHRpb25zLmJyb3dzZXJBdXRoT3B0aW9ucyxcbiAgICAgIGNhY2hlOiB7XG4gICAgICAgIGNhY2hlTG9jYXRpb246ICdzZXNzaW9uU3RvcmFnZSdcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZSA9IG5ldyBNc2FsQnJvYWRjYXN0U2VydmljZWIyYyh0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLCB0aGlzLm1zYWxTZXJ2aWNlKTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYnJvd3NlckF1dGhPcHRpb25zLmNsaWVudElkKSB7XG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+IHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuTm9uZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95aW5nJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWNjb3VudCgpO1xuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdNaWNyb3NvZnQgYXV0aGVudGlmaWNhdGlvbiBuZWVkcyBcImNsaWVudElkXCIgb3B0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvZ2luTWljcm9zb2Z0YjJjKCkge1xuICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh7Li4udGhpcy5nZXRDb25mKCkuYXV0aFJlcXVlc3R9IGFzIFBvcHVwUmVxdWVzdClcbiAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcbiAgICAgIHRoaXMuY2hlY2tBY2NvdW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQWNjb3VudCgpIHtcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlXG4gICAgICAuYWNxdWlyZVRva2VuU2lsZW50KHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpXG4gICAgICAudGhlbigocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gcmVzcG9uc2UuaWRUb2tlbjtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dpbldpdGhUb2tlbih0b2tlbiwgJ21pY3Jvc29mdGIyYycpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hcHBSZWYudGljaygpO1xuICAgICAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBJbnRlcmFjdGlvblJlcXVpcmVkQXV0aEVycm9yKSB7XG4gICAgICAgICAgLy8gZmFsbGJhY2sgdG8gaW50ZXJhY3Rpb24gd2hlbiBzaWxlbnQgY2FsbCBmYWlsc1xuICAgICAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblBvcHVwKHRoaXMuZ2V0Q29uZigpLmF1dGhSZXF1ZXN0IGFzIFNpbGVudFJlcXVlc3QpO1xuICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2lsZW50IHRva2VuIGZhaWxzJyk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25mKCk6IE1TUE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5maWx0ZXIoY29uZiA9PiBjb25mLnR5cGUgPT09ICdiMmMnKVswXTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cIm1pY3Jvc29mdC1sb2dpbi1idXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwibG9naW5NaWNyb3NvZnRiMmMoKVwiPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cIm1pY3Jvc29mdFwiPjwvbWF0LWljb24+XG4gIHt7J2lnby5hdXRoLm1pY3Jvc29mdGIyYy5sb2dpbicgfCB0cmFuc2xhdGV9fVxuPC9idXR0b24+XG4iXX0=
@@ -1,5 +1,5 @@
1
- export * from './auth-form.component';
2
- export * from './auth-intern.component';
3
- export * from './auth-facebook.component';
4
- export * from './auth-google.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGgtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtaW50ZXJuLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1mYWNlYm9vay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtZ29vZ2xlLmNvbXBvbmVudCc7XHJcbiJdfQ==
1
+ export * from './auth-form.component';
2
+ export * from './auth-intern.component';
3
+ export * from './auth-facebook.component';
4
+ export * from './auth-google.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGgtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLWludGVybi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLWZhY2Vib29rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtZ29vZ2xlLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,24 +1,24 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import { AuthFormComponent } from './auth-form/auth-form.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- const routes = [
7
- { path: 'login', component: AuthFormComponent },
8
- { path: 'logout', component: AuthFormComponent }
9
- ];
10
- export class AuthRoutingModule {
11
- }
12
- AuthRoutingModule.ɵfac = function AuthRoutingModule_Factory(t) { return new (t || AuthRoutingModule)(); };
13
- AuthRoutingModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AuthRoutingModule });
14
- AuthRoutingModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [RouterModule.forChild(routes), RouterModule] });
15
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthRoutingModule, [{
16
- type: NgModule,
17
- args: [{
18
- imports: [RouterModule.forChild(routes)],
19
- exports: [RouterModule],
20
- providers: []
21
- }]
22
- }], null, null); })();
23
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AuthRoutingModule, { imports: [i1.RouterModule], exports: [RouterModule] }); })();
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9hdXRoLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFcEUsTUFBTSxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtJQUMvQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO0NBQ2pELENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCOztrRkFBakIsaUJBQWlCO21FQUFqQixpQkFBaUI7dUVBSmxCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7dUZBR1gsaUJBQWlCO2NBTDdCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2FBQ2Q7O3dGQUNZLGlCQUFpQiwwQ0FIbEIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEF1dGhGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLWZvcm0vYXV0aC1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogQXV0aEZvcm1Db21wb25lbnQgfSxcclxuICB7IHBhdGg6ICdsb2dvdXQnLCBjb21wb25lbnQ6IEF1dGhGb3JtQ29tcG9uZW50IH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoUm91dGluZ01vZHVsZSB7fVxyXG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { AuthFormComponent } from './auth-form/auth-form.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ const routes = [
7
+ { path: 'login', component: AuthFormComponent },
8
+ { path: 'logout', component: AuthFormComponent }
9
+ ];
10
+ export class AuthRoutingModule {
11
+ }
12
+ AuthRoutingModule.ɵfac = function AuthRoutingModule_Factory(t) { return new (t || AuthRoutingModule)(); };
13
+ AuthRoutingModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AuthRoutingModule });
14
+ AuthRoutingModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [RouterModule.forChild(routes), RouterModule] });
15
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthRoutingModule, [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [RouterModule.forChild(routes)],
19
+ exports: [RouterModule],
20
+ providers: []
21
+ }]
22
+ }], null, null); })();
23
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AuthRoutingModule, { imports: [i1.RouterModule], exports: [RouterModule] }); })();
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9hdXRoLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFcEUsTUFBTSxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtJQUMvQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO0NBQ2pELENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCOztrRkFBakIsaUJBQWlCO21FQUFqQixpQkFBaUI7dUVBSmxCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7dUZBR1gsaUJBQWlCO2NBTDdCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2FBQ2Q7O3dGQUNZLGlCQUFpQiwwQ0FIbEIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEF1dGhGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLWZvcm0vYXV0aC1mb3JtLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogQXV0aEZvcm1Db21wb25lbnQgfSxcbiAgeyBwYXRoOiAnbG9nb3V0JywgY29tcG9uZW50OiBBdXRoRm9ybUNvbXBvbmVudCB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoUm91dGluZ01vZHVsZSB7fVxuIl19