@arsedizioni/ars-utils 18.1.21 → 18.1.22
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.
|
@@ -143,7 +143,7 @@ export class LoginOAuthComponent {
|
|
|
143
143
|
useFactory: MSALInterceptorConfigFactory
|
|
144
144
|
},
|
|
145
145
|
MsalService,
|
|
146
|
-
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere<br>
|
|
146
|
+
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio<br>utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente<br>valido di {{appName}} e dei servizi ad esso connessi.\r\n </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-bottom:10px;font-size:small}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
147
147
|
}
|
|
148
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LoginOAuthComponent, decorators: [{
|
|
149
149
|
type: Component,
|
|
@@ -164,7 +164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
164
164
|
MsalService,
|
|
165
165
|
MsalBroadcastService], imports: [
|
|
166
166
|
MatButtonModule
|
|
167
|
-
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere<br>
|
|
167
|
+
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio<br>utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente<br>valido di {{appName}} e dei servizi ad esso connessi.\r\n </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-bottom:10px;font-size:small}\n"] }]
|
|
168
168
|
}], ctorParameters: () => [{ type: i1.MsalBroadcastService }, { type: i1.MsalService }, { type: i0.NgZone }], propDecorators: { success: [{
|
|
169
169
|
type: Output
|
|
170
170
|
}], appName: [{
|
|
@@ -195,4 +195,4 @@ const createFakeGoogleWrapper = () => {
|
|
|
195
195
|
};
|
|
196
196
|
};
|
|
197
197
|
var googleButtonWrapper = null;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PQXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkub2F1dGgvdWkvY29tcG9uZW50cy9sb2dpbi9sb2dpbk9BdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5vYXV0aC91aS9jb21wb25lbnRzL2xvZ2luL2xvZ2luT0F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBd0QsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekwsT0FBTyxFQUF3QixvQkFBb0IsRUFBZ0IsU0FBUyxFQUE0QixlQUFlLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5SyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBRWpFLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxXQUErQjtJQUNqRSxPQUFPLElBQUksdUJBQXVCLENBQUM7UUFDakMsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFLHNDQUFzQztZQUNoRCxTQUFTLEVBQUUsMENBQTBDO1lBQ3JELFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLHFCQUFxQjtTQUN2RDtRQUNELEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxZQUFZ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QixHQUFHLEdBQUcsRUFBRTtJQUNuQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsaUVBQWlFO0lBQ2pFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUV6RCwwQkFBMEI7SUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU5QyxpRUFBaUU7SUFDakUsb0VBQW9FO0lBQ3BFLGFBQWE7SUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFO1FBQ3pELElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFDLENBQUM7SUFFSCxNQUFNLHdCQUF3QixHQUM1QixrQkFBa0IsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV2RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNWLGFBQWE7WUFDYix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUNGLElBQUksbUJBQW1CLEdBQVEsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UsIE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25SZXN1bHQsIEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBJbnRlcmFjdGlvblR5cGUsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhSZXN1bHQgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgY2xpZW50SWQ6IFwiNmIyYzA4MGYtNmFiMC00NTExLWE5ZGYtMGJjZTY5ZGI1ODMzXCIsXHJcbiAgICAgIGF1dGhvcml0eTogXCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uXCIsXHJcbiAgICAgIHJlZGlyZWN0VXJpOiBlbnZpcm9ubWVudC5hcHBVcmksIC8vIFRoaXMgaXMgeW91ciByZWRpclxyXG4gICAgfSxcclxuICAgIGNhY2hlOiB7XHJcbiAgICAgIGNhY2hlTG9jYXRpb246IEJyb3dzZXJDYWNoZUxvY2F0aW9uLkxvY2FsU3RvcmFnZVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwLFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IG5ldyBNYXAoW1xyXG4gICAgICBbZW52aXJvbm1lbnQuYXBwU2VydmljZVVyaSArICcvbG9naW4nLCBbXCJhcGk6Ly82YjJjMDgwZi02YWIwLTQ1MTEtYTlkZi0wYmNlNjlkYjU4MzMvQW5ndWxhclNQQUF1dGhTY29wZVwiXV0sXHJcbiAgICAgIFtcImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92Mi4wL21lXCIsIFtcInVzZXIucmVhZFwiXV0sXHJcbiAgICBdKVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcclxuICAgIGF1dGhSZXF1ZXN0OiB7XHJcbiAgICAgIHNjb3BlczogW1widXNlci5yZWFkXCJdXHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb2dpbi1vYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luT0F1dGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZ2luT0F1dGguY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE1TQUxfSU5TVEFOQ0UsXHJcbiAgICBkZXBzOltFbnZpcm9ubWVudFNlcnZpY2VdLFxyXG4gICAgdXNlRmFjdG9yeTogTVNBTEluc3RhbmNlRmFjdG9yeVxyXG4gIH0sXHJcbiAge1xyXG4gICAgcHJvdmlkZTogTVNBTF9HVUFSRF9DT05GSUcsXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMR3VhcmRDb25maWdGYWN0b3J5XHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBNU0FMX0lOVEVSQ0VQVE9SX0NPTkZJRyxcclxuICAgIGRlcHM6W0Vudmlyb25tZW50U2VydmljZV0sXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMSW50ZXJjZXB0b3JDb25maWdGYWN0b3J5XHJcbiAgfSxcclxuICAgIE1zYWxTZXJ2aWNlLFxyXG4gICAgTXNhbEJyb2FkY2FzdFNlcnZpY2VdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEJ1dHRvbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luT0F1dGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfX2QkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2luT0F1dGhSZXN1bHQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGFwcE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGF1dG9Jbml0aWFsaXplOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgT0FVVEhSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIE9BVVRITWljcm9zb2Z0UmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBPQVVUSEdvb2dsZVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgJGJyb2FkY2FzdE1TQUw6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSAkbG9naW5NU0FMOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0luaXRpYWxpemUpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy4kYnJvYWRjYXN0TVNBTC5tc2FsU3ViamVjdCRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChtc2c6IEV2ZW50TWVzc2FnZSkgPT4gbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fU1VDQ0VTUyksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX19kJClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyOiBhbnkpID0+IHsgICAgICAgIFxyXG4gICAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh7IHR5cGU6IDEsIHRva2VuOiByLnBheWxvYWQuYWNjZXNzVG9rZW4gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX19kJC5uZXh0KCk7XHJcbiAgICB0aGlzLl9fZCQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgb3BlbiBhdXRoZW50aWNhdGlvbiAgIFxyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICBpZiAodGhpcy5PQVVUSFJlYWR5KSB7XHJcbiAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBkb25lXHJcbiAgICB9XHJcbiAgICB0aGlzLk9BVVRIUmVhZHkgPSB0cnVlO1xyXG5cclxuICAgIC8vIExvYWQgTVMgc3RhY2tcclxuICAgIHRoaXMuJGxvZ2luTVNBTC5pbml0aWFsaXplKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX19kJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuT0FVVEhNaWNyb3NvZnRSZWFkeSA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vIExvYWQgZ29vZ2xlIG1hcHMgc2NyaXB0IGFmdGVyIHZpZXcgaW5pdFxyXG4gICAgY29uc3QgRFNMU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBEU0xTY3JpcHQuc3JjID0gJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50JztcclxuICAgIERTTFNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKERTTFNjcmlwdCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKERTTFNjcmlwdCk7XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgd2luZG93Lm9uR29vZ2xlTGlicmFyeUxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIC8vIGluaXRpYWxpemUgZ29vZ2xlIGFjY291bnRcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBnb29nbGUuYWNjb3VudHMuaWQuaW5pdGlhbGl6ZSh7XHJcbiAgICAgICAgY2xpZW50X2lkOiAnNzEyMDQ5ODMwNzctYWczMWgzYmd0MnVkY2Jmcjlubjg0cjlybmkyazNzbnAuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20nLFxyXG4gICAgICAgIGNhbmNlbF9vbl90YXBfb3V0c2lkZTogdHJ1ZSxcclxuICAgICAgICBhdXRvX3NlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgY2FsbGJhY2s6IChyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHsgdHlwZTogMiwgdG9rZW46IHIuY3JlZGVudGlhbCB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBnb29nbGVCdXR0b25XcmFwcGVyID0gY3JlYXRlRmFrZUdvb2dsZVdyYXBwZXIoKTtcclxuXHJcbiAgICAgIHRoaXMuT0FVVEhHb29nbGVSZWFkeSA9IHRydWU7XHJcbiAgICB9O1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogUGVyZm9ybSBsb2dpbiB1c2luZyBNU0FMXHJcbiAgKi9cclxuICBsb2dpbk1TQUwoKSB7XHJcbiAgICB0aGlzLiRsb2dpbk1TQUwubG9naW5Qb3B1cCgpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kbG9naW5NU0FMLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQoci5hY2NvdW50KTtcclxuICAgICAgICAgIHRoaXMuJGxvZ2luTVNBTC5hY3F1aXJlVG9rZW5TaWxlbnQoe1xyXG4gICAgICAgICAgICBzY29wZXM6IFtcclxuICAgICAgICAgICAgICBcImFwaTovLzZiMmMwODBmLTZhYjAtNDUxMS1hOWRmLTBiY2U2OWRiNTgzMy9Bbmd1bGFyU1BBQXV0aFNjb3BlXCJcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgYWNjb3VudDogci5hY2NvdW50XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luIHVzaW5nIEdvb2dsZVxyXG4qL1xyXG4gIGxvZ2luR29vZ2xlKCkge1xyXG4gICAgLy8gVXNlIHdyYXBwZXIgY2xpY2sgdG8gcHJldmVudCBJbGxlZ2FsIGludm9jYXRpb24gZXhjZXB0aW9uXHJcbiAgICBnb29nbGVCdXR0b25XcmFwcGVyLmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBjcmVhdGVGYWtlR29vZ2xlV3JhcHBlciA9ICgpID0+IHtcclxuICBjb25zdCBnb29nbGVMb2dpbldyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIC8vIE9yIHlvdSBjYW4gc2ltcGxlIGhpZGUgaXQgaW4gQ1NTIHJ1bGUgZm9yIGN1c3RvbS1nb29nbGUtYnV0dG9uXHJcbiAgZ29vZ2xlTG9naW5XcmFwcGVyLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICBnb29nbGVMb2dpbldyYXBwZXIuY2xhc3NMaXN0LmFkZChcImN1c3RvbS1nb29nbGUtYnV0dG9uXCIpO1xyXG5cclxuICAvLyBBZGQgdGhlIHdyYXBwZXIgdG8gYm9keVxyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZ29vZ2xlTG9naW5XcmFwcGVyKTtcclxuXHJcbiAgLy8gVXNlIEdTSSBqYXZhc2NyaXB0IGFwaSB0byByZW5kZXIgdGhlIGJ1dHRvbiBpbnNpZGUgb3VyIHdyYXBwZXJcclxuICAvLyBZb3UgY2FuIGlnbm9yZSB0aGUgcHJvcGVydGllcyBiZWNhdXNlIHRoaXMgYnV0dG9uIHdpbGwgbm90IGFwcGVhclxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICB3aW5kb3cuZ29vZ2xlLmFjY291bnRzLmlkLnJlbmRlckJ1dHRvbihnb29nbGVMb2dpbldyYXBwZXIsIHtcclxuICAgIHR5cGU6IFwiaWNvblwiLFxyXG4gICAgd2lkdGg6IFwiMjAwXCIsXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGdvb2dsZUxvZ2luV3JhcHBlckJ1dHRvbiA9XHJcbiAgICBnb29nbGVMb2dpbldyYXBwZXIucXVlcnlTZWxlY3RvcihcImRpdltyb2xlPWJ1dHRvbl1cIik7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjbGljazogKCkgPT4ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGdvb2dsZUxvZ2luV3JhcHBlckJ1dHRvbi5jbGljaygpO1xyXG4gICAgfSxcclxuICB9O1xyXG59O1xyXG52YXIgZ29vZ2xlQnV0dG9uV3JhcHBlcjogYW55ID0gbnVsbDtcclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJsb2dpbi1vYXV0aFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XHJcbiAgICA8cD5RdWVzdGEgc2V6aW9uZSBjb25zZW50ZSBkaSBhY2NlZGVyZTxicj5hbCBzZXJ2aXppbyB1dGlsaXp6YW5kbyB1biBwcm92aWRlciBPQXV0aDIuPC9wPlxyXG4gICAgPHA+TGEgZW1haWwgdXRpbGl6emF0YSBkZXZlIGVzc2VyZSBjb2xsZWdhdGE8YnI+YWQgdW4gdXRlbnRlIHZhbGlkbyBkaSB7e2FwcE5hbWV9fSBlIGRlaSBzZXJ2aXppIGFkIGVzc28gY29ubmVzc2kuXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImxvZ2luTVNBTCgpXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VmZmV0dHVhIGFjY2Vzc28nXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFPQVVUSE1pY3Jvc29mdFJlYWR5XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgQWNjZWRpIGNvbiBNaWNyb3NvZnQ8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9naW5Hb29nbGUoKVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRWZmZXR0dWEgYWNjZXNzbydcIiBbZGlzYWJsZWRdPVwiIU9BVVRIR29vZ2xlUmVhZHlcIj5cclxuICAgICAgQWNjZWRpIGNvbiBHb29nbGU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5PQXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkub2F1dGgvdWkvY29tcG9uZW50cy9sb2dpbi9sb2dpbk9BdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5vYXV0aC91aS9jb21wb25lbnRzL2xvZ2luL2xvZ2luT0F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBd0QsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekwsT0FBTyxFQUF3QixvQkFBb0IsRUFBZ0IsU0FBUyxFQUE0QixlQUFlLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5SyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBRWpFLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxXQUErQjtJQUNqRSxPQUFPLElBQUksdUJBQXVCLENBQUM7UUFDakMsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFLHNDQUFzQztZQUNoRCxTQUFTLEVBQUUsMENBQTBDO1lBQ3JELFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLHFCQUFxQjtTQUN2RDtRQUNELEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxZQUFZ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QixHQUFHLEdBQUcsRUFBRTtJQUNuQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsaUVBQWlFO0lBQ2pFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUV6RCwwQkFBMEI7SUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU5QyxpRUFBaUU7SUFDakUsb0VBQW9FO0lBQ3BFLGFBQWE7SUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFO1FBQ3pELElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFDLENBQUM7SUFFSCxNQUFNLHdCQUF3QixHQUM1QixrQkFBa0IsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV2RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNWLGFBQWE7WUFDYix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUNGLElBQUksbUJBQW1CLEdBQVEsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTVNBTF9HVUFSRF9DT05GSUcsIE1TQUxfSU5TVEFOQ0UsIE1TQUxfSU5URVJDRVBUT1JfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25SZXN1bHQsIEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uLCBJbnRlcmFjdGlvblR5cGUsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IExvZ2luT0F1dGhSZXN1bHQgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcclxuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcclxuICAgIGF1dGg6IHtcclxuICAgICAgY2xpZW50SWQ6IFwiNmIyYzA4MGYtNmFiMC00NTExLWE5ZGYtMGJjZTY5ZGI1ODMzXCIsXHJcbiAgICAgIGF1dGhvcml0eTogXCJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uXCIsXHJcbiAgICAgIHJlZGlyZWN0VXJpOiBlbnZpcm9ubWVudC5hcHBVcmksIC8vIFRoaXMgaXMgeW91ciByZWRpclxyXG4gICAgfSxcclxuICAgIGNhY2hlOiB7XHJcbiAgICAgIGNhY2hlTG9jYXRpb246IEJyb3dzZXJDYWNoZUxvY2F0aW9uLkxvY2FsU3RvcmFnZVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeShlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XHJcbiAgXHJcbiAgcmV0dXJuIHtcclxuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlBvcHVwLFxyXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VNYXA6IG5ldyBNYXAoW1xyXG4gICAgICBbZW52aXJvbm1lbnQuYXBwU2VydmljZVVyaSArICcvbG9naW4nLCBbXCJhcGk6Ly82YjJjMDgwZi02YWIwLTQ1MTEtYTlkZi0wYmNlNjlkYjU4MzMvQW5ndWxhclNQQUF1dGhTY29wZVwiXV0sXHJcbiAgICAgIFtcImh0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92Mi4wL21lXCIsIFtcInVzZXIucmVhZFwiXV0sXHJcbiAgICBdKVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5Qb3B1cCxcclxuICAgIGF1dGhSZXF1ZXN0OiB7XHJcbiAgICAgIHNjb3BlczogW1widXNlci5yZWFkXCJdXHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb2dpbi1vYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luT0F1dGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZ2luT0F1dGguY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE1TQUxfSU5TVEFOQ0UsXHJcbiAgICBkZXBzOltFbnZpcm9ubWVudFNlcnZpY2VdLFxyXG4gICAgdXNlRmFjdG9yeTogTVNBTEluc3RhbmNlRmFjdG9yeVxyXG4gIH0sXHJcbiAge1xyXG4gICAgcHJvdmlkZTogTVNBTF9HVUFSRF9DT05GSUcsXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMR3VhcmRDb25maWdGYWN0b3J5XHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBNU0FMX0lOVEVSQ0VQVE9SX0NPTkZJRyxcclxuICAgIGRlcHM6W0Vudmlyb25tZW50U2VydmljZV0sXHJcbiAgICB1c2VGYWN0b3J5OiBNU0FMSW50ZXJjZXB0b3JDb25maWdGYWN0b3J5XHJcbiAgfSxcclxuICAgIE1zYWxTZXJ2aWNlLFxyXG4gICAgTXNhbEJyb2FkY2FzdFNlcnZpY2VdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEJ1dHRvbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luT0F1dGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfX2QkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2luT0F1dGhSZXN1bHQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGFwcE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGF1dG9Jbml0aWFsaXplOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgT0FVVEhSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIE9BVVRITWljcm9zb2Z0UmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBPQVVUSEdvb2dsZVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgJGJyb2FkY2FzdE1TQUw6IE1zYWxCcm9hZGNhc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSAkbG9naW5NU0FMOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0luaXRpYWxpemUpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy4kYnJvYWRjYXN0TVNBTC5tc2FsU3ViamVjdCRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChtc2c6IEV2ZW50TWVzc2FnZSkgPT4gbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fU1VDQ0VTUyksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX19kJClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyOiBhbnkpID0+IHsgICAgICAgIFxyXG4gICAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh7IHR5cGU6IDEsIHRva2VuOiByLnBheWxvYWQuYWNjZXNzVG9rZW4gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX19kJC5uZXh0KCk7XHJcbiAgICB0aGlzLl9fZCQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgb3BlbiBhdXRoZW50aWNhdGlvbiAgIFxyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICBpZiAodGhpcy5PQVVUSFJlYWR5KSB7XHJcbiAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBkb25lXHJcbiAgICB9XHJcbiAgICB0aGlzLk9BVVRIUmVhZHkgPSB0cnVlO1xyXG5cclxuICAgIC8vIExvYWQgTVMgc3RhY2tcclxuICAgIHRoaXMuJGxvZ2luTVNBTC5pbml0aWFsaXplKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX19kJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuT0FVVEhNaWNyb3NvZnRSZWFkeSA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vIExvYWQgZ29vZ2xlIG1hcHMgc2NyaXB0IGFmdGVyIHZpZXcgaW5pdFxyXG4gICAgY29uc3QgRFNMU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBEU0xTY3JpcHQuc3JjID0gJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50JztcclxuICAgIERTTFNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKERTTFNjcmlwdCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKERTTFNjcmlwdCk7XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgd2luZG93Lm9uR29vZ2xlTGlicmFyeUxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIC8vIGluaXRpYWxpemUgZ29vZ2xlIGFjY291bnRcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBnb29nbGUuYWNjb3VudHMuaWQuaW5pdGlhbGl6ZSh7XHJcbiAgICAgICAgY2xpZW50X2lkOiAnNzEyMDQ5ODMwNzctYWczMWgzYmd0MnVkY2Jmcjlubjg0cjlybmkyazNzbnAuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20nLFxyXG4gICAgICAgIGNhbmNlbF9vbl90YXBfb3V0c2lkZTogdHJ1ZSxcclxuICAgICAgICBhdXRvX3NlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgY2FsbGJhY2s6IChyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHsgdHlwZTogMiwgdG9rZW46IHIuY3JlZGVudGlhbCB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBnb29nbGVCdXR0b25XcmFwcGVyID0gY3JlYXRlRmFrZUdvb2dsZVdyYXBwZXIoKTtcclxuXHJcbiAgICAgIHRoaXMuT0FVVEhHb29nbGVSZWFkeSA9IHRydWU7XHJcbiAgICB9O1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogUGVyZm9ybSBsb2dpbiB1c2luZyBNU0FMXHJcbiAgKi9cclxuICBsb2dpbk1TQUwoKSB7XHJcbiAgICB0aGlzLiRsb2dpbk1TQUwubG9naW5Qb3B1cCgpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kbG9naW5NU0FMLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQoci5hY2NvdW50KTtcclxuICAgICAgICAgIHRoaXMuJGxvZ2luTVNBTC5hY3F1aXJlVG9rZW5TaWxlbnQoe1xyXG4gICAgICAgICAgICBzY29wZXM6IFtcclxuICAgICAgICAgICAgICBcImFwaTovLzZiMmMwODBmLTZhYjAtNDUxMS1hOWRmLTBiY2U2OWRiNTgzMy9Bbmd1bGFyU1BBQXV0aFNjb3BlXCJcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgYWNjb3VudDogci5hY2NvdW50XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luIHVzaW5nIEdvb2dsZVxyXG4qL1xyXG4gIGxvZ2luR29vZ2xlKCkge1xyXG4gICAgLy8gVXNlIHdyYXBwZXIgY2xpY2sgdG8gcHJldmVudCBJbGxlZ2FsIGludm9jYXRpb24gZXhjZXB0aW9uXHJcbiAgICBnb29nbGVCdXR0b25XcmFwcGVyLmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBjcmVhdGVGYWtlR29vZ2xlV3JhcHBlciA9ICgpID0+IHtcclxuICBjb25zdCBnb29nbGVMb2dpbldyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIC8vIE9yIHlvdSBjYW4gc2ltcGxlIGhpZGUgaXQgaW4gQ1NTIHJ1bGUgZm9yIGN1c3RvbS1nb29nbGUtYnV0dG9uXHJcbiAgZ29vZ2xlTG9naW5XcmFwcGVyLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICBnb29nbGVMb2dpbldyYXBwZXIuY2xhc3NMaXN0LmFkZChcImN1c3RvbS1nb29nbGUtYnV0dG9uXCIpO1xyXG5cclxuICAvLyBBZGQgdGhlIHdyYXBwZXIgdG8gYm9keVxyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZ29vZ2xlTG9naW5XcmFwcGVyKTtcclxuXHJcbiAgLy8gVXNlIEdTSSBqYXZhc2NyaXB0IGFwaSB0byByZW5kZXIgdGhlIGJ1dHRvbiBpbnNpZGUgb3VyIHdyYXBwZXJcclxuICAvLyBZb3UgY2FuIGlnbm9yZSB0aGUgcHJvcGVydGllcyBiZWNhdXNlIHRoaXMgYnV0dG9uIHdpbGwgbm90IGFwcGVhclxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICB3aW5kb3cuZ29vZ2xlLmFjY291bnRzLmlkLnJlbmRlckJ1dHRvbihnb29nbGVMb2dpbldyYXBwZXIsIHtcclxuICAgIHR5cGU6IFwiaWNvblwiLFxyXG4gICAgd2lkdGg6IFwiMjAwXCIsXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGdvb2dsZUxvZ2luV3JhcHBlckJ1dHRvbiA9XHJcbiAgICBnb29nbGVMb2dpbldyYXBwZXIucXVlcnlTZWxlY3RvcihcImRpdltyb2xlPWJ1dHRvbl1cIik7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjbGljazogKCkgPT4ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGdvb2dsZUxvZ2luV3JhcHBlckJ1dHRvbi5jbGljaygpO1xyXG4gICAgfSxcclxuICB9O1xyXG59O1xyXG52YXIgZ29vZ2xlQnV0dG9uV3JhcHBlcjogYW55ID0gbnVsbDtcclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJsb2dpbi1vYXV0aFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XHJcbiAgICA8cD5RdWVzdGEgc2V6aW9uZSBjb25zZW50ZSBkaSBhY2NlZGVyZSBhbCBzZXJ2aXppbzxicj51dGlsaXp6YW5kbyB1biBwcm92aWRlciBPQXV0aDIuPC9wPlxyXG4gICAgPHA+TGEgZW1haWwgdXRpbGl6emF0YSBkZXZlIGVzc2VyZSBjb2xsZWdhdGEgYWQgdW4gdXRlbnRlPGJyPnZhbGlkbyBkaSB7e2FwcE5hbWV9fSBlIGRlaSBzZXJ2aXppIGFkIGVzc28gY29ubmVzc2kuXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImxvZ2luTVNBTCgpXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VmZmV0dHVhIGFjY2Vzc28nXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFPQVVUSE1pY3Jvc29mdFJlYWR5XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgQWNjZWRpIGNvbiBNaWNyb3NvZnQ8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibG9naW5Hb29nbGUoKVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRWZmZXR0dWEgYWNjZXNzbydcIiBbZGlzYWJsZWRdPVwiIU9BVVRIR29vZ2xlUmVhZHlcIj5cclxuICAgICAgQWNjZWRpIGNvbiBHb29nbGU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -161,7 +161,7 @@ class LoginOAuthComponent {
|
|
|
161
161
|
useFactory: MSALInterceptorConfigFactory
|
|
162
162
|
},
|
|
163
163
|
MsalService,
|
|
164
|
-
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere<br>
|
|
164
|
+
MsalBroadcastService], ngImport: i0, template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio<br>utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente<br>valido di {{appName}} e dei servizi ad esso connessi.\r\n </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-bottom:10px;font-size:small}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
165
165
|
}
|
|
166
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LoginOAuthComponent, decorators: [{
|
|
167
167
|
type: Component,
|
|
@@ -182,7 +182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
182
182
|
MsalService,
|
|
183
183
|
MsalBroadcastService], imports: [
|
|
184
184
|
MatButtonModule
|
|
185
|
-
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere<br>
|
|
185
|
+
], template: "<div class=\"login-oauth\">\r\n <div class=\"message\">\r\n <p>Questa sezione consente di accedere al servizio<br>utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente<br>valido di {{appName}} e dei servizi ad esso connessi.\r\n </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-bottom:10px;font-size:small}\n"] }]
|
|
186
186
|
}], ctorParameters: () => [{ type: i1.MsalBroadcastService }, { type: i1.MsalService }, { type: i0.NgZone }], propDecorators: { success: [{
|
|
187
187
|
type: Output
|
|
188
188
|
}], appName: [{
|
|
@@ -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/loginOAuth.component.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/loginOAuth.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 { Component, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output } from '@angular/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 { MatButtonModule } from '@angular/material/button';\r\nimport { LoginOAuthResult } from '../../definitions';\r\nimport { EnvironmentService } from '@arsedizioni/ars-utils/core';\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: './loginOAuth.component.html',\r\n styleUrls: ['./loginOAuth.component.scss'],\r\n standalone: true,\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 __d$: Subject<void> = new Subject<void>();\r\n\r\n @Output() success = new EventEmitter<LoginOAuthResult>();\r\n\r\n @Input() appName: string | null = null;\r\n @Input() autoInitialize: boolean | null = false;\r\n\r\n\r\n OAUTHReady: boolean = false;\r\n OAUTHMicrosoftReady: boolean = false;\r\n OAUTHGoogleReady: boolean = false;\r\n\r\n\r\n constructor(\r\n private $broadcastMSAL: MsalBroadcastService,\r\n private $loginMSAL: MsalService,\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.autoInitialize) {\r\n this.initialize();\r\n }\r\n\r\n this.$broadcastMSAL.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),\r\n takeUntil(this.__d$)\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.__d$.next();\r\n this.__d$.complete();\r\n }\r\n\r\n /**\r\n * Initialize open authentication \r\n */\r\n initialize() {\r\n if (this.OAUTHReady) {\r\n return; // Already done\r\n }\r\n this.OAUTHReady = true;\r\n\r\n // Load MS stack\r\n this.$loginMSAL.initialize()\r\n .pipe(takeUntil(this.__d$))\r\n .subscribe(() => {\r\n this.OAUTHMicrosoftReady = 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 = true;\r\n };\r\n\r\n }\r\n\r\n /**\r\n * Perform login using MSAL\r\n */\r\n loginMSAL() {\r\n this.$loginMSAL.loginPopup()\r\n .subscribe({\r\n next: (r: AuthenticationResult) => {\r\n this.$loginMSAL.instance.setActiveAccount(r.account);\r\n this.$loginMSAL.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 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<br>al servizio utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata<br>ad un utente valido di {{appName}} e dei servizi ad esso connessi.\r\n </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/loginOAuth.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/loginOAuth.component.ts","../../../projects/ars-utils/ui.oauth/ui/components/login/loginOAuth.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 { Component, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output } from '@angular/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 { MatButtonModule } from '@angular/material/button';\r\nimport { LoginOAuthResult } from '../../definitions';\r\nimport { EnvironmentService } from '@arsedizioni/ars-utils/core';\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: './loginOAuth.component.html',\r\n styleUrls: ['./loginOAuth.component.scss'],\r\n standalone: true,\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 __d$: Subject<void> = new Subject<void>();\r\n\r\n @Output() success = new EventEmitter<LoginOAuthResult>();\r\n\r\n @Input() appName: string | null = null;\r\n @Input() autoInitialize: boolean | null = false;\r\n\r\n\r\n OAUTHReady: boolean = false;\r\n OAUTHMicrosoftReady: boolean = false;\r\n OAUTHGoogleReady: boolean = false;\r\n\r\n\r\n constructor(\r\n private $broadcastMSAL: MsalBroadcastService,\r\n private $loginMSAL: MsalService,\r\n private ngZone: NgZone\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.autoInitialize) {\r\n this.initialize();\r\n }\r\n\r\n this.$broadcastMSAL.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),\r\n takeUntil(this.__d$)\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.__d$.next();\r\n this.__d$.complete();\r\n }\r\n\r\n /**\r\n * Initialize open authentication \r\n */\r\n initialize() {\r\n if (this.OAUTHReady) {\r\n return; // Already done\r\n }\r\n this.OAUTHReady = true;\r\n\r\n // Load MS stack\r\n this.$loginMSAL.initialize()\r\n .pipe(takeUntil(this.__d$))\r\n .subscribe(() => {\r\n this.OAUTHMicrosoftReady = 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 = true;\r\n };\r\n\r\n }\r\n\r\n /**\r\n * Perform login using MSAL\r\n */\r\n loginMSAL() {\r\n this.$loginMSAL.loginPopup()\r\n .subscribe({\r\n next: (r: AuthenticationResult) => {\r\n this.$loginMSAL.instance.setActiveAccount(r.account);\r\n this.$loginMSAL.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 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<br>utilizzando un provider OAuth2.</p>\r\n <p>La email utilizzata deve essere collegata ad un utente<br>valido di {{appName}} e dei servizi ad esso connessi.\r\n </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/loginOAuth.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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"}
|