@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,99 +1,99 @@
1
- import { Component, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../shared/auth.service";
4
- import * as i2 from "@igo2/core";
5
- export class AuthGoogleComponent {
6
- constructor(authService, config, languageService, appRef) {
7
- this.authService = authService;
8
- this.config = config;
9
- this.languageService = languageService;
10
- this.appRef = appRef;
11
- this.login = new EventEmitter();
12
- this.options = this.config.getConfig('auth.google') || {};
13
- if (this.options.apiKey && this.options.clientId) {
14
- this.loadSDKGoogle();
15
- this.loadPlatform();
16
- }
17
- else {
18
- console.warn('Google authentification needs "apiKey" and "clientId" options');
19
- }
20
- }
21
- handleSignInClick() {
22
- window.gapi.auth2.getAuthInstance().signIn();
23
- }
24
- handleSignOutClick() {
25
- window.gapi.auth2.getAuthInstance().signOut();
26
- }
27
- handleClientLoad() {
28
- window.gapi.load('client:auth2', () => this.initClient());
29
- }
30
- initClient() {
31
- window.gapi.client
32
- .init({
33
- apiKey: this.options.apiKey,
34
- clientId: this.options.clientId,
35
- discoveryDocs: [
36
- 'https://people.googleapis.com/$discovery/rest?version=v1'
37
- ],
38
- scope: 'profile'
39
- })
40
- .then(() => {
41
- this.handleSignOutClick();
42
- this.updateTextButton();
43
- window.gapi.auth2.getAuthInstance().isSignedIn.listen(rep => {
44
- this.updateSigninStatus(rep);
45
- });
46
- });
47
- }
48
- updateSigninStatus(isSignedIn) {
49
- this.updateTextButton();
50
- if (isSignedIn) {
51
- this.loginGoogle(window.gapi.client.getToken().access_token);
52
- }
53
- }
54
- updateTextButton() {
55
- const btn = document.querySelector('span[id^="not_signed_"]');
56
- if (btn && this.languageService.getLanguage() !== 'en') {
57
- if (btn.innerHTML === 'Sign in with Google') {
58
- btn.innerHTML = this.languageService.translate.instant('igo.auth.google.login');
59
- }
60
- else if (btn.innerHTML === 'Signed in with Google') {
61
- btn.innerHTML = this.languageService.translate.instant('igo.auth.google.logged');
62
- }
63
- }
64
- }
65
- loginGoogle(token) {
66
- this.authService.loginWithToken(token, 'google').subscribe(() => {
67
- this.appRef.tick();
68
- this.login.emit(true);
69
- });
70
- }
71
- loadSDKGoogle() {
72
- const fjs = document.getElementsByTagName('script')[0];
73
- const js = document.createElement('script');
74
- js.id = 'google-jssdk';
75
- js.src = 'https://apis.google.com/js/api.js';
76
- js.onload = () => {
77
- this.handleClientLoad();
78
- };
79
- fjs.parentNode.insertBefore(js, fjs);
80
- }
81
- loadPlatform() {
82
- const fjs = document.getElementsByTagName('script')[0];
83
- const js = document.createElement('script');
84
- js.id = 'google-platform';
85
- js.src = 'https://apis.google.com/js/platform.js';
86
- fjs.parentNode.insertBefore(js, fjs);
87
- }
88
- }
89
- AuthGoogleComponent.ɵ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)); };
90
- AuthGoogleComponent.ɵ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) {
91
- i0.ɵɵelement(0, "div", 0);
92
- } }, styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block}.google-login-button[_ngcontent-%COMP%] .abcRioButton{color:#000000de}"], changeDetection: 0 });
93
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthGoogleComponent, [{
94
- type: Component,
95
- args: [{ selector: 'igo-auth-google', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"g-signin2 google-login-button\" data-height=\"40\" data-width=\"265\" data-longtitle=\"true\">\r\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block}.google-login-button ::ng-deep .abcRioButton{color:#000000de}\n"] }]
96
- }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i2.LanguageService }, { type: i0.ApplicationRef }]; }, { login: [{
97
- type: Output
98
- }] }); })();
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nb29nbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWdvb2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtZ29vZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7QUFZdkIsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLE1BQXNCO1FBSHRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBTnRCLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVFuRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2hELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0RBQStELENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDckIsTUFBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFF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QUFDLENBQUM7UUFDRixHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQixFQUFFLENBQUMsR0FBRyxHQUFHLHdDQUF3QyxDQUFDO1FBQ2xELEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDOztzRkE5RlUsbUJBQW1CO3NFQUFuQixtQkFBbUI7UUNsQmhDLHlCQUFtRzs7dUZEa0J0RixtQkFBbUI7Y0FOL0IsU0FBUzsyQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtxSkFLckMsS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhHb29nbGVPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWF1dGgtZ29vZ2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1nb29nbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dGgtZ29vZ2xlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhHb29nbGVDb21wb25lbnQge1xyXG4gIHByaXZhdGUgb3B0aW9uczogQXV0aEdvb2dsZU9wdGlvbnM7XHJcblxyXG4gIEBPdXRwdXQoKSBsb2dpbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGguZ29vZ2xlJykgfHwge307XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcGlLZXkgJiYgdGhpcy5vcHRpb25zLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMubG9hZFNES0dvb2dsZSgpO1xyXG4gICAgICB0aGlzLmxvYWRQbGF0Zm9ybSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdHb29nbGUgYXV0aGVudGlmaWNhdGlvbiBuZWVkcyBcImFwaUtleVwiIGFuZCBcImNsaWVudElkXCIgb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNpZ25JbkNsaWNrKCkge1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkuYXV0aDIuZ2V0QXV0aEluc3RhbmNlKCkuc2lnbkluKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2lnbk91dENsaWNrKCkge1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkuYXV0aDIuZ2V0QXV0aEluc3RhbmNlKCkuc2lnbk91dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDbGllbnRMb2FkKCkge1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkubG9hZCgnY2xpZW50OmF1dGgyJywgKCkgPT4gdGhpcy5pbml0Q2xpZW50KCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q2xpZW50KCkge1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkuY2xpZW50XHJcbiAgICAgIC5pbml0KHtcclxuICAgICAgICBhcGlLZXk6IHRoaXMub3B0aW9ucy5hcGlLZXksXHJcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMub3B0aW9ucy5jbGllbnRJZCxcclxuICAgICAgICBkaXNjb3ZlcnlEb2NzOiBbXHJcbiAgICAgICAgICAnaHR0cHM6Ly9wZW9wbGUuZ29vZ2xlYXBpcy5jb20vJGRpc2NvdmVyeS9yZXN0P3ZlcnNpb249djEnXHJcbiAgICAgICAgXSxcclxuICAgICAgICBzY29wZTogJ3Byb2ZpbGUnXHJcbiAgICAgIH0pXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZVNpZ25PdXRDbGljaygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVGV4dEJ1dHRvbigpO1xyXG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5nYXBpLmF1dGgyLmdldEF1dGhJbnN0YW5jZSgpLmlzU2lnbmVkSW4ubGlzdGVuKHJlcCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNpZ25pblN0YXR1cyhyZXApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2lnbmluU3RhdHVzKGlzU2lnbmVkSW4pIHtcclxuICAgIHRoaXMudXBkYXRlVGV4dEJ1dHRvbigpO1xyXG4gICAgaWYgKGlzU2lnbmVkSW4pIHtcclxuICAgICAgdGhpcy5sb2dpbkdvb2dsZSgod2luZG93IGFzIGFueSkuZ2FwaS5jbGllbnQuZ2V0VG9rZW4oKS5hY2Nlc3NfdG9rZW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUZXh0QnV0dG9uKCkge1xyXG4gICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbltpZF49XCJub3Rfc2lnbmVkX1wiXScpO1xyXG4gICAgaWYgKGJ0biAmJiB0aGlzLmxhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZSgpICE9PSAnZW4nKSB7XHJcbiAgICAgIGlmIChidG4uaW5uZXJIVE1MID09PSAnU2lnbiBpbiB3aXRoIEdvb2dsZScpIHtcclxuICAgICAgICBidG4uaW5uZXJIVE1MID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5hdXRoLmdvb2dsZS5sb2dpbicpO1xyXG4gICAgICB9IGVsc2UgaWYgKGJ0bi5pbm5lckhUTUwgPT09ICdTaWduZWQgaW4gd2l0aCBHb29nbGUnKSB7XHJcbiAgICAgICAgYnRuLmlubmVySFRNTCA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uYXV0aC5nb29nbGUubG9nZ2VkJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9naW5Hb29nbGUodG9rZW4pIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW5XaXRoVG9rZW4odG9rZW4sICdnb29nbGUnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XHJcbiAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkU0RLR29vZ2xlKCkge1xyXG4gICAgY29uc3QgZmpzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO1xyXG4gICAgY29uc3QganMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIGpzLmlkID0gJ2dvb2dsZS1qc3Nkayc7XHJcbiAgICBqcy5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvYXBpLmpzJztcclxuICAgIGpzLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVDbGllbnRMb2FkKCk7XHJcbiAgICB9O1xyXG4gICAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkUGxhdGZvcm0oKSB7XHJcbiAgICBjb25zdCBmanMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07XHJcbiAgICBjb25zdCBqcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAganMuaWQgPSAnZ29vZ2xlLXBsYXRmb3JtJztcclxuICAgIGpzLnNyYyA9ICdodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9wbGF0Zm9ybS5qcyc7XHJcbiAgICBmanMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoanMsIGZqcyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnLXNpZ25pbjIgZ29vZ2xlLWxvZ2luLWJ1dHRvblwiIGRhdGEtaGVpZ2h0PVwiNDBcIiBkYXRhLXdpZHRoPVwiMjY1XCIgZGF0YS1sb25ndGl0bGU9XCJ0cnVlXCI+XHJcbiJdfQ==
1
+ import { Component, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../shared/auth.service";
4
+ import * as i2 from "@igo2/core";
5
+ export class AuthGoogleComponent {
6
+ constructor(authService, config, languageService, appRef) {
7
+ this.authService = authService;
8
+ this.config = config;
9
+ this.languageService = languageService;
10
+ this.appRef = appRef;
11
+ this.login = new EventEmitter();
12
+ this.options = this.config.getConfig('auth.google') || {};
13
+ if (this.options.apiKey && this.options.clientId) {
14
+ this.loadSDKGoogle();
15
+ this.loadPlatform();
16
+ }
17
+ else {
18
+ console.warn('Google authentification needs "apiKey" and "clientId" options');
19
+ }
20
+ }
21
+ handleSignInClick() {
22
+ window.gapi.auth2.getAuthInstance().signIn();
23
+ }
24
+ handleSignOutClick() {
25
+ window.gapi.auth2.getAuthInstance().signOut();
26
+ }
27
+ handleClientLoad() {
28
+ window.gapi.load('client:auth2', () => this.initClient());
29
+ }
30
+ initClient() {
31
+ window.gapi.client
32
+ .init({
33
+ apiKey: this.options.apiKey,
34
+ clientId: this.options.clientId,
35
+ discoveryDocs: [
36
+ 'https://people.googleapis.com/$discovery/rest?version=v1'
37
+ ],
38
+ scope: 'profile'
39
+ })
40
+ .then(() => {
41
+ this.handleSignOutClick();
42
+ this.updateTextButton();
43
+ window.gapi.auth2.getAuthInstance().isSignedIn.listen(rep => {
44
+ this.updateSigninStatus(rep);
45
+ });
46
+ });
47
+ }
48
+ updateSigninStatus(isSignedIn) {
49
+ this.updateTextButton();
50
+ if (isSignedIn) {
51
+ this.loginGoogle(window.gapi.client.getToken().access_token);
52
+ }
53
+ }
54
+ updateTextButton() {
55
+ const btn = document.querySelector('span[id^="not_signed_"]');
56
+ if (btn && this.languageService.getLanguage() !== 'en') {
57
+ if (btn.innerHTML === 'Sign in with Google') {
58
+ btn.innerHTML = this.languageService.translate.instant('igo.auth.google.login');
59
+ }
60
+ else if (btn.innerHTML === 'Signed in with Google') {
61
+ btn.innerHTML = this.languageService.translate.instant('igo.auth.google.logged');
62
+ }
63
+ }
64
+ }
65
+ loginGoogle(token) {
66
+ this.authService.loginWithToken(token, 'google').subscribe(() => {
67
+ this.appRef.tick();
68
+ this.login.emit(true);
69
+ });
70
+ }
71
+ loadSDKGoogle() {
72
+ const fjs = document.getElementsByTagName('script')[0];
73
+ const js = document.createElement('script');
74
+ js.id = 'google-jssdk';
75
+ js.src = 'https://apis.google.com/js/api.js';
76
+ js.onload = () => {
77
+ this.handleClientLoad();
78
+ };
79
+ fjs.parentNode.insertBefore(js, fjs);
80
+ }
81
+ loadPlatform() {
82
+ const fjs = document.getElementsByTagName('script')[0];
83
+ const js = document.createElement('script');
84
+ js.id = 'google-platform';
85
+ js.src = 'https://apis.google.com/js/platform.js';
86
+ fjs.parentNode.insertBefore(js, fjs);
87
+ }
88
+ }
89
+ AuthGoogleComponent.ɵ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)); };
90
+ AuthGoogleComponent.ɵ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) {
91
+ i0.ɵɵelement(0, "div", 0);
92
+ } }, styles: ["[_nghost-%COMP%]{padding:10px 10px 10px 0;display:inline-block}.google-login-button[_ngcontent-%COMP%] .abcRioButton{color:#000000de}"], changeDetection: 0 });
93
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthGoogleComponent, [{
94
+ type: Component,
95
+ args: [{ selector: 'igo-auth-google', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"g-signin2 google-login-button\" data-height=\"40\" data-width=\"265\" data-longtitle=\"true\">\n", styles: [":host{padding:10px 10px 10px 0;display:inline-block}.google-login-button ::ng-deep .abcRioButton{color:#000000de}\n"] }]
96
+ }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i2.LanguageService }, { type: i0.ApplicationRef }]; }, { login: [{
97
+ type: Output
98
+ }] }); })();
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nb29nbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWdvb2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtZ29vZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7QUFZdkIsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLE1BQXNCO1FBSHRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBTnRCLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVFuRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2hELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0RBQStELENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDckIsTUFBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFF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QUFDLENBQUM7UUFDRixHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQixFQUFFLENBQUMsR0FBRyxHQUFHLHdDQUF3QyxDQUFDO1FBQ2xELEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDOztzRkE5RlUsbUJBQW1CO3NFQUFuQixtQkFBbUI7UUNsQmhDLHlCQUFtRzs7dUZEa0J0RixtQkFBbUI7Y0FOL0IsU0FBUzsyQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtxSkFLckMsS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQXBwbGljYXRpb25SZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEF1dGhHb29nbGVPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2F1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1hdXRoLWdvb2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWdvb2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dGgtZ29vZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHb29nbGVDb21wb25lbnQge1xuICBwcml2YXRlIG9wdGlvbnM6IEF1dGhHb29nbGVPcHRpb25zO1xuXG4gIEBPdXRwdXQoKSBsb2dpbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aC5nb29nbGUnKSB8fCB7fTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXBpS2V5ICYmIHRoaXMub3B0aW9ucy5jbGllbnRJZCkge1xuICAgICAgdGhpcy5sb2FkU0RLR29vZ2xlKCk7XG4gICAgICB0aGlzLmxvYWRQbGF0Zm9ybSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0dvb2dsZSBhdXRoZW50aWZpY2F0aW9uIG5lZWRzIFwiYXBpS2V5XCIgYW5kIFwiY2xpZW50SWRcIiBvcHRpb25zJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZVNpZ25JbkNsaWNrKCkge1xuICAgICh3aW5kb3cgYXMgYW55KS5nYXBpLmF1dGgyLmdldEF1dGhJbnN0YW5jZSgpLnNpZ25JbigpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVNpZ25PdXRDbGljaygpIHtcbiAgICAod2luZG93IGFzIGFueSkuZ2FwaS5hdXRoMi5nZXRBdXRoSW5zdGFuY2UoKS5zaWduT3V0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNsaWVudExvYWQoKSB7XG4gICAgKHdpbmRvdyBhcyBhbnkpLmdhcGkubG9hZCgnY2xpZW50OmF1dGgyJywgKCkgPT4gdGhpcy5pbml0Q2xpZW50KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q2xpZW50KCkge1xuICAgICh3aW5kb3cgYXMgYW55KS5nYXBpLmNsaWVudFxuICAgICAgLmluaXQoe1xuICAgICAgICBhcGlLZXk6IHRoaXMub3B0aW9ucy5hcGlLZXksXG4gICAgICAgIGNsaWVudElkOiB0aGlzLm9wdGlvbnMuY2xpZW50SWQsXG4gICAgICAgIGRpc2NvdmVyeURvY3M6IFtcbiAgICAgICAgICAnaHR0cHM6Ly9wZW9wbGUuZ29vZ2xlYXBpcy5jb20vJGRpc2NvdmVyeS9yZXN0P3ZlcnNpb249djEnXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiAncHJvZmlsZSdcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU2lnbk91dENsaWNrKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dEJ1dHRvbigpO1xuICAgICAgICAod2luZG93IGFzIGFueSkuZ2FwaS5hdXRoMi5nZXRBdXRoSW5zdGFuY2UoKS5pc1NpZ25lZEluLmxpc3RlbihyZXAgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlU2lnbmluU3RhdHVzKHJlcCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNpZ25pblN0YXR1cyhpc1NpZ25lZEluKSB7XG4gICAgdGhpcy51cGRhdGVUZXh0QnV0dG9uKCk7XG4gICAgaWYgKGlzU2lnbmVkSW4pIHtcbiAgICAgIHRoaXMubG9naW5Hb29nbGUoKHdpbmRvdyBhcyBhbnkpLmdhcGkuY2xpZW50LmdldFRva2VuKCkuYWNjZXNzX3Rva2VuKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRleHRCdXR0b24oKSB7XG4gICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbltpZF49XCJub3Rfc2lnbmVkX1wiXScpO1xuICAgIGlmIChidG4gJiYgdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKSAhPT0gJ2VuJykge1xuICAgICAgaWYgKGJ0bi5pbm5lckhUTUwgPT09ICdTaWduIGluIHdpdGggR29vZ2xlJykge1xuICAgICAgICBidG4uaW5uZXJIVE1MID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5hdXRoLmdvb2dsZS5sb2dpbicpO1xuICAgICAgfSBlbHNlIGlmIChidG4uaW5uZXJIVE1MID09PSAnU2lnbmVkIGluIHdpdGggR29vZ2xlJykge1xuICAgICAgICBidG4uaW5uZXJIVE1MID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5hdXRoLmdvb2dsZS5sb2dnZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvZ2luR29vZ2xlKHRva2VuKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dpbldpdGhUb2tlbih0b2tlbiwgJ2dvb2dsZScpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTREtHb29nbGUoKSB7XG4gICAgY29uc3QgZmpzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO1xuICAgIGNvbnN0IGpzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAganMuaWQgPSAnZ29vZ2xlLWpzc2RrJztcbiAgICBqcy5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvYXBpLmpzJztcbiAgICBqcy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUNsaWVudExvYWQoKTtcbiAgICB9O1xuICAgIGZqcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqcywgZmpzKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFBsYXRmb3JtKCkge1xuICAgIGNvbnN0IGZqcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtcbiAgICBjb25zdCBqcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIGpzLmlkID0gJ2dvb2dsZS1wbGF0Zm9ybSc7XG4gICAganMuc3JjID0gJ2h0dHBzOi8vYXBpcy5nb29nbGUuY29tL2pzL3BsYXRmb3JtLmpzJztcbiAgICBmanMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoanMsIGZqcyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnLXNpZ25pbjIgZ29vZ2xlLWxvZ2luLWJ1dHRvblwiIGRhdGEtaGVpZ2h0PVwiNDBcIiBkYXRhLXdpZHRoPVwiMjY1XCIgZGF0YS1sb25ndGl0bGU9XCJ0cnVlXCI+XG4iXX0=
@@ -1,119 +1,119 @@
1
- import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../shared/auth.service";
5
- import * as i2 from "@igo2/core";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "@angular/material/form-field";
9
- import * as i6 from "@angular/material/input";
10
- import * as i7 from "@angular/material/button";
11
- import * as i8 from "@ngx-translate/core";
12
- function AuthInternComponent_button_12_Template(rf, ctx) { if (rf & 1) {
13
- const _r3 = i0.ɵɵgetCurrentView();
14
- i0.ɵɵelementStart(0, "button", 7);
15
- i0.ɵɵlistener("click", function AuthInternComponent_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.loginAnonymous()); });
16
- i0.ɵɵtext(1);
17
- i0.ɵɵpipe(2, "translate");
18
- i0.ɵɵelementEnd();
19
- } if (rf & 2) {
20
- const ctx_r0 = i0.ɵɵnextContext();
21
- i0.ɵɵproperty("disabled", ctx_r0.loading);
22
- i0.ɵɵadvance(1);
23
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.auth.accessAnonymous"), " ");
24
- } }
25
- function AuthInternComponent_div_13_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "div");
27
- i0.ɵɵelement(1, "br");
28
- i0.ɵɵelementStart(2, "font", 8);
29
- i0.ɵɵtext(3);
30
- i0.ɵɵelementEnd()();
31
- } if (rf & 2) {
32
- const ctx_r1 = i0.ɵɵnextContext();
33
- i0.ɵɵadvance(3);
34
- i0.ɵɵtextInterpolate(ctx_r1.error);
35
- } }
36
- export class AuthInternComponent {
37
- constructor(auth, languageService, fb) {
38
- this.auth = auth;
39
- this.languageService = languageService;
40
- this._allowAnonymous = true;
41
- this.error = '';
42
- this.loading = false;
43
- this.login = new EventEmitter();
44
- this.form = fb.group({
45
- username: ['', Validators.required],
46
- password: ['', Validators.required]
47
- });
48
- }
49
- get allowAnonymous() {
50
- return this._allowAnonymous;
51
- }
52
- set allowAnonymous(value) {
53
- this._allowAnonymous = value;
54
- }
55
- loginUser(values) {
56
- this.loading = true;
57
- this.auth.login(values.username, values.password).subscribe(() => {
58
- this.login.emit(true);
59
- this.loading = false;
60
- }, (error) => {
61
- try {
62
- this.languageService.translate
63
- .get('igo.auth.error.' + error.error.message)
64
- .subscribe(errorMsg => (this.error = errorMsg));
65
- }
66
- catch (e) {
67
- this.error = error.error.message;
68
- }
69
- this.loading = false;
70
- });
71
- return false;
72
- }
73
- loginAnonymous() {
74
- this.auth.loginAnonymous().subscribe(() => {
75
- this.login.emit(true);
76
- });
77
- }
78
- }
79
- AuthInternComponent.ɵfac = function AuthInternComponent_Factory(t) { return new (t || AuthInternComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder)); };
80
- AuthInternComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthInternComponent, selectors: [["igo-auth-intern"]], inputs: { allowAnonymous: "allowAnonymous" }, outputs: { login: "login" }, decls: 14, vars: 12, consts: [["role", "form", 3, "formGroup", "ngSubmit"], [1, "full-width"], ["matInput", "", "required", "", "formControlName", "username", 3, "placeholder"], ["matInput", "", "required", "", "type", "password", "formControlName", "password", 3, "placeholder"], ["mat-raised-button", "", "type", "submit"], ["mat-raised-button", "", "class", "anonymous", "type", "button", 3, "disabled", "click", 4, "ngIf"], [4, "ngIf"], ["mat-raised-button", "", "type", "button", 1, "anonymous", 3, "disabled", "click"], ["size", "3", "color", "red"]], template: function AuthInternComponent_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelementStart(0, "form", 0);
82
- i0.ɵɵlistener("ngSubmit", function AuthInternComponent_Template_form_ngSubmit_0_listener() { return ctx.loginUser(ctx.form.value); });
83
- i0.ɵɵelementStart(1, "div")(2, "mat-form-field", 1);
84
- i0.ɵɵelement(3, "input", 2);
85
- i0.ɵɵpipe(4, "translate");
86
- i0.ɵɵelementEnd()();
87
- i0.ɵɵelementStart(5, "div")(6, "mat-form-field", 1);
88
- i0.ɵɵelement(7, "input", 3);
89
- i0.ɵɵpipe(8, "translate");
90
- i0.ɵɵelementEnd()();
91
- i0.ɵɵelementStart(9, "button", 4);
92
- i0.ɵɵtext(10);
93
- i0.ɵɵpipe(11, "translate");
94
- i0.ɵɵelementEnd();
95
- i0.ɵɵtemplate(12, AuthInternComponent_button_12_Template, 3, 4, "button", 5);
96
- i0.ɵɵtemplate(13, AuthInternComponent_div_13_Template, 4, 1, "div", 6);
97
- i0.ɵɵelementEnd();
98
- } if (rf & 2) {
99
- i0.ɵɵproperty("formGroup", ctx.form);
100
- i0.ɵɵadvance(3);
101
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 6, "igo.auth.user"));
102
- i0.ɵɵadvance(4);
103
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 8, "igo.auth.password"));
104
- i0.ɵɵadvance(3);
105
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 10, "igo.auth.login"));
106
- i0.ɵɵadvance(2);
107
- i0.ɵɵproperty("ngIf", ctx.allowAnonymous);
108
- i0.ɵɵadvance(1);
109
- i0.ɵɵproperty("ngIf", ctx.error);
110
- } }, dependencies: [i4.NgIf, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.RequiredValidator, i3.FormGroupDirective, i3.FormControlName, i5.MatFormField, i6.MatInput, i7.MatButton, i8.TranslatePipe], styles: [".full-width[_ngcontent-%COMP%]{width:100%}.anonymous[_ngcontent-%COMP%]{margin-left:10px}"] });
111
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthInternComponent, [{
112
- type: Component,
113
- args: [{ selector: 'igo-auth-intern', changeDetection: ChangeDetectionStrategy.Default, template: "<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required placeholder=\"{{'igo.auth.user' | translate}}\" formControlName=\"username\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <input matInput required type=\"password\" placeholder=\"{{'igo.auth.password' | translate}}\" formControlName=\"password\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <button mat-raised-button type=\"submit\">{{'igo.auth.login' | translate}}</button>\r\n <button *ngIf=\"allowAnonymous\" mat-raised-button class=\"anonymous\" type=\"button\" [disabled]=\"loading\" (click)=\"loginAnonymous()\">\r\n {{'igo.auth.accessAnonymous' | translate }}\r\n </button>\r\n <div *ngIf=\"error\">\r\n <br/>\r\n <font size=\"3\" color=\"red\">{{error}}</font>\r\n </div>\r\n</form>\r\n\r\n<!--\r\nThis part was removed from the below line to fix Angular issue 30616 : [disabled]=\"!form.valid || loading\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid || loading\">{{'igo.auth.login' | translate}}</button>*/\r\n-->\r\n", styles: [".full-width{width:100%}.anonymous{margin-left:10px}\n"] }]
114
- }], function () { return [{ type: i1.AuthService }, { type: i2.LanguageService }, { type: i3.UntypedFormBuilder }]; }, { allowAnonymous: [{
115
- type: Input
116
- }], login: [{
117
- type: Output
118
- }] }); })();
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWludGVybi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtaW50ZXJuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQXdDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztJQ09oRixpQ0FBaUk7SUFBM0Isb0tBQVMsZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBQzlILFlBQ0Y7O0lBQUEsaUJBQVM7OztJQUZ3RSx5Q0FBb0I7SUFDbkcsZUFDRjtJQURFLGlGQUNGOzs7SUFDQSwyQkFBbUI7SUFDakIscUJBQUs7SUFDTCwrQkFBMkI7SUFBQSxZQUFTO0lBQUEsaUJBQU8sRUFBQTs7O0lBQWhCLGVBQVM7SUFBVCxrQ0FBUzs7QUREeEMsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsWUFDUyxJQUFpQixFQUNoQixlQUFnQyxFQUN4QyxFQUFzQjtRQUZmLFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVmxDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXhCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWIsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBT25FLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBeEJELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQW9CRCxTQUFTLENBQUMsTUFBVztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQ3pELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsSUFBSTtnQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVM7cUJBQzNCLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDNUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0ZBcERVLG1CQUFtQjtzRUFBbkIsbUJBQW1CO1FDbEJoQywrQkFBd0U7UUFBbkMsb0dBQVksNkJBQXFCLElBQUM7UUFDckUsMkJBQUssd0JBQUE7UUFFRCwyQkFBa0c7O1FBQ3BHLGlCQUFpQixFQUFBO1FBR25CLDJCQUFLLHdCQUFBO1FBRUQsMkJBQXNIOztRQUN4SCxpQkFBaUIsRUFBQTtRQUduQixpQ0FBd0M7UUFBQSxhQUFnQzs7UUFBQSxpQkFBUztRQUNqRiw0RUFFUztRQUNULHNFQUdNO1FBQ1IsaUJBQU87O1FBckJELG9DQUFrQjtRQUdPLGVBQTZDO1FBQTdDLDhFQUE2QztRQU03QixlQUFpRDtRQUFqRCxrRkFBaUQ7UUFJdEQsZUFBZ0M7UUFBaEMsOERBQWdDO1FBQy9ELGVBQW9CO1FBQXBCLHlDQUFvQjtRQUd2QixlQUFXO1FBQVgsZ0NBQVc7O3VGRENOLG1CQUFtQjtjQU4vQixTQUFTOzJCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxPQUFPOzZIQUk1QyxjQUFjO2tCQURqQixLQUFLO1lBYUksS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWF1dGgtaW50ZXJuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1pbnRlcm4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dGgtaW50ZXJuLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJuQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBhbGxvd0Fub255bW91cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd0Fub255bW91cztcclxuICB9XHJcbiAgc2V0IGFsbG93QW5vbnltb3VzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbGxvd0Fub255bW91cyA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9hbGxvd0Fub255bW91cyA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBlcnJvciA9ICcnO1xyXG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBsb2dpbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBmYjogVW50eXBlZEZvcm1CdWlsZGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBmYi5ncm91cCh7XHJcbiAgICAgIHVzZXJuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dpblVzZXIodmFsdWVzOiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmF1dGgubG9naW4odmFsdWVzLnVzZXJuYW1lLCB2YWx1ZXMucGFzc3dvcmQpLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlXHJcbiAgICAgICAgICAgIC5nZXQoJ2lnby5hdXRoLmVycm9yLicgKyBlcnJvci5lcnJvci5tZXNzYWdlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGVycm9yTXNnID0+ICh0aGlzLmVycm9yID0gZXJyb3JNc2cpKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2dpbkFub255bW91cygpIHtcclxuICAgIHRoaXMuYXV0aC5sb2dpbkFub255bW91cygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9naW4uZW1pdCh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiByb2xlPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJsb2dpblVzZXIoZm9ybS52YWx1ZSlcIj5cclxuICA8ZGl2PlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcmVxdWlyZWQgcGxhY2Vob2xkZXI9XCJ7eydpZ28uYXV0aC51c2VyJyB8IHRyYW5zbGF0ZX19XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXY+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCB0eXBlPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cInt7J2lnby5hdXRoLnBhc3N3b3JkJyB8IHRyYW5zbGF0ZX19XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiPnt7J2lnby5hdXRoLmxvZ2luJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPGJ1dHRvbiAqbmdJZj1cImFsbG93QW5vbnltb3VzXCIgbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJhbm9ueW1vdXNcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiAoY2xpY2spPVwibG9naW5Bbm9ueW1vdXMoKVwiPlxyXG4gICAge3snaWdvLmF1dGguYWNjZXNzQW5vbnltb3VzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxkaXYgKm5nSWY9XCJlcnJvclwiPlxyXG4gICAgPGJyLz5cclxuICAgIDxmb250IHNpemU9XCIzXCIgY29sb3I9XCJyZWRcIj57e2Vycm9yfX08L2ZvbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjwhLS1cclxuVGhpcyBwYXJ0IHdhcyByZW1vdmVkIGZyb20gdGhlIGJlbG93IGxpbmUgdG8gZml4IEFuZ3VsYXIgaXNzdWUgMzA2MTYgOiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgbG9hZGluZ1xyXG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCBsb2FkaW5nXCI+e3snaWdvLmF1dGgubG9naW4nIHwgdHJhbnNsYXRlfX08L2J1dHRvbj4qL1xyXG4tLT5cclxuIl19
1
+ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../shared/auth.service";
5
+ import * as i2 from "@igo2/core";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/material/form-field";
9
+ import * as i6 from "@angular/material/input";
10
+ import * as i7 from "@angular/material/button";
11
+ import * as i8 from "@ngx-translate/core";
12
+ function AuthInternComponent_button_12_Template(rf, ctx) { if (rf & 1) {
13
+ const _r3 = i0.ɵɵgetCurrentView();
14
+ i0.ɵɵelementStart(0, "button", 7);
15
+ i0.ɵɵlistener("click", function AuthInternComponent_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.loginAnonymous()); });
16
+ i0.ɵɵtext(1);
17
+ i0.ɵɵpipe(2, "translate");
18
+ i0.ɵɵelementEnd();
19
+ } if (rf & 2) {
20
+ const ctx_r0 = i0.ɵɵnextContext();
21
+ i0.ɵɵproperty("disabled", ctx_r0.loading);
22
+ i0.ɵɵadvance(1);
23
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.auth.accessAnonymous"), " ");
24
+ } }
25
+ function AuthInternComponent_div_13_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "div");
27
+ i0.ɵɵelement(1, "br");
28
+ i0.ɵɵelementStart(2, "font", 8);
29
+ i0.ɵɵtext(3);
30
+ i0.ɵɵelementEnd()();
31
+ } if (rf & 2) {
32
+ const ctx_r1 = i0.ɵɵnextContext();
33
+ i0.ɵɵadvance(3);
34
+ i0.ɵɵtextInterpolate(ctx_r1.error);
35
+ } }
36
+ export class AuthInternComponent {
37
+ constructor(auth, languageService, fb) {
38
+ this.auth = auth;
39
+ this.languageService = languageService;
40
+ this._allowAnonymous = true;
41
+ this.error = '';
42
+ this.loading = false;
43
+ this.login = new EventEmitter();
44
+ this.form = fb.group({
45
+ username: ['', Validators.required],
46
+ password: ['', Validators.required]
47
+ });
48
+ }
49
+ get allowAnonymous() {
50
+ return this._allowAnonymous;
51
+ }
52
+ set allowAnonymous(value) {
53
+ this._allowAnonymous = value;
54
+ }
55
+ loginUser(values) {
56
+ this.loading = true;
57
+ this.auth.login(values.username, values.password).subscribe(() => {
58
+ this.login.emit(true);
59
+ this.loading = false;
60
+ }, (error) => {
61
+ try {
62
+ this.languageService.translate
63
+ .get('igo.auth.error.' + error.error.message)
64
+ .subscribe(errorMsg => (this.error = errorMsg));
65
+ }
66
+ catch (e) {
67
+ this.error = error.error.message;
68
+ }
69
+ this.loading = false;
70
+ });
71
+ return false;
72
+ }
73
+ loginAnonymous() {
74
+ this.auth.loginAnonymous().subscribe(() => {
75
+ this.login.emit(true);
76
+ });
77
+ }
78
+ }
79
+ AuthInternComponent.ɵfac = function AuthInternComponent_Factory(t) { return new (t || AuthInternComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder)); };
80
+ AuthInternComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthInternComponent, selectors: [["igo-auth-intern"]], inputs: { allowAnonymous: "allowAnonymous" }, outputs: { login: "login" }, decls: 14, vars: 12, consts: [["role", "form", 3, "formGroup", "ngSubmit"], [1, "full-width"], ["matInput", "", "required", "", "formControlName", "username", 3, "placeholder"], ["matInput", "", "required", "", "type", "password", "formControlName", "password", 3, "placeholder"], ["mat-raised-button", "", "type", "submit"], ["mat-raised-button", "", "class", "anonymous", "type", "button", 3, "disabled", "click", 4, "ngIf"], [4, "ngIf"], ["mat-raised-button", "", "type", "button", 1, "anonymous", 3, "disabled", "click"], ["size", "3", "color", "red"]], template: function AuthInternComponent_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementStart(0, "form", 0);
82
+ i0.ɵɵlistener("ngSubmit", function AuthInternComponent_Template_form_ngSubmit_0_listener() { return ctx.loginUser(ctx.form.value); });
83
+ i0.ɵɵelementStart(1, "div")(2, "mat-form-field", 1);
84
+ i0.ɵɵelement(3, "input", 2);
85
+ i0.ɵɵpipe(4, "translate");
86
+ i0.ɵɵelementEnd()();
87
+ i0.ɵɵelementStart(5, "div")(6, "mat-form-field", 1);
88
+ i0.ɵɵelement(7, "input", 3);
89
+ i0.ɵɵpipe(8, "translate");
90
+ i0.ɵɵelementEnd()();
91
+ i0.ɵɵelementStart(9, "button", 4);
92
+ i0.ɵɵtext(10);
93
+ i0.ɵɵpipe(11, "translate");
94
+ i0.ɵɵelementEnd();
95
+ i0.ɵɵtemplate(12, AuthInternComponent_button_12_Template, 3, 4, "button", 5);
96
+ i0.ɵɵtemplate(13, AuthInternComponent_div_13_Template, 4, 1, "div", 6);
97
+ i0.ɵɵelementEnd();
98
+ } if (rf & 2) {
99
+ i0.ɵɵproperty("formGroup", ctx.form);
100
+ i0.ɵɵadvance(3);
101
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 6, "igo.auth.user"));
102
+ i0.ɵɵadvance(4);
103
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 8, "igo.auth.password"));
104
+ i0.ɵɵadvance(3);
105
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 10, "igo.auth.login"));
106
+ i0.ɵɵadvance(2);
107
+ i0.ɵɵproperty("ngIf", ctx.allowAnonymous);
108
+ i0.ɵɵadvance(1);
109
+ i0.ɵɵproperty("ngIf", ctx.error);
110
+ } }, dependencies: [i4.NgIf, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.RequiredValidator, i3.FormGroupDirective, i3.FormControlName, i5.MatFormField, i6.MatInput, i7.MatButton, i8.TranslatePipe], styles: [".full-width[_ngcontent-%COMP%]{width:100%}.anonymous[_ngcontent-%COMP%]{margin-left:10px}"] });
111
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthInternComponent, [{
112
+ type: Component,
113
+ args: [{ selector: 'igo-auth-intern', changeDetection: ChangeDetectionStrategy.Default, template: "<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\n <div>\n <mat-form-field class=\"full-width\">\n <input matInput required placeholder=\"{{'igo.auth.user' | translate}}\" formControlName=\"username\">\n </mat-form-field>\n </div>\n\n <div>\n <mat-form-field class=\"full-width\">\n <input matInput required type=\"password\" placeholder=\"{{'igo.auth.password' | translate}}\" formControlName=\"password\">\n </mat-form-field>\n </div>\n\n <button mat-raised-button type=\"submit\">{{'igo.auth.login' | translate}}</button>\n <button *ngIf=\"allowAnonymous\" mat-raised-button class=\"anonymous\" type=\"button\" [disabled]=\"loading\" (click)=\"loginAnonymous()\">\n {{'igo.auth.accessAnonymous' | translate }}\n </button>\n <div *ngIf=\"error\">\n <br/>\n <font size=\"3\" color=\"red\">{{error}}</font>\n </div>\n</form>\n\n<!--\nThis part was removed from the below line to fix Angular issue 30616 : [disabled]=\"!form.valid || loading\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid || loading\">{{'igo.auth.login' | translate}}</button>*/\n-->\n", styles: [".full-width{width:100%}.anonymous{margin-left:10px}\n"] }]
114
+ }], function () { return [{ type: i1.AuthService }, { type: i2.LanguageService }, { type: i3.UntypedFormBuilder }]; }, { allowAnonymous: [{
115
+ type: Input
116
+ }], login: [{
117
+ type: Output
118
+ }] }); })();
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcm4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2F1dGgtZm9ybS9hdXRoLWludGVybi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC1mb3JtL2F1dGgtaW50ZXJuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQXdDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztJQ09oRixpQ0FBaUk7SUFBM0Isb0tBQVMsZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBQzlILFlBQ0Y7O0lBQUEsaUJBQVM7OztJQUZ3RSx5Q0FBb0I7SUFDbkcsZUFDRjtJQURFLGlGQUNGOzs7SUFDQSwyQkFBbUI7SUFDakIscUJBQUs7SUFDTCwrQkFBMkI7SUFBQSxZQUFTO0lBQUEsaUJBQU8sRUFBQTs7O0lBQWhCLGVBQVM7SUFBVCxrQ0FBUzs7QUREeEMsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsWUFDUyxJQUFpQixFQUNoQixlQUFnQyxFQUN4QyxFQUFzQjtRQUZmLFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVmxDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXhCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWIsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBT25FLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBeEJELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQW9CRCxTQUFTLENBQUMsTUFBVztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQ3pELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsSUFBSTtnQkFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVM7cUJBQzNCLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDNUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0ZBcERVLG1CQUFtQjtzRUFBbkIsbUJBQW1CO1FDbEJoQywrQkFBd0U7UUFBbkMsb0dBQVksNkJBQXFCLElBQUM7UUFDckUsMkJBQUssd0JBQUE7UUFFRCwyQkFBa0c7O1FBQ3BHLGlCQUFpQixFQUFBO1FBR25CLDJCQUFLLHdCQUFBO1FBRUQsMkJBQXNIOztRQUN4SCxpQkFBaUIsRUFBQTtRQUduQixpQ0FBd0M7UUFBQSxhQUFnQzs7UUFBQSxpQkFBUztRQUNqRiw0RUFFUztRQUNULHNFQUdNO1FBQ1IsaUJBQU87O1FBckJELG9DQUFrQjtRQUdPLGVBQTZDO1FBQTdDLDhFQUE2QztRQU03QixlQUFpRDtRQUFqRCxrRkFBaUQ7UUFJdEQsZUFBZ0M7UUFBaEMsOERBQWdDO1FBQy9ELGVBQW9CO1FBQXBCLHlDQUFvQjtRQUd2QixlQUFXO1FBQVgsZ0NBQVc7O3VGRENOLG1CQUFtQjtjQU4vQixTQUFTOzJCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxPQUFPOzZIQUk1QyxjQUFjO2tCQURqQixLQUFLO1lBYUksS0FBSztrQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1hdXRoLWludGVybicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWludGVybi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dGgtaW50ZXJuLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJuQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZ2V0IGFsbG93QW5vbnltb3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbGxvd0Fub255bW91cztcbiAgfVxuICBzZXQgYWxsb3dBbm9ueW1vdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbGxvd0Fub255bW91cyA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2FsbG93QW5vbnltb3VzID0gdHJ1ZTtcblxuICBwdWJsaWMgZXJyb3IgPSAnJztcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGxvZ2luOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgZmI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLmZvcm0gPSBmYi5ncm91cCh7XG4gICAgICB1c2VybmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgfSk7XG4gIH1cblxuICBsb2dpblVzZXIodmFsdWVzOiBhbnkpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYXV0aC5sb2dpbih2YWx1ZXMudXNlcm5hbWUsIHZhbHVlcy5wYXNzd29yZCkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2luLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlXG4gICAgICAgICAgICAuZ2V0KCdpZ28uYXV0aC5lcnJvci4nICsgZXJyb3IuZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXJyb3JNc2cgPT4gKHRoaXMuZXJyb3IgPSBlcnJvck1zZykpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsb2dpbkFub255bW91cygpIHtcbiAgICB0aGlzLmF1dGgubG9naW5Bbm9ueW1vdXMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5sb2dpbi5lbWl0KHRydWUpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiByb2xlPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJsb2dpblVzZXIoZm9ybS52YWx1ZSlcIj5cbiAgPGRpdj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcmVxdWlyZWQgcGxhY2Vob2xkZXI9XCJ7eydpZ28uYXV0aC51c2VyJyB8IHRyYW5zbGF0ZX19XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCB0eXBlPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cInt7J2lnby5hdXRoLnBhc3N3b3JkJyB8IHRyYW5zbGF0ZX19XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIj57eydpZ28uYXV0aC5sb2dpbicgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICA8YnV0dG9uICpuZ0lmPVwiYWxsb3dBbm9ueW1vdXNcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjbGFzcz1cImFub255bW91c1wiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJsb2dpbkFub255bW91cygpXCI+XG4gICAge3snaWdvLmF1dGguYWNjZXNzQW5vbnltb3VzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGRpdiAqbmdJZj1cImVycm9yXCI+XG4gICAgPGJyLz5cbiAgICA8Zm9udCBzaXplPVwiM1wiIGNvbG9yPVwicmVkXCI+e3tlcnJvcn19PC9mb250PlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPCEtLVxuVGhpcyBwYXJ0IHdhcyByZW1vdmVkIGZyb20gdGhlIGJlbG93IGxpbmUgdG8gZml4IEFuZ3VsYXIgaXNzdWUgMzA2MTYgOiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgbG9hZGluZ1xuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgbG9hZGluZ1wiPnt7J2lnby5hdXRoLmxvZ2luJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+Ki9cbi0tPlxuIl19