@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.appName = input();
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.1.0", version: "18.2.7", type: LoginOAuthComponent, isStandalone: true, selector: "login-oauth", inputs: { appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { success: "success" }, providers: [{
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 {{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>", 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 }); }
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 {{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>", 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"] }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tb2F1dGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3VpLm9hdXRoL3VpL2NvbXBvbmVudHMvbG9naW4vbG9naW4tb2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQXdELFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pMLE9BQU8sRUFBd0Isb0JBQW9CLEVBQWdCLFNBQVMsRUFBNEIsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUssT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHbEQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFdBQStCO0lBQ2pFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztRQUNqQyxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELFNBQVMsRUFBRSwwQ0FBMEM7WUFDckQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCO1NBQ3ZEO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsYUFBYSxFQUFFLG9CQUFvQixDQUFDLFlBQVk7U0FDakQ7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFdBQStCO0lBRTFFLE9BQU87UUFDTCxlQUFlLEVBQUUsZUFBZSxDQUFDLEtBQUs7UUFDdEMsb0JBQW9CLEVBQUUsSUFBSSxHQUFHLENBQUM7WUFDNUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxHQUFHLFFBQVEsRUFBRSxDQUFDLGdFQUFnRSxDQUFDLENBQUM7WUFDMUcsQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZELENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTztRQUNMLGVBQWUsRUFBRSxlQUFlLENBQUMsS0FBSztRQUN0QyxXQUFXLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7U0FDdEI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTRCRCxNQUFNLE9BQU8sbUJBQW1CO0lBMUJoQztRQTJCVSxnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRXpELGFBQVEsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDaEMsb0JBQWUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUd6QixlQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7S0FnR3JEO0lBN0ZDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVk7YUFDbkMsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLEdBQWlCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQ2hGLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzVCO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLGVBQWU7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFCLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRTthQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVMLDBDQUEwQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELFNBQVMsQ0FBQyxHQUFHLEdBQUcsd0NBQXdDLENBQUM7UUFDekQsU0FBUyxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyQyxhQUFhO1FBQ2IsTUFBTSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtZQUNoQyw0QkFBNEI7WUFDNUIsYUFBYTtZQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztnQkFDNUIsU0FBUyxFQUFFLHlFQUF5RTtnQkFDcEYscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFFBQVEsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3RELENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7YUFDRixDQUFDLENBQUM7WUFFSCxtQkFBbUIsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO1lBRWhELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO0lBRUosQ0FBQztJQUVEOztNQUVFO0lBQ1EsU0FBUztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRTthQUMxQixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUF1QixFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsTUFBTSxFQUFFO3dCQUNOLGdFQUFnRTtxQkFDakU7b0JBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2lCQUNuQixDQUFDLENBQUE7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztJQUVBO0lBQ1UsV0FBVztRQUNuQiw0REFBNEQ7UUFDNUQsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FoSFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOHlCQXBCbkIsQ0FBQztnQkFDVixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsSUFBSSxFQUFDLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3pCLFVBQVUsRUFBRSxtQkFBbUI7YUFDaEM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixVQUFVLEVBQUUsc0JBQXNCO2FBQ25DO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsSUFBSSxFQUFDLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3pCLFVBQVUsRUFBRSw0QkFBNEI7YUFDekM7WUFDQyxXQUFXO1lBQ1gsb0JBQW9CLENBQUMsMEJDOUR6QixzOUJBd0JNLDBNRHdDRixlQUFlOzsyRkFHTixtQkFBbUI7a0JBMUIvQixTQUFTOytCQUNFLGFBQWEsY0FHWCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQzs0QkFDVixPQUFPLEVBQUUsYUFBYTs0QkFDdEIsSUFBSSxFQUFDLENBQUMsa0JBQWtCLENBQUM7NEJBQ3pCLFVBQVUsRUFBRSxtQkFBbUI7eUJBQ2hDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFVBQVUsRUFBRSxzQkFBc0I7eUJBQ25DO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLElBQUksRUFBQyxDQUFDLGtCQUFrQixDQUFDOzRCQUN6QixVQUFVLEVBQUUsNEJBQTRCO3lCQUN6Qzt3QkFDQyxXQUFXO3dCQUNYLG9CQUFvQixDQUFDLFdBQ2Q7d0JBQ1AsZUFBZTtxQkFDaEI7OEJBUVMsT0FBTztzQkFBaEIsTUFBTTs7QUE2R1QsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7SUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELGlFQUFpRTtJQUNqRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFekQsMEJBQTBCO0lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFOUMsaUVBQWlFO0lBQ2pFLG9FQUFvRTtJQUNwRSxhQUFhO0lBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRTtRQUN6RCxJQUFJLEVBQUUsTUFBTTtRQUNaLEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQyxDQUFDO0lBRUgsTUFBTSx3QkFBd0IsR0FDNUIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFdkQsT0FBTztRQUNMLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDVixhQUFhO1lBQ2Isd0JBQXdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFDRixJQUFJLG1CQUFtQixHQUFRLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UsIE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25SZXN1bHQsIEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBJbnRlcmFjdGlvblR5cGUsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhSZXN1bHQgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgY2xpZW50SWQ6IFwiNmIyYzA4MGYtNmFiMC00NTExLWE5ZGYtMGJjZTY5ZGI1ODMzXCIsXHJcbiAgICAgIGF1dGhvcml0eTogXCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uXCIsXHJcbiAgICAgIHJlZGlyZWN0VXJpOiBlbnZpcm9ubWVudC5hcHBVcmksIC8vIFRoaXMgaXMgeW91ciByZWRpclxyXG4gICAgfSxcclxuICAgIGNhY2hlOiB7XHJcbiAgICAgIGNhY2hlTG9jYXRpb246IEJyb3dzZXJDYWNoZUxvY2F0aW9uLkxvY2FsU3RvcmFnZVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwLFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IG5ldyBNYXAoW1xyXG4gICAgICBbZW52aXJvbm1lbnQuYXBwU2VydmljZVVyaSArICcvbG9naW4nLCBbXCJhcGk6Ly82YjJjMDgwZi02YWIwLTQ1MTEtYTlkZi0wYmNlNjlkYjU4MzMvQW5ndWxhclNQQUF1dGhTY29wZVwiXV0sXHJcbiAgICAgIFtcImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92Mi4wL21lXCIsIFtcInVzZXIucmVhZFwiXV0sXHJcbiAgICBdKVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcclxuICAgIGF1dGhSZXF1ZXN0OiB7XHJcbiAgICAgIHNjb3BlczogW1widXNlci5yZWFkXCJdXHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb2dpbi1vYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLW9hdXRoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi1vYXV0aC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTVNBTF9JTlNUQU5DRSxcclxuICAgIGRlcHM6W0Vudmlyb25tZW50U2VydmljZV0sXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMSW5zdGFuY2VGYWN0b3J5XHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBNU0FMX0dVQVJEX0NPTkZJRyxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxHdWFyZENvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gIHtcclxuICAgIHByb3ZpZGU6IE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLFxyXG4gICAgZGVwczpbRW52aXJvbm1lbnRTZXJ2aWNlXSxcclxuICAgIHVzZUZhY3Rvcnk6IE1TQUxJbnRlcmNlcHRvckNvbmZpZ0ZhY3RvcnlcclxuICB9LFxyXG4gICAgTXNhbFNlcnZpY2UsXHJcbiAgICBNc2FsQnJvYWRjYXN0U2VydmljZV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0QnV0dG9uTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5PQXV0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+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.appName = input();
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.1.0", version: "18.2.7", type: LoginOAuthComponent, isStandalone: true, selector: "login-oauth", inputs: { appName: { classPropertyName: "appName", publicName: "appName", isSignal: true, isRequired: false, transformFunction: null }, autoInitialize: { classPropertyName: "autoInitialize", publicName: "autoInitialize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { success: "success" }, providers: [{
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 {{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>", 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 }); }
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 {{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>", 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"] }]
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":"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"}
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",
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
- appName: import("@angular/core").InputSignal<string>;
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, { "appName": { "alias": "appName"; "required": false; "isSignal": true; }; "autoInitialize": { "alias": "autoInitialize"; "required": false; "isSignal": true; }; }, { "success": "success"; }, never, never, true, 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
  }