@igo2/auth 17.0.0-next.1 → 17.0.0-next.11

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 (130) hide show
  1. package/environment/environment.interface.d.ts +6 -0
  2. package/environment/index.d.ts +5 -0
  3. package/esm2022/environment/environment.interface.mjs +2 -0
  4. package/esm2022/environment/igo2-auth-environment.mjs +5 -0
  5. package/esm2022/environment/public_api.mjs +2 -0
  6. package/esm2022/facebook/auth-facebook/auth-facebook.component.mjs +65 -0
  7. package/esm2022/facebook/igo2-auth-facebook.mjs +5 -0
  8. package/esm2022/facebook/public_api.mjs +3 -0
  9. package/esm2022/facebook/shared/auth-facebook.interface.mjs +2 -0
  10. package/esm2022/facebook/shared/index.mjs +2 -0
  11. package/esm2022/form/auth-form/auth-form.component.mjs +166 -0
  12. package/esm2022/form/auth-form.module.mjs +73 -0
  13. package/esm2022/form/igo2-auth-form.mjs +5 -0
  14. package/esm2022/form/public_api.mjs +7 -0
  15. package/esm2022/form/shared/auth-form.interface.mjs +2 -0
  16. package/esm2022/form/shared/index.mjs +2 -0
  17. package/esm2022/google/auth-google/auth-google.component.mjs +108 -0
  18. package/esm2022/google/igo2-auth-google.mjs +5 -0
  19. package/esm2022/google/public_api.mjs +3 -0
  20. package/esm2022/google/shared/auth-google.interface.mjs +2 -0
  21. package/esm2022/google/shared/index.mjs +2 -0
  22. package/esm2022/internal/auth-intern/auth-intern.component.mjs +84 -0
  23. package/esm2022/internal/igo2-auth-internal.mjs +5 -0
  24. package/esm2022/internal/public_api.mjs +2 -0
  25. package/esm2022/lib/auth.provider.mjs +22 -0
  26. package/esm2022/lib/shared/admin.guard.mjs +4 -4
  27. package/esm2022/lib/shared/auth-storage.interface.mjs +1 -1
  28. package/esm2022/lib/shared/auth-storage.service.mjs +4 -4
  29. package/esm2022/lib/shared/auth.guard.mjs +4 -4
  30. package/esm2022/lib/shared/auth.interceptor.mjs +4 -4
  31. package/esm2022/lib/shared/auth.interface.mjs +5 -2
  32. package/esm2022/lib/shared/auth.service.mjs +4 -4
  33. package/esm2022/lib/shared/index.mjs +3 -5
  34. package/esm2022/lib/shared/logged.guard.mjs +4 -4
  35. package/esm2022/lib/shared/profils.guard.mjs +4 -4
  36. package/esm2022/lib/shared/token.service.mjs +4 -4
  37. package/esm2022/microsoft/auth-microsoft/auth-microsoft.component.mjs +100 -0
  38. package/esm2022/microsoft/auth-microsoft.provider.mjs +105 -0
  39. package/esm2022/microsoft/auth-microsoftb2c/auth-microsoftb2c.component.mjs +98 -0
  40. package/esm2022/microsoft/auth-microsoftb2c/auth-msalBroadcastServiceb2c.service.mjs +47 -0
  41. package/esm2022/microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.mjs +85 -0
  42. package/esm2022/microsoft/igo2-auth-microsoft.mjs +5 -0
  43. package/esm2022/microsoft/public_api.mjs +5 -0
  44. package/esm2022/microsoft/shared/auth-microsoft.interface.mjs +2 -0
  45. package/esm2022/microsoft/shared/index.mjs +2 -0
  46. package/esm2022/monitoring/auth-monitoring/auth-monitoring.provider.mjs +24 -0
  47. package/esm2022/monitoring/auth-monitoring/auth-monitoring.service.mjs +54 -0
  48. package/esm2022/monitoring/igo2-auth-monitoring.mjs +5 -0
  49. package/esm2022/monitoring/public_api.mjs +3 -0
  50. package/esm2022/public_api.mjs +3 -19
  51. package/{lib/auth-form → facebook/auth-facebook}/auth-facebook.component.d.ts +1 -1
  52. package/facebook/index.d.ts +5 -0
  53. package/facebook/public_api.d.ts +2 -0
  54. package/facebook/shared/auth-facebook.interface.d.ts +4 -0
  55. package/facebook/shared/index.d.ts +1 -0
  56. package/fesm2022/igo2-auth-environment.mjs +4 -0
  57. package/fesm2022/igo2-auth-environment.mjs.map +1 -0
  58. package/fesm2022/igo2-auth-facebook.mjs +70 -0
  59. package/fesm2022/igo2-auth-facebook.mjs.map +1 -0
  60. package/fesm2022/igo2-auth-form.mjs +238 -0
  61. package/fesm2022/igo2-auth-form.mjs.map +1 -0
  62. package/fesm2022/igo2-auth-google.mjs +112 -0
  63. package/fesm2022/igo2-auth-google.mjs.map +1 -0
  64. package/fesm2022/igo2-auth-internal.mjs +89 -0
  65. package/fesm2022/igo2-auth-internal.mjs.map +1 -0
  66. package/fesm2022/igo2-auth-microsoft.mjs +404 -0
  67. package/fesm2022/igo2-auth-microsoft.mjs.map +1 -0
  68. package/fesm2022/igo2-auth-monitoring.mjs +81 -0
  69. package/fesm2022/igo2-auth-monitoring.mjs.map +1 -0
  70. package/fesm2022/igo2-auth.mjs +241 -1145
  71. package/fesm2022/igo2-auth.mjs.map +1 -1
  72. package/{lib → form}/auth-form/auth-form.component.d.ts +3 -4
  73. package/form/auth-form.module.d.ts +20 -0
  74. package/form/index.d.ts +5 -0
  75. package/form/public_api.d.ts +3 -0
  76. package/form/shared/auth-form.interface.d.ts +9 -0
  77. package/form/shared/index.d.ts +1 -0
  78. package/{src/lib → form/src}/auth-form/auth-intern.theme.scss +19 -19
  79. package/form/src/auth-form.theme.scss +9 -0
  80. package/{lib/auth-form → google/auth-google}/auth-google.component.d.ts +1 -1
  81. package/google/index.d.ts +5 -0
  82. package/google/public_api.d.ts +2 -0
  83. package/google/shared/auth-google.interface.d.ts +5 -0
  84. package/google/shared/index.d.ts +1 -0
  85. package/{lib/auth-form → internal/auth-intern}/auth-intern.component.d.ts +1 -1
  86. package/internal/index.d.ts +5 -0
  87. package/internal/public_api.d.ts +1 -0
  88. package/lib/auth.provider.d.ts +3 -0
  89. package/lib/shared/auth.interface.d.ts +20 -69
  90. package/lib/shared/index.d.ts +2 -4
  91. package/locale/en.auth.json +29 -29
  92. package/locale/fr.auth.json +33 -33
  93. package/{lib/auth-form → microsoft/auth-microsoft}/auth-microsoft.component.d.ts +4 -2
  94. package/microsoft/auth-microsoft.provider.d.ts +12 -0
  95. package/{lib/auth-form → microsoft/auth-microsoftb2c}/auth-microsoftb2c.component.d.ts +5 -3
  96. package/{lib/shared → microsoft/auth-microsoftb2c}/auth-msalBroadcastServiceb2c.service.d.ts +1 -1
  97. package/microsoft/index.d.ts +5 -0
  98. package/microsoft/public_api.d.ts +4 -0
  99. package/microsoft/shared/auth-microsoft.interface.d.ts +32 -0
  100. package/microsoft/shared/index.d.ts +1 -0
  101. package/{lib → monitoring}/auth-monitoring/auth-monitoring.service.d.ts +1 -1
  102. package/monitoring/index.d.ts +5 -0
  103. package/monitoring/public_api.d.ts +2 -0
  104. package/package.json +46 -3
  105. package/public_api.d.ts +2 -18
  106. package/src/auth.theme.scss +9 -9
  107. package/esm2022/lib/auth-form/auth-facebook.component.mjs +0 -65
  108. package/esm2022/lib/auth-form/auth-form.component.mjs +0 -170
  109. package/esm2022/lib/auth-form/auth-google.component.mjs +0 -108
  110. package/esm2022/lib/auth-form/auth-intern.component.mjs +0 -84
  111. package/esm2022/lib/auth-form/auth-microsoft.component.mjs +0 -100
  112. package/esm2022/lib/auth-form/auth-microsoftb2c.component.mjs +0 -98
  113. package/esm2022/lib/auth-form/index.mjs +0 -19
  114. package/esm2022/lib/auth-monitoring/auth-monitoring.provider.mjs +0 -24
  115. package/esm2022/lib/auth-monitoring/auth-monitoring.service.mjs +0 -54
  116. package/esm2022/lib/auth.module.mjs +0 -98
  117. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  118. package/esm2022/lib/environment/index.mjs +0 -2
  119. package/esm2022/lib/shared/auth-microsoft.provider.mjs +0 -86
  120. package/esm2022/lib/shared/auth-msalBroadcastServiceb2c.service.mjs +0 -47
  121. package/esm2022/lib/shared/auth-msalServiceb2c.service..mjs +0 -85
  122. package/esm2022/lib/shared/protected.directive.mjs +0 -21
  123. package/lib/auth-form/index.d.ts +0 -11
  124. package/lib/auth.module.d.ts +0 -24
  125. package/lib/environment/environment.interface.d.ts +0 -5
  126. package/lib/shared/auth-microsoft.provider.d.ts +0 -30
  127. package/lib/shared/protected.directive.d.ts +0 -8
  128. /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
  129. /package/{lib/shared/auth-msalServiceb2c.service..d.ts → microsoft/auth-microsoftb2c/auth-msalServiceb2c.service.d.ts} +0 -0
  130. /package/{lib → monitoring}/auth-monitoring/auth-monitoring.provider.d.ts +0 -0
@@ -0,0 +1,54 @@
1
+ import { Inject, Injectable, Injector, Optional } from '@angular/core';
2
+ import { AuthService } from '@igo2/auth';
3
+ import { ConfigService } from '@igo2/core/config';
4
+ import { MONITORING_OPTIONS, identifySentryUser } from '@igo2/core/monitoring';
5
+ import { first, switchMap } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@igo2/core/config";
8
+ export class AuthMonitoringService {
9
+ configService;
10
+ monitoringOptions;
11
+ injector;
12
+ // The AuthService need to be lazy provided because this service is provided in the APP_INITIALIZER
13
+ authService;
14
+ constructor(configService, monitoringOptions, injector) {
15
+ this.configService = configService;
16
+ this.monitoringOptions = monitoringOptions;
17
+ this.injector = injector;
18
+ if (!this.monitoringOptions?.identifyUser) {
19
+ return;
20
+ }
21
+ this.configService.isLoaded$
22
+ .pipe(first((isLoaded) => isLoaded), switchMap(() => {
23
+ this.authService = this.injector.get(AuthService);
24
+ return this.authService?.authenticate$;
25
+ }))
26
+ .subscribe((isAuthenticated) => {
27
+ const user = isAuthenticated ? this.authService.user : null;
28
+ this._identifyUser(user);
29
+ });
30
+ }
31
+ _identifyUser(user) {
32
+ switch (this.monitoringOptions.provider) {
33
+ case 'sentry':
34
+ identifySentryUser(user);
35
+ break;
36
+ default:
37
+ break;
38
+ }
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, deps: [{ token: i1.ConfigService }, { token: MONITORING_OPTIONS, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, providedIn: 'root' });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthMonitoringService, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root'
47
+ }]
48
+ }], ctorParameters: () => [{ type: i1.ConfigService }, { type: undefined, decorators: [{
49
+ type: Optional
50
+ }, {
51
+ type: Inject,
52
+ args: [MONITORING_OPTIONS]
53
+ }] }, { type: i0.Injector }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1tb25pdG9yaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL21vbml0b3Jpbmcvc3JjL2F1dGgtbW9uaXRvcmluZy9hdXRoLW1vbml0b3Jpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxXQUFXLEVBQVEsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ25CLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt4QyxNQUFNLE9BQU8scUJBQXFCO0lBS3RCO0lBR0E7SUFDQTtJQVJWLG1HQUFtRztJQUNuRyxXQUFXLENBQWU7SUFFMUIsWUFDVSxhQUE0QixFQUc1QixpQkFBOEMsRUFDOUMsUUFBa0I7UUFKbEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFHNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDMUMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7YUFDekIsSUFBSSxDQUNILEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBaUI7UUFDckMsUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsS0FBSyxRQUFRO2dCQUNYLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBRVI7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO3VHQXRDVSxxQkFBcUIsK0NBT3RCLGtCQUFrQjsyR0FQakIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQGlnbzIvYXV0aCc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XHJcbmltcG9ydCB7XHJcbiAgQW55TW9uaXRvcmluZ09wdGlvbnMsXHJcbiAgTU9OSVRPUklOR19PUFRJT05TLFxyXG4gIGlkZW50aWZ5U2VudHJ5VXNlclxyXG59IGZyb20gJ0BpZ28yL2NvcmUvbW9uaXRvcmluZyc7XHJcblxyXG5pbXBvcnQgeyBmaXJzdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoTW9uaXRvcmluZ1NlcnZpY2Uge1xyXG4gIC8vIFRoZSBBdXRoU2VydmljZSBuZWVkIHRvIGJlIGxhenkgcHJvdmlkZWQgYmVjYXVzZSB0aGlzIHNlcnZpY2UgaXMgcHJvdmlkZWQgaW4gdGhlIEFQUF9JTklUSUFMSVpFUlxyXG4gIGF1dGhTZXJ2aWNlPzogQXV0aFNlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTU9OSVRPUklOR19PUFRJT05TKVxyXG4gICAgcHJpdmF0ZSBtb25pdG9yaW5nT3B0aW9uczogQW55TW9uaXRvcmluZ09wdGlvbnMgfCBudWxsLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIGlmICghdGhpcy5tb25pdG9yaW5nT3B0aW9ucz8uaWRlbnRpZnlVc2VyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuaXNMb2FkZWQkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpcnN0KChpc0xvYWRlZCkgPT4gaXNMb2FkZWQpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UpO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2U/LmF1dGhlbnRpY2F0ZSQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChpc0F1dGhlbnRpY2F0ZWQpID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyID0gaXNBdXRoZW50aWNhdGVkID8gdGhpcy5hdXRoU2VydmljZS51c2VyIDogbnVsbDtcclxuICAgICAgICB0aGlzLl9pZGVudGlmeVVzZXIodXNlcik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaWRlbnRpZnlVc2VyKHVzZXI6IFVzZXIgfCBudWxsKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9uaXRvcmluZ09wdGlvbnMucHJvdmlkZXIpIHtcclxuICAgICAgY2FzZSAnc2VudHJ5JzpcclxuICAgICAgICBpZGVudGlmeVNlbnRyeVVzZXIodXNlcik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1hdXRoLW1vbml0b3JpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL21vbml0b3Jpbmcvc3JjL2lnbzItYXV0aC1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './auth-monitoring/auth-monitoring.provider';
2
+ export * from './auth-monitoring/auth-monitoring.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvbW9uaXRvcmluZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGgtbW9uaXRvcmluZy9hdXRoLW1vbml0b3JpbmcucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLW1vbml0b3JpbmcvYXV0aC1tb25pdG9yaW5nLnNlcnZpY2UnO1xuIl19
@@ -1,22 +1,6 @@
1
1
  /*
2
2
  * Public API Surface of auth
3
3
  */
4
- export { AuthFormComponent } from './lib/auth-form';
5
- export * from './lib/environment';
6
- export * from './lib/shared/auth.service';
7
- export * from './lib/shared/logged.guard';
8
- export * from './lib/shared/auth.guard';
9
- export * from './lib/shared/admin.guard';
10
- export * from './lib/shared/profils.guard';
11
- export * from './lib/shared/auth.interceptor';
12
- export * from './lib/shared/auth.interface';
13
- export * from './lib/shared/auth-microsoft.provider';
14
- export * from './lib/shared/protected.directive';
15
- export * from './lib/shared/token.interface';
16
- export * from './lib/shared/token.service';
17
- export * from './lib/shared/auth-storage.interface';
18
- export * from './lib/shared/auth-storage.service';
19
- export * from './lib/auth-monitoring/auth-monitoring.provider';
20
- export * from './lib/auth-monitoring/auth-monitoring.service';
21
- export * from './lib/auth.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXV0aFxyXG4gKi9cclxuXHJcbmV4cG9ydCB7IEF1dGhGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvYXV0aC1mb3JtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW52aXJvbm1lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2xvZ2dlZC5ndWFyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hdXRoLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkbWluLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Byb2ZpbHMuZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hdXRoLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hdXRoLW1pY3Jvc29mdC5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9wcm90ZWN0ZWQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Rva2VuLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC90b2tlbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2F1dGgtc3RvcmFnZS5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYXV0aC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLW1vbml0b3JpbmcvYXV0aC1tb25pdG9yaW5nLnByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC1tb25pdG9yaW5nL2F1dGgtbW9uaXRvcmluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC5tb2R1bGUnO1xyXG4iXX0=
4
+ export * from './lib/auth.provider';
5
+ export * from './lib/shared';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhdXRoXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkJztcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { ApplicationRef, EventEmitter } from '@angular/core';
2
+ import { AuthService } from '@igo2/auth';
2
3
  import { ConfigService } from '@igo2/core/config';
3
- import { AuthService } from '../shared/auth.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class AuthFacebookComponent {
6
6
  private authService;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@igo2/auth/facebook" />
5
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ export * from './auth-facebook/auth-facebook.component';
2
+ export * from './shared';
@@ -0,0 +1,4 @@
1
+ export interface AuthFacebookOptions {
2
+ enabled?: boolean;
3
+ appId: string;
4
+ }
@@ -0,0 +1 @@
1
+ export * from './auth-facebook.interface';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ //# sourceMappingURL=igo2-auth-environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-auth-environment.mjs","sources":["../../../packages/auth/environment/src/igo2-auth-environment.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -0,0 +1,70 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, Output } from '@angular/core';
3
+ import * as i1 from '@igo2/auth';
4
+ import * as i2 from '@igo2/core/config';
5
+
6
+ class AuthFacebookComponent {
7
+ authService;
8
+ config;
9
+ appRef;
10
+ options;
11
+ login = new EventEmitter();
12
+ constructor(authService, config, appRef) {
13
+ this.authService = authService;
14
+ this.config = config;
15
+ this.appRef = appRef;
16
+ this.options = this.config.getConfig('auth.facebook');
17
+ if (this.options?.appId) {
18
+ this.loadSDKFacebook();
19
+ }
20
+ else {
21
+ console.warn('Facebook authentification needs "appId" option');
22
+ }
23
+ }
24
+ subscribeEvents() {
25
+ window.FB.Event.subscribe('auth.statusChange', (rep) => {
26
+ this.statusChangeCallback(rep);
27
+ });
28
+ }
29
+ statusChangeCallback(response) {
30
+ if (response.status === 'connected') {
31
+ const accessToken = response.authResponse.accessToken;
32
+ this.loginFacebook(accessToken);
33
+ }
34
+ }
35
+ loginFacebook(token) {
36
+ this.authService.loginWithToken(token, 'facebook').subscribe(() => {
37
+ this.appRef.tick();
38
+ this.login.emit(true);
39
+ });
40
+ }
41
+ loadSDKFacebook() {
42
+ if (document.getElementById('facebook-jssdk')) {
43
+ return;
44
+ }
45
+ const urlSDK = 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';
46
+ const fjs = document.getElementsByTagName('script')[0];
47
+ const js = document.createElement('script');
48
+ js.id = 'facebook-jssdk';
49
+ js.src = `${urlSDK}&appId=${this.options?.appId}`;
50
+ js.onload = () => {
51
+ this.subscribeEvents();
52
+ };
53
+ fjs.parentNode.insertBefore(js, fjs);
54
+ }
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthFacebookComponent, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: AuthFacebookComponent, isStandalone: true, selector: "igo-auth-facebook", outputs: { login: "login" }, ngImport: i0, 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"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthFacebookComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'igo-auth-facebook', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, 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"] }]
61
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i0.ApplicationRef }], propDecorators: { login: [{
62
+ type: Output
63
+ }] } });
64
+
65
+ /**
66
+ * Generated bundle index. Do not edit.
67
+ */
68
+
69
+ export { AuthFacebookComponent };
70
+ //# sourceMappingURL=igo2-auth-facebook.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-auth-facebook.mjs","sources":["../../../packages/auth/facebook/src/auth-facebook/auth-facebook.component.ts","../../../packages/auth/facebook/src/auth-facebook/auth-facebook.component.html","../../../packages/auth/facebook/src/igo2-auth-facebook.ts"],"sourcesContent":["import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output\n} from '@angular/core';\n\nimport { AuthService } from '@igo2/auth';\nimport { ConfigService } from '@igo2/core/config';\n\nimport { AuthFacebookOptions } from '../shared/auth-facebook.interface';\n\n@Component({\n selector: 'igo-auth-facebook',\n templateUrl: './auth-facebook.component.html',\n styleUrls: ['./auth-facebook.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class AuthFacebookComponent {\n private options?: AuthFacebookOptions;\n\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(\n private authService: AuthService,\n private config: ConfigService,\n private appRef: ApplicationRef\n ) {\n this.options = this.config.getConfig('auth.facebook');\n\n if (this.options?.appId) {\n this.loadSDKFacebook();\n } else {\n console.warn('Facebook authentification needs \"appId\" option');\n }\n }\n\n private subscribeEvents() {\n (window as any).FB.Event.subscribe('auth.statusChange', (rep) => {\n this.statusChangeCallback(rep);\n });\n }\n\n private statusChangeCallback(response) {\n if (response.status === 'connected') {\n const accessToken = response.authResponse.accessToken;\n this.loginFacebook(accessToken);\n }\n }\n\n private loginFacebook(token) {\n this.authService.loginWithToken(token, 'facebook').subscribe(() => {\n this.appRef.tick();\n this.login.emit(true);\n });\n }\n\n private loadSDKFacebook() {\n if (document.getElementById('facebook-jssdk')) {\n return;\n }\n\n const urlSDK =\n 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';\n\n const fjs = document.getElementsByTagName('script')[0];\n const js = document.createElement('script');\n js.id = 'facebook-jssdk';\n js.src = `${urlSDK}&appId=${this.options?.appId}`;\n js.onload = () => {\n this.subscribeEvents();\n };\n fjs.parentNode.insertBefore(js, fjs);\n }\n}\n","<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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ import { NgIf, CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Component, ChangeDetectionStrategy, Optional, Input, Output, NgModule } from '@angular/core';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import * as i4 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
11
+ import { AuthFacebookComponent } from '@igo2/auth/facebook';
12
+ import { AuthGoogleComponent } from '@igo2/auth/google';
13
+ import { AuthInternComponent } from '@igo2/auth/internal';
14
+ import { AuthMicrosoftComponent, AuthMicrosoftb2cComponent } from '@igo2/auth/microsoft';
15
+ import { IgoLanguageModule } from '@igo2/core/language';
16
+ import { MsalModule } from '@azure/msal-angular';
17
+ import * as i3 from '@angular/router';
18
+ import { NavigationStart } from '@angular/router';
19
+ import * as i1 from '@igo2/auth';
20
+ import * as i2 from '@igo2/core/config';
21
+ import { filter } from 'rxjs/operators';
22
+ import * as i5 from '@ngx-translate/core';
23
+
24
+ class AuthFormComponent {
25
+ auth;
26
+ config;
27
+ router;
28
+ get backgroundDisable() {
29
+ if (this.isLogoutRoute || this.isLogoutRoute) {
30
+ return false;
31
+ }
32
+ return this._backgroundDisable;
33
+ }
34
+ set backgroundDisable(value) {
35
+ this._backgroundDisable = value.toString() === 'true';
36
+ }
37
+ _backgroundDisable = true;
38
+ get hasAlreadyConnectedDiv() {
39
+ return this._hasAlreadyConnectedDiv;
40
+ }
41
+ set hasAlreadyConnectedDiv(value) {
42
+ this._hasAlreadyConnectedDiv = value.toString() === 'true';
43
+ }
44
+ _hasAlreadyConnectedDiv = true;
45
+ get hasLogoutDiv() {
46
+ return this._hasLogoutDiv;
47
+ }
48
+ set hasLogoutDiv(value) {
49
+ this._hasLogoutDiv = value.toString() === 'true';
50
+ }
51
+ _hasLogoutDiv = true;
52
+ get showAlreadyConnectedDiv() {
53
+ if (this.isLogoutRoute) {
54
+ return this.hasAlreadyConnectedDiv;
55
+ }
56
+ return this._showAlreadyConnectedDiv;
57
+ }
58
+ set showAlreadyConnectedDiv(value) {
59
+ this._showAlreadyConnectedDiv = value.toString() === 'true';
60
+ }
61
+ _showAlreadyConnectedDiv = false;
62
+ get showLogoutDiv() {
63
+ if (this.isLogoutRoute) {
64
+ return this.hasLogoutDiv;
65
+ }
66
+ return this._showLogoutDiv;
67
+ }
68
+ set showLogoutDiv(value) {
69
+ this._showLogoutDiv = value.toString() === 'true';
70
+ }
71
+ _showLogoutDiv = false;
72
+ get showLoginDiv() {
73
+ if (!this.isLogoutRoute) {
74
+ return true;
75
+ }
76
+ }
77
+ login = new EventEmitter();
78
+ options;
79
+ user;
80
+ visible = true;
81
+ isLogoutRoute;
82
+ constructor(auth, config, router) {
83
+ this.auth = auth;
84
+ this.config = config;
85
+ this.router = router;
86
+ this.options = this.config.getConfig('auth');
87
+ this.visible = Object.getOwnPropertyNames(this.options).length !== 0;
88
+ }
89
+ ngOnInit() {
90
+ this.analyzeRoute();
91
+ this.getName();
92
+ }
93
+ onLogin() {
94
+ this.auth.goToRedirectUrl();
95
+ this.getName();
96
+ this.login.emit(true);
97
+ }
98
+ logout() {
99
+ this.auth.logout().subscribe(() => {
100
+ this.user = undefined;
101
+ if (this.router) {
102
+ if (this.options?.logoutRoute) {
103
+ this.router.navigate([this.options?.logoutRoute]);
104
+ }
105
+ else if (this.options?.homeRoute) {
106
+ this.router.navigate([this.options?.homeRoute]);
107
+ }
108
+ }
109
+ });
110
+ }
111
+ home() {
112
+ if (this.router && this.options?.homeRoute) {
113
+ this.router.navigate([this.options?.homeRoute]);
114
+ }
115
+ }
116
+ getName() {
117
+ const tokenDecoded = this.auth.decodeToken();
118
+ if (tokenDecoded) {
119
+ this.user = {
120
+ name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId
121
+ };
122
+ }
123
+ }
124
+ analyzeRoute() {
125
+ if (!this.router) {
126
+ return;
127
+ }
128
+ this.router.events
129
+ .pipe(filter((event) => event instanceof NavigationStart))
130
+ .subscribe((changeEvent) => {
131
+ if (changeEvent.url) {
132
+ const currentRoute = changeEvent.url;
133
+ const logoutRoute = this.options?.logoutRoute;
134
+ this.isLogoutRoute = currentRoute === logoutRoute;
135
+ if (this.isLogoutRoute) {
136
+ this.auth.logout();
137
+ }
138
+ }
139
+ });
140
+ }
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthFormComponent, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: AuthFormComponent, isStandalone: true, selector: "igo-auth-form", inputs: { backgroundDisable: "backgroundDisable", hasAlreadyConnectedDiv: "hasAlreadyConnectedDiv", hasLogoutDiv: "hasLogoutDiv", showAlreadyConnectedDiv: "showAlreadyConnectedDiv", showLogoutDiv: "showLogoutDiv" }, outputs: { login: "login" }, ngImport: i0, 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\n <igo-auth-microsoft\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoft>\n\n <igo-auth-microsoftb2c\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoftb2c>\n\n <igo-auth-facebook\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-facebook>\n\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"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AuthGoogleComponent, selector: "igo-auth-google", outputs: ["login"] }, { kind: "component", type: AuthMicrosoftComponent, selector: "igo-auth-microsoft", outputs: ["login"] }, { kind: "component", type: AuthMicrosoftb2cComponent, selector: "igo-auth-microsoftb2c", outputs: ["login"] }, { kind: "component", type: AuthFacebookComponent, selector: "igo-auth-facebook", outputs: ["login"] }, { kind: "component", type: AuthInternComponent, selector: "igo-auth-intern", inputs: ["allowAnonymous"], outputs: ["login"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default });
143
+ }
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthFormComponent, decorators: [{
145
+ type: Component,
146
+ args: [{ selector: 'igo-auth-form', changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [
147
+ NgIf,
148
+ AuthGoogleComponent,
149
+ AuthMicrosoftComponent,
150
+ AuthMicrosoftb2cComponent,
151
+ AuthFacebookComponent,
152
+ AuthInternComponent,
153
+ MatButtonModule,
154
+ IgoLanguageModule
155
+ ], 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\n <igo-auth-microsoft\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoft>\n\n <igo-auth-microsoftb2c\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoftb2c>\n\n <igo-auth-facebook\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-facebook>\n\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"] }]
156
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router, decorators: [{
157
+ type: Optional
158
+ }] }], propDecorators: { backgroundDisable: [{
159
+ type: Input
160
+ }], hasAlreadyConnectedDiv: [{
161
+ type: Input
162
+ }], hasLogoutDiv: [{
163
+ type: Input
164
+ }], showAlreadyConnectedDiv: [{
165
+ type: Input
166
+ }], showLogoutDiv: [{
167
+ type: Input
168
+ }], login: [{
169
+ type: Output
170
+ }] } });
171
+
172
+ class IgoAuthFormModule {
173
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoAuthFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
174
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: IgoAuthFormModule, imports: [CommonModule,
175
+ ReactiveFormsModule,
176
+ MatFormFieldModule,
177
+ MatInputModule,
178
+ MatIconModule,
179
+ MatProgressSpinnerModule,
180
+ MatButtonModule,
181
+ IgoLanguageModule,
182
+ MsalModule,
183
+ AuthFormComponent,
184
+ AuthGoogleComponent,
185
+ AuthInternComponent,
186
+ AuthFacebookComponent,
187
+ AuthMicrosoftComponent,
188
+ AuthMicrosoftb2cComponent], exports: [AuthFormComponent] });
189
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoAuthFormModule, imports: [CommonModule,
190
+ ReactiveFormsModule,
191
+ MatFormFieldModule,
192
+ MatInputModule,
193
+ MatIconModule,
194
+ MatProgressSpinnerModule,
195
+ MatButtonModule,
196
+ IgoLanguageModule,
197
+ MsalModule,
198
+ AuthFormComponent,
199
+ AuthGoogleComponent,
200
+ AuthInternComponent,
201
+ AuthFacebookComponent,
202
+ AuthMicrosoftComponent,
203
+ AuthMicrosoftb2cComponent] });
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoAuthFormModule, decorators: [{
206
+ type: NgModule,
207
+ args: [{
208
+ imports: [
209
+ CommonModule,
210
+ ReactiveFormsModule,
211
+ MatFormFieldModule,
212
+ MatInputModule,
213
+ MatIconModule,
214
+ MatProgressSpinnerModule,
215
+ MatButtonModule,
216
+ IgoLanguageModule,
217
+ MsalModule,
218
+ AuthFormComponent,
219
+ AuthGoogleComponent,
220
+ AuthInternComponent,
221
+ AuthFacebookComponent,
222
+ AuthMicrosoftComponent,
223
+ AuthMicrosoftb2cComponent
224
+ ],
225
+ exports: [AuthFormComponent]
226
+ }]
227
+ }] });
228
+
229
+ /*
230
+ * Public API Surface of auth
231
+ */
232
+
233
+ /**
234
+ * Generated bundle index. Do not edit.
235
+ */
236
+
237
+ export { AuthFormComponent, IgoAuthFormModule };
238
+ //# sourceMappingURL=igo2-auth-form.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"igo2-auth-form.mjs","sources":["../../../packages/auth/form/src/auth-form/auth-form.component.ts","../../../packages/auth/form/src/auth-form/auth-form.component.html","../../../packages/auth/form/src/auth-form.module.ts","../../../packages/auth/form/src/public_api.ts","../../../packages/auth/form/src/igo2-auth-form.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Optional,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { AuthOptions, AuthService } from '@igo2/auth';\nimport { AuthFacebookComponent } from '@igo2/auth/facebook';\nimport { AuthGoogleComponent } from '@igo2/auth/google';\nimport { AuthInternComponent } from '@igo2/auth/internal';\nimport {\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent\n} from '@igo2/auth/microsoft';\nimport { ConfigService } from '@igo2/core/config';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { filter } from 'rxjs/operators';\n\nimport { AuthFormOptions } from '../shared';\n\n@Component({\n selector: 'igo-auth-form',\n templateUrl: './auth-form.component.html',\n styleUrls: ['./auth-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [\n NgIf,\n AuthGoogleComponent,\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent,\n AuthFacebookComponent,\n AuthInternComponent,\n MatButtonModule,\n IgoLanguageModule\n ]\n})\nexport class AuthFormComponent implements OnInit {\n @Input()\n get backgroundDisable(): boolean {\n if (this.isLogoutRoute || this.isLogoutRoute) {\n return false;\n }\n return this._backgroundDisable;\n }\n set backgroundDisable(value: boolean) {\n this._backgroundDisable = value.toString() === 'true';\n }\n private _backgroundDisable = true;\n\n @Input()\n get hasAlreadyConnectedDiv(): boolean {\n return this._hasAlreadyConnectedDiv;\n }\n set hasAlreadyConnectedDiv(value: boolean) {\n this._hasAlreadyConnectedDiv = value.toString() === 'true';\n }\n private _hasAlreadyConnectedDiv = true;\n\n @Input()\n get hasLogoutDiv(): boolean {\n return this._hasLogoutDiv;\n }\n set hasLogoutDiv(value: boolean) {\n this._hasLogoutDiv = value.toString() === 'true';\n }\n private _hasLogoutDiv = true;\n\n @Input()\n get showAlreadyConnectedDiv(): boolean {\n if (this.isLogoutRoute) {\n return this.hasAlreadyConnectedDiv;\n }\n return this._showAlreadyConnectedDiv;\n }\n set showAlreadyConnectedDiv(value: boolean) {\n this._showAlreadyConnectedDiv = value.toString() === 'true';\n }\n private _showAlreadyConnectedDiv = false;\n\n @Input()\n get showLogoutDiv(): boolean {\n if (this.isLogoutRoute) {\n return this.hasLogoutDiv;\n }\n return this._showLogoutDiv;\n }\n set showLogoutDiv(value: boolean) {\n this._showLogoutDiv = value.toString() === 'true';\n }\n private _showLogoutDiv = false;\n\n get showLoginDiv(): boolean {\n if (!this.isLogoutRoute) {\n return true;\n }\n }\n\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n public options?: AuthOptions & AuthFormOptions;\n public user;\n\n public visible = true;\n\n private isLogoutRoute: boolean;\n\n constructor(\n public auth: AuthService,\n private config: ConfigService,\n @Optional() private router: Router\n ) {\n this.options = this.config.getConfig('auth');\n this.visible = Object.getOwnPropertyNames(this.options).length !== 0;\n }\n\n public ngOnInit() {\n this.analyzeRoute();\n this.getName();\n }\n\n public onLogin() {\n this.auth.goToRedirectUrl();\n this.getName();\n this.login.emit(true);\n }\n\n public logout() {\n this.auth.logout().subscribe(() => {\n this.user = undefined;\n if (this.router) {\n if (this.options?.logoutRoute) {\n this.router.navigate([this.options?.logoutRoute]);\n } else if (this.options?.homeRoute) {\n this.router.navigate([this.options?.homeRoute]);\n }\n }\n });\n }\n\n public home() {\n if (this.router && this.options?.homeRoute) {\n this.router.navigate([this.options?.homeRoute]);\n }\n }\n\n private getName() {\n const tokenDecoded = this.auth.decodeToken();\n if (tokenDecoded) {\n this.user = {\n name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId\n };\n }\n }\n\n private analyzeRoute() {\n if (!this.router) {\n return;\n }\n\n this.router.events\n .pipe(filter((event) => event instanceof NavigationStart))\n .subscribe((changeEvent: any) => {\n if (changeEvent.url) {\n const currentRoute = changeEvent.url;\n const logoutRoute = this.options?.logoutRoute;\n\n this.isLogoutRoute = currentRoute === logoutRoute;\n\n if (this.isLogoutRoute) {\n this.auth.logout();\n }\n }\n });\n }\n}\n","<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\n <igo-auth-microsoft\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoft>\n\n <igo-auth-microsoftb2c\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-microsoftb2c>\n\n <igo-auth-facebook\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\n (login)=\"onLogin()\"\n >\n </igo-auth-facebook>\n\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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { AuthFacebookComponent } from '@igo2/auth/facebook';\nimport { AuthGoogleComponent } from '@igo2/auth/google';\nimport { AuthInternComponent } from '@igo2/auth/internal';\nimport {\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent\n} from '@igo2/auth/microsoft';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { MsalModule } from '@azure/msal-angular';\n\nimport { AuthFormComponent } from './auth-form/auth-form.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n IgoLanguageModule,\n MsalModule,\n AuthFormComponent,\n AuthGoogleComponent,\n AuthInternComponent,\n AuthFacebookComponent,\n AuthMicrosoftComponent,\n AuthMicrosoftb2cComponent\n ],\n exports: [AuthFormComponent]\n})\nexport class IgoAuthFormModule {}\n","/*\n * Public API Surface of auth\n */\n\nexport * from './shared/auth-form.interface';\nexport * from './auth-form.module';\n\nexport * from './auth-form/auth-form.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, Output } from '@angular/core';
3
+ import * as i1 from '@igo2/auth';
4
+ import * as i2 from '@igo2/core/config';
5
+ import * as i3 from '@igo2/core/language';
6
+
7
+ 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 = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthGoogleComponent, deps: [{ token: i1.AuthService }, { token: i2.ConfigService }, { token: i3.LanguageService }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: AuthGoogleComponent, isStandalone: true, selector: "igo-auth-google", outputs: { login: "login" }, ngImport: i0, 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"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AuthGoogleComponent, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: 'igo-auth-google', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, 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"] }]
103
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.LanguageService }, { type: i0.ApplicationRef }], propDecorators: { login: [{
104
+ type: Output
105
+ }] } });
106
+
107
+ /**
108
+ * Generated bundle index. Do not edit.
109
+ */
110
+
111
+ export { AuthGoogleComponent };
112
+ //# sourceMappingURL=igo2-auth-google.mjs.map