{"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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"}