@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1hbmd1bGFyLWxvZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGJnLXJpc2tpdC9hbmd1bGFyLWxvZ2luL3NyYy9kYmctcmlza2l0LWFuZ3VsYXItbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
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, ErrorType, SECONDARY_LOGO } from '@dbg-riskit/angular-common';
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
- let errorMessage;
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;margin:0;padding:0}:host>*{vertical-align:bottom}", ".risk-flex>div{margin-top:40px;max-height:70vh;max-width:97vw;width:400px}.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;height:30px;margin:3px 0}.risk-login-form-flex-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.risk-login-form-flex-wrapper>div{-ms-flex:1;-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:0 0 0 1000px #fff inset}"]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGJnLXJpc2tpdC9hbmd1bGFyLWxvZ2luL3NyYy9saWIvbG9naW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsYUFBYSxFQUdiLFNBQVMsRUFDVCxjQUFjLEVBRWpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFlaEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBc0I3QyxZQUEyRCxZQUEwQixFQUNqRCxpQkFBb0MsRUFDcEMsc0JBQThDLEVBQ3RCLGFBQXFCO1FBQzdFLEtBQUssRUFBRSxDQUFDO1FBSitDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ2pELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQVJqRjs7V0FFRztRQUNJLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFPOUIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYzthQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQ04sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsRUFBRTthQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQ04sR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsRUFDRCxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1QsSUFBSSxZQUEwQixDQUFDO1lBQy9CLElBQUssR0FBb0IsQ0FBQyxNQUFNLElBQUksSUFBSTttQkFDaEMsR0FBb0IsQ0FBQyxTQUFTLElBQUksSUFBSTttQkFDdEMsR0FBb0IsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUMxQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLFlBQVksR0FBRztvQkFDWCxPQUFPLEVBQUksR0FBRztvQkFDZCxNQUFNLEVBQUssQ0FBQztvQkFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUs7aUJBQzdCLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxZQUFZLEdBQUcsR0FBRyxDQUFDO2FBQ3RCO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDYixTQUFTLENBQ04sQ0FBQyxHQUFZLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyx5REFBeUQsQ0FBQzthQUNqRjtZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyw4REFBOEQsQ0FBQztZQUNuRixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7OztZQTFHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFhLE1BQU0sQ0FBQyxFQUFFO2dCQUM5QiwybEhBQTJDO2dCQUszQyxJQUFJLEVBQWlCO29CQUNqQix5QkFBeUIsRUFBRSxNQUFNO2lCQUNwQztnQkFDRCxlQUFlLEVBQU0sdUJBQXVCLENBQUMsTUFBTTtnQkFDbkQsbUJBQW1CLEVBQUUsS0FBSzs7YUFDN0I7Ozs0Q0F1QnVCLE1BQU0sU0FBQyxhQUFhO1lBbkRJLGlCQUFpQjtZQUV6RCxzQkFBc0I7eUNBb0ROLE1BQU0sU0FBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBdXRoUm91dGluZ0Zsb3dTZXJ2aWNlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHtcbiAgICBBVVRIX1BST1ZJREVSLFxuICAgIEF1dGhQcm92aWRlcixcbiAgICBFcnJvck1lc3NhZ2UsXG4gICAgRXJyb3JUeXBlLFxuICAgIFNFQ09OREFSWV9MT0dPLFxuICAgIFVzZXJJbmZvXG59IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Zmlyc3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBtb2R1bGVJZCAgICAgICAgICAgOiBtb2R1bGUuaWQsXG4gICAgdGVtcGxhdGVVcmwgICAgICAgIDogJ2xvZ2luLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdsb2dpbi5jb21wb25lbnQuc2NzcydcbiAgICBdLFxuICAgIGhvc3QgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLWxvZ2luLWZvcm1dJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVXNlciBuYW1lIGJpbmRpbmcuXG4gICAgICovXG4gICAgcHVibGljIHVzZXJuYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGFzc3dvcmQgYmluZGluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFzc3dvcmQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sIGZvciBcImxvZ2luIGJ1dHRvbi10by1zcGlubmVyXCIuXG4gICAgICovXG4gICAgcHVibGljIGxvZ2dpbmdJbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoQVVUSF9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFJvdXRpbmdGbG93U2VydmljZTogQXV0aFJvdXRpbmdGbG93U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgQEluamVjdChTRUNPTkRBUllfTE9HTykgcHJpdmF0ZSByZWFkb25seSBzZWNvbmRhcnlMb2dvOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgLy8gVXBkYXRlIGNvbXBvbmVudCBzdGF0ZSBvbiBsb2dpbiBzdGF0dXMgY2hhbmdlXG4gICAgICAgIHRoaXMuYXV0aFByb3ZpZGVyLmxvZ2dlZEluU3RyZWFtXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dGhSb3V0aW5nRmxvd1NlcnZpY2UubG9naW5WaWFTZXJ2aWNlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoZXJyIGFzIEVycm9yTWVzc2FnZSkuc3RhdHVzID09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IChlcnIgYXMgRXJyb3JNZXNzYWdlKS5lcnJvclR5cGUgPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGVyciBhcyBFcnJvck1lc3NhZ2UpLm1lc3NhZ2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gZXJyLm1lc3NhZ2UgfHwgZXJyLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlLkVSUk9SXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0RpcmVjdEZsb3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhSb3V0aW5nRmxvd1NlcnZpY2UuZGlyZWN0RmxvdztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGF1dGhTdGF0dXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhQcm92aWRlci5sb2dnZWRJbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVzZXJQcm9maWxlKCk6IE9ic2VydmFibGU8VXNlckluZm8gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFByb3ZpZGVyLnVzZXJQcm9maWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dpbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2dnaW5nSW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmF1dGhSb3V0aW5nRmxvd1NlcnZpY2UubG9naW4odGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZClcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0F1dGhlbnRpY2F0aW9uIGZhaWxlZC4gU2VydmVyIGRpZCBub3QgZ2VuZXJhdGUgYSB0b2tlbi4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0F1dGhlbnRpY2F0aW9uIGZhaWxlZC4gSXMgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjb3JyZWN0Pyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlY29uZGFyeUxvZ287XG4gICAgfVxufVxuIl19
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\n <button mat-icon-button\n #menu=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"loginMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n (onMenuClose)=\"menuClosed()\"\n type=\"button\">\n <mat-icon>person</mat-icon>\n </button>\n</ng-template>\n\n<ng-template [ngIf]=\"orientation === 'column'\">\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-template>",
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;margin:0;padding:0}:host>*{vertical-align:bottom}", ":host{display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}:host.risk-login-menu-flex-row{-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}:host.risk-login-menu-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}"]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ubWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYmctcmlza2l0L2FuZ3VsYXItbG9naW4vc3JjL2xpYi9sb2dpbi5tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHdkQsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCaEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFlakQsWUFBMkQsWUFBMEIsRUFDakQsc0JBQThDLEVBQzlDLGlCQUFvQztRQUNwRSxLQUFLLEVBQUUsQ0FBQztRQUgrQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNqRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkakUsZ0JBQVcsR0FBcUIsS0FBSyxDQUFDO1FBaUJ6QywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO2FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FDTixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBcEJELElBQ1csS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQ1csUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQWNNLFVBQVU7UUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLHNCQUFzQjthQUN0QixNQUFNLEVBQUU7YUFDUixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDYixTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7WUF0REosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBYSxNQUFNLENBQUMsRUFBRTtnQkFDOUIsUUFBUSxFQUFhLGlCQUFpQjtnQkFDdEMseS9DQUFnRDtnQkFLaEQsSUFBSSxFQUFpQjtvQkFDakIseUJBQXlCLEVBQUUsTUFBTTtpQkFDcEM7Z0JBQ0QsZUFBZSxFQUFNLHVCQUF1QixDQUFDLE1BQU07Z0JBQ25ELG1CQUFtQixFQUFFLEtBQUs7O2FBQzdCOzs7NENBZ0J1QixNQUFNLFNBQUMsYUFBYTtZQXBDcEMsc0JBQXNCO1lBRkcsaUJBQWlCOzs7MEJBeUI3QyxLQUFLO29CQUdMLFdBQVcsU0FBQyxnQ0FBZ0M7dUJBSzVDLFdBQVcsU0FBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QXV0aFJvdXRpbmdGbG93U2VydmljZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7QVVUSF9QUk9WSURFUiwgQXV0aFByb3ZpZGVyfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Jhc2VDb21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgbW9kdWxlSWQgICAgICAgICAgIDogbW9kdWxlLmlkLFxuICAgIHNlbGVjdG9yICAgICAgICAgICA6ICdyaXNrLWxvZ2luLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdsb2dpbi5tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdsb2dpbi5tZW51LmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stbG9naW4tbWVudV0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9yaWVudGF0aW9uOiAncm93JyB8ICdjb2x1bW4nID0gJ3Jvdyc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJpc2stbG9naW4tbWVudS1mbGV4LXJvdycpXG4gICAgcHVibGljIGdldCBpc1JvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09ICdyb3cnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucmlzay1sb2dpbi1tZW51LWZsZXgtY29sdW1uJylcbiAgICBwdWJsaWMgZ2V0IGlzQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2NvbHVtbic7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoQVVUSF9QUk9WSURFUikgcHJpdmF0ZSByZWFkb25seSBhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoUm91dGluZ0Zsb3dTZXJ2aWNlOiBBdXRoUm91dGluZ0Zsb3dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBtZW51IHN0YXRlIG9uIGxvZ2luIHN0YXR1cyBjaGFuZ2VcbiAgICAgICAgdGhpcy5hdXRoUHJvdmlkZXIubG9nZ2VkSW5TdHJlYW1cbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXV0aFN0YXR1cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFByb3ZpZGVyLmxvZ2dlZEluO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXV0aFJvdXRpbmdGbG93U2VydmljZVxuICAgICAgICAgICAgLmxvZ291dCgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
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: [LoginMenuComponent, LoginComponent],
21
- exports: [LoginMenuComponent]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGJnLXJpc2tpdC9hbmd1bGFyLWxvZ2luL3NyYy9saWIvbG9naW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQWExRCxNQUFNLE9BQU8sV0FBVzs7O1lBWHZCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQU87b0JBQ1YsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixnQkFBZ0I7aUJBQ25CO2dCQUNELFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQztnQkFDbEQsT0FBTyxFQUFPLENBQUMsa0JBQWtCLENBQUM7YUFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0F1dGhNb2R1bGV9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQge0NvbW1vblZpZXdNb2R1bGV9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5pbXBvcnQge0xvZ2luQ29tcG9uZW50fSBmcm9tICcuL2xvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ2luTWVudUNvbXBvbmVudH0gZnJvbSAnLi9sb2dpbi5tZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0cyAgICAgOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgQXV0aE1vZHVsZSxcbiAgICAgICAgQ29tbW9uVmlld01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbTG9naW5NZW51Q29tcG9uZW50LCBMb2dpbkNvbXBvbmVudF0sXG4gICAgZXhwb3J0cyAgICAgOiBbTG9naW5NZW51Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1vZHVsZSB7XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1sb2dpbi9zcmMvbGliL2xvZ2luLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBc0JuRyxNQUFNLE9BQU8sV0FBVzs7O1lBcEJ2QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFPO29CQUNWLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YsZ0JBQWdCO2lCQUNuQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1Ysa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLHVCQUF1QjtvQkFDdkIsY0FBYztpQkFDakI7Z0JBQ0QsT0FBTyxFQUFPO29CQUNWLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2QixjQUFjO2lCQUNqQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBdXRoTW9kdWxlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHtDb21tb25WaWV3TW9kdWxlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtMb2dpbkNvbXBvbmVudH0gZnJvbSAnLi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dpbk1lbnVDb21wb25lbnQsIExvZ2luTWVudUNvbXBvbmVudFRpdGxlLCBMb2dpbk1lbnVJdGVtc30gZnJvbSAnLi9sb2dpbi5tZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0cyAgICAgOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgQXV0aE1vZHVsZSxcbiAgICAgICAgQ29tbW9uVmlld01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudCxcbiAgICAgICAgTG9naW5Db21wb25lbnQsXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudFRpdGxlLFxuICAgICAgICBMb2dpbk1lbnVJdGVtc1xuICAgIF0sXG4gICAgZXhwb3J0cyAgICAgOiBbXG4gICAgICAgIExvZ2luTWVudUNvbXBvbmVudCxcbiAgICAgICAgTG9naW5NZW51Q29tcG9uZW50VGl0bGUsXG4gICAgICAgIExvZ2luTWVudUl0ZW1zXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk1vZHVsZSB7XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RiZy1yaXNraXQvYW5ndWxhci1sb2dpbi9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2xvZ2luLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9naW4ubWVudS5jb21wb25lbnQnO1xuIl19
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 { ErrorType, AUTH_PROVIDER, SECONDARY_LOGO } from '@dbg-riskit/angular-common';
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
- let errorMessage;
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;margin:0;padding:0}:host>*{vertical-align:bottom}", ".risk-flex>div{margin-top:40px;max-height:70vh;max-width:97vw;width:400px}.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;height:30px;margin:3px 0}.risk-login-form-flex-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex}.risk-login-form-flex-wrapper>div{-ms-flex:1;-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:0 0 0 1000px #fff inset}"]
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\n <button mat-icon-button\n #menu=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"loginMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n (onMenuClose)=\"menuClosed()\"\n type=\"button\">\n <mat-icon>person</mat-icon>\n </button>\n</ng-template>\n\n<ng-template [ngIf]=\"orientation === 'column'\">\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-template>",
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;margin:0;padding:0}:host>*{vertical-align:bottom}", ":host{display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}:host.risk-login-menu-flex-row{-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}:host.risk-login-menu-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}"]
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: [LoginMenuComponent, LoginComponent],
165
- exports: [LoginMenuComponent]
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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"}
@@ -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": "10.1.2",
3
+ "version": "9999.9999.9999",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@angular/core": "^10.0.6",
7
- "@angular/forms": "^10.0.6",
8
- "@angular/platform-browser": "^10.0.6",
9
- "@angular/router": "^10.0.6",
10
- "@dbg-riskit/angular-auth": "~10.1.2",
11
- "@dbg-riskit/angular-common": "~10.1.2",
12
- "@dbg-riskit/angular-view": "~10.1.2",
13
- "rxjs": "~6.6.0"
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.0.0"
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",