@dbg-riskit/angular-login 10.1.2 → 9999.9999.9999
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.
- package/bundles/dbg-riskit-angular-login.umd.js +87 -59
- package/bundles/dbg-riskit-angular-login.umd.js.map +1 -1
- package/dbg-riskit-angular-login.metadata.json +1 -1
- package/docs/README.md +10 -5
- package/esm2015/dbg-riskit-angular-login.js +1 -1
- package/esm2015/lib/login.component.js +8 -28
- package/esm2015/lib/login.menu.component.js +27 -12
- package/esm2015/lib/login.module.js +13 -4
- package/esm2015/public_api.js +1 -1
- package/fesm2015/dbg-riskit-angular-login.js +45 -41
- package/fesm2015/dbg-riskit-angular-login.js.map +1 -1
- package/lib/login.component.d.ts +1 -1
- package/lib/login.menu.component.d.ts +5 -1
- package/package.json +11 -10
- package/bundles/dbg-riskit-angular-login.umd.min.js +0 -16
- package/bundles/dbg-riskit-angular-login.umd.min.js.map +0 -1
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1hbmd1bGFyLWxvZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1sb2dpbi9zcmMvZGJnLXJpc2tpdC1hbmd1bGFyLWxvZ2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';
|
|
2
2
|
import { AuthRoutingFlowService } from '@dbg-riskit/angular-auth';
|
|
3
|
-
import { AUTH_PROVIDER,
|
|
3
|
+
import { AUTH_PROVIDER, SECONDARY_LOGO } from '@dbg-riskit/angular-common';
|
|
4
|
+
import { toErrorMessage } from '@dbg-riskit/angular-error';
|
|
4
5
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
5
6
|
import { first, takeUntil } from 'rxjs/operators';
|
|
6
7
|
export class LoginComponent extends BaseComponent {
|
|
@@ -15,31 +16,13 @@ export class LoginComponent extends BaseComponent {
|
|
|
15
16
|
*/
|
|
16
17
|
this.loggingIn = false;
|
|
17
18
|
// Update component state on login status change
|
|
18
|
-
this.authProvider.loggedInStream
|
|
19
|
-
.pipe(takeUntil(this.destroyed))
|
|
20
|
-
.subscribe(() => this.changeDetectorRef.markForCheck());
|
|
19
|
+
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
21
20
|
}
|
|
22
21
|
ngAfterViewInit() {
|
|
23
|
-
this.authRoutingFlowService.loginViaService()
|
|
24
|
-
.pipe(takeUntil(this.destroyed))
|
|
25
|
-
.subscribe(() => {
|
|
22
|
+
this.authRoutingFlowService.loginViaService().pipe(takeUntil(this.destroyed)).subscribe(() => {
|
|
26
23
|
this.changeDetectorRef.markForCheck();
|
|
27
24
|
}, (err) => {
|
|
28
|
-
|
|
29
|
-
if (err.status == null
|
|
30
|
-
|| err.errorType == null
|
|
31
|
-
|| err.message == null) {
|
|
32
|
-
err = err.message || err.toString();
|
|
33
|
-
errorMessage = {
|
|
34
|
-
message: err,
|
|
35
|
-
status: 0,
|
|
36
|
-
errorType: ErrorType.ERROR
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
errorMessage = err;
|
|
41
|
-
}
|
|
42
|
-
this.errorMessage = errorMessage.message;
|
|
25
|
+
this.errorMessage = toErrorMessage(err).message;
|
|
43
26
|
this.changeDetectorRef.markForCheck();
|
|
44
27
|
});
|
|
45
28
|
}
|
|
@@ -54,9 +37,7 @@ export class LoginComponent extends BaseComponent {
|
|
|
54
37
|
}
|
|
55
38
|
login() {
|
|
56
39
|
this.loggingIn = true;
|
|
57
|
-
this.authRoutingFlowService.login(this.username, this.password)
|
|
58
|
-
.pipe(first())
|
|
59
|
-
.subscribe((res) => {
|
|
40
|
+
this.authRoutingFlowService.login(this.username, this.password).pipe(first()).subscribe((res) => {
|
|
60
41
|
if (!res) {
|
|
61
42
|
this.errorMessage = 'Authentication failed. Server did not generate a token.';
|
|
62
43
|
}
|
|
@@ -74,14 +55,13 @@ export class LoginComponent extends BaseComponent {
|
|
|
74
55
|
}
|
|
75
56
|
LoginComponent.decorators = [
|
|
76
57
|
{ type: Component, args: [{
|
|
77
|
-
moduleId: module.id,
|
|
78
58
|
template: "<risk-flex>\n <risk-flex-spacer></risk-flex-spacer>\n\n <div *ngIf=\"isDirectFlow\">\n <ng-template #loggedOut>\n <risk-error *ngIf=\"errorMessage\" [message]=\"errorMessage\"></risk-error>\n\n <form (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-title-group>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-title-group>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input matInput\n type=\"text\"\n placeholder=\"Username\"\n name=\"username\"\n [(ngModel)]=\"username\"\n autofocus>\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input matInput\n type=\"password\"\n placeholder=\"Password\"\n name=\"password\"\n [(ngModel)]=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n <button *ngIf=\"!loggingIn\"\n mat-raised-button\n color=\"primary\"\n type=\"submit\">\n Sign in\n </button>\n <img [src]=\"logo\" alt=\"Company logo\">\n <mat-spinner *ngIf=\"loggingIn\" [diameter]=\"36\"></mat-spinner>\n </mat-card-actions>\n </mat-card>\n </form>\n </ng-template>\n\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <ng-template [ngIf]=\"userProfile | async\" let-user=\"ngIf\">\n <risk-good *ngIf=\"user?.name\"\n [message]=\"'Successfully logged in as ' + user.name + '.'\"></risk-good>\n <risk-good *ngIf=\"!user && !user.name\"\n [message]=\"'Successfully logged in!'\"></risk-good>\n </ng-template>\n </ng-template>\n </div>\n\n <div *ngIf=\"!isDirectFlow\">\n <ng-template [ngIf]=\"!errorMessage\">\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner></mat-spinner>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n </ng-template>\n <ng-template [ngIf]=\"errorMessage\">\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-icon class=\"risk-login-form-error\" color=\"warn\">error_outline</mat-icon>\n <div></div>\n </div>\n <h3>Failed to authenticate user: {{errorMessage}}</h3>\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <button mat-button\n (click)=\"login()\"\n color=\"primary\"\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n </ng-template>\n </div>\n\n <risk-flex-spacer></risk-flex-spacer>\n</risk-flex>\n",
|
|
79
59
|
host: {
|
|
80
60
|
'[class.risk-login-form]': 'true'
|
|
81
61
|
},
|
|
82
62
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
83
63
|
preserveWhitespaces: false,
|
|
84
|
-
styles: [":host{display:block;
|
|
64
|
+
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}", ".risk-flex>div{width:400px;max-width:97vw;max-height:70vh;margin-top:40px}.mat-card-title-group{margin:0}.mat-card-title-group .mat-card-title{font-weight:500}.mat-card-actions{margin:0;margin-bottom:-8px!important;padding:0}.mat-card-actions img{float:right;margin:3px 0;height:30px}.risk-login-form-flex-wrapper{display:-webkit-flex;display:flex}.risk-login-form-flex-wrapper>div{-webkit-flex:1;flex:1}.risk-login-form-error{font-size:100px;height:100px;width:100px}h3{text-align:center}input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 1000px #fff}"]
|
|
85
65
|
},] }
|
|
86
66
|
];
|
|
87
67
|
LoginComponent.ctorParameters = () => [
|
|
@@ -90,4 +70,4 @@ LoginComponent.ctorParameters = () => [
|
|
|
90
70
|
{ type: AuthRoutingFlowService },
|
|
91
71
|
{ type: String, decorators: [{ type: Inject, args: [SECONDARY_LOGO,] }] }
|
|
92
72
|
];
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1sb2dpbi9zcmMvbGliL2xvZ2luLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0csT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBSXZELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFjaEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBc0I3QyxZQUEyRCxZQUEwQixFQUNqRCxpQkFBb0MsRUFDcEMsc0JBQThDLEVBQ3RCLGFBQXFCO1FBQzdFLEtBQUssRUFBRSxDQUFDO1FBSitDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ2pELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQVJqRjs7V0FFRztRQUNJLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFPOUIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDNUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDNUIsQ0FBQyxTQUFTLENBQ1AsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsRUFDRCxDQUFDLEdBQWUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEtBQUssRUFBRSxDQUNWLENBQUMsU0FBUyxDQUNQLENBQUMsR0FBWSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcseURBQXlELENBQUM7YUFDakY7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsOERBQThELENBQUM7WUFDbkYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDOzs7WUE3RkosU0FBUyxTQUFDO2dCQUNQLDJsSEFBMkM7Z0JBSzNDLElBQUksRUFBaUI7b0JBQ2pCLHlCQUF5QixFQUFFLE1BQU07aUJBQ3BDO2dCQUNELGVBQWUsRUFBTSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUNuRCxtQkFBbUIsRUFBRSxLQUFLOzthQUM3Qjs7OzRDQXVCdUIsTUFBTSxTQUFDLGFBQWE7WUE3Q0ksaUJBQWlCO1lBRXpELHNCQUFzQjt5Q0E4Q04sTUFBTSxTQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0F1dGhSb3V0aW5nRmxvd1NlcnZpY2V9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQge0FVVEhfUFJPVklERVIsIFNFQ09OREFSWV9MT0dPfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Vycm9yVHlwZXMsIHRvRXJyb3JNZXNzYWdlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWVycm9yJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7QXV0aFByb3ZpZGVyLCBVc2VySW5mb30gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybCAgICAgICAgOiAnbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgICAgICAgICA6IFtcbiAgICAgICAgJy4uLy4uLy4uL2NvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJ2xvZ2luLmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stbG9naW4tZm9ybV0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIC8qKlxuICAgICAqIEVycm9yIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VyIG5hbWUgYmluZGluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXNlcm5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBQYXNzd29yZCBiaW5kaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXNzd29yZD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2wgZm9yIFwibG9naW4gYnV0dG9uLXRvLXNwaW5uZXJcIi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9nZ2luZ0luOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChBVVRIX1BST1ZJREVSKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoUm91dGluZ0Zsb3dTZXJ2aWNlOiBBdXRoUm91dGluZ0Zsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBASW5qZWN0KFNFQ09OREFSWV9MT0dPKSBwcml2YXRlIHJlYWRvbmx5IHNlY29uZGFyeUxvZ286IHN0cmluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvLyBVcGRhdGUgY29tcG9uZW50IHN0YXRlIG9uIGxvZ2luIHN0YXR1cyBjaGFuZ2VcbiAgICAgICAgdGhpcy5hdXRoUHJvdmlkZXIubG9nZ2VkSW5TdHJlYW0ucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdXRoUm91dGluZ0Zsb3dTZXJ2aWNlLmxvZ2luVmlhU2VydmljZSgpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycjogRXJyb3JUeXBlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdG9FcnJvck1lc3NhZ2UoZXJyKS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0RpcmVjdEZsb3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhSb3V0aW5nRmxvd1NlcnZpY2UuZGlyZWN0RmxvdztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dGhTdGF0dXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhQcm92aWRlci5sb2dnZWRJbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVzZXJQcm9maWxlKCk6IE9ic2VydmFibGU8VXNlckluZm8gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFByb3ZpZGVyLnVzZXJQcm9maWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dpbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2dnaW5nSW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmF1dGhSb3V0aW5nRmxvd1NlcnZpY2UubG9naW4odGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCkucGlwZShcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnQXV0aGVudGljYXRpb24gZmFpbGVkLiBTZXJ2ZXIgZGlkIG5vdCBnZW5lcmF0ZSBhIHRva2VuLic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnaW5nSW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdBdXRoZW50aWNhdGlvbiBmYWlsZWQuIElzIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY29ycmVjdD8nO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlY29uZGFyeUxvZ287XG4gICAgfVxufVxuIl19
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inject, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, HostBinding, Inject, Input } from '@angular/core';
|
|
2
2
|
import { AuthRoutingFlowService } from '@dbg-riskit/angular-auth';
|
|
3
3
|
import { AUTH_PROVIDER } from '@dbg-riskit/angular-common';
|
|
4
4
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
5
5
|
import { first, takeUntil } from 'rxjs/operators';
|
|
6
|
+
export class LoginMenuComponentTitle {
|
|
7
|
+
}
|
|
8
|
+
LoginMenuComponentTitle.decorators = [
|
|
9
|
+
{ type: Directive, args: [{
|
|
10
|
+
selector: 'risk-login-menu-title-horizontal, '
|
|
11
|
+
+ 'risk-login-menu-title-vertical',
|
|
12
|
+
host: {
|
|
13
|
+
'[class.risk-login-menu-title]': 'true'
|
|
14
|
+
}
|
|
15
|
+
},] }
|
|
16
|
+
];
|
|
17
|
+
export class LoginMenuItems {
|
|
18
|
+
}
|
|
19
|
+
LoginMenuItems.decorators = [
|
|
20
|
+
{ type: Directive, args: [{
|
|
21
|
+
selector: 'risk-login-menu-before-items-horizontal,'
|
|
22
|
+
+ ' risk-login-menu-before-items-vertical,'
|
|
23
|
+
+ 'risk-login-menu-after-items-horizontal,'
|
|
24
|
+
+ 'risk-login-menu-after-items-vertical'
|
|
25
|
+
},] }
|
|
26
|
+
];
|
|
6
27
|
export class LoginMenuComponent extends BaseComponent {
|
|
7
28
|
constructor(authProvider, authRoutingFlowService, changeDetectorRef) {
|
|
8
29
|
super();
|
|
@@ -11,9 +32,7 @@ export class LoginMenuComponent extends BaseComponent {
|
|
|
11
32
|
this.changeDetectorRef = changeDetectorRef;
|
|
12
33
|
this.orientation = 'row';
|
|
13
34
|
// Update menu state on login status change
|
|
14
|
-
this.authProvider.loggedInStream
|
|
15
|
-
.pipe(takeUntil(this.destroyed))
|
|
16
|
-
.subscribe(() => this.changeDetectorRef.markForCheck());
|
|
35
|
+
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
17
36
|
}
|
|
18
37
|
get isRow() {
|
|
19
38
|
return this.orientation === 'row';
|
|
@@ -28,23 +47,19 @@ export class LoginMenuComponent extends BaseComponent {
|
|
|
28
47
|
return this.authProvider.loggedIn;
|
|
29
48
|
}
|
|
30
49
|
logout() {
|
|
31
|
-
this.authRoutingFlowService
|
|
32
|
-
.logout()
|
|
33
|
-
.pipe(first())
|
|
34
|
-
.subscribe();
|
|
50
|
+
this.authRoutingFlowService.logout().pipe(first()).subscribe();
|
|
35
51
|
}
|
|
36
52
|
}
|
|
37
53
|
LoginMenuComponent.decorators = [
|
|
38
54
|
{ type: Component, args: [{
|
|
39
|
-
moduleId: module.id,
|
|
40
55
|
selector: 'risk-login-menu',
|
|
41
|
-
template: "<ng-template [ngIf]=\"orientation === 'row'\">\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n </ng-template>\n <ng-template #loggedOut>\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n </ng-template>\n </mat-menu>\n
|
|
56
|
+
template: "<ng-template [ngIf]=\"orientation === 'row'\">\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"></ng-content>\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n </ng-template>\n <ng-template #loggedOut>\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n </ng-template>\n <ng-content select=\"risk-login-menu-after-items-horizontal\"></ng-content>\n </mat-menu>\n <button mat-button\n #menu=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"loginMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n (onMenuClose)=\"menuClosed()\"\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"></ng-content>\n <mat-icon>person</mat-icon>\n </button>\n</ng-template>\n\n<ng-template [ngIf]=\"orientation === 'column'\">\n <ng-content select=\"risk-login-menu-title-vertical\"></ng-content>\n <ng-content select=\"risk-login-menu-before-items-vertical\"></ng-content>\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut2\">\n <a mat-button\n (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n </ng-template>\n <ng-template #loggedOut2>\n <a mat-button\n (click)=\"logout()\">\n <mat-icon>launch</mat-icon>\n Login\n </a>\n </ng-template>\n <ng-content select=\"risk-login-menu-after-items-vertical\"></ng-content>\n</ng-template>\n",
|
|
42
57
|
host: {
|
|
43
58
|
'[class.risk-login-menu]': 'true'
|
|
44
59
|
},
|
|
45
60
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
61
|
preserveWhitespaces: false,
|
|
47
|
-
styles: [":host{display:block;
|
|
62
|
+
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}", ":host{display:-webkit-flex!important;display:flex!important}:host.risk-login-menu-flex-row{-webkit-flex-direction:row;flex-direction:row}:host.risk-login-menu-flex-column{-webkit-flex-direction:column;flex-direction:column}:host .risk-login-menu-title{font-weight:700;margin:0 5px}"]
|
|
48
63
|
},] }
|
|
49
64
|
];
|
|
50
65
|
LoginMenuComponent.ctorParameters = () => [
|
|
@@ -57,4 +72,4 @@ LoginMenuComponent.propDecorators = {
|
|
|
57
72
|
isRow: [{ type: HostBinding, args: ['class.risk-login-menu-flex-row',] }],
|
|
58
73
|
isColumn: [{ type: HostBinding, args: ['class.risk-login-menu-flex-column',] }]
|
|
59
74
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ubWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWxvZ2luL3NyYy9saWIvbG9naW4ubWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBSXZELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFTaEQsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBUG5DLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0NBQW9DO3NCQUNsQyxnQ0FBZ0M7Z0JBQzVDLElBQUksRUFBTTtvQkFDTiwrQkFBK0IsRUFBRSxNQUFNO2lCQUMxQzthQUNKOztBQVVELE1BQU0sT0FBTyxjQUFjOzs7WUFOMUIsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwwQ0FBMEM7c0JBQ3hDLHlDQUF5QztzQkFDekMseUNBQXlDO3NCQUN6QyxzQ0FBc0M7YUFDckQ7O0FBaUJELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBZWpELFlBQTJELFlBQTBCLEVBQ2pELHNCQUE4QyxFQUM5QyxpQkFBb0M7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFIK0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDakQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBZGpFLGdCQUFXLEdBQXFCLEtBQUssQ0FBQztRQWlCekMsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDNUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQW5CRCxJQUNXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUNXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFhTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLEtBQUssRUFBRSxDQUNWLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7O1lBbkRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQWEsaUJBQWlCO2dCQUN0QyxzOURBQWdEO2dCQUtoRCxJQUFJLEVBQWlCO29CQUNqQix5QkFBeUIsRUFBRSxNQUFNO2lCQUNwQztnQkFDRCxlQUFlLEVBQU0sdUJBQXVCLENBQUMsTUFBTTtnQkFDbkQsbUJBQW1CLEVBQUUsS0FBSzs7YUFDN0I7Ozs0Q0FnQnVCLE1BQU0sU0FBQyxhQUFhO1lBdkRwQyxzQkFBc0I7WUFSMUIsaUJBQWlCOzs7MEJBa0RoQixLQUFLO29CQUdMLFdBQVcsU0FBQyxnQ0FBZ0M7dUJBSzVDLFdBQVcsU0FBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0F1dGhSb3V0aW5nRmxvd1NlcnZpY2V9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQge0FVVEhfUFJPVklERVJ9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7QXV0aFByb3ZpZGVyfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAncmlzay1sb2dpbi1tZW51LXRpdGxlLWhvcml6b250YWwsICdcbiAgICAgICAgICAgICAgKyAncmlzay1sb2dpbi1tZW51LXRpdGxlLXZlcnRpY2FsJyxcbiAgICBob3N0ICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stbG9naW4tbWVudS10aXRsZV0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIExvZ2luTWVudUNvbXBvbmVudFRpdGxlIHtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdyaXNrLWxvZ2luLW1lbnUtYmVmb3JlLWl0ZW1zLWhvcml6b250YWwsJ1xuICAgICAgICAgICAgICArICcgcmlzay1sb2dpbi1tZW51LWJlZm9yZS1pdGVtcy12ZXJ0aWNhbCwnXG4gICAgICAgICAgICAgICsgJ3Jpc2stbG9naW4tbWVudS1hZnRlci1pdGVtcy1ob3Jpem9udGFsLCdcbiAgICAgICAgICAgICAgKyAncmlzay1sb2dpbi1tZW51LWFmdGVyLWl0ZW1zLXZlcnRpY2FsJ1xufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1lbnVJdGVtcyB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yICAgICAgICAgICA6ICdyaXNrLWxvZ2luLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdsb2dpbi5tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdsb2dpbi5tZW51LmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stbG9naW4tbWVudV0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9yaWVudGF0aW9uOiAncm93JyB8ICdjb2x1bW4nID0gJ3Jvdyc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJpc2stbG9naW4tbWVudS1mbGV4LXJvdycpXG4gICAgcHVibGljIGdldCBpc1JvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09ICdyb3cnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucmlzay1sb2dpbi1tZW51LWZsZXgtY29sdW1uJylcbiAgICBwdWJsaWMgZ2V0IGlzQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2NvbHVtbic7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoQVVUSF9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoUm91dGluZ0Zsb3dTZXJ2aWNlOiBBdXRoUm91dGluZ0Zsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBtZW51IHN0YXRlIG9uIGxvZ2luIHN0YXR1cyBjaGFuZ2VcbiAgICAgICAgdGhpcy5hdXRoUHJvdmlkZXIubG9nZ2VkSW5TdHJlYW0ucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRoU3RhdHVzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoUHJvdmlkZXIubG9nZ2VkSW47XG4gICAgfVxuXG4gICAgcHVibGljIGxvZ291dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdXRoUm91dGluZ0Zsb3dTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICkuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -5,7 +5,7 @@ import { RouterModule } from '@angular/router';
|
|
|
5
5
|
import { AuthModule } from '@dbg-riskit/angular-auth';
|
|
6
6
|
import { CommonViewModule } from '@dbg-riskit/angular-view';
|
|
7
7
|
import { LoginComponent } from './login.component';
|
|
8
|
-
import { LoginMenuComponent } from './login.menu.component';
|
|
8
|
+
import { LoginMenuComponent, LoginMenuComponentTitle, LoginMenuItems } from './login.menu.component';
|
|
9
9
|
export class LoginModule {
|
|
10
10
|
}
|
|
11
11
|
LoginModule.decorators = [
|
|
@@ -17,8 +17,17 @@ LoginModule.decorators = [
|
|
|
17
17
|
AuthModule,
|
|
18
18
|
CommonViewModule
|
|
19
19
|
],
|
|
20
|
-
declarations: [
|
|
21
|
-
|
|
20
|
+
declarations: [
|
|
21
|
+
LoginMenuComponent,
|
|
22
|
+
LoginComponent,
|
|
23
|
+
LoginMenuComponentTitle,
|
|
24
|
+
LoginMenuItems
|
|
25
|
+
],
|
|
26
|
+
exports: [
|
|
27
|
+
LoginMenuComponent,
|
|
28
|
+
LoginMenuComponentTitle,
|
|
29
|
+
LoginMenuItems
|
|
30
|
+
]
|
|
22
31
|
},] }
|
|
23
32
|
];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1sb2dpbi9zcmMvbGliL2xvZ2luLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBc0JuRyxNQUFNLE9BQU8sV0FBVzs7O1lBcEJ2QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFPO29CQUNWLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YsZ0JBQWdCO2lCQUNuQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1Ysa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLHVCQUF1QjtvQkFDdkIsY0FBYztpQkFDakI7Z0JBQ0QsT0FBTyxFQUFPO29CQUNWLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2QixjQUFjO2lCQUNqQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBdXRoTW9kdWxlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHtDb21tb25WaWV3TW9kdWxlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtMb2dpbkNvbXBvbmVudH0gZnJvbSAnLi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dpbk1lbnVDb21wb25lbnQsIExvZ2luTWVudUNvbXBvbmVudFRpdGxlLCBMb2dpbk1lbnVJdGVtc30gZnJvbSAnLi9sb2dpbi5tZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0cyAgICAgOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgQXV0aE1vZHVsZSxcbiAgICAgICAgQ29tbW9uVmlld01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudCxcbiAgICAgICAgTG9naW5Db21wb25lbnQsXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudFRpdGxlLFxuICAgICAgICBMb2dpbk1lbnVJdGVtc1xuICAgIF0sXG4gICAgZXhwb3J0cyAgICAgOiBbXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudCxcbiAgICAgICAgTG9naW5NZW51Q29tcG9uZW50VGl0bGUsXG4gICAgICAgIExvZ2luTWVudUl0ZW1zXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1vZHVsZSB7XG59XG4iXX0=
|
package/esm2015/public_api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './lib/login.module';
|
|
2
2
|
export * from './lib/login.component';
|
|
3
3
|
export * from './lib/login.menu.component';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItbG9naW4vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9sb2dpbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9naW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvZ2luLm1lbnUuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, Input, HostBinding, NgModule } from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, Directive, Input, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { RouterModule } from '@angular/router';
|
|
5
5
|
import { AuthRoutingFlowService, AuthModule } from '@dbg-riskit/angular-auth';
|
|
6
6
|
import { BaseComponent, CommonViewModule } from '@dbg-riskit/angular-view';
|
|
7
|
-
import {
|
|
7
|
+
import { AUTH_PROVIDER, SECONDARY_LOGO } from '@dbg-riskit/angular-common';
|
|
8
|
+
import { toErrorMessage } from '@dbg-riskit/angular-error';
|
|
8
9
|
import { takeUntil, first } from 'rxjs/operators';
|
|
9
10
|
|
|
10
11
|
class LoginComponent extends BaseComponent {
|
|
@@ -19,31 +20,13 @@ class LoginComponent extends BaseComponent {
|
|
|
19
20
|
*/
|
|
20
21
|
this.loggingIn = false;
|
|
21
22
|
// Update component state on login status change
|
|
22
|
-
this.authProvider.loggedInStream
|
|
23
|
-
.pipe(takeUntil(this.destroyed))
|
|
24
|
-
.subscribe(() => this.changeDetectorRef.markForCheck());
|
|
23
|
+
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
25
24
|
}
|
|
26
25
|
ngAfterViewInit() {
|
|
27
|
-
this.authRoutingFlowService.loginViaService()
|
|
28
|
-
.pipe(takeUntil(this.destroyed))
|
|
29
|
-
.subscribe(() => {
|
|
26
|
+
this.authRoutingFlowService.loginViaService().pipe(takeUntil(this.destroyed)).subscribe(() => {
|
|
30
27
|
this.changeDetectorRef.markForCheck();
|
|
31
28
|
}, (err) => {
|
|
32
|
-
|
|
33
|
-
if (err.status == null
|
|
34
|
-
|| err.errorType == null
|
|
35
|
-
|| err.message == null) {
|
|
36
|
-
err = err.message || err.toString();
|
|
37
|
-
errorMessage = {
|
|
38
|
-
message: err,
|
|
39
|
-
status: 0,
|
|
40
|
-
errorType: ErrorType.ERROR
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
errorMessage = err;
|
|
45
|
-
}
|
|
46
|
-
this.errorMessage = errorMessage.message;
|
|
29
|
+
this.errorMessage = toErrorMessage(err).message;
|
|
47
30
|
this.changeDetectorRef.markForCheck();
|
|
48
31
|
});
|
|
49
32
|
}
|
|
@@ -58,9 +41,7 @@ class LoginComponent extends BaseComponent {
|
|
|
58
41
|
}
|
|
59
42
|
login() {
|
|
60
43
|
this.loggingIn = true;
|
|
61
|
-
this.authRoutingFlowService.login(this.username, this.password)
|
|
62
|
-
.pipe(first())
|
|
63
|
-
.subscribe((res) => {
|
|
44
|
+
this.authRoutingFlowService.login(this.username, this.password).pipe(first()).subscribe((res) => {
|
|
64
45
|
if (!res) {
|
|
65
46
|
this.errorMessage = 'Authentication failed. Server did not generate a token.';
|
|
66
47
|
}
|
|
@@ -78,14 +59,13 @@ class LoginComponent extends BaseComponent {
|
|
|
78
59
|
}
|
|
79
60
|
LoginComponent.decorators = [
|
|
80
61
|
{ type: Component, args: [{
|
|
81
|
-
moduleId: module.id,
|
|
82
62
|
template: "<risk-flex>\n <risk-flex-spacer></risk-flex-spacer>\n\n <div *ngIf=\"isDirectFlow\">\n <ng-template #loggedOut>\n <risk-error *ngIf=\"errorMessage\" [message]=\"errorMessage\"></risk-error>\n\n <form (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-title-group>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-title-group>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input matInput\n type=\"text\"\n placeholder=\"Username\"\n name=\"username\"\n [(ngModel)]=\"username\"\n autofocus>\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input matInput\n type=\"password\"\n placeholder=\"Password\"\n name=\"password\"\n [(ngModel)]=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n <button *ngIf=\"!loggingIn\"\n mat-raised-button\n color=\"primary\"\n type=\"submit\">\n Sign in\n </button>\n <img [src]=\"logo\" alt=\"Company logo\">\n <mat-spinner *ngIf=\"loggingIn\" [diameter]=\"36\"></mat-spinner>\n </mat-card-actions>\n </mat-card>\n </form>\n </ng-template>\n\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <ng-template [ngIf]=\"userProfile | async\" let-user=\"ngIf\">\n <risk-good *ngIf=\"user?.name\"\n [message]=\"'Successfully logged in as ' + user.name + '.'\"></risk-good>\n <risk-good *ngIf=\"!user && !user.name\"\n [message]=\"'Successfully logged in!'\"></risk-good>\n </ng-template>\n </ng-template>\n </div>\n\n <div *ngIf=\"!isDirectFlow\">\n <ng-template [ngIf]=\"!errorMessage\">\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner></mat-spinner>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n </ng-template>\n <ng-template [ngIf]=\"errorMessage\">\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-icon class=\"risk-login-form-error\" color=\"warn\">error_outline</mat-icon>\n <div></div>\n </div>\n <h3>Failed to authenticate user: {{errorMessage}}</h3>\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <button mat-button\n (click)=\"login()\"\n color=\"primary\"\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n </ng-template>\n </div>\n\n <risk-flex-spacer></risk-flex-spacer>\n</risk-flex>\n",
|
|
83
63
|
host: {
|
|
84
64
|
'[class.risk-login-form]': 'true'
|
|
85
65
|
},
|
|
86
66
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
87
67
|
preserveWhitespaces: false,
|
|
88
|
-
styles: [":host{display:block;
|
|
68
|
+
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}", ".risk-flex>div{width:400px;max-width:97vw;max-height:70vh;margin-top:40px}.mat-card-title-group{margin:0}.mat-card-title-group .mat-card-title{font-weight:500}.mat-card-actions{margin:0;margin-bottom:-8px!important;padding:0}.mat-card-actions img{float:right;margin:3px 0;height:30px}.risk-login-form-flex-wrapper{display:-webkit-flex;display:flex}.risk-login-form-flex-wrapper>div{-webkit-flex:1;flex:1}.risk-login-form-error{font-size:100px;height:100px;width:100px}h3{text-align:center}input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 1000px #fff}"]
|
|
89
69
|
},] }
|
|
90
70
|
];
|
|
91
71
|
LoginComponent.ctorParameters = () => [
|
|
@@ -95,6 +75,27 @@ LoginComponent.ctorParameters = () => [
|
|
|
95
75
|
{ type: String, decorators: [{ type: Inject, args: [SECONDARY_LOGO,] }] }
|
|
96
76
|
];
|
|
97
77
|
|
|
78
|
+
class LoginMenuComponentTitle {
|
|
79
|
+
}
|
|
80
|
+
LoginMenuComponentTitle.decorators = [
|
|
81
|
+
{ type: Directive, args: [{
|
|
82
|
+
selector: 'risk-login-menu-title-horizontal, '
|
|
83
|
+
+ 'risk-login-menu-title-vertical',
|
|
84
|
+
host: {
|
|
85
|
+
'[class.risk-login-menu-title]': 'true'
|
|
86
|
+
}
|
|
87
|
+
},] }
|
|
88
|
+
];
|
|
89
|
+
class LoginMenuItems {
|
|
90
|
+
}
|
|
91
|
+
LoginMenuItems.decorators = [
|
|
92
|
+
{ type: Directive, args: [{
|
|
93
|
+
selector: 'risk-login-menu-before-items-horizontal,'
|
|
94
|
+
+ ' risk-login-menu-before-items-vertical,'
|
|
95
|
+
+ 'risk-login-menu-after-items-horizontal,'
|
|
96
|
+
+ 'risk-login-menu-after-items-vertical'
|
|
97
|
+
},] }
|
|
98
|
+
];
|
|
98
99
|
class LoginMenuComponent extends BaseComponent {
|
|
99
100
|
constructor(authProvider, authRoutingFlowService, changeDetectorRef) {
|
|
100
101
|
super();
|
|
@@ -103,9 +104,7 @@ class LoginMenuComponent extends BaseComponent {
|
|
|
103
104
|
this.changeDetectorRef = changeDetectorRef;
|
|
104
105
|
this.orientation = 'row';
|
|
105
106
|
// Update menu state on login status change
|
|
106
|
-
this.authProvider.loggedInStream
|
|
107
|
-
.pipe(takeUntil(this.destroyed))
|
|
108
|
-
.subscribe(() => this.changeDetectorRef.markForCheck());
|
|
107
|
+
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
109
108
|
}
|
|
110
109
|
get isRow() {
|
|
111
110
|
return this.orientation === 'row';
|
|
@@ -120,23 +119,19 @@ class LoginMenuComponent extends BaseComponent {
|
|
|
120
119
|
return this.authProvider.loggedIn;
|
|
121
120
|
}
|
|
122
121
|
logout() {
|
|
123
|
-
this.authRoutingFlowService
|
|
124
|
-
.logout()
|
|
125
|
-
.pipe(first())
|
|
126
|
-
.subscribe();
|
|
122
|
+
this.authRoutingFlowService.logout().pipe(first()).subscribe();
|
|
127
123
|
}
|
|
128
124
|
}
|
|
129
125
|
LoginMenuComponent.decorators = [
|
|
130
126
|
{ type: Component, args: [{
|
|
131
|
-
moduleId: module.id,
|
|
132
127
|
selector: 'risk-login-menu',
|
|
133
|
-
template: "<ng-template [ngIf]=\"orientation === 'row'\">\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n </ng-template>\n <ng-template #loggedOut>\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n </ng-template>\n </mat-menu>\n
|
|
128
|
+
template: "<ng-template [ngIf]=\"orientation === 'row'\">\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"></ng-content>\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut\">\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n </ng-template>\n <ng-template #loggedOut>\n <button mat-menu-item\n (click)=\"logout()\"\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n </ng-template>\n <ng-content select=\"risk-login-menu-after-items-horizontal\"></ng-content>\n </mat-menu>\n <button mat-button\n #menu=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"loginMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n (onMenuClose)=\"menuClosed()\"\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"></ng-content>\n <mat-icon>person</mat-icon>\n </button>\n</ng-template>\n\n<ng-template [ngIf]=\"orientation === 'column'\">\n <ng-content select=\"risk-login-menu-title-vertical\"></ng-content>\n <ng-content select=\"risk-login-menu-before-items-vertical\"></ng-content>\n <ng-template [ngIf]=\"authStatus | async\" [ngIfElse]=\"loggedOut2\">\n <a mat-button\n (click)=\"logout()\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n </ng-template>\n <ng-template #loggedOut2>\n <a mat-button\n (click)=\"logout()\">\n <mat-icon>launch</mat-icon>\n Login\n </a>\n </ng-template>\n <ng-content select=\"risk-login-menu-after-items-vertical\"></ng-content>\n</ng-template>\n",
|
|
134
129
|
host: {
|
|
135
130
|
'[class.risk-login-menu]': 'true'
|
|
136
131
|
},
|
|
137
132
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
138
133
|
preserveWhitespaces: false,
|
|
139
|
-
styles: [":host{display:block;
|
|
134
|
+
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}", ":host{display:-webkit-flex!important;display:flex!important}:host.risk-login-menu-flex-row{-webkit-flex-direction:row;flex-direction:row}:host.risk-login-menu-flex-column{-webkit-flex-direction:column;flex-direction:column}:host .risk-login-menu-title{font-weight:700;margin:0 5px}"]
|
|
140
135
|
},] }
|
|
141
136
|
];
|
|
142
137
|
LoginMenuComponent.ctorParameters = () => [
|
|
@@ -161,8 +156,17 @@ LoginModule.decorators = [
|
|
|
161
156
|
AuthModule,
|
|
162
157
|
CommonViewModule
|
|
163
158
|
],
|
|
164
|
-
declarations: [
|
|
165
|
-
|
|
159
|
+
declarations: [
|
|
160
|
+
LoginMenuComponent,
|
|
161
|
+
LoginComponent,
|
|
162
|
+
LoginMenuComponentTitle,
|
|
163
|
+
LoginMenuItems
|
|
164
|
+
],
|
|
165
|
+
exports: [
|
|
166
|
+
LoginMenuComponent,
|
|
167
|
+
LoginMenuComponentTitle,
|
|
168
|
+
LoginMenuItems
|
|
169
|
+
]
|
|
166
170
|
},] }
|
|
167
171
|
];
|
|
168
172
|
|
|
@@ -170,5 +174,5 @@ LoginModule.decorators = [
|
|
|
170
174
|
* Generated bundle index. Do not edit.
|
|
171
175
|
*/
|
|
172
176
|
|
|
173
|
-
export { LoginComponent, LoginMenuComponent, LoginModule };
|
|
177
|
+
export { LoginComponent, LoginMenuComponent, LoginMenuComponentTitle, LoginMenuItems, LoginModule };
|
|
174
178
|
//# sourceMappingURL=dbg-riskit-angular-login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-angular-login.js","sources":["../../../../projects/dbg-riskit/angular-login/src/lib/login.component.ts","../../../../projects/dbg-riskit/angular-login/src/lib/login.menu.component.ts","../../../../projects/dbg-riskit/angular-login/src/lib/login.module.ts","../../../../projects/dbg-riskit/angular-login/src/dbg-riskit-angular-login.ts"],"sourcesContent":["import {AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject} from '@angular/core';\n\nimport {AuthRoutingFlowService} from '@dbg-riskit/angular-auth';\nimport {\n AUTH_PROVIDER,\n AuthProvider,\n ErrorMessage,\n ErrorType,\n SECONDARY_LOGO,\n UserInfo\n} from '@dbg-riskit/angular-common';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\n\nimport {Observable} from 'rxjs';\nimport {first, takeUntil} from 'rxjs/operators';\n\n@Component({\n moduleId : module.id,\n templateUrl : 'login.component.html',\n styleUrls : [\n '../../../component.scss',\n 'login.component.scss'\n ],\n host : {\n '[class.risk-login-form]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class LoginComponent extends BaseComponent implements AfterViewInit {\n\n /**\n * Error message to be displayed.\n */\n public errorMessage?: string;\n\n /**\n * User name binding.\n */\n public username?: string;\n\n /**\n * Password binding.\n */\n public password?: string;\n\n /**\n * Control for \"login button-to-spinner\".\n */\n public loggingIn: boolean = false;\n\n public constructor(@Inject(AUTH_PROVIDER) private readonly authProvider: AuthProvider,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly authRoutingFlowService: AuthRoutingFlowService,\n @Inject(SECONDARY_LOGO) private readonly secondaryLogo: string) {\n super();\n // Update component state on login status change\n this.authProvider.loggedInStream\n .pipe(takeUntil(this.destroyed))\n .subscribe(\n () => this.changeDetectorRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this.authRoutingFlowService.loginViaService()\n .pipe(takeUntil(this.destroyed))\n .subscribe(\n () => {\n this.changeDetectorRef.markForCheck();\n },\n (err: any) => {\n let errorMessage: ErrorMessage;\n if ((err as ErrorMessage).status == null\n || (err as ErrorMessage).errorType == null\n || (err as ErrorMessage).message == null) {\n err = err.message || err.toString();\n errorMessage = {\n message : err,\n status : 0,\n errorType: ErrorType.ERROR\n };\n } else {\n errorMessage = err;\n }\n this.errorMessage = errorMessage.message;\n this.changeDetectorRef.markForCheck();\n });\n }\n\n public get isDirectFlow(): boolean {\n return this.authRoutingFlowService.directFlow;\n }\n\n public get authStatus(): Observable<boolean> {\n return this.authProvider.loggedIn;\n }\n\n public get userProfile(): Observable<UserInfo | undefined> {\n return this.authProvider.userProfile;\n }\n\n public login(): void {\n this.loggingIn = true;\n this.authRoutingFlowService.login(this.username, this.password)\n .pipe(first())\n .subscribe(\n (res: boolean) => {\n if (!res) {\n this.errorMessage = 'Authentication failed. Server did not generate a token.';\n }\n this.loggingIn = false;\n this.changeDetectorRef.markForCheck();\n },\n () => {\n this.loggingIn = false;\n this.errorMessage = 'Authentication failed. Is the username and password correct?';\n this.changeDetectorRef.markForCheck();\n });\n }\n\n public get logo(): string {\n return this.secondaryLogo;\n }\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inject, Input} from '@angular/core';\n\nimport {AuthRoutingFlowService} from '@dbg-riskit/angular-auth';\nimport {AUTH_PROVIDER, AuthProvider} from '@dbg-riskit/angular-common';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\n\nimport {Observable} from 'rxjs';\nimport {first, takeUntil} from 'rxjs/operators';\n\n@Component({\n moduleId : module.id,\n selector : 'risk-login-menu',\n templateUrl : 'login.menu.component.html',\n styleUrls : [\n '../../../component.scss',\n 'login.menu.component.scss'\n ],\n host : {\n '[class.risk-login-menu]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class LoginMenuComponent extends BaseComponent {\n\n @Input()\n public orientation: 'row' | 'column' = 'row';\n\n @HostBinding('class.risk-login-menu-flex-row')\n public get isRow(): boolean {\n return this.orientation === 'row';\n }\n\n @HostBinding('class.risk-login-menu-flex-column')\n public get isColumn(): boolean {\n return this.orientation === 'column';\n }\n\n public constructor(@Inject(AUTH_PROVIDER) private readonly authProvider: AuthProvider,\n private readonly authRoutingFlowService: AuthRoutingFlowService,\n private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n\n // Update menu state on login status change\n this.authProvider.loggedInStream\n .pipe(takeUntil(this.destroyed))\n .subscribe(\n () => this.changeDetectorRef.markForCheck());\n }\n\n public menuClosed(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n public get authStatus(): Observable<boolean> {\n return this.authProvider.loggedIn;\n }\n\n public logout(): void {\n this.authRoutingFlowService\n .logout()\n .pipe(first())\n .subscribe();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {AuthModule} from '@dbg-riskit/angular-auth';\nimport {CommonViewModule} from '@dbg-riskit/angular-view';\nimport {LoginComponent} from './login.component';\nimport {LoginMenuComponent} from './login.menu.component';\n\n@NgModule({\n imports : [\n CommonModule,\n FormsModule,\n RouterModule,\n AuthModule,\n CommonViewModule\n ],\n declarations: [LoginMenuComponent, LoginComponent],\n exports : [LoginMenuComponent]\n})\nexport class LoginModule {\n}\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":"dbg-riskit-angular-login.js","sources":["../../../../pkg/dbg-riskit/angular-login/src/lib/login.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.menu.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.module.ts","../../../../pkg/dbg-riskit/angular-login/src/dbg-riskit-angular-login.ts"],"sourcesContent":["import {AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject} from '@angular/core';\n\nimport {AuthRoutingFlowService} from '@dbg-riskit/angular-auth';\nimport {AUTH_PROVIDER, SECONDARY_LOGO} from '@dbg-riskit/angular-common';\nimport {ErrorTypes, toErrorMessage} from '@dbg-riskit/angular-error';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {AuthProvider, UserInfo} from '@dbg-riskit/common';\n\nimport {Observable} from 'rxjs';\nimport {first, takeUntil} from 'rxjs/operators';\n\n@Component({\n templateUrl : 'login.component.html',\n styleUrls : [\n '../../../component.scss',\n 'login.component.scss'\n ],\n host : {\n '[class.risk-login-form]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class LoginComponent extends BaseComponent implements AfterViewInit {\n\n /**\n * Error message to be displayed.\n */\n public errorMessage?: string;\n\n /**\n * User name binding.\n */\n public username?: string;\n\n /**\n * Password binding.\n */\n public password?: string;\n\n /**\n * Control for \"login button-to-spinner\".\n */\n public loggingIn: boolean = false;\n\n public constructor(@Inject(AUTH_PROVIDER) private readonly authProvider: AuthProvider,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly authRoutingFlowService: AuthRoutingFlowService,\n @Inject(SECONDARY_LOGO) private readonly secondaryLogo: string) {\n super();\n // Update component state on login status change\n this.authProvider.loggedInStream.pipe(\n takeUntil(this.destroyed)\n ).subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this.authRoutingFlowService.loginViaService().pipe(\n takeUntil(this.destroyed)\n ).subscribe(\n () => {\n this.changeDetectorRef.markForCheck();\n },\n (err: ErrorTypes) => {\n this.errorMessage = toErrorMessage(err).message;\n this.changeDetectorRef.markForCheck();\n }\n );\n }\n\n public get isDirectFlow(): boolean {\n return this.authRoutingFlowService.directFlow;\n }\n\n public get authStatus(): Observable<boolean> {\n return this.authProvider.loggedIn;\n }\n\n public get userProfile(): Observable<UserInfo | undefined> {\n return this.authProvider.userProfile;\n }\n\n public login(): void {\n this.loggingIn = true;\n this.authRoutingFlowService.login(this.username, this.password).pipe(\n first()\n ).subscribe(\n (res: boolean) => {\n if (!res) {\n this.errorMessage = 'Authentication failed. Server did not generate a token.';\n }\n this.loggingIn = false;\n this.changeDetectorRef.markForCheck();\n },\n () => {\n this.loggingIn = false;\n this.errorMessage = 'Authentication failed. Is the username and password correct?';\n this.changeDetectorRef.markForCheck();\n }\n );\n }\n\n public get logo(): string {\n return this.secondaryLogo;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n HostBinding,\n Inject,\n Input\n} from '@angular/core';\n\nimport {AuthRoutingFlowService} from '@dbg-riskit/angular-auth';\nimport {AUTH_PROVIDER} from '@dbg-riskit/angular-common';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {AuthProvider} from '@dbg-riskit/common';\n\nimport {Observable} from 'rxjs';\nimport {first, takeUntil} from 'rxjs/operators';\n\n@Directive({\n selector: 'risk-login-menu-title-horizontal, '\n + 'risk-login-menu-title-vertical',\n host : {\n '[class.risk-login-menu-title]': 'true'\n }\n})\nexport class LoginMenuComponentTitle {\n}\n\n@Directive({\n selector: 'risk-login-menu-before-items-horizontal,'\n + ' risk-login-menu-before-items-vertical,'\n + 'risk-login-menu-after-items-horizontal,'\n + 'risk-login-menu-after-items-vertical'\n})\nexport class LoginMenuItems {\n}\n\n@Component({\n selector : 'risk-login-menu',\n templateUrl : 'login.menu.component.html',\n styleUrls : [\n '../../../component.scss',\n 'login.menu.component.scss'\n ],\n host : {\n '[class.risk-login-menu]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class LoginMenuComponent extends BaseComponent {\n\n @Input()\n public orientation: 'row' | 'column' = 'row';\n\n @HostBinding('class.risk-login-menu-flex-row')\n public get isRow(): boolean {\n return this.orientation === 'row';\n }\n\n @HostBinding('class.risk-login-menu-flex-column')\n public get isColumn(): boolean {\n return this.orientation === 'column';\n }\n\n public constructor(@Inject(AUTH_PROVIDER) private readonly authProvider: AuthProvider,\n private readonly authRoutingFlowService: AuthRoutingFlowService,\n private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n\n // Update menu state on login status change\n this.authProvider.loggedInStream.pipe(\n takeUntil(this.destroyed)\n ).subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n public menuClosed(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n public get authStatus(): Observable<boolean> {\n return this.authProvider.loggedIn;\n }\n\n public logout(): void {\n this.authRoutingFlowService.logout().pipe(\n first()\n ).subscribe();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {AuthModule} from '@dbg-riskit/angular-auth';\nimport {CommonViewModule} from '@dbg-riskit/angular-view';\nimport {LoginComponent} from './login.component';\nimport {LoginMenuComponent, LoginMenuComponentTitle, LoginMenuItems} from './login.menu.component';\n\n@NgModule({\n imports : [\n CommonModule,\n FormsModule,\n RouterModule,\n AuthModule,\n CommonViewModule\n ],\n declarations: [\n LoginMenuComponent,\n LoginComponent,\n LoginMenuComponentTitle,\n LoginMenuItems\n ],\n exports : [\n LoginMenuComponent,\n LoginMenuComponentTitle,\n LoginMenuItems\n ]\n})\nexport class LoginModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/lib/login.component.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AfterViewInit, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { AuthRoutingFlowService } from '@dbg-riskit/angular-auth';
|
|
3
|
-
import { AuthProvider, UserInfo } from '@dbg-riskit/angular-common';
|
|
4
3
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
4
|
+
import { AuthProvider, UserInfo } from '@dbg-riskit/common';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
6
6
|
export declare class LoginComponent extends BaseComponent implements AfterViewInit {
|
|
7
7
|
private readonly authProvider;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { AuthRoutingFlowService } from '@dbg-riskit/angular-auth';
|
|
3
|
-
import { AuthProvider } from '@dbg-riskit/angular-common';
|
|
4
3
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
4
|
+
import { AuthProvider } from '@dbg-riskit/common';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
6
|
+
export declare class LoginMenuComponentTitle {
|
|
7
|
+
}
|
|
8
|
+
export declare class LoginMenuItems {
|
|
9
|
+
}
|
|
6
10
|
export declare class LoginMenuComponent extends BaseComponent {
|
|
7
11
|
private readonly authProvider;
|
|
8
12
|
private readonly authRoutingFlowService;
|
package/package.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/angular-login",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9999.9999.9999",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@angular/forms": "^
|
|
8
|
-
"@angular/
|
|
9
|
-
"@
|
|
10
|
-
"@dbg-riskit/angular-auth": "~
|
|
11
|
-
"@dbg-riskit/angular-common": "~
|
|
12
|
-
"@dbg-riskit/angular-
|
|
13
|
-
"
|
|
6
|
+
"@angular/core": "^12.1.4",
|
|
7
|
+
"@angular/forms": "^12.1.4",
|
|
8
|
+
"@angular/router": "^12.1.4",
|
|
9
|
+
"@dbg-riskit/common": "~9999.9999.9999",
|
|
10
|
+
"@dbg-riskit/angular-auth": "~9999.9999.9999",
|
|
11
|
+
"@dbg-riskit/angular-common": "~9999.9999.9999",
|
|
12
|
+
"@dbg-riskit/angular-error": "~9999.9999.9999",
|
|
13
|
+
"@dbg-riskit/angular-view": "~9999.9999.9999",
|
|
14
|
+
"rxjs": "~6.6.7"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
|
-
"tslib": "^2.
|
|
17
|
+
"tslib": "^2.3.0"
|
|
17
18
|
},
|
|
18
19
|
"main": "bundles/dbg-riskit-angular-login.umd.js",
|
|
19
20
|
"module": "fesm2015/dbg-riskit-angular-login.js",
|