UNPKG

ui-logon-angular

Version:

Refer [UI-Logon](https://www.npmjs.com/package/ui-logon).

1 lines 23.1 kB
{"version":3,"file":"ui-logon-angular.mjs","sources":["../../../projects/logon/src/lib/msgStore.ts","../../../projects/logon/src/lib/logon.service.ts","../../../projects/logon/src/lib/user.ts","../../../projects/logon/src/lib/logon.component.ts","../../../projects/logon/src/lib/logon.component.html","../../../projects/logon/src/lib/landing-page/landing-page.component.ts","../../../projects/logon/src/lib/landing-page/landing-page.component.html","../../../projects/logon/src/lib/logon.module.ts","../../../projects/logon/src/public_api.ts","../../../projects/logon/src/ui-logon-angular.ts"],"sourcesContent":["export const msgStore = [\n { msgCat: 'EXCEPTION',\n msgName: 'GENERIC',\n msgText: {\n EN: {shortText: 'Exception Occurs',\n longText: '%s1'}\n }\n }\n];\n","import { Injectable } from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {MessageService, messageType} from 'ui-message-angular';\nimport {msgStore} from './msgStore';\nimport {QueryObject} from './user';\nimport {Observable, of} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\n\nconst httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\n};\n\n@Injectable({providedIn: 'root'})\nexport class LogonService {\n private host = '';\n constructor(private http: HttpClient,\n private messageService: MessageService) {\n this.messageService.setMessageStore(msgStore, 'EN');\n }\n\n setHost(host: string) {\n this.host = host;\n }\n\n logon(userid: string, password: string): Observable<any> {\n return this.http.post<any>(\n this.host ? this.host + '/api/logon' : 'api/logon',\n {username: userid, password: password}, httpOptions).pipe(\n catchError(this.handleError<any>('Logon')));\n }\n\n logout(): Observable<any> {\n return this.http.delete<any>(this.host ? this.host + '/api/logout' : 'api/logout', httpOptions).pipe(\n catchError(this.handleError<any>('Logout'))\n );\n }\n\n session(): Observable<any> {\n return this.http.get<any>(this.host ? this.host + '/api/session' : 'api/session', httpOptions).pipe(\n catchError(this.handleError<any>('Get session'))\n );\n }\n\n /**\n * this method is called during logon component initialization. It tries to get the session,\n * but without raising any errors.\n */\n try_get_session(): Observable<any> {\n return this.http.get<any>(this.host ? this.host + '/api/session' : 'api/session', httpOptions);\n }\n\n query(queryObject: QueryObject): Observable<any> {\n return this.http.post<any>(this.host ? this.host + '/api/query' : 'api/query', queryObject, httpOptions).pipe(\n catchError(this.handleError<any>('query')));\n }\n\n read(instanceGUID: string): Observable<any> {\n return this.http.get<any>(\n this.host ? this.host + `/api/entity/instance/${instanceGUID}` : `api/entity/instance/${instanceGUID}`)\n .pipe( catchError(this.handleError<any>('read')));\n }\n\n private handleError<T> (operation = 'operation', result?: T) {\n return (error: any): Observable<T> => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n this.messageService.addMessage('EXCEPTION', 'GENERIC', messageType.Exception, JSON.stringify(error));\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n}\n","export class User {\n domain: string;\n username: string;\n userid: string;\n displayName: string;\n name: {\n familyName: string;\n givenName: string;\n middleName: string;\n };\n emails: PluralField[];\n photos: PluralField[];\n phoneNumbers: PluralField[];\n password: string;\n password_r: string;\n pwdState: number;\n locked: boolean;\n}\nexport class PluralField {\n value: string;\n type: string;\n primary: boolean;\n}\n\nexport class QueryObject {\n ENTITY_ID: string;\n RELATION_ID: string;\n PROJECTION?: Array<string|Projection>;\n FILTER?: Selection[];\n SORT?: Sort[];\n}\nexport class Projection {\n RELATION_ID?: string;\n FIELD_NAME: string;\n ALIAS?: string;\n}\nexport class Selection {\n RELATION_ID?: string;\n FIELD_NAME: string;\n OPERATOR: string;\n LOW: string;\n HIGH?: string;\n}\nexport class Sort {\n FIELD_NAME: string;\n RELATION_ID: string;\n ORDER: string;\n}\n\nexport class Session {\n USER_ID: string;\n USER_NAME?: string;\n PWD_STATE?: number;\n LOCK?: boolean;\n DISPLAY_NAME?: string;\n FAMILY_NAME?: string;\n GIVEN_NAME?: string;\n MIDDLE_NAME?: string;\n DATE_FORMAT?: number;\n DECIMAL_FORMAT?: number;\n TIMEZONE?: string;\n LANGUAGE?: string;\n}\n","import {Component, ElementRef, Inject, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AutofillMonitor} from '@angular/cdk/text-field';\nimport {Message, MessageService} from 'ui-message-angular';\nimport {User} from './user';\nimport {LogonService} from './logon.service';\n\n@Component({\n selector: 'dk-logon',\n templateUrl: './logon.component.html',\n styleUrls: ['./logon.component.css']\n})\nexport class LogonComponent implements OnInit, OnDestroy {\n\n @ViewChild('inputUserID', { read: ElementRef, static: true }) inputUserID: ElementRef;\n @ViewChild('inputPassword', { read: ElementRef, static: true }) inputPassword: ElementRef;\n\n user: User = new User;\n isWaiting = false;\n @Input() title = 'Logon Portal';\n @Input() userLabel = 'User ID';\n @Input() pwdLabel = 'Password';\n @Input() btnLabel = 'Logon';\n @Input() redirectUrl = '';\n @Input() redirectPath = '';\n @Input() host = '';\n\n constructor(@Inject(DOCUMENT)\n private document: any,\n private router: Router,\n private route: ActivatedRoute,\n private autofill: AutofillMonitor,\n private logonService: LogonService,\n private messageService: MessageService) { }\n\n ngOnInit() {\n this.autofill.monitor(this.inputUserID.nativeElement);\n this.autofill.monitor(this.inputPassword.nativeElement);\n if (this.route.snapshot.data['title']) { this.title = this.route.snapshot.data['title']; }\n if (this.route.snapshot.data['userLabel']) { this.userLabel = this.route.snapshot.data['userLabel']; }\n if (this.route.snapshot.data['pwdLabel']) { this.pwdLabel = this.route.snapshot.data['pwdLabel']; }\n if (this.route.snapshot.data['btnLabel']) { this.btnLabel = this.route.snapshot.data['btnLabel']; }\n if (this.route.snapshot.data['redirectUrl']) { this.redirectUrl = this.route.snapshot.data['redirectUrl']; }\n if (this.route.snapshot.data['redirectPath']) { this.redirectPath = this.route.snapshot.data['redirectPath']; }\n if (this.route.snapshot.data['host']) { this.host = this.route.snapshot.data['host']; }\n this.logonService.setHost(this.host);\n }\n\n ngOnDestroy() {\n this.autofill.stopMonitoring(this.inputUserID.nativeElement);\n this.autofill.stopMonitoring(this.inputPassword.nativeElement);\n }\n\n logon(): void {\n this.isWaiting = true;\n this.logonService.logon(this.user.userid, this.user.password).subscribe(\n data => {\n this.isWaiting = false;\n if (!data) { return; }\n if (data.err) {\n if (Array.isArray(data.err)) {\n data.err.forEach( err => this.messageService.add(err));\n } else {\n this.messageService.report(<Message>data.err);\n }\n } else {\n this.user.displayName = data.user['DISPLAY_NAME'];\n this.user.userid = data.user['USER_ID'];\n this.user.username = data.user['USER_NAME'];\n this.user.locked = data.user['LOCK'];\n this.user.pwdState = data.user['PWD_STATE'];\n this.user.name = data.user['GIVEN_NAME'];\n if (this.redirectPath) {\n this.router.navigateByUrl(this.redirectPath);\n } else if (this.redirectUrl) {\n this.document.location.href = this.redirectUrl;\n }\n }\n }\n );\n }\n}\n","<form class=\"dk-form-logon\" (ngSubmit)=\"logon()\">\n <fieldset [disabled]=\"isWaiting\">\n <div class=\"text-center dk-mb-4\">\n <!--<img class=\"mb-4\" src=\"https://getbootstrap.com/assets/brand/bootstrap-solid.svg\" alt=\"\" width=\"72\" height=\"72\">-->\n <h1 class=\"dk-form-title dk-mb-3 font-weight-normal\">{{title}}</h1>\n </div>\n\n <div class=\"dk-message-area\">\n <dk-message></dk-message>\n </div>\n\n <div class=\"dk-form-label-group\">\n <input type=\"text\" id=\"inputUserID\" name=\"inputUserID\" #inputUserID class=\"form-control dk-form-control\"\n [(ngModel)]=\"user.userid\" placeholder=\"User ID\" required=\"\" autofocus=\"\">\n <label for=\"inputUserID\">{{userLabel}}</label>\n </div>\n\n <div class=\"dk-form-label-group\">\n <input type=\"password\" id=\"inputPassword\" name=\"inputPassword\" #inputPassword class=\"form-control dk-form-control\"\n [(ngModel)]=\"user.password\" placeholder=\"Password\" required=\"\">\n <label for=\"inputPassword\">{{pwdLabel}}</label>\n </div>\n\n <button class=\"btn dk-btn-lg btn-primary btn-block\" type=\"submit\">\n <i *ngIf=\"isWaiting\" class=\"fas fa-spinner fa-spin\"></i> {{btnLabel}}\n </button>\n </fieldset>\n</form>\n\n","import { Component, OnInit } from '@angular/core';\nimport {Router} from '@angular/router';\nimport {LogonService} from '../logon.service';\nimport {QueryObject} from '../user';\n\n@Component({\n selector: 'dk-landing-page',\n templateUrl: './landing-page.component.html'\n})\nexport class LandingPageComponent implements OnInit {\n result: any;\n\n constructor(private router: Router,\n private logonService: LogonService) { }\n\n ngOnInit() {\n }\n\n logout(): void {\n this.logonService.logout().subscribe(\n data => {\n this.router.navigateByUrl('');\n }\n );\n }\n\n session(): void {\n this.logonService.session().subscribe(\n data => {\n this.result = data;\n }\n );\n }\n\n query(): void {\n const queryObject = {\n ENTITY_ID: 'person',\n RELATION_ID: 'r_user'\n } as QueryObject;\n this.logonService.query(queryObject).subscribe( data => this.result = data);\n }\n\n read(): void {\n this.logonService.read('2FBE7490E10F11E8A90957FA46F2CECA').subscribe( data => this.result = data);\n }\n}\n","<h4>\n Logon Successfully\n</h4>\n\n<div class=\"btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn dk-btn-lg btn-primary\" (click)=\"logout()\">Logout</button>\n <button type=\"button\" class=\"btn dk-btn-lg btn-primary\" (click)=\"session()\">Get Session</button>\n <button type=\"button\" class=\"btn dk-btn-lg btn-primary\" (click)=\"query()\">Query</button>\n <button type=\"button\" class=\"btn dk-btn-lg btn-primary\" (click)=\"read()\">Read</button>\n</div>\n<div class=\"container\">\n <pre>{{result | json}}</pre>\n</div>\n","import { NgModule } from '@angular/core';\nimport { LogonComponent } from './logon.component';\nimport {CommonModule} from '@angular/common';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {FormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {MessageModule} from 'ui-message-angular';\nimport { LandingPageComponent } from './landing-page/landing-page.component';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserModule,\n FormsModule,\n HttpClientModule,\n MessageModule\n ],\n declarations: [LogonComponent, LandingPageComponent],\n exports: [LogonComponent]\n})\nexport class LogonModule { }\n","/*\n * Public API Surface of logon\n */\n\nexport * from './lib/logon.service';\nexport * from './lib/logon.component';\nexport * from './lib/logon.module';\nexport * from './lib/landing-page/landing-page.component';\nexport * from './lib/user';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1","i3.LogonService","i2.LogonService","i3"],"mappings":"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"}