{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/authentication/authentication.module.ts","webpack:///src/app/authentication/forgetpassword/forgetpassword.component.ts","webpack:///src/app/authentication/forgetpassword/forgetpassword.component.html","webpack:///src/app/authentication/login/login.component.ts","webpack:///src/app/authentication/login/login.component.html","webpack:///src/app/authentication/services/login.service.ts","webpack:///src/app/core/else/config.ts","webpack:///src/app/core/else/encrypt.ts","webpack:///src/app/core/interceptors/jwt.interceptor.ts","webpack:///src/app/core/interceptors/response.interceptor.ts","webpack:///src/app/core/services/message-snack-service.service.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///crypto (ignored)?3f26"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","routes","path","component","loadChildren","m","HomeModule","redirectTo","AppRoutingModule","forRoot","enableTracing","imports","AppComponent","iconRegistry","sanitizer","title","addSvgIcon","bypassSecurityTrustResourceUrl","selector","templateUrl","styleUrls","AppModule","provide","useClass","multi","timeOut","positionClass","declarations","providers","bootstrap","AuthenticationModule","ForgetpasswordComponent","dialogRef","data","dialog","snackService","spinner","loginService","errorMatcher","CustomErrorStateMatcher","hide1","activeStepper","frmSendEmail","required","maxLength","pattern","frmPassword","close","stepper","frm_email","markAsTouched","invalid","open","promise","generatePasswordToken","value","result","msg","message","emailResult","selected","completed","editable","next","get","setErrors","console","log","error","frm_email_code","frm_password","updatePasswordByToken","type","reset","errorComment","onNoClick","control","form","touched","LoginComponent","route","router","hide","encryptation","keyEncrypt","loginForm","userName","userPassword","logout","returnUrl","snapshot","queryParams","i","controls","markAllInvalidsFields","show","login","username","password","user","localStorage","setItem","JSON","stringify","navigate","ref_","width","disableClose","forget","httpOptions","headers","LoginService","http","httpBackend","getLoggedUser","httpWithoutInterceptor","getItem","parse","removeItem","body","encryptParametersWebService","getUserToken_","subscribe","response","result_","desencryptParametersWebService","WSResult","errorHttp","params","post","urlWs","pipe","bit","roles","bit_array","the_bit","split","length","parseInt","bit_","substring","email","generatePasswordToken_","token","updatePasswordByToken_","providedIn","ConfigFile","reportServiceurlWs","idleInSeconds","accessToken","Encryption","key","encryptMethod","aesNumber","match","encryptMethodLength","toString","encryptedString","json","Utf8","Base64","encrypted","ciphertext","salt","Hex","iv","iterations","hasher","SHA256","keySize","decrypted","decrypt","decryptedString","WordArray","random","hashKey","encrypt","mode","CBC","output","parameters","padding","Pkcs7","JwtInterceptor","messageSnack","request","url","includes","currentUser","clone","setHeaders","Authorization","LoginTokenWS","handle","ResponseInterceptor","messageSnackService","ev","_response","err","MessageSnackService","snackBar","actionButtonLabel","horizontalPosition","verticalPosition","state","verticalPosition_","horizontalPosition_","config","duration","panelClass","environment","production","bootstrapModule"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './authentication/login/login.component';\n\nconst routes: Routes = [\n {\n path: 'login', \n component: LoginComponent \n },\n { \n path: 'home',\n loadChildren: () => import('./home/home.module').then(m => m.HomeModule)\n },\n { \n path: '**', \n redirectTo: '/login'\n }\n];\n\n@NgModule({\n //imports: [RouterModule.forRoot(routes)],\n imports: [RouterModule.forRoot(routes, { enableTracing: true })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\n\nexport class AppComponent {\n title = 'angularplatformclient';\n\n constructor( iconRegistry: MatIconRegistry, \n sanitizer: DomSanitizer){\n iconRegistry.addSvgIcon(\n 'odometer',\n sanitizer.bypassSecurityTrustResourceUrl('./assets/icons/odometer.svg'));\n\n iconRegistry.addSvgIcon(\n 'dotted_line',\n sanitizer.bypassSecurityTrustResourceUrl('./assets/icons/dotted-line.svg'));\n\n iconRegistry.addSvgIcon(\n 'dotted_poli',\n sanitizer.bypassSecurityTrustResourceUrl('./assets/icons/mono-14-polygon.svg')); \n\n iconRegistry.addSvgIcon(\n 'report',\n sanitizer.bypassSecurityTrustResourceUrl('./assets/icons/report.svg')); \n }\n\n\n}\n","<ngx-spinner bdColor = \"rgba(0, 0, 0, 0.8)\" size = \"medium\" color = \"#fff\" type = \"square-jelly-box\" [fullScreen] = \"true\"><p style=\"color: white\"> </p></ngx-spinner>\n\n<router-outlet></router-outlet>\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgxSpinnerModule } from \"ngx-spinner\";\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { AuthenticationModule } from './authentication/authentication.module';\nimport { JwtInterceptor } from './core/interceptors/jwt.interceptor';\nimport { ResponseInterceptor } from './core/interceptors/response.interceptor';\nimport { ToastrModule } from 'ngx-toastr';\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll';\n//import { CustomtoastComponent } from './core/customtoast/customtoast.component';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n //CustomtoastComponent\n ],\n imports: [ \n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule, \n NgxSpinnerModule,\n HttpClientModule,\n MatSnackBarModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AuthenticationModule,\n TableVirtualScrollModule,\n ToastrModule.forRoot({\n timeOut: 10000,\n positionClass: 'toast-top-right',\n // toastComponent: CustomtoastComponent\n })\n ],\n /*entryComponents: [\n CustomtoastComponent\n ],*/\n providers: [\n {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\n {provide: HTTP_INTERCEPTORS, useClass: ResponseInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\n\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport { LoginComponent } from './login/login.component';\nimport { CommonModule } from '@angular/common';\n//Angular Material Components\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule} from '@angular/material/icon'\nimport {MatInputModule} from '@angular/material/input'\nimport { MatSelectModule } from '@angular/material/select';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ForgetpasswordComponent } from './forgetpassword/forgetpassword.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport {MatStepperModule} from '@angular/material/stepper';\n\n@NgModule({\n declarations: [LoginComponent, ForgetpasswordComponent],\n imports: \n [ \n CommonModule, \n FormsModule,\n ReactiveFormsModule, \n BrowserAnimationsModule, \n MatInputModule,\n MatButtonModule,\n MatSelectModule,\n MatIconModule,\n MatFormFieldModule,\n MatDialogModule, \n MatStepperModule\n ],\n exports:[\n LoginComponent\n ]\n})\n\nexport class AuthenticationModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Form, FormControl, FormGroup, FormGroupDirective, NgForm, Validators } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatStepper } from '@angular/material/stepper';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { MessageSnackService } from 'src/app/core/services/message-snack-service.service';\nimport { LoginService } from '../services/login.service';\n\n@Component({\n selector: 'app-forgetpassword',\n templateUrl: './forgetpassword.component.html',\n styleUrls: ['./forgetpassword.component.css']\n})\nexport class ForgetpasswordComponent implements OnInit {\n\n frmSendEmail: FormGroup;\n frmPassword: FormGroup;\n\n errorMatcher = new CustomErrorStateMatcher();\n\n hide1: boolean = false;\n activeStepper: string = 'email';\n\n\n constructor(\n public dialogRef: MatDialogRef<ForgetpasswordComponent>,\n @Inject(MAT_DIALOG_DATA) public data,\n private dialog: MatDialog,\n private snackService: MessageSnackService,\n private spinner: NgxSpinnerService,\n public loginService: LoginService\n ) { }\n\n ngOnInit(): void {\n this.frmSendEmail = new FormGroup({\n 'email': new FormControl('', [\n Validators.required,\n Validators.maxLength(50),\n Validators.pattern(/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)\n ])\n });\n\n this.frmPassword = new FormGroup({\n 'email_code': new FormControl('', [\n Validators.required,\n Validators.maxLength(50),\n Validators.pattern(/^[a-zA-Z0-9áéÃóúÑñÃÉÃÓÚäëïöüÄËÃÖÜ\\ \\@\\.\\_\\-\\,\\:\\(\\)\\[\\]]+$/)\n ]),\n 'password': new FormControl('', [\n Validators.required,\n Validators.maxLength(50),\n Validators.pattern(/^[a-zA-Z0-9áéÃóúÑñÃÉÃÓÚäëïöüÄËÃÖÜ\\ \\*\\&\\$\\#\\@\\.\\_\\-\\,\\:\\(\\)\\[\\]]+$/)\n ])\n })\n }\n\n\n onNoClick()\n {\n this.dialogRef.close();\n }\n\n sendEmail(stepper: MatStepper )\n {\n this.frm_email.markAsTouched();\n\n if (this.frmSendEmail.invalid) \n {\n this.snackService.open('Hay errores, verifique!!', 'error');\n }\n else\n {\n const promise = this.loginService.generatePasswordToken( this.frm_email.value );\n promise.then((result: any) => {\n\n var msg = ''; \n if(result.data[0].message == 'ok')\n { \n if(result.emailResult == '0')\n {\n msg = 'Correo válido y le fue enviado el Token para actualizar la contraseña.'\n stepper.selected.completed = true;\n stepper.selected.editable = false;\n stepper.next();\n\n this.activeStepper= 'password';\n }\n else\n {\n msg = 'Correo válido pero se producjo un error al enviarle correo con el Token.'\n }\n\n this.snackService.open(msg, 'success');\n }\n else\n {\n if( result.data[0].message == 'emailnoexists' )\n {\n this.frmSendEmail.get('email').setErrors({'email': true});\n }\n \n msg = 'Se eprodujo algún error, verifique!!!' \n this.snackService.open(msg, 'error');\n console.log( result.data[0].message )\n }\n \n }).catch((error) => {\n console.log(\"sendEmail: \" + error.message);\n this.snackService.open( error.message , 'error');\n });\n }\n\n }\n\n updatePass(stepper: MatStepper)\n {\n this.frm_email_code.markAsTouched();\n this.frm_password.markAsTouched();\n\n if (this.frmPassword.invalid) \n {\n this.snackService.open('Hay errores, verifique!!', 'error');\n }\n else\n {\n const promise = this.loginService.updatePasswordByToken( this.frm_email.value, this.frm_email_code.value, this.frm_password.value );\n promise.then((result: any) => {\n\n var msg = '', type = ''; \n console.log( result );\n switch( result.error )\n {\n case \"0\":\n {\n msg = 'Contraseña actualizada con éxito.';\n type = 'success';\n stepper.selected.completed = true;\n stepper.selected.editable = false;\n stepper.reset();\n\n this.activeStepper= 'email';\n break;\n }\n case \"1\":\n {\n msg = 'Se ha producido un error, verifique!!!';\n type = 'error';\n console.log( result.errorComment )\n break;\n }\n case \"2\":\n {\n msg = 'Se ha producido un error, verifique!!!';\n type = 'error';\n this.frmPassword.get('email_code').setErrors({'notoken': true});\n console.log( result.errorComment )\n break;\n }\n case \"3\":\n {\n msg = 'Se ha producido un error, verifique!!!';\n type = 'error';\n this.frmPassword.get('email_code').setErrors({'morethan5': true});\n console.log( result.errorComment )\n break;\n }\n }\n\n this.snackService.open( msg, type );\n \n }).catch((error) => {\n console.log(\"sendEmail: \" + error.message);\n this.snackService.open( error.message , 'error');\n });\n }\n\n }\n\n get frm_email() { return this.frmSendEmail.get('email'); }\n get frm_email_code() { return this.frmPassword.get('email_code'); }\n get frm_password() { return this.frmPassword.get('password'); }\n\n}\n\n\n\nexport class CustomErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl, form: NgForm | FormGroupDirective | null) {\n return control && control.invalid && control.touched;\n }\n}","<h1 mat-dialog-title class=\"mat-dialog-title\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <h2 style=\"display: inline-block;\">Restaurar Contraseña</h2>\n <div style=\"float: right; margin-top: -4px;\">\n <button mat-icon-button (click)=\"onNoClick()\" matTooltip=\"Cerrar\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</h1>\n<div mat-dialog-content>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <mat-horizontal-stepper linear #stepper style=\"background-color: transparent;\">\n <mat-step [stepControl]=\"frmSendEmail\">\n <div class=\"row\">\n <div class=\"col-md-12\" style=\"padding: 0px;\">\n <form [formGroup]=\"frmSendEmail\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <span style=\"color: red; font-weight: 500;\">Nota:</span> <span>Si no es Usuario principal, por favor, consúltele al mismo para que le sea restablecida su contraseña.</span>\n </div>\n </div>\n <div class=\"row\">\n \n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\n <mat-label>INTRODUZCA CORREO ASOCIADO</mat-label> \n <input matInput type=\"email\" formControlName=\"email\" required [errorStateMatcher]=\"errorMatcher\">\n <mat-error *ngIf=\"frm_email.invalid && (frm_email.dirty || frm_email.touched)\">\n <mat-error *ngIf=\"frm_email.errors.required\">Obligatorio</mat-error>\n <mat-error *ngIf=\"frm_email.errors.pattern\">Correo inválido</mat-error>\n <mat-error *ngIf=\"frm_email.errors.maxlength\">No más de 50 caracteres</mat-error>\n <mat-error *ngIf=\"frm_email.errors.email\">Correo no asociado a Cliente alguno, verifique!!</mat-error>\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n </form>\n </div>\n </div>\n </mat-step>\n <mat-step [stepControl]=\"frmPassword\">\n <form [formGroup]=\"frmPassword\">\n <div class=\"row\">\n <div class=\"col-md-12\" style=\"padding: 0px;\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <span style=\"color: red; font-weight: 500;\">Nota:</span> <span>El Token enviado a su correo tendrá una validez de 5 minutos.</span>\n </div>\n </div>\n <div class=\"row\">\n \n </div>\n <div class=\"row\">\n <div class=\"col-md-12\" >\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\n <mat-label>INTRODUZCA TOKEN ENVIADO A CORREO</mat-label> \n <input matInput type=\"text\" formControlName=\"email_code\" required [errorStateMatcher]=\"errorMatcher\">\n <mat-error *ngIf=\"frm_email_code.invalid && (frm_email_code.dirty || frm_email_code.touched)\">\n <mat-error *ngIf=\"frm_email_code.errors.required\">Obligatorio</mat-error>\n <mat-error *ngIf=\"frm_email_code.errors.pattern\">Caracteres inválidos</mat-error>\n <mat-error *ngIf=\"frm_email_code.errors.maxlength\">No más de 50 caracteres</mat-error>\n <mat-error *ngIf=\"frm_email_code.errors.notoken\">Token no registrado</mat-error>\n <mat-error *ngIf=\"frm_email_code.errors.morethan5\">Token caducado, valido por 5 minutos</mat-error>\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\n <mat-label>INTRODUZCA NUEVA CONTRASEÑA</mat-label> \n <input matInput [type]=\"hide1 ? 'text' : 'password'\" formControlName=\"password\" required [errorStateMatcher]=\"errorMatcher\">\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"hide1 = !hide1\" style=\"font-size: 12px;\">\n <mat-icon style=\"margin-top: 12px;\">{{hide1 ? 'visibility' : 'visibility_off'}}</mat-icon> \n </button>\n <mat-error *ngIf=\"frm_password.invalid && (frm_password.dirty || frm_password.touched)\">\n <mat-error *ngIf=\"frm_password.errors.required\">Obligatorio</mat-error>\n <mat-error *ngIf=\"frm_password.errors.pattern\">Caracteres inválidos</mat-error>\n <mat-error *ngIf=\"frm_password.errors.maxlength\">No más de 50 caracteres</mat-error>\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n </div>\n </div>\n </form>\n </mat-step>\n </mat-horizontal-stepper>\n </div>\n </div>\n</div>\n<div mat-dialog-actions style=\"justify-content: flex-end;\"> \n <button mat-button style=\"width: 100%; background-color: #1666b0;\" (click)=\"sendEmail(stepper)\" *ngIf=\"activeStepper== 'email'\">\n <span style=\"color: #f8f9fa;\">Enviar Código a Correo</span>\n </button>\n <button mat-button style=\"width: 100%; background-color: #1666b0;\" (click)=\"updatePass(stepper)\" *ngIf=\"activeStepper== 'password'\">\n <span style=\"color: #f8f9fa;\">Actualizar Contraseña</span>\n </button>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { User } from '../../core/else/model';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { LoginService } from '../services/login.service';\nimport { MessageSnackService } from '../../core/services/message-snack-service.service';\nimport { Encryption } from 'src/app/core/else/encrypt';\nimport { ConfigFile } from 'src/app/core/else/config';\nimport { ForgetpasswordComponent } from '../forgetpassword/forgetpassword.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n loginForm: FormGroup;\n userName: string;\n userPassword: string\n user: User;\n returnUrl: string;\n hide: boolean = false;\n encryptation = new Encryption(ConfigFile.keyEncrypt);\n\n constructor(\n private loginService: LoginService,\n private snackService: MessageSnackService,\n private route: ActivatedRoute,\n private router: Router,\n private spinner: NgxSpinnerService,\n private dialog: MatDialog,\n ) { }\n\n ngOnInit(): void {\n this.loginForm = new FormGroup({\n 'userName': new FormControl(this.userName, [\n Validators.required,\n Validators.pattern(/^[a-zA-Z0-9\\.\\-\\_@]+$/)\n ]),\n 'userPassword': new FormControl(this.userPassword, [\n Validators.required,\n Validators.pattern(/^[a-zA-Z0-9\\.\\-\\_*$&#@]+$/)\n ])\n });\n\n this.loginService.logout();\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/home';\n\n }\n\n markAllInvalidsFields() {\n for (let i in this.loginForm.controls)\n this.loginForm.controls[i].markAsTouched();\n }\n\n login() {\n\n if (this.loginForm.invalid) {\n this.markAllInvalidsFields();\n\n this.snackService.open('Existen campos inválidos, verifique!!!', 'error');\n return;\n }\n\n this.spinner.show();\n \n const promise = this.loginService.login(this.username.value, this.password.value);\n promise.then((result: any) => {\n\n this.user = result.user; \n\n switch (result.error) \n {\n case \"0\":\n {\n \n localStorage.setItem('currentUser', JSON.stringify(this.user));\n\n\n this.router.navigate( [this.returnUrl] );\n break;\n } \n case \"1\":\n {\n this.snackService.open('Usuario o contraseña inválidos!!!', 'error');\n this.spinner.hide()\n break;\n } \n case \"4\":\n {\n this.snackService.open('Usuario no tiene acceso. Verifique!!!', 'error');\n this.spinner.hide()\n break;\n }\n default:\n {\n this.snackService.open('Error de conexión, verifique!!!', 'error');\n this.spinner.hide()\n } \n }\n }).catch((error) => {\n this.spinner.hide()\n console.log(\"login: \" + error.message);\n this.snackService.open( error.message , 'error');\n });\n }\n\n forget()\n {\n \n const ref_ = this.dialog.open(ForgetpasswordComponent,\n {\n width: '500px',\n disableClose: true,\n });\n \n }\n\n get username() { return this.loginForm.get('userName'); }\n get password() { return this.loginForm.get('userPassword'); }\n}\n","<!DOCTYPE html>\n <html lang=\"en\">\n\n <head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>Nemesis | Acceso</title>\n <meta name=\"description\" content=\"\" />\n <meta name=\"keywords\" content=\"\" />\n\n <link rel=\"shortcut icon\" href=\"assets/login/images/favicon.ico\">\n\n <style>\n #NEM_back {\n position: fixed;\n right: 0;\n bottom: 0;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n\n </head>\n\n <body>\n\n <!-- Hero Start -->\n <section class=\"vh-100\">\n <video autoplay muted loop id=\"NEM_back\">\n <source src=\"assets/login/videos/tracking.mp4\" type=\"video/mp4\">\n </video>\n <div class=\"home-center\">\n <div class=\"home-desc-center\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-lg-4 col-md-6\">\n <div class=\"login-page shadow rounded p-4\" style=\"background-color: rgba(255, 255, 255, 0.5);\">\n <div class=\"text-center\">\n <img style=\"padding-bottom: 20px;\" src=\"assets/login/images/N_White.svg\" width=\"50%\">\n </div>\n <div class=\"text-center\">\n <h1>Acceso</h1>\n </div>\n <form class=\"login-form\" [formGroup]=\"loginForm\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\n <input matInput type=\"text\" formControlName=\"userName\" placeholder=\"USUARIO\"> \n <mat-error *ngIf=\"username.invalid && (username.dirty || username.touched)\">\n <mat-error *ngIf=\"username.errors.required\">Obligatorio</mat-error>\n <mat-error *ngIf=\"username.errors.pattern\">Caracteres inválidos</mat-error>\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <mat-form-field floatLabel=\"always\" appearance=\"outline\" style=\"width: 100%;\">\n <input matInput [type]=\"hide ? 'text' : 'password'\" formControlName=\"userPassword\" placeholder=\"CONTRASEÑA\">\n <button mat-button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"hide = !hide\">\n <mat-icon matSuffix style=\"margin-top: 12px;\">{{hide ? 'visibility' : 'visibility_off'}}</mat-icon> \n </button>\n <mat-error *ngIf=\"password.invalid && (password.dirty || password.touched)\">\n <mat-error *ngIf=\"password.errors.required\">Obligatorio</mat-error>\n <mat-error *ngIf=\"password.errors.pattern\">Caracteres inválidos</mat-error>\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <p class=\"float-left forgot-pass\"><a href=\"javascript:void(0)\" (click)=\"forget()\" style=\"font-weight: 500;\" class=\"text-dark\">¿Olvidó la contraseña?</a></p>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12 mb-0\">\n <button class=\"btn btn-primary w-100\" (click)=\"login()\">Ingresar</button>\n </div>\n </div>\n </form>\n </div><!---->\n </div> <!--end col-->\n </div><!--end row-->\n </div> <!--end container-->\n </div>\n </div>\n </section><!--end section-->\n <!-- Hero End -->\n </body>\n</html>\n","import { Injectable } from '@angular/core';\nimport { HttpBackend, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { map, catchError, timeout } from 'rxjs/operators';\nimport { ConfigFile } from '../../core/else/config';\nimport { throwError as observableThrowError, Observable } from 'rxjs';\nimport { User } from '../../core/else/model';\nimport { Encryption } from '../../core/else/encrypt';\nimport { Router } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\n\nconst httpOptions = {\n headers: new HttpHeaders(\n {\n 'Content-Type': 'application/json; charset=utf-8'\n })\n};\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class LoginService {\n\n user: User;\n private httpWithoutInterceptor: HttpClient;\n\n constructor(private http: HttpClient,\n private router: Router,\n private spinner: NgxSpinnerService,\n private httpBackend: HttpBackend) {\n this.user = this.getLoggedUser();\n this.httpWithoutInterceptor = new HttpClient(httpBackend);\n }\n\n static handleError(error: Response) {\n console.error(error);\n return observableThrowError(error || 'Server error');\n }\n\n getLoggedUser(): User {\n if (!localStorage.getItem('currentUser')) {\n\n this.router.navigate(['/login']);\n\n return null;\n }\n else {\n return (JSON.parse(localStorage.getItem('currentUser')) as User);\n }\n }\n\n logout() {\n this.router.navigate(['/login']);\n localStorage.removeItem('currentUser');\n //localStorage.clear();\n }\n\n login(username: string, password: string) {\n return new Promise<string>(async (result, error) => {\n try {\n\n const encryptation = new Encryption(ConfigFile.keyEncrypt);\n\n const body = {\n 'json': encryptation.encryptParametersWebService({\n 'username': username,\n 'password': password\n })\n }\n\n this.getUserToken_(JSON.stringify(body)).subscribe(\n (response: any) => {\n\n // this.spinner.hide();\n\n const result_ = JSON.parse(encryptation.desencryptParametersWebService(response.WSResult));\n result(result_);\n },\n async (errorHttp) => {\n this.spinner.hide();\n error(errorHttp);\n }\n );\n } catch (e) {\n this.spinner.hide();\n error('Error de Conexión!!');\n }\n });\n }\n\n private getUserToken_(params: any) {\n return this.http\n .post(ConfigFile.urlWs + 'getUserToken', params, httpOptions)\n .pipe(timeout(120000));\n }\n\n hasAuthority(bit: string): boolean {\n const roles = this.getLoggedUser().roles;\n var bit_array: string[], the_bit: number;\n bit_array = bit.split('_');\n the_bit = roles.length - parseInt(bit_array[0]);\n var bit_ = roles.substring(the_bit, (the_bit + 1));\n\n return (parseInt(bit_, 16) & parseInt(bit_array[1])) > 0;\n }\n\n hasAuthorityTheEdited(roles: string, bit: string): boolean {\n var bit_array: string[], the_bit: number;\n bit_array = bit.split('_');\n the_bit = roles.length - parseInt(bit_array[0]);\n var bit_ = roles.substring(the_bit, (the_bit + 1));\n\n return (parseInt(bit_, 16) & parseInt(bit_array[1])) > 0;\n }\n\n generatePasswordToken(email: string) {\n return new Promise<string>(async (result, error) => {\n try {\n\n const encryptation = new Encryption(ConfigFile.keyEncrypt);\n\n const body = {\n 'json': encryptation.encryptParametersWebService({\n 'email': email,\n })\n }\n\n this.spinner.show();\n\n this.generatePasswordToken_(JSON.stringify(body)).subscribe(\n (response: any) => {\n\n this.spinner.hide();\n\n const result_ = JSON.parse(encryptation.desencryptParametersWebService(response.WSResult));\n result(result_);\n },\n async (errorHttp) => {\n this.spinner.hide();\n error(errorHttp);\n }\n );\n } catch (e) {\n this.spinner.hide();\n error('Error de Conexión!!');\n }\n });\n }\n\n private generatePasswordToken_(params: any) {\n return this.httpWithoutInterceptor\n .post(ConfigFile.urlWs + 'generatePasswordToken', params, httpOptions)\n .pipe(timeout(120000));\n }\n\n\n updatePasswordByToken(email: string, token: string, password: string) {\n return new Promise<string>(async (result, error) => {\n try {\n\n const encryptation = new Encryption(ConfigFile.keyEncrypt);\n\n const body = {\n 'json': encryptation.encryptParametersWebService({\n 'email': email,\n 'token': token,\n 'password': password\n })\n }\n\n this.spinner.show();\n\n this.updatePasswordByToken_(JSON.stringify(body)).subscribe(\n (response: any) => {\n\n this.spinner.hide();\n\n const result_ = JSON.parse(encryptation.desencryptParametersWebService(response.WSResult));\n result(result_);\n },\n async (errorHttp) => {\n this.spinner.hide();\n error(errorHttp);\n }\n );\n } catch (e) {\n this.spinner.hide();\n error('Error de Conexión!!');\n }\n });\n }\n\n private updatePasswordByToken_(params: any) {\n return this.httpWithoutInterceptor\n .post(ConfigFile.urlWs + 'updatePasswordByToken', params, httpOptions)\n .pipe(timeout(120000));\n }\n\n\n}\n","export class ConfigFile\r\n{ \r\n //static urlWs = 'http://localhost/wsPlatform/Service1.svc/';\r\n static urlWs = 'http://18.218.104.93/wsPlatformTest/Service1.svc/'; \r\n //static reportServiceurlWs = 'http://localhost:5000/reports/'; \r\n static reportServiceurlWs = 'http://lb-app-21d5f0caa410513e.elb.us-east-2.amazonaws.com:5000/reports/';\r\n static keyEncrypt = 'nydrbZNX0ellYyf5';\r\n static idleInSeconds:number = 300;\r\n static accessToken: string = 'pk.eyJ1IjoicHJvbWFzdGVybmVtZXNpcyIsImEiOiJjbDFtZGJ1OGswZWhwM2ludzhoenpkOTA2In0.ztcdE1IU_LpXKD5_HICwbw'\r\n}\r\n","import * as CryptoJS from 'crypto-js';\n/**\n * Encryption class for encrypt/decrypt that works between programming languages.\n *\n * @author Vee Winch.\n * @link https://stackoverflow.com/questions/41222162/encrypt-in-php-openssl-and-decrypt-in-javascript-cryptojs Reference.\n * @link https://github.com/brix/crypto-js/releases crypto-js.js can be download from here.\n */\nexport class Encryption {\n private key: string;\n\n /**\n * Contructor\n * @param string key of encryptation.\n */\n constructor(key: string) {\n this.key = key;\n }\n\n /**\n * @var integer Return encrypt method or Cipher method number. (128, 192, 256)\n */\n get encryptMethodLength() {\n const encryptMethod = this.encryptMethod;\n // get only number from string.\n // @link https://stackoverflow.com/a/10003709/128761 Reference.\n const aesNumber = encryptMethod.match(/\\d+/)[0];\n return parseInt(aesNumber, 10);\n } // encryptMethodLength\n\n /**\n * @var integer Return cipher method divide by 8. example: AES number 256 will be 256/8 = 32.\n */\n get encryptKeySize() {\n const aesNumber = this.encryptMethodLength;\n return parseInt((aesNumber / 8).toString(), 10);\n } // encryptKeySize\n\n /**\n * @link http://php.net/manual/en/function.openssl-get-cipher-methods.php Refer to available methods in PHP if we are working between JS & PHP encryption.\n * @var string Cipher method.\n * Recommended AES-128-CBC, AES-192-CBC, AES-256-CBC\n * due to there is no `openssl_cipher_iv_length()` function in JavaScript\n * and all of these methods are known as 16 in iv_length.\n */\n get encryptMethod() {\n return 'AES-256-CBC';\n } // encryptMethod\n\n /**\n * Decrypt string.\n *\n * @link https://stackoverflow.com/questions/41222162/encrypt-in-php-openssl-and-decrypt-in-javascript-cryptojs Reference.\n * @link https://stackoverflow.com/questions/25492179/decode-a-base64-string-using-cryptojs Crypto JS base64 encode/decode reference.\n * @param string encryptedString The encrypted string to be decrypt.\n * @return string Return decrypted string.\n */\n decryptGPS(encryptedString: any) {\n const json = JSON.parse(\n CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(encryptedString))\n );\n\n const encrypted = json.ciphertext;\n const salt = CryptoJS.enc.Hex.parse(json.salt);\n const iv = CryptoJS.enc.Hex.parse(json.iv);\n\n let iterations = parseInt(json.iterations, 10);\n if (iterations <= 0) {\n iterations = 5;\n }\n const encryptMethodLength = this.encryptMethodLength / 4; // example: AES number is 256 / 4 = 64\n const key = CryptoJS.PBKDF2(this.key, salt, {\n hasher: CryptoJS.algo.SHA256,\n keySize: encryptMethodLength / 8,\n iterations,\n });\n\n const decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv });\n\n return decrypted.toString(CryptoJS.enc.Utf8);\n } // decrypt\n\n /**\n * Encrypt string.\n *\n * @link https://stackoverflow.com/questions/41222162/encrypt-in-php-openssl-and-decrypt-in-javascript-cryptojs Reference.\n * @link https://stackoverflow.com/questions/25492179/decode-a-base64-string-using-cryptojs Crypto JS base64 encode/decode reference.\n * @param string string The original string to be encrypt.\n * @return string Return encrypted string.\n */\n encryptGPS(decryptedString: any) {\n const iv = CryptoJS.lib.WordArray.random(16); // the reason to be 16, please read on `encryptMethod` property.\n\n const salt = CryptoJS.lib.WordArray.random(16);\n const iterations = 5;\n const encryptMethodLength = this.encryptMethodLength / 4; // example: AES number is 256 / 4 = 64\n const hashKey = CryptoJS.PBKDF2(this.key, salt, {\n hasher: CryptoJS.algo.SHA256,\n keySize: encryptMethodLength / 8,\n iterations,\n });\n\n const encrypted = CryptoJS.AES.encrypt(\n JSON.stringify(decryptedString),\n hashKey,\n {\n mode: CryptoJS.mode.CBC,\n iv,\n }\n );\n const encryptedString = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);\n\n const output = {\n ciphertext: encryptedString,\n iv: CryptoJS.enc.Hex.stringify(iv),\n salt: CryptoJS.enc.Hex.stringify(salt),\n iterations,\n };\n\n return CryptoJS.enc.Base64.stringify(\n CryptoJS.enc.Utf8.parse(JSON.stringify(output))\n );\n } // encrypt\n\n /**\n * Encrypt Parameters string.\n *\n * @param parameters string The original paramters to be encrypt.\n * @return string Return encrypted string.\n */\n encryptParametersWebService(parameters: any) {\n const key = CryptoJS.enc.Utf8.parse(this.key);\n const iv = CryptoJS.enc.Utf8.parse(this.key);\n try {\n const encrypted = CryptoJS.AES.encrypt(\n CryptoJS.enc.Utf8.parse(JSON.stringify(parameters)),\n key,\n {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n }\n );\n\n return encrypted.toString();\n } catch (e) {\n return e.toString();\n }\n }\n\n /**\n * Desencrypt Parameters string.\n *\n * @param encrypt encryptedString The encrypted string to be decrypt.\n * @return string Return encrypted string.\n */\n desencryptParametersWebService(encrypt: any) {\n const key = CryptoJS.enc.Utf8.parse(this.key);\n const iv = CryptoJS.enc.Utf8.parse(this.key);\n\n const decrypted = CryptoJS.AES.decrypt(encrypt, key, {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n });\n\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { MessageSnackService } from '../../core/services/message-snack-service.service';\r\nimport { LoginService } from '../../authentication/services/login.service';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n\r\n constructor(private router: Router,\r\n private loginService: LoginService,\r\n private messageSnack: MessageSnackService) { }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> \r\n {\r\n \r\n // add authorization header with jwt token if available \r\n if ( !request.url.includes('getUserToken') ) \r\n {\r\n let currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n if (currentUser) \r\n {\r\n request = request.clone(\r\n {\r\n setHeaders: \r\n {\r\n Authorization: `${currentUser.LoginTokenWS}`,\r\n 'Content-Type':\t'application/json; charset=utf-8',\r\n 'Cache-Control': 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',\r\n 'Pragma': 'no-cache',\r\n 'Expires': '0' \r\n }\r\n });\r\n }\r\n /*else\r\n {\r\n this.loginService.logout();\r\n this.router.navigate(['/login']);\r\n //this.messageSnack.open('Su sesión expiró !!!!', 'info');\r\n }*/\r\n }\r\n \r\n return next.handle(request);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse, HttpResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, finalize } from 'rxjs/operators';\r\nimport { LoginService } from '../../authentication/services/login.service';\r\nimport { MessageSnackService } from '../../core/services/message-snack-service.service';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Encryption } from '../else/encrypt';\r\nimport { ConfigFile } from '../else/config';\r\n//import { MatDialog } from '@angular/material';\r\n//import { RetypePassDialogComponent } from '../retype-pass-dialog/retype-pass-dialog.component';\r\n\r\n@Injectable()\r\nexport class ResponseInterceptor implements HttpInterceptor \r\n{\r\n url: string = '';\r\n encryptation = new Encryption(ConfigFile.keyEncrypt);\r\n\r\n constructor(private loginService: LoginService,\r\n private messageSnackService: MessageSnackService,\r\n private router: Router,\r\n private spinner: NgxSpinnerService) {}\r\n \r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> \r\n {\r\n return next.handle(req).pipe(\r\n tap((ev: HttpEvent<any>) => \r\n { \r\n \r\n if( ev instanceof HttpResponse )\r\n { \r\n var _response: any; \r\n\r\n if( ev.body )\r\n { \r\n try{\r\n const json = JSON.parse( this.encryptation.desencryptParametersWebService(ev.body.WSResult) ); \r\n _response = json; \r\n } \r\n catch(e) \r\n {\r\n _response = ev.body\r\n }\r\n }\r\n else\r\n {\r\n _response = ev;\r\n }\r\n \r\n if( _response.token === 'invalid' )\r\n {\r\n console.log( _response );\r\n\r\n this.loginService.logout();\r\n this.router.navigate( ['/login'] );\r\n\r\n return throwError( 'Sesión Expirada, ingrese nuevamente!!' );\r\n //this.messageSnackService.open('Sesión Expirada, ingrese nuevamente!!','error');\r\n }\r\n }\r\n }),\r\n catchError(err => \r\n {\r\n if (err instanceof HttpErrorResponse) \r\n {\r\n console.log('Processing http error', err);\r\n }\r\n\r\n console.log( 'INTERCEPTOR' )\r\n console.log( '-------------------------------------------- :' + err.message );\r\n\r\n return throwError(err);\r\n }),\r\n finalize(() => \r\n {}))\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition} from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageSnackService\r\n{ \r\n actionButtonLabel: string = 'x'; \r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top'; \r\n\r\n constructor(public snackBar: MatSnackBar) {}\r\n\r\n open( message: string, state: string, verticalPosition_: MatSnackBarVerticalPosition = 'top', horizontalPosition_: MatSnackBarHorizontalPosition = 'center' )\r\n { \r\n let config = new MatSnackBarConfig(); \r\n config.duration = 10000;\r\n config.horizontalPosition = this.horizontalPosition = horizontalPosition_;\r\n config.verticalPosition = this.verticalPosition = verticalPosition_;\r\n \r\n switch( state )\r\n {\r\n case 'success': config.panelClass = ['green-snackbar']; break;\r\n case 'error': config.panelClass = ['red-snackbar']; break;\r\n default : config.panelClass = ['yellow-snackbar'];\r\n }\r\n \r\n this.snackBar.open(message, this.actionButtonLabel, config);\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */"]}