{"version":3,"sources":["webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.profile.component.ts","webpack:///./src/app/sobre/app.footer.component.ts","webpack:///./src/app/sobre/app.menu.component.ts","webpack:///./src/app/sobre/app.topbar.component.ts","webpack:///./src/app/sobre/inicio.component.ts","webpack:///./src/app/sobre/inicio/componentes/inicio.component.ts","webpack:///./src/app/sobre/inicio/inicio.module.ts","webpack:///./src/app/sobre/inicio/inicio.routing.ts","webpack:///./src/app/sobre/principal.html","webpack:///./src/app/util/componentes/alert/alert.module.ts","webpack:///./src/app/util/componentes/alert/alert.routing.ts","webpack:///./src/app/util/componentes/alert/componentes/alert.component.html","webpack:///./src/app/util/componentes/alert/componentes/alert.component.ts","webpack:///./src/app/util/componentes/dashboardroles/dashboardroles.component.html","webpack:///./src/app/util/componentes/dashboardroles/dashboardroles.component.ts","webpack:///./src/app/util/componentes/impresion/impresion.component.css","webpack:///./src/app/util/componentes/impresion/impresion.component.html","webpack:///./src/app/util/componentes/impresion/impresion.component.ts","webpack:///./src/app/util/core/core.module.ts","webpack:///./src/app/util/directivas/entero.directive.ts","webpack:///./src/app/util/directivas/enteroGuion.directive.ts","webpack:///./src/app/util/directivas/foco.directive.ts","webpack:///./src/app/util/directivas/letras.directive.ts","webpack:///./src/app/util/directivas/mayusculas.directive.ts","webpack:///./src/app/util/directivas/numero/input.handler.ts","webpack:///./src/app/util/directivas/numero/input.manager.ts","webpack:///./src/app/util/directivas/numero/input.service.ts","webpack:///./src/app/util/directivas/numero/numero.directive.ts","webpack:///./src/app/util/directivas/numero/numeroDecimal7.directive.ts","webpack:///./src/app/util/directivas/numero/numeroPositivo.directive.ts","webpack:///./src/app/util/dto/dto.component.ts","webpack:///./src/app/util/pipe/fechaentero.pipe.ts","webpack:///./src/app/util/pipe/fechaenteroformato.ts","webpack:///./src/app/util/pipe/solofecha.pipe.ts","webpack:///./src/app/util/router/app.routing.ts","webpack:///./src/app/util/seguridad/componentes/cambiocontrasenialogin/componentes/cambioContraseniaLogin.component.ts","webpack:///./src/app/util/seguridad/componentes/cambiocontrasenialogin/componentes/cambioContraseniaLogin.html","webpack:///./src/app/util/seguridad/componentes/login/componentes/login.component.css","webpack:///./src/app/util/seguridad/componentes/login/componentes/login.component.html","webpack:///./src/app/util/seguridad/componentes/login/componentes/login.component.ts","webpack:///./src/app/util/seguridad/componentes/login/componentes/reload.component.ts","webpack:///./src/app/util/seguridad/componentes/login/login.module.ts","webpack:///./src/app/util/seguridad/componentes/login/login.routing.ts","webpack:///./src/app/util/seguridad/componentes/olvidocontrasenia/olvidoContrasenia.component.html","webpack:///./src/app/util/seguridad/componentes/olvidocontrasenia/olvidoContrasenia.component.ts","webpack:///./src/app/util/seguridad/componentes/otp/otp.component.html","webpack:///./src/app/util/seguridad/componentes/otp/otp.component.ts","webpack:///./src/app/util/seguridad/componentes/subscripcion/componentes/subscripcion.component.ts","webpack:///./src/app/util/seguridad/componentes/subscripcion/componentes/subscripcion.html","webpack:///./src/app/util/seguridad/componentes/subscripcion/subscripcion.module.ts","webpack:///./src/app/util/seguridad/componentes/subscripcion/subscripcion.routing.ts","webpack:///./src/app/util/seguridad/sesion/localStorageService.ts","webpack:///./src/app/util/servicios/alert.service.ts","webpack:///./src/app/util/servicios/app.service.ts","webpack:///./src/app/util/servicios/dto.servicios.ts","webpack:///./src/app/util/servicios/impresion.service.ts","webpack:///./src/app/util/servicios/socketimpresion.service.ts","webpack:///./src/app/util/servicios/storage.service.ts","webpack:///./src/app/util/servicios/verificaAutorizacion.service.ts","webpack:///./src/app/util/shared/basic.module.ts","webpack:///./src/app/util/shared/componentes/accionesCabecera.component.ts","webpack:///./src/app/util/shared/componentes/accionesCabecera.html","webpack:///./src/app/util/shared/componentes/accionesConsulta.component.ts","webpack:///./src/app/util/shared/componentes/accionesConsulta.html","webpack:///./src/app/util/shared/componentes/accionesDialogo.component.ts","webpack:///./src/app/util/shared/componentes/accionesDialogo.html","webpack:///./src/app/util/shared/componentes/accionesEditar.componente.ts","webpack:///./src/app/util/shared/componentes/accionesEditar.html","webpack:///./src/app/util/shared/componentes/accionesRegistro.component.ts","webpack:///./src/app/util/shared/componentes/accionesRegistro.html","webpack:///./src/app/util/shared/componentes/accionesReporte.component.ts","webpack:///./src/app/util/shared/componentes/accionesReporte.html","webpack:///./src/app/util/shared/componentes/base.component.ts","webpack:///./src/app/util/shared/shared.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["var map = {\n\t\"app/modulos/cartera/certificadoCartera/certificadoCartera.module\": [\n\t\t\"./src/app/modulos/cartera/certificadoCartera/certificadoCartera.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-cartera-certificadoCartera-certificadoCartera-module\"\n\t],\n\t\"app/modulos/cartera/consultaOperacion/consultaOperacion.module\": [\n\t\t\"./src/app/modulos/cartera/consultaOperacion/consultaOperacion.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-cartera-consultaOperacion-consultaOperacion-module\"\n\t],\n\t\"app/modulos/cartera/listadoOperaciones/listadoOperaciones.module\": [\n\t\t\"./src/app/modulos/cartera/listadoOperaciones/listadoOperaciones.module.ts\",\n\t\t\"app-modulos-cartera-listadoOperaciones-listadoOperaciones-module\"\n\t],\n\t\"app/modulos/cartera/simulacionCartera/simulacionCartera.module\": [\n\t\t\"./src/app/modulos/cartera/simulacionCartera/simulacionCartera.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-cartera-simulacionCartera-simulacionCartera-module\"\n\t],\n\t\"app/modulos/cartera/solicitudcapacidadpago/solicitudcapacidadpago.module\": [\n\t\t\"./src/app/modulos/cartera/solicitudcapacidadpago/solicitudcapacidadpago.module.ts\",\n\t\t\"app-modulos-cartera-solicitudcapacidadpago-solicitudcapacidadpago-module\"\n\t],\n\t\"app/modulos/cartera/solicitudes/solicitudes.module\": [\n\t\t\"./src/app/modulos/cartera/solicitudes/solicitudes.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-cartera-solicitudes-solicitudes-module\"\n\t],\n\t\"app/modulos/prestaciones/simulacionPrestaciones/simulacionPrestaciones.module\": [\n\t\t\"./src/app/modulos/prestaciones/simulacionPrestaciones/simulacionPrestaciones.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-prestaciones-simulacionPrestaciones-simulacionPrestaciones-module\"\n\t],\n\t\"app/modulos/seguridad/cambiocontrasenia/cambioContrasenia.module\": [\n\t\t\"./src/app/modulos/seguridad/cambiocontrasenia/cambioContrasenia.module.ts\",\n\t\t\"app-modulos-seguridad-cambiocontrasenia-cambioContrasenia-module\"\n\t],\n\t\"app/modulos/socios/consultaAportes/consultaAportes.module\": [\n\t\t\"./src/app/modulos/socios/consultaAportes/consultaAportes.module.ts\",\n\t\t\"app-modulos-socios-consultaAportes-consultaAportes-module\"\n\t],\n\t\"app/modulos/socios/consultaexpediente/consultaExpediente.module\": [\n\t\t\"./src/app/modulos/socios/consultaexpediente/consultaExpediente.module.ts\",\n\t\t\"app-modulos-socios-consultaexpediente-consultaExpediente-module\"\n\t],\n\t\"app/modulos/socios/informacionGeneral/informacionGeneral.module\": [\n\t\t\"./src/app/modulos/socios/informacionGeneral/informacionGeneral.module.ts\",\n\t\t\"default~app-modulos-cartera-certificadoCartera-certificadoCartera-module~app-modulos-cartera-consult~00722cac\",\n\t\t\"app-modulos-socios-informacionGeneral-informacionGeneral-module\"\n\t],\n\t\"app/modulos/web/inicio/inicio.module\": [\n\t\t\"./src/app/modulos/web/inicio/inicio.module.ts\",\n\t\t\"app-modulos-web-inicio-inicio-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { DashboardrolesComponent } from './util/componentes/dashboardroles/dashboardroles.component';\r\nimport { Component, OnInit, AfterViewInit, ElementRef, Renderer, ViewChild } from '@angular/core';\r\nimport { LoginComponent } from './util/seguridad/componentes/login/componentes/login.component';\r\nimport { CambioContraseniaLoginComponent } from './util/seguridad/componentes/cambiocontrasenialogin/componentes/cambioContraseniaLogin.component';\r\n\r\nimport { MayusculasDirective } from './util/directivas/mayusculas.directive';\r\nimport { DtoServicios } from './util/servicios/dto.servicios';\r\nimport { AppService } from './util/servicios/app.service';\r\nimport { LocalStorageService } from './util/seguridad/sesion/localStorageService';\r\nimport { environment } from 'environments/environment';\r\n\r\nenum MenuOrientation {\r\n STATIC,\r\n OVERLAY,\r\n SLIM,\r\n HORIZONTAL\r\n};\r\n\r\ndeclare var jQuery: any;\r\n// const style = require('./app.component.scss')\r\n@Component({\r\n selector: 'my-app',\r\n templateUrl: 'sobre/principal.html'\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n // Manejo de login \r\n @ViewChild(LoginComponent)\r\n logincomponent: LoginComponent;\r\n\r\n /**Varible de referencia al componente de cambio de password*/\r\n @ViewChild(CambioContraseniaLoginComponent)\r\n cambiocontraseniacomponent: CambioContraseniaLoginComponent;\r\n\r\n // Manejo de utima layoutCompact debe ir en true\r\n layoutCompact: boolean = true;\r\n\r\n layoutMode: MenuOrientation = MenuOrientation.STATIC;\r\n\r\n darkMenu: boolean = false;\r\n\r\n profileMode: string = 'inline';\r\n\r\n rotateMenuButton: boolean;\r\n\r\n topbarMenuActive: boolean;\r\n\r\n overlayMenuActive: boolean;\r\n\r\n staticMenuDesktopInactive: boolean;\r\n\r\n staticMenuMobileActive: boolean;\r\n\r\n rightPanelActive: boolean;\r\n\r\n rightPanelClick: boolean;\r\n\r\n layoutContainer: HTMLDivElement;\r\n\r\n layoutMenuScroller: HTMLDivElement;\r\n\r\n menuClick: boolean;\r\n\r\n topbarItemClick: boolean;\r\n\r\n activeTopbarItem: any;\r\n\r\n resetMenu: boolean;\r\n\r\n menuHoverActive: boolean;\r\n\r\n @ViewChild('layoutContainer') layourContainerViewChild: ElementRef;\r\n\r\n @ViewChild('layoutMenuScroller') layoutMenuScrollerViewChild: ElementRef;\r\n\r\n constructor(public localStorageService: LocalStorageService,public renderer: Renderer, private dtoServicios: DtoServicios, public appService: AppService) { }\r\n\r\n ngOnInit() {\r\n if (environment.production) {\r\n if (location.href.includes(\"http:\")) {\r\n window.location.href = location.href.replace('http', 'https');\r\n }\r\n }\r\n this.appService.login = false;\r\n this.appService.validarotp = this.localStorageService.getItem('validarotp') === 'true';\r\n this.appService.cambiocontraseniacomponent = this.cambiocontraseniacomponent;\r\n\r\n if (this.localStorageService.getItem('mradicacion')) {\r\n this.appService.titulopagina = this.appService.titulopagina + JSON.parse(this.localStorageService.getItem('mradicacion')).np;\r\n }\r\n\r\n\r\n if (this.localStorageService.getItem('c')) {\r\n this.appService.login = true;\r\n const mradicacion = JSON.parse(this.localStorageService.getItem('mradicacion'));\r\n this.inicializarAmbiente(mradicacion);\r\n this.logincomponent.validaCambioPassword(mradicacion);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.layoutContainer = this.layourContainerViewChild.nativeElement;\r\n this.layoutMenuScroller = this.layoutMenuScrollerViewChild.nativeElement;\r\n\r\n setTimeout(() => {\r\n jQuery(this.layoutMenuScroller).nanoScroller({flash: true});\r\n }, 10);\r\n }\r\n\r\n /**Fija datos de respuesta cuando el login es exitoso. */\r\n private inicializarAmbiente(mradicacion: any) {\r\n // cia^suc^ofi^usr^perfil^idioma^canal^ipaddress\r\n let c: string;\r\n const ip = document.domain === 'localhost' ? '127.0.0.1' : document.domain;\r\n // Lista de roles del usuario.\r\n this.appService.llenarRolesUsuario(mradicacion.roles);\r\n\r\n c = mradicacion.cc + '^' + mradicacion.cs + '^' + mradicacion.cag + '^' + mradicacion.cu + '^';\r\n c = c + mradicacion.roles[0].id + '^' + mradicacion.ci + '^' + mradicacion.cca;\r\n this.localStorageService.setItem('c', c);\r\n this.localStorageService.setItem('mradicacion', JSON.stringify(mradicacion));\r\n // delete mradicacion.roles;\r\n\r\n // ejecuta consulta del menu del primer rol\r\n this.appService.consultarMenu();\r\n\r\n // Fija datos de radicacion del usuario en el singleton de servicios.\r\n this.dtoServicios.actualizarRadicacion(mradicacion);\r\n\r\n // Nombre de la persona\r\n this.appService.npersona = mradicacion.np;\r\n }\r\n\r\n onLayoutClick() {\r\n if (!this.topbarItemClick) {\r\n this.activeTopbarItem = null;\r\n this.topbarMenuActive = false;\r\n }\r\n\r\n if (!this.menuClick) {\r\n if (this.isHorizontal() || this.isSlim()) {\r\n this.resetMenu = true;\r\n }\r\n\r\n if (this.overlayMenuActive || this.staticMenuMobileActive) {\r\n this.hideOverlayMenu();\r\n }\r\n\r\n this.menuHoverActive = false;\r\n }\r\n\r\n if (!this.rightPanelClick) {\r\n this.rightPanelActive = false;\r\n }\r\n\r\n this.topbarItemClick = false;\r\n this.menuClick = false;\r\n this.rightPanelClick = false;\r\n }\r\n \r\n onMenuButtonClick(event) {\r\n this.menuClick = true;\r\n this.rotateMenuButton = !this.rotateMenuButton;\r\n this.topbarMenuActive = false;\r\n\r\n if (this.layoutMode === MenuOrientation.OVERLAY) {\r\n this.overlayMenuActive = !this.overlayMenuActive;\r\n }\r\n else {\r\n if (this.isDesktop())\r\n this.staticMenuDesktopInactive = !this.staticMenuDesktopInactive;\r\n else\r\n this.staticMenuMobileActive = !this.staticMenuMobileActive;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n onMenuClick($event) {\r\n this.menuClick = true;\r\n this.resetMenu = false;\r\n\r\n if (!this.isHorizontal()) {\r\n setTimeout(() => {\r\n jQuery(this.layoutMenuScroller).nanoScroller();\r\n }, 500);\r\n }\r\n }\r\n\r\n onTopbarMenuButtonClick(event) {\r\n this.topbarItemClick = true;\r\n this.topbarMenuActive = !this.topbarMenuActive;\r\n\r\n this.hideOverlayMenu();\r\n\r\n event.preventDefault();\r\n }\r\n\r\n onTopbarItemClick(event, item) {\r\n this.topbarItemClick = true;\r\n\r\n if (this.activeTopbarItem === item)\r\n this.activeTopbarItem = null;\r\n else\r\n this.activeTopbarItem = item;\r\n\r\n event.preventDefault();\r\n }\r\n\r\n onRightPanelButtonClick(event) {\r\n this.rightPanelClick = true;\r\n this.rightPanelActive = !this.rightPanelActive;\r\n event.preventDefault();\r\n }\r\n\r\n onRightPanelClick() {\r\n this.rightPanelClick = true;\r\n }\r\n\r\n hideOverlayMenu() {\r\n this.rotateMenuButton = false;\r\n this.overlayMenuActive = false;\r\n this.staticMenuMobileActive = false;\r\n }\r\n\r\n isTablet() {\r\n let width = window.innerWidth;\r\n return width <= 1024 && width > 640;\r\n }\r\n\r\n isDesktop() {\r\n return window.innerWidth > 1024;\r\n }\r\n\r\n isMobile() {\r\n return window.innerWidth <= 640;\r\n }\r\n\r\n isOverlay() {\r\n return this.layoutMode === MenuOrientation.OVERLAY;\r\n }\r\n\r\n isHorizontal() {\r\n return this.layoutMode === MenuOrientation.HORIZONTAL;\r\n }\r\n\r\n isSlim() {\r\n return this.layoutMode === MenuOrientation.SLIM;\r\n }\r\n\r\n changeToStaticMenu() {\r\n this.layoutMode = MenuOrientation.STATIC;\r\n }\r\n\r\n changeToOverlayMenu() {\r\n this.layoutMode = MenuOrientation.OVERLAY;\r\n }\r\n\r\n changeToHorizontalMenu() {\r\n this.layoutMode = MenuOrientation.HORIZONTAL;\r\n }\r\n\r\n changeToSlimMenu() {\r\n this.layoutMode = MenuOrientation.SLIM;\r\n }\r\n\r\n ngOnDestroy() {\r\n jQuery(this.layoutMenuScroller).nanoScroller({flash: true});\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CoreModule } from './util/core/core.module';\r\nimport { BasicModule } from './util/shared/basic.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppMenuComponent, AppSubMenu } from './sobre/app.menu.component';\r\nimport { AppTopBar } from './sobre/app.topbar.component';\r\nimport { AppFooter } from './sobre/app.footer.component';\r\nimport { InlineProfileComponent } from './app.profile.component';\r\nimport { InicioComponent } from './sobre/inicio.component';\r\n\r\nimport { OlvidoContraseniaComponent } from './util/seguridad/componentes/olvidocontrasenia/olvidoContrasenia.component';\r\nimport { CambioContraseniaLoginComponent } from './util/seguridad/componentes/cambiocontrasenialogin/componentes/cambioContraseniaLogin.component';\r\nimport { OtpComponent } from './util/seguridad/componentes/otp/otp.component';\r\n\r\n\r\nimport { routing, appRoutingProviders } from './util/router/app.routing';\r\nimport { AppService } from './util/servicios/app.service';\r\nimport { AlertService } from './util/servicios/alert.service';\r\nimport { AlertModule } from './util/componentes/alert/alert.module';\r\nimport { InicioModule } from './sobre/inicio/inicio.module';\r\nimport { ImpresionComponent } from './util/componentes/impresion/impresion.component';\r\nimport { ImpresionService } from './util/servicios/impresion.service';\r\nimport { SocketimpresionService } from './util/servicios/socketimpresion.service';\r\nimport { VerificaAutorizacionService } from './util/servicios/verificaAutorizacion.service';\r\nimport {GrowlModule} from 'primeng/primeng';\r\nimport {ConfirmDialogModule, ConfirmationService} from 'primeng/primeng';\r\nimport { DashboardrolesComponent } from './util/componentes/dashboardroles/dashboardroles.component';\r\nimport {PasswordModule} from 'primeng/primeng';\r\nimport { LoginModule } from './util/seguridad/componentes/login/login.module';\r\n\r\nimport { LocalStorageService } from './util/seguridad/sesion/localStorageService';\r\nimport { StorageService } from './util/servicios/storage.service';\r\nimport { HmacInterceptor } from './util/interceptor/hmac.interceptor';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';\r\n\r\n\r\n@NgModule({\r\n imports: [BrowserModule, BrowserAnimationsModule,HttpClientModule, CoreModule, BasicModule, routing, GrowlModule, ConfirmDialogModule, InicioModule, \r\n AlertModule, PasswordModule, LoginModule],\r\n declarations: [AppComponent, OlvidoContraseniaComponent ,CambioContraseniaLoginComponent, AppTopBar, AppFooter, AppMenuComponent, AppSubMenu, InlineProfileComponent,\r\n ImpresionComponent, DashboardrolesComponent, OtpComponent, InicioComponent],\r\n providers: [\r\n //{ provide: HTTP_INTERCEPTORS, useClass: HmacInterceptor, multi: true },\r\n \r\n VerificaAutorizacionService, AlertService, ImpresionService, AppService, SocketimpresionService, ConfirmationService,LocalStorageService,StorageService],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n","import {Component, Input, OnInit, EventEmitter, ViewChild, Inject, forwardRef} from '@angular/core';\r\n\r\nimport {MenuItem} from 'primeng/primeng';\r\nimport {AppComponent} from './app.component';\r\n\r\n@Component({\r\n selector: 'inline-profile',\r\n template: `\r\n \r\n\r\n \r\n `,\r\n animations: [\r\n ]\r\n})\r\nexport class InlineProfileComponent {\r\n\r\n active: boolean;\r\n\r\n onClick(event : any) {\r\n this.active = !this.active;\r\n event.preventDefault();\r\n }\r\n}","import { Component, Inject, forwardRef } from '@angular/core';\r\nimport { AppComponent } from '../app.component';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n template: `\r\n
\r\n
\r\n Core SIAC\r\n Asistecooper S.A.
All Rights Reserved
\r\n
\r\n
\r\n `\r\n})\r\nexport class AppFooter {\r\n\r\n}","import {Component, Input, OnInit, EventEmitter, ViewChild, Inject, forwardRef} from '@angular/core';\r\nimport {trigger, state, style, transition, animate} from '@angular/animations';\r\nimport {Location} from '@angular/common';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {MenuModule, MenuItem} from 'primeng/primeng';\r\nimport {AppComponent} from '../app.component';\r\nimport {AppService} from '../util/servicios/app.service';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n template: `\r\n `\r\n})\r\nexport class AppMenuComponent implements OnInit {\r\n\r\n @Input() reset: boolean;\r\n\r\n model: MenuItem[];\r\n\r\n constructor( @Inject(forwardRef(() => AppComponent)) public app: AppComponent, private router: Router, public appService: AppService) {}\r\n\r\n ngOnInit() {\r\n this.model = [];\r\n }\r\n\r\n\r\n changeTheme(theme: any) {\r\n let themeLink: HTMLLinkElement = document.getElementById('theme-css');\r\n let layoutLink: HTMLLinkElement = document.getElementById('layout-css');\r\n\r\n themeLink.href = 'src/resources/theme/theme-' + theme + '.css';\r\n layoutLink.href = 'src/resources/layout/css/layout-' + theme + '.css';\r\n }\r\n\r\n\r\n}\r\n\r\n@Component({\r\n selector: '[app-submenu]',\r\n template: `\r\n \r\n
  • \r\n \r\n {{child.icon}}\r\n {{child.label}}\r\n {{child.badge}}\r\n keyboard_arrow_down\r\n \r\n \r\n \r\n {{child.icon}}\r\n {{child.label}}\r\n {{child.badge}}\r\n keyboard_arrow_down\r\n \r\n
    \r\n
    \r\n
    {{child.label}}
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n `,\r\n animations: [\r\n trigger('children', [\r\n state('hiddenAnimated', style({\r\n height: '0px'\r\n })),\r\n state('visibleAnimated', style({\r\n height: '*'\r\n })),\r\n state('visible', style({\r\n height: '*'\r\n })),\r\n state('hidden', style({\r\n height: '0px'\r\n })),\r\n transition('visibleAnimated => hiddenAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\r\n transition('hiddenAnimated => visibleAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n ])\r\n ]\r\n})\r\nexport class AppSubMenu {\r\n\r\n @Input() item: MenuItem;\r\n\r\n @Input() root: boolean;\r\n\r\n @Input() visible: boolean;\r\n\r\n _reset: boolean;\r\n\r\n activeIndex: number;\r\n\r\n constructor(public localStorageService: LocalStorageService,@Inject(forwardRef(() => AppComponent)) public app: AppComponent, public router: Router, public location: Location) {}\r\n\r\n itemClick(event: Event, item: MenuItem, index: number) {\r\n if (this.root) {\r\n this.app.menuHoverActive = !this.app.menuHoverActive;\r\n }\r\n\r\n // avoid processing disabled items\r\n if (item.disabled) {\r\n event.preventDefault();\r\n return true;\r\n }\r\n\r\n // activate current item and deactivate active sibling if any\r\n this.activeIndex = (this.activeIndex === index) ? null : index;\r\n\r\n // execute command\r\n if (item.command) {\r\n let command = (event) => this.cargarPagina(item.command); // Flipbean\r\n if (!item['eventEmitter']) {\r\n item['eventEmitter'] = new EventEmitter();\r\n item['eventEmitter'].subscribe(command);\r\n }\r\n\r\n item['eventEmitter'].emit({\r\n originalEvent: event,\r\n item: item\r\n });\r\n // item.command({originalEvent: event, item: item});\r\n }\r\n\r\n\r\n // prevent hash change\r\n if (item.items || (!item.url && !item.routerLink)) {\r\n event.preventDefault();\r\n }\r\n\r\n // hide menu\r\n if (!item.items) {\r\n if (this.app.isHorizontal() || this.app.isSlim())\r\n this.app.resetMenu = true;\r\n else\r\n this.app.resetMenu = false;\r\n\r\n this.app.overlayMenuActive = false;\r\n this.app.staticMenuMobileActive = false;\r\n this.app.menuHoverActive = !this.app.menuHoverActive;\r\n }\r\n }\r\n\r\n onMouseEnter(index: number) {\r\n if (this.root && this.app.menuHoverActive && (this.app.isHorizontal() || this.app.isSlim())) {\r\n this.activeIndex = index;\r\n }\r\n }\r\n\r\n // Inicio Flipbean\r\n /**Metodo que se encsrga de cargar una pagina*/\r\n cargarPagina(opciones: any) {\r\n // routerLink: ['/modulo'],\r\n this.localStorageService.setItem('m', opciones.mod);\r\n this.localStorageService.setItem('t', opciones.tran);\r\n this.localStorageService.setItem('titulo', opciones.tit);\r\n this.localStorageService.setItem('ins', opciones.cre);\r\n this.localStorageService.setItem('upd', opciones.edi);\r\n this.localStorageService.setItem('del', opciones.eli);\r\n this.localStorageService.setItem('ac', opciones.ac);\r\n this.localStorageService.setItem('path', opciones.path);\r\n this.router.navigate([opciones.path], {skipLocationChange: true});\r\n this.app.appService.titulopagina = opciones.tit;\r\n }\r\n // Fin Flipbean\r\n\r\n isActive(index: number): boolean {\r\n return this.activeIndex === index;\r\n }\r\n\r\n @Input() get reset(): boolean {\r\n return this._reset;\r\n }\r\n\r\n set reset(val: boolean) {\r\n this._reset = val;\r\n\r\n if (this._reset && (this.app.isHorizontal() ||  this.app.isSlim())) {\r\n this.activeIndex = null;\r\n }\r\n }\r\n}","import { Component, Inject, forwardRef, ViewChild } from '@angular/core';\r\nimport { AppComponent } from '../app.component';\r\nimport { LoginComponent } from '../util/seguridad/componentes/login/componentes/login.component';\r\nimport { AppService } from '../util/servicios/app.service';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-topbar',\r\n template: `\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n `\r\n})\r\nexport class AppTopBar {\r\n @ViewChild(LoginComponent)\r\n logincomponent: LoginComponent;\r\n\r\n constructor( @Inject(forwardRef(() => AppComponent)) public app: AppComponent, public appService: AppService) { }\r\n nombre:any=environment.fondo;\r\n public integerToFormatoFecha(valor: number): string {\r\n // ejemplo yyyyMMdd 20170131 31 de enero del 2017\r\n const anio = valor.toString().substring(0, 4);\r\n const mes = valor.toString().substring(4, 6);\r\n const dia = valor.toString().substring(6, 8);\r\n const fecha = anio + '-' + mes + '-' + dia;\r\n return fecha;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-inicio',\r\n template: `

      Bienvenido

      `\r\n})\r\nexport class InicioComponent {\r\n\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-inicio',\r\n template: ``\r\n})\r\nexport class InicioComponent implements OnInit {\r\n\r\n constructor(public localStorageService: LocalStorageService,public router: Router) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.localStorageService.getItem('path') !== undefined && this.localStorageService.getItem('path') !== null) {\r\n this.router.navigate([this.localStorageService.getItem('path')], { skipLocationChange: true });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { InicioRoutingModule } from './inicio.routing';\r\n\r\nimport { InicioComponent } from './componentes/inicio.component';\r\n\r\n\r\n@NgModule({\r\n imports: [InicioRoutingModule ],\r\n declarations: [InicioComponent]\r\n})\r\nexport class InicioModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { InicioComponent } from './componentes/inicio.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: InicioComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class InicioRoutingModule {}\r\n","module.exports = \"
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      INGRESE LA CLAVE DE SEGURIDAD ENVIADA A SU MAIL

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      RECUPERACIÓN DE CONTRASEÑA

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      CAMBIO DE CONTRASEÑA DEL USUARIO

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{logincomponent.appService.titulopagina}}

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \"","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../../util/shared/shared.module';\r\nimport { AlertRoutingModule } from './alert.routing';\r\n\r\nimport { AlertComponent } from './componentes/alert.component';\r\nimport {GrowlModule} from 'primeng/primeng';\r\n\r\n\r\n@NgModule({\r\n imports: [SharedModule, AlertRoutingModule, GrowlModule],\r\n declarations: [AlertComponent],\r\n exports: [AlertComponent],\r\n\r\n})\r\nexport class AlertModule { }\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AlertComponent } from './componentes/alert.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '', component: AlertComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AlertRoutingModule {}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      {{muestraAlerta.msg}}
      \\r\\n\\t
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      {{muestraAlerta.msg}}
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\tdashboard\\r\\n\\t\\t\\t\\t{{item.label}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \"","import { Component, OnInit } from '@angular/core';\r\nimport { AlertService } from '../../../servicios/alert.service';\r\nimport { DtoServicios } from '../../../servicios/dto.servicios';\r\nimport { AppService } from '../../../servicios/app.service';\r\nimport {Message} from 'primeng/primeng';\r\n\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html'\r\n})\r\nexport class AlertComponent implements OnInit {\r\n msgs: Message[];\r\n msgsglow: Message[];\r\n muestraAlerta = {mostrar: false, mostrarlogout: false, msg: ''};\r\n\r\n constructor(private alertService: AlertService, public dtoServicios: DtoServicios, public appService: AppService) { }\r\n\r\n ngOnInit() {\r\n this.alertService.obtenerMensaje().subscribe(messages => {\r\n this.msgs = messages;\r\n if (messages !== undefined) {\r\n this.msgsglow = JSON.parse(JSON.stringify(messages));\r\n }\r\n });\r\n\r\n this.alertService.obtenerMuestraAlerta().subscribe(ma => {\r\n this.muestraAlerta = ma;\r\n });\r\n }\r\n\r\n recargar() {\r\n location.reload();\r\n }\r\n\r\n public integerToFormatoFecha(valor: number): string {\r\n // ejemplo yyyyMMdd 20170131 31 de enero del 2017\r\n const anio = valor.toString().substring(0, 4);\r\n const mes = valor.toString().substring(4, 6);\r\n const dia = valor.toString().substring(6, 8);\r\n const fecha = anio + '-' + mes + '-' + dia;\r\n return fecha;\r\n }\r\n}\r\n","module.exports = \"

      \\r\\n dashboardroles works!\\r\\n

      \\r\\n\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboardroles',\r\n templateUrl: './dashboardroles.component.html'\r\n})\r\nexport class DashboardrolesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n\\t\\r\\n\\t
      \\r\\n
      Estado servidor:
      \\r\\n
      {{servidorconectado}}
      \\r\\n
      \\r\\n
      \\r\\n
      Ultimo mensaje:
      \\r\\n
      {{ultimomsgservidor}}
      \\r\\n
      \\r\\n
      \\r\\n\"","import { ImpresionService } from '../../servicios/impresion.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport {DialogModule} from 'primeng/primeng';\r\n\r\n@Component({\r\n selector: 'app-impresion',\r\n templateUrl: './impresion.component.html',\r\n styleUrls: ['./impresion.component.css']\r\n})\r\nexport class ImpresionComponent implements OnInit {\r\n servidorconectado: boolean = false;\r\n ultimomsgservidor: any;\r\n display: boolean = false;\r\n\r\n constructor(private impresionService: ImpresionService) { }\r\n\r\n ngOnInit() {\r\n this.impresionService.obtenerObservable().subscribe(ultimomsg =>\r\n { this.ultimomsgservidor = ultimomsg; this.servidorconectado = this.impresionService.servidorconectado; });\r\n }\r\n\r\n conectarServidorImpresion(): void{\r\n this.impresionService.conectarServidorImpresion();\r\n }\r\n\r\n mostrarDialogo() {\r\n this.display = true;\r\n }\r\n}\r\n","/* tslint:disable:member-ordering no-unused-variable */\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpModule } from '@angular/http';\r\n\r\nimport { DtoServicios } from '../servicios/dto.servicios';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [],\r\n exports: [CommonModule, HttpModule],\r\n providers: [DtoServicios]\r\n})\r\nexport class CoreModule {\r\n\r\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'CoreModule ya esta cargado. Import en AppModule solamente');\r\n }\r\n }\r\n}","import { Directive, Output, EventEmitter, Attribute, ElementRef } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngModel][entero]',\r\n host: {\r\n '(keyup)': 'onKeyup($event)'\r\n }\r\n})\r\n\r\n// npm i ng2-currency-mask esta es la directiva original.\r\nexport class EnteroDirective {\r\n @Output() ngModelChange: EventEmitter = new EventEmitter()\r\n value: any;\r\n\r\n optionsTemplate = {\r\n align: 'right'\r\n };\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.style.textAlign = this.optionsTemplate.align;\r\n }\r\n\r\n onKeyup($event: any) {\r\n this.value = $event.target.value;\r\n if (this.value) {\r\n this.value = this.value.replace(/[^0-9]/g, '');\r\n }\r\n this.ngModelChange.emit(this.value);\r\n }\r\n}","import { Directive, Output, EventEmitter, Attribute, ElementRef } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngModel][enteroGuion]',\r\n host: {\r\n '(keyup)': 'onKeyup($event)'\r\n }\r\n})\r\n\r\n// npm i ng2-currency-mask esta es la directiva original.\r\nexport class EnteroGuionDirective {\r\n @Output() ngModelChange: EventEmitter = new EventEmitter()\r\n value: any;\r\n\r\n optionsTemplate = {\r\n align: 'right'\r\n };\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.style.textAlign = this.optionsTemplate.align;\r\n }\r\n\r\n onKeyup($event: any) {\r\n this.value = $event.target.value;\r\n if (this.value) {\r\n this.value = this.value.replace(/[^0-9 -]/g, '');\r\n }\r\n this.ngModelChange.emit(this.value);\r\n }\r\n}","import {Directive, AfterViewInit, ElementRef, DoCheck} from '@angular/core';\r\n\r\n@Directive({ selector: '[autofoco]' })\r\nexport class FocoDirective implements AfterViewInit, DoCheck {\r\n private lastVisible: boolean = false;\r\n private initialised: boolean = false;\r\n constructor(private el: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n this.initialised = true;\r\n this.ngDoCheck();\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this.initialised) { return; }\r\n const visible = !!this.el.nativeElement.offsetParent;\r\n if (visible && !this.lastVisible) {\r\n setTimeout(() => { this.el.nativeElement.focus(); }, 1);\r\n }\r\n this.lastVisible = visible;\r\n }\r\n}\r\n\r\n","import { Directive, Output, EventEmitter, Attribute, ElementRef } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngModel][letras]',\r\n host: {\r\n '(keyup)': 'onKeyup($event)'\r\n }\r\n})\r\n\r\n// npm i ng2-currency-mask esta es la directiva original.\r\nexport class LetrasDirective {\r\n @Output() ngModelChange: EventEmitter = new EventEmitter()\r\n value: any;\r\n\r\n constructor(private elementRef: ElementRef) {\r\n }\r\n\r\n onKeyup($event: any) {\r\n this.value = $event.target.value;\r\n if (this.value) {\r\n this.value = this.value.replace(/[^a-zA-ZñÑáéíóúÁÉÍÓÚ\\s]/g, \"\");\r\n }\r\n this.ngModelChange.emit(this.value.toUpperCase());\r\n }\r\n}\r\n","import {Directive, Output, EventEmitter} from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngModel][mayusculas]',\r\n host: {\r\n \"(input)\": 'onInputChange($event)'\r\n }\r\n})\r\nexport class MayusculasDirective {\r\n @Output() ngModelChange: EventEmitter = new EventEmitter()\r\n value: string;\r\n\r\n onInputChange($event: any) {\r\n this.value = $event.target.value.toUpperCase()\r\n this.ngModelChange.emit(this.value)\r\n }\r\n}","import { InputService } from \"./input.service\";\r\n\r\nexport class InputHandler {\r\n\r\n private inputService: InputService;\r\n private onModelChange: Function;\r\n private onModelTouched: Function;\r\n\r\n constructor(htmlInputElement: HTMLInputElement, options: any) {\r\n this.inputService = new InputService(htmlInputElement, options);\r\n }\r\n\r\n handleClick(event: any): void {\r\n this.inputService.resetSelection();\r\n }\r\n\r\n handleCut(event: any): void {\r\n setTimeout(() => {\r\n this.inputService.updateFieldValue();\r\n this.onModelChange(this.inputService.value);\r\n }, 1);\r\n }\r\n\r\n handleInput(event: any): void {\r\n let keyCode = this.inputService.rawValue.charCodeAt(this.inputService.rawValue.length - 1);\r\n let rawValueLength = this.inputService.rawValue.length;\r\n let rawValueSelectionStart = this.inputService.inputSelection.selectionStart;\r\n let storedRawValueLength = this.inputService.storedRawValue.length;\r\n this.inputService.rawValue = this.inputService.storedRawValue;\r\n\r\n if (rawValueLength !== rawValueSelectionStart || Math.abs(rawValueLength - storedRawValueLength) !== 1) {\r\n return;\r\n }\r\n\r\n if (rawValueLength < storedRawValueLength) {\r\n this.inputService.removeNumber(8);\r\n }\r\n\r\n if (rawValueLength > storedRawValueLength) {\r\n switch (keyCode) {\r\n case 43:\r\n this.inputService.changeToPositive();\r\n break;\r\n case 45:\r\n this.inputService.changeToNegative();\r\n break;\r\n default:\r\n if (!this.inputService.canInputMoreNumbers) {\r\n return;\r\n }\r\n\r\n this.inputService.addNumber(keyCode);\r\n }\r\n }\r\n\r\n this.onModelChange(this.inputService.value);\r\n }\r\n\r\n handleKeydown(event: any): void {\r\n let keyCode = event.which || event.charCode || event.keyCode;\r\n\r\n if (keyCode === undefined) {\r\n return;\r\n }\r\n\r\n if (keyCode === 8 || keyCode === 46 || keyCode === 63272) {\r\n event.preventDefault();\r\n this.inputService.removeNumber(keyCode);\r\n this.onModelChange(this.inputService.value);\r\n }\r\n }\r\n\r\n handleKeypress(event: any): void {\r\n let keyCode = event.which || event.charCode || event.keyCode;\r\n\r\n switch (keyCode) {\r\n case undefined:\r\n return;\r\n case 43:\r\n this.inputService.changeToPositive();\r\n break;\r\n case 45:\r\n this.inputService.changeToNegative();\r\n break;\r\n default:\r\n if (!this.inputService.canInputMoreNumbers) {\r\n return;\r\n }\r\n\r\n this.inputService.addNumber(keyCode);\r\n }\r\n\r\n event.preventDefault();\r\n this.onModelChange(this.inputService.value);\r\n }\r\n\r\n handlePaste(event: any): void {\r\n setTimeout(() => {\r\n this.inputService.updateFieldValue();\r\n this.onModelChange(this.inputService.value);\r\n }, 1);\r\n }\r\n\r\n updateOptions(options: any): void {\r\n this.inputService.updateOptions(options);\r\n }\r\n\r\n getOnModelChange(): Function {\r\n return this.onModelChange;\r\n }\r\n\r\n setOnModelChange(callbackFunction: Function): void {\r\n this.onModelChange = callbackFunction;\r\n }\r\n\r\n getOnModelTouched(): Function {\r\n return this.onModelTouched;\r\n }\r\n\r\n setOnModelTouched(callbackFunction: Function) {\r\n this.onModelTouched = callbackFunction;\r\n }\r\n\r\n setValue(value: number): void {\r\n this.inputService.value = value;\r\n }\r\n}","export class InputManager {\r\n\r\n private _storedRawValue: string;\r\n\r\n constructor(private htmlInputElement: any) {\r\n }\r\n\r\n setCursorAt(position: number): void {\r\n if (this.htmlInputElement.setSelectionRange) {\r\n this.htmlInputElement.focus();\r\n this.htmlInputElement.setSelectionRange(position, position);\r\n } else if (this.htmlInputElement.createTextRange) {\r\n let textRange = this.htmlInputElement.createTextRange();\r\n textRange.collapse(true);\r\n textRange.moveEnd(\"character\", position);\r\n textRange.moveStart(\"character\", position);\r\n textRange.select();\r\n }\r\n }\r\n\r\n updateValueAndCursor(newRawValue: string, oldLength: number, selectionStart: number): void {\r\n this.rawValue = newRawValue;\r\n let newLength = newRawValue.length;\r\n selectionStart = selectionStart - (oldLength - newLength);\r\n this.setCursorAt(selectionStart);\r\n }\r\n\r\n get canInputMoreNumbers(): boolean {\r\n let haventReachedMaxLength = !(this.rawValue.length >= this.htmlInputElement.maxLength && this.htmlInputElement.maxLength >= 0);\r\n let selectionStart = this.inputSelection.selectionStart;\r\n let selectionEnd = this.inputSelection.selectionEnd;\r\n let haveNumberSelected = (selectionStart !== selectionEnd && this.htmlInputElement.value.substring(selectionStart, selectionEnd).match(/\\d/)) ? true : false;\r\n let startWithZero = (this.htmlInputElement.value.substring(0, 1) == \"0\");\r\n return haventReachedMaxLength || haveNumberSelected || startWithZero;\r\n }\r\n\r\n get inputSelection(): any {\r\n let selectionStart = 0;\r\n let selectionEnd = 0;\r\n\r\n if (typeof this.htmlInputElement.selectionStart == \"number\" && typeof this.htmlInputElement.selectionEnd == \"number\") {\r\n selectionStart = this.htmlInputElement.selectionStart;\r\n selectionEnd = this.htmlInputElement.selectionEnd;\r\n } else {\r\n let range = (document).selection.createRange();\r\n\r\n if (range && range.parentElement() == this.htmlInputElement) {\r\n let lenght = this.htmlInputElement.value.length;\r\n let normalizedValue = this.htmlInputElement.value.replace(/\\r\\n/g, \"\\n\");\r\n let startRange = this.htmlInputElement.createTextRange();\r\n startRange.moveToBookmark(range.getBookmark());\r\n let endRange = this.htmlInputElement.createTextRange();\r\n endRange.collapse(false);\r\n\r\n if (startRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\r\n selectionStart = selectionEnd = lenght;\r\n } else {\r\n selectionStart = -startRange.moveStart(\"character\", -lenght);\r\n selectionStart += normalizedValue.slice(0, selectionStart).split(\"\\n\").length - 1;\r\n\r\n if (startRange.compareEndPoints(\"EndToEnd\", endRange) > -1) {\r\n selectionEnd = lenght;\r\n } else {\r\n selectionEnd = -startRange.moveEnd(\"character\", -lenght);\r\n selectionEnd += normalizedValue.slice(0, selectionEnd).split(\"\\n\").length - 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n selectionStart: selectionStart,\r\n selectionEnd: selectionEnd\r\n };\r\n }\r\n\r\n get rawValue(): string {\r\n return this.htmlInputElement && this.htmlInputElement.value;\r\n }\r\n\r\n set rawValue(value: string) {\r\n this._storedRawValue = value;\r\n\r\n if (this.htmlInputElement) {\r\n this.htmlInputElement.value = value;\r\n }\r\n }\r\n\r\n get storedRawValue(): string {\r\n return this._storedRawValue;\r\n }\r\n}","import { InputManager } from \"./input.manager\";\r\n\r\nexport class InputService {\r\n\r\n private inputManager: InputManager;\r\n\r\n constructor(private htmlInputElement: any, private options: any) {\r\n this.inputManager = new InputManager(htmlInputElement);\r\n }\r\n\r\n addNumber(keyCode: number): void {\r\n let keyChar = String.fromCharCode(keyCode);\r\n let selectionStart = this.inputSelection.selectionStart;\r\n let selectionEnd = this.inputSelection.selectionEnd;\r\n this.rawValue = this.rawValue.substring(0, selectionStart) + keyChar + this.rawValue.substring(selectionEnd, this.rawValue.length);\r\n this.updateFieldValue(selectionStart + 1);\r\n }\r\n\r\n public applyMask(isNumber: boolean, rawValue: string): string {\r\n let {allowNegative, precision, thousands, decimal} = this.options;\r\n rawValue = isNumber ? new Number(rawValue).toFixed(precision) : rawValue; \r\n let onlyNumbers = rawValue.replace(/[^0-9]/g, \"\");\r\n let integerPart = onlyNumbers.slice(0, onlyNumbers.length - precision).replace(/^0*/g, \"\").replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousands);\r\n\r\n if (integerPart == \"\") {\r\n integerPart = \"0\";\r\n }\r\n\r\n let newRawValue = integerPart;\r\n let decimalPart = onlyNumbers.slice(onlyNumbers.length - precision);\r\n\r\n if (precision > 0) {\r\n newRawValue += decimal + decimalPart;\r\n }\r\n\r\n let isZero = parseInt(integerPart) == 0 && (parseInt(decimalPart) == 0 || decimalPart == \"\");\r\n let operator = (rawValue.indexOf(\"-\") > -1 && allowNegative && !isZero) ? \"-\" : \"\";\r\n return operator + this.options.prefix + newRawValue;\r\n }\r\n\r\n clearMask(rawValue: string): number {\r\n let value = (rawValue || \"0\").replace(this.options.prefix, \"\");\r\n\r\n if (this.options.thousands) {\r\n value = value.replace(new RegExp(\"\\\\\" + this.options.thousands, \"g\"), \"\");\r\n }\r\n\r\n if (this.options.decimal) {\r\n value = value.replace(this.options.decimal, \".\");\r\n }\r\n \r\n return parseFloat(value);\r\n }\r\n\r\n changeToNegative(): void {\r\n if (this.options.allowNegative && this.rawValue !== \"\" && this.rawValue.charAt(0) !== \"-\" && this.value !== 0) {\r\n this.rawValue = \"-\" + this.rawValue; \r\n }\r\n }\r\n\r\n changeToPositive(): void {\r\n this.rawValue = this.rawValue.replace(\"-\", \"\");\r\n }\r\n\r\n removeNumber(keyCode: number): void {\r\n let selectionStart = this.inputSelection.selectionStart;\r\n let selectionEnd = this.inputSelection.selectionEnd;\r\n\r\n if (selectionStart == selectionEnd) {\r\n if (keyCode === 8) {\r\n let lastNumber = this.rawValue.split(\"\").reverse().join(\"\").search(/\\d/);\r\n selectionStart = this.rawValue.length - lastNumber - 1;\r\n selectionEnd = selectionStart + 1;\r\n } else {\r\n selectionEnd += 1;\r\n }\r\n }\r\n\r\n this.rawValue = this.rawValue.substring(0, selectionStart) + this.rawValue.substring(selectionEnd, this.rawValue.length);\r\n this.updateFieldValue(selectionStart);\r\n }\r\n\r\n resetSelection(): void {\r\n if (this.htmlInputElement.setSelectionRange) {\r\n this.htmlInputElement.setSelectionRange(this.rawValue.length, this.rawValue.length);\r\n }\r\n }\r\n\r\n updateFieldValue(selectionStart?: number): void {\r\n let newRawValue = this.applyMask(false, this.rawValue || \"\");\r\n selectionStart = selectionStart == undefined ? this.rawValue.length : selectionStart;\r\n this.inputManager.updateValueAndCursor(newRawValue, this.rawValue.length, selectionStart);\r\n }\r\n\r\n updateOptions(options: any): void {\r\n let value: number = this.value;\r\n this.options = options;\r\n this.value = value;\r\n }\r\n\r\n get canInputMoreNumbers(): boolean {\r\n return this.inputManager.canInputMoreNumbers;\r\n }\r\n\r\n get inputSelection(): any {\r\n return this.inputManager.inputSelection;\r\n }\r\n\r\n get rawValue(): string {\r\n return this.inputManager.rawValue;\r\n }\r\n\r\n set rawValue(value: string) {\r\n this.inputManager.rawValue = value;\r\n }\r\n\r\n get storedRawValue(): string {\r\n return this.inputManager.storedRawValue;\r\n }\r\n\r\n get value(): number {\r\n return this.clearMask(this.rawValue);\r\n }\r\n\r\n set value(value: number) {\r\n this.rawValue = this.applyMask(true, \"\" + value);\r\n }\r\n}","import { AfterViewInit, Directive, DoCheck, ElementRef, forwardRef, HostListener, KeyValueDiffer, KeyValueDiffers, Input, OnInit } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nimport { InputHandler } from \"./input.handler\";\r\n\r\nexport const CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NumeroDirective),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: \"input[numero]\",\r\n providers: [CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR]\r\n})\r\nexport class NumeroDirective implements AfterViewInit, ControlValueAccessor, DoCheck, OnInit {\r\n\r\n //Ejemplo de uso\r\n //numero [options]=\"{ prefix: '', thousands: ',', decimal: '.' }\"\r\n @Input() options: any = {};\r\n\r\n inputHandler: InputHandler;\r\n keyValueDiffer: KeyValueDiffer;\r\n\r\n optionsTemplate = {\r\n align: \"right\",\r\n allowNegative: true,\r\n precision: 2,\r\n prefix: \"\",\r\n thousands: \",\",\r\n decimal: \".\",\r\n allowZero: true\r\n };\r\n\r\n constructor(public elementRef: ElementRef, public keyValueDiffers: KeyValueDiffers) {\r\n this.keyValueDiffer = keyValueDiffers.find({}).create();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.style.textAlign = this.optionsTemplate.align;\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.keyValueDiffer.diff(this.options)) {\r\n this.inputHandler.updateOptions(Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.inputHandler = new InputHandler(this.elementRef.nativeElement, Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n handleClick(event: any) {\r\n this.inputHandler.handleClick(event);\r\n }\r\n\r\n @HostListener(\"cut\", [\"$event\"])\r\n handleCut(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleCut(event);\r\n }\r\n }\r\n\r\n @HostListener(\"input\", [\"$event\"])\r\n handleInput(event: any) {\r\n if (this.isChromeAndroid()) {\r\n this.inputHandler.handleInput(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n handleKeydown(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleKeydown(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keypress\", [\"$event\"])\r\n handleKeypress(event: any) {\r\n this.inputHandler.handleKeypress(event);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n handlePaste(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handlePaste(event);\r\n }\r\n }\r\n\r\n isChromeAndroid(): boolean {\r\n return /chrome/i.test(navigator.userAgent) && /android/i.test(navigator.userAgent);\r\n }\r\n\r\n registerOnChange(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelChange(callbackFunction);\r\n }\r\n\r\n registerOnTouched(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelTouched(callbackFunction);\r\n }\r\n\r\n setDisabledState(value: boolean): void {\r\n this.elementRef.nativeElement.disabled = value;\r\n }\r\n\r\n writeValue(value: number): void {\r\n this.inputHandler.setValue(value);\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n let e = event;\r\n if ([9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n if (e.keyCode == 8 || e.keyCode == 46) {\r\n this.inputHandler.handleKeydown(e);\r\n }\r\n\r\n // Asegurar que se ingresen solo números\r\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) && (e.keyCode != 8)) {\r\n e.preventDefault();\r\n }\r\n }\r\n}","import { AfterViewInit, Directive, DoCheck, ElementRef, forwardRef, HostListener, KeyValueDiffer, KeyValueDiffers, Input, OnInit } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nimport { InputHandler } from \"./input.handler\";\r\n\r\nexport const CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NumeroDecimal7Directive),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: \"input[numeroDecimal7]\",\r\n providers: [CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR]\r\n})\r\nexport class NumeroDecimal7Directive implements AfterViewInit, ControlValueAccessor, DoCheck, OnInit {\r\n\r\n //Ejemplo de uso\r\n //numero [options]=\"{ prefix: '', thousands: ',', decimal: '.' }\"\r\n @Input() options: any = {};\r\n\r\n inputHandler: InputHandler;\r\n keyValueDiffer: KeyValueDiffer;\r\n\r\n optionsTemplate = {\r\n align: \"right\",\r\n allowNegative: true,\r\n precision: 7,\r\n prefix: \"\",\r\n thousands: \",\",\r\n decimal: \".\",\r\n allowZero: true\r\n };\r\n\r\n constructor(public elementRef: ElementRef, public keyValueDiffers: KeyValueDiffers) {\r\n this.keyValueDiffer = keyValueDiffers.find({}).create();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.style.textAlign = this.optionsTemplate.align;\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.keyValueDiffer.diff(this.options)) {\r\n this.inputHandler.updateOptions(Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.inputHandler = new InputHandler(this.elementRef.nativeElement, Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n handleClick(event: any) {\r\n this.inputHandler.handleClick(event);\r\n }\r\n\r\n @HostListener(\"cut\", [\"$event\"])\r\n handleCut(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleCut(event);\r\n }\r\n }\r\n\r\n @HostListener(\"input\", [\"$event\"])\r\n handleInput(event: any) {\r\n if (this.isChromeAndroid()) {\r\n this.inputHandler.handleInput(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n handleKeydown(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleKeydown(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keypress\", [\"$event\"])\r\n handleKeypress(event: any) {\r\n this.inputHandler.handleKeypress(event);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n handlePaste(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handlePaste(event);\r\n }\r\n }\r\n\r\n isChromeAndroid(): boolean {\r\n return /chrome/i.test(navigator.userAgent) && /android/i.test(navigator.userAgent);\r\n }\r\n\r\n registerOnChange(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelChange(callbackFunction);\r\n }\r\n\r\n registerOnTouched(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelTouched(callbackFunction);\r\n }\r\n\r\n setDisabledState(value: boolean): void {\r\n this.elementRef.nativeElement.disabled = value;\r\n }\r\n\r\n writeValue(value: number): void {\r\n this.inputHandler.setValue(value);\r\n }\r\n \r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n let e = event;\r\n if ([46, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n if (e.keyCode == 8 || e.keyCode == 46) {\r\n this.inputHandler.handleKeydown(e);\r\n }\r\n\r\n // Asegurar que se ingresen solo números\r\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) && (e.keyCode != 8)) {\r\n e.preventDefault();\r\n }\r\n }\r\n}","import { AfterViewInit, Directive, DoCheck, ElementRef, forwardRef, HostListener, KeyValueDiffer, KeyValueDiffers, Input, OnInit } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nimport { InputHandler } from \"./input.handler\";\r\n\r\nexport const CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NumeroPositivoDirective),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: \"input[numeroPositivo]\",\r\n providers: [CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR]\r\n})\r\nexport class NumeroPositivoDirective implements AfterViewInit, ControlValueAccessor, DoCheck, OnInit {\r\n\r\n //Ejemplo de uso\r\n //numero [options]=\"{ prefix: '', thousands: ',', decimal: '.' }\"\r\n @Input() options: any = {};\r\n\r\n inputHandler: InputHandler;\r\n keyValueDiffer: KeyValueDiffer;\r\n\r\n optionsTemplate = {\r\n align: \"right\",\r\n allowNegative: false,\r\n precision: 2,\r\n prefix: \"\",\r\n thousands: \",\",\r\n decimal: \".\",\r\n allowZero: true\r\n };\r\n\r\n constructor(public elementRef: ElementRef, public keyValueDiffers: KeyValueDiffers) {\r\n this.keyValueDiffer = keyValueDiffers.find({}).create();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.style.textAlign = this.optionsTemplate.align;\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.keyValueDiffer.diff(this.options)) {\r\n this.inputHandler.updateOptions(Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.inputHandler = new InputHandler(this.elementRef.nativeElement, Object.assign({}, this.optionsTemplate, this.options));\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n handleClick(event: any) {\r\n this.inputHandler.handleClick(event);\r\n }\r\n\r\n @HostListener(\"cut\", [\"$event\"])\r\n handleCut(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleCut(event);\r\n }\r\n }\r\n\r\n @HostListener(\"input\", [\"$event\"])\r\n handleInput(event: any) {\r\n if (this.isChromeAndroid()) {\r\n this.inputHandler.handleInput(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n handleKeydown(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handleKeydown(event);\r\n }\r\n }\r\n\r\n @HostListener(\"keypress\", [\"$event\"])\r\n handleKeypress(event: any) {\r\n this.inputHandler.handleKeypress(event);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n handlePaste(event: any) {\r\n if (!this.isChromeAndroid()) {\r\n this.inputHandler.handlePaste(event);\r\n }\r\n }\r\n\r\n isChromeAndroid(): boolean {\r\n return /chrome/i.test(navigator.userAgent) && /android/i.test(navigator.userAgent);\r\n }\r\n\r\n registerOnChange(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelChange(callbackFunction);\r\n }\r\n\r\n registerOnTouched(callbackFunction: Function): void {\r\n this.inputHandler.setOnModelTouched(callbackFunction);\r\n }\r\n\r\n setDisabledState(value: boolean): void {\r\n this.elementRef.nativeElement.disabled = value;\r\n }\r\n\r\n writeValue(value: number): void {\r\n this.inputHandler.setValue(value);\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n let e = event;\r\n if ([46, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39)) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n if (e.keyCode == 8 || e.keyCode == 46) {\r\n this.inputHandler.handleKeydown(e);\r\n }\r\n\r\n // Asegurar que se ingresen solo números\r\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) && (e.keyCode != 8)) {\r\n e.preventDefault();\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DtoConsulta {\r\n alias: string;\r\n consulta: Consulta;\r\n\r\n constructor(alias: string, consulta: Consulta) {\r\n this.alias = alias;\r\n this.consulta = consulta;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class DtoMantenimiento {\r\n alias: string;\r\n mantenimiento: Mantenimiento;\r\n\r\n constructor(alias: string, mantenimiento: Mantenimiento) {\r\n this.alias = alias;\r\n this.mantenimiento = mantenimiento;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class Filtro {\r\n campo: string;\r\n valor: string;\r\n condicion: string;\r\n\r\n constructor(campo: string, valor: string) {\r\n this.campo = campo;\r\n this.valor = valor;\r\n }\r\n\r\n public setCondicion(condicion: string) {\r\n this.condicion = condicion;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class FiltroEspecial {\r\n campo: string;\r\n condicion: string;\r\n constructor(campo: string, condicion: string) {\r\n this.campo = campo;\r\n this.condicion = condicion;\r\n }\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class Subquery {\r\n bean: string;\r\n campo: string;\r\n alias: string;\r\n filtro: string;\r\n sentencia: string;\r\n constructor(bean: string, campo: string, alias: string, filtro: string) {\r\n this.bean = bean;\r\n this.campo = campo;\r\n this.alias = alias;\r\n this.filtro = filtro;\r\n }\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class Consulta {\r\n /**Nombre del bean. */\r\n bean: string;\r\n /** Y indica que es un lsita de datoa, N es un solo registro.*/\r\n lista: string;\r\n /**Campos por los que se ordena la consulta */\r\n orderby: string;\r\n /**Numero de pagina en la que se encuenta la consulta 0 es la primera pagina*/\r\n pagina = 0;\r\n /**Numero de registros por a consultar por pagina, por defecto trae 10 registros */\r\n cantidad = 10;\r\n /**Filtros a aplicar en la consulta identificacion = 12 */\r\n filtro: Filtro[] = [];\r\n /**Filtros a aplicar en la consulta identificacion = 12 */\r\n filtroEspecial: FiltroEspecial[] = [];\r\n /**Subqueries de otras tablas con los cuales se arma subquierires corelacionados */\r\n subquery: Subquery[] = [];\r\n\r\n constructor(bean: string, lista: string, orderby: string, mfiltros: any, mfiltrosesp: any, mfiltrosigual: any = null) {\r\n this.bean = bean.toLocaleLowerCase();\r\n this.lista = lista;\r\n this.orderby = orderby;\r\n this.llenarFiltrosConsulta(mfiltros, mfiltrosigual);\r\n this.llenarFiltrosEspecialesConsulta(mfiltrosesp);\r\n }\r\n\r\n addSubquery(bean: string, campo: string, alias: string, filtro: string) {\r\n bean = bean.toLocaleLowerCase();\r\n const subquery = new Subquery(bean, campo, alias, filtro);\r\n this.subquery.push(subquery);\r\n }\r\n\r\n addSubqueryPorSentencia(sentencia: string, alias: string) {\r\n const subquery = new Subquery('', '', alias, '');\r\n subquery.sentencia = sentencia;\r\n this.subquery.push(subquery);\r\n }\r\n\r\n /**Enterga arreglo con objetos Filtro con los cuales se ejecuta una consulta. */\r\n llenarFiltrosConsulta(mfiltros: any, mfiltrosigual: any) {\r\n for (const i in mfiltros) {\r\n // elimina filtros previso que estan el map de filtros.\r\n if (mfiltros.hasOwnProperty(i)) {\r\n this.eliminarFiltro(i);\r\n }\r\n }\r\n for (const i in mfiltrosigual) {\r\n // elimina filtros previso que estan el map de filtros.\r\n if (mfiltrosigual.hasOwnProperty(i)) {\r\n this.eliminarFiltro(i);\r\n }\r\n }\r\n for (const i in mfiltros) {\r\n if (mfiltros.hasOwnProperty(i)) {\r\n const valor = mfiltros[i];\r\n if (valor !== undefined && valor !== '') {\r\n const f = new Filtro(i, valor);\r\n this.filtro.push(f);\r\n }\r\n }\r\n }\r\n for (const i in mfiltrosigual) {\r\n if (mfiltrosigual.hasOwnProperty(i)) {\r\n const valor = mfiltrosigual[i];\r\n if (valor !== undefined && valor !== '') {\r\n this.addFiltroCondicion(i, valor, '=');\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n /**Elimina un filtro dado el nombre del campo. */\r\n private eliminarFiltro(campo: string) {\r\n let j = 0;\r\n let existe = false;\r\n for (const i in this.filtro) {\r\n if (this.filtro.hasOwnProperty(i)) {\r\n const f = this.filtro[i];\r\n if (f.campo === campo) {\r\n existe = true;\r\n break;\r\n }\r\n j = j + 1;\r\n }\r\n\r\n }\r\n if (existe) {\r\n this.filtro.splice(j, 1);\r\n }\r\n\r\n }\r\n\r\n /**Adicona un objeto filtro, en los componentes los filtros siempre se asocian a mfiltros. */\r\n public addFiltro(campo: string, valor: string) {\r\n const filtro = new Filtro(campo, valor);\r\n this.filtro.push(filtro);\r\n return filtro;\r\n }\r\n\r\n public addFiltroCondicion(campo: string, valor: any, condicion: string) {\r\n const filtro = this.addFiltro(campo, valor);\r\n if (condicion !== undefined) {\r\n filtro.setCondicion(condicion);\r\n }\r\n }\r\n\r\n /**Enterga arreglo con objetos Filtro con los cuales se ejecuta una consulta. */\r\n llenarFiltrosEspecialesConsulta(mfiltros: any) {\r\n for (const i in mfiltros) {\r\n // elimina filtros previso que estan el map de filtros.\r\n if (mfiltros.hasOwnProperty(i)) {\r\n this.eliminarFiltro(i);\r\n }\r\n }\r\n for (const i in mfiltros) {\r\n if (mfiltros.hasOwnProperty(i)) {\r\n const valor = mfiltros[i];\r\n if (valor !== undefined && valor !== '') {\r\n this.addFiltroEspecial(i, valor);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**Adicona un objeto filtro, en los componentes los filtros siempre se asocian a mfiltros. */\r\n public addFiltroEspecial(campo: string, condicion: string) {\r\n const filtroEsp = new FiltroEspecial(campo, condicion);\r\n this.filtroEspecial.push(filtroEsp);\r\n return filtroEsp;\r\n }\r\n\r\n /**Fija el numero de registros a obener del core */\r\n setCantidad(cantidad: number) {\r\n this.cantidad = cantidad;\r\n }\r\n\r\n setPagina(tipo: string) {\r\n switch (tipo) {\r\n case 'A':\r\n // pagina anterior\r\n this.pagina = this.pagina - this.cantidad;\r\n this.pagina = this.pagina < 0 ? 0 : this.pagina;\r\n break;\r\n case 'S':\r\n // pagina siguiente\r\n this.pagina = this.pagina + this.cantidad;\r\n break;\r\n default:\r\n this.pagina = 0;\r\n }\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class Mantenimiento {\r\n /**Nombre del bean. */\r\n bean: string;\r\n /**Orden de grabado en la base de datos. */\r\n pos: number;\r\n /**Registros a insertar en la base de datos. */\r\n ins: Array = [];\r\n /**Registros a actualizar en la base de datos. */\r\n upd: Array = [];\r\n /**Registros a eliminar en la base de datos. */\r\n del: Array = [];\r\n /**true, indica que el mantenimeinto tiene rubros monetarios. */\r\n esMonetario = false;\r\n /**true, indica que los datos del mantenimiento se envian a un store procedure. */\r\n enviarSP = false;\r\n\r\n constructor(bean: string, posicion: number) {\r\n this.bean = bean;\r\n this.pos = posicion;\r\n }\r\n\r\n /**Encera registros a insertar y actualizar, para crear con los nuevos datos tomados de la lista de registros. */\r\n encerar() {\r\n this.ins = [];\r\n this.upd = [];\r\n }\r\n\r\n /**Verifica si el mantenimiento tiene algo que enviar al core. */\r\n tieneCambios() {\r\n let tienecambios = false;\r\n if (this.ins.length > 0) {\r\n tienecambios = true;\r\n }\r\n if (this.upd.length > 0) {\r\n tienecambios = true;\r\n }\r\n if (this.del.length > 0) {\r\n tienecambios = true;\r\n }\r\n return tienecambios;\r\n }\r\n\r\n completarInsUpdDel(registros: any, registrosOriginales: any, registrosEliminados: any) {\r\n this.encerar(); // Encerar insert y update, el delete se encera en el postCommit.\r\n this.adicionaEliminados(registrosEliminados); // Adiciona registros a eliminar.\r\n if (this.esMonetario) {\r\n for (const i in registros) {\r\n if (registros.hasOwnProperty(i)) {\r\n const reg = registros[i];\r\n const r = {};\r\n if (reg.monto !== undefined && reg.monto !== null) {\r\n r[reg.rubro] = reg.monto;\r\n this.ins.push(r);\r\n }\r\n }\r\n }\r\n } else {\r\n for (const i in registros) {\r\n if (registros.hasOwnProperty(i)) {\r\n const reg = registros[i];\r\n // Clona el registro a realizar insert o update para no afectar la funcionalidad de primeng\r\n const r = JSON.parse(JSON.stringify(reg));\r\n if (r.hasOwnProperty('_$visited')) {\r\n delete r._$visited;\r\n }\r\n // Los nuevos van primero\r\n if (r.hasOwnProperty('esnuevo') && reg.esnuevo) {\r\n this.ins.push(r);\r\n continue;\r\n }\r\n if (this.existeCambiosRegistro(registrosOriginales, r)) {\r\n r.actualizar = true;\r\n reg.actualizar = true;\r\n this.upd.push(r);\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**Adiciona registros a eliminar. */\r\n private adicionaEliminados(registrosEliminados: any) {\r\n for (const i in registrosEliminados) {\r\n if (registrosEliminados.hasOwnProperty(i)) {\r\n const reg = registrosEliminados[i];\r\n this.del.push(reg);\r\n }\r\n }\r\n }\r\n\r\n /**Verifica que existan cambios en los registros. */\r\n private existeCambiosRegistro(registrosOriginales: any, registro: any) {\r\n let existeCambios = false;\r\n let aux: any;\r\n if (registrosOriginales === undefined) {\r\n return existeCambios;\r\n }\r\n for (const i in registrosOriginales) {\r\n if (registrosOriginales.hasOwnProperty(i)) {\r\n const reg = registrosOriginales[i];\r\n if (reg.idreg === registro.idreg) {\r\n aux = reg;\r\n break;\r\n }\r\n }\r\n }\r\n if (aux === undefined) {\r\n return existeCambios;\r\n }\r\n const a = JSON.stringify(registro);\r\n const b = JSON.stringify(aux);\r\n if (a !== b) {\r\n existeCambios = true;\r\n }\r\n return existeCambios;\r\n }\r\n\r\n /**Actualiza optlock, veractual y pk de los registros nuevos o actualizados. */\r\n postCommit(registros: any, registrosRespuesta: any) {\r\n // Actualiza optlock y veractual de los registros creados o actualizados.\r\n for (const i in registros) {\r\n if (registros.hasOwnProperty(i)) {\r\n const reg = registros[i];\r\n if (reg.esnuevo || reg.actualizar) {\r\n if (reg.hasOwnProperty('optlock') && reg.actualizar) {\r\n reg.optlock = reg.optlock + 1;\r\n }\r\n if (reg.hasOwnProperty('optlock') && reg.esnuevo) {\r\n reg.optlock = 0;\r\n }\r\n if (reg.hasOwnProperty('veractual')) {\r\n if (reg.veractual === undefined) {\r\n reg.veractual = 0;\r\n } else {\r\n reg.veractual = reg.veractual + 1;\r\n }\r\n }\r\n }\r\n if (registrosRespuesta !== undefined) {\r\n this.postCommitPk(reg, registrosRespuesta);\r\n }\r\n reg.esnuevo = false;\r\n reg.actualizar = false;\r\n // encera registros eliminados.\r\n this.del = [];\r\n }\r\n }\r\n }\r\n\r\n /**Actualiza pk del registro, seimepre y cuando el core retorne un objeto con el pk de la tabla. */\r\n private postCommitPk(reg: any, registrosRespuesta: any) {\r\n if (!reg.hasOwnProperty('idreg')) {\r\n return;\r\n }\r\n for (const i in registrosRespuesta) {\r\n if (registrosRespuesta.hasOwnProperty(i)) {\r\n const resp = registrosRespuesta[i];\r\n if (resp.idreg !== reg.idreg) {\r\n continue;\r\n }\r\n this.postCommitPkRegistro(reg, resp);\r\n }\r\n }\r\n }\r\n\r\n /**Actualiza pk del registro, seimepre y cuando el core retorne un objeto con el pk de la tabla. */\r\n private postCommitPkRegistro(reg: any, registrosRespuesta: any) {\r\n for (const campo in registrosRespuesta) {\r\n if (registrosRespuesta.hasOwnProperty(campo)) {\r\n const valor = registrosRespuesta[campo];\r\n if (campo.startsWith('idreg')) {\r\n continue;\r\n }\r\n reg[campo] = valor;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n/*\r\n * Convierte un long en milisegundos a fecha en formato string\r\n * Usage:\r\n * value | fechaentero\r\n * Example:\r\n * {{ fecha | fechaentero:'date'}}\r\n * {{ fecha | fechaentero:'datetime'}}\r\n*/\r\n@Pipe({name: 'fechaentero'})\r\nexport class FechaEnteroPipe implements PipeTransform {\r\n transform(value: number, tipofecha = 'datetime'): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const fecha = new Date(value);\r\n const s = fecha.toLocaleString('es');\r\n const sarray = s.split(' ');\r\n const darray = sarray[0].split('/');\r\n const t = sarray[1];\r\n\r\n if (tipofecha === 'date') {\r\n return darray[2] + '-' + (darray[1].length === 1 ? ('0' + darray[1]) : darray[1]) + '-' + (darray[0].length === 1 ? ('0' + darray[0]) : darray[0]);\r\n }\r\n if (tipofecha === 'datetime') {\r\n return darray[2] + '-' + (darray[1].length === 1 ? ('0' + darray[1]) : darray[1]) + '-' + (darray[0].length === 1 ? ('0' + darray[0]) : darray[0]) + ' ' + t;\r\n }\r\n return s;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n/*\r\n * Convierte un numero YYYYMMDD a fecha en formato string YYYY-MM-DD\r\n * Usage:\r\n * value | fechaenteroformato\r\n * Example:\r\n * {{ fecha | fechaenteroformato}}\r\n*/\r\n@Pipe({name: 'fechaenteroformato'})\r\nexport class EnteroFechaFormatoPipe implements PipeTransform {\r\n transform(value: number): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const valueaux=value+\"\";\r\n const anio =valueaux.substring(0,4);\r\n const mes =valueaux.substring(4,6);\r\n const dia =valueaux.substring(6);\r\n const fechaSinformato= anio+\"-\"+mes+\"-\"+dia;\r\n\r\n return fechaSinformato;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n/*\r\n * Convierte un long en milisegundos a fecha en formato string\r\n * Usage:\r\n * value | fechaentero\r\n * Example:\r\n * {{ fecha | fechaentero}}\r\n*/\r\n@Pipe({name: 'SoloFechaPipe'})\r\nexport class SoloFechaPipe implements PipeTransform {\r\n transform(value: number): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n const fecha = new Date(value);\r\n const s = fecha.toISOString();\r\n const d = s.substr(0, 10);\r\n const t = s.substr(11, 8);\r\n\r\n return d + ' ' + t;\r\n }\r\n}\r\n","import { ModuleWithProviders } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { InicioComponent } from \"../../sobre/inicio/componentes/inicio.component\";\r\nimport { LoginComponent } from \"../seguridad/componentes/login/componentes/login.component\";\r\nimport { ReloadComponent } from \"../seguridad/componentes/login/componentes/reload.component\";\r\n\r\nimport { VerificaAutorizacionService } from \"../../util/servicios/verificaAutorizacion.service\";\r\n\r\nconst appRoutes: Routes = [\r\n {\r\n path: \"\",\r\n component: InicioComponent,\r\n canActivate: [VerificaAutorizacionService]\r\n },\r\n { path: \"reload\", component: ReloadComponent },\r\n { path: \"**\", redirectTo: \"\" },\r\n { path: \"23-6\", loadChildren: \"app/modulos/seguridad/cambiocontrasenia/cambioContrasenia.module#CambioContraseniaModule\", canActivate: [VerificaAutorizacionService] },\r\n { path: \"23-100\", loadChildren: \"app/modulos/socios/informacionGeneral/informacionGeneral.module#InformacionGeneralModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-101\", loadChildren: \"app/modulos/socios/consultaAportes/consultaAportes.module#consultaAportesModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-200\", loadChildren: \"app/modulos/cartera/simulacionCartera/simulacionCartera.module#SimulacionCarteraModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-201\", loadChildren: \"app/modulos/cartera/consultaOperacion/consultaOperacion.module#ConsultaOperacionModule\", canActivate: [VerificaAutorizacionService] },\r\n { path: \"23-202\", loadChildren: \"app/modulos/cartera/listadoOperaciones/listadoOperaciones.module#ListadoOperacionesModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-203\", loadChildren: \"app/modulos/cartera/solicitudes/solicitudes.module#SolicitudesModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-204\", loadChildren: \"app/modulos/web/inicio/inicio.module#InicioModule\", canActivate: [VerificaAutorizacionService] },\r\n \r\n { path: \"23-200\", loadChildren: \"app/modulos/cartera/solicitudcapacidadpago/solicitudcapacidadpago.module#SolicitudCapacidadPagoModule\", canActivate: [VerificaAutorizacionService] },\r\n\r\n { path: \"23-210\", loadChildren: \"app/modulos/cartera/certificadoCartera/certificadoCartera.module#CertificadoCarteraModule\", canActivate: [VerificaAutorizacionService] },\r\n { path: \"23-300\", loadChildren: \"app/modulos/prestaciones/simulacionPrestaciones/simulacionPrestaciones.module#SimulacionPrestacionesModule\", canActivate: [VerificaAutorizacionService] },\r\n { path: \"23-301\", loadChildren: \"app/modulos/socios/consultaexpediente/consultaExpediente.module#ConsultaExpedienteModule\", canActivate: [VerificaAutorizacionService] },\r\n { path: \"**\", redirectTo: \"\" }\r\n];\r\n\r\nexport const appRoutingProviders: any[] = [];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);\r\n","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nimport { DtoServicios } from '../../../../../util/servicios/dto.servicios';\r\nimport { Consulta } from '../../../../../util/dto/dto.component';\r\nimport { Mantenimiento } from '../../../../../util/dto/dto.component';\r\nimport { BaseComponent } from '../../../../../util/shared/componentes/base.component';\r\nimport { AppService } from '../../../../servicios/app.service';\r\nimport { SelectItem } from 'primeng/primeng';\r\n\r\n@Component({\r\n selector: 'app-cambio-contrasenia-login',\r\n templateUrl: 'cambioContraseniaLogin.html'\r\n})\r\nexport class CambioContraseniaLoginComponent extends BaseComponent implements OnInit, AfterViewInit {\r\n\r\n politica: any = new Object();\r\n\r\n constructor(public localStorageService: LocalStorageService, router: Router, dtoServicios: DtoServicios, public appService: AppService) {\r\n super(localStorageService, router, dtoServicios, 'TbanUsuarios', 'CAMBIOCONTRASENIA', true, true);\r\n }\r\n\r\n ngOnInit() {\r\n this.componentehijo = this;\r\n super.init();\r\n this.consultar();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n crearNuevo() {\r\n // NO APLICA\r\n }\r\n\r\n actualizar() {\r\n super.actualizar();\r\n }\r\n\r\n eliminar() {\r\n // NO APLICA\r\n }\r\n\r\n cancelar() {\r\n super.cancelar();\r\n }\r\n\r\n public selectRegistro(registro: any) {\r\n super.selectRegistro(registro);\r\n }\r\n\r\n // Inicia CONSULTA *********************\r\n consultar() {\r\n if (this.estaVacio(this.dtoServicios.mradicacion)) {\r\n return;\r\n }\r\n\r\n if (this.dtoServicios.mradicacion.cusuario !== undefined && this.dtoServicios.mradicacion.cusuario != null) {\r\n this.mfiltros.cusuario = this.dtoServicios.mradicacion.cusuario;\r\n }\r\n this.rqConsulta.cmodulo = 23;\r\n this.rqConsulta.ctransaccion = 6;\r\n\r\n this.crearDtoConsulta();\r\n this.crearDtoConsultaPolitica();\r\n\r\n if (this.enproceso) {\r\n return; // Si esta en ejecucion al core no volver a consultar.\r\n }\r\n this.enproceso = true;\r\n // Objeto con que contiene 1..n beans a consultar\r\n const rq = this.getRequestConsulta('C');\r\n const appName = null;\r\n const metodo = null;\r\n this.dtoServicios.ejecutarConsultaRest(rq,appName,metodo).subscribe(\r\n resp => {\r\n if (resp.cod !== 'OK') {\r\n this.dtoServicios.llenarMensaje(resp, false); // solo presenta errores.\r\n }\r\n this.postQuery(resp);\r\n this.respuestacore = resp;\r\n this.enproceso = false;\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n }\r\n );\r\n }\r\n\r\n public crearDtoConsulta(): Consulta {\r\n this.fijarFiltrosConsulta();\r\n const consulta = new Consulta(this.entityBean, 'N', 't.cusuario', this.mfiltros, this.mfiltrosesp);\r\n this.addConsulta(consulta);\r\n return consulta;\r\n }\r\n\r\n public crearDtoConsultaPolitica(): Consulta {\r\n const mfiltrospol = new Object();\r\n mfiltrospol['ccompania'] = this.dtoServicios.mradicacion.ccompania;\r\n mfiltrospol['ccanal'] = 'BAN';\r\n\r\n const consulta = new Consulta(this.obtenerBean('TsegPolitica'), 'N', '', mfiltrospol, null);\r\n this.addConsultaPorAlias('POLITICA', consulta);\r\n return consulta;\r\n }\r\n\r\n public fijarFiltrosConsulta() {\r\n this.mfiltros.verreg = 0;\r\n }\r\n\r\n validaFiltrosConsulta(): boolean {\r\n return super.validaFiltrosRequeridos();\r\n }\r\n\r\n /**Se llama automaticamente luego de ejecutar una consulta. */\r\n public postQuery(resp: any) {\r\n super.postQueryEntityBean(resp);\r\n this.politica = resp['POLITICA'];\r\n this.selectRegistro(this.registro);\r\n }\r\n // Fin CONSULTA *********************\r\n\r\n // Inicia MANTENIMIENTO *********************\r\n grabar(): void {\r\n const newPass = this.mcampos.confirmarcon;\r\n this.rqMantenimiento.mdatos.bas64 = newPass;\r\n this.rqMantenimiento.mdatos.anteriorcon = this.mcampos.anteriorcon;\r\n this.rqMantenimiento.cmodulo = 23;\r\n this.rqMantenimiento.ctransaccion = 6;\r\n\r\n this.registro.cambiopassword = 0;\r\n\r\n this.actualizar();\r\n\r\n this.lmantenimiento = []; // Encerar Mantenimiento\r\n this.crearDtoMantenimiento();\r\n // para adicionar otros entity bean super.addMantenimientoPorAlias(\"alias\",mantenimiento); pude ser de otros componentes\r\n super.grabar();\r\n }\r\n\r\n public crearDtoMantenimiento() {\r\n const mantenimiento = super.getMantenimiento(1);\r\n super.addMantenimientoPorAlias(this.alias, mantenimiento);\r\n }\r\n\r\n public postCommit(resp: any) {\r\n super.postCommitEntityBean(resp);\r\n if (resp['cambioexitoso'] != null && resp['cambioexitoso'] === true) {\r\n this.appService.cambiopassword = false;\r\n this.dtoServicios.mradicacion['pss'] = '0';\r\n // Fija datos de radicacion del usuario en el singleton de servicios.\r\n this.localStorageService.setItem('mradicacion', JSON.stringify(this.dtoServicios.mradicacion));\r\n }\r\n }\r\n\r\n public cancelarCambio() {\r\n this.dtoServicios.encerarCredencialesLogin();\r\n location.reload();\r\n }\r\n\r\n}\r\n","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tPOLÍTICA DE SEGURIDAD\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
        \\r\\n \\t\\t\\t\\t\\t
      1. La contraseña debe tener mínimo [{{ politica.longitud }}] caracter(es)
      2. \\r\\n \\t\\t\\t\\t\\t
      3. La contraseña debe tener mínimo [{{ politica.especiales}}] caracter(es) especial(es)
      4. \\r\\n \\t\\t\\t\\t\\t
      5. La contraseña debe tener mínimo [{{ politica.numeros }}] número(s)
      6. \\r\\n \\t\\t\\t\\t\\t
      7. La contraseña debe tener mínimo [{{ politica.mayusculas }}] mayúscula(s)
      8. \\r\\n \\t\\t\\t\\t\\t
      9. La contraseña debe tener mínimo [{{ politica.minusculas }}] minúscula(s)
      10. \\r\\n \\t\\t\\t\\t\\t
      11. No debe ser igual a las últimas [{{ politica.repeticiones }}] contraseñas
      12. \\r\\n \\t\\t\\t\\t\\t
      13. No use los siguientes caracteres (tildes, Ñ-ñ)
      14. \\r\\n \\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tCredenciales\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\"","module.exports = \".login-body {\\r\\n background-size: 100% auto !important;\\r\\n \\r\\n}\\r\\n\\r\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\\r\\n .login-body {\\r\\n background-size: 100% auto !important; }\\r\\n}\\r\\n\\r\\n.card {\\r\\n box-shadow: 0;\\r\\n -webkit-box-shadow: 0 0 0 0;\\r\\n -moz-box-shadow: 0 ;\\r\\n border-radius: 2px;\\r\\n\\tbackground: transparent;\\r\\n padding: 1em;\\r\\n margin-bottom: 1em;\\r\\n box-sizing: border-box; \\r\\n}\\r\\n\\r\\n.ui-g {\\r\\n\\tflex-wrap: wrap;\\r\\n\\tdisplay: flex;\\r\\n\\tborder-radius: 2px;\\r\\n}\\r\\n\\r\\n.ui-fluid .ui-inputtext {\\r\\n\\tbackground-color: none;\\r\\n}\\r\\n\\r\\n.ui-inputtext.ng-dirty.ng-invalid {\\r\\n\\tborder-bottom-color:rgb(40, 33, 109) !important;\\r\\n}\\r\\n\\r\\n.ui-inputtext.ng-dirty.ng-valid {\\r\\n\\tborder-bottom-color:rgb(40, 33, 109) !important;\\r\\n}\\r\\n\\r\\n.md-inputfield input.ng-dirty.ng-invalid ~ label {\\r\\n\\tcolor: rgb(40, 33, 109) !important;\\r\\n}\\r\\n\\r\\n.md-inputfield input.ui-state-filled ~ label {\\r\\n\\tcolor: rgb(40, 33, 109) !important;\\r\\n}\\r\\n\\r\\n.login-panel .ui-inputtext:focus {\\r\\n\\tborder-width: 0 0 2px 0;\\r\\n border-color:rgb(40, 33, 109) !important;\\r\\n padding-bottom: 0px;\\r\\n}\\r\\n\\r\\n.login-panel .ui-inputtext {\\r\\n\\tcolor: rgb(40, 33, 109) !important\\r\\n}\\r\\n\\r\\n.linkLogin{\\r\\n color: rgb(40, 33, 109);\\r\\n font-size: 14px;\\r\\n cursor: pointer;\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.logosLogin {\\r\\n\\ttext-align: center !important;\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.login-panel {\\r\\n text-align: center;\\r\\n width: 350px;\\r\\n min-height: 440px;\\r\\n padding: 50px 20px;\\r\\n margin: 1px auto 0 auto; \\r\\n}\\r\\n\\r\\ninput:-webkit-autofill {\\r\\n\\t-webkit-border-color: white;\\r\\n\\t-webkit-background-color: none;\\r\\n\\t-webkit-color: white;\\r\\n}\\r\\n\"","module.exports = \"
      \\r\\n\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\t\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n Olvidó su contraseña? \\r\\n \\t

      \\r\\n \\tNuevo usuario? Registrese\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\"","import {Component, NgModule, OnInit, ViewChild} from '@angular/core';\r\nimport {NgForm} from '@angular/forms';\r\nimport {Router} from '@angular/router';\r\nimport {Message, PasswordModule} from 'primeng/primeng';\r\n\r\nimport {DtoServicios} from '../../../../servicios/dto.servicios';\r\nimport {AppService} from '../../../../servicios/app.service';\r\nimport {SubscripcionComponent} from '../../subscripcion/componentes/subscripcion.component';\r\nimport {BaseComponent} from '../../../../shared/componentes/base.component';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent extends BaseComponent implements OnInit {\r\n \r\n @ViewChild(SubscripcionComponent)\r\n subscripcion: SubscripcionComponent;\r\n\r\n /**Control de ejecucion del login, previene que se ejecute varias veces el boton del login. */\r\n private enejecucion = false;\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n\r\n constructor(public localStorageService: LocalStorageService, router: Router, dtoServicios: DtoServicios, public appService: AppService) {\r\n super(localStorageService, router, dtoServicios, 'Abstract', 'LOGIN', false, false);\r\n this.componentehijo = this;\r\n }\r\n \r\n ngOnInit() {\r\n // consulta la ip local\r\n this.dtoServicios.consultarIpLocal();\r\n }\r\n\r\n /**Invoca al core para realizar login de la aplicacion. */\r\n ejecutalogin() {\r\n this.msgs = [];\r\n if (this.enejecucion) {\r\n return;\r\n }\r\n this.enejecucion = true;\r\n this.appService.login = false;\r\n this.dtoServicios.ejecutarLogin(this.appService.modelo.u, this.appService.modelo.p, 'BAN', '1')\r\n .subscribe(\r\n resp => {\r\n this.manejaRespuestaLogin(resp);\r\n this.enejecucion = false;\r\n },\r\n error => {\r\n this.enejecucion = false;\r\n this.dtoServicios.manejoError(error);\r\n });\r\n }\r\n\r\n /**Manejo respuesta de ejecucion de login. */\r\n private manejaRespuestaLogin(resp: any) {\r\n this.msgs = [];\r\n if (resp.cod === 'OK') {\r\n this.appService.modelo = {};\r\n if (resp.validarotp !== null && resp.validarotp !== undefined) {\r\n this.appService.validarotp = resp.validarotp;\r\n this.localStorageService.setItem('validarotp', resp.validarotp + '');\r\n } else {\r\n this.appService.validarotp = false;\r\n this.localStorageService.setItem('validarotp', 'false');\r\n }\r\n this.inicializarAmbiente(resp); // manejo de respuesta\r\n }\r\n if (resp.cod !== 'OK') {\r\n let msg = '';\r\n msg = resp.cod !== undefined ? msg = msg + resp.cod + ' ' : msg + ' ';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n this.dtoServicios.llenarMensaje(resp, false);\r\n }\r\n }\r\n \r\n /**Invoca al core para realizar el olvido de contrasenia de la aplicacion. */\r\n ejecutaolvidocontrasenia() {\r\n this.encerarMensajes();\r\n this.msgs = [];\r\n if (this.enejecucion) {\r\n return;\r\n }\r\n this.enejecucion = false;\r\n this.appService.login = true;\r\n this.appService.validarclavetemp = true;\r\n this.appService.validarotp = true;\r\n }\r\n \r\n public iniciaRegistroUsuario(){\r\n this.encerarMensajes();\r\n this.subscripcion.registrousuario = true;\r\n this.subscripcion.crearNuevo();\r\n this.subscripcion.regpaso0 = true;\r\n }\r\n\r\n /**Fija datos de respuesta cuando el login es exitoso. */\r\n private inicializarAmbiente(resp: any) {\r\n const mradicacion = resp.mradicacion;\r\n // cia^suc^ofi^usr^perfil^idioma^canal^ipaddress\r\n let c: string;\r\n const ip = document.domain === 'localhost' ? '127.0.0.1' : document.domain;\r\n // Lista de roles del usuario.\r\n this.appService.llenarRolesUsuario(mradicacion.roles);\r\n\r\n c = mradicacion.cc + '^' + mradicacion.cs + '^' + mradicacion.cag + '^' + mradicacion.cu + '^';\r\n c = c + mradicacion.roles[0].id + '^' + mradicacion.ci + '^' + mradicacion.cca;\r\n this.localStorageService.setItem('c', c);\r\n this.localStorageService.setItem('mradicacion', JSON.stringify(mradicacion));\r\n // delete mradicacion.roles;\r\n\r\n // ejecuta consulta del menu del primer rol\r\n this.appService.consultarMenu();\r\n\r\n // Fija datos de radicacion del usuario en el singleton de servicios.\r\n this.dtoServicios.actualizarRadicacion(mradicacion);\r\n\r\n // Nombre de la persona\r\n this.appService.npersona = mradicacion.np;\r\n\r\n // Verifica el cambio de password\r\n this.validaCambioPassword(mradicacion);\r\n\r\n if (!this.appService.validarotp && !this.appService.cambiopassword) {\r\n this.msgs.push({severity: 'success', summary: 'INGRESO EXITOSO, BIENVENIDO: ' + this.dtoServicios.mradicacion.cusuario, detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n } else {\r\n this.msgs.push({severity: 'success', summary: 'LOGIN EXITOSO, VALIDACIÓN DOBLE FACTOR DE AUTENTICACIÓN (2FA)', detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n }\r\n\r\n validaCambioPassword(mradicacion: any) {\r\n const cambio = mradicacion.pss;\r\n if (cambio !== null && cambio === '1') {\r\n this.appService.cambiopassword = true;\r\n this.appService.cambiocontraseniacomponent.consultar();\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Component, NgModule, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\n@Component({\r\n selector: 'app-reload',\r\n template: `\r\n \r\n `\r\n})\r\nexport class ReloadComponent implements OnInit {\r\n\r\n constructor(public localStorageService:LocalStorageService) { }\r\n\r\n ngOnInit() {\r\n this.localStorageService.clear(); \r\n location.reload();\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {SharedModule} from '../../../../util/shared/shared.module';\r\nimport {LoginRoutingModule} from './login.routing';\r\nimport {SubscripcionModule} from '../subscripcion/subscripcion.module';\r\n\r\nimport { LoginComponent } from './componentes/login.component';\r\nimport { ReloadComponent } from './componentes/reload.component';\r\n\r\n@NgModule({\r\n imports: [SharedModule, LoginRoutingModule, SubscripcionModule],\r\n declarations: [LoginComponent, ReloadComponent],\r\n exports: [LoginComponent, ReloadComponent]\r\n})\r\nexport class LoginModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { LoginComponent } from './componentes/login.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: LoginComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class LoginRoutingModule {}\r\n","module.exports = \"
      \\r\\n
      \\t\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t
        \\r\\n \\t\\t\\t\\t\\t\\r\\n \\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"","import {Component, NgModule, OnInit} from '@angular/core';\r\nimport {NgForm} from '@angular/forms';\r\nimport {Router} from '@angular/router';\r\nimport {Message, PasswordModule} from 'primeng/primeng';\r\n\r\nimport {DtoServicios} from '../../../../util/servicios/dto.servicios';\r\nimport {AppService} from '../../../../util/servicios/app.service';\r\nimport {ImpresionService} from '../../../servicios/impresion.service';\r\nimport {BaseComponent} from '../../../shared/componentes/base.component';\r\nimport { LocalStorageService } from '../../sesion/localStorageService';\r\n\r\n\r\n@Component({\r\n selector: 'app-olvido-contrasenia',\r\n templateUrl: './olvidoContrasenia.component.html'\r\n})\r\nexport class OlvidoContraseniaComponent extends BaseComponent implements OnInit {\r\n\r\n /**Control de ejecucion del otp, previene que se ejecute varias veces el boton del otp. */\r\n private enejecucion = false;\r\n\r\n public identificacion = null;\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n\r\n constructor(public localStorageService:LocalStorageService, public router: Router, public dtoServicios: DtoServicios, public appService: AppService, public impresionService: ImpresionService) {\r\n super(localStorageService, router, dtoServicios, 'Abstract', 'LOGIN', false, false);\r\n this.componentehijo = this;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n /**Invoca al core para realizar la validaicon del olvido de contrasenia. */\r\n ejecutaValidacionOlvContr() {\r\n this.msgs = [];\r\n if (this.enejecucion) {\r\n return;\r\n }\r\n this.encerarMensajes();\r\n this.appService.login = true;\r\n this.appService.validarotp = true;\r\n const rq = new Object();\r\n rq['ident'] = this.identificacion;\r\n this.dtoServicios.ejecutarServicioBancaLinea(rq, 23, 5)\r\n .subscribe(\r\n resp => {\r\n this.manejaRespuesta(resp);\r\n this.enejecucion = false;\r\n },\r\n error => {\r\n this.enejecucion = false;\r\n this.dtoServicios.manejoError(error);\r\n });\r\n }\r\n\r\n /**Manejo respuesta de ejecucion de login. */\r\n private manejaRespuesta(resp: any) { \r\n this.msgs = [];\r\n if (resp.cod === 'OK') {\r\n this.identificacion = null;\r\n this.appService.modelo = {};\r\n if (resp.validarclavetemp !== null && resp.validarclavetemp !== undefined) {\r\n this.msgs.push({severity: 'success', summary: 'TRANSACCIÓN CORRECTA '});\r\n this.msgs.push({severity: 'success', summary: 'REVISAR SU EMAIL CON SU CONTRASEÑA TEMPORAL'});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n \r\n this.appService.login = false;\r\n this.appService.validarclavetemp = false;\r\n this.appService.validarotp = false;\r\n } else {\r\n this.appService.validarclavetemp = false;\r\n }\r\n }\r\n if (resp.cod !== 'OK') {\r\n let msg = '';\r\n //msg = resp.cod !== undefined ? msg = msg + resp.cod + ' ' : msg + ' ';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n if (resp.cod === 'SEG-001') {\r\n this.msgs.push({severity: 'error', summary: 'NO EXISTE USUARIO CON CÉDULA: ' + this.identificacion});\r\n }\r\n else {\r\n this.msgs.push({severity: 'error', summary: msg});\r\n }\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n // this.dtoServicios.llenarMensaje(resp, false);\r\n }\r\n }\r\n\r\n public cancelar() {\r\n this.dtoServicios.encerarCredencialesLogin();\r\n location.reload();\r\n }\r\n\r\n}\r\n","module.exports = \"
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"","import { Component, NgModule, OnInit } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { Message, PasswordModule } from 'primeng/primeng';\r\n\r\nimport { DtoServicios } from '../../../../util/servicios/dto.servicios';\r\nimport { AppService } from '../../../../util/servicios/app.service';\r\nimport { ImpresionService } from '../../../servicios/impresion.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-otp',\r\n templateUrl: './otp.component.html'\r\n})\r\nexport class OtpComponent implements OnInit {\r\n\r\n /**Control de ejecucion del otp, previene que se ejecute varias veces el boton del otp. */\r\n private enejecucion = false;\r\n\r\n public cseg = null;\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n\r\n constructor(public localStorageService:LocalStorageService, private router: Router, private dtoServicios: DtoServicios, public appService: AppService, public impresionService: ImpresionService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n validateInput(event: any) {\r\n const key = event.key;\r\n const isValidKey = (key >= '0' && key <= '9') || key === 'Backspace'; // Verifica si la tecla presionada es un número o la tecla de retroceso (Backspace)\r\n const inputValue = event.target.value;\r\n \r\n const isPasteEvent = (event.type === 'paste') || (event.ctrlKey && key === 'v'); // Verifica si el evento es de tipo \"pegar\" o si se presiona Ctrl + V\r\n \r\n if (!isValidKey || (isValidKey && inputValue.length >= 12 && !isPasteEvent)) {\r\n event.preventDefault(); // Evita la entrada del carácter no válido o si se alcanza la longitud máxima del campo (excepto en eventos de pegar con Ctrl + V)\r\n }\r\n }\r\n \r\n\r\n /**Invoca al core para realizar la validaicon del otp. */\r\n ejecutaValidacionOtp() {\r\n this.msgs = [];\r\n if (this.enejecucion) {\r\n return;\r\n }\r\n this.enejecucion = true;\r\n\r\n const metadataMantenimiento = new Object();\r\n const cmoduloorg = this.localStorageService.getItem('m');\r\n const ctransaccionorg = this.localStorageService.getItem('t');\r\n metadataMantenimiento['CODMODULOORIGEN'] = cmoduloorg;\r\n metadataMantenimiento['CODTRANSACCIONORIGEN'] = ctransaccionorg;\r\n metadataMantenimiento['cmodulo'] = 23;\r\n metadataMantenimiento['ctransaccion'] = 4;\r\n metadataMantenimiento['claveotp'] = this.cseg;\r\n\r\n this.dtoServicios.ejecutarRestMantenimiento(metadataMantenimiento, '', 'validacionotp').subscribe(\r\n resp => {\r\n this.dtoServicios.llenarMensaje(resp, true);\r\n this.manejaRespuestaOtp(resp);\r\n this.enejecucion = false;\r\n },\r\n error => {\r\n this.enejecucion = false;\r\n this.dtoServicios.manejoError(error);\r\n }\r\n );\r\n }\r\n\r\n /**Manejo respuesta de ejecucion de login. */\r\n private manejaRespuestaOtp(resp: any) {\r\n const msgs = [];\r\n if (resp.cod === 'OK') {\r\n this.appService.modelo = {};\r\n if (resp.resultadovalidaotp !== null && resp.resultadovalidaotp !== undefined) {\r\n this.appService.validarotp = !resp.resultadovalidaotp;\r\n this.localStorageService.setItem('validarotp', !resp.resultadovalidaotp + '');\r\n }\r\n\r\n if (!this.appService.validarotp && !this.appService.cambiopassword) {\r\n msgs.push({ severity: 'success', summary: 'INGRESO EXITOSO, BIENVENIDO: ' + this.dtoServicios.mradicacion.cusuario, detail: '' });\r\n this.dtoServicios.mostrarMensaje(msgs);\r\n }\r\n if (this.appService.cambiopassword) {\r\n msgs.push({ severity: 'success', summary: 'CAMBIO DE CONTRASEÑA REQUERIDO PARA EL USUARIO: ' + this.dtoServicios.mradicacion.cusuario, detail: '' });\r\n this.dtoServicios.mostrarMensaje(msgs);\r\n }\r\n }\r\n }\r\n\r\n public cancelar() {\r\n this.dtoServicios.encerarCredencialesLogin();\r\n location.reload();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nimport { DtoServicios } from '../../../../servicios/dto.servicios';\r\nimport { Consulta } from '../../../../dto/dto.component';\r\nimport { Mantenimiento } from '../../../../dto/dto.component';\r\nimport { BaseComponent } from '../../../../shared/componentes/base.component';\r\nimport { AppService } from '../../../../servicios/app.service';\r\nimport { SelectItem } from 'primeng/primeng';\r\nimport { environment } from 'environments/environment';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-subscripcion',\r\n templateUrl: 'subscripcion.html'\r\n})\r\nexport class SubscripcionComponent extends BaseComponent implements OnInit, AfterViewInit {\r\n\r\n /**Variable que indica que el usuario esta en modo registro*/\r\n public registrousuario = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 0 de registro*/\r\n public regpaso0 = false;\r\n public valpaso0 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 1 de registro*/\r\n public regpaso1 = false;\r\n public valpaso1 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 2 de registro*/\r\n public regpaso2 = false;\r\n public valpaso2 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 3 de registro*/\r\n public regpaso3 = false;\r\n public valpaso3 = false;\r\n\r\n public finalizo = false;\r\n\r\n public cmodulo = null;\r\n\r\n public ctransaccion = null;\r\n\r\n constructor(public localStorageService: LocalStorageService, router: Router, dtoServicios: DtoServicios, public appService: AppService,private domSanitizer: DomSanitizer) {\r\n super(localStorageService, router, dtoServicios, 'TbanSuscripcion', 'TBANSUSCRIPCION', true, true);\r\n this.urlterminos=this.domSanitizer.bypassSecurityTrustResourceUrl(environment.terminos);\r\n }\r\n urlterminos:any;\r\n ngOnInit() {\r\n this.componentehijo = this;\r\n super.init();\r\n }\r\n\r\n \r\n validateInput(event: any) {\r\n const key = event.key;\r\n const isValidKey = (key >= '0' && key <= '9') || key === 'Backspace'; // Verifica si la tecla presionada es un número o la tecla de retroceso (Backspace)\r\n const inputValue = event.target.value;\r\n \r\n const isPasteEvent = (event.type === 'paste') || (event.ctrlKey && key === 'v'); // Verifica si el evento es de tipo \"pegar\" o si se presiona Ctrl + V\r\n \r\n if (!isValidKey || (isValidKey && inputValue.length >= 12 && !isPasteEvent)) {\r\n event.preventDefault(); // Evita la entrada del carácter no válido o si se alcanza la longitud máxima del campo (excepto en eventos de pegar con Ctrl + V)\r\n }\r\n }\r\n \r\n\r\n restrictLowerCase(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n input.value = input.value.toUpperCase();\r\n event.preventDefault();\r\n }\r\n \r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n crearNuevo() {\r\n super.crearNuevo();\r\n this.registro.estatuscusuarioccatalogo = 2301;\r\n\r\n /**Variable que indica que el usuario esta en el paso 0 de registro*/\r\n this.regpaso0 = false;\r\n this.valpaso0 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 1 de registro*/\r\n this.regpaso1 = false;\r\n this.valpaso1 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 2 de registro*/\r\n this.regpaso2 = false;\r\n this.valpaso2 = false;\r\n\r\n /**Variable que indica que el usuario esta en el paso 3 de registro*/\r\n this.regpaso3 = false;\r\n this.valpaso3 = false;\r\n }\r\n\r\n actualizar() {\r\n super.actualizar();\r\n }\r\n\r\n eliminar() {\r\n // NO APLICA\r\n }\r\n\r\n cancelar() {\r\n super.cancelar();\r\n }\r\n\r\n public selectRegistro(registro: any) {\r\n super.selectRegistro(registro);\r\n }\r\n\r\n // Inicia CONSULTA *********************\r\n consultar() {\r\n\r\n }\r\n\r\n public cancelarRegistroUsuario() {\r\n this.lregistros = [];\r\n \r\n this.encerarMensajes();\r\n this.registrousuario = false;\r\n this.regpaso1 = false;\r\n this.regpaso2 = false;\r\n this.regpaso3 = false;\r\n this.finalizo = false;\r\n }\r\n\r\n ejecutaValidaDatosSocio() {\r\n this.encerarMensajes();\r\n this.cmodulo = 23;\r\n this.ctransaccion = 1;\r\n\r\n this.selectRegistro(this.registro);\r\n this.registro.estatuscusuariocdetalle = 'VAL';\r\n this.actualizar();\r\n this.grabar();\r\n }\r\n\r\n ejecutaValidaCredenciales() {\r\n this.encerarMensajes();\r\n this.cmodulo = 23;\r\n this.ctransaccion = 7;\r\n\r\n this.selectRegistro(this.registro);\r\n this.registro.estatuscusuariocdetalle = 'VAL';\r\n this.actualizar();\r\n this.grabar();\r\n }\r\n\r\n ejecutaActualizaDatos() {\r\n this.encerarMensajes();\r\n this.cmodulo = 23;\r\n this.ctransaccion = 8;\r\n\r\n this.selectRegistro(this.registro);\r\n this.registro.cusuario=this.registro.identificacion;\r\n this.registro.estatuscusuariocdetalle = 'VAL';\r\n this.actualizar();\r\n this.grabar();\r\n }\r\n\r\n ejecutaValidaClaveOtp() {\r\n this.encerarMensajes();\r\n this.cmodulo = 23;\r\n this.ctransaccion = 2;\r\n\r\n this.selectRegistro(this.registro);\r\n this.registro.estatuscusuariocdetalle = 'OTP';\r\n this.actualizar();\r\n\r\n this.rqMantenimiento['claveotp'] = this.mcampos.claveotp;\r\n this.grabar();\r\n }\r\n\r\n ejecutaCrearUsuario() {\r\n this.cmodulo = 23;\r\n this.ctransaccion = 3;\r\n\r\n // this.registro.cusuario = this.registro.identificacion;\r\n\r\n if (this.registro.password !== this.mcampos.claveconf) {\r\n this.mostrarMensajeError('LAS CLAVES INGRESADAS NO COINCIDEN');\r\n return;\r\n }\r\n\r\n this.selectRegistro(this.registro);\r\n this.registro.estatuscusuariocdetalle = 'ACT';\r\n this.actualizar();\r\n\r\n this.rqMantenimiento['claveconf'] = this.mcampos.claveconf;\r\n this.grabar();\r\n }\r\n\r\n // Inicia MANTENIMIENTO *********************\r\n grabar(): void {\r\n this.rqMantenimiento['CODMODULOORIGEN'] = this.cmodulo;\r\n this.rqMantenimiento['CODTRANSACCIONORIGEN'] = this.ctransaccion;\r\n this.rqMantenimiento['cmodulo'] = this.cmodulo;\r\n this.rqMantenimiento['ctransaccion'] = this.ctransaccion;\r\n\r\n this.lmantenimiento = []; // Encerar Mantenimiento\r\n this.crearDtoMantenimiento();\r\n\r\n const rqMan = this.getRequestMantenimiento();\r\n this.dtoServicios.ejecutarServicioBancaLinea(rqMan, this.cmodulo, this.ctransaccion)\r\n .subscribe(\r\n (resp:any) => {\r\n if (resp.cod === 'OK') {\r\n this.grabo = true;\r\n }\r\n this.encerarMensajes();\r\n this.respuestacore = resp;\r\n this.componentehijo.postCommit(resp);\r\n this.dtoServicios.llenarMensaje(resp, true, this.limpiamsgpeticion); // solo presenta errores.\r\n this.enproceso = false;\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n this.grabo = false;\r\n });\r\n }\r\n\r\n public crearDtoMantenimiento() {\r\n const mantenimiento = super.getMantenimiento(1);\r\n super.addMantenimientoPorAlias(this.alias, mantenimiento);\r\n }\r\n\r\n public postCommit(resp: any) {\r\n super.postCommitEntityBean(resp);\r\n\r\n if (resp.cod === 'OK') {\r\n if (this.ctransaccion === 7) {\r\n this.valpaso0 = true;\r\n this.regpaso0 = false;\r\n this.regpaso1 = true;\r\n this.regpaso2 = false;\r\n this.regpaso3 = false;\r\n this.mostrarMensajeSuccess('VALIDACIÓN DE CREDENCIALES DEL PARTÍCIPE EXITOSO');\r\n if (!this.estaVacio(resp.email)) {\r\n this.registro.email = resp.email;\r\n }\r\n if (!this.estaVacio(resp.celular)) {\r\n this.registro.mdatos.celular = resp.celular;\r\n }\r\n } else if (this.ctransaccion === 8) {\r\n this.valpaso1 = true;\r\n this.regpaso0 = false;\r\n this.regpaso1 = false;\r\n this.regpaso2 = true;\r\n this.regpaso3 = false;\r\n this.mostrarMensajeSuccess('ACTUALIZACIÓN DE DATOS DEL PARTÍCIPE EXITOSO');\r\n } else if (this.ctransaccion === 2) {\r\n this.valpaso2 = true;\r\n this.regpaso0 = false;\r\n this.regpaso1 = false;\r\n this.regpaso2 = false;\r\n this.regpaso3 = true;\r\n this.mostrarMensajeSuccess('VALIDACIÓN OTP EXITOSA');\r\n } else if (this.ctransaccion === 3) {\r\n this.valpaso3 = true;\r\n this.regpaso3 = false;\r\n this.finalizo = true;\r\n this.mostrarMensajeSuccess('REGISTRO DE USUARIO EXITOSO');\r\n }\r\n }\r\n }\r\n\r\n public hasTwoDigits(password: string): boolean {\r\n const digitRegex = /\\d/g; // Expresión regular para buscar dígitos\r\n const matches = password.match(digitRegex); // Buscar coincidencias de dígitos en la contraseña\r\n \r\n return matches && matches.length >= 2; // Verificar si se encontraron al menos 2 dígitos\r\n }\r\n \r\n\r\n}\r\n","module.exports = \"
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t

      REGISTRO DE USUARIO PORTAL DE SERVICIOS

      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\tIdentificación del\\r\\n\\t\\t\\t\\t\\t\\t\\tpartícipe\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\tActualización de\\r\\n\\t\\t\\t\\t\\t\\t\\tdatos\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
      Usuario no tiene registrado número de célular contactarse\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tcon el Fondo del Municipio de Quito
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\tValidación OTP\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\tCreación de usuario\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tPOLÍTICA DE SEGURIDAD\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t\\t
      1. La contraseña debe tener mínimo [9] caracter(es)
      2. \\r\\n \\t\\t\\t\\t\\t\\t\\r\\n \\t\\t\\t\\t\\t\\t
      3. La contraseña debe tener mínimo [2] número(s)
      4. \\r\\n \\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t
      La contraseña debe tener al menos 9 caracteres y contener al menos 2 números.
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \"","import {NgModule} from '@angular/core';\r\nimport {SharedModule} from '../../../../util/shared/shared.module';\r\nimport {SubscripcionRoutingModule} from './subscripcion.routing';\r\nimport { SubscripcionComponent } from './componentes/subscripcion.component';\r\n\r\n@NgModule({\r\n imports: [SharedModule, SubscripcionRoutingModule],\r\n declarations: [SubscripcionComponent],\r\n exports: [SubscripcionComponent]\r\n})\r\nexport class SubscripcionModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { SubscripcionComponent } from './componentes/subscripcion.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: SubscripcionComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SubscripcionRoutingModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { StorageService } from '../../servicios/storage.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n constructor(private storageService: StorageService) { }\r\n setItem(key: string, value: any) {\r\n this.storageService.secureStorage.setItem(key, value);\r\n }\r\n getItem(key: string) {\r\n return this.storageService.secureStorage.getItem(key);\r\n }\r\n clearToken() {\r\n return this.storageService.secureStorage.clear();\r\n }\r\n clear() {\r\n return this.storageService.secureStorage.clear();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport {Message} from 'primeng/primeng';\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n private subject = new Subject();\r\n\r\n /**\r\n * Formato del mensaje: {mostrar:true, msg:\"\"}\r\n */\r\n private muestraAlerta = new Subject ();\r\n \r\n private keepAfterNavigationChange = false;\r\n \r\n constructor(private router: Router) {\r\n // clear alert message on route change\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n if (this.keepAfterNavigationChange) {\r\n // only keep for a single location change\r\n this.keepAfterNavigationChange = false;\r\n } else {\r\n // clear alert\r\n this.subject.next();\r\n this.muestraAlerta.next({mostrar: false, msg: ''});\r\n }\r\n }\r\n });\r\n }\r\n\r\n mostrarMensaje(messages: Message[], pKeepAfterNavigationChange = false) {\r\n if (messages.length <= 0 || messages[0].severity === undefined) {\r\n // return;\r\n // Este return no va, para que limpie el mensaje previo, ejemplo en una consulta da error y la proxima consulta ya no tiene error\r\n // tiene encerar el mensaje.\r\n }\r\n this.keepAfterNavigationChange = pKeepAfterNavigationChange;\r\n this.subject.next(messages);\r\n }\r\n\r\n mostrarAlerta(mensaje, logout = false) {\r\n this.muestraAlerta.next({mostrar: !logout, mostrarlogout: logout, msg: mensaje});\r\n }\r\n\r\n\r\n\r\n obtenerMensaje(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n obtenerMuestraAlerta(): Observable {\r\n return this.muestraAlerta.asObservable();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Routes, Router, ActivatedRoute, RouterModule, provideRoutes} from '@angular/router';\r\nimport {DtoServicios} from './dto.servicios';\r\nimport {SelectItem} from 'primeng/primeng';\r\nimport {Message} from 'primeng/primeng';\r\nimport {MenuItem} from 'primeng/primeng';\r\nimport {VerificaAutorizacionService} from '../../util/servicios/verificaAutorizacion.service';\r\nimport {InicioComponent} from '../../sobre/inicio/componentes/inicio.component';\r\nimport {ReloadComponent} from '../seguridad/componentes/login/componentes/reload.component';\r\nimport {CambioContraseniaLoginComponent} from '../../util/seguridad/componentes/cambiocontrasenialogin/componentes/cambioContraseniaLogin.component';\r\nimport { LocalStorageService } from '../seguridad/sesion/localStorageService';\r\n\r\n\r\n@Injectable()\r\nexport class AppService {\r\n public modelo: any = {};\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n /**Menu asociado a un rol del usuario.*/\r\n lmenu: any = [];\r\n /**false, indica que el usuario no ingresa a la aplicacion, true el usuario esta en la aplicacion y se muestra el menu.*/\r\n public login = false;\r\n\r\n /**Varible que valida la la clave del otp*/\r\n public validarotp = true;\r\n /**Variable que valida el olvido contrasenia*/\r\n public validarclavetemp = false;\r\n /**Varible que valida la la clave del otp*/\r\n public cambiopassword = false;\r\n\r\n /**Varible de referencia al componente de cambio de password*/\r\n public cambiocontraseniacomponent: CambioContraseniaLoginComponent;\r\n\r\n /**Lista de roles del usuario.*/\r\n public lrolesusuario: SelectItem[] = [{label: '...', value: null}];\r\n /**Codigo de rol activo*/\r\n public crol: any;\r\n /**Nombre de rol activo*/\r\n public nrol: any;\r\n /**Nombre de rol activo*/\r\n public npersona: any;\r\n /** Menu asociado al rol */\r\n menu: MenuItem[];\r\n\r\n muestraRoles = false;\r\n\r\n muestraUserInfo = false;\r\n\r\n public titulopagina = '';\r\n\r\n /**Rutas por defecto**/\r\n public appRutasDefecto: Routes = [\r\n {path: '23-6', loadChildren: 'app/modulos/seguridad/cambiocontrasenia/cambioContrasenia.module#CambioContraseniaModule', canActivate: [VerificaAutorizacionService] },\r\n {path: '', component: InicioComponent, canActivate: [VerificaAutorizacionService]},\r\n {path: 'reload', component: ReloadComponent},\r\n {path: '**', redirectTo: ''},\r\n ];\r\n\r\n\r\n constructor(public router: Router, public dtoServicios: DtoServicios, public localStorageService:LocalStorageService ) {}\r\n\r\n /**Metodo que se ejecuta en el bootstrap de la aplicacion, o al salir de la aplicacion. */\r\n public salir(event = null): void {\r\n this.msgs = [];\r\n this.modelo = {};\r\n if (event !== null && event !== undefined) {\r\n event.preventDefault();\r\n }\r\n this.dtoServicios.logout();\r\n this.login = false;\r\n }\r\n\r\n /**Metodo que se ejecuta en el bootstrap de la aplicacion, o dar la ruta hacia cambio de password. */\r\n public cambioPassword(event = null): void {\r\n this.msgs = [];\r\n\r\n if (event !== null && event !== undefined) {\r\n event.preventDefault();\r\n }\r\n\r\n this.localStorageService.setItem('m', '23');\r\n this.localStorageService.setItem('t', '6');\r\n this.localStorageService.setItem('titulo', '23-6 Cambio De Constraseña');\r\n this.localStorageService.setItem('ins', 'true');\r\n this.localStorageService.setItem('upd', 'true');\r\n this.localStorageService.setItem('del', 'false');\r\n this.localStorageService.setItem('ac', 'false');\r\n this.localStorageService.setItem('path', '23-6');\r\n\r\n this.router.navigate(['23-6'], {skipLocationChange: true});\r\n this.titulopagina = '23-6 Cambio De Constraseña';\r\n }\r\n public paginaInicio(event = null): void {\r\n this.msgs = [];\r\n\r\n if (event !== null && event !== undefined) {\r\n event.preventDefault();\r\n }\r\n\r\n this.localStorageService.setItem('m', '23');\r\n this.localStorageService.setItem('t', '204');\r\n this.localStorageService.setItem('titulo', ' Inicio');\r\n this.localStorageService.setItem('ins', 'true');\r\n this.localStorageService.setItem('upd', 'true');\r\n this.localStorageService.setItem('del', 'false');\r\n this.localStorageService.setItem('ac', 'false');\r\n this.localStorageService.setItem('path', '23-204');\r\n\r\n this.router.navigate(['23-204'], {skipLocationChange: true});\r\n this.titulopagina = '23-204 Inicio';\r\n }\r\n\r\n // Lista de datos roles de usuario a utlizar en la pagina.\r\n public llenarRolesUsuario(lroles: any): void {\r\n this.lrolesusuario = [];\r\n for (const i in lroles) {\r\n if (lroles.hasOwnProperty(i)) {\r\n const reg = lroles[i];\r\n this.lrolesusuario.push({label: reg.name, value: reg.id});\r\n }\r\n }\r\n if (this.lrolesusuario != null && this.lrolesusuario.length > 0) {\r\n this.crol = this.lrolesusuario[0].value;\r\n this.nrol = this.lrolesusuario[0].label;\r\n }\r\n }\r\n\r\n /**Invoca al core para realizar login de la aplicacion. */\r\n public consultarMenu() {\r\n this.msgs = [];\r\n const rqConsulta: any = new Object();\r\n rqConsulta.CODIGOCONSULTA = 'MENU';\r\n rqConsulta.crol = this.crol;\r\n rqConsulta.angular = 'Y'; // para que reorne el menu en formato json\r\n rqConsulta.cmodulo = '23';\r\n rqConsulta.ctransaccion = '2';\r\n this.dtoServicios.ejecutarConsultaRest(rqConsulta, '', 'menu')\r\n .subscribe(\r\n resp => {\r\n this.manejaRespuestaMenu(resp);\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n });\r\n }\r\n\r\n /**Manejo respuesta de ejecucion de login. */\r\n private manejaRespuestaMenu(resp: any) {\r\n this.msgs = [];\r\n if (resp.cod === 'OK') {\r\n this.menu = resp.menu;\r\n this.login = true;\r\n\r\n for (const i in resp.rutas) {\r\n if (resp.rutas.hasOwnProperty(i)) {\r\n resp.rutas[i].canActivate[0] = VerificaAutorizacionService;\r\n }\r\n }\r\n for (const i in this.appRutasDefecto) {\r\n if (this.appRutasDefecto.hasOwnProperty(i)) {\r\n resp.rutas.push(this.appRutasDefecto[i]);\r\n }\r\n }\r\n while (this.router.config.length > 0) {\r\n this.router.config.pop();\r\n }\r\n this.router.resetConfig(resp.rutas);\r\n this.paginaInicio(null);\r\n }\r\n if (resp.cod !== 'OK') {\r\n let msg = '';\r\n msg = resp.cod !== undefined ? msg = msg + resp.cod + ' ' : msg + ' ';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n this.dtoServicios.llenarMensaje(resp, false);\r\n }\r\n \r\n }\r\n\r\n /** Regenera el objeto que tiene la radicacion del usuario. */\r\n public fijarRadicacion(mradicacion: any) {\r\n let c: string;\r\n c = mradicacion.cc + '^' + mradicacion.cs + '^' + mradicacion.cag + '^' + mradicacion.cu + '^';\r\n c = c + this.crol + '^' + mradicacion.ci + '^' + mradicacion.cca;\r\n this.localStorageService.setItem('c', c);\r\n this.localStorageService.setItem('mradicacion', JSON.stringify(mradicacion));\r\n }\r\n\r\n public cargarRol(item: any) {\r\n this.crol = item.value;\r\n this.nrol = item.label;\r\n const mradicacion = JSON.parse(this.localStorageService.getItem('mradicacion'));\r\n this.fijarRadicacion(mradicacion);\r\n this.consultarMenu();\r\n this.mostrarRoles();\r\n }\r\n\r\n public mostrarRoles() {\r\n this.muestraRoles = !this.muestraRoles;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport 'rxjs/add/operator/first';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { map, take } from 'rxjs/operators';\r\nimport { Mantenimiento } from '../../util/dto/dto.component';\r\nimport { AlertService } from '../../util/servicios/alert.service';\r\nimport { Routes, Router, ActivatedRoute } from '@angular/router';\r\nimport { Message } from 'primeng/primeng';\r\nimport { LocalStorageService } from '../seguridad/sesion/localStorageService';\r\n\r\n@Injectable()\r\nexport class Radicacion {\r\n public ccompania: number;\r\n public csucursal: number;\r\n public cagencia: number;\r\n public cusuario: string;\r\n public ccanal: string;\r\n public ncompania: string;\r\n public nsucursal: string;\r\n public nagencia: string;\r\n public timeoutminutos: number;\r\n public timeoutsegundos: number;\r\n public fcontable: number;\r\n public cpersona: number;\r\n public np: string;\r\n public ftrabajo: string;\r\n public nambiente;\r\n\r\n constructor(ccompania: number, csucursal: number, cagencia: number, cusuario: string, ccanal: string, ncompania: string) {\r\n this.ccompania = ccompania;\r\n this.csucursal = csucursal;\r\n this.cagencia = cagencia;\r\n this.cusuario = cusuario;\r\n this.ccanal = ccanal;\r\n this.ncompania = ncompania;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class DtoServicios {\r\n //config: any = { 'host': 'http://localhost', 'port': '8082', 'context': '/atlas-rest/servicioRest' };\r\n //config: any = { 'host': 'http://192.168.50.99', 'port': '8081', 'context': '/WebApiCore/atlas-rest/servicioRest' };\r\n config: any = { 'host': 'https://fondosconsultasmdmq.com', 'port': '11443', 'context': '/WebApiCore/atlas-rest/servicioRest'};\r\n\r\n\r\n public urlConsultar = '';\r\n public urlMantener = '';\r\n public urlLogin = '';\r\n\r\n /**Objeto que gurada datos temporales utiiados en la transaccion. */\r\n public mradicacion: Radicacion;\r\n\r\n public ipreal = ' ';\r\n\r\n public mostrarDialogoLoading = false;\r\n public mostrarDialogoLoadingTemp = false;\r\n\r\n public mensajeDialogTemp = ' ';\r\n\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n\r\n /**Variables de timeout. */\r\n public minutos: number;\r\n public segundos: number;\r\n public intervalID: any;\r\n public logeado = false;\r\n\r\n\r\n\r\n constructor(public localStorageService: LocalStorageService, public http: HttpClient, public router: Router, public alertService: AlertService) {\r\n this.urlLogin = this.urlLogin + this.config.host + ':' + this.config.port + '' + this.config.context + '/login';\r\n //this.timeout();\r\n }\r\n\r\n public timeout() {\r\n this.resetTimer();\r\n this.intervalID = setInterval(() => this.tick(), 1000);\r\n }\r\n\r\n public tick(): void {\r\n if (--this.segundos < 0) {\r\n this.segundos = 59;\r\n if (--this.minutos < 0) {\r\n this.logout()\r\n }\r\n }\r\n }\r\n\r\n public resetTimer(): void {\r\n clearInterval(this.intervalID);\r\n if (this.logeado) {\r\n this.minutos = this.mradicacion.timeoutminutos;\r\n this.segundos = this.mradicacion.timeoutsegundos;\r\n }\r\n else {\r\n this.minutos = 14;\r\n this.segundos = 59;\r\n }\r\n }\r\n\r\n public setUrlMantener(appName: any, metodo: any) {\r\n this.urlMantener = '';\r\n if (this.estaVacio(appName) && this.estaVacio(metodo)) {\r\n this.urlMantener = this.urlMantener + this.config.host + ':' + this.config.port + '' + this.config.context + '/mantener';\r\n }\r\n if (this.estaVacio(appName) && !this.estaVacio(metodo)) {\r\n this.urlMantener = this.urlMantener + this.config.host + ':' + this.config.port + '' + this.config.context + '/' + metodo;\r\n }\r\n if (!this.estaVacio(appName) && this.estaVacio(metodo)) {\r\n this.urlMantener = this.urlMantener + this.config.host + ':' + this.config.port + '/' + appName + this.config.context + '/mantener';\r\n }\r\n if (!this.estaVacio(appName) && !this.estaVacio(metodo)) {\r\n this.urlMantener = this.urlMantener + this.config.host + ':' + this.config.port + '/' + appName + this.config.context + '/' + metodo;\r\n }\r\n }\r\n\r\n public setUrlConsultar(appName: any, metodo: any) {\r\n this.urlConsultar = '';\r\n if (this.estaVacio(appName) && this.estaVacio(metodo)) {\r\n this.urlConsultar = this.urlConsultar + this.config.host + ':' + this.config.port + '' + this.config.context + '/consultar';\r\n }\r\n if (this.estaVacio(appName) && !this.estaVacio(metodo)) {\r\n this.urlConsultar = this.urlConsultar + this.config.host + ':' + this.config.port + '' + this.config.context + '/' + metodo;\r\n }\r\n if (!this.estaVacio(appName) && this.estaVacio(metodo)) {\r\n this.urlConsultar = this.urlConsultar + this.config.host + ':' + this.config.port + '/' + appName + this.config.context + '/consultar';\r\n }\r\n if (!this.estaVacio(appName) && !this.estaVacio(metodo)) {\r\n this.urlConsultar = this.urlConsultar + this.config.host + ':' + this.config.port + '/' + appName + this.config.context + '/' + metodo;\r\n }\r\n\r\n }\r\n\r\n public dateParser(key, value) {\r\n const reISOFull = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/;\r\n const reISO = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})?$/;\r\n\r\n if (typeof value === 'string' && value.indexOf(':00:00') > 0) {\r\n //const a = reISOFull.exec(value);\r\n if (reISOFull.exec(value) || reISO.exec(value)) {\r\n const anio = value.substr(0, 4);\r\n const mes = value.substr(5, 2);\r\n const dia = value.substr(8, 2);\r\n return new Date(anio + '-' + mes + '-' + dia + ' 00:00:00');\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n public dateString(key, value) {\r\n const reISOFull = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/;\r\n const reISO = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})?$/;\r\n return value;\r\n };\r\n\r\n public obtenerIpLocal() {\r\n this.consultarIpLocal();\r\n }\r\n\r\n public consultarIpLocal() {\r\n const win: any = window;\r\n win.RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection;\r\n if (win.RTCPeerConnection === undefined) {\r\n return;\r\n }\r\n const pc: any = new RTCPeerConnection({ iceServers: [] }), noop = function () { };\r\n try {\r\n pc.createDataChannel('');\r\n pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer and set local description\r\n pc.onicecandidate = this.registraIp;\r\n } catch (e) { }\r\n }\r\n\r\n registraIp = (ice) => {\r\n if (!ice || !ice.candidate || !ice.candidate.candidate) { return };\r\n const resp = /([0-9]{1,3}(\\.[0-9]{1,3}){3})/.exec(ice.candidate.candidate);\r\n if (resp != null && resp.length > 0) {\r\n this.ipreal = resp[0];\r\n }\r\n };\r\n ejecutarServicioBancaLinea(prq: any, cmodulo, ctransaccion) {\r\n const cia = '1';\r\n let c: string = cia + '^1^1^' + 'BLINEA' + '^1^ES^' + 'BAN' + '^' + this.ipreal + '^' + cmodulo + '^' + ctransaccion;\r\n const rqLogin = new Object();\r\n prq['c'] = c;\r\n prq['vl'] = '0';\r\n\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n this.setUrlMantener(null, null);\r\n this.mostrarDialogoLoading = true;\r\n\r\n return this.http.post(this.urlMantener, prq, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) })\r\n .pipe(map(resp => {\r\n const r = resp;\r\n // this.localStorageService.setItem('jwt', resp.headers['_headers'].get('x-auth-token'));\r\n this.mostrarDialogoLoading = false;\r\n return r;\r\n }));\r\n }\r\n /**Llamar al servicio rest de consulta */\r\n public ejecutarConsultaRest(rqConsulta: Object, appName: any = null, metodo: any = null) {\r\n rqConsulta['c'] = this.getCabecera(rqConsulta);\r\n const rq = JSON.stringify(rqConsulta, this.dateString);\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n headers.append('x-auth-token', this.localStorageService.getItem('jwt'));\r\n this.setUrlConsultar(appName, metodo);\r\n this.mostrarDialogoLoading = true;\r\n\r\n\r\n return this.http.post(this.urlConsultar, rq, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) })\r\n .pipe(map((resp: any) => {\r\n const r = resp;\r\n this.mostrarDialogoLoading = false;\r\n this.timeout();\r\n return r;\r\n }));\r\n }\r\n\r\n /**Manejo de respuesta de la base de datos cuando existe un error */\r\n public handleError(error: any) {\r\n return Promise.reject(error.message || error);\r\n }\r\n public estaVacio(obj: any): boolean {\r\n if (obj === undefined || obj === null || obj === '' || (typeof obj === 'object' && !(obj instanceof Date) && Object.keys(obj).length === 0) || obj.length <= 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**Llamar al servicio rest de consulta */\r\n ejecutarRestMantenimiento(rqMan: Object, appName: any = null, metodo: any = null) {\r\n rqMan['c'] = this.getCabecera(rqMan);\r\n const rq = JSON.stringify(rqMan, this.dateString);\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n headers.append('x-auth-token', this.localStorageService.getItem('jwt'));\r\n this.setUrlMantener(appName, metodo);\r\n this.mostrarDialogoLoading = true;\r\n\r\n return this.http.post(this.urlMantener, rq, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) })\r\n .pipe(map((resp: any) => {\r\n const r = resp;\r\n this.mostrarDialogoLoading = false;\r\n this.timeout();\r\n return r;\r\n }));\r\n }\r\n\r\n /**Llamar al servicio rest de consulta */\r\n ejecutarLogin(usuario: string, password: string, canal: string, transaccion: string) {\r\n const rqLogin = this.getRequestLogin(usuario, password, canal, transaccion);\r\n const rq = JSON.stringify(rqLogin);\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n this.mostrarDialogoLoading = true;\r\n\r\n return this.http.post(this.urlLogin, rq, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), withCredentials: true })\r\n .pipe(map(resp => {\r\n const r = resp;\r\n this.mostrarDialogoLoading = false;\r\n this.timeout();\r\n return r;\r\n }));\r\n }\r\n\r\n /**Llamar al servicio rest de consulta */\r\n ejecutarRecuperarContrasenia(identificacion: string, canal: string, transaccion: string) {\r\n const rqLogin = this.getRequestLogin(identificacion, identificacion, canal, transaccion);\r\n const rq = JSON.stringify(rqLogin);\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n this.setUrlMantener('', 'mantener');\r\n this.mostrarDialogoLoading = true;\r\n return this.http.post(this.urlMantener, rq, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), withCredentials: true })\r\n .pipe(map(resp => {\r\n const r = resp;\r\n this.mostrarDialogoLoading = false;\r\n this.timeout();\r\n return r;\r\n }));\r\n }\r\n\r\n public getRequestLogin(usuario: string, password: string, canal: string, transaccion: string) {\r\n const cia = '1';\r\n \r\n let c: string = cia + '^1^1^' + usuario + '^1^ES^' + canal + '^' + this.ipreal + '^2^' + transaccion;\r\n const rqLogin = new Object();\r\n rqLogin['c'] = c;\r\n rqLogin['p'] = password;\r\n rqLogin['vl'] = '0'; // valida login\r\n return rqLogin;\r\n }\r\n\r\n public getCabecera(request: Object): string {\r\n this.obtenerIpLocal();\r\n let r: string = this.localStorageService.getItem('c');\r\n if (request.hasOwnProperty('cmodulo') && request['cmodulo'] !== undefined) {\r\n r = r + '^' + this.ipreal + '^' + request['cmodulo'] + '^' + request['ctransaccion'];\r\n } else {\r\n r = r + '^' + this.ipreal + '^' + this.localStorageService.getItem('m') + '^' + this.localStorageService.getItem('t');\r\n }\r\n return r;\r\n }\r\n\r\n logout(msg = '') {\r\n const rqLogin = new Object();\r\n rqLogin['logoutuser'] = true;\r\n rqLogin['valida-usuario-login'] = false;\r\n rqLogin['cmodulo'] = '2';\r\n rqLogin['ctransaccion'] = '1001';\r\n\r\n const rq = JSON.stringify(rqLogin);\r\n const headers = new Headers();\r\n headers.append('Content-Type', 'application/json');\r\n this.ejecutarRestMantenimiento(rqLogin, '', 'logout').subscribe(\r\n resp => {\r\n this.llenarMensaje(resp, true); // solo presenta errores.\r\n // encerar token eliminar datos de radicacion del usuario.\r\n this.encerarCredencialesLogin();\r\n location.reload();\r\n },\r\n error => {\r\n this.manejoError(error);\r\n }\r\n );\r\n }\r\n\r\n public encerarCredencialesLogin() {\r\n this.localStorageService.clear();\r\n }\r\n\r\n // Metodo que inicializa los datos cuando un usuario se autentica exitosamente\r\n actualizarRadicacion(mradicacion: any): void {\r\n this.mradicacion = new Radicacion(mradicacion.cc, mradicacion.cs, mradicacion.cag, mradicacion.cu, mradicacion.cca, mradicacion.nc);\r\n this.mradicacion.nsucursal = mradicacion.ns;\r\n this.mradicacion.nagencia = mradicacion.age;\r\n this.mradicacion.timeoutminutos = mradicacion.timeoutminutos;\r\n this.mradicacion.timeoutsegundos = mradicacion.timeoutsegundos;\r\n this.mradicacion.fcontable = mradicacion.fcontable;\r\n this.mradicacion.cpersona = mradicacion.cp;\r\n this.mradicacion.np = mradicacion.np;\r\n this.mradicacion.ftrabajo = mradicacion.ftrabajo;\r\n this.mradicacion.nambiente = mradicacion.ambiente;\r\n this.logeado = true;\r\n }\r\n\r\n\r\n // OTROS ********************************************************\r\n public llenarMensaje(resp: any, muestaexito: boolean, limpiamsg = true) {\r\n if (limpiamsg) {\r\n this.msgs = [];\r\n }\r\n if (resp.cod === 'OK') {\r\n if (muestaexito) {\r\n this.msgs.push({ severity: 'success', summary: 'TRANSACCIÓN FINALIZADA CORRECTAMENTE', detail: '' });\r\n }\r\n \r\n } else if (resp.cod === 'F-000' || resp.cod === 'BGEN-021' || resp.cod === 'SEG-031') {\r\n // Sesion expirada, realizar logout \r\n let msg = '';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n this.msgs.push({ severity: 'error', summary: msg, detail: '' });\r\n this.logout(msg);\r\n this.alertService.mostrarAlerta(msg, true);\r\n } else if (resp.cod === '000') {\r\n let msg = '';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n this.msgs.push({ severity: 'warn', summary: msg, detail: '' });\r\n } else {\r\n let msg = '';\r\n msg = resp.cod !== undefined ? msg = msg + resp.cod.startsWith('javax') ? '' : resp.cod + ' ' : msg + ' ';\r\n msg = resp.msgusu !== undefined ? msg = msg + resp.msgusu : msg + '';\r\n this.msgs.push({ severity: 'error', summary: msg, detail: '' });\r\n }\r\n this.alertService.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Fija mensaje de respuesta resultado de ejecucion de una peticion al core. */\r\n public manejoError(resp: any) {\r\n let mensaje = 'ERROR DE CONEXIÓN CON EL SERVIDOR';\r\n if (resp.message !== undefined && resp.message !== null) {\r\n mensaje = resp.message;\r\n }\r\n this.msgs = [];\r\n this.msgs.push({ severity: 'error', summary: mensaje, detail: '' });\r\n this.alertService.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Fija mensaje de respuesta resultado de ejecucion de una peticion al core. */\r\n public mostrarMensaje(msgs: Message[], persistirmsg = false, acumular = false) {\r\n if (!acumular) {\r\n this.msgs = msgs;\r\n } else {\r\n this.msgs = this.msgs.concat(msgs);\r\n }\r\n this.alertService.mostrarMensaje(this.msgs, persistirmsg);\r\n }\r\n\r\n}\r\n","import { Injectable, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { AlertService } from '../../util/servicios/alert.service';\r\nimport { SocketimpresionService } from './socketimpresion.service';\r\nimport { Message } from 'primeng/primeng';\r\n/**\r\n * Servicio para enviar a imprimir directamenta a una impresora\r\n * \r\n * Comandos:\r\n * conectar -> Realiza la conexion a la impresora\r\n * imprimir -> Ejecuta, envia a realizar una impresion\r\n */\r\n@Injectable()\r\nexport class ImpresionService {\r\n private subject = new Subject();\r\n public hostnameimpresora: string = 'EPSON TM-U220';\r\n public servidorconectado: boolean = false;\r\n private numintentos = 3;\r\n private controlintentos = 0;\r\n\r\n constructor(public alertService: AlertService, private wss: SocketimpresionService) {\r\n this.subject.next('SERVIDOR DESCONECTADO');\r\n this.inicializarWebSocket();\r\n }\r\n\r\n public inicializarWebSocket() {\r\n this.wss.obtenerListener().subscribe(event => {\r\n if (event.tipo == 'message') {\r\n let data = event.data;\r\n if (event.data.sender) {\r\n data = event.data.sender + ': ' + data;\r\n }\r\n const msgsrv = JSON.parse(data);\r\n this.subject.next(msgsrv.summary);\r\n const msgs: Message[] = [];\r\n msgs.push(JSON.parse(data));\r\n this.alertService.mostrarMensaje(msgs);\r\n }\r\n if (event.tipo == 'close') {\r\n this.servidorconectado = false;\r\n this.subject.next('SERVIDOR DESCONECTADO');\r\n const msgs: Message[] = [{ severity: 'error', summary: 'CLIENTE IMPRESORA: SERVIDOR DE IMPRESIÓN DESCONECTADO', detail: '' }];\r\n this.alertService.mostrarMensaje(msgs);\r\n this.controlintentos = this.controlintentos + 1;\r\n if (this.controlintentos <= this.numintentos) {\r\n this.conectarServidorImpresion();\r\n }\r\n }\r\n if (event.tipo == 'open') {\r\n this.servidorconectado = true;\r\n this.subject.next('SERVIDOR CONECTADO');\r\n this.controlintentos = 0;\r\n // let msgs : Message[] = [{ severity: 'info', summary: 'CLIENTE IMPRESORA: SERVIDOR DE IMPRESIÓN CONECTADO EXITOSAMENTE', detail: '' }];\r\n // this.alertService.mostrarMensaje(msgs);\r\n }\r\n });\r\n }\r\n\r\n conectarServidorImpresion(): void {\r\n this.wss.conectar();\r\n }\r\n\r\n imprimirTexto(jsonimprimir: any) {\r\n const request = new Object();\r\n request['datos'] = jsonimprimir;\r\n request['comando'] = 'imprimir';\r\n request['hostnameimpresora'] = this.hostnameimpresora;\r\n\r\n const resp = this.wss.enviar(JSON.stringify(request));\r\n const msgs: Message[] = [{ severity: resp['severity'], summary: resp['mensaje'], detail: '' }];\r\n this.alertService.mostrarMensaje(msgs);\r\n if (resp['severity'] !== undefined && resp['severity'] === 'success') {\r\n return true;\r\n }\r\n return false; // Retorna falso cuando existe algun error en la impresion.\r\n }\r\n\r\n obtenerObservable(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class SocketimpresionService {\r\n\r\n private socket: WebSocket;\r\n private listener: EventEmitter = new EventEmitter();\r\n private url: string = 'ws://localhost:8111/servidorimpresora/api/*';\r\n\r\n public constructor() {\r\n }\r\n\r\n public conectar(): void {\r\n if (this.socket !== undefined && this.socket.readyState !== WebSocket.CLOSED) {\r\n return;\r\n }\r\n this.socket = new WebSocket(this.url);\r\n this.socket.onopen = event => {\r\n this.listener.emit({ 'tipo': 'open', 'data': event });\r\n };\r\n this.socket.onclose = event => {\r\n this.listener.emit({ 'tipo': 'close', 'data': event });\r\n };\r\n this.socket.onmessage = event => {\r\n this.listener.emit({ 'tipo': 'message', 'data': event.data });\r\n };\r\n }\r\n\r\n public enviar(data: string): Object {\r\n if (this.socket === undefined || this.socket.readyState === WebSocket.CLOSED) {\r\n return {mensaje: 'SERVIDOR DE IMPRESORA NO CONECTADO', severity: 'error'};\r\n }\r\n this.socket.send(data);\r\n return {mensaje: 'ENVIADO A LA COLA DE IMPRESIÓN', severity: 'success'};\r\n }\r\n\r\n public cerrar() {\r\n this.socket.close();\r\n }\r\n\r\n public obtenerListener() {\r\n return this.listener;\r\n }\r\n\r\n}\r\n","import * as CryptoJS from 'crypto-js';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nconst SecureStorage = require('secure-web-storage');\r\n\r\nconst SECRET_KEY: any = environment.secretLocalStorage;\r\n\r\n@Injectable()\r\nexport class StorageService {\r\n\r\n constructor() {\r\n }\r\n\r\n public secureStorage = new SecureStorage(sessionStorage, {\r\n hash: function hash(key) {\r\n key = CryptoJS.SHA256(key, SECRET_KEY);\r\n return key.toString();\r\n },\r\n encrypt: function encrypt(data) {\r\n try {\r\n data = CryptoJS.AES.encrypt(data, SECRET_KEY);\r\n data = data.toString();\r\n return data;\r\n } catch (ex) {\r\n data = \"\";\r\n return data;\r\n }\r\n },\r\n decrypt: function decrypt(data) {\r\n try {\r\n data = CryptoJS.AES.decrypt(data, SECRET_KEY);\r\n data = data.toString(CryptoJS.enc.Utf8);\r\n return data;\r\n } catch (ex) {\r\n data = \"\";\r\n return data;\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { InicioComponent } from '../../sobre/inicio/componentes/inicio.component';\r\nimport { LocalStorageService } from '../seguridad/sesion/localStorageService';\r\n\r\n/**\r\n * Clase que se encarga de verificar si el usuario ha realizado login en la aplicacion.\r\n * si no ha realizado un login carga la pagina de login.\r\n */\r\n@Injectable()\r\nexport class VerificaAutorizacionService implements CanActivate {\r\n\r\n constructor(private router: Router, public localStorageService:LocalStorageService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n // contien los datos minimos con los que se ejecuta una transacción en el core.\r\n if (this.localStorageService.getItem('mradicacion') && this.localStorageService.getItem('mradicacion') !== '') {\r\n // logged in so return true\r\n return true;\r\n }\r\n if (route.component === undefined || route.component['name'] !== 'InicioComponent') {\r\n // si no esta logeado, muestra la pagina de recargar\r\n // this.router.navigate(['/reload'], { queryParams: { returnUrl: state.url}, skipLocationChange: true});\r\n }\r\n this.localStorageService.clear();\r\n return false;\r\n }\r\n}\r\n","import { SoloFechaPipe } from './../pipe/solofecha.pipe';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport {\r\n InputTextModule, MenuModule, ButtonModule, MessagesModule, InputMaskModule, DataTableModule, DialogModule, FieldsetModule,\r\n PanelModule, DropdownModule, CheckboxModule, RadioButtonModule, TabViewModule, AccordionModule, CalendarModule, FileUploadModule\r\n} from 'primeng/primeng';\r\n\r\n\r\nimport { MayusculasDirective } from '../directivas/mayusculas.directive';\r\nimport { EnteroDirective } from '../directivas/entero.directive';\r\nimport { FocoDirective } from '../directivas/foco.directive';\r\nimport { NumeroDirective } from '../directivas/numero/numero.directive';\r\nimport { NumeroPositivoDirective } from '../directivas/numero/numeroPositivo.directive';\r\nimport { NumeroDecimal7Directive } from '../directivas/numero/numeroDecimal7.directive';\r\nimport { EnteroGuionDirective } from '../directivas/enteroGuion.directive';\r\nimport { LetrasDirective } from '../directivas/letras.directive';\r\nimport { FechaEnteroPipe } from '../pipe/fechaentero.pipe';\r\nimport { EnteroFechaFormatoPipe } from '../pipe/fechaenteroformato';\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [MayusculasDirective, EnteroDirective, FocoDirective, NumeroDirective,EnteroFechaFormatoPipe, FechaEnteroPipe, LetrasDirective, NumeroPositivoDirective, NumeroDecimal7Directive, EnteroGuionDirective,SoloFechaPipe\r\n ],\r\n exports: [MayusculasDirective, EnteroDirective, FocoDirective, NumeroDirective, FechaEnteroPipe,EnteroFechaFormatoPipe, LetrasDirective, NumeroPositivoDirective, NumeroDecimal7Directive, EnteroGuionDirective,\r\n CommonModule, FormsModule, InputTextModule, MenuModule, ButtonModule, MessagesModule, InputMaskModule, DataTableModule, DialogModule,\r\n FieldsetModule, PanelModule, DropdownModule, CheckboxModule, RadioButtonModule, TabViewModule, AccordionModule, CalendarModule, FileUploadModule,SoloFechaPipe]\r\n})\r\nexport class BasicModule { }\r\n","import {Component, Input, OnInit, AfterViewInit, ViewChild} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {BaseComponent} from './base.component';\r\n\r\n@Component({\r\n selector: 'acciones-cabecera',\r\n templateUrl: 'accionesCabecera.html'\r\n})\r\n\r\nexport class AccionesCabeceraComponent {\r\n\r\n @Input()\r\n grabar: boolean = true;\r\n\r\n @Input()\r\n cargar: boolean = true;\r\n\r\n @Input()\r\n componente: BaseComponent;\r\n\r\n constructor(public router: Router) {\r\n }\r\n\r\n recargar() {\r\n this.router.navigate([''], {skipLocationChange: true});\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \"","import { Component, Input } from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\n\r\n@Component({\r\n selector: 'acciones-consulta',\r\n templateUrl: 'accionesConsulta.html'\r\n})\r\n\r\nexport class AccionesConsultaComponent {\r\n\r\n @Input()\r\n componente: BaseComponent;\r\n\r\n @Input()\r\n consulta: boolean = true;\r\n\r\n @Input()\r\n anterior: boolean = true;\r\n\r\n @Input()\r\n siguiente: boolean = true;\r\n\r\n}","module.exports = \"
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\"","import { Component, Input } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nimport { BaseComponent } from './base.component';\r\n\r\n@Component({\r\n selector: 'acciones-dialogo',\r\n templateUrl: 'accionesDialogo.html'\r\n})\r\n\r\nexport class AccionesDialogoComponent {\r\n @Input()\r\n formAcciones: NgForm;\r\n\r\n @Input()\r\n componente: BaseComponent;\r\n\r\n}\r\n","module.exports = \"\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \"","import {Component, Input} from '@angular/core';\r\nimport {NgForm} from '@angular/forms';\r\nimport {BaseComponent} from './base.component';\r\n\r\n@Component({\r\n selector: 'acciones-editar',\r\n templateUrl: 'accionesEditar.html'\r\n})\r\n\r\nexport class AccionesEditarComponent {\r\n @Input()\r\n formAcciones: NgForm;\r\n\r\n @Input()\r\n componentes: BaseComponent[];\r\n\r\n habilitarEdicion(): void {\r\n for (const i in this.componentes) {\r\n if (this.componentes.hasOwnProperty(i) && this.componentes[i].esform) {\r\n this.componentes[i].habilitarEdicion();\r\n this.componentes[i].selectRegistro(this.componentes[i].registro);\r\n }\r\n }\r\n }\r\n\r\n actualizar(): void {\r\n for (const i in this.componentes) {\r\n if (this.componentes.hasOwnProperty(i) && this.componentes[i].esform) {\r\n this.componentes[i].formvalidado = true;\r\n this.componentes[i].deshabilitarEdicion();\r\n this.componentes[i].actualizar();\r\n }\r\n }\r\n }\r\n\r\n cancelar(): void {\r\n for (const i in this.componentes) {\r\n if (this.componentes.hasOwnProperty(i) && this.componentes[i].esform) {\r\n this.componentes[i].deshabilitarEdicion();\r\n this.componentes[i].cancelar();\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\"","import { Component, Input } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { ConfirmationService} from 'primeng/primeng';\r\n\r\n@Component({\r\n selector: 'acciones-reg',\r\n templateUrl: 'accionesRegistro.html'\r\n})\r\n\r\nexport class AccionesRegistroComponent {\r\n\r\n @Input()\r\n componente: BaseComponent;\r\n\r\n @Input()\r\n reg: any;\r\n\r\n @Input()\r\n mostrarEditar = true;\r\n\r\n @Input()\r\n mostrarEliminar = true;\r\n\r\n constructor(private confirmationService: ConfirmationService) {\r\n }\r\n\r\n\r\n eliminarRegistro(reg: any) {\r\n this.confirmationService.confirm({\r\n message: 'Está seguro que desea eliminar?',\r\n header: 'Confirmación',\r\n accept: () => {\r\n this.componente.selectRegistro(reg);\r\n this.componente.eliminar();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\t\\r\\n\\r\\n\\r\\n\\t\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","import {Component, OnInit, AfterViewInit, ViewChild, Input} from '@angular/core';\r\nimport {NgForm} from '@angular/forms';\r\nimport {ConfirmationService} from 'primeng/primeng';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {DtoServicios} from '../../servicios/dto.servicios';\r\nimport {Consulta} from '../../dto/dto.component';\r\nimport {Mantenimiento} from '../../dto/dto.component';\r\nimport {BaseComponent} from './base.component';\r\nimport {SelectItem} from 'primeng/primeng';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\n@Component({\r\n selector: 'acciones-rep',\r\n templateUrl: 'accionesReporte.html'\r\n})\r\n\r\n//export class AccionesReporteComponent {\r\nexport class AccionesReporteComponent extends BaseComponent implements OnInit, AfterViewInit {\r\n\r\n @Input()\r\n componente: BaseComponent;\r\n\r\n @Input()\r\n reg: any;\r\n\r\n // private lformatoExportar: FormatoExportar[];\r\n\r\n public path: string;\r\n\r\n public parametros: Object;\r\n\r\n public nombreArchivo = 'REPORTE';\r\n\r\n public cdocumento = null;\r\n\r\n public csolicitud = null;\r\n\r\n public coperacion = null;\r\n\r\n public nombreReporteJasper = '';\r\n\r\n public formatoexportar = 'pdf';\r\n\r\n public mensaje;\r\n\r\n\r\n constructor(public localStorageService: LocalStorageService, router: Router, dtoServicios: DtoServicios) {\r\n super(localStorageService, router, dtoServicios, 'JASPERREPORTS', 'JASPERREPORTS', false);\r\n }\r\n\r\n ngOnInit() {\r\n this.componentehijo = this;\r\n super.init();\r\n\r\n this.parametros = new Object();\r\n this.parametros['reportes'] = [];\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n // Inicia CONSULTA *********************\r\n consultar() {\r\n\r\n }\r\n\r\n // Inicia MANTENIMIENTO *********************\r\n generaReporteCore(cmodulo: any = 0, ctransaccion: any = 100): void {\r\n const cmoduloorg = this.localStorageService.getItem('m');\r\n const ctransaccionorg = this.localStorageService.getItem('t');\r\n\r\n this.rqMantenimiento['CODMODULOORIGEN'] = cmoduloorg;\r\n this.rqMantenimiento['CODTRANSACCIONORIGEN'] = ctransaccionorg;\r\n this.rqMantenimiento['cmodulo'] = cmodulo;\r\n this.rqMantenimiento['ctransaccion'] = ctransaccion;\r\n this.rqMantenimiento['cdocumento'] = this.cdocumento;\r\n if (this.csolicitud !== null){\r\n this.rqMantenimiento['csolicitud'] = this.csolicitud;\r\n }\r\n if (this.coperacion !== null){\r\n this.rqMantenimiento['coperacion'] = this.coperacion;\r\n }\r\n\r\n this.agregarparametrosgenerales();\r\n this.agregarParametrosCore();\r\n this.parametros['imagen'] = null;\r\n this.parametros['estilo'] = null;\r\n this.rqMantenimiento.mdatos['parametros'] = this.parametros;\r\n\r\n if (!this.controlGrabar(true)) {\r\n // return;\r\n }\r\n this.encerarMensajes();\r\n const rqMan = this.getRequestMantenimiento();\r\n this.dtoServicios.ejecutarRestMantenimiento(rqMan).subscribe(\r\n resp => {\r\n // this.postCommitEntityBean(resp);\r\n this.dtoServicios.llenarMensaje(resp, true); // solo presenta errores.\r\n this.enproceso = false;\r\n this.grabo = true;\r\n let bytes = resp['reportebyte'];\r\n if (resp.cod === 'OK') {\r\n this.descargarBytes(bytes);\r\n }\r\n\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n this.grabo = false;\r\n }\r\n // finalizacion\r\n );\r\n }\r\n\r\n descargarBytes(bytes: any): void {\r\n const linkElement = document.createElement('a');\r\n try {\r\n let contenttype = '';\r\n if (this.formatoexportar === 'pdf') {\r\n contenttype = 'application/pdf';\r\n } else if (this.formatoexportar === 'xls') {\r\n contenttype = 'application/vnd.ms-excel';\r\n } else {\r\n contenttype = 'application/octet-stream';\r\n }\r\n const archivo = 'data:' + this.formatoexportar + ';base64,' + bytes;\r\n\r\n var blob = new Blob([this.base64ToArrayBuffer(bytes)], {type: contenttype});\r\n const bloburl = URL.createObjectURL(blob);\r\n if(this.formatoexportar==='pdf'){\r\n window.open(bloburl);\r\n return;\r\n }else{\r\n linkElement.href = bloburl;\r\n linkElement.download = this.nombreArchivo+ '.' + this.formatoexportar;\r\n // linkElement.click();\r\n\r\n const clickEvent = new MouseEvent('click', {\r\n 'view': window,\r\n 'bubbles': true,\r\n 'cancelable': false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n}\r\n\r\n} catch (ex) {\r\n }\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n const binary_string = window.atob(base64);\r\n const len = binary_string.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n agregarReporte(nombrereportejasper: string, parametrosreporte: any): void {\r\n if (this.parametros['reportes'] == null) {\r\n this.parametros['reportes'] = {};\r\n }\r\n\r\n parametrosreporte['nombrereportejasper'] = nombrereportejasper;\r\n this.parametros['reportes'][nombrereportejasper] = parametrosreporte;\r\n }\r\n\r\n agregarparametrosgenerales(): void {\r\n // this.parametros['freporte'] = FechaInteger.getFechaString(this.loginBean.getCredencial().getFtrabajo());\r\n this.parametros['imagen'] = 'repo:/ficus/' + this.dtoServicios.mradicacion.ccompania + '/imagenes/ficus';\r\n this.parametros['estilo'] = 'repo:/ficus/' + this.dtoServicios.mradicacion.ccompania + '/estilos/ficus';\r\n this.parametros['ccompania'] = this.dtoServicios.mradicacion.ccompania;\r\n this.parametros['cusuario'] = this.dtoServicios.mradicacion.cusuario;\r\n this.path = this.dtoServicios.mradicacion.ccompania + this.path;\r\n this.parametros['path'] = this.path;\r\n this.parametros['nombreArchivo'] = this.nombreArchivo;\r\n this.parametros['formatoexportar'] = this.formatoexportar;\r\n this.parametros['tituloreporte'] = this.dtoServicios.mradicacion.ncompania;\r\n }\r\n\r\n agregarParametrosCore(): void {\r\n this.parametros['imagen'] = 'logo_cliente.png';\r\n this.parametros['estilo'] = 'estilos_cliente.jrtx';\r\n this.parametros['path'] = null;\r\n this.parametros['nombrereportejasper'] = this.nombreReporteJasper;\r\n }\r\n\r\n descargaPdf(reg: any) {\r\n this.formatoexportar = 'pdf';\r\n this.componente.componentehijo.descargarReporte(reg);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\r\\n\"","import {Router} from '@angular/router';\r\nimport {EventEmitter} from '@angular/core';\r\nimport {NgForm} from '@angular/forms';\r\nimport {DtoServicios} from '../../../util/servicios/dto.servicios';\r\nimport {Consulta} from '../../../util/dto/dto.component';\r\nimport {DtoConsulta} from '../../../util/dto/dto.component';\r\nimport {Mantenimiento} from '../../../util/dto/dto.component';\r\nimport {DtoMantenimiento} from '../../../util/dto/dto.component';\r\nimport {Message} from 'primeng/primeng';\r\nimport {isIdentifierStart} from 'typescript';\r\nimport { LocalStorageService } from 'app/util/seguridad/sesion/localStorageService';\r\n\r\nexport abstract class BaseComponent {\r\n\r\n /** Variable que indica si la pagina es de autoconsulta. */\r\n public autoconsulta = false;\r\n /** Variable que verifica si envio una peticion al core y esta en ejecucion. */\r\n public enproceso = false;\r\n /** Variable que verifica si envio una peticion al core y esta en ejecucion. */\r\n public grabo = false;\r\n /**true, Indica que la transaccion permite eliminar registros.*/\r\n public del = false;\r\n /**true, Indica que la transaccion permite insertar datos.*/\r\n public ins = false;\r\n /** Variable editar original, sin cambiar cuando es formulario */\r\n public editarorg = false;\r\n /** true indica que permite el ingreso de datos, de un solo registro. */\r\n public editable = false;\r\n /**Titulo de la transaccion. */\r\n /** true indica que permite el ingreso de datos en un form, de un solo registro. */\r\n public formeditable = false;\r\n /**Codigo del modulo.*/\r\n public mod = null;\r\n /**Codigo de transaccion.*/\r\n public tran = null;\r\n /**Titulo de la transaccion. */\r\n public titulo: string;\r\n /**Referencia al bean hijo, utilizado para ejecuatr postQuery y postCommit */\r\n public componentehijo: any;\r\n /**Referencia al form de filtros por defecto de una pagina */\r\n public formFiltrosBase: NgForm;\r\n /**Lista de objetos Consulta, a enviar al core para ejecutar consultas. */\r\n lconsulta: DtoConsulta[] = [];\r\n /**Lista de registros originales de consulta. */\r\n private lregistrosOriginales: any = [];\r\n /**Lista de objetos Mantenimiento, a enviar al core para ejecutar mantenimientos. */\r\n lmantenimiento: DtoMantenimiento[] = [];\r\n /**Lista de objetos que contienen definicion de entity beans vacios con los cuales se crea nuevos entity beans. */\r\n // protected registroNuevo: any = { 'pk': [] };\r\n protected registroNuevo: any = {'mdatos': {}, 'actualizar': false, 'idreg': 0, 'esnuevo': true};\r\n /**Lista de registros de trabajo del bean. */\r\n public lregistros: any = [];\r\n /**Lista de registros a eliminar. */\r\n public lregistroseliminar: any = [];\r\n /**Registro de trabajo. */\r\n public registro: any = {'mdatos': {}};\r\n /**Registro seleccionado de un datatable, con los datos originales antes del registro. */\r\n protected registroSeleccionado: any = {'mdatos': {}};\r\n /**Objeto que gurada datos temporales utiiados en la transaccion. */\r\n public mcampos: any = {camposfecha: {}};\r\n /**Objeto que contiene filtros del entity bean. */\r\n public mfiltros: any = {};\r\n /**Objeto que contiene filtros a ser procesados sin like. */\r\n public mfiltrosigual: any = {};\r\n /**Objeto que contiene filtros especiales del entity bean. */\r\n public mfiltrosesp: any = {};\r\n /**Campos de control a enviar en consultas. */\r\n public rqConsulta: any = {'mdatos': {}};\r\n /**Campos de control a enviar en consultas. */\r\n public rqConsultaArchivo: any = {'mdatos': {}};\r\n /**Campos de control a enviar en consultas. */\r\n public rqMantenimiento: any = {'mdatos': {}};\r\n /**Objeto que contine mensajes aplicativos. */\r\n msgs: Message[] = [];\r\n /**Variable generica para mostrar un dialogo por defecto en las paginas de mantenimiento de registros. */\r\n public mostrarDialogoGenerico = false;\r\n /**Objeto que contine respuesta core resultado de un mantenimeinto o conuslta. */\r\n public respuestacore: any = {};\r\n /**Objeto usado mayormente en los lovs, indica si se deshabilita o no los filtros */\r\n public mdesabilitaFiltros = {};\r\n /**Formato de fecha para el componente calendar de primeng */\r\n public formatofecha = 'yy-mm-dd';\r\n /**Metadata de objetos Consulta de catalogos, a enviar al core para ejecutar consultas. */\r\n protected metadataCatalogos = {};\r\n /** Variable usada para almacenar los archivos a guardar */\r\n protected marchivosng = {};\r\n /** Variable usada para almacenar los archivos de imagenes que se retornan en base64 */\r\n public marchivosngstr = {};\r\n /**Metadata de objetos Consulta de imagenes, a enviar al core para ejecutar consultas. */\r\n protected metadataImagenes = {};\r\n /**Variable usado en los formularios para indicar si se ha ejecutado el boton de validar. */\r\n public formvalidado = false;\r\n /**Variable que indica si se limpia los mensajes con cada peticion. */\r\n public limpiamsgpeticion = true;\r\n\r\n /**Lista de operadores*/\r\n public loperadores: any = [{label: '', value: ''}, {label: 'Suma', value: '+'}, {label: 'Resta', value: '-'}, {label: 'Porcentaje', value: '%'}];\r\n\r\n // Referencia a objeto de tipo ActivatedRoute, para poder recibir parametros\r\n protected route: any;\r\n\r\n public anioactual = null;\r\n\r\n public mesactual = null;\r\n\r\n public fechaactual = null;\r\n\r\n /** Usado en el 'postQueryEntityBean' se llama al metodo crearNuevo() automaticamente cuando no trae registros, hay casos que no se requiere llamar autom.*/\r\n public llamarnuevo = true;\r\n\r\n /* Usado en el manejo de 'camposfecha' para control cuando los campos son dinamicos manejan varios tipos de datos en el mismo atributo */\r\n public camposdinamicos = false;\r\n\r\n protected backendbean = false;\r\n /** Variable calendario es espa�ol*/\r\n public es: any;\r\n\r\n constructor(public localStorageService: LocalStorageService,public router: Router, public dtoServicios: DtoServicios, public entityBean: string, public alias: string, public esform: boolean, private espkcompuesto = true) {\r\n this.entityBean = this.obtenerBean(this.entityBean);\r\n\r\n this.fechaactual = new Date();\r\n this.anioactual = this.fechaactual.getFullYear();\r\n this.mesactual = this.fechaactual.getMonth() + 1;\r\n }\r\n\r\n init(formFiltrosPagina = null, route = null) {\r\n this.route = route;\r\n this.formFiltrosBase = formFiltrosPagina;\r\n\r\n this.titulo = this.localStorageService.getItem('titulo');\r\n this.editarorg = this.toBoolean(this.localStorageService.getItem('upd'));\r\n\r\n this.editable = this.editarorg;\r\n this.del = this.toBoolean(this.localStorageService.getItem('del'));\r\n this.ins = this.toBoolean(this.localStorageService.getItem('ins'));\r\n this.mod = this.localStorageService.getItem('m');\r\n this.tran = this.localStorageService.getItem('t');\r\n \r\n this.crearnuevoRegistro();\r\n this.inicializaFormulario();\r\n\r\n this.autoconsulta = this.toBoolean(this.localStorageService.getItem('ac'));\r\n \r\n if (this.componentehijo.consultarCatalogos === undefined && this.autoconsulta) {\r\n this.componentehijo.consultar();\r\n }\r\n /** Carga el calendar en español*/\r\n this.es = {\r\n firstDayOfWeek: 1,\r\n dayNames: [\"domingo\", \"lunes\", \"martes\", \"mi�rcoles\", \"jueves\", \"viernes\", \"s�bado\"],\r\n dayNamesShort: [\"dom\", \"lun\", \"mar\", \"mi�\", \"jue\", \"vie\", \"s�b\"],\r\n dayNamesMin: [\"D\", \"L\", \"M\", \"X\", \"J\", \"V\", \"S\"],\r\n monthNames: [\"enero\", \"febrero\", \"marzo\", \"abril\", \"mayo\", \"junio\", \"julio\", \"agosto\", \"septiembre\", \"octubre\", \"noviembre\", \"diciembre\"],\r\n monthNamesShort: [\"ene\", \"feb\", \"mar\", \"abr\", \"may\", \"jun\", \"jul\", \"ago\", \"sep\", \"oct\", \"nov\", \"dic\"]\r\n }\r\n }\r\n toBoolean(value: string) {\r\n if (this.estaVacio(value)) {\r\n return false;\r\n }\r\n switch (value.toString().toLowerCase().trim()) {\r\n case \"true\":\r\n case \"yes\":\r\n case \"1\":\r\n return true;\r\n\r\n case \"false\":\r\n case \"no\":\r\n case \"0\":\r\n case null:\r\n return false;\r\n\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\n obtenerBean(entityBean: string): string {\r\n return entityBean.toLocaleLowerCase();\r\n }\r\n\r\n /* Unicamente debe ser llamado desde el init, */\r\n inicializaFormulario() {\r\n if (this.esform && this.editable) { // esform: true es un formulario, false es una grilla.\r\n this.editable = false; // para habilitar el boon de edicion cuando es un formulario.\r\n this.formeditable = true;\r\n this.componentehijo.crearNuevo();\r\n } else {\r\n this.formeditable = false;\r\n }\r\n }\r\n\r\n /**Habilita el formulario para edicion. */\r\n public deshabilitarEdicion(): void {\r\n this.editable = false;\r\n }\r\n\r\n /**Deshabilita el formulario para edicion, y muestra botones de aceptar y cancelar.\r\n * Permite ingresar información en los campos tipo input.\r\n */\r\n public habilitarEdicion(): void {\r\n this.editable = true;\r\n }\r\n\r\n clone(obj: any) {\r\n return JSON.parse(JSON.stringify(obj), this.dtoServicios.dateParser);\r\n }\r\n\r\n /**Ejecuta el metodo actualizar definido en el componentehijo. */\r\n actualizar() {\r\n const lregistrosaux = [...this.lregistros];\r\n if (this.registro.esnuevo && !this.existe(this.registro)) {\r\n lregistrosaux.push(this.registro);\r\n } else {\r\n lregistrosaux[this.lregistros.indexOf(this.registroSeleccionado)] = this.registro;\r\n this.registroSeleccionado = this.registro;\r\n }\r\n this.lregistros = lregistrosaux;\r\n this.mostrarDialogoGenerico = false;\r\n }\r\n\r\n /**Ejecuta el metodo cancelar definido en el componentehijo. */\r\n cancelar() {\r\n this.mostrarDialogoGenerico = false;\r\n this.registro = this.registroSeleccionado;\r\n }\r\n\r\n // ELIMINADOS *******************************************************************************************\r\n\r\n /**Ejecuta el metodo cancelar definido en el componentehijo. */\r\n /*eliminar() {\r\n const lregistrosaux = [...this.lregistros];\r\n\r\n if (!this.registro.esnuevo) {\r\n lregistrosaux.splice(this.lregistros.indexOf(this.registroSeleccionado), 1);\r\n this.lregistroseliminar.push(this.registroSeleccionado);\r\n }\r\n this.lregistros = lregistrosaux;\r\n this.mostrarDialogoGenerico = false;\r\n }*/\r\n\r\n eliminar() {\r\n const lregistrosaux = [...this.lregistros];\r\n\r\n for (const i in lregistrosaux) {\r\n if (lregistrosaux.hasOwnProperty(i)) {\r\n const item = lregistrosaux[i];\r\n if (JSON.stringify(item) === JSON.stringify(this.registroSeleccionado)) {\r\n lregistrosaux.splice(Number(i), 1);\r\n break;\r\n }\r\n }\r\n }\r\n // if (lregistrosaux.indexOf(this.registroSeleccionado) >= 0) {\r\n // lregistrosaux.splice(this.lregistros.indexOf(this.registroSeleccionado), 1);\r\n // }\r\n\r\n if (!this.registro.esnuevo && this.lregistroseliminar.filter(n => n.idreg === this.registroSeleccionado.idreg).length <= 0) {\r\n this.lregistroseliminar.push(this.registroSeleccionado);\r\n }\r\n this.lregistros = lregistrosaux;\r\n this.mostrarDialogoGenerico = false;\r\n }\r\n\r\n /* TRAE ETIQUETA DEL dropdown**/\r\n\r\n registrarEtiqueta(reg: any, lista: any, campo: string, alias: string) {\r\n let cmapo1 = null;\r\n let cmapo2 = null;\r\n if (campo.indexOf('.') > 0) {\r\n const arrpks = campo.split('.');\r\n cmapo1 = arrpks[0];\r\n cmapo2 = arrpks[1];\r\n }\r\n for (const i in lista) {\r\n if (lista.hasOwnProperty(i)) {\r\n const item = lista[i];\r\n let valorcampo = null;\r\n if (campo.indexOf('pk') < 0) {\r\n valorcampo = reg[campo];\r\n } else if (cmapo1 === null) {\r\n valorcampo = reg[cmapo1];\r\n } else {\r\n valorcampo = reg[cmapo1][cmapo2];\r\n }\r\n\r\n if (valorcampo != null && valorcampo === item.value) {\r\n reg.mdatos[alias] = item.label;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* CAMBIA ETIQUETA DEL MDATOS DEL DROPDOWN**/\r\n cambiarEtiquetaDropdown(evento: any, lista: any, campo: any) {\r\n if (evento.originalEvent.target.innerText === \"...\") {\r\n this.registro.mdatos[campo] = null;\r\n return;\r\n }\r\n if(evento.originalEvent.target.innerText === \"\"){\r\n // evento.originalEvent.preventDefault();\r\n // evento.originalEvent.stopPropagation();\r\n var detalle = lista.find(x => x.value === evento.value);\r\n this.registro.mdatos[campo] = detalle.label;\r\n } else {\r\n this.registro.mdatos[campo] = evento.originalEvent.target.innerText;\r\n }\r\n }\r\n\r\n /* CAMBIA ETIQUETA DROPDOWN SIN MEDATOS**/\r\n cambiarEtiquetaDropdownSinMdatos(evento: any, lista: any, campo: any) {\r\n if (evento.originalEvent.target.innerText === \"...\") {\r\n this.registro.mdatos[campo] = null;\r\n return;\r\n }\r\n if (evento.originalEvent.target.innerText === \"\") {\r\n // evento.originalEvent.preventDefault();\r\n // evento.originalEvent.stopPropagation();\r\n var detalle = lista.find(x => x.value === evento.value);\r\n this.registro[campo] = detalle.label;\r\n } else {\r\n this.registro[campo] = evento.originalEvent.target.innerText;\r\n }\r\n }\r\n\r\n // CONSULTA ***********************************\r\n\r\n /**Consulta la primera pagina */\r\n consultar() {\r\n if (!this.validaFiltrosConsulta()) {\r\n return;\r\n }\r\n this.ejecutarConsulta('C');\r\n }\r\n /**Consulta la pagina anterior de bloque de registros */\r\n consultarAnterior() {\r\n this.ejecutarConsulta('A');\r\n }\r\n /**Consulta la siguiente pagina de bloque de registros */\r\n consultarSiguiente() {\r\n this.ejecutarConsulta('S');\r\n }\r\n\r\n /**Encerar lista de consulta. */\r\n encerarConsulta(): void {\r\n this.lconsulta = [];\r\n }\r\n\r\n /**Valida el formulario de filtros de consulta. */\r\n validaFiltrosConsulta(mensaje = 'FILTROS DE CONSULTA REQUERIDOS'): boolean {\r\n if (this.formFiltrosBase !== undefined && this.formFiltrosBase !== null) {\r\n if (!this.formFiltrosBase.valid) {\r\n this.mostrarMensajeError(mensaje);\r\n }\r\n return this.formFiltrosBase.valid;\r\n }\r\n return true;\r\n }\r\n\r\n /**Valida el formulario de filtros de consulta. */\r\n validaFiltrosRequeridos(mensaje = 'FILTROS DE CONSULTA REQUERIDOS'): boolean {\r\n if (this.estaVacio(this.mfiltros) && this.estaVacio(this.mfiltrosigual)) {\r\n this.mostrarMensajeError(mensaje);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**Adiciona un objeto Consulta, asociado a un entity bean a consultar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n addConsulta(consulta: Consulta) {\r\n this.addConsultaPorAlias(this.alias, consulta);\r\n }\r\n\r\n /**Adiciona un objeto Consulta dado un alias, asociado a un entity bean a consultar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n addConsultaPorAlias(alias: string, consulta: Consulta) {\r\n this.lconsulta.push(new DtoConsulta(alias, consulta));\r\n }\r\n\r\n /**Entrega un objeto consulta dado el alias. */\r\n getConsulta(alias: string): Consulta {\r\n let consulta: Consulta;\r\n for (const i in this.lconsulta) {\r\n if (this.lconsulta.hasOwnProperty(i)) {\r\n const dto: DtoConsulta = this.lconsulta[i];\r\n if (dto.alias === alias) {\r\n consulta = dto.consulta;\r\n break;\r\n }\r\n }\r\n }\r\n return consulta;\r\n }\r\n\r\n private ejecutarConsulta(tipo: string, appName = null, metodo = null) {\r\n //this.encerarMensajes();\r\n if (this.enproceso) {\r\n return; // Si esta en ejecucion al core no volver a consultar.\r\n }\r\n this.enproceso = true;\r\n // Objeto con que contiene 1..n beans a consultar\r\n const rq = this.getRequestConsulta(tipo);\r\n this.dtoServicios.ejecutarConsultaRest(rq, appName, metodo).subscribe(\r\n resp => {\r\n //this.encerarMensajes();\r\n this.dtoServicios.llenarMensaje(resp, false, this.limpiamsgpeticion); // solo presenta errores.\r\n this.componentehijo.postQuery(resp);\r\n this.respuestacore = resp;\r\n this.enproceso = false;\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n }\r\n // finalizacion\r\n );\r\n }\r\n\r\n /**Entrega la metadata a enviar al core para realizar consultas. */\r\n public getRequestConsulta(tipo: string) {\r\n const metadata = new Object();\r\n // Adiciona campos de control de consutas.\r\n for (const i in this.rqConsulta) {\r\n if (this.rqConsulta.hasOwnProperty(i)) {\r\n metadata[i] = this.rqConsulta[i];\r\n }\r\n }\r\n // adiciona metadata de los entitybean a consultar\r\n for (const i in this.lconsulta) {\r\n if (this.lconsulta.hasOwnProperty(i)) {\r\n const dto: DtoConsulta = this.lconsulta[i];\r\n if (!(tipo === 'S' && (this.lregistros == null || this.lregistros.length <= 0))) {\r\n dto.consulta.setPagina(tipo);\r\n }\r\n dto.consulta.bean = this.obtenerBean(dto.consulta.bean);\r\n metadata[dto.alias] = dto.consulta;\r\n }\r\n }\r\n return metadata;\r\n };\r\n\r\n\r\n /**Entrega la metadata a enviar al core para realizar consultas de archivos. */\r\n public getRequestConsultaImagen() {\r\n const cmoduloorg = this.localStorageService.getItem('m');\r\n const ctransaccionorg = this.localStorageService.getItem('t');\r\n\r\n this.rqConsultaArchivo.mdatos.CODIGOCONSULTA = 'ARCHIVO';\r\n this.rqConsultaArchivo.mdatos.inbytes = false;\r\n this.rqConsultaArchivo.mdatos['carchivos'] = {};\r\n for (const alias in this.metadataImagenes) {\r\n if (this.metadataImagenes.hasOwnProperty(alias)) {\r\n this.rqConsultaArchivo.mdatos['carchivos'][alias] = this.metadataImagenes[alias]['carchivo'];\r\n }\r\n }\r\n\r\n const metadata = new Object();\r\n // Adiciona campos de control de consutas.\r\n for (const i in this.rqConsultaArchivo) {\r\n if (this.rqConsultaArchivo.hasOwnProperty(i)) {\r\n metadata[i] = this.rqConsultaArchivo[i];\r\n }\r\n }\r\n return metadata;\r\n };\r\n\r\n protected ejecutarConsultaImagenes(appName = null, metodo = null) {\r\n //this.encerarMensajes();\r\n if (this.enproceso) {\r\n //return; // Si esta en ejecucion al core no volver a consultar.\r\n }\r\n this.enproceso = true;\r\n // Objeto con que contiene 1..n beans a consultar\r\n const rq = this.getRequestConsultaImagen();\r\n this.dtoServicios.ejecutarConsultaRest(rq, appName, metodo).subscribe(\r\n resp => {\r\n //this.encerarMensajes();\r\n this.dtoServicios.llenarMensaje(resp, false, this.limpiamsgpeticion); // solo presenta errores.\r\n if (!this.estaVacio(resp['imagenes'])) {\r\n for (const key in this.metadataImagenes) {\r\n if (this.metadataImagenes.hasOwnProperty(key)) {\r\n this.marchivosngstr[key] = 'data:image/jpg;base64,' + resp['imagenes'][key];\r\n }\r\n }\r\n }\r\n this.enproceso = false;\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n }\r\n // finalizacion\r\n );\r\n }\r\n\r\n protected actualizaArchivoNg(key, strimagen) {\r\n if (this.estaVacio(key)) {\r\n return;\r\n }\r\n this.marchivosngstr[key] = 'data:image/jpg;base64,' + strimagen;\r\n }\r\n\r\n protected encerarConsultaImagenes() {\r\n this.metadataImagenes = {};\r\n }\r\n\r\n /**Adiciona un objeto Consulta dado un alias, asociado a un entity bean a consultar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n addConsultaImagen(alias: string, carchivo: number) {\r\n if (this.estaVacio(alias)) {\r\n return;\r\n }\r\n this.metadataImagenes[alias] = {};\r\n this.metadataImagenes[alias]['carchivo'] = carchivo;\r\n //this.metadataCatalogos[carchivo]['strimagen'] = strimagen;\r\n }\r\n\r\n addCatalogoPostQuery(postquerycallback) {\r\n this.metadataCatalogos['postquery'] = postquerycallback;\r\n }\r\n\r\n public encerarConsultaCatalogos() {\r\n this.metadataCatalogos = {};\r\n }\r\n public ejecutarConsultaCatalogos(appName = null, metodo = null) {\r\n //this.encerarMensajes();\r\n\r\n // Si es autoconsulta, agregar consulta postquery\r\n if (this.autoconsulta) {\r\n this.addCatalogoPostQuery('consultar');\r\n }\r\n\r\n // Objeto con que contiene 1..n beans a consultar\r\n const rq = this.getRequestConsultaCatalogos();\r\n rq['grabarlog'] = '0';\r\n this.dtoServicios.ejecutarConsultaRest(rq, appName, metodo).subscribe(\r\n resp => {\r\n //this.encerarMensajes();\r\n this.dtoServicios.llenarMensaje(resp, false, this.limpiamsgpeticion); // solo presenta errores.\r\n for (const key in this.metadataCatalogos) {\r\n if (this.metadataCatalogos.hasOwnProperty(key) && key !== 'postquery' && !this.estaVacio(this.metadataCatalogos[key]['callback'])) {\r\n this.metadataCatalogos[key]['callback'](this.metadataCatalogos[key]['lista'], resp[key], this.metadataCatalogos[key]['campopk'],\r\n this.metadataCatalogos[key]['agregaregistrovacio'], this.metadataCatalogos[key]['componentehijo']);\r\n }\r\n }\r\n if (this.metadataCatalogos['postquery'] !== undefined) {\r\n this.componentehijo[this.metadataCatalogos['postquery']]();\r\n }\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n }\r\n // finalizacion\r\n );\r\n }\r\n\r\n /**Entrega la metadata a enviar al core para realizar consultas. */\r\n public getRequestConsultaCatalogos() {\r\n const tipo = 'C';\r\n const metadata = new Object();\r\n // adiciona metadata de los entitybean a consultar\r\n for (const i in this.metadataCatalogos) {\r\n if (this.metadataCatalogos.hasOwnProperty(i) && i !== 'postquery') {\r\n const dto: DtoConsulta = this.metadataCatalogos[i]['dto'];\r\n dto.consulta.setPagina(tipo);\r\n metadata[dto.alias] = dto.consulta;\r\n }\r\n }\r\n return metadata;\r\n };\r\n\r\n /**Adiciona un objeto Consulta dado un alias, asociado a un entity bean a consultar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n addConsultaCatalogos(alias: string, consulta: Consulta, lista, callback, campopk = 'pk', componentehijo = null, agregaRegistroVacio = true) {\r\n this.metadataCatalogos[alias] = {};\r\n this.metadataCatalogos[alias]['dto'] = new DtoConsulta(alias, consulta);\r\n this.metadataCatalogos[alias]['lista'] = lista;\r\n this.metadataCatalogos[alias]['callback'] = callback;\r\n this.metadataCatalogos[alias]['campopk'] = campopk;\r\n this.metadataCatalogos[alias]['componentehijo'] = componentehijo;\r\n this.metadataCatalogos[alias]['agregaregistrovacio'] = agregaRegistroVacio;\r\n }\r\n public llenaLista(pLista: any, pListaResp, campopk = 'pk', agregaRegistroVacio = true, componentehijo = null,campoValue = 'nombre'): any {\r\n while (pLista.length > 0) {\r\n pLista.pop();\r\n }\r\n \r\n for (const i in pListaResp) {\r\n if (pListaResp.hasOwnProperty(i)) {\r\n const reg = pListaResp[i];\r\n pLista.push(reg); \r\n }\r\n }\r\n}\r\n public llenaListaCatalogo(pLista: any, pListaResp, campopk = 'pk', agregaRegistroVacio = true, componentehijo = null): any {\r\n while (pLista.length > 0) {\r\n pLista.pop();\r\n }\r\n if (agregaRegistroVacio) {\r\n pLista.push({label: '...', value: null});\r\n }\r\n let cmapo1 = null;\r\n let cmapo2 = null;\r\n if (campopk.indexOf('.') > 0) {\r\n const arrpks = campopk.split('.');\r\n cmapo1 = arrpks[0];\r\n cmapo2 = arrpks[1];\r\n }\r\n for (const i in pListaResp) {\r\n if (pListaResp.hasOwnProperty(i)) {\r\n const reg = pListaResp[i];\r\n if (campopk.indexOf('pk') < 0) {\r\n pLista.push({label: reg.nombre, value: reg[campopk]});\r\n } else if (cmapo1 === null) {\r\n pLista.push({label: reg.nombre, value: reg.pk});\r\n } else {\r\n pLista.push({label: reg.nombre, value: reg[cmapo1][cmapo2]});\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**Metodo que se ejecuta luego de realiar consultas fija id por cada registro. */\r\n public postQueryEntityBean(resp: any) {\r\n if (resp.cod !== 'OK' || resp[this.alias] === undefined) {\r\n return;\r\n }\r\n this.lregistros = [];\r\n const objresp = resp[this.alias];\r\n\r\n\r\n // Verifica si es objeto y lo agrega a la lista\r\n if (objresp !== null && !(objresp instanceof Array)) {\r\n this.lregistros.push(objresp);\r\n } else {\r\n this.lregistros = objresp;\r\n }\r\n\r\n // actualiza idreg de cada registro.\r\n if (this.lregistros !== null && this.lregistros instanceof Array) {\r\n for (const k in this.lregistros) {\r\n if (this.lregistros.hasOwnProperty(k)) {\r\n if (this.lregistros[k] !== undefined && this.lregistros[k].hasOwnProperty('idreg')) {\r\n this.lregistros[k].idreg = Math.floor((Math.random() * 100000) + 1);\r\n }\r\n if (this.lregistros[k] !== undefined && this.lregistros[k].hasOwnProperty('idreg')) {\r\n delete this.lregistros[k].id;\r\n }\r\n // Inicializa las fecha que son representadas como numero en la variable mcampos.camposfecha\r\n const reg = this.lregistros[k];\r\n this.generaCamposFechaRegistro(reg);\r\n }\r\n }\r\n }\r\n\r\n // clona los datos de la consulta original.\r\n if (this.lregistros !== null && this.lregistros !== undefined) {\r\n if (this.lregistros.length > 0) {\r\n this.registro = this.lregistros[0];\r\n if (this.esform) {this.formvalidado = true; this.editable = false;}\r\n } else {\r\n // if (this.esform) { this.componentehijo.crearNuevo(); } else { this.crearnuevoRegistro(); }\r\n if (this.llamarnuevo) {\r\n try {\r\n this.componentehijo.crearNuevo();\r\n } catch (e) {console.log(e)}\r\n }\r\n this.mostrarDialogoGenerico = false;\r\n }\r\n this.lregistrosOriginales = JSON.parse(JSON.stringify(this.lregistros));\r\n } else {\r\n this.lregistros = [];\r\n this.lregistrosOriginales = [];\r\n // if (this.esform) { this.inicializaFormulario(); } else { this.componentehijo.crearNuevo() } // Encerar para que no de undefined en la edicion de un registro.\r\n if (this.llamarnuevo) {\r\n try {\r\n this.componentehijo.crearNuevo();\r\n } catch (e) {console.log(e)}\r\n }\r\n this.mostrarDialogoGenerico = false;\r\n }\r\n // Encera registros a eliminar.\r\n this.lregistroseliminar = [];\r\n }\r\n\r\n public generaCamposFechaRegistro(reg: any) {\r\n for (const key in this.mcampos.camposfecha) {\r\n if (reg === undefined || reg == null) {\r\n continue;\r\n }\r\n if (this.mcampos.camposfecha.hasOwnProperty(key) && reg[key] !== undefined && reg[key] !== null) {\r\n // Si es objeto y tiene varios keys, entonces es pk\r\n if (typeof this.mcampos.camposfecha[key] === 'object' && this.mcampos.camposfecha[key] != null) {\r\n if (Object.keys(this.mcampos.camposfecha[key]).length > 0) {\r\n const objetopk = this.mcampos.camposfecha[key];\r\n for (const j in objetopk) {\r\n if (objetopk.hasOwnProperty(j)) {\r\n const datestr = reg['pk'][j].toString();\r\n // Si la long es diferente de 8 no es fecha\r\n if (datestr.length !== 8 || isNaN(datestr)) {\r\n continue;\r\n }\r\n const anio = datestr.substr(0, 4);\r\n const mes = datestr.substr(4, 2);\r\n const dia = datestr.substr(6, 2);\r\n if (this.estaVacio(reg.mdatos['pk'])) {\r\n reg.mdatos['pk'] = {};\r\n }\r\n reg.mdatos['pk'][j] = new Date(anio + '-' + mes + '-' + dia + ' 00:00:00');\r\n }\r\n }\r\n }\r\n } else { // De lo contrario es un campo normal\r\n const datestr = reg[key].toString();\r\n // Si la long es diferente de 8 no es fecha\r\n if (datestr.length !== 8 || isNaN(datestr)) {\r\n continue;\r\n }\r\n const anio = datestr.substr(0, 4);\r\n const mes = datestr.substr(4, 2);\r\n const dia = datestr.substr(6, 2);\r\n reg.mdatos[key] = new Date(anio + '-' + mes + '-' + dia + ' 00:00:00');\r\n }\r\n }\r\n }\r\n }\r\n\r\n public actualizaRegistrosOriginales() {\r\n this.lregistrosOriginales = JSON.parse(JSON.stringify(this.lregistros));\r\n }\r\n\r\n // NUEVOS ***********************************************************************************************\r\n\r\n /**Metodo que adiciona a lista de entity beans sin datoa a utilizar en la creacion de nuevos registros. */\r\n crearNuevo(): any {\r\n this.crearnuevoRegistro();\r\n this.mostrarDialogoGenerico = true;\r\n }\r\n\r\n crearnuevoRegistro() {\r\n //this.encerarMensajes();\r\n this.registroNuevo = {'mdatos': {}, 'actualizar': false, 'idreg': 0, 'esnuevo': true};\r\n /*\r\n if (this.espkcompuesto) {\r\n this.registroNuevo = {'mdatos': {'pk': {}}, 'actualizar': false, 'idreg': 0, 'esnuevo': true, 'pk': {}};\r\n } else {\r\n this.registroNuevo = {'mdatos': {}, 'actualizar': false, 'idreg': 0, 'esnuevo': true, 'pk': null};\r\n }\r\n */\r\n if (this.esform) {\r\n this.formvalidado = false;\r\n }\r\n this.registro = this.clone(this.registroNuevo);\r\n this.registroSeleccionado = this.clone(this.registroNuevo);\r\n this.registro.esnuevo = true;\r\n if (this.registro.hasOwnProperty('idreg')) {\r\n this.registro.idreg = Math.floor((Math.random() * 100000) + 1);\r\n }\r\n }\r\n\r\n crearNuevoArchivo() {\r\n return new Archivo();\r\n }\r\n\r\n // MANTENIMINTO *****************************************************************************************\r\n /**Adiciona un objeto Mantenimiento, asociado a un entity bean a grabar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n getMantenimiento(posicion: number, esmonetario = false): Mantenimiento {\r\n const mantenimiento = new Mantenimiento(this.entityBean, posicion);\r\n mantenimiento.esMonetario = esmonetario;\r\n // Actualiza campos fecha\r\n this.actualizaCamposFecha(this.lregistros);\r\n mantenimiento.completarInsUpdDel(this.lregistros, this.lregistrosOriginales, this.lregistroseliminar);\r\n return mantenimiento;\r\n }\r\n\r\n /** Actualiza los campos fecha desde la variable mcampos de la entidad, en los\r\n * registros en el campo de cada registro con formato numero\r\n */\r\n actualizaCamposFecha(listaregistros: any) {\r\n for (const k in listaregistros) {\r\n if (this.lregistros.hasOwnProperty(k)) {\r\n // Inicializa las fecha que son representadas como numero en la variable mcampos.camposfecha\r\n const reg = this.lregistros[k];\r\n for (const key in this.mcampos.camposfecha) {\r\n if (this.mcampos.camposfecha.hasOwnProperty(key)) {\r\n // Si es objeto y tiene varios keys, entonces es pk\r\n if (typeof this.mcampos.camposfecha[key] === 'object' && this.mcampos.camposfecha[key] != null) {\r\n if (Object.keys(this.mcampos.camposfecha[key]).length > 0) {\r\n const objetopk = this.mcampos.camposfecha[key];\r\n for (const j in objetopk) {\r\n if (objetopk.hasOwnProperty(j)) {\r\n reg['pk'][key] = this.fechaToInteger(reg.mdatos['pk'][key]);\r\n }\r\n }\r\n }\r\n } else if (reg.mdatos[key] !== undefined) {\r\n // De lo contrario es un campo normal\r\n if (this.estaVacio(reg.mdatos[key])) {\r\n if (!this.camposdinamicos) {\r\n reg[key] = null;\r\n }\r\n } else {\r\n reg[key] = this.fechaToInteger(reg.mdatos[key]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /**Adiciona un objeto Mantenimiento dado un alias, asociado a un entity bean a grabar\r\n * Se puede consultar varias tablas en un solo request.\r\n */\r\n addMantenimientoPorAlias(alias: string, mantenimiento: Mantenimiento) {\r\n const dto = new DtoMantenimiento(alias, mantenimiento);\r\n this.lmantenimiento.push(dto);\r\n }\r\n\r\n /**Graba informacion de la transaccion */\r\n grabar(multiplecommit = true, appName: any = null, metodo: any = null) {\r\n if (!this.validaGrabar()) {\r\n return;\r\n }\r\n\r\n if (this.controlGrabar(multiplecommit)) {\r\n return;\r\n }\r\n this.rqMantenimiento.mdatos.MARCHIVOSNG = this.marchivosng;\r\n //this.encerarMensajes();\r\n const rqMan = this.getRequestMantenimiento();\r\n this.dtoServicios.ejecutarRestMantenimiento(rqMan, appName, metodo).subscribe(\r\n resp => {\r\n if (resp.cod === 'OK') {\r\n this.grabo = true;\r\n }\r\n //this.encerarMensajes();\r\n this.respuestacore = resp;\r\n this.componentehijo.postCommit(resp);\r\n this.dtoServicios.llenarMensaje(resp, true, this.limpiamsgpeticion); // solo presenta errores.\r\n this.enproceso = false;\r\n },\r\n error => {\r\n this.dtoServicios.manejoError(error);\r\n this.enproceso = false;\r\n this.grabo = false;\r\n }\r\n // finalizacion\r\n );\r\n }\r\n\r\n /**\r\n * Metodo que realiza controles para permitir o no grabar\r\n */\r\n controlGrabar(multiplecommit: boolean): boolean {\r\n if (this.enproceso) {\r\n return true; // Si esta en ejecucion al core no volver a enviar el mantenimiento.\r\n }\r\n if (!multiplecommit && this.grabo) {\r\n this.mostrarMensajeError('TRANSACCIÓN YA APLICADA');\r\n return true; // Control de un solo commit\r\n }\r\n this.enproceso = true;\r\n //this.encerarMensajes();\r\n return false;\r\n }\r\n\r\n /**Metodo que realiza validaciones antes de grabar*/\r\n validaGrabar(msg = 'NO HA REALIZADADO LA VALIDACIÓN DEL FORMULARIO') {\r\n if (this.esform && (!this.formvalidado || this.editable)) {\r\n this.mostrarMensajeError(msg);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**Entrega la metadata a enviar al core para realizar mantenimientos. */\r\n getRequestMantenimiento() {\r\n const metadataMantenimiento = new Object();\r\n // Adiciona campos de control de mantenimiento.\r\n for (const i in this.rqMantenimiento) {\r\n if (this.rqMantenimiento.hasOwnProperty(i)) {\r\n metadataMantenimiento[i] = this.rqMantenimiento[i];\r\n }\r\n }\r\n\r\n // Adiciona metadata de entity beans que tiene dml.\r\n for (const i in this.lmantenimiento) {\r\n if (this.lmantenimiento.hasOwnProperty(i)) {\r\n const dto: DtoMantenimiento = this.lmantenimiento[i];\r\n if (dto.mantenimiento.tieneCambios()) {\r\n metadataMantenimiento[dto.alias] = dto.mantenimiento;\r\n }\r\n }\r\n\r\n }\r\n return metadataMantenimiento;\r\n }\r\n\r\n /**Metodo que se ejecuta luego de realiar mantenimiento del entity bean. */\r\n public postCommitEntityBean(resp: any, dtoext: DtoMantenimiento = null) {\r\n if (resp.cod !== 'OK') {\r\n return;\r\n }\r\n let dto: DtoMantenimiento = null;\r\n if (dtoext !== null) {\r\n dto = dtoext;\r\n } else {\r\n dto = this.getDtoMantenimiento();\r\n }\r\n if (dto === undefined) {\r\n return;\r\n }\r\n const registrosRespuesta = resp[dto.alias];\r\n dto.mantenimiento.postCommit(this.lregistros, registrosRespuesta);\r\n // actualiza datos originales con los valores cambiados.\r\n this.lregistrosOriginales = JSON.parse(JSON.stringify(this.lregistros), this.dtoServicios.dateParser);\r\n this.lregistroseliminar = [];\r\n }\r\n\r\n /**Metodo que se ejecuta luego de realiar mantenimiento del entity bean. */\r\n public postCommitNodosArbol(resp: any, nodo: any) {\r\n if (resp.cod !== 'OK') {\r\n return;\r\n }\r\n for (const i in this.lregistros) {\r\n if (this.lregistros.hasOwnProperty(i)) {\r\n const nodearray = this.buscarNodo(nodo, this.lregistros[i].idreg);\r\n if (nodearray != null) {\r\n this.actualizaNodoSeleccionado(nodearray[0], this.lregistros[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**Entrega un objeto DtoMantenimiento, para el aliad de la transaccion. */\r\n protected getDtoMantenimiento(aliasext = null): DtoMantenimiento {\r\n let dto: DtoMantenimiento;\r\n let aliasoficial = null;\r\n if (aliasext !== null) {\r\n aliasoficial = aliasext;\r\n } else {\r\n aliasoficial = this.alias;\r\n }\r\n for (const i in this.lmantenimiento) {\r\n if (this.lmantenimiento.hasOwnProperty(i)) {\r\n dto = this.lmantenimiento[i];\r\n if (dto.alias === aliasoficial) {\r\n break;\r\n }\r\n }\r\n\r\n }\r\n return dto;\r\n }\r\n\r\n /**Realiza copia del registro seleccionado para poder editar y reversar los cambios. */\r\n public selectRegistro(registro: any) {\r\n this.registroSeleccionado = registro;\r\n this.registro = this.clone(this.registroSeleccionado);\r\n this.mostrarDialogoGenerico = true;\r\n }\r\n\r\n\r\n /**Encera mensajes. */\r\n public encerarMensajes(): void {\r\n this.msgs = [];\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Fija un mensaje de error. */\r\n protected mostrarMensajeError(texto: string) {\r\n this.msgs = [];\r\n this.msgs.push({severity: 'error', summary: texto, detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Fija un mensaje tipo warning. */\r\n protected mostrarMensajeWarn(texto: string) {\r\n this.msgs = [];\r\n this.msgs.push({severity: 'warn', summary: texto, detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Adiciona un mensaje informativo. */\r\n protected mostrarMensajeInfo(texto: string) {\r\n this.msgs = [];\r\n this.msgs.push({severity: 'info', summary: texto, detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Adiciona un mensaje de exisot. */\r\n protected mostrarMensajeSuccess(texto: string) {\r\n this.msgs = [];\r\n this.msgs.push({severity: 'success', summary: texto, detail: ''});\r\n this.dtoServicios.mostrarMensaje(this.msgs);\r\n }\r\n\r\n /**Valida que el resgistro qye llega como parametros, esta en la lista de registros. */\r\n protected existe(registro: any): boolean {\r\n let existe = false;\r\n if (this.lregistros === undefined) {\r\n return false;\r\n }\r\n for (const i in this.lregistros) {\r\n if (this.lregistros.hasOwnProperty(i)) {\r\n const reg = this.lregistros[i];\r\n if (reg.hasOwnProperty('idreg') && reg.idreg === registro.idreg) {\r\n existe = true;\r\n break;\r\n }\r\n }\r\n }\r\n return existe;\r\n }\r\n\r\n /**Si es true retorna 1 caso contrario retorna 0 */\r\n public booleanToString(valor: boolean): string {\r\n let opcion = '1';\r\n if (!valor) {\r\n opcion = '0';\r\n }\r\n return opcion;\r\n }\r\n\r\n /**Si el valor es 1 retorna true, caso contrario retorna false. */\r\n public stringToBoolean(valor: any): boolean {\r\n let opcion = true;\r\n if (valor === undefined || valor !== '1') {\r\n opcion = false;\r\n }\r\n return opcion;\r\n }\r\n\r\n /**Transforma una fecha entero en formato yyyyyMMdd a una fecha en formato dd-MM-yyyy */\r\n public integerToFormatoFecha(valor: number): string {\r\n if (this.estaVacio(valor)) {\r\n return null;\r\n }\r\n // ejemplo yyyyMMdd 20170131 31 de enero del 2017\r\n const anio = valor.toString().substring(0, 4);\r\n const mes = valor.toString().substring(4, 6);\r\n const dia = valor.toString().substring(6, 8);\r\n const fecha = dia + '-' + mes + '-' + anio;\r\n return fecha;\r\n }\r\n\r\n /**Transforma una fecha entero en formato yyyyyMMdd a una fecha en formato dd-MM-yyyy */\r\n public integerToDate(valor: number): Date {\r\n if (this.estaVacio(valor)) {\r\n return null;\r\n }\r\n const anio = valor.toString().substring(0, 4);\r\n const mes = valor.toString().substring(4, 6);\r\n const dia = valor.toString().substring(6, 8);\r\n return new Date(Number(anio), (Number(mes) - 1), Number(dia));\r\n }\r\n\r\n /**Transforma una fecha en formato dd-MM-yyyy a una fecha en entero formato yyyyMMdd */\r\n public formatoFechaToInteger(valor: string): number {\r\n if (this.estaVacio(valor)) {\r\n return null;\r\n }\r\n // ejemplo dd-MM-yyyy 31-01-1971 31 de enero del 2017\r\n const anio = valor.substring(6, 10);\r\n const mes = valor.substring(3, 5);\r\n const dia = valor.substring(0, 2);\r\n const fecha: string = anio + mes + dia;\r\n return Number(fecha);\r\n }\r\n\r\n public stringToFecha(valor: string): Date {\r\n // ejemplo dd-MM-yyyy 31-01-1971 31 de enero del 2017\r\n let anio = +valor.substring(6, 10);\r\n let mes = +valor.substring(3, 5) - 1;\r\n let dia = +valor.substring(0, 2);\r\n const fecha: Date = new Date(anio, mes, dia);\r\n return fecha;\r\n }\r\n\r\n /**Verifica que una variable con tipo de dato basico este vacio, si es un objeto verifica\r\n * que los atributos esten vacios\r\n */\r\n public estaVacio(obj: any): boolean {\r\n if (obj === undefined || obj === null || obj === '' || (typeof obj === 'object' && !(obj instanceof Date) && Object.keys(obj).length === 0) || obj.length <= 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n fechaToInteger(fecha: Date): number {\r\n if (this.estaVacio(fecha)) {\r\n return null;\r\n }\r\n const f = fecha;\r\n const curr_date = f.getDate();\r\n const curr_month = f.getMonth() + 1;\r\n const curr_year = f.getFullYear();\r\n let monthstr = '' + curr_month;\r\n let daystr = '' + curr_date;\r\n if (curr_month < 10) {monthstr = '0' + curr_month;}\r\n if (curr_date < 10) {daystr = '0' + curr_date;}\r\n return Number(curr_year + '' + monthstr + '' + daystr);\r\n }\r\n\r\n public calendarToFechaString(fecha: Date): string {\r\n if (this.estaVacio(fecha)) {\r\n return null;\r\n }\r\n const f = fecha;\r\n const curr_date = f.getDate();\r\n const curr_month = f.getMonth() + 1;\r\n const curr_year = f.getFullYear();\r\n let monthstr = '' + curr_month;\r\n let daystr = '' + curr_date;\r\n if (curr_month < 10) {monthstr = '0' + curr_month;}\r\n if (curr_date < 10) {daystr = '0' + curr_date;}\r\n return (curr_year + '-' + monthstr + '-' + daystr);\r\n }\r\n\r\n public calcularAnios(fechainicio, fechafinal): string {\r\n if (this.estaVacio(fechainicio) || this.estaVacio(fechafinal)) {\r\n return null;\r\n }\r\n\r\n const fechaI = new Date(fechainicio);\r\n const fechaF = new Date(fechafinal);\r\n\r\n const diff = Math.abs(fechaI.getTime() - fechaF.getTime());\r\n const dia = 1000 * 60 * 60 * 24; //86400000\r\n const dias = Math.floor(diff / dia);\r\n\r\n const anos = Math.floor(dias / 365);\r\n const anosr = dias % 365;\r\n const meses = Math.floor(anosr / 30);\r\n const diasf = anosr % 30;\r\n\r\n return anos + ' años ' + meses + ' meses y ' + diasf + ' días';\r\n\r\n }\r\n\r\n fechaFinalDateYear(fecha: Date): Date {\r\n if (fecha == null) {\r\n return null;\r\n }\r\n const curr_year = fecha.getFullYear();\r\n return this.anioFinalDateYear(curr_year);\r\n }\r\n\r\n anioFinalDateYear(anio: any): Date {\r\n if (anio == null) {\r\n return null;\r\n }\r\n return new Date(anio + '-12-31 00:00:00');\r\n }\r\n\r\n descargarBytes(bytes: any, formatoexportar: string, nombreArchivo: string): void {\r\n const linkElement = document.createElement('a');\r\n try {\r\n let contenttype = '';\r\n if (formatoexportar === 'pdf') {\r\n contenttype = 'application/pdf';\r\n } else if (formatoexportar === 'xls') {\r\n contenttype = 'application/vnd.ms-excel';\r\n } else {\r\n contenttype = 'application/octet-stream';\r\n }\r\n const archivo = 'data:' + formatoexportar + ';base64,' + bytes;\r\n\r\n linkElement.setAttribute('href', archivo);\r\n linkElement.setAttribute('download', nombreArchivo + '.' + formatoexportar);\r\n\r\n const clickEvent = new MouseEvent('click', {\r\n 'view': window,\r\n 'bubbles': true,\r\n 'cancelable': false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n } catch (ex) {\r\n }\r\n }\r\n\r\n buscarNodo(nodo: any, idreg: number) {\r\n let nodoencontrado = null;\r\n if (!this.estaVacio(nodo.children)) {\r\n nodoencontrado = nodo.children.filter(n => n.data.reg.idreg === idreg);\r\n if (!this.estaVacio(nodoencontrado)) {\r\n return nodoencontrado;\r\n } else {\r\n for (const i in nodo.children) {\r\n if (nodo.children.hasOwnProperty(i)) {\r\n nodoencontrado = this.buscarNodo(nodo.children[i], idreg);\r\n if (!this.estaVacio(nodoencontrado)) {\r\n return nodoencontrado;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n actualizaNodoSeleccionado(nodoSeleccionado, registro) {\r\n nodoSeleccionado.data.reg = registro;\r\n if (!registro.mdatos.eshoja) {\r\n nodoSeleccionado.data.nombre = registro.nombre;\r\n } else {\r\n nodoSeleccionado.data.nombre = registro.mdatos.ntransaccion;\r\n }\r\n }\r\n\r\n /**Redondea el valor con la precision enviada*/\r\n public redondear(value, precision): number {\r\n const multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n\r\n /**Rellena de caracteres el tamanio indicado*/\r\n public rellenaCaracteres(value: string, caracter: string, size: number): string {\r\n return (String(caracter).repeat(size) + value).substr((size * -1), size);\r\n }\r\n\r\n public rellenaCaracteresIzquierda(input, length, padding) {\r\n while ((input = input.toString()).length + (padding = padding.toString()).length < length) {\r\n padding += padding;\r\n }\r\n return padding.substr(0, length - input.length) + input;\r\n }\r\n\r\n /**Vacia la lista enviada*/\r\n public limpiaLista(pLista: any): any {\r\n while (pLista.length > 0) {\r\n pLista.pop();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class Archivo {\r\n codigo: number = null;\r\n nombre: string = '';\r\n archivobytes: any = null;\r\n extension: string = null;\r\n tamanio: number = null;\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { BasicModule } from './basic.module';\r\n\r\nimport { AccionesDialogoComponent } from './componentes/accionesDialogo.component';\r\nimport { AccionesConsultaComponent } from './componentes/accionesConsulta.component';\r\nimport { AccionesCabeceraComponent } from './componentes/accionesCabecera.component';\r\nimport { AccionesEditarComponent } from './componentes/accionesEditar.componente';\r\nimport { AccionesRegistroComponent } from './componentes/accionesRegistro.component';\r\nimport { AccionesReporteComponent } from './componentes/accionesReporte.component';\r\nimport { TooltipModule} from 'primeng/primeng';\r\n\r\n@NgModule({\r\n imports: [BasicModule,TooltipModule],\r\n declarations: [AccionesDialogoComponent, AccionesConsultaComponent, AccionesCabeceraComponent, AccionesEditarComponent, AccionesRegistroComponent,\r\n AccionesReporteComponent],\r\n exports: [BasicModule, AccionesDialogoComponent,TooltipModule, AccionesConsultaComponent, AccionesCabeceraComponent, AccionesEditarComponent, AccionesRegistroComponent,\r\n AccionesReporteComponent]\r\n})\r\nexport class SharedModule { }\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n secretLocalStorage:'%$\"·$%//%····/_',\r\n fondo: 'SERVICIO INTEGRADO DE ADMINISTRACIÓN DE CESANTÍAS',\r\n terminos:\"https://fondomunicipiodequito.com/wp-content/uploads/2023/06/Terminos-y-Condiciones.html\",\r\n imagen: 'assets/layout/images/logotransparente.png',\r\n hmac: {\r\n secretHeader: 'hmacauth',\r\n APPId:'65d3a4f0-0239-404c-8394-21b94ff50604',\r\n APIKey: 'WLUEWeL3so2hdHhHM5ZYnvzsOUBzSGH4+T3EgrQ91KI=',\r\n },\r\n nsueldos:3\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n\r\n"],"sourceRoot":""}