@arsedizioni/ars-utils 18.4.3 → 18.4.4
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.
|
@@ -42,8 +42,11 @@ export class LoginOAuthComponent {
|
|
|
42
42
|
this.msaLService = inject(MsalService);
|
|
43
43
|
this.ngZone = inject(NgZone);
|
|
44
44
|
this.success = new EventEmitter();
|
|
45
|
-
this.
|
|
45
|
+
this.showInfo = input(true);
|
|
46
|
+
this.applicationName = input();
|
|
46
47
|
this.autoInitialize = input(false);
|
|
48
|
+
this.allowMicrosoft = input(true);
|
|
49
|
+
this.allowGoogle = input(true);
|
|
47
50
|
this.oauthReady = signal(false);
|
|
48
51
|
this.oauthMicrosoftReady = signal(false);
|
|
49
52
|
this.oauthGoogleReady = signal(false);
|
|
@@ -128,7 +131,7 @@ export class LoginOAuthComponent {
|
|
|
128
131
|
googleButtonWrapper.click();
|
|
129
132
|
}
|
|
130
133
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginOAuthComponent, isStandalone: true, selector: "login-oauth", inputs: { showInfo: { classPropertyName: "showInfo", publicName: "showInfo", isSignal: true, isRequired: false, transformFunction: null }, applicationName: { classPropertyName: "applicationName", publicName: "applicationName", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null }, allowMicrosoft: { classPropertyName: "allowMicrosoft", publicName: "allowMicrosoft", isSignal: true, isRequired: false, transformFunction: null }, allowGoogle: { classPropertyName: "allowGoogle", publicName: "allowGoogle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { success: "success" }, providers: [{
|
|
132
135
|
provide: MSAL_INSTANCE,
|
|
133
136
|
deps: [EnvironmentService],
|
|
134
137
|
useFactory: MSALInstanceFactory
|
|
@@ -143,7 +146,7 @@ export class LoginOAuthComponent {
|
|
|
143
146
|
useFactory: MSALInterceptorConfigFactory
|
|
144
147
|
},
|
|
145
148
|
MsalService,
|
|
146
|
-
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{
|
|
149
|
+
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n @if(showInfo()) {\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n @if(applicationName()) {\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{applicationName()}} e dei servizi ad esso\r\n connessi.</p>\r\n }\r\n </div>\r\n }\r\n @if (allowMicrosoft()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n }\r\n @if (allowGoogle()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n }\r\n</div>", styles: [".login-oauth{text-align:center}.login-oauth .button{padding:10px 0;width:100%}.login-oauth .message{padding:0 0 10px!important;font-size:small}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
147
150
|
}
|
|
148
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOAuthComponent, decorators: [{
|
|
149
152
|
type: Component,
|
|
@@ -164,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
164
167
|
MsalService,
|
|
165
168
|
MsalBroadcastService], imports: [
|
|
166
169
|
MatButtonModule
|
|
167
|
-
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{
|
|
170
|
+
], template: "<div class=\"login-oauth\">\r\n @if(showInfo()) {\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n @if(applicationName()) {\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{applicationName()}} e dei servizi ad esso\r\n connessi.</p>\r\n }\r\n </div>\r\n }\r\n @if (allowMicrosoft()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n }\r\n @if (allowGoogle()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n }\r\n</div>", styles: [".login-oauth{text-align:center}.login-oauth .button{padding:10px 0;width:100%}.login-oauth .message{padding:0 0 10px!important;font-size:small}\n"] }]
|
|
168
171
|
}], propDecorators: { success: [{
|
|
169
172
|
type: Output
|
|
170
173
|
}] } });
|
|
@@ -191,4 +194,4 @@ const createFakeGoogleWrapper = () => {
|
|
|
191
194
|
};
|
|
192
195
|
};
|
|
193
196
|
var googleButtonWrapper = null;
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tb2F1dGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQXdELFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pMLE9BQU8sRUFBd0Isb0JBQW9CLEVBQWdCLFNBQVMsRUFBNEIsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUssT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHbEQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFdBQStCO0lBQ2pFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztRQUNqQyxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELFNBQVMsRUFBRSwwQ0FBMEM7WUFDckQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCO1NBQ3ZEO1FB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dUI7NEJBQ2hDLElBQUksRUFBQyxDQUFDLGtCQUFrQixDQUFDOzRCQUN6QixVQUFVLEVBQUUsNEJBQTRCO3lCQUN6Qzt3QkFDQyxXQUFXO3dCQUNYLG9CQUFvQixDQUFDLFdBQ2Q7d0JBQ1AsZUFBZTtxQkFDaEI7OEJBUVMsT0FBTztzQkFBaEIsTUFBTTs7QUEwR1QsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7SUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELGlFQUFpRTtJQUNqRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFekQsMEJBQTBCO0lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFOUMsaUVBQWlFO0lBQ2pFLG9FQUFvRTtJQUNwRSxhQUFhO0lBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRTtRQUN6RCxJQUFJLEVBQUUsTUFBTTtRQUNaLEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQyxDQUFDO0lBRUgsTUFBTSx3QkFBd0IsR0FDNUIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFdkQsT0FBTztRQUNMLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDVixhQUFhO1lBQ2Isd0JBQXdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFDRixJQUFJLG1CQUFtQixHQUFRLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UsIE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25SZXN1bHQsIEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBJbnRlcmFjdGlvblR5cGUsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhSZXN1bHQgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgY2xpZW50SWQ6IFwiNmIyYzA4MGYtNmFiMC00NTExLWE5ZGYtMGJjZTY5ZGI1ODMzXCIsXHJcbiAgICAgIGF1dGhvcml0eTogXCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uXCIsXHJcbiAgICAgIHJlZGlyZWN0VXJpOiBlbnZpcm9ubWVudC5hcHBVcmksIC8vIFRoaXMgaXMgeW91ciByZWRpclxyXG4gICAgfSxcclxuICAgIGNhY2hlOiB7XHJcbiAgICAgIGNhY2hlTG9jYXRpb246IEJyb3dzZXJDYWNoZUxvY2F0aW9uLkxvY2FsU3RvcmFnZVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwLFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IG5ldyBNYXAoW1xyXG4gICAgICBbZW52aXJvbm1lbnQuYXBwU2VydmljZVVyaSArICcvbG9naW4nLCBbXCJhcGk6Ly82YjJjMDgwZi02YWIwLTQ1MTEtYTlkZi0wYmNlNjlkYjU4MzMvQW5ndWxhclNQQUF1dGhTY29wZVwiXV0sXHJcbiAgICAgIFtcImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92Mi4wL21lXCIsIFtcInVzZXIucmVhZFwiXV0sXHJcbiAgICBdKVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcclxuICAgIGF1dGhSZXF1ZXN0OiB7XHJcbiAgICAgIHNjb3BlczogW1widXNlci5yZWFkXCJdXHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb2dpbi1vYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLW9hdXRoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1vYXV0aC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTVNBTF9JTlNUQU5DRSxcclxuICAgIGRlcHM6W0Vudmlyb25tZW50U2VydmljZV0sXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMSW5zdGFuY2VGYWN0b3J5XHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBNU0FMX0dVQVJEX0NPTkZJRyxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxHdWFyZENvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gIHtcclxuICAgIHByb3ZpZGU6IE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLFxyXG4gICAgZGVwczpbRW52aXJvbm1lbnRTZXJ2aWNlXSxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxJbnRlcmNlcHRvckNvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gICAgTXNhbFNlcnZpY2UsXHJcbiAgICBNc2FsQnJvYWRjYXN0U2VydmljZV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0QnV0dG9uTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5PQXV0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIG1zYWxCcm9hZGNhc3RTZXJ2aWNlID0gaW5qZWN0KE1zYWxCcm9hZGNhc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIG1zYUxTZXJ2aWNlID0gaW5qZWN0KE1zYWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8TG9naW5PQXV0aFJlc3VsdD4oKTtcclxuXHJcbiAgYXBwTmFtZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XHJcbiAgYXV0b0luaXRpYWxpemUgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4oZmFsc2UpO1xyXG5cclxuXHJcbiAgcHJvdGVjdGVkIG9hdXRoUmVhZHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBvYXV0aE1pY3Jvc29mdFJlYWR5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgb2F1dGhHb29nbGVSZWFkeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Jbml0aWFsaXplKCkpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1zYWxCcm9hZGNhc3RTZXJ2aWNlLm1zYWxTdWJqZWN0JFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKG1zZzogRXZlbnRNZXNzYWdlKSA9PiBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyOiBhbnkpID0+IHsgICAgICAgIFxyXG4gICAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh7IHR5cGU6IDEsIHRva2VuOiByLnBheWxvYWQuYWNjZXNzVG9rZW4gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBvcGVuIGF1dGhlbnRpY2F0aW9uICBcclxuICAgKiBNdXN0IGJlIGEgcHVibGljIG1ldGhvZCBcclxuICAgKi9cclxuICBpbml0aWFsaXplKCkge1xyXG4gICAgaWYgKHRoaXMub2F1dGhSZWFkeSgpKSB7XHJcbiAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBkb25lXHJcbiAgICB9XHJcbiAgICB0aGlzLm9hdXRoUmVhZHkuc2V0KHRydWUpO1xyXG5cclxuICAgIC8vIExvYWQgTVMgc3RhY2tcclxuICAgIHRoaXMubXNhTFNlcnZpY2UuaW5pdGlhbGl6ZSgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vYXV0aE1pY3Jvc29mdFJlYWR5LnNldCh0cnVlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gTG9hZCBnb29nbGUgbWFwcyBzY3JpcHQgYWZ0ZXIgdmlldyBpbml0XHJcbiAgICBjb25zdCBEU0xTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIERTTFNjcmlwdC5zcmMgPSAnaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQnO1xyXG4gICAgRFNMU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoRFNMU2NyaXB0KTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoRFNMU2NyaXB0KTtcclxuXHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB3aW5kb3cub25Hb29nbGVMaWJyYXJ5TG9hZCA9ICgpID0+IHtcclxuICAgICAgLy8gaW5pdGlhbGl6ZSBnb29nbGUgYWNjb3VudFxyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGdvb2dsZS5hY2NvdW50cy5pZC5pbml0aWFsaXplKHtcclxuICAgICAgICBjbGllbnRfaWQ6ICc3MTIwNDk4MzA3Ny1hZzMxaDNiZ3QydWRjYmZyOW5uODRyOXJuaTJrM3NucC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbScsXHJcbiAgICAgICAgY2FuY2VsX29uX3RhcF9vdXRzaWRlOiB0cnVlLFxyXG4gICAgICAgIGF1dG9fc2VsZWN0OiBmYWxzZSxcclxuICAgICAgICBjYWxsYmFjazogKHI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoeyB0eXBlOiAyLCB0b2tlbjogci5jcmVkZW50aWFsIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGdvb2dsZUJ1dHRvbldyYXBwZXIgPSBjcmVhdGVGYWtlR29vZ2xlV3JhcHBlcigpO1xyXG5cclxuICAgICAgdGhpcy5vYXV0aEdvb2dsZVJlYWR5LnNldCh0cnVlKTtcclxuICAgIH07XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBQZXJmb3JtIGxvZ2luIHVzaW5nIE1TQUxcclxuICAqL1xyXG4gIHByb3RlY3RlZCBsb2dpbk1TQUwoKSB7XHJcbiAgICB0aGlzLm1zYUxTZXJ2aWNlLmxvZ2luUG9wdXAoKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocjogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMubXNhTFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyLmFjY291bnQpO1xyXG4gICAgICAgICAgdGhpcy5tc2FMU2VydmljZS5hY3F1aXJlVG9rZW5TaWxlbnQoe1xyXG4gICAgICAgICAgICBzY29wZXM6IFtcclxuICAgICAgICAgICAgICBcImFwaTovLzZiMmMwODBmLTZhYjAtNDUxMS1hOWRmLTBiY2U2OWRiNTgzMy9Bbmd1bGFyU1BBQXV0aFNjb3BlXCJcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgYWNjb3VudDogci5hY2NvdW50XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luIHVzaW5nIEdvb2dsZVxyXG4qL1xyXG4gIHByb3RlY3RlZCBsb2dpbkdvb2dsZSgpIHtcclxuICAgIC8vIFVzZSB3cmFwcGVyIGNsaWNrIHRvIHByZXZlbnQgSWxsZWdhbCBpbnZvY2F0aW9uIGV4Y2VwdGlvblxyXG4gICAgZ29vZ2xlQnV0dG9uV3JhcHBlci5jbGljaygpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgY3JlYXRlRmFrZUdvb2dsZVdyYXBwZXIgPSAoKSA9PiB7XHJcbiAgY29uc3QgZ29vZ2xlTG9naW5XcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAvLyBPciB5b3UgY2FuIHNpbXBsZSBoaWRlIGl0IGluIENTUyBydWxlIGZvciBjdXN0b20tZ29vZ2xlLWJ1dHRvblxyXG4gIGdvb2dsZUxvZ2luV3JhcHBlci5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgZ29vZ2xlTG9naW5XcmFwcGVyLmNsYXNzTGlzdC5hZGQoXCJjdXN0b20tZ29vZ2xlLWJ1dHRvblwiKTtcclxuXHJcbiAgLy8gQWRkIHRoZSB3cmFwcGVyIHRvIGJvZHlcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGdvb2dsZUxvZ2luV3JhcHBlcik7XHJcblxyXG4gIC8vIFVzZSBHU0kgamF2YXNjcmlwdCBhcGkgdG8gcmVuZGVyIHRoZSBidXR0b24gaW5zaWRlIG91ciB3cmFwcGVyXHJcbiAgLy8gWW91IGNhbiBpZ25vcmUgdGhlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGlzIGJ1dHRvbiB3aWxsIG5vdCBhcHBlYXJcclxuICAvLyBAdHMtaWdub3JlXHJcbiAgd2luZG93Lmdvb2dsZS5hY2NvdW50cy5pZC5yZW5kZXJCdXR0b24oZ29vZ2xlTG9naW5XcmFwcGVyLCB7XHJcbiAgICB0eXBlOiBcImljb25cIixcclxuICAgIHdpZHRoOiBcIjIwMFwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBnb29nbGVMb2dpbldyYXBwZXJCdXR0b24gPVxyXG4gICAgZ29vZ2xlTG9naW5XcmFwcGVyLnF1ZXJ5U2VsZWN0b3IoXCJkaXZbcm9sZT1idXR0b25dXCIpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBnb29nbGVMb2dpbldyYXBwZXJCdXR0b24uY2xpY2soKTtcclxuICAgIH0sXHJcbiAgfTtcclxufTtcclxudmFyIGdvb2dsZUJ1dHRvbldyYXBwZXI6IGFueSA9IG51bGw7XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibG9naW4tb2F1dGhcIj5cclxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxyXG4gICAgPHA+UXVlc3RhIHNlemlvbmUgY29uc2VudGUgZGkgYWNjZWRlcmUgYWwgc2Vydml6aW8gdXRpbGl6emFuZG8gdW4gcHJvdmlkZXIgT0F1dGgyLjwvcD5cclxuICAgIDxwPkxhIGVtYWlsIHV0aWxpenphdGEgZGV2ZSBlc3NlcmUgY29sbGVnYXRhIGFkIHVuIHV0ZW50ZSB2YWxpZG8gZGkge3thcHBOYW1lKCl9fSBlIGRlaSBzZXJ2aXppIGFkIGVzc28gY29ubmVzc2kuPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJidXR0b25cIj5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJsb2dpbk1TQUwoKVwiICBbYXR0ci5hcmlhLWxhYmVsXT1cIidFZmZldHR1YSBhY2Nlc3NvJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhb2F1dGhNaWNyb3NvZnRSZWFkeSgpXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgQWNjZWRpIGNvbiBNaWNyb3NvZnQ8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9naW5Hb29nbGUoKVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRWZmZXR0dWEgYWNjZXNzbydcIiBbZGlzYWJsZWRdPVwiIW9hdXRoR29vZ2xlUmVhZHkoKVwiPlxyXG4gICAgICBBY2NlZGkgY29uIEdvb2dsZTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tb2F1dGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQXdELFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pMLE9BQU8sRUFBd0Isb0JBQW9CLEVBQWdCLFNBQVMsRUFBNEIsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUssT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHbEQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFdBQStCO0lBQ2pFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztRQUNqQyxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELFNBQVMsRUFBRSwwQ0FBMEM7WUFDckQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCO1NBQ3ZEO1FB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LElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UsIE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25SZXN1bHQsIEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBJbnRlcmFjdGlvblR5cGUsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhSZXN1bHQgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgY2xpZW50SWQ6IFwiNmIyYzA4MGYtNmFiMC00NTExLWE5ZGYtMGJjZTY5ZGI1ODMzXCIsXHJcbiAgICAgIGF1dGhvcml0eTogXCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uXCIsXHJcbiAgICAgIHJlZGlyZWN0VXJpOiBlbnZpcm9ubWVudC5hcHBVcmksIC8vIFRoaXMgaXMgeW91ciByZWRpclxyXG4gICAgfSxcclxuICAgIGNhY2hlOiB7XHJcbiAgICAgIGNhY2hlTG9jYXRpb246IEJyb3dzZXJDYWNoZUxvY2F0aW9uLkxvY2FsU3RvcmFnZVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwLFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IG5ldyBNYXAoW1xyXG4gICAgICBbZW52aXJvbm1lbnQuYXBwU2VydmljZVVyaSArICcvbG9naW4nLCBbXCJhcGk6Ly82YjJjMDgwZi02YWIwLTQ1MTEtYTlkZi0wYmNlNjlkYjU4MzMvQW5ndWxhclNQQUF1dGhTY29wZVwiXV0sXHJcbiAgICAgIFtcImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92Mi4wL21lXCIsIFtcInVzZXIucmVhZFwiXV0sXHJcbiAgICBdKVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcclxuICAgIGF1dGhSZXF1ZXN0OiB7XHJcbiAgICAgIHNjb3BlczogW1widXNlci5yZWFkXCJdXHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb2dpbi1vYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLW9hdXRoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1vYXV0aC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTVNBTF9JTlNUQU5DRSxcclxuICAgIGRlcHM6W0Vudmlyb25tZW50U2VydmljZV0sXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMSW5zdGFuY2VGYWN0b3J5XHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBNU0FMX0dVQVJEX0NPTkZJRyxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxHdWFyZENvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gIHtcclxuICAgIHByb3ZpZGU6IE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLFxyXG4gICAgZGVwczpbRW52aXJvbm1lbnRTZXJ2aWNlXSxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxJbnRlcmNlcHRvckNvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gICAgTXNhbFNlcnZpY2UsXHJcbiAgICBNc2FsQnJvYWRjYXN0U2VydmljZV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0QnV0dG9uTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5PQXV0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIG1zYWxCcm9hZGNhc3RTZXJ2aWNlID0gaW5qZWN0KE1zYWxCcm9hZGNhc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIG1zYUxTZXJ2aWNlID0gaW5qZWN0KE1zYWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8TG9naW5PQXV0aFJlc3VsdD4oKTtcclxuXHJcbiAgc2hvd0luZm8gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBhcHBsaWNhdGlvbk5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcbiAgYXV0b0luaXRpYWxpemUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgYWxsb3dNaWNyb3NvZnQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBhbGxvd0dvb2dsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuXHJcbiAgcHJvdGVjdGVkIG9hdXRoUmVhZHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBvYXV0aE1pY3Jvc29mdFJlYWR5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgb2F1dGhHb29nbGVSZWFkeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Jbml0aWFsaXplKCkpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1zYWxCcm9hZGNhc3RTZXJ2aWNlLm1zYWxTdWJqZWN0JFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKG1zZzogRXZlbnRNZXNzYWdlKSA9PiBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyOiBhbnkpID0+IHsgICAgICAgIFxyXG4gICAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh7IHR5cGU6IDEsIHRva2VuOiByLnBheWxvYWQuYWNjZXNzVG9rZW4gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBvcGVuIGF1dGhlbnRpY2F0aW9uICBcclxuICAgKiBNdXN0IGJlIGEgcHVibGljIG1ldGhvZCBcclxuICAgKi9cclxuICBpbml0aWFsaXplKCkge1xyXG4gICAgaWYgKHRoaXMub2F1dGhSZWFkeSgpKSB7XHJcbiAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBkb25lXHJcbiAgICB9XHJcbiAgICB0aGlzLm9hdXRoUmVhZHkuc2V0KHRydWUpO1xyXG5cclxuICAgIC8vIExvYWQgTVMgc3RhY2tcclxuICAgIHRoaXMubXNhTFNlcnZpY2UuaW5pdGlhbGl6ZSgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vYXV0aE1pY3Jvc29mdFJlYWR5LnNldCh0cnVlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gTG9hZCBnb29nbGUgbWFwcyBzY3JpcHQgYWZ0ZXIgdmlldyBpbml0XHJcbiAgICBjb25zdCBEU0xTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIERTTFNjcmlwdC5zcmMgPSAnaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQnO1xyXG4gICAgRFNMU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoRFNMU2NyaXB0KTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoRFNMU2NyaXB0KTtcclxuXHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB3aW5kb3cub25Hb29nbGVMaWJyYXJ5TG9hZCA9ICgpID0+IHtcclxuICAgICAgLy8gaW5pdGlhbGl6ZSBnb29nbGUgYWNjb3VudFxyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGdvb2dsZS5hY2NvdW50cy5pZC5pbml0aWFsaXplKHtcclxuICAgICAgICBjbGllbnRfaWQ6ICc3MTIwNDk4MzA3Ny1hZzMxaDNiZ3QydWRjYmZyOW5uODRyOXJuaTJrM3NucC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbScsXHJcbiAgICAgICAgY2FuY2VsX29uX3RhcF9vdXRzaWRlOiB0cnVlLFxyXG4gICAgICAgIGF1dG9fc2VsZWN0OiBmYWxzZSxcclxuICAgICAgICBjYWxsYmFjazogKHI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoeyB0eXBlOiAyLCB0b2tlbjogci5jcmVkZW50aWFsIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGdvb2dsZUJ1dHRvbldyYXBwZXIgPSBjcmVhdGVGYWtlR29vZ2xlV3JhcHBlcigpO1xyXG5cclxuICAgICAgdGhpcy5vYXV0aEdvb2dsZVJlYWR5LnNldCh0cnVlKTtcclxuICAgIH07XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBQZXJmb3JtIGxvZ2luIHVzaW5nIE1TQUxcclxuICAqL1xyXG4gIHByb3RlY3RlZCBsb2dpbk1TQUwoKSB7XHJcbiAgICB0aGlzLm1zYUxTZXJ2aWNlLmxvZ2luUG9wdXAoKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocjogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMubXNhTFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyLmFjY291bnQpO1xyXG4gICAgICAgICAgdGhpcy5tc2FMU2VydmljZS5hY3F1aXJlVG9rZW5TaWxlbnQoe1xyXG4gICAgICAgICAgICBzY29wZXM6IFtcclxuICAgICAgICAgICAgICBcImFwaTovLzZiMmMwODBmLTZhYjAtNDUxMS1hOWRmLTBiY2U2OWRiNTgzMy9Bbmd1bGFyU1BBQXV0aFNjb3BlXCJcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgYWNjb3VudDogci5hY2NvdW50XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luIHVzaW5nIEdvb2dsZVxyXG4qL1xyXG4gIHByb3RlY3RlZCBsb2dpbkdvb2dsZSgpIHtcclxuICAgIC8vIFVzZSB3cmFwcGVyIGNsaWNrIHRvIHByZXZlbnQgSWxsZWdhbCBpbnZvY2F0aW9uIGV4Y2VwdGlvblxyXG4gICAgZ29vZ2xlQnV0dG9uV3JhcHBlci5jbGljaygpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgY3JlYXRlRmFrZUdvb2dsZVdyYXBwZXIgPSAoKSA9PiB7XHJcbiAgY29uc3QgZ29vZ2xlTG9naW5XcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAvLyBPciB5b3UgY2FuIHNpbXBsZSBoaWRlIGl0IGluIENTUyBydWxlIGZvciBjdXN0b20tZ29vZ2xlLWJ1dHRvblxyXG4gIGdvb2dsZUxvZ2luV3JhcHBlci5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgZ29vZ2xlTG9naW5XcmFwcGVyLmNsYXNzTGlzdC5hZGQoXCJjdXN0b20tZ29vZ2xlLWJ1dHRvblwiKTtcclxuXHJcbiAgLy8gQWRkIHRoZSB3cmFwcGVyIHRvIGJvZHlcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGdvb2dsZUxvZ2luV3JhcHBlcik7XHJcblxyXG4gIC8vIFVzZSBHU0kgamF2YXNjcmlwdCBhcGkgdG8gcmVuZGVyIHRoZSBidXR0b24gaW5zaWRlIG91ciB3cmFwcGVyXHJcbiAgLy8gWW91IGNhbiBpZ25vcmUgdGhlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGlzIGJ1dHRvbiB3aWxsIG5vdCBhcHBlYXJcclxuICAvLyBAdHMtaWdub3JlXHJcbiAgd2luZG93Lmdvb2dsZS5hY2NvdW50cy5pZC5yZW5kZXJCdXR0b24oZ29vZ2xlTG9naW5XcmFwcGVyLCB7XHJcbiAgICB0eXBlOiBcImljb25cIixcclxuICAgIHdpZHRoOiBcIjIwMFwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBnb29nbGVMb2dpbldyYXBwZXJCdXR0b24gPVxyXG4gICAgZ29vZ2xlTG9naW5XcmFwcGVyLnF1ZXJ5U2VsZWN0b3IoXCJkaXZbcm9sZT1idXR0b25dXCIpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBnb29nbGVMb2dpbldyYXBwZXJCdXR0b24uY2xpY2soKTtcclxuICAgIH0sXHJcbiAgfTtcclxufTtcclxudmFyIGdvb2dsZUJ1dHRvbldyYXBwZXI6IGFueSA9IG51bGw7XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibG9naW4tb2F1dGhcIj5cclxuICBAaWYoc2hvd0luZm8oKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XHJcbiAgICA8cD5RdWVzdGEgc2V6aW9uZSBjb25zZW50ZSBkaSBhY2NlZGVyZSBhbCBzZXJ2aXppbyB1dGlsaXp6YW5kbyB1biBwcm92aWRlciBPQXV0aDIuPC9wPlxyXG4gICAgQGlmKGFwcGxpY2F0aW9uTmFtZSgpKSB7XHJcbiAgICA8cD5MYSBlbWFpbCB1dGlsaXp6YXRhIGRldmUgZXNzZXJlIGNvbGxlZ2F0YSBhZCB1biB1dGVudGUgdmFsaWRvIGRpIHt7YXBwbGljYXRpb25OYW1lKCl9fSBlIGRlaSBzZXJ2aXppIGFkIGVzc29cclxuICAgICAgY29ubmVzc2kuPC9wPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGFsbG93TWljcm9zb2Z0KCkpIHtcclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9naW5NU0FMKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidFZmZldHR1YSBhY2Nlc3NvJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhb2F1dGhNaWNyb3NvZnRSZWFkeSgpXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgQWNjZWRpIGNvbiBNaWNyb3NvZnQ8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChhbGxvd0dvb2dsZSgpKSB7XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImxvZ2luR29vZ2xlKClcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VmZmV0dHVhIGFjY2Vzc28nXCIgW2Rpc2FibGVkXT1cIiFvYXV0aEdvb2dsZVJlYWR5KClcIj5cclxuICAgICAgQWNjZWRpIGNvbiBHb29nbGU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PiJdfQ==
|
|
@@ -60,8 +60,11 @@ class LoginOAuthComponent {
|
|
|
60
60
|
this.msaLService = inject(MsalService);
|
|
61
61
|
this.ngZone = inject(NgZone);
|
|
62
62
|
this.success = new EventEmitter();
|
|
63
|
-
this.
|
|
63
|
+
this.showInfo = input(true);
|
|
64
|
+
this.applicationName = input();
|
|
64
65
|
this.autoInitialize = input(false);
|
|
66
|
+
this.allowMicrosoft = input(true);
|
|
67
|
+
this.allowGoogle = input(true);
|
|
65
68
|
this.oauthReady = signal(false);
|
|
66
69
|
this.oauthMicrosoftReady = signal(false);
|
|
67
70
|
this.oauthGoogleReady = signal(false);
|
|
@@ -146,7 +149,7 @@ class LoginOAuthComponent {
|
|
|
146
149
|
googleButtonWrapper.click();
|
|
147
150
|
}
|
|
148
151
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginOAuthComponent, isStandalone: true, selector: "login-oauth", inputs: { showInfo: { classPropertyName: "showInfo", publicName: "showInfo", isSignal: true, isRequired: false, transformFunction: null }, applicationName: { classPropertyName: "applicationName", publicName: "applicationName", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null }, allowMicrosoft: { classPropertyName: "allowMicrosoft", publicName: "allowMicrosoft", isSignal: true, isRequired: false, transformFunction: null }, allowGoogle: { classPropertyName: "allowGoogle", publicName: "allowGoogle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { success: "success" }, providers: [{
|
|
150
153
|
provide: MSAL_INSTANCE,
|
|
151
154
|
deps: [EnvironmentService],
|
|
152
155
|
useFactory: MSALInstanceFactory
|
|
@@ -161,7 +164,7 @@ class LoginOAuthComponent {
|
|
|
161
164
|
useFactory: MSALInterceptorConfigFactory
|
|
162
165
|
},
|
|
163
166
|
MsalService,
|
|
164
|
-
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{
|
|
167
|
+
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n @if(showInfo()) {\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n @if(applicationName()) {\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{applicationName()}} e dei servizi ad esso\r\n connessi.</p>\r\n }\r\n </div>\r\n }\r\n @if (allowMicrosoft()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n }\r\n @if (allowGoogle()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n }\r\n</div>", styles: [".login-oauth{text-align:center}.login-oauth .button{padding:10px 0;width:100%}.login-oauth .message{padding:0 0 10px!important;font-size:small}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
165
168
|
}
|
|
166
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOAuthComponent, decorators: [{
|
|
167
170
|
type: Component,
|
|
@@ -182,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
182
185
|
MsalService,
|
|
183
186
|
MsalBroadcastService], imports: [
|
|
184
187
|
MatButtonModule
|
|
185
|
-
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{
|
|
188
|
+
], template: "<div class=\"login-oauth\">\r\n @if(showInfo()) {\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n @if(applicationName()) {\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{applicationName()}} e dei servizi ad esso\r\n connessi.</p>\r\n }\r\n </div>\r\n }\r\n @if (allowMicrosoft()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n }\r\n @if (allowGoogle()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n }\r\n</div>", styles: [".login-oauth{text-align:center}.login-oauth .button{padding:10px 0;width:100%}.login-oauth .message{padding:0 0 10px!important;font-size:small}\n"] }]
|
|
186
189
|
}], propDecorators: { success: [{
|
|
187
190
|
type: Output
|
|
188
191
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arsedizioni-ars-utils-ui.oauth.mjs","sources":["../../../projects/ars-utils/ui.oauth/ui/definitions.ts","../../../projects/ars-utils/ui.oauth/ui/ui.module.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/login-oauth.component.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/login-oauth.component.html","../../../projects/ars-utils/ui.oauth/public_api.ts","../../../projects/ars-utils/ui.oauth/arsedizioni-ars-utils-ui.oauth.ts"],"sourcesContent":["export enum LoginOAuthType {\r\n None = 0,\r\n Microsoft = 1,\r\n Google = 2\r\n}\r\n\r\nexport interface LoginOAuthResult {\r\n type: number,\r\n token: string\r\n}","import { NgModule } from \"@angular/core\";\r\n\r\n// Material\r\n\r\n@NgModule()\r\nexport class ArsUIOAuthModule { }\r\n\r\nexport * from \"./definitions\";\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, NgZone, OnDestroy, OnInit, Output, inject, input, signal } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { EnvironmentService } from '@arsedizioni/ars-utils/core';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalGuardConfiguration, MsalInterceptorConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { AuthenticationResult, BrowserCacheLocation, EventMessage, EventType, IPublicClientApplication, InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\nimport { Subject, filter, takeUntil } from 'rxjs';\r\nimport { LoginOAuthResult } from '../../definitions';\r\n\r\nexport function MSALInstanceFactory(environment: EnvironmentService): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: \"6b2c080f-6ab0-4511-a9df-0bce69db5833\",\r\n authority: \"https://login.microsoftonline.com/common\",\r\n redirectUri: environment.appUri, // This is your redir\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage\r\n }\r\n });\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(environment: EnvironmentService): MsalInterceptorConfiguration {\r\n \r\n return {\r\n interactionType: InteractionType.Popup,\r\n protectedResourceMap: new Map([\r\n [environment.appServiceUri + '/login', [\"api://6b2c080f-6ab0-4511-a9df-0bce69db5833/AngularSPAAuthScope\"]],\r\n [\"https://graph.microsoft.com/v2.0/me\", [\"user.read\"]],\r\n ])\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [\"user.read\"]\r\n }\r\n };\r\n}\r\n\r\n@Component({\r\n selector: 'login-oauth',\r\n templateUrl: './login-oauth.component.html',\r\n styleUrls: ['./login-oauth.component.scss'],\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{\r\n provide: MSAL_INSTANCE,\r\n deps:[EnvironmentService],\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n deps:[EnvironmentService],\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalBroadcastService],\r\n imports: [\r\n MatButtonModule\r\n ]\r\n})\r\nexport class LoginOAuthComponent implements OnInit, OnDestroy {\r\n private unsubscribe: Subject<void> = new Subject<void>();\r\n private msalBroadcastService = inject(MsalBroadcastService);\r\n private msaLService = inject(MsalService);\r\n private ngZone = inject(NgZone);\r\n\r\n @Output() success = new EventEmitter<LoginOAuthResult>();\r\n\r\n appName = input<string | null>();\r\n autoInitialize = input<boolean | null>(false);\r\n\r\n\r\n protected oauthReady = signal<boolean>(false);\r\n protected oauthMicrosoftReady = signal<boolean>(false);\r\n protected oauthGoogleReady = signal<boolean>(false);\r\n\r\n\r\n ngOnInit() {\r\n if (this.autoInitialize()) {\r\n this.initialize();\r\n }\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),\r\n takeUntil(this.unsubscribe)\r\n )\r\n .subscribe((r: any) => { \r\n if (r) {\r\n this.success.emit({ type: 1, token: r.payload.accessToken });\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n /**\r\n * Initialize open authentication \r\n * Must be a public method \r\n */\r\n initialize() {\r\n if (this.oauthReady()) {\r\n return; // Already done\r\n }\r\n this.oauthReady.set(true);\r\n\r\n // Load MS stack\r\n this.msaLService.initialize()\r\n .pipe(takeUntil(this.unsubscribe))\r\n .subscribe(() => {\r\n this.oauthMicrosoftReady.set(true);\r\n });\r\n\r\n // Load google maps script after view init\r\n const DSLScript = document.createElement('script');\r\n DSLScript.src = 'https://accounts.google.com/gsi/client';\r\n DSLScript.type = 'text/javascript';\r\n document.body.appendChild(DSLScript);\r\n document.body.removeChild(DSLScript);\r\n\r\n // @ts-ignore\r\n window.onGoogleLibraryLoad = () => {\r\n // initialize google account\r\n // @ts-ignore\r\n google.accounts.id.initialize({\r\n client_id: '71204983077-ag31h3bgt2udcbfr9nn84r9rni2k3snp.apps.googleusercontent.com',\r\n cancel_on_tap_outside: true,\r\n auto_select: false,\r\n callback: (r: any) => {\r\n this.ngZone.run(() => {\r\n this.success.emit({ type: 2, token: r.credential });\r\n });\r\n }\r\n });\r\n\r\n googleButtonWrapper = createFakeGoogleWrapper();\r\n\r\n this.oauthGoogleReady.set(true);\r\n };\r\n\r\n }\r\n\r\n /**\r\n * Perform login using MSAL\r\n */\r\n protected loginMSAL() {\r\n this.msaLService.loginPopup()\r\n .subscribe({\r\n next: (r: AuthenticationResult) => {\r\n this.msaLService.instance.setActiveAccount(r.account);\r\n this.msaLService.acquireTokenSilent({\r\n scopes: [\r\n \"api://6b2c080f-6ab0-4511-a9df-0bce69db5833/AngularSPAAuthScope\"\r\n ],\r\n account: r.account\r\n })\r\n }\r\n });\r\n }\r\n\r\n /**\r\n* Perform login using Google\r\n*/\r\n protected loginGoogle() {\r\n // Use wrapper click to prevent Illegal invocation exception\r\n googleButtonWrapper.click();\r\n }\r\n}\r\n\r\nconst createFakeGoogleWrapper = () => {\r\n const googleLoginWrapper = document.createElement(\"div\");\r\n // Or you can simple hide it in CSS rule for custom-google-button\r\n googleLoginWrapper.style.display = \"none\";\r\n googleLoginWrapper.classList.add(\"custom-google-button\");\r\n\r\n // Add the wrapper to body\r\n document.body.appendChild(googleLoginWrapper);\r\n\r\n // Use GSI javascript api to render the button inside our wrapper\r\n // You can ignore the properties because this button will not appear\r\n // @ts-ignore\r\n window.google.accounts.id.renderButton(googleLoginWrapper, {\r\n type: \"icon\",\r\n width: \"200\",\r\n });\r\n\r\n const googleLoginWrapperButton =\r\n googleLoginWrapper.querySelector(\"div[role=button]\");\r\n\r\n return {\r\n click: () => {\r\n // @ts-ignore\r\n googleLoginWrapperButton.click();\r\n },\r\n };\r\n};\r\nvar googleButtonWrapper: any = null;\r\n\r\n","<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{appName()}} e dei servizi ad esso connessi.</p>\r\n </div>\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n</div>","/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from './ui/ui.module';\r\nexport * from './ui/components/login/login-oauth.component';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;IAAY,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACZ,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA;;ACFD;MAGa,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,QAAQ;;;ACIH,SAAU,mBAAmB,CAAC,WAA+B,EAAA;IACjE,OAAO,IAAI,uBAAuB,CAAC;AACjC,QAAA,IAAI,EAAE;AACJ,YAAA,QAAQ,EAAE,sCAAsC;AAChD,YAAA,SAAS,EAAE,0CAA0C;AACrD,YAAA,WAAW,EAAE,WAAW,CAAC,MAAM;AAChC,SAAA;AACD,QAAA,KAAK,EAAE;YACL,aAAa,EAAE,oBAAoB,CAAC,YAAY;AACjD,SAAA;AACF,KAAA,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,4BAA4B,CAAC,WAA+B,EAAA;IAE1E,OAAO;QACL,eAAe,EAAE,eAAe,CAAC,KAAK;QACtC,oBAAoB,EAAE,IAAI,GAAG,CAAC;YAC5B,CAAC,WAAW,CAAC,aAAa,GAAG,QAAQ,EAAE,CAAC,gEAAgE,CAAC,CAAC;AAC1G,YAAA,CAAC,qCAAqC,EAAE,CAAC,WAAW,CAAC,CAAC;SACvD,CAAC;KACH,CAAC;AACJ,CAAC;SAEe,sBAAsB,GAAA;IACpC,OAAO;QACL,eAAe,EAAE,eAAe,CAAC,KAAK;AACtC,QAAA,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,WAAW,CAAC;AACtB,SAAA;KACF,CAAC;AACJ,CAAC;MA4BY,mBAAmB,CAAA;AA1BhC,IAAA,WAAA,GAAA;AA2BU,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;AACjD,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAoB,CAAC;QAEzD,IAAO,CAAA,OAAA,GAAG,KAAK,EAAiB,CAAC;AACjC,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAiB,KAAK,CAAC,CAAC;AAGpC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AAgGrD,KAAA;IA7FC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY;aACnC,IAAI,CACH,MAAM,CAAC,CAAC,GAAiB,KAAK,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,qBAAqB,CAAC,EAChF,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAC5B;AACA,aAAA,SAAS,CAAC,CAAC,CAAM,KAAI;YACpB,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;aAC9D;AACH,SAAC,CAAC,CAAC;KAEN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC7B;AAED;;;AAGG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,YAAA,OAAO;SACR;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;AAG1B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC1B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;;QAGL,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,SAAS,CAAC,GAAG,GAAG,wCAAwC,CAAC;AACzD,QAAA,SAAS,CAAC,IAAI,GAAG,iBAAiB,CAAC;AACnC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;;AAGrC,QAAA,MAAM,CAAC,mBAAmB,GAAG,MAAK;;;AAGhC,YAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;AAC5B,gBAAA,SAAS,EAAE,yEAAyE;AACpF,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,WAAW,EAAE,KAAK;AAClB,gBAAA,QAAQ,EAAE,CAAC,CAAM,KAAI;AACnB,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;AACtD,qBAAC,CAAC,CAAC;iBACJ;AACF,aAAA,CAAC,CAAC;YAEH,mBAAmB,GAAG,uBAAuB,EAAE,CAAC;AAEhD,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,SAAC,CAAC;KAEH;AAED;;AAEE;IACQ,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC1B,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,CAAuB,KAAI;gBAChC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;AAClC,oBAAA,MAAM,EAAE;wBACN,gEAAgE;AACjE,qBAAA;oBACD,OAAO,EAAE,CAAC,CAAC,OAAO;AACnB,iBAAA,CAAC,CAAA;aACH;AACF,SAAA,CAAC,CAAC;KACN;AAED;;AAEA;IACU,WAAW,GAAA;;QAEnB,mBAAmB,CAAC,KAAK,EAAE,CAAC;KAC7B;8GA7GU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,wXApBnB,CAAC;AACV,gBAAA,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAC,CAAC,kBAAkB,CAAC;AACzB,gBAAA,UAAU,EAAE,mBAAmB;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,sBAAsB;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;gBAChC,IAAI,EAAC,CAAC,kBAAkB,CAAC;AACzB,gBAAA,UAAU,EAAE,4BAA4B;AACzC,aAAA;YACC,WAAW;AACX,YAAA,oBAAoB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9DzB,wzBAeM,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDiDF,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGN,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA1B/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAGX,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,aACpC,CAAC;AACV,4BAAA,OAAO,EAAE,aAAa;4BACtB,IAAI,EAAC,CAAC,kBAAkB,CAAC;AACzB,4BAAA,UAAU,EAAE,mBAAmB;AAChC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,sBAAsB;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAC,CAAC,kBAAkB,CAAC;AACzB,4BAAA,UAAU,EAAE,4BAA4B;AACzC,yBAAA;wBACC,WAAW;AACX,wBAAA,oBAAoB,CAAC,EACd,OAAA,EAAA;wBACP,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,wzBAAA,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,CAAA;8BAQS,OAAO,EAAA,CAAA;sBAAhB,MAAM;;AA0GT,MAAM,uBAAuB,GAAG,MAAK;IACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;AAEzD,IAAA,kBAAkB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1C,IAAA,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;;AAGzD,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;;;;IAK9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE;AACzD,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,KAAK;AACb,KAAA,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAC5B,kBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK,EAAE,MAAK;;YAEV,wBAAwB,CAAC,KAAK,EAAE,CAAC;SAClC;KACF,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,mBAAmB,GAAQ,IAAI;;AE9MnC;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"arsedizioni-ars-utils-ui.oauth.mjs","sources":["../../../projects/ars-utils/ui.oauth/ui/definitions.ts","../../../projects/ars-utils/ui.oauth/ui/ui.module.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/login-oauth.component.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/login-oauth.component.html","../../../projects/ars-utils/ui.oauth/public_api.ts","../../../projects/ars-utils/ui.oauth/arsedizioni-ars-utils-ui.oauth.ts"],"sourcesContent":["export enum LoginOAuthType {\r\n None = 0,\r\n Microsoft = 1,\r\n Google = 2\r\n}\r\n\r\nexport interface LoginOAuthResult {\r\n type: number,\r\n token: string\r\n}","import { NgModule } from \"@angular/core\";\r\n\r\n// Material\r\n\r\n@NgModule()\r\nexport class ArsUIOAuthModule { }\r\n\r\nexport * from \"./definitions\";\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, NgZone, OnDestroy, OnInit, Output, inject, input, signal } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { EnvironmentService } from '@arsedizioni/ars-utils/core';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalGuardConfiguration, MsalInterceptorConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { AuthenticationResult, BrowserCacheLocation, EventMessage, EventType, IPublicClientApplication, InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\nimport { Subject, filter, takeUntil } from 'rxjs';\r\nimport { LoginOAuthResult } from '../../definitions';\r\n\r\nexport function MSALInstanceFactory(environment: EnvironmentService): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: \"6b2c080f-6ab0-4511-a9df-0bce69db5833\",\r\n authority: \"https://login.microsoftonline.com/common\",\r\n redirectUri: environment.appUri, // This is your redir\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage\r\n }\r\n });\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(environment: EnvironmentService): MsalInterceptorConfiguration {\r\n \r\n return {\r\n interactionType: InteractionType.Popup,\r\n protectedResourceMap: new Map([\r\n [environment.appServiceUri + '/login', [\"api://6b2c080f-6ab0-4511-a9df-0bce69db5833/AngularSPAAuthScope\"]],\r\n [\"https://graph.microsoft.com/v2.0/me\", [\"user.read\"]],\r\n ])\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [\"user.read\"]\r\n }\r\n };\r\n}\r\n\r\n@Component({\r\n selector: 'login-oauth',\r\n templateUrl: './login-oauth.component.html',\r\n styleUrls: ['./login-oauth.component.scss'],\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{\r\n provide: MSAL_INSTANCE,\r\n deps:[EnvironmentService],\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n deps:[EnvironmentService],\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalBroadcastService],\r\n imports: [\r\n MatButtonModule\r\n ]\r\n})\r\nexport class LoginOAuthComponent implements OnInit, OnDestroy {\r\n private unsubscribe: Subject<void> = new Subject<void>();\r\n private msalBroadcastService = inject(MsalBroadcastService);\r\n private msaLService = inject(MsalService);\r\n private ngZone = inject(NgZone);\r\n\r\n @Output() success = new EventEmitter<LoginOAuthResult>();\r\n\r\n showInfo = input<boolean>(true);\r\n applicationName = input<string>();\r\n autoInitialize = input<boolean>(false);\r\n allowMicrosoft = input<boolean>(true);\r\n allowGoogle = input<boolean>(true);\r\n\r\n\r\n protected oauthReady = signal<boolean>(false);\r\n protected oauthMicrosoftReady = signal<boolean>(false);\r\n protected oauthGoogleReady = signal<boolean>(false);\r\n\r\n\r\n ngOnInit() {\r\n if (this.autoInitialize()) {\r\n this.initialize();\r\n }\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),\r\n takeUntil(this.unsubscribe)\r\n )\r\n .subscribe((r: any) => { \r\n if (r) {\r\n this.success.emit({ type: 1, token: r.payload.accessToken });\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n /**\r\n * Initialize open authentication \r\n * Must be a public method \r\n */\r\n initialize() {\r\n if (this.oauthReady()) {\r\n return; // Already done\r\n }\r\n this.oauthReady.set(true);\r\n\r\n // Load MS stack\r\n this.msaLService.initialize()\r\n .pipe(takeUntil(this.unsubscribe))\r\n .subscribe(() => {\r\n this.oauthMicrosoftReady.set(true);\r\n });\r\n\r\n // Load google maps script after view init\r\n const DSLScript = document.createElement('script');\r\n DSLScript.src = 'https://accounts.google.com/gsi/client';\r\n DSLScript.type = 'text/javascript';\r\n document.body.appendChild(DSLScript);\r\n document.body.removeChild(DSLScript);\r\n\r\n // @ts-ignore\r\n window.onGoogleLibraryLoad = () => {\r\n // initialize google account\r\n // @ts-ignore\r\n google.accounts.id.initialize({\r\n client_id: '71204983077-ag31h3bgt2udcbfr9nn84r9rni2k3snp.apps.googleusercontent.com',\r\n cancel_on_tap_outside: true,\r\n auto_select: false,\r\n callback: (r: any) => {\r\n this.ngZone.run(() => {\r\n this.success.emit({ type: 2, token: r.credential });\r\n });\r\n }\r\n });\r\n\r\n googleButtonWrapper = createFakeGoogleWrapper();\r\n\r\n this.oauthGoogleReady.set(true);\r\n };\r\n\r\n }\r\n\r\n /**\r\n * Perform login using MSAL\r\n */\r\n protected loginMSAL() {\r\n this.msaLService.loginPopup()\r\n .subscribe({\r\n next: (r: AuthenticationResult) => {\r\n this.msaLService.instance.setActiveAccount(r.account);\r\n this.msaLService.acquireTokenSilent({\r\n scopes: [\r\n \"api://6b2c080f-6ab0-4511-a9df-0bce69db5833/AngularSPAAuthScope\"\r\n ],\r\n account: r.account\r\n })\r\n }\r\n });\r\n }\r\n\r\n /**\r\n* Perform login using Google\r\n*/\r\n protected loginGoogle() {\r\n // Use wrapper click to prevent Illegal invocation exception\r\n googleButtonWrapper.click();\r\n }\r\n}\r\n\r\nconst createFakeGoogleWrapper = () => {\r\n const googleLoginWrapper = document.createElement(\"div\");\r\n // Or you can simple hide it in CSS rule for custom-google-button\r\n googleLoginWrapper.style.display = \"none\";\r\n googleLoginWrapper.classList.add(\"custom-google-button\");\r\n\r\n // Add the wrapper to body\r\n document.body.appendChild(googleLoginWrapper);\r\n\r\n // Use GSI javascript api to render the button inside our wrapper\r\n // You can ignore the properties because this button will not appear\r\n // @ts-ignore\r\n window.google.accounts.id.renderButton(googleLoginWrapper, {\r\n type: \"icon\",\r\n width: \"200\",\r\n });\r\n\r\n const googleLoginWrapperButton =\r\n googleLoginWrapper.querySelector(\"div[role=button]\");\r\n\r\n return {\r\n click: () => {\r\n // @ts-ignore\r\n googleLoginWrapperButton.click();\r\n },\r\n };\r\n};\r\nvar googleButtonWrapper: any = null;\r\n\r\n","<div class=\"login-oauth\">\r\n @if(showInfo()) {\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio utilizzando un provider OAuth2.</p>\r\n @if(applicationName()) {\r\n <p>La email utilizzata deve essere collegata ad un utente valido di {{applicationName()}} e dei servizi ad esso\r\n connessi.</p>\r\n }\r\n </div>\r\n }\r\n @if (allowMicrosoft()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginMSAL()\" [attr.aria-label]=\"'Effettua accesso'\"\r\n [disabled]=\"!oauthMicrosoftReady()\" style=\"width: 100%;\">\r\n Accedi con Microsoft</button>\r\n </div>\r\n }\r\n @if (allowGoogle()) {\r\n <div class=\"button\">\r\n <button mat-flat-button color=\"primary\" (click)=\"loginGoogle()\" style=\"width: 100%;\"\r\n [attr.aria-label]=\"'Effettua accesso'\" [disabled]=\"!oauthGoogleReady()\">\r\n Accedi con Google</button>\r\n </div>\r\n }\r\n</div>","/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from './ui/ui.module';\r\nexport * from './ui/components/login/login-oauth.component';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arsedizioni/ars-utils",
|
|
3
|
-
"version": "18.4.
|
|
3
|
+
"version": "18.4.4",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "software@arsedizioni.it",
|
|
6
6
|
"name": "Fabio Buscaroli, Alberto Doria"
|
|
@@ -52,18 +52,18 @@
|
|
|
52
52
|
"esm": "./esm2022/help/arsedizioni-ars-utils-help.mjs",
|
|
53
53
|
"default": "./fesm2022/arsedizioni-ars-utils-help.mjs"
|
|
54
54
|
},
|
|
55
|
-
"./evolution.common": {
|
|
56
|
-
"types": "./evolution.common/index.d.ts",
|
|
57
|
-
"esm2022": "./esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs",
|
|
58
|
-
"esm": "./esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs",
|
|
59
|
-
"default": "./fesm2022/arsedizioni-ars-utils-evolution.common.mjs"
|
|
60
|
-
},
|
|
61
55
|
"./core": {
|
|
62
56
|
"types": "./core/index.d.ts",
|
|
63
57
|
"esm2022": "./esm2022/core/arsedizioni-ars-utils-core.mjs",
|
|
64
58
|
"esm": "./esm2022/core/arsedizioni-ars-utils-core.mjs",
|
|
65
59
|
"default": "./fesm2022/arsedizioni-ars-utils-core.mjs"
|
|
66
60
|
},
|
|
61
|
+
"./evolution.common": {
|
|
62
|
+
"types": "./evolution.common/index.d.ts",
|
|
63
|
+
"esm2022": "./esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs",
|
|
64
|
+
"esm": "./esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs",
|
|
65
|
+
"default": "./fesm2022/arsedizioni-ars-utils-evolution.common.mjs"
|
|
66
|
+
},
|
|
67
67
|
"./support.common": {
|
|
68
68
|
"types": "./support.common/index.d.ts",
|
|
69
69
|
"esm2022": "./esm2022/support.common/arsedizioni-ars-utils-support.common.mjs",
|
|
@@ -13,8 +13,11 @@ export declare class LoginOAuthComponent implements OnInit, OnDestroy {
|
|
|
13
13
|
private msaLService;
|
|
14
14
|
private ngZone;
|
|
15
15
|
success: EventEmitter<LoginOAuthResult>;
|
|
16
|
-
|
|
16
|
+
showInfo: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
applicationName: import("@angular/core").InputSignal<string>;
|
|
17
18
|
autoInitialize: import("@angular/core").InputSignal<boolean>;
|
|
19
|
+
allowMicrosoft: import("@angular/core").InputSignal<boolean>;
|
|
20
|
+
allowGoogle: import("@angular/core").InputSignal<boolean>;
|
|
18
21
|
protected oauthReady: import("@angular/core").WritableSignal<boolean>;
|
|
19
22
|
protected oauthMicrosoftReady: import("@angular/core").WritableSignal<boolean>;
|
|
20
23
|
protected oauthGoogleReady: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -34,5 +37,5 @@ export declare class LoginOAuthComponent implements OnInit, OnDestroy {
|
|
|
34
37
|
*/
|
|
35
38
|
protected loginGoogle(): void;
|
|
36
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoginOAuthComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoginOAuthComponent, "login-oauth", never, { "
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginOAuthComponent, "login-oauth", never, { "showInfo": { "alias": "showInfo"; "required": false; "isSignal": true; }; "applicationName": { "alias": "applicationName"; "required": false; "isSignal": true; }; "autoInitialize": { "alias": "autoInitialize"; "required": false; "isSignal": true; }; "allowMicrosoft": { "alias": "allowMicrosoft"; "required": false; "isSignal": true; }; "allowGoogle": { "alias": "allowGoogle"; "required": false; "isSignal": true; }; }, { "success": "success"; }, never, never, true, never>;
|
|
38
41
|
}
|