@igo2/auth 1.15.4 → 16.0.0-rc.1
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.
- package/{esm2020 → esm2022}/igo2-auth.mjs +4 -4
- package/esm2022/lib/auth-form/auth-facebook.component.mjs +67 -0
- package/esm2022/lib/auth-form/auth-form.component.mjs +286 -0
- package/esm2022/lib/auth-form/auth-google.component.mjs +108 -0
- package/esm2022/lib/auth-form/auth-intern.component.mjs +134 -0
- package/esm2022/lib/auth-form/auth-microsoft.component.mjs +107 -0
- package/esm2022/lib/auth-form/auth-microsoftb2c.component.mjs +105 -0
- package/{esm2020 → esm2022}/lib/auth-form/index.mjs +5 -5
- package/{esm2020 → esm2022}/lib/auth-routing.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/auth.module.mjs +91 -91
- package/esm2022/lib/shared/admin.guard.mjs +39 -0
- package/esm2022/lib/shared/auth-microsoft.provider.mjs +86 -0
- package/esm2022/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +47 -0
- package/esm2022/lib/shared/auth-msalServiceb2c.service..mjs +85 -0
- package/esm2022/lib/shared/auth.guard.mjs +38 -0
- package/esm2022/lib/shared/auth.interceptor.mjs +164 -0
- package/esm2022/lib/shared/auth.interface.mjs +2 -0
- package/esm2022/lib/shared/auth.service.mjs +168 -0
- package/esm2022/lib/shared/logged.guard.mjs +38 -0
- package/esm2022/lib/shared/profils.guard.mjs +43 -0
- package/esm2022/lib/shared/protected.directive.mjs +20 -0
- package/{esm2020 → esm2022}/lib/shared/storage.interface.mjs +2 -2
- package/esm2022/lib/shared/storage.service.mjs +99 -0
- package/esm2022/lib/shared/token.service.mjs +48 -0
- package/{esm2020 → esm2022}/public_api.mjs +19 -19
- package/{fesm2020 → fesm2022}/igo2-auth.mjs +1573 -1477
- package/fesm2022/igo2-auth.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/auth-form/auth-facebook.component.d.ts +18 -18
- package/lib/auth-form/auth-form.component.d.ts +42 -42
- package/lib/auth-form/auth-google.component.d.ts +24 -24
- package/lib/auth-form/auth-intern.component.d.ts +21 -21
- package/lib/auth-form/auth-microsoft.component.d.ts +23 -23
- package/lib/auth-form/auth-microsoftb2c.component.d.ts +23 -23
- package/lib/auth-form/index.d.ts +4 -4
- package/lib/auth-routing.module.d.ts +7 -7
- package/lib/auth.module.d.ts +23 -23
- package/lib/shared/admin.guard.d.ts +13 -13
- package/lib/shared/auth-microsoft.provider.d.ts +30 -30
- package/lib/shared/auth-msalBroadcastServiceb2c.service.d.ts +15 -15
- package/lib/shared/auth-msalServiceb2c.service..d.ts +33 -33
- package/lib/shared/auth.guard.d.ts +13 -13
- package/lib/shared/auth.interceptor.d.ts +24 -24
- package/lib/shared/auth.interface.d.ts +99 -99
- package/lib/shared/auth.service.d.ts +44 -44
- package/lib/shared/logged.guard.d.ts +13 -13
- package/lib/shared/profils.guard.d.ts +13 -13
- package/lib/shared/protected.directive.d.ts +8 -8
- package/lib/shared/storage.interface.d.ts +4 -4
- package/lib/shared/storage.service.d.ts +17 -18
- package/lib/shared/token.service.d.ts +15 -15
- package/locale/en.auth.json +28 -0
- package/locale/fr.auth.json +32 -0
- package/package.json +18 -25
- package/public_api.d.ts +15 -15
- package/esm2020/lib/auth-form/auth-facebook.component.mjs +0 -61
- package/esm2020/lib/auth-form/auth-form.component.mjs +0 -277
- package/esm2020/lib/auth-form/auth-google.component.mjs +0 -99
- package/esm2020/lib/auth-form/auth-intern.component.mjs +0 -119
- package/esm2020/lib/auth-form/auth-microsoft.component.mjs +0 -94
- package/esm2020/lib/auth-form/auth-microsoftb2c.component.mjs +0 -93
- package/esm2020/lib/shared/admin.guard.mjs +0 -33
- package/esm2020/lib/shared/auth-microsoft.provider.mjs +0 -84
- package/esm2020/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +0 -38
- package/esm2020/lib/shared/auth-msalServiceb2c.service..mjs +0 -80
- package/esm2020/lib/shared/auth.guard.mjs +0 -32
- package/esm2020/lib/shared/auth.interceptor.mjs +0 -155
- package/esm2020/lib/shared/auth.interface.mjs +0 -2
- package/esm2020/lib/shared/auth.service.mjs +0 -158
- package/esm2020/lib/shared/logged.guard.mjs +0 -32
- package/esm2020/lib/shared/profils.guard.mjs +0 -37
- package/esm2020/lib/shared/protected.directive.mjs +0 -19
- package/esm2020/lib/shared/storage.service.mjs +0 -91
- package/esm2020/lib/shared/token.service.mjs +0 -47
- package/fesm2015/igo2-auth.mjs +0 -1655
- package/fesm2015/igo2-auth.mjs.map +0 -1
- package/fesm2020/igo2-auth.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvaWdvMi1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ApplicationRef, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { ConfigService } from '@igo2/core';
|
|
3
|
+
import { AuthService } from '../shared/auth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../shared/auth.service";
|
|
6
|
+
import * as i2 from "@igo2/core";
|
|
7
|
+
export class AuthFacebookComponent {
|
|
8
|
+
authService;
|
|
9
|
+
config;
|
|
10
|
+
appRef;
|
|
11
|
+
options;
|
|
12
|
+
login = new EventEmitter();
|
|
13
|
+
constructor(authService, config, appRef) {
|
|
14
|
+
this.authService = authService;
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.appRef = appRef;
|
|
17
|
+
this.options = this.config.getConfig('auth.facebook');
|
|
18
|
+
if (this.options?.appId) {
|
|
19
|
+
this.loadSDKFacebook();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.warn('Facebook authentification needs "appId" option');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
subscribeEvents() {
|
|
26
|
+
window.FB.Event.subscribe('auth.statusChange', (rep) => {
|
|
27
|
+
this.statusChangeCallback(rep);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
statusChangeCallback(response) {
|
|
31
|
+
if (response.status === 'connected') {
|
|
32
|
+
const accessToken = response.authResponse.accessToken;
|
|
33
|
+
this.loginFacebook(accessToken);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
loginFacebook(token) {
|
|
37
|
+
this.authService.loginWithToken(token, 'facebook').subscribe(() => {
|
|
38
|
+
this.appRef.tick();
|
|
39
|
+
this.login.emit(true);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
loadSDKFacebook() {
|
|
43
|
+
if (document.getElementById('facebook-jssdk')) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const urlSDK = 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';
|
|
47
|
+
const fjs = document.getElementsByTagName('script')[0];
|
|
48
|
+
const js = document.createElement('script');
|
|
49
|
+
js.id = 'facebook-jssdk';
|
|
50
|
+
js.src = `${urlSDK}&appId=${this.options?.appId}`;
|
|
51
|
+
js.onload = () => {
|
|
52
|
+
this.subscribeEvents();
|
|
53
|
+
};
|
|
54
|
+
fjs.parentNode.insertBefore(js, fjs);
|
|
55
|
+
}
|
|
56
|
+
static ɵfac = function AuthFacebookComponent_Factory(t) { return new (t || AuthFacebookComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i0.ApplicationRef)); };
|
|
57
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthFacebookComponent, selectors: [["igo-auth-facebook"]], outputs: { login: "login" }, decls: 1, vars: 0, consts: [["scope", "public_profile,email", "data-max-rows", "1", "data-size", "large", "data-button-type", "login_with", "data-show-faces", "false", "data-auto-logout-link", "false", "data-use-continue-as", "false", 1, "fb-login-button"]], template: function AuthFacebookComponent_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelement(0, "div", 0);
|
|
59
|
+
} }, styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-3px}"], changeDetection: 0 });
|
|
60
|
+
}
|
|
61
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthFacebookComponent, [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'igo-auth-facebook', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n scope=\"public_profile,email\"\n class=\"fb-login-button\"\n data-max-rows=\"1\"\n data-size=\"large\"\n data-button-type=\"login_with\"\n data-show-faces=\"false\"\n data-auto-logout-link=\"false\"\n data-use-continue-as=\"false\"\n></div>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block;position:relative;top:-3px}\n"] }]
|
|
64
|
+
}], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }]; }, { login: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}] }); })();
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mYWNlYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtZmFjZWJvb2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWZhY2Vib29rLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBUXJELE1BQU0sT0FBTyxxQkFBcUI7SUFNdEI7SUFDQTtJQUNBO0lBUEYsT0FBTyxDQUF1QjtJQUU1QixLQUFLLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFFckUsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFzQjtRQUZ0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBRTlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3BCLE1BQWMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFRO1FBQ25DLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDbkMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDN0MsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFNLEdBQ1YsZ0VBQWdFLENBQUM7UUFFbkUsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QixFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbEQsRUFBRSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBQ0YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0VBdkRVLHFCQUFxQjs2REFBckIscUJBQXFCO1lDbEJsQyx5QkFTTzs7O3VGRFNNLHFCQUFxQjtjQU5qQyxTQUFTOzJCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNO3VIQUtyQyxLQUFLO2tCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBBcHBsaWNhdGlvblJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEF1dGhGYWNlYm9va09wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWF1dGgtZmFjZWJvb2snLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1mYWNlYm9vay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dGgtZmFjZWJvb2suY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEZhY2Vib29rQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zPzogQXV0aEZhY2Vib29rT3B0aW9ucztcblxuICBAT3V0cHV0KCkgbG9naW46IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLmZhY2Vib29rJyk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zPy5hcHBJZCkge1xuICAgICAgdGhpcy5sb2FkU0RLRmFjZWJvb2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdGYWNlYm9vayBhdXRoZW50aWZpY2F0aW9uIG5lZWRzIFwiYXBwSWRcIiBvcHRpb24nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpIHtcbiAgICAod2luZG93IGFzIGFueSkuRkIuRXZlbnQuc3Vic2NyaWJlKCdhdXRoLnN0YXR1c0NoYW5nZScsIChyZXApID0+IHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlQ2FsbGJhY2socmVwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdHVzQ2hhbmdlQ2FsbGJhY2socmVzcG9uc2UpIHtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnY29ubmVjdGVkJykge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSByZXNwb25zZS5hdXRoUmVzcG9uc2UuYWNjZXNzVG9rZW47XG4gICAgICB0aGlzLmxvZ2luRmFjZWJvb2soYWNjZXNzVG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9naW5GYWNlYm9vayh0b2tlbikge1xuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW5XaXRoVG9rZW4odG9rZW4sICdmYWNlYm9vaycpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTREtGYWNlYm9vaygpIHtcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2Vib29rLWpzc2RrJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB1cmxTREsgPVxuICAgICAgJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZnJfQ0Evc2RrLmpzI3hmYm1sPTEmdmVyc2lvbj12Mi45JztcblxuICAgIGNvbnN0IGZqcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtcbiAgICBjb25zdCBqcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIGpzLmlkID0gJ2ZhY2Vib29rLWpzc2RrJztcbiAgICBqcy5zcmMgPSBgJHt1cmxTREt9JmFwcElkPSR7dGhpcy5vcHRpb25zPy5hcHBJZH1gO1xuICAgIGpzLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfTtcbiAgICBmanMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoanMsIGZqcyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgc2NvcGU9XCJwdWJsaWNfcHJvZmlsZSxlbWFpbFwiXG4gIGNsYXNzPVwiZmItbG9naW4tYnV0dG9uXCJcbiAgZGF0YS1tYXgtcm93cz1cIjFcIlxuICBkYXRhLXNpemU9XCJsYXJnZVwiXG4gIGRhdGEtYnV0dG9uLXR5cGU9XCJsb2dpbl93aXRoXCJcbiAgZGF0YS1zaG93LWZhY2VzPVwiZmFsc2VcIlxuICBkYXRhLWF1dG8tbG9nb3V0LWxpbms9XCJmYWxzZVwiXG4gIGRhdGEtdXNlLWNvbnRpbnVlLWFzPVwiZmFsc2VcIlxuPjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input, Optional, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Router, NavigationStart } from '@angular/router';
|
|
3
|
+
import { filter } from 'rxjs/operators';
|
|
4
|
+
import { ConfigService } from '@igo2/core';
|
|
5
|
+
import { AuthService } from '../shared/auth.service';
|
|
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 "@angular/router";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "@angular/material/button";
|
|
12
|
+
import * as i6 from "./auth-google.component";
|
|
13
|
+
import * as i7 from "./auth-intern.component";
|
|
14
|
+
import * as i8 from "./auth-facebook.component";
|
|
15
|
+
import * as i9 from "./auth-microsoft.component";
|
|
16
|
+
import * as i10 from "./auth-microsoftb2c.component";
|
|
17
|
+
import * as i11 from "@ngx-translate/core";
|
|
18
|
+
function AuthFormComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelement(0, "div", 3);
|
|
20
|
+
} }
|
|
21
|
+
function AuthFormComponent_div_0_div_2_igo_auth_google_4_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
23
|
+
i0.ɵɵelementStart(0, "igo-auth-google", 7);
|
|
24
|
+
i0.ɵɵlistener("login", function AuthFormComponent_div_0_div_2_igo_auth_google_4_Template_igo_auth_google_login_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r10.onLogin()); });
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} }
|
|
27
|
+
function AuthFormComponent_div_0_div_2_igo_auth_microsoft_5_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
29
|
+
i0.ɵɵelementStart(0, "igo-auth-microsoft", 7);
|
|
30
|
+
i0.ɵɵlistener("login", function AuthFormComponent_div_0_div_2_igo_auth_microsoft_5_Template_igo_auth_microsoft_login_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r12.onLogin()); });
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
} }
|
|
33
|
+
function AuthFormComponent_div_0_div_2_igo_auth_microsoftb2c_6_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
35
|
+
i0.ɵɵelementStart(0, "igo-auth-microsoftb2c", 7);
|
|
36
|
+
i0.ɵɵlistener("login", function AuthFormComponent_div_0_div_2_igo_auth_microsoftb2c_6_Template_igo_auth_microsoftb2c_login_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.onLogin()); });
|
|
37
|
+
i0.ɵɵelementEnd();
|
|
38
|
+
} }
|
|
39
|
+
function AuthFormComponent_div_0_div_2_igo_auth_facebook_7_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
41
|
+
i0.ɵɵelementStart(0, "igo-auth-facebook", 7);
|
|
42
|
+
i0.ɵɵlistener("login", function AuthFormComponent_div_0_div_2_igo_auth_facebook_7_Template_igo_auth_facebook_login_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r16.onLogin()); });
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
} }
|
|
45
|
+
function AuthFormComponent_div_0_div_2_igo_auth_intern_8_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "igo-auth-intern", 8);
|
|
48
|
+
i0.ɵɵlistener("login", function AuthFormComponent_div_0_div_2_igo_auth_intern_8_Template_igo_auth_intern_login_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r18.onLogin()); });
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const ctx_r9 = i0.ɵɵnextContext(3);
|
|
52
|
+
i0.ɵɵproperty("allowAnonymous", ctx_r9.options.allowAnonymous);
|
|
53
|
+
} }
|
|
54
|
+
function AuthFormComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "h1");
|
|
56
|
+
i0.ɵɵtext(2);
|
|
57
|
+
i0.ɵɵpipe(3, "translate");
|
|
58
|
+
i0.ɵɵelementEnd();
|
|
59
|
+
i0.ɵɵtemplate(4, AuthFormComponent_div_0_div_2_igo_auth_google_4_Template, 1, 0, "igo-auth-google", 5);
|
|
60
|
+
i0.ɵɵtemplate(5, AuthFormComponent_div_0_div_2_igo_auth_microsoft_5_Template, 1, 0, "igo-auth-microsoft", 5);
|
|
61
|
+
i0.ɵɵtemplate(6, AuthFormComponent_div_0_div_2_igo_auth_microsoftb2c_6_Template, 1, 0, "igo-auth-microsoftb2c", 5);
|
|
62
|
+
i0.ɵɵtemplate(7, AuthFormComponent_div_0_div_2_igo_auth_facebook_7_Template, 1, 0, "igo-auth-facebook", 5);
|
|
63
|
+
i0.ɵɵtemplate(8, AuthFormComponent_div_0_div_2_igo_auth_intern_8_Template, 1, 1, "igo-auth-intern", 6);
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
67
|
+
i0.ɵɵadvance(2);
|
|
68
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 6, "igo.auth.connection"));
|
|
69
|
+
i0.ɵɵadvance(2);
|
|
70
|
+
i0.ɵɵproperty("ngIf", ctx_r2.options.google && ctx_r2.options.google.enabled !== false);
|
|
71
|
+
i0.ɵɵadvance(1);
|
|
72
|
+
i0.ɵɵproperty("ngIf", ctx_r2.options.microsoft && ctx_r2.options.microsoft.enabled !== false);
|
|
73
|
+
i0.ɵɵadvance(1);
|
|
74
|
+
i0.ɵɵproperty("ngIf", ctx_r2.options.microsoftb2c && ctx_r2.options.microsoftb2c.enabled !== false);
|
|
75
|
+
i0.ɵɵadvance(1);
|
|
76
|
+
i0.ɵɵproperty("ngIf", ctx_r2.options.facebook && ctx_r2.options.facebook.enabled !== false);
|
|
77
|
+
i0.ɵɵadvance(1);
|
|
78
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.options.intern || ctx_r2.options.intern.enabled !== false);
|
|
79
|
+
} }
|
|
80
|
+
function AuthFormComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
82
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "p");
|
|
83
|
+
i0.ɵɵtext(2);
|
|
84
|
+
i0.ɵɵpipe(3, "translate");
|
|
85
|
+
i0.ɵɵelementEnd();
|
|
86
|
+
i0.ɵɵelementStart(4, "button", 9);
|
|
87
|
+
i0.ɵɵlistener("click", function AuthFormComponent_div_0_div_3_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r20.logout()); });
|
|
88
|
+
i0.ɵɵtext(5);
|
|
89
|
+
i0.ɵɵpipe(6, "translate");
|
|
90
|
+
i0.ɵɵelementEnd()();
|
|
91
|
+
} if (rf & 2) {
|
|
92
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
93
|
+
i0.ɵɵadvance(2);
|
|
94
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 2, "igo.auth.welcome", ctx_r3.user));
|
|
95
|
+
i0.ɵɵadvance(3);
|
|
96
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 5, "igo.auth.signOut"), " ");
|
|
97
|
+
} }
|
|
98
|
+
function AuthFormComponent_div_0_div_4_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
100
|
+
i0.ɵɵelementStart(0, "button", 9);
|
|
101
|
+
i0.ɵɵlistener("click", function AuthFormComponent_div_0_div_4_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r23.home()); });
|
|
102
|
+
i0.ɵɵtext(1);
|
|
103
|
+
i0.ɵɵpipe(2, "translate");
|
|
104
|
+
i0.ɵɵelementEnd();
|
|
105
|
+
} if (rf & 2) {
|
|
106
|
+
i0.ɵɵadvance(1);
|
|
107
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.auth.home"), " ");
|
|
108
|
+
} }
|
|
109
|
+
function AuthFormComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
110
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "p");
|
|
111
|
+
i0.ɵɵtext(2);
|
|
112
|
+
i0.ɵɵpipe(3, "translate");
|
|
113
|
+
i0.ɵɵelementEnd();
|
|
114
|
+
i0.ɵɵtemplate(4, AuthFormComponent_div_0_div_4_button_4_Template, 3, 3, "button", 10);
|
|
115
|
+
i0.ɵɵelementEnd();
|
|
116
|
+
} if (rf & 2) {
|
|
117
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
118
|
+
i0.ɵɵadvance(2);
|
|
119
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.auth.deconnection"));
|
|
120
|
+
i0.ɵɵadvance(2);
|
|
121
|
+
i0.ɵɵproperty("ngIf", ctx_r4.options.homeRoute);
|
|
122
|
+
} }
|
|
123
|
+
function AuthFormComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
124
|
+
i0.ɵɵelementStart(0, "div");
|
|
125
|
+
i0.ɵɵtemplate(1, AuthFormComponent_div_0_div_1_Template, 1, 0, "div", 1);
|
|
126
|
+
i0.ɵɵtemplate(2, AuthFormComponent_div_0_div_2_Template, 9, 8, "div", 2);
|
|
127
|
+
i0.ɵɵtemplate(3, AuthFormComponent_div_0_div_3_Template, 7, 7, "div", 2);
|
|
128
|
+
i0.ɵɵtemplate(4, AuthFormComponent_div_0_div_4_Template, 5, 4, "div", 2);
|
|
129
|
+
i0.ɵɵelementEnd();
|
|
130
|
+
} if (rf & 2) {
|
|
131
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
132
|
+
i0.ɵɵadvance(1);
|
|
133
|
+
i0.ɵɵproperty("ngIf", !ctx_r0.auth.logged && ctx_r0.backgroundDisable);
|
|
134
|
+
i0.ɵɵadvance(1);
|
|
135
|
+
i0.ɵɵproperty("ngIf", !ctx_r0.auth.logged && ctx_r0.showLoginDiv);
|
|
136
|
+
i0.ɵɵadvance(1);
|
|
137
|
+
i0.ɵɵproperty("ngIf", ctx_r0.auth.logged && ctx_r0.showAlreadyConnectedDiv);
|
|
138
|
+
i0.ɵɵadvance(1);
|
|
139
|
+
i0.ɵɵproperty("ngIf", ctx_r0.showLogoutDiv);
|
|
140
|
+
} }
|
|
141
|
+
export class AuthFormComponent {
|
|
142
|
+
auth;
|
|
143
|
+
config;
|
|
144
|
+
router;
|
|
145
|
+
get backgroundDisable() {
|
|
146
|
+
if (this.isLogoutRoute || this.isLogoutRoute) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return this._backgroundDisable;
|
|
150
|
+
}
|
|
151
|
+
set backgroundDisable(value) {
|
|
152
|
+
this._backgroundDisable = value.toString() === 'true';
|
|
153
|
+
}
|
|
154
|
+
_backgroundDisable = true;
|
|
155
|
+
get hasAlreadyConnectedDiv() {
|
|
156
|
+
return this._hasAlreadyConnectedDiv;
|
|
157
|
+
}
|
|
158
|
+
set hasAlreadyConnectedDiv(value) {
|
|
159
|
+
this._hasAlreadyConnectedDiv = value.toString() === 'true';
|
|
160
|
+
}
|
|
161
|
+
_hasAlreadyConnectedDiv = true;
|
|
162
|
+
get hasLogoutDiv() {
|
|
163
|
+
return this._hasLogoutDiv;
|
|
164
|
+
}
|
|
165
|
+
set hasLogoutDiv(value) {
|
|
166
|
+
this._hasLogoutDiv = value.toString() === 'true';
|
|
167
|
+
}
|
|
168
|
+
_hasLogoutDiv = true;
|
|
169
|
+
get showAlreadyConnectedDiv() {
|
|
170
|
+
if (this.isLogoutRoute) {
|
|
171
|
+
return this.hasAlreadyConnectedDiv;
|
|
172
|
+
}
|
|
173
|
+
return this._showAlreadyConnectedDiv;
|
|
174
|
+
}
|
|
175
|
+
set showAlreadyConnectedDiv(value) {
|
|
176
|
+
this._showAlreadyConnectedDiv = value.toString() === 'true';
|
|
177
|
+
}
|
|
178
|
+
_showAlreadyConnectedDiv = false;
|
|
179
|
+
get showLogoutDiv() {
|
|
180
|
+
if (this.isLogoutRoute) {
|
|
181
|
+
return this.hasLogoutDiv;
|
|
182
|
+
}
|
|
183
|
+
return this._showLogoutDiv;
|
|
184
|
+
}
|
|
185
|
+
set showLogoutDiv(value) {
|
|
186
|
+
this._showLogoutDiv = value.toString() === 'true';
|
|
187
|
+
}
|
|
188
|
+
_showLogoutDiv = false;
|
|
189
|
+
get showLoginDiv() {
|
|
190
|
+
if (!this.isLogoutRoute) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
login = new EventEmitter();
|
|
195
|
+
options;
|
|
196
|
+
user;
|
|
197
|
+
visible = true;
|
|
198
|
+
isLoginRoute;
|
|
199
|
+
isLogoutRoute;
|
|
200
|
+
constructor(auth, config, router) {
|
|
201
|
+
this.auth = auth;
|
|
202
|
+
this.config = config;
|
|
203
|
+
this.router = router;
|
|
204
|
+
this.options = this.config.getConfig('auth');
|
|
205
|
+
this.visible = Object.getOwnPropertyNames(this.options).length !== 0;
|
|
206
|
+
}
|
|
207
|
+
ngOnInit() {
|
|
208
|
+
this.analyzeRoute();
|
|
209
|
+
this.getName();
|
|
210
|
+
}
|
|
211
|
+
onLogin() {
|
|
212
|
+
this.auth.goToRedirectUrl();
|
|
213
|
+
this.getName();
|
|
214
|
+
this.login.emit(true);
|
|
215
|
+
}
|
|
216
|
+
logout() {
|
|
217
|
+
this.auth.logout().subscribe(() => {
|
|
218
|
+
this.user = undefined;
|
|
219
|
+
if (this.router) {
|
|
220
|
+
if (this.options?.logoutRoute) {
|
|
221
|
+
this.router.navigate([this.options?.logoutRoute]);
|
|
222
|
+
}
|
|
223
|
+
else if (this.options?.homeRoute) {
|
|
224
|
+
this.router.navigate([this.options?.homeRoute]);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
home() {
|
|
230
|
+
if (this.router && this.options?.homeRoute) {
|
|
231
|
+
this.router.navigate([this.options?.homeRoute]);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
getName() {
|
|
235
|
+
const tokenDecoded = this.auth.decodeToken();
|
|
236
|
+
if (tokenDecoded) {
|
|
237
|
+
this.user = {
|
|
238
|
+
name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
analyzeRoute() {
|
|
243
|
+
if (!this.router) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this.router.events
|
|
247
|
+
.pipe(filter((event) => event instanceof NavigationStart))
|
|
248
|
+
.subscribe((changeEvent) => {
|
|
249
|
+
if (changeEvent.url) {
|
|
250
|
+
const currentRoute = changeEvent.url;
|
|
251
|
+
const logoutRoute = this.options?.logoutRoute;
|
|
252
|
+
const loginRoute = this.options?.loginRoute;
|
|
253
|
+
this.isLogoutRoute = currentRoute === logoutRoute;
|
|
254
|
+
this.isLoginRoute = currentRoute === loginRoute;
|
|
255
|
+
if (this.isLogoutRoute) {
|
|
256
|
+
this.auth.logout();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
static ɵfac = function AuthFormComponent_Factory(t) { return new (t || AuthFormComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.Router, 8)); };
|
|
262
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthFormComponent, selectors: [["igo-auth-form"]], inputs: { backgroundDisable: "backgroundDisable", hasAlreadyConnectedDiv: "hasAlreadyConnectedDiv", hasLogoutDiv: "hasLogoutDiv", showAlreadyConnectedDiv: "showAlreadyConnectedDiv", showLogoutDiv: "showLogoutDiv" }, outputs: { login: "login" }, decls: 1, vars: 1, consts: [[4, "ngIf"], ["class", "backgroundDisable", 4, "ngIf"], ["class", "login center-block", 4, "ngIf"], [1, "backgroundDisable"], [1, "login", "center-block"], [3, "login", 4, "ngIf"], [3, "allowAnonymous", "login", 4, "ngIf"], [3, "login"], [3, "allowAnonymous", "login"], ["mat-raised-button", "", "type", "button", 3, "click"], ["mat-raised-button", "", "type", "button", 3, "click", 4, "ngIf"]], template: function AuthFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
263
|
+
i0.ɵɵtemplate(0, AuthFormComponent_div_0_Template, 5, 4, "div", 0);
|
|
264
|
+
} if (rf & 2) {
|
|
265
|
+
i0.ɵɵproperty("ngIf", ctx.visible);
|
|
266
|
+
} }, dependencies: [i4.NgIf, i5.MatButton, i6.AuthGoogleComponent, i7.AuthInternComponent, i8.AuthFacebookComponent, i9.AuthMicrosoftComponent, i10.AuthMicrosoftb2cComponent, i11.TranslatePipe], styles: ["[_nghost-%COMP%]{z-index:999}div.login[_ngcontent-%COMP%]{z-index:200;width:90%;min-width:360px;max-width:600px;padding:25px 50px;border:1px solid;background-color:#fff;border-color:#888}.center-block[_ngcontent-%COMP%]{position:fixed;top:20%;left:50%;transform:translate(-50%)}.backgroundDisable[_ngcontent-%COMP%]{position:fixed;top:0;left:0;background:#000;opacity:.8;z-index:100;height:100%;width:100%}"] });
|
|
267
|
+
}
|
|
268
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthFormComponent, [{
|
|
269
|
+
type: Component,
|
|
270
|
+
args: [{ selector: 'igo-auth-form', changeDetection: ChangeDetectionStrategy.Default, template: "<div *ngIf=\"visible\">\n <div\n *ngIf=\"!auth.logged && backgroundDisable\"\n class=\"backgroundDisable\"\n ></div>\n\n <div *ngIf=\"!auth.logged && showLoginDiv\" class=\"login center-block\">\n <h1>{{ 'igo.auth.connection' | translate }}</h1>\n\n <igo-auth-google\n *ngIf=\"options.google && options.google.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-google>\n <igo-auth-microsoft\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoft>\n <igo-auth-microsoftb2c\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoftb2c>\n <igo-auth-facebook\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-facebook>\n <igo-auth-intern\n *ngIf=\"!options.intern || options.intern.enabled !== false\"\n [allowAnonymous]=\"options.allowAnonymous\"\n (login)=\"onLogin()\"\n >\n </igo-auth-intern>\n </div>\n\n <div\n *ngIf=\"auth.logged && showAlreadyConnectedDiv\"\n class=\"login center-block\"\n >\n <p>{{ 'igo.auth.welcome' | translate: user }}</p>\n <button mat-raised-button type=\"button\" (click)=\"logout()\">\n {{ 'igo.auth.signOut' | translate }}\n </button>\n </div>\n\n <div *ngIf=\"showLogoutDiv\" class=\"login center-block\">\n <p>{{ 'igo.auth.deconnection' | translate }}</p>\n <button\n *ngIf=\"options.homeRoute\"\n mat-raised-button\n type=\"button\"\n (click)=\"home()\"\n >\n {{ 'igo.auth.home' | translate }}\n </button>\n </div>\n</div>\n", styles: [":host{z-index:999}div.login{z-index:200;width:90%;min-width:360px;max-width:600px;padding:25px 50px;border:1px solid;background-color:#fff;border-color:#888}.center-block{position:fixed;top:20%;left:50%;transform:translate(-50%)}.backgroundDisable{position:fixed;top:0;left:0;background:#000;opacity:.8;z-index:100;height:100%;width:100%}\n"] }]
|
|
271
|
+
}], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router, decorators: [{
|
|
272
|
+
type: Optional
|
|
273
|
+
}] }]; }, { backgroundDisable: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], hasAlreadyConnectedDiv: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], hasLogoutDiv: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], showAlreadyConnectedDiv: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], showLogoutDiv: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], login: [{
|
|
284
|
+
type: Output
|
|
285
|
+
}] }); })();
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9hdXRoLWZvcm0vYXV0aC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9hdXRoLWZvcm0vYXV0aC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNibkQseUJBR087Ozs7SUFLTCwwQ0FHQztJQURDLGtNQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDO0lBRXJCLGlCQUFrQjs7OztJQUNsQiw2Q0FHQztJQURDLHdNQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDO0lBRXJCLGlCQUFxQjs7OztJQUNyQixnREFHQztJQURDLDhNQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDO0lBRXJCLGlCQUF3Qjs7OztJQUN4Qiw0Q0FHQztJQURDLHNNQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDO0lBRXJCLGlCQUFvQjs7OztJQUNwQiwwQ0FJQztJQURDLGtNQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDO0lBRXJCLGlCQUFrQjs7O0lBSGhCLDhEQUF5Qzs7O0lBekI3Qyw4QkFBcUUsU0FBQTtJQUMvRCxZQUF1Qzs7SUFBQSxpQkFBSztJ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TUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLENBQUM7YUFDekQsU0FBUyxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFO1lBQzlCLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7Z0JBQzlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO2dCQUU1QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksS0FBSyxXQUFXLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxLQUFLLFVBQVUsQ0FBQztnQkFFaEQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNwQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzJFQTVJVSxpQkFBaUI7NkRBQWpCLGlCQUFpQjtZQ3RCOUIsa0VBMERNOztZQTFEQSxrQ0FBYTs7O3VGRHNCTixpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE9BQU87O3NCQTRFN0MsUUFBUTt3QkF4RVAsaUJBQWlCO2tCQURwQixLQUFLO1lBYUYsc0JBQXNCO2tCQUR6QixLQUFLO1lBVUYsWUFBWTtrQkFEZixLQUFLO1lBVUYsdUJBQXVCO2tCQUQxQixLQUFLO1lBYUYsYUFBYTtrQkFEaEIsS0FBSztZQWtCSSxLQUFLO2tCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25TdGFydCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEF1dGhPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1hdXRoLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGdldCBiYWNrZ3JvdW5kRGlzYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0xvZ291dFJvdXRlIHx8IHRoaXMuaXNMb2dvdXRSb3V0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZERpc2FibGU7XG4gIH1cbiAgc2V0IGJhY2tncm91bmREaXNhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZERpc2FibGUgPSB2YWx1ZS50b1N0cmluZygpID09PSAndHJ1ZSc7XG4gIH1cbiAgcHJpdmF0ZSBfYmFja2dyb3VuZERpc2FibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBoYXNBbHJlYWR5Q29ubmVjdGVkRGl2KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNBbHJlYWR5Q29ubmVjdGVkRGl2O1xuICB9XG4gIHNldCBoYXNBbHJlYWR5Q29ubmVjdGVkRGl2KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGFzQWxyZWFkeUNvbm5lY3RlZERpdiA9IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJztcbiAgfVxuICBwcml2YXRlIF9oYXNBbHJlYWR5Q29ubmVjdGVkRGl2ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgaGFzTG9nb3V0RGl2KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNMb2dvdXREaXY7XG4gIH1cbiAgc2V0IGhhc0xvZ291dERpdih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hhc0xvZ291dERpdiA9IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJztcbiAgfVxuICBwcml2YXRlIF9oYXNMb2dvdXREaXYgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzaG93QWxyZWFkeUNvbm5lY3RlZERpdigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0xvZ291dFJvdXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNBbHJlYWR5Q29ubmVjdGVkRGl2O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2hvd0FscmVhZHlDb25uZWN0ZWREaXY7XG4gIH1cbiAgc2V0IHNob3dBbHJlYWR5Q29ubmVjdGVkRGl2KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0FscmVhZHlDb25uZWN0ZWREaXYgPSB2YWx1ZS50b1N0cmluZygpID09PSAndHJ1ZSc7XG4gIH1cbiAgcHJpdmF0ZSBfc2hvd0FscmVhZHlDb25uZWN0ZWREaXYgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgc2hvd0xvZ291dERpdigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0xvZ291dFJvdXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNMb2dvdXREaXY7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zaG93TG9nb3V0RGl2O1xuICB9XG4gIHNldCBzaG93TG9nb3V0RGl2KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0xvZ291dERpdiA9IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJztcbiAgfVxuICBwcml2YXRlIF9zaG93TG9nb3V0RGl2ID0gZmFsc2U7XG5cbiAgZ2V0IHNob3dMb2dpbkRpdigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNMb2dvdXRSb3V0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGxvZ2luOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIG9wdGlvbnM/OiBBdXRoT3B0aW9ucztcbiAgcHVibGljIHVzZXI7XG5cbiAgcHVibGljIHZpc2libGUgPSB0cnVlO1xuXG4gIHByaXZhdGUgaXNMb2dpblJvdXRlOiBib29sZWFuO1xuICBwcml2YXRlIGlzTG9nb3V0Um91dGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJyk7XG4gICAgdGhpcy52aXNpYmxlID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5vcHRpb25zKS5sZW5ndGggIT09IDA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hbmFseXplUm91dGUoKTtcbiAgICB0aGlzLmdldE5hbWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxvZ2luKCkge1xuICAgIHRoaXMuYXV0aC5nb1RvUmVkaXJlY3RVcmwoKTtcbiAgICB0aGlzLmdldE5hbWUoKTtcbiAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbG9nb3V0KCkge1xuICAgIHRoaXMuYXV0aC5sb2dvdXQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51c2VyID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKHRoaXMucm91dGVyKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnM/LmxvZ291dFJvdXRlKSB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMub3B0aW9ucz8ubG9nb3V0Um91dGVdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnM/LmhvbWVSb3V0ZSkge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLm9wdGlvbnM/LmhvbWVSb3V0ZV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaG9tZSgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5vcHRpb25zPy5ob21lUm91dGUpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLm9wdGlvbnM/LmhvbWVSb3V0ZV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmFtZSgpIHtcbiAgICBjb25zdCB0b2tlbkRlY29kZWQgPSB0aGlzLmF1dGguZGVjb2RlVG9rZW4oKTtcbiAgICBpZiAodG9rZW5EZWNvZGVkKSB7XG4gICAgICB0aGlzLnVzZXIgPSB7XG4gICAgICAgIG5hbWU6IHRva2VuRGVjb2RlZC51c2VyLmZpcnN0TmFtZSB8fCB0b2tlbkRlY29kZWQudXNlci5zb3VyY2VJZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFuYWx5emVSb3V0ZSgpIHtcbiAgICBpZiAoIXRoaXMucm91dGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2VFdmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChjaGFuZ2VFdmVudC51cmwpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSBjaGFuZ2VFdmVudC51cmw7XG4gICAgICAgICAgY29uc3QgbG9nb3V0Um91dGUgPSB0aGlzLm9wdGlvbnM/LmxvZ291dFJvdXRlO1xuICAgICAgICAgIGNvbnN0IGxvZ2luUm91dGUgPSB0aGlzLm9wdGlvbnM/LmxvZ2luUm91dGU7XG5cbiAgICAgICAgICB0aGlzLmlzTG9nb3V0Um91dGUgPSBjdXJyZW50Um91dGUgPT09IGxvZ291dFJvdXRlO1xuICAgICAgICAgIHRoaXMuaXNMb2dpblJvdXRlID0gY3VycmVudFJvdXRlID09PSBsb2dpblJvdXRlO1xuXG4gICAgICAgICAgaWYgKHRoaXMuaXNMb2dvdXRSb3V0ZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRoLmxvZ291dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ2aXNpYmxlXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cIiFhdXRoLmxvZ2dlZCAmJiBiYWNrZ3JvdW5kRGlzYWJsZVwiXG4gICAgY2xhc3M9XCJiYWNrZ3JvdW5kRGlzYWJsZVwiXG4gID48L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiIWF1dGgubG9nZ2VkICYmIHNob3dMb2dpbkRpdlwiIGNsYXNzPVwibG9naW4gY2VudGVyLWJsb2NrXCI+XG4gICAgPGgxPnt7ICdpZ28uYXV0aC5jb25uZWN0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG5cbiAgICA8aWdvLWF1dGgtZ29vZ2xlXG4gICAgICAqbmdJZj1cIm9wdGlvbnMuZ29vZ2xlICYmIG9wdGlvbnMuZ29vZ2xlLmVuYWJsZWQgIT09IGZhbHNlXCJcbiAgICAgIChsb2dpbik9XCJvbkxvZ2luKClcIlxuICAgID5cbiAgICA8L2lnby1hdXRoLWdvb2dsZT5cbiAgICA8aWdvLWF1dGgtbWljcm9zb2Z0XG4gICAgICAqbmdJZj1cIm9wdGlvbnMubWljcm9zb2Z0ICYmIG9wdGlvbnMubWljcm9zb2Z0LmVuYWJsZWQgIT09IGZhbHNlXCJcbiAgICAgIChsb2dpbik9XCJvbkxvZ2luKClcIlxuICAgID5cbiAgICA8L2lnby1hdXRoLW1pY3Jvc29mdD5cbiAgICA8aWdvLWF1dGgtbWljcm9zb2Z0YjJjXG4gICAgICAqbmdJZj1cIm9wdGlvbnMubWljcm9zb2Z0YjJjICYmIG9wdGlvbnMubWljcm9zb2Z0YjJjLmVuYWJsZWQgIT09IGZhbHNlXCJcbiAgICAgIChsb2dpbik9XCJvbkxvZ2luKClcIlxuICAgID5cbiAgICA8L2lnby1hdXRoLW1pY3Jvc29mdGIyYz5cbiAgICA8aWdvLWF1dGgtZmFjZWJvb2tcbiAgICAgICpuZ0lmPVwib3B0aW9ucy5mYWNlYm9vayAmJiBvcHRpb25zLmZhY2Vib29rLmVuYWJsZWQgIT09IGZhbHNlXCJcbiAgICAgIChsb2dpbik9XCJvbkxvZ2luKClcIlxuICAgID5cbiAgICA8L2lnby1hdXRoLWZhY2Vib29rPlxuICAgIDxpZ28tYXV0aC1pbnRlcm5cbiAgICAgICpuZ0lmPVwiIW9wdGlvbnMuaW50ZXJuIHx8IG9wdGlvbnMuaW50ZXJuLmVuYWJsZWQgIT09IGZhbHNlXCJcbiAgICAgIFthbGxvd0Fub255bW91c109XCJvcHRpb25zLmFsbG93QW5vbnltb3VzXCJcbiAgICAgIChsb2dpbik9XCJvbkxvZ2luKClcIlxuICAgID5cbiAgICA8L2lnby1hdXRoLWludGVybj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYXV0aC5sb2dnZWQgJiYgc2hvd0FscmVhZHlDb25uZWN0ZWREaXZcIlxuICAgIGNsYXNzPVwibG9naW4gY2VudGVyLWJsb2NrXCJcbiAgPlxuICAgIDxwPnt7ICdpZ28uYXV0aC53ZWxjb21lJyB8IHRyYW5zbGF0ZTogdXNlciB9fTwvcD5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgICAgIHt7ICdpZ28uYXV0aC5zaWduT3V0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwic2hvd0xvZ291dERpdlwiIGNsYXNzPVwibG9naW4gY2VudGVyLWJsb2NrXCI+XG4gICAgPHA+e3sgJ2lnby5hdXRoLmRlY29ubmVjdGlvbicgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJvcHRpb25zLmhvbWVSb3V0ZVwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiaG9tZSgpXCJcbiAgICA+XG4gICAgICB7eyAnaWdvLmF1dGguaG9tZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ApplicationRef, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { ConfigService, LanguageService } from '@igo2/core';
|
|
3
|
+
import { AuthService } from '../shared/auth.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../shared/auth.service";
|
|
6
|
+
import * as i2 from "@igo2/core";
|
|
7
|
+
export class AuthGoogleComponent {
|
|
8
|
+
authService;
|
|
9
|
+
config;
|
|
10
|
+
languageService;
|
|
11
|
+
appRef;
|
|
12
|
+
options;
|
|
13
|
+
login = new EventEmitter();
|
|
14
|
+
constructor(authService, config, languageService, appRef) {
|
|
15
|
+
this.authService = authService;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.languageService = languageService;
|
|
18
|
+
this.appRef = appRef;
|
|
19
|
+
this.options = this.config.getConfig('auth.google');
|
|
20
|
+
if (this.options?.apiKey && this.options?.clientId) {
|
|
21
|
+
this.loadSDKGoogle();
|
|
22
|
+
this.loadPlatform();
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.warn('Google authentification needs "apiKey" and "clientId" options');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
handleSignInClick() {
|
|
29
|
+
window.gapi.auth2.getAuthInstance().signIn();
|
|
30
|
+
}
|
|
31
|
+
handleSignOutClick() {
|
|
32
|
+
window.gapi.auth2.getAuthInstance().signOut();
|
|
33
|
+
}
|
|
34
|
+
handleClientLoad() {
|
|
35
|
+
window.gapi.load('client:auth2', () => this.initClient());
|
|
36
|
+
}
|
|
37
|
+
initClient() {
|
|
38
|
+
window.gapi.client
|
|
39
|
+
.init({
|
|
40
|
+
apiKey: this.options?.apiKey,
|
|
41
|
+
clientId: this.options?.clientId,
|
|
42
|
+
discoveryDocs: [
|
|
43
|
+
'https://people.googleapis.com/$discovery/rest?version=v1'
|
|
44
|
+
],
|
|
45
|
+
scope: 'profile'
|
|
46
|
+
})
|
|
47
|
+
.then(() => {
|
|
48
|
+
this.handleSignOutClick();
|
|
49
|
+
this.updateTextButton();
|
|
50
|
+
window.gapi.auth2
|
|
51
|
+
.getAuthInstance()
|
|
52
|
+
.isSignedIn.listen((rep) => {
|
|
53
|
+
this.updateSigninStatus(rep);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
updateSigninStatus(isSignedIn) {
|
|
58
|
+
this.updateTextButton();
|
|
59
|
+
if (isSignedIn) {
|
|
60
|
+
this.loginGoogle(window.gapi.client.getToken().access_token);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
updateTextButton() {
|
|
64
|
+
const btn = document.querySelector('span[id^="not_signed_"]');
|
|
65
|
+
if (btn && this.languageService.getLanguage() !== 'en') {
|
|
66
|
+
if (btn.innerHTML === 'Sign in with Google') {
|
|
67
|
+
btn.innerHTML = this.languageService.translate.instant('igo.auth.google.login');
|
|
68
|
+
}
|
|
69
|
+
else if (btn.innerHTML === 'Signed in with Google') {
|
|
70
|
+
btn.innerHTML = this.languageService.translate.instant('igo.auth.google.logged');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
loginGoogle(token) {
|
|
75
|
+
this.authService.loginWithToken(token, 'google').subscribe(() => {
|
|
76
|
+
this.appRef.tick();
|
|
77
|
+
this.login.emit(true);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
loadSDKGoogle() {
|
|
81
|
+
const fjs = document.getElementsByTagName('script')[0];
|
|
82
|
+
const js = document.createElement('script');
|
|
83
|
+
js.id = 'google-jssdk';
|
|
84
|
+
js.src = 'https://apis.google.com/js/api.js';
|
|
85
|
+
js.onload = () => {
|
|
86
|
+
this.handleClientLoad();
|
|
87
|
+
};
|
|
88
|
+
fjs.parentNode.insertBefore(js, fjs);
|
|
89
|
+
}
|
|
90
|
+
loadPlatform() {
|
|
91
|
+
const fjs = document.getElementsByTagName('script')[0];
|
|
92
|
+
const js = document.createElement('script');
|
|
93
|
+
js.id = 'google-platform';
|
|
94
|
+
js.src = 'https://apis.google.com/js/platform.js';
|
|
95
|
+
fjs.parentNode.insertBefore(js, fjs);
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = function AuthGoogleComponent_Factory(t) { return new (t || AuthGoogleComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i0.ApplicationRef)); };
|
|
98
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthGoogleComponent, selectors: [["igo-auth-google"]], outputs: { login: "login" }, decls: 1, vars: 0, consts: [["data-height", "40", "data-width", "265", "data-longtitle", "true", 1, "g-signin2", "google-login-button"]], template: function AuthGoogleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelement(0, "div", 0);
|
|
100
|
+
} }, styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block}.google-login-button[_ngcontent-%COMP%] .abcRioButton{color:#000000de}"], changeDetection: 0 });
|
|
101
|
+
}
|
|
102
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthGoogleComponent, [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'igo-auth-google', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"g-signin2 google-login-button\"\n data-height=\"40\"\n data-width=\"265\"\n data-longtitle=\"true\"\n></div>\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block}.google-login-button ::ng-deep .abcRioButton{color:#000000de}\n"] }]
|
|
105
|
+
}], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i2.LanguageService }, { type: i0.ApplicationRef }]; }, { login: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}] }); })();
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nb29nbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWdvb2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtZ29vZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVFyRCxNQUFNLE9BQU8sbUJBQW1CO0lBTXBCO0lBQ0E7SUFDQTtJQUNBO0lBUkYsT0FBTyxDQUFxQjtJQUUxQixLQUFLLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFFckUsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixlQUFnQyxFQUNoQyxNQUFzQjtRQUh0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUU5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFN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QUFFLENBQUMsRUFBRSxHQUFHLGNBQWMsQ0FBQztRQUN2QixFQUFFLENBQUMsR0FBRyxHQUFHLG1DQUFtQyxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBQ0YsR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLENBQUM7UUFDMUIsRUFBRSxDQUFDLEdBQUcsR0FBRyx3Q0FBd0MsQ0FBQztRQUNsRCxHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs2RUF0R1UsbUJBQW1COzZEQUFuQixtQkFBbUI7WUNsQmhDLHlCQUtPOzs7dUZEYU0sbUJBQW1CO2NBTi9CLFNBQVM7MkJBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07cUpBS3JDLEtBQUs7a0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBBdXRoR29vZ2xlT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tYXV0aC1nb29nbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1nb29nbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRoLWdvb2dsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoR29vZ2xlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvcHRpb25zPzogQXV0aEdvb2dsZU9wdGlvbnM7XG5cbiAgQE91dHB1dCgpIGxvZ2luOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoLmdvb2dsZScpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucz8uYXBpS2V5ICYmIHRoaXMub3B0aW9ucz8uY2xpZW50SWQpIHtcbiAgICAgIHRoaXMubG9hZFNES0dvb2dsZSgpO1xuICAgICAgdGhpcy5sb2FkUGxhdGZvcm0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnR29vZ2xlIGF1dGhlbnRpZmljYXRpb24gbmVlZHMgXCJhcGlLZXlcIiBhbmQgXCJjbGllbnRJZFwiIG9wdGlvbnMnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaWduSW5DbGljaygpIHtcbiAgICAod2luZG93IGFzIGFueSkuZ2FwaS5hdXRoMi5nZXRBdXRoSW5zdGFuY2UoKS5zaWduSW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaWduT3V0Q2xpY2soKSB7XG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkuYXV0aDIuZ2V0QXV0aEluc3RhbmNlKCkuc2lnbk91dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDbGllbnRMb2FkKCkge1xuICAgICh3aW5kb3cgYXMgYW55KS5nYXBpLmxvYWQoJ2NsaWVudDphdXRoMicsICgpID0+IHRoaXMuaW5pdENsaWVudCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENsaWVudCgpIHtcbiAgICAod2luZG93IGFzIGFueSkuZ2FwaS5jbGllbnRcbiAgICAgIC5pbml0KHtcbiAgICAgICAgYXBpS2V5OiB0aGlzLm9wdGlvbnM/LmFwaUtleSxcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMub3B0aW9ucz8uY2xpZW50SWQsXG4gICAgICAgIGRpc2NvdmVyeURvY3M6IFtcbiAgICAgICAgICAnaHR0cHM6Ly9wZW9wbGUuZ29vZ2xlYXBpcy5jb20vJGRpc2NvdmVyeS9yZXN0P3ZlcnNpb249djEnXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiAncHJvZmlsZSdcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU2lnbk91dENsaWNrKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dEJ1dHRvbigpO1xuICAgICAgICAod2luZG93IGFzIGFueSkuZ2FwaS5hdXRoMlxuICAgICAgICAgIC5nZXRBdXRoSW5zdGFuY2UoKVxuICAgICAgICAgIC5pc1NpZ25lZEluLmxpc3RlbigocmVwKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNpZ25pblN0YXR1cyhyZXApO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNpZ25pblN0YXR1cyhpc1NpZ25lZEluKSB7XG4gICAgdGhpcy51cGRhdGVUZXh0QnV0dG9uKCk7XG4gICAgaWYgKGlzU2lnbmVkSW4pIHtcbiAgICAgIHRoaXMubG9naW5Hb29nbGUoKHdpbmRvdyBhcyBhbnkpLmdhcGkuY2xpZW50LmdldFRva2VuKCkuYWNjZXNzX3Rva2VuKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRleHRCdXR0b24oKSB7XG4gICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbltpZF49XCJub3Rfc2lnbmVkX1wiXScpO1xuICAgIGlmIChidG4gJiYgdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKSAhPT0gJ2VuJykge1xuICAgICAgaWYgKGJ0bi5pbm5lckhUTUwgPT09ICdTaWduIGluIHdpdGggR29vZ2xlJykge1xuICAgICAgICBidG4uaW5uZXJIVE1MID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5hdXRoLmdvb2dsZS5sb2dpbidcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoYnRuLmlubmVySFRNTCA9PT0gJ1NpZ25lZCBpbiB3aXRoIEdvb2dsZScpIHtcbiAgICAgICAgYnRuLmlubmVySFRNTCA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdpZ28uYXV0aC5nb29nbGUubG9nZ2VkJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9naW5Hb29nbGUodG9rZW4pIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luV2l0aFRva2VuKHRva2VuLCAnZ29vZ2xlJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFNES0dvb2dsZSgpIHtcbiAgICBjb25zdCBmanMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07XG4gICAgY29uc3QganMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBqcy5pZCA9ICdnb29nbGUtanNzZGsnO1xuICAgIGpzLnNyYyA9ICdodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9hcGkuanMnO1xuICAgIGpzLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlQ2xpZW50TG9hZCgpO1xuICAgIH07XG4gICAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUGxhdGZvcm0oKSB7XG4gICAgY29uc3QgZmpzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO1xuICAgIGNvbnN0IGpzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAganMuaWQgPSAnZ29vZ2xlLXBsYXRmb3JtJztcbiAgICBqcy5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGxhdGZvcm0uanMnO1xuICAgIGZqcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqcywgZmpzKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImctc2lnbmluMiBnb29nbGUtbG9naW4tYnV0dG9uXCJcbiAgZGF0YS1oZWlnaHQ9XCI0MFwiXG4gIGRhdGEtd2lkdGg9XCIyNjVcIlxuICBkYXRhLWxvbmd0aXRsZT1cInRydWVcIlxuPjwvZGl2PlxuIl19
|