@dbg-riskit/angular-login 20.0.2 → 20.3.0
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject,
|
|
2
|
+
import { inject, signal, ChangeDetectionStrategy, Component, Directive, input } from '@angular/core';
|
|
3
|
+
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
|
-
import {
|
|
5
|
+
import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
6
6
|
import { MatButton } from '@angular/material/button';
|
|
7
7
|
import { MatCard, MatCardActions, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';
|
|
8
8
|
import { MatFormField } from '@angular/material/form-field';
|
|
@@ -12,70 +12,65 @@ import { MatProgressSpinner } from '@angular/material/progress-spinner';
|
|
|
12
12
|
import { AuthRoutingFlowService } from '@dbg-riskit/angular-auth';
|
|
13
13
|
import { AUTH_PROVIDER, SECONDARY_LOGO } from '@dbg-riskit/angular-common';
|
|
14
14
|
import { toErrorMessage } from '@dbg-riskit/angular-error';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { RiskFlexComponent, RiskFlexSpacerComponent, RiskMessageComponent } from '@dbg-riskit/angular-view';
|
|
16
|
+
import { switchMap, first } from 'rxjs/operators';
|
|
17
17
|
import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
|
|
18
18
|
|
|
19
|
-
class
|
|
20
|
-
constructor() {
|
|
21
|
-
super();
|
|
22
|
-
this.authProvider = inject(AUTH_PROVIDER);
|
|
23
|
-
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
24
|
-
this.authRoutingFlowService = inject(AuthRoutingFlowService);
|
|
25
|
-
this.secondaryLogo = inject(SECONDARY_LOGO);
|
|
26
|
-
/**
|
|
27
|
-
* Control for "login button-to-spinner".
|
|
28
|
-
*/
|
|
29
|
-
this.loggingIn = false;
|
|
30
|
-
// Update component state on login status change
|
|
31
|
-
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
32
|
-
}
|
|
19
|
+
class RiskLoginComponent {
|
|
33
20
|
get isDirectFlow() {
|
|
34
21
|
return this.authRoutingFlowService.directFlow;
|
|
35
22
|
}
|
|
36
|
-
get authStatus() {
|
|
37
|
-
return this.authProvider.loggedIn;
|
|
38
|
-
}
|
|
39
|
-
get userProfile() {
|
|
40
|
-
return this.authProvider.userProfile;
|
|
41
|
-
}
|
|
42
23
|
get logo() {
|
|
43
24
|
return this.secondaryLogo;
|
|
44
25
|
}
|
|
45
|
-
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
26
|
+
constructor() {
|
|
27
|
+
this.authProvider = inject(AUTH_PROVIDER);
|
|
28
|
+
this.authRoutingFlowService = inject(AuthRoutingFlowService);
|
|
29
|
+
this.secondaryLogo = inject(SECONDARY_LOGO);
|
|
30
|
+
this.errorMessage = signal(undefined, ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
|
|
31
|
+
this.loggingIn = signal(false, ...(ngDevMode ? [{ debugName: "loggingIn" }] : []));
|
|
32
|
+
this.loginForm = new FormGroup({
|
|
33
|
+
username: new FormControl(''),
|
|
34
|
+
password: new FormControl('')
|
|
35
|
+
});
|
|
36
|
+
this.authStatus = toSignal(this.authProvider.loggedInStream);
|
|
37
|
+
this.userProfile = signal(undefined, ...(ngDevMode ? [{ debugName: "userProfile" }] : []));
|
|
38
|
+
this.authRoutingFlowService.loginViaService().pipe(takeUntilDestroyed()).subscribe({
|
|
39
|
+
error: (err) => {
|
|
40
|
+
this.errorMessage.set(toErrorMessage(err).message);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
this.authProvider.loggedInStream.pipe(takeUntilDestroyed(), switchMap(() => this.authProvider.userProfile)).subscribe({
|
|
44
|
+
next: (profile) => {
|
|
45
|
+
this.userProfile.set(profile);
|
|
46
|
+
}
|
|
51
47
|
});
|
|
52
48
|
}
|
|
53
49
|
login() {
|
|
54
|
-
this.loggingIn
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
this.loggingIn.set(true);
|
|
51
|
+
const username = this.loginForm.get('username')?.value ?? undefined;
|
|
52
|
+
const password = this.loginForm.get('password')?.value ?? undefined;
|
|
53
|
+
this.authRoutingFlowService.login(username, password).pipe(first()).subscribe({
|
|
54
|
+
next: (res) => {
|
|
55
|
+
if (!res) {
|
|
56
|
+
this.errorMessage.set('Authentication failed. Server did not generate a token.');
|
|
57
|
+
}
|
|
58
|
+
this.loggingIn.set(false);
|
|
59
|
+
},
|
|
60
|
+
error: () => {
|
|
61
|
+
this.loggingIn.set(false);
|
|
62
|
+
this.errorMessage.set('Authentication failed. Is the username and password correct?');
|
|
58
63
|
}
|
|
59
|
-
this.loggingIn = false;
|
|
60
|
-
this.changeDetectorRef.markForCheck();
|
|
61
|
-
}, () => {
|
|
62
|
-
this.loggingIn = false;
|
|
63
|
-
this.errorMessage = 'Authentication failed. Is the username and password correct?';
|
|
64
|
-
this.changeDetectorRef.markForCheck();
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: RiskLoginComponent, isStandalone: true, selector: "ng-component", host: { properties: { "class.risk-login-form": "true" } }, ngImport: i0, template: "<risk-flex>\n <risk-flex-spacer/>\n\n @if (isDirectFlow) {\n <div>\n @if (authStatus()) {\n @if (userProfile(); as user) {\n @if (user?.name) {\n <risk-good [message]=\"'Successfully logged in as ' + user.name + '.'\"/>\n } @else {\n <risk-good [message]=\"'Successfully logged in!'\"/>\n }\n }\n } @else {\n @if (errorMessage()) {\n <risk-error [message]=\"errorMessage()!\"/>\n }\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"username\"\n autofocus\n matInput\n name=\"username\"\n placeholder=\"Username\"\n type=\"text\">\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"password\"\n matInput\n name=\"password\"\n placeholder=\"Password\"\n type=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n @if (!loggingIn()) {\n <button\n color=\"primary\"\n mat-raised-button\n type=\"submit\">\n Sign in\n </button>\n }\n @if (loggingIn()) {\n <mat-spinner [diameter]=\"36\"/>\n }\n <risk-flex-spacer/>\n <img [src]=\"logo\" alt=\"Company logo\">\n </mat-card-actions>\n </mat-card>\n </form>\n }\n </div>\n } @else {\n <div>\n @if (!errorMessage()) {\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner/>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n } @else {\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 (click)=\"login()\"\n color=\"primary\"\n mat-button\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n }\n </div>\n }\n\n <risk-flex-spacer/>\n</risk-flex>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ".risk-flex>div{width:400px;max-width:97vw;max-height:70vh;margin-top:40px}.mat-mdc-card-actions img{margin:3px 0;height:30px}.risk-login-form-flex-wrapper{display:flex}.risk-login-form-flex-wrapper>div{flex:1}.risk-login-form-error{font-size:100px;height:100px;width:100px}h3{text-align:center}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px white inset}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: RiskFlexComponent, selector: "risk-flex", inputs: ["wrapContent"] }, { kind: "component", type: RiskFlexSpacerComponent, selector: "risk-flex-spacer" }, { kind: "component", type: RiskMessageComponent, selector: "risk-error, risk-good, risk-info, risk-message, risk-warn, risk-initial-load, risk-no-data, risk-update-failed", inputs: ["message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
68
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginComponent, decorators: [{
|
|
71
70
|
type: Component,
|
|
72
|
-
args: [{ host: {
|
|
71
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
73
72
|
'[class.risk-login-form]': 'true'
|
|
74
|
-
},
|
|
75
|
-
AsyncPipe,
|
|
76
|
-
FlexComponent,
|
|
77
|
-
FlexSpacerComponent,
|
|
78
|
-
FormsModule,
|
|
73
|
+
}, imports: [
|
|
79
74
|
MatButton,
|
|
80
75
|
MatCard,
|
|
81
76
|
MatCardActions,
|
|
@@ -86,15 +81,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
86
81
|
MatIcon,
|
|
87
82
|
MatInput,
|
|
88
83
|
MatProgressSpinner,
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
ReactiveFormsModule,
|
|
85
|
+
RiskFlexComponent,
|
|
86
|
+
RiskFlexSpacerComponent,
|
|
87
|
+
RiskMessageComponent
|
|
88
|
+
], template: "<risk-flex>\n <risk-flex-spacer/>\n\n @if (isDirectFlow) {\n <div>\n @if (authStatus()) {\n @if (userProfile(); as user) {\n @if (user?.name) {\n <risk-good [message]=\"'Successfully logged in as ' + user.name + '.'\"/>\n } @else {\n <risk-good [message]=\"'Successfully logged in!'\"/>\n }\n }\n } @else {\n @if (errorMessage()) {\n <risk-error [message]=\"errorMessage()!\"/>\n }\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"username\"\n autofocus\n matInput\n name=\"username\"\n placeholder=\"Username\"\n type=\"text\">\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"password\"\n matInput\n name=\"password\"\n placeholder=\"Password\"\n type=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n @if (!loggingIn()) {\n <button\n color=\"primary\"\n mat-raised-button\n type=\"submit\">\n Sign in\n </button>\n }\n @if (loggingIn()) {\n <mat-spinner [diameter]=\"36\"/>\n }\n <risk-flex-spacer/>\n <img [src]=\"logo\" alt=\"Company logo\">\n </mat-card-actions>\n </mat-card>\n </form>\n }\n </div>\n } @else {\n <div>\n @if (!errorMessage()) {\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner/>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n } @else {\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 (click)=\"login()\"\n color=\"primary\"\n mat-button\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n }\n </div>\n }\n\n <risk-flex-spacer/>\n</risk-flex>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ".risk-flex>div{width:400px;max-width:97vw;max-height:70vh;margin-top:40px}.mat-mdc-card-actions img{margin:3px 0;height:30px}.risk-login-form-flex-wrapper{display:flex}.risk-login-form-flex-wrapper>div{flex:1}.risk-login-form-error{font-size:100px;height:100px;width:100px}h3{text-align:center}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px white inset}\n"] }]
|
|
91
89
|
}], ctorParameters: () => [] });
|
|
92
90
|
|
|
93
|
-
class
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
95
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
91
|
+
class RiskLoginMenuComponentTitleDirective {
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuComponentTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
93
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: RiskLoginMenuComponentTitleDirective, isStandalone: true, selector: "risk-login-menu-title-horizontal, risk-login-menu-title-vertical", host: { properties: { "class.risk-login-menu-title": "true" } }, ngImport: i0 }); }
|
|
96
94
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuComponentTitleDirective, decorators: [{
|
|
98
96
|
type: Directive,
|
|
99
97
|
args: [{
|
|
100
98
|
selector: 'risk-login-menu-title-horizontal, '
|
|
@@ -104,11 +102,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
104
102
|
}
|
|
105
103
|
}]
|
|
106
104
|
}] });
|
|
107
|
-
class
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
109
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
105
|
+
class RiskLoginMenuItemsDirective {
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuItemsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
107
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: RiskLoginMenuItemsDirective, isStandalone: true, selector: "risk-login-menu-before-items-horizontal, risk-login-menu-before-items-vertical,risk-login-menu-after-items-horizontal,risk-login-menu-after-items-vertical", ngImport: i0 }); }
|
|
110
108
|
}
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuItemsDirective, decorators: [{
|
|
112
110
|
type: Directive,
|
|
113
111
|
args: [{
|
|
114
112
|
selector: 'risk-login-menu-before-items-horizontal,'
|
|
@@ -117,52 +115,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
117
115
|
+ 'risk-login-menu-after-items-vertical'
|
|
118
116
|
}]
|
|
119
117
|
}] });
|
|
120
|
-
class
|
|
118
|
+
class RiskLoginMenuComponent {
|
|
121
119
|
constructor() {
|
|
122
|
-
super();
|
|
123
120
|
this.authProvider = inject(AUTH_PROVIDER);
|
|
124
121
|
this.authRoutingFlowService = inject(AuthRoutingFlowService);
|
|
125
|
-
this.
|
|
126
|
-
this.
|
|
127
|
-
// Update menu state on login status change
|
|
128
|
-
this.authProvider.loggedInStream.pipe(takeUntil(this.destroyed)).subscribe(() => this.changeDetectorRef.markForCheck());
|
|
129
|
-
}
|
|
130
|
-
get isRow() {
|
|
131
|
-
return this.orientation === 'row';
|
|
132
|
-
}
|
|
133
|
-
get isColumn() {
|
|
134
|
-
return this.orientation === 'column';
|
|
135
|
-
}
|
|
136
|
-
get authStatus() {
|
|
137
|
-
return this.authProvider.loggedIn;
|
|
138
|
-
}
|
|
139
|
-
menuClosed() {
|
|
140
|
-
this.changeDetectorRef.markForCheck();
|
|
122
|
+
this.orientation = input('row', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
123
|
+
this.authStatus = toSignal(this.authProvider.loggedInStream);
|
|
141
124
|
}
|
|
142
125
|
logout() {
|
|
143
126
|
this.authRoutingFlowService.logout().pipe(first()).subscribe();
|
|
144
127
|
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: RiskLoginMenuComponent, isStandalone: true, selector: "risk-login-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.risk-login-menu": "true", "class.risk-login-menu-flex-row": "orientation() === \"row\"", "class.risk-login-menu-flex-column": "orientation() === \"column\"" } }, ngImport: i0, template: "@if (orientation() === 'row') {\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"/>\n @if (authStatus()) {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n } @else {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n }\n <ng-content select=\"risk-login-menu-after-items-horizontal\"/>\n </mat-menu>\n <button #menu=\"matMenuTrigger\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matMenuTriggerFor]=\"loginMenu\"\n mat-button\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"/>\n <mat-icon>person</mat-icon>\n </button>\n}\n@if (orientation() === 'column') {\n <ng-content select=\"risk-login-menu-title-vertical\"/>\n <ng-content select=\"risk-login-menu-before-items-vertical\"/>\n @if (authStatus()) {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n } @else {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>launch</mat-icon>\n Login\n </a>\n }\n <ng-content select=\"risk-login-menu-after-items-vertical\"/>\n}\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:flex!important}:host.risk-login-menu-flex-row{flex-direction:row}:host.risk-login-menu-flex-column{flex-direction:column}:host .risk-login-menu-title{font-weight:700;margin:0 5px}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
147
130
|
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskLoginMenuComponent, decorators: [{
|
|
149
132
|
type: Component,
|
|
150
|
-
args: [{ selector: 'risk-login-menu', host: {
|
|
151
|
-
'[class.risk-login-menu]': 'true'
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
133
|
+
args: [{ selector: 'risk-login-menu', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
134
|
+
'[class.risk-login-menu]': 'true',
|
|
135
|
+
'[class.risk-login-menu-flex-row]': 'orientation() === "row"',
|
|
136
|
+
'[class.risk-login-menu-flex-column]': 'orientation() === "column"'
|
|
137
|
+
}, imports: [
|
|
138
|
+
MatButton,
|
|
139
|
+
MatIcon,
|
|
140
|
+
MatMenu,
|
|
141
|
+
MatMenuItem,
|
|
142
|
+
MatMenuTrigger
|
|
143
|
+
], template: "@if (orientation() === 'row') {\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"/>\n @if (authStatus()) {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n } @else {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n }\n <ng-content select=\"risk-login-menu-after-items-horizontal\"/>\n </mat-menu>\n <button #menu=\"matMenuTrigger\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matMenuTriggerFor]=\"loginMenu\"\n mat-button\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"/>\n <mat-icon>person</mat-icon>\n </button>\n}\n@if (orientation() === 'column') {\n <ng-content select=\"risk-login-menu-title-vertical\"/>\n <ng-content select=\"risk-login-menu-before-items-vertical\"/>\n @if (authStatus()) {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n } @else {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>launch</mat-icon>\n Login\n </a>\n }\n <ng-content select=\"risk-login-menu-after-items-vertical\"/>\n}\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:flex!important}:host.risk-login-menu-flex-row{flex-direction:row}:host.risk-login-menu-flex-column{flex-direction:column}:host .risk-login-menu-title{font-weight:700;margin:0 5px}\n"] }]
|
|
144
|
+
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }] } });
|
|
162
145
|
|
|
163
146
|
/**
|
|
164
147
|
* Generated bundle index. Do not edit.
|
|
165
148
|
*/
|
|
166
149
|
|
|
167
|
-
export {
|
|
150
|
+
export { RiskLoginComponent, RiskLoginMenuComponent, RiskLoginMenuComponentTitleDirective, RiskLoginMenuItemsDirective };
|
|
168
151
|
//# sourceMappingURL=dbg-riskit-angular-login.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-angular-login.mjs","sources":["../../../../pkg/dbg-riskit/angular-login/src/lib/login.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.component.html","../../../../pkg/dbg-riskit/angular-login/src/lib/login.menu.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.menu.component.html","../../../../pkg/dbg-riskit/angular-login/src/dbg-riskit-angular-login.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, inject} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatButton} from '@angular/material/button';\nimport {MatCard, MatCardActions, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card';\nimport {MatFormField} from '@angular/material/form-field';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatInput} from '@angular/material/input';\nimport {MatProgressSpinner} from '@angular/material/progress-spinner';\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, FlexComponent, FlexSpacerComponent, MessageComponent} from '@dbg-riskit/angular-view';\nimport {AuthProvider, UserInfo} from '@dbg-riskit/common';\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 imports: [\n AsyncPipe,\n FlexComponent,\n FlexSpacerComponent,\n FormsModule,\n MatButton,\n MatCard,\n MatCardActions,\n MatCardContent,\n MatCardHeader,\n MatCardTitle,\n MatFormField,\n MatIcon,\n MatInput,\n MatProgressSpinner,\n MessageComponent\n ]\n})\nexport class LoginComponent extends BaseComponent implements AfterViewInit {\n private readonly authProvider = inject<AuthProvider>(AUTH_PROVIDER);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly authRoutingFlowService = inject(AuthRoutingFlowService);\n private readonly secondaryLogo = inject(SECONDARY_LOGO);\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 = false;\n\n public constructor() {\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 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 get logo(): string {\n return this.secondaryLogo;\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 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","<risk-flex>\n <risk-flex-spacer/>\n\n @if (isDirectFlow) {\n <div>\n @if (authStatus | async) {\n @if (userProfile | async; as user) {\n @if (user?.name) {\n <risk-good [message]=\"'Successfully logged in as ' + user.name + '.'\"/>\n } @else {\n <risk-good [message]=\"'Successfully logged in!'\"/>\n }\n }\n } @else {\n @if (errorMessage) {\n <risk-error [message]=\"errorMessage\"/>\n }\n <form (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input [(ngModel)]=\"username\"\n autofocus\n matInput\n name=\"username\"\n placeholder=\"Username\"\n type=\"text\">\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input [(ngModel)]=\"password\"\n matInput\n name=\"password\"\n placeholder=\"Password\"\n type=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n @if (!loggingIn) {\n <button\n color=\"primary\"\n mat-raised-button\n type=\"submit\">\n Sign in\n </button>\n }\n @if (loggingIn) {\n <mat-spinner [diameter]=\"36\"/>\n }\n <risk-flex-spacer/>\n <img [src]=\"logo\" alt=\"Company logo\">\n </mat-card-actions>\n </mat-card>\n </form>\n }\n </div>\n } @else {\n <div>\n @if (!errorMessage) {\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner/>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n } @else {\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 (click)=\"login()\"\n color=\"primary\"\n mat-button\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n }\n </div>\n }\n\n <risk-flex-spacer/>\n</risk-flex>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n HostBinding,\n inject,\n Input\n} from '@angular/core';\nimport {MatButton} from '@angular/material/button';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\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';\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 LoginMenuComponentTitleDirective {\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 LoginMenuItemsDirective {\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 imports : [MatMenu, MatMenuItem, MatIcon, MatButton, MatMenuTrigger, AsyncPipe]\n})\nexport class LoginMenuComponent extends BaseComponent {\n private readonly authProvider = inject<AuthProvider>(AUTH_PROVIDER);\n private readonly authRoutingFlowService = inject(AuthRoutingFlowService);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n @Input()\n public orientation: 'row' | 'column' = 'row';\n\n public constructor() {\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 @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 get authStatus(): Observable<boolean> {\n return this.authProvider.loggedIn;\n }\n\n public menuClosed(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n public logout(): void {\n this.authRoutingFlowService.logout().pipe(\n first()\n ).subscribe();\n }\n}\n","@if (orientation === 'row') {\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"/>\n @if (authStatus | async) {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n } @else {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n }\n <ng-content select=\"risk-login-menu-after-items-horizontal\"/>\n </mat-menu>\n <button #menu=\"matMenuTrigger\"\n (onMenuClose)=\"menuClosed()\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matMenuTriggerFor]=\"loginMenu\"\n mat-button\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"/>\n <mat-icon>person</mat-icon>\n </button>\n}\n@if (orientation === 'column') {\n <ng-content select=\"risk-login-menu-title-vertical\"/>\n <ng-content select=\"risk-login-menu-before-items-vertical\"/>\n @if (authStatus | async) {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n } @else {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>launch</mat-icon>\n Login\n </a>\n }\n <ng-content select=\"risk-login-menu-after-items-vertical\"/>\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.mjs","sources":["../../../../pkg/dbg-riskit/angular-login/src/lib/login.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.component.html","../../../../pkg/dbg-riskit/angular-login/src/lib/login.menu.component.ts","../../../../pkg/dbg-riskit/angular-login/src/lib/login.menu.component.html","../../../../pkg/dbg-riskit/angular-login/src/dbg-riskit-angular-login.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {MatButton} from '@angular/material/button';\nimport {MatCard, MatCardActions, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card';\nimport {MatFormField} from '@angular/material/form-field';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatInput} from '@angular/material/input';\nimport {MatProgressSpinner} from '@angular/material/progress-spinner';\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 {RiskFlexComponent, RiskFlexSpacerComponent, RiskMessageComponent} from '@dbg-riskit/angular-view';\nimport {AuthProvider, UserInfo} from '@dbg-riskit/common';\nimport {first, switchMap} from 'rxjs/operators';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\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 imports: [\n MatButton,\n MatCard,\n MatCardActions,\n MatCardContent,\n MatCardHeader,\n MatCardTitle,\n MatFormField,\n MatIcon,\n MatInput,\n MatProgressSpinner,\n ReactiveFormsModule,\n RiskFlexComponent,\n RiskFlexSpacerComponent,\n RiskMessageComponent\n ]\n})\nexport class RiskLoginComponent {\n private readonly authProvider = inject<AuthProvider>(AUTH_PROVIDER);\n private readonly authRoutingFlowService = inject(AuthRoutingFlowService);\n private readonly secondaryLogo = inject(SECONDARY_LOGO);\n\n public readonly errorMessage = signal<string | undefined>(undefined);\n public readonly loggingIn = signal(false);\n\n public readonly loginForm = new FormGroup({\n username: new FormControl(''),\n password: new FormControl('')\n });\n\n public readonly authStatus = toSignal(this.authProvider.loggedInStream);\n public readonly userProfile = signal<UserInfo | undefined>(undefined);\n\n public get isDirectFlow(): boolean {\n return this.authRoutingFlowService.directFlow;\n }\n\n public get logo(): string {\n return this.secondaryLogo;\n }\n\n public constructor() {\n this.authRoutingFlowService.loginViaService().pipe(\n takeUntilDestroyed()\n ).subscribe({\n error: (err: ErrorTypes) => {\n this.errorMessage.set(toErrorMessage(err).message);\n }\n });\n\n this.authProvider.loggedInStream.pipe(\n takeUntilDestroyed(),\n switchMap(() => this.authProvider.userProfile)\n ).subscribe({\n next: (profile) => {\n this.userProfile.set(profile);\n }\n });\n }\n\n public login(): void {\n this.loggingIn.set(true);\n const username = this.loginForm.get('username')?.value ?? undefined;\n const password = this.loginForm.get('password')?.value ?? undefined;\n this.authRoutingFlowService.login(username, password).pipe(\n first()\n ).subscribe({\n next : (res: boolean) => {\n if (!res) {\n this.errorMessage.set('Authentication failed. Server did not generate a token.');\n }\n this.loggingIn.set(false);\n },\n error: () => {\n this.loggingIn.set(false);\n this.errorMessage.set('Authentication failed. Is the username and password correct?');\n }\n });\n }\n}\n","<risk-flex>\n <risk-flex-spacer/>\n\n @if (isDirectFlow) {\n <div>\n @if (authStatus()) {\n @if (userProfile(); as user) {\n @if (user?.name) {\n <risk-good [message]=\"'Successfully logged in as ' + user.name + '.'\"/>\n } @else {\n <risk-good [message]=\"'Successfully logged in!'\"/>\n }\n }\n } @else {\n @if (errorMessage()) {\n <risk-error [message]=\"errorMessage()!\"/>\n }\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\" role=\"form\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>Please Sign In</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"username\"\n autofocus\n matInput\n name=\"username\"\n placeholder=\"Username\"\n type=\"text\">\n </mat-form-field>\n <mat-form-field class=\"risk-full-width\">\n <input formControlName=\"password\"\n matInput\n name=\"password\"\n placeholder=\"Password\"\n type=\"password\">\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions>\n @if (!loggingIn()) {\n <button\n color=\"primary\"\n mat-raised-button\n type=\"submit\">\n Sign in\n </button>\n }\n @if (loggingIn()) {\n <mat-spinner [diameter]=\"36\"/>\n }\n <risk-flex-spacer/>\n <img [src]=\"logo\" alt=\"Company logo\">\n </mat-card-actions>\n </mat-card>\n </form>\n }\n </div>\n } @else {\n <div>\n @if (!errorMessage()) {\n <div class=\"risk-login-form-flex-wrapper\">\n <div></div>\n <mat-spinner/>\n <div></div>\n </div>\n <h3>Contacting authentication server...</h3>\n } @else {\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 (click)=\"login()\"\n color=\"primary\"\n mat-button\n type=\"button\">\n <mat-icon>autorenew</mat-icon>\n Retry\n </button>\n <div></div>\n </div>\n }\n </div>\n }\n\n <risk-flex-spacer/>\n</risk-flex>\n","import {ChangeDetectionStrategy, Component, Directive, inject, input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MatButton} from '@angular/material/button';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\nimport {AuthRoutingFlowService} from '@dbg-riskit/angular-auth';\nimport {AUTH_PROVIDER} from '@dbg-riskit/angular-common';\nimport {AuthProvider} from '@dbg-riskit/common';\nimport {first} 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 RiskLoginMenuComponentTitleDirective {\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 RiskLoginMenuItemsDirective {\n}\n\n@Component({\n selector : 'risk-login-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\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 '[class.risk-login-menu-flex-row]' : 'orientation() === \"row\"',\n '[class.risk-login-menu-flex-column]': 'orientation() === \"column\"'\n },\n imports : [\n MatButton,\n MatIcon,\n MatMenu,\n MatMenuItem,\n MatMenuTrigger\n ]\n})\nexport class RiskLoginMenuComponent {\n private readonly authProvider = inject<AuthProvider>(AUTH_PROVIDER);\n private readonly authRoutingFlowService = inject(AuthRoutingFlowService);\n\n public readonly orientation = input<'row' | 'column'>('row');\n public readonly authStatus = toSignal(this.authProvider.loggedInStream);\n\n public logout(): void {\n this.authRoutingFlowService.logout().pipe(\n first()\n ).subscribe();\n }\n}\n","@if (orientation() === 'row') {\n <mat-menu #loginMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <ng-content select=\"risk-login-menu-before-items-horizontal\"/>\n @if (authStatus()) {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </button>\n } @else {\n <button (click)=\"logout()\"\n mat-menu-item\n type=\"button\">\n <mat-icon>launch</mat-icon>\n Login\n </button>\n }\n <ng-content select=\"risk-login-menu-after-items-horizontal\"/>\n </mat-menu>\n <button #menu=\"matMenuTrigger\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matMenuTriggerFor]=\"loginMenu\"\n mat-button\n type=\"button\">\n <ng-content select=\"risk-login-menu-title-horizontal\"/>\n <mat-icon>person</mat-icon>\n </button>\n}\n@if (orientation() === 'column') {\n <ng-content select=\"risk-login-menu-title-vertical\"/>\n <ng-content select=\"risk-login-menu-before-items-vertical\"/>\n @if (authStatus()) {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>exit_to_app</mat-icon>\n Logout\n </a>\n } @else {\n <a (click)=\"logout()\"\n mat-button>\n <mat-icon>launch</mat-icon>\n Login\n </a>\n }\n <ng-content select=\"risk-login-menu-after-items-vertical\"/>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,62 +1,43 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
2
|
+
import { FormGroup, FormControl } from '@angular/forms';
|
|
4
3
|
import { UserInfo } from '@dbg-riskit/common';
|
|
5
|
-
import { Observable } from 'rxjs';
|
|
6
4
|
|
|
7
|
-
declare class
|
|
5
|
+
declare class RiskLoginComponent {
|
|
8
6
|
private readonly authProvider;
|
|
9
|
-
private readonly changeDetectorRef;
|
|
10
7
|
private readonly authRoutingFlowService;
|
|
11
8
|
private readonly secondaryLogo;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Password binding.
|
|
22
|
-
*/
|
|
23
|
-
password?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Control for "login button-to-spinner".
|
|
26
|
-
*/
|
|
27
|
-
loggingIn: boolean;
|
|
28
|
-
constructor();
|
|
9
|
+
readonly errorMessage: i0.WritableSignal<string | undefined>;
|
|
10
|
+
readonly loggingIn: i0.WritableSignal<boolean>;
|
|
11
|
+
readonly loginForm: FormGroup<{
|
|
12
|
+
username: FormControl<string | null>;
|
|
13
|
+
password: FormControl<string | null>;
|
|
14
|
+
}>;
|
|
15
|
+
readonly authStatus: i0.Signal<boolean | undefined>;
|
|
16
|
+
readonly userProfile: i0.WritableSignal<UserInfo | undefined>;
|
|
29
17
|
get isDirectFlow(): boolean;
|
|
30
|
-
get authStatus(): Observable<boolean>;
|
|
31
|
-
get userProfile(): Observable<UserInfo | undefined>;
|
|
32
18
|
get logo(): string;
|
|
33
|
-
|
|
19
|
+
constructor();
|
|
34
20
|
login(): void;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RiskLoginComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RiskLoginComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
37
23
|
}
|
|
38
24
|
|
|
39
|
-
declare class
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
41
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
25
|
+
declare class RiskLoginMenuComponentTitleDirective {
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RiskLoginMenuComponentTitleDirective, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RiskLoginMenuComponentTitleDirective, "risk-login-menu-title-horizontal, risk-login-menu-title-vertical", never, {}, {}, never, never, true, never>;
|
|
42
28
|
}
|
|
43
|
-
declare class
|
|
44
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
45
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
29
|
+
declare class RiskLoginMenuItemsDirective {
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RiskLoginMenuItemsDirective, never>;
|
|
31
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RiskLoginMenuItemsDirective, "risk-login-menu-before-items-horizontal, risk-login-menu-before-items-vertical,risk-login-menu-after-items-horizontal,risk-login-menu-after-items-vertical", never, {}, {}, never, never, true, never>;
|
|
46
32
|
}
|
|
47
|
-
declare class
|
|
33
|
+
declare class RiskLoginMenuComponent {
|
|
48
34
|
private readonly authProvider;
|
|
49
35
|
private readonly authRoutingFlowService;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
constructor();
|
|
53
|
-
get isRow(): boolean;
|
|
54
|
-
get isColumn(): boolean;
|
|
55
|
-
get authStatus(): Observable<boolean>;
|
|
56
|
-
menuClosed(): void;
|
|
36
|
+
readonly orientation: i0.InputSignal<"row" | "column">;
|
|
37
|
+
readonly authStatus: i0.Signal<boolean | undefined>;
|
|
57
38
|
logout(): void;
|
|
58
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
59
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
39
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RiskLoginMenuComponent, never>;
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RiskLoginMenuComponent, "risk-login-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["risk-login-menu-before-items-horizontal", "risk-login-menu-after-items-horizontal", "risk-login-menu-title-horizontal", "risk-login-menu-title-vertical", "risk-login-menu-before-items-vertical", "risk-login-menu-after-items-vertical"], true, never>;
|
|
60
41
|
}
|
|
61
42
|
|
|
62
|
-
export {
|
|
43
|
+
export { RiskLoginComponent, RiskLoginMenuComponent, RiskLoginMenuComponentTitleDirective, RiskLoginMenuItemsDirective };
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/angular-login",
|
|
3
|
-
"version": "20.0
|
|
3
|
+
"version": "20.3.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/core": "^20.3.
|
|
7
|
-
"@angular/forms": "^20.3.
|
|
8
|
-
"@angular/router": "^20.3.
|
|
9
|
-
"@dbg-riskit/common": "~20.0
|
|
10
|
-
"@dbg-riskit/angular-auth": "~20.0
|
|
11
|
-
"@dbg-riskit/angular-common": "~20.0
|
|
12
|
-
"@dbg-riskit/angular-error": "~20.0
|
|
13
|
-
"@dbg-riskit/angular-view": "~20.0
|
|
6
|
+
"@angular/core": "^20.3.15",
|
|
7
|
+
"@angular/forms": "^20.3.15",
|
|
8
|
+
"@angular/router": "^20.3.15",
|
|
9
|
+
"@dbg-riskit/common": "~20.3.0",
|
|
10
|
+
"@dbg-riskit/angular-auth": "~20.3.0",
|
|
11
|
+
"@dbg-riskit/angular-common": "~20.3.0",
|
|
12
|
+
"@dbg-riskit/angular-error": "~20.3.0",
|
|
13
|
+
"@dbg-riskit/angular-view": "~20.3.0",
|
|
14
14
|
"rxjs": "~7.8.2"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|