general-library-union 2.9.73 → 2.9.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1205) hide show
  1. package/.browserslistrc +15 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +27 -27
  7. package/angular.json +143 -0
  8. package/karma.conf.js +44 -0
  9. package/ng-package.json +21 -0
  10. package/package.json +73 -62
  11. package/{public-api.d.ts → public-api.ts} +201 -161
  12. package/src/app/app.component.html +12 -0
  13. package/src/app/app.component.scss +0 -0
  14. package/src/app/app.component.spec.ts +29 -0
  15. package/src/app/app.component.ts +34 -0
  16. package/src/app/app.config.ts +43 -0
  17. package/src/app/app.module.ts +10 -0
  18. package/src/app/app.routes.ts +88 -0
  19. package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +6 -0
  20. package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
  21. package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +39 -0
  22. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +1 -0
  23. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
  24. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +31 -0
  25. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +9 -0
  26. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +28 -0
  27. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +32 -0
  28. package/src/app/core/componentes/filtro-general/filtro-general.component.html +34 -0
  29. package/src/app/core/componentes/filtro-general/filtro-general.component.scss +3 -0
  30. package/src/app/core/componentes/filtro-general/filtro-general.component.ts +202 -0
  31. package/src/app/core/componentes/footer/footer.component.html +13 -0
  32. package/src/app/core/componentes/footer/footer.component.scss +3 -0
  33. package/src/app/core/componentes/footer/footer.component.ts +20 -0
  34. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +267 -0
  35. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +21 -0
  36. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +275 -0
  37. package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.d.ts → Cambio.ts} +13 -7
  38. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +118 -0
  39. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +76 -0
  40. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +67 -0
  41. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +11 -0
  42. package/src/app/core/componentes/inicio-component/inicio-component.component.html +29 -0
  43. package/src/app/core/componentes/inicio-component/inicio-component.component.scss +69 -0
  44. package/src/app/core/componentes/inicio-component/inicio-component.component.ts +65 -0
  45. package/src/app/core/componentes/menu/menu.component.html +13 -0
  46. package/src/app/core/componentes/menu/menu.component.scss +36 -0
  47. package/src/app/core/componentes/menu/menu.component.ts +35 -0
  48. package/src/app/core/componentes/tabla-general/tabla-general.component.html +90 -0
  49. package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
  50. package/src/app/core/componentes/tabla-general/tabla-general.component.ts +96 -0
  51. package/src/app/core/core.module.ts +22 -0
  52. package/src/app/core/errores/authentication.error.ts +6 -0
  53. package/src/app/core/modelos/error-response.model.ts +9 -0
  54. package/src/app/core/modelos/table-column.model.ts +10 -0
  55. package/src/app/core/modelos/user.model.ts +6 -0
  56. package/src/app/core/plantilla-general/plantilla-general.template.html +139 -0
  57. package/src/app/core/plantilla-general/plantilla-general.template.scss +37 -0
  58. package/src/app/core/plantilla-general/plantilla-general.template.ts +233 -0
  59. package/src/app/core/servicios/auth.service.ts +189 -0
  60. package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +49 -0
  61. package/src/app/core/servicios/data-exporter-table.utils.ts +78 -0
  62. package/src/app/core/servicios/error-interceptor.service.ts +208 -0
  63. package/src/app/core/servicios/guardias/auth.guard.ts +51 -0
  64. package/src/app/core/servicios/guardias/publico.guard.ts +26 -0
  65. package/src/app/core/servicios/interceptores/loading-interceptor.ts +37 -0
  66. package/src/app/core/servicios/interceptores/token-interceptor.service.ts +177 -0
  67. package/src/app/core/servicios/loading.service.ts +48 -0
  68. package/src/app/core/servicios/menu.service.ts +153 -0
  69. package/src/app/core/servicios/spinner-service.ts +18 -0
  70. package/src/app/core/servicios/storage.service.ts +68 -0
  71. package/src/app/core/servicios/template.service.ts +91 -0
  72. package/src/app/core/servicios/toast.service.ts +114 -0
  73. package/src/app/core/servicios/utils.service.ts +362 -0
  74. package/src/app/core/sharedlib.module.ts +11 -0
  75. package/src/app/core/utilidades/color.util.ts +197 -0
  76. package/src/app/layout/api/{menuchangeevent.d.ts → menuchangeevent.ts} +4 -4
  77. package/src/app/layout/app.breadcrumb.component.html +20 -0
  78. package/src/app/layout/app.breadcrumb.component.ts +78 -0
  79. package/src/app/layout/app.footer.component.html +18 -0
  80. package/src/app/layout/app.footer.component.ts +15 -0
  81. package/src/app/layout/app.layout.component.html +20 -0
  82. package/src/app/layout/app.layout.component.ts +201 -0
  83. package/src/app/layout/app.layout.module.ts +9 -0
  84. package/src/app/layout/app.menu.component.html +6 -0
  85. package/src/app/layout/app.menu.component.ts +51 -0
  86. package/src/app/layout/app.menu.service.ts +23 -0
  87. package/src/app/layout/app.menuitem.component.ts +252 -0
  88. package/src/app/layout/app.menuprofile.component.html +35 -0
  89. package/src/app/layout/app.menuprofile.component.ts +60 -0
  90. package/src/app/layout/app.rightmenu.component.html +72 -0
  91. package/src/app/layout/app.rightmenu.component.ts +24 -0
  92. package/src/app/layout/app.sidebar.component.html +40 -0
  93. package/src/app/layout/app.sidebar.component.ts +81 -0
  94. package/src/app/layout/app.topbar.component.html +214 -0
  95. package/src/app/layout/app.topbar.component.ts +335 -0
  96. package/src/app/layout/config/app.config.component.html +125 -0
  97. package/src/app/layout/config/app.config.component.ts +206 -0
  98. package/src/app/layout/config/app.config.module.ts +11 -0
  99. package/src/app/layout/service/app.layout.service.ts +191 -0
  100. package/src/app/publico/pages/login/login.page.html +53 -0
  101. package/src/app/publico/pages/login/login.page.scss +166 -0
  102. package/src/app/publico/pages/login/login.page.ts +128 -0
  103. package/src/app/publico/pages/not-found/not-found.page.html +35 -0
  104. package/src/app/publico/pages/not-found/not-found.page.scss +2 -0
  105. package/src/app/publico/pages/not-found/not-found.page.ts +46 -0
  106. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +58 -0
  107. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +49 -0
  108. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +176 -0
  109. package/src/app/publico/pages/timeout/timeout.page.html +24 -0
  110. package/src/app/publico/pages/timeout/timeout.page.scss +2 -0
  111. package/src/app/publico/pages/timeout/timeout.page.ts +18 -0
  112. package/src/app/seguridad/constantes/ConstantesGenerales.ts +30 -0
  113. package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +18 -0
  114. package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +13 -0
  115. package/src/app/seguridad/modelos/AplicacionModel.ts +11 -0
  116. package/src/app/seguridad/modelos/ArchivoPortalModel.ts +16 -0
  117. package/src/app/seguridad/modelos/AtributoPuntoModel.ts +9 -0
  118. package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +22 -0
  119. package/src/app/seguridad/modelos/{AuditoriaArchivoModel.d.ts → AuditoriaArchivoModel.ts} +13 -10
  120. package/src/app/seguridad/modelos/CargueLineaModel.ts +17 -0
  121. package/src/app/seguridad/modelos/ColoresRGB.ts +17 -0
  122. package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +9 -0
  123. package/src/app/seguridad/modelos/{ColumnaWraperModel.d.ts → ColumnaWraperModel.ts} +7 -6
  124. package/src/app/seguridad/modelos/ComplementoModel.ts +10 -0
  125. package/src/app/seguridad/modelos/ComponentePaginaModel.ts +22 -0
  126. package/src/app/seguridad/modelos/ConexionModel.ts +15 -0
  127. package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.d.ts → ContenidoHtmlPortalModel.ts} +25 -20
  128. package/src/app/seguridad/modelos/ControlFuncionModel.ts +10 -0
  129. package/src/app/seguridad/modelos/CorreoModel.ts +45 -0
  130. package/src/app/seguridad/modelos/CorreoWSModel.ts +49 -0
  131. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +14 -0
  132. package/src/app/seguridad/modelos/{DatoInicioModel.d.ts → DatoInicioModel.ts} +7 -6
  133. package/src/app/seguridad/modelos/{EjecucionReporteDataModel.d.ts → EjecucionReporteDataModel.ts} +21 -20
  134. package/src/app/seguridad/modelos/EmpresaModel.ts +25 -0
  135. package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +19 -0
  136. package/src/app/seguridad/modelos/{EntradaComplementoModel.d.ts → EntradaComplementoModel.ts} +9 -6
  137. package/src/app/seguridad/modelos/EtiquetaModel.ts +4 -0
  138. package/src/app/seguridad/modelos/Etiquetas.ts +14 -0
  139. package/src/app/seguridad/modelos/{ForeingWraperModel.d.ts → ForeingWraperModel.ts} +9 -6
  140. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +21 -0
  141. package/src/app/seguridad/modelos/{FuenteCampoModel.d.ts → FuenteCampoModel.ts} +20 -16
  142. package/src/app/seguridad/modelos/FuenteDato.ts +19 -0
  143. package/src/app/seguridad/modelos/FuenteEntradaModel.ts +9 -0
  144. package/src/app/seguridad/modelos/{FuenteGeneralModel.d.ts → FuenteGeneralModel.ts} +55 -36
  145. package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +19 -0
  146. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +14 -0
  147. package/src/app/seguridad/modelos/{FuenteServicioModel.d.ts → FuenteServicioModel.ts} +61 -47
  148. package/src/app/seguridad/modelos/FuncionalidadModel.ts +12 -0
  149. package/src/app/seguridad/modelos/GeneralModel.ts +16 -0
  150. package/src/app/seguridad/modelos/{GrupoAccesoModel.d.ts → GrupoAccesoModel.ts} +9 -6
  151. package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +12 -0
  152. package/src/app/seguridad/modelos/GrupoFuenteModel.ts +17 -0
  153. package/src/app/seguridad/modelos/GrupoPermisoModel.ts +16 -0
  154. package/src/app/seguridad/modelos/{JoinFromModel.d.ts → JoinFromModel.ts} +4 -4
  155. package/src/app/seguridad/modelos/ListaServicioModel.ts +18 -0
  156. package/src/app/seguridad/modelos/LlaveForaneaModel.ts +6 -0
  157. package/src/app/seguridad/modelos/LoginModel.ts +19 -0
  158. package/src/app/seguridad/modelos/MensajeSistemaModel.ts +10 -0
  159. package/src/app/seguridad/modelos/{MenuPortalModel.d.ts → MenuPortalModel.ts} +5 -4
  160. package/src/app/seguridad/modelos/ModulosModel.ts +17 -0
  161. package/src/app/seguridad/modelos/{ObjetoReporteModel.d.ts → ObjetoReporteModel.ts} +6 -5
  162. package/src/app/seguridad/modelos/PaginaPortalModel.ts +23 -0
  163. package/src/app/seguridad/modelos/ParametroComponenteModel.ts +9 -0
  164. package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +16 -0
  165. package/src/app/seguridad/modelos/PermisoFuncionModel.ts +11 -0
  166. package/src/app/seguridad/modelos/PermisocontenidoModel.ts +20 -0
  167. package/src/app/seguridad/modelos/{PeticionModel.d.ts → PeticionModel.ts} +20 -15
  168. package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +9 -0
  169. package/src/app/seguridad/modelos/PropiedadModel.ts +12 -0
  170. package/src/app/seguridad/modelos/PublicacionWebModel.ts +29 -0
  171. package/src/app/seguridad/modelos/PuntoProcesoModel.ts +7 -0
  172. package/src/app/seguridad/modelos/RecursoPunto.ts +13 -0
  173. package/src/app/seguridad/modelos/RecursoPuntoModel.ts +13 -0
  174. package/src/app/seguridad/modelos/ReporteBanda.ts +9 -0
  175. package/src/app/seguridad/modelos/ReporteColumna.ts +33 -0
  176. package/src/app/seguridad/modelos/ReporteColumnario.ts +82 -0
  177. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +31 -0
  178. package/src/app/seguridad/modelos/{ReporteEntradaModel.d.ts → ReporteEntradaModel.ts} +21 -19
  179. package/src/app/seguridad/modelos/{ReporteFuenteModel.d.ts → ReporteFuenteModel.ts} +141 -87
  180. package/src/app/seguridad/modelos/ReporteMarcador.ts +40 -0
  181. package/src/app/seguridad/modelos/ReporteSoporte.ts +10 -0
  182. package/src/app/seguridad/modelos/ReporteTabla.ts +14 -0
  183. package/src/app/seguridad/modelos/RespuestaModel.ts +10 -0
  184. package/src/app/seguridad/modelos/{RolModel.d.ts → RolModel.ts} +41 -37
  185. package/src/app/seguridad/modelos/ServidorCorreoModel.ts +31 -0
  186. package/src/app/seguridad/modelos/SistemaMensajeModel.ts +11 -0
  187. package/src/app/seguridad/modelos/SitioPortalModel.ts +29 -0
  188. package/src/app/seguridad/modelos/TablaFromModel.ts +5 -0
  189. package/src/app/seguridad/modelos/TareasModel.ts +54 -0
  190. package/src/app/seguridad/modelos/TextoModel.ts +11 -0
  191. package/src/app/seguridad/modelos/TipoEtiqueta.ts +8 -0
  192. package/src/app/seguridad/modelos/UnionModel.ts +14 -0
  193. package/src/app/seguridad/modelos/{UsuarioModel.d.ts → UsuarioModel.ts} +60 -49
  194. package/src/app/seguridad/modelos/UsuariogrupoModel.ts +27 -0
  195. package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +16 -0
  196. package/src/app/seguridad/modelos/contenidoCorreoModel.ts +13 -0
  197. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +47 -0
  198. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +8 -0
  199. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +144 -0
  200. package/src/app/shared/servicios/cargar-archivos.service.ts +51 -0
  201. package/src/app/shared/servicios/cargar-mapas.service.ts +43 -0
  202. package/src/app/shared/servicios/encriptado-basico.service.ts +54 -0
  203. package/src/app/shared/servicios/encriptador-simetrico.service.ts +29 -0
  204. package/src/app/shared/servicios/general.service.ts +124 -0
  205. package/src/app/shared/servicios/parametros-navegacion.service.ts +20 -0
  206. package/src/app/shared/servicios/plantillas.service.ts +22 -0
  207. package/src/app/shared/servicios/tarea.service.ts +71 -0
  208. package/src/app/shared/utilidades/translate-loader.util.ts +44 -0
  209. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +167 -0
  210. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +11 -0
  211. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +425 -0
  212. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +87 -0
  213. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
  214. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +189 -0
  215. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +117 -0
  216. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
  217. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +87 -0
  218. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +158 -0
  219. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +6 -0
  220. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +345 -0
  221. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +131 -0
  222. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
  223. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +198 -0
  224. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +206 -0
  225. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +3 -0
  226. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +329 -0
  227. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +2114 -0
  228. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +241 -0
  229. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +1677 -0
  230. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +33 -0
  231. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
  232. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +96 -0
  233. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +54 -0
  234. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
  235. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +111 -0
  236. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +394 -0
  237. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +10 -0
  238. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +599 -0
  239. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +130 -0
  240. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
  241. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +172 -0
  242. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +376 -0
  243. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +5 -0
  244. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +749 -0
  245. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +145 -0
  246. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
  247. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +302 -0
  248. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +19 -0
  249. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
  250. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +89 -0
  251. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +714 -0
  252. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
  253. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +688 -0
  254. package/src/app/webcommon/pipes/dashboard.pipe.ts +79 -0
  255. package/src/app/webcommon/pipes/fuente.pipe.ts +207 -0
  256. package/src/app/webcommon/pipes/general.pipe.ts +1043 -0
  257. package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +101 -0
  258. package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +306 -0
  259. package/src/app/webcommon/pipes/sara-general.pipe.ts +289 -0
  260. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +90 -0
  261. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
  262. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +262 -0
  263. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +50 -0
  264. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
  265. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +135 -0
  266. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +41 -0
  267. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
  268. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +283 -0
  269. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +179 -0
  270. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +3 -0
  271. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +266 -0
  272. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +261 -0
  273. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +13 -0
  274. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +519 -0
  275. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +10 -0
  276. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +5 -0
  277. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +58 -0
  278. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +71 -0
  279. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
  280. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +151 -0
  281. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +11 -0
  282. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
  283. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +82 -0
  284. package/src/app/webcommon/services/carguelinea.service.ts +72 -0
  285. package/src/app/webcommon/services/dashboard.service.ts +258 -0
  286. package/src/app/webcommon/services/ejecucionreporte.service.ts +160 -0
  287. package/src/app/webcommon/services/fechaUtils.service.ts +117 -0
  288. package/src/app/webcommon/services/fuentegeneral.service.ts +74 -0
  289. package/src/app/webcommon/services/homologacion.service.ts +49 -0
  290. package/src/app/webcommon/services/plantillas.service.ts +165 -0
  291. package/src/app/webcommon/services/reportes.service.ts +133 -0
  292. package/src/app/webcommon/webcommon.module.ts +11 -0
  293. package/src/assets/demo/customers-large.json +3604 -3604
  294. package/src/assets/demo/data/chat.json +123 -123
  295. package/src/assets/demo/data/countries.json +246 -246
  296. package/src/assets/demo/data/customers-large.json +3604 -3604
  297. package/src/assets/demo/data/customers-medium.json +904 -904
  298. package/src/assets/demo/data/customers-small.json +164 -164
  299. package/src/assets/demo/data/file-management.json +200 -200
  300. package/src/assets/demo/data/files-lazy.json +25 -25
  301. package/src/assets/demo/data/files.json +54 -54
  302. package/src/assets/demo/data/filesystem-lazy.json +20 -20
  303. package/src/assets/demo/data/filesystem.json +312 -312
  304. package/src/assets/demo/data/kanban.json +195 -195
  305. package/src/assets/demo/data/mail.json +364 -364
  306. package/src/assets/demo/data/members.json +49 -49
  307. package/src/assets/demo/data/photos.json +94 -94
  308. package/src/assets/demo/data/products-mixed.json +364 -364
  309. package/src/assets/demo/data/products-orders-small.json +340 -340
  310. package/src/assets/demo/data/products-orders.json +833 -833
  311. package/src/assets/demo/data/products-small.json +123 -123
  312. package/src/assets/demo/data/products.json +394 -394
  313. package/src/assets/demo/data/scheduleevents.json +64 -64
  314. package/src/assets/demo/data/tasks.json +204 -204
  315. package/src/assets/demo/images/blocks/ad/icon-blocks.svg +18 -18
  316. package/src/assets/demo/images/blocks/logos/hyper.svg +2 -2
  317. package/src/assets/demo/images/contact/map-dark.svg +9 -9
  318. package/src/assets/demo/images/contact/map-light.svg +9 -9
  319. package/src/assets/demo/images/landing/icon-accessibility.svg +3 -3
  320. package/src/assets/demo/images/landing/icon-community.svg +3 -3
  321. package/src/assets/demo/images/landing/icon-components.svg +4 -4
  322. package/src/assets/demo/images/landing/icon-mobile.svg +3 -3
  323. package/src/assets/demo/images/landing/icon-productivity.svg +3 -3
  324. package/src/assets/demo/images/landing/icon-support.svg +3 -3
  325. package/src/assets/demo/images/landing/icon-theme.svg +3 -3
  326. package/src/assets/demo/images/landing/icon-ts.svg +11 -11
  327. package/src/assets/demo/images/product/product-placeholder.svg +9 -9
  328. package/src/assets/demo/styles/badges.css +93 -93
  329. package/src/assets/demo/styles/badges.scss +109 -109
  330. package/src/assets/demo/styles/code.css +14 -14
  331. package/src/assets/demo/styles/code.scss +14 -14
  332. package/src/assets/demo/styles/flags/flags.css +1 -1
  333. package/src/assets/glyphicons/css/boton-icon.css +547 -547
  334. package/src/assets/glyphicons/css/glyphicons-basic.css +3317 -3317
  335. package/src/assets/glyphicons/css/glyphicons-filetypes.css +649 -649
  336. package/src/assets/glyphicons/css/glyphicons-halflings.css +101 -101
  337. package/src/assets/glyphicons/css/glyphicons-social.css +88 -88
  338. package/src/assets/glyphicons/css/glyphicons.css +4 -4
  339. package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.svg +167 -167
  340. package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.svg +327 -327
  341. package/src/assets/glyphicons/fonts/regular/glyphicons-regular.svg +827 -827
  342. package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.svg +97 -97
  343. package/src/assets/layout/images/401.svg +11 -11
  344. package/src/assets/layout/images/extensions/asset-amex.svg +22 -22
  345. package/src/assets/layout/images/extensions/asset-mastercard.svg +16 -16
  346. package/src/assets/layout/images/extensions/asset-paypal.svg +17 -17
  347. package/src/assets/layout/images/extensions/asset-visa.svg +16 -16
  348. package/src/assets/layout/images/extensions/prime-logo.svg +17 -17
  349. package/src/assets/layout/images/footer-ultima-dark.svg +4 -4
  350. package/src/assets/layout/images/footer-ultima.svg +4 -4
  351. package/src/assets/layout/images/logo-ultima.svg +13 -13
  352. package/src/assets/layout/images/widgets/feature-faq.svg +59 -59
  353. package/src/assets/layout/images/widgets/feature-onboarding.svg +36 -36
  354. package/src/assets/layout/images/widgets/feature-security.svg +47 -47
  355. package/src/assets/layout/styles/layout/_animation.scss +52 -52
  356. package/src/assets/layout/styles/layout/_breadcrumb.scss +43 -43
  357. package/src/assets/layout/styles/layout/_config.scss +12 -12
  358. package/src/assets/layout/styles/layout/_content.scss +9 -9
  359. package/src/assets/layout/styles/layout/_fonts.scss +29 -29
  360. package/src/assets/layout/styles/layout/_footer.scss +15 -15
  361. package/src/assets/layout/styles/layout/_invoice.scss +19 -19
  362. package/src/assets/layout/styles/layout/_landing.scss +10 -10
  363. package/src/assets/layout/styles/layout/_main.scss +27 -27
  364. package/src/assets/layout/styles/layout/_megamenu.scss +6 -6
  365. package/src/assets/layout/styles/layout/_menuprofile.scss +75 -75
  366. package/src/assets/layout/styles/layout/_responsive.scss +243 -243
  367. package/src/assets/layout/styles/layout/_rightmenu.scss +57 -57
  368. package/src/assets/layout/styles/layout/_typography.scss +90 -90
  369. package/src/assets/layout/styles/layout/_utils.scss +77 -77
  370. package/src/assets/layout/styles/layout/layout.css +1802 -1802
  371. package/src/assets/layout/styles/layout/layout.scss +18 -18
  372. package/src/assets/layout/styles/layout/preloading.css +65 -65
  373. package/src/assets/layout/styles/layout/preloading.scss +59 -59
  374. package/src/assets/layout/styles/layout/sidebar/_sidebar.scss +17 -17
  375. package/src/assets/layout/styles/layout/sidebar/_sidebar_drawer.scss +282 -282
  376. package/src/assets/layout/styles/layout/sidebar/_sidebar_horizontal.scss +210 -210
  377. package/src/assets/layout/styles/layout/sidebar/_sidebar_reveal.scss +186 -186
  378. package/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +201 -201
  379. package/src/assets/layout/styles/layout/sidebar/_sidebar_slim_plus.scss +215 -215
  380. package/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +183 -183
  381. package/src/assets/layout/styles/layout/sidebar/themes/_menu_bluegrey.scss +10 -10
  382. package/src/assets/layout/styles/layout/sidebar/themes/_menu_brown.scss +9 -9
  383. package/src/assets/layout/styles/layout/sidebar/themes/_menu_cyan.scss +9 -9
  384. package/src/assets/layout/styles/layout/sidebar/themes/_menu_dark.scss +8 -8
  385. package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeporange.scss +9 -9
  386. package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeppurple.scss +9 -9
  387. package/src/assets/layout/styles/layout/sidebar/themes/_menu_green.scss +9 -9
  388. package/src/assets/layout/styles/layout/sidebar/themes/_menu_indigo.scss +9 -9
  389. package/src/assets/layout/styles/layout/sidebar/themes/_menu_light.scss +8 -8
  390. package/src/assets/layout/styles/layout/sidebar/themes/_menu_pink.scss +9 -9
  391. package/src/assets/layout/styles/layout/sidebar/themes/_menu_purple.scss +9 -9
  392. package/src/assets/layout/styles/layout/sidebar/themes/_menu_teal.scss +9 -9
  393. package/src/assets/layout/styles/layout/topbar/_topbar.scss +21 -21
  394. package/src/assets/layout/styles/layout/topbar/_topbar_main.scss +235 -235
  395. package/src/assets/layout/styles/layout/topbar/themes/_topbar_amber.scss +9 -9
  396. package/src/assets/layout/styles/layout/topbar/themes/_topbar_blue.scss +9 -9
  397. package/src/assets/layout/styles/layout/topbar/themes/_topbar_bluegrey.scss +9 -9
  398. package/src/assets/layout/styles/layout/topbar/themes/_topbar_brown.scss +9 -9
  399. package/src/assets/layout/styles/layout/topbar/themes/_topbar_cyan.scss +9 -9
  400. package/src/assets/layout/styles/layout/topbar/themes/_topbar_dark.scss +9 -9
  401. package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeporange.scss +9 -9
  402. package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeppurple.scss +9 -9
  403. package/src/assets/layout/styles/layout/topbar/themes/_topbar_green.scss +8 -8
  404. package/src/assets/layout/styles/layout/topbar/themes/_topbar_grey.scss +9 -9
  405. package/src/assets/layout/styles/layout/topbar/themes/_topbar_indigo.scss +9 -9
  406. package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightblue.scss +9 -9
  407. package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightgreen.scss +9 -9
  408. package/src/assets/layout/styles/layout/topbar/themes/_topbar_lime.scss +9 -9
  409. package/src/assets/layout/styles/layout/topbar/themes/_topbar_orange.scss +9 -9
  410. package/src/assets/layout/styles/layout/topbar/themes/_topbar_pink.scss +9 -9
  411. package/src/assets/layout/styles/layout/topbar/themes/_topbar_purple.scss +9 -9
  412. package/src/assets/layout/styles/layout/topbar/themes/_topbar_teal.scss +9 -9
  413. package/src/assets/layout/styles/layout/topbar/themes/_topbar_white.scss +9 -9
  414. package/src/assets/layout/styles/layout/topbar/themes/_topbar_yellow.scss +9 -9
  415. package/src/assets/layout/styles/theme/_compact.scss +88 -88
  416. package/src/assets/layout/styles/theme/designer/_colors.scss +18 -18
  417. package/src/assets/layout/styles/theme/designer/_common.scss +74 -74
  418. package/src/assets/layout/styles/theme/designer/_components.scss +102 -102
  419. package/src/assets/layout/styles/theme/designer/_mixins.scss +203 -203
  420. package/src/assets/layout/styles/theme/designer/components/button/_button.scss +604 -604
  421. package/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +80 -80
  422. package/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -381
  423. package/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -37
  424. package/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +340 -340
  425. package/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -55
  426. package/src/assets/layout/styles/theme/designer/components/data/_filter.scss +137 -137
  427. package/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -329
  428. package/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +102 -102
  429. package/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +59 -59
  430. package/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +120 -120
  431. package/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +102 -102
  432. package/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -38
  433. package/src/assets/layout/styles/theme/designer/components/data/_tree.scss +148 -148
  434. package/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +250 -250
  435. package/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -28
  436. package/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -58
  437. package/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -117
  438. package/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +271 -271
  439. package/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +125 -125
  440. package/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -85
  441. package/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -54
  442. package/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -19
  443. package/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +149 -149
  444. package/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -122
  445. package/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +77 -77
  446. package/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +15 -15
  447. package/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +27 -27
  448. package/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +59 -59
  449. package/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +116 -116
  450. package/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +81 -81
  451. package/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +173 -173
  452. package/src/assets/layout/styles/theme/designer/components/input/_password.scss +51 -51
  453. package/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +77 -77
  454. package/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -48
  455. package/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +49 -49
  456. package/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -71
  457. package/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +47 -47
  458. package/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +138 -138
  459. package/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -42
  460. package/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -56
  461. package/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -86
  462. package/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -106
  463. package/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -45
  464. package/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -183
  465. package/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +142 -142
  466. package/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -59
  467. package/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -56
  468. package/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +76 -76
  469. package/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +82 -82
  470. package/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -64
  471. package/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -102
  472. package/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +102 -102
  473. package/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +29 -29
  474. package/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +47 -47
  475. package/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +37 -37
  476. package/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -17
  477. package/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -17
  478. package/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +19 -19
  479. package/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +7 -7
  480. package/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +34 -34
  481. package/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -11
  482. package/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -139
  483. package/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -44
  484. package/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +68 -68
  485. package/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +89 -89
  486. package/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +84 -84
  487. package/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +27 -27
  488. package/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +37 -37
  489. package/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +146 -146
  490. package/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -30
  491. package/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -31
  492. package/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +52 -52
  493. package/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +59 -59
  494. package/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +5 -5
  495. package/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +18 -18
  496. package/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +11 -11
  497. package/src/assets/layout/styles/theme/extensions/_accordion.scss +55 -55
  498. package/src/assets/layout/styles/theme/extensions/_autocomplete.scss +67 -67
  499. package/src/assets/layout/styles/theme/extensions/_breadcrumb.scss +9 -9
  500. package/src/assets/layout/styles/theme/extensions/_button.scss +217 -217
  501. package/src/assets/layout/styles/theme/extensions/_calendar.scss +154 -154
  502. package/src/assets/layout/styles/theme/extensions/_carousel.scss +13 -13
  503. package/src/assets/layout/styles/theme/extensions/_cascadeselect.scss +73 -73
  504. package/src/assets/layout/styles/theme/extensions/_checkbox.scss +85 -85
  505. package/src/assets/layout/styles/theme/extensions/_chips.scss +55 -55
  506. package/src/assets/layout/styles/theme/extensions/_datatable.scss +38 -38
  507. package/src/assets/layout/styles/theme/extensions/_dropdown.scss +48 -48
  508. package/src/assets/layout/styles/theme/extensions/_fieldset.scss +15 -15
  509. package/src/assets/layout/styles/theme/extensions/_float_label.scss +51 -51
  510. package/src/assets/layout/styles/theme/extensions/_fullcalendar.scss +84 -84
  511. package/src/assets/layout/styles/theme/extensions/_galleria.scss +26 -26
  512. package/src/assets/layout/styles/theme/extensions/_input.scss +14 -14
  513. package/src/assets/layout/styles/theme/extensions/_inputgroup.scss +32 -32
  514. package/src/assets/layout/styles/theme/extensions/_inputmask.scss +14 -14
  515. package/src/assets/layout/styles/theme/extensions/_inputnumber.scss +14 -14
  516. package/src/assets/layout/styles/theme/extensions/_inputswitch.scss +32 -32
  517. package/src/assets/layout/styles/theme/extensions/_listbox.scss +17 -17
  518. package/src/assets/layout/styles/theme/extensions/_megamenu.scss +9 -9
  519. package/src/assets/layout/styles/theme/extensions/_menu.scss +9 -9
  520. package/src/assets/layout/styles/theme/extensions/_menubar.scss +9 -9
  521. package/src/assets/layout/styles/theme/extensions/_mixins.scss +108 -108
  522. package/src/assets/layout/styles/theme/extensions/_multiselect.scss +104 -104
  523. package/src/assets/layout/styles/theme/extensions/_orderlist.scss +13 -13
  524. package/src/assets/layout/styles/theme/extensions/_overlaypanel.scss +20 -20
  525. package/src/assets/layout/styles/theme/extensions/_paginator.scss +20 -20
  526. package/src/assets/layout/styles/theme/extensions/_panel.scss +28 -28
  527. package/src/assets/layout/styles/theme/extensions/_panelmenu.scss +49 -49
  528. package/src/assets/layout/styles/theme/extensions/_picklist.scss +13 -13
  529. package/src/assets/layout/styles/theme/extensions/_progressbar.scss +6 -6
  530. package/src/assets/layout/styles/theme/extensions/_radiobutton.scss +49 -49
  531. package/src/assets/layout/styles/theme/extensions/_rating.scss +35 -35
  532. package/src/assets/layout/styles/theme/extensions/_selectbutton.scss +12 -12
  533. package/src/assets/layout/styles/theme/extensions/_slidemenu.scss +7 -7
  534. package/src/assets/layout/styles/theme/extensions/_slider.scss +15 -15
  535. package/src/assets/layout/styles/theme/extensions/_steps.scss +65 -65
  536. package/src/assets/layout/styles/theme/extensions/_tabmenu.scss +37 -37
  537. package/src/assets/layout/styles/theme/extensions/_tabview.scss +31 -31
  538. package/src/assets/layout/styles/theme/extensions/_tieredmenu.scss +7 -7
  539. package/src/assets/layout/styles/theme/extensions/_timeline.scss +8 -8
  540. package/src/assets/layout/styles/theme/extensions/_togglebutton.scss +10 -10
  541. package/src/assets/layout/styles/theme/extensions/_toolbar.scss +2 -2
  542. package/src/assets/layout/styles/theme/extensions/_tooltip.scss +9 -9
  543. package/src/assets/layout/styles/theme/extensions/_tree.scss +15 -15
  544. package/src/assets/layout/styles/theme/extensions/_treeselect.scss +84 -84
  545. package/src/assets/layout/styles/theme/extensions/_treetable.scss +18 -18
  546. package/src/assets/layout/styles/theme/extensions/_vendor_extensions.scss +50 -50
  547. package/src/assets/layout/styles/theme/theme-dark/_variables.scss +869 -869
  548. package/src/assets/layout/styles/theme/theme-dark/amber/theme.css +7731 -7731
  549. package/src/assets/layout/styles/theme/theme-dark/amber/theme.scss +10 -10
  550. package/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7724 -7724
  551. package/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +9 -9
  552. package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.css +7723 -7723
  553. package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.scss +10 -10
  554. package/src/assets/layout/styles/theme/theme-dark/brown/theme.css +7731 -7731
  555. package/src/assets/layout/styles/theme/theme-dark/brown/theme.scss +10 -10
  556. package/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7731 -7731
  557. package/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +10 -10
  558. package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.css +7731 -7731
  559. package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.scss +11 -11
  560. package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7731 -7731
  561. package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +9 -9
  562. package/src/assets/layout/styles/theme/theme-dark/green/theme.css +7731 -7731
  563. package/src/assets/layout/styles/theme/theme-dark/green/theme.scss +10 -10
  564. package/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +7731 -7731
  565. package/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +10 -10
  566. package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.css +7731 -7731
  567. package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.scss +9 -9
  568. package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.css +7731 -7731
  569. package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.scss +10 -10
  570. package/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7731 -7731
  571. package/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +10 -10
  572. package/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7731 -7731
  573. package/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +10 -10
  574. package/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7731 -7731
  575. package/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +9 -9
  576. package/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7731 -7731
  577. package/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +10 -10
  578. package/src/assets/layout/styles/theme/theme-dark/teal/theme.css +7731 -7731
  579. package/src/assets/layout/styles/theme/theme-dark/teal/theme.scss +9 -9
  580. package/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7731 -7731
  581. package/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +10 -10
  582. package/src/assets/layout/styles/theme/theme-light/_variables.scss +868 -868
  583. package/src/assets/layout/styles/theme/theme-light/amber/theme.css +7731 -7731
  584. package/src/assets/layout/styles/theme/theme-light/amber/theme.scss +11 -11
  585. package/src/assets/layout/styles/theme/theme-light/blue/theme.css +7731 -7731
  586. package/src/assets/layout/styles/theme/theme-light/blue/theme.scss +10 -10
  587. package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.css +7731 -7731
  588. package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.scss +11 -11
  589. package/src/assets/layout/styles/theme/theme-light/brown/theme.css +7731 -7731
  590. package/src/assets/layout/styles/theme/theme-light/brown/theme.scss +11 -11
  591. package/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7731 -7731
  592. package/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -12
  593. package/src/assets/layout/styles/theme/theme-light/deeporange/theme.css +7731 -7731
  594. package/src/assets/layout/styles/theme/theme-light/deeporange/theme.scss +11 -11
  595. package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7731 -7731
  596. package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +11 -11
  597. package/src/assets/layout/styles/theme/theme-light/green/theme.css +7731 -7731
  598. package/src/assets/layout/styles/theme/theme-light/green/theme.scss +11 -11
  599. package/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7731 -7731
  600. package/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +10 -10
  601. package/src/assets/layout/styles/theme/theme-light/lightblue/theme.css +7731 -7731
  602. package/src/assets/layout/styles/theme/theme-light/lightblue/theme.scss +11 -11
  603. package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.css +7731 -7731
  604. package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.scss +11 -11
  605. package/src/assets/layout/styles/theme/theme-light/lime/theme.css +7731 -7731
  606. package/src/assets/layout/styles/theme/theme-light/lime/theme.scss +11 -11
  607. package/src/assets/layout/styles/theme/theme-light/orange/theme.css +7731 -7731
  608. package/src/assets/layout/styles/theme/theme-light/orange/theme.scss +11 -11
  609. package/src/assets/layout/styles/theme/theme-light/pink/theme.css +7731 -7731
  610. package/src/assets/layout/styles/theme/theme-light/pink/theme.scss +11 -11
  611. package/src/assets/layout/styles/theme/theme-light/purple/theme.css +7731 -7731
  612. package/src/assets/layout/styles/theme/theme-light/purple/theme.scss +11 -11
  613. package/src/assets/layout/styles/theme/theme-light/teal/theme.css +7731 -7731
  614. package/src/assets/layout/styles/theme/theme-light/teal/theme.scss +11 -11
  615. package/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7731 -7731
  616. package/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +11 -11
  617. package/src/assets/theme/uniondinamic/layout-light.css +4923 -4923
  618. package/src/assets/theme/uniondinamic/theme-light.css +8137 -8137
  619. package/src/environments/environment.prod.ts +3 -0
  620. package/src/environments/environment.ts +25 -0
  621. package/src/favicon.ico +0 -0
  622. package/src/index.html +14 -0
  623. package/src/main.ts +12 -0
  624. package/src/polyfills.ts +53 -0
  625. package/src/styles/primeflex/primeflex.scss +47 -47
  626. package/src/styles/primeng/layout/layout-dark.scss +1 -1
  627. package/src/styles/primeng/layout/layout-light.scss +1 -1
  628. package/src/styles/primeng/sass/_fonts.scss +45 -45
  629. package/src/styles/primeng/sass/layout/_animation.scss +70 -70
  630. package/src/styles/primeng/sass/layout/_breadcrumb.scss +23 -23
  631. package/src/styles/primeng/sass/layout/_config.scss +73 -73
  632. package/src/styles/primeng/sass/layout/_dashboard.scss +51 -51
  633. package/src/styles/primeng/sass/layout/_footer.scss +3 -3
  634. package/src/styles/primeng/sass/layout/_help.scss +25 -25
  635. package/src/styles/primeng/sass/layout/_invoice.scss +19 -19
  636. package/src/styles/primeng/sass/layout/_landing.scss +163 -163
  637. package/src/styles/primeng/sass/layout/_loader.scss +72 -72
  638. package/src/styles/primeng/sass/layout/_main.scss +220 -220
  639. package/src/styles/primeng/sass/layout/_megamenu.scss +6 -6
  640. package/src/styles/primeng/sass/layout/_mixins.scss +55 -55
  641. package/src/styles/primeng/sass/layout/_pages.scss +206 -206
  642. package/src/styles/primeng/sass/layout/_rightmenu.scss +43 -43
  643. package/src/styles/primeng/sass/layout/_rtl.scss +50 -50
  644. package/src/styles/primeng/sass/layout/_typography.scss +21 -21
  645. package/src/styles/primeng/sass/layout/_utils.scss +352 -352
  646. package/src/styles/primeng/sass/layout/_widgets.scss +466 -466
  647. package/src/styles/primeng/sass/layout/_wizard.scss +414 -414
  648. package/src/styles/primeng/sass/layout/core/_layout.scss +24 -24
  649. package/src/styles/primeng/sass/layout/core/_layout_dark.scss +2 -2
  650. package/src/styles/primeng/sass/layout/core/_layout_light.scss +2 -2
  651. package/src/styles/primeng/sass/layout/menu/_inline_menu.scss +44 -44
  652. package/src/styles/primeng/sass/layout/menu/_menu.scss +20 -20
  653. package/src/styles/primeng/sass/layout/menu/_menu_common.scss +116 -116
  654. package/src/styles/primeng/sass/layout/menu/_menu_exports.scss +4 -4
  655. package/src/styles/primeng/sass/layout/menu/_menu_horizontal.scss +75 -75
  656. package/src/styles/primeng/sass/layout/menu/_menu_overlay.scss +30 -30
  657. package/src/styles/primeng/sass/layout/menu/_menu_responsive.scss +35 -35
  658. package/src/styles/primeng/sass/layout/menu/_menu_slim.scss +76 -76
  659. package/src/styles/primeng/sass/layout/menu/_menu_static.scss +26 -26
  660. package/src/styles/primeng/sass/layout/menu/_menu_theme.scss +105 -105
  661. package/src/styles/primeng/sass/layout/menu/_rtl_menu.scss +155 -155
  662. package/src/styles/primeng/sass/layout/menu/themes/_menu_bluegrey.scss +16 -16
  663. package/src/styles/primeng/sass/layout/menu/themes/_menu_brown.scss +15 -15
  664. package/src/styles/primeng/sass/layout/menu/themes/_menu_cyan.scss +15 -15
  665. package/src/styles/primeng/sass/layout/menu/themes/_menu_dark.scss +15 -15
  666. package/src/styles/primeng/sass/layout/menu/themes/_menu_deeporange.scss +15 -15
  667. package/src/styles/primeng/sass/layout/menu/themes/_menu_deeppurple.scss +15 -15
  668. package/src/styles/primeng/sass/layout/menu/themes/_menu_green.scss +15 -15
  669. package/src/styles/primeng/sass/layout/menu/themes/_menu_indigo.scss +15 -15
  670. package/src/styles/primeng/sass/layout/menu/themes/_menu_light.scss +15 -15
  671. package/src/styles/primeng/sass/layout/menu/themes/_menu_pink.scss +16 -16
  672. package/src/styles/primeng/sass/layout/menu/themes/_menu_purple.scss +16 -16
  673. package/src/styles/primeng/sass/layout/menu/themes/_menu_teal.scss +16 -16
  674. package/src/styles/primeng/sass/layout/topbar/_rtl_topbar.scss +92 -92
  675. package/src/styles/primeng/sass/layout/topbar/_topbar.scss +24 -24
  676. package/src/styles/primeng/sass/layout/topbar/_topbar_common.scss +161 -161
  677. package/src/styles/primeng/sass/layout/topbar/_topbar_exports.scss +4 -4
  678. package/src/styles/primeng/sass/layout/topbar/_topbar_responsive.scss +90 -90
  679. package/src/styles/primeng/sass/layout/topbar/_topbar_theme.scss +115 -115
  680. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_amber.scss +13 -13
  681. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_blue.scss +13 -13
  682. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_bluegrey.scss +13 -13
  683. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_brown.scss +13 -13
  684. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_custom.scss +13 -13
  685. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_cyan.scss +13 -13
  686. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_dark.scss +13 -13
  687. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeporange.scss +13 -13
  688. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeppurple.scss +13 -13
  689. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_green.scss +13 -13
  690. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_grey.scss +13 -13
  691. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_indigo.scss +13 -13
  692. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightblue.scss +13 -13
  693. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightgreen.scss +13 -13
  694. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lime.scss +13 -13
  695. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_orange.scss +13 -13
  696. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_pink.scss +13 -13
  697. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_purple.scss +13 -13
  698. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_teal.scss +13 -13
  699. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_white.scss +13 -13
  700. package/src/styles/primeng/sass/layout/topbar/themes/_topbar_yellow.scss +13 -13
  701. package/src/styles/primeng/sass/overrides/_layout_styles.scss +30 -30
  702. package/src/styles/primeng/sass/overrides/_layout_variables.scss +3 -3
  703. package/src/styles/primeng/sass/overrides/_theme_styles.scss +4897 -4826
  704. package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +6035 -5962
  705. package/src/styles/primeng/sass/overrides/_theme_variables.scss +135 -135
  706. package/src/styles/primeng/sass/theme/_compact.scss +88 -88
  707. package/src/styles/primeng/sass/theme/_theme_dark.scss +6 -6
  708. package/src/styles/primeng/sass/theme/_theme_light.scss +5 -5
  709. package/src/styles/primeng/sass/theme/designer/_colors.scss +18 -18
  710. package/src/styles/primeng/sass/theme/designer/_common.scss +75 -75
  711. package/src/styles/primeng/sass/theme/designer/_components.scss +102 -102
  712. package/src/styles/primeng/sass/theme/designer/_mixins.scss +203 -203
  713. package/src/styles/primeng/sass/theme/designer/components/button/_button.scss +621 -621
  714. package/src/styles/primeng/sass/theme/designer/components/button/_speeddial.scss +80 -80
  715. package/src/styles/primeng/sass/theme/designer/components/button/_splitbutton.scss +381 -381
  716. package/src/styles/primeng/sass/theme/designer/components/data/_carousel.scss +37 -37
  717. package/src/styles/primeng/sass/theme/designer/components/data/_datatable.scss +357 -357
  718. package/src/styles/primeng/sass/theme/designer/components/data/_dataview.scss +55 -55
  719. package/src/styles/primeng/sass/theme/designer/components/data/_filter.scss +137 -137
  720. package/src/styles/primeng/sass/theme/designer/components/data/_fullcalendar.scss +329 -329
  721. package/src/styles/primeng/sass/theme/designer/components/data/_orderlist.scss +102 -102
  722. package/src/styles/primeng/sass/theme/designer/components/data/_organizationchart.scss +58 -58
  723. package/src/styles/primeng/sass/theme/designer/components/data/_paginator.scss +126 -126
  724. package/src/styles/primeng/sass/theme/designer/components/data/_picklist.scss +102 -102
  725. package/src/styles/primeng/sass/theme/designer/components/data/_timeline.scss +38 -38
  726. package/src/styles/primeng/sass/theme/designer/components/data/_tree.scss +155 -155
  727. package/src/styles/primeng/sass/theme/designer/components/data/_treetable.scss +246 -246
  728. package/src/styles/primeng/sass/theme/designer/components/data/_virtualscroller.scss +28 -28
  729. package/src/styles/primeng/sass/theme/designer/components/file/_fileupload.scss +58 -58
  730. package/src/styles/primeng/sass/theme/designer/components/input/_autocomplete.scss +117 -117
  731. package/src/styles/primeng/sass/theme/designer/components/input/_calendar.scss +271 -271
  732. package/src/styles/primeng/sass/theme/designer/components/input/_cascadeselect.scss +125 -125
  733. package/src/styles/primeng/sass/theme/designer/components/input/_checkbox.scss +92 -92
  734. package/src/styles/primeng/sass/theme/designer/components/input/_chips.scss +54 -54
  735. package/src/styles/primeng/sass/theme/designer/components/input/_colorpicker.scss +19 -19
  736. package/src/styles/primeng/sass/theme/designer/components/input/_dropdown.scss +173 -173
  737. package/src/styles/primeng/sass/theme/designer/components/input/_editor.scss +122 -122
  738. package/src/styles/primeng/sass/theme/designer/components/input/_inputgroup.scss +75 -75
  739. package/src/styles/primeng/sass/theme/designer/components/input/_inputmask.scss +15 -15
  740. package/src/styles/primeng/sass/theme/designer/components/input/_inputnumber.scss +27 -27
  741. package/src/styles/primeng/sass/theme/designer/components/input/_inputswitch.scss +59 -59
  742. package/src/styles/primeng/sass/theme/designer/components/input/_inputtext.scss +134 -134
  743. package/src/styles/primeng/sass/theme/designer/components/input/_listbox.scss +81 -81
  744. package/src/styles/primeng/sass/theme/designer/components/input/_multiselect.scss +173 -173
  745. package/src/styles/primeng/sass/theme/designer/components/input/_password.scss +51 -51
  746. package/src/styles/primeng/sass/theme/designer/components/input/_radiobutton.scss +77 -77
  747. package/src/styles/primeng/sass/theme/designer/components/input/_rating.scss +48 -48
  748. package/src/styles/primeng/sass/theme/designer/components/input/_selectbutton.scss +49 -49
  749. package/src/styles/primeng/sass/theme/designer/components/input/_slider.scss +71 -71
  750. package/src/styles/primeng/sass/theme/designer/components/input/_togglebutton.scss +47 -47
  751. package/src/styles/primeng/sass/theme/designer/components/input/_treeselect.scss +138 -138
  752. package/src/styles/primeng/sass/theme/designer/components/menu/_breadcrumb.scss +42 -42
  753. package/src/styles/primeng/sass/theme/designer/components/menu/_contextmenu.scss +56 -56
  754. package/src/styles/primeng/sass/theme/designer/components/menu/_dock.scss +86 -86
  755. package/src/styles/primeng/sass/theme/designer/components/menu/_megamenu.scss +106 -106
  756. package/src/styles/primeng/sass/theme/designer/components/menu/_menu.scss +45 -45
  757. package/src/styles/primeng/sass/theme/designer/components/menu/_menubar.scss +208 -208
  758. package/src/styles/primeng/sass/theme/designer/components/menu/_panelmenu.scss +142 -142
  759. package/src/styles/primeng/sass/theme/designer/components/menu/_slidemenu.scss +59 -59
  760. package/src/styles/primeng/sass/theme/designer/components/menu/_steps.scss +56 -56
  761. package/src/styles/primeng/sass/theme/designer/components/menu/_tabmenu.scss +77 -77
  762. package/src/styles/primeng/sass/theme/designer/components/menu/_tieredmenu.scss +91 -91
  763. package/src/styles/primeng/sass/theme/designer/components/messages/_inlinemessage.scss +64 -64
  764. package/src/styles/primeng/sass/theme/designer/components/messages/_message.scss +102 -102
  765. package/src/styles/primeng/sass/theme/designer/components/messages/_toast.scss +102 -102
  766. package/src/styles/primeng/sass/theme/designer/components/misc/_avatar.scss +29 -29
  767. package/src/styles/primeng/sass/theme/designer/components/misc/_badge.scss +47 -47
  768. package/src/styles/primeng/sass/theme/designer/components/misc/_chip.scss +37 -37
  769. package/src/styles/primeng/sass/theme/designer/components/misc/_inplace.scss +17 -17
  770. package/src/styles/primeng/sass/theme/designer/components/misc/_progressbar.scss +17 -17
  771. package/src/styles/primeng/sass/theme/designer/components/misc/_scrolltop.scss +19 -19
  772. package/src/styles/primeng/sass/theme/designer/components/misc/_skeleton.scss +7 -7
  773. package/src/styles/primeng/sass/theme/designer/components/misc/_tag.scss +34 -34
  774. package/src/styles/primeng/sass/theme/designer/components/misc/_terminal.scss +11 -11
  775. package/src/styles/primeng/sass/theme/designer/components/multimedia/_galleria.scss +139 -139
  776. package/src/styles/primeng/sass/theme/designer/components/multimedia/_image.scss +44 -44
  777. package/src/styles/primeng/sass/theme/designer/components/overlay/_confirmpopup.scss +77 -77
  778. package/src/styles/primeng/sass/theme/designer/components/overlay/_dialog.scss +91 -91
  779. package/src/styles/primeng/sass/theme/designer/components/overlay/_overlaypanel.scss +79 -79
  780. package/src/styles/primeng/sass/theme/designer/components/overlay/_sidebar.scss +27 -27
  781. package/src/styles/primeng/sass/theme/designer/components/overlay/_tooltip.scss +37 -37
  782. package/src/styles/primeng/sass/theme/designer/components/panel/_accordion.scss +180 -180
  783. package/src/styles/primeng/sass/theme/designer/components/panel/_card.scss +48 -48
  784. package/src/styles/primeng/sass/theme/designer/components/panel/_divider.scss +31 -31
  785. package/src/styles/primeng/sass/theme/designer/components/panel/_fieldset.scss +50 -50
  786. package/src/styles/primeng/sass/theme/designer/components/panel/_panel.scss +59 -59
  787. package/src/styles/primeng/sass/theme/designer/components/panel/_scrollpanel.scss +5 -5
  788. package/src/styles/primeng/sass/theme/designer/components/panel/_splitter.scss +18 -18
  789. package/src/styles/primeng/sass/theme/designer/components/panel/_tabview.scss +92 -92
  790. package/src/styles/primeng/sass/theme/designer/components/panel/_toolbar.scss +11 -11
  791. package/src/styles/primeng/sass/theme/extensions/_accordion.scss +73 -73
  792. package/src/styles/primeng/sass/theme/extensions/_autocomplete.scss +67 -67
  793. package/src/styles/primeng/sass/theme/extensions/_breadcrumb.scss +9 -9
  794. package/src/styles/primeng/sass/theme/extensions/_button.scss +243 -243
  795. package/src/styles/primeng/sass/theme/extensions/_calendar.scss +154 -154
  796. package/src/styles/primeng/sass/theme/extensions/_carousel.scss +13 -13
  797. package/src/styles/primeng/sass/theme/extensions/_cascadeselect.scss +73 -73
  798. package/src/styles/primeng/sass/theme/extensions/_checkbox.scss +85 -85
  799. package/src/styles/primeng/sass/theme/extensions/_chips.scss +55 -55
  800. package/src/styles/primeng/sass/theme/extensions/_datatable.scss +40 -40
  801. package/src/styles/primeng/sass/theme/extensions/_dropdown.scss +50 -50
  802. package/src/styles/primeng/sass/theme/extensions/_fieldset.scss +15 -15
  803. package/src/styles/primeng/sass/theme/extensions/_float_label.scss +51 -51
  804. package/src/styles/primeng/sass/theme/extensions/_fullcalendar.scss +84 -84
  805. package/src/styles/primeng/sass/theme/extensions/_galleria.scss +26 -26
  806. package/src/styles/primeng/sass/theme/extensions/_input.scss +17 -17
  807. package/src/styles/primeng/sass/theme/extensions/_inputgroup.scss +128 -128
  808. package/src/styles/primeng/sass/theme/extensions/_inputmask.scss +14 -14
  809. package/src/styles/primeng/sass/theme/extensions/_inputnumber.scss +14 -14
  810. package/src/styles/primeng/sass/theme/extensions/_inputswitch.scss +32 -32
  811. package/src/styles/primeng/sass/theme/extensions/_listbox.scss +17 -17
  812. package/src/styles/primeng/sass/theme/extensions/_megamenu.scss +9 -9
  813. package/src/styles/primeng/sass/theme/extensions/_menu.scss +9 -9
  814. package/src/styles/primeng/sass/theme/extensions/_menubar.scss +9 -9
  815. package/src/styles/primeng/sass/theme/extensions/_mixins.scss +110 -110
  816. package/src/styles/primeng/sass/theme/extensions/_multiselect.scss +104 -104
  817. package/src/styles/primeng/sass/theme/extensions/_orderlist.scss +13 -13
  818. package/src/styles/primeng/sass/theme/extensions/_overlaypanel.scss +24 -24
  819. package/src/styles/primeng/sass/theme/extensions/_paginator.scss +22 -22
  820. package/src/styles/primeng/sass/theme/extensions/_panel.scss +38 -38
  821. package/src/styles/primeng/sass/theme/extensions/_panelmenu.scss +49 -49
  822. package/src/styles/primeng/sass/theme/extensions/_picklist.scss +13 -13
  823. package/src/styles/primeng/sass/theme/extensions/_progressbar.scss +6 -6
  824. package/src/styles/primeng/sass/theme/extensions/_radiobutton.scss +49 -49
  825. package/src/styles/primeng/sass/theme/extensions/_rating.scss +35 -35
  826. package/src/styles/primeng/sass/theme/extensions/_selectbutton.scss +12 -12
  827. package/src/styles/primeng/sass/theme/extensions/_slidemenu.scss +7 -7
  828. package/src/styles/primeng/sass/theme/extensions/_slider.scss +15 -15
  829. package/src/styles/primeng/sass/theme/extensions/_steps.scss +67 -67
  830. package/src/styles/primeng/sass/theme/extensions/_tabmenu.scss +38 -38
  831. package/src/styles/primeng/sass/theme/extensions/_tabview.scss +31 -31
  832. package/src/styles/primeng/sass/theme/extensions/_tieredmenu.scss +7 -7
  833. package/src/styles/primeng/sass/theme/extensions/_timeline.scss +8 -8
  834. package/src/styles/primeng/sass/theme/extensions/_togglebutton.scss +10 -10
  835. package/src/styles/primeng/sass/theme/extensions/_toolbar.scss +2 -2
  836. package/src/styles/primeng/sass/theme/extensions/_tooltip.scss +9 -9
  837. package/src/styles/primeng/sass/theme/extensions/_tree.scss +15 -15
  838. package/src/styles/primeng/sass/theme/extensions/_treeselect.scss +84 -84
  839. package/src/styles/primeng/sass/theme/extensions/_treetable.scss +18 -18
  840. package/src/styles/primeng/sass/theme/extensions/_vendor_extensions.scss +50 -50
  841. package/src/styles/primeng/sass/variables/layout/_layout_common.scss +9 -9
  842. package/src/styles/primeng/sass/variables/layout/_layout_dark.scss +38 -38
  843. package/src/styles/primeng/sass/variables/layout/_layout_light.scss +38 -38
  844. package/src/styles/primeng/sass/variables/theme/_theme_dark.scss +871 -871
  845. package/src/styles/primeng/sass/variables/theme/_theme_light.scss +878 -878
  846. package/src/styles/primeng/theme/theme-dark.scss +8 -8
  847. package/src/styles/primeng/theme/theme-light.scss +11 -11
  848. package/src/styles/sass/_mixins.scss +2 -2
  849. package/src/styles/sass/_variables.scss +20 -20
  850. package/src/styles/sass/mixins/_breakpoints.scss +16 -16
  851. package/src/styles/sass/mixins/_colors.scss +34 -34
  852. package/src/styles/sass/pages/_general.scss +57 -57
  853. package/src/styles/sass/pages/_listado.scss +98 -98
  854. package/src/styles-dark.scss +32 -32
  855. package/src/styles.scss +32 -32
  856. package/src/test.ts +14 -0
  857. package/tsconfig.app.json +15 -0
  858. package/tsconfig.json +35 -0
  859. package/tsconfig.spec.json +18 -0
  860. package/esm2022/general-library-union.mjs +0 -5
  861. package/esm2022/public-api.mjs +0 -180
  862. package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +0 -40
  863. package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +0 -28
  864. package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +0 -194
  865. package/esm2022/src/app/core/componentes/footer/footer.component.mjs +0 -16
  866. package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +0 -272
  867. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +0 -11
  868. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +0 -124
  869. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +0 -73
  870. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +0 -59
  871. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +0 -21
  872. package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +0 -67
  873. package/esm2022/src/app/core/componentes/menu/menu.component.mjs +0 -37
  874. package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +0 -93
  875. package/esm2022/src/app/core/core.module.mjs +0 -23
  876. package/esm2022/src/app/core/errores/authentication.error.mjs +0 -7
  877. package/esm2022/src/app/core/modelos/error-response.model.mjs +0 -2
  878. package/esm2022/src/app/core/modelos/table-column.model.mjs +0 -2
  879. package/esm2022/src/app/core/modelos/user.model.mjs +0 -7
  880. package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +0 -230
  881. package/esm2022/src/app/core/servicios/auth.service.mjs +0 -185
  882. package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +0 -57
  883. package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +0 -64
  884. package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +0 -214
  885. package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +0 -66
  886. package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +0 -35
  887. package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +0 -37
  888. package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +0 -180
  889. package/esm2022/src/app/core/servicios/loading.service.mjs +0 -43
  890. package/esm2022/src/app/core/servicios/menu.service.mjs +0 -146
  891. package/esm2022/src/app/core/servicios/spinner-service.mjs +0 -22
  892. package/esm2022/src/app/core/servicios/storage.service.mjs +0 -68
  893. package/esm2022/src/app/core/servicios/template.service.mjs +0 -99
  894. package/esm2022/src/app/core/servicios/toast.service.mjs +0 -120
  895. package/esm2022/src/app/core/servicios/utils.service.mjs +0 -335
  896. package/esm2022/src/app/core/sharedlib.module.mjs +0 -16
  897. package/esm2022/src/app/core/utilidades/color.util.mjs +0 -177
  898. package/esm2022/src/app/layout/api/menuchangeevent.mjs +0 -2
  899. package/esm2022/src/app/layout/app.breadcrumb.component.mjs +0 -71
  900. package/esm2022/src/app/layout/app.footer.component.mjs +0 -18
  901. package/esm2022/src/app/layout/app.layout.component.mjs +0 -188
  902. package/esm2022/src/app/layout/app.layout.module.mjs +0 -15
  903. package/esm2022/src/app/layout/app.menu.component.mjs +0 -51
  904. package/esm2022/src/app/layout/app.menu.service.mjs +0 -24
  905. package/esm2022/src/app/layout/app.menuitem.component.mjs +0 -296
  906. package/esm2022/src/app/layout/app.menuprofile.component.mjs +0 -78
  907. package/esm2022/src/app/layout/app.rightmenu.component.mjs +0 -24
  908. package/esm2022/src/app/layout/app.sidebar.component.mjs +0 -92
  909. package/esm2022/src/app/layout/app.topbar.component.mjs +0 -345
  910. package/esm2022/src/app/layout/service/app.layout.service.mjs +0 -134
  911. package/esm2022/src/app/publico/pages/login/login.page.mjs +0 -129
  912. package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +0 -51
  913. package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +0 -167
  914. package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +0 -20
  915. package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +0 -30
  916. package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +0 -19
  917. package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +0 -8
  918. package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +0 -14
  919. package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +0 -9
  920. package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +0 -17
  921. package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +0 -11
  922. package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +0 -13
  923. package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +0 -18
  924. package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +0 -9
  925. package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +0 -6
  926. package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +0 -7
  927. package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +0 -21
  928. package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +0 -14
  929. package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +0 -21
  930. package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +0 -8
  931. package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +0 -35
  932. package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +0 -37
  933. package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +0 -14
  934. package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +0 -6
  935. package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +0 -14
  936. package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +0 -25
  937. package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +0 -19
  938. package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +0 -7
  939. package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +0 -5
  940. package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +0 -12
  941. package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +0 -6
  942. package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +0 -16
  943. package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +0 -17
  944. package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +0 -19
  945. package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +0 -9
  946. package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +0 -37
  947. package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +0 -16
  948. package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +0 -11
  949. package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +0 -51
  950. package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +0 -10
  951. package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +0 -15
  952. package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +0 -7
  953. package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +0 -10
  954. package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +0 -13
  955. package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +0 -14
  956. package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +0 -5
  957. package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +0 -17
  958. package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +0 -7
  959. package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +0 -15
  960. package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +0 -8
  961. package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +0 -5
  962. package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +0 -18
  963. package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +0 -6
  964. package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +0 -20
  965. package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +0 -9
  966. package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +0 -15
  967. package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +0 -9
  968. package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +0 -20
  969. package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +0 -16
  970. package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +0 -7
  971. package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +0 -10
  972. package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +0 -27
  973. package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +0 -7
  974. package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +0 -13
  975. package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +0 -13
  976. package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +0 -8
  977. package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +0 -33
  978. package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +0 -69
  979. package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +0 -24
  980. package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +0 -20
  981. package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +0 -124
  982. package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +0 -40
  983. package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +0 -10
  984. package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +0 -13
  985. package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +0 -9
  986. package/esm2022/src/app/seguridad/modelos/RolModel.mjs +0 -39
  987. package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +0 -28
  988. package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +0 -9
  989. package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +0 -25
  990. package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +0 -5
  991. package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +0 -54
  992. package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +0 -9
  993. package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +0 -8
  994. package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +0 -12
  995. package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +0 -53
  996. package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +0 -24
  997. package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +0 -15
  998. package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +0 -10
  999. package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +0 -154
  1000. package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +0 -54
  1001. package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +0 -46
  1002. package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +0 -53
  1003. package/esm2022/src/app/shared/servicios/general.service.mjs +0 -104
  1004. package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +0 -21
  1005. package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +0 -370
  1006. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +0 -187
  1007. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +0 -85
  1008. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +0 -347
  1009. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +0 -206
  1010. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +0 -329
  1011. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +0 -1583
  1012. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +0 -105
  1013. package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +0 -114
  1014. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +0 -588
  1015. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +0 -177
  1016. package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +0 -749
  1017. package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +0 -331
  1018. package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +0 -96
  1019. package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +0 -675
  1020. package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +0 -86
  1021. package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +0 -201
  1022. package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +0 -916
  1023. package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +0 -115
  1024. package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +0 -301
  1025. package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +0 -267
  1026. package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +0 -128
  1027. package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +0 -293
  1028. package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +0 -269
  1029. package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +0 -555
  1030. package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +0 -64
  1031. package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +0 -159
  1032. package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +0 -89
  1033. package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +0 -69
  1034. package/esm2022/src/app/webcommon/services/dashboard.service.mjs +0 -253
  1035. package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +0 -114
  1036. package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +0 -88
  1037. package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +0 -68
  1038. package/esm2022/src/app/webcommon/services/homologacion.service.mjs +0 -50
  1039. package/esm2022/src/app/webcommon/services/plantillas.service.mjs +0 -129
  1040. package/esm2022/src/app/webcommon/services/reportes.service.mjs +0 -95
  1041. package/esm2022/src/app/webcommon/webcommon.module.mjs +0 -15
  1042. package/esm2022/src/environments/environment.mjs +0 -24
  1043. package/fesm2022/general-library-union.mjs +0 -15938
  1044. package/fesm2022/general-library-union.mjs.map +0 -1
  1045. package/index.d.ts +0 -5
  1046. package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +0 -18
  1047. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +0 -14
  1048. package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +0 -34
  1049. package/src/app/core/componentes/footer/footer.component.d.ts +0 -9
  1050. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +0 -46
  1051. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +0 -44
  1052. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +0 -45
  1053. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +0 -33
  1054. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +0 -9
  1055. package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +0 -24
  1056. package/src/app/core/componentes/menu/menu.component.d.ts +0 -16
  1057. package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +0 -32
  1058. package/src/app/core/core.module.d.ts +0 -8
  1059. package/src/app/core/errores/authentication.error.d.ts +0 -3
  1060. package/src/app/core/modelos/error-response.model.d.ts +0 -9
  1061. package/src/app/core/modelos/table-column.model.d.ts +0 -12
  1062. package/src/app/core/modelos/user.model.d.ts +0 -6
  1063. package/src/app/core/plantilla-general/plantilla-general.template.d.ts +0 -89
  1064. package/src/app/core/servicios/auth.service.d.ts +0 -52
  1065. package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +0 -19
  1066. package/src/app/core/servicios/data-exporter-table.utils.d.ts +0 -11
  1067. package/src/app/core/servicios/error-interceptor.service.d.ts +0 -41
  1068. package/src/app/core/servicios/guardias/auth.guard.d.ts +0 -17
  1069. package/src/app/core/servicios/guardias/publico.guard.d.ts +0 -13
  1070. package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +0 -11
  1071. package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +0 -26
  1072. package/src/app/core/servicios/loading.service.d.ts +0 -22
  1073. package/src/app/core/servicios/menu.service.d.ts +0 -35
  1074. package/src/app/core/servicios/spinner-service.d.ts +0 -9
  1075. package/src/app/core/servicios/storage.service.d.ts +0 -37
  1076. package/src/app/core/servicios/template.service.d.ts +0 -20
  1077. package/src/app/core/servicios/toast.service.d.ts +0 -48
  1078. package/src/app/core/servicios/utils.service.d.ts +0 -42
  1079. package/src/app/core/sharedlib.module.d.ts +0 -6
  1080. package/src/app/core/utilidades/color.util.d.ts +0 -70
  1081. package/src/app/layout/app.breadcrumb.component.d.ts +0 -28
  1082. package/src/app/layout/app.footer.component.d.ts +0 -8
  1083. package/src/app/layout/app.layout.component.d.ts +0 -39
  1084. package/src/app/layout/app.layout.module.d.ts +0 -6
  1085. package/src/app/layout/app.menu.component.d.ts +0 -19
  1086. package/src/app/layout/app.menu.service.d.ts +0 -12
  1087. package/src/app/layout/app.menuitem.component.d.ts +0 -41
  1088. package/src/app/layout/app.menuprofile.component.d.ts +0 -18
  1089. package/src/app/layout/app.rightmenu.component.d.ts +0 -10
  1090. package/src/app/layout/app.sidebar.component.d.ts +0 -34
  1091. package/src/app/layout/app.topbar.component.d.ts +0 -79
  1092. package/src/app/layout/service/app.layout.service.d.ts +0 -57
  1093. package/src/app/publico/pages/login/login.page.d.ts +0 -40
  1094. package/src/app/publico/pages/not-found/not-found.page.d.ts +0 -17
  1095. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +0 -41
  1096. package/src/app/publico/pages/timeout/timeout.page.d.ts +0 -10
  1097. package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +0 -25
  1098. package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +0 -7
  1099. package/src/app/seguridad/modelos/AplicacionModel.d.ts +0 -7
  1100. package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +0 -13
  1101. package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +0 -8
  1102. package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +0 -16
  1103. package/src/app/seguridad/modelos/CargueLineaModel.d.ts +0 -12
  1104. package/src/app/seguridad/modelos/ColoresRGB.d.ts +0 -17
  1105. package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +0 -8
  1106. package/src/app/seguridad/modelos/ComplementoModel.d.ts +0 -6
  1107. package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +0 -20
  1108. package/src/app/seguridad/modelos/ConexionModel.d.ts +0 -13
  1109. package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +0 -7
  1110. package/src/app/seguridad/modelos/CorreoModel.d.ts +0 -31
  1111. package/src/app/seguridad/modelos/CorreoWSModel.d.ts +0 -33
  1112. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +0 -13
  1113. package/src/app/seguridad/modelos/EmpresaModel.d.ts +0 -23
  1114. package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +0 -18
  1115. package/src/app/seguridad/modelos/EtiquetaModel.d.ts +0 -4
  1116. package/src/app/seguridad/modelos/Etiquetas.d.ts +0 -10
  1117. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +0 -15
  1118. package/src/app/seguridad/modelos/FuenteDato.d.ts +0 -18
  1119. package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +0 -8
  1120. package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +0 -16
  1121. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +0 -10
  1122. package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +0 -8
  1123. package/src/app/seguridad/modelos/GeneralModel.d.ts +0 -8
  1124. package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +0 -9
  1125. package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +0 -13
  1126. package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +0 -13
  1127. package/src/app/seguridad/modelos/ListaServicioModel.d.ts +0 -16
  1128. package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +0 -6
  1129. package/src/app/seguridad/modelos/LoginModel.d.ts +0 -17
  1130. package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +0 -7
  1131. package/src/app/seguridad/modelos/ModulosModel.d.ts +0 -14
  1132. package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +0 -19
  1133. package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +0 -8
  1134. package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +0 -8
  1135. package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +0 -8
  1136. package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +0 -18
  1137. package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +0 -6
  1138. package/src/app/seguridad/modelos/PropiedadModel.d.ts +0 -9
  1139. package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +0 -25
  1140. package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +0 -6
  1141. package/src/app/seguridad/modelos/RecursoPunto.d.ts +0 -12
  1142. package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +0 -12
  1143. package/src/app/seguridad/modelos/ReporteBanda.d.ts +0 -7
  1144. package/src/app/seguridad/modelos/ReporteColumna.d.ts +0 -32
  1145. package/src/app/seguridad/modelos/ReporteColumnario.d.ts +0 -68
  1146. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +0 -23
  1147. package/src/app/seguridad/modelos/ReporteMarcador.d.ts +0 -39
  1148. package/src/app/seguridad/modelos/ReporteSoporte.d.ts +0 -9
  1149. package/src/app/seguridad/modelos/ReporteTabla.d.ts +0 -12
  1150. package/src/app/seguridad/modelos/RespuestaModel.d.ts +0 -8
  1151. package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +0 -25
  1152. package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +0 -8
  1153. package/src/app/seguridad/modelos/SitioPortalModel.d.ts +0 -24
  1154. package/src/app/seguridad/modelos/TablaFromModel.d.ts +0 -4
  1155. package/src/app/seguridad/modelos/TareasModel.d.ts +0 -49
  1156. package/src/app/seguridad/modelos/TextoModel.d.ts +0 -8
  1157. package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +0 -7
  1158. package/src/app/seguridad/modelos/UnionModel.d.ts +0 -11
  1159. package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +0 -22
  1160. package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +0 -13
  1161. package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +0 -9
  1162. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +0 -47
  1163. package/src/app/shared/servicios/cargar-archivos.service.d.ts +0 -15
  1164. package/src/app/shared/servicios/cargar-mapas.service.d.ts +0 -18
  1165. package/src/app/shared/servicios/encriptado-basico.service.d.ts +0 -10
  1166. package/src/app/shared/servicios/general.service.d.ts +0 -24
  1167. package/src/app/shared/servicios/parametros-navegacion.service.d.ts +0 -9
  1168. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +0 -78
  1169. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +0 -79
  1170. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +0 -29
  1171. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +0 -69
  1172. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +0 -51
  1173. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +0 -77
  1174. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +0 -278
  1175. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +0 -42
  1176. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +0 -35
  1177. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +0 -143
  1178. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +0 -49
  1179. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +0 -128
  1180. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +0 -64
  1181. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +0 -33
  1182. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +0 -149
  1183. package/src/app/webcommon/pipes/dashboard.pipe.d.ts +0 -48
  1184. package/src/app/webcommon/pipes/fuente.pipe.d.ts +0 -136
  1185. package/src/app/webcommon/pipes/general.pipe.d.ts +0 -646
  1186. package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +0 -59
  1187. package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +0 -193
  1188. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +0 -59
  1189. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +0 -27
  1190. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +0 -64
  1191. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +0 -63
  1192. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +0 -105
  1193. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +0 -21
  1194. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +0 -42
  1195. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +0 -30
  1196. package/src/app/webcommon/services/carguelinea.service.d.ts +0 -19
  1197. package/src/app/webcommon/services/dashboard.service.d.ts +0 -27
  1198. package/src/app/webcommon/services/ejecucionreporte.service.d.ts +0 -34
  1199. package/src/app/webcommon/services/fechaUtils.service.d.ts +0 -29
  1200. package/src/app/webcommon/services/fuentegeneral.service.d.ts +0 -24
  1201. package/src/app/webcommon/services/homologacion.service.d.ts +0 -17
  1202. package/src/app/webcommon/services/plantillas.service.d.ts +0 -26
  1203. package/src/app/webcommon/services/reportes.service.d.ts +0 -35
  1204. package/src/app/webcommon/webcommon.module.d.ts +0 -6
  1205. package/src/environments/environment.d.ts +0 -7
@@ -1 +0,0 @@
1
- {"version":3,"file":"general-library-union.mjs","sources":["../../src/app/seguridad/modelos/UnionModel.ts","../../src/app/seguridad/modelos/aplicacion-propiedad-model.ts","../../src/app/seguridad/modelos/AplicacionModel.ts","../../src/app/seguridad/modelos/ArchivoPortalModel.ts","../../src/app/seguridad/modelos/AtributoPuntoModel.ts","../../src/app/seguridad/modelos/AtributoSSOportalModel.ts","../../src/app/seguridad/modelos/AuditoriaArchivoModel.ts","../../src/app/seguridad/modelos/CargueLineaModel.ts","../../src/app/seguridad/modelos/ColoresRGB.ts","../../src/app/seguridad/modelos/ComplementoModel.ts","../../src/app/seguridad/modelos/ComponentePaginaModel.ts","../../src/app/seguridad/modelos/ConexionModel.ts","../../src/app/seguridad/modelos/contenidoCorreoModel.ts","../../src/app/seguridad/modelos/ContenidoHtmlPortalModel.ts","../../src/app/seguridad/modelos/ControlFuncionModel.ts","../../src/app/seguridad/modelos/CorreoModel.ts","../../src/app/seguridad/modelos/CorreoWSModel.ts","../../src/app/seguridad/modelos/CruceRecursoPuntoModel.ts","../../src/app/seguridad/modelos/DatoInicioModel.ts","../../src/app/seguridad/modelos/EjecucionReporteDataModel.ts","../../src/app/seguridad/modelos/EmpresaModel.ts","../../src/app/seguridad/modelos/EmpresaSeguridadModel.ts","../../src/app/seguridad/modelos/EntradaComplementoModel.ts","../../src/app/seguridad/modelos/EtiquetaModel.ts","../../src/app/seguridad/modelos/Etiquetas.ts","../../src/app/seguridad/modelos/FuenteCampoAtributoModel.ts","../../src/app/seguridad/modelos/FuenteCampoModel.ts","../../src/app/seguridad/modelos/FuenteDato.ts","../../src/app/seguridad/modelos/FuenteEntradaModel.ts","../../src/app/seguridad/modelos/FuenteGeneralModel.ts","../../src/app/seguridad/modelos/FuenteLineaServicioModel.ts","../../src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts","../../src/app/seguridad/modelos/FuenteServicioModel.ts","../../src/app/seguridad/modelos/FuncionalidadModel.ts","../../src/app/seguridad/modelos/GeneralModel.ts","../../src/app/seguridad/modelos/GrupoAccesoModel.ts","../../src/app/seguridad/modelos/GrupoControlFuncionModel.ts","../../src/app/seguridad/modelos/GrupoFuenteModel.ts","../../src/app/seguridad/modelos/GrupoPermisoModel.ts","../../src/app/seguridad/modelos/ListaServicioModel.ts","../../src/app/seguridad/modelos/LoginModel.ts","../../src/app/seguridad/modelos/MensajeSistemaModel.ts","../../src/app/seguridad/modelos/MenuPortalModel.ts","../../src/app/seguridad/modelos/ModulosModel.ts","../../src/app/seguridad/modelos/PaginaPortalModel.ts","../../src/app/seguridad/modelos/ParametroComponenteModel.ts","../../src/app/seguridad/modelos/ParametrosGeneralModel.ts","../../src/app/seguridad/modelos/PermisocontenidoModel.ts","../../src/app/seguridad/modelos/PermisoFuncionModel.ts","../../src/app/seguridad/modelos/PeticionModel.ts","../../src/app/seguridad/modelos/PreguntaSeguridadModel.ts","../../src/app/seguridad/modelos/PropiedadModel.ts","../../src/app/seguridad/modelos/PublicacionWebModel.ts","../../src/app/seguridad/modelos/PuntoProcesoModel.ts","../../src/app/seguridad/modelos/RecursoPunto.ts","../../src/app/seguridad/modelos/ReporteBanda.ts","../../src/app/seguridad/modelos/ReporteColumna.ts","../../src/app/seguridad/modelos/ReporteColumnario.ts","../../src/app/seguridad/modelos/ReporteColumnarioMarcador.ts","../../src/app/seguridad/modelos/ReporteEntradaModel.ts","../../src/app/seguridad/modelos/ReporteFuenteModel.ts","../../src/app/seguridad/modelos/ReporteMarcador.ts","../../src/app/seguridad/modelos/ReporteSoporte.ts","../../src/app/seguridad/modelos/ReporteTabla.ts","../../src/app/seguridad/modelos/RespuestaModel.ts","../../src/app/seguridad/modelos/RolModel.ts","../../src/app/seguridad/modelos/ServidorCorreoModel.ts","../../src/app/seguridad/modelos/SistemaMensajeModel.ts","../../src/app/seguridad/modelos/SitioPortalModel.ts","../../src/app/seguridad/modelos/TareasModel.ts","../../src/app/seguridad/modelos/TextoModel.ts","../../src/app/seguridad/modelos/TipoEtiqueta.ts","../../src/app/seguridad/modelos/UsuariogrupoModel.ts","../../src/app/seguridad/modelos/UsuarioModel.ts","../../src/environments/environment.ts","../../src/app/core/modelos/user.model.ts","../../src/app/core/errores/authentication.error.ts","../../src/app/core/servicios/utils.service.ts","../../src/app/core/servicios/storage.service.ts","../../src/app/core/servicios/cargar-control-funcionalidad.service.ts","../../src/app/core/servicios/auth.service.ts","../../src/app/core/servicios/menu.service.ts","../../src/app/core/servicios/error-interceptor.service.ts","../../src/app/core/servicios/template.service.ts","../../src/app/core/servicios/toast.service.ts","../../src/app/core/servicios/loading.service.ts","../../src/app/layout/service/app.layout.service.ts","../../src/app/layout/app.menuprofile.component.ts","../../src/app/layout/app.menuprofile.component.html","../../src/app/layout/app.menu.service.ts","../../src/app/layout/app.menuitem.component.ts","../../src/app/layout/app.menu.component.ts","../../src/app/layout/app.menu.component.html","../../src/app/webcommon/pipes/general.pipe.ts","../../src/app/layout/app.sidebar.component.ts","../../src/app/layout/app.sidebar.component.html","../../src/app/layout/app.topbar.component.ts","../../src/app/layout/app.topbar.component.html","../../src/app/layout/app.footer.component.ts","../../src/app/layout/app.footer.component.html","../../src/app/layout/app.rightmenu.component.ts","../../src/app/layout/app.rightmenu.component.html","../../src/app/layout/app.breadcrumb.component.ts","../../src/app/layout/app.breadcrumb.component.html","../../src/app/core/plantilla-general/plantilla-general.template.ts","../../src/app/core/plantilla-general/plantilla-general.template.html","../../src/app/core/core.module.ts","../../src/app/core/sharedlib.module.ts","../../src/app/layout/app.layout.module.ts","../../src/app/layout/app.layout.component.ts","../../src/app/layout/app.layout.component.html","../../src/app/core/componentes/breadcrumb/breadcrumb.component.ts","../../src/app/core/componentes/breadcrumb/breadcrumb.component.html","../../src/app/core/componentes/footer/footer.component.ts","../../src/app/core/componentes/footer/footer.component.html","../../src/app/core/componentes/menu/menu.component.ts","../../src/app/core/componentes/menu/menu.component.html","../../src/app/core/servicios/guardias/auth.guard.ts","../../src/app/core/servicios/guardias/publico.guard.ts","../../src/app/core/servicios/interceptores/token-interceptor.service.ts","../../src/app/core/utilidades/color.util.ts","../../src/app/core/componentes/inicio-component/inicio-component.component.ts","../../src/app/core/componentes/inicio-component/inicio-component.component.html","../../src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts","../../src/app/publico/pages/seleccion-rol/seleccion-rol.component.html","../../src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts","../../src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html","../../src/app/publico/pages/login/login.page.ts","../../src/app/publico/pages/login/login.page.html","../../src/app/publico/pages/not-found/not-found.page.ts","../../src/app/publico/pages/not-found/not-found.page.html","../../src/app/publico/pages/timeout/timeout.page.ts","../../src/app/publico/pages/timeout/timeout.page.html","../../src/app/core/componentes/filtro-general/filtro-general.component.ts","../../src/app/core/componentes/filtro-general/filtro-general.component.html","../../src/app/core/componentes/tabla-general/tabla-general.component.ts","../../src/app/core/componentes/tabla-general/tabla-general.component.html","../../src/app/webcommon/webcommon.module.ts","../../src/app/shared/servicios/general.service.ts","../../src/app/shared/servicios/cargar-mapas.service.ts","../../src/app/shared/servicios/parametros-navegacion.service.ts","../../src/app/webcommon/services/fuentegeneral.service.ts","../../src/app/shared/servicios/encriptado-basico.service.ts","../../src/app/webcommon/services/carguelinea.service.ts","../../src/app/webcommon/services/ejecucionreporte.service.ts","../../src/app/webcommon/services/fechaUtils.service.ts","../../src/app/webcommon/services/homologacion.service.ts","../../src/app/webcommon/services/reportes.service.ts","../../src/app/webcommon/pipes/fuente.pipe.ts","../../src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts","../../src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html","../../src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts","../../src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html","../../src/app/seguridad/modelos/RecursoPuntoModel.ts","../../src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts","../../src/app/webcommon/popups/popup-recurso/popup-recurso.component.html","../../src/app/webcommon/services/plantillas.service.ts","../../src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts","../../src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html","../../src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts","../../src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html","../../src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts","../../src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.ts","../../src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts","../../src/app/core/componentes/formulariodinamico/formulariodinamico.component.html","../../src/app/core/servicios/data-exporter-table.utils.ts","../../src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts","../../src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html","../../src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts","../../src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html","../../src/app/webcommon/pipes/reporte-fuente.pipe.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html","../../src/app/webcommon/pipes/reporte-columnario.pipe.ts","../../src/app/shared/servicios/cargar-archivos.service.ts","../../src/app/webcommon/pipes/dashboard.pipe.ts","../../src/app/webcommon/services/dashboard.service.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html","../../src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts","../../src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html","../../src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts","../../src/app/webcommon/popups/popup-reporte/popup-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html","../../src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts","../../src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html","../../src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts","../../src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts","../../src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts","../../src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html","../../src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts","../../src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html","../../src/app/seguridad/modelos/ColumnaFuenteModel.ts","../../src/app/seguridad/modelos/TablaFromModel.ts","../../src/app/seguridad/modelos/JoinFromModel.ts","../../src/app/seguridad/modelos/ForeingWraperModel.ts","../../src/app/seguridad/modelos/ColumnaWraperModel.ts","../../src/app/seguridad/constantes/ConstantesGenerales.ts","../../src/app/seguridad/modelos/ObjetoReporteModel.ts","../../src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts","../../src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html","../../src/app/seguridad/constantes/ReporteEntradaConstantes.ts","../../src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts","../../src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html","../../src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts","../../src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html","../../src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts","../../src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html","../../src/app/core/servicios/spinner-service.ts","../../src/app/core/servicios/interceptores/loading-interceptor.ts","../../public-api.ts","../../general-library-union.ts"],"sourcesContent":["\nexport class UnionModel {\n\n paginacionRegistroInicial : number;\n\tpaginacionRegistroFinal : number;\n\tfechaAdicionado : Date;\n\tfechaModificado: Date;\n\tadicionado: string;\n\tcontrolSeguimiento: string;\n\tllaveTabla: string;\n\tmodificado: string;\n\tcheck: boolean;\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class AplicacionPropiedadModel extends UnionModel {\n aplicacion: string;\n propiedad: string;\n nombrePropiedad: string;\n descripcionPropiedad: string;\n valor: string;\n tipo: string;\n listahijos: AplicacionPropiedadModel[];\n padre: boolean;\n expandido: boolean;\n\n //NO PERSISTENTES\n mostrarEditar: boolean;\n}\n","import { UnionModel } from \"./UnionModel\";\nexport class AplicacionModel extends UnionModel{\n\n codigo: string ;\n descripcion:string ;\n keyBase: string;\n\t estado: string ;\n\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ArchivoPortalModel extends UnionModel{\n\n descripcion: string;\n\tnombreOriginal: string;\n\textension: string;\n\tcarpetaPortal: string;\n\trutaFisica: string;\n\turl: string;\n\ttipoPadre: string;\n\tllavePadre: string;\n\n\turlLocal: string;\n\tbusqueda: string;\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class AtributoPuntoModel extends UnionModel {\n\tllave: string;\n\tpuntoProceso: string;\n\tdescripcion: string;\n\tatributo: string;\n\tcodigo: string;\n}","import { UnionModel } from \"./UnionModel\";\nexport class AtributossoMdel extends UnionModel{\n\n aplicacion:string;\n\t identificador:string;\n\t serviceProvider:string;\n\t identityProvider:string;\n\t endpoint:string;\n\t autenticacionSP:string;\n\t metadataSP:string;\n\t requestSP:string;\n\t relayState:string;\n\t certificado:string;\n\t formatoNombre:string;\n\t firmaPeticion:string;\n\t firmaAsercion:string;\n\n\n\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class AuditoriaArchivoModel extends UnionModel{\n\n usuario: String;\n actividad: Date;\n archivo: String;\n tipo: String;\n descripcion: String;\n tema: String;\n ip: String;\n\n}","import { UnionModel } from './UnionModel';\n\nexport class CargueLineaModel extends UnionModel {\n\n\tproceso: string;\n\tnumero: number;\n\tlinea: string;\n\tmensaje: string;\n\n\tfuente: string;\n\testado: boolean;\n\taplicacion: Date;\n\t\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\n}","export class coloresRGB{\n RCOL1: string;\n GCOL1: string;\n BCOL1: string;\n RCOL2: string;\n GCOL2: string;\n BCOL2: string;\n RCOL3: string;\n GCOL3: string;\n BCOL3: string;\n RCOL4: string;\n GCOL4: string;\n BCOL4: string;\n RCOL5: string;\n GCOL5: string;\n BCOL5: string;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class ComplementoModel extends UnionModel{\n\n descripcion:string;\n pagina:string;\n tipo:string;\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\nexport class ComponentePagina extends UnionModel {\n paginaPortal: string;\n\tarea: string;\n\ttipo: string;\n\tcontenido: string;\n\tcomplemento: string;\n\tforma: string;\n\tvisible: string;\n\tcontenidoNiega: string;\n orden: number;\n\tid: string;\n\testilo: string;\n\ttitulo: string;\n\tcodigoPagina: string;\n\tnombrePagina: string;\n\tnombreComplemento: string;\n\tnombreContenido: string;\n textoTotal: string;\n\n}\n\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ConexionModel extends UnionModel{\n llave:string;\n codigo:string;\n descripcion:string;\n usuario:string;\n conexionUrl:string;\n seleccion:string;\n auditoria:string;\n llaveGrupoAcceso:string;\n conexionSeguridad:string;\n carpeta:string;\n \n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ContenidoCorreoModel extends UnionModel {\n\n correo: string;\n orden: number;\n contenido: string;\n tipo: string;\n anexoDescripcion: string;\n anexo: string;\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ContenidoHtmlPortalModel extends UnionModel {\n\n id: string;\n private: string;\n descripcion: string;\n permiso: string;\n texto1: string;\n texto2: string;\n texto3: string;\n texto4: string;\n texto5: string;\n texto6: string;\n subContenidos: string;\n contexto: string;\n filtro: string;\n rol: string;\n empresa: string;\n controlAcceso: string;\n alternoID: string;\n\n\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class ControlFuncionModel extends UnionModel{\n\n llave: String ;\n\tcodigo: String;\n\tfuncionalidad: String;\n\tdescripcion: String;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class CorreoModel extends UnionModel{\n llave:string;\n usuario:string;\n destinatario:string;\n copia:string;\n asunto:string;\n estado:string;\n fechaEnvio:Date;\n proximoEnvio:Date;\n intentos:number;\n anexo:string;\n llaveServidor:string;\n copiaOculta:string;\n nombreCC:string;\n nombreBCC:string;\n maximoIntento:number;\n hallazgo:string;\n julianoBase:string;\n empresa:string;\n grupo:string;\n\n //Nombre que el usuario final visualizara al ver el nombre del archivo del anexo\n nombreDestino:string;\n mensaje:string;\n llaveInstancia:string;\n tipoBusqueda:string;\n\n //Indica si el contenido del correo esta en base de datos o en archivo html\n contenidoBD:string;\n\n //Filtro Fecha\n proximoEnvioInicial:Date;\n proximoEnvioFinal:Date;\n fechaEnvioInicial:Date;\n fechaEnvioFinal:Date;\n\n\n\n\n\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class CorreoWSModel extends UnionModel{\n llave:string;\n usuario:string;\n destinatario:string;\n copia:string;\n asunto:string;\n estado:string;\n fechaEnvio:Date;\n proximoEnvio:Date;\n intentos:number;\n anexo:string;\n llaveServidor:String;\n copiaOculta:string;\n nombreCC:string;\n nombreBCC:string;\n maximoIntento:number;\n hallazgo:string;\n julianoBase:string;\n empresa:string;\n grupo:string;\n\n //Nombre que el usuario final visualizara al ver el nombre del archivo del anexo\n nombreDestino:string;\n mensaje:string;\n llaveInstancia:string;\n tipoBusqueda:string;\n\n //Indica si el contenido del correo esta en base de datos o en archivo html\n contenidoBD:string;\n plantilla:string;\n\n //Campos nuevos\n archivoAdjunto:string;\n autoEnvio:boolean;\n llaveEmpresa:string;\n citacionCorreo:string;\n llaveRol:string;\n\n\n\n\n\n\n\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class CruceRecursoPuntoModel extends UnionModel {\n\tllave: string;\n\treporteEntrada: string;\n\tatributoPunto: string;\n\tfuenteEntrada: string;\n\tatributoPuntoDescripcion: string;\n\tdescripcionEntrada: string;\n\tatributoPuntoValor: string;\n\tpuntoProceso: string;\n\treporteFuente: string;\n\trecursoPunto: string;\n}","import { coloresRGB } from \"./ColoresRGB\";\n\nexport class DatoInicioDTO{\n colores: string;\n etiquetas: string;\n coloresRGB: coloresRGB;\n}","import { FuenteDatoModel } from \"./FuenteDato\";\nimport { RecursoPuntoModel } from \"./RecursoPuntoModel\";\nimport { ReporteColumnaModel } from \"./ReporteColumna\";\nimport { ReporteEntradaModel } from \"./ReporteEntradaModel\";\nimport { ReporteFuenteModel } from \"./ReporteFuenteModel\";\nimport { ReporteMarcadorModel } from \"./ReporteMarcador\";\nimport { ReporteSoporteModel } from \"./ReporteSoporte\";\n\nexport class EjecucionReporteDataModel{\n reporte: ReporteFuenteModel;\n listaEntrada: ReporteEntradaModel[];\n listaMarcador: ReporteMarcadorModel[];\n listaColumna: ReporteColumnaModel[];\n listaDinamico: ReporteMarcadorModel[];\n listaRecursoPunto: RecursoPuntoModel[];\n listaFuentes: FuenteDatoModel[];\n listaFuentesLista: FuenteDatoModel[];\n listaSoporte: ReporteSoporteModel[];\n listaMarcadorExcel: ReporteMarcadorModel[];\n modificarReporte?: boolean;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class EmpresaModel extends UnionModel{\ncodigo:string;\nnombre:string;\norganizacion:string;\nactivo:string;\nnombreModificado:string;\nnit:string;\ntipoIdRepresentanteLegal:string;\nidRepresentanteLegal:string;\nrepresentanteLegal:string;\npais:string;\nciudad:string;\ncodigoPostal:string;\ndireccion:string;\ntelefono1:string;\ntelefono2:string;\nactivado:Date;\nfiltro:string;\ncodMoneda:string;\n/* campos no persistentes */\nnombreOrganizacion:string;\nnombreMoneda:string;\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class EmpresaSeguridadModel extends UnionModel {\n\tempresa: number;\n\tnombre: string;\n\testilo: string;\n\tdominio: string;\n\turlLogoSitio: string\n\ttipoEtiqueta: string\n\tllave: string;\n\tllaveGrupoAcceso: string;\n\tllaveSitio: string;\n\tcodigoSiti: string;\n\tnit: number;\n\tpropiedadMonitoreo: string;\n\tllavePlanCorporativo: string;\n\ttipoPeriodoPlan: string;\n\tfechaCortePlan: Date;\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class EntradaComplementoModel extends UnionModel {\n\n codigo: String;\n descripcion: String;\n complemento: String;\n\n}","export class EtiquetaDTO{\n etiqueta: string;\n label: string;\n}","import { UnionModel } from \"./UnionModel\";\nexport class EtiquetasModel extends UnionModel{\n \n tipoEtiqueta:String;\n etiqueta:String;\n label:String;\n busqueda:String;\n aplicativo:String;\n nombreAplicativo:String;\n\n\n //DATOS NO PERSISTENTES\n mostrarEditar: boolean;\n}","import { UnionModel } from \"../../seguridad/modelos/UnionModel\";\n\n\nexport class FuenteCampoAtributoModel extends UnionModel{\n \n public fuenteLineaServicio: string;//linea o servicio del cual depende\n\tpublic campoAtributo: string;//atributo o campo al que esta asociado\n\tpublic tipoDato: string;// tipo de dato en el que se encuentra el campo o atributo\n\tpublic numero: number;// valor numerico del atributo\n\tpublic cadena: string;//valor texto del atributo\n\tpublic formato: string;//valor texto del atributo\n\tpublic fecha: Date; //valor tipo fecha del atributo\n\t\n\t/**\n\t * Se utiliza para conocer la entrada de la fuente relacionada \n\t * en los cargue fuente de BD\n\t */\n\tpublic fuenteEntrada;\n\n\n}","import { UnionModel } from \"./UnionModel\";\n\n\nexport class FuenteCampoModel extends UnionModel {\n \n fuente: String;\n descripcion: String;\n tipoDato: String;\n tipoInformacion: String;\n columna: Number;\n posicionInicial: Number;\n posicionFinal: Number;\n formato: String;\n homologacion: String;\n homologacionNombre: String;\n llaveDiferente: String;\n origen: String;\n obligatorio: String;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class FuenteDatoModel extends UnionModel {\n llave: string;\n descripcion: string;\n fromSql: string;\n whereJoin: string;\n whereAdicional: string;\n groupby: string;\n query: string;\n query2: string;\n origen: string;\n parametro: string;\n whereJoinValor: string;\n tipoDato: string;\n rol: string;\n login: string;\n empresa: number;\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class FuenteEntradaModel extends UnionModel {\n\tfuente: string;\n\tdescripcion: string;\n\ttipoDato: string;\n\tobligatorio: string;\n\tvalorDefecto: string;\n}","import { UnionModel } from \"./UnionModel\";\n\n\nexport class FuenteGeneralModel extends UnionModel{\n \n descripcion: string;\n tipo: string;\n aplicacion: string;\n plantilla: string;\n\n numeroFila: number;\n tipoInfoColumna: number;\n tipoInfoInicial: number;\n tipoInfoFinal: number;\n grupoColumna: number;\n grupoInicial: number;\n grupoFinal: number;\n\n datoRompe: string;\n separador: string;\n ejecucion: string;\n hoja: string;\n excel: string;\n\n proceso: string;\n\n origen: string;\n estado: string;\n valido: string;\n formulaDescripcion: string;\n tipoModelo: string;\n modoParametro: string;\n fuenteGeneral: string;\n\n\n login: string;\n rol: string;\n puntoProceso: string;\n filtroLoginRol: string;\n solicitaDetalle: string;\n guardarCargue: string;\n validadorLinea: string;\n motor: string;\n codigo: string;\n\n\n\n\n\n\n\n\n\n\n}","import { UnionModel } from '../../seguridad/modelos/UnionModel'\nimport { FuenteCampoAtributoModel } from '../../seguridad/modelos/FuenteCampoAtributoModel';\n\nexport class FuenteLineaServicioModel extends UnionModel {\n\n\tpublic grupo: string; // grupo al que pertenece la linea o servicio\n\tpublic linea: string; // cadena de la linea completa\n\tpublic numeroLinea: number; // numero de linea que se identifico\n\tpublic fuenteProceso: string;// llave de la fuente proceso al que esta asociado\n\tpublic mensaje: string;// errores asociados al servicio o a la linea\n\tpublic tipoInformacion: string;// tipo de informacion de la linea o servicio\n\tpublic tipo: string;// tipo: grupo/G linea/L servicio/S\n\tpublic servicio: string; // codigo del servicio que se usara\n\tpublic orden: number; // de ejecucion\n\tpublic depende: string;\n\tpublic detenerServicioFallido: boolean;\n\tpublic camposAtributos: FuenteCampoAtributoModel[]=[];\n\t\n}","import { UnionModel } from './UnionModel';\n\nexport class FuenteProcesoGeneralModel extends UnionModel {\n\n\tfechaProceso: Date;\n\tfuente: string;\n\tusuario: string;\n\testado: string;\n\tarchivo: string;\n\tcondicionDetenerProceso: boolean;\n\tnombreFuente: string;\n\t\n\t\n}","import { UnionModel } from \"./UnionModel\";\n\n\nexport class FuenteServicioModel extends UnionModel {\n /** Descripcion general del evento/servicio */\n descripcion: String;\n /** La llave de la fuente dentro de la cual se encuentra configurado este servicio ()*/\n fuente: String;\n /** Llave de la tarea dentro de la cual se ejecuta este servicio */\n fuenteTarea: String;\n /** El orden en el cual se ejecuta este servicio dentro de la tarea*/\n orden: Number;\n /** Indica el origen del servicio (General o específico para un tipo de proceso, p.e. Contratacion)*/\n origen: String;\n /** El servicio seleccionado para este evento/*/\n servicio: String;\n filtro: String;\n tipoInformacion: String;\n /** Tipo de evento (Servicio, Humana Encuesta, Humana predefinida)*/\n tipo: String;\n codigo: String;\n origenServicio: String;\n servicioWeb: String;\n ordenMayor: Number;\n correo: String;\n\n predefinido: String;\n\n\n tipoRecurso: String;\n origenRecurso: String;\n origenFuente: String;\n //Flag que sirve para detener el servicio marcado 'S', si el servicio predecesor fallo \n detenerServicio: String;\n\n\n // Atributos para eventos de tipo HUMANA ENCUESTA o HUMANA PREDEFINIDA\n /** Cédula del responsable de la encuesta*/\n responsable: Number;\n /** Nombre del responsable de la encuesta*/\n nombreResponsable: String;\n diasAviso: Number;\n diasLimite: Number;\n\n // Atributos únicos de Eventos tipo HUMANA ENCUESTA\n /** Llave de la encuesta () asociada a este Evento/Servicio */\n encuesta: String;\n labelAutoriza: String;\n labelNoAutoriza: String;\n\n correoCopia: String;\n\n validador: String;\n tipoRegistro: String;\n\n horaInicio: Date;\n horaFinal: Date;\n periodo: String;\n campoFechaHasta: String;\n plantillaCorreo: String;\n}","import { UnionModel } from \"./UnionModel\";\n\n\nexport class FuncionalidadModel extends UnionModel {\n llave:String;\n codigo:String;\n descripcion:String;\n comodin:String;\n //FILTRO\n filtro?:String;\n\n}\n","export class GeneralModel {\n\n nombreDTO: string;\n nombreConsulta: string;\n seguridad: boolean;\n objeto: any;\n lista?:any[];\n\n constructor(nombreDTO:string, nombreConsulta:string, seguridad:boolean, objeto:any,lista?:any[]){\n this.nombreDTO = nombreDTO;\n this.nombreConsulta = nombreConsulta;\n this.seguridad = seguridad;\n this.objeto = objeto;\n this.lista = lista;\n }\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class GrupoAccesoModelModel extends UnionModel{\n\n llave: string;\n descripcion: string;\n sitio: string;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class GrupoControlFuncionModel extends UnionModel{\n\n llave: string;\n\tgrupo: string;\n\tcontrolFuncion: string;\n\tdescripcion: string;\n\tfuncionalidad: string;\n\tcodigo: string;\n\n}","import { FuenteLineaServicioModel } from \"./FuenteLineaServicioModel\";\n\nexport class GrupoFuenteModel {\n\n public codigo: string;// permite identificar el grupo posiblemente sea el orden en que se determino\n\tpublic llaveLineaGrupo: string;// \n\tpublic lineas: FuenteLineaServicioModel[]=[];\n\tpublic errores: string[];\n\tpublic servicios: FuenteLineaServicioModel[]=[]; \n\tpublic lineaGrupo: FuenteLineaServicioModel; // es la primer linea del grupo, guardar toda su informacion pertinente\n\tpublic unicaLinea: string;\n\tpublic mensajeErrores: string;\n\tpublic momento: string;\n\t\n\tpublic columnas: string[];\n \n}","import { UnionModel } from \"./UnionModel\";\n\nexport class GrupoPermisoModel extends UnionModel{\n \n llave: string;\n\tgrupo: String;\n\tpermiso: string;\n\tpermisoGrupo: string;\n\testado: string;\n\tmoduloPermiso: string;\n\tnombreModulo: string;\n\tnombrePermiso: string;\n\turlprincipal: string;\n\ttipo: string;\n\n}","export class ListaServicioModel {\n\n /** Codigo no mayor de 100 caracteres que identifica el servicio. Esta es la llave del servicio disponible y no se puede repetir*/\n\tpublic codigo: string; \n\t/** Descripcion del servicio que se puede cargar*/\n\tpublic descripcion: string;\n\t/** Clase/Interfaz de servicios que ofrece el servicio que se puede ejecutar*/\n\tpublic servicio: any;\n\t/** Nombre del metodo ejecutable definido dentro de la clase servicio */\n\tpublic metodo: string;\n\t/** Determina si el servicio requiere el uso de la credencial del usuario*/\n\tpublic credencial: boolean;\n\t/** Clase que implementa la interfaz IFiltroCamposSvc que se encarga de traer los campos para el servicio*/\n\tpublic claseFiltro: any; \n\t/** Determina si el servicio maneja a nivel de base de datos*/\n\tpublic servicioBaseDatos: Boolean;\n \n}","import { ModulosModel } from \"./ModulosModel\";\nimport { RolModel } from \"./RolModel\";\nimport { TareasModel } from \"./TareasModel\";\n\nexport class LoginOutDTO {\n login: string;\n authorities: AuthorityDTO[];\n token: string;\n expira: number;\n expiraStr: string;\n listaRoles: RolModel[];\n modulos : ModulosModel[];\n tareasmodulo: TareasModel[];\n modulodefecto:string;\n}\n\nexport class AuthorityDTO {\n authority: string;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class MensajeSistemaModel extends UnionModel{\n mensajeCodigoError:string;\n mensajeDescripError:string;\n mensajeSolucionError:string;\n filtro:string;\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class MenuPortalModel extends UnionModel {\n descripcion: string;\n}\n","export class ModulosModel {\n llave?: string;\n descripcion: string;\n aplicacion?: string;\n url?: string;\n email?: string;\n icono?: string;\n descripcionCorta?: string;\n descripcionLarga?: string;\n orden?: number;\n sigla?: string;\n iconoModulo?: string;\n\n constructor(llave?: string, descripcion?: string) {\n this.llave = llave;\n this.descripcion = descripcion;\n } }","import { UnionModel } from \"./UnionModel\";\n\nexport class PaginaPortalModel extends UnionModel {\n\n descripcion:string;\n layout:string;\n tipoPagina:string;\n tipoSitio:string;\n sitio:string;\n pagina:string;\n codigoSitio:string;\n accion:string;\n llenarCache:string;\n permiso:string;\n\n sitioDesc:string;\n filtroNombre:string;\n filtroPagina:string;\n llaveEmpresa:string;\n llaveRol:string;\n cantidad:Number;\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ParametroComponente extends UnionModel {\n componentePagina: string;\n\tparametro: string;\n\tvalor: string;\n\tparametroCodigo: string;\n\tparametroDesc: string;\n}\n","export class ParametrosGeneralModel {\n\n nombreDTO: string;\n objeto: any;\n lista: any;\n parametros: any;\n json: any;\n\n constructor(nombreDTO?: string, objeto?: any, lista?: any, parametros?: any, json?:any) {\n this.nombreDTO = nombreDTO;\n this.lista = lista;\n this.parametros = parametros;\n this.objeto = objeto;\n this.json = json;\n }\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class PermisocontenidoModel extends UnionModel{\n tipo:string;\n\ttipoComponente:string;\n\tcontenido:string;\n\tempresa:string;\n\trol:string;\n\tpagina:string;\n\tdescripcionContenido:string;\n\tdescripcionRol:string;\n\tnombrepagina:string;\n\tcomponentePagina:string;\n\tcodigoPagina:string;\n\tnombreContenido:string;\n\tnombreComplemento:string;\n\tnombreRol:string;\n\t//DATOS NO PERSISTENTES\n mostrarEditar: boolean;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class PermisoFuncionModel extends UnionModel{\n\n llave: string;\n\tpermiso: string;\n\tcodigo: string;\n\tdescripcion: string;\n\tfuncionalidad: string;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class PeticionModel extends UnionModel{\n\n\n request: number;\n url: String;\n usuario: String;\n sesion: String;\n conexion: String;\n empresa: String;\n rol: String;\n ip: String;\n origen: String;\n \n fecha: Date;\n fechaFinal: Date;\n filtro: String;\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class PreguntaSeguridadModel extends UnionModel{\n\n codigo:string;\n descripcion:string;\n parametroBusqueda:string;\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class PropiedadModel extends UnionModel{\n propiedad:string;\n descripcion:string;\n tipo:string;\n aplicativo:string;\n todos:string;\n cifrado:string;\n\n\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class PublicacionWebModel extends UnionModel {\n\n\tllave: string;\n\tdescripcion: string;\n\truta: string;\n\trutaempresa: string;\n\tdepende: string;\n\tprefijo: string;\n\tcontrolExterno: string;\n\tnombrePadre: string;\n\tdiferente: string;\n\talmacenamiento: string;\n\turl: string;\n\turlDescarga: string;\n\trutaTemporal: string;\n\t;\n\trutaImagen: string;\n\tnombreRealEncriptado: string;\n\trutaRealEncriptada: string;\n\thijo: boolean;\n\tempresa: number;\n\tnumeroMesesVizualiza: number;\n\tnumeroMesesMantiene: number;\n\tcodigo: string;\n\ttipoPublicacion: string;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class PuntoProcesoModel extends UnionModel {\n\tpunto: string;\n\tdescripcion: string;\n\taplicacion: string;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class RecursoPuntoModel extends UnionModel {\n puntoProceso: string;\n puntoProcesoDescripcion: string;\n tipo: string;\n fuente: string;\n fuenteDescripcion: string;\n reporteFuente: string;\n reporteFuenteDescripcion: string;\n rolUsuario: string;\n filtro: string;\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteBandaModel extends UnionModel {\n reporteFuente: string;\n banda: string;\n totales: string;\n titulo: string;\n \n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteColumnaModel extends UnionModel {\n reporteFuente: string;\n sintaxis: string;\n orden: number;\n nombre: string;\n tipoDato: string;\n banda: string;\n formatoJasper: string;\n etiquetaJasper: string;\n operacion: string;\n excel: number;\n ordenExcel: string;\n parametroJasper: string;\n decimales: number;\n anchoJasper: number;\n anchoJasperLabel: number;\n resultadoX: number;\n resultadoY: number;\n alineacionResul: string;\n labelX: number;\n labelY: number;\n alineacionLabel: string;\n ordenTabla: number;\n ordenarTabla: string;\n buscarOrdenTabla: string;\n graficoFuente: string;\n valor: any;\n ordenDinamico: string;\n descripcionPopup: string;\n valorPopup: string;\n}\n","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteColumnarioModel extends UnionModel {\n /**\n\t * Nombre de la columna\n\t */\n\tnombre: string;\n\tsintaxis: string;\n\t/**\n\t * Orden en el que se presentara la columna\n\t */\n\torden: number;\n\t/**\n\t * Tipo de columna(Fila, Label,Celda,Adicional) \n\t */\n\ttipo: string;\n\t/**\n\t * Tipo de operacion que maneja en caso de ser Celda\n\t */\n\toperacion: string;\n\t/**\n\t * Referencia a una columna del reporte \n\t */\n\treporteColumna: string;\n\t/**\n\t * Referencia al reporte al que esta asociado \n\t */\n\treporteFuente: string;\n\t/**\n\t * Campo utilizado para conocer la columna del reporte utilizada\n\t */\n\tnombreColumna: string;\n\t\n\t/**\n\t * Se utiliza para realizar consultas y cuyos resultados\n\t * no contengan un registro en especifico(llave del registro) \n\t */\n\tdiferenteColumnario: string;\n\t/**\n\t * Permite obtener las columnas basicas y/o adicionales\n\t * de acuerdo al valor ingresado\n\t */\n\tfiltroColumnaBasica: string;\n\t/**\n\t * Representa la sintaxis de cada columna\n\t */\n\tsintaxisReporteColumna: string;\n\t\n\t\n\t/**\n\t * Indica si se desea realizar una operacion total por cada fila\n\t */\n\toperacionHorizontal: string;\n\t\n\t/**\n\t * Indica si se desea realizar una operacion total por cada columna\n\t */\n\n\toperacionVertical: string;\n\t\n\t/**\n\t * Indica en que columna se desea colocar la operacon vertical\n\t */\n\tcolumnaOperacionVertical: number;\n\t\n\t/**\n\t * Se utiliza para conocer el ordenamiento que utilizara la columna\n\t */\n\torderBy: string;\n\t\n\t\n\t/**\n\t * Se utiliza para conocer el orden en el que se organizaran los datos\n\t * en la consulta. Es decir, en el order by del columnario se organizaran\n\t * primero los datos por la fila que tenga el dato 1. \n\t */\n\tordenConsulta: number;\n\t\n\t\n\t\n\t\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteColumnarioMarcadorModel extends UnionModel {\n /**\n\t * Nombre del marcador a buscar en el archivo excel\n\t */\n\tmarcador: string;\n\t\n\t/**\n\t * Valor a asignar en el excel\n\t */\n\ttextoRegistro: string;\n\t/**\n\t * Descripcion del marcador\n\t */\n\tdescripcion: string;\n\t\n\t/**\n\t * Reporte al que esta asociado el marcador\n\t */\n\treporteFuente: string;\n\t\n\n\t/**\n\t * Indica el tipo de marcador a utilizar\n\t */\n\ttipo: string;\n\t\n\n\t\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteEntradaModel extends UnionModel {\n llave: string;\n reporteFuente: string;\n descripcion: string;\n tipoDato: string;\n valorDefecto: string;\n orden: number;\n solicitar: string;\n banda: string;\n valor: any;\n parametro: string;\n formato: string;\n llaveLista: string;\n tipo: string;\n fuenteDato: string;\n parametroEntrada: string;\n mapa: string;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteFuenteModel extends UnionModel {\n \n llave: string;\n descripcion: string;\n fuenteDato: string;\n whereSql: string;\n query: string;\n queryAdicional: string;\n groupby: string;\n orderby: string;\n modulo: string;\n archivoHtml: string;\n archivoIndividual: string;\n publicacion: string;\n campoPublica: string;\n hojaExcel: string;\n archivoTodo: string;\n campoEmail: string;\n campoClave: string;\n jasperFijo: string;\n jasperDinamico: string;\n modoFijo: string;\n nombreEmail: string;\n nombrePublica: string;\n reporteFuente: string;\n tablaDestino: string;\n procedimiento: string;\n seleccionado: boolean;\n whereSqlReporte: string;\n separador: string;\n origenFuente: string;\n nombreTabla: string;\n reporteExterno: string;\n rol: string;\n login: string;\n unicoArchivo: string;\n titulo: string;\n tituloParametro: string;\n dobleLinea: string;\n tagEncabezado: string;\n tagCierreEncabezado: string;\n estructuraRegistro: string;\n descargarFuente: string;\n archivoTexto: string;\n tipoArchivo: string;\n origenPermiso: string;\n afecta: string;\n campoAgrupacionPlanilla: string;\n nombreAgrupacionPlanilla: string;\n empresa: string;\n tituloGrafico: string;\n tipoGrafico: string;\n codigo: string;\n momento: string;\n publicaCarpeta: string;\n publicaTitulo: string;\n nombrePublicaCarpeta: string;\n nombreAdjunto: string;\n asuntoEmail: string;\n sintaxisColumnario: string;\n sintaxisColumnarioAdicional: string;\n filaInicioColumnario: number;\n hojaExcelColumnario: string;\n archivoExcelColumnario: string;\n generarPin: string;\n cifradoPlanilla: string;\n cifradoExcel: string;\n cifradoJasper: string;\n cifradoJasperFijo: string;\n cifradoTexto: string;\n cifradoXml: string;\n cifradoColumnario: string;\n\n /*listoDinamico: boolean;\n listoFijo: boolean;\n listoExcel: boolean;\n listoPlantilla: boolean;\n textoFijo: boolean;\n listoTabla: boolean;\n generaXML: boolean;\n generaColumnario: boolean;*/\n\n\tisGeneraExcel() {\n\t\treturn this.archivoTodo != null && this.hojaExcel != null && this.hojaExcel.trim().length > 0;\n\t}\n\n\tisGeneraXML() {\n\t\treturn this.isNotBlank(this.tagEncabezado) || this.isNotBlank(this.estructuraRegistro);\n\t}\n\n\tisGeneraColumnario() {\n\t\treturn this.archivoExcelColumnario != null && this.hojaExcelColumnario != null && this.hojaExcelColumnario.trim().length > 0;\n\t}\n\n\tisListoExcel() {\n\t\treturn !this.isBlank(this.archivoTodo) && !this.isBlank(this.hojaExcel);\n\t}\n\n\tisListoPlantilla() {\n\t\treturn !this.isBlank(this.archivoIndividual);\n\t}\n\n\tisListoTabla() {\n\t\treturn !this.isBlank(this.nombreTabla);\n\t}\n\n\tisListoDinamico() {\n\t\treturn this.isNotBlank(this.tituloParametro);\n\t}\n\n\tisTextoFijo() {\n\t\treturn this.isNotBlank(this.separador);\n\t}\n\n\tisListoFijo() {\n\t\treturn !this.isBlank(this.jasperFijo) && !this.isBlank(this.modoFijo);\n\t}\n\n\tisGeneraWord() {\n\t\treturn this.archivoIndividual == null;\n\t}\n\n\tisGeneraJasperFijo() {\n\t\treturn this.jasperFijo == null;\n\t}\n\n\tisGeneraDinamico() {\n\t\treturn this.jasperDinamico == null;\n\t}\n\n private isNotBlank(str: string | null | undefined): boolean {\n return str != null && str.trim().length > 0;\n }\n\n private isBlank(str: string | null | undefined): boolean {\n return str == null || str?.trim() === '';\n }\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteMarcadorModel extends UnionModel {\n llave: string;\n reporteColumna: string;\n marcador: string;\n formato: string;\n titulox: string;\n tituloy: string;\n filtro: string;\n fuente: string;\n marcadorGrafico: string;\n textoRegistro: string;\n grupo1: string;\n grupo2: string;\n grupo3: string;\n finalGrupo: string;\n tipo: string;\n tabla: number;\n reporteFuente: string;\n nombreColumna: string;\n tipoGrafico: string;\n descripcion: string;\n ancho: number;\n alto: number;\n origen: string;\n tipoReporte: string;\n ordenDinamico: string;\n banda: string;\n anchoJasperLabel: number;\n resultadoX: number;\n resultadoY: number;\n tipoDato: string;\n operacion: string;\n tipoCampo: string;\n marcadores: string;\n tieneSql: string;\n query: string;\n estructuraTablaXML: string;\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteSoporteModel extends UnionModel {\n reporteFuente: string;\n descripcion: string;\n archivoIndividual: string;\n tipo: string;\n orden: number;\n texto: string;\n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class ReporteTablaModel extends UnionModel {\n llave: string;\n tipo: string;\n reporteMarcador: string;\n columna: number;\n campoFuente: string;\n formato: string;\n marcador: string;\n ancho: number;\n alto: number;\n \n} ","import { UnionModel } from \"./UnionModel\";\n\nexport class RespuestaModel extends UnionModel {\n \n pregunta: string;\n\tdescripcionPregunta: string;\n\tusuario: string;\n\trespuesta: string;\n\tcorrecta: string;\n }\n"," \nexport class RolModel {\n llaveTabla: string;\n codigoEmpresa: string;\n codigo: string;\n nombreEmpresa: string;\n codigoConexion: string;\n llaveConexion: string;\n nombreConexion: string;\n codigoModulo: string;\n nombreModulo: string;\n codigoRol: string;\n nombreRol: string;\n login: string;\n documento: string;\n informacion: string;\n nombre: string;\n estilo: string;\n llaveUsuario: string;\n llaveGrupoAcceso: string;\n tipoEtiqueta: string;\n numeroEmpresa: number;\n aplicacion: string;\n busqueda: string;\n homologacion: string;\n aliasRol: string;\n llaveRol: string;\n ordenModulo: number;\n sitio: string;\n portal: string;\n conexionUrl: string;\n accesoPortal: string;\n\n base: string;\n admonPortal: boolean;\n\n llave:string;\n\tdescripcion:string;\n //DATOS NO PERSISTENTES\n mostrarEditar: boolean;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class ServidorCorreoModel extends UnionModel{\n host: String;\n\t usuario: String;\n\t password: String;\n\t tls: String;\n\t auth: String;\n\t fromaddres: String;\n\t port: number;\n\t cantidadmaxima: number;\n\t cantidad: number;\n\t cantidadLote: number;\n\t fechaEnvio: Date;\n\t llave: String;\n\t defecto: String;\n\t seleccionado: boolean;\n\t debug: String;\n hostPeticion: String;\n\n\t //CorreoOrgEmpModDTO\n\t servidorCorreo: String;\n\t empresa: String;\n\t nombreEmpresa: String;\n\t rol: String;\n\t nombreRol: String;\n \n\t //DATOS NO PERSISTENTES\n\t mostrarEditar: boolean;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class SistemaMensajeModel extends UnionModel {\n\n llave: String;\n tipo: String;\n\tmensaje: String;\n\tfecha: Date;\n\tparametroBusqueda: String;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class SitioModel extends UnionModel{\n codigo:string;\n descripcion:string;\n paginaInicio:string;\n paginaHome:string;\n paginaSalida:string;\n accion:string;\n menuPortal:string;\n codigoPaginaHome:string;\n codigoPaginaInicio:string;\n codigoPaginaSalida:string;\n tema:string;\n codigoSitioSalida:string;\n codigoSitioInicio:string;\n codigoPaginaTerminos:string;\n propiedadMonitoreo:string;\n propiedadSSO:string;\n identificadorSSO:string;\n llavpaginaTerminose:string;\n paginaTerminos:string;\n paginaCambioClave:string;\n codigoCambioClave:string;\n\n\n\n\n}\n","export class TareasModel{\n fechaAdicionado:Date;\n fechaModificado:Date;\n adicionado:string;\n controlSeguimiento:string;\n llaveTabla:string;\n modificado:string;\n check:boolean;\n llavePermiso:string;\n llave:string;\n codigo:string;\n key:string;\n descripcion:string;\n padre:string;\n urlprincipal:string;\n urls:string;\n accion:string;\n gif:string;\n tipo:string;\n estado:string;\n modulo:string;\n nombreModulo:string;\n orden:number;\n parametro:string;\n nuevo:string;\n comodinBusqueda:string;\n llaveGrupo:string;\n ayuda:string;\n llaveDirecto:string;\n shortcut:string;\n llaveEmpresa:string;\n labelEmpresa:string;\n nombrePadre:string;\n gifPadre:string;\n nombreAbuelo:string;\n gifAbuelo:string;\n ordenPadre:string;\n ordenAbuelo:string;\n listaTareas:string;\n aplicacion:string\n siglaModulo:string\n configCms:string;\n grupo:string;\n alias:string\n nombreTabla:string;\n tareasHijas:TareasModel[];\n iconoModulo:string;\n\n constructor(descripcion?:string, nombrepadre?:string,icono?:string,){\n this.descripcion = descripcion;\n this.gif = icono;\n this.nombrePadre = nombrepadre;\n }\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class TextoDTO extends UnionModel{\n\nllave: string;\ntitulo: string;\ncontenido1: string;\ncontenido2: string;\ncontenido3: string;\n\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class TipoEtiquetaModel extends UnionModel {\n llave:String;\n descripcion:String;\n defecto:String;\n idioma:String;\n}","import { UnionModel } from \"./UnionModel\";\n\nexport class UsuariogrupoModel extends UnionModel{\n \n llave: string;\n\tempresa: string;\n\tusuario: string;\n\tgrupo: string;\n\tconexion: string;\n\tmodulo: string;\n\tnombreEmpresa: string;\n\tnombreGrupo: string;\n\tnombreConexion: string;\n\tnombreModulo: string;\n\tnombreUsuario: string;\n\torigen: string;\n\tempresaUsuario: string;\n\tllaveUsuario: string;\n\tloginUsuario: string;\n\torigenDato: string;\n\taplicacion: string;\n\tnombreAplicacion: string;\n\n\t//DATOS NO PERSISTENTES\n mostrarEditar: boolean;\n \n}","import { UnionModel } from \"./UnionModel\";\n\nexport class UsuarioModel extends UnionModel {\n id: string;\n nombre: string;\n apellido: string;\n empresa: string;\n usuario: string;\n clave: string;\n roles: string;\n estado: string;\n login: string;\n\n email: string;\n expiracion: Date;\n modoAutenticar: string;\n llaveGrupoAcceso: string;\n claves: string;\n fechaClave: Date;\n intentos: number;\n cedula: number;\n documento: string;\n parametroBusqueda: string;\n pin: string;\n intentosPregunta: number;\n tokenRecuperacion: string;\n terminosYCondiciones: string;\n fechaTerminosYCondiciones: Date;\n fechaHabilitar: Date;\n llaveEmpresa: string;\n checkAyuda: string;\n loginEmail: string;\n idioma: string;\n modulo: string;\n activo: string;\n empresaBase: string;\n nombreEmpresaBase: string;\n dobleAutenticacion: string;\n modificarCelda: boolean;\n \n\t\n /**\n * Se utiliza para conocer si el usuario debe cambiar la clave\n * en el proximo login \n */\n cambiarClave: string;\n\n /**\n * Usado para cargar el rol del usario en sara prime.\n */\n rolGrupal: string;\n\n /*\n * Atributos no persistentes\n */\n\n filtroGeneral: string;\n aplicacion: string;\n\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\n\nexport const environment = {\n production: false,\n crypto_secret_key: 'qwerty.123.zrtr*ty#qryt',\n urlapisara: \"http://186.86.125.178:9940\",\n codigoAplicacion: '1',\n nombreAplicacion: \"SARA\"\n /*urlapinucleo: \"http://localhost:7878\",\n urlapicorreo: \"http://localhost:7880\",\n crypto_secret_key: 'qwerty.123.zrtr*ty#qryt',\n codigoAplicacion: '13',\n nombreAplicacion: \"MANA\"*/\n};\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","export class UserLoginCredentials {\n login: string;\n clave: string;\n aplicacion: string;\n base: string;\n}\n","export class AuthenticationError extends Error {\n constructor(message) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n private RESERVADAS_SQL_NOPUEDECONTENER: any[] = [';']\n private reservadas: any[] = ['ALTER', 'DELETE', 'DROP', 'MODIFY', 'CREATE', 'DATABASE', 'TABLE', 'UPDATE', 'TRIGGER', 'GRANT', 'REVOKE', 'CALL', 'INSERT', 'TRUNCATE', 'USE', '--']\n \n constructor(private cookieService: CookieService, @Inject(DOCUMENT) private document: Document,){\n }\n \n public generarLlave() {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = 32;\n for (let i = 0; i < charactersLength; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result.toLowerCase();\n }\n\n\n\n public generarPin(cantidad: number) {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < cantidad; i++) {\n result += characters.charAt(Math.floor(Math.random() * cantidad));\n }\n\n return result.toLowerCase();\n }\n\n rightpad(str, length, char) {\n if (str === undefined) {\n return null;\n }\n if (typeof str !== 'string' || typeof length !== 'number') {\n throw new TypeError('Los argumentos deben ser una cadena y un número.');\n }\n\n if (str.length >= length) {\n return str;\n }\n\n char = char || ' '; // Utiliza un espacio como carácter de relleno si no se proporciona uno\n\n var padLength = length - str.length;\n var padding = char.repeat(padLength);\n\n return str + padding;\n }\n\n validarCampoNumerico(event: any) {\n const input = event.target;\n const regex = /[^0-9]/gi;\n input.value = input.value.replace(regex, '');\n }\n\n isNotBlank(str: string | String | null | undefined): boolean {\n return str != null && str.trim().length > 0;\n }\n\n isBlank(str: string | String | null | undefined): boolean {\n return str == null || str?.trim() === '';\n }\n\n validarCampoObligatorio(valor): boolean {\n // Verificar si el valor no es null ni undefined\n if (valor !== null && valor !== undefined) {\n // Verificar si el valor no es una cadena vacía (en caso de ser una cadena)\n if (typeof valor === 'string' && valor.trim() === '') {\n return false;\n }\n // Verificar si el valor no es un arreglo vacío (en caso de ser un arreglo)\n if (Array.isArray(valor) && valor.length === 0) {\n return false;\n }\n /*if (typeof valor === 'object' && Object.keys(valor).length === 0) {\n return false;\n }*/\n return true;\n }\n return false;\n }\n\n capitalizeFully(inputString: string): string {\n if (!inputString) {\n return '';\n }\n const words = inputString.split(' ');\n const capitalizedWords = words.map(word => {\n if (word.length > 0) {\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n }\n return '';\n });\n const result = capitalizedWords.join(' ');\n return result;\n }\n\n ordenarSelectItemsAlfabeticamente(arrayDeObjetos: any[]): any[] {\n arrayDeObjetos.sort((a, b) => {\n const nombreA = a.label.toLowerCase();\n const nombreB = b.label.toLowerCase();\n\n if (nombreA < nombreB) {\n return -1;\n }\n if (nombreA > nombreB) {\n return 1;\n }\n return 0;\n });\n return arrayDeObjetos;\n }\n\n obtenerParametroDeURL(urlString: string, parametro: string): string | null {\n const url = new URL(urlString);\n const searchParams = new URLSearchParams(url.search);\n return searchParams.get(parametro);\n }\n\n validarEmail(email: string): boolean {\n const patronEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n return patronEmail.test(email);\n }\n\n obtenerBase(): (string | null) {\n\n var basePortal: string = null;\n var paginaActual: any = window.location.href\n var url = new URL(paginaActual);\n var params = new URLSearchParams(url.search);\n if (paginaActual.toString().includes('PortalSara')) {\n for (var match of paginaActual.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\n basePortal = match.groups?.seguridad;\n }\n } else if (params?.get('us_id')) {\n paginaActual = window.parent.location.href;\n for (var match of paginaActual.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\n basePortal = match.groups?.seguridad;\n }\n } else {\n const regex = /^.*?\\/\\/.*?\\/(.*?)\\//g; // Expresión regular para obtener la primera parte de la URL\n const match = Array.from(paginaActual.matchAll(regex));\n\n if (match && match[0] && match[0][1]) {\n basePortal = match[0][1];\n }\n }\n return basePortal;\n }\n\n private validarEspacio(caracter: string): boolean {\n const regex = /\\s/; // La expresión regular para espacios en blanco\n return regex.test(caracter); // Devuelve true si el carácter es un espacio en blanco\n }\n\n public validarTextoSQL(valor: string, obligatorio: boolean, select: boolean, longitud: number, validarSentencia: boolean): (string | null) {\n // Verifica obligatoriedad\n if (obligatorio && (valor == null || valor.trim().length == 0 || valor == '--')) {\n return 'Obligatorio';\n }\n // Verifica longitud máxima\n if (longitud > 0) {\n if (valor != null && valor != '--' && valor.length > longitud) {\n return 'Longitud maxima de ' + longitud;\n }\n }\n // Realiza las demás validacion solo en el caso de que la cadena SQL/valor no sea vacia\n if (valor == null || valor.trim().length == 0 || valor == '--')\n return null;\n\n if (validarSentencia) {\n if (select) {\n if (!valor.toUpperCase().startsWith('SELECT')) {\n return 'El texto debe iniciar con la palabra Select';\n }\n } else {\n if (valor.toUpperCase().includes('SELECT')) {\n return 'No puede contener la palabra Select';\n }\n }\n }\n var indice: number;\n var mensaje: string;\n this.RESERVADAS_SQL_NOPUEDECONTENER.forEach(item => {\n if (valor.includes(item)) {\n mensaje = 'No puede contener ' + item;\n }\n })\n this.reservadas.forEach(item => {\n if (valor.toUpperCase().includes(item.toUpperCase())) {\n indice = (valor.toUpperCase().indexOf(item.toUpperCase()));\n if (indice == 0 || (this.validarEspacio(valor.charAt(indice - 1)) && this.validarEspacio(valor.charAt(item.length + indice)))) {\n mensaje = 'No puede contener ' + item;\n }\n }\n })\n return mensaje;\n }\n\n sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n validarTextoArchivoJasper(texto: string): (string | null) {\n if (texto.trim() == '' || texto == null) {\n return \"El campo no puede estar vacio\";\n }\n if (texto.match(\"^[^\\\\D].*\")) {\n return \"El campo no puede iniciar con numeros\";\n }\n if (texto.match(\"^[^\\\\S].*\")) {\n return \"El campo no puede iniciar con caracteres en blanco\";\n }\n if (!texto.match(\"^[^\\\\W].*\")) {\n return \"El campo no puede iniciar con caracteres especiales\";\n }\n return null;\n }\n\n resizeWindowIFrame() {\n\t\tif ( window.frameElement != null) {\n\t\t\tthis.resizeIframeKeepPosition(window.frameElement);\n\t\t}\n\t}\n\t\n\t/**\n\t * Funcion para mantener la posición actual en el iframe.\n\t * @param obj es un \"FrameElement\"\n\t */\n\tprivate resizeIframeKeepPosition(obj) {\n\t\t\n\t\tvar ifrm = obj;\n\t\tvar doc = ifrm.contentDocument ? ifrm.contentDocument: ifrm.contentWindow.document;\n var tamanio: number= this.getDocHeight( doc ) + 40\n\t\tifrm.style.height = tamanio + \"px\";\n\t}\n\n\tprivate getDocHeight(doc){\n console.log('getDocHeight')\n\t\tlet navegador = this.obtenerNavegador().toLowerCase();\n\t\tvar height = 0;\n\t\tdoc = doc || document;\n const appRoot = doc.querySelector('app-root');\n\n const swalPopup = doc.querySelector('.swal2-popup');\n if (swalPopup) {\n return swalPopup.offsetHeight + 40;\n }\n\n // Si encuentra el elemento <app-root>, retorna su altura\n if (appRoot) {\n return appRoot.offsetHeight;\n }\n\t\t//var body = doc.body, html = doc.documentElement;\n\t\t//height = Math.max( body.scrollHeight, body.offsetHeight, \n\t\t//html.clientHeight, html.scrollHeight, html.offsetHeight );\n\t\t\n\t\tif (navegador.indexOf('firefox') !== -1){\n\t\t\tif(doc.formDetalleConvocatoria){\n\t\t\t\tlet cantidadMiles = height / 1000;\n\t\t\t\theight = height + 600 + (cantidadMiles*40)\n\t\t\t}\n\t\t}\n\t\t\n\t//\tconsole.warn('FCO : llama a getDocHeight');\n\t\n\t\treturn height;\n\t}\n\n\tobtenerNavegador(){\n\t\tvar ua= navigator.userAgent, tem, \n\t\tM= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n\t\tif(/trident/i.test(M[1])){\n\t\t\ttem= /\\brv[ :]+(\\d+)/g.exec(ua) || [];\n\t\t\treturn 'IE '+(tem[1] || '');\n\t\t}\n\t\tif(M[1]=== 'Chrome'){\n\t\t\ttem= ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\n\t\t\tif(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\n\t\t}\n\t\tM= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\n\t\tif((tem= ua.match(/version\\/(\\d+)/i))!= null) M.splice(1, 1, tem[1]);\n\t\treturn M.join(' ');\n\t}\n\n obtenerUrlApi(urlapi?: string ): string {\n if (urlapi){\n return urlapi;\n }\n switch (this.getTokenKey('aplicacion')) {\n case '1':\n return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');\n case '13':\n return window['env']['urlapimana'] ? window['env']['urlapimana'] : this.cookieService.get('urlnucleo');\n case '10':\n return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');\n //return window['env']['urlapi'] ? window['env']['urlapi'] : this.cookieService.get('urlnucleo');\n case '77':\n return window['env']['urlapimanaaps'] ? window['env']['urlapimanaaps'] : this.cookieService.get('urlnucleo');\n default:\n return this.cookieService.get('urlnucleo');\n }\n }\n\n private getTokenKey(key: string): string {\n try {\n const data = this._decodeToken();\n return data[key].toString();\n } catch (error) {\n return undefined;\n }\n }\n\n private _decodeToken(): any {\n try {\n const token = this.getItem('token', '');\n const data = token.split('.')[1];\n return JSON.parse(atob(data));\n } catch (error) {\n throw error;\n }\n }\n\n getItem(key: string, defaultValue?: string): string | undefined {\n return localStorage.getItem(this.obtenerBase() + '_' + key) ?? defaultValue;\n }\n\n cambiarTema(tema : ('temaClaro' | 'temaOscuro')){\n localStorage.setItem(this.obtenerBase() + '_' +'tema', tema);\n let linkTema = this.document.getElementById('temaApp') as HTMLLinkElement;\n linkTema.href = `${tema}.css`\n }\n\n calcularPosicionDialog() {\n var parentWindow: Window = window.parent;\n var obj: any = window.frameElement ;\n var ifrm = obj;\n if (ifrm) {\n const scrollTop = parentWindow.pageYOffset || parentWindow.document.documentElement.scrollTop || parentWindow.document.body.scrollTop || 0;\n const dialog = document.querySelector('.p-dialog') as HTMLElement;\n if (dialog) {\n const scrollHeight = parentWindow.document.documentElement.scrollHeight\n const mitadScrollHeight = scrollHeight / 2;\n const inicio = -mitadScrollHeight;\n dialog.style.top = `${inicio + 50 + (scrollTop ) }px`; }\n }\n }\n\n validarPalabra(texto: string): boolean {\n const pletras = /^[a-zA-Z][0-9a-zA-Z]*$/;\n return pletras.test(texto);\n }\n}","import { Injectable } from '@angular/core';\nimport { UtilsService } from './utils.service';\nimport { jwtDecode } from \"jwt-decode\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StorageService {\n constructor(private utilsService: UtilsService) {}\n\n private rolSeleccionado;\n\n setRolSeleccionado(rolSeleccionado) {\n this.rolSeleccionado = rolSeleccionado;\n }\n\n\n /**\n * Guarda un valor string en la clave dada dentro del localStorage\n * @param key Clave\n * @param value Valor en formato texto\n */\n setItem(key: string, value: string): void {\n localStorage.setItem(this.utilsService.obtenerBase() + '_' + key, value);\n }\n\n /**\n * Retorna el valor almacenado en el localStorage bajo la clave dada.\n * Si no existe y se específica un valor por defecto se retorna el valor\n * por defecto. En caso que no se especifique ningun valor, se retorna\n * undefined.\n * @param key clave\n * @param defaultValue Valor opcional por defecto\n * @returns string | undefined\n */\n getItem(key: string, defaultValue?: string): string | undefined {\n return localStorage.getItem(this.utilsService.obtenerBase() + '_' + key) ?? defaultValue;\n }\n\n /**\n * Borra del localStorage la clave/valor de la clave dada.\n * @param key Clave\n */\n removeItem(key: string): void {\n localStorage.removeItem(this.utilsService.obtenerBase() + '_' + key);\n }\n\n /**\n * Borra todos los datos del localStorage\n */\n clear(): void {\n localStorage.clear();\n }\n\n getSessionToken() {\n let tokenEncriptado: any = localStorage.getItem(this.utilsService.obtenerBase() + '_' + 'token');\n /*let tokenDecrypt = CryptoJS.AES.decrypt(tokenEncriptado, environment.crypto_secret_key);\n let tokenDecryptString = tokenDecrypt.toString(CryptoJS.enc.Utf8);\n let token = JSON.parse(tokenDecryptString);*/\n return tokenEncriptado;\n }\n\n getDecodedJWT(){\n let jwt = this.getSessionToken();\n let tokenDecoded = JSON.parse(JSON.stringify(jwtDecode(jwt)));\n return tokenDecoded;\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, Observable } from 'rxjs';\nimport { AuthenticationError } from '../errores/authentication.error';\nimport { StorageService } from './storage.service';\nimport { UtilsService } from './utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CargarControlFuncionalidadService {\n\n constructor(private httpClient: HttpClient, private storageService: StorageService, private utilsService: UtilsService) { }\n\n cargarFuncionalidad(rol: any, url : string, headers: HttpHeaders): Observable<string> {\n return this.httpClient.post<any>(url, rol, {headers}).pipe(\n map((data) => {\n const controlFuncionalidades = (data as any)?.controlFuncionalidades as string;\n this.storageService.setItem('controlFuncionalidades', controlFuncionalidades);\n return null;\n }), catchError((error) => {\n if (error.status >= 400) {\n throw new AuthenticationError('Error consultando control de funcionalidades.');\n }\n throw error;\n })\n );\n }\n\n getControlFuncionalidad(valor: string) : boolean{\n if (this.storageService.getItem('controlFuncionalidades') != null){\n let listaFuncionalidades = this.storageService.getItem('controlFuncionalidades');\n var validar = listaFuncionalidades.indexOf(valor);\n if(validar !== -1){\n return true;\n }else{\n return false;\n }\n }\n return false;\n }\n\n /**\n * Borra controles de funcionalidad en la sesión\n */\n eliminarFuncionalidades(): void {\n this.storageService.removeItem('controlFuncionalidades');\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { catchError, map, Observable, tap } from 'rxjs';\nimport { UserLoginCredentials } from '../modelos/user.model';\nimport { AuthenticationError } from '../errores/authentication.error';\nimport { StorageService } from './storage.service';\nimport { CargarControlFuncionalidadService } from './cargar-control-funcionalidad.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { TareasModel } from '../../seguridad/modelos/TareasModel';\nimport { ModulosModel } from '../../seguridad/modelos/ModulosModel';\nimport { RolModel } from '../../seguridad/modelos/RolModel'; \nimport { environment } from '../../../environments/environment';\nimport * as CryptoJS from 'crypto-js';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n constructor(\n private http: HttpClient,\n private storageService: StorageService, \n private controlFuncionalidad: CargarControlFuncionalidadService,\n private cookieService: CookieService) {}\n\n /**\n * Realiza la petición para autenticar al usuario. Devuelve el token que generó el servicio.\n * @param credentials Objeto con los datos de acceso\n * @returns Token válido\n */\n login(credentials: UserLoginCredentials, urlapinucleo, tokenPublico): Observable<string> {\n const url = `${urlapinucleo}/authentication/login`;\n if (!this.cookieService.get('urlnucleo')){\n this.cookieService.set('urlnucleo', urlapinucleo);\n }\n var headers = new HttpHeaders().set('Authorization', `Bearer ${tokenPublico}`)\n return this.http.post<string>(url, credentials, {headers}).pipe(\n map((data) => {\n const token = (data as any)?.token as string;\n this.storageService.setItem('token', token);\n\n /**********************************\n * Control funcionalidades\n **********************************/\n /* let rol: any = {}\n rol.codigoRol = this.getTokenKey('llaveRol');\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, headers).subscribe({});\n */\n var listRoles = (data as any)?.listaRoles;\n console.log(listRoles)\n if (listRoles.length > 1 ){\n this.storageService.setItem('roles', JSON.stringify(listRoles));\n //this.mostrarRoles = true;\n }if (listRoles.length == 1 ){\n let rol: any = {}\n rol.codigoRol = this.getTokenKey('llaveRol');\n rol.aplicacion = this.getTokenKey('aplicacion');\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, headers).subscribe({});\n /********************************************************************************************/\n /* Codigo temporal para mantener las tareas, pero estas deben ser obtenidas por un servicio */\n var tareas: TareasModel[] = (data as any).tareasmodulo;\n console.log(tareas)\n this.storageService.setItem('__tareas', JSON.stringify(tareas));\n var modulosDeTareas = tareas.filter((obj, index, self) => {\n return index === self.findIndex((o) => o.modulo === obj.modulo);\n });\n var modulos: ModulosModel[] = [];\n modulosDeTareas.forEach(data => {\n let modulo: ModulosModel = {\n llave: data.modulo,\n descripcion: data.nombreModulo,\n icono: data.iconoModulo\n }\n modulos.push(modulo)\n })\n console.log('entra aca login general');\n\n this.storageService.setItem('modulos', JSON.stringify(modulos));\n if (this.storageService.getItem('moduloFavorito') !== undefined && this.storageService.getItem('moduloFavorito')){\n this.storageService.setItem('moduloSeleccionado', this.storageService.getItem('moduloFavorito'));\n }else {\n let modulodefecto = (data as any)?.modulodefecto;\n if (!modulodefecto) {\n modulodefecto = modulos[0].llave;\n }\n this.storageService.setItem('moduloSeleccionado', modulodefecto);\n }\n }\n let tokenDecrypt = CryptoJS.AES.encrypt(JSON.stringify((data as any)?.autenticacionUsuarioDTO), environment.crypto_secret_key)\n this.storageService.setItem('autenticacionUsuarioDTO', tokenDecrypt.toString());\n \n /********************************************************************************************/\n return token;\n }),\n catchError((error) => {\n if (error.status >= 400) {\n throw new AuthenticationError('Usuario/contraseña inválido.');\n }\n throw error;\n })\n );\n }\n\n /**\n * Devuelve el token almacenado en el storage o vacio si no lo encuentra\n * @returns Token\n */\n getToken(): string {\n return this.storageService.getItem('token', '');\n }\n\n /**\n * Devuelve el valor asociado a la llave que se encuentra almacenado en el token.\n * @param key Llave presente en el objeto del token\n * @returns Valor almacenado\n */\n getTokenKey(key: string): string {\n try {\n const data = this._decodeToken();\n return data[key].toString();\n } catch (error) {\n return undefined;\n }\n }\n\n /**\n * Indica si el token almacenado en el storage es válido verificando que se\n * pueda decodificar y que el tiempo actual sea menor al de expiración.\n * @returns\n */\n isTokenValid(): boolean {\n try {\n const data = this._decodeToken();\n const expiryTime = data.exp;\n const currentTime = Math.floor(new Date().getTime() / 1000);\n if((currentTime <= expiryTime) && this.getTokenKey('numeroEmpresa') && this.getTokenKey('nombreConexion')){\n return true\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Borra el token del usuario para invalidar la sesión\n */\n deleteToken(): void {\n this.storageService.removeItem('token');\n }\n\n /**\n * Decodifica el token que esta almacenado y devuelve el objeto que representa\n * @returns Información almacenada en el Token\n */\n private _decodeToken(): any {\n try {\n const token = this.getToken();\n const data = token.split('.')[1];\n return JSON.parse(atob(data));\n } catch (error) {\n throw error;\n }\n }\n\n public refrescarToken(objeto: any, token): Observable<any> {\n let url = this.cookieService.get('urlnucleo')\n let headers = new HttpHeaders()\n .set('Authorization', `Bearer ${token}`);\n return this.http.post<any>(`${url}/authentication/refrescarToken`, objeto, { headers });\n }\n\n public generarTokenPublico(urlnucleo?) {\n let url = this.cookieService.get('urlnucleo')\n if (!url){\n url = urlnucleo\n }\n return this.http.get<any>(`${url}/authentication/generarTokenPublico`);\n }\n\n public seleccionRol(_rolSeleccionado: RolModel, urlnucleo?): Observable<any> {\n let url = this.cookieService.get('urlnucleo')\n if (!url){\n url = urlnucleo\n }\n return this.http.post<any>(`${url}/requieretoken/rol/seleccionado`, _rolSeleccionado);\n }\n \n}","import { Injectable } from '@angular/core';\nimport { MenuItem } from 'primeng/api/menuitem';\nimport { map, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n private _menu: { [key: string]: MenuItem } = {};\n private _menuSource = new Subject<MenuItem>();\n private _breadcrumbSource = new Subject<MenuItem[]>();\n private _menuObservable$ = this._menuSource.asObservable();\n private _breadcrumbObservable$ = this._breadcrumbSource.asObservable();\n\n constructor(private storageService: StorageService) {}\n\n /**\n * Observable para los eventos del breadcrumb\n */\n get breadcrumb() {\n return this._breadcrumbObservable$;\n }\n\n /**\n * Observable para el menu principal\n */\n get menu() {\n return this._menuObservable$;\n }\n\n /**\n * Agrega items al breadcrumb\n * @param items\n */\n setBreadcrumb(items: MenuItem[]): void {\n this._breadcrumbSource.next(items);\n }\n\n /**\n * Consulta la lista de tareas del usuario para cargar el menú\n * @returns\n */\n loadTareas(): Observable<void> {\n /********************************************************/\n /* Se debe cambiar con el request al servicio de tareas */\n this._menu = {}\n return of(JSON.parse(this.storageService.getItem('__tareas'))).pipe(\n map((tareas: any[]) => {\n const arbolTareas: any[] = [];\n\n let nodoBase = null;\n let nodoHijo = null;\n \n for (const unaTarea of tareas) {\n const modulo = unaTarea.modulo+'';\n if (!(modulo in this._menu)) {\n this._menu[modulo] = { label: unaTarea.nombreModulo, items: [] };\n }\n if (!unaTarea.nombrePadre) {\n arbolTareas.push(unaTarea);\n continue;\n }\n \n nodoBase = null;\n \n // Buscar en el primer nivel\n for (const unNodo of arbolTareas) {\n if (unNodo.tipo !== \"M\") {\n continue;\n }\n if (unaTarea.nombreAbuelo && unNodo.descripcion === unaTarea.nombreAbuelo && unNodo.modulo === unaTarea.modulo) {\n // Buscar en el segundo nivel\n for (const unNodo2 of unNodo.listaTareas || []) {\n if (unNodo2.tipo !== \"M\") {\n continue;\n }\n if (unNodo2.descripcion === unaTarea.nombrePadre && unNodo2.modulo === unaTarea.modulo) {\n nodoBase = unNodo2;\n break;\n }\n }\n if (!nodoBase) {\n nodoHijo = {\n descripcion: unaTarea.nombrePadre,\n gif: unaTarea.gifPadre,\n tipo: \"M\",\n listaTareas: [],\n modulo: unaTarea.modulo,\n };\n unNodo.listaTareas!.push(nodoHijo);\n nodoBase = nodoHijo;\n }\n break;\n }\n if (unNodo.descripcion === unaTarea.nombrePadre && unNodo.modulo === unaTarea.modulo) {\n nodoBase = unNodo;\n break;\n }\n }\n \n if (!nodoBase) {\n nodoBase = {\n descripcion: unaTarea.nombreAbuelo || unaTarea.nombrePadre,\n gif: unaTarea.nombreAbuelo ? unaTarea.gifAbuelo : unaTarea.gifPadre,\n orden: unaTarea.nombreAbuelo ? unaTarea.ordenAbuelo : unaTarea.ordenPadre,\n tipo: \"M\",\n listaTareas: [],\n modulo: unaTarea.modulo,\n };\n arbolTareas.push(nodoBase);\n \n if (unaTarea.nombreAbuelo) {\n nodoHijo = {\n descripcion: unaTarea.nombrePadre,\n gif: unaTarea.gifPadre,\n tipo: \"M\",\n listaTareas: [], \n modulo: unaTarea.modulo,\n };\n nodoBase.listaTareas!.push(nodoHijo);\n nodoBase = nodoHijo;\n }\n }\n nodoBase.listaTareas!.push(unaTarea);\n }\n let respuesta = this.convertToMenuItems(arbolTareas);\n respuesta.forEach(dato => {\n const modulo = dato.tabindex;\n this._menu[modulo].items.push(dato);\n }) \n })\n );\n /********************************************************/\n }\n\n convertToMenuItems(tareas: any[]): MenuItem[] {\n return tareas.map(tarea => {\n const menuItem: MenuItem = {\n label: tarea.descripcion,\n icon: tarea.gif ? 'glyphicons ' + tarea.gif : undefined,\n routerLink: tarea.urlprincipal ? tarea.urlprincipal.replace(/.jsf/, '') : undefined,\n tabindex: tarea.modulo,\n items: tarea.listaTareas ? this.convertToMenuItems(tarea.listaTareas) : undefined\n };\n return menuItem;\n });\n }\n\n setTareasDelModulo(modulo: string): void {\n this._menuSource.next(this._menu[modulo]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\nimport { ErrorResponseModel } from '../modelos/error-response.model';\nimport { UtilsService } from './utils.service';\nimport { Router } from '@angular/router';\nimport { AuthService } from './auth.service';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorIntecertorService {\n\n constructor(private utilsService: UtilsService,\n private route: Router,\n private authService: AuthService,\n private storageService: StorageService,\n ) { }\n\n /**\n * Muestra un mensaje de error según el tipo de error proporcionado.\n * @param errorJson El objeto JSON que representa el error.\n */\n showError(errorJson: string): void {\n const error: ErrorResponseModel = JSON.parse(errorJson);\n if (error.codigo == 'UNI-DB-002' || error.codigo == 'UNI-DB-003' \n || error.mensaje?.includes('Se produjo un error de red') || error.mensaje?.includes('El servicio no está disponible') \n || error.mensaje?.includes('Conexion no valida')) {\n this.storageService.setItem('mensaje_notfound', error.mensaje);\n this.storageService.setItem('url_regresar', window.location.href);\n window.location.href = window.location.origin + '/' + this.utilsService.obtenerBase() + '/not-found'\n //this.route.navigate([this.utilsService.obtenerBase()+'/not-found']);\n return;\n }\n if (error.tipo === 'INF') {\n this.showInfo(error.mensaje, error.codigo);\n } else if (error.tipo === 'WAR') {\n this.showWarning(error.mensaje, error.codigo, error.causa, error.accion, error.traza);\n } else if (error.tipo === 'ERR') {\n this.showErrorDetails(error.mensaje ? error.mensaje : '', error.codigo, error.traza, error.causa);\n }\n }\n\n /**\n * Muestra un mensaje de información con el código.\n * @param mensaje El mensaje a mostrar.\n * @param codigo El código asociado al mensaje.\n */\n private showInfo(mensaje: string, codigo: string): void {\n Swal.fire({\n background: '#f7bfbf',\n position: 'top-end',\n html: '<div style=\"text-align: left;\">' +\n '<p style=\"text-align: left;\"><b>Código:</b> ' + codigo + '</p>' +\n '<p style=\"text-align: left; font-size:12px\">' + mensaje + '</p>' +\n '</div>',\n showConfirmButton: false,\n timer: 5500,\n color: '#ff0000'\n }).then((result) => {\n if (result.isConfirmed) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.cancel) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.close) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n });\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n\n /**\n * Muestra una advertencia con detalles adicionales como causa, acción y traza.\n * @param mensaje El mensaje a mostrar.\n * @param codigo El código asociado al mensaje.\n * @param causa La causa del error.\n * @param accion La acción recomendada.\n * @param traza La traza del error.\n */\n private showWarning(mensaje: string, codigo: string, causa: string, accion: string, traza: string): void {\n let contenidoHtml = `<p class=\"msjError\">${mensaje}</p>`\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(codigo) ? `<p class=\"cauError\"><b>Código:</b> ${codigo}</p>` : ' ');\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(causa) ? `<p class=\"cauError\"><b>Causa:</b> ${causa}</p>` : ' ');\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(accion) ? `<p class=\"cauError\"><b>Acción Recomendada:</b> ${accion}</p>` : ' ');\n let contenidoPlusHtml = `<p class=\"msjError\">${mensaje.slice(0, 100)}</p><button id=\"verMasButton\">Ver más</button> <button id=\"Ok\">OK</button>`;\n\n Swal.fire({\n title: '<span style=\"color: var(--color-700);\">' + 'Advertencia' + '</span>',\n html: contenidoHtml,\n icon: 'warning',\n showCancelButton: false,\n showCloseButton: true,\n showConfirmButton: true,\n didOpen: () => {\n const OkButton = document.getElementById('Ok');\n OkButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-ok');\n OkButton.addEventListener('click', () => {\n Swal.close();\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n });\n },\n }).then((result) => {\n if (result.isConfirmed) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.cancel) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.close) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n });\n \n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n\n /**\n * Muestra un mensaje de error con detalles adicionales como el código de error y la traza.\n * @param mensaje El mensaje a mostrar.\n * @param errorCode El código de error asociado al mensaje.\n * @param traza La traza del error.\n */\n private showErrorDetails(mensaje: string, codigo: string, traza: string, causa? : string): void {\n let contenidoHtml = `<p class=\"msjError\">${mensaje}</p><p class=\"codError\"><b>Código:</b> ${codigo}</p><p class=\"traError\"><b>Traza:</b> ${traza}</p><p class=\"cauError\">`;\n if (causa!= null && causa != undefined) {\n contenidoHtml = `<p class=\"msjError\">${mensaje}</p><p class=\"codError\"><b>Código:</b> ${codigo}</p><p class=\"traError\"><b>Traza:</b> ${traza}</p><p class=\"cauError\"><b>Causa:</b> ${causa}</p>`;\n }\n let contenidoPlusHtml = `<p class=\"msjError\">${mensaje.slice(0, 100)}</p><button id=\"verMasButton\">Ver más</button> <button class=\"btn-ok\" id=\"Ok\">OK</button>`;\n\n Swal.fire({\n title: '<span style=\"color: var(--color-700);\">' + 'Error' + '</span>',\n html: (mensaje.length + traza.length) > 100 ? contenidoPlusHtml : contenidoHtml,\n icon: 'error',\n showCancelButton: false,\n showCloseButton: true,\n showConfirmButton: false,\n customClass: 'my-swal',\n didOpen: () => {\n if ((mensaje.length + traza.length) > 100) {\n // Agregar estilos al botón \"Ver más\"\n const verMasButton = document.getElementById('verMasButton');\n verMasButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-vermas' );\n\n const OkButton = document.getElementById('Ok');\n OkButton.classList.add('swal2-styled', 'swal2-cancel' , 'btn-ok');\n\n // Agregar un evento al botón \"Ver más\" para mostrar todo el contenido cuando se hace clic\n verMasButton.addEventListener('click', () => {\n Swal.update({\n html: contenidoHtml,\n showConfirmButton: true,\n });\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n });\n\n OkButton.addEventListener('click', () => {\n Swal.close();\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n });\n }\n else{\n Swal.update({\n html: contenidoHtml,\n showConfirmButton: true,\n });\n }\n },\n }).then((result) => {\n if (result.isConfirmed) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.cancel) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.close) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n });\n \n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { TimeoutError, catchError, firstValueFrom, throwError } from 'rxjs';\nimport { StorageService } from './storage.service';\nimport { AuthService } from './auth.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { UtilsService } from './utils.service';\nimport { ErrorIntecertorService } from './error-interceptor.service';\nimport { ToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TemplateService {\n constructor(\n private storageService: StorageService,\n private cookieService: CookieService,\n private authService: AuthService,\n private utilsService: UtilsService,\n private errorInterceptor : ErrorIntecertorService,\n private http: HttpClient) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error instanceof TimeoutError) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}));\n } else if (error instanceof HttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurreda\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}));\n } else {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}));\n }\n } else {\n if (error.status == 0) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}));\n } else {\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\n }\n }\n }\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n\n async getTemplateColor(urlapinucleo, codigoAplicacion, nombreAplicacion): Promise<string> {\n if (!this.cookieService.get('urlnucleo')){\n this.cookieService.set('urlnucleo', urlapinucleo)\n }\n const color = this.storageService.getItem('color');\n var basePortal: string = this.utilsService.obtenerBase();\n if (window.location.href.endsWith('not-found')) {\n return \"#F1710C\";\n }\n let data = await this.authService.generarTokenPublico(urlapinucleo).toPromise();\n var headers = new HttpHeaders().set('Authorization', `Bearer ${data.token}`).set('Base', basePortal);\n if (!color) {\n const url = `${urlapinucleo}/authentication/inicio`;\n let params = new HttpParams();\n params = params.set('numeroAplicacion', codigoAplicacion);\n params = params.set('tipo', 'color');\n const response = await this.http.get(url, { params: params, headers: headers } ).pipe(\n catchError(this.handleError)\n ).toPromise();\n const newColor = (response as any)?.colores?.color1;\n\n if (newColor) {\n this.storageService.setItem('color', newColor);\n return newColor;\n }\n\n return '#ffffff';\n }\n\n return color;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport Swal from 'sweetalert2';\nimport { UtilsService } from './utils.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private _delay: number = 10000;\n\n constructor(private messageService: MessageService, private utilsService: UtilsService) {}\n\n /**\n * Muestra el toast con el mensaje de éxito enviado.\n * @param message\n * @param title\n */\n showSuccess(message: string, title?: string): void {\n this._showMessage('success', title ?? 'OK', message);\n }\n\n /**\n * Muestra el toast con el mensaje informativo enviado.\n * @param message\n * @param title\n */\n showInfo(message: string, title?: string): void {\n this._showMessage('success', title ?? 'Ok', message);\n }\n\n /**\n * Muestra el toast con el mensaje de advertencia enviado.\n * @param message\n * @param title\n */\n showWarningPopup(message: string, title?: string): void {\n message = message.replace(/\\n/g, '<br/>');\n let contenidoHtml = `<p class=\"msjError\" stye=\"text-align: left;\">${message}</p>`\n Swal.fire({\n title:`<span style=\"color: var(--color-700);\">${title ? title : 'Información'}</span>`,\n html: contenidoHtml,\n icon: 'success',\n showCancelButton: false,\n showCloseButton: true,\n showConfirmButton: true,\n didOpen: () => {\n const OkButton = document.getElementById('Ok');\n OkButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-ok');\n OkButton.addEventListener('click', () => {\n Swal.close();\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n });\n },\n }).then((result) => {\n if (result.isConfirmed) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.cancel) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n } else if (result.dismiss === Swal.DismissReason.close) {\n this.utilsService.sleep(500).then(data => {\n this.utilsService.resizeWindowIFrame();\n })\n }\n });\n }\n\n /**\n * Muestra el toast con el mensaje de advertencia enviado.\n * @param message\n * @param title\n */\n showWarning(message: string, title?: string): void {\n this._showMessage('warn', title ?? 'Advertencia', message);\n }\n\n /**\n * Muestra el toast con el mensaje de error enviado.\n * @param message\n * @param title\n */\n showError(message: string, title?: string): void {\n this._showMessage('error', title ?? 'Error', message);\n }\n\n /**\n * Agregar un mensaje al servicio para que el toast lo muestre.\n * @param severity success | info | warn | error\n * @param title\n * @param message\n */\n private _showMessage(severity: string, title: string, message: string): void {\n console.log('_showMessage')\n console.log(window['env']['codigoAplicacion'])\n if ('10' == window['env']['codigoAplicacion']) {\n window.parent.postMessage({ type: 'toast', data: { severity: severity , summary: title, detail: message } }, '*');\n } else {\n this.messageService.add({\n severity: severity,\n summary: title,\n detail: message,\n life: this._delay,\n styleClass: 'toast-salto-linea'\n });\n }\n \n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService {\n\n private _loadingFullScreen: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private _loadingFullScreenObservable$ = this._loadingFullScreen.asObservable();\n\n private _loadingBreadCrumb: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private _loadingBreadCrumbObservable$ = this._loadingBreadCrumb.asObservable();\n\n constructor() { }\n\n /**\n * Observable del loading full screen\n */\n get loadingFullScreen() {\n return this._loadingFullScreenObservable$;\n }\n\n /**\n * Observable del loading en el breadcrumb\n */\n\n get loadingBreadCrumb() {\n return this._loadingBreadCrumbObservable$;\n }\n\n public startFullScreenLoading(): void{\n this._loadingFullScreen.next(true);\n }\n\n public endFullScreenLoading(): void {\n this._loadingFullScreen.next(false);\n }\n\n public startBreadCrumLoading(): void {\n this._loadingBreadCrumb.next(true);\n }\n\n public endBreadCrumLoading(): void {\n this._loadingBreadCrumb.next(false);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type MenuMode = 'static' | 'overlay' | 'horizontal' | 'slim' | 'slim-plus' | 'reveal' | 'drawer';\n\nexport type ColorScheme = 'light' | 'dark';\n\nexport interface AppConfig {\n inputStyle: string;\n colorScheme: ColorScheme;\n componentTheme: string;\n ripple: boolean;\n menuMode: MenuMode;\n scale: number;\n menuTheme: string;\n topbarTheme: string;\n menuProfilePosition: string;\n}\n\ninterface LayoutState {\n staticMenuMobileActive: boolean;\n overlayMenuActive: boolean;\n staticMenuDesktopInactive: boolean;\n configSidebarVisible: boolean;\n menuHoverActive: boolean;\n rightMenuActive: boolean;\n topbarMenuActive: boolean;\n menuProfileActive: boolean;\n sidebarActive: boolean;\n anchored: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutService {\n\n config: AppConfig = {\n ripple: true,\n inputStyle: 'outlined',\n menuMode: 'reveal',\n colorScheme: 'light',\n componentTheme: 'indigo',\n scale: 14,\n menuTheme: 'light',\n topbarTheme: 'indigo',\n menuProfilePosition: 'end'\n };\n\n state: LayoutState = {\n staticMenuDesktopInactive: false,\n overlayMenuActive: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false,\n rightMenuActive: false,\n topbarMenuActive: false,\n menuProfileActive: false,\n sidebarActive: false,\n anchored: false\n };\n\n private configUpdate = new Subject<AppConfig>();\n\n private overlayOpen = new Subject<any>();\n\n private topbarMenuOpen = new Subject<any>();\n\n private menuProfileOpen = new Subject<any>();\n\n configUpdate$ = this.configUpdate.asObservable();\n\n overlayOpen$ = this.overlayOpen.asObservable();\n\n topbarMenuOpen$ = this.topbarMenuOpen.asObservable();\n\n menuProfileOpen$ = this.menuProfileOpen.asObservable();\n\n onMenuToggle() {\n if (this.isOverlay()) {\n this.state.overlayMenuActive = !this.state.overlayMenuActive;\n\n if (this.state.overlayMenuActive) {\n this.overlayOpen.next(null);\n }\n }\n\n if (this.isDesktop()) {\n this.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\n }\n else {\n this.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\n\n if (this.state.staticMenuMobileActive) {\n this.overlayOpen.next(null);\n }\n }\n }\n\n onTopbarMenuToggle() {\n this.state.topbarMenuActive = !this.state.topbarMenuActive;\n if (this.state.topbarMenuActive) {\n this.topbarMenuOpen.next(null);\n }\n }\n\n onOverlaySubmenuOpen() {\n this.overlayOpen.next(null);\n }\n\n showConfigSidebar() {\n this.state.configSidebarVisible = true;\n }\n\n isOverlay() {\n return this.config.menuMode === 'overlay';\n }\n\n isDesktop() {\n return window.innerWidth > 991;\n }\n\n isSlim() {\n return this.config.menuMode === 'slim';\n }\n\n isSlimPlus() {\n return this.config.menuMode === 'slim-plus';\n }\n\n isHorizontal() {\n return this.config.menuMode === 'horizontal';\n }\n\n isMobile() {\n return !this.isDesktop();\n }\n\n onConfigUpdate() {\n this.configUpdate.next(this.config);\n }\n\n isRightMenuActive(): boolean {\n return this.state.rightMenuActive;\n }\n\n openRightSidebar(): void {\n this.state.rightMenuActive = true;\n }\n\n onMenuProfileToggle() {\n this.state.menuProfileActive = !this.state.menuProfileActive;\n if (this.state.menuProfileActive && this.isHorizontal() && this.isDesktop()) {\n this.menuProfileOpen.next(null);\n }\n }\n\n replaceThemeLink(href: string, onComplete: Function) {\n const id = 'theme-link';\n const themeLink = <HTMLLinkElement>document.getElementById(id);\n const cloneLinkElement = <HTMLLinkElement>themeLink.cloneNode(true);\n\n cloneLinkElement.setAttribute('href', href);\n cloneLinkElement.setAttribute('id', id + '-clone');\n\n themeLink.parentNode!.insertBefore(cloneLinkElement, themeLink.nextSibling);\n\n cloneLinkElement.addEventListener('load', () => {\n themeLink.remove();\n cloneLinkElement.setAttribute('id', id);\n onComplete();\n });\n }\n\n onColorSchemeChange(colorScheme: ColorScheme) {\n const themeLink = <HTMLLinkElement>document.getElementById('theme-link');\n const themeLinkHref = themeLink.getAttribute('href');\n const currentColorScheme = 'theme-' + this.config.colorScheme;\n const newColorScheme = 'theme-' + colorScheme;\n const newHref = themeLinkHref!.replace(currentColorScheme, newColorScheme);\n this.replaceThemeLink(newHref, () => {\n this.config.colorScheme = colorScheme;\n if (colorScheme === 'dark') {\n this.config.menuTheme = 'dark';\n }\n this.onConfigUpdate();\n });\n\n }\n\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { LayoutService } from './service/app.layout.service';\nimport { AuthService } from '../core/servicios/auth.service';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-menu-profile',\n imports: [TooltipModule, CommonModule],\n standalone: true,\n templateUrl: './app.menuprofile.component.html',\n animations: [\n trigger('menu', [\n transition('void => inline', [\n style({ height: 0 }),\n animate('400ms cubic-bezier(0.86, 0, 0.07, 1)', style({ opacity: 1, height: '*' })),\n ]),\n transition('inline => void', [\n animate('400ms cubic-bezier(0.86, 0, 0.07, 1)', style({ opacity: 0, height: '0' }))\n ]),\n transition('void => overlay', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\n ]),\n transition('overlay => void', [\n animate('.1s linear', style({ opacity: 0 }))\n ])\n ])\n ]\n})\nexport class AppMenuProfileComponent {\n\n constructor(public layoutService: LayoutService, public el: ElementRef,\n public authService: AuthService) { }\n\n toggleMenu() {\n this.layoutService.onMenuProfileToggle();\n }\n\n get isHorizontal() {\n return this.layoutService.isHorizontal() && this.layoutService.isDesktop();\n }\n\n get menuProfileActive(): boolean {\n return this.layoutService.state.menuProfileActive;\n }\n\n get menuProfilePosition(): string {\n return this.layoutService.config.menuProfilePosition;\n }\n\n get isTooltipDisabled(): boolean {\n return !this.layoutService.isSlim();\n }\n\n get nombreUsuario(): string {\n return this.authService.getTokenKey('nombreUsuario')\n }\n}\n","<div class=\"layout-menu-profile\">\n <button class=\"p-link\" pTooltip=\"Profile\" [tooltipDisabled]=\"isTooltipDisabled\">\n <span>\n <strong>{{nombreUsuario}}</strong>\n </span>\n <i class=\"layout-menu-profile-toggler pi pi-fw\" [ngClass]=\"{'pi-user': menuProfilePosition === 'start' || isHorizontal, 'pi-users': menuProfilePosition === 'end' && !isHorizontal}\"></i>\n </button>\n\n <!--<ul *ngIf=\"menuProfileActive\" [@menu]=\"isHorizontal ? 'overlay' : 'inline'\">\n <li pTooltip=\"Settings\" [tooltipDisabled]=\"isTooltipDisabled\" [routerLink]=\"['/profile/create']\">\n <button class=\"p-link\" [routerLink]=\"['/documentation']\">\n <i class=\"pi pi-cog pi-fw\"></i>\n <span>Settings</span>\n </button>\n </li>\n <li pTooltip=\"Profile\" [tooltipDisabled]=\"isTooltipDisabled\">\n <button class=\"p-link\" [routerLink]=\"['/documentation']\" [routerLink]=\"['/documentation']\">\n <i class=\"pi pi-file-o pi-fw\"></i>\n <span>Profile</span>\n </button>\n </li>\n <li pTooltip=\"Support\" [tooltipDisabled]=\"isTooltipDisabled\">\n <button class=\"p-link\" [routerLink]=\"['/documentation']\">\n <i class=\"pi pi-compass pi-fw\"></i>\n <span>Support</span>\n </button>\n </li>\n <li pTooltip=\"Logout\" [tooltipDisabled]=\"isTooltipDisabled\" [routerLink]=\"['/auth/login2']\">\n <button class=\"p-link\">\n <i class=\"pi pi-power-off pi-fw\"></i>\n <span>Logout</span>\n </button>\n </li>\n </ul>-->\n</div>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MenuChangeEvent } from './api/menuchangeevent';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MenuService {\n\n private menuSource = new Subject<MenuChangeEvent>();\n private resetSource = new Subject();\n\n menuSource$ = this.menuSource.asObservable();\n resetSource$ = this.resetSource.asObservable();\n\n onMenuStateChange(event: MenuChangeEvent) {\n this.menuSource.next(event);\n }\n\n reset() {\n this.resetSource.next(true);\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MenuService } from './app.menu.service';\nimport { LayoutService } from './service/app.layout.service';\nimport {DomHandler} from 'primeng/dom';\nimport { UtilsService } from '../core/servicios/utils.service';\nimport { CommonModule } from '@angular/common';\nimport { TooltipModule } from 'primeng/tooltip';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[app-menuitem]',\n standalone: true,\n imports: [CommonModule, RouterModule, TooltipModule],\n template: `\n\t\t<ng-container>\n <div *ngIf=\"root && item.visible !== false\" class=\"layout-menuitem-root-text\">\n <span>{{item.label}}</span>\n <i class=\"layout-menuitem-root-icon pi pi-fw pi-ellipsis-h\"></i>\n </div>\n\t\t\t<a *ngIf=\"(!item.routerLink || item.items) && item.visible !== false\" [attr.href]=\"item.url\" (click)=\"itemClick($event)\" (mouseenter)=\"onMouseEnter()\"\n\t\t\t [ngClass]=\"item.class\" [attr.target]=\"item.target\" tabindex=\"0\" pRipple [pTooltip]=\"item.label\" [tooltipDisabled]=\"!(isSlim && root && !active)\">\n\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n\t\t\t\t<span class=\"layout-menuitem-text\">{{item.label}}</span>\n\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n\t\t\t</a>\n\t\t\t<a *ngIf=\"(item.routerLink && !item.items) && item.visible !== false\" (click)=\"itemClick($event)\" (mouseenter)=\"onMouseEnter()\" [ngClass]=\"item.class\"\n\t\t\t [routerLink]=\"'/'+utilsService.obtenerBase()+ (url.toString().includes('admonPortal') ? '/admonPortal' : '') +item.routerLink\" routerLinkActive=\"active-route\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }\"\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\" [queryParams]=\"item.queryParams\"\n [attr.target]=\"item.target\" tabindex=\"0\" pRipple [pTooltip]=\"item.label\" [tooltipDisabled]=\"!(isSlim && root)\">\n\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n\t\t\t\t<span class=\"layout-menuitem-text\">{{item.label}}</span>\n\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n\t\t\t</a>\n\n\t\t\t<ul #submenu *ngIf=\"item.items && item.visible !== false\" [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\n\t\t\t\t<ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n\t\t\t\t\t<li app-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child.badgeClass\"></li>\n\t\t\t\t</ng-template>\n\t\t\t</ul>\n\t\t</ng-container>\n `,\n animations: [\n trigger('children', [\n state('collapsed', style({\n height: '0'\n })),\n state('expanded', style({\n height: '*'\n })),\n state('hidden', style({\n display: 'none'\n })),\n state('visible', style({\n display: 'block'\n })),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ]\n})\nexport class AppMenuitemComponent implements OnInit, OnDestroy {\n\n @Input() item: any;\n\n @Input() index!: number;\n\n @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\n\n @Input() parentKey!: string;\n\n @ViewChild('submenu') submenu!: ElementRef;\n\n active = false;\n\n menuSourceSubscription: Subscription;\n\n menuResetSubscription: Subscription;\n\n key: string = \"\";\n\n url = window.location.href;\n\n constructor(public layoutService: LayoutService, private cd: ChangeDetectorRef, public router: Router, private menuService: MenuService, public utilsService: UtilsService) {\n this.menuSourceSubscription = this.menuService.menuSource$.subscribe(value => {\n Promise.resolve(null).then(() => {\n if (value.routeEvent) {\n this.active = (value.key === this.key || value.key.startsWith(this.key + '-')) ? true : false;\n }\n else {\n if (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\n this.active = false;\n }\n }\n });\n });\n\n this.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {\n this.active = false;\n });\n\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(params => {\n if (this.isSlimPlus || this.isSlim || this.isHorizontal) {\n this.active = false;\n }\n else {\n if (this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n }\n });\n }\n\n ngOnInit() {\n this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\n\n if (!(this.isSlimPlus || this.isSlim || this.isHorizontal) && this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n }\n\n ngAfterViewChecked() {\n if (this.root && this.active && this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus())) {\n this.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);\n }\n }\n\n updateActiveStateFromRoute() {\n let activeRoute = this.router.isActive(this.item.routerLink[0], { paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' });\n\n if (activeRoute) {\n this.menuService.onMenuStateChange({key: this.key, routeEvent: true});\n }\n }\n\n onSubmenuAnimated(event: AnimationEvent) {\n if (event.toState === 'visible' && this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus())) {\n const el = <HTMLUListElement> event.element;\n const elParent = <HTMLUListElement> el.parentElement;\n this.calculatePosition(el, elParent);\n }\n }\n\n calculatePosition(overlay: HTMLElement, target: HTMLElement) {\n if (overlay) {\n const { left, top } = target.getBoundingClientRect();\n const [vWidth, vHeight] = [window.innerWidth, window.innerHeight];\n const [oWidth, oHeight] = [overlay.offsetWidth, overlay.offsetHeight];\n const scrollbarWidth = DomHandler.calculateScrollbarWidth();\n const topbarEl = document.querySelector('.layout-topbar') as HTMLElement;\n const topbarHeight = topbarEl?.offsetHeight || 0;\n // reset\n overlay.style.top = '';\n overlay.style.left = '';\n\n if (this.layoutService.isHorizontal()) {\n const width = left + oWidth + scrollbarWidth;\n overlay.style.left = vWidth < width ? `${left - (width - vWidth)}px` : `${left}px`;\n } else if ( this.layoutService.isSlim() || this.layoutService.isSlimPlus()) {\n const topOffset = top - topbarHeight;\n const height = topOffset + oHeight + topbarHeight;\n overlay.style.top = vHeight < height ? `${topOffset - (height - vHeight)}px` : `${topOffset}px`;\n }\n }\n }\n\n itemClick(event: Event) {\n // avoid processing disabled items\n if (this.item.disabled) {\n event.preventDefault();\n return;\n }\n\n // navigate with hover\n if (this.root && this.isSlim || this.isHorizontal || this.isSlimPlus) {\n this.layoutService.state.menuHoverActive = !this.layoutService.state.menuHoverActive;\n }\n\n // execute command\n if (this.item.command) {\n this.item.command({ originalEvent: event, item: this.item });\n }\n\n // toggle active state\n if (this.item.items) {\n this.active = !this.active;\n\n if (this.root && this.active && (this.isSlim || this.isHorizontal || this.isSlimPlus)) {\n this.layoutService.onOverlaySubmenuOpen();\n }\n }\n else {\n if (this.layoutService.isMobile()) {\n this.layoutService.state.staticMenuMobileActive = false;\n }\n\n if (this.isSlim || this.isHorizontal || this.isSlimPlus) {\n this.menuService.reset();\n this.layoutService.state.menuHoverActive = false;\n }\n }\n\n this.menuService.onMenuStateChange({key: this.key});\n }\n\n onMouseEnter() {\n // activate item on hover\n if (this.root && (this.isSlim || this.isHorizontal || this.isSlimPlus) && this.layoutService.isDesktop()) {\n if (this.layoutService.state.menuHoverActive) {\n this.active = true;\n this.menuService.onMenuStateChange({key: this.key});\n }\n }\n }\n\n get submenuAnimation() {\n if (this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus()))\n return this.active ? 'visible' : 'hidden';\n else\n return this.root ? 'expanded' : (this.active ? 'expanded' : 'collapsed');\n }\n\n get isHorizontal() {\n return this.layoutService.isHorizontal();\n }\n\n get isSlim() {\n return this.layoutService.isSlim();\n }\n get isSlimPlus() {\n return this.layoutService.isSlimPlus();\n }\n\n @HostBinding('class.active-menuitem')\n get activeClass() {\n return this.active && !this.root;\n }\n\n ngOnDestroy() {\n if (this.menuSourceSubscription) {\n this.menuSourceSubscription.unsubscribe();\n }\n\n if (this.menuResetSubscription) {\n this.menuResetSubscription.unsubscribe();\n }\n }\n}\n","import { OnInit } from '@angular/core';\nimport { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\nimport { Subscription } from 'rxjs';\nimport { MenuService } from '../core/servicios/menu.service';\nimport { UtilsService } from '../core/servicios/utils.service';\nimport { CommonModule } from '@angular/common';\nimport { AppMenuitemComponent } from './app.menuitem.component';\n\n@Component({\n selector: 'app-menu',\n imports: [CommonModule, AppMenuitemComponent],\n standalone: true,\n templateUrl: './app.menu.component.html'\n})\nexport class AppMenuComponent implements OnInit {\n subcription: Subscription;\n model: MenuItem[]\n\n /**\n *\n */\n constructor(private menuService: MenuService, private utilsService: UtilsService) {\n }\n\n ngOnInit() {\n if (window.location.href.toString().includes('admonPortal')) {\n this.model = [{\n label: \"Inicio\",\n icon: \"pi pi-home\",\n routerLink: this.utilsService.obtenerBase() + \"/admonPortal/inicio\",\n visible: true,\n items: [],\n }];\n } else {\n this.model = [{\n label: \"Inicio\",\n icon: \"pi pi-home\",\n routerLink: this.utilsService.obtenerBase() + \"/inicio\",\n visible: true,\n items: [],\n }];\n }\n \n this.subcription = this.menuService.menu.subscribe((menu) => {\n this.model[0].label = menu.label;\n this.model[0].items = menu.items;\n });\n }\n}\n\n","<ul class=\"layout-menu\">\n <ng-container *ngFor=\"let item of model; let i = index;\">\n <li app-menuitem *ngIf=\"!item.separator\" [item]=\"item\" [index]=\"i\" [root]=\"true\"></li>\n <li *ngIf=\"item.separator\" class=\"menu-separator\"></li>\n </ng-container>\n</ul>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n standalone: true,\n name: 'generalPipe'\n})\n@Injectable({\n providedIn: 'root'\n})\nexport class GeneralPipe implements PipeTransform {\n\n ESPACIO_BLANCO = \" \";\n ESPACIO_NULO = \"\";\n\n NO_APLICA = 'N'\n NO_APLICA_DESC = 'No Aplica'\n\n SI = 'S';\n NO = 'N';\n\n SI_DESC = 'Si';\n NO_DESC = 'No';\n\n vertical = \"V\";\n desVertical = \"Vertical\";\n\n horizontal = \"H\";\n desHorizontal = \"Horizontal\";\n\n\n ORIENTACION = [\n { codigo: this.vertical, nombre: this.desVertical },\n { codigo: this.horizontal, nombre: this.desHorizontal },\n ]\n\n LISTA_SINO = [\n { codigo: this.SI, nombre: this.SI_DESC },\n { codigo: this.NO, nombre: this.NO_DESC }\n ]\n\n\n\n ESTADO_PROCESO = 'P';\n ESTADO_PUNTO = '.'\n ESTADO_SELECCION_DESC = '--Seleccionar--';\n ESTADO_ACTIVO_DES = 'Activo';\n ESTADO_INACTIVO_DESC = 'Inactivo'\n ESTADO_PROCESO_DESC = 'En proceso';\n A_TILDE_MIN= \"\\u00E1\";\n\tE_TILDE_MIN= \"\\u00E9\";\n\tI_TILDE_MIN= \"\\u00ED\";\n\tO_TIDLE_MIN= \"\\u00F3\";\n\tU_TILDE_MIN= \"\\u00FA\";\n\tA_TILDE_MAY= \"\\u00C1\";\n\tE_TILDE_MAY= \"\\u00C9\";\n\tI_TILDE_MAY= \"\\u00CD\";\n\tO_TILDE_MAY= \"\\u00D3\";\n\tU_TILDE_MAY= \"\\u00DA\";\n\tN_TILDE_MAY= \"\\u00D1\";\n\tN_TILDE_MIN= \"\\u00F1\";\n U = \"U\"\n\n LISTA_ESTADO_SN = [\n { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\n { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\n { codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_PROCESO_DESC }\n ]\n // Tipos Anexi\n TIPOS_ANEXO_LIMITADO = [\n { codigo: this.NO, nombre: \"No solicitar\" },\n { codigo: this.U, nombre: this.U_TILDE_MAY + \"nico anexo\" },\n\n ]\n\n LISTA_SELECIONAR_MAP = [\n { codigo: this.SI, nombre: this.SI_DESC },\n { codigo: this.NO, nombre: this.NO_DESC },\n\n ]\n\n\n MAS = \"+\";\n MENOS = \"-\";\n BARRA_PISO = \"_\";\n MONTO = \"MONTO\";\n FECHA_1 = \"FECHA1\";\n FECHA_2 = \"FECHA2\";\n FECHA_3 = \"FECHA3\";\n ciclo = \"CICLO\";\n COMPROBANTE = \"COMPROB\";\n restringe = \"RESTRINGE\";\n actividad = \"ACTIVIDAD\";\n ABONOPENSI = \"ABONOPENSI\";\n\n estados = {\n S: 'Activo',\n P: 'En proceso',\n N: 'Inactivo'\n }\n listaEstados = {\n S: 'Activo',\n Punto: 'En proceso',\n N: 'Inactivo'\n }\n LISTA_ESTADO = [\n { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\n { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\n { codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_SELECCION_DESC }\n ]\n\n ////// PARAMETROS DE COMPENSACION\n PADRE = \"P\";\n HIJO = \"H\";\n\n CONCEPTO_VIGENTE = 'VIGENTE'\n CONCEPTO_NOVIGENTE = 'NO VIGENTE'\n\n LISTADO_ESTADO_CONCEPTO = [\n { codigo: this.SI, nombre: this.CONCEPTO_VIGENTE },\n { codigo: this.NO, nombre: this.CONCEPTO_NOVIGENTE }\n ]\n\n FORMULA_GENERAL = 'G'\n FORMULA = 'F'\n FORMULA_BENEFICIARIO = 'B'\n FORMULA_VALOR_FIJO = 'M'\n VALOR_FIJO = 'V'\n\n FORMULA_GENERAL_DESC = 'Formula General'\n FORMULA_DESC = 'Formula'\n FORMULA_BENEFICIARIO_DESC = 'Formula Beneficiario'\n FORMULA_VALOR_FIJO_DESC = 'Formula Valor Fijo'\n VALOR_FIJO_DESC = 'Valor Fijo'\n\n LISTADO_FORMULA = [\n { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\n { codigo: this.FORMULA, nombre: this.FORMULA_DESC },\n { codigo: this.FORMULA_BENEFICIARIO, nombre: this.FORMULA_BENEFICIARIO_DESC },\n { codigo: this.FORMULA_VALOR_FIJO, nombre: this.FORMULA_VALOR_FIJO_DESC },\n { codigo: this.VALOR_FIJO, nombre: this.VALOR_FIJO_DESC },\n ]\n\n CONCEPTO_DEVENGO = '+'\n CONCEPTO_DEDUCCION = '-'\n\n CONCEPTO_DEVENGO_DESC = 'DEVENGO'\n CONCEPTO_DEDUCCION_DESC = 'DEDUCCION'\n\n LISTADO_NATURALEZA_CONCEPTO = [\n { codigo: this.CONCEPTO_DEVENGO, nombre: this.CONCEPTO_DEVENGO_DESC },\n { codigo: this.CONCEPTO_DEDUCCION, nombre: this.CONCEPTO_DEDUCCION_DESC },\n ]\n\n REDONDEO_CERO_DECIMALES = 'S'\n REDONDEO_UN_DECIMAL = '1'\n REDONDEO_DOS_DECIMALES = '2'\n\n REDONDEO_CERO_DECIMALES_DESC = '0 DECIMALES'\n REDONDEO_UN_DECIMAL_DESC = '1 DECIMAL'\n REDONDEO_DOS_DECIMALES_DESC = '2 DECIMALES'\n\n\n LISTA_REDONDEO_CONCEPTO = [\n { codigo: this.REDONDEO_CERO_DECIMALES, nombre: this.REDONDEO_CERO_DECIMALES_DESC },\n { codigo: this.REDONDEO_UN_DECIMAL, nombre: this.REDONDEO_UN_DECIMAL_DESC },\n { codigo: this.REDONDEO_DOS_DECIMALES, nombre: this.REDONDEO_DOS_DECIMALES_DESC },\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n ]\n\n CAMBIO_ASIGNACION_CONCEPTO = 'S'\n CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO = 'A'\n CAMBIO_ROL_CONCEPTO = 'R'\n CAMBIO_TEMPORAL_CONCEPTO = 'T'\n\n\n CAMBIO_ASIGNACION_CONCEPTO_DES = 'Cambio Asignacion'\n CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES = 'Cambio Asignacion/Temporal'\n CAMBIO_ROL_CONCEPTO_DES = 'Cambio Rol'\n CAMBIO_TEMPORAL_CONCEPTO_DES = 'Cambio Temporal'\n\n\n LISTA_CAMBIO_CONCEPTO = [\n { codigo: this.CAMBIO_ASIGNACION_CONCEPTO, nombre: this.CAMBIO_ASIGNACION_CONCEPTO_DES },\n { codigo: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO, nombre: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES },\n { codigo: this.CAMBIO_ROL_CONCEPTO, nombre: this.CAMBIO_ROL_CONCEPTO_DES },\n { codigo: this.CAMBIO_TEMPORAL_CONCEPTO, nombre: this.CAMBIO_TEMPORAL_CONCEPTO_DES },\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n ]\n\n AJUSTE_PARCIAL_CONCEPTO = 'P'\n AJUSTE_TOTAL_CONCEPTO = 'T'\n\n AJUSTE_PARCIAL_CONCEPTO_DESC = 'PARCIAL'\n AJUSTE_TOTAL_CONCEPTO_DESC = 'TOTAL'\n\n LISTA_TIPOAJUSTE_CONCEPTO = [\n { codigo: this.AJUSTE_PARCIAL_CONCEPTO, nombre: this.AJUSTE_PARCIAL_CONCEPTO_DESC },\n { codigo: this.AJUSTE_TOTAL_CONCEPTO, nombre: this.AJUSTE_TOTAL_CONCEPTO_DESC }\n ]\n\n\n\n FLEXIBLE_BENEFICIO_CONCEPTO = 'F'\n FLEXIBLE_BENEFICIOADI_CONCEPTO = 'A'\n FLEXIBLE_CRUCE_CONCEPTO = 'C'\n\n\n FLEXIBLE_BENEFICIO_CONCEPTO_DESC = 'BENEFICIO'\n FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC = 'BENEFICIO ADICIONAL'\n FLEXIBLE_CRUCE_CONCEPTO_DESC = 'BENEFICIO CRUCE'\n\n\n LISTA_FLEXIBLE_CONCEPTO = [\n { codigo: this.FLEXIBLE_BENEFICIO_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIO_CONCEPTO_DESC },\n { codigo: this.FLEXIBLE_BENEFICIOADI_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC },\n { codigo: this.FLEXIBLE_CRUCE_CONCEPTO, nombre: this.FLEXIBLE_CRUCE_CONCEPTO_DESC },\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n ]\n // dsfd\n FINALIN = 'P'\n PARCIAL = 'T'\n\n FINAL_DESC = 'PARCIAL'\n PARCIAL_DESC = 'TOTAL'\n\n LISTA_INFORME = [\n { codigo: this.FINALIN, nombre: this.FINAL_DESC },\n { codigo: this.PARCIAL, nombre: this.PARCIAL_DESC }\n ]\n\n // kkk\n CONTRATOPRINCIPAL = 'contratoprincipal';\n BASECOTIZACION = 'formulaibc';\n UNIFICACIONSEGURIDAD = 'formulassunif';\n INTERESCUOTAPARTE = 'interescuotaparte';\n FORMULADISTRIBUIR = 'formuladistribuir';\n JORNADADOCENTE = 'formulajor';\n AJUSTENOMINA = 'formulaajuste';\n DESCUENTOFIJO = 'conceptofijos';\n PENSIONDISTRIBUYE = 'pensiondistribuye';\n PUESTOTRABAJO = 'puestotrabajo';\n SEGURIDADSOCIAL = 'seguridadsocial';\n VIATICO = 'viatico';\n NOMINA = 'nomina';\n CONCEPTOTIEMPOS = 'conceptotiempo';\n GENERACIONINTERFAZ = 'generacioninterfaz';\n REGISTROAUSENCIA = 'registroausencia';\n INTERRUPCIONAUSENCIA = 'interrupcionausencia';\n NOVEDAD = 'novedad';\n CONTROLLIQPERIODICA = 'controlliqperiodica';\n BENEFICIO = 'beneficio';\n SERVICIOENTIDAD = 'servicioentidad';\n SOLICITUDCREDITO = 'solicitudcredito';\n CUOTACREDITO = 'cuotacredito';\n TABLAAMORTIZACION = 'tablaamortizacion';\n EVALUACION = 'evaluacion';\n ACTOADMINISTRATIVO = 'actoadministrativo';\n FACTORPUNTAJE = 'factorpuntaje';\n PLANSUCESION = 'plansucesion';\n AJUSTEHISTORICO = 'ajustehistorico';\n AJUSTEVARIABLE = 'incrementovariable';\n NOMINALELECTRONICA = 'nominaelectronica';\n NOMINALELECTRONICACON = 'nominaelectronicacon';\n NOMINALELECTRONICAINI = 'nominaelectronicaini';\n NOMINALELECTRONICANET = 'nominaelectronicanet';\n\n BASECOTIZACION_DESC = 'Ingreso Base de Cotizacion (ANTES)';\n CONTRATOPRINCIPAL_DESC = 'Calculo Contrato Principal';\n UNIFICACIONSEGURIDAD_DESC = 'Unificacion Seguridad Social (ANTES)';\n INTERESCUOTAPARTE_DESC = 'Interes Cuota Parte';\n FORMULADISTRIBUIR_DESC = 'Distribucion Abono en Cuenta';\n JORNADADOCENTE_DESC = 'Jornada Docente';\n AJUSTENOMINA_DESC = 'Ajuste de Nomina';\n DESCUENTOFIJO_DESC = 'Conceptos Fijos de Nomina';\n PENSIONDISTRIBUYE_DESC = 'Distribucion Pension';\n PUESTOTRABAJO_DESC = 'Puesto de trabajo';\n SEGURIDADSOCIAL_DESC = 'Seguridad Social';\n VIATICO_DESC = 'Programacion de viaticos';\n NOMINA_DESC = 'Nomina';\n GENERACIONINTERFAZ_DESC = 'Generacion Interfaz';\n REGISTROAUSENCIA_DESC = 'Registro Ausencia';\n INTERRUPCIONAUSENCIA_DESC = 'Interrupcion Ausencia';\n NOVEDAD_DESC = 'Novedad';\n CONTROLLIQPERIODICA_DESC = 'Control Prestamos/Embargos';\n BENEFICIO_DESC = 'Beneficio';\n SERVICIOENTIDAD_DESC = 'Servicio Entidad';\n SOLICITUDCREDITO_DESC = 'Solicitud de Credito';\n CUOTACREDITO_DESC = 'Aplicacion Cuota Credito';\n TABLAAMORTIZACION_DESC = 'Tabla de amortizacion';\n EVALUACION_DESC = 'Herrarmientas de Gestion';\n ACTOADMINISTRATIVO_DESC = 'Actos Administrativos';\n FACTORPUNTAJE_DESC = 'Factor Puntaje';\n PLANSUCESION_DESC = 'Plan de Sucesion';\n CONCEPTOTIEMPOS_DESC = 'Conceptos de Tiempos';\n AJUSTEHISTORICO_DESC = 'Ajuste Historico Periodo de Vacaciones';\n AJUSTEVARIABLE_DESC = 'Ajuste de Variable';\n NOMINALELECTRONICA_DESC = 'Nomina Electronica - Empleado';\n NOMINALELECTRONICACON_DESC = 'Nomina Electronica - Conceptos';\n NOMINALELECTRONICAINI_DESC = 'Nomina Electronica - Inicial';\n NOMINALELECTRONICANET_DESC = 'Nomina Electronica - Neto Pagos';\n\n\n LISTA_TIPOFORMULA = [\n { codigo: this.CONTRATOPRINCIPAL, nombre: this.CONTRATOPRINCIPAL_DESC },\n { codigo: this.BASECOTIZACION, nombre: this.BASECOTIZACION_DESC },\n { codigo: this.UNIFICACIONSEGURIDAD, nombre: this.UNIFICACIONSEGURIDAD_DESC },\n { codigo: this.INTERESCUOTAPARTE, nombre: this.INTERESCUOTAPARTE_DESC },\n { codigo: this.FORMULADISTRIBUIR, nombre: this.FORMULADISTRIBUIR_DESC },\n { codigo: this.JORNADADOCENTE, nombre: this.JORNADADOCENTE_DESC },\n { codigo: this.AJUSTENOMINA, nombre: this.AJUSTENOMINA_DESC },\n { codigo: this.DESCUENTOFIJO, nombre: this.DESCUENTOFIJO_DESC },\n { codigo: this.PENSIONDISTRIBUYE, nombre: this.PENSIONDISTRIBUYE_DESC },\n { codigo: this.PUESTOTRABAJO, nombre: this.PUESTOTRABAJO_DESC },\n { codigo: this.SEGURIDADSOCIAL, nombre: this.SEGURIDADSOCIAL_DESC },\n { codigo: this.VIATICO, nombre: this.VIATICO_DESC },\n { codigo: this.NOMINA, nombre: this.NOMINA_DESC },\n { codigo: this.CONCEPTOTIEMPOS, nombre: this.CONCEPTOTIEMPOS_DESC },\n { codigo: this.GENERACIONINTERFAZ, nombre: this.GENERACIONINTERFAZ_DESC },\n { codigo: this.REGISTROAUSENCIA, nombre: this.REGISTROAUSENCIA_DESC },\n { codigo: this.INTERRUPCIONAUSENCIA, nombre: this.INTERRUPCIONAUSENCIA_DESC },\n { codigo: this.NOVEDAD, nombre: this.NOVEDAD_DESC },\n { codigo: this.CONTROLLIQPERIODICA, nombre: this.CONTROLLIQPERIODICA_DESC },\n { codigo: this.BENEFICIO, nombre: this.BENEFICIO_DESC },\n { codigo: this.SERVICIOENTIDAD, nombre: this.SERVICIOENTIDAD_DESC },\n { codigo: this.SOLICITUDCREDITO, nombre: this.SOLICITUDCREDITO_DESC },\n { codigo: this.CUOTACREDITO, nombre: this.CUOTACREDITO_DESC },\n { codigo: this.TABLAAMORTIZACION, nombre: this.TABLAAMORTIZACION_DESC },\n { codigo: this.EVALUACION, nombre: this.EVALUACION_DESC },\n { codigo: this.ACTOADMINISTRATIVO, nombre: this.ACTOADMINISTRATIVO_DESC },\n { codigo: this.FACTORPUNTAJE, nombre: this.FACTORPUNTAJE_DESC },\n { codigo: this.PLANSUCESION, nombre: this.PLANSUCESION_DESC },\n { codigo: this.AJUSTEHISTORICO, nombre: this.AJUSTEHISTORICO_DESC },\n { codigo: this.AJUSTEVARIABLE, nombre: this.AJUSTEVARIABLE_DESC },\n { codigo: this.NOMINALELECTRONICA, nombre: this.NOMINALELECTRONICA_DESC },\n { codigo: this.NOMINALELECTRONICACON, nombre: this.NOMINALELECTRONICACON_DESC },\n { codigo: this.NOMINALELECTRONICAINI, nombre: this.NOMINALELECTRONICAINI_DESC },\n { codigo: this.NOMINALELECTRONICANET, nombre: this.NOMINALELECTRONICANET_DESC },\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n ]\n\n /* VARIABLE / TIPO */\n\n FECHA = \"F\";\n HORA = \"H\";\n\n NUMERODES = \"N\\u00DAMERO\";\n FECHADES = \"FECHA\";\n HORADES = \"HORA\";\n\n LISTATIPO = [\n { codigo: this.NO, nombre: this.NUMERODES },\n { codigo: this.FECHA, nombre: this.FECHADES },\n { codigo: this.HORA, nombre: this.HORADES }\n ]\n\n INICIOANO = \"A\";\n FINANO = \"O\";\n INICIOMES = \"M\";\n FINMES = \"S\";\n LIBRE = \"N\";\n\n DESINICIOANO = \"INICIO A\\u00D1O\";\n DESFINANO = \"FIN A\\u00D1O\";\n DESINICIOMES = \"INICIO MES\";\n DESFINMES = \"FIN MES\";\n DESLIBRE = \"LIBRE\";\n\n TIPOVIGENCIA = [\n { codigo: this.INICIOANO, nombre: this.DESINICIOANO },\n { codigo: this.FINANO, nombre: this.DESFINANO },\n { codigo: this.INICIOMES, nombre: this.DESINICIOMES },\n { codigo: this.FINMES, nombre: this.DESFINMES },\n { codigo: this.LIBRE, nombre: this.DESLIBRE },\n ]\n\n // Constantes Dropdawn Tipo\n\n MARCADOR = 'M';\n MARCADORREGISTRO = 'MR';\n MARCADORTABLA = 'TB';\n MARCADORIMAGEN = 'MI';\n IMAGEN = 'IM';\n MARCADORQR = 'QR';\n\n\n DESMARCADOR = 'Marcador';\n DESMARCADORREGISTRO = 'Marcador Registro';\n DESMARCADORTABLA = 'Tabla';\n DESIMAGEN = 'imagen'\n DESMARCADORIMAGEN = 'Marcador Imagen';\n DESMARCADORQR = \"Imagen QR\";\n\n\n MARCADORES = [\n { codigo: this.IMAGEN, nombre: this.DESIMAGEN },\n { codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\n { codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n { codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\n { codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n { codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n ]\n\n\n\n // Constantes dropdown TipoCampo\n\n CARGO = 'cargo';\n CARGO_MULTI = 'cargo_multiples';\n CCATEGORIA = 'categoria';\n CIUDAD = 'ciudad';\n CLASIFICACION = 'clasificacion';\n EDAD = 'edad';\n EMPRESA = 'empresa';\n ESTADO_CIVIL = 'estadocivil';\n ESTADOLABORAL = 'estadoeml';\n GENERO = 'sexo';\n GRUPO = 'grupoempleado';\n NIVEL_DEL_CARGO = 'nivelcargo';\n RANGO_DE_SUELDO = 'sueldobasico';\n ROLCLASIFICACION = 'rolclasificacion';\n TIEMPO_DE_ANTIGUEDAD_CARGO = 'antiguedadcargoact';\n TIEMPO_DE_ANTIGUEDAD = 'antiguedad';\n TIPO_DE_PERIODO = 'tipoperiodo';\n TIPO_DE_VINCULACION = 'vinculacion';\n UNIDAD = 'unidad';\n UNIDAD_MULTI = 'unidad_multiple';\n UNIDAD_RELACION = 'unidadrelacion';\n\n\n\n DESCARGO = 'Cargo';\n DESCARGO_MULTI = 'Cargos Multiples';\n DESCATEGORIA = 'Categoria';\n DESCIUDAD = 'Ciudad';\n DESCLASIFICACION = 'Clasificacion';\n DESEDAD = 'Edad';\n DESEMPRESA = 'Empresa';\n DESESTADO_CIVIL = 'Estado Civil';\n DESESTADOLABORAL = 'Estado Laboral';\n DESGENERO = 'Genero';\n DESGRUPO = 'Grupo Empleado';\n DESNIVEL_DEL_CARGO = 'Nivel del Cargo';\n DESRANGO_DE_SUELDO = 'Rango de Sueldo';\n DESROLCLASIFICACION = 'Rol Clasificacion';\n DESTIEMPO_DE_ANTIGUEDAD_CARGO = 'Tiempo de Antiguedad Cargo Actual';\n DESTIEMPO_DE_ANTIGUEDAD = 'Tiempo de Antiguedad Empresa';\n DESTIPO_DE_PERIODO = 'Tipo de Periodo';\n DESTIPO_DE_VINCULACION = 'Tipo de Vinculacion';\n DESUNIDAD = 'Unidad Organizacional';\n DESUNIDAD_MULTI = 'Unidades Organizacionales Multiples';\n DESUNIDAD_RELACION = 'Unidades Organizacionales y las que dependen';\n\n\n TIPOCAMPO = [\n { codigo: this.CARGO, nombre: this.DESCARGO },\n { codigo: this.CARGO_MULTI, nombre: this.DESCARGO_MULTI },\n { codigo: this.CCATEGORIA, nombre: this.DESCATEGORIA },\n { codigo: this.CIUDAD, nombre: this.DESCIUDAD },\n { codigo: this.CLASIFICACION, nombre: this.DESCLASIFICACION },\n { codigo: this.EDAD, nombre: this.DESEDAD },\n { codigo: this.EMPRESA, nombre: this.DESEMPRESA },\n { codigo: this.ESTADO_CIVIL, nombre: this.DESESTADO_CIVIL },\n { codigo: this.ESTADOLABORAL, nombre: this.DESESTADOLABORAL },\n { codigo: this.GENERO, nombre: this.DESGENERO },\n { codigo: this.GRUPO, nombre: this.DESGRUPO },\n { codigo: this.NIVEL_DEL_CARGO, nombre: this.DESNIVEL_DEL_CARGO },\n { codigo: this.RANGO_DE_SUELDO, nombre: this.DESRANGO_DE_SUELDO },\n { codigo: this.ROLCLASIFICACION, nombre: this.DESROLCLASIFICACION },\n { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGO, nombre: this.DESTIEMPO_DE_ANTIGUEDAD_CARGO },\n { codigo: this.TIEMPO_DE_ANTIGUEDAD, nombre: this.DESTIEMPO_DE_ANTIGUEDAD },\n { codigo: this.TIPO_DE_PERIODO, nombre: this.DESTIPO_DE_PERIODO },\n { codigo: this.TIPO_DE_VINCULACION, nombre: this.DESTIPO_DE_VINCULACION },\n { codigo: this.UNIDAD, nombre: this.DESUNIDAD },\n { codigo: this.UNIDAD_MULTI, nombre: this.DESUNIDAD_MULTI },\n { codigo: this.UNIDAD_RELACION, nombre: this.DESUNIDAD_RELACION },\n\n\n ]\n\n // Constantes dropdown EjecucionReporte\n\n PERMITE_EJECUTAR = 'E';\n PERMITE_MODIFICAR = 'M';\n\n PERMITE_EJECUTAR_DESC = 'Permite Ejecutar';\n PERMITE_MODIFICAR_DESC = 'Permite Modificar/Ejecutar';\n\n\n\n TIPOEJECUCIONREPORTE = [\n { codigo: this.PERMITE_EJECUTAR, nombre: this.PERMITE_EJECUTAR_DESC },\n { codigo: this.PERMITE_MODIFICAR, nombre: this.PERMITE_MODIFICAR_DESC },\n ]\n\n // Constantes dropdown DiseñoReporte\n\n NO_ACTUALIZA = 'N';\n PERMITE_ACTUALIZAR = 'S';\n\n NO_ACTUALIZA_DESC = 'No Actualiza';\n PERMITE_ACTUALIZAR_DESC = 'Permite Actualizar';\n\n\n\n DISENOREPORTE = [\n { codigo: this.NO_ACTUALIZA, nombre: this.NO_ACTUALIZA_DESC },\n { codigo: this.PERMITE_ACTUALIZAR, nombre: this.PERMITE_ACTUALIZAR_DESC },\n ]\n\n // Constantes PERMISOS LOGIN\n\n\n PERMISO_POR_LLAVE_TABLA = \"OT\";\n PERMISO_PERIODO = 'PE';\n PERMISO_SITIO = 'ST';\n PERMISO_DISENO_REPORTE = 'DR';\n PERMISO_AUSENTISMOS = \"TA\";\n PERMISO_NOVEDAD = \"TN\";\n PERMISO_EJECUCION_REPORTE = \"RF\"\n PERMISO_FUENTE_REPORTE = \"FD\";\n PERMISO_IMPORTAR_FUENTE = \"IF\";\n PERMISO_FACTOR_PUNTAJE = \"FP\";\n PERMISO_USUARIO_FORMATO = \"UF\";\n\n PERMISO_PERIODO_DESC = 'Periodo';\n PERMISO_SITIO_DESC = 'Sitio';\n PERMISO_DISENO_REPORTE_DESC = 'Diseño Reporte';\n PERMISO_AUSENTISMOS_DESC = \"Ausentismo\";\n PERMISO_NOVEDAD_DESC = \"Novedad\";\n PERMISO_EJECUCION_REPORTE_DESC = \"Ejecucion Reporte\";\n PERMISO_FUENTE_REPORTE_DESC = \"Fuente Reporte\";\n PERMISO_IMPORTAR_FUENTE_DESC = \"Importar Fuente\";\n PERMISO_FACTOR_PUNTAJE_DESC = \"Factor Puntaje\";\n PERMISO_USUARIO_FORMATO_DESC = \"Usuario Formato\";\n\n LISTAPERMISOSLOGIN = [\n { codigo: this.PERMISO_PERIODO, nombre: this.PERMISO_PERIODO_DESC },\n { codigo: this.PERMISO_SITIO, nombre: this.PERMISO_SITIO_DESC },\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC },\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC },\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC },\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC },\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC },\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC },\n { codigo: this.PERMISO_USUARIO_FORMATO, nombre: this.PERMISO_USUARIO_FORMATO_DESC },\n\n\n ]\n\n // Constantes PERMISOS ROL\n\n\n PERMISO_TIPO_SOLICITUD = \"TV\";\n PERMISO_REPORTE_GENERADO = 'RG';\n PERMISO_ZONA_ECONOMICA = 'ZO';\n PERMISO_UNIDAD = 'UN';\n PERMISO_SECCION_HOJA_VIDA = \"HV\";\n PERMISO_ETAPA = \"ET\";\n PERMISO_TIPO_PLANTA = \"TP\"\n PERMISO_DESCRIPCION_CARGO = \"DC\";\n PERMISO_GESTION_HERRAMIENTAS = \"GH\";\n PERMISO_TIPO_SERVICIO = \"TS\";\n\n PERMISO_TIPO_SOLICITUD_DESC = 'Tipo Solicitud';\n PERMISO_REPORTE_GENERADO_DESC = 'Reporte Generado';\n PERMISO_ZONA_ECONOMICA_DESC = 'Zona Economic';\n PERMISO_UNIDAD_DESC = \"PERMISO_UNIDAD_DESC\";\n PERMISO_SECCION_HOJA_VIDA_DESC = \"Seccion Hoja Vida\";\n PERMISO_ETAPA_DESC = \"Etapa\";\n PERMISO_TIPO_PLANTA_DESC = \"Tipo Planta\";\n PERMISO_DESCRIPCION_CARGO_DESC = \"Descripcion Cargo\";\n PERMISO_GESTION_HERRAMIENTAS_DESC = \"Gestion Herramientas\";\n PERMISO_TIPO_SERVICIO_DESC = \"Tipo Servicio\";\n\n LISTAPERMISOSROL = [\n { codigo: this.PERMISO_TIPO_SOLICITUD, nombre: this.PERMISO_TIPO_SOLICITUD_DESC },\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC },\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC },\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC },\n { codigo: this.PERMISO_REPORTE_GENERADO, nombre: this.PERMISO_REPORTE_GENERADO_DESC },\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\n { codigo: this.PERMISO_ZONA_ECONOMICA, nombre: this.PERMISO_ZONA_ECONOMICA_DESC },\n { codigo: this.PERMISO_UNIDAD, nombre: this.PERMISO_UNIDAD_DESC },\n { codigo: this.PERMISO_SECCION_HOJA_VIDA, nombre: this.PERMISO_SECCION_HOJA_VIDA_DESC },\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC },\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC },\n { codigo: this.PERMISO_ETAPA, nombre: this.PERMISO_ETAPA_DESC },\n { codigo: this.PERMISO_TIPO_PLANTA, nombre: this.PERMISO_TIPO_PLANTA_DESC },\n { codigo: this.PERMISO_DESCRIPCION_CARGO, nombre: this.PERMISO_DESCRIPCION_CARGO_DESC },\n { codigo: this.PERMISO_GESTION_HERRAMIENTAS, nombre: this.PERMISO_GESTION_HERRAMIENTAS_DESC },\n { codigo: this.PERMISO_TIPO_SERVICIO, nombre: this.PERMISO_TIPO_SERVICIO_DESC },\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC },\n\n\n\n\n ]\n\n\n\n // Constantes dropdown Genero\n MASCULINO = 'M';\n FEMENINO = 'F';\n TRANSGENERO = 'T';\n\n MASCULINO_DESC = 'MASCULINO';\n FEMENINO_DESC = 'FEMENINO';\n TRANSGENERO_DESC = 'TRANSGÉNERO';\n\n SGENERO = [\n { codigo: this.MASCULINO, nombre: this.MASCULINO_DESC },\n { codigo: this.FEMENINO, nombre: this.FEMENINO_DESC },\n { codigo: this.TRANSGENERO, nombre: this.TRANSGENERO_DESC },\n\n\n ]\n\n // Constantes Recurso Grafica\n\n SERIE = 'S';\n CATEGORIA = 'C';\n VALOR = 'V';\n\n SERIE_STRING = 'Serie';\n CATEGORIA_STRING = 'Categoria';\n VALOR_STRING = 'Valor';\n\n Rgrafica = [\n { codigo: this.SERIE, nombre: this.SERIE_STRING },\n { codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\n { codigo: this.VALOR, nombre: this.VALOR_STRING },\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n ]\n\n\n //Constantes Operador\n\n igual = '=';\n mayorQue = '>';\n mayorIgual = '>=';\n menor = '<';\n menorIgual = '<=';\n diferente = '<>';\n inclusion = 'IN';\n como = 'like'\n\n desIgual = 'igual';\n desMayorQue = 'mayor que';\n desMayorIgual = 'mayor o igual';\n desMenor = 'menor';\n desMenorIgual = 'menor o igual';\n desDiferente = 'diferente';\n desInclusion = 'inclusi\\u00F3n';\n desComo = 'como'\n\n\n Roperador = [\n { codigo: this.igual, nombre: this.desIgual },\n { codigo: this.mayorQue, nombre: this.desMayorQue },\n { codigo: this.mayorIgual, nombre: this.desMayorIgual },\n { codigo: this.menor, nombre: this.desMenor },\n { codigo: this.menorIgual, nombre: this.desMenorIgual },\n { codigo: this.diferente, nombre: this.desDiferente },\n { codigo: this.inclusion, nombre: this.desInclusion },\n { codigo: this.como, nombre: this.desComo },\n ]\n\n\n //COntantes copiar permisos\n COPIAR_DIFERENCIA = 'CD';\n COPIAR_TODO = 'CT';\n\n COPIAR_DIFERENCIA_DESC = 'Copiar Diferencias';\n COPIAR_TODO_DESC = '\"Borrar Permisos Actuales y Copiar Todo';\n\n LISTA_TIPO_COPIAS = [\n { codigo: this.COPIAR_DIFERENCIA, nombre: this.COPIAR_DIFERENCIA_DESC },\n { codigo: this.COPIAR_TODO, nombre: this.COPIAR_TODO_DESC },\n\n ]\n\n\n\n //Constantes Tipo\n\n DATO = 'D';\n CAMPO = 'C';\n\n CAMPO_STRING = 'Campo';\n DATO_STRING = 'Dato';\n\n ListaTipo = [\n { codigo: this.DATO, nombre: this.DATO_STRING },\n { codigo: this.CAMPO, nombre: this.CAMPO_STRING },\n\n ]\n\n // constantes tipo archivo\n ARCHIVO_TXT = 'txt';\n ARCHIVO_CSV = 'csv';\n\n ARCHIVO_TXT_DESC = '.TXT';\n ARCHIVO_CSV_DESC = '.CSV';\n\n ListaTipoArchivo = [\n { codigo: this.ARCHIVO_TXT, nombre: this.ARCHIVO_TXT_DESC },\n { codigo: this.ARCHIVO_CSV, nombre: this.ARCHIVO_CSV_DESC },\n\n ]\n\n //constantes Encriptacion\n COLSANITAS_DAVIVIENDA = 'CDAD'\n COLSANITAS_BANCO_BOGOTA = 'CBBD'\n UNION_SOLUCIONES = 'USOL'\n PGP = 'UPGP'\n BPGP = 'BPGP'\n CV_DAVIVIENDA = 'CV_DAVIVIENDA'\n CV_CITIBANK = 'CVCT'\n\n\n COLSANITAS_DAVIVIENDA_DESC = 'Colsanitas Davivienda'\n COLSANITAS_BANCO_BOGOTA_DESC = 'Colsanitas Banco de Bogota'\n UNION_SOLUCIONES_DESC = 'Modo Unión Soluciones'\n PGP_DESC = 'PGP'\n BPGP_DESC = 'PGP Binario'\n CV_DAVIVIENDA_DESC = 'Crypto Vault Davivienda'\n CV_CITIBANK_DESC = 'Crypto Vault CitiBank'\n\n\n\n\n LISTADO_ENCRIPTACION = [\n { codigo: this.COLSANITAS_DAVIVIENDA, nombre: this.COLSANITAS_DAVIVIENDA_DESC },\n { codigo: this.COLSANITAS_BANCO_BOGOTA, nombre: this.COLSANITAS_BANCO_BOGOTA_DESC },\n { codigo: this.UNION_SOLUCIONES, nombre: this.UNION_SOLUCIONES_DESC },\n { codigo: this.PGP, nombre: this.PGP_DESC },\n { codigo: this.BPGP, nombre: this.BPGP_DESC },\n { codigo: this.CV_DAVIVIENDA, nombre: this.CV_DAVIVIENDA_DESC },\n { codigo: this.CV_CITIBANK, nombre: this.CV_CITIBANK_DESC },\n\n\n ]\n\n //constantes para codigoInterfaz\n\n SIS = 'SIS'\n SOC = 'SOC'\n SOT = 'SOT'\n DOT = 'DOT'\n DPR = 'DPR'\n EBS = 'EBS'\n EBA = 'EBA'\n SAP = 'SAP'\n CAR = 'CAR'\n SII = 'SII'\n SIG = 'SIG'\n OAT = 'OAT'\n SUR = 'SUR'\n UVIN = 'UVIN'\n SSIN = 'SSIN'\n SSAC = 'SSAC'\n FIJO = 'FIJO'\n\n LISTADO_TIPOCONTABLE = [\n { codigo: this.SIS, nombre: this.SIS },\n { codigo: this.SOC, nombre: this.SOC },\n { codigo: this.SOT, nombre: this.SOT },\n { codigo: this.DOT, nombre: this.DOT },\n { codigo: this.DPR, nombre: this.DPR },\n { codigo: this.EBS, nombre: this.EBS },\n { codigo: this.EBA, nombre: this.EBA },\n { codigo: this.SAP, nombre: this.SAP },\n { codigo: this.CAR, nombre: this.CAR },\n { codigo: this.SII, nombre: this.SII },\n { codigo: this.SIG, nombre: this.SIG },\n { codigo: this.OAT, nombre: this.OAT },\n { codigo: this.SUR, nombre: this.SUR },\n { codigo: this.UVIN, nombre: this.UVIN },\n { codigo: this.SSIN, nombre: this.SSIN },\n { codigo: this.SSAC, nombre: this.SSAC },\n { codigo: this.FIJO, nombre: this.FIJO },\n ]\n\n\n //Mapa con las lineas/grupos a los que se puede asociar un campo de interfaz externa\n\n ENCABEZADO_N = 'N'\n ENCABEZADO = 'E'\n DETALLE = 'D'\n FINAL = 'F'\n FINAL2 = 'I'\n\n ENCABEZADODESC_N = 'Encabezado 2'\n ENCABEZADODESC = 'Encabezado'\n DETALLEDESC = 'Detalle'\n FINALDESC = 'Final'\n FINAL2DES = 'Final 2'\n\n LISTADO_LINEA = [\n { codigo: this.ENCABEZADO_N, nombre: this.ENCABEZADODESC_N },\n { codigo: this.ENCABEZADO, nombre: this.ENCABEZADODESC },\n { codigo: this.DETALLE, nombre: this.DETALLEDESC },\n { codigo: this.FINAL, nombre: this.FINALDESC },\n { codigo: this.FINAL2, nombre: this.FINAL2DES },\n ]\n //Tipo de campo\n CONSTANTE = 'C'\n VARIABLE = 'V'\n\n\n CONSTANTEDESC = 'Constante'\n VARIABLEDESC = 'Variable'\n\n\n LISTADO_TIPOCAMPOS = [\n { codigo: this.CONSTANTE, nombre: this.CONSTANTEDESC },\n { codigo: this.VARIABLE, nombre: this.VARIABLEDESC },\n\n ]\n\n //Lista Naturaleza\n CAMBIARNATURALEZA = 'Cambiar Naturaleza'\n NOAFECTA = 'No Afecta'\n\n LISTADO_NATURALEZA = [\n { codigo: this.SI, nombre: this.CAMBIARNATURALEZA },\n { codigo: this.NO, nombre: this.NOAFECTA },\n ]\n\n //Lista Generar Detalla\n\n PEDIR = 'P'\n AMBOS = 'A'\n TRANSFORMADO = 'T'\n\n\n NOGENERAR = 'No generar'\n SIGENERAR = 'Generar Movimiento Detalle'\n PEDIRDESCRIPCION = 'Solicitar Movimiento Detalle'\n TRANSFORMADODESCRIPCION = 'Generar Movimiento Transformado'\n AMBOSDESCRIPCION = 'Generar Movimiento Detalle/Transformado'\n\n\n MAPAGENERARDETALLE = [\n { codigo: this.NO, nombre: this.NOGENERAR },\n { codigo: this.PEDIR, nombre: this.PEDIRDESCRIPCION },\n { codigo: this.SI, nombre: this.SIGENERAR },\n { codigo: this.TRANSFORMADO, nombre: this.TRANSFORMADODESCRIPCION },\n { codigo: this.AMBOS, nombre: this.AMBOSDESCRIPCION },\n\n ]\n\n\n //lista generar detalle\n PORLINEA = 'L'\n PORZONA = 'Z'\n\n\n\n NOAPLICA = 'No aplica'\n PORLINEADESC = 'Generacion Por Linea de costo'\n PORZONADESC = '\"Proponer Por Zona Economica'\n\n\n\n MAPAGENERARCOMPROBANTEPOR = [\n { codigo: this.NO, nombre: this.NOAPLICA },\n { codigo: this.PORLINEA, nombre: this.PORLINEADESC },\n { codigo: this.PORZONA, nombre: this.PORZONADESC },\n\n\n ]\n\n\n\n SUMA = 'SU';\n DES_SUMA = 'Suma';\n PROMEDIO = 'PR';\n DES_PROMEDIO = 'Promedio';\n CONTAR = 'CN';\n DES_CONTAR = 'Contar';\n CONTAR_DISTINTO = 'CD';\n DES_CONTAR_DISTINTO = 'ContarDistinto';\n MAX = 'MX';\n DES_MAX = 'Maximo';\n MIN = 'MN';\n DES_MIN = 'Minimo';\n\n MAPAOPERACIONES = [\n { codigo: this.SUMA, nombre: this.DES_SUMA },\n { codigo: this.PROMEDIO, nombre: this.DES_PROMEDIO },\n { codigo: this.CONTAR, nombre: this.DES_CONTAR },\n { codigo: this.CONTAR_DISTINTO, nombre: this.DES_CONTAR_DISTINTO },\n ]\n\n NUMERO1 = \"###0.00;-###0.00\";\n NUMERO2 = \"###0.00;(###0.00)\";\n NUMERO3 = \"###0.00;(-###0.00)\";\n NUMERO4 = \"#,##0.00;-#,##0.00\";\n NUMERO5 = \"#,##0.00;(#,##0.00)\";\n NUMERO6 = \"#,##0.00;(-#,##0.00)\";\n NUMERO7 = \"#,###;(-#,###)\";\n NUMERO8 = \"###;(-###)\";\n\n NUMERO1DES = \"###0.00;-###0.00\";\n NUMERO2DES = \"###0.00;(###0.00)\";\n NUMERO3DES = \"###0.00;(-###0.00)\";\n NUMERO4DES = \"#,##0.00;-#,##0.00\";\n NUMERO5DES = \"#,##0.00;(#,##0.00)\";\n NUMERO6DES = \"#,##0.00;(-#,##0.00)\";\n NUMERO7DES = \"#,###;(-#,###)\";\n NUMERO8DES = \"###;(-###)\";\n\n MAPAFORMATONUMERO = [\n { codigo: this.NUMERO1, nombre: this.NUMERO1DES },\n { codigo: this.NUMERO2, nombre: this.NUMERO2DES },\n { codigo: this.NUMERO3, nombre: this.NUMERO3DES },\n { codigo: this.NUMERO4, nombre: this.NUMERO4DES },\n { codigo: this.NUMERO5, nombre: this.NUMERO5DES },\n { codigo: this.NUMERO6, nombre: this.NUMERO6DES },\n { codigo: this.NUMERO7, nombre: this.NUMERO7DES },\n { codigo: this.NUMERO8, nombre: this.NUMERO8DES },\n ]\n\n VIGENTE_V = \"V\";\n VIGENTE = 'S';\n NOVIGENTE = 'N';\n DESVIGENTE = \"Vigente\";\n DESNOVIGENTE = \"No Vigente\";\n\n TIPOS_VIGENTE_V = [\n { codigo: this.VIGENTE_V, nombre: this.DESVIGENTE },\n { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n ]\n\n ///Constantes De Mensajes\n MENSAJE_INGRESAR = 'Se ingreso el registro';\n LETRA_A = 'A';\n LETRA_O = 'O';\n LETRA_F = 'F';\n MENSAJE_ADICIONAR = 'Se adicion\\u00F3 el registro';\n MENSAJE_GUARDAR = 'Se cre\\u00F3 el registro exitosamente';\n MENSAJE_ACTUALIZAR = 'Se actualiz\\u00F3 el registro exitosamente';\n MENSAJE_ACTUALIZAR_VARIOS = 'Se actualizaron los registros';\n MENSAJE_ACTUALIZAR_NO = 'Registro NO Actualizado';\n MENSAJE_ELIMINAR_VARIOS_CONFIRMAR = '¿Desea eliminar los registros seleccionados?';\n MENSAJE_ELIMINAR_CONFIRMAR = '¿Desea eliminar el registro?';\n MENSAJE_ELIMINAR = 'Se elimin\\u00F3 el registro exitosamente';\n MENSAJE_ELIMINAR_VARIOS = 'Se eliminarion correctamente los registros';\n MENSAJE_ELIMINAR_NO = 'No se pudo eliminar el registro';\n MENSAJE_EMVIARCORREO_NO = 'No se pudo enviar el correo';\n MENSAJE_ELIMINAR_NO_ASOCIADO = ' No se puede eliminar/crear el registro, tiene elementos asociados';\n MENSAJE_TERMINO_SATISFACTORIO = 'Proceso termin\\u00F3 satisfactoriamente';\n MENSAJE_CANCELAR = 'Registro Cancelado';\n MENSAJE_GUARDAR_NO = 'El registro no se pudo guardar por=';\n MENSAJE_YA_EXISTE = 'El registro ya existe';\n MENSAJE_ORDEN_REPETIDO = 'El orden no se puede repetir';\n MENSAJE_NO_EXISTE = 'No existen registros ';\n MENSAJE_GENERAR_REPORTE = 'Generando informacion para el reporte';\n MENSAJE_FIN_GENERAR_REPORTE = 'Se finalizo la generacion de informacion para reporte';\n MENSAJE_INCOMPLETA = 'Información incompleta.';\n MENSAJE_DUPLICADA = 'Existe más de un registro.';\n ESTADO_ACTIVO = 'A';\n MENSAJE_ERROR_SERVICIO = 'Error en el servicio; Por favor intente mas tarde';\n MENSAJE_CAMPOS_OBLIGATORIOS = 'Faltan campos obligatorios';\n SUBCONTENIDOINICIO = '${CONTENIDO=';\n SUBCONTENIDOFIN = '}';\n MENSAJE_PUNTO_PROCESO_REPETIDO = \"El punto de proceso no se puede repetir\";\n MENSAJE_PARAMETRO_REPETIDO = \"El parametro no se puede repetir\";\n\n /* --------------------------- imagenes X aplicacion ----------------------- */\n CODIGO_SARA = '1';\n CODIGO_SEGURIDAD = '5';\n CODIGO_SAM = '13';\n CODIGO_SAMANTA = '4';\n CODIGO_APS = '77';\n LOGO_SARA = 'assets/images/logo-sara.png';\n LOGO_SEGURIDAD = 'assets/images/logo-seguridad.png';\n LOGO_SAM = 'assets/images/logo-sam.png';\n LOGO_SAMAMNTA = 'assets/images/logo-samanta.png';\n LOGO_APS = 'assets/images/logo-aps.png';\n\n LOGO_DESCOMPRIMIDO_SARA = 'assets/images/logo-sara-descomprimido.png';\n LOGO_DESCOMPRIMIDO_SAM = 'assets/images/logo-sam-descomprimido.png';\n LOGO_DESCOMPRIMIDO_SAMANTA = 'assets/images/logo-samanta-descomprimido.png';\n LOGO_DESCOMPRIMIDO_APS = 'assets/images/logo-aps-descomprimido.png';\n LOGO_DESCOMPRIMIDO_SEGURIDAD = 'assets/images/logo-seguridad-descomprimido.png';\n\n MAPALOGO = [\n { codigo: this.CODIGO_SARA, nombre: this.LOGO_SARA },\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGO_SEGURIDAD },\n { codigo: this.CODIGO_SAM, nombre: this.LOGO_SAM },\n { codigo: this.CODIGO_APS, nombre: this.LOGO_APS },\n { codigo: this.CODIGO_SAMANTA, nombre: this.LOGO_SAMAMNTA },\n ]\n MAPALOGODESPLEGADO = [\n { codigo: this.CODIGO_SARA, nombre: this.LOGO_DESCOMPRIMIDO_SARA },\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGO_DESCOMPRIMIDO_SEGURIDAD },\n { codigo: this.CODIGO_SAM, nombre: this.LOGO_DESCOMPRIMIDO_SAM },\n { codigo: this.CODIGO_APS, nombre: this.LOGO_DESCOMPRIMIDO_APS },\n { codigo: this.CODIGO_SAMANTA, nombre: this.LOGO_DESCOMPRIMIDO_SAMANTA },\n ]\n\n\n //LOGOS INICIO LOGIN\n LOGOICONOSARA = 'assets/images/logo-icono-sara.png';\n LOGOICONOSAM = 'assets/images/logo-icono-sam.png';\n LOGOICONOAPS = 'assets/images/logo-icono-aps.png';\n LOGOICONOSEG = 'assets/images/logo-icono-seguridad.png';\n\n\n\n MAPALOGOSICONOS = [\n { codigo: this.CODIGO_SARA, nombre: this.LOGOICONOSARA },\n { codigo: this.CODIGO_SAM, nombre: this.LOGOICONOSAM },\n { codigo: this.CODIGO_APS, nombre: this.LOGOICONOAPS },\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGOICONOSEG },\n ]\n\n transform(value: any, ...args: any): any {\n let result = value;\n if (args[0] == 'listacampos') { this.LISTADO_TIPOCAMPOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listalinea') { this.LISTADO_LINEA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaSiNo') { this.LISTA_SINO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaEstadoSn') { this.LISTA_ESTADO_SN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoNaturaleza') { this.LISTADO_NATURALEZA_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoFormula') { this.LISTADO_FORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoEstadoConcepto') { this.LISTADO_ESTADO_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoTipoFormula') { this.LISTA_TIPOFORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaRecursoGrafico') { this.Rgrafica.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoOPerador') { this.Roperador.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listadoTipo') { this.ListaTipo.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'orientacion') { this.ORIENTACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'mapaOperaciones') { this.MAPAOPERACIONES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'mapaFormatoNumero') { this.MAPAFORMATONUMERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listagenero') { this.SGENERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'mapaLogos') { this.MAPALOGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n return result;\n }\n}\n\n","import { AfterViewInit, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthService } from '../core/servicios/auth.service';\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\nimport { AppMenuProfileComponent } from './app.menuprofile.component';\nimport { LayoutService } from './service/app.layout.service';\nimport { UtilsService } from '../core/servicios/utils.service';\nimport { MenuService } from './app.menu.service';\nimport { AppMenuComponent } from './app.menu.component';\nimport { CommonModule } from '@angular/common';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'app-sidebar',\n imports: [AppMenuProfileComponent, AppMenuComponent, CommonModule, InputSwitchModule, AutoCompleteModule, ButtonModule],\n standalone: true,\n templateUrl: './app.sidebar.component.html'\n})\nexport class AppSidebarComponent implements OnDestroy {\n\n timeout: any = null;\n\n @ViewChild(AppMenuProfileComponent) menuProfile!: AppMenuProfileComponent;\n\n @ViewChild('menuContainer') menuContainer!: ElementRef;\n logoComprimido\n logoDescomprimido\n lock:boolean;\n url = window.location.href;\n \n constructor(public utilsService : UtilsService,public layoutService: LayoutService, public el: ElementRef, public generalPipe : GeneralPipe, private activatedRoute: ActivatedRoute, private authService: AuthService, private menuService: MenuService) {\n this.activatedRoute.data.subscribe((v) => {\n let resultadoComprimido = this.generalPipe.MAPALOGO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\n this.logoComprimido = resultadoComprimido[0].nombre;\n let resultadoDescomprimido = this.generalPipe.MAPALOGODESPLEGADO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\n this.logoDescomprimido = resultadoDescomprimido[0].nombre;\n })\n }\n\n resetOverlay() {\n if(this.layoutService.state.overlayMenuActive) {\n this.layoutService.state.overlayMenuActive = false;\n }\n }\n\n get menuProfilePosition(): string {\n return this.layoutService.config.menuProfilePosition;\n }\n\n onMouseEnter() {\n if (!this.layoutService.state.anchored) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.layoutService.state.sidebarActive = true;\n }\n }\n\n onMouseLeave() {\n if (!this.layoutService.state.anchored) {\n if (!this.timeout) {\n this.timeout = setTimeout(() => this.layoutService.state.sidebarActive = false , 300);\n //Al desenfocarse el menu lateral, se cierran los submenu\n this.menuService.reset()\n }\n }\n }\n\n anchor() {\n this.lock = !this.lock;\n this.layoutService.state.anchored = !this.layoutService.state.anchored;\n }\n\n ngOnDestroy() {\n this.resetOverlay();\n }\n\n}\n","<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"layout-sidebar-top\">\n <a [href]=\"utilsService.obtenerBase() + (url.toString().includes('admonPortal') ? '/admonPortal/inicio' : '/inicio') \">\n <!--LOGO DESCOMPRIMIDO-->\n <img style=\"width:142px; margin-top: 5px;\" class=\"layout-sidebar-logo\" src=\"{{logoDescomprimido}}\" />\n <!--LOGO DESCOMPRIMIDO-->\n\n <!-- <svg width=\"167\" height=\"32\" viewBox=\"0 0 167 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"layout-sidebar-logo\" src>\n <path d=\"M76.5469 5.25V20.7812C76.5365 22.3125 76.1979 23.6458 75.5312 24.7812C74.8646 25.9167 73.9219 26.7917 72.7031 27.4062C71.4948 28.0104 70.1042 28.3125 68.5312 28.3125C66.1354 28.3125 64.2135 27.6615 62.7656 26.3594C61.3281 25.0469 60.5833 23.2344 60.5312 20.9219V5.25H62.4375V20.6406C62.4375 22.5573 62.9844 24.0469 64.0781 25.1094C65.1719 26.1615 66.6562 26.6875 68.5312 26.6875C70.4062 26.6875 71.8854 26.1562 72.9688 25.0938C74.0625 24.0312 74.6094 22.5521 74.6094 20.6562V5.25H76.5469Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path d=\"M83.8438 26.375H95.0781V28H81.9062V5.25H83.8438V26.375Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path d=\"M109.906 6.89062H102.109V28H100.188V6.89062H92.4062V5.25H109.906V6.89062Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path d=\"M115.938 28H114.016V5.25H115.938V28Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path d=\"M124.672 5.25L133.062 25.3281L141.484 5.25H144.047V28H142.125V18.0938L142.281 7.9375L133.812 28H132.328L123.891 8.01562L124.047 18.0312V28H122.125V5.25H124.672Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path d=\"M162.375 21.625H152.047L149.703 28H147.688L156.297 5.25H158.125L166.734 28H164.734L162.375 21.625ZM152.641 19.9844H161.766L157.203 7.59375L152.641 19.9844Z\" fill=\"var(--topbar-item-text-color)\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M39.9709 8.57017C39.9112 8.42729 39.7717 8.33484 39.617 8.33484H37.5093L38.657 6.95037C38.752 6.83653 38.7711 6.67837 38.7083 6.54466C38.6455 6.41095 38.5106 6.32537 38.362 6.32537H15.2326L8.67361 0.10518C8.54643 -0.0147766 8.35336 -0.0346421 8.20625 0.0585729L4.52643 2.36221L4.52336 2.36526L4.51953 2.36679L0.17315 5.21978C0.162424 5.22666 0.157061 5.23735 0.147101 5.24576C0.125649 5.26257 0.107261 5.28091 0.0904059 5.30154C0.0750829 5.31987 0.0628245 5.33821 0.0513322 5.35884C0.0390738 5.381 0.0306461 5.40316 0.0229846 5.42684C0.015323 5.45129 0.0107261 5.47574 0.00766152 5.50172C0.00689537 5.51471 0 5.5254 0 5.53916C0 5.55138 0.00536306 5.56055 0.00689537 5.57278C0.00919382 5.59799 0.0145569 5.62168 0.0222184 5.64689C0.0298799 5.6721 0.0383076 5.69579 0.0513322 5.71948C0.0566952 5.72941 0.0574614 5.74011 0.0635906 5.75004C0.0689537 5.75844 0.0789137 5.7615 0.0850429 5.76914C0.111858 5.80352 0.14327 5.83179 0.180046 5.85471C0.193836 5.86312 0.204563 5.87382 0.218353 5.88069C0.268919 5.90514 0.324082 5.92119 0.383842 5.92119H5.61743L6.79883 8.86052L6.80036 8.86281V8.8651L14.4864 27.2292L9.94925 31.3353C9.83203 31.4415 9.79219 31.608 9.84965 31.7555C9.90635 31.903 10.0489 32 10.2067 32H16.7389C16.7895 32 16.8393 31.9893 16.886 31.9702C16.9327 31.9511 16.9749 31.9228 17.0101 31.8877L20.444 28.4502C20.4486 28.4555 20.4501 28.4624 20.4555 28.4678L23.707 31.8808C23.7798 31.958 23.8756 31.9794 23.9867 32C29.8899 31.9671 38.8462 31.9373 39.2676 31.9809C39.3074 31.9939 39.348 32 39.3886 32C39.5197 32 39.6476 31.9335 39.7189 31.8182C39.9403 31.459 39.9387 31.4552 28.6265 20.2603L39.8874 8.98888C39.9977 8.87733 40.0299 8.71305 39.9709 8.57017ZM37.5483 7.08867L36.5163 8.33484H17.3518L16.0379 7.08867H37.5483ZM8.36178 0.862361L16.2409 8.33484H7.41329L5.20447 2.83898L8.36178 0.862361ZM1.66178 5.15636L4.54864 3.2615L5.3102 5.15636H1.66178ZM21.0102 27.9406C21.0002 27.9299 20.9864 27.9253 20.9757 27.9169L23.7201 25.1701V30.7844L21.0102 27.9406ZM38.5045 31.213C37.058 31.1916 33.464 31.1825 24.4862 31.2321V24.6513C24.4862 24.581 24.4617 24.5183 24.4288 24.461L28.0864 20.7997C31.6934 24.3701 36.7998 29.4519 38.5045 31.213ZM16.8722 30.9425L7.72894 9.0989H36.6006C36.6282 9.10501 36.6558 9.11342 36.6834 9.11342C36.7056 9.11342 36.7263 9.10272 36.7485 9.0989H38.6945L16.8722 30.9425Z\" fill=\"var(--topbar-item-text-color)\"/>\n </svg> -->\n\n\n <!-- <svg width=\"41\" height=\"32\" viewBox=\"0 0 41 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"layout-sidebar-logo-slim\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.7209 8.57017C40.6612 8.42729 40.5217 8.33484 40.367 8.33484H38.2593L39.407 6.95037C39.502 6.83653 39.5211 6.67837 39.4583 6.54466C39.3955 6.41095 39.2606 6.32537 39.112 6.32537H15.9826L9.42361 0.10518C9.29643 -0.0147766 9.10336 -0.0346421 8.95625 0.0585729L5.27643 2.36221L5.27336 2.36526L5.26953 2.36679L0.92315 5.21978C0.912424 5.22666 0.907061 5.23735 0.897101 5.24576C0.875649 5.26257 0.857261 5.28091 0.840406 5.30154C0.825083 5.31987 0.812825 5.33821 0.801332 5.35884C0.789074 5.381 0.780646 5.40316 0.772985 5.42684C0.765323 5.45129 0.760726 5.47574 0.757662 5.50172C0.756895 5.51471 0.75 5.5254 0.75 5.53916C0.75 5.55138 0.755363 5.56055 0.756895 5.57278C0.759194 5.59799 0.764557 5.62168 0.772218 5.64689C0.77988 5.6721 0.788308 5.69579 0.801332 5.71948C0.806695 5.72941 0.807461 5.74011 0.813591 5.75004C0.818954 5.75844 0.828914 5.7615 0.835043 5.76914C0.861858 5.80352 0.89327 5.83179 0.930046 5.85471C0.943836 5.86312 0.954563 5.87382 0.968353 5.88069C1.01892 5.90514 1.07408 5.92119 1.13384 5.92119H6.36743L7.54883 8.86052L7.55036 8.86281V8.8651L15.2364 27.2292L10.6993 31.3353C10.582 31.4415 10.5422 31.608 10.5997 31.7555C10.6564 31.903 10.7989 32 10.9567 32H17.4889C17.5395 32 17.5893 31.9893 17.636 31.9702C17.6827 31.9511 17.7249 31.9228 17.7601 31.8877L21.194 28.4502C21.1986 28.4555 21.2001 28.4624 21.2055 28.4678L24.457 31.8808C24.5298 31.958 24.6256 31.9794 24.7367 32C30.6399 31.9671 39.5962 31.9373 40.0176 31.9809C40.0574 31.9939 40.098 32 40.1386 32C40.2697 32 40.3976 31.9335 40.4689 31.8182C40.6903 31.459 40.6887 31.4552 29.3765 20.2603L40.6374 8.98888C40.7477 8.87733 40.7799 8.71305 40.7209 8.57017ZM38.2983 7.08867L37.2663 8.33484H18.1018L16.7879 7.08867H38.2983ZM9.11178 0.862361L16.9909 8.33484H8.16329L5.95447 2.83898L9.11178 0.862361ZM2.41178 5.15636L5.29864 3.2615L6.0602 5.15636H2.41178ZM21.7602 27.9406C21.7502 27.9299 21.7364 27.9253 21.7257 27.9169L24.4701 25.1701V30.7844L21.7602 27.9406ZM39.2545 31.213C37.808 31.1916 34.214 31.1825 25.2362 31.2321V24.6513C25.2362 24.581 25.2117 24.5183 25.1788 24.461L28.8364 20.7997C32.4434 24.3701 37.5498 29.4519 39.2545 31.213ZM17.6222 30.9425L8.47894 9.0989H37.3506C37.3782 9.10501 37.4058 9.11342 37.4334 9.11342C37.4556 9.11342 37.4763 9.10272 37.4985 9.0989H39.4445L17.6222 30.9425Z\" fill=\"var(--topbar-item-text-color)\"/>\n </svg> -->\n\n <!--LOGO COMPRIMIDO-->\n <img style=\"width:55px; margin-right: 4px; margin-top: 4px;\" class=\"layout-sidebar-logo-slim\" src=\"{{logoComprimido}}\" />\n <!--LOGO COMPRIMIDO-->\n\n\n </a>\n <button class=\"layout-sidebar-anchor p-link\" type=\"button\" (click)=\"anchor()\">\n <span [class]=\"lock ? 'pi pi-lock' : 'pi pi-unlock'\"></span>\n </button>\n </div>\n <app-menu-profile #menuProfileStart *ngIf=\"menuProfilePosition === 'start'\"></app-menu-profile> \n <div #menuContainer class=\"layout-menu-container\">\n <app-menu></app-menu>\n </div>\n <!-- Se desactiva el menu del perfil -->\n <app-menu-profile #menuProfileEnd *ngIf=\"menuProfilePosition === 'end'\"></app-menu-profile>\n</div>\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { MegaMenuItem } from 'primeng/api';\nimport { LayoutService } from './service/app.layout.service';\nimport { TareasModel } from '../seguridad/modelos/TareasModel';\nimport { ModulosModel } from '../seguridad/modelos/ModulosModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { StorageService } from '../core/servicios/storage.service';\nimport { MenuService } from '../core/servicios/menu.service';\nimport { AuthService } from '../core/servicios/auth.service';\nimport { CargarControlFuncionalidadService } from '../core/servicios/cargar-control-funcionalidad.service';\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\nimport { UtilsService } from '../core/servicios/utils.service';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { InputSwitchModule } from 'primeng/inputswitch';\n@Component({\n selector: 'app-topbar',\n imports: [CommonModule, AutoCompleteModule, FormsModule, StyleClassModule, InputSwitchModule] , \n standalone: true,\n templateUrl: './app.topbar.component.html'\n})\nexport class AppTopbarComponent implements OnInit, AfterViewInit, OnDestroy {\n //Variables\n\n modulosDisponibles: ModulosModel[] = new Array(); // una matriz de objetos ModulosModel\n modulo: string; // una cadena que indica el módulo seleccionado\n searchClick: boolean = false; // un valor booleano que indica si se ha hecho clic en el botón de búsqueda o no\n tareaSeleccionadas: TareasModel; // un objeto TareasModel que representa la tarea seleccionada\n tareasFiltradas: TareasModel[]; // una matriz de objetos TareasModel que representa las tareas filtradas\n documentClickListener!: () => void;\n topbarItemClick: boolean = false;\n activeTopbarItem: string = '';\n menuClick: boolean = false;\n mobileMenuActive: boolean = false;\n search: boolean = false;\n intervalId: number;\n tareas: TareasModel[]\n empresa: string;\n rol: string;\n conexion: string;\n logoComprimido;\n codigo\n @ViewChild('menuButton') menuButton!: ElementRef; // una referencia al botón del menú\n @ViewChild('mobileMenuButton') mobileMenuButton!: ElementRef; // una referencia al botón del menú móvil\n @ViewChild('searchInput') searchInput!: ElementRef; // una referencia al campo de búsqueda\n @ViewChild('searchInput', { static: false }) autocomplete!: AutoComplete;\n switch: boolean;\n colores: string[] = [\"#f3d9dc\", \"#aed9e0\", \"#c7e7b0\", \"#fdf2ab\", \"#e6d1e1\", \"#f9dbbd\", \"#e4e3e7\", \"#f9d5d3\"];\n color: string ;\n iniciales: string;\n url = window.location.href;\n\n constructor(\n public layoutService: LayoutService,\n public el: ElementRef,\n private activatedRoute: ActivatedRoute,\n private storage: StorageService,\n private router: Router,\n private renderer: Renderer2,\n private menuService: MenuService,\n private authService: AuthService,\n private controlFuncionalidad: CargarControlFuncionalidadService,\n public generalPipe : GeneralPipe,\n private storageService: StorageService,\n public utilsService: UtilsService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.codigo = this.authService.getTokenKey('aplicacion')\n let resultadoComprimido = this.generalPipe.MAPALOGO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\n this.logoComprimido = resultadoComprimido[0]?.nombre != null ? resultadoComprimido[0]?.nombre : this.generalPipe.LOGO_SARA;\n\n }\n\n calcularIniciales() {\n let colorUsuario = this.storageService.getItem('colorUsuario')\n if (colorUsuario) {\n this.color = colorUsuario;\n } else {\n const indice: number = Math.floor(Math.random() * this.colores.length);\n this.color = this.colores[indice];\n this.storageService.setItem('colorUsuario', this.color);\n }\n var nombreUsuario = this.authService.getTokenKey('nombreUsuario');\n var cantidadPalabras: number = this.contarPalabras(nombreUsuario);\n if (cantidadPalabras == 0 || cantidadPalabras == undefined || cantidadPalabras == null) {\n this.iniciales = 'US'\n } else if (cantidadPalabras == 1) {\n this.iniciales = this.obtenerInicial(nombreUsuario);\n } else {\n this.iniciales = this.obtenerInicial(this.obtenerPalabra(nombreUsuario, cantidadPalabras-1)) + \n this.obtenerInicial(this.obtenerPalabra(nombreUsuario, cantidadPalabras)) \n }\n }\n\n obtenerPalabra(frase: string, numeroPalabra: number): string {\n const palabras = frase.split(/\\s+/);\n if (numeroPalabra < 1 || numeroPalabra > palabras.length) {\n return null;\n }\n const indicePalabra = numeroPalabra - 1;\n return palabras[indicePalabra];\n }\n\n obtenerInicial(palabra: string): string {\n if (palabra.length === 0) {\n return '';\n }\n const inicial = palabra.charAt(0).toUpperCase();\n return inicial;\n }\n\n contarPalabras(texto: string): number {\n if (texto == null || texto == undefined) {\n return 0;\n }\n texto = texto.trim();\n const palabras = texto.split(/\\s+/);\n return palabras.length;\n }\n\n ngOnDestroy(): void {\n clearInterval(this.intervalId);\n }\n ngAfterViewInit(): void {\n this.documentClickListener = this.renderer.listen('body', 'click', () => {\n if (!this.topbarItemClick) {\n this.activeTopbarItem = '';\n }\n\n if (!this.menuClick) {\n if (this.mobileMenuActive) {\n this.mobileMenuActive = false;\n }\n }\n\n if (!this.searchClick) {\n this.search = false;\n }\n\n this.searchClick = false;\n this.topbarItemClick = false;\n this.menuClick = false;\n this.modulo = this.storage.getItem('moduloSeleccionado')\n });\n\n this.menuService.loadTareas().subscribe(() => {\n setTimeout(() => {\n this.menuService.setTareasDelModulo(this.modulo);\n });\n });\n\n // Cada 5 minutos verifica que el token no haya expirado\n this.intervalId = window.setInterval(() => {\n if (!this.authService.isTokenValid()) {\n this.authService.deleteToken();\n if (window.location.href.toString().includes('admonPortal')) {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/timeout');\n } else {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/timeout');\n }\n }\n }, 300_000);\n }\n\n ngOnInit(): void {\n let tema = this.storageService.getItem('tema');\n this.switch = tema == 'temaOscuro' ? true : false;\n if (tema) {\n this.cambiarTema();\n } else {\n this.switch = false;\n }\n this.calcularIniciales();\n this.empresa = this.authService.getTokenKey('numeroEmpresa') + ' - ' + this.authService.getTokenKey('nombreEmpresa')\n this.rol = this.authService.getTokenKey('nombreRol')\n this.conexion = this.authService.getTokenKey('nombreConexion')\n this.modulosDisponibles = JSON.parse(this.storage.getItem('modulos'));\n this.tareas = this.storage.getItem('__tareas') != null ? JSON.parse(this.storage.getItem('__tareas')) : '';\n this.activatedRoute.data.subscribe((v) => {\n //this.modulosDisponibles = v['modulosDisponibles'];\n this.modulo = this.storage.getItem('moduloSeleccionado')\n let moduloSeleccionado: ModulosModel = new ModulosModel(this.modulo, '');\n this.cambioModulo(moduloSeleccionado, false)\n });\n }\n\n activeItem!: number; // un número que representa el elemento activo\n\n //Dummi de barra de elementos por si se necesita.\n model: MegaMenuItem[] = [\n {\n label: 'UI KIT',\n items: [\n [\n {\n label: 'UI KIT 1',\n items: [\n { label: 'Form Layout', icon: 'pi pi-fw pi-id-card', routerLink: ['/uikit/formlayout'] },\n { label: 'Input', icon: 'pi pi-fw pi-check-square', routerLink: ['/uikit/input'] },\n { label: 'Float Label', icon: 'pi pi-fw pi-bookmark', routerLink: ['/uikit/floatlabel'] },\n { label: 'Button', icon: 'pi pi-fw pi-mobile', routerLink: ['/uikit/button'] },\n { label: 'File', icon: 'pi pi-fw pi-file', routerLink: ['/uikit/file'] },\n ],\n },\n ],\n [\n {\n label: 'UI KIT 2',\n items: [\n { label: 'Table', icon: 'pi pi-fw pi-table', routerLink: ['/uikit/table'] },\n { label: 'List', icon: 'pi pi-fw pi-list', routerLink: ['/uikit/list'] },\n { label: 'Tree', icon: 'pi pi-fw pi-share-alt', routerLink: ['/uikit/tree'] },\n { label: 'Panel', icon: 'pi pi-fw pi-tablet', routerLink: ['/uikit/panel'] },\n { label: 'Chart', icon: 'pi pi-fw pi-chart-bar', routerLink: ['/uikit/charts'] },\n ],\n },\n ],\n [\n {\n label: 'UI KIT 3',\n items: [\n { label: 'Overlay', icon: 'pi pi-fw pi-clone', routerLink: ['/uikit/overlay'] },\n { label: 'Media', icon: 'pi pi-fw pi-image', routerLink: ['/uikit/media'] },\n { label: 'Menu', icon: 'pi pi-fw pi-bars', routerLink: ['/uikit/menu'] },\n { label: 'Message', icon: 'pi pi-fw pi-comment', routerLink: ['/uikit/message'] },\n { label: 'Misc', icon: 'pi pi-fw pi-circle-off', routerLink: ['/uikit/misc'] },\n ],\n },\n ],\n ],\n },\n {\n label: 'UTILITIES',\n items: [\n [\n {\n label: 'UTILITIES 1',\n items: [\n { label: 'Icons', icon: 'pi pi-fw pi-prime', routerLink: ['utilities/icons'] },\n { label: 'PrimeFlex', icon: 'pi pi-fw pi-desktop', url: 'https://www.primefaces.org/primeflex/', target: '_blank' },\n ],\n },\n ],\n ],\n },\n ];\n\n // un getter que devuelve el estado activo del menú superior móvil\n get mobileTopbarActive(): boolean {\n return this.layoutService.state.topbarMenuActive;\n }\n\n onMenuButtonClick() {\n this.layoutService.onMenuToggle();\n }\n\n onRightMenuButtonClick() {\n this.layoutService.openRightSidebar();\n }\n\n onMobileTopbarMenuButtonClick() {\n this.layoutService.onTopbarMenuToggle();\n }\n\n // un método que se ejecuta para enfocar el campo de búsqueda\n focusSearchInput() {\n setTimeout(() => {\n if (this.autocomplete) {\n // this.autocomplete.focusInput();\n }\n //this.searchInput.nativeElement.focus();\n }, 0);\n }\n\n // un método que se ejecuta cuando se selecciona una tarea\n tareaSeleccion() {\n if (this.tareaSeleccionadas != null) {\n this.router.navigate([this.utilsService.obtenerBase() + this.tareaSeleccionadas.urlprincipal.replace(/.jsf/, '')]);\n }\n }\n\n salir() {\n this.authService.deleteToken();\n this.storageService.removeItem('roles')\n this.storageService.removeItem('autenticacionUsuarioDTO')\n this.storageService.removeItem('rol_seleccionado')\n this.storageService.removeItem('token')\n this.storageService.removeItem('__tareas')\n this.storageService.removeItem('modulos')\n this.storageService.removeItem('moduloSeleccionado')\n this.controlFuncionalidad.eliminarFuncionalidades();\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\n }\n\n cambioModulo(modulo: ModulosModel, navegar: boolean): void {\n this.storage.setItem('moduloSeleccionado', modulo.llave)\n this.menuService.setTareasDelModulo(modulo.llave);\n if (navegar) {\n if (window.location.href.toString().includes('admonPortal')) {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\n } else {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\n }\n }\n }\n\n // un método que se ejecuta para filtrar las tareas\n filterTarea(event) {\n const filtered: TareasModel[] = [];\n const query = event.query;\n for (let i = 0; i < this.tareas.length; i++) {\n const country = this.tareas[i];\n if (country.descripcion.toLowerCase().includes(query.toLowerCase())) {\n filtered.push(country);\n }\n }\n this.tareasFiltradas = filtered;\n }\n\n cambioSwitch(cambio){\n console.log(cambio)\n this.switch = cambio.checked;\n this.cambiarTema()\n }\n\n cambiarTema(){\n let tema = this.switch ? 'temaOscuro' : 'temaClaro';\n localStorage.setItem(this.utilsService.obtenerBase() + '_' +'tema', tema);\n let linkTema = this.document.getElementById('temaApp') as HTMLLinkElement;\n linkTema.href = `${tema}.css`\n }\n}\n\n","\n\n<div class=\"layout-topbar\">\n <div class=\"layout-topbar-start\">\n <a class=\"layout-topbar-logo\" routerLink=\"/\">\n <!-- <svg width=\"167\" height=\"32\" viewBox=\"0 0 167 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"layout-topbar-logo-full\">\n <path\n d=\"M76.5469 5.25V20.7812C76.5365 22.3125 76.1979 23.6458 75.5312 24.7812C74.8646 25.9167 73.9219 26.7917 72.7031 27.4062C71.4948 28.0104 70.1042 28.3125 68.5312 28.3125C66.1354 28.3125 64.2135 27.6615 62.7656 26.3594C61.3281 25.0469 60.5833 23.2344 60.5312 20.9219V5.25H62.4375V20.6406C62.4375 22.5573 62.9844 24.0469 64.0781 25.1094C65.1719 26.1615 66.6562 26.6875 68.5312 26.6875C70.4062 26.6875 71.8854 26.1562 72.9688 25.0938C74.0625 24.0312 74.6094 22.5521 74.6094 20.6562V5.25H76.5469Z\"\n fill=\"var(--topbar-item-text-color)\" />\n <path d=\"M83.8438 26.375H95.0781V28H81.9062V5.25H83.8438V26.375Z\" fill=\"var(--topbar-item-text-color)\" />\n <path d=\"M109.906 6.89062H102.109V28H100.188V6.89062H92.4062V5.25H109.906V6.89062Z\"\n fill=\"var(--topbar-item-text-color)\" />\n <path d=\"M115.938 28H114.016V5.25H115.938V28Z\" fill=\"var(--topbar-item-text-color)\" />\n <path\n d=\"M124.672 5.25L133.062 25.3281L141.484 5.25H144.047V28H142.125V18.0938L142.281 7.9375L133.812 28H132.328L123.891 8.01562L124.047 18.0312V28H122.125V5.25H124.672Z\"\n fill=\"var(--topbar-item-text-color)\" />\n <path\n d=\"M162.375 21.625H152.047L149.703 28H147.688L156.297 5.25H158.125L166.734 28H164.734L162.375 21.625ZM152.641 19.9844H161.766L157.203 7.59375L152.641 19.9844Z\"\n fill=\"var(--topbar-item-text-color)\" />\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M39.9709 8.57017C39.9112 8.42729 39.7717 8.33484 39.617 8.33484H37.5093L38.657 6.95037C38.752 6.83653 38.7711 6.67837 38.7083 6.54466C38.6455 6.41095 38.5106 6.32537 38.362 6.32537H15.2326L8.67361 0.10518C8.54643 -0.0147766 8.35336 -0.0346421 8.20625 0.0585729L4.52643 2.36221L4.52336 2.36526L4.51953 2.36679L0.17315 5.21978C0.162424 5.22666 0.157061 5.23735 0.147101 5.24576C0.125649 5.26257 0.107261 5.28091 0.0904059 5.30154C0.0750829 5.31987 0.0628245 5.33821 0.0513322 5.35884C0.0390738 5.381 0.0306461 5.40316 0.0229846 5.42684C0.015323 5.45129 0.0107261 5.47574 0.00766152 5.50172C0.00689537 5.51471 0 5.5254 0 5.53916C0 5.55138 0.00536306 5.56055 0.00689537 5.57278C0.00919382 5.59799 0.0145569 5.62168 0.0222184 5.64689C0.0298799 5.6721 0.0383076 5.69579 0.0513322 5.71948C0.0566952 5.72941 0.0574614 5.74011 0.0635906 5.75004C0.0689537 5.75844 0.0789137 5.7615 0.0850429 5.76914C0.111858 5.80352 0.14327 5.83179 0.180046 5.85471C0.193836 5.86312 0.204563 5.87382 0.218353 5.88069C0.268919 5.90514 0.324082 5.92119 0.383842 5.92119H5.61743L6.79883 8.86052L6.80036 8.86281V8.8651L14.4864 27.2292L9.94925 31.3353C9.83203 31.4415 9.79219 31.608 9.84965 31.7555C9.90635 31.903 10.0489 32 10.2067 32H16.7389C16.7895 32 16.8393 31.9893 16.886 31.9702C16.9327 31.9511 16.9749 31.9228 17.0101 31.8877L20.444 28.4502C20.4486 28.4555 20.4501 28.4624 20.4555 28.4678L23.707 31.8808C23.7798 31.958 23.8756 31.9794 23.9867 32C29.8899 31.9671 38.8462 31.9373 39.2676 31.9809C39.3074 31.9939 39.348 32 39.3886 32C39.5197 32 39.6476 31.9335 39.7189 31.8182C39.9403 31.459 39.9387 31.4552 28.6265 20.2603L39.8874 8.98888C39.9977 8.87733 40.0299 8.71305 39.9709 8.57017ZM37.5483 7.08867L36.5163 8.33484H17.3518L16.0379 7.08867H37.5483ZM8.36178 0.862361L16.2409 8.33484H7.41329L5.20447 2.83898L8.36178 0.862361ZM1.66178 5.15636L4.54864 3.2615L5.3102 5.15636H1.66178ZM21.0102 27.9406C21.0002 27.9299 20.9864 27.9253 20.9757 27.9169L23.7201 25.1701V30.7844L21.0102 27.9406ZM38.5045 31.213C37.058 31.1916 33.464 31.1825 24.4862 31.2321V24.6513C24.4862 24.581 24.4617 24.5183 24.4288 24.461L28.0864 20.7997C31.6934 24.3701 36.7998 29.4519 38.5045 31.213ZM16.8722 30.9425L7.72894 9.0989H36.6006C36.6282 9.10501 36.6558 9.11342 36.6834 9.11342C36.7056 9.11342 36.7263 9.10272 36.7485 9.0989H38.6945L16.8722 30.9425Z\"\n fill=\"var(--topbar-item-text-color)\" />\n </svg> -->\n <img style=\"width: 167px; height: 64px;\" class=\"layout-topbar-logo-full\"\n src=\"{{ codigo != '1'? logoComprimido : 'assets/images/logo-sara.png'}}\">\n\n\n <svg width=\"41\" height=\"46\" viewBox=\"0 0 41 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"layout-topbar-logo-slim\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M40.7209 8.57017C40.6612 8.42729 40.5217 8.33484 40.367 8.33484H38.2593L39.407 6.95037C39.502 6.83653 39.5211 6.67837 39.4583 6.54466C39.3955 6.41095 39.2606 6.32537 39.112 6.32537H15.9826L9.42361 0.10518C9.29643 -0.0147766 9.10336 -0.0346421 8.95625 0.0585729L5.27643 2.36221L5.27336 2.36526L5.26953 2.36679L0.92315 5.21978C0.912424 5.22666 0.907061 5.23735 0.897101 5.24576C0.875649 5.26257 0.857261 5.28091 0.840406 5.30154C0.825083 5.31987 0.812825 5.33821 0.801332 5.35884C0.789074 5.381 0.780646 5.40316 0.772985 5.42684C0.765323 5.45129 0.760726 5.47574 0.757662 5.50172C0.756895 5.51471 0.75 5.5254 0.75 5.53916C0.75 5.55138 0.755363 5.56055 0.756895 5.57278C0.759194 5.59799 0.764557 5.62168 0.772218 5.64689C0.77988 5.6721 0.788308 5.69579 0.801332 5.71948C0.806695 5.72941 0.807461 5.74011 0.813591 5.75004C0.818954 5.75844 0.828914 5.7615 0.835043 5.76914C0.861858 5.80352 0.89327 5.83179 0.930046 5.85471C0.943836 5.86312 0.954563 5.87382 0.968353 5.88069C1.01892 5.90514 1.07408 5.92119 1.13384 5.92119H6.36743L7.54883 8.86052L7.55036 8.86281V8.8651L15.2364 27.2292L10.6993 31.3353C10.582 31.4415 10.5422 31.608 10.5997 31.7555C10.6564 31.903 10.7989 32 10.9567 32H17.4889C17.5395 32 17.5893 31.9893 17.636 31.9702C17.6827 31.9511 17.7249 31.9228 17.7601 31.8877L21.194 28.4502C21.1986 28.4555 21.2001 28.4624 21.2055 28.4678L24.457 31.8808C24.5298 31.958 24.6256 31.9794 24.7367 32C30.6399 31.9671 39.5962 31.9373 40.0176 31.9809C40.0574 31.9939 40.098 32 40.1386 32C40.2697 32 40.3976 31.9335 40.4689 31.8182C40.6903 31.459 40.6887 31.4552 29.3765 20.2603L40.6374 8.98888C40.7477 8.87733 40.7799 8.71305 40.7209 8.57017ZM38.2983 7.08867L37.2663 8.33484H18.1018L16.7879 7.08867H38.2983ZM9.11178 0.862361L16.9909 8.33484H8.16329L5.95447 2.83898L9.11178 0.862361ZM2.41178 5.15636L5.29864 3.2615L6.0602 5.15636H2.41178ZM21.7602 27.9406C21.7502 27.9299 21.7364 27.9253 21.7257 27.9169L24.4701 25.1701V30.7844L21.7602 27.9406ZM39.2545 31.213C37.808 31.1916 34.214 31.1825 25.2362 31.2321V24.6513C25.2362 24.581 25.2117 24.5183 25.1788 24.461L28.8364 20.7997C32.4434 24.3701 37.5498 29.4519 39.2545 31.213ZM17.6222 30.9425L8.47894 9.0989H37.3506C37.3782 9.10501 37.4058 9.11342 37.4334 9.11342C37.4556 9.11342 37.4763 9.10272 37.4985 9.0989H39.4445L17.6222 30.9425Z\"\n fill=\"var(--topbar-item-text-color)\" />\n </svg>\n </a>\n <a #menuButton class=\"layout-menu-button\" (click)=\"onMenuButtonClick()\" pRipple>\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n\n <a #mobileMenuButton class=\"layout-topbar-mobile-button\" (click)=\"onMobileTopbarMenuButtonClick()\" pRipple>\n <i class=\"pi pi-ellipsis-v\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-end\">\n <!-- Se comentan las opciones de KIT y Utilities -->\n <div class=\"layout-topbar-actions-start\" style=\"line-height: 15px;\">\n <label class=\"empresa\">Empresa: {{empresa}} </label>\n <label class=\"rol\"><span class=\"font-medium\">Rol:</span> {{rol}} </label>\n <label class=\"conexion\"><span class=\"font-medium\">Conexion:</span> {{conexion}} </label>\n <!-- <p-megaMenu [model]=\"model\" styleClass=\"layout-megamenu\"></p-megaMenu> -->\n </div>\n <div class=\"layout-topbar-actions-end\">\n <ul class=\"layout-topbar-items\">\n <!--CAMBIAR TEMA-->\n <li class=\"flex align-items-center eleccion-modo\">\n <!-- <i class=\"pi pi-sun mr-1\"></i> -->\n <p-inputSwitch [(ngModel)]=\"switch\" (onChange)=\"cambioSwitch($event)\"></p-inputSwitch>\n <!-- <i class=\"pi pi-moon ml-1\"></i> -->\n </li>\n <li class=\"layout-topbar-search\">\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple (click)=\"focusSearchInput()\">\n <i class=\"pi pi-search\"></i>\n </a>\n <!--BUSCADOR-->\n <div class=\"layout-search-panel ng-hidden p-input-filled\">\n <i class=\"pi pi-search\"></i>\n <!-- <input #searchInput type=\"text\" pInputText placeholder=\"Search\"> -->\n <p-autoComplete #searchInput placeholder=\"Buscar una tarea...\" (click)=\"searchClick = true\"\n [dropdown]=\"false\" [(ngModel)]=\"tareaSeleccionadas\" [suggestions]=\"tareasFiltradas\"\n (completeMethod)=\"filterTarea($event)\" (onSelect)=\"tareaSeleccion()\" field=\"descripcion\"\n [ngStyle]=\"{ 'width': '70%', 'height': '40px', 'margin-left': '11%' }\" styleClass=\"w-full h-full\" icon=\"pi pi-search\">\n </p-autoComplete>\n\n\n <div class=\"layout-search-panel ng-hidden p-input-filled\">\n <i class=\"pi pi-search\"></i>\n <!-- <input #searchInput type=\"text\" pInputText placeholder=\"Search\"> -->\n <p-autoComplete #searchInput placeholder=\"Buscar una tarea...\" (click)=\"searchClick = true\"\n [dropdown]=\"false\" [(ngModel)]=\"tareaSeleccionadas\" [suggestions]=\"tareasFiltradas\"\n (completeMethod)=\"filterTarea($event)\" (onSelect)=\"tareaSeleccion()\" field=\"descripcion\"\n [ngStyle]=\"{ 'width': '70%', 'height': '40px', 'align-items': 'center' }\" styleClass=\"w-full h-full\">\n </p-autoComplete>\n <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"focusSearchInput()\"\n class=\"p-button-rounded p-button-text p-button-plain\" pStyleClass=\".layout-search-panel\"\n leaveToClass=\"ng-hidden\" leaveActiveClass=\"px-fadeout\"></button>\n </div>\n </div>\n </li>\n <!-- <li>\n NOTIFICACIONES\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\" leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\n <i class=\"pi pi-bell\" pBadge severity=\"warning\"></i>\n </a>\n <div class=\"ng-hidden\">\n <ul class=\"list-none p-0 m-0\">\n <li class=\"px-3 py-1\">\n <span>You have <b>4</b> new notifications</span>\n </li>\n <li class=\"p-3\">\n <div class=\"flex align-items-center\">\n <img src=\"assets/demo/images/avatar/avatar-1.png\" />\n <div class=\"flex flex-column ml-3 flex-1\">\n <div class=\"flex align-items-center justify-content-between mb-1\">\n <span class=\"font-bold\">Jerome Bell</span>\n <small>42 mins ago</small>\n </div>\n <span class=\"text-sm line-height-3\">How to write content about your photographs?</span>\n </div>\n </div>\n </li>\n <li class=\"p-3\">\n <div class=\"flex align-items-center\">\n <img src=\"assets/demo/images/avatar/avatar-2.png\"/>\n <div class=\"flex flex-column ml-3 flex-1\">\n <div class=\"flex align-items-center justify-content-between mb-1\">\n <span class=\"fs-small font-bold\">Cameron Williamson</span>\n <small>48 mins ago</small>\n </div>\n <span class=\"text-sm line-height-3\">Start a blog to reach your creative peak.</span>\n </div>\n </div>\n </li>\n <li class=\"p-3\">\n <div class=\"flex align-items-center\">\n <img src=\"assets/demo/images/avatar/avatar-3.png\"/>\n <div class=\"flex flex-column ml-3 flex-1\">\n <div class=\"flex align-items-center justify-content-between mb-1\">\n <span class=\"fs-small font-bold\">Anna Miles</span>\n <small>1 day ago</small>\n </div>\n <span class=\"text-sm line-height-3\">Caring is the new marketing</span>\n </div>\n </div>\n </li>\n <li class=\"p-3\">\n <div class=\"flex align-items-center\">\n <img src=\"assets/demo/images/avatar/avatar-4.png\"/>\n <div class=\"flex flex-column ml-3 flex-1\">\n <div class=\"flex align-items-center justify-content-between mb-1\">\n <span class=\"fs-small font-bold\">Arlene Mccoy</span>\n <small>4 day ago</small>\n </div>\n <span class=\"text-sm line-height-3\">Starting your traveling blog with Vasco.</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </li> -->\n <li>\n <!-- MODULOS -->\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\n <i class=\"pi pi-table\"></i>\n </a>\n <div class=\"ng-hidden\">\n <div class=\"flex flex-wrap p-2\">\n <div class=\"w-4 flex-column\" *ngFor=\"let modulo of modulosDisponibles\">\n <a class=\"flex text-color\" href=\"{{utilsService.obtenerBase() + (url.toString().includes('admonPortal') ? '/admonPortal/inicio' : '/inicio')}}\" pRipple (click)=\"cambioModulo(modulo, true)\">\n <button pButton class=\"p-button-rounded mb-2\" style=\"width:40px; height: 40px; min-width:40px; background:transparent;\"\n pRipple>\n <img style=\"height: 3.5rem; width:3.5rem;margin-left: -10px;\" [src]=\"'assets/modulos/' + (modulo.icono.replace('.png', '.webp'))\" />\n\n </button>\n <span style=\"font-size: 10px; text-align: left; margin-left: 10px\">{{ modulo.descripcion }}</span>\n </a>\n </div>\n </div>\n </div>\n </li>\n <li>\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\n <div class=\"iniciales-usuario\" [style.background-color]=\"color\">\n <label class=\"font-semibold\">{{iniciales}}</label>\n </div>\n </a>\n <div class=\"ng-hidden\">\n <ul class=\"list-none p-0 m-0\">\n <!-- Funciones Apagadas de perfil -->\n <!-- <li>\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\n <i class=\"pi pi-cog mr-2\"></i>\n <span>Settings</span>\n </a>\n </li>\n <li>\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\n <i class=\"pi pi-file-o mr-2\"></i>\n <span>Terms of Usage</span>\n </a>\n </li>\n <li>\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\n <i class=\"pi pi-compass mr-2\"></i>\n <span>Support</span>\n </a>\n </li> -->\n <li>\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\"\n pRipple (click)=\"salir()\">\n <i class=\"pi pi-power-off mr-2\"></i>\n <span>Cerrar sesión</span>\n </a>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n","import {Component} from '@angular/core';\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\nimport { LayoutService } from './service/app.layout.service';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'app-footer',\n imports: [ButtonModule],\n standalone: true,\n templateUrl: './app.footer.component.html'\n})\nexport class AppFooterComponent {\n\n constructor(public layoutService: LayoutService ) {}\n}\n","<div class=\"layout-footer\">\n <img id=\"footer-logo\" [id]=\"'logoImg'\" [src]=\"'assets/images/logo-union-simple.png'\" alt=\"ultima-footer-logo\" />\n <img id=\"footer-logo\" [id]=\"'logoName'\" [src]=\" 'assets/images/texto-union-soluciones.png'\" alt=\"ultima-footer-logo\" />\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-facebook fs-large\"\n class=\"p-button-rounded p-button-text p-button-plain ml-auto mr-2\"\n ></button>\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-twitter fs-large\"\n class=\"p-button-rounded p-button-text p-button-plain mr-2\"\n ></button>\n</div>\n","import { Component } from '@angular/core';\nimport { LayoutService } from './service/app.layout.service';\nimport { SidebarModule } from 'primeng/sidebar';\n\n@Component({\n selector: 'app-rightmenu',\n imports: [SidebarModule],\n standalone: true,\n templateUrl: './app.rightmenu.component.html'\n})\nexport class AppRightMenuComponent {\n\n constructor(public layoutService: LayoutService) { }\n\n get rightMenuActive(): boolean {\n return this.layoutService.state.rightMenuActive;\n }\n\n set rightMenuActive(_val: boolean) {\n this.layoutService.state.rightMenuActive = _val;\n }\n\n\n}\n","<p-sidebar [(visible)]=\"rightMenuActive\" position=\"right\" [blockScroll]=\"true\" [showCloseIcon]=\"false\" [baseZIndex]=\"1000\" [transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\">\n <div class=\"p-3\">\n <div class=\"flex flex-column mb-5\">\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">ONLINE MEMBERS</h6>\n <div class=\"flex flex-row flex-wrap gap-1\">\n <!--<img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-1.png\" alt=\"avatar-1\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-2.png\" alt=\"avatar-2\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-3.png\" alt=\"avatar-3\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-4.png\" alt=\"avatar-4\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-5.png\" alt=\"avatar-5\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-6.png\" alt=\"avatar-6\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-7.png\" alt=\"avatar-7\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-8.png\" alt=\"avatar-8\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-9.png\" alt=\"avatar-9\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-10.png\" alt=\"avatar-10\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-11.png\" alt=\"avatar-11\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-12.png\" alt=\"avatar-12\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-13.png\" alt=\"avatar-13\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-14.png\" alt=\"avatar-14\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-15.png\" alt=\"avatar-15\"/>\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-16.png\" alt=\"avatar-16\"/>-->\n </div>\n <span class=\"mt-3\"><b class=\"text-primary\">+19</b> Costumers</span>\n </div>\n <div class=\"flex flex-column mb-5\">\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">LATEST ACTIVITY</h6>\n <div class=\"flex pt-2\">\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\n <div class=\"flex flex-column\">\n <span class=\"font-bold mb-1\">New Sale</span>\n <span class=\"mb-2 line-height-3\">Richard Jones has purchased a blue t-shirt for $79.</span>\n <span class=\"flex align-items-center\">\n <!--<img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-1.png\" alt=\"\"/>-->\n <small>Emmy Adams, 21.40</small>\n </span>\n </div>\n </div>\n <div class=\"flex pt-3\">\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\n <div class=\"flex flex-column\">\n <span class=\"font-bold mb-1\">Withdrawal Initiated</span>\n <span class=\"mb-2 line-height-3\">Your request for withdrawal of $2500 has been initiated.</span>\n <span class=\"flex align-items-center\">\n <!--<img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-2.png\" alt=\"avatar-2\"/>-->\n <small>Emily Walter, 21.40</small>\n </span>\n </div>\n </div>\n <div class=\"flex pt-3\">\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\n <div class=\"flex flex-column\">\n <span class=\"font-bold mb-1\">Question Received</span>\n <span class=\"mb-2 line-height-3\">Jane Davis has posted a new question about your product.</span>\n <span class=\"flex align-items-center\">\n <!-- <img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-3.png\" alt=\"avatar-3\"/>-->\n <small>Jane Davis, 21.45</small>\n </span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-column\">\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">NEXT EVENTS</h6>\n <ul class=\"m-0 list-none p-0\">\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-eye mr-3\"></i>A/B Test</li>\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-video mr-3\"></i>Video Shoot</li>\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-sitemap mr-3\"></i>Board Meeting</li>\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-compass mr-3\"></i>Q4 Planning</li>\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-palette mr-3\"></i>Design Training</li>\n </ul>\n </div>\n </div>\n</p-sidebar>\n","import { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MenuService } from '../core/servicios/menu.service';\nimport { UtilsService } from '../core/servicios/utils.service';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\ninterface Breadcrumb {\n label: string;\n url?: string;\n}\n\n@Component({\n selector: 'app-breadcrumb',\n imports: [BreadcrumbModule],\n standalone: true,\n templateUrl: './app.breadcrumb.component.html'\n})\nexport class AppBreadcrumbComponent implements OnInit, OnDestroy {\n private subscription = new Subscription();\n items: MenuItem[] = [];\n home: MenuItem;\n\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor(\n private router: Router,\n private menuService: MenuService,\n private utilsService: UtilsService,\n private cd: ChangeDetectorRef // Importando ChangeDetectorRef\n ) {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: Breadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n this._breadcrumbs$.next(breadcrumbs);\n this.cd.detectChanges(); // Marcando para detección de cambios\n });\n }\n\n ngOnInit(): void {\n this.subscription.add(\n this.menuService.breadcrumb.subscribe(items => {\n this.items = items;\n this.cd.detectChanges(); // Marcando para detección de cambios\n })\n );\n if (window.location.href.toString().includes('admonPortal')) {\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/admonPortal/inicio' };\n } else {\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/inicio' };\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n const breadcrumb = route.data['breadcrumb'];\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\n\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\n breadcrumbs.push({\n label: route.data['breadcrumb'],\n url: '/' + routeUrl.join('/'),\n });\n }\n\n if (route.firstChild) {\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","<div class=\"layout-breadcrumb-container\">\n <nav class=\"layout-breadcrumb\">\n <ol>\n <!-- <li><i class=\"pi pi-home\"></i></li>\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\n <li><i class=\"pi pi-angle-right\"></i></li>\n <li><span>{{item.label}}</span></li>\n </ng-template> -->\n <p-breadcrumb [model]=\"items\" [home]=\"home\" styleClass=\"layout-breadcrumb pl-4 py-2\"></p-breadcrumb>\n <div class=\"layout-breadcrumb-buttons flex align-items-center pr-3\">\n <!-- <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain mr-1\"></button> -->\n </div>\n </ol>\n </nav>\n <!-- <div class=\"layout-breadcrumb-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-cloud-upload\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-bookmark\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\n <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\n </div> -->\n</div>\n","import { AfterViewInit, Component, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '../../core/servicios/auth.service';\nimport { MenuService } from '../..//core/servicios/menu.service';\nimport { StorageService } from '../../core/servicios/storage.service';\nimport { PrimeNGConfig } from 'primeng/api';\nimport { Subscription } from 'rxjs';\nimport { ModulosModel } from '../../seguridad/modelos/ModulosModel';\nimport { TareasModel } from '../../seguridad/modelos/TareasModel';\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\nimport { trigger, style, transition, animate, AnimationEvent } from '@angular/animations';\nimport { CargarControlFuncionalidadService } from '../servicios/cargar-control-funcionalidad.service';\nimport { UtilsService } from '../servicios/utils.service';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AppSidebarComponent } from '../../layout/app.sidebar.component';\nimport { AppTopbarComponent } from '../../layout/app.topbar.component';\nimport { AppFooterComponent } from '../../layout/app.footer.component';\nimport { AppRightMenuComponent } from '../../layout/app.rightmenu.component';\nimport { AppBreadcrumbComponent } from '../../layout/app.breadcrumb.component';\n@Component({\n selector: 'app-plantilla-general',\n imports: [StyleClassModule, CommonModule, AutoCompleteModule, FormsModule, AppSidebarComponent, AppBreadcrumbComponent, AppTopbarComponent, AppRightMenuComponent,AppFooterComponent], \n standalone: true,\n templateUrl: './plantilla-general.template.html',\n styleUrls: ['./plantilla-general.template.scss'],\n animations: [\n trigger('topbarActionPanelAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 1, transform: '*' })),\n ]),\n transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class PlantillaGeneralTemplate implements OnInit, AfterViewInit, OnDestroy {\n modulo: string;\n intervalId: number;\n menuActive: boolean = true;\n mobileMenuActive: boolean = false;\n mobileTopbarActive: boolean = false;\n menuClick: boolean = false;\n topbarItemClick: boolean = false;\n activeTopbarItem: string = '';\n search: boolean = false;\n searchClick: boolean = false;\n\n documentClickListener!: () => void;\n\n nombreEmpresa: string = '1 - Unión Soluciones';\n modulosDisponibles: ModulosModel[] = new Array();\n tareaSeleccionadas: TareasModel;\n tareasFiltradas: TareasModel[];\n\n @ViewChild('searchInput') searchInputViewChild!: AutoComplete;\n\n\n constructor(\n private primeConfig: PrimeNGConfig,\n private renderer: Renderer2,\n private menuService: MenuService,\n private authService: AuthService,\n private router: Router,\n private storage: StorageService,\n private activatedRoute: ActivatedRoute,\n private utilsService: UtilsService,\n private storageService: StorageService,\n private controlFuncionalidad: CargarControlFuncionalidadService\n ) {}\n\n /**\n * Activa ripple de PrimeNG para las animaciones de los botones\n */\n ngOnInit(): void {\n this.modulosDisponibles = JSON.parse(this.storage.getItem('modulos'));\n this.activatedRoute.data.subscribe((v) =>{ \n //this.modulosDisponibles = v['modulosDisponibles']\n this.primeConfig.ripple = true;\n this.modulo = this.storage.getItem('moduloSeleccionado')\n });\n }\n\n /**\n * Después de crear la vista y sub-vistas inicializa las tareas y eventos básicos como\n * el timer de sesión, cargar el menú y eventos del html para ocultar menús.\n */\n ngAfterViewInit(): void {\n this.documentClickListener = this.renderer.listen('body', 'click', () => {\n if (!this.topbarItemClick) {\n this.activeTopbarItem = '';\n }\n\n if (!this.menuClick) {\n if (this.mobileMenuActive) {\n this.mobileMenuActive = false;\n }\n }\n\n if (!this.searchClick) {\n this.search = false;\n }\n\n this.searchClick = false;\n this.topbarItemClick = false;\n this.menuClick = false;\n this.modulo = this.storage.getItem('moduloSeleccionado')\n let moduloSeleccionado: ModulosModel = new ModulosModel(this.modulo, '');\n this.cambioModulo(moduloSeleccionado, false)\n });\n\n this.menuService.loadTareas().subscribe(() => {\n setTimeout(() => {\n this.menuService.setTareasDelModulo(this.modulo);\n });\n });\n\n // Cada 5 minutos verifica que el token no haya expirado\n this.intervalId = window.setInterval(() => {\n if (!this.authService.isTokenValid()) {\n this.authService.deleteToken();\n if (window.location.href.toString().includes('admonPortal')) {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/timeout');\n } else {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/timeout');\n }\n }\n }, 300_000);\n }\n\n /**\n * Limpia el componente de las subscripciones\n */\n ngOnDestroy(): void {\n clearInterval(this.intervalId);\n }\n\n /**\n * Muestra/Esconte el menú principal de navegación\n * @param event\n */\n onMenuButtonClick(event: { preventDefault: () => void }): void {\n this.menuActive = !this.menuActive;\n this.menuClick = true;\n\n if (this._isMobile()) {\n this.mobileMenuActive = !this.mobileMenuActive;\n }\n\n event.preventDefault();\n }\n\n /**\n * Si el sitio esta en móviles, muestra/esconde el menú de la barra superior (los tres puntos)\n * @param event\n */\n onTopbarMobileButtonClick(event: { preventDefault: () => void }): void {\n this.mobileTopbarActive = !this.mobileTopbarActive;\n event.preventDefault();\n }\n\n /**\n * Muestra/Esconde los menus emergentes de la barra superior (Buscar, Módulos y Perfil).\n * @param event\n * @param item\n */\n onTopbarItemClick(event: { preventDefault: () => void }, item: string): void {\n this.topbarItemClick = true;\n\n if (this.activeTopbarItem === item) {\n this.activeTopbarItem = '';\n } else {\n this.activeTopbarItem = item;\n }\n\n if (item === 'search') {\n this.search = !this.search;\n this.searchClick = !this.searchClick;\n }\n\n event.preventDefault();\n }\n\n /**\n * Si la pantalla tiene un ancho menor o igual a 991 es un dispositivo móvil.\n * @returns boolean\n */\n private _isMobile(): boolean {\n return window.innerWidth <= 991;\n }\n\n onSearchAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n //this.searchInputViewChild.f;\n break;\n }\n }\n\n salir() {\n this.authService.deleteToken();\n this.controlFuncionalidad.eliminarFuncionalidades();\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\n }\n\n cambioModulo(modulo: ModulosModel, navegar: boolean): void {\n this.storageService.setItem('moduloSeleccionado', modulo.llave)\n this.menuService.setTareasDelModulo(modulo.llave);\n if (navegar){\n this.router.navigateByUrl( this.utilsService.obtenerBase() + '/inicio');\n }\n }\n\n filterTarea(event) {\n const filtered: TareasModel[] = [];\n let tareas: TareasModel[] = this.storageService.getItem('__tareas') != null ? JSON.parse(this.storageService.getItem('__tareas')) : '';\n const query = event.query;\n for (let i = 0; i < tareas.length; i++) {\n const country = tareas[i];\n if (country.descripcion.toLowerCase().includes(query.toLowerCase())) {\n filtered.push(country);\n }\n }\n this.tareasFiltradas = filtered;\n }\n\n tareaSeleccion() {\n if (this.tareaSeleccionadas != null) {\n this.router.navigate([this.utilsService.obtenerBase() + this.tareaSeleccionadas.urlprincipal.replace(/.jsf/, '')]);\n }\n }\n}\n","<div\n class=\"layout-wrapper p-input-filled layout-menu-static layout-menu-light layout-topbar-dark\"\n [ngClass]=\"{'layout-menu-active': menuActive,\n 'layout-menu-mobile-active': mobileMenuActive,\n 'layout-topbar-mobile-active': mobileTopbarActive }\"\n>\n <!--INICIO TOPBAR-->\n <div class=\"layout-topbar shadow-4\">\n <div class=\"layout-topbar-left\">\n <a class=\"layout-topbar-logo\">{{ nombreEmpresa | uppercase }}</a>\n\n <a class=\"layout-menu-button shadow-6\" (click)=\"onMenuButtonClick($event)\" pRipple>\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n\n <a class=\"layout-topbar-mobile-button\" (click)=\"onTopbarMobileButtonClick($event)\" pRipple>\n <i class=\"pi pi-ellipsis-v fs-large\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\" [ngClass]=\"{ 'layout-topbar-mobile-active': mobileTopbarActive }\">\n <div class=\"layout-topbar-actions-left\"></div>\n\n <div class=\"layout-topbar-actions-right\">\n <ul class=\"layout-topbar-items\">\n <li class=\"layout-topbar-item layout-search-item\">\n <a class=\"layout-topbar-action rounded-circle\" (click)=\"onTopbarItemClick($event, 'search')\" pRipple>\n <i class=\"pi pi-search fs-large\"></i>\n </a>\n\n <div\n class=\"layout-search-panel p-inputgroup\"\n [@topbarActionPanelAnimation]=\"'visible'\"\n *ngIf=\"search\"\n (@topbarActionPanelAnimation.done)=\"onSearchAnimationEnd($event)\">\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-search\"></i></span>\n <p-autoComplete\n #searchInput\n placeholder=\"Buscar una tarea...\"\n (click)=\"searchClick = true\"\n [dropdown]=\"false\"\n [(ngModel)]=\"tareaSeleccionadas\"\n [suggestions]=\"tareasFiltradas\"\n (completeMethod)=\"filterTarea($event)\"\n (onSelect)=\"tareaSeleccion()\"\n field=\"descripcion\"\n styleClass=\"w-full h-full\"\n >\n </p-autoComplete>\n <span class=\"p-inputgroup-addon\">\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-times\"\n class=\"p-button-rounded p-button-text p-button-plain\"\n (click)=\"searchClick = false\"\n ></button>\n </span>\n </div>\n </li>\n\n <li class=\"layout-topbar-item app\">\n <a class=\"layout-topbar-action rounded-circle\" (click)=\"onTopbarItemClick($event, 'modules')\" pRipple>\n <i class=\"pi pi-table fs-large\"></i>\n </a>\n\n <div\n class=\"layout-topbar-action-panel shadow-6\"\n [@topbarActionPanelAnimation]=\"'visible'\"\n *ngIf=\"activeTopbarItem === 'modules'\"\n >\n <div class=\"grid grid-nogutter\">\n <div class=\"layout-topbar-action-item col-4\" *ngFor=\"let modulo of modulosDisponibles\">\n <a class=\"flex align-items-center text-color\" href=\"/inicio\" pRipple (click)=\"cambioModulo(modulo, true)\">\n <i class=\"action app-bgcolor\">\n <img [src]=\"'assets/modulos/' + modulo.icono\" /> \n </i>\n <span style=\"font-size: 10px; text-align: left\">{{ modulo.descripcion }}</span>\n </a>\n </div>\n </div>\n </div>\n </li>\n\n <li class=\"layout-topbar-item\">\n <a\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n (click)=\"onTopbarItemClick($event, 'profile')\"\n pRipple\n >\n <img src=\"\" alt=\"avatar\" style=\"width: 32px; height: 32px\" />\n </a>\n\n <ul\n class=\"layout-topbar-action-panel shadow-6\"\n [@topbarActionPanelAnimation]=\"'visible'\"\n *ngIf=\"activeTopbarItem === 'profile'\"\n >\n <li class=\"layout-topbar-action-item\">\n <a class=\"flex flex-row align-items-center\" pRipple (click)=\"salir()\">\n <i class=\"pi pi-power-off mr-2\"></i>\n <span>Logout</span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</div>\n\n <!--FIN TOPBAR-->\n <!--<div class=\"menu-wrapper\" (click)=\"menuClick = true\">\n <div class=\"layout-menu-container\">\n \n </div>\n </div>\n <p-sidebar [(visible)]=\"menuClick\">\n <app-menu [modulo]=\"modulo\"></app-menu>\n </p-sidebar>\n\n <div class=\"layout-main\">\n <app-breadcrumb></app-breadcrumb>\n <app-carga-breadcrumb></app-carga-breadcrumb>\n\n <div class=\"layout-content\">\n <div class=\"grid\">\n <div class=\"col-12\">\n <div class=\"us-main-content card p-3\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </div>\n </div>\n\n <app-footer></app-footer>\n </div>\n</div>-->\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n \n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n providers: [\n ],\n exports: [\n ],\n})\nexport class CoreModule {\n public static forRoot(): ModuleWithProviders<any> {\n return {\n ngModule: CoreModule,\n providers: [\n ],\n };\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class SharedLibModule {}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ]\n})\nexport class AppLayoutModule { }\n","import { ChangeDetectorRef, Component, OnDestroy, Renderer2, ViewChild } from '@angular/core';\nimport { NavigationEnd, Router, RouterModule, RouterOutlet } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { MenuService } from './app.menu.service';\nimport { AppSidebarComponent } from './app.sidebar.component';\nimport { AppTopbarComponent } from './app.topbar.component';\nimport { LayoutService } from './service/app.layout.service';\nimport { AuthService } from '../core/servicios/auth.service';\nimport { AppFooterComponent } from './app.footer.component';\nimport { AppRightMenuComponent } from './app.rightmenu.component';\nimport { AppBreadcrumbComponent } from './app.breadcrumb.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-layout',\n standalone: true,\n imports: [RouterOutlet, RouterModule, AppFooterComponent, AppTopbarComponent, AppRightMenuComponent, AppSidebarComponent, AppBreadcrumbComponent, FormsModule, CommonModule,],\n templateUrl: './app.layout.component.html'\n})\nexport class AppLayoutComponent implements OnDestroy {\n\n overlayMenuOpenSubscription: Subscription;\n\n topbarMenuOpenSubscription: Subscription;\n\n menuProfileOpenSubscription: Subscription;\n\n menuOutsideClickListener: any;\n\n menuScrollListener: any;\n\n topbarMenuOutsideClickListener: any;\n\n menuProfileOutsideClickListener: any;\n\n @ViewChild(AppSidebarComponent) appSidebar!: AppSidebarComponent;\n\n @ViewChild(AppTopbarComponent) appTopbar!: AppTopbarComponent;\n\n autoServicio: boolean = false;\n\n constructor(private menuService: MenuService, public layoutService: LayoutService, public renderer: Renderer2, public router: Router, private cd: ChangeDetectorRef, private authService: AuthService) {\n this.autoServicio = (authService.getTokenKey('aplicacion') == '10')\n this.hideMenuProfile();\n \n this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\n this.hideTopbarMenu();\n \n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appSidebar.el.nativeElement.isSameNode(event.target) || this.appSidebar.el.nativeElement.contains(event.target)\n || this.appTopbar.menuButton.nativeElement.isSameNode(event.target) || this.appTopbar.menuButton.nativeElement.contains(event.target));\n if (isOutsideClicked) {\n this.hideMenu();\n }\n });\n }\n\n if ((this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus()) && !this.menuScrollListener) {\n this.menuScrollListener = this.renderer.listen(this.appSidebar.menuContainer.nativeElement, 'scroll', event => {\n if (this.layoutService.isDesktop()) {\n this.hideMenu();\n }\n });\n }\n\n if (this.layoutService.state.staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n\n this.topbarMenuOpenSubscription = this.layoutService.topbarMenuOpen$.subscribe(() => {\n if (!this.topbarMenuOutsideClickListener) {\n this.topbarMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appTopbar.el.nativeElement.isSameNode(event.target) || this.appTopbar.el.nativeElement.contains(event.target)\n || this.appTopbar.mobileMenuButton.nativeElement.isSameNode(event.target) || this.appTopbar.mobileMenuButton.nativeElement.contains(event.target));\n if (isOutsideClicked) {\n this.hideTopbarMenu();\n }\n });\n }\n\n if (this.layoutService.state.staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n\n this.menuProfileOpenSubscription = this.layoutService.menuProfileOpen$.subscribe(() => {\n this.hideMenu();\n\n if (!this.menuProfileOutsideClickListener) {\n this.menuProfileOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appSidebar.menuProfile.el.nativeElement.isSameNode(event.target) || this.appSidebar.menuProfile.el.nativeElement.contains(event.target));\n if (isOutsideClicked) {\n this.hideMenuProfile();\n }\n });\n }\n });\n\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n this.hideMenu();\n this.hideTopbarMenu();\n this.hideMenuProfile();\n });\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n }\n else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n }\n else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' +\n 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n hideMenu() {\n this.layoutService.state.overlayMenuActive = false;\n this.layoutService.state.staticMenuMobileActive = false;\n this.layoutService.state.menuHoverActive = false;\n this.menuService.reset();\n \n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n\n if (this.menuScrollListener) {\n this.menuScrollListener();\n this.menuScrollListener = null;\n }\n this.unblockBodyScroll();\n }\n\n hideTopbarMenu() {\n this.layoutService.state.topbarMenuActive = false;\n \n if (this.topbarMenuOutsideClickListener) {\n this.topbarMenuOutsideClickListener();\n this.topbarMenuOutsideClickListener = null;\n }\n }\n\n hideMenuProfile() {\n this.layoutService.state.menuProfileActive = false;\n \n if (this.menuProfileOutsideClickListener) {\n this.menuProfileOutsideClickListener();\n this.menuProfileOutsideClickListener = null;\n }\n }\n\n get containerClass() {\n let styleClass: {[key: string]: any} = {\n 'layout-overlay': this.layoutService.config.menuMode === 'overlay',\n 'layout-static': this.layoutService.config.menuMode === 'static',\n 'layout-slim': this.layoutService.config.menuMode === 'slim',\n 'layout-slim-plus': this.layoutService.config.menuMode === 'slim-plus',\n 'layout-horizontal': this.layoutService.config.menuMode === 'horizontal',\n 'layout-reveal': this.layoutService.config.menuMode === 'reveal',\n 'layout-drawer': this.layoutService.config.menuMode === 'drawer',\n 'p-input-filled': this.layoutService.config.inputStyle === 'filled',\n 'p-ripple-disabled': !this.layoutService.config.ripple,\n 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive && this.layoutService.config.menuMode === 'static',\n 'layout-overlay-active': this.layoutService.state.overlayMenuActive,\n 'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,\n 'layout-topbar-menu-active': this.layoutService.state.topbarMenuActive,\n 'layout-menu-profile-active': this.layoutService.state.menuProfileActive,\n 'layout-sidebar-active': this.layoutService.state.sidebarActive,\n 'layout-sidebar-anchored': this.layoutService.state.anchored\n };\n\n styleClass['layout-topbar-' + this.layoutService.config.topbarTheme] = true;\n styleClass['layout-menu-' + this.layoutService.config.menuTheme] = true;\n styleClass['layout-menu-profile-' + this.layoutService.config.menuProfilePosition] = true;\n return styleClass;\n }\n\n ngOnDestroy() {\n if (this.overlayMenuOpenSubscription) {\n this.overlayMenuOpenSubscription.unsubscribe();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n }\n\n}\n","<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\n <app-topbar *ngIf=\"!autoServicio\"></app-topbar>\n <app-rightmenu *ngIf=\"!autoServicio\"></app-rightmenu>\n <app-sidebar *ngIf=\"!autoServicio\"></app-sidebar>\n\n <div class=\"layout-content-wrapper\">\n <app-breadcrumb *ngIf=\"!autoServicio\"></app-breadcrumb>\n\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n\n <app-footer *ngIf=\"!autoServicio\"></app-footer>\n </div>\n <!-- Se esconde el modulo de configuracion -->\n <!-- <app-config></app-config> -->\n\n <div *ngIf=\"layoutService.state.staticMenuMobileActive\" class=\"layout-mask\"></div>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MenuItem } from 'primeng/api';\nimport { MenuService } from '../../../core/servicios/menu.service';\nimport { UtilsService } from '../../servicios/utils.service';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\n@Component({\n selector: 'app-breadcrumb',\n imports: [BreadcrumbModule],\n standalone: true,\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\n subscription: Subscription;\n items: MenuItem[];\n home: MenuItem;\n\n constructor(private menuService: MenuService, public utilsService: UtilsService) {}\n\n ngOnInit(): void {\n this.subscription = this.menuService.breadcrumb.subscribe((items) => {\n this.items = items;\n });\n if (window.location.href.toString().includes('admonPortal')) {\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/admonPortal/inicio' };\n } else {\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/inicio' };\n }\n \n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","<div class=\"layout-breadcrumb-container flex justify-content-between align-items-center shadow-1\">\n <p-breadcrumb [model]=\"items\" [home]=\"home\" styleClass=\"layout-breadcrumb pl-4 py-2\"></p-breadcrumb>\n <div class=\"layout-breadcrumb-buttons flex align-items-center pr-3\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain mr-1\"></button>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n \n standalone: true,\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() {}\n\n ngOnInit(): void {\n }\n\n cambiarColor(color){\n }\n\n}\n","<div class=\"layout-footer flex align-items-center p-3 shadow-2\">\n <img id=\"footer-logo\" [id]=\"'logoImg'\" [src]=\"'assets/images/logo-union-simple.png'\" alt=\"ultima-footer-logo\" />\n <img id=\"footer-logo\" [id]=\"'logoName'\" [src]=\" 'assets/images/texto-union-soluciones.png'\" alt=\"ultima-footer-logo\" />\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-facebook fs-large\"\n class=\"p-button-rounded p-button-text p-button-plain ml-auto mr-2\"\n ></button>\n <button pButton pRipple \n type=\"button\" icon=\"pi pi-twitter fs-large\" class=\"p-button-rounded p-button-text p-button-plain mr-2\"></button>\n</div>\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport { MenuService } from '../../../core/servicios/menu.service';\nimport { MenuItem } from 'primeng/api';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\nimport { PanelMenuModule } from 'primeng/panelmenu';\n\n@Component({\n selector: 'app-menu',\n imports: [CommonModule, ScrollPanelModule, PanelMenuModule],\n standalone: true,\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class MenuComponent implements OnInit, OnDestroy {\n subcription: Subscription;\n model: MenuItem[] = [];\n\n @Input()\n modulo:string = '';\n constructor(private menuService: MenuService) {}\n\n ngOnInit() {\n this.subcription = this.menuService.menu.subscribe((menu) => {\n this.model = menu.items;\n });\n }\n\n ngOnDestroy(): void {\n if (this.subcription) {\n this.subcription.unsubscribe();\n }\n }\n}\n","<div class=\"layout-inline-menu\">\n <a class=\"layout-inline-menu-action flex flex-row align-items-center p-4 menu-titulo\">\n <span>{{modulo}}\n <span pTooltip=\"{{'Tooltip text'}}\" tooltipPosition=\"right\">\n <i class=\"pi pi-question-circle\"></i>\n </span>\n </span>\n </a>\n</div>\n\n<p-scrollPanel>\n <p-panelMenu [model]=\"model\" [multiple]=\"false\"></p-panelMenu>\n</p-scrollPanel>\n","import { Injectable } from '@angular/core';\nimport { CanLoad, Route, Router, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { StorageService } from '../storage.service';\nimport { UtilsService } from '../utils.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanLoad {\n constructor(private authService: AuthService, private utilsService: UtilsService, private route: Router, private toastService: ToastService, private storageService: StorageService) {}\n\n canLoad(route: Route, segments: UrlSegment[]): any {//Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!this.authService.isTokenValid()) {\n this.authService.deleteToken();\n this.toastService.showError('Tu sesión no es válida. Primero debes autenticarte con tu usuario y contraseña.', 'Acceso Denegado');\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase() +'/login']);\n }\n let aplicacion = this.authService.getTokenKey('aplicacion');\n console.log('aplicacion:'+aplicacion)\n if (aplicacion.trim() == '10') {\n return true;\n }\n let tareasss = JSON.parse(this.storageService.getItem('__tareas'));\n let ruta = '';\n let continuar = true;\n segments.forEach(data => {\n if (continuar){\n if (data.path !== 'US_editar'){\n ruta = ruta + '/' + data.path\n } else {\n continuar = false;\n }\n }\n }) \n let respuesta = false;\n console.log(ruta)\n tareasss.forEach(element => {\n if ( element.urlprincipal.replace(/.jsf/, '') === ruta){\n respuesta = true;\n }\n });\n \n if (!respuesta){\n return this.route.createUrlTree(['/'+this.utilsService.obtenerBase()+'/not-found']);\n }\n return respuesta;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { UtilsService } from '../utils.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PublicoGuard implements CanActivate {\n constructor(private authService: AuthService, private route: Router, private utilsService: UtilsService) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): any{//Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (this.authService.isTokenValid()) {\n if (window.location.href.toString().includes('admonPortal')) {\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase()+ '/admonPortal/inicio']);\n } else {\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase()+ '/inicio']);\n }\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, EMPTY, from, Observable, throwError, timeout, TimeoutError } from 'rxjs';\nimport { AuthService } from '../auth.service';\nimport { StorageService } from '../../servicios/storage.service';\nimport { UtilsService } from '../utils.service';\nimport { ToastService } from '../toast.service';\nimport { ErrorIntecertorService } from '../error-interceptor.service';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private router: Router, \n private authService: AuthService, \n private storage: StorageService, \n private errorInterceptor: ErrorIntecertorService,\n private storageService: StorageService,\n private utilsService: UtilsService) {}\n \n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n return from(this.interceptDetalle(request, next)).pipe(\n catchError((error: any) => {\n if (error instanceof TimeoutError) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\n } else if (error instanceof HttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\n } else {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\n }\n } else {\n if (error.status == 0) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\n } else {\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\n }\n }\n }\n return throwError(error);\n })\n );\n }\n\n async interceptDetalle(request: HttpRequest<any>, next: HttpHandler): Promise<HttpEvent<any>> {\n if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {\n let token = this.authService.getToken();\n if (token){\n let fechaActual = new Date();\n let fechaExpTokenIni = new Date(this.storage.getDecodedJWT().exp * 1000)\n let fechaExpTokenFin = new Date(this.storage.getDecodedJWT().exp * 1000)\n fechaExpTokenIni.setMinutes(fechaExpTokenIni.getMinutes() - 10);\n if (fechaActual >= fechaExpTokenIni && fechaActual<=fechaExpTokenFin){\n var tokenPublico = await this.authService.generarTokenPublico().toPromise()\n var tokenRefrescar = await this.authService.refrescarToken({token: token }, (tokenPublico as any)?.token as string).toPromise();\n token = (tokenRefrescar as any)?.token as string;\n this.authService.deleteToken()\n this.storage.setItem('token', token);\n }\n }\n }\n return await this.setearTokenRequest(request, next).toPromise();\n } \n\n setearTokenRequest(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n var basePortal: string = this.utilsService.obtenerBase();\n let token = this.authService.getToken();\n if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {\n request = request.clone({\n headers: request.headers.set('Authorization', `Bearer ${token}`),\n });\n }\n\n request = request.clone({\n headers: request.headers.set('Base', basePortal),\n });\n\n return next.handle(request).pipe(\n catchError((error) => {\n if (error.status === 401) {\n this.authService.deleteToken();\n this.storageService.removeItem('roles')\n this.storageService.removeItem('autenticacionUsuarioDTO')\n this.storageService.removeItem('rol_seleccionado')\n this.storageService.removeItem('token')\n this.storageService.removeItem('__tareas')\n this.storageService.removeItem('modulos')\n this.storageService.removeItem('moduloSeleccionado')\n if (this.authService.getTokenKey('aplicacion') == '10') {\n var idDBSeguridad;\n var idSitio;\n for (const match of this.urlNavegador.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\n idDBSeguridad = match.groups?.['seguridad'];\n idSitio = match.groups?.['sitio'];\n }\n const dataToken = this.obtenerTokenSyncrono(request.url);\n const sessionSitio = this.portaltraerSitioSincrono(request.url, idDBSeguridad, idSitio, dataToken.token);\n const urlLocal2 = `${idDBSeguridad}/${sessionSitio.codigo}/${sessionSitio.codigoPaginaInicio}`;\n this.navegar(urlLocal2);\n } else {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\n }\n return EMPTY;\n }\n if (error instanceof TimeoutError) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\n } else if (error instanceof HttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\n } else {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\n }\n } else {\n if (error.status == 0) {\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\n } else {\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\n }\n }\n }\n return throwError(() => error);\n })\n );\n }\n\n portaltraerSitioSincrono(url: string, idDBSeguridad: any, idSitio: any, token: string): any {\n const xhr = new XMLHttpRequest();\n let result;\n\n xhr.open('POST', url+'/portal/traerSitio', false); \n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Authorization', `Bearer ${token}`);\n xhr.setRequestHeader('Base', this.utilsService.obtenerBase());\n xhr.onreadystatechange = () => { \n result = JSON.parse(xhr.responseText);\n result.status = xhr.status;\n };\n xhr.send(`{\"conexion\": \"${idDBSeguridad}\", \"sitio\": \"${idSitio}\", \"url\": \"${window.parent.location.origin}\"}`);\n\n return result;\n }\n\n obtenerTokenSyncrono(url): any {\n const xhr = new XMLHttpRequest();\n let result;\n\n xhr.open('GET', url+'/authentication/generarTokenPublico', false); \n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Base', this.utilsService.obtenerBase());\n xhr.onreadystatechange = () => {\n // if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {\n // result = JSON.parse(xhr.responseText);\n // }\n result = JSON.parse(xhr.responseText);\n result.status = xhr.status;\n };\n xhr.send();\n\n return result;\n }\n\n private navegar(url: any) {\n window.location.href = window.location.origin + '/' + url;\n }\n\n get urlNavegador(): string {\n const urlPathname = window.location.pathname;\n return urlPathname;\n }\n\n}\n","export class ColorUtil {\n /**\n * Define las variables CSS del tema y las agrega al documento.\n * Se definene 9 colores alternativos más el color principal.\n * Adicional se agregan las componentes HSL del color para hacer\n * variaciones personalizadas y ajustar la opacidad.\n * @param color Color principal del tema\n */\n static addPalleteToRoot(color: string): void {\n const head = (document.head || document.getElementsByTagName('head')[0]) as HTMLHeadElement;\n const style = document.createElement('style') as HTMLStyleElement;\n const { hue, saturation, lightness } = this.RGB2HSL(color);\n const contrast = this.contrastColor(color) === 1 ? '--color-50' : '--color-900';\n\n const intermediateColors = [50, 75, 85]\n let index = 0;\n const css =\n ':root { ' +\n this._generatePalette(color)\n .map((color, position) => {\n if(index < 100){\n index = intermediateColors[position] ? intermediateColors[position] : 100;\n } else {\n index += 100;\n }\n return `--color-${index}: ${color};`;\n })\n .join('') +\n `--color-h: ${hue};` +\n `--color-s: ${saturation}%;` +\n `--color-l: ${lightness}%;` +\n `--color-contrast: var(${contrast});` +\n '}';\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n\n /**\n * Mezcla dos colores en proporción a un porcentaje para obtener un\n * nuevo color.\n * @param baseColor Color base para mezclar\n * @param color Color que se quiere mezclar\n * @param weight Porcentaje que se quiere mezclar. Entre 0 y 1\n * @returns Color resultante en formato RGB (#AABBCC)\n */\n static mix(baseColor: string, color: string, weight: number): string {\n const newColor = [];\n baseColor = this._normalizeColor(baseColor);\n color = this._normalizeColor(color);\n\n const rgbColorBase = this._getRGBValues(baseColor);\n const rgbColorAdjust = this._getRGBValues(color);\n\n ['red', 'green', 'blue'].forEach((part) => {\n newColor.push(\n Math.round(rgbColorAdjust[part] + (rgbColorBase[part] - rgbColorAdjust[part]) * weight)\n .toString(16)\n .padStart(2, '0')\n );\n });\n\n return '#' + newColor.join('');\n }\n\n /**\n * Aclara un color proporcionalmente.\n * @param color Color base para modificar\n * @param percent Porcentaje de blanco que se agrega\n * @returns Nuevo color más claro\n */\n static tint(color: string, percent: number): string {\n return this.mix('#fff', color, percent);\n }\n\n /**\n * Oscurece un color proporcionalmente.\n * @param color Color base para modificar\n * @param percent Porcentaje de negro que se agrega\n * @returns Nuevo color más oscuro\n */\n static shade(color: string, percent: number): string {\n return this.mix('#000', color, percent);\n }\n\n /**\n * Transforma un color en RGB a su equivalente en formato HSL\n * @param color Color en formato RGB\n * @returns Arreglo de componentes HSL\n */\n static RGB2HSL(color: string): { hue: number; saturation: number; lightness: number } {\n color = this._normalizeColor(color);\n\n let { red, green, blue } = this._getRGBValues(color);\n red /= 255;\n green /= 255;\n blue /= 255;\n\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n\n let hue = 0;\n let saturation = 0;\n let lightness = (max + min) / 2;\n\n if (max != min) {\n const delta = max - min;\n saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = (blue - red) / delta + 2;\n break;\n case blue:\n hue = (red - green) / delta + 4;\n break;\n }\n hue /= 6;\n }\n\n hue = Math.round(hue * 360);\n saturation = Math.round(saturation * 100);\n lightness = Math.round(lightness * 100);\n\n return { hue, saturation, lightness };\n }\n\n /**\n * Retorna 1 (blanco) o 0 (negro) para contrastar el color enviado.\n * @param color Color del cual se quiere buscar el contraste\n * @returns Blanco o Negro en RGB\n */\n static contrastColor(color: string): number {\n color = this._normalizeColor(color);\n const { red, green, blue } = this._getRGBValues(color);\n return red * 0.299 + green * 0.587 + blue * 0.114 > 186 ? 0 : 1;\n }\n\n /**\n * Valida que la cadena de texto represente un color RGB válido y\n * retorna las componentes del color en formato de seis caracteres.\n * @param color Color en formato RGB. Ejemplo: (#000)\n * @returns String del color sin el simbolo #\n */\n private static _normalizeColor(color: string): string {\n const rgbColor = color.match(/^#([0-9A-F]{3}|[0-9A-F]{6})$/i);\n if (!rgbColor) {\n throw new Error(`${color} is not a RGB color.`);\n }\n\n const colorParts = rgbColor[1].toLowerCase();\n if (colorParts.length === 3) {\n return colorParts.replace(/(.)/g, '$1$1');\n }\n\n return colorParts;\n }\n\n /**\n * Transforma un color Hexadecimal a Decimal en sus respectivas\n * comopnenetes.\n * @param color Color en Hecadecimal para descomponer\n * @returns Un objeto {red, green, blue} en decimal\n */\n private static _getRGBValues(color: string): { red: number; green: number; blue: number } {\n const red = parseInt(color.slice(0, 2), 16);\n const green = parseInt(color.slice(2, 4), 16);\n const blue = parseInt(color.slice(4, 6), 16);\n return { red, green, blue };\n }\n\n /**\n * Define una paleta de 10 colores, 5 más claros y 4 más oscuros basados\n * en el color principal. El color principal será el color medio de la paleta\n * @param color Color base para definir los demás colores\n * @returns Arreglo de todos los colores de la paleta\n */\n private static _generatePalette(color: string): string[] {\n const palette = [];\n for (let i = 0; i < 5; i++) {\n if(i === 0) {\n palette.push(this.tint(color, (5 - i) * 0.19));\n palette.push(this.tint(color, (4.8 - i) * 0.19));\n palette.push(this.tint(color, (4.55 - i) * 0.19));\n } else {\n palette.push(this.tint(color, (5 - i) * 0.19));\n }\n }\n palette.push(color);\n for (let i = 1; i < 5; i++) {\n palette.push(this.shade(color, i * 0.15));\n }\n return palette;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ModulosModel } from '../../../seguridad/modelos/ModulosModel';\nimport { ToastService } from '../../servicios/toast.service';\nimport { UtilsService } from '../../servicios/utils.service';\nimport { StorageService } from '../../servicios/storage.service';\nimport { AuthService } from '../../servicios/auth.service';\nimport { CommonModule } from '@angular/common';\nimport { MessageService } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\n@Component({\n imports: [CommonModule, ButtonModule],\n standalone: true,\n providers: [MessageService],\n templateUrl: './inicio-component.component.html',\n styleUrls: ['./inicio-component.component.scss'],\n})\nexport class InicioComponentComponent implements OnInit {\n public modulo?: ModulosModel = new ModulosModel(null, null);\n\n constructor(\n private httpClient: HttpClient,\n private activatedRoute: ActivatedRoute,\n private toast: ToastService,\n private authService: AuthService,\n private utilsService: UtilsService,\n private storageService: StorageService,\n ) {}\n\n ngOnInit(): void {\n this.consultarModulo();\n }\n\n consultarModulo() {\n let objeto = {\n nombreDTO: 'ModuloDTO',\n nombreConsulta: null,\n seguridad: true,\n objeto: {\n llave: this.utilsService.rightpad(this.storageService.getItem('moduloSeleccionado'), 3, ' '),\n aplicacion: this.utilsService.rightpad(this.authService.getTokenKey('codigoAplicacion'), 10, ' ')\n },\n }\n console.log(objeto)\n this.activatedRoute.data.subscribe((v) => {\n this.httpClient\n .post<any>(\n `${this.utilsService.obtenerUrlApi()}/requieretoken/general/queryForObject`,\n objeto\n )\n .subscribe((data) => {\n this.modulo = data;\n console.log(this.modulo);\n });\n });\n }\n\n marcarModuloFavorito(){\n if (this.modulo && this.modulo?.descripcion) {\n this.storageService.setItem('moduloFavorito',this.modulo?.descripcion);\n this.toast.showSuccess('Se agrego '+this.modulo?.descripcion+' como favorito');\n }\n }\n}\n","<div>\n <div class=\"Inputgroup p-4 mt-0 \">\n <div class=\"p-fluid p-formgrid grid align-items-center favorito\">\n <div class=\"Icono\">\n <button pButton pRipple type=\"button\" icon=\"glyphicons glyphicons-heart\" class=\"p-button-rounded p-button-help p-button-text mr-2 mb-2\"\n style=\"float: right;\" (click)=\"marcarModuloFavorito()\"></button>\n </div>\n <div class=\"field col-12 md:col-3 animacion\">\n <img class=\"FormaImagen\"\n [src]=\"'assets/modulos/' + (modulo.icono.replace('.png', '.webp'))\"\n alt=\"\" srcset=\"\">\n </div>\n <div class=\"field col-12 md:col-9\" >\n <div class=\"pl-3 animacion\" *ngIf=\"modulo\">\n\n <h2 >\n <span >{{'Bienvenido'}} a</span><br>\n {{modulo.descripcion}}\n </h2>\n <div class=\"col-12 md:col-9 separador\"></div>\n <div>\n <p>{{modulo.descripcionLarga}}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"Inputgroup-borde pt-2\"></div> -->\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RolModel } from '../../../seguridad/modelos/RolModel';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { StorageService } from '../../../core/servicios/storage.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CargarControlFuncionalidadService } from '../../../core/servicios/cargar-control-funcionalidad.service';\nimport { ModulosModel } from '../../../seguridad/modelos/ModulosModel';\nimport { TareasModel } from '../../../seguridad/modelos/TareasModel';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'app-seleccion-rol',\n imports: [DialogModule, FormsModule, CommonModule, TableModule,],\n standalone: true,\n templateUrl: './seleccion-rol.component.html',\n styleUrls: ['./seleccion-rol.component.scss'],\n})\nexport class SeleccionRolComponent implements OnInit {\n @Input() mostrar: boolean;\n @Input() codigoAplicacion: string;\n @Output() regresar = new EventEmitter();\n\n listRoles: RolModel[];\n rolSeleccionado: RolModel;\n rowGroupMetadata: any;\n rolesConexionEmpresa: RolModel[];\n filtrolRolesConexionEmpresa: RolModel[];\n listaEmpresa = new Map();\n listaPerfiles = new Map();\n listaConexiones = new Map();\n parametroBusqueda: string = null;\n admonPortal: boolean = false;\n\n constructor(\n private router: Router,\n private storageService: StorageService,\n private cookieService: CookieService,\n private authService: AuthService,\n private utilsService: UtilsService,\n private controlFuncionalidad: CargarControlFuncionalidadService\n ) { }\n\n ngOnInit(): void {\n this.parametroBusqueda = '';\n this.rolesConexionEmpresa = [];\n this.listRoles = [];\n }\n\n public cargar(listaRoles, admonPortal) {\n\n this.rolSeleccionado = null;\n this.admonPortal = admonPortal;\n\n this.listRoles = listaRoles;\n\n this.rolesConexionEmpresa = [];\n\n for (let rol of this.listRoles) {\n\n if (!this.rolesConexionEmpresa.some(r =>\n r.codigoConexion === rol.codigoConexion &&\n r.nombreConexion === rol.nombreConexion &&\n r.codigoEmpresa === rol.codigoEmpresa &&\n r.nombreEmpresa === rol.nombreEmpresa &&\n r.numeroEmpresa === rol.numeroEmpresa &&\n r.llaveRol === rol.llaveRol &&\n r.nombreRol === rol.nombreRol)) {\n this.rolesConexionEmpresa.push(rol);\n this.listaEmpresa.set(rol.codigoEmpresa, rol.nombreEmpresa);\n this.listaPerfiles.set(rol.llaveRol, rol.nombreRol);\n this.listaConexiones.set(rol.codigoConexion, rol.nombreConexion);\n }\n }\n\n this.filtrolRolesConexionEmpresa = [...this.rolesConexionEmpresa];\n }\n\n public getNombreRol(): string | null {\n if (this.listaPerfiles.size > 1 || this.rolesConexionEmpresa.length === 0) {\n return null;\n }\n return this.rolesConexionEmpresa[0].nombreRol;\n }\n\n public getNombreEmpresa(): string | null {\n if (this.listaEmpresa.size > 1 || this.rolesConexionEmpresa.length === 0) {\n return null;\n }\n return this.rolesConexionEmpresa[0].nombreEmpresa;\n }\n\n public getNombreConexion(): string | null {\n if (this.listaConexiones.size > 1 || this.rolesConexionEmpresa.length === 0) {\n return null;\n }\n return this.rolesConexionEmpresa[0].nombreConexion;\n }\n\n cargarListadoFiltro() {\n\n if (this.parametroBusqueda.trim() === '') {\n this.filtrolRolesConexionEmpresa = [...this.rolesConexionEmpresa];\n } else {\n this.filtrolRolesConexionEmpresa = this.rolesConexionEmpresa.filter(rol =>\n rol.nombreEmpresa.toLowerCase().includes(this.parametroBusqueda.toLowerCase()) ||\n rol.nombreConexion.toLowerCase().includes(this.parametroBusqueda.toLowerCase()) ||\n rol.nombreRol.toLowerCase().includes(this.parametroBusqueda.toLowerCase())\n );\n }\n\n }\n\n verAction() {\n var urlapinucleo = this.cookieService.get('urlnucleo')\n this.rolSeleccionado.admonPortal = this.admonPortal\n this.storageService.setItem(\n 'rol_seleccionado',\n JSON.stringify(this.rolSeleccionado)\n );\n this.rolSeleccionado.aplicacion = this.codigoAplicacion;\n this.storageService.setRolSeleccionado(this.rolSeleccionado);\n this.authService.seleccionRol(this.rolSeleccionado).subscribe((data) => {\n /*let rol: any = {}\n rol.codigoRol = this.authService.getTokenKey('llaveRol');\n this.authService.generarTokenPublico().subscribe(data2 => {\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, data2.token).subscribe({});*/\n const token = (data as any)?.token as string;\n this.storageService.setItem('token', token);\n this.storageService.setItem('controlFuncionalidades', (data as any).controlesfuncionalidades);\n /********************************************************************************************/\n /* Codigo temporal para mantener las tareas, pero estas deben ser obtenidas por un servicio */\n var tareas: TareasModel[] = (data as any).tareasmodulo;\n this.storageService.setItem('__tareas', JSON.stringify(tareas));\n var modulosDeTareas = tareas.filter((obj, index, self) => {\n return index === self.findIndex((o) => o.modulo === obj.modulo);\n });\n var modulos: ModulosModel[] = [];\n modulosDeTareas.forEach(data => {\n let modulo: ModulosModel = {\n llave: data.modulo,\n descripcion: data.nombreModulo,\n icono: data.iconoModulo\n }\n modulos.push(modulo)\n })\n this.storageService.setItem('modulos', JSON.stringify(modulos));\n if (this.storageService.getItem('moduloFavorito') !== undefined && this.storageService.getItem('moduloFavorito')) {\n this.storageService.setItem('moduloSeleccionado', this.storageService.getItem('moduloFavorito'));\n } else {\n let modulodefecto = (data as any)?.modulodefecto;\n if (!modulodefecto) {\n modulodefecto = modulos[0].llave;\n }\n this.storageService.setItem('moduloSeleccionado', modulodefecto);\n }\n this.regresarRegistro()\n if (window.location.href.toString().includes('admonPortal')) {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\n } else {\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\n }\n });\n }\n\n\n regresarRegistro() {\n this.mostrar = false;\n this.regresar.emit();\n }\n\n}","<p-dialog id='popupSeleccionPlantilla' header=\"Perfil\" [(visible)]=\"mostrar\" appendTo=\"body\"\n (onHide)=\"regresarRegistro()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{'min-width':'20vw'}\"\n [modal]=\"true\" [draggable]=\"false\">\n\n <span class=\"p-input-icon-left mb-3 w-full\">\n <i class=\"pi pi-search\"></i>\n <input class=\" w-full p-inputtext\" type=\"text\" pInputText [(ngModel)]=\"parametroBusqueda\" (keyup.enter)=\"cargarListadoFiltro()\" />\n </span>\n\n <!-- Contenido -->\n <div class=\"flex mb-3\">\n <!--Empresa -->\n <div class=\"flex align-items-center mr-4\" pTooltip=\"Empresa\" tooltipPosition=\"top\"\n *ngIf=\"getNombreEmpresa() != null\">\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-building color-400\"></i>\n <label class=\"font-semibold\" htmlFor=\"id_empresa\"> {{getNombreEmpresa() | uppercase}}</label>\n <!-- <label htmlFor=\"empresa\">{{'empresa' | translate}}</label> -->\n </div>\n <!--Conexion -->\n <div class=\"flex align-items-center mr-4\" pTooltip=\"Conexión\" tooltipPosition=\"top\"\n *ngIf=\"getNombreConexion() != null\">\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-book color-400 font-semibold\"></i>\n <label class=\"font-semibold\" htmlFor=\"id_rol\"> {{getNombreConexion() | uppercase}}</label>\n\n </div>\n <!--Rol -->\n <div class=\"flex align-items-center\" pTooltip=\"Rol\" tooltipPosition=\"top\" *ngIf=\"getNombreRol() != null\">\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-user color-400\"></i>\n <label class=\"font-semibold\" htmlFor=\"id_rol\"> {{getNombreRol()}}</label>\n </div>\n </div>\n\n <p-table [value]=\"filtrolRolesConexionEmpresa\" responsiveLayout=\"scroll\" [paginator]=\"listRoles.length > 10\" [rows]=\"10\"\n [(selection)]=\"rolSeleccionado\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction()\" selectionMode=\"single\">\n <!-- header de la tabla de seleccion rol -->\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th *ngIf=\"getNombreEmpresa() == null\">Nombre Empresa</th>\n <th *ngIf=\"getNombreConexion() == null\">Conexión</th>\n <th *ngIf=\"getNombreRol() == null\">Rol</th>\n </tr>\n </ng-template>\n <!-- cuerpo de la tabla -->\n <ng-template pTemplate=\"body\" let-rol let-rowIndex=\"rowIndex\">\n <tr [pSelectableRow]=\"rol\">\n <td *ngIf=\"getNombreEmpresa() == null\" style=\"min-width: 200px\">\n {{rol.nombreEmpresa}}\n </td>\n <td *ngIf=\"getNombreConexion() == null\" style=\"min-width: 200px\">\n {{ rol.nombreConexion}}\n </td>\n <td *ngIf=\"getNombreRol() == null\" style=\"min-width: 200px\">\n {{ rol.nombreRol }}\n </td>\n </tr>\n </ng-template>\n </p-table>\n</p-dialog>","import { Component, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoadingService } from '../../servicios/loading.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-carga-pantalla-completa',\n imports: [CommonModule],\n standalone: true,\n templateUrl: './carga-pantalla-completa.component.html',\n styleUrls: ['./carga-pantalla-completa.component.scss']\n})\nexport class CargaPantallaCompletaComponent implements OnInit {\n\n public isLoading: boolean;\n loadingSubscription: Subscription;\n\n constructor(private loadingService: LoadingService) { }\n\n ngOnInit(): void {\n this.loadingSubscription = this.loadingService.loadingFullScreen.subscribe(\n state => this.isLoading = state\n )\n }\n\n ngOnDestroy(): void {\n if(this.loadingSubscription){\n this.loadingSubscription.unsubscribe();\n }\n }\n\n}\n","<div *ngIf=\"isLoading\" class=\"progress-spinner\">\n <div class=\"splash-screen\">\n <div class=\"splash-loader-container\">\n <svg class=\"splash-loader\" width=\"65px\" height=\"65px\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle class=\"splash-path\" fill=\"none\" stroke-width=\"6\" stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </svg>\n </div>\n </div>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { lastValueFrom } from 'rxjs';\nimport { AuthenticationError } from '../../../core/errores/authentication.error';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { LoadingService } from '../../../core/servicios/loading.service';\nimport { RolModel } from '../../../seguridad/modelos/RolModel';\nimport { SeleccionRolComponent } from '../seleccion-rol/seleccion-rol.component';\nimport { StorageService } from '../../../core/servicios/storage.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { GeneralPipe } from '../../../webcommon/pipes/general.pipe';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PasswordModule } from 'primeng/password';\nimport { CargaPantallaCompletaComponent } from '../../../core/componentes/carga-pantalla-completa/carga-pantalla-completa.component';\nimport { MessageService } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n imports: [ReactiveFormsModule, CommonModule, TranslateModule, PasswordModule, CargaPantallaCompletaComponent, SeleccionRolComponent, ButtonModule,],\n standalone: true,\n providers: [MessageService,],\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n loginForm: FormGroup;\n urlapinucleo: string;\n codigoAplicacion: string;\n nombreAplicacion: string;\n admonPortal: boolean = false;\n estilo:string;\n icono:string;\n\n public mostrarRoles: boolean = false;\n public listRoles: RolModel [] = [];\n private _rolSeleccionado: RolModel;\n\n @ViewChild(SeleccionRolComponent) componenteSeleccionRol:SeleccionRolComponent;\n\n constructor(\n private formBuilder: FormBuilder,\n private toastService: ToastService,\n private authService: AuthService,\n private route: Router,\n private activatedRoute: ActivatedRoute,\n private loadingService: LoadingService,\n private storageService: StorageService,\n private generalPipe: GeneralPipe,\n private utilsService: UtilsService\n ) {}\n\n ngOnInit(): void {\n this.activatedRoute.data.subscribe((v) =>{\n this.codigoAplicacion = v['codigoAplicacion']\n this.nombreAplicacion = v['nombreAplicacion']\n this.urlapinucleo = v['urlapinucleo']\n this.admonPortal = v['admonPortal']\n this.icono = this.generalPipe.MAPALOGOSICONOS.filter(item => item.codigo == v['codigoAplicacion'])[0].nombre;\n if(v['codigoAplicacion'] == '1'){\n this.estilo = 'left-side-sara col-12 md:col-6 xl:col-6'\n\n }else if(v['codigoAplicacion'] == '13' || v['codigoAplicacion'] == '77' || v['codigoAplicacion'] == '4'){\n this.estilo = 'left-side-sam col-12 md:col-6 xl:col-6'\n }else if(v['codigoAplicacion'] == '5'){\n this.estilo = 'left-side-seguridad col-12 md:col-6 xl:col-6'\n }else{\n this.estilo = 'left-side-sara col-12 md:col-6 xl:col-6'\n }\n this.loginForm = this.formBuilder.group({\n login: new FormControl( v['codigoAplicacion'] == '1' ? 'saraadmin' : 'manaadmin', [Validators.required]),\n clave: new FormControl('manaadmin', [Validators.required]),\n aplicacion: v['codigoAplicacion'],\n admonPortal: this.admonPortal\n });\n });\n\n }\n\n async login() {\n this.loadingService.startFullScreenLoading();\n try {\n this.storageService.setItem('roles', '');\n let data = await this.authService.generarTokenPublico().toPromise();\n let token = await lastValueFrom(\n this.authService.login(this.loginForm.value, this.urlapinucleo, data.token)\n );\n var roles = this.storageService.getItem('roles')\n if (roles) {\n this.mostrarRoles = true;\n this.listRoles = JSON.parse(roles);\n this.componenteSeleccionRol.cargar(this.listRoles, this.admonPortal );\n } else {\n if (window.location.href.toString().includes('admonPortal')) {\n this.route.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\n } else {\n this.route.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\n }\n }\n\n } catch (error) {\n if (error instanceof AuthenticationError) {\n this.toastService.showError(\n 'Por favor verifica los datos de acceso. Si el error persiste contacta al administrador.',\n 'Datos Inválidos'\n );\n } else {\n throw error;\n }\n } finally {\n this.loadingService.endFullScreenLoading();\n }\n }\n\n regresarSeleccionRol(){\n //this.storage.setEtiquetasYColores();\n this.mostrarRoles = false;\n }\n\n}\n","<div id=\"login\" class=\"grid p-input-filled\">\n <div [class]=\"estilo\">\n <div>\n <img class=\"logo\" src=\"assets/images/logous-blanco.png\" />\n <!-- <h1>{{codigoAplicacion}}</h1> -->\n <h1><img [src]=\"icono\" /> </h1>\n <div class=\"flex navegadores text-center\">\n <div>\n <img src=\"assets/images/navegador-chrome.png\" />\n <span class=\"font-bold text-sm\">20+</span>\n </div>\n <div>\n <img src=\"assets/images/navegador-explorer.png\" />\n <span class=\"font-bold text-sm\">10+</span>\n </div>\n <div>\n <img src=\"assets/images/navegador-firefox.png\" />\n <span class=\"font-bold text-sm\">20+</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"right-side col-12 md:col-6 xl:col-6\">\n <div class=\"p-5\">\n <h3 class=\"font-semibold text-3xl\">¡Bienvenido!</h3>\n <p class=\"mb-5\">Inicia sesión para controlar y planificar los recursos de tu organización de manera eficiente y segura.</p>\n <form [formGroup]=\"loginForm\" class=\"p-fluid\">\n <div class=\"p-inputgroup mb-4\">\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-user\"></i></span>\n <input class=\"p-inputtext p-component p-element ng-tns-c71-8 p-filled\" type=\"text\" pInputText placeholder=\"Usuario\" formControlName=\"login\" />\n </div>\n <div class=\"p-inputgroup mb-4\">\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-lock\"></i></span>\n <p-password\n [toggleMask]=\"true\"\n [feedback]=\"false\"\n placeholder=\"Clave\"\n formControlName=\"clave\"\n ></p-password>\n </div>\n <div class=\"text-right mt-7 mb-3 font-semibold text-base\">\n <a href=\"#\">Olvide mi clave</a>\n </div>\n <button pButton pRipple type=\"button\" label=\"Ingresar\" (click)=\"login()\" class=\"font-semibold text-lg\"></button>\n </form>\n </div>\n </div>\n</div>\n<app-carga-pantalla-completa></app-carga-pantalla-completa>\n\n<app-seleccion-rol [mostrar]=\"mostrarRoles\" (regresar)=\"regresarSeleccionRol()\"></app-seleccion-rol>\n\n","import { Component, OnInit } from '@angular/core';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { RouterModule } from '@angular/router';\nimport { StorageService } from '../../../core/servicios/storage.service';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\n\n@Component({\n imports: [RouterModule, ButtonModule, RippleModule],\n standalone: true,\n templateUrl: './not-found.page.html',\n styleUrls: ['./not-found.page.scss'],\n})\nexport class NotFoundPage implements OnInit {\n\n public mensaje: string;\n public urlRegresar: string;\n public labelMensaje: string;\n public mostrarBoton: boolean = true;\n\n constructor(public utilsService: UtilsService, private storageService: StorageService) {}\n\n ngOnInit(): void {\n this.mostrarBoton = true;\n this.mensaje = this.storageService.getItem('mensaje_notfound');\n this.urlRegresar = this.storageService.getItem('url_regresar');\n this.mostrarBoton = (this.storageService.getItem('mostrarboton_notfound') != null || this.storageService.getItem('mostrarboton_notfound') != undefined ? this.storageService.getItem('mostrarboton_notfound') =='true' : true);\n\n if (this.urlRegresar) {\n this.labelMensaje = 'Regresar a la página anterior';\n } else {\n this.labelMensaje = 'Ir a la página de Inicio';\n }\n this.storageService.removeItem('mensaje_notfound');\n this.storageService.removeItem('url_regresar');\n this.storageService.removeItem('mostrarboton_notfound');\n }\n\n accion() {\n if (this.urlRegresar) {\n window.location.href = this.urlRegresar;\n } else {\n window.location.href = window.location.origin + '/' + this.utilsService.obtenerBase() + '/inicio';\n }\n }\n}\n","<div id=\"not-found\"\nclass=\"flex flex-column flex-wrap justify-content-start align-content-center align-items-center\">\n <div class=\"flex flex-column card-container\">\n \n <div class=\"flex align-items-center justify-content-center\">\n <div>\n <img class=\"align-items-center justify-content-center\" src=\"assets/images/not-found.png\" />\n </div>\n <div>\n\n <div class=\"p-inputgroup mb-4 w-16rem\">\n <span class=\"p-inputgroup-search\"><i class=\"pi pi-search color-700\"></i></span>\n <input class=\"p-inputtext p-component p-element ng-tns-c71-8 p-filled\" type=\"text\" pInputText placeholder=\"Buscar\" formControlName=\"login\" />\n </div>\n\n <h4>404</h4>\n <h5>Página no encontrada</h5>\n <p>Lo sentimos la página que buscas no existe</p>\n @if (mensaje) {\n <div class=\"flex align-items-center justify-content-center\">\n <h6>{{mensaje}}</h6>\n </div>\n }\n @if (mostrarBoton) {\n <div>\n <button (click)=\"accion()\" pButton pRipple class=\"justify-content-start align-content-center align-items-center\"> {{labelMensaje}}</button>\n \n </div>\n }\n </div>\n </div>\n \n\n</div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n imports: [RouterModule],\n standalone: true,\n templateUrl: './timeout.page.html',\n styleUrls: ['./timeout.page.scss']\n})\nexport class TimeoutPage implements OnInit {\n\n constructor(public utilsService: UtilsService) { }\n\n ngOnInit(): void {\n }\n\n}\n","<div id=\"timeout\"\nclass=\"flex flex-column flex-wrap justify-content-start align-content-center align-items-center\">\n <div class=\"aling-items-center justify-content-center flex flex-column card-container\">\n \n <div class=\"flex align-items-center justify-content-center\">\n <div>\n <img class=\"align-items-center justify-content-center\" src=\"assets/images/timeout.png\" />\n </div>\n <div>\n\n\n \n <div>\n <h4>Tu sesión ha finalizado</h4>\n <button routerLink=\"/{{utilsService.obtenerBase()}}/login\" pButton pRipple class=\"text-xl\">Iniciar sesión</button>\n \n </div>\n \n </div>\n </div>\n \n\n</div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n inject,\n Renderer2,\n ElementRef} from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { ChipModule } from 'primeng/chip';\nimport { Dialog } from 'primeng/dialog';\nimport { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';\n\n@Component({\n selector: 'app-filtro-general',\n imports: [ChipModule, OverlayPanelModule, ReactiveFormsModule, TranslateModule, ButtonModule, FormsModule, CommonModule],\n standalone: true,\n templateUrl: './filtro-general.component.html',\n styleUrls: ['./filtro-general.component.scss'],\n})\nexport class FiltroGeneralComponent implements OnInit {\n @ViewChild('op') overlayPanel: any;\n\n @Input() filtros: any[];\n\n @Input() datatable;\n\n @Output() metodoRegresar = new EventEmitter();\n @Output() metodoRegresarAdicional = new EventEmitter();\n\n @ViewChild(OverlayPanel) panel: OverlayPanel;\n public eventoPanel;\n @ContentChild(TemplateRef) inputFilters: TemplateRef<any>;\n\n filterForm: FormGroup = new FormGroup({});\n\n chips: any[] = [];\n\n isApply: boolean = false;\n\n private clickListener: Function | null = null;\n\n private renderer = inject(Renderer2);\n private elRef = inject(ElementRef);\n private dialog = inject(Dialog, { optional: true, self: true });\n\n constructor() { }\n\n ngOnInit(): void {\n if (this.filtros === undefined) {\n } else {\n this.filtros.forEach((control) => {\n this.filterForm.addControl(control.field, new FormControl());\n });\n }\n }\n\n onHide() {\n if (!this.isApply) {\n this.filtros.forEach((filtro) => {\n const chipActive = this.chips.find(\n (chip) => chip.field === filtro.field\n );\n this.filterForm.get(filtro.field).setValue(chipActive?.value);\n });\n }\n this.isApply = false;\n }\n\n abrirPanel(event): void {\n this.eventoPanel = event;\n this.panel.show(event);\n this.showOverlay(this.overlayPanel, event)\n }\n\n limpiarFiltros() {\n this.isApply = false;\n this.chips = [];\n this.filterForm.reset();\n this._updateFilters();\n }\n\n aplicarFiltros() {\n this.isApply = true;\n this.panel.hide();\n this.chips = [];\n this._updateFilters();\n }\n\n removeChip(chip) {\n this._updateFilters(chip);\n }\n\n _updateFilters(chip?: any): void {\n const filters = {};\n this.filtros.forEach((filtro) => {\n if (chip?.field !== filtro.field) {\n const value = this.filterForm.get(filtro.field).value;\n if (value) {\n filters[filtro.field] = { value: value, matchMode: filtro.matchMode };\n\n if (!chip) {\n if (Array.isArray(value)) {\n var mostrar = '';\n for (let i = 0; i < value.length; i++) {\n if (i > 0) {\n mostrar = mostrar + ' - '\n }\n if (value[i] instanceof Date) {\n mostrar = mostrar + new DatePipe('en-US').transform(value[i], 'dd/MM/yyyy')\n } else {\n mostrar = mostrar + value[i]\n }\n }\n this.chips.push({\n field: filtro.field,\n value: value,\n label: filtro.values ? filtro.values(value) : value,\n header: filtro.header,\n disabled: filtro.disabled,\n labelMostrar: mostrar\n });\n } else {\n this.chips.push({\n field: filtro.field,\n value: value,\n label: filtro.values ? filtro.values(value) : value,\n header: filtro.header,\n disabled: filtro.disabled,\n labelMostrar: filtro.formatDate\n ? new DatePipe('en-US').transform(value, 'dd/MM/yyyy')\n : filtro.values\n ? filtro.values(value)\n : value,\n formatDate: filtro.formatDate,\n });\n }\n }\n }\n } else {\n this.chips = this.chips.filter((chip) => chip.field !== filtro.field);\n this.filterForm.get(filtro.field).setValue(null);\n }\n });\n if (this.datatable) {\n if (this.datatable.table?.filters) {\n this.datatable.table.filters = filters;\n this.datatable.table._filter();\n } else {\n this.datatable.filters = filters;\n this.datatable._filter();\n }\n } else {\n this.metodoRegresar.emit(filters);\n }\n\n if (this.metodoRegresarAdicional) {\n this.metodoRegresarAdicional.emit(filters);\n }\n }\n\n //listener del overlay @autor Jesus-Ramirez\n showOverlay(op: any, event: Event) {\n this.clickListener = null\n // Mostrar el overlay panel\n op.show(event); //muestra el overlay-panel\n if (this.dialog) /* Si el overlay está dentro de un p-dialog, usa el método de ocultar al perder el foco*/ {\n // Eliminar cualquier listener anterior\n if (this.clickListener) {\n this.clickListener();\n }\n // adicionar listener para cerrar el overlay al hacer clic fuera de él\n this.clickListener = this.renderer.listen('document', 'click', (clickEvent: Event) => {\n const clickedInsideOverlay = this.elRef.nativeElement.contains(clickEvent.target);\n if (!clickedInsideOverlay) {\n op.hide();\n this.removeClickListener(); // remueve el overlay\n }\n });\n }\n }\n\n removeClickListener() {\n if (this.clickListener) {\n this.clickListener();\n this.clickListener = null;\n }\n }\n\n ngOnDestroy() {\n this.removeClickListener();\n }\n}\n","<div class=\"flex justify-content-start align-items-center\">\n <div class=\"flex align-items-center\">\n <h4 class=\"m-0 mr-2 text-black-alpha-90\">Filtros</h4>\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-filter\"\n class=\"p-button-rounded p-button-outlined\"\n (click)=\"abrirPanel($event)\"\n ></button>\n </div>\n <div class=\"ml-3\">\n <p-chip\n *ngFor=\"let chip of chips\"\n [label]=\"chip.header + ': ' + (chip.labelMostrar.length > 100 ? chip.labelMostrar.substring(0, 100) + '...' : chip.labelMostrar)\"\n styleClass=\"m-1\"\n [removable]=\"chip.disabled ? false : true\"\n (onRemove)=\"removeChip(chip)\"\n ></p-chip>\n </div>\n</div>\n\n<p-overlayPanel #op (onHide)=\"onHide()\" [dismissable]=\"false\" [showCloseIcon]=\"true\">\n <div class=\"grid p-input-filled\">\n <form [formGroup]=\"filterForm\" class=\"p-fluid col-12\">\n <ng-container *ngTemplateOutlet=\"inputFilters; context: { $implicit: filterForm }\"></ng-container>\n <div class=\"flex justify-content-end mt-2 align-items-center\">\n <button pButton pRipple (click)=\"aplicarFiltros()\" class=\"ml-2\">{{'link_aplicar' | translate}}</button>\n <button pButton pRipple (click)=\"limpiarFiltros()\" icon=\"glyphicons glyphicons-cleaning\" class=\"p-button-rounded p-button-outlined ml-2\"></button>\n </div>\n </form>\n </div>\n</p-overlayPanel>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChildren,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { Table, TableModule } from 'primeng/table';\nimport { TableColumn } from '../../modelos/table-column.model';\nimport { CommonModule, DatePipe, TitleCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PaginatorModule } from 'primeng/paginator';\n\n@Component({\n selector: 'app-tabla-general',\n imports: [TableModule, TitleCasePipe, DatePipe, TranslateModule, CommonModule, PaginatorModule],\n standalone: true,\n templateUrl: './tabla-general.component.html',\n styleUrls: ['./tabla-general.component.scss'],\n})\nexport class TablaGeneralComponent implements OnInit, AfterContentInit, AfterViewInit {\n @Input() dataKey: string;\n\n @Input() value: any[] = [];\n\n @Input() columns: TableColumn[] = [];\n\n @Input() rows: number;\n\n @Input() totalRecords: number;\n\n @Input() loading: boolean;\n\n @Input() ocultarFraccionador: boolean;\n\n @Output() onLoad: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() onRowSelect: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\n\n @ViewChild(Table) table: Table;\n\n headerTemplate: TemplateRef<any>;\n bodyTemplate: TemplateRef<any>;\n rowExpansionTemplate: TemplateRef<any>;\n\n showFrozen: boolean = false;\n minTableWidth: number = 200;\n\n constructor() { }\n\n ngOnInit(): void {\n this.minTableWidth = this.columns.reduce((acc, column) => {\n return acc + column.width;\n }, 0);\n }\n\n ngAfterContentInit(): void {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'body':\n this.bodyTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this._shouldFreezeTable());\n }\n\n @HostListener('window:resize')\n onResize() {\n this._shouldFreezeTable();\n }\n\n _shouldFreezeTable() {\n this.showFrozen = this.table.tableViewChild.nativeElement.parentElement.clientWidth < this.minTableWidth;\n }\n\n parseDate(obj) {\n return new Date(obj);\n }\n}\n","<p-table\n [dataKey]=\"dataKey\"\n [value]=\"value\"\n [columns]=\"columns\"\n selectionMode=\"single\"\n [scrollable]=\"true\"\n responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\"\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\n [paginator]=\"totalRecords > rows\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" [loading]=\"loading\"\n (onLazyLoad)=\"onLoad.emit($event)\"\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\n>\n <!-- Header Template-->\n <ng-template pTemplate=\"header\" let-columns>\n <ng-container *ngIf=\"headerTemplate; else header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </ng-container>\n <ng-template #header>\n <tr>\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n {{ col.header | titlecase }}\n </th>\n </ng-container>\n <ng-template #headCell>\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n {{ col.header | titlecase }}\n </th>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n\n <!-- Body Template-->\n <ng-template\n pTemplate=\"body\"\n let-row\n let-rowIndex=\"rowIndex\"\n let-columns=\"columns\"\n let-expanded=\"expanded\"\n let-rowgroup=\"rowgroup\"\n let-rowspan=\"rowspan\"\n >\n <ng-container *ngIf=\"bodyTemplate; else body\">\n <ng-container\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #body>\n <tr [pSelectableRow]=\"row\">\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-container>\n <ng-template #bodyCell>\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-template>\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n</p-table>\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n})\nexport class WebCommonModule { \n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { CookieService } from 'ngx-cookie-service';\nimport { UtilsService } from '../../core/servicios/utils.service';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeneralService {\n\n \n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n queryForList(general: GeneralModel,ambiente?: any): Observable<any[]> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<any[]>(`${ambiente}/requieretoken/general/queryForList`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n queryForObject(general: GeneralModel,ambiente?: any): Observable<any> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/queryForObject`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n cantidadRegistros(general: GeneralModel,ambiente?: any): Observable<number> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/cantidadRegistros`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n crearRegistro(general: GeneralModel,ambiente?: any): Observable<any> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/crearRegistro`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n delete(general: GeneralModel,ambiente?: any): Observable<number> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/delete`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n update(general: GeneralModel,ambiente?: any): Observable<number> {\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/update`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n procedure(general: GeneralModel,ambiente?: any): Observable<any> {\n console.log('Objeto: ' + JSON.stringify(general));\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n console.log('INGRESO PROCEDIMIENTO: ' + ambiente + '/requieretoken/general/procedure');\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/procedure`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n obtenerJasper(rutaJasper,ambiente?: any): Observable<any> {\n let formData = new FormData();\n formData.append(\"jasper\", rutaJasper);\n let url = this.utilsService.obtenerUrlApi();\n if (!ambiente){\n ambiente = url;\n }\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/obtenerJasper`, formData).pipe(\n catchError(this.handleError)\n );\n }\n}\n\n\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { GeneralService } from './general.service';\nimport { UtilsService } from '../../core/servicios/utils.service';\nimport { ActivatedRoute } from \"@angular/router\";\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class cargarmapasGlobal {\n listatempString: any[];\n listaTempNumberString: any[];\n urlapi: any;\n constructor( private generalService: GeneralService, private activatedRoute: ActivatedRoute, private utilsService: UtilsService,\n ) { \n\n this.urlapi = this.activatedRoute.data.toPromise();\n }\n\n async cargarSelectItemString(nombrekey: string, nombreLabel: string, filtro: GeneralModel): Promise<any[]> {\n let mapatemp: Map<string, String> = new Map<string, String>();\n let data\n data = await this.generalService.queryForList(filtro,this.urlapi['environment.urlapisara']).toPromise();\n data.forEach(element => {\n mapatemp.set(element[nombrekey], this.utilsService.capitalizeFully(element[nombreLabel]));\n });\n return this.listatempString = Array.from(mapatemp, ([key, label]) => ({ key, label }));\n }\n\n async cargarSelectItemConNumberString(nombrekey: string, nombreLabel: string, filtro: GeneralModel): Promise<any[]> {\n let mapatemp: Map<number, String> = new Map<number, String>();\n let data\n data = await this.generalService.queryForList(filtro,this.urlapi['environment.urlapisara']).toPromise();\n data.forEach(element => {\n mapatemp.set(parseInt(element[nombrekey]), this.utilsService.capitalizeFully(element[nombreLabel]));\n });\n return this.listaTempNumberString = Array.from(mapatemp, ([key, label]) => ({ key, label }));\n }\n\n\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ParametrosNavegacionService {\n\n parametros: any;\n\n constructor() { }\n\n setParametros(parametros: any) {\n this.parametros = parametros;\n }\n\n getParametros() {\n return this.parametros;\n }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n })\n export class FuenteGeneralService{\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n getUrl(): string | null {\n return this.cookieService.get('urlnucleo')\n }\n\n obtenerListaServicio(general: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/obtenerListaServicio`, general).pipe(\n catchError(this.handleError)\n );\n }\n obtenerListaHomologacion(general: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/obtenerListaHomologacion`, general).pipe(\n catchError(this.handleError)\n );\n }\n cargarCampos(general: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/cargarCampos`, general).pipe(\n catchError(this.handleError)\n );\n }\n guardarCampos(general: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/guardarCamposServicio`, general).pipe(\n catchError(this.handleError)\n );\n }\n validarCondicion(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/webcommon/validarcondicion`, general);\n }\n eliminarServicio(general: any): Observable<number> {\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/webcommon/eliminarServicio`, general).pipe(\n catchError(this.handleError)\n );\n }\n validarFormulaFuente(general: any): Observable<boolean> {\n return this.httpClient.post<boolean>(`${this.getUrl()}/requieretoken/webcommon/validarFormulaFuente`, general);\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EncriptadoBasicoService {\n\n tam: any[] = ['e', 'a', 'c', 'd'];\n\n constructor() { }\n\n encriptar(original: string): string {\n\n if (original == null) {\n return null;\n }\n\n let res: string = '';\n\n for (let index = 0; index < original.length; index++) {\n let cod: string = Number(original.charCodeAt(index)).toString(16);\n res = res.concat(this.tam[cod.length] + cod);\n }\n return res;\n\n }\n\n desencriptar(encriptado: string): string {\n if (encriptado == null) {\n return null;\n }\n let res: string = '';\n let i: number = 0;\n while (i < encriptado.length) {\n let largo = this.binarySearch(this.tam, encriptado.charAt(i));\n let letra = String.fromCharCode( parseInt(encriptado.substring(i + 1, i + 1 + largo),16));\n res = res.concat(letra);\n i += 1 + largo;\n }\n return res.toString();\n }\n\n binarySearch(arr, value): any {\n var low = 0 , high = arr.length -1 ,mid ; \n while (low <= high){\n mid = Math.floor((low+high)/2); \n if(arr[mid]==value) return mid ; \n else if (arr[mid]<value) low = mid+1;\n else high = mid-1; \n }\n return -1 ;\n }\n\n}\n","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n })\n export class CargueLineaService{\n\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n \n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\n this.handleError = this.handleError.bind(this);\n }\n \n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n eliminarProceso(general): Observable<any[]> {\n let url = this.cookieService.get('urlnucleo')\n return this.httpClient.post<any[]>(`${url}/requieretoken/sarageneral/carguelinea/eliminarProceso`, general).pipe(\n catchError(this.handleError)\n );\n }\n \n ejecutar(accion, archivo, fuenteDTO, procesoDTO, entradas, campos, datos, lineasCargadas): Observable<HttpEvent<{}>> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"archivo\", archivo);\n formData.append(\"fuenteDTO\", JSON.stringify(fuenteDTO));\n formData.append(\"accion\", accion);\n formData.append(\"procesoDTO\", JSON.stringify(procesoDTO));\n formData.append(\"entradas\", JSON.stringify(entradas));\n formData.append(\"campos\", JSON.stringify(campos));\n formData.append(\"datos\", JSON.stringify(datos));\n formData.append(\"lineasCargadas\", JSON.stringify(lineasCargadas));\n\n const req = new HttpRequest('POST', `${url}/requieretoken/sarageneral/carguelinea/ejecutar`, formData, {\n reportProgress: true,\n })\n return this.httpClient.request(req).pipe(\n catchError(this.handleError)\n );\n }\n\n cancelarProceso(general): Observable<any> {\n let url = this.cookieService.get('urlnucleo')\n return this.httpClient.post<any>(`${url}/requieretoken/sarageneral/carguelinea/cancelarProceso`, general).pipe(\n catchError(this.handleError)\n );\n }\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, map, of, throwError } from 'rxjs';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { UtilsService } from '../../core/servicios/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EjecucionReporteService {\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n console.log(error)\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n getDatosEjecucionReporte(reporte): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/consultar`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n guardarReporte(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/guardarReporte`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n eliminarReporte(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/eliminarReporte`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n consultarListas(): Observable<any> {\n return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/consultarListas`).pipe(\n catchError(this.handleError)\n );\n }\n\n guardarEntrada(entrada: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/guardarEntrada`, entrada).pipe(\n catchError(this.handleError)\n );\n }\n\n cargarCampos(entrada: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/cargarCampos`, entrada).pipe(\n catchError(this.handleError)\n );\n }\n\n construirColumnas(entrada: any): Observable<any[]> {\n return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/construirColumnas`, entrada).pipe(\n catchError(this.handleError)\n );\n }\n\n generarJasper(llaveReporte, jasper): Observable<any> {\n let formData = new FormData();\n formData.append(\"llaveReporte\", llaveReporte);\n formData.append(\"jasper\", jasper);\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/generarJasper`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n eliminarEjecucionReporte(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/eliminarEjecucionReporte`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n obtenerListaEntradaEjecucion(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/obtenerListaEntradaEjecucion`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n obtenerSentencia(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/obtenerSentencia`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n enviarSegundoPlano(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/enviarSegundoPlano`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n descargarReporte(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/descargarReporte`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n generarTabla(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/generarTabla`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n actualizarReporteColumnaOrden(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/actualizarReporteColumnaOrden`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n descargarArchivo(parametroGeneral: any): Observable<any> {\n\n const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/generalSara/descargarArchivo`;\n return this.httpClient.post(url, parametroGeneral, {\n \n responseType: 'blob',\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n }\n \n descargarArchivoMasivo(parametroGeneral: any): Observable<Blob> {\n\n const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/generalSara/descargarArchivoMasivo`;\n return this.httpClient.post(url, parametroGeneral, {\n responseType: 'blob',\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n }\n\n verGrafico(reporte: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/verGrafico`, reporte).pipe(\n catchError(this.handleError)\n );\n }\n\n}","import { HttpClient, HttpRequest, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\n\nimport { CookieService } from 'ngx-cookie-service';\nimport { UtilsService } from '../../core/servicios/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FechaUtilsService {\n\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService, private utilService: UtilsService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n horaMinuto(general: any): Observable<any> {\n\n const year = general.getFullYear();\n const month = general.getMonth() + 1;\n const day = general.getDate();\n const hours = general.getHours();\n const minutes = general.getMinutes();\n const seconds = general.getUTCSeconds();\n const milliseconds = general.getUTCMilliseconds();\n const fechaFormateada = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${milliseconds}`;\n\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/horaMinuto`, fechaFormateada).pipe(\n catchError(this.handleError)\n );\n }\n\n horaminutoFecha(general: any): Observable<any> {\n\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/horaminutoFecha`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n formatFecha(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/formatFecha`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n sumaDiaFecha(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/sumaDiaFecha`, general).pipe(\n catchError(this.handleError)\n );\n }\n \n primerDiaSemana(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/primerDiaSemana`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n cambiarDiaSemana(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/cambiarDiaSemana`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n calcularHoras(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/calcularHoras`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n fechaTexto(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/fechaTexto`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n fechasTexto(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/fechasTexto`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n obtenerFecha(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/obtenerFecha`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n ultimoDiaMes(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/ultimoDiaMes`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HomologacionService {\n\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n getUrl(): string | null {\n return this.cookieService.get('urlnucleo')\n }\n\n obtenerListaHomologacion(general: any): Observable<any> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/sarageneral/obtenerListaHomologacion`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n obtenerListaDestino(general: any): Observable<any> {\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/sarageneral/homologacion/obtenerListaDestino`, general).pipe(\n catchError(this.handleError)\n );\n }\n \n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { throwError, Observable, catchError } from 'rxjs';\n\nimport { CookieService } from 'ngx-cookie-service';\nimport { FuenteDatoModel } from '../../seguridad/modelos/FuenteDato';\nimport { ColumnaFuenteModel } from '../../seguridad/modelos/ColumnaFuenteModel';\nimport { ObjetoReporteModel } from '../../seguridad/modelos/ObjetoReporteModel';\n\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ReportesService {\n\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n obtenerProcesoExterno(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/obtenerProcesoExterno`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n getUrl(): string | null {\n return this.cookieService.get('urlnucleo')\n }\n\n obtenerRutaPlantilla(general: any): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/obtenerRutaPlantilla`, general).pipe(\n catchError(this.handleError)\n );\n }\n\n getLlaves(tablas: string[]): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getLlaves`, tablas).pipe(\n catchError(this.handleError)\n );\n }\n validarQuery(query: string): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/validarQuery`, query).pipe(\n catchError(this.handleError)\n );\n }\n eliminarFuenteDatosConHijos(query: FuenteDatoModel): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/validarQuery`, query).pipe(\n catchError(this.handleError)\n );\n }\n getColumnasSql(query: string): Observable<ColumnaFuenteModel[]> {\n return this.httpClient.post<ColumnaFuenteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getColumnasSql`, query).pipe(\n catchError(this.handleError)\n );\n }\n actualizarColumnasFuente(fuente: FuenteDatoModel, columnas: ColumnaFuenteModel[]): Observable<void> {\n let form = new FormData();\n form.append('fuente', JSON.stringify(fuente));\n form.append('columnas', JSON.stringify(columnas))\n return this.httpClient.post<void>(`${this.getUrl()}/requieretoken/sarageneral/reporte/actualizarColumnasFuente`, form).pipe(\n catchError(this.handleError)\n );\n }\n insertarFuenteDato(fuente: FuenteDatoModel): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/insertarFuenteDato`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n actualizarFuenteDato(fuente: FuenteDatoModel): Observable<void> {\n return this.httpClient.post<void>(`${this.getUrl()}/requieretoken/sarageneral/reporte/actualizarFuenteDato`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n consultarUnicaFuenteDato(filtro: FuenteDatoModel): Observable<any> {\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarUnicaFuenteDato`, filtro).pipe(\n catchError(this.handleError)\n );\n }\n consultarColumnasFuente(filtro: ColumnaFuenteModel): Observable<ColumnaFuenteModel[]> {\n return this.httpClient.post<ColumnaFuenteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarColumnasFuente`, filtro).pipe(\n catchError(this.handleError)\n );\n }\n consultarFuenteDato(fuente: FuenteDatoModel): Observable<FuenteDatoModel[]> {\n return this.httpClient.post<FuenteDatoModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarFuenteDato`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n cantidadFuenteDato(fuente: FuenteDatoModel): Observable<number> {\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/sarageneral/reporte/cantidadFuenteDato`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n getObjetos(fuente: ObjetoReporteModel): Observable<ObjetoReporteModel[]> {\n return this.httpClient.post<ObjetoReporteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getObjetos`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n getCantidadObjetos(fuente: ObjetoReporteModel): Observable<number> {\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getCantidadObjetos`, fuente).pipe(\n catchError(this.handleError)\n );\n }\n\n\n\n\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'fuentePipe',\n})\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FuentePipe implements PipeTransform {\n\n FUENTE_ARCHIVO = \"A\";\n FUENTE_WS = \"S\";\n FUENTE_ARCHIVO_DESC = \"Archivo Plano\";\n FUENTE_WS_DESC = \"Servicio Web\";\n\n ORIGEN_DATOS = [\n { codigo: this.FUENTE_ARCHIVO, nombre: this.FUENTE_ARCHIVO_DESC },\n { codigo: this.FUENTE_WS, nombre: this.FUENTE_WS_DESC },\n ]\n\n ELEMPLEO_GETRESUME_HOJA = \"ELEMPLEO_GETRESUMEE_HOJA\";\n ELEMPLEO_GETRESUME_HOJA_DESC = \"elempleo.com/getResumeeHoja\";\n ELEMPLEO_GETRESUME_EDU_FORMAL = \"ELEMPLEO_GETRESUMEE_EDU_FORMAL\";\n ELEMPLEO_GETRESUME_EDU_FORMAL_DESC = \"elempleo.com/getResumeeFormalEducation\";\n ELEMPLEO_GETRESUME_EXP = \"ELEMPLEO_GETRESUMEE_EXP\";\n ELEMPLEO_GETRESUME_EXP_DESC = \"elempleo.com/getResumeeExperience\";\n ELEMPLEO_GETRESUME_EDU = \"ELEMPLEO_GETRESUMEE_EDU\";\n ELEMPLEO_GETRESUME_EDU_DESC = \"elempleo.com/getResumeeEducation\";\n ELEMPLEO_GETRESUME_DATO_ADICI = \"ELEMPLEO_GETRESUMEE_DATO_ADICI\";\n ELEMPLEO_GETRESUME_DATO_ADICI_DESC = \"elempleo.com/getResumeeAditionalData\";\n ELEMPLEO_GETRESUME_LANG = \"ELEMPLEO_GETRESUMEE_IDIOMA\";\n ELEMPLEO_GETRESUME_LANG_DESC = \"elempleo.com/getResumeeLanguaje\";\n SANITAS_EBS = \"SANITAS_EBS\";\n SANITAS_EBS_DESC = \"sanitasEBS/getCargueNovedadesEbs\";\n\n\n SERVICIOS_WEB = [\n { codigo: this.ELEMPLEO_GETRESUME_HOJA, nombre: this.ELEMPLEO_GETRESUME_HOJA_DESC },\n { codigo: this.ELEMPLEO_GETRESUME_EDU_FORMAL, nombre: this.ELEMPLEO_GETRESUME_EDU_FORMAL_DESC },\n { codigo: this.ELEMPLEO_GETRESUME_EXP, nombre: this.ELEMPLEO_GETRESUME_EXP_DESC },\n { codigo: this.ELEMPLEO_GETRESUME_EDU, nombre: this.ELEMPLEO_GETRESUME_EDU_DESC },\n { codigo: this.ELEMPLEO_GETRESUME_DATO_ADICI, nombre: this.ELEMPLEO_GETRESUME_DATO_ADICI_DESC },\n { codigo: this.ELEMPLEO_GETRESUME_LANG, nombre: this.ELEMPLEO_GETRESUME_LANG_DESC },\n { codigo: this.SANITAS_EBS, nombre: this.SANITAS_EBS_DESC },\n ]\n\n\n PROCESO_CARGUE = \"N\";\n PROCESO_BPM = \"S\";\n PROCESO_ETAPASELECCION = \"E\";\n\n ROMPIMIENTO = \"R\";\n AGRUPAMIENTO = \"A\";\n UNICO_REGISTRO = \"U\";\n ROMPIMIENTO_DESC = \"ROMPIMIENTO\";\n AGRUPAMIENTO_DESC = \"AGRUPAMIENTO\";\n UNICO_REGISTRO_DESC = \"UNICO REGISTRO\";\n\n LISTA_TIPO_FUENTE = [\n { codigo: this.ROMPIMIENTO, nombre: this.ROMPIMIENTO_DESC },\n { codigo: this.AGRUPAMIENTO, nombre: this.AGRUPAMIENTO_DESC },\n { codigo: this.UNICO_REGISTRO, nombre: this.UNICO_REGISTRO_DESC },\n ]\n\n COMA = \",\";\n PUNTO_COMA = \";\";\n TAB = \"T\";\n PIPELINE = \"|\";\n SIN_SEPARADOR = \"S\";\n COMA_DESC = \"COMA\";\n PUNTO_COMA_DESC = \"PUNTO COMA\";\n TAB_DESC = \"TAB\";\n PIPELINE_DESC = \"PIPELINE\";\n SIN_SEPARADOR_DESC = \"SIN SEPARADOR\";\n\n LISTA_SEPARADORES = [\n { codigo: this.SIN_SEPARADOR, nombre: this.SIN_SEPARADOR_DESC },\n { codigo: this.COMA, nombre: this.COMA_DESC },\n { codigo: this.PUNTO_COMA, nombre: this.PUNTO_COMA_DESC },\n { codigo: this.TAB, nombre: this.TAB_DESC },\n { codigo: this.PIPELINE, nombre: this.PIPELINE_DESC },\n ]\n\n GRUPO = \"G\";\n LINEA = \"L\";\n SERVICIO = \"S\";\n\n CONTENIDO_EXCEL = \"application/vnd.ms-excel\";\n\n LOGIN_PAR = \"P\";\n FIJO = \"F\";\n\n LOGIN_PAR_DESC = \"Login Par\";\n FIJO_DESC = \"Fijo\";\n\n LISTA_TIPORECURSO = [\n { codigo: this.LOGIN_PAR, nombre: this.LOGIN_PAR_DESC },\n { codigo: this.FIJO, nombre: this.FIJO_DESC },\n ]\n\n GRUPO_EJECUCION = \"G\";\n SERVICIO_EJECUCION = \"S\";\n GRUPO_EJECUCION_DESC = \"Por el orden de los grupos\";\n SERVICIO_EJECUCION_DESC = \"Por el orden de los servicios\";\n\n LISTA_EJECUCION = [\n { codigo: this.GRUPO_EJECUCION, nombre: this.GRUPO_EJECUCION_DESC },\n { codigo: this.SERVICIO_EJECUCION, nombre: this.SERVICIO_EJECUCION_DESC },\n ]\n\n BASEDATOS = \"S\";\n NOBASEDATOS = \"N\";\n BASEDATOSEGUNDO = \"X\";\n\n BASEDATOS_DESC = \"Proceso por base de datos\";\n NOBASEDATOS_DESC = \"Proceso por aplicacion\";\n BASEDATOSEGUNDO_DESC = \"Proceso por base datos(segundo plano)\";\n\n LISTA_MOTOR = [\n { codigo: this.BASEDATOS, nombre: this.BASEDATOS_DESC },\n { codigo: this.NOBASEDATOS, nombre: this.NOBASEDATOS_DESC },\n { codigo: this.BASEDATOSEGUNDO, nombre: this.BASEDATOSEGUNDO_DESC },\n ]\n\n FECHA = \"F\";\n\t LOGICO = \"L\";\n\t TEXTO = \"T\";\n\t NUMERO = \"N\";\n\t DECIMAL = \"D\";\n\t LLAVE = \"K\";\n\t FECHA_DESC = \"Fecha\";\n\t TEXTO_DESC = \"Texto\";\n\t NUMERO_DESC = \"Numero\";\n\t DECIMAL_DESC = \"Decimal\";\n\t LOGICO_DESC = \"Login\";\n\t LLAVE_DESC = \"Llave Generada\";\n\n LISTA_TIPO_DATO = [\n { codigo: this.FECHA, nombre: this.FECHA_DESC },\n { codigo: this.TEXTO, nombre: this.TEXTO_DESC },\n { codigo: this.NUMERO, nombre: this.NUMERO_DESC },\n { codigo: this.DECIMAL, nombre: this.DECIMAL_DESC },\n { codigo: this.LOGICO, nombre: this.LOGICO_DESC },\n { codigo: this.LLAVE, nombre: this.LLAVE_DESC },\n ]\n\n LISTA_TIPO_DATO_MP =\n\t[\n\t\t{codigo: this.FECHA, nombre: this.FECHA_DESC},\n\t\t{codigo: this.TEXTO, nombre: this.TEXTO_DESC},\n\t\t{codigo: this.NUMERO, nombre: this.NUMERO_DESC},\n\t\t{codigo: this.DECIMAL, nombre: this.DECIMAL_DESC},\n\t]\n\t\n\n FORMATOHORAFRACCION = \"HORAFRACCION\";\n\t FORMATOHORAFRACCIONDES = \"De Numero Decimal a Hora Fraccion\";\n\t FORMATOHORADECIMAL = \"HORADECIMAL\";\n\t FORMATOHORADECIMALDES = \"De Hora Fraccion a Numero decimal\";\n NOAPLICA=\"No aplica\";\n\n LISTA_FORMATOS = [\n { codigo: '', nombre: this.NOAPLICA },\n { codigo: this.FORMATOHORAFRACCION, nombre: this.FORMATOHORAFRACCIONDES },\n { codigo: this.FORMATOHORADECIMAL, nombre: this.FORMATOHORADECIMALDES },\n ]\n\n ITEM = \"I\";\n\tFINALPROCESO = \"F\";\n\tITEMDESC = \"En cada Item\";\n\tFINALPROCESODESC = \"Al final del proceso\";\n\n LISTA_MOMENTOS = [\n { codigo: this.ITEM, nombre: this.ITEMDESC },\n { codigo: this.FINALPROCESO, nombre: this.FINALPROCESODESC },\n ]\n\n MENSAJE_OBLIGATORIO = \"obligatorio\";\n\tMENSAJE_CAMPOS_OBLIGATORIOS = \"Existen campos obligatorios\";\n\tMENSAJE_NO_EXISTEN_SEVICIOS = \"La aplicacion no posee servicios para el manejo de fuentes\";\n\tMENSAJE_NO_REPETIR_DESCRIPCION_CAMPOS = \"Ya existe un campo o entrada con la misma descripcion\";\n\tMENSAJE_TIPO_DATO_CAMPO_NO_COINCIDE = \"el tipo de dato no coincide con el de la entrada\";\n\tMENSAJE_NO_EXISTEN_HOMOLOGACIONES = \"La aplicacion no posee homologaciones para el manejo de fuentes\";\n\tMENSAJE_EXISTEN_ERRORES_FORMULA = \"Existen campos con errores en la formula\";\n\tMENSAJE_SERVICIO_FORMULA_FILTRO_NO_VALIDA = \"El filtro del servicio no posee la estructura correcta Ej. {campo} != 'constante' and {campo2}= 10\";\n\n\n transform(value: any, ...args: any): any {\n let result = value;\n if (args[0] == 'listaTipoDato') { this.LISTA_TIPO_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaTipoFuente') { this.LISTA_TIPO_FUENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaSeparador') { this.LISTA_SEPARADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaTipoRecurso') { this.LISTA_TIPORECURSO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n if (args[0] == 'listaTipoDatoMP') { this.LISTA_TIPO_DATO_MP.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaMomento') { this.LISTA_MOMENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaTipoDato') { this.TIPOS_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaTipoDatoColumna') { this.TIPOS_DATO_COLUMNA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaTipoDatoMarcadores') { this.LISTA_MARCADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaTipoGrafico') { this.LISTA_TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaTipoGraficoJFC') { this.LISTA_TIPO_GRAFICO_JFC.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n // if (args[0] == 'listaRecursoGrafica') { this.LISTA_RECURSO_GRAFICA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n return result;\n }\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { ParametrosGeneralModel } from '../../../../seguridad/modelos/ParametrosGeneralModel';\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\nimport { FuenteGeneralService } from '../../../services/fuentegeneral.service';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { FuenteServicioModel } from '../../../../seguridad/modelos/FuenteServicioModel'; \nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TableModule } from 'primeng/table';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\n@Component({\n selector: 'app-fuente-general-servicio',\n imports: [ButtonModule,TranslateModule,InputTextModule, CommonModule, ReactiveFormsModule, DropdownModule, ConfirmPopupModule, InputTextareaModule, AccordionModule, TableModule, FormsModule, FiltroGeneralComponent, TablaGeneralComponent,],\n standalone: true,\n providers: [MessageService],\n templateUrl: './fuente-general-servicio.component.html',\n styleUrls: ['./fuente-general-servicio.component.scss']\n})\nexport class FuenteGeneralServicioComponent implements OnInit {\n cargandoFormulario: boolean;\n listaServicios: any[];\n formulario: FormGroup;\n listaFiltro: any[];\n @Input()\n fuenteGeneral: FuenteGeneralModel;\n @Input()\n fuenteServicioDTO: FuenteServicioModel;\n @Input()\n unica: boolean;\n @Input()\n servicios;\n @Input()\n camposFuente: [];\n @Input()\n isNew: boolean;\n @Input()\n fuente;\n @Output()\n regresar = new EventEmitter();\n mapaservicio;\n campos: any[] = [];\n homologaciones: any[] = [];\n mostrarFiltro: boolean;\n serviciosValidar: FuenteServicioModel[] = [];\n mapaFiltros;\n paginator = {\n rows: 5,\n totalRecords: 0,\n };\n cargar: boolean;\n validadorService: boolean = true;\n constructor(private fuenteService: FuenteGeneralService, public fuentePipe: FuentePipe, public generalPipe: GeneralPipe, private generalService: GeneralService,\n private cargarMapas: cargarmapasGlobal, private notificacionesBusService: ToastService, private confirmationService: ConfirmationService, private formBuilder: FormBuilder, public utilsService: UtilsService) { }\n\n\n ngOnInit(): void {\n this.ver();\n }\n\n async ver() {\n try {\n if (!this.isNew) {\n this.fuenteServicioDTO = this.fuenteServicioDTO;\n } else {\n this.fuenteServicioDTO = new FuenteServicioModel();\n }\n await this.cargarMapaServicios();\n this.homologaciones = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\n this.fuente = this.fuenteGeneral.llaveTabla;\n await this.cargarFormulario();\n this.serviciosValidar = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, { fuente: this.fuente, tipo: 'Servicio' })).toPromise();\n this.mostrarFiltro = false;\n await this.cargarCampos();\n if (this.fuenteServicioDTO.predefinido != null) {\n this.mostrarFiltro = true;\n }\n this.cargar = true\n } catch (error) {\n console.log(JSON.stringify(error));\n }\n }\n\n async cargarFormulario() {\n this.formulario = this.formBuilder.group({\n fuente: new FormControl(this.fuenteServicioDTO.fuente ? this.fuenteServicioDTO.fuente : this.fuente),\n llaveTabla: new FormControl(this.fuenteServicioDTO?.llaveTabla),\n descripcion: new FormControl(this.fuenteServicioDTO.descripcion),\n servicio: new FormControl(this.fuenteServicioDTO?.servicio, [Validators.required]),\n orden: new FormControl(this.fuenteServicioDTO?.orden, [Validators.required]),\n origen: new FormControl(this.fuenteServicioDTO?.origen),\n filtro: new FormControl(this.fuenteServicioDTO?.filtro),\n validador: new FormControl(this.fuenteServicioDTO?.validador),\n detenerServicio: new FormControl(this.fuenteServicioDTO?.detenerServicio, [Validators.required]),\n });\n this.cargandoFormulario = true\n }\n\n async cargarMapaServicios() {\n let map: Map<string, string> = new Map<string, string>();\n this.servicios.forEach(element => {\n map.set(element.codigo, element.descripcion);\n })\n this.mapaservicio = Array.from(map, ([key, label]) => ({ key, label }));\n }\n\n\n public ocultar() {\n this.regresar.emit();\n }\n\n async cargarCampos() {\n if (this.servicios == null || this.servicios.length <= 0 || this.fuenteServicioDTO.servicio == null || this.fuenteServicioDTO.servicio == '') {\n return\n }\n this.campos = null;\n this.campos = await this.fuenteService.cargarCampos(new ParametrosGeneralModel(null, null, this.servicios, { fuenteServicioDTO: this.fuenteServicioDTO })).toPromise();\n this.paginator.totalRecords = this.campos.length;\n }\n\n async guardar() {\n try {\n await this.validar();\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n await sleep(10);\n if (this.formulario.valid) {\n if (this.isNew) {\n this.fuenteServicioDTO = await this.generalService.crearRegistro(new GeneralModel('FuenteServicioDTO', null, false, this.formulario.value)).toPromise();\n await this.cargarFormulario()\n this.cargarCampos();\n this.isNew = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n return null;\n }\n if ((await this.generalService.update(new GeneralModel('FuenteServicioDTO', null, false, this.formulario.value)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n return null;\n }\n await this.guardarCampos();\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n let comodinValidador: boolean = false;\n Object.keys(this.formulario.controls).forEach((key) => {\n if (this.formulario.get(key).errors) {\n if (this.formulario.get(key).errors['errors']) {\n this.formulario.get(key).markAsDirty();\n comodinValidador = true;\n return;\n }\n this.formulario.get(key).markAsDirty();\n }\n\n });\n if (comodinValidador == false) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n }\n }\n\n return null;\n } catch (error) {\n this.notificacionesBusService.showError('error', error);\n }\n }\n\n eliminar(event) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: 'Si',\n accept: () => {\n this.setEliminar();\n },\n reject: () => {\n }\n });\n }\n\n async setEliminar() {\n try {\n if ((await this.fuenteService.eliminarServicio(new ParametrosGeneralModel(null, null, null, { fuenteServicioDTO: this.fuenteServicioDTO })).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n }\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n this.ocultar();\n } catch (error) {\n this.notificacionesBusService.showError(error.message);\n }\n }\n\n async validar() {\n\n let err: ValidationErrors = { 'errors': true };\n this.formulario.get('filtro').setErrors(null);\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n let validador = true;\n if (this.formulario.get('filtro').value == null || this.formulario.get('filtro').value == '') {\n this.formulario.get('filtro').setValue(null);\n }\n if ((this.formulario.get('filtro').value != null) && (this.formulario.get('filtro').value.length > 0)) {\n if (this.fuenteGeneral.motor != this.generalPipe.SI) {\n if (this.formulario.get('filtro').value.includes('?') || this.formulario.get('filtro').value.includes(':')) {\n this.notificacionesBusService.showWarning(this.fuentePipe.MENSAJE_SERVICIO_FORMULA_FILTRO_NO_VALIDA);\n this.formulario.get('filtro').setErrors(err);\n validador = false;\n return validador;\n }\n try {\n await sleep(1000);\n let validarcondicion = await this.fuenteService.validarCondicion(new ParametrosGeneralModel(null, null, null, { filtro: this.formulario.get('filtro').value })).toPromise();\n if (!validarcondicion) {\n validador = false;\n this.formulario.get('filtro').setErrors(err);\n }\n } catch (error) {\n validador = false;\n this.formulario.get('filtro').setErrors(err);\n this.notificacionesBusService.showError(error.error);\n return validador;\n }\n }\n }\n if (this.serviciosValidar == null || this.serviciosValidar.length <= 0) {\n return validador;\n }\n let valicontador = true\n this.serviciosValidar.forEach(element => {\n if (this.formulario.get('llaveTabla').value != element.llaveTabla) {\n if (this.formulario.get('orden').value == element.orden) {\n valicontador = false;\n }\n }\n });\n if (!valicontador) {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ORDEN_REPETIDO);\n validador = false;\n this.formulario.get('orden').setErrors(err);\n }\n return validador;\n }\n\n\n async validarCampos() {\n let validar = true;\n let obligatorios = false;\n this.campos.forEach(async element => {\n element.error = null;\n if (element.campo.valorDefecto != null && element.campo.valorDefecto.length > 0) {\n try {\n validar = await this.fuenteService.validarFormulaFuente(new ParametrosGeneralModel(null, null, null, { valorDefecto: element.campo.valorDefecto })).toPromise();\n } catch (error) {\n element.error = error.error;\n validar = false;\n }\n } else if (element.campo.obligatorio) {\n element.error = this.fuentePipe.MENSAJE_OBLIGATORIO;\n obligatorios = true;\n validar = false;\n }\n });\n if (obligatorios) {\n this.notificacionesBusService.showWarning('Apartado de Campos tiene campos obligatorios.');\n } else if (!validar) {\n this.notificacionesBusService.showInfo(this.fuentePipe.MENSAJE_EXISTEN_ERRORES_FORMULA);\n return false;\n }\n return validar;\n }\n\n async guardarCampos() {\n try {\n let validador = await this.validarCampos();\n if (validador) {\n this.fuenteService.guardarCampos(new ParametrosGeneralModel(null, null, this.campos, { fuenteServicioDTO: this.formulario.value })).toPromise();\n // await this.cargarCampos();\n }\n } catch (error) {\n this.notificacionesBusService.showError(error.message);\n }\n }\n\n transform(value: any, ...args: any): any {\n let result = value;\n if (args[0] == 'mapaServicio') { this.mapaservicio.forEach(data => { if (data.key === value) { result = data.label } }); }\n return result;\n }\n\n}\n\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"cargar\">\n<div class=\"flex justify-content-between align-items-center mb-3\">\n <h1>{{ 'servicio'| translate}} {{ 'fuente'| translate}}</h1>\n <button pButton pRipple (click)=\"ocultar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n class=\"p-button-text font-semibold\"></button>\n</div>\n <div class=\"card\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'basica' | translate}}</h5>\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"Inputgroup m-0 mb-3\">\n <form [formGroup]=\"formulario\">\n <div class=\"p-fluid grid\">\n\n <div class=\"field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"mapaservicio\" [autoDisplayFirst]=\"false\" optionValue=\"key\"\n optionLabel=\"label\" [showClear]=\"true\" formControlName=\"servicio\"\n [disabled]=\"!isNew\">\n </p-dropdown>\n <label for=\"descripcion\">{{'servicio' | translate}} *\n </label>\n </span>\n </div>\n\n <div class=\"field col-8 md:col-8 lg:col-8\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus formControlName=\"descripcion\" type=\"text\" />\n <label for=\"descripcion\">{{'descripcion' | translate}}\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus type=\"text\" maxlength=\"3\"\n formControlName=\"orden\" (input)=\"utilsService.validarCampoNumerico($event)\"\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' />\n <label for=\"descripcion\">{{'orden' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"fuentePipe.LISTA_MOMENTOS\"\n optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"true\"\n formControlName=\"origen\">\n </p-dropdown>\n <label for=\"descripcion\">{{'momento' |\n translate}}</label>\n </span>\n </div>\n\n <div class=\"field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"generalPipe.LISTA_SINO\"\n optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\"\n formControlName=\"detenerServicio\">\n </p-dropdown>\n <label for=\"descripcion\">{{'detenerservicio' |\n translate}} *</label>\n </span>\n </div>\n\n <div class=\"field col-6 md:col-6 lg:col-6\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea autofocus\n formControlName=\"filtro\" [autoResize]=\"true\"> </textarea>\n <label for=\"descripcion\">{{'condiciones' |\n translate}}</label>\n </span>\n </div>\n <div class=\"field col-6 md:col-6 lg:col-6\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea autofocus\n [autoResize]=\"true\" formControlName=\"validador\"> </textarea>\n <label for=\"descripcion\">{{'validador' |\n translate}}</label>\n </span>\n </div>\n\n </div>\n \n </form>\n </div>\n </div>\n </div>\n <p-accordion *ngIf=\"cargandoFormulario\">\n <p-accordionTab *ngIf=\"!isNew\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'campos' | translate}}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <!-- <div class=\"flex justify-content-end align-content-center mb-3 mt-2\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardarCampos()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\"></button>\n </div> -->\n <p-table [value]=\"campos\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [rowsPerPageOptions]=\"[5, 10, 15]\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-6rem\">{{'atributo' | translate}}</th>\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\n <th class=\"w-6rem\">{{'homologacion' | translate}}</th>\n <th class=\"w-6rem\">{{'formula' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-element>\n <tr>\n <td class=\"w-6rem\">\n {{element.campo.atributo}} {{element.campo.obligatorio ? '*': ''}}\n {{element.error}}\n </td>\n <td class=\"w-6rem\">\n {{element.campo.descripcion}}\n </td>\n <td class=\"w-6rem\">\n <p-dropdown [options]=\"homologaciones\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\n optionLabel=\"label\" class=\"w-full\" appendTo=\"body\" [autoZIndex]=\"false\"\n [(ngModel)]=\"element.campo.homologacion\"></p-dropdown>\n </td>\n <td class=\"w-6rem\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"1\" cols=\"5\" pInputTextarea \n [(ngModel)]=\"element.campo.valorDefecto\" autofocus [autoResize]=\"true\"> </textarea>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </ng-template>\n </p-accordionTab>\n</p-accordion>\n<div class=\"flex justify-content-end align-content-center mt-3\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" *ngIf=\"!isNew\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\"></button>\n <button pButton pRipple class=\"ml-2 p-button-raised\" *ngIf=\"isNew\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\"></button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" (click)=\"eliminar($event)\"\n icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\" *ngIf=\"!isNew\"></button>\n</div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MenuService } from '../../../../core/servicios/menu.service'\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService } from 'primeng/api';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n imports: [TranslateModule, CommonModule, FiltroGeneralComponent, TablaGeneralComponent, ButtonModule, ReactiveFormsModule,InputTextModule,],\n standalone: true,\n templateUrl: './listado-fuente-general.page.html',\n providers:[ConfirmationService],\n styleUrls: ['./listado-fuente-general.page.scss']\n})\nexport class ListadoFuenteGeneralPage implements OnInit {\n\n columns : any[] = [];\n filters : any[] = [];\n loading: boolean;\n listaResultado: FuenteGeneralModel[] = [];\n paginator = {\n rows: 10,\n totalRecords: 0,\n };\n constructor(private generalServices : GeneralService,\n private authService: AuthService,\n private translateService : TranslateService, \n private router: Router, public utilsService: UtilsService, \n private activatedRoute: ActivatedRoute,\n private menuService: MenuService) { }\n\n ngOnInit(): void {\n this.menuService.setBreadcrumb([{ label: 'Fuente General' }]);\n this.columns = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n width: 100,\n },\n ];\n this.filters = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }\n ];\n }\n\n\n cargarlistado(event){\n this.loading = true\n this.listaResultado = []\n let objeto = {\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows,\n fuenteGeneral: 'S',\n aplicacion: this.authService.getTokenKey('aplicacion').padEnd(10),\n descripcion: event.filters?.descripcion?.value ? '%' + event.filters?.descripcion?.value + '%' : null\n }\n let general = new GeneralModel('FuenteGeneralDTO', null, false, objeto)\n console.log(objeto)\n this.generalServices.queryForList(general).subscribe(data => {\n this.listaResultado = data;\n this.generalServices.cantidadRegistros(general).subscribe(data => {\n this.paginator.totalRecords = data;\n this.loading = false;\n })\n });\n }\n\n seleccion(evento){\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/',evento.llaveTabla]);\n }\n nuevo(){\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/']);\n }\n\n}\n","<h1>{{ 'fuente'| translate}}</h1>\n<div class=\"flex justify-content-between align-items-center mb-3\">\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n autocomplete=\"off\" />\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\n </span>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n</div>\n<app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"listaResultado\" [rows]=\"paginator.rows\"\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"cargarlistado($event)\" (onRowSelect)=\"seleccion($event)\"\n [loading]=\"loading\"></app-tabla-general>","import { UnionModel } from \"./UnionModel\";\n\nexport class RecursoPuntoModel extends UnionModel {\n puntoProceso: string;\n puntoProcesoDescripcion: string;\n tipo: string;\n fuente: string;\n fuenteDescripcion: string;\n reporteFuente: string;\n reporteFuenteDescripcion: string;\n rolUsuario: string;\n filtro: string;\n} ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralPipe } from '../../pipes/general.pipe';\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport {AtributoPuntoModel} from '../../../seguridad/modelos/AtributoPuntoModel';\nimport {CruceRecursoPuntoModel} from '../../../seguridad/modelos/CruceRecursoPuntoModel';\nimport {PuntoProcesoModel} from '../../../seguridad/modelos/PuntoProcesoModel';\nimport {RecursoPuntoModel} from '../../../seguridad/modelos/RecursoPuntoModel';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ButtonModule } from 'primeng/button';\nimport { AccordionModule } from 'primeng/accordion';\nimport { FormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\n@Component({\n selector: 'app-popup-recurso',\n imports: [TranslateModule, CommonModule, DialogModule, ConfirmPopupModule, DropdownModule, ButtonModule, AccordionModule, FormsModule, TableModule, InputTextareaModule],\n standalone: true,\n providers: [MessageService],\n templateUrl: './popup-recurso.component.html',\n styleUrls: ['./popup-recurso.component.scss']\n})\nexport class PopupRecursoComponent implements OnInit {\n\n @Output() public regresar = new EventEmitter();\n\n recursoPuntoDTO: RecursoPuntoModel = new RecursoPuntoModel;\n llave: any;\n destino: String;\n tipoRecurso;\n nuevo: boolean;\n mostrarPopup: boolean;\n recursosValidar: RecursoPuntoModel[] = [];\n cruces: CruceRecursoPuntoModel[] = [];\n listaEntrada: any[] = [];\n listaPuntosProceso: any[] = [];\n listaAtributoPunto: AtributoPuntoModel[] = [];\n listadoAtributoPunto: any[] = [];\n listaCruce: CruceRecursoPuntoModel[] = [];\n cruceRecursoPunto: CruceRecursoPuntoModel = new CruceRecursoPuntoModel();\n vistaVisualizar: String;\n paginatorCruce = {\n rows: 10,\n totalRecords: 0,\n };\n\n \n\n\n\n constructor(private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private notificacionBusService: ToastService, private generalPipe: GeneralPipe,\n public utilsService: UtilsService,private notificacionesBusService: ToastService,private confirmationService: ConfirmationService) { }\n\n ngOnInit(): void {\n this.cargarListas();\n }\n\n async cargarListas() {\n this.listaPuntosProceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('PuntoProcesoDTO', null, false, new PuntoProcesoModel));\n }\n\n async loadCruce() {\n this.listaCruce = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {recursoPunto: this.recursoPuntoDTO.llaveTabla})).toPromise();\n }\n\n\n\n async ver(recursoPuntoDTO: RecursoPuntoModel, llave: any, nuevo: boolean, tipoRecurso) {\n await this.ngOnInit();\n this.mostrarPopup = true;\n this.llave = llave;\n this.tipoRecurso = tipoRecurso;\n this.nuevo = nuevo;\n this.recursoPuntoDTO = recursoPuntoDTO;\n this.cargarRecursoPunto();\n this.cargarEntradas();\n if (!this.nuevo) {\n this.loadCruce();\n this.cargarAtributos(recursoPuntoDTO.puntoProceso);\n }\n }\n\n eliminar(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel:'Si',\n accept: () => {\n this.setRespuesta();\n },\n reject: () => {\n }\n });\n }\n\n async setRespuesta(){\n if(this.validarEliminacion()){\n await this.generalService.delete(new GeneralModel('RecursoPuntoDTO',null, false, {llaveTabla: this.recursoPuntoDTO.llaveTabla})).toPromise();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.ocultar();\n return\n }else {\n this.notificacionesBusService.showWarning('Debe eliminar los cruces primero');\n }\n }\n async validarEliminacion(){\n let validador = await this.generalService.cantidadRegistros(new GeneralModel('CruceRecursoPuntoDTO', null, false,{puntoProceso: this.recursoPuntoDTO.puntoProceso , reporteFuente: this.recursoPuntoDTO.reporteFuente})).toPromise();\n return true ? validador == 0 : false;\n }\n\n async cargarRecursoPunto() {\n let verificar: RecursoPuntoModel = new RecursoPuntoModel();\n if (this.tipoRecurso == 'F') {\n verificar.fuente = this.llave;\n } else if (this.tipoRecurso == 'R') {\n verificar.reporteFuente = this.llave;\n }\n this.recursosValidar = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, verificar)).toPromise();\n }\n\n async cargarEntradas() {\n if (this.tipoRecurso == 'F') {\n this.listaEntrada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('FuenteEntradaDTO', null, false, { fuente: this.llave }))\n } else if (this.tipoRecurso == 'R') {\n this.listaEntrada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('FuenteEntradaDTO', null, false, { reporteFuente: this.llave }))\n }\n }\n\n async cargarCruce() {\n if (this.recursoPuntoDTO.llaveTabla == null) {\n return;\n }\n this.cruces = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', true, { recursoPunto: this.recursoPuntoDTO.llaveTabla })).toPromise();\n }\n\n async cargarAtributos(puntoProceso) {\n this.listadoAtributoPunto = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso }));\n this.listaAtributoPunto = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso })).toPromise();\n }\n\n async guardar() {\n if (this.validar()) {\n if (this.nuevo) {\n if (this.tipoRecurso == 'F') {\n this.recursoPuntoDTO.fuente = this.llave;\n } else if (this.tipoRecurso == 'R') {\n this.recursoPuntoDTO.reporteFuente = this.llave;\n }\n this.recursoPuntoDTO.tipo = this.tipoRecurso;\n this.recursoPuntoDTO = await this.generalService.crearRegistro(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\n this.nuevo = false;\n return null\n }\n this.recursoPuntoDTO.tipo = this.tipoRecurso\n if ((await this.generalService.update(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise()) <= 0) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n return null;\n }\n this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n }\n return null;\n }\n\n nuevoCruce() {\n this.vistaVisualizar = 'nuevoCruce'\n }\n cancelarCruce() {\n this.vistaVisualizar = null;\n }\n\n async agregarCruce(cruce?, nuevo?) {\n if (nuevo) {\n if (!this.validarCruce()) {\n return;\n }\n this.cruceRecursoPunto.recursoPunto = this.recursoPuntoDTO.llaveTabla;\n this.cruceRecursoPunto = await this.generalService.crearRegistro(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise();\n //this.listaCruce.push(this.cruceRecursoPunto);\n await this.cargarCruce();\n await this.loadCruce();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n this.vistaVisualizar = null;\n this.cruceRecursoPunto = new CruceRecursoPuntoModel();\n return null;\n } else {\n this.cruceRecursoPunto = cruce\n if ((await this.generalService.update(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise()) <= 0) {\n this.notificacionBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n }\n this.notificacionBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n return null;\n }\n }\n \n eliminarCruce(event, cruce){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: 'Si',\n accept: () => {\n this.setEliminarCruce(cruce);\n },\n reject: () => {\n this.notificacionesBusService.showInfo('No se elimino el registro');\n }\n });\n }\n async setEliminarCruce(cruce){\n if ((await this.generalService.delete(new GeneralModel('CruceRecursoPuntoDTO', null, false, cruce)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n return\n }\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.loadCruce();\n }\n\n validar() {\n let validar = true;\n if (this.recursosValidar == null || this.recursosValidar.length <= 0) {\n return validar;\n }\n this.recursosValidar.forEach(element => {\n if ((element.llaveTabla != this.recursoPuntoDTO.llaveTabla) && element.puntoProceso == this.recursoPuntoDTO.puntoProceso) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PUNTO_PROCESO_REPETIDO);\n validar = false\n }\n });\n return validar;\n }\n validarCruce() {\n if(this.tipoRecurso == null){\n this.notificacionBusService.showError('No se encuentra el recurso');\n return false\n }\n this.cruces.forEach(async element => {\n if (this.tipoRecurso == 'F' && element.fuenteEntrada == this.cruceRecursoPunto.fuenteEntrada) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\n return false;\n } else {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\n return false;\n }\n });\n return true;\n }\n\n\n\n public ocultar() {\n this.mostrarPopup = false;\n this.regresar.emit();\n }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReImprimirRegresion' header=\"{{'recurso' | translate}}\" [(visible)]=\"mostrarPopup\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n <p-accordion class=\"w-full\">\n <p-accordionTab [selected]=\"true\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'punto' | translate }} {{'proceso' | translate }}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"p-fluid grid\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <p-dropdown [options]=\"listaPuntosProceso\" [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\"\n optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"recursoPuntoDTO.puntoProceso\">\n </p-dropdown>\n </div>\n </div>\n <div class=\"flex justify-content-end align-items-center mt-3\">\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\"\n class=\"p-element p-ripple ml-2 p-button-raised p-button p-component\" type=\"button\" (click)=\"guardar()\"\n *ngIf=\"nuevo\"><span class=\"glyphicons glyphicons-floppy-save\"\n style=\"width: auto;\"></span></button>\n <button pButton pRipple label=\"{{'link_actualizar' | translate }}\"\n class=\"ml-2 p-button-raised\" *ngIf=\"!nuevo\" type=\"button\"\n (click)=\"guardar()\"><span class=\"glyphicons glyphicons-refresh\"\n style=\"width: auto;\"></span></button>\n <button pButton label=\"{{'link_eliminar' | translate }}\"\n class=\"p-button-outlined ml-2 mr-2p-element p-button p-component eliminar\" type=\"button\"\n *ngIf=\"!nuevo\" (click)=\"eliminar($event)\"><span class=\"glyphicons glyphicons-bin\"\n style=\"width: auto;\"></span></button>\n </div>\n </div>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"!nuevo\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'cruce' | translate }}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCruce()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"listaCruce\" [scrollable]=\"true\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\n editMode=\"row\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 40%;\">{{'entrada' | translate}}</th>\n <th style=\"width: 40%;\">{{'valor' | translate}}</th>\n <th style=\"width: 10%;\"> </th>\n </tr>\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevoCruce'\">\n <td style=\"width: 40%;\">\n <p-dropdown class=\"w-full\" [options]=\"listaEntrada\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n [(ngModel)]=\"cruceRecursoPunto.fuenteEntrada\"></p-dropdown>\n </td>\n <td style=\"width: 40%;\">\n <p-dropdown class=\"w-full\" [options]=\"listadoAtributoPunto\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n [(ngModel)]=\"cruceRecursoPunto.atributoPunto\" class=\"w-full\"></p-dropdown>\n </td>\n <td style=\"width: 10%;\" >\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCruce(null,true)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"cancelarCruce()\" icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-cruce let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"cruce\">\n <td style=\"width: 40%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n [(ngModel)]=\"cruce.reporteEntrada\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{cruce.descripcionEntrada}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 40%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n [(ngModel)]=\"cruce.atributoPunto\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{cruce.atributoPuntoDescripcion}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%;\">\n <div class=\"flex align-items-center justify-content-end gap-2\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarCruce(cruce, false)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarCruce($event,cruce)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n </p-table>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"!nuevo\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'filtro' | translate }}\n </ng-template>\n <ng-template pTemplate=\"content\">\n\n <p-table [value]=\"listaAtributoPunto\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" >\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 50%;\">{{'descripcion' | translate}}</th>\n <th style=\"width: 50%;\">{{'codigo' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-element>\n <tr>\n <td style=\"width: 50%;\">\n {{element.descripcion}}\n </td>\n <td style=\"width: 50%;\">\n {{element.codigo}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n </p-table>\n\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <label class=\"font-medium w-full\" for=\"descripcion\">{{'filtro' | translate}}\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\n [(ngModel)]=\"recursoPuntoDTO.filtro\" autofocus [autoResize]=\"true\"> </textarea></label>\n </div>\n <div class=\"flex justify-content-end align-content-center mt-3\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" ></button>\n </div>\n </ng-template>\n </p-accordionTab>\n </p-accordion>\n</p-dialog>\n","import { HttpClient, HttpErrorResponse, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { CookieService } from 'ngx-cookie-service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlantillasService {\n \n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n obtenerArchivos(propiedad, aplicativo, extensiones?, anexoPropiedad?, seleccionarPadre?): Observable<any> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"propiedad\", propiedad);\n formData.append(\"aplicativo\", aplicativo);\n formData.append(\"extensiones\", extensiones);\n formData.append(\"anexoPropiedad\", anexoPropiedad);\n formData.append(\"seleccionarPadre\", seleccionarPadre);\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/obtenerArchivos`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n crearCarpeta(ruta: string, rutaHija: string, nombreCarpeta: string): Observable<any> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"ruta\", ruta);\n formData.append(\"rutaHija\", rutaHija);\n formData.append(\"nombreCarpeta\", nombreCarpeta);\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/crearCarpeta`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n eliminarCarpeta(ruta: string, rutaHija: string) {\n\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"ruta\", ruta);\n formData.append(\"rutaHija\", rutaHija);\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/eliminarCarpeta`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n cargarDocumentoTemporal(archivoSeleccionadoAnexo: File) {\n\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"archivo\", archivoSeleccionadoAnexo);\n\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/cargarDocumentoTemporal`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n existeDocumento(ruta: string, rutaHija: string, informacionArchivo: any) {\n\n let parametrosArchivo = { ...informacionArchivo };\n\n let url = this.cookieService.get('urlnucleo');\n let formData = new FormData();\n formData.append(\"ruta\", ruta);\n formData.append(\"rutaHija\", rutaHija);\n formData.append(\"file\", String(parametrosArchivo.file));\n parametrosArchivo.file = null;\n formData.append(\"informacionArchivo\", JSON.stringify(parametrosArchivo));\n\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/existeDocumento`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n cargarDocumento(ruta: string, rutaHija: string, informacionArchivo: any) {\n\n let parametrosArchivo = { ...informacionArchivo };\n\n let url = this.cookieService.get('urlnucleo');\n let formData = new FormData();\n formData.append(\"ruta\", ruta);\n formData.append(\"rutaHija\", rutaHija);\n formData.append(\"file\", String(parametrosArchivo.file));\n parametrosArchivo.file = null;\n formData.append(\"informacionArchivo\", JSON.stringify(parametrosArchivo));\n\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/cargarDocumento`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n consultarListadoPlanillasAConvertir(rutaPlantilla: string, filtro: string): Observable<any[]> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"rutaPlantilla\", rutaPlantilla);\n formData.append(\"filtro\", filtro);\n\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/consultarlistadoplanillasaconvertir`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n convertirArchivo(listaSeleccionados: any[]): Observable<unknown> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"listaSeleccionados\", JSON.stringify(listaSeleccionados));\n\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/convertirArchivo`, formData).pipe(\n catchError(this.handleError)\n );\n }\n\n consultarArchivoHtml(rutaPrincipal: string, rutaHija: any): Observable<string> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"rutaPrincipal\", rutaPrincipal);\n formData.append(\"rutaHija\", rutaHija);\n\n return this.httpClient.post<string>(`${url}/requieretoken/plantillas/consultarArchivoHtml`, formData, {\n responseType: 'text' as 'json'\n }).pipe(\n catchError(this.handleError)\n );\n }\n\n guardarArchivoHtml(rutaPrincipal: string, rutaHija: any, modificarHTML: string): Observable<unknown> {\n let url = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"rutaPrincipal\", rutaPrincipal);\n formData.append(\"rutaHija\", rutaHija);\n formData.append(\"modificarHTML\", modificarHTML);\n\n return this.httpClient.post<string>(`${url}/requieretoken/plantillas/guardarArchivoHtml`, formData, {\n responseType: 'text' as 'json'\n }).pipe(\n catchError(this.handleError)\n );\n }\n\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { GeneralPipe } from '../../../webcommon/pipes/general.pipe';\nimport { PlantillasService } from '../../../webcommon/services/plantillas.service';\nimport { TreeNode } from 'primeng/api';\n\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { TreeModule, TreeNodeSelectEvent } from 'primeng/tree';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'app-input-helper-seleccion-plantilla',\n imports: [TranslateModule, CommonModule, DialogModule, TreeModule, InputTextModule, ButtonModule],\n standalone: true,\n templateUrl: './input-helper-seleccion-plantilla.component.html',\n styleUrls: ['./input-helper-seleccion-plantilla.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputHelperSeleccionPlantillaComponent),\n multi: true,\n },\n ],\n})\nexport class InputHelperSeleccionPlantillaComponent implements OnInit, ControlValueAccessor {\n\n @ViewChild('inputText') inputText: ElementRef;\n\n @Input() value: string | number;\n\n @Input() label: string = '';\n\n @Input() labelrar: string;\n\n @Input() labelarch: string;\n\n @Input() extensiones: string = null;\n\n @Input() readonly: boolean = false;\n\n @Input() propiedad: string = null;\n\n @Input() anexoPropiedad: string = '';\n\n @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n @Input() showDialog: boolean = false;\n\n @Input() propiedadDeSistema: boolean = false;\n\n @Input() mostraroblicargo: boolean ;\n\n @Input() mostrarX: boolean;\n\n @Input() booleano: boolean;\n\n @Input() mostrarLabelInput: boolean = true;\n\n listaVinculacion: any[];\n\n onChange: Function = () => { };\n\n onTouched: Function = () => { };\n\n files: TreeNode[];\n\n dataSelected: TreeNode;\n\n loading: boolean;\n\n labelprin: string;\n\n labelar: string;\n\n\n\n constructor(private plantillasService: PlantillasService,\n private authService: AuthService,\n private generalpipe: GeneralPipe) {}\n\n ngOnInit(): void {\n this.labelrar = this.labelrar ? this.labelrar : 'Recursos';\n this.labelarch = this.labelarch ? this.labelarch : 'Recursos';\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void { }\n\n openDataTable() {\n this.showDialog = true;\n if (this.booleano == null) {\n this.booleano = false;\n }\n setTimeout(() => {\n this.loading = true;\n\n if (!this.propiedad) {\n this.propiedad = 'ruta_plantillas'\n }\n this.plantillasService.obtenerArchivos(this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), this.extensiones, this.anexoPropiedad, false).subscribe(rta => {\n this.files = rta;\n console.log(this.files)\n this.loading = false;\n })\n }, 1000);\n }\n\n deleteSelection() {\n this.value = null;\n this.label = null;\n this.onChange(this.value)\n this.onSelected.emit({});\n }\n\n seleccionarArchivo(event) {\n console.log('seleccionararchivo')\n console.log(event)\n this.dataSelected = event.node;\n this.showDialog = false;\n this.value = this.dataSelected.data;\n this.label = this.dataSelected.label;\n this.onChange(this.value);\n //this.dataSelected.valorPopup = this.value;\n //this.dataSelected.descripcionPopup = this.label;\n this.onSelected.emit(this.dataSelected);\n this.booleano = false;\n }\n\n}\n","<div *ngIf=\"mostraroblicargo\" #field [class]=\"booleano ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n <span class=\"p-float-label\">\n <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" disabled [required]=\"booleano\"/>\n <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n class=\"p-button-icon-only clear unico\" >\n <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n </button>\n <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n (click)=\"deleteSelection()\">\n <span class=\"pi pi-times\"></span>\n </button>\n <label *ngIf=\"!booleano && mostrarLabelInput\"><span>{{labelrar| translate}} </span></label>\n <label *ngIf=\"booleano && mostrarLabelInput\">{{labelrar| translate}} *</label>\n </span>\n</div>\n\n\n\n<!-- <div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched\"> -->\n<div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched\">\n\n\n <span class=\"p-float-label\">\n <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" required disabled />\n <!-- <label htmlFor=\"recursos\">{{labelrar | translate}}</label> -->\n\n <button style=\"border-radius: 0px;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n class=\"p-button-icon-only\">\n <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n </button>\n <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n (click)=\"deleteSelection()\">\n <span class=\"glyphicons glyphicons-remove\"></span>\n </button>\n <label *ngIf=\"mostrarLabelInput\" for=\"recursos\">{{labelrar| translate}} *</label>\n </span>\n</div>\n\n<p-dialog id='popupSeleccionPlantilla' header=\"{{labelarch | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\"\n (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '40vw'}\"\n [modal]=\"true\">\n\n <p-tree scrollHeight=\"500px\" [value]=\"files\" selectionMode=\"single\"\n [filter]=\"true\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\n (onNodeSelect)=\"seleccionarArchivo($event)\" (onNodeUnselect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"></p-tree>\n\n</p-dialog>\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { FuentePipe } from '../../pipes/fuente.pipe';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { AbstractControl, AsyncValidatorFn, FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { FuenteCampoModel } from '../../../seguridad/modelos/FuenteCampoModel';\nimport { GeneralPipe } from '../../pipes/general.pipe';\nimport { FuenteGeneralModel } from '../../../seguridad/modelos/FuenteGeneralModel';\nimport {GeneralModel} from '../../../seguridad/modelos/GeneralModel';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\nimport { TableModule } from 'primeng/table';\nimport { AccordionModule } from 'primeng/accordion';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'app-popup-campos-fuente-general',\n imports: [ButtonModule,TranslateModule, CommonModule, DialogModule, ReactiveFormsModule, DropdownModule,TranslateModule,InputTextModule, CommonModule, ReactiveFormsModule, DropdownModule, ConfirmPopupModule, InputTextareaModule, AccordionModule, TableModule, FormsModule, FiltroGeneralComponent, TablaGeneralComponent,],\n standalone: true,\n providers: [MessageService],\n templateUrl: './popup-campos-fuente-general.component.html',\n styleUrls: ['./popup-campos-fuente-general.component.scss']\n})\nexport class PopupCamposFuenteGeneralComponent implements OnInit {\n @Input()\n mostrar: boolean;\n @Input()\n campo: FuenteCampoModel;\n @Input()\n fuenteDTO: FuenteGeneralModel;\n @Output()\n regresar = new EventEmitter();\n @Output()\n regresarNuevo = new EventEmitter();\n\n\n \n isNew: boolean = true;\n homologaciones;\n fuenteCampoDTO: FuenteCampoModel = new FuenteCampoModel()\n cargando: boolean;\n\n formulario: FormGroup;\n\n /* BOOLEANOS */\n public formato: boolean = false;\n public formatoNumero: boolean = false;\n public serviciosMotor: boolean = false;\n public unicoRegistro: boolean = false;\n public agrupamiento: boolean = false;\n public rompimiento: boolean = false;\n public mostrarHoja: boolean = false;\n public sinSeparador: boolean = false;\n public conSeparador: boolean = false;\n public servicioWeb: boolean = false;\n public nuevoRCampo: boolean = false;\n public homologacion: boolean = false;\n mensaje: string;\n\n constructor(public fuentePipe: FuentePipe, public generalPipe: GeneralPipe, private cargarmapasGlobal: cargarmapasGlobal, private notificacionesBusService: ToastService, private generalService: GeneralService,\n private us: UtilsService, private confirmationService: ConfirmationService, private formBuilder: FormBuilder) { }\n\n ngOnInit(): void {\n this.cargar();\n }\n\n async cargar() {\n if (this.campo.llaveTabla != null) {\n this.isNew = false;\n this.fuenteCampoDTO = this.campo;\n }\n await this.cargaBooleanos();\n if (this.homologacion) {\n this.homologaciones = await this.cargarmapasGlobal.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\n }\n this.formulario = this.formBuilder.group({\n llaveTabla: new FormControl((this.fuenteCampoDTO?.llaveTabla) ? this.fuenteCampoDTO?.llaveTabla : this.us.generarLlave()),\n fuente: new FormControl(this.fuenteCampoDTO.fuente ? this.fuenteCampoDTO.fuente : this.fuenteDTO.llaveTabla),\n origen: new FormControl(this.fuenteCampoDTO.origen ? this.fuenteCampoDTO.origen : 'C'),\n descripcion: new FormControl(this.fuenteCampoDTO.descripcion, [Validators.required]),\n tipoDato: new FormControl(this.fuenteCampoDTO?.tipoDato, [Validators.required]),\n tipoInformacion: new FormControl(this.fuenteCampoDTO.tipoInformacion),\n columna: new FormControl(this.fuenteCampoDTO?.columna),\n posicionInicial: new FormControl(this.fuenteCampoDTO.posicionInicial, ),\n posicionFinal: new FormControl(this.fuenteCampoDTO.posicionFinal),\n formato: new FormControl(this.fuenteCampoDTO.formato,),\n homologacion: new FormControl(this.fuenteCampoDTO.homologacion),\n });\n if (this.rompimiento || this.agrupamiento) {\n this.formulario.get('tipoInformacion').addValidators([Validators.required]);\n this.formulario.get('tipoInformacion').updateValueAndValidity()\n }\n if (this.conSeparador) {\n this.formulario.get('columna').addValidators([Validators.required]);\n this.formulario.get('columna').updateValueAndValidity()\n }\n this.cargando = true\n\n }\n\n async actionCambioTipo(event) {\n if (event.value == 'F') {\n this.formulario.get('formato').addValidators([Validators.required]);\n } else {\n this.formulario.get('formato').clearValidators();\n }\n if (this.formulario.get('tipoDato').value == this.fuentePipe.DECIMAL || this.formulario.get('tipoDato').value == this.fuentePipe.NUMERO || this.formulario.get('tipoDato').value == this.fuentePipe.TEXTO || this.formulario.get('tipoDato').value == this.fuentePipe.FECHA) {\n this.homologaciones = await this.cargarmapasGlobal.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\n } else {\n \n }\n this.formulario.get('formato').updateValueAndValidity()\n \n }\n\n async guardar() {\n try {\n console.log(this.formulario);\n let err: ValidationErrors = { 'mayorQue': true };\n this.formulario.get('posicionFinal').clearValidators();\n this.formulario.get('posicionFinal').updateValueAndValidity();\n if (this.formulario.valid ) {\n if(( (this.formulario.get('posicionFinal').value != null && this.formulario.get('posicionFinal').value != '') && (this.formulario.get('posicionInicial').value != null && this.formulario.get('posicionInicial').value != '')) && \n (this.formulario.get('posicionFinal').value <= this.formulario.get('posicionInicial').value)){\n this.mensaje = 'El valor no debe ser mayor a ' + this.formulario.get('posicionInicial').value\n this.formulario.get('posicionFinal').setErrors(err);\n this.validator();\n return\n }\n\n if (this.isNew) {\n let data = await this.generalService.crearRegistro(new GeneralModel('FuenteCampoDTO', null, false, this.formulario.getRawValue())).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n this.regresarNuevo.emit(data)\n await this.ocultar();\n return;\n }\n if ((await this.generalService.update(new GeneralModel('FuenteCampoDTO', null, false, this.formulario.getRawValue())).toPromise()) <= 0) {\n this.notificacionesBusService.showInfo('Registro NO Actualizado');\n return;\n }\n this.notificacionesBusService.showInfo('Registro Actualizado');\n this.ocultar();\n }\n else {\n this.validator();\n }\n } catch (error) {\n console.log(JSON.stringify(error));\n }\n }\n\n validator(){\n let comodinValidador: boolean = false;\n Object.keys(this.formulario.controls).forEach((key) => {\n if (this.formulario.get(key).errors) {\n if (this.formulario.get(key).errors['mayorQue']) {\n this.formulario.get(key).markAsDirty();\n comodinValidador = true;\n this.notificacionesBusService.showWarning(this.mensaje);\n return;\n }\n this.formulario.get(key).markAsDirty();\n }\n });\n if (comodinValidador == false) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n }\n }\n\n\n\n eliminar(event, cDelete: FuenteCampoModel) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel:'Si',\n accept: () => {\n this.setEliminar(cDelete);\n },\n reject: () => {\n\n }\n });\n }\n\n async setEliminar(cDelete: FuenteCampoModel) {\n if ((await this.generalService.delete(new GeneralModel('FuenteCampoDTO', null, false, cDelete)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n this.ocultar();\n return\n }\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.ocultar();\n }\n\n public ocultar() {\n this.mostrar = false;\n this.campo = new FuenteCampoModel();\n this.fuenteCampoDTO = new FuenteCampoModel();\n this.regresar.emit();\n }\n\n async cargaBooleanos() {\n this.agrupamiento = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.AGRUPAMIENTO;\n this.rompimiento = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.ROMPIMIENTO;\n this.unicoRegistro = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.UNICO_REGISTRO ? true : false;\n this.mostrarHoja = this.unicoRegistro && this.fuenteDTO.excel == this.generalPipe.SI ? true : false;\n this.sinSeparador = this.fuenteDTO != null && this.fuenteDTO.separador == this.fuentePipe.SIN_SEPARADOR ? true : false;\n this.conSeparador = this.fuenteDTO != null && this.fuenteDTO.separador != null && this.fuenteDTO.separador != this.fuentePipe.SIN_SEPARADOR ? true : false;\n this.serviciosMotor = this.fuenteDTO.motor == this.generalPipe.SI ? true : false;\n this.formato = this.fuenteDTO != null && this.campo.tipoDato == this.fuentePipe.FECHA ? true : false;\n this.formatoNumero = this.fuenteDTO != null && this.campo.tipoDato == this.fuentePipe.NUMERO ? true : false;\n this.homologacion = this.fuenteDTO != null && (this.campo.tipoDato == this.fuentePipe.DECIMAL || this.campo.tipoDato == this.fuentePipe.NUMERO || this.campo.tipoDato == this.fuentePipe.TEXTO || this.campo.tipoDato == this.fuentePipe.FECHA) ? true : false;\n if (this.fuenteDTO == null || this.fuenteDTO.proceso == null) {\n this.servicioWeb = false;\n } if (this.fuenteDTO.proceso == this.fuentePipe.SERVICIO) {\n this.fuenteDTO.ejecucion = this.fuentePipe.SERVICIO_EJECUCION;\n this.fuenteDTO.tipo = this.fuentePipe.UNICO_REGISTRO;\n this.fuenteDTO.separador = this.fuentePipe.COMA;\n this.servicioWeb = true;\n }\n }\n\n noNulo(key): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let bReturn: boolean = true;\n if (this.formulario?.controls[key].value == '') {\n bReturn = true;\n }\n let err: ValidationErrors = { 'nulo': true };\n return bReturn ? of(null) : of(err);\n };\n }\n\n\n mayorQue(key, keyCompara): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let bReturn: boolean = true;\n console.log('entro');\n if (this.formulario?.controls[key].value < this.formulario?.controls[keyCompara].value) {\n this.mensaje = 'El valor no debe ser mayor a ' + this.formulario.controls[keyCompara].value\n console.log('entro mas');\n bReturn = false;\n }\n let err: ValidationErrors = { 'mayorQue': true };\n return bReturn ? of(null) : of(err);\n };\n }\n\n}\n","<p-dialog id='popupReImprimirRegresion' header=\"{{'campos' | translate}}\" [(visible)]=\"mostrar\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n <div *ngIf=\"cargando\">\n <form [formGroup]=\"formulario\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n\n <div class=\"p-fluid grid\">\n <div class=\"field col-3 md:col-3 lg:col-12\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"descripcion\" required/>\n <label for=\"descripcion\">{{'descripcion' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_DATO\" appendTo=\"body\" [autoZIndex]=\"false\" formControlName=\"tipoDato\" \n [autoDisplayFirst]=\"false\" optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\" (onChange)=\"actionCambioTipo($event)\">\n </p-dropdown>\n <label for=\"descripcion\">{{'tipo' | translate}} de {{'dato' |\n translate}}*</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"rompimiento || agrupamiento\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"tipoInformacion\" required\n maxlength=\"10\" />\n <label for=\"tipoInformacion\">{{'tipo' | translate}} {{'informacion' |\n translate}} * </label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"conSeparador\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus formControlName=\"columna\" required\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"2\" />\n <label for=\"descripcion\">{{'columna' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus formControlName=\"posicionInicial\"\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"4\" />\n <label for=\"descripcion\">{{'posicioninicial' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus formControlName=\"posicionFinal\" (onchange)=\"this.formulario.get('posicionFinal').updateValueAndValidity()\"\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"4\" />\n <label for=\"descripcion\">{{'posicionfinal' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == 'F'\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"formato\"\n maxlength=\"50\" />\n <label for=\"descripcion\">{{'formato' | translate}} *</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == 'N'\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_FORMATOS\" formControlName=\"formato\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"true\" optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\">\n </p-dropdown>\n <label for=\"descripcion\">{{'formato' | translate}}\n </label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == this.fuentePipe.DECIMAL || formulario.get('tipoDato').value == this.fuentePipe.NUMERO || formulario.get('tipoDato').value == this.fuentePipe.TEXTO || formulario.get('tipoDato').value == this.fuentePipe.FECHA\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"homologaciones\" formControlName=\"homologacion\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionValue=\"key\" optionLabel=\"label\" [showClear]=\"true\">\n </p-dropdown>\n <label for=\"descripcion\">{{'homologacion' | translate}} </label>\n </span>\n </div>\n </div>\n <div class=\"flex justify-content-end align-content-center mt-3\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" *ngIf=\"!isNew\"></button>\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\" *ngIf=\"isNew\"></button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\"\n (click)=\"eliminar($event,formulario.value)\" icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\"\n *ngIf=\"!isNew\"></button>\n </div>\n\n </div>\n</form>\n</div>\n</p-dialog>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\n\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { FuenteEntradaModel } from '../../../../seguridad/modelos/FuenteEntradaModel';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport {RecursoPuntoModel} from '../../../../seguridad/modelos/RecursoPuntoModel';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { FuenteCampoModel } from '../../../../seguridad/modelos/FuenteCampoModel';\nimport { FuenteServicioModel } from '../../../../seguridad/modelos/FuenteServicioModel'; \nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\nimport { FuenteGeneralService } from '../../../services/fuentegeneral.service';\nimport { ParametrosGeneralModel } from '../../../../seguridad/modelos/ParametrosGeneralModel';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PopupRecursoComponent } from '../../../popups/popup-recurso/popup-recurso.component';\nimport { AbstractControl, AsyncValidatorFn, FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../../../../core/servicios/menu.service'\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { CommonModule } from '@angular/common';\nimport { AccordionModule } from 'primeng/accordion';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { TableModule } from 'primeng/table';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\nimport { ButtonModule } from 'primeng/button';\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\nimport { FuenteGeneralServicioComponent } from '../fuente-general-servicio/fuente-general-servicio.component'\nimport { PopupCamposFuenteGeneralComponent } from '../../../popups/popup-campos-fuente-general/popup-campos-fuente-general.component';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n imports: [TranslateModule, InputTextModule,CommonModule, AccordionModule, DropdownModule, FormsModule, TableModule, TablaGeneralComponent, FiltroGeneralComponent, ButtonModule, ReactiveFormsModule, GeneralPipe, FuentePipe, InputHelperSeleccionPlantillaComponent, PopupCamposFuenteGeneralComponent, FuenteGeneralServicioComponent, PopupRecursoComponent, InputTextareaModule, ConfirmPopupModule, ButtonModule, RouterModule],\n standalone: true,\n providers: [MessageService,ConfirmationService],\n templateUrl: './mantenimiento-fuente-general.page.html',\n styleUrls: ['./mantenimiento-fuente-general.page.scss']\n})\nexport class MantenimientoFuenteGeneralPage implements OnInit {\n @ViewChild(PopupRecursoComponent) popup: PopupRecursoComponent;\n\n eventoLlaveTabla;\n isNew: boolean = false;\n entrada: FuenteEntradaModel = new FuenteEntradaModel();\n entradas: FuenteEntradaModel[] = [];\n campos: FuenteCampoModel[] = [];\n campo: FuenteCampoModel = new FuenteCampoModel();\n servicios: FuenteServicioModel[] = [];\n servicio: FuenteServicioModel = new FuenteServicioModel();\n recursos: RecursoPuntoModel[] = [];\n recurso: RecursoPuntoModel = new RecursoPuntoModel;\n fuenteServicio: FuenteServicioModel = new FuenteServicioModel();\n fuenteEntradaDTO: FuenteEntradaModel = new FuenteEntradaModel();\n fuenteDTO: FuenteGeneralModel = new FuenteGeneralModel();\n listadoNotificacion: FuenteServicioModel[] = [];\n mapaservicio;\n listaServicios;\n verPuntoProceso: boolean;\n loadFormulario: boolean;\n /* BOOLEANOS */\n public serviciosMotor: boolean;\n public unicoRegistro: boolean;\n public agrupamiento: boolean;\n public rompimiento: boolean;\n public mostrarHoja: boolean;\n public sinSeparador: boolean;\n public conSeparador: boolean;\n public nuevaNotificacion: boolean;\n public servicioWeb: boolean = false;\n public nuevoRCampo: boolean;\n public mantenimientoServicio: boolean;\n public nuevoServicioP: boolean;\n public abrirAcordion: boolean;\n vistaVisualizar: String;\n paginatorEntrada = {\n rows: 10,\n totalRecords: 0,\n };\n paginatorCampo = {\n rows: 10,\n totalRecords: 0,\n };\n paginatorServicios = {\n rows: 10,\n totalRecords: 0,\n };\n paginatorRecursos = {\n rows: 10,\n totalRecords: 0,\n };\n paginatorNotificaciones = {\n rows: 10,\n totalRecords: 0,\n };\n filtersEntrada = [];\n filtersCampo = [];\n filtroServicio = [];\n formulario: FormGroup;\n formularioNoti: FormGroup;\n\n v:any;\n\n constructor(private activeRoute: ActivatedRoute, private authService: AuthService, private generalService: GeneralService, public fuentePipe: FuentePipe, public generalPipe: GeneralPipe,\n private notificacionesBusService: ToastService, private confirmationService: ConfirmationService, private router: Router, public utilsService: UtilsService, private translateService: TranslateService,\n private fuenteService: FuenteGeneralService, private formBuilder: FormBuilder, private menuService: MenuService) {\n this.eventoLlaveTabla = this.activeRoute.snapshot.paramMap.get('llaveTabla');\n }\n ngOnInit(): void {\n this.cargar();\n this.menuService.setBreadcrumb([{ label: 'Fuente General', command: (event) => this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral']) }, { label: 'Mantenimiento' }]);\n }\n cargarFiltros() {\n this.filtersEntrada = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }\n ];\n this.filtersCampo = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }\n ]\n }\n\n async cargar() {\n try {\n if (this.eventoLlaveTabla != null) {\n this.fuenteDTO.llaveTabla = this.eventoLlaveTabla;\n this.fuenteServicio.tipo = 'N'\n this.fuenteServicio.fuente = this.fuenteDTO.llaveTabla;\n this.fuenteDTO = await this.generalService.queryForObject(new GeneralModel('FuenteGeneralDTO', null, false, this.fuenteDTO)).toPromise();\n await this.cargarFormulario();\n await this.formularioNotificacion();\n this.cargarFiltros();\n this.cargaBooleanos();\n this.cargarEntradas();\n this.cargarCampos();\n this.cargarMapaServicios();\n } else {\n this.isNew = true;\n await this.cargarFormulario()\n return\n }\n } catch (error) {\n console.log(error);\n }\n\n }\n\n async cargarFormulario() {\n this.formulario = this.formBuilder.group({\n llaveTabla: new FormControl(this.fuenteDTO?.llaveTabla ? this.fuenteDTO?.llaveTabla : this.utilsService.generarLlave()),\n descripcion: new FormControl(this.fuenteDTO.descripcion, [Validators.required]),\n proceso: new FormControl(this.fuenteDTO?.proceso, [Validators.required]),\n formulaDescripcion: new FormControl(this.fuenteDTO?.formulaDescripcion),\n tipo: new FormControl(this.fuenteDTO?.tipo, [Validators.required]),\n codigo: new FormControl(this.fuenteDTO?.codigo),\n excel: new FormControl(this.fuenteDTO?.excel),\n hoja: new FormControl(this.fuenteDTO?.hoja),\n separador: new FormControl(this.fuenteDTO?.separador, [Validators.required]),\n motor: new FormControl(this.fuenteDTO?.motor),\n ejecucion: new FormControl(this.fuenteDTO?.ejecucion, [Validators.required]),\n tipoInfoColumna: new FormControl(this.fuenteDTO?.tipoInfoColumna),\n tipoInfoInicial: new FormControl(this.fuenteDTO?.tipoInfoInicial),\n tipoInfoFinal: new FormControl(this.fuenteDTO?.tipoInfoFinal),\n grupoColumna: new FormControl(this.fuenteDTO?.grupoColumna),\n grupoInicial: new FormControl(this.fuenteDTO?.grupoInicial),\n grupoFinal: new FormControl(this.fuenteDTO?.grupoFinal),\n datoRompe: new FormControl(this.fuenteDTO?.datoRompe),\n guardarCargue: new FormControl(this.fuenteDTO?.guardarCargue),\n numeroFila: new FormControl(this.fuenteDTO?.numeroFila),\n plantilla: new FormControl(this.fuenteDTO?.plantilla),\n validadorLinea: new FormControl(this.fuenteDTO?.validadorLinea),\n aplicacion: new FormControl(this.fuenteDTO?.aplicacion ? this.fuenteDTO?.aplicacion : this.authService.getTokenKey('aplicacion')),\n });\n this.loadFormulario = true\n }\n\n async validar() {\n Object.keys(this.formulario.controls).forEach((key) => {\n this.formulario.get(key).clearValidators();\n this.formulario.get(key).updateValueAndValidity();\n });\n this.formulario.get('descripcion').addValidators([Validators.required]);\n this.formulario.get('proceso').addValidators([Validators.required]);\n this.formulario.get('tipo').addValidators([Validators.required]);\n this.formulario.get('separador').addValidators([Validators.required]);\n this.formulario.get('ejecucion').addValidators([Validators.required]);\n if (this.isServiciosMotor()) {\n this.formulario.get('codigo').addValidators([Validators.required]);\n } else {\n this.formulario.get('guardarCargue').addValidators([Validators.required]);\n this.formulario.get('ejecucion').addValidators([Validators.required]);\n this.formulario.get('separador').addValidators([Validators.required]);\n }\n if ((this.isRompimiento() || this.isAgrupamiento()) && this.isConSeparador()) {\n this.formulario.get('tipoInfoColumna').addValidators([Validators.required]);\n }\n if ((this.isRompimiento() || this.isAgrupamiento()) && this.isSinSeparador()) {\n this.formulario.get('tipoInfoInicial').addValidators([Validators.required]);\n this.formulario.get('tipoInfoFinal').setAsyncValidators([this.noNulo('tipoInfoFinal'), this.mayorQue('tipoInfoFinal', 'tipoInfoInicial')]);\n }\n if (this.isAgrupamiento() && this.isConSeparador()) {\n this.formulario.get('grupoColumna').addValidators([Validators.required]);\n }\n if (this.isAgrupamiento() && this.isSinSeparador()) {\n this.formulario.get('grupoInicial').addValidators([Validators.required]);\n this.formulario.get('grupoFinal').setAsyncValidators([this.noNulo('grupoFinal'), this.mayorQue('grupoFinal', 'grupoInicial')]);\n }\n if ((this.isUnicoRegistro()) && this.isConSeparador() && this.isUnicoRegistro() && this.formulario.get('excel').value == 'S') {\n this.formulario.get('hoja').addValidators([Validators.required]);\n }\n if (this.isUnicoRegistro()) {\n this.formulario.get('motor').addValidators([Validators.required]);\n }\n if (this.formulario.get('motor').value != 'S') {\n this.formulario.get('ejecucion').addValidators([Validators.required]);\n this.formulario.get('guardarCargue').addValidators([Validators.required]);\n }\n if (this.isRompimiento()) {\n this.formulario.get('datoRompe').addValidators([Validators.required]);\n }\n Object.keys(this.formulario.controls).forEach((key) => {\n this.formulario.get(key).updateValueAndValidity();\n });\n\n }\n\n async guardar() {\n try {\n await this.validar();\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n await sleep(10);\n if (this.formulario.valid) {\n this.formulario.get('motor').setValue(this.isUnicoRegistro() ? this.generalPipe.NO : this.fuenteDTO.motor);\n if (this.isNew) {\n this.fuenteDTO = await this.generalService.crearRegistro(new GeneralModel('FuenteGeneralDTO', null, false, this.formulario.value)).toPromise();\n await this.cargarFormulario()\n this.isNew = false;\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n this.cargaBooleanos();\n this.cargarEntradas();\n this.cargarCampos();\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/mantenimiento', this.fuenteDTO.llaveTabla]);\n return null;\n }\n if ((await this.generalService.update(new GeneralModel('FuenteGeneralDTO', null, false, this.formulario.value)).toPromise()) <= 0) {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n return null;\n }\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n let comodinValidador: boolean = false;\n Object.keys(this.formulario.controls).forEach((key) => {\n if (this.formulario.get(key).errors) {\n if (this.formulario.get(key).errors['mayorQue']) {\n comodinValidador = true;\n this.formulario.get(key).markAsDirty();\n return;\n }\n this.formulario.get(key).markAsDirty();\n }\n });\n if (comodinValidador == false) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n }\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n async eliminar(event) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: 'Si',\n accept: () => {\n this.setEliminar();\n },\n reject: () => {\n\n }\n });\n }\n\n async setEliminar() {\n try {\n\n if ((await this.generalService.delete(new GeneralModel('FuenteGeneralDTO', null, false, { llaveTabla: this.formulario.get('llaveTabla').value })).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n return\n }\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral']);\n\n } catch (error) {\n console.log(JSON.stringify(error));\n\n }\n }\n\n\n\n /* ENTRADA */\n\n async cargarEntradas(event?) {\n this.entradas = []\n let objeto = {}\n objeto = {\n paginacionRegistroInicial: event?.first ? event?.first : 0,\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\n fuente: this.fuenteDTO.llaveTabla,\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion.value + '%' : null\n }\n this.entradas = await this.generalService.queryForList(new GeneralModel('FuenteEntradaDTO', null, false, objeto)).toPromise();\n this.paginatorEntrada.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteEntradaDTO', null, false, objeto)).toPromise();\n }\n\n nuevaEntrada() {\n this.vistaVisualizar = 'nuevo'\n }\n\n async agregarEntrada(dato: FuenteEntradaModel) {\n console.log(dato);\n\n if (dato == null) {\n this.notificacionesBusService.showWarning('faltan campos para el insertar el registro');\n return;\n }\n dato.fuente = this.fuenteDTO.llaveTabla;\n if ((await this.generalService.crearRegistro(new GeneralModel('FuenteEntradaDTO', null, false, dato)).toPromise()) != null) {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n this.entrada = new FuenteEntradaModel();\n this.vistaVisualizar = '';\n this.entradas = []\n this.cargarEntradas();\n return\n }\n this.notificacionesBusService.showError(this.generalPipe.MENSAJE_GUARDAR_NO);\n }\n\n async editarEntrada(entradaEdit: FuenteEntradaModel) {\n if ((await this.generalService.update(new GeneralModel('FuenteEntradaDTO', null, false, entradaEdit)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.NO_ACTUALIZA);\n return\n }\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR)\n }\n\n eliminarEntrada(event, entradaDelete: FuenteEntradaModel) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: 'Si',\n accept: () => {\n this.setEliminarEntrada(entradaDelete);\n },\n reject: () => {\n\n }\n });\n }\n\n async setEliminarEntrada(entradaDelete: FuenteEntradaModel) {\n if ((await this.generalService.delete(new GeneralModel('FuenteEntradaDTO', null, false, entradaDelete)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n return\n }\n this.entradas = []\n await this.cargarEntradas()\n this.ngOnInit();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n }\n cancelarEntrada() {\n this.vistaVisualizar = '';\n this.entrada = new FuenteEntradaModel();\n }\n\n /*CAMPO*/\n\n async cargarCampos(event?) {\n this.campos = [];\n let objeto = {\n paginacionRegistroInicial: event?.first ? event?.first : 0,\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\n fuente: this.fuenteDTO.llaveTabla,\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion?.value + '%' : null,\n origen: 'C',\n }\n \n this.campos = await this.generalService.queryForList(new GeneralModel('FuenteCampoDTO', null, false, objeto)).toPromise();\n this.paginatorCampo.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteCampoDTO', null, false, objeto)).toPromise()\n }\n\n nuevoCampo() {\n this.nuevoRCampo = true;\n this.campo = new FuenteCampoModel();\n }\n\n seleccionCampo(event) {\n this.nuevoRCampo = true;\n this.campo = event.data;\n }\n async regresarCampo() {\n await this.cargarCampos();\n this.nuevoRCampo = false;\n this.campo = null;\n }\n\n /*SERVICIOS */\n\n async cargarServicios(event?) {\n let objeto = {\n paginacionRegistroInicial: event?.first ? event?.first : 0,\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\n fuente: this.fuenteDTO.llaveTabla,\n tipo: 'Servicio',\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion?.value + '%' : null,\n }\n this.servicios = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\n this.paginatorServicios.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\n }\n async cargarMapaServicios() {\n\n let map: Map<string, string> = new Map<string, string>();\n this.listaServicios = await this.fuenteService.obtenerListaServicio(new ParametrosGeneralModel()).toPromise();\n this.listaServicios.forEach(element => {\n map.set(element.codigo, element.descripcion);\n })\n this.mapaservicio = Array.from(map, ([key, label]) => ({ key, label }));\n console.log(this.mapaservicio);\n\n }\n\n async seleccionarServicio(event) {\n this.servicio = event.data;\n this.nuevoServicioP = false;\n this.mantenimientoServicio = true;\n }\n\n regresarServicio() {\n this.abrirAcordion = true\n this.mantenimientoServicio = false\n this.nuevoServicioP = true;\n this.cargarServicios();\n }\n\n\n nuevoServicio() {\n this.mantenimientoServicio = true;\n this.nuevoServicioP = true;\n }\n\n\n transform(value: any, ...args: any): any {\n let result = value;\n if (args[0] == 'mapaServicio') { this.mapaservicio.forEach(data => { if (data.key === value) { result = data.label } }); }\n return result;\n }\n\n /* PUNTO PROCESO */\n\n async cargarRecurso(event?) {\n let objeto = {\n paginacionRegistroInicial: event?.first ? event?.first : 0,\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\n fuente: this.fuenteDTO.llaveTabla,\n }\n this.recursos = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, objeto)).toPromise();\n this.paginatorRecursos.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('RecursoPuntoDTO', null, false, objeto)).toPromise();\n }\n\n async seleccionarRecurso(event) {\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n this.verPuntoProceso = true\n await sleep(10);\n this.recurso = event.data;\n this.popup.ver(this.recurso, this.fuenteDTO.llaveTabla, false, 'F');\n\n }\n async nuevoRecurso() {\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n this.verPuntoProceso = true\n await sleep(10);\n this.popup.ver(new RecursoPuntoModel(), this.fuenteDTO.llaveTabla, true, 'F');\n }\n\n async cerrarRecurso() {\n this.verPuntoProceso = false;\n await this.cargarRecurso(null);\n }\n\n /*NOTIFICACIONES */\n\n async cargarListadoNotificaciones(event?) {\n let objeto = {\n paginacionRegistroInicial: event?.first ? event?.first : 0,\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\n tipo: 'N',\n fuente: this.fuenteDTO.llaveTabla,\n }\n this.listadoNotificacion = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\n this.paginatorNotificaciones.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\n }\n\n async nuevoRegistroNotificacion() {\n try {\n this.vistaVisualizar = 'nuevoN';\n } catch (error) {\n console.log(error);\n }\n }\n\n cancelarNotificacion() {\n this.vistaVisualizar = null;\n this.fuenteServicio = new FuenteServicioModel();\n }\n\n async formularioNotificacion() {\n this.formularioNoti = this.formBuilder.group({\n tipo: new FormControl(this.fuenteServicio.tipo ? this.fuenteServicio.tipo : 'N'),\n fuente: new FormControl(this.fuenteServicio.fuente ? this.fuenteServicio.fuente : this.fuenteDTO.llaveTabla),\n tipoRecurso: new FormControl(this.fuenteServicio?.tipoRecurso, [Validators.required]),\n correo: new FormControl(this.fuenteServicio?.correo),\n descripcion: new FormControl(this.fuenteServicio?.descripcion, [Validators.required]),\n predefinido: new FormControl(this.fuenteServicio?.predefinido, [Validators.required]),\n correoCopia: new FormControl(this.fuenteServicio?.correoCopia),\n });\n }\n\n validarCorreo() {\n if (this.formularioNoti.get('tipoRecurso').value == 'F') {\n this.formularioNoti.get('correo').setValidators([Validators.required]);\n } else {\n this.formularioNoti.get('correo').clearValidators();\n }\n this.formularioNoti.get('correo').updateValueAndValidity();\n }\n\n async agregarNotificacion(noti, nuevo) {\n try {\n if (this.formularioNoti.valid) {\n if (nuevo) {\n this.fuenteServicio = await this.generalService.crearRegistro(new GeneralModel('FuenteServicioDTO', null, false, this.formularioNoti.value)).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n }\n\n this.cargarListadoNotificaciones();\n this.fuenteServicio = new FuenteServicioModel();\n this.formularioNotificacion()\n this.vistaVisualizar = null;\n } else {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n Object.keys(this.formularioNoti.controls).forEach((key) => {\n if (this.formularioNoti.get(key).errors) {\n this.formularioNoti.get(key).markAsDirty();\n }\n });\n }\n\n } catch (error) {\n console.log(JSON.stringify(error));\n }\n\n }\n\n eliminarNotificacion(event, noti: FuenteServicioModel) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: 'Si',\n accept: () => {\n this.setEliminarNotificacion(noti);\n },\n reject: () => {\n\n }\n });\n }\n\n async setEliminarNotificacion(noti: FuenteServicioModel) {\n if ((await this.generalService.delete(new GeneralModel('FuenteServicioDTO', null, false, noti)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n this.ngOnInit();\n return\n }\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.cargarListadoNotificaciones();\n }\n\n async cargaBooleanos() {\n if (this.fuenteDTO == null || this.formulario.get('proceso').value == null) {\n this.servicioWeb = false;\n } if (this.formulario.get('proceso').value == this.fuentePipe.SERVICIO) {\n this.formulario.get('ejecucion').setValue(this.fuentePipe.SERVICIO_EJECUCION)\n this.formulario.get('tipo').setValue(this.fuentePipe.UNICO_REGISTRO);\n this.formulario.get('separador').setValue(this.fuentePipe.COMA);\n this.servicioWeb = true;\n }\n Object.keys(this.formulario.controls).forEach((key) => { this.formulario.get(key).updateValueAndValidity(); });\n }\n\n isServicioWeb() {\n if (this.formulario.value == null || this.formulario.get('proceso').value == null) {\n return false;\n } if (this.formulario.get('proceso').value == this.fuentePipe.SERVICIO) {\n this.formulario.get('ejecucion').setValue(this.fuentePipe.SERVICIO_EJECUCION)\n this.formulario.get('tipo').setValue(this.fuentePipe.UNICO_REGISTRO);\n this.formulario.get('separador').setValue(this.fuentePipe.COMA);\n Object.keys(this.formulario.controls).forEach((key) => { this.formulario.get(key).updateValueAndValidity(); });\n return true;\n }\n return false;\n }\n\n isAgrupamiento() {\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.AGRUPAMIENTO;\n }\n isRompimiento() {\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.ROMPIMIENTO;\n }\n isUnicoRegistro() {\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.UNICO_REGISTRO ? true : false;\n }\n isMostrarHoja() {\n return this.isUnicoRegistro() && this.formulario.get('excel').value == this.generalPipe.SI ? true : false;\n }\n isSinSeparador() {\n return this.formulario.value != null && this.formulario.get('separador').value == this.fuentePipe.SIN_SEPARADOR ? true : false;\n }\n isConSeparador() {\n return ((this.formulario.value != null) && (this.formulario.get('separador').value != null && this.formulario.get('separador').value != this.fuentePipe.SIN_SEPARADOR));\n }\n isNuevaNotificacion() {\n return this.fuenteServicio != null && this.fuenteServicio.llaveTabla != null ? true : false;\n }\n isServiciosMotor() {\n return this.formulario.get('motor').value == this.generalPipe.SI ? true : false;\n }\n\n obtenerArchivoPlanilla(event) {\n this.formulario.get('plantilla').setValue(event.data);\n }\n\n obtenerArchivoPlanillaServicio(event) {\n this.formularioNoti.get('predefinido').setValue(event.label);\n }\n\n\n noNulo(key): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let bReturn: boolean = true;\n if (this.formulario.controls[key].value == '') {\n bReturn = false;\n }\n let err: ValidationErrors = { 'nulo': true };\n return bReturn ? of(null) : of(err);\n };\n }\n\n\n setearCampoNuevo(event){\n this.campos.push(event);\n }\n\n mayorQue(key, keyCompara): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let bReturn: boolean = true;\n if (this.formulario.controls[key].value < this.formulario.controls[keyCompara].value) {\n this.notificacionesBusService.showWarning('El valor no debe ser mayor a ' + this.formulario.controls[keyCompara].value);\n bReturn = false;\n }\n let err: ValidationErrors = { 'mayorQue': true };\n return bReturn ? of(null) : of(err);\n };\n }\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"loadFormulario\">\n<div *ngIf=\"!mantenimientoServicio\">\n <div class=\"flex justify-content-between align-items-center mb-3\">\n <h1>{{ 'fuente'| translate}}</h1>\n <button pButton pRipple routerLink=\"/{{utilsService.obtenerBase()}}/webcommon/fuentearchivo/fuente/fuenteGeneral\" label=\"Regresar\"\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold\"></button>\n </div>\n \n <div class=\"card\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'basica' | translate}}</h5>\n <form [formGroup]=\"formulario\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"Inputgroup m-0 mb-3\">\n <div class=\"p-fluid grid\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"descripcion\" pInputText autofocus\n type=\"text\" />\n <label for=\"descripcion\">{{'descripcion' | translate}} *\n </label>\n </span>\n </div>\n <div class=\" field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.ORIGEN_DATOS\" \n formControlName=\"proceso\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\n optionLabel=\"nombre\" [disabled]=\"!isNew\">\n </p-dropdown>\n <label for=\"descripcion\">{{'origen' | translate}} de\n {{'datos' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"formulario.get('proceso').value == 'S'\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.SERVICIOS_WEB\" \n formControlName=\"formulaDescripcion\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\" optionLabel=\"nombre\" >\n </p-dropdown>\n <label for=\"descripcion\">{{'servicioweb' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_FUENTE\" \n formControlName=\"tipo\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\n optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\">\n </p-dropdown>\n <label for=\"descripcion\">{{'tipo' | translate}} *\n </label>\n </span>\n </div>\n <div class=\" field col-4 md:col-4 lg:col-4\" *ngIf=\"isServiciosMotor()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus\n type=\"text\" formControlName=\"codigo\" />\n <label for=\"descripcion\">{{'codigo' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"(isUnicoRegistro()) && isConSeparador()\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" \n formControlName=\"excel\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\n optionLabel=\"nombre\" > </p-dropdown>\n <label for=\"descripcion\">{{'Archivo' | translate}}\n {{'excel' | translate}} </label>\n </span>\n </div>\n <div class=\" field col-4 md:col-4 lg:col-4\"*ngIf=\"(isUnicoRegistro()) && isConSeparador() && this.isUnicoRegistro() && this.formulario.get('excel').value == 'S'\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"hoja\" pInputText autofocus type=\"text\" />\n <label for=\"descripcion\">{{'hojaexcel' | translate}} *\n </label>\n </span>\n\n </div>\n <div class=\" field col-4 md:col-4 lg:col-4\" *ngIf=\"!isServicioWeb()\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_SEPARADORES\" \n formControlName=\"separador\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\" optionLabel=\"nombre\" >\n </p-dropdown>\n <label for=\"descripcion\">{{'separador' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isUnicoRegistro()\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_MOTOR\" \n formControlName=\"motor\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\n optionLabel=\"nombre\" [disabled]=\"!isNew\" >\n </p-dropdown>\n <label for=\"descripcion\">{{'motor' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('motor').value != 'S'\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"fuentePipe.LISTA_EJECUCION\" \n formControlName=\"ejecucion\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\" optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\"> </p-dropdown>\n <label for=\"descripcion\">{{'ejecutar' | translate}}\n {{'por' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\"\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isConSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" pInputText autofocus formControlName=\"tipoInfoColumna\"\n type=\"text\" maxlength=\"2\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n />\n <label for=\"descripcion\">{{'tipoinformacioncolumna' |\n translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\"\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isSinSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"tipoInfoInicial\" pInputText autofocus\n type=\"text\" maxlength=\"3\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n />\n <label for=\"descripcion\">{{'tipoinformacioninicial' |\n translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\"\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isSinSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"tipoInfoFinal\" pInputText autofocus\n type=\"text\" maxlength=\"3\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n />\n <label for=\"descripcion\">{{'tipoinformacionfinal' |\n translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isConSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"grupoColumna\" pInputText autofocus\n type=\"text\" maxlength=\"2\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />\n <label for=\"descripcion\">{{'grupo' | translate}}\n {{'columna'| translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isSinSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"grupoInicial\" pInputText autofocus\n type=\"text\" maxlength=\"3\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>\n <label for=\"descripcion\">{{'grupo' | translate}}\n {{'inicial' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isSinSeparador()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"grupoFinal\" pInputText autofocus\n type=\"text\" maxlength=\"3\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n />\n <label for=\"descripcion\">{{'grupofinal' | translate}} *\n </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isRompimiento()\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"datoRompe\" pInputText autofocus\n type=\"text\" maxlength=\"3\"\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>\n <label for=\"descripcion\">{{'dato' | translate}}\n {{'rompimiento' |translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('motor').value != 'S'\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" \n formControlName=\"guardarCargue\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\" optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\"> </p-dropdown>\n <label for=\"descripcion\">{{'guardar' | translate}}\n {{'informacion' | translate}} {{'cargue' | translate}} * </label>\n </span>\n </div>\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('excel').value == 'S'\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" formControlName=\"numeroFila\" pInputText autofocus\n type=\"text\" />\n <label for=\"descripcion\">{{'numeroFila' | translate}}\n </label>\n </span>\n </div>\n <!-- PLANTILLA -->\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('excel').value == 'S'\">\n <span class=\"p-float-label\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"formulario.get('plantilla').value ? formulario.get('plantilla').value: ''\"\n (onSelected)=\"obtenerArchivoPlanilla($event)\" >\n </app-input-helper-seleccion-plantilla>\n \n </span>\n </div>\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"isServiciosMotor()\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\n formControlName=\"validadorLinea\" autofocus\n [autoResize]=\"true\"> </textarea>\n <label for=\"descripcion\">{{'validador' | translate}}\n </label>\n </span>\n </div>\n </div>\n <div class=\"flex justify-content-end align-content-center mt-3\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" *ngIf=\"!isNew\"></button>\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\" *ngIf=\"isNew\"></button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\"\n (click)=\"eliminar($event)\" icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\"\n *ngIf=\"!isNew\"></button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <p-accordion>\n <p-accordionTab *ngIf=\"!isNew\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'entrada' | translate}}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"flex align-items-center justify-content-between mb-2\">\n <app-filtro-general [filtros]=\"filtersEntrada\" [datatable]=\"tablaGeneralEntrada\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"field\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\n formControlName=\"descripcion\" autocomplete=\"off\" />\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaEntrada()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"entradas\" [scrollable]=\"true\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n [rows]=\"paginatorEntrada.rows\"\n [paginator]=\"paginatorEntrada.totalRecords > paginatorEntrada.rows\" scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\" [rows]=\"paginatorEntrada.rows\"\n [totalRecords]=\"paginatorEntrada.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n [showCurrentPageReport]=\"true\" editMode=\"row\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarEntradas($event)\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\n <th class=\"w-6rem\">{{'tipo' | translate}} {{'dato' | translate}}</th>\n <th class=\"w-6rem\">{{'obligatorio' | translate}}</th>\n <th class=\"w-6rem\">{{'valor' | translate}} {{'defecto' | translate}}</th>\n <th class=\"w-6rem\"> </th>\n </tr>\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\n <td class=\"w-6rem\">\n <input #idDescripcion=\"ngModel\" pInputText type=\"text\" [(ngModel)]=\"entrada.descripcion\" class=\"w-full\" required>\n </td>\n <td class=\"w-6rem\">\n <p-dropdown #idTipoDato=\"ngModel\" [options]=\"fuentePipe.LISTA_TIPO_DATO\" optionValue=\"codigo\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" class=\"w-full\" \n [(ngModel)]=\"entrada.tipoDato\" appendTo=\"body\" [autoZIndex]=\"false\" ></p-dropdown>\n </td>\n <td class=\"w-6rem\">\n <p-dropdown #idObligatorio=\"ngModel\" [options]=\"generalPipe.LISTA_SINO\" optionValue=\"codigo\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" \n [(ngModel)]=\"entrada.obligatorio\" class=\"w-full\" appendTo=\"body\" [autoZIndex]=\"false\" ></p-dropdown>\n </td>\n <td class=\"w-6rem\">\n <input #idValorDefecto=\"ngModel\" pInputText type=\"text\" [(ngModel)]=\"entrada.valorDefecto\" class=\"w-full\">\n </td>\n <td class=\"flex justify-content-end\">\n <div>\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n (click)=\"agregarEntrada(entrada)\" *ngIf=\"idDescripcion.valid && idTipoDato.valid && idObligatorio.valid\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"cancelarEntrada()\" icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"entrada\">\n <td class=\"w-6rem\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"entrada.descripcion\"\n class=\"w-full\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{entrada.descripcion}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td class=\"w-6rem\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_DATO\" optionValue=\"codigo\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\n [(ngModel)]=\"entrada.tipoDato\" class=\"w-full\">\n </p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{entrada.tipoDato | fuentePipe:'listaTipoDato'}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td class=\"w-6rem\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" optionValue=\"codigo\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\n [(ngModel)]=\"entrada.obligatorio\" class=\"w-full\">\n </p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{entrada.obligatorio | generalPipe:'listaSiNo'}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td class=\"w-6rem\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"entrada.valorDefecto\"\n class=\"w-full\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{entrada.valorDefecto}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td class=\"flex justify-content-end\">\n <div>\n <!-- CHECK GUARDAR -->\n <!-- <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"editarEntrada(entrada)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\n <!-- CANCELAR -->\n <!-- <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\n <!-- EDITAR -->\n <!-- <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarEntrada($event,entrada)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n \n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"((!isNew) && (!isServicioWeb()))\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'campos' | translate}}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"flex align-items-center justify-content-between mb-2\">\n <app-filtro-general [filtros]=\"filtersCampo\" [datatable]=\"tablaGeneralCampo\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"field\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\n formControlName=\"descripcion\" autocomplete=\"off\" />\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampo()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table #tablaGeneralCampo [value]=\"campos\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n [rows]=\"paginatorCampo.rows\" [paginator]=\"paginatorCampo.totalRecords > paginatorCampo.rows\"\n [totalRecords]=\"paginatorCampo.totalRecords\" [lazy]=\"true\" [showCurrentPageReport]=\"true\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" (onRowSelect)=\"seleccionCampo($event)\"\n selectionMode=\"single\" responsiveLayout=\"scroll\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onLazyLoad)=\"cargarCampos($event)\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\"\n [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-12rem\">{{'descripcion' | translate}}</th>\n <th class=\"w-12rem\">{{'tipodato' | translate}}</th>\n <th class=\"w-12rem\" *ngIf=\"(isRompimiento()) || (isAgrupamiento())\">{{'tipo' | translate}}\n {{'informacion' | translate}}</th>\n <th class=\"w-12rem\" *ngIf=\"isConSeparador()\">{{'columna' | translate}}</th>\n <th class=\"w-12rem\" *ngIf=\"isSinSeparador()\">{{'posicion' | translate}} {{'inicial' |\n translate}}</th>\n <th class=\"w-12rem\" *ngIf=\"isSinSeparador()\">{{'posicion' | translate}} {{'final' |\n translate}}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-campo>\n <tr [pSelectableRow]=\"campo\">\n <td class=\"w-12rem\">\n {{campo.descripcion}}\n </td>\n <td class=\"w-12rem\">\n {{campo.tipoDato | fuentePipe:'listaTipoDato'}}\n </td>\n <td class=\"w-12rem\" *ngIf=\"isRompimiento() || isAgrupamiento()\">\n {{campo.tipoInformacion}}\n </td>\n <td class=\"w-12rem\" *ngIf=\"isConSeparador()\">\n {{campo.columna}}\n </td>\n <td class=\"w-12rem\" *ngIf=\"isSinSeparador()\">\n {{campo.posicionInicial}}\n </td>\n <td class=\"w-12rem\" *ngIf=\"isSinSeparador()\">\n {{campo.posicionFinal}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n\n </p-table>\n </div>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"!isNew\" [selected]=\"abrirAcordion\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'servicio' | translate}}s\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div>\n <div class=\"flex align-items-center justify-content-between mb-2\">\n <app-filtro-general [filtros]=\"filtersCampo\" [datatable]=\"tablaGeneralServicio\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"field\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\n formControlName=\"descripcion\" autocomplete=\"off\" />\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoServicio()\"\n icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table #tablaGeneralServicio [value]=\"servicios\" styleClass=\"p-datatable-striped\"\n [scrollable]=\"true\" [rows]=\"paginatorServicios.rows\"\n [paginator]=\"paginatorServicios.totalRecords > paginatorServicios.rows\"\n [totalRecords]=\"paginatorServicios.totalRecords\" [lazy]=\"true\"\n [showCurrentPageReport]=\"true\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n (onRowSelect)=\"seleccionarServicio($event)\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onLazyLoad)=\"cargarServicios($event)\" selectionMode=\"single\"\n [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-12rem\">{{'servicio' | translate}}</th>\n <th class=\"w-12rem\">{{'descripcion' | translate}}</th>\n <th class=\"w-12rem\" *ngIf=\"!isUnicoRegistro()\">{{'tipo' | translate}} {{'informacion' |\n translate}}</th>\n <th class=\"w-12rem\">{{'orden' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-servicio>\n <tr [pSelectableRow]=\"servicio\">\n <td class=\"w-12rem\">\n {{transform(servicio.servicio,'mapaServicio')}}\n </td>\n <td class=\"w-12rem\">\n {{servicio.descripcion}}\n </td>\n <td class=\"w-12rem\" *ngIf=\"!isUnicoRegistro()\">\n {{servicio.tipoInformacion}}\n </td>\n <td class=\"w-12rem\">\n {{servicio.orden}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\" >\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n\n </p-table>\n </div>\n </div>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"!isNew\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'puntoproceso' | translate}}\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"flex justify-content-end align-items-center\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoRecurso()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <p-table #tablaGeneralRecurso [value]=\"recursos\" styleClass=\"p-datatable-striped\"\n [scrollable]=\"true\" [rows]=\"paginatorRecursos.rows\" [paginator]=\"paginatorRecursos.totalRecords > paginatorRecursos.rows\"\n [totalRecords]=\"paginatorRecursos.totalRecords\" [lazy]=\"true\" [showCurrentPageReport]=\"true\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" (onRowSelect)=\"seleccionarRecurso($event)\"\n selectionMode=\"single\" responsiveLayout=\"scroll\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onLazyLoad)=\"cargarRecurso($event)\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\"\n [showCurrentPageReport]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-12rem\">{{'puntoproceso' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-recurso>\n <tr [pSelectableRow]=\"recurso\">\n <td class=\"w-12rem\">\n {{recurso.puntoProcesoDescripcion}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n\n </p-table>\n </div>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"!isNew\">\n <ng-template pTemplate=\"header\">\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'notificacion' | translate}}\n </ng-template>\n <ng-template pTemplate=\"content\">\n \n <div class=\"flex justify-content-end align-items-center\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoRegistroNotificacion()\"\n icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n\n\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"listadoNotificacion\" scrollable=\"[true]\" [tableStyle]=\"{ 'min-width': '90rem' }\"\n scrollDirection=\"horizontal\"[rows]=\"paginatorNotificaciones.totalRecords\" [paginator]=\"paginatorNotificaciones.totalRecords > paginatorNotificaciones.rows\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n [rows]=\"paginatorEntrada.rows\" [totalRecords]=\"paginatorEntrada.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n [showCurrentPageReport]=\"true\" editMode=\"row\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n (onLazyLoad)=\"cargarListadoNotificaciones($event)\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"max-width: 10;\">{{'tipo' | translate}}</th>\n <th style=\"max-width: 20%;\">{{'correo' | translate}}</th>\n <th style=\"max-width: 20%;\">{{'asunto' | translate}}</th>\n <th style=\"max-width: 20%;\">{{'html' | translate}}</th>\n <th style=\"max-width: 20%;\">{{'copia' | translate}}</th>\n <th style=\"max-width: 10%;\"> </th>\n </tr>\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevoN'\" [formGroup]=\"formularioNoti\">\n <td style=\"max-width: 10%;\"> \n <p-dropdown [options]=\"fuentePipe.LISTA_TIPORECURSO\" optionValue=\"codigo\" formControlName=\"tipoRecurso\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" (onChange)=\"validarCorreo()\"></p-dropdown> \n </td>\n <td style=\"max-width: 20%;\" class=\"w-full\">\n <input pInputText type=\"text\" formControlName=\"correo\" *ngIf=\"formularioNoti?.get('tipoRecurso').value != 'P'\" class=\"w-full\" >\n </td>\n <td style=\"max-width: 20%;\">\n <input pInputText type=\"text\" formControlName=\"descripcion\"\n class=\"w-full\">\n </td>\n <td style=\"max-width: 20%;\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"formularioNoti?.get('predefinido').value ? formularioNoti?.get('tipoRecurso').value: ''\"\n (onSelected)=\"obtenerArchivoPlanillaServicio($event)\"\n [extensiones]=\"'html;jasper;jrxml'\">\n </app-input-helper-seleccion-plantilla>\n </td>\n <td style=\"max-width: 20%;\">\n <input pInputText type=\"text\" formControlName=\"correoCopia\" class=\"w-full\">\n </td>\n <td style=\"max-width: 10%;\">\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n (click)=\"agregarNotificacion(null, true)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"cancelarNotificacion()\"\n icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-noti let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"noti\">\n <td style=\"max-width: 12%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n {{noti.tipoRecurso | fuentePipe:'listaTipoRecurso'}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"max-width: 60%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n {{noti.correo}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"max-width: 30%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n {{noti.descripcion | generalPipe:'listaSiNo'}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"max-width: 50%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n {{noti.predefinido}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"max-width: 30%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n {{noti.correoCopia}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"max-width: 8%;\" class=\"justify-content-end\">\n <div class=\"flex align-items-center justify-content-center gap-2\">\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarNotificacion($event,noti)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"6\">\n {{'mensajetablavacia' | translate}} \n </td>\n </tr>\n </ng-template>\n </p-table>\n \n </ng-template>\n </p-accordionTab>\n </p-accordion>\n</div>\n<div *ngIf=\"nuevoRCampo\">\n <app-popup-campos-fuente-general [mostrar]=\"nuevoRCampo\" [campo]=\"campo\" (regresar)=\"regresarCampo()\"\n [fuenteDTO]=\"formulario.value\"></app-popup-campos-fuente-general>\n</div>\n\n<div *ngIf=\"mantenimientoServicio\">\n <app-fuente-general-servicio [fuenteGeneral]=\"formulario.value\" [fuenteServicioDTO]=\"servicio\" [unica]=\"isUnicoRegistro()\"\n [servicios]=\"listaServicios\" (regresar)=\"regresarServicio()\" [isNew]=\"nuevoServicioP\" (regresarNuevo)=\"setearCampoNuevo($event)\">\n </app-fuente-general-servicio>\n</div>\n<div *ngIf=\"verPuntoProceso\">\n<app-popup-recurso (regresar)=\"cerrarRecurso()\"></app-popup-recurso>\n</div>\n</div>","export const CampoFormularioCons = {\n TEXTO:'T', \n COMBO:'C', \n NUMERO:'N',\n DECIMAL:'D',\n FECHA:'F', \n HORA:'X', \n FECHAHORA:'E', \n RADIO:'R',\n POPUP:'P',\n CHECK:'H',\n LOGICO:'L',\n TITULO:'I',\n SUBTITULO:'B',\n MENSAJE:'M',\n TEXTOAREA:'A',\n SECRET:'S',\n VALORHORA:'Z',\n AUTOCOMPLETAR:'Y',\n AUTOCOMPLETAR_AREA:'O',\n COMBOSQL:'Q',\n\t\n\tCOMBO_CONSULTA : 'Consulta',\n\tCOMBO_ESTATICO : 'Estarico',\n\t\n\tGRUPO_FINAL : 'F',\n\tGRUPO_INICIAL : 'I',\n\t\n\tCAMPO_LECTURA : 'L',\n\tCAMPO_EDITABLE : 'E',\n\tCAMPO_NO_VISIBLE : 'N',\n TEXTO_DES:'Texto', \n COMBO_DES:'Lista', \n NUMERO_DES:'Entero',\n DECIMAL_DES:'Decimal',\n FECHA_DES:'Fecha', \n RADIO_DES:'Alternativa',\n CHECK_DES:'Marca',\n LOGICO_DES:'Logico',\n TITULO_DES:'Titulo',\n SUBTITULO_DES:'Subtitulo',\n MENSAJE_DES:'Mensaje',\n TEXTOAREA_DES:'Texto Area',\n SECRET_DES:'Secret',\n COMBOSQL_DES:'Lista Sql',\n MAPA_TIPO_CAMPOS: new Map<string, string>()\n .set('T', 'Texto')\n\t.set('C', 'Combo')\n\t.set('N', 'Numero')\n\t.set('D', 'Decimal')\n\t.set('F', 'Fecha')\n\t.set('X', 'Hora')\n\t.set('R', 'Radio')\n\t.set('P', 'Popup')\n\t.set('H', 'Check')\n\t.set('L', 'Logico')\n\t.set('I', 'Titulo')\n\t.set('A', 'TextoArea')\n\t.set('S', 'Secreto')\n\t.set('Z', 'ValorHora'),\n\n MAPA_COMPONENTES_CARACTERISTICAS_ADI: new Map<string, string>()\n .set('T', 'Texto')\n\t.set('C', 'Combo')\n\t.set('N', 'Numero')\n\t.set('D', 'Decimal')\n\t.set('F', 'Fecha')\n\t.set('X', 'Hora')\n\t.set('R', 'Radio')\n\t.set('H', 'Check')\n\t.set('L', 'Logico')\n\t.set('I', 'Titulo')\n\t.set('A', 'TextoArea')\n\t.set('S', 'Secreto')\n\t.set('Z', 'ValorHora'),\n}","import { Type } from '@angular/core';\nimport { SelectItem } from 'primeng/api';\nimport { CampoFormularioCons } from './CampoFormularioCons';\n\nexport class CampoFormularioModel {\n\n\tcaracteristica: boolean;\n\ttipo: string;\n\tdescripcion: string;\n\tdescripcionAdicional: string;\n\tvalor: any;\n\tlongitud: number;\n\tdecimales: number;\n\tcampo: string;\n\tobligatorio: boolean;\n\tlista: SelectItem[];\n\tlistaRespuesta: string[];\n\tmensaje: string;\n\tpopup: string;\n\ttitulo: boolean;\n\ttextoPopup: string;\n\toriginal: any;\n\tdato: any;\n\torden: number;\n\tresaltado: boolean;\n\teditable: string;\n\tnovedad: any;\n\tcampoTabla: string;\n\tfuncion: string;\n\tmensajeFuncion: string;\n\tcampoDepende: string;\n\tcampoReferencia: any;\n\tcampoReferenciaDos: any;\n\tlimpiarPopup: boolean;\n\tidGrupoPertenece: string;\n\tayuda: string;\n\tvalidarEspecial: string;\n\tpopupComponent: Type<any>;\n\tpropiedadesPopupComponent: Partial<any>\n\tlistaPopups: any[]\n\n\t//campos creados por primeng\n\tlistaAutocompleteFiltrada: SelectItem[];\n\n\tconstructor(tipo: string, descripcion: string, longitud: number, decimales: number,\n\t\tcampo: string, obligatorio: boolean, lista: SelectItem[], popup: string, editable: string) {\n\t\tthis.tipo = this.ajustar(tipo);\n\t\tthis.descripcion = descripcion;\n\t\tthis.longitud = longitud;\n\t\tthis.decimales = decimales;\n\t\tthis.campo = campo;\n\t\tthis.obligatorio = obligatorio;\n\t\tthis.lista = lista;\n\t\tthis.listaRespuesta = [];\n\t\tthis.popup = popup;\n\t\tthis.editable= editable;\n\t}\n\n\tprivate ajustar(tipo2){\n\t\tlet tipo = tipo2;\n\t\tif (tipo2 == ('1')) tipo = CampoFormularioCons.CHECK;\n\t\tif (tipo2 == ('2')) tipo = CampoFormularioCons.RADIO;\n\t\tif (tipo2 == ('3')) tipo = CampoFormularioCons.COMBO;\n\t\tif (tipo2 == ('4')) tipo = CampoFormularioCons.TEXTO;\n\t\tif (tipo2 == ('5')) tipo = CampoFormularioCons.NUMERO;\n\t\tif (tipo2 == ('6')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('7')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('8')) tipo = CampoFormularioCons.FECHA;\n\t\tif (tipo2 == ('9')) tipo = CampoFormularioCons.TEXTOAREA;\n\t\tif (tipo2 == ('11')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('12')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('13')) tipo = CampoFormularioCons.LOGICO;\n\t\tif (tipo2 == ('14')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('15')) tipo = CampoFormularioCons.POPUP;\n\t\tif (tipo2 == ('16')){\n\t\t\ttipo = CampoFormularioCons.TITULO;\n\t\t\tthis.titulo=true;\n\t\t}\n\t\tif (tipo2 == ('17')) tipo = CampoFormularioCons.DECIMAL;\n\t\tif (tipo2 == ('18')) tipo = CampoFormularioCons.SECRET;\n\t\tif (tipo2 == ('19')) tipo = CampoFormularioCons.HORA;\n\t\treturn tipo\n\t}\n\n\tfiltrarAutocomplete(event) {\n\t\tlet filtered : any[] = [];\n let query = event.query;\n for(let i = 0; i < this.lista.length; i++) {\n let objeto = this.lista[i];\n\t\t\tconsole.log(objeto)\n if (objeto.label.toLowerCase().indexOf(query.toLowerCase()) == 0) {\n filtered.push(objeto);\n }\n }\n\n this.listaAutocompleteFiltrada = filtered;\n }\n\n\tisCambio(): boolean {\n\t\tif (this.tipo === CampoFormularioCons.TEXTO || this.tipo === CampoFormularioCons.TEXTOAREA || this.tipo === CampoFormularioCons.SECRET) {\n\t\t return (this.original == null ? '' : '' + this.original.toString().trim()) != (this.valor == null ? '' : '' + this.valor.toString().trim());\n\t\t}\n\t\tif (this.tipo === CampoFormularioCons.CHECK) {\n\t\t let respuestas = '';\n\t\t for (const item of this.listaRespuesta) {\n\t\t\trespuestas += item + ';';\n\t\t }\n\t\t return (this.original == null ? '' : '' + this.original) != (respuestas == null ? '' : '' + respuestas);\n\t\t}\n\t\treturn (this.original == null ? '' : '' + this.original) != (this.valor == null ? '' : '' + this.valor);\n\t }\n\n\tcargarValorPopup(event){\n\t\tconsole.log('cargarValorPopup')\n\t\tconsole.log(event)\n\t\tthis.valor = event;\n\t}\n}","import { Input, Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[hash]',\n standalone: true,\n })\n export class HashDirective {\n @Input() hash: string;\n \n constructor(public vcRef: ViewContainerRef) {}\n }","import { CampoFormularioModel } from \"./CampoFormulario\";\n\nexport class Cambio {\n viejo: any;\n nuevo: any;\n campo: CampoFormularioModel;\n \n constructor(viejo: any, nuevo: any, campo: CampoFormularioModel) {\n this.viejo = viejo;\n this.nuevo = nuevo;\n this.campo = campo;\n }\n }","import { Component, OnChanges, Input, OnInit, ComponentRef, Type, ViewChild, ViewContainerRef, ViewChildren, QueryList, AfterViewInit, ElementRef } from '@angular/core';\nimport { CampoFormularioModel } from './objetosformulario/CampoFormulario';\nimport { HashDirective } from './objetosformulario/HashDirective';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService } from '../../servicios/auth.service';\nimport { Cambio } from './objetosformulario/Cambio';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PasswordModule } from 'primeng/password';\nimport { CommonModule } from '@angular/common';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'formulario-dinamico',\n imports: [FormsModule, CalendarModule, CheckboxModule, InputTextareaModule, InputTextModule, RadioButtonModule, TooltipModule, DropdownModule, PasswordModule, CommonModule, InputNumberModule, AutoCompleteModule, HashDirective, TableModule],\n standalone: true,\n templateUrl: './formulariodinamico.component.html',\n styleUrls: ['./formulariodinamico.component.scss']\n})\nexport class FormulariodinamicoComponent implements OnInit, AfterViewInit, OnChanges {\n\n @Input() campos: CampoFormularioModel[];\n listaSiNoRadioButton: any[] = [{ name: 'Si', key: 'S' }, { name: 'No', key: 'N' }];\n @ViewChild ('popup', { read: ViewContainerRef }) vcr: ViewContainerRef;\n @ViewChildren(HashDirective) private hashes: QueryList<HashDirective>;\n @Input() editable: boolean;\n @Input() objeto: any;\n @Input() isMensaje: boolean = false;\n public validando: boolean = false; \n verMensajeFuncion: boolean = false;\n public autoZIndex: string = 'true';\n\n constructor(public utilsService: UtilsService, private generalService: GeneralService, private authService: AuthService) { }\n\n ngOnChanges(){\n \n }\n\n ngAfterViewInit(): void {\n \n this.verMensajeFuncion = false;\n\n this.campos.forEach(campo => {\n if(campo.mensajeFuncion){\n this.verMensajeFuncion = true;\n }\n if (campo.tipo == 'P'){\n if (campo.popupComponent){\n this.mostrarPopupFormulario(campo).then(data => {});\n }\n }\n })\n this.campos.sort((a, b) => a.orden - b.orden);\n\n }\n\n ngOnInit(): void {\n }\n\n modificar(objeto: any, editable: boolean) {\n\t\tthis.limpiar();\n\t\tthis.objeto = objeto;\n\t\tthis.editable = editable;\n this.campos.forEach(campo => {\n if (!campo.caracteristica){\n for (let atributo in objeto) {\n let valor = objeto[atributo];\n if (atributo == campo.campo){\n this.cargarValor(campo.campo, valor, null);\n }\n }\n }\n if(campo.campoDepende!= null){\n\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\tif(campo2.campo == campo.campoDepende){\n\t\t\t\t\t\tcampo2.campoReferencia = campo.valor;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n })\n \n this.campos.sort((a, b) => a.orden - b.orden);\n\t}\n\n modificarValorCamposAdicionales(objeto: any, idGrupo: string) {\n\t\tthis.objeto = objeto;\n this.campos.forEach(campo => {\n if(idGrupo == campo.idGrupoPertenece) {\n if (!campo.caracteristica){\n for (let atributo in objeto) {\n let valor = objeto[atributo];\n if (atributo == campo.campo){\n this.cargarValor(campo.campo, valor, null);\n }\n }\n }\n if(campo.campoDepende!= null){\n this.campos.forEach(campo2 => {\n if(campo2.campo == campo.campoDepende){\n campo2.campoReferencia = campo.valor;\n }\n })\n }\n }\n \n })\n \n this.campos.sort((a, b) => a.orden - b.orden);\n }\n\n guardar(){\n this.campos.forEach(data => {\n })\n }\n\n setValorPopup(objeto){\n }\n\n async loadComponentDynamic<T>(campo: CampoFormularioModel, component: Type<T>, props: Partial<T>) {\n var container = this.getContainerFor(campo.popup)\n container.clear();\n const hasProps: boolean = !!Object.keys(props).length;\n const compRef: ComponentRef<any> = container.createComponent( component ); //Angular 13\n \n if (hasProps) {\n for (let key of Object.keys(props)) {\n compRef.instance[key] = props[key];\n }\n }\n const componente = new campo.popupComponent();\n if('getDescripcionLlave' in componente ){\n compRef.instance['label'] = await componente.getDescripcionLlave(this.generalService, this.authService, campo.valor, campo)\n }\n\n }\n\n getContainerFor(name: string) {\n return this.hashes.find(x => x.hash === name).vcRef;\n }\n\n async mostrarPopupFormulario(campo: CampoFormularioModel){\n await this.loadComponentDynamic(campo, campo.popupComponent, campo.propiedadesPopupComponent)\n \n }\n\n validar(): boolean{\n this.validando = true;\n var validador = true;\n this.campos.forEach(campo => {\n if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor) ){\n if (campo.tipo == 'P') {\n var container = this.getContainerFor(campo.popup)\n container.clear()\n let props = campo.propiedadesPopupComponent;\n const hasProps: boolean = !!Object.keys(props).length;\n const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13\n if (hasProps) {\n for (let key of Object.keys(props)) {\n compRef.instance[key] = props[key];\n }\n }\n compRef.instance['booleano'] = true; \n }\n validador = validador && false;\n }\n })\n return validador;\n }\n\n getObjecto(): any{\n var campos2 = this.campos.filter(data => !data.caracteristica);\n campos2.forEach(campo => {\n this.objeto[campo.campo] = campo.valor;\n })\n return this.objeto;\n }\n\n camposCaracteristicaClear(){\n for (let i = 0; i < this.campos.length; i++){\n if (this.campos[i].caracteristica){\n this.campos.splice(i, 1)\n }\n }\n }\n\n cargarValor(campo: string, valor: any, dato: any) {\n this.campos.forEach(campoF => {\n if (campoF.campo == campo) {\n //campoF.cargar(valor);\n campoF.valor = valor;\n campoF.dato = dato;\n }\n\t\t})\n\t}\n \n getCamposCaracteristica() {\n\t\tvar camposReturn: CampoFormularioModel[] = [];\n\t\tthis.campos.forEach(campo => {\n if (campo.caracteristica) {\n camposReturn.push(campo);\n }\n\t\t})\n\t\treturn camposReturn;\n }\n\n obtenerCampo(campo: string){\n var retorno = null\n this.campos.forEach(cam => {\n if(cam.campo != null && cam.campo == campo){\n retorno = cam;\n }\n })\n\t\treturn retorno;\n\t}\n\n limpiar() {\n if (this.campos != null && this.campos.length > 0){\n this.campos.forEach(campo => {\n campo.valor = null;\n campo.resaltado = false;\n campo.mensajeFuncion = null;\n })\n }\n }\n \n validarVisibilidadCampos(campo: CampoFormularioModel): boolean {\n\n if ((campo.tipo == 'N' && campo.editable == 'N')) {\n return false;\n }\n\n return true;\n }\n\n editarPermisoCamposPorIdGrupo(idGrupo: string, permisoCampo: string) {\n this.campos.forEach(campo => {\n if (idGrupo != campo.idGrupoPertenece || campo.editable == 'L') {\n return;\n }\n campo.editable = permisoCampo;\n })\n }\n\n getCambios(): Cambio[] {\n const cambios: Cambio[] = [];\n for (const campo of this.campos) {\n if (campo.isCambio()) {\n cambios.push(new Cambio(campo.original, campo.valor, campo));\n }\n }\n return cambios;\n }\n\n removerCamposIdGrupo(idGrupo: string) {\n var camposRemover: CampoFormularioModel[] = [];\n this.campos.forEach(campo => {\n if (idGrupo != campo.idGrupoPertenece) {\n return;\n }\n camposRemover.push(campo);\n })\n this.campos = this.campos.filter(obj => !camposRemover.some(objEliminar => objEliminar.campo === obj.campo));\n\n }\n\n}\n","<p-table [value]=\"campos\">\n <ng-template pTemplate=\"body\" let-campo>\n <tr *ngIf=\"validarVisibilidadCampos(campo)\">\n <td style=\"width: 20%;\">\n <label *ngIf=\"campo.editable != 'N'\" [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [class]=\"campo.tipo == 'I' ? 'font-bold color-400 mt-7' : ''\">\n {{ campo.descripcion }} \n <ng-container *ngIf=\"campo.editable != 'N' && campo.obligatorio\">*</ng-container>\n </label>\n </td>\n <td style=\"width: 80%\">\n <div class=\"p-fluid p-formgrid grid\">\n <div [ngClass]=\"campo.ayuda && campo.editable != 'N' ? 'col-11' : 'col-12'\">\n <!--campo tipo FECHA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n type=\"text\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n dateFormat=\"dd/mm/yy\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'F' && campo.editable != 'N'\"\n [showIcon]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n \n ></p-calendar>\n\n <!--campo tipo HORA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'X' && campo.editable != 'N'\"\n [showTime]=\"true\"\n [showSeconds]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-calendar>\n\n <!--campo tipo HORA VALOR-->\n <input\n pInputText\n type=\"time\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'Z' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo TEXTO-->\n <input\n pInputText\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'T' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo AREA TEXTO-->\n <textarea\n pInputTextarea\n [(ngModel)]=\"campo.valor\"\n rows=\"5\"\n cols=\"5\"\n [tabIndex]=\"campo.orden + 1\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'A' && campo.editable != 'N'\"\n class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </textarea>\n\n <!--campo tipo NUMERO-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n [maxlength]=\"campo.longitud\"\n *ngIf=\"campo.tipo == 'N' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo DECIMAL-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n mode=\"decimal\"\n [minFractionDigits]=\"2\"\n *ngIf=\"campo.tipo == 'D' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo SECRET-->\n <p-password\n [feedback]=\"false\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'S' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-password>\n\n <!--campo tipo COMBO-->\n <p-dropdown\n class=\"w-full\"\n appendTo=\"body\"\n [options]=\"campo.lista\"\n [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'C' && campo.editable != 'N'\"\n [showClear]=\"!campo.obligatorio\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-dropdown>\n\n <!--campo tipo LOGICO-->\n <div *ngIf=\"campo.tipo == 'L' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of listaSiNoRadioButton\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.key\"\n name=\"valor\"\n [value]=\"valor.key\"\n [label]=\"valor.name\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n <label> </label>\n </div>\n </div>\n </div>\n </div>\n <!--campo tipo RADIO-->\n <div *ngIf=\"campo.tipo == 'R' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor.value\"\n [label]=\"valor.label\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo CHECKBOX-->\n <div *ngIf=\"campo.tipo == 'H' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-3 field-checkbox\">\n <p-checkbox\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-checkbox>\n <label [for]=\"valor.value\">{{ valor.label }}</label>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo AUTOCOMPLETAR-->\n <p-autoComplete\n *ngIf=\"\n (campo.tipo == 'O' || campo.tipo == 'Y') && campo.editable != 'N'\n \"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [suggestions]=\"campo.listaAutocompleteFiltrada\"\n (completeMethod)=\"campo.filtrarAutocomplete($event)\"\n field=\"label\"\n [dropdown]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n <ng-template let-valor pTemplate=\"item\">\n <div>\n <div>{{ valor.label }}</div>\n </div>\n </ng-template>\n </p-autoComplete>\n\n <!--campo tipo POPUP-->\n <div class=\"field\" *ngIf=\"campo.tipo == 'P' && campo.editable != 'N'\" >\n <ng-container *ngFor=\"let item of campo.listaPopups\" [hash]=\"item\"></ng-container>\n </div>\n <div *ngIf=\"verMensajeFuncion\" class=\"text-center w-1\">\n <label>{{ campo.mensajeFuncion }}</label>\n </div>\n <div *ngIf=\"isMensaje\">\n <label *ngIf=\"campo.mensaje\">{{ campo.mensaje }}</label>\n </div>\n </div>\n\n <div *ngIf=\"campo.ayuda && campo.editable != 'N'\" class=\"col-1 contenedor\" >\n <span\n class=\"w-1rem\"\n style=\"color: var(--color-400)\"\n tooltipStyleClass=\"tw-250\"\n [hideDelay]=\"1800\"\n pTooltip=\"{{ campo.ayuda }}\"\n tooltipPosition=\"top\"\n *ngIf=\"campo.ayuda && campo.editable != 'N'\"\n ><i class=\"pi pi-question-circle\"></i\n ></span>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n</p-table>","import jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\nimport * as FileSaver from 'file-saver';\nimport { Workbook } from 'exceljs';\n\nexport class DataExporter {\n\n constructor() { }\n\n exportPdf(lista: any[], exportColumns: any[], nombreArchivo: string) {\n console.log(lista);\n const doc = new jsPDF('p', 'pt');\n doc['autoTable'](exportColumns, lista);\n doc.save(nombreArchivo + \".pdf\");\n }\n\n async exportExcel(lista: any[], nombreArchivo: string) {\n const workbook = new Workbook();\n const worksheet = workbook.addWorksheet('data');\n\n worksheet.columns = Object.keys(lista[0]).map(key => ({ header: key, key }));\n\n lista.forEach(item => {\n worksheet.addRow(item);\n });\n\n const buffer = await workbook.xlsx.writeBuffer();\n this.saveAsExcelFile(buffer, nombreArchivo);\n }\n\n async exportExcelColumnas(lista: any[], nombreArchivo: string, columnas: string[], nombreHoja?: string) {\n const workbook = new Workbook();\n const worksheet = workbook.addWorksheet(nombreHoja ? nombreHoja : 'data');\n\n worksheet.columns = columnas.map(col => ({ header: col, key: col }));\n\n lista.forEach(item => {\n const filteredItem: any = {};\n columnas.forEach(col => {\n filteredItem[col] = item[col];\n });\n worksheet.addRow(filteredItem);\n });\n\n const buffer = await workbook.xlsx.writeBuffer();\n this.saveAsExcelFile(buffer, nombreArchivo);\n }\n\n saveAsExcelFile(buffer: any, fileName: string): void {\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n const EXCEL_EXTENSION = '.xlsx';\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(data, `${fileName}${EXCEL_EXTENSION}`);\n }\n\n exportCSV(lista: any[], columnas: string[], nombreArchivo: string) {\n const listaParaExportar = lista;\n const csvContent = this.convertirAFormatoCSV(listaParaExportar, columnas );\n this.descargarArchivoCSV(csvContent, nombreArchivo);\n }\n\n convertirAFormatoCSV(data: any[], columns: string[]) {\n const csvHeader = columns.join(',') + '\\n';\n const csvRows = data.map(item => columns.map(col => item[col]).join(',')).join('\\n');\n return csvHeader + csvRows + '\\n';\n }\n\n descargarArchivoCSV(csvContent: any, nombreArchivo: string) {\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `${nombreArchivo}.csv`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { RecursoPuntoModel } from '../../../../seguridad/modelos/RecursoPuntoModel';\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\nimport { FuenteProcesoGeneralModel } from '../../../../seguridad/modelos/FuenteProcesoGeneralModel';\nimport { ListaServicioModel } from '../../../../seguridad/modelos/ListaServicioModel';\nimport { GrupoFuenteModel } from '../../../../seguridad/modelos/GrupoFuenteModel';\nimport { FuenteCampoAtributoModel } from '../../../../seguridad/modelos/FuenteCampoAtributoModel';\nimport { FuenteEntradaModel } from '../../../../seguridad/modelos/FuenteEntradaModel';\nimport { CruceRecursoPuntoModel } from '../../../../seguridad/modelos/CruceRecursoPuntoModel';\nimport { TableColumn } from '../../../../core/modelos/table-column.model';\nimport { CargueLineaModel } from '../../../../seguridad/modelos/CargueLineaModel';\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\nimport { CargueLineaService } from '../../../services/carguelinea.service';\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { CampoFormularioModel } from '../../../../core/componentes/formulariodinamico/objetosformulario/CampoFormulario';\nimport { FormulariodinamicoComponent } from '../../../../core/componentes/formulariodinamico/formulariodinamico.component';\nimport { Table, TableModule } from 'primeng/table';\nimport { DataExporter } from '../../../../core/servicios/data-exporter-table.utils';\nimport { MenuService } from '../../../../core/servicios/menu.service';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { ParametrosNavegacionService } from '../../../../shared/servicios/parametros-navegacion.service';\nimport { FileSelectEvent, FileUploadModule } from 'primeng/fileupload';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TabViewModule } from 'primeng/tabview';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-importar-fuente-con',\n imports: [TableModule, ConfirmPopupModule, InputTextModule, TranslateModule, CheckboxModule, TabViewModule, TablaGeneralComponent, FiltroGeneralComponent, AccordionModule, DatePipe, ButtonModule, CheckboxModule, FormulariodinamicoComponent, FileUploadModule, FormsModule, FuentePipe, FormsModule, ReactiveFormsModule, CommonModule,],\n standalone : true,\n templateUrl: './importar-fuente-con.component.html',\n styleUrls: ['./importar-fuente-con.component.scss'],\n providers: [DataExporter, MessageService, ConfirmationService]\n})\nexport class ImportarFuenteConComponent implements OnInit {\n\n public columns: TableColumn[] = [];\n public filters : any[] = [];\n public paginadorFuente: any[] = [];\n public paginadorGrupos: any[] = [];\n public paginadorServicios: any[] = [];\n public paginadorCampos: any[] = [];\n public paginadorLineas: any[] = [];\n public paginadorParametros: any[] = [];\n public paginadorProcesos: any[] = [];\n public fuenteDTO: FuenteGeneralModel = new FuenteGeneralModel;\n public procesoDTO: FuenteProcesoGeneralModel;\n public fuente: string;\n public panel: string;\n public panelImportar: string;\n public puntoProceso: string;\n public verFormulario: boolean = false;\n public procesarDatos: boolean;\n public ejecutarDatos: boolean;\n public consultarPorRecurso: boolean;\n public mostrar: boolean;\n public verBotonEjecutar: boolean;\n public nombreArchivo: string;\n public rutaArchivo: string;\n public servicios: ListaServicioModel[] = [];\n public grupo: GrupoFuenteModel;\n public servicio: any;\n public lineaFuente: any;\n public progreso: number;\n public parametrosPunto: FuenteCampoAtributoModel[]=[];\n //pte form\n public accion: any;\n public entradas: FuenteCampoAtributoModel[]=[];\n public lineasCargadas: CargueLineaModel[]=[];\n\tpublic lineasInconsistencia: CargueLineaModel[]=[];\n public verInconsistencia: boolean;\n\tpublic lineasSinMensaje: number;\n\tpublic lineasConMensaje: number;\n public datos: GrupoFuenteModel[]=[];\n public llaveProcesoCargueFuenteBD: string;\n public campos: CampoFormularioModel[] = [];\n public cols:any[]\n public exportColumns: any[];\n public estadoRegresar: string = null;\n public columnasExportExcel = ['codigo', 'unicaLinea', 'mensajeErrores'];\n\n\n public paginator = {\n rows: 10,\n totalRecords: 0,\n };\n public loadingPaginadorFuente: boolean = false;\n public archivoSeleccionado: any;\n public regresarPuntoProceso: string = null;\n\n public camposArchivo: any[] = []\n\n public ACCION = {\n IMPORTAR : 'procesando el archivo',\n EJECUTAR: 'Ejecutando los Servicios',\n VER: 'Consultando',\n DIRECTO: 'Procesando archivo-servicios',\n }\n\n public PANEL = {\n IMPORTAR: 'IMPORTAR',\n DATOS: 'DATOS',\n GRUPOS: 'GRUPOS',\n DETALLEGRUPO: 'DETALLEGRUPO'\n }\n @Output() public regresarFuente: EventEmitter<any> = new EventEmitter();\n @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n @ViewChild('tablaDatos') tabla: Table;\n @ViewChild('tablaDatos2') tabla2: Table;\n\n\n constructor(private generalService: GeneralService,\n public dataExporter: DataExporter,\n private authService: AuthService,\n private fuentePipe: FuentePipe,\n private cargueLineaService: CargueLineaService,\n private notificacionesService: ToastService,\n private confirmationService: ConfirmationService,\n private menuService: MenuService,\n private generalPipe: GeneralPipe,\n public utilsService: UtilsService,\n private parametrosNavegacionService: ParametrosNavegacionService,\n private translateService : TranslateService) {}\n\n ngOnInit(): void {\n this.camposArchivo = [{descripcion: this.translateService.instant('nombrearchivo') + '*'}]\n this.verBotonEjecutar = false;\n this.lineasCargadas = [];\n this.lineasInconsistencia = [];\n this.columns = [\n {\n field: 'descripcion',\n header: this.translateService.instant('fuente'),\n width: 100,\n },\n ];\n this.filters = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }\n ];\n this.crearColumnasExportar()\n if (this.parametrosNavegacionService.getParametros()){\n this.regresarPuntoProceso = this.parametrosNavegacionService.getParametros().regresar; \n this.cargar(this.parametrosNavegacionService.getParametros().fuente);\n }\n }\n\n crearColumnasExportar() {\n this.cols = [\n { field: 'codigo', header: this.translateService.instant('grupo'), customExportHeader: 'Prueba' },\n { field: 'unicaLinea', header: this.translateService.instant('linea') },\n { field: 'mensajeErrores', header: this.translateService.instant('advertencia') },\n ];\n\n this.exportColumns = this.cols.map(col => ({ title: col.header, dataKey: col.field }));\n }\n\n traerFuente() {\n if (!this.parametrosNavegacionService.getParametros()){\n this.fuenteDTO = null;\n this.consultarPorRecurso = false;\n //iniciar();\n }\n }\n\n async cargarlistado(event){\n this.loadingPaginadorFuente = true;\n var objeto = {\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows,\n login: this.authService.getTokenKey('usuario'),\n rol: this.authService.getTokenKey('aliasRol'),\n puntoProceso: this.consultarPorRecurso ? this.puntoProceso : null,\n fuenteGeneral: this.consultarPorRecurso ? null : 'S',\n aplicacion: this.consultarPorRecurso ? null : this.authService.getTokenKey('aplicacion').padEnd(10),\n descripcion: event.filters?.descripcion?.value ? '%' + event.filters?.descripcion?.value + '%' : null\n }\n this.generalService.queryForList(new GeneralModel('FuenteGeneralDTO', null, false, objeto)).subscribe(data => {\n this.paginadorFuente = data;\n this.loadingPaginadorFuente = false;\n this.generalService.cantidadRegistros(new GeneralModel('FuenteGeneralDTO', null, false, objeto)).subscribe(data => {\n this.paginator.totalRecords = data;\n this.utilsService.resizeWindowIFrame();\n })\n })\n }\n\n cargar(event){\n this.archivoSeleccionado = null;\n this.regresarFuente.emit(false)\n this.fuenteDTO = event;\n this.menuService.setBreadcrumb([{ label: 'Lista Fuentes de Importación', command: (event) =>{\n location.reload()\n }}, { label: 'Detalle Fuentes de Importación' }]);\n this.nuevoProceso().then(data => {\n if (this.isMotor()){\n this.prepararCamposParaImportar().then(data => {this.utilsService.resizeWindowIFrame();});\n }\n this.utilsService.resizeWindowIFrame();\n });\n }\n\n async nuevoProceso() {\n this.verBotonEjecutar = true;\n this.procesoDTO = new FuenteProcesoGeneralModel();\n this.procesoDTO.fuente = this.fuenteDTO.llaveTabla;\n this.procesoDTO.usuario = this.authService.getTokenKey('usuario');\n this.procesoDTO.fechaProceso = new Date();\n await this.prepararCamposParaImportar();\n }\n\n async prepararCamposParaImportar() {\n\t\tthis.panel = 'IMPORTAR';//PANEL.IMPORTAR.getPanel();\n\t\tthis.rutaArchivo = null;\n\t\tthis.nombreArchivo = null;\n\t\tthis.mostrar = true;\n await this.cargarFormularioCamposEntrada()\n }\n\n async cargarFormularioCamposEntrada(){\n await this.cargarParametrosPuntoProceso()\n this.campos = await this.camposEntrada(this.fuenteDTO, this.parametrosPunto);\n if (this.campos == null || this.campos.length <= 0) {\n\t\t\tthis.verFormulario = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.verFormulario = true;\n this.utilsService.resizeWindowIFrame();\n }\n\n async camposEntrada(fuente: FuenteGeneralModel, parametrosPunto: FuenteCampoAtributoModel[]) {\n if (fuente == null) {\n return null;\n }\n var retorno: CampoFormularioModel[] = [];\n var entradas: FuenteEntradaModel[] = await this.generalService.queryForList(new GeneralModel('FuenteEntradaDTO', null, false, {fuente: fuente.llaveTabla})).toPromise();\n if (entradas == null || entradas.length <= 0) {\n return null;\n }\n entradas: for (let i = 0; i < entradas.length ; i++) {\n var element = entradas[i] \n ;for (let j = 0; j < parametrosPunto.length; j++) {\n var puntoproceso = parametrosPunto[j]\n if (puntoproceso.campoAtributo == element.descripcion) {\n continue entradas;\n }\n }\n var dato = new FuenteCampoAtributoModel();\n dato.campoAtributo = element.descripcion;\n var editable: string = null;\n if (element.tipoDato == this.fuentePipe.LLAVE) {\n element.tipoDato = this.fuentePipe.TEXTO;\n dato.cadena = this.utilsService.generarLlave();\n editable = \"N\";\n }\n dato.tipoDato = element.tipoDato;\n var campo = new CampoFormularioModel(element.tipoDato, element.descripcion,\n this.determinarLongitud(element.tipoDato), 0, element.descripcion,\n element.obligatorio == 'S', null, null, editable);\n campo.dato = dato;\n if (dato.tipoDato == this.fuentePipe.TEXTO || dato.tipoDato == this.fuentePipe.LOGICO) {\n campo.valor = dato.cadena;\n } else if (dato.tipoDato == this.fuentePipe.NUMERO) {\n campo.valor = dato.numero;\n } else if (dato.tipoDato == this.fuentePipe.DECIMAL) {\n campo.valor = dato.numero;\n campo.decimales = 2;\n } else if (dato.tipoDato == this.fuentePipe.FECHA) {\n if (element.valorDefecto != null) {\n dato.formato = \"yyyy/MM/dd\";\n campo.valor = new Date(this.obtenerValorMarcador(element.valorDefecto));\n } else {\n campo.valor = dato.fecha;\n }\n }\n campo.caracteristica = true;\n retorno.push(campo);\n }\n return retorno;\n}\n\nobtenerValorMarcador(valorEntrada: string) {\n if (valorEntrada == null || valorEntrada.trim().length <= 0 || valorEntrada.trim() == \"null\") {\n return valorEntrada;\n }\n if (valorEntrada.toUpperCase().includes(\"ANNOHOY\") || valorEntrada.toUpperCase().includes(\"MESHOY\")) {\n var formulaCampo = valorEntrada.toUpperCase();\n var hoy = new Date();\n formulaCampo = formulaCampo.replace(\"ANNOHOY\", hoy.getFullYear().toString());\n formulaCampo = formulaCampo.replace(\"MESHOY\", (hoy.getMonth() + 1).toString());\n return formulaCampo;\n }\n return valorEntrada;\n}\n\ndeterminarLongitud(tipoDato: string) {\n if (tipoDato == null) {\n return 0;\n }\n if (this.fuentePipe.TEXTO == tipoDato) {\n return 100;\n }\n if (this.fuentePipe.LOGICO == tipoDato) {\n return 5;\n }\n return 20;\n}\n\n async cargarParametrosPuntoProceso(){\n this.parametrosPunto = [];\n\t\tif (this.puntoProceso == null || this.puntoProceso.trim().length <= 0) {\n\t\t\treturn;\n\t\t}\n\t\t// consulta los campos del cruce entre el punto proceso y la fuente\n var consultar: RecursoPuntoModel = new RecursoPuntoModel();\n\t\tconsultar.puntoProceso = this.puntoProceso;\n\t\tconsultar.fuente = this.fuenteDTO.llaveTabla;\n\t\tconsultar = await this.generalService.queryForObject(new GeneralModel('RecursoPuntoDTO', null, false, consultar)).toPromise();\n\t\tif(consultar==null){\n\t\t\tthis.notificacionesService.showError(\"No existe el recurso punto para ese punto del proceso y fuente\");\n return;\n\t\t}\n var cruces: CruceRecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {\n recursoPunto: consultar.llaveTabla\n })).toPromise()\n\t\tcruces.forEach(async cruce => {\n\t\t\t\t// buscamos que exista todavia el campo como entrada de la\n\t\t\t\t// fuente\n\t\t\t\tvar buscarEntrada: FuenteEntradaModel = new FuenteEntradaModel();\n\t\t\t\tbuscarEntrada.llaveTabla = cruce.fuenteEntrada;\n\t\t\t\tbuscarEntrada = await this.generalService.queryForObject(new GeneralModel('FuenteEntradaDTO', null, false, buscarEntrada)).toPromise();\n\t\t\t\tif (buscarEntrada == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// obtenemos el valor y lo convertimos al a un atributo de la\n\t\t\t\t// fuente para que se use en los servicios\n\t\t\t\tvar dato = new FuenteCampoAtributoModel();\n\t\t\t\tdato.campoAtributo = buscarEntrada.descripcion;\n\t\t\t\tdato.fuenteEntrada = buscarEntrada.llaveTabla;\n\t\t\t\tdato.tipoDato = buscarEntrada.tipoDato;\n this.parametrosPunto.push(dato);\n\t\t\t\t//FIXME: Pendiente obtener valor de punto\n /*Object valor = fc.getApplication().createValueBinding(\"#{\" + cruce.getAtributoPuntoValor() + \"}\")\n\t\t\t\t\t\t.getValue(fc);\n\t\t\t\tif (valor == null) {\n\t\t\t\t\tparametrosPunto.add(dato);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (dato.tipoDato == this.fuentePipe.TEXTO || dato.tipoDato == this.fuentePipe.LOGICO) {\n\t\t\t\t\tdato.cadena = valor.toString();\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.DECIMAL) {\n\t\t\t\t\tdato.cadena = parseInt(valor);\n\t\t\t\t\tdato.setNumero((BigDecimal) valor);\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.NUMERO) {\n\t\t\t\t\tdato.setCadena(((Integer) valor).toString());\n\t\t\t\t\tdato.setNumero(new BigDecimal((Integer) valor));\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.FECHA) {\n\t\t\t\t\tdato.setCadena(((Date) valor).toString());\n\t\t\t\t\tdato.setFecha((Date) valor);\n\t\t\t\t}\n\t\t\t\tparametrosPunto.add(dato);*/\n\t\t\t})\n\t\t\n }\n\n cargarArchivo(data: FileSelectEvent, fubauto) {\n this.archivoSeleccionado = data.files[0];\n this.readFile(this.archivoSeleccionado);\n this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n fubauto.clear();\n }\n\n private readFile(file: File) {\n const reader: FileReader = new FileReader();\n reader.readAsText(file);\n this.nombreArchivo = file.name;\n }\n\n importar(){\n \n if (this.formulario){\n if (!this.formulario?.validar()){\n this.notificacionesService.showError('Faltan campos obligatorios')\n return;\n }\n }\n this.verInconsistencia = false;\n this.accion = this.ACCION.IMPORTAR;\n this.estadoRegresar = 'volverImportar'\n this.run();\n }\n \n ejecutar(){\n this.verBotonEjecutar = false;\n this.accion = this.ACCION.EJECUTAR;\n this.run();\n }\n\n regresarDatos() {\n if (this.panelImportar == this.PANEL.GRUPOS) {\n this.regresarFuente.emit(false);\n this.nombreArchivo = null;\n } else if (this.panelImportar == this.PANEL.DETALLEGRUPO) {\n this.panelImportar = this.PANEL.GRUPOS;\n }\n this.estadoRegresar = 'volverImportar'\n }\n\n run(){\n var retorno;\n this.cargueLineaService.ejecutar(this.accion, this.archivoSeleccionado, this.fuenteDTO, this.procesoDTO, this.entradas, this.campos, this.datos, this.lineasCargadas).subscribe(data => {\n if (data.type === HttpEventType.Response) {\n let response: any = data.body\n this.datos = response?.datos ? response?.datos : this.datos;\n this.procesarDatos = response?.procesarDatos ? response?.procesarDatos : this.procesarDatos;\n this.lineasCargadas = response?.lineasCargadas ? response?.lineasCargadas : this.lineasCargadas;\n //this.panel = response?.panel ? response?.panel : this.panel;\n //this.panelImportar = response?.panelImportar ? response?.panelImportar : this.panelImportar;\n this.verBotonEjecutar = response?.verBotonEjecutar ? response?.verBotonEjecutar : this.verBotonEjecutar;\n this.procesoDTO = response?.procesoDTO ? response?.procesoDTO : this.procesoDTO;\n retorno = response?.retorno;\n //pte pasar al back\n this.grupo = null; \n\t\t \tthis.panel = response?.panel ? response?.panel : this.panel;//PANEL.DATOS.getPanel();\n this.panelImportar = response?.panelImportar ? response?.panelImportar : this.panelImportar;//PANEL.GRUPOS.getPanel();\n this.notificacionesService.showSuccess(response.mensaje)\n if (this.isMotor()){\n this.setResultadoCargue()\n }\n }\n })\n }\n\n setResultadoCargue() {\n\t\tthis.lineasInconsistencia = [];\n\t\tthis.lineasSinMensaje = 0;\n\t\tthis.lineasConMensaje = 0;\n\t\tif ( this.ACCION.EJECUTAR == this.accion ) {\n\t\t\tthis.lineasCargadas.forEach(unaLinea => {\n\t\t\t\tif ( unaLinea.mensaje != null) {\n\t\t\t\t\tthis.lineasInconsistencia.push(unaLinea);\n\t\t\t\t\tthis.lineasConMensaje ++;\n\t\t\t\t} else {\n\t\t\t\t\tthis.lineasSinMensaje ++;\n\t\t\t\t}\n\t\t\t})\n\t\t\tthis.verInconsistencia = true;\n\t\t\tif ( this.lineasConMensaje == 0) {\n\t\t\t\tthis.verInconsistencia = false;\n\t\t\t}\n\t\t}\n\t}\n\n\n importarNuevamente(){\n this.verBotonEjecutar = true;\n this.nombreArchivo = null;\n this.archivoSeleccionado = null;\n this.estadoRegresar = null;\n this.prepararCamposParaImportar().then(data => {})\n }\n\n verGrupo(event){\n this.estadoRegresar = 'regresarImportar'\n this.grupo = event.data\n this.datos.forEach(grupoFuente =>{\n if (grupoFuente.llaveLineaGrupo == this.grupo.llaveLineaGrupo) {\n this.paginadorLineas = grupoFuente.lineas;\n }\n })\n this.paginadorServicios = this.grupo.servicios\n //this.paginadorCampos = \n //this.paginadorParametros = []\n if ((this.paginadorServicios == null || this.paginadorServicios?.length <= 0)\n && (this.paginadorLineas == null || this.paginadorLineas?.length <= 0)){\n this.notificacionesService.showSuccess('El grupo no posee niguna linea ni servicio')\n return;\n }\n this.paginadorParametros = []\n this.paginadorServicios.forEach(data =>{\n this.verServicio(data)\n })\n this.paginadorCampos = []\n this.paginadorLineas.forEach(data => {\n this.verLinea(data)\n })\n this.panelImportar = this.PANEL.DETALLEGRUPO\n }\n\n verLinea(event){\n event.camposAtributos.forEach(data => {\n data['numeroLinea'] = event.numeroLinea\n })\n if (event.camposAtributos == null || event.camposAtributos.length <= 0) {\n this.notificacionesService.showSuccess(\"No se identifico ningún campo\");\n } else {\n this.paginadorCampos = this.paginadorCampos.concat(event.camposAtributos)\n }\n \n }\n\n verServicio(event){\n event.camposAtributos.forEach(data => {\n data['llaveunica'] = `${this.translateService.instant('servicio')}: ${event.servicio} \n ${this.translateService.instant('orden')}: ${event.orden}\n ${this.translateService.instant('linea')}: ${event.numeroLinea} `\n if (event.mensaje) {\n data['llaveunica'] = data['llaveunica'] + `\n ${this.translateService.instant('advertencia')}: ${event.mensaje} `\n }\n })\n if (event.camposAtributos == null || event.camposAtributos.length <= 0) {\n this.notificacionesService.showSuccess(\"No se identifico ningún parametro\");\n } else {\n this.paginadorParametros = this.paginadorParametros.concat(event.camposAtributos)\n }\n }\n\n cancelarProceso(){\n console.log('entra cancelaProceso')\n this.confirmationService.confirm({\n target: event.target,\n message: '¿Desea eliminar el registro?',\n acceptLabel: 'Si',\n icon: 'confirmar',\n accept: () => {\n this.cargueLineaService.cancelarProceso({procesoDTO: this.procesoDTO}).subscribe(data => {\n if (data.mensaje <= 0) {\n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR_NO);\n }\n this.procesoDTO = new FuenteProcesoGeneralModel();\n \n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n this.rutaArchivo = null;\n this.nombreArchivo = null;\n location.reload() \n })\n }\n })\n }\n\n importarEjecutar(){\n\n }\n\n isMotor() {\n\t\treturn this.fuenteDTO != null && (this.fuentePipe.BASEDATOS == this.fuenteDTO.motor || this.fuentePipe.BASEDATOSEGUNDO == this.fuenteDTO.motor);\n\t}\n\n isServicioWeb() {\n\t\treturn this.fuenteDTO != null && this.fuenteDTO.proceso != null && this.fuenteDTO.formulaDescripcion != null;\n\t}\n\n isImportacion() {\n\t\treturn this.ACCION.IMPORTAR == this.accion;\n\t}\n\n\tisEjecucion() {\n\t\treturn this.ACCION.EJECUTAR == this.accion;\n\t}\n\n\tisAgrupamiento() {\n\t\treturn this.fuenteDTO != null && this.fuentePipe.AGRUPAMIENTO == this.fuenteDTO.tipo;\n\t}\n\n\tisRompimiento() {\n\t\treturn this.fuenteDTO != null && this.fuentePipe.ROMPIMIENTO == this.fuenteDTO.tipo;\n\t}\n\n\tisUnicoRegistro() {\n\t\treturn this.fuenteDTO != null && this.fuentePipe.UNICO_REGISTRO == this.fuenteDTO.tipo;\n\t}\n\n\tisSinSeparador() {\n\t\treturn this.fuenteDTO != null && this.fuentePipe.SIN_SEPARADOR == this.fuenteDTO.separador;\n\t}\n\n\tisConSeparador() {\n\t\treturn this.fuenteDTO != null && this.fuenteDTO.separador != null && this.fuenteDTO.separador != this.fuentePipe.SIN_SEPARADOR;\n\t}\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"!mostrar\">\n <div class=\"flex justify-content-between align-items-center mb-3\">\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n autocomplete=\"off\" />\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\n </span>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n </div>\n <app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"paginadorFuente\" [rows]=\"paginator.rows\"\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"cargarlistado($event)\" (onRowSelect)=\"cargar($event)\"\n [loading]=\"loadingPaginadorFuente\"></app-tabla-general>\n</div>\n<div *ngIf=\"mostrar\">\n <div class=\"card mt-3\" *ngIf=\"fuenteDTO != null\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n <div class=\"Inputgroup p-fluid p-formgrid grid\">\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.descripcion\" [disabled]=\"true\" pInputText autofocus type=\"text\" />\n <label for=\"fuente\">{{'fuente' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" value=\"{{fuenteDTO.tipo | fuentePipe:'listaTipoFuente'}}\"\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\n <label for=\"tipo\">{{'tipo' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" value=\"{{fuenteDTO.separador | fuentePipe:'listaSeparador'}}\"\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\n <label for=\"separador\">{{'separador' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"procesoDTO != null\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" value=\"{{procesoDTO.fechaProceso | date: ('formatofecha' | translate) }}\"\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\n <label for=\"fechaproceso\">{{'fechaproceso' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"nombreArchivo != null && this.panel == 'DATOS' \">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"nombreArchivo\" [disabled]=\"true\" pInputText autofocus\n type=\"text\" />\n <label for=\"nombrearchivo\">{{'nombrearchivo' | translate}}</label>\n </span>\n </div>\n </div>\n </div>\n\n<div *ngIf=\"panel =='IMPORTAR'\">\n <p-tabView>\n <p-tabPanel header=\"{{'entrada' | translate}}\" *ngIf=\"fuenteDTO != null\">\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"fuenteDTO?.motor == 'X'\">\n <div class=\"card mt-2 mb-2\">\n <div class=\"contenedor p-fluid grid mt-1 mb-1\">\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.estado\" [disabled]=\"true\" pInputText\n autofocus type=\"text\" />\n <label for=\"estado\">{{'estado' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.solicitaDetalle\" [disabled]=\"true\"\n pInputText autofocus type=\"text\" />\n <label for=\"detalle\">{{'detalle' | translate}}</label>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"card mt-2 mb-2 field col-12 md:col-12 lg:col-12\" *ngIf=\"!isServicioWeb()\">\n\n <p-table [value]=\"camposArchivo\">\n <ng-template pTemplate=\"body\" let-campo>\n <tr>\n <td style=\"width: 20%;\">\n <label>{{campo.descripcion}}</label>\n </td>\n <td style=\"width: 80%\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"col-12 md:col-12\" id=\"btn-cargar-popup\">\n <div class=\"p-inputgroup\">\n <input pInputText [readonly]=\"true\" [value]=\"archivoSeleccionado?.name ? archivoSeleccionado?.name : ''\" disabled />\n <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n (onSelect)=\"cargarArchivo($event, fubauto)\" ></p-fileUpload>\n </div>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n\n <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" \n [objeto]=\"fuenteDTO\" *ngIf=\"verFormulario && campos.length > 0\"></formulario-dinamico>\n \n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 p-button-outlined\"\n *ngIf=\"fuenteDTO.motor != 'X' && (isServicioWeb() || nombreArchivo != null)\" icon=\"pi pi-upload\"\n label=\"{{'link_importar' | translate}}\" (click)=\"importar()\">\n </button>\n <button pButton pRipple class=\"m-2 p-button p-button-raised\" *ngIf=\"fuenteDTO.motor =='X'\"\n label=\"{{'link_importarejecutar' | translate}}\" (click)=\"importarEjecutar()\">\n </button>\n </div>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{'historico' | translate}}\" *ngIf=\"paginadorProcesos.length > 0 && fuenteDTO != null\">\n\n </p-tabPanel>\n </p-tabView>\n</div>\n\n<div *ngIf=\"panel =='DATOS'\">\n\n <div class=\"card\" *ngIf=\"panelImportar =='GRUPOS'\">\n \n\n <div class=\"flex justify-content-between align-items-center mb-4 mt-3\">\n <div>\n \n </div>\n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" icon=\"glyphicons glyphicons-play\"\n *ngIf=\"verBotonEjecutar && procesarDatos && (isImportacion() || isEjecucion())\"\n label=\"{{'link_ejecutar' | translate}}\" (click)=\"ejecutar()\">\n </button>\n <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" *ngIf=\"procesoDTO.llaveTabla != null\" icon=\"glyphicons glyphicons-bin\" \n label=\"{{'link_eliminar' | translate}}\" (click)=\"cancelarProceso()\">\n </button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"tabla.exportCSV()\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-2 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"dataExporter.exportExcelColumnas(tabla.filteredValue == null ? tabla.value : tabla.filteredValue , 'tabla', columnasExportExcel)\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"dataExporter.exportPdf(tabla.filteredValue == null ? tabla.value : tabla.filteredValue , exportColumns, 'tabla')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n </div>\n\n <p-table #tablaDatos responsiveLayout=\"scroll\" [value]=\"datos\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\n [rows]=\"10\" [totalRecords]=\"datos.length\" [exportFilename]=\"'tablaDatos'\"\n [paginator]=\"datos.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [columns]=\"cols\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" *ngIf=\"!isMotor()\"\n [(selection)]=\"grupo\" (onRowSelect)=\"verGrupo($event)\">\n \n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'grupo' | translate}}</th>\n <th>{{'linea' | translate}}</th>\n <th>{{'advertencia' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td class=\"w-8rem font-medium\">{{bean.codigo}}</td>\n <td>\n {{bean.unicaLinea}}</td>\n <td>\n {{bean.mensajeErrores}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n\n <div *ngIf=\"panelImportar =='DETALLEGRUPO'\">\n <div *ngIf=\"!isMotor()\">\n <h5>{{'grupo' | translate}}: {{grupo.codigo}}</h5>\n <p-accordion *ngIf=\"!isMotor()\">\n <p-accordionTab [selected]=\"true\">\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-book\"></i>{{'linea' | translate}} </ng-template>\n <ng-template pTemplate=\"content\">\n \n <p-table responsiveLayout=\"scroll\" [value]=\"paginadorCampos\" responsiveLaoyout=\"scroll\"\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n rowGroupMode=\"subheader\" dataKey=\"numeroLinea\" groupRowsBy=\"numeroLinea\" expandableRowGroups=\"true\"\n *ngIf=\"paginadorCampos.length > 0\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'campo' | translate}}</th>\n <th>{{'archivo' | translate}}</th>\n <th>{{'tipo' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"groupheader\" let-bean let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\n <tr>\n <td colspan=\"100\">\n <button type=\"button\" pButton pRipple [pRowToggler]=\"bean\"\n class=\"p-element p-ripple p-button-rounded mr-2 mb-2 p-button p-component p-button-desplegable p-button-icon-only\"\n [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"></button>\n \n <span class=\"font-bold ml-2\" style=\"line-height: 40px;\"> {{'linea' | translate}}:\n {{bean.numeroLinea}}</span>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.campoAtributo}}</td>\n <td>{{bean.cadena}}</td>\n <td>{{bean.tipoDato | fuentePipe : 'listaTipoDato'}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </ng-template>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"paginadorParametros?.length > 0\" >\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-book\"></i>{{'servicio' | translate}} </ng-template>\n <ng-template pTemplate=\"content\">\n\n <p-table responsiveLayout=\"scroll\" [value]=\"paginadorParametros\" responsiveLaoyout=\"scroll\" \n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n rowGroupMode=\"subheader\" dataKey=\"llaveunica\" groupRowsBy=\"llaveunica\" expandableRowGroups=\"true\"\n *ngIf=\"paginadorParametros.length > 0\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'parametro' | translate}}s</th>\n <th>{{'valor' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"groupheader\" let-bean let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\n <tr>\n <td colspan=\"100\">\n <button type=\"button\" pButton pRipple [pRowToggler]=\"bean\"\n class=\"p-element p-ripple p-button-rounded mr-2 mb-2 p-button p-component p-button-desplegable p-button-icon-only\"\n [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"></button>\n \n <span class=\"font-bold ml-2\" style=\"line-height: 40px;\">{{bean.llaveunica}}</span>\n <br/>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" let-bean>\n <tr>\n <td>{{bean.campoAtributo}}</td>\n <td>\n <label *ngIf=\"bean.tipoDato == 'L' || bean.tipoDato == 'T'\">{{bean.cadena}}</label>\n <label *ngIf=\"bean.tipoDato == 'D' || bean.tipoDato == 'N'\">{{bean.numero}}</label>\n <label *ngIf=\"bean.tipoDato == 'F'\">{{bean.cadena | date : ('formatofecha' | translate) }}</label>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </ng-template>\n </p-accordionTab>\n </p-accordion>\n </div>\n <div *ngIf=\"isMotor()\">\n <div class=\"flex justify-content-between align-items-center mb-4 mt-3\">\n <div>\n \n </div>\n \n <div class=\"flex justify-content-end\">\n <div class=\"ml-2 mb-1 mt-2\" *ngIf=\"lineasConMensaje != 0\" >\n <p-checkbox class=\"ml-1\" [(ngModel)]=\"verInconsistencia\" [binary]=\"true\"> </p-checkbox>\n <label style=\"margin: 3px 8px;\"> {{'soloinconsistencias' | translate}}</label>\n </div>\n\n <button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" icon=\"glyphicons glyphicons-play\"\n *ngIf=\"verBotonEjecutar && procesarDatos && (isImportacion() || isEjecucion())\"\n label=\"{{'link_ejecutar' | translate}}\" (click)=\"ejecutar()\">\n </button>\n <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" *ngIf=\"procesoDTO.llaveTabla != null\" icon=\"glyphicons glyphicons-bin\" \n label=\"{{'link_eliminar' | translate}}\" (click)=\"cancelarProceso()\">\n </button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"tabla2.exportCSV()\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-2 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"dataExporter.exportExcel(tabla2.filteredValue == null ? tabla2.value : tabla2.filteredValue , 'tabla2')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"dataExporter.exportPdf(tabla2.filteredValue == null ? tabla2.value : tabla2.filteredValue , exportColumns, 'tabla2')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n </div>\n <br/>\n <p-table #tablaDatos2 responsiveLayout=\"scroll\" [value]=\"lineasCargadas\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\n [rows]=\"10\" [totalRecords]=\"lineasCargadas.length\"\n [paginator]=\"lineasCargadas.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n *ngIf=\" !verInconsistencia\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'numerolinea' | translate}}</th>\n <th>{{'linea' | translate}}</th>\n <th>{{'mensaje' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.numero}}</td>\n <td>{{bean.linea}}</td>\n <td>{{bean.mensaje}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"footer\" let-dato >\n <tr>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'resumen' | translate}}: </td>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineasinmensaje' | translate}}: {{lineasSinMensaje}}</td>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineaconmensaje' | translate}}: {{lineasConMensaje}}</td>\n </tr>\n </ng-template>\n </p-table>\n <p-table responsiveLayout=\"scroll\" [value]=\"lineasInconsistencia\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\n [rows]=\"10\" [totalRecords]=\"lineasInconsistencia.length\"\n [paginator]=\"lineasInconsistencia.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n *ngIf=\"verInconsistencia\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'numerolinea' | translate}}</th>\n <th>{{'linea' | translate}}</th>\n <th>{{'mensaje' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.numero}}</td>\n <td>{{bean.linea}}</td>\n <td>{{bean.mensaje}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"footer\" let-dato >\n <tr>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'resumen' | translate}}: </td>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineasinmensaje' | translate}}: {{lineasSinMensaje}}</td>\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineaconmensaje' | translate}}: {{lineasConMensaje}}</td>\n </tr>\n </ng-template>\n </p-table>\n \n </div>\n </div>\n \n \n</div>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ImportarFuenteConComponent } from '../importar-fuente-con/importar-fuente-con.component';\nimport { Router } from '@angular/router';\nimport { FuenteProcesoGeneralModel } from '../../../../seguridad/modelos/FuenteProcesoGeneralModel';\nimport { CargueLineaModel } from '../../../../seguridad/modelos/CargueLineaModel';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { MenuService } from '../../../../core/servicios/menu.service'\nimport { CargueLineaService } from '../../../services/carguelinea.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { StorageService } from '../../../../core/servicios/storage.service';\nimport { TableModule } from 'primeng/table';\nimport { MenubarModule } from 'primeng/menubar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ButtonModule } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-importar-fuente-general',\n imports: [CommonModule, TableModule, MenubarModule, ConfirmPopupModule, ImportarFuenteConComponent, InputTextModule, TranslateModule, DatePipe, TabViewModule, ButtonModule, InputTextModule, FormsModule],\n standalone: true,\n providers: [MessageService, ConfirmationService],\n templateUrl: './importar-fuente-general.component.html',\n styleUrls: ['./importar-fuente-general.component.scss']\n})\nexport class ImportarFuenteGeneralComponent implements OnInit {\n\n public tipoPresentacion: string ='fuente';\n public vistaVisualizar: string;\n public listaFuenteProceso: FuenteProcesoGeneralModel[] = []\n public ver: boolean = true;\n public fuenteProcesoDTO: FuenteProcesoGeneralModel;\n public listaLineas: CargueLineaModel[] = []\n public items: MenuItem[]\n public mostrarMenu: boolean = true;\n public titulo: string;\n\n @ViewChild('detalle') detalle: ImportarFuenteConComponent;\n\n paginator={rows:15, totalRecords:0, rowsLL:10, totalRecordsLL:0}\n\n constructor(private generalService: GeneralService,\n private confirmationService: ConfirmationService,\n private notificacionesService: ToastService,\n private generalPipe: GeneralPipe,\n private menuService: MenuService,\n private storage: StorageService,\n public utilsService: UtilsService,\n private cargueLinea: CargueLineaService) { }\n\n ngOnInit(): void {\n this.ver = true;\n this.vistaVisualizar = null;\n this.items = [\n {\n label: 'Lista Fuentes de Importación',\n icon: 'glyphicons glyphicons-file-cloud',\n command: (event) => {\n this.tipoPresentacion = 'fuente';\n this.titulo = 'Lista Fuentes de Importación';\n this.menuService.setBreadcrumb([{ label: this.titulo , command: (event) => { location.reload()}}]);\n },\n },\n {\n label: 'Procesos Generados',\n icon: 'glyphicons glyphicons-file',\n command: (event) => {\n this.tipoPresentacion = 'proceso';\n this.titulo = 'Procesos Generados';\n this.menuService.setBreadcrumb([{ label: this.titulo, command: (event) =>{ location.reload() } }]);\n },\n },\n ]\n }\n\n isVer() {\n if (!this.ver){\n return this.ver;\n }\n this.ver = false;\n this.tipoPresentacion = 'fuente'\n this.titulo = 'Lista Fuentes de Importación';\n this.menuService.setBreadcrumb([{ label: this.titulo, command: (event) => { location.reload()} }]);\n this.generalService.queryForList(new GeneralModel('FuenteProcesoGeneralDTO', null, false, {})).subscribe(data => {\n this.listaFuenteProceso = data;\n this.paginator.totalRecords = this.listaFuenteProceso.length;\n this.detalle.traerFuente();\n\n })\n return this.ver;\n }\n\n verAnterior(event){\n this.mostrarMenu = false;\n this.fuenteProcesoDTO = event.data;\n this.generalService.queryForList(new GeneralModel('CargueLineaDTO', null, false, {proceso: this.fuenteProcesoDTO.llaveTabla})).subscribe(data => {\n this.listaLineas = data;\n this.paginator.totalRecordsLL = this.listaLineas.length;\n this.vistaVisualizar = 'detalle';\n this.menuService.setBreadcrumb([{ label: this.titulo ,command: (event) =>{ this.regresar() } }, { label: 'Detalle Procesos Generados' }]);\n })\n }\n\n eliminar(){\n this.confirmationService.confirm({\n target: event.target,\n message: '¿Desea eliminar el registro?',\n acceptLabel: 'Si',\n icon: 'confirmar',\n accept: () => {\n this.cargueLinea.eliminarProceso({llaveProceso: this.fuenteProcesoDTO.llaveTabla}).subscribe(data => {\n var index = this.listaFuenteProceso.indexOf(this.fuenteProcesoDTO);\n this.listaFuenteProceso.splice(index, 1);\n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR)\n this.regresar()\n })\n }\n })\n \n } \n\n regresar(){\n if (this.tipoPresentacion == 'fuente'){\n console.log(this.detalle.estadoRegresar)\n if (this.detalle.estadoRegresar == 'volverImportar'){\n this.detalle.importarNuevamente();\n return;\n }\n\n if (this.detalle.estadoRegresar == 'regresarImportar'){\n this.detalle.regresarDatos();\n return;\n }\n }\n if ( this.detalle?.regresarPuntoProceso){\n window.location.href = this.detalle?.regresarPuntoProceso;\n return;\n }\n this.vistaVisualizar = null;\n this.mostrarMenu = true;\n if (this.tipoPresentacion == 'fuente'){\n this.detalle.mostrar = false;\n }\n if (this.listaFuenteProceso.length == 0){\n this.tipoPresentacion = 'fuente';\n this.titulo = 'Lista Fuentes de Importación';\n }\n this.menuService.setBreadcrumb([{ label: this.titulo , command: (event) => { location.reload()}}]);\n }\n\n regresarFuente(event){\n if (event){\n this.regresar();\n } else {\n this.mostrarMenu = false;\n }\n }\n\n public autoServicioPortal(): boolean {\n if (this.storage.getDecodedJWT().aplicacion == 10) {\n return true;\n }\n return false;\n }\n}","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n <h1 class=\"mb-1\">{{'importarfuente' | translate}}</h1>\n \n <button pButton pRipple (click)=\"regresar()\" label=\"{{'link_regresar' | translate}}\" icon=\"pi pi-chevron-left\" *ngIf=\"!mostrarMenu\"\n class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n</div>\n\n<p-menubar [model]=\"items\" class=\"menu-accion-sara\" *ngIf=\"mostrarMenu && !autoServicioPortal()\"></p-menubar>\n\n<div *ngIf=\"isVer() && mostrarMenu\"></div>\n<h4 *ngIf=\"!autoServicioPortal()\">{{titulo}}</h4>\n\n<div *ngIf=\"tipoPresentacion == 'fuente'\">\n <app-importar-fuente-con #detalle (regresarFuente)=\"regresarFuente($event)\"></app-importar-fuente-con>\n</div>\n<div *ngIf=\"tipoPresentacion != 'fuente' && vistaVisualizar == null\">\n <p-table #tablaFuenteProceso\n responsiveLayout=\"scroll\"\n [scrollable]=\"true\"\n [value]=\"listaFuenteProceso\"\n [paginator]=\"paginator.totalRecords > paginator.rows\"\n [rows]=\"paginator.rows\"\n [totalRecords]=\"paginator.totalRecords\"\n [rowsPerPageOptions]=\"[10, 20, 50]\"\n selectionMode=\"single\"\n styleClass=\"p-datatable-striped\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAnterior($event)\"\n >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"text-align: center\">{{'fuente' | translate}}</th>\n <th style=\"text-align: center\">{{'usuario' | translate}}</th>\n <th style=\"text-align: center\">{{'estado' | translate}}</th>\n <th style=\"text-align: center\">{{'archivo' | translate}}</th>\n <th style=\"text-align: center\">{{'proceso' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td style=\"text-align: center\">{{bean.nombreFuente}}</td>\n <td style=\"text-align: center\">{{bean.usuario}}</td>\n <td style=\"text-align: center\">{{bean.estado}}</td>\n <td style=\"text-align: center\">{{bean.archivo}}</td>\n <td style=\"text-align: center\">{{bean.fechaProceso | date : ('formatofechahora' | translate)}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n<div *ngIf=\"tipoPresentacion != 'fuente' && vistaVisualizar == 'detalle'\">\n\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <div class=\"card mt-2 mb-2\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}} {{'cargue' | translate}}</h5>\n <div class=\"contenedor p-fluid grid mt-1 mb-1\">\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.nombreFuente\" [disabled]=\"true\" pInputText autofocus\n type=\"text\" />\n <label for=\"fuente\">{{'fuente' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.usuario\" [disabled]=\"true\" pInputText autofocus\n type=\"text\" />\n <label for=\"usuario\">{{'usuario' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.estado\" [disabled]=\"true\" pInputText autofocus\n type=\"text\" />\n <label for=\"estado\">{{'estado' | translate}}</label>\n </span>\n </div>\n <div class=\"field col-3 md:col-3 lg:col-3\">\n <span class=\"p-float-label\">\n <input pInputText class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.archivo\" [disabled]=\"true\" autofocus\n type=\"text\" />\n <label for=\"archivo\">{{'archivo' | translate}}</label>\n </span>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 p-button p-button-outlined\" \n icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminar()\">\n </button>\n \n </div>\n </div>\n </div>\n <p-table #tablaCargueLinea\n responsiveLayout=\"scroll\"\n [scrollable]=\"true\"\n [value]=\"listaLineas\"\n [paginator]=\"paginator.totalRecordsLL > paginator.rowsLL\"\n [rows]=\"paginator.rowsLL\"\n [totalRecords]=\"paginator.totalRecordsLL\"\n [rowsPerPageOptions]=\"[10, 20, 50]\"\n styleClass=\"p-datatable-striped\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"text-align: center\">{{'linea' | translate}}</th>\n <th style=\"text-align: center\">{{'mensaje' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td style=\"text-align: center\">{{bean.linea}}</td>\n <td style=\"text-align: center\">{{bean.mensaje}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n \n</div>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tstandalone: true,\n\tname: 'reporteFuentePipe'\n})\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ReporteFuentePipe implements PipeTransform {\n\n\tSQL = 'S';\n\tFUENTE = 'F';\n\tFIJO = 'I';\n\n\tSQL_DESC = 'SQL';\n\tFUENTE_DESC = 'Fuente';\n\tFIJO_DESC = 'Fijo';\n\n\tLISTA_TIPO = [\n\t\t{ codigo: this.SQL, nombre: this.SQL_DESC },\n\t\t{ codigo: this.FUENTE, nombre: this.FUENTE_DESC },\n\t\t{ codigo: this.FIJO, nombre: this.FIJO_DESC }\n\t]\n\n\tLISTA_TIPO_SIN_PERMISO = [\n\t\t{ codigo: this.FUENTE, nombre: this.FUENTE_DESC },\n\t]\n\n\tMOMENTOS_SEGUNDO_PLANO = 'S';\n\tMOMENTOS_HILO = 'H';\n\tMOMENTOS_SINHILO = 'D';\n\n\tLISTA_MOMENTO = [\n\t\t{ codigo: this.MOMENTOS_SEGUNDO_PLANO, nombre: 'Se permite ejecutar en segundo plano' },\n\t\t{ codigo: this.MOMENTOS_HILO, nombre: 'Ejecutar sin limite de tiempo' },\n\t\t{ codigo: this.MOMENTOS_SINHILO, nombre: 'Ejecutar limite de tiempo de la sesion' }\n\t]\n\n\tTIPO_NUMERO = 'N';\n\tTIPO_BIGDECIMAL = 'B';\n\tTIPO_FECHA = 'F';\n\tTIPO_TEXTO = 'T';\n\tTIPO_TEXTO_SERIE = 'E';\n\tTIPO_NUMERO_SERIE = 'U';\n\n\tTIPOS_DATO = [\n\t\t{ codigo: this.TIPO_FECHA, nombre: 'Fecha' },\n\t\t{ codigo: this.TIPO_NUMERO, nombre: 'Numero Entero' },\n\t\t{ codigo: this.TIPO_BIGDECIMAL, nombre: 'Numero Decimal' },\n\t\t{ codigo: this.TIPO_TEXTO, nombre: 'Texto' },\n\t\t{ codigo: this.TIPO_TEXTO_SERIE, nombre: 'Serie Texto' },\n\t\t{ codigo: this.TIPO_NUMERO_SERIE, nombre: 'Serie Numero' },\n\t]\n\n\tTIPO_DIRECTO = 'D';\n\tTIPO_LISTA = 'L';\n\tTIPOS_ENTRADA = [\n\t\t{ codigo: this.TIPO_DIRECTO, nombre: 'Directo' },\n\t\t{ codigo: this.TIPO_LISTA, nombre: 'Lista' },\n\t]\n\n\tTIPOS_DATO_COLUMNA = [\n\t\t{ codigo: this.TIPO_FECHA, nombre: 'Fecha' },\n\t\t{ codigo: this.TIPO_NUMERO, nombre: 'Numero' },\n\t\t{ codigo: this.TIPO_TEXTO, nombre: 'Texto' },\n\t]\n\n\tMARCADOR = 'MA';\n\tMARCADORREGISTRO = 'MR';\n\tMARCADORTABLA = 'TB';\n\tMARCADORIMAGEN = 'IM';\n\tMARCADORIMAGENFIJA = 'IF';\n\tMARCADORTEXTOPLANO = 'TP';\n\tMARCADORQR = 'QR';\n\tMARCADORBARCODE = 'BC';\n\tMARCADORBARCODEGS1_128 = 'G1';\n\n\tDESMARCADOR = 'Marcador';\n\tDESMARCADORREGISTRO = 'Marcador Registro';\n\tDESMARCADORTABLA = 'Tabla';\n\tDESMARCADORIMAGEN = 'Imagen';\n\tDESMARCADORIMAGENFIJA = 'Imagen Fija';\n\tDESMARCADORQR = 'Imagen QR';\n\tDESMARCADORBARCODE = 'Imagen Codigo Barra 128';\n\tDESMARCADORBARCODEGS1_128 = 'Imagen Codigo Barra GS1 - 128';\n\n\tLISTA_MARCADORES = [\n\t\t{ codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n\t\t{ codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n\t\t{ codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n\t\t{ codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\n\t\t{ codigo: this.MARCADORIMAGENFIJA, nombre: this.DESMARCADORIMAGENFIJA },\n\t\t{ codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\n\t\t{ codigo: this.MARCADORBARCODE, nombre: this.DESMARCADORBARCODE },\n\t\t{ codigo: this.MARCADORBARCODEGS1_128, nombre: this.DESMARCADORBARCODEGS1_128 },\n\t]\n\n\tLISTA_MARCADORES_XML = [\n\t\t{ codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n\t\t{ codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n\t\t{ codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n\t]\n\n\tDIAGRAMA_BARRAS = 'B';\n\tDIAGRAMA_BARRAS_HOR = 'H';\n\tDIAGRAMA_TORTA = 'T';\n\tDIAGRAMA_AREA = 'A';\n\tDIAGRAMA_RADAR = 'R';\n\tDIAGRAMA_POLAR = 'P';\n\tDIAGRAMA_DONA = 'D';\n\tDIAGRAMA_BARRAS_STRING = 'Diagrama de barras Vertifical';\n\tDIAGRAMA_BARRAS_HOR_STRING = 'Diagrama de barras Horizontal';\n\tDIAGRAMA_TORTA_STRING = 'Diagrama de Torta';\n\tDIAGRAMA_AREA_STRING = 'Diagrama de Area';\n\tDIAGRAMA_RADAR_STRING = 'Diagrama de Radar';\n\tDIAGRAMA_POLAR_STRING = 'Diagrama de Polar';\n\tDIAGRAMA_DONA_STRING = 'Diagrama de Dona';\n\n\tLISTA_TIPO_GRAFICO = [\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, nombre: this.DIAGRAMA_BARRAS_HOR_STRING },\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },\n\t\t{ codigo: this.DIAGRAMA_POLAR, nombre: this.DIAGRAMA_POLAR_STRING },\n\t\t{ codigo: this.DIAGRAMA_DONA, nombre: this.DIAGRAMA_DONA_STRING },\n\t\t{ codigo: this.DIAGRAMA_RADAR, nombre: this.DIAGRAMA_RADAR_STRING },\n\t]\n\n\tDIAGRAMA_LINEA = 'L';\n\tDIAGRAMA_HISTOGRAMA = 'H';\n\tDIAGRAMA_DIFERENCIA = 'D';\n\tDIAGRAMA_BARRA_HORIZONTAL = 'Z';\n\tDIAGRAMA_BARRA_ESCALA_HORIZONTAL = 'E';\n\tDIAGRAMA_BARRA_ESCALA_VERTICAL = 'V';\n\tDIAGRAMA_LINEA_STRING = 'Diagrama de linea';\n\tDIAGRAMA_HISTOGRAMA_STRING = 'Diagrama de Histograma';\n\tDIAGRAMA_DIFERENCIA_STRING = 'Diagrama de Diferencia';\n\tDIAGRAMA_BARRA_HORIZONTAL_STRING = 'Diagrama de Barras Horizontal';\n\tDIAGRAMA_BARRA_ESCALA_STRING = 'Diagrama horizontal de Barras con escala';\n\tDIAGRAMA_BARRA_ESCALA_VERTICAL_STRING = 'Diagrama vertical de Barras con escala';\n\n\tLISTA_TIPO_GRAFICO_JFC = [\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },\n\t\t{ codigo: this.DIAGRAMA_LINEA, nombre: this.DIAGRAMA_LINEA_STRING },\n\t\t//{codigo: this.DIAGRAMA_HISTOGRAMA, nombre: this.DIAGRAMA_HISTOGRAMA_STRING}, //TODO ajustar en Ejecucion Reporte\n\t\t{ codigo: this.DIAGRAMA_DIFERENCIA, nombre: this.DIAGRAMA_DIFERENCIA_STRING },\n\t\t{ codigo: this.DIAGRAMA_BARRA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_HORIZONTAL_STRING },\n\t\t{ codigo: this.DIAGRAMA_BARRA_ESCALA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_ESCALA_STRING },\n\t\t{ codigo: this.DIAGRAMA_BARRA_ESCALA_VERTICAL, nombre: this.DIAGRAMA_BARRA_ESCALA_VERTICAL_STRING },\n\t]\n\n\tSERIE = 'S';\n\tCATEGORIA = 'C';\n\tVALOR = 'V';\n\tIMAGEN = 'I';\n\tSERIE_STRING = 'Serie';\n\tCATEGORIA_STRING = 'Categoria';\n\tVALOR_STRING = 'Valor';\n\tIMAGEN_DESC = 'Imagen';\n\n\n\tLISTA_RECURSO_GRAFICA = [\n\t\t{ codigo: this.SERIE, nombre: this.SERIE_STRING },\n\t\t{ codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\n\t\t{ codigo: this.VALOR, nombre: this.VALOR_STRING },\n\t\t{ codigo: this.IMAGEN, nombre: this.IMAGEN_DESC },\n\t\t{ codigo: 'G', nombre: 'Grupo' },\n\t]\n\n\tRECURSO_GRAFICA = [\n\t\t{ codigo: this.SERIE, nombre: this.SERIE_STRING },\n\t\t{ codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\n\t\t{ codigo: this.VALOR, nombre: this.VALOR_STRING },\n\t]\n\n\t/* ======================================\n\t * Formatos de generacion de reportes \n\t * ====================================== */\n\tGENERACION_JASPERDINAMICO = 'D';\n\tDESC_GENERACION_JASPERDINAMICO = 'Jasper dinamico';\n\n\tGENERACION_JASPERFIJO = 'F';\n\tDESC_GENERACION_JASPERFIJO = 'Jasper fijo';\n\n\tGENERACION_EXCEL = 'E';\n\tDESC_GENERACION_EXCEL = 'Excel';\n\n\tGENERACION_XML = 'X';\n\tDESC_GENERACION_XML = 'Archivo xml';\n\n\tGENERACION_PLANTILLA = 'W';\n\tDESC_GENERACION_PLANTILLA = 'Plantilla';\n\n\tGENERACION_ARCHIVOPLANO = 'T';\n\tDESC_GENERACION_ARCHIVOPLANO = 'Archivo Plano';\n\n\tGENERACION_TABLA = 'A';\n\tDESC_GENERACION_TABLA = 'Tabla';\n\n\tGENERACION_COLUMNARIO = 'C';\n\tDESC_GENERACION_COLUMNARIO = 'Columnario';\n\n\t/* ======================================\n\t * Operaciones sobre reportes generados \n\t * ======================================*/\n\tOPERACION_DESCARGAR = 'D';\n\tDESC_OPERACION_DESCARGAR = 'Descargar';\n\n\tOPERACION_ENVIARCORREO = 'E';\n\tDESC_OPERACION_ENVIARCORREO = 'Enviar correo';\n\n\tOPERACION_ENVIOMASIVO = 'M';\n\tDESC_OPERACION_ENVIOMASIVO = 'Envio masivo';\n\n\tOPERACION_CORREOPUBLICAR = 'MP';\n\tDESC_OPERACION_CORREOPUBLICAR = 'Enviar y Publicar Masivo';\n\n\tOPERACION_PUBLICAR = 'P';\n\tDESC_OPERACION_PUBLICAR = 'Publicar';\n\n\tOPERACION_PROCESO_EXTERNO = 'X';\n\tDESC_OPERACION_PROCESO_EXTERNO = 'Proceso Externo';\n\n\tPARAMETRO_ENTRADA_CODEMPRESA = 'codempresa';\n\tPARAMETRO_ENTRADA_CEDULA = 'cedula';\n\tPARAMETRO_ENTRADA_CONTRATO = 'contrato';\n\n\tPARAMETRO_ENTRADA_LOGIN = 'login';\n\tPARAMETRO_ENTRADA_ROL = 'rol';\n\n\tPARAMETRO_NUMERO_LIQUIDACION_PERIODICA = 'numero';\n\n\tOPERACION_SEGUNDOPLANO = 'S';\n\tDESC_OPERACION_SEGUNDOPLANO = 'Segundo Plano';\n\n\tMAPA_TIPO_ARCHIVOS = [\n\t\t{ codigo: 'html', nombre: 'html' },\n\t\t{ codigo: 'xml', nombre: 'xml' },\n\t\t{ codigo: 'xls', nombre: 'xls' },\n\t\t{ codigo: 'pdf', nombre: 'pdf' },\n\t\t{ codigo: 'csv', nombre: 'csv' },\n\t\t{ codigo: 'txt', nombre: 'txt' },\n\t]\n\n\tMODO_PARAMETRO = 'P';\n\tMODO_DATOS = 'D';\n\n\tDES_MODO_PARAMETRO = 'Parametro';\n\tDES_MODO_DATOS = 'Datos';\n\n\tMODOS = [\n\t\t{ codigo: this.MODO_PARAMETRO, nombre: this.DES_MODO_PARAMETRO },\n\t\t{ codigo: this.MODO_DATOS, nombre: this.DES_MODO_DATOS },\n\t]\n\n\tIZQUIERDA = 'I';\n\tDERECHA = 'D';\n\tCENTRO = 'C';\n\tJUSTIFICADO = 'J';\n\n\tIZQUIERDA_DESC = 'Izquierda';\n\tDERECHA_DESC = 'Derecha';\n\tCENTRO_DESC = 'Centro';\n\tJUSTIFICADO_DESC = 'Justificado';\n\n\tLISTA_ALINEACION = [\n\t\t{ codigo: this.IZQUIERDA, nombre: this.IZQUIERDA_DESC },\n\t\t{ codigo: this.DERECHA, nombre: this.DERECHA_DESC },\n\t\t{ codigo: this.CENTRO, nombre: this.CENTRO_DESC },\n\t\t{ codigo: this.JUSTIFICADO, nombre: this.JUSTIFICADO_DESC }\n\t]\n\n\t//Tipo Marcadores Texto\n\tMARCADORTEXTOFIJO = 'F';\n\tMARCADORTEXTODINAMICO = 'D';\n\n\tMARCADORTEXTOFIJO_DESC = 'Fijo';\n\tMARCADORTEXTODINAMICO_DESC = 'Columna';\n\n\tREPORTEARCHIVOPLANO = 'T';\n\tTIPOMARCADORESTEXTO = [\n\t\t{ codigo: this.MARCADORTEXTOFIJO, nombre: this.MARCADORTEXTOFIJO_DESC },\n\t\t{ codigo: this.MARCADORTEXTODINAMICO, nombre: this.MARCADORTEXTODINAMICO_DESC }\n\t]\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listaTipo') { this.LISTA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaMomento') { this.LISTA_MOMENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoDato') { this.TIPOS_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoDatoColumna') { this.TIPOS_DATO_COLUMNA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoDatoMarcadores') { this.LISTA_MARCADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoGrafico') { this.LISTA_TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoGraficoJFC') { this.LISTA_TIPO_GRAFICO_JFC.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaRecursoGrafica') { this.LISTA_RECURSO_GRAFICA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaAlineacion') { this.LISTA_ALINEACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoMarcadoresTexto') { this.TIPOMARCADORESTEXTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n\t\treturn result;\n\t}\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { TableModule } from 'primeng/table';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\n@Component({\n selector: 'detalle-campo-reporte',\n imports: [TranslateModule, CommonModule, ButtonModule, FormsModule, ReactiveFormsModule, DropdownModule, ReporteFuentePipe, ConfirmPopupModule, TableModule, InputTextModule, InputTextareaModule],\n standalone: true,\n templateUrl: './detalle-campo-reporte.component.html',\n styleUrls: ['./detalle-campo-reporte.component.scss'],\n providers: [ConfirmationService, MessageService]\n})\nexport class DetalleCampoReporteComponent implements OnInit {\n\n public listaColumna: ReporteColumnaModel[] = [];\n @Input() public reporteFuente: ReporteFuenteModel;\n \n public reporteColumna: ReporteColumnaModel;\n public formReporteColumna: FormGroup;\n public vistaVisualizar: string;\n public nuevo: boolean;\n public submitted: boolean;\n items: ({ label: string; icon: string; command: () => void; url?: undefined; separator?: undefined; routerLink?: undefined; } | { label: string; icon: string; url: string; command?: undefined; separator?: undefined; routerLink?: undefined; } | { separator: boolean; label?: undefined; icon?: undefined; command?: undefined; url?: undefined; routerLink?: undefined; } | { label: string; icon: string; routerLink: string[]; command?: undefined; url?: undefined; separator?: undefined; })[];\n\n\n paginador = {\n rows: 10,\n totalRecords: 0\n }\n\n public listaTipoDato;\n\n\n constructor(private formBuilder: FormBuilder,\n private notificacionesBusService: ToastService,\n private generalService: GeneralService,\n private confirmationService: ConfirmationService,\n private reporteService: EjecucionReporteService,\n private generalPipe: GeneralPipe,\n private translateService: TranslateService,\n private reporteFuentePipe: ReporteFuentePipe) {\n }\n\n ngOnInit(): void {\n this.listaTipoDato = this.reporteFuentePipe.TIPOS_DATO_COLUMNA;\n this.items = []\n if (this.isFuente()){\n this.items.push(\n {label: this.translateService.instant('link_importar'), icon: 'pi pi-refresh', command: () => {\n this.importar();\n }})\n } else if (this.isSql){\n this.items.push(\n {label: this.translateService.instant('link_generar'), icon: 'pi pi-refresh', command: () => {\n this.generar();\n }})\n }\n }\n\n cargarListaColumna(event){\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {\n reporteFuente: this.reporteFuente.llave,\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows\n })).subscribe(data => {\n this.listaColumna = data;\n this.generalService.cantidadRegistros(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.paginador.totalRecords = data;\n })\n })\n }\n\n public cargarFormulario(){\n this.formReporteColumna = this.formBuilder.group({\n nombre: new FormControl(this.reporteColumna.nombre, [Validators.required]),\n sintaxis: new FormControl(this.reporteColumna.sintaxis, [Validators.required]),\n tipoDato: new FormControl(this.reporteColumna.tipoDato, [Validators.required]),\n llaveTabla: new FormControl(this.reporteColumna.llaveTabla),\n reporteFuente: new FormControl(this.reporteFuente.llave)\n });\n }\n public verAction(event){\n this.reporteColumna = event.data;\n this.vistaVisualizar = 'detalle';\n this.nuevo = false;\n this.cargarFormulario();\n }\n\n public nuevaColumna(){\n this.vistaVisualizar = 'detalle';\n this.nuevo = true;\n this.reporteColumna = new ReporteColumnaModel();\n this.cargarFormulario();\n }\n\n public actualizar(){\n this.submitted = true;\n if (!this.formReporteColumna.valid){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n Object.keys(this.formReporteColumna.controls).forEach((key) => {\n if (this.formReporteColumna.get(key).errors) {\n this.formReporteColumna.get(key).markAsDirty();\n }\n });\n return;\n }\n if (this.nuevo){\n this.generalService.crearRegistro(new GeneralModel('ReporteColumnaDTO', null, false, this.formReporteColumna.value)).subscribe(data => {\n this.vistaVisualizar = null;\n });\n } else {\n this.generalService.update(new GeneralModel('ReporteColumnaDTO', null, false, this.formReporteColumna.value)).subscribe(data => {\n this.vistaVisualizar = null;\n });\n }\n this.cargarListaColumna({first: 0, rows: 10})\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR);\n }\n\n public importar(){\n this.reporteService.cargarCampos(this.reporteFuente).subscribe(data => {\n this.cargarListaColumna({first: 0, rows: 10})\n this.notificacionesBusService.showInfo('Se importaron las columnas')\n });\n }\n\n\n public generar(){\n this.reporteService.construirColumnas(this.reporteFuente).subscribe(data => {\n this.cargarListaColumna({first: 0, rows: 10})\n this.notificacionesBusService.showInfo('Se generaron las columnas')\n });\n }\n\n public eliminar(event: Event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n let entradaEliminar:ReporteColumnaModel = this.formReporteColumna.value;\n this.generalService.delete(new GeneralModel('ReporteColumnaDTO', null, false, entradaEliminar)).subscribe(data => {\n if (data == 1) {\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR);\n this.vistaVisualizar = null;\n } else {\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR_NO);\n }\n });\n }\n });\n }\n\n public isFijo():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\n }\n\n public isSql():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\n }\n\n public isFuente():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\n }\n\n public filtroOrigenFuente(tipo:string):boolean{\n return this.reporteFuente.origenFuente == tipo;\n }\n\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mb-3\">\n <h1 class=\"text-xl mb-1\">{{'campo' | translate}}</h1>\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"vistaVisualizar != 'detalle'\">\n <button pButton pRipple (click)=\"nuevaColumna()\" label=\"{{'link_nuevo' | translate}}\"\n icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_importar' | translate}}\" *ngIf=\"isFuente()\"\n (click)=\"importar()\"><i class=\"glyphicons glyphicons-restart\"></i></button>\n <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_generar' | translate}}\" *ngIf=\"isSql()\"\n (click)=\"generar()\"><i class=\"glyphicons glyphicons-restart\"></i></button>\n </div>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'campo' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaColumna\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\" dataKey=\"llave\"\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" *ngIf=\"vistaVisualizar != 'detalle'\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginador.rows\" [totalRecords]=\"paginador.totalRecords\" [paginator]=\"paginador.totalRecords > paginador.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaColumna($event)\">\n <ng-template pTemplate=\"header\">\n \n <tr class=\"fondoTablaPincipal\">\n <th>{{'nombre' | translate}} </th>\n <th>{{'sintaxis' | translate}} </th>\n <th>{{'tipo' | translate}} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-campo>\n <tr [pSelectableRow]=\"campo\">\n <td>{{campo.nombre}}</td>\n <td>{{campo.sintaxis}}</td>\n <td>{{campo.tipoDato | reporteFuentePipe : 'listaTipoDatoColumna'}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <form [formGroup]=\"formReporteColumna\" #formulario=\"ngForm\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <span class=\"p-float-label\">\n <input pInputText id=\"nombre\" type=\"text\" formControlName=\"nombre\" size=\"40\">\n <label htmlFor=\"nombre\">{{'nombre' | translate}} *</label>\n </span>\n </span>\n </div>\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipo' | translate}} *</label>\n </span>\n </div>\n <div class=\"field col-12 md:col-12\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"sintaxis\"></textarea>\n <label htmlFor=\"sintaxis\">{{'sintaxis' | translate}} *</label>\n </span>\n </div>\n \n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteColumna.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteColumna.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteColumna.llaveTabla\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n </div>\n </form>\n </div>\n </div>\n</div>","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { PublicacionWebModel } from '../../../../seguridad/modelos/PublicacionWebModel';\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\nimport { ReporteEntradaModel } from '../../../../seguridad/modelos/ReporteEntradaModel';\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\n@Component({\n selector: 'detalle-distribucion-reporte',\n imports: [TranslateModule, CommonModule, ConfirmPopupModule, FieldsetModule, InputHelperSeleccionPlantillaComponent, DropdownModule, FormsModule, ButtonModule, InputTextModule, InputTextareaModule ],\n standalone: true,\n templateUrl: './detalle-distribucion-reporte.component.html',\n styleUrls: ['./detalle-distribucion-reporte.component.scss'],\n providers: [ConfirmationService, MessageService]\n})\nexport class DetalleDistribucionReporteComponent implements OnInit, OnChanges {\n\n public reporteEntrada:ReporteEntradaModel;\n public vistaVisualizar: string;\n public listaColumnas: ReporteColumnaModel[] = []\n public listaPublicaciones: PublicacionWebModel[] = []\n\n public reporteFuente : ReporteFuenteModel = new ReporteFuenteModel;\n @Input() public modificarReporte : boolean;\n @Input() public llaveReporte : string;\n\n constructor(private notificacionesBusService: ToastService,\n private generalService: GeneralService,\n private generalPipe: GeneralPipe) {\n }\n\n ngOnChanges(): void {\n this.cargar()\n \n }\n\n\n cargar(){\n if (this.llaveReporte){\n this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, {llave: this.llaveReporte})).subscribe(data => {\n this.reporteFuente = data;\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaColumnas = data;\n this.generalService.queryForList(new GeneralModel('PublicacionWebDTO', null, false, {diferente: '.'})).subscribe(data => {\n this.listaPublicaciones = data;\n })\n })\n })\n }\n }\n\n ngOnInit(): void {\n this.cargar()\n }\n\n obtenerArchivo(event){\n this.reporteFuente.archivoHtml = event.data\n console.log(event)\n }\n\n \n public actualizar(){\n console.log(this.reporteFuente)\n if (this.reporteFuente.llave){\n\n this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporteFuente)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n });\n }\n }\n\n}\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n\n<div class=\"card col-md-12\">\n <h1 class=\"text-xl\">{{'distribucion' | translate}}</h1>\n <p-fieldset>\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\n <span>{{'enviar' | translate }} {{'correo' | translate }}</span>\n </div>\n </ng-template>\n \n <div class=\"Detallereporte p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-6\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"reporteFuente.archivoHtml ? reporteFuente.archivoHtml: ''\"\n [extensiones]=\"'html'\" [labelrar]=\"'Archivo HTML'\" [mostraroblicargo]=\"true\"\n (onSelected)=\"obtenerArchivo($event)\"></app-input-helper-seleccion-plantilla>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.campoEmail\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label htmlFor=\"campoEmail\">{{'campo' | translate }} {{'mail' | translate }}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.campoClave\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label htmlFor=\"campoEmail\">{{'campo' | translate }} {{'clave' | translate }}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <input pInputText id=\"asunto\" type=\"text\" [(ngModel)]=\"reporteFuente.asuntoEmail\" size=\"25\"\n maxlength=\"4000\">\n <label htmlFor=\"asunto\">{{'asunto' | translate }}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <input pInputText id=\"nombreAdjunto\" type=\"text\" [(ngModel)]=\"reporteFuente.nombreAdjunto\"\n size=\"25\" maxlength=\"4000\">\n <label htmlFor=\"nombreAdjunto\">{{'nombre' | translate }} {{'adjunto' | translate }}</label>\n </span>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset>\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\n <span>{{'publicacion' | translate }}</span>\n </div>\n </ng-template>\n\n <div class=\"Detallereporte p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaPublicaciones\" [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"reporteFuente.publicacion\" optionLabel=\"descripcion\"\n optionValue=\"llave\" [showClear]=\"true\"></p-dropdown>\n <label htmlFor=\"publicacion\">{{'publicacion' | translate }}</label>\n </span>\n\n </div>\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"reporteFuente.campoPublica\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\" [showClear]=\"true\"></p-dropdown>\n <label>{{'campo' | translate }} {{'publicacion' | translate }}</label>\n </span>\n </div>\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"reporteFuente.publicaCarpeta\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\" [showClear]=\"true\"></p-dropdown>\n <label>{{'campo' | translate }} {{'carpeta' | translate }}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.publicaTitulo\" size=\"25\"\n maxlength=\"100\">\n <label>{{'descripcion' | translate }}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <span class=\"p-float-label\">\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tablaDestino\" size=\"25\" maxlength=\"50\">\n <label>{{'tabla' | translate }} {{'destino' | translate }}</label>\n </span>\n </div>\n\n </div>\n </p-fieldset>\n <div class=\"flex justify-content-end mt-3 mb-2\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n (click)=\"actualizar()\">\n </button>\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConfirmationService, ConfirmEventType, MessageService } from 'primeng/api';\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\nimport { FuenteDatoModel } from '../../../../seguridad/modelos/FuenteDato';\nimport { ReporteEntradaModel } from '../../../../seguridad/modelos/ReporteEntradaModel';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FloatLabelModule } from 'primeng/floatlabel';\n\n@Component({\n selector: 'detalle-entrada-reporte',\n imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule],\n standalone: true,\n templateUrl: './detalle-entrada-reporte.component.html',\n styleUrls: ['./detalle-entrada-reporte.component.scss'],\n providers: [ConfirmationService, MessageService]\n})\nexport class DetalleEntradaReporteComponent implements OnInit {\n\n public formReporteEntrada: FormGroup;\n public listaTipo;\n public listaTipoDato;\n public listaSiNo;\n\n public reporteEntrada:ReporteEntradaModel;\n public submitted = false;\n public vistaVisualizar: string;\n\n public listaEntrada : ReporteEntradaModel[] = [];\n public listaFuente : FuenteDatoModel[] = [] ;\n @Input() public llaveReporte : string;\n @Input() public modificarReporte : boolean;\n @Output() regresar = new EventEmitter;\n\n paginator={\n rows:10,\n totalRecords:0\n }\n\n constructor(private formBuilder: FormBuilder,\n private notificacionesBusService: ToastService,\n private generalService: GeneralService,\n private confirmationService: ConfirmationService,\n private reporteService: EjecucionReporteService,\n private generalPipe: GeneralPipe,\n private translateService: TranslateService,\n private reporteFuentePipe: ReporteFuentePipe) {\n }\n\n ngOnInit(): void {\n this.listaTipo = this.reporteFuentePipe.TIPOS_ENTRADA ;\n this.listaTipoDato = this.reporteFuentePipe.TIPOS_DATO;\n this.listaSiNo = this.generalPipe.LISTA_SINO\n \n }\n\n cargarListaEntrada(event){\n this.generalService.queryForList(new GeneralModel('ReporteEntradaDTO', null, false, {\n reporteFuente: this.llaveReporte,\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows,\n })).subscribe(data => {\n this.listaEntrada = data;\n this.generalService.cantidadRegistros(new GeneralModel('ReporteEntradaDTO', null, false, {\n reporteFuente: this.llaveReporte,\n })).subscribe(data => {\n this.paginator.totalRecords = data;\n })\n this.generalService.queryForList(new GeneralModel('FuenteDatoDTO', null, false, {origen: 'L'})).subscribe(data => {\n this.listaFuente = data;\n })\n })\n }\n\n public cargarFormularioReporteEntrada(){\n this.formReporteEntrada = this.formBuilder.group({\n descripcion: new FormControl(this.reporteEntrada.descripcion, [Validators.required]),\n parametro: new FormControl(this.reporteEntrada.parametro, [Validators.required]),\n tipo: new FormControl(this.reporteEntrada.tipo, [Validators.required]),\n tipoDato: new FormControl(this.reporteEntrada.tipoDato, [Validators.required]),\n fuenteDato : new FormControl(this.reporteEntrada.fuenteDato),\n valorDefecto: new FormControl(this.reporteEntrada.valorDefecto),\n orden: new FormControl(this.reporteEntrada.orden),\n parametroEntrada: new FormControl(this.reporteEntrada.parametroEntrada),\n formato: new FormControl(this.reporteEntrada.formato),\n solicitar: new FormControl(this.reporteEntrada.solicitar, [Validators.required]),\n llave: new FormControl(this.reporteEntrada.llave),\n reporteFuente: new FormControl(this.reporteEntrada.reporteFuente)\n });\n console.log('cargado form reporte entrada')\n }\n\n public actualizarTipo(){\n console.log(this.formReporteEntrada.value)\n if (this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_DIRECTO){\n this.formReporteEntrada.get('tipoDato').setValidators(Validators.required);\n this.formReporteEntrada.get('fuenteDato').clearValidators();\n }else if (this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_LISTA){\n this.formReporteEntrada.get('fuenteDato').setValidators(Validators.required);\n this.formReporteEntrada.get('tipoDato').clearValidators();\n }\n this.formReporteEntrada.controls['fuenteDato'].updateValueAndValidity();\n this.formReporteEntrada.controls['tipoDato'].updateValueAndValidity();\n\n }\n\n public verAction(event){\n this.reporteEntrada = event.data;\n this.vistaVisualizar = 'detalle';\n this.cargarFormularioReporteEntrada();\n\n }\n\n public nuevoEntrada(){\n this.vistaVisualizar = 'detalle';\n this.reporteEntrada = new ReporteEntradaModel();\n //this.reporteEntrada.tipo = this.reporteFuentePipe.TIPO_DIRECTO;\n this.cargarFormularioReporteEntrada();\n }\n\n public isDirecto():boolean{\n return this.formReporteEntrada.value.tipo != null && this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_DIRECTO;\n }\n\n public isLista():boolean{\n return this.formReporteEntrada.value.tipo != null && this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_LISTA;\n }\n\n public eliminar(event: Event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n let entradaEliminar:ReporteEntradaModel = this.formReporteEntrada.value;\n this.generalService.delete(new GeneralModel('ReporteEntradaDTO', null, false, entradaEliminar)).subscribe(data => {\n if (data == 1) {\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR);\n this.vistaVisualizar = null;\n this.listaEntrada = this.listaEntrada.filter((item) => item.llave !== entradaEliminar.llave);\n this.regresar.emit(this.listaEntrada);\n } else {\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR_NO);\n }\n }, err => {\n var data = JSON.stringify(err.error.mensajeEtiqueta);\n if (data.includes('ORA-02292')) {\n this.notificacionesBusService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\n }\n });\n }\n });\n }\n\n public actualizar(){\n this.submitted = true;\n if (!this.formReporteEntrada.valid) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n Object.keys(this.formReporteEntrada.controls).forEach((key) => {\n if (this.formReporteEntrada.get(key).errors) {\n this.formReporteEntrada.get(key).markAsDirty();\n }\n });\n return;\n }\n let entradaActualizar = this.formReporteEntrada.value;\n let actualizar = entradaActualizar.reporteFuente != null;\n entradaActualizar.reporteFuente = this.llaveReporte;\n this.reporteService.guardarEntrada(entradaActualizar).subscribe(data => {\n if (data != null) {\n entradaActualizar = data;\n this.vistaVisualizar = null;\n if (actualizar){\n this.listaEntrada = this.listaEntrada.filter((item) => item.llave !== entradaActualizar.llave);\n }\n this.listaEntrada.push(entradaActualizar);\n this.regresar.emit(this.listaEntrada);\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n }\n });\n }\n\n}\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tstandalone: true,\n\tname: 'reporteColumnarioPipe'\n})\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReporteColumnarioPipe implements PipeTransform {\n\n\tTIPO_FILA='F';\n\tTIPO_COLUMNA='C';\n\tTIPO_CELDA='D';\n\tTIPO_LABEL='L';\n\tTIPO_ADICIONAL='A';\n\tTIPO_FILA_NO_VISUALIZAR='N';\n\n\tTIPO_FILA_DESC='Fila';\n\tTIPO_COLUMNA_DESC='Columna';\n\tTIPO_CELDA_DESC='Celda';\n\tTIPO_LABEL_DESC='Label';\n\tTIPO_FILA_NO_VISUALIZAR_DESC='Fila No visualizable';\n\t\n\tMAPA_TIPO_COLUMNAS= [\n\t\t{codigo: this.TIPO_FILA, nombre: this.TIPO_FILA_DESC},\n\t\t{codigo: this.TIPO_CELDA, nombre: this.TIPO_CELDA_DESC},\n\t\t{codigo: this.TIPO_COLUMNA, nombre: this.TIPO_COLUMNA_DESC},\n\t\t{codigo: this.TIPO_LABEL, nombre: this.TIPO_LABEL_DESC},\n\t\t{codigo: this.TIPO_FILA_NO_VISUALIZAR, nombre: this.TIPO_FILA_NO_VISUALIZAR_DESC}\n\t]\n\n\t/*\n\t *=========================================\n\t * Constantes Reporte Columnario \n\t *=========================================\n\t */\n\t\n\tOPERACION_SUMAR= 'S';\n\tOPERACION_MAXIMO = 'X';\n\tOPERACION_MINIMO = 'M';\n\tOPERACION_PROMEDIO = 'P';\n\tOPERACION_CONTAR = 'C';\n\tOPERACION_NINGUNA='N';\n\t\n\tOPERACION_SUMAR_DESC= 'Sumar';\n\tOPERACION_MAXIMO_DESC = 'Maximo';\n\tOPERACION_MINIMO_DESC = 'Minimo';\n\tOPERACION_PROMEDIO_DESC = 'Promedio';\n\tOPERACION_CONTAR_DESC = 'Contar';\n\tOPERACION_NINGUNA_DESC='Ninguna';\n\n\tMAPA_OPERACIONES_COLUMNARIO= [\n\t\t{codigo: this.OPERACION_SUMAR, nombre: this.OPERACION_SUMAR_DESC},\n\t\t{codigo: this.OPERACION_MAXIMO, nombre: this.OPERACION_MAXIMO_DESC},\n\t\t{codigo: this.OPERACION_MINIMO, nombre: this.OPERACION_MINIMO_DESC},\n\t\t{codigo: this.OPERACION_PROMEDIO, nombre: this.OPERACION_PROMEDIO_DESC},\n\t\t{codigo: this.OPERACION_CONTAR, nombre: this.OPERACION_CONTAR_DESC}\n\t]\n\t\n\tMAPA_OPERACIONES_COLUMNARIO_EXCEL= [\n\t\t{codigo: this.OPERACION_SUMAR, nombre: this.OPERACION_SUMAR_DESC},\n\t\t{codigo: this.OPERACION_MAXIMO, nombre: this.OPERACION_MAXIMO_DESC},\n\t\t{codigo: this.OPERACION_MINIMO, nombre: this.OPERACION_MINIMO_DESC},\n\t\t{codigo: this.OPERACION_PROMEDIO, nombre: this.OPERACION_PROMEDIO_DESC},\n\t\t{codigo: this.OPERACION_CONTAR, nombre: this.OPERACION_CONTAR_DESC},\n\t\t{codigo: this.OPERACION_NINGUNA, nombre: this.OPERACION_NINGUNA_DESC}\n\t]\n\t\n\tASCENDENTE='A';\n\tDESCENDENTE='D';\n\tASCENDENTE_DESC='Ascendente';\n\tDESCENDENTE_DESC='Descendente';\n\t\n\tMAPA_ORDENAMIENTO= [\n\t\t{codigo: this.ASCENDENTE, nombre: this.ASCENDENTE_DESC},\n\t\t{codigo: this.DESCENDENTE, nombre: this.DESCENDENTE_DESC}\n\t]\n\n\tTIPO_MARCADORTEXTO='T';\n\tTIPO_MARCADORSQL='S';\n\tTIPO_MARCADORTEXTO_DESC='Texto';\n\tTIPO_MARCADORSQL_DESC='Sentencia sql';\n\t\n\tMAPA_TIPO_MARCADOR= [\n\t\t{codigo: this.TIPO_MARCADORTEXTO, nombre: this.TIPO_MARCADORTEXTO_DESC},\n\t\t{codigo: this.TIPO_MARCADORSQL, nombre: this.TIPO_MARCADORSQL_DESC}\n\t]\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listaTipoColumna') { this.MAPA_TIPO_COLUMNAS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaOperacion') { this.MAPA_OPERACIONES_COLUMNARIO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaOperacionExcel') { this.MAPA_OPERACIONES_COLUMNARIO_EXCEL.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaOrdenamiento') { this.MAPA_ORDENAMIENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoMarcador') { this.MAPA_TIPO_MARCADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\treturn result;\n \t}\n\n}\n","import { HttpClient, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CargarArchivosService {\n\n constructor(private httpClient: HttpClient, private cookieService: CookieService) { }\n\n cargarArchivo(archivo: File, ruta: string, propiedad: string, codigoAplicacion: string): Observable<HttpEvent<{}>> {\n let url2 = this.cookieService.get('urlnucleo')\n let formData = new FormData();\n formData.append(\"archivo\", archivo);\n formData.append(\"ruta\", ruta);\n formData.append(\"propiedad\", propiedad);\n formData.append(\"aplicativo\", codigoAplicacion);\n\n const url = `${url2}/requieretoken/general/cargarArchivo`;\n const req = new HttpRequest('POST', url, formData, {\n reportProgress: true,\n });\n return this.httpClient.request(req);\n\n }\n\n descargarArchivo(ruta: string, propiedad?: string, aplicacion?: string): Observable<Blob> {\n let url2 = this.cookieService.get('urlnucleo')\n const url = `${url2}/requieretoken/general/obtenerRecursoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;\n console.log('URL: ' + url)\n return this.httpClient.get(url, {\n responseType: 'blob'\n })\n }\n\n eliminarArchivo(ruta: string, propiedad: string, aplicacion: string): Observable<Blob> {\n let url2 = this.cookieService.get('urlnucleo')\n const url = `${url2}/requieretoken/general/eliminarArchivoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;\n return this.httpClient.get(url, {\n responseType: 'blob'\n });\n }\n\n getPropiedad(peticion: any): Observable<any> {\n let url2 = this.cookieService.get('urlnucleo')\n return this.httpClient.post<any>(`${url2}/requieretoken/general/obtenerPropiedad`, peticion);\n }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dashboardPipe',\n standalone: true\n})\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DashboardPipe implements PipeTransform {\n\n\tGRAFICO = 'G';\n\tCOMPONENTE = 'C';\n\tTABLA = 'T';\n\tIFRAME = 'I';\n\t\n\tDESCGRAFICO = 'Gráfico';\n\tDESCCOMPONENTE = 'Componente';\n\tDESCTABLA = 'Tabla';\n\tDESCIFRAME = 'Iframe';\n\n\tMAPATIPO = [\n\t\t{ nombre: this.DESCGRAFICO, codigo: this.GRAFICO },\n\t\t{ nombre: this.DESCCOMPONENTE, codigo: this.COMPONENTE },\n\t\t{ nombre: this.DESCTABLA, codigo: this.TABLA },\n\t\t{ nombre: this.DESCIFRAME, codigo: this.IFRAME }\n\t];\n\n\tDIAGRAMA_BARRAS = 'B';\n\tDIAGRAMA_BARRAS_HOR = 'H';\n\tDIAGRAMA_TORTA = 'T';\n\tDIAGRAMA_AREA = 'A';\n\tDIAGRAMA_RADAR = 'R';\n\tDIAGRAMA_POLAR = 'P';\n\tDIAGRAMA_DONA = 'D';\n\tDIAGRAMA_BARRAS_STRING = 'Diagrama de barras Vertifical';\n\tDIAGRAMA_BARRAS_HOR_STRING = 'Diagrama de barras Horizontal';\n\tDIAGRAMA_TORTA_STRING = 'Diagrama de Torta';\n\tDIAGRAMA_AREA_STRING = 'Diagrama de Area';\n\tDIAGRAMA_RADAR_STRING = 'Diagrama de Radar';\n\tDIAGRAMA_POLAR_STRING = 'Diagrama de Polar';\n\tDIAGRAMA_DONA_STRING = 'Diagrama de Dona';\n\t\n\tTIPO_GRAFICO = [\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING},\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, nombre: this.DIAGRAMA_BARRAS_HOR_STRING},\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING},\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING},\n\t\t{ codigo: this.DIAGRAMA_POLAR, nombre: this.DIAGRAMA_POLAR_STRING},\n\t\t{ codigo: this.DIAGRAMA_DONA, nombre: this.DIAGRAMA_DONA_STRING},\n\t\t{ codigo: this.DIAGRAMA_RADAR, nombre: this.DIAGRAMA_RADAR_STRING},\n\t];\n\n\tBAR = 'bar';\n\tPIE = 'pie';\n\tLINE = 'line';\n\tPOLARAREA = 'polarArea';\n\tDOUGHNUT = 'doughnut';\n\tRADAR = 'radar';\n\n\tTIPO_GRAFICO_CHART = [\n\t\t{ codigo: this.DIAGRAMA_BARRAS, codigoChart: this.BAR},\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, codigoChart: this.BAR},\n\t\t{ codigo: this.DIAGRAMA_TORTA, codigoChart: this.PIE},\n\t\t{ codigo: this.DIAGRAMA_AREA, codigoChart: this.LINE },\n\t\t{ codigo: this.DIAGRAMA_POLAR, codigoChart: this.POLARAREA},\n\t\t{ codigo: this.DIAGRAMA_DONA, codigoChart: this.DOUGHNUT},\n\t\t{ codigo: this.DIAGRAMA_RADAR, codigoChart: this.RADAR},\n\t];\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\n\t\tif (args[0] == 'listaTipo') { this.MAPATIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipoGrafico') { this.TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\treturn result;\n\t}\n}","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\nimport { UtilsService } from '../../core/servicios/utils.service';\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\nimport { DashboardPipe } from '../pipes/dashboard.pipe';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n\n\n listProcedure(objetoFiltro: GeneralModel) {\n throw new Error('Method not implemented.');\n }\n\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService, private dashboardPipe: DashboardPipe) {\n this.handleError = this.handleError.bind(this);\n }\n\n private handleError(error: HttpErrorResponse) {\n if (error.status === 500) {\n //Llamado a interceptor\n this.errorInterceptor.showError(JSON.stringify(error.error));\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong.\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => new Error('Something bad happened; please try again later.'));\n }\n\n\n consultarDashboard(): Observable<any>{\n return this.httpClient.get(`${this.utilsService.obtenerUrlApi()}/requieretoken/dashboard/consultarDashboard`).pipe(\n catchError(this.handleError)\n );\n }\n\n cargarGrafica(columna) {\n console.log('cargar grafica')\n console.log(columna)\n switch (columna.accion) {\n case this.dashboardPipe.DIAGRAMA_BARRAS:\n columna = this.cargarDiagramaBarras(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_BARRAS_HOR:\n columna = this.cargarDiagramaBarrasHorizontal(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_TORTA:\n columna = this.cargarDiagramaBarrasTorta(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_AREA:\n columna = this.cargarDiagramaArea(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_POLAR:\n columna = this.cargarDiagramaPolar(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_DONA:\n columna = this.cargarDiagramaDona(columna);\n break;\n case this.dashboardPipe.DIAGRAMA_RADAR:\n columna = this.cargarDiagramaRadar(columna);\n break;\n default:\n break;\n }\n return columna;\n }\n\n cargarDiagramaBarras(columna) {\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: columna.datosGrafica.datasets\n };\n columna.datosGrafica.options = {\n maintainAspectRatio: false,\n aspectRatio: 0.8,\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n cargarDiagramaBarrasHorizontal(columna) {\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n console.log(columna)\n\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: columna.datosGrafica.datasets\n };\n columna.datosGrafica.options = {\n indexAxis: 'y',\n maintainAspectRatio: false,\n aspectRatio: 0.8,\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n cargarDiagramaBarrasTorta(columna) {\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: [\n {\n data: columna.datosGrafica.data,\n backgroundColor: columna.datosGrafica.backgroundColor\n }\n ]\n };\n columna.datosGrafica.options = {\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n usePointStyle: true,\n color: \"#2980B9\",\n }\n }\n }\n };\n return columna;\n }\n \n cargarDiagramaArea(columna) {\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: columna.datosGrafica.datasets\n };\n columna.datosGrafica.options = {\n stacked: false,\n maintainAspectRatio: false,\n aspectRatio: 0.6,\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n cargarDiagramaPolar(columna) {\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: [\n {\n data: columna.datosGrafica.data,\n backgroundColor: columna.datosGrafica.backgroundColor\n }\n ]\n };\n columna.datosGrafica.options = {\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n cargarDiagramaDona(columna) {\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: [\n {\n data: columna.datosGrafica.data,\n backgroundColor: columna.datosGrafica.backgroundColor\n }\n ]\n };\n columna.datosGrafica.options = {\n cutout: '60%',\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n cargarDiagramaRadar(columna) {\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\n columna.datosGrafica.data = {\n labels: columna.datosGrafica.labels,\n datasets: columna.datosGrafica.datasets\n };\n columna.datosGrafica.options = {\n plugins: {\n title: {\n display: true,\n text: columna.datosGrafica.title\n },\n legend: {\n labels: {\n color: \"#2980B9\",\n }\n }\n },\n };\n return columna;\n }\n\n}","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { Subscription } from 'rxjs';\n\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\nimport { ReporteColumnarioPipe } from '../../../pipes/reporte-columnario.pipe';\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\nimport { ReporteMarcadorModel } from '../../../../seguridad/modelos/ReporteMarcador';\nimport { ReporteTablaModel } from '../../../../seguridad/modelos/ReporteTabla';\nimport { ReporteColumnarioModel } from '../../../../seguridad/modelos/ReporteColumnario';\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\nimport { ReporteColumnarioMarcadorModel } from '../../../../seguridad/modelos/ReporteColumnarioMarcador';\nimport { ReporteBandaModel } from '../../../../seguridad/modelos/ReporteBanda';\nimport { ReporteSoporteModel } from '../../../../seguridad/modelos/ReporteSoporte';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { PickListModule } from 'primeng/picklist';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { AccordionModule } from 'primeng/accordion';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DashboardService } from '../../../services/dashboard.service';\nimport { ChartModule } from 'primeng/chart';\nimport { DashboardPipe } from '../../../pipes/dashboard.pipe';\nimport { ColorPickerModule } from 'primeng/colorpicker';\n\n@Component({\n selector: 'detalle-tipo-reporte',\n imports: [TranslateModule, TableModule, TabViewModule, InputHelperSeleccionPlantillaComponent, ReporteColumnarioPipe, ReporteFuentePipe, DropdownModule, FormsModule, ReactiveFormsModule, CommonModule, ButtonModule, PickListModule, FieldsetModule, AccordionModule, InputTextModule, InputTextareaModule, FloatLabelModule, InputNumberModule, FieldsetModule, ChartModule, ColorPickerModule], \n standalone: true,\n providers: [MessageService],\n templateUrl: './detalle-tipo-reporte.component.html',\n styleUrls: ['./detalle-tipo-reporte.component.scss']\n})\nexport class DetalleTipoReporteComponent implements OnInit, OnDestroy {\n\n public listaTipoCifrado: any[] = [];\n //tab excel\n public listaExcel: ReporteColumnaModel[] = [];\n public listaNoExcel: ReporteColumnaModel[] = [];\n public listaMarcadorExcel: ReporteMarcadorModel[] = [];\n public reporteMarcadorExcel: ReporteMarcadorModel = new ReporteMarcadorModel;\n public formMarcadorExcel: FormGroup;\n public verNuevoMarcadorExcel: boolean = false;\n public esMarcador: boolean = false;\n public esImagenFija: boolean = false;\n\n //tab plantillas\n public listaColumnas: any[] = [];\n public listaMarcadores: ReporteMarcadorModel[] = [];\n public listaTipoMarcador;\n public listaTipoGrafico_JFC;\n public listaGrafico;\n public listaGraficoSencillo;\n public listaAlineacion;\n public listaOperaciones;\n public reporteMarcador: ReporteMarcadorModel = new ReporteMarcadorModel;\n public formMarcador: FormGroup;\n public origenMarcador: string = null;\n public verNuevoMarcador: boolean = false;\n public listaCamposMarcador: ReporteTablaModel[] = [];\n public campoMarcadorInsertar: ReporteTablaModel = new ReporteTablaModel;\n public listaSoportes: ReporteSoporteModel[] = [];\n public soporteIngresar: ReporteSoporteModel = new ReporteSoporteModel;\n public clickGuardarMarcadorCampo: boolean = false\n public clickGuardarMarcadorExcel: boolean = false;\n public verReporteMarcadorDetalle: boolean = false;\n public verSoporteArchivoDetalle: boolean = false;\n public clickGuardarSoporteArchivo: boolean = false;\n public habilitaCampo: boolean = false;\n\n public bloquearCampoMarcador: boolean = false;\n public bloquearSoporte: boolean = false;\n\n\n //reporte dinamico\n public listaTipoBanda = [\n {key: 'banda1', value: 'Banda 1'},\n {key: 'banda2', value: 'Banda 2'},\n {key: 'banda3', value: 'Banda 3'},\n {key: 'banda4', value: 'Banda 4'},\n {key: 'banda5', value: 'Banda 5'},\n {key: 'detalle', value: 'Detalle'},\n {key: 'summary', value: 'Resumen'},\n ]\n public existeJasper: boolean = false;\n public bandaSeleccionada = {key: null, value: null};\n public nuevaBanda: boolean = false;\n public verTabBanda: boolean = false;\n public nuevoReporteMarcadorDinamico: boolean = false;\n public reporteMarcadorDinamico: ReporteMarcadorModel = new ReporteMarcadorModel;\n public reporteBanda: ReporteBandaModel = new ReporteBandaModel;\n public formReporteDinamico: FormGroup;\n public listaMarcadorDinamico: ReporteMarcadorModel[] = []\n public listaTipoCampoJasperDinamico = [\n {key: 'C', value: 'Calculo'},\n {key: 'T', value: 'Columna'},\n ]\n public listaTipoDatoSintaxis = [\n {key: 'F', value: 'Fecha'},\n {key: 'N', value: 'Numero'},\n {key: 'T', value: 'Texto'},\n ]\n\n //reporte tabla\n public listaTabla: ReporteColumnaModel[] = [];\n public listaNoTabla: ReporteColumnaModel[] = [];\n \n\n //reporte texto\n public listaSeparadores;\n public clickGuardarReporteTexto: boolean = false;\n public listaMarcadoresTexto: ReporteMarcadorModel[] = [];\n public marcadorTexto: ReporteMarcadorModel = new ReporteMarcadorModel()\n public verNuevoMarcadorTexto: boolean = false;\n public listaTipoMarcadorTexto;\n public clickGuardarMarcadorTexto: boolean = false\n\n //reporte XML\n public listaTipoMarcadorXML;\n public listaXML: ReporteMarcadorModel[] = []\n public marcadorXML: ReporteMarcadorModel = new ReporteMarcadorModel\n public clickGuardarMarcadorXML: boolean = false;\n public verNuevoMarcadorXML: boolean = false;\n public listaCamposMarcadorXML: ReporteTablaModel[] = [];\n public campoMarcadorInsertarXML: ReporteTablaModel = new ReporteTablaModel;\n public verReporteMarcadorDetalleXML: boolean = false;\n public clickGuardarMarcadorCampoXML: boolean = false;\n\n //reporte columnario\n public listaReporteColumnario: ReporteColumnarioModel[] = [];\n public verNuevoReporteColumnario: boolean = false;\n public columnaBasica: ReporteColumnarioModel;\n public clickGuardarReporteColumnario: boolean = false;\n public listaTipoColumnas;\n public listaOperacionesColumnario;\n public listaOperacionesExcelColumnario;\n public listaOrdenamiento;\n\n public verNuevoColumnaAdicional: boolean = false;\n public clickGuardarColumnaAdicional: boolean = false;\n public columnasAdicionales: ReporteColumnarioModel[] = [];\n public columnaAdicional: ReporteColumnarioModel;\n\n public listaTipoMarcadorColumnario;\n public verNuevoMarcadorColumnario: boolean = false;\n public clickGuardarMarcadorColumnario: boolean = false;\n public marcadoresColumnario: ReporteColumnarioMarcadorModel[] = [];\n public marcadorColumnario: ReporteColumnarioMarcadorModel;\n\n //grafica\n public listaTipoGrafico;\n public paginadorColumnas: ReporteColumnaModel[] = [];\n public paginadorColoresGrafica: ReporteBandaModel[] = [];\n public colorCategoria: ReporteBandaModel = new ReporteBandaModel();\n public verColorCategoriaDetalle: boolean = false;\n public clickGuardarColorCategoria: boolean = false;\n public grafica;\n public tipoGrafica: \"bar\" | \"line\" | \"scatter\" | \"bubble\" | \"pie\" | \"doughnut\" | \"polarArea\" | \"radar\";\n\n public reporteFuente : ReporteFuenteModel = new ReporteFuenteModel();\n public llaveEmpresa: string;\n public listaSiNo;\n @Input() public llaveReporte : string;\n @Input() public aplicacion : string;\n @Input() public listaFuentes: any[] = [];\n\n _subsciprtions: Subscription[] = [];\n\n constructor(private formBuilder: FormBuilder,\n private notificacionesBusService: ToastService,\n private generalService: GeneralService,\n private generalPipe: GeneralPipe,\n private authService: AuthService,\n private reporteFuentePipe: ReporteFuentePipe,\n private confirmationService: ConfirmationService,\n private cargarArchivo: CargarArchivosService,\n private encriptadorArchivo: EncriptadoBasicoService,\n public utilsService: UtilsService,\n private translateService: TranslateService,\n private fuentePipe: FuentePipe,\n private reporteColumnarioPipe: ReporteColumnarioPipe,\n private reporteService: EjecucionReporteService,\n private dashboardService: DashboardService,\n private dashboardPipe: DashboardPipe,) {\n }\n\n ngOnInit(): void {\n this.aplicacion = this.authService.getTokenKey('aplicacion')\n this.llaveEmpresa = this.authService.getTokenKey('llaveEmpresa');\n this.listaSiNo = this.generalPipe.LISTA_SINO;\n this.listaTipoMarcadorColumnario = this.reporteColumnarioPipe.MAPA_TIPO_MARCADOR;\n this.listaTipoColumnas = this.reporteColumnarioPipe.MAPA_TIPO_COLUMNAS;\n this.listaOperacionesColumnario = this.reporteColumnarioPipe.MAPA_OPERACIONES_COLUMNARIO;\n this.listaOperacionesExcelColumnario = this.reporteColumnarioPipe.MAPA_OPERACIONES_COLUMNARIO_EXCEL;\n this.listaOrdenamiento = this.reporteColumnarioPipe.MAPA_ORDENAMIENTO;\n this.listaSeparadores = this.fuentePipe.LISTA_SEPARADORES;\n this.listaTipoMarcador = this.reporteFuentePipe.LISTA_MARCADORES;\n this.listaTipoGrafico_JFC = this.reporteFuentePipe.LISTA_TIPO_GRAFICO_JFC;\n this.listaGrafico = this.reporteFuentePipe.LISTA_RECURSO_GRAFICA;\n this.listaGraficoSencillo = this.reporteFuentePipe.RECURSO_GRAFICA;\n this.listaAlineacion = this.reporteFuentePipe.LISTA_ALINEACION;\n this.listaOperaciones = this.generalPipe.MAPAOPERACIONES;\n this.listaTipoMarcadorTexto = this.reporteFuentePipe.TIPOMARCADORESTEXTO;\n this.listaTipoMarcadorXML = this.reporteFuentePipe.LISTA_MARCADORES_XML;\n this.listaTipoGrafico = this.reporteFuentePipe.LISTA_TIPO_GRAFICO;\n this.cargar();\n this.cargarFormMarcadorExcel();\n this.cargarFormMarcador();\n this.cargarFormDinamico();\n this.agregarSubscripciones();\n //this.cargarListas();\n\n }\n\n ngOnDestroy(){\n this._subsciprtions.forEach((sub) => {\n sub.unsubscribe();\n });\n }\n\n agregarSubscripciones() {\n this._subsciprtions.push(\n this.formMarcadorExcel.get('tipo').valueChanges.subscribe((value) => {\n const textoRegistroControl = this.formMarcadorExcel.get('textoRegistro');\n const origenControl = this.formMarcadorExcel.get('origen');\n if (!value){\n this.esImagenFija = true;\n this.esMarcador = true;\n origenControl.clearValidators();\n textoRegistroControl.clearValidators();\n } else if (['MA'].includes(value)) {\n this.esImagenFija = false;\n this.esMarcador = true;\n textoRegistroControl.setValidators(Validators.required);\n origenControl.clearValidators();\n } else if (['IF'].includes(value)) {\n this.esImagenFija = true;\n this.esMarcador = false;\n origenControl.setValidators(Validators.required);\n textoRegistroControl.setValidators(Validators.required);\n }\n textoRegistroControl.updateValueAndValidity();\n origenControl.updateValueAndValidity();\n })\n );\n\n this._subsciprtions.push(\n this.formMarcador.get('tipo').valueChanges.subscribe((value) => {\n console.log('entra a tipo: ')\n console.log(value)\n this.formMarcador.clearValidators();\n this.reporteMarcador.tipo = value;\n if (this.reporteMarcador.tipo == this.reporteFuentePipe.MARCADORTABLA){\n // this.reporteMarcador.tieneSql = 'N'\n // this.formMarcador.get('tieneSql').setValue('N')\n }\n this.formMarcador.updateValueAndValidity();\n })\n );\n\n this._subsciprtions.push(\n this.formMarcador.get('origen').valueChanges.subscribe((value) => {\n this.formMarcador.clearValidators();\n this.reporteMarcador.origen = value;\n this.formMarcador.updateValueAndValidity();\n })\n );\n\n this._subsciprtions.push(\n this.formMarcador.get('tieneSql').valueChanges.subscribe((value) => {\n console.log('entra a tieneSql: ')\n console.log(value)\n this.formMarcador.clearValidators();\n this.reporteMarcador.tieneSql = value;\n this.formMarcador.updateValueAndValidity();\n })\n );\n\n this._subsciprtions.push(\n this.formMarcador.get('tipoGrafico').valueChanges.subscribe((value) => {\n this.formMarcador.clearValidators();\n this.reporteMarcador.tipoGrafico = value;\n this.formMarcador.updateValueAndValidity();\n })\n );\n\n this._subsciprtions.push(\n this.formMarcadorExcel.get('origen').valueChanges.subscribe((value) => {\n if (['U'].includes(value)) {\n this.reporteMarcadorExcel.origen = 'U'\n } else if (['C'].includes(value)) {\n this.reporteMarcadorExcel.origen = 'C' \n }\n })\n );\n\n this._subsciprtions.push(\n this.formReporteDinamico.get('tipoCampo').valueChanges.subscribe((value) => {\n this.reporteMarcadorDinamico.tipoCampo = value;\n const resultadoXControl = this.formReporteDinamico.get('resultadoX');\n const resultadoYControl = this.formReporteDinamico.get('resultadoY'); \n if (this.bandaSeleccionada.key != 'detalle') {\n resultadoXControl.setValidators(Validators.required);\n resultadoYControl.setValidators(Validators.required);\n } else {\n resultadoXControl.clearValidators();\n resultadoYControl.clearValidators();\n } \n \n const marcadorControl = this.formReporteDinamico.get('marcador');\n const filtroControl = this.formReporteDinamico.get('filtro');\n const tipoDatoControl = this.formReporteDinamico.get('tipoDato');\n if (this.reporteMarcadorDinamico.tipoCampo == 'T') {\n marcadorControl.setValidators(Validators.required);\n filtroControl.clearValidators();\n tipoDatoControl.clearValidators();\n } else {\n marcadorControl.clearValidators();\n filtroControl.setValidators(Validators.required);\n tipoDatoControl.setValidators(Validators.required);\n }\n marcadorControl.updateValueAndValidity();\n filtroControl.updateValueAndValidity();\n tipoDatoControl.updateValueAndValidity();\n resultadoXControl.updateValueAndValidity();\n resultadoYControl.updateValueAndValidity();\n }),\n this.formReporteDinamico.get('tipoDato').valueChanges.subscribe((value) => {\n this.reporteMarcadorDinamico.tipoDato = value\n })\n );\n }\n\n cambiarTab(event){\n switch (event.index) {\n case 0:\n this.cargar();\n this.cargarListasExcel();\n break;\n case 1:\n this.cargarListaMarcadores();\n if (this.reporteFuente.unicoArchivo == 'N'){\n this.cargarListaSoportes();\n }\n break;\n case 2:\n this.validarExisteJasper();\n break;\n case 3:\n this.cargarListaMarcadoresTexto();\n break;\n case 4:\n this.cargarListasTabla();\n break;\n case 5:\n this.cargarListaXML();\n break;\n case 6:\n this.cargarReporteColumnario();\n break;\n case 7:\n this.cargarGraficasColumnas();\n break;\n default:\n break;\n }\n }\n\n cargarListasTabla(){\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {buscarOrdenTabla: 'S', ordenarTabla: 'S', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaTabla = data;\n })\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {buscarOrdenTabla: 'N', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaNoTabla = data;\n })\n }\n\n cargarListaMarcadores(){\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'P', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\n this.listaMarcadores = data;\n }) \n }\n\n cargarListasExcel(){\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {ordenExcel: 'S', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaExcel = data;\n })\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {ordenExcel: 'N', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaNoExcel = data;\n })\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\n this.listaMarcadorExcel = data;\n })\n }\n\n cargarListaColumnas(){\n this.listaColumnas = [];\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.listaColumnas = data;\n })\n }\n\n cargarListas(){\n this.listaTipoCifrado = [];\n this.generalService.queryForList(new GeneralModel('EncripcionArchivoDTO', null, false, {})).subscribe(data => {\n this.listaTipoCifrado = data;\n })\n this.cargarListaColumnas();\n }\n\n cargarFormMarcadorExcel(){\n this.formMarcadorExcel = this.formBuilder.group({\n descripcion: new FormControl(this.reporteMarcadorExcel.descripcion, [Validators.required, Validators.maxLength(100)]),\n marcador: new FormControl(this.reporteMarcadorExcel.marcador, [Validators.required, Validators.maxLength(50)]),\n tipo: new FormControl(this.reporteMarcadorExcel.tipo, [Validators.required]),\n textoRegistro: new FormControl(this.reporteMarcadorExcel.textoRegistro),\n origen: new FormControl(this.reporteMarcadorExcel.origen),\n //campos bd\n llave: new FormControl(this.reporteMarcadorExcel.llave),\n reporteFuente: new FormControl(this.reporteFuente.llave),\n tipoReporte: new FormControl('E') \n })\n }\n\n cargarFormMarcador(){\n this.formMarcador = this.formBuilder.group({\n descripcion: new FormControl(this.reporteMarcador.descripcion, [Validators.required, Validators.maxLength(100)]),\n tipo: new FormControl(this.reporteMarcador.tipo, [Validators.required]),\n marcador: new FormControl(this.reporteMarcador.marcador, [Validators.maxLength(50)]),\n tabla: new FormControl(this.reporteMarcador.tabla),\n origen: new FormControl(this.reporteMarcador.origen),\n textoRegistro: new FormControl(this.reporteMarcador.textoRegistro),\n reporteColumna: new FormControl(this.reporteMarcador.reporteColumna),\n formato: new FormControl(this.reporteMarcador.formato),\n ancho: new FormControl(this.reporteMarcador.ancho),\n alto: new FormControl(this.reporteMarcador.alto),\n grupo1: new FormControl(this.reporteMarcador.grupo1),\n grupo2: new FormControl(this.reporteMarcador.grupo2),\n grupo3: new FormControl(this.reporteMarcador.grupo3),\n finalGrupo: new FormControl(this.reporteMarcador.finalGrupo),\n tieneSql: new FormControl(this.reporteMarcador.tieneSql),\n query: new FormControl(this.reporteMarcador.query),\n fuente: new FormControl(this.reporteMarcador.fuente),\n tipoGrafico: new FormControl(this.reporteMarcador.tipoGrafico),\n marcadorGrafico: new FormControl(this.reporteMarcador.marcadorGrafico),\n titulox: new FormControl(this.reporteMarcador.titulox),\n tituloy: new FormControl(this.reporteMarcador.tituloy),\n banda: new FormControl(this.reporteMarcador.banda),\n anchoJasperLabel: new FormControl(this.reporteMarcador.anchoJasperLabel),\n filtro: new FormControl(this.reporteMarcador.filtro),\n //campos bd\n llave: new FormControl(this.reporteMarcador.llave),\n reporteFuente: new FormControl(this.reporteFuente.llave),\n tipoReporte: new FormControl('N') \n })\n }\n\n cargarFormDinamico(){\n this.formReporteDinamico = this.formBuilder.group({\n tipoCampo: new FormControl(this.reporteMarcadorDinamico.tipoCampo, [Validators.required]),\n tipoDato: new FormControl(this.reporteMarcadorDinamico.tipoDato),\n filtro: new FormControl(this.reporteMarcadorDinamico.filtro),\n marcador: new FormControl(this.reporteMarcadorDinamico.marcador),\n alto: new FormControl(this.reporteMarcadorDinamico.alto, [Validators.required]),\n formato: new FormControl(this.reporteMarcadorDinamico.formato),\n descripcion: new FormControl(this.reporteMarcadorDinamico.descripcion),\n ancho: new FormControl(this.reporteMarcadorDinamico.ancho, [Validators.required]),\n anchoJasperLabel: new FormControl(this.reporteMarcadorDinamico.anchoJasperLabel),\n resultadoX: new FormControl(this.reporteMarcadorDinamico.resultadoX ),\n resultadoY: new FormControl(this.reporteMarcadorDinamico.resultadoY ),\n titulox: new FormControl(this.reporteMarcadorDinamico.titulox),\n tituloy: new FormControl(this.reporteMarcadorDinamico.tituloy),\n tipoReporte: new FormControl(this.reporteMarcadorDinamico.tipoReporte, [Validators.required]),\n tipoGrafico: new FormControl(this.reporteMarcadorDinamico.tipoGrafico), \n operacion: new FormControl(this.reporteMarcadorDinamico.operacion), \n //campos tabla\n origen: new FormControl('D'),\n banda: new FormControl(this.bandaSeleccionada.key),\n reporteFuente: new FormControl(this.reporteFuente.llave),\n llave: new FormControl(this.reporteMarcadorDinamico.llave),\n\n })\n }\n\n cargar(){\n this.existeJasper = false;\n if (this.llaveReporte){\n this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, {llave: this.llaveReporte})).subscribe(data => {\n this.reporteFuente = data;\n this.cargarListasExcel();\n this.cargarListas();\n })\n }\n }\n\n public actualizar(){\n if (this.reporteFuente.llave){\n this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporteFuente)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n if (this.reporteFuente.unicoArchivo == 'N'){\n }\n });\n } else {\n this.reporteService.guardarReporte(this.reporteFuente).subscribe(data => {\n this.reporteFuente = data;\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n });\n }\n }\n\n obtenerArchivo(event){\n this.reporteFuente.archivoTodo = event.data\n }\n\n obtenerArchivoMarcadorExcel(event){\n this.reporteMarcador.textoRegistro = event.data\n }\n\n obtenerArchivoMarcador(event){\n this.reporteMarcador.textoRegistro = event.data\n }\n\n obtenerArchivoPlanilla(event){\n this.reporteFuente.archivoIndividual = event.data\n }\n\n obtenerArchivoSoporte(event, soporte){\n soporte.archivoIndividual = event.data\n }\n\n obtenerArchivoColumnario(event){\n this.reporteFuente.archivoExcelColumnario = event.data\n }\n\n\n moverAAsociado(event){\n this.reporteService.actualizarReporteColumnaOrden({\n listaAsociado: this.listaExcel,\n excel: true\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\n }\n\n moverADesasociado(event){\n this.reporteService.actualizarReporteColumnaOrden({\n listaDesasociado: this.listaNoExcel,\n excel: true\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\n }\n\n moverAAsociadoTabla(event){\n this.reporteService.actualizarReporteColumnaOrden({\n listaAsociado: this.listaTabla,\n excel: false\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\n }\n\n moverADesasociadoTabla(event){\n this.reporteService.actualizarReporteColumnaOrden({\n listaDesasociado: this.listaNoTabla,\n excel: false\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\n }\n\n reorderTabla(event){\n this.reporteService.actualizarReporteColumnaOrden({\n listaAsociado: this.listaTabla,\n excel: false\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\n }\n\n verDetalleMarcadorExcel(event){\n this.formMarcadorExcel.reset();\n this.verNuevoMarcadorExcel = true;\n this.reporteMarcadorExcel = event.data;\n this.formMarcadorExcel.patchValue(this.reporteMarcadorExcel)\n }\n\n nuevoMarcadorExcel(){\n this.formMarcadorExcel.reset();\n this.verNuevoMarcadorExcel = true;\n this.esMarcador = false;\n this.esImagenFija = false;\n this.reporteMarcadorExcel = new ReporteMarcadorModel();\n this.formMarcadorExcel.patchValue(this.reporteMarcadorExcel)\n this.formMarcadorExcel.get('tipo').setValue(null)\n }\n\n guardarMarcadorExcel(){\n this.clickGuardarMarcadorExcel = true;\n if (this.formMarcadorExcel.valid){\n let llaveRegistro = this.formMarcadorExcel.get('llave').value\n this.formMarcadorExcel.get('reporteFuente').setValue(this.reporteFuente.llave)\n this.formMarcadorExcel.get('tipoReporte').setValue('E')\n if (llaveRegistro){\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcadorExcel.value)).subscribe( data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\n this.listaMarcadorExcel = data;\n })\n })\n } else {\n this.formMarcadorExcel.get('llave').setValue(this.utilsService.generarLlave())\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcadorExcel.value)).subscribe( data => { \n this.verNuevoMarcadorExcel = false \n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\n this.listaMarcadorExcel = data;\n })\n })\n }\n this.clickGuardarMarcadorExcel = false;\n } else {\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n Object.keys(this.formMarcadorExcel.controls).forEach((key) => {\n if (this.formMarcadorExcel.get(key).errors) {\n this.formMarcadorExcel.get(key).markAsDirty();\n }\n });\n } \n }\n\n eliminarMarcadorExcel(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorExcel)).subscribe(data =>{\n this.formMarcadorExcel.reset();\n this.verNuevoMarcadorExcel = false;\n this.reporteMarcadorExcel = new ReporteMarcadorModel();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\n this.listaMarcadorExcel = data;\n })\n })\n }\n })\n \n }\n\n //plantilla\n\n cargarListaCampoMarcador() {\n this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.reporteMarcador.llave})).subscribe(data => {\n this.listaCamposMarcador = data;\n })\n }\n\n async cargarListaCampoMarcadorAsync() {\n this.bloquearCampoMarcador = false;\n this.listaCamposMarcador = await this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.reporteMarcador.llave})).toPromise();\n }\n\n verDetalleMarcador(event){\n //this.formMarcador.reset();\n this.verNuevoMarcador = true;\n this.reporteMarcador = event.data;\n this.formMarcador.patchValue(this.reporteMarcador)\n this.formMarcador.get('tipo').setValue(this.reporteMarcador.tipo)\n \n this.cargarListaCampoMarcador();\n }\n\n nuevoMarcador(){\n //this.formMarcador.reset();\n this.formMarcador.reset({}, { emitEvent: false });\n\n this.verNuevoMarcador = true;\n this.reporteMarcador = new ReporteMarcadorModel();\n this.formMarcador.patchValue(this.reporteMarcador)\n this.formMarcador.get('tipoReporte').setValue('P')\n //this.formMarcador.get('tipo').setValue(null)\n }\n\n guardarMarcador(){\n if (this.formMarcador.valid){\n let llaveRegistro = this.formMarcador.get('llave').value\n this.formMarcador.get('reporteFuente').setValue(this.reporteFuente.llave)\n //this.formMarcador.get('tipoReporte').setValue('N')\n if (llaveRegistro){\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcador.value)).subscribe( data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.cargarListaMarcadores();\n if (this.reporteFuente.unicoArchivo == 'N'){\n this.cargarListaSoportes();\n }\n })\n } else {\n this.formMarcador.get('llave').setValue(this.utilsService.generarLlave())\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcador.value)).subscribe( data => { \n this.verNuevoMarcador = false;\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n this.cargarListaMarcadores();\n if (this.reporteFuente.unicoArchivo == 'N'){\n this.cargarListaSoportes();\n }\n })\n }\n } else {\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n Object.keys(this.formMarcador.controls).forEach((key) => {\n if (this.formMarcador.get(key).errors) {\n this.formMarcador.get(key).markAsDirty();\n }\n });\n } \n }\n\n eliminarMarcador(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => { \n this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcador)).subscribe(data =>{\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n this.formMarcador.reset();\n this.verNuevoMarcador = false;\n this.reporteMarcador = new ReporteMarcadorModel();\n this.cargarListaMarcadores();\n })\n }\n })\n }\n\n eliminarCampoMarcador(event, objeto){ \n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteTablaDTO', null, false, objeto)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.cargarListaCampoMarcador();\n })\n }\n })\n }\n\n nuevoCampoTabla(){\n this.verReporteMarcadorDetalle = true;\n this.bloquearCampoMarcador = true;\n this.campoMarcadorInsertar = new ReporteTablaModel();\n this.campoMarcadorInsertar.reporteMarcador = this.reporteMarcador.llave\n }\n\n validarCampoMarcador(campoMarcador){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.columna)\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.campoFuente)\n return validador;\n }\n\n editarCampoMarcador() {\n this.bloquearCampoMarcador = true;\n }\n\n agregarCampoMarcador(campoMarcador){\n this.clickGuardarMarcadorCampo = true;\n if (!this.validarCampoMarcador(campoMarcador)){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n campoMarcador.reporteMarcador = this.reporteMarcador.llave;\n if ('I' == campoMarcador.tipo){\n if (!campoMarcador.ancho || campoMarcador.ancho == 0){\n campoMarcador.ancho = 10;\n }\n if (!campoMarcador.alto || campoMarcador.alto == 0){\n campoMarcador.alto = 10;\n }\n }\n if (['G'].includes(campoMarcador.tipo)){\n campoMarcador.columna = 0;\n }\n if (campoMarcador.llave){\n this.generalService.update(new GeneralModel('ReporteTablaDTO', null, false, campoMarcador)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.clickGuardarMarcadorCampo = false;\n campoMarcador = new ReporteTablaModel;\n this.bloquearCampoMarcador = false;\n this.cargarListaCampoMarcador();\n })\n } else {\n campoMarcador.llave = this.utilsService.generarLlave();\n this.generalService.crearRegistro(new GeneralModel('ReporteTablaDTO', null, false, campoMarcador)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n this.clickGuardarMarcadorCampo = false;\n campoMarcador = new ReporteTablaModel;\n this.verReporteMarcadorDetalle = false;\n this.campoMarcadorInsertar = new ReporteTablaModel();\n this.bloquearCampoMarcador = false;\n this.cargarListaCampoMarcador();\n })\n }\n }\n\n cargarListaSoportes(){\n this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {reporteFuente: this.reporteFuente.llave, tipo: 'S'})).subscribe(data => {\n this.listaSoportes = data;\n })\n }\n\n async cargarListaSoportesAsync(){\n this.listaSoportes = await this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {reporteFuente: this.reporteFuente.llave, tipo: 'S'})).toPromise()\n }\n\n nuevoSoporte(){\n this.soporteIngresar = new ReporteSoporteModel();\n this.verSoporteArchivoDetalle = true;\n this.habilitaCampo = true;\n }\n\n cancelarSoporte() {\n this.soporteIngresar = new ReporteSoporteModel();\n this.verSoporteArchivoDetalle = false;\n this.habilitaCampo = false;\n }\n\n validarSoporte(soporte){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(soporte.descripcion)\n validador = validador && this.utilsService.validarCampoObligatorio(soporte.archivoIndividual)\n return validador;\n }\n\n agregarSoporte(soporte){\n this.clickGuardarSoporteArchivo = true;\n if (!this.validarSoporte(soporte)){\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n return;\n }\n if (!soporte.llaveTabla){\n soporte.tipo = 'S'\n soporte.reporteFuente = this.reporteFuente.llave\n this.generalService.crearRegistro(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n soporte = new ReporteSoporteModel;\n this.cargarListaSoportes();\n this.verSoporteArchivoDetalle = false;\n this.clickGuardarSoporteArchivo = false;\n })\n } else {\n this.generalService.update(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.cargarListaSoportes();\n this.verSoporteArchivoDetalle = false;\n this.clickGuardarSoporteArchivo = false;\n soporte = new ReporteSoporteModel;\n })\n }\n this.habilitaCampo = false;\n }\n\n eliminarSoporte(event, soporte){\n this.habilitaCampo = true;\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => { \n this.generalService.delete(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.cargarListaSoportes();\n this.habilitaCampo = false;\n })\n }\n })\n }\n\n iniciarEdicion() {\n this.habilitaCampo = true;\n }\n\n async cancelarEdicion() { \n this.cargarListaSoportesAsync(); \n this.habilitaCampo = false;\n \n }\n \n //Reporte Dinamico\n\n generarJasper(){\n this.reporteService.generarJasper(this.reporteFuente.llave, 'compensacion/ReportesBase') .subscribe({\n next: (data) => {\n this.notificacionesBusService.showSuccess('Se ha generado el jasper exitosamente')\n this.validarExisteJasper();\n }\n }); \n }\n\n\n descargarJasper() {\n\n let propiedad = 'ruta_plantillas';\n //Ruta archivo\n this.aplicacion = this.authService.getTokenKey('aplicacion')\n this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporteFuente.llave + '.jrxml'), propiedad, this.aplicacion).subscribe({\n next: blob => {\n const a = document.createElement('a')\n const objectUrl = URL.createObjectURL(blob)\n a.href = objectUrl\n a.download = this.reporteFuente.llave + '.jrxml' //documento.archivoorigen;\n a.click();\n URL.revokeObjectURL(objectUrl);\n }\n });\n }\n\n nuevoMarcadorDinamico(){\n this.reporteMarcadorDinamico = new ReporteMarcadorModel\n this.reporteMarcadorDinamico.origen = 'D'\n this.reporteMarcadorDinamico.reporteFuente = this.reporteFuente.llave\n this.reporteMarcadorDinamico.banda = this.bandaSeleccionada.key\n this.formReporteDinamico.reset();\n this.formReporteDinamico.patchValue(this.reporteMarcadorDinamico)\n this.nuevoReporteMarcadorDinamico = true\n }\n\n verMarcadorDinamico(event){\n this.reporteMarcadorDinamico = event.data;\n this.formReporteDinamico.patchValue(this.reporteMarcadorDinamico)\n this.nuevoReporteMarcadorDinamico = true;\n }\n\n async verBanda(event){\n this.verTabBanda = false;\n this.bandaSeleccionada = event.data;\n this.reporteMarcadorDinamico = new ReporteMarcadorModel;\n this.nuevoReporteMarcadorDinamico = false;\n this.nuevaBanda = false;\n if (['detalle','summary'].includes(this.bandaSeleccionada.key)){\n await this.cargarListaMarcadorDinamico();\n } else {\n this.reporteBanda = await this.generalService.queryForObject(new GeneralModel('ReporteBandaDTO', null, false, {reporteFuente: this.reporteFuente.llave, banda: this.bandaSeleccionada.key})).toPromise();\n if (!this.reporteBanda) {\n this.nuevaBanda = true;\n if (['detalle','summary'].includes(this.bandaSeleccionada.key)){\n this.nuevaBanda = false;\n }\n this.reporteBanda = new ReporteBandaModel;\n this.reporteBanda.totales = 'S'\n } else {\n await this.cargarListaMarcadorDinamico()\n }\n }\n await this.sleep(25)\n this.verTabBanda = true;\n }\n\n async cargarListaMarcadorDinamico(){\n this.listaMarcadorDinamico = await this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\n reporteFuente: this.reporteFuente.llave, \n banda: this.bandaSeleccionada.key,\n ordenDinamico: 'S',\n origen: 'D'\n })).toPromise();\n }\n\n async guardarCaracteristicaBanda(){\n if(this.nuevaBanda) {\n this.reporteBanda.reporteFuente = this.reporteFuente.llave;\n this.reporteBanda.banda = this.bandaSeleccionada.key;\n this.reporteBanda = await this.generalService.crearRegistro(new GeneralModel('ReporteBandaDTO', null, false, this.reporteBanda)).toPromise();\n }else {\n await this.generalService.update(new GeneralModel('ReporteBandaDTO', null, false, this.reporteBanda)).toPromise();\n }\n await this.sleep(25)\n this.nuevaBanda=false;\n this.notificacionesBusService.showInfo(\"Se actualizaron las caracteristicas de \"+this.bandaSeleccionada.value);\n }\n\n async guardarColumnaDinamico(){\n if (!this.formReporteDinamico.valid) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n Object.keys(this.formReporteDinamico.controls).forEach((key) => {\n if (this.formReporteDinamico.get(key).errors) {\n this.formReporteDinamico.get(key).markAsDirty();\n }\n });\n return;\n }\n this.reporteMarcadorDinamico = this.formReporteDinamico.value;\n if(this.utilsService.isBlank(this.reporteMarcadorDinamico.llave)){\n this.reporteMarcadorDinamico.llave = this.utilsService.generarLlave();\n this.reporteMarcadorDinamico.origen = 'D';\n if(this.reporteMarcadorDinamico.tipoCampo == 'C'){\n this.reporteMarcadorDinamico.marcador = this.reporteMarcadorDinamico.filtro;\n this.reporteMarcadorDinamico.reporteColumna = null;\n }else{\n var columna = new ReporteColumnaModel();\n columna.llaveTabla = this.reporteMarcadorDinamico.marcador;\n columna = await this.generalService.queryForObject(new GeneralModel('ReporteColumnaDTO', null, false, columna)).toPromise();\n \n this.reporteMarcadorDinamico.marcador = columna.nombre;\n this.reporteMarcadorDinamico.reporteColumna = columna.llaveTabla;\n this.reporteMarcadorDinamico.filtro = columna.sintaxis;\n this.reporteMarcadorDinamico.tipoDato = columna.tipoDato;\n }\n await this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico)).toPromise();\n }else{\n if(this.reporteMarcadorDinamico.tipoCampo == 'C'){\n this.reporteMarcadorDinamico.marcador = this.reporteMarcadorDinamico.filtro;\n }\n await this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico)).toPromise();\n }\n this.reporteMarcadorDinamico = null;\n this.nuevoReporteMarcadorDinamico = false;\n await this.cargarListaMarcadorDinamico()\n this.notificacionesBusService.showInfo('Se ha guardado el cambio');\n }\n\n regresarBandaSeleccionada(){\n this.bandaSeleccionada = {key: null, value: null}\n }\n\n async eliminarColumnaDinamico(event) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: async () => {\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico )).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n this.reporteMarcadorDinamico = new ReporteMarcadorModel()\n this.nuevoReporteMarcadorDinamico = false;\n await this.cargarListaMarcadorDinamico()\n }\n })\n }\n\n validarSeparador(){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporteFuente.separador);\n return validador;\n }\n\n actualizarSeparador(){\n this.clickGuardarReporteTexto = true;\n if (!this.validarSeparador()){\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n return;\n }\n this.actualizar();\n }\n\n cargarListaMarcadoresTexto(){\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\n tipoReporte: this.reporteFuentePipe.REPORTEARCHIVOPLANO,\n reporteFuente: this.reporteFuente.llave,\n ordenDinamico: this.generalPipe.SI\n })).subscribe(data => {\n this.listaMarcadoresTexto = data;\n })\n }\n\n verMarcadorTexto(event){\n this.verNuevoMarcadorTexto = true;\n this.marcadorTexto = event.data;\n }\n\n nuevoMarcadorTexto(){\n this.verNuevoMarcadorTexto = true;\n this.marcadorTexto = new ReporteMarcadorModel();\n\t\tthis.marcadorTexto.tipoReporte = this.reporteFuentePipe.REPORTEARCHIVOPLANO;\n }\n\n validarMarcadorTexto() : boolean{\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.tipoGrafico);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.alto);\n if (this.reporteFuentePipe.MARCADORTEXTOFIJO == this.marcadorTexto.tipoGrafico){\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.formato);\n }\n if (this.reporteFuentePipe.MARCADORTEXTODINAMICO == this.marcadorTexto.tipoGrafico){\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.ancho);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.reporteColumna);\n }\n return validador;\n }\n\n async guardarMarcadorTexto(){\n this.clickGuardarMarcadorTexto = true;\n if (!this.validarMarcadorTexto()) {\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n this.clickGuardarMarcadorTexto = false;\n this.marcadorTexto.reporteFuente = this.reporteFuente.llave;\n if (this.marcadorTexto.llave){\n await this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n this.marcadorTexto.llave = this.utilsService.generarLlave();\n await this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n }\n this.cargarListaMarcadoresTexto();\n this.verNuevoMarcadorTexto = false;\n }\n\n eliminarMarcadoTexto(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: async () => {\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\n this.verNuevoMarcadorTexto = false;\n this.marcadorTexto = new ReporteMarcadorModel();\n this.cargarListaMarcadoresTexto();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n }\n })\n }\n\n cargarListaXML(){\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\n tipoReporte: 'X',\n origen: 'X',\n reporteFuente: this.reporteFuente.llave,\n ordenDinamico: this.generalPipe.SI\n })).subscribe(data => {\n this.listaXML = data;\n })\n }\n\n nuevoMarcadorXML(){\n this.marcadorXML = new ReporteMarcadorModel();\n this.marcadorXML.tipoReporte = 'X';\n this.marcadorXML.origen = 'X';\n this.verNuevoMarcadorXML = true;\n }\n\n verMarcadorXML(event){\n this.marcadorXML = event.data;\n this.verNuevoMarcadorXML = true;\n if (this.marcadorXML.tipo == 'MR' || this.marcadorXML.tipo == 'TB'){\n this.cargarListaCampoMarcadorXML();\n }\n }\n\n validarMarcadorXML(){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorXML.descripcion);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorXML.tipo);\n return validador\n }\n\n guardarMarcadorXML(){\n this.clickGuardarMarcadorXML = true;\n if (!this.validarMarcadorXML()){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n this.marcadorXML.reporteFuente = this.reporteFuente.llave;\n if (this.marcadorXML.llave){\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.marcadorXML = new ReporteMarcadorModel();\n this.verNuevoMarcadorXML = false;\n this.cargarListaXML();\n })\n } else {\n this.marcadorXML.llave = this.utilsService.generarLlave();\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n this.marcadorXML = new ReporteMarcadorModel();\n this.verNuevoMarcadorXML = false;\n this.cargarListaXML();\n })\n }\n this.clickGuardarMarcadorXML = false;\n }\n\n eliminarMarcadorXML(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: async () => {\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).toPromise();\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.marcadorXML = new ReporteMarcadorModel();\n this.verNuevoMarcadorXML = false;\n this.cargarListaXML();\n }\n })\n }\n\n nuevoCampoTablaXML(){\n this.verReporteMarcadorDetalleXML = true;\n this.campoMarcadorInsertarXML = new ReporteTablaModel();\n this.campoMarcadorInsertarXML.reporteMarcador = this.marcadorXML.llave\n this.habilitaCampo = true;\n }\n\n cargarListaCampoMarcadorXML() {\n this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.marcadorXML.llave})).subscribe(data => {\n this.listaCamposMarcadorXML = data;\n })\n }\n\n async cargarListaCampoMarcadorXMLAsync() {\n this.habilitaCampo = false;\n this.listaCamposMarcadorXML = await this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.marcadorXML.llave})).toPromise();\n }\n\n validarCampoMarcadorXML(campoMarcador){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.campoFuente);\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.marcador);\n return validador;\n }\n\n agregarCampoMarcadorXML(campo: ReporteTablaModel){\n this.clickGuardarMarcadorCampoXML = true;\n if (!this.validarCampoMarcadorXML(campo)){\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n return;\n }\n if (campo.llave){\n this.generalService.update(new GeneralModel('ReporteTablaDTO', null, false, campo)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.campoMarcadorInsertarXML = new ReporteTablaModel();\n this.habilitaCampo = false;\n this.cargarListaCampoMarcadorXML();\n })\n } else {\n campo.columna = 0;\n campo.llave = this.utilsService.generarLlave();\n this.generalService.crearRegistro(new GeneralModel('ReporteTablaDTO', null, false, campo)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n campo = new ReporteTablaModel();\n this.habilitaCampo = false;\n this.cargarListaCampoMarcadorXML();\n })\n }\n this.clickGuardarMarcadorCampoXML = false;\n this.verReporteMarcadorDetalleXML = false;\n }\n\n eliminarCampoMarcadorXML(event, objeto){ \n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteTablaDTO', null, false, objeto)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.cargarListaCampoMarcadorXML();\n })\n }\n })\n }\n\n cambiarTabColumnario(event){\n switch (event.index) {\n case 0:\n this.cargarReporteColumnario();\n break;\n case 1:\n this.cargarDatosAdicionales();\n break;\n case 2:\n this.cargarMarcadoresColumnario();\n break;\n }\n }\n\n cargarMarcadoresColumnario() {\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.marcadoresColumnario = data;\n })\n }\n\n\n cargarDatosAdicionales() {\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioDTO', null, false, {reporteFuente: this.reporteFuente.llave, filtroColumnaBasica: 'N'})).subscribe(data => {\n this.columnasAdicionales = data;\n })\n }\n\n cargarReporteColumnario(){\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioDTO', null, false, {reporteFuente: this.reporteFuente.llave, filtroColumnaBasica: 'S'})).subscribe(data => {\n this.listaReporteColumnario = data;\n })\n }\n\n cargarGraficasColumnas() {\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\n this.paginadorColumnas = data;\n })\n this.generalService.queryForList(new GeneralModel('ReporteBandaDTO', null, false, {reporteFuente: this.reporteFuente.llave, totales: 'C'})).subscribe(data => {\n this.paginadorColoresGrafica = data;\n })\n }\n\n validarExisteJasper(){\n this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporteFuente.llave + '.jrxml'), 'ruta_plantillas', this.aplicacion).subscribe(\n (response) => {\n this.existeJasper = true;\n },\n (error) => {\n this.existeJasper = false;\n }\n ) \n }\n\n verReporteColumnario(event){\n this.columnaBasica = event.data;\n this.verNuevoReporteColumnario = true;\n }\n\n nuevoColumnaBasica(){\n this.columnaBasica = new ReporteColumnarioModel();\n this.columnaBasica.reporteFuente = this.reporteFuente.llave;\n this.verNuevoReporteColumnario = true;\n }\n\n validarColumnaBasica(){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.nombre);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.tipo);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.reporteColumna);\n if (validador){\n if (this.isMostrarOrden()){\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.orden);\n }\n if (this.isMostrarOrdenConsulta()){\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.ordenConsulta);\n }\n if (this.reporteColumnarioPipe.TIPO_CELDA == this.columnaBasica.tipo) {\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacion);\n } else if (this.reporteColumnarioPipe.TIPO_COLUMNA== this.columnaBasica.tipo) {\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacionHorizontal);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacionVertical);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.columnaOperacionVertical);\n } else if (this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo) {\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.orderBy);\n }\n }\n return validador;\n }\n\n async verificarColumnasValidas(reporteColumnarioDTO): Promise<boolean> {\n var tipo=reporteColumnarioDTO.tipo;\n\t\tif(this.reporteColumnarioPipe.TIPO_FILA == reporteColumnarioDTO.tipo){\n\t\t\treturn true;\n\t\t}\n\t\tvar filtro=new ReporteColumnarioModel();\n\t\tfiltro.reporteFuente = reporteColumnarioDTO.reporteFuente;\n\t\tfiltro.diferenteColumnario = reporteColumnarioDTO.llaveTabla;\n\t\tfiltro.tipo = tipo;\n\t\tvar cantidad= await this.generalService.cantidadRegistros(new GeneralModel('ReporteColumnarioDTO', null, false, filtro)).toPromise();\n\t\tif(cantidad==0){\n\t\t\treturn true;\n\t\t}\n\t\tif(this.reporteColumnarioPipe.TIPO_COLUMNA == reporteColumnarioDTO.tipo){\n\t\t\t\tthis.notificacionesBusService.showWarning(\"El reporte solo puede contener 1 registro con tipo \"+this.reporteColumnarioPipe.TIPO_COLUMNA_DESC);\n return false;\n\t\t}else if(this.reporteColumnarioPipe.TIPO_CELDA == reporteColumnarioDTO.tipo){\n this.notificacionesBusService.showWarning(\"El reporte solo puede contener 1 registro con tipo \"+this.reporteColumnarioPipe.TIPO_CELDA_DESC);\n return false;\n\t\t}\n return true;\n }\n\n async guardarColumnaBasica(){\n this.clickGuardarReporteColumnario = true;\n if (!this.validarColumnaBasica()){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n \n if (await this.verificarColumnasValidas(this.columnaBasica)){\n if (this.columnaBasica.llaveTabla) {\n await this.generalService.update(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).toPromise();\n this.columnaBasica = new ReporteColumnarioModel();\n this.verNuevoReporteColumnario = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).toPromise();\n this.columnaBasica = new ReporteColumnarioModel();\n this.verNuevoReporteColumnario = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n }\n this.clickGuardarReporteColumnario = false;\n this.cargarReporteColumnario();\n }\n }\n\n eliminarColumnaBasica(event){ \n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.verNuevoReporteColumnario = false;\n this.columnaBasica = new ReporteColumnarioModel();\n this.cargarReporteColumnario();\n })\n \n }\n })\n }\n\n nuevaColumnaAdicional() {\n this.columnaAdicional = new ReporteColumnarioModel();\n this.columnaAdicional.reporteFuente = this.reporteFuente.llave;\n this.columnaAdicional.tipo = this.reporteColumnarioPipe.TIPO_ADICIONAL;\n this.verNuevoColumnaAdicional = true;\n }\n\n verDetalleAdicional(event) {\n this.columnaAdicional = event.data;\n this.verNuevoColumnaAdicional = true;\n }\n\n validarColumnaAdicional() {\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.nombre);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.sintaxis);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.orden);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.orderBy);\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.ordenConsulta);\n return validador;\n }\n\n async guardarColumnaAdicional() {\n this.clickGuardarColumnaAdicional = true;\n if (!this.validarColumnaAdicional()){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n if (this.columnaAdicional.llaveTabla) {\n await this.generalService.update(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).toPromise();\n this.columnaAdicional = new ReporteColumnarioModel();\n this.verNuevoColumnaAdicional = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).toPromise();\n this.columnaAdicional = new ReporteColumnarioModel();\n this.verNuevoColumnaAdicional = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n }\n this.clickGuardarColumnaAdicional = false;\n this.cargarDatosAdicionales();\n }\n\n eliminarColumnaAdicional(event) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.verNuevoColumnaAdicional = false;\n this.columnaAdicional = new ReporteColumnarioModel();\n this.cargarDatosAdicionales();\n })\n }\n })\n }\n\n nuevoMarcadorColumnario() {\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\n this.marcadorColumnario.reporteFuente = this.reporteFuente.llave;\n this.verNuevoMarcadorColumnario = true;\n }\n\n verDetalleMarcadorColumnario(event) {\n this.marcadorColumnario = event.data;\n this.verNuevoMarcadorColumnario = true;\n }\n\n validarMarcadorColumnario() {\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.marcador);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.tipo);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.textoRegistro);\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.descripcion);\n return validador;\n }\n\n async guardarMarcadorColumnario() {\n this.clickGuardarMarcadorColumnario = true;\n if (!this.validarMarcadorColumnario()){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n if (this.marcadorColumnario.llaveTabla) {\n await this.generalService.update(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).toPromise();\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\n this.verNuevoMarcadorColumnario = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n } else {\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).toPromise();\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\n this.verNuevoMarcadorColumnario = false;\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n }\n this.clickGuardarMarcadorColumnario = false;\n this.cargarMarcadoresColumnario();\n }\n\n eliminarMarcadorColumnario(event) {\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.generalService.delete(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.verNuevoMarcadorColumnario = false;\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\n this.cargarMarcadoresColumnario();\n })\n }\n })\n }\n\n public guardarGrafico() {\n this.actualizar();\n this.paginadorColumnas.forEach(data => {\n this.generalService.update(new GeneralModel('ReporteColumnaDTO', null, false, data)).subscribe(data => {})\n });\n }\n\n public verGrafico() {\n this.reporteService.verGrafico({llaveReporte: this.reporteFuente.llave}).subscribe(data => {\n let columna = this.dashboardService.cargarGrafica({accion: data.tipoGrafico, datosGrafica: data});\n this.grafica = columna;\n let respuesta = this.dashboardPipe.TIPO_GRAFICO_CHART.filter(data => data.codigo == columna.datosGrafica.tipoGrafico);\n if (respuesta.length < 0) {\n return;\n }\n columna.tipoGrafico = respuesta[0].codigoChart;\n this.tipoGrafica = columna.tipoGrafico;\n console.log(this.tipoGrafica)\n })\n }\n\n nuevoColorCategoria(){\n this.colorCategoria = new ReporteBandaModel();\n this.colorCategoria.banda = '#FFFFFF';\n this.verColorCategoriaDetalle = true;\n this.habilitaCampo = true;\n }\n\n cancelarColorCategoria() {\n this.colorCategoria = new ReporteBandaModel();\n this.verColorCategoriaDetalle = false;\n this.habilitaCampo = false;\n }\n\n validarColorCategoria(color){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(color.titulo)\n validador = validador && this.utilsService.validarCampoObligatorio(color.banda)\n return validador;\n }\n\n agregarColorCategoria(color){\n this.clickGuardarColorCategoria = true;\n if (!this.validarColorCategoria(color)){\n this.notificacionesBusService.showError('Faltan campos obligatorios')\n return;\n }\n if (!color.llaveTabla){\n color.totales = 'C'\n color.reporteFuente = this.reporteFuente.llave\n this.generalService.crearRegistro(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n color = new ReporteBandaModel();\n this.cargarGraficasColumnas();\n this.verColorCategoriaDetalle = false;\n this.clickGuardarColorCategoria = false;\n })\n } else {\n this.generalService.update(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.cargarGraficasColumnas();\n this.verColorCategoriaDetalle = false;\n this.clickGuardarColorCategoria = false;\n color = new ReporteBandaModel();\n })\n }\n this.habilitaCampo = false;\n }\n\n eliminarColorCategoria(event, color){\n this.habilitaCampo = true;\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => { \n this.generalService.delete(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.cargarGraficasColumnas();\n this.habilitaCampo = false;\n })\n }\n })\n }\n\n async cancelarEdicionColor() { \n this.cargarGraficasColumnas(); \n this.habilitaCampo = false;\n }\n\n public isFijo():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\n }\n\n public isSql():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\n }\n\n /**\n\t * Permite conocer si se debe presentar en la interfaz los campos referentes a orden consulta\n\t * @return Si se debe mostrar se retornara true, de lo contrario false\n\t */\n\tisMostrarOrdenConsulta(){\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo;\n\t}\n\t\n\n\tisMostrarOrden(){\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo||\n\t\t\t\tthis.reporteColumnarioPipe.TIPO_COLUMNA == this.columnaBasica.tipo||this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo;\n\t}\n\n\tisTipoColumna(){\n\t\treturn this.reporteColumnarioPipe.TIPO_COLUMNA == this.columnaBasica.tipo;\n\t}\n\t\n\n\tisTipoFila(){\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo;\t\n\t}\n\n\tisTipoLabel(){\n\t\treturn this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo;\t\n\t}\n\n sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n public isFuente():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\n }\n\n public filtroOrigenFuente(tipo:string):boolean{\n return this.reporteFuente.origenFuente == tipo;\n }\n}","<p-tabView (onChange)=\"cambiarTab($event)\">\n <p-tabPanel header=\"{{'excel' | translate }}\" [selected]=\"true\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <p class=\"font-semibold\">{{'debe' | translate}} {{'indicar' | translate}} {{'plantilla' | translate}} {{'y' | translate}}\n {{'hoja' | translate}} {{'para' | translate}} {{'que' | translate}} {{'esta' | translate}}\n {{'opcion' | translate}} {{'se' | translate}} {{'active' | translate}}\n </p>\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"reporteFuente.archivoTodo ? reporteFuente.archivoTodo: ''\"\n [extensiones]=\"'xls;xlsx'\" [mostraroblicargo]=\"true\" [labelrar]=\"'plantilla' | translate\"\n (onSelected)=\"obtenerArchivo($event)\"></app-input-helper-seleccion-plantilla>\n\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.hojaExcel\" size=\"25\" maxlength=\"20\">\n <label>{{'nombre' | translate }} {{'de' | translate }} {{'la' | translate }} {{'hoja' |\n translate }}</label> \n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.cifradoExcel\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n (click)=\"actualizar()\">\n </button>\n </div>\n </div>\n </div>\n\n <p-pickList [source]=\"listaExcel\" [target]=\"listaNoExcel\" sourceHeader=\"Asociado\" sourceFilterPlaceholder=\"Asociado\"\n targetHeader=\"Desasociado\" [dragdrop]=\"true\" [responsive]=\"true\" targetFilterPlaceholder=\"Desasociado\"\n filterBy=\"sintaxis\" (onSourceReorder)=\"moverAAsociado($event)\"\n (onMoveAllToTarget)=\"moverADesasociado($event)\" (onMoveAllToSource)=\"moverAAsociado($event)\"\n (onMoveToTarget)=\"moverADesasociado($event)\" (onMoveToSource)=\"moverAAsociado($event)\">\n <ng-template let-excel pTemplate=\"item\">\n <div>\n <label>{{excel.nombre}}</label>\n </div>\n </ng-template>\n </p-pickList>\n\n <div class=\"mt-4\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevoMarcadorExcel()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorExcel\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorExcel\">\n <button pButton pRipple (click)=\"verNuevoMarcadorExcel = false\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaMarcadorExcel\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" [selection]=\"reporteMarcadorExcel\" [rows]=\"10\"\n [totalRecords]=\"listaMarcadorExcel.length\" [paginator]=\"listaMarcadorExcel.length > 10\"\n (onRowSelect)=\"verDetalleMarcadorExcel($event)\" (onRowUnselect)=\"verDetalleMarcadorExcel($event)\" *ngIf=\"!verNuevoMarcadorExcel\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'descripcion' | translate }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-marcador>\n <tr [pSelectableRow]=\"marcador\">\n <td>{{marcador.descripcion}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorExcel\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n <div class=\"Detallereporte mt-4 \">\n <form [formGroup]=\"formMarcadorExcel\" >\n <div class=\"col-md-12 p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"descripcion\" size=\"25\" maxlength=\"4000\">\n <label>{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\" maxlength=\"4000\">\n <label>{{'marcador' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown\n [options]=\"[{label: 'Imagen Fija', value: 'IF'}, {label: 'Marcador', value: 'MA'}]\"\n [autoDisplayFirst]=\"false\" formControlName=\"tipo\" optionLabel=\"label\"\n optionValue=\"value\"></p-dropdown>\n <label>{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\" [hidden]=\"esImagenFija\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"textoRegistro\"></textarea>\n <label>{{'valor' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"esMarcador\">\n <p-floatLabel>\n <p-dropdown\n [options]=\"[{label: 'Unica', value: 'U'}, {label: 'Cada Empresa', value: 'C'}]\"\n [autoDisplayFirst]=\"false\" formControlName=\"origen\" optionLabel=\"label\"\n optionValue=\"value\"></p-dropdown>\n <label>{{'origen' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"esMarcador\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n formControlName=\"textoRegistro\"\n [label]=\"reporteMarcadorExcel.textoRegistro ? reporteMarcadorExcel.textoRegistro: ''\"\n [extensiones]=\"'jpg;png'\" (onSelected)=\"obtenerArchivoMarcadorExcel($event)\"\n [propiedad]=\"'ruta_recursos'\" [labelrar]=\"('recursos' | translate)\" [labelarch]=\"'recurso' | translate\" [mostrarX]=\"true\"\n [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(reporteMarcadorExcel.textoRegistro) && clickGuardarMarcadorExcel)\"\n [anexoPropiedad]=\"reporteMarcadorExcel.origen =='C' ? llaveEmpresa: ''\"\n [propiedadDeSistema]=\"true\"></app-input-helper-seleccion-plantilla>\n </div>\n </div>\n </form>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"verNuevoMarcadorExcel\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" icon=\"glyphicons {{reporteMarcadorExcel.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{reporteMarcadorExcel.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorExcel()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"reporteMarcadorExcel.llave != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarMarcadorExcel($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{'plantilla' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.unicoArchivo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label>{{'soporte' | translate }} {{'unico' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.descargarFuente\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label>{{'descargardoc' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.generarPin\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label>{{'generarpin' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaColumnas\" [(ngModel)]=\"reporteFuente.campoAgrupacionPlanilla\" \n [autoDisplayFirst]=\"false\" [showClear]=\"true\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'agruparpor' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.nombreAgrupacionPlanilla\" size=\"25\"\n maxlength=\"100\">\n <label>{{'nombrearchivoagrupacion' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.cifradoPlanilla\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteFuente.unicoArchivo == 'N'\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"reporteFuente.archivoIndividual ? reporteFuente.archivoIndividual: ''\"\n [labelrar]=\"'archivo' | translate\" [labelarch]=\"'archivo' | translate\" [mostraroblicargo]=\"true\"\n (onSelected)=\"obtenerArchivoPlanilla($event)\"></app-input-helper-seleccion-plantilla>\n </div>\n\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n </button>\n </div>\n </div>\n </div>\n\n <p-tabView >\n <p-tabPanel header=\"{{'marcadores' | translate }}\" [selected]=\"true\">\n \n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton pRipple class=\"p-button-secondary font-semibold mb-2\" icon=\"pi pi-plus\"\n (click)=\"nuevoMarcador()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcador\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcador\">\n <button pButton pRipple (click)=\"verNuevoMarcador = false\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaMarcadores\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" [selection]=\"reporteMarcador\"\n [rows]=\"10\" [totalRecords]=\"listaMarcadores.length\"\n [paginator]=\"listaMarcadores.length > 10\" *ngIf=\"!verNuevoMarcador\"\n (onRowSelect)=\"verDetalleMarcador($event)\" (onRowUnselect)=\"verDetalleMarcador($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'descripcion' | translate }}</th>\n <th>{{'tipo' | translate }}</th>\n <th>{{'columna' | translate }}</th>\n <th>{{'marcador' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-marcador>\n <tr [pSelectableRow]=\"marcador\">\n <td>{{marcador.descripcion}}</td>\n <td>{{marcador.tipo | reporteFuentePipe : 'listaTipoDatoMarcadores'}}</td>\n <td>{{marcador.tipo == 'IF' ? marcador.textoRegistro : marcador.nombreColumna}}</td>\n <td>{{marcador.marcador}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <div class=\"card col-md-12\" *ngIf=\"verNuevoMarcador\">\n <div class=\"Detallereporte mt-2\">\n <form [formGroup]=\"formMarcador\">\n <p class=\"font-semibold\">{{'indique' | translate}} {{'en' | translate}} {{'que' | translate}} {{'columna' | translate}} {{'desea' | translate}} {{'que' | translate}} {{'aparezca' | translate}} {{'la' | translate}} {{'informacion' | translate}}. {{'la' | translate}} {{'primera' | translate}} {{'columna' | translate}} {{'es' | translate}} {{'la' | translate}} 1.</p>\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"descripcion\" size=\"25\"\n maxlength=\"4000\">\n <label>{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoMarcador\" [autoDisplayFirst]=\"false\" \n formControlName=\"tipo\" optionLabel=\"nombre\"\n optionValue=\"codigo\"></p-dropdown>\n <label>{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!(['MA','IM','MR','IF','QR','BC','G1'].includes(reporteMarcador.tipo))\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\">\n <label>{{'marcador' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'TB'\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"tabla\" size=\"25\">\n <label>{{'tabla' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'IF'\">\n <p-floatLabel>\n <p-dropdown\n [options]=\"[{label: 'Unica', value: 'U'}, {label: 'Cada Empresa', value: 'C'}]\"\n [autoDisplayFirst]=\"false\" [showClear]=\"true\" formControlName=\"origen\" optionLabel=\"label\"\n optionValue=\"value\"></p-dropdown>\n <label>{{'origen' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"reporteMarcador.tipo != 'IF' || !reporteMarcador.origen\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n formControlName=\"textoRegistro\"\n [label]=\"reporteMarcador.textoRegistro ? reporteMarcador.textoRegistro: ''\"\n [extensiones]=\"'jpg;png'\" (onSelected)=\"obtenerArchivoMarcador($event)\"\n [propiedad]=\"'ruta_recursos'\" [labelrar]=\"'recursossssss' | translate\"\n [anexoPropiedad]=\"reporteMarcador.origen =='C' ? llaveEmpresa: ''\"\n [propiedadDeSistema]=\"true\"></app-input-helper-seleccion-plantilla>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['MA','IM','QR','BC','G1'].includes(reporteMarcador.tipo)\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaColumnas\" formControlName=\"reporteColumna\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\n optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'columna' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MA'\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"formato\" size=\"25\">\n <label>{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['IM','IF','QR','BC','G1'].includes(reporteMarcador.tipo)\">\n <p-floatLabel>\n <p-inputNumber formControlName=\"ancho\" [maxlength]=\"5\"> </p-inputNumber>\n <label>{{'ancho' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['IM','IF','QR','BC','G1'].includes(reporteMarcador.tipo)\">\n <p-floatLabel>\n <p-inputNumber formControlName=\"alto\" [maxlength]=\"5\"> </p-inputNumber>\n <label>{{'alto' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo1\"></textarea>\n <label>{{'grupo1' | translate }}</label> \n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo2\"></textarea>\n <label>{{'grupo2' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo3\"></textarea>\n <label>{{'grupo3' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"finalGrupo\"></textarea>\n <label>{{'finalgrupo' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"textoRegistro\"></textarea>\n <label>{{'texto' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['MR','TB'].includes(reporteMarcador.tipo)\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"tieneSql\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label>{{'sql' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'TB'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoGrafico_JFC\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n formControlName=\"tipoGrafico\" optionLabel=\"nombre\"\n optionValue=\"codigo\"></p-dropdown>\n <label>{{'grafica' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\"\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['S'].includes(reporteMarcador.tieneSql)))\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"query\"></textarea>\n <label>{{'consulta' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['N'].includes(reporteMarcador.tieneSql)))\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuentes\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n formControlName=\"fuente\" optionLabel=\"descripcion\"\n optionValue=\"llave\"></p-dropdown>\n <label>{{'fuente' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"marcadorGrafico\" size=\"25\">\n <label>{{'marcadorgrafica' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['A'].includes(reporteMarcador.tipoGrafico)\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"titulox\" size=\"25\">\n <label>{{'titulo' | translate }} X</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\"\n [hidden]=\"!['A'].includes(reporteMarcador.tipoGrafico)\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"tituloy\" size=\"25\">\n <label>{{'titulo' | translate }} Y</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"banda\" size=\"25\">\n <label>{{'colordinamico' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"anchoJasperLabel\" size=\"25\">\n <label>{{'numerocategorias' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\"\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['N'].includes(reporteMarcador.tieneSql)))\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"filtro\"></textarea>\n <label>{{'filtro' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n </form>\n\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n icon=\"glyphicons {{reporteMarcador.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" label=\"{{reporteMarcador.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\n (click)=\"guardarMarcador()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"reporteMarcador.llave != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarMarcador($event)\">\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"verNuevoMarcador && reporteMarcador.llave != null && (reporteMarcador.tipo == 'MR' || reporteMarcador.tipo == 'TB')\">\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampoTabla()\" icon=\"pi pi-plus\" [disabled]=\"bloquearCampoMarcador\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table [value]=\"listaCamposMarcador\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n [rows]=\"10\" [totalRecords]=\"listaCamposMarcador.length\" [scrollable]=\"true\"\n [paginator]=\"listaCamposMarcador.length > 10\" \n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n editMode=\"row\" dataKey=\"llave\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"width: 10%;\">{{'columna' | translate }}</th>\n <th style=\"width: 10%;\">{{'campo' | translate }}</th>\n <th style=\"width: 10%;\">{{'formato' | translate }}</th>\n <th style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">{{'tipo' | translate }}</th>\n <th style=\"width: 10%;\"*ngIf=\"reporteMarcador.tipo == 'TB'\">{{'medidas' | translate }}</th>\n <th style=\"width: 10%;\"> </th>\n </tr>\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verReporteMarcadorDetalle\">\n <td style=\"width: 10%;\">\n <input pInputText [(ngModel)]=\"campoMarcadorInsertar.columna\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '');\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.columna) && clickGuardarMarcadorCampo\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.columna) && clickGuardarMarcadorCampo\" />\n </td>\n <td style=\"width: 10%;\">\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.campoFuente\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.campoFuente) && clickGuardarMarcadorCampo\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.campoFuente) && clickGuardarMarcadorCampo\">\n </td>\n <td style=\"width: 10%;\">\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.formato\">\n </td>\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\n <p-dropdown [options]=\"listaGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [(ngModel)]=\"campoMarcadorInsertar.tipo\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" [showClear]=\"true\"></p-dropdown>\n </td>\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\n <div *ngIf=\"campoMarcadorInsertar.tipo =='I'\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.ancho\">\n <label>{{'ancho' | translate}}</label>\n </p-floatLabel>\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.alto\">\n <label>{{'alto' | translate}}</label>\n </p-floatLabel>\n </div>\n </td>\n <td style=\"width: 10%;\" >\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCampoMarcador(campoMarcadorInsertar)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"verReporteMarcadorDetalle = false; bloquearCampoMarcador = false\" icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"campo\">\n <td style=\"width: 10%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.columna\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.columna) && clickGuardarMarcadorCampo\" \n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.columna) && clickGuardarMarcadorCampo\" />\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.columna}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.campoFuente\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampo\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampo\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.campoFuente}}\n </ng-template>\n </p-cellEditor>\n </td>\n\n <td style=\"width: 10%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.formato\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.formato}}\n </ng-template>\n </p-cellEditor>\n </td>\n \n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"listaGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [(ngModel)]=\"campo.tipo\" appendTo=\"body\" [autoZIndex]=\"false\"\n [autoDisplayFirst]=\"false\" [showClear]=\"true\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.tipo | reporteFuentePipe :'listaRecursoGrafica'}}\n </ng-template>\n </p-cellEditor>\n </td>\n \n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div *ngIf=\"campo.tipo =='I'\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"campo.ancho\">\n <label>{{'ancho' | translate}}</label>\n </p-floatLabel>\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"campo.alto\">\n <label>{{'alto' | translate}}</label>\n </p-floatLabel>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <div *ngIf=\"campo.tipo =='I'\">\n {{'ancho' | translate}}: {{campo.ancho}} <br/>\n {{'alto' | translate}}: {{campo.alto}}\n </div> \n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%;\">\n <div class=\"flex justify-content-end\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarCampoMarcador(campo)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\" (click)=\"cargarListaCampoMarcadorAsync()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow [disabled]=\"bloquearCampoMarcador\"\n icon=\"glyphicons glyphicons-pencil\" (click)=\"editarCampoMarcador()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow [disabled]=\"bloquearCampoMarcador\"\n icon=\"pi pi-trash\" (click)=\"eliminarCampoMarcador($event,campo)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{'soporte' | translate }} {{'archivo' | translate }}s\"\n *ngIf=\"reporteFuente.unicoArchivo == 'N'\">\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoSoporte()\" icon=\"pi pi-plus\"\n [disabled]=\"habilitaCampo\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table [value]=\"listaSoportes\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n [rows]=\"10\" [totalRecords]=\"listaSoportes.length\"\n [paginator]=\"listaSoportes.length > 10\" \n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n editMode=\"row\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"width: 45%\">{{'descripcion' | translate}}</th>\n <th style=\"width: 45%\">{{'archivo' | translate}}</th>\n <th style=\"width: 10%\"> </th>\n </tr>\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verSoporteArchivoDetalle\">\n <td style=\"width: 45%\">\n <input pInputText type=\"text\" [(ngModel)]=\"soporteIngresar.descripcion\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(soporteIngresar.descripcion) && clickGuardarSoporteArchivo\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(soporteIngresar.descripcion) && clickGuardarSoporteArchivo\">\n </td>\n <td style=\"width: 45%\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\" [mostrarX]=\"true\"\n [label]=\"soporteIngresar.archivoIndividual ? soporteIngresar.archivoIndividual: ''\" [labelarch]=\"'archivo' | translate\"\n [mostrarLabelInput]=\"false\" [mostraroblicargo]=\"true\" [booleano]=\"!utilsService.validarCampoObligatorio(soporteIngresar.archivoIndividual) && clickGuardarSoporteArchivo\"\n (onSelected)=\"obtenerArchivoSoporte($event, soporteIngresar)\"></app-input-helper-seleccion-plantilla>\n </td>\n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarSoporte(soporteIngresar)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"verSoporteArchivoDetalle = false\" icon=\"pi pi-times\" (click)=\"cancelarSoporte()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-soporte let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"soporte\" style=\"width: 100%\">\n <td style=\"width: 45%\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"soporte.descripcion\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(soporte.descripcion) && clickGuardarSoporteArchivo\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(soporte.descripcion) && clickGuardarSoporteArchivo\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{soporte.descripcion}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 45%\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\" [mostrarX]=\"true\"\n [label]=\"soporte.archivoIndividual ? soporte.archivoIndividual: ''\"\n [mostrarLabelInput]=\"false\" [booleano]=\"!utilsService.validarCampoObligatorio(soporte.archivoIndividual) && clickGuardarSoporteArchivo\"\n (onSelected)=\"obtenerArchivoSoporte($event, soporte)\"></app-input-helper-seleccion-plantilla>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{soporte.archivoIndividual}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarSoporte(soporte)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\" (click)=\"cancelarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarSoporte($event, soporte)\" [disabled]=\"habilitaCampo\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-tabPanel>\n </p-tabView>\n </p-tabPanel>\n <p-tabPanel header=\"{{'reporte' | translate }} {{'dinamico' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.dobleLinea\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label>{{'doblelinea' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tituloParametro\" size=\"25\"\n maxlength=\"100\">\n <label>{{'descripcion' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.cifradoJasper\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label> \n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n \n \n <button pButton pRipple class=\"ml-2 p-button-outlined background-100\" icon=\"glyphicons glyphicons-restart\" \n label=\"{{'link_generar' | translate}}\" (click)=\"generarJasper()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"pi pi-download\" *ngIf=\"existeJasper\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarJasper()\">\n </button>\n \n </div>\n </div>\n </div>\n \n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"bandaSeleccionada.key\">\n <button pButton pRipple (click)=\"regresarBandaSeleccionada()\" label= \"{{'listado' | translate}} {{'bandas' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaTipoBanda\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" [rows]=\"10\"\n [totalRecords]=\"listaTipoBanda.length\" [paginator]=\"listaTipoBanda.length > 10\"\n (onRowSelect)=\"verBanda($event)\" (onRowUnselect)=\"verBanda($event)\" *ngIf=\"!bandaSeleccionada.key\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'banda' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-banda>\n <tr [pSelectableRow]=\"banda\">\n <td>{{banda.value}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <p-tabView *ngIf=\"bandaSeleccionada.key && verTabBanda\">\n <p-tabPanel header=\"{{'caracteristicas' | translate}}\"\n *ngIf=\"!['detalle','summary'].includes(bandaSeleccionada.key)\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" optionLabel=\"nombre\" optionValue=\"codigo\" \n [(ngModel)]=\"reporteBanda.totales\" ></p-dropdown>\n <label>{{'total' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteBanda.titulo\" maxlength=\"200\">\n <label>{{'titulo' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardarCaracteristicaBanda()\">\n </button>\n </div>\n </div>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{bandaSeleccionada.value}}\" *ngIf=\"!nuevaBanda\">\n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\n <div class=\"flex justify-content-end mb-1\" >\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoMarcadorDinamico()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\" *ngIf=\"!nuevoReporteMarcadorDinamico\"></button>\n </div>\n </div>\n <p-table [value]=\"listaMarcadorDinamico\" [scrollable]=\"true\"\n responsiveLayout=\"scroll\" dataKey=\"llaveTabla\" selectionMode=\"single\"\n [rows]=\"10\" [totalRecords]=\"listaMarcadorDinamico.length\"\n [paginator]=\"listaMarcadorDinamico.length > 10\" *ngIf=\"!nuevoReporteMarcadorDinamico\"\n (onRowSelect)=\"verMarcadorDinamico($event)\" (onRowUnselect)=\"verMarcadorDinamico($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'banda' | translate }}</th>\n <th>{{'orden' | translate }}</th>\n <th>{{'columna' | translate }}</th>\n <th>{{'etiqueta' | translate }}</th>\n <th>{{'formato' | translate }}</th>\n <th>{{'ancho' | translate }}</th>\n <th>{{'operacion' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-dinamico>\n <tr [pSelectableRow]=\"dinamico\">\n <td>{{dinamico.banda}}</td>\n <td>{{dinamico.banda ? dinamico.alto : ''}}</td>\n <td>{{dinamico.marcador}}</td>\n <td>{{dinamico.banda ? dinamico.descripcion : ''}}</td>\n <td>{{dinamico.banda ? dinamico.formato : ''}}</td>\n <td>{{['detalle'].includes(dinamico.banda) ? dinamico.ancho : ''}}</td>\n <td>{{dinamico.banda ? dinamico.operacion : ''}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <div *ngIf=\"nuevoReporteMarcadorDinamico\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"flex justify-content-between align-items-center mb-2\"> \n <p class=\"font-semibold mt-3\">{{'indique' | translate}} {{'en' | translate}} {{'que' | translate}} {{'columna' | translate}} {{'desea' | translate}} {{'que' | translate}} {{'aparezca' | translate}} {{'la' | translate}} {{'informacion' | translate}}. {{'la' | translate}} {{'primera' | translate}} {{'columna' | translate}} {{'es' | translate}} {{'la' | translate}} 1.</p>\n <button pButton pRipple (click)=\"nuevoReporteMarcadorDinamico = false\" label= \"{{'listado' | translate}} {{bandaSeleccionada.value}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \" *ngIf=\"nuevoReporteMarcadorDinamico\"></button>\n </div>\n <form [formGroup]=\"formReporteDinamico\" class=\"p-fluid grid\">\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCampoJasperDinamico\"\n [autoDisplayFirst]=\"false\" formControlName=\"tipoCampo\"\n optionLabel=\"value\" optionValue=\"key\"></p-dropdown>\n <label>{{'tipocampo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-4\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDatoSintaxis\" [autoDisplayFirst]=\"false\" \n formControlName=\"tipoDato\" optionLabel=\"value\"\n optionValue=\"key\"></p-dropdown>\n <label>{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText formControlName=\"alto\" maxlength=\"5\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\n <label>{{'orden' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-4\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" \n formControlName=\"marcador\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\n *ngIf=\"!reporteMarcadorDinamico.llave && reporteMarcadorDinamico.tipoCampo !='C'\"></p-dropdown>\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\"\n *ngIf=\"reporteMarcadorDinamico.llave && reporteMarcadorDinamico.tipoCampo !='C'\">\n <label>{{'columna' | translate }} *</label>\n </p-floatLabel>\n </div>\n \n <div class=\"field col-12 md:col-12\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"filtro\"></textarea>\n <label>{{'sintaxis' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\">\n <p-fieldset class=\"fieldsintitulo\" class=\"fieldsintitulo\">\n <div class=\"p-fluid grid\">\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\">\n <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'resultado' | translate}}</label>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\"></div>\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\n <label class=\"font-semibold text-gray-900 text-base ml-1\" >{{'label' | translate}}</label>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"formato\" />\n <label>{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"descripcion\" />\n <label>{{'titulo' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"ancho\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\n <label>{{'ancho' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' == reporteMarcadorDinamico.banda \"></div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"anchoJasperLabel\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n <label>{{'ancho' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"'detalle' != reporteMarcadorDinamico.banda\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"resultadoX\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n <label>{{'x' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"titulox\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n <label>{{'x' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"'detalle' != reporteMarcadorDinamico.banda\">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"resultadoY\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n <label>{{'y' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\n <p-floatLabel>\n <input pInputText type=\"text\" formControlName=\"tituloy\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n <label>{{'y' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaAlineacion\" [autoDisplayFirst]=\"false\" \n formControlName=\"tipoReporte\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\n <label>{{'alineacion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaAlineacion\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n formControlName=\"tipoGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\n <label>{{'alineacion' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoDato == 'N' && reporteMarcadorDinamico.tipoCampo !='C'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaOperaciones\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n formControlName=\"operacion\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\n <label>{{'operacion' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n </p-fieldset>\n </div>\n </form>\n \n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{reporteMarcadorDinamico.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{reporteMarcadorDinamico.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaDinamico()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"reporteMarcadorDinamico.llave != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarColumnaDinamico($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n </p-tabPanel>\n \n </p-tabView>\n </p-tabPanel>\n <p-tabPanel header=\"{{'reporte' | translate }} {{'texto' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.archivoTexto\" size=\"50\"\n maxlength=\"200\">\n <label>{{'nombrearchivo' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSeparadores\" [(ngModel)]=\"reporteFuente.separador\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporteFuente.separador) && clickGuardarReporteTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporteFuente.separador) && clickGuardarReporteTexto\"\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\n <label>{{'separador' | translate }}*</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.cifradoTexto\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label> \n </p-floatLabel>\n </div>\n\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarSeparador()\">\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"flex justify-content-between lign-items-center mb-3\">\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevoMarcadorTexto()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorTexto\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorTexto\">\n <button pButton pRipple (click)=\"verNuevoMarcadorTexto = false; clickGuardarMarcadorTexto = false;\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaMarcadoresTexto\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" \n [rows]=\"10\" [totalRecords]=\"listaMarcadoresTexto.length\"\n [paginator]=\"listaMarcadoresTexto.length > 10\" *ngIf=\"!verNuevoMarcadorTexto\"\n (onRowSelect)=\"verMarcadorTexto($event)\" (onRowUnselect)=\"verMarcadorTexto($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'tipo' | translate }}</th>\n <th>{{'columna' | translate }}</th>\n <th>{{'formato' | translate }}</th>\n <th>{{'orden' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-marctexto>\n <tr [pSelectableRow]=\"marctexto\">\n <td>{{marctexto.tipoGrafico | reporteFuentePipe : 'listaTipoMarcadoresTexto'}}</td>\n <td>{{marctexto.nombreColumna}}</td>\n <td>{{marctexto.formato}}</td>\n <td>{{marctexto.alto}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorTexto\"> \n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoMarcadorTexto\" [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"marcadorTexto.tipoGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.tipoGrafico) && clickGuardarMarcadorTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.tipoGrafico) && clickGuardarMarcadorTexto\"></p-dropdown>\n <label>{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico == 'D'\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"marcadorTexto.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.reporteColumna) && clickGuardarMarcadorTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.reporteColumna) && clickGuardarMarcadorTexto\"></p-dropdown>\n <label>{{'columna' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.formato\" maxlength=\"50\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.formato) && clickGuardarMarcadorTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.formato) && clickGuardarMarcadorTexto\">\n <label>{{marcadorTexto.tipoGrafico == 'D' ? ('formato' | translate)+'*' : ('valor' | translate)+'*' }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico == 'D'\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.ancho\" maxlength=\"22\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.ancho) && clickGuardarMarcadorTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.ancho) && clickGuardarMarcadorTexto\">\n <label>{{'ancho' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.alto\" maxlength=\"22\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.alto) && clickGuardarMarcadorTexto\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.alto) && clickGuardarMarcadorTexto\">\n <label>{{'orden' | translate}} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorTexto.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{marcadorTexto.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorTexto()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"marcadorTexto.llave != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarMarcadoTexto($event)\">\n </button>\n </div>\n </div>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{'tabla' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.nombreTabla\" maxlength=\"4000\">\n <label>{{'nombretabla' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-8\">\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <p-pickList [source]=\"listaTabla\" [target]=\"listaNoTabla\" sourceHeader=\"Asociado\" sourceFilterPlaceholder=\"Asociado\"\n targetHeader=\"Desasociado\" [dragdrop]=\"true\" [responsive]=\"true\" targetFilterPlaceholder=\"Desasociado\"\n filterBy=\"nombre\" *ngIf=\"isFuente()\" (onSourceReorder)=\"reorderTabla($event)\"\n (onMoveAllToTarget)=\"moverADesasociadoTabla($event)\" (onMoveAllToSource)=\"moverAAsociadoTabla($event)\"\n (onMoveToTarget)=\"moverADesasociadoTabla($event)\" (onMoveToSource)=\"moverAAsociadoTabla($event)\">\n <ng-template let-tabla pTemplate=\"item\">\n <div>\n <label>{{tabla.nombre}}</label>\n </div>\n </ng-template>\n </p-pickList>\n </p-tabPanel>\n <p-tabPanel header=\"{{'archivoxml' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.tagEncabezado\"></textarea>\n <label>{{'tagencabezado' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.tagCierreEncabezado\"></textarea>\n <label>{{'tagcierreencabezado' | translate }}</label>\n </p-floatLabel> \n </div>\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.estructuraRegistro\"></textarea>\n <label>{{'tagregistro' | translate }}</label>\n </p-floatLabel> \n </div>\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.cifradoXml\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label> \n </p-floatLabel>\n </div>\n\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n </button>\n </div>\n </div>\n </div>\n <div class=\"flex justify-content-between align-items-center mb-3\">\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevoMarcadorXML()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorXML\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorXML\">\n <button pButton pRipple (click)=\"verNuevoMarcadorXML = false; clickGuardarMarcadorXML = false;\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaXML\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" \n [rows]=\"10\" [totalRecords]=\"listaXML.length\"\n [paginator]=\"listaXML.length > 10\" *ngIf=\"!verNuevoMarcadorXML\"\n (onRowSelect)=\"verMarcadorXML($event)\" (onRowUnselect)=\"verMarcadorXML($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'descripcion' | translate }}</th>\n <th>{{'tipo' | translate }}</th>\n <th>{{'columna' | translate }}</th>\n <th>{{'marcador' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-marctexto>\n <tr [pSelectableRow]=\"marctexto\">\n <td>{{marctexto.descripcion}}</td>\n <td>{{marctexto.tipo | reporteFuentePipe : 'listaTipoDatoMarcadores'}}</td>\n <td>{{marctexto.nombreColumna}}</td>\n <td>{{marctexto.marcador}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorXML\"> \n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.descripcion\" maxlength=\"100\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorXML.descripcion) && clickGuardarMarcadorXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorXML.descripcion) && clickGuardarMarcadorXML\">\n <label>{{'descripcion' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaTipoMarcadorXML\" [autoDisplayFirst]=\"false\" \n [(ngModel)]=\"marcadorXML.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorXML.tipo) && clickGuardarMarcadorXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorXML.tipo) && clickGuardarMarcadorXML\"></p-dropdown>\n <label>{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MA','MR'].includes(marcadorXML.tipo)\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.marcador\" >\n <label>{{'marcador' | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'TB'\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.marcador\" maxlength=\"5\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" >\n <label>{{'tabla' | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MA'\" >\n <p-floatLabel>\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"marcadorXML.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\" ></p-dropdown>\n <label>{{'columna' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MA'\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.formato\" >\n <label>{{'formato' | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MR'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.textoRegistro\" ></textarea>\n <label>{{'texto' | translate }}</label> \n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MR','TB'].includes(marcadorXML.tipo)\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuentes\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"marcadorXML.fuente\" optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label>{{'fuente' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MR','TB'].includes(marcadorXML.tipo)\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.filtro\"></textarea>\n <label>{{'filtro' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'TB'\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.estructuraTablaXML\"></textarea>\n <label>{{'estructuratabla' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorXML.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{marcadorXML.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorXML()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"marcadorXML.llave != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarMarcadorXML($event)\">\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"verNuevoMarcadorXML && marcadorXML.llave != null && (marcadorXML.tipo == 'MR' || marcadorXML.tipo == 'TB')\">\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampoTablaXML()\" icon=\"pi pi-plus\" [disabled]=\"habilitaCampo\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table [value]=\"listaCamposMarcadorXML\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n [rows]=\"10\" [totalRecords]=\"listaCamposMarcadorXML.length\"\n [paginator]=\"listaCamposMarcadorXML.length > 10\" \n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n editMode=\"row\" dataKey=\"llave\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"width: 30%;\">{{'campo' | translate }}</th>\n <th style=\"width: 30%;\">{{'marcador' | translate }}</th>\n <th style=\"width: 30%;\">{{'formato' | translate }}</th>\n <th style=\"width: 10%\"> </th>\n </tr>\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verReporteMarcadorDetalleXML\">\n <td style=\"width: 30%;\">\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.campoFuente\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.campoFuente) && clickGuardarMarcadorCampoXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.campoFuente) && clickGuardarMarcadorCampoXML\">\n </td>\n <td style=\"width: 30%;\">\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.marcador\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.marcador) && clickGuardarMarcadorCampoXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.marcador) && clickGuardarMarcadorCampoXML\">\n </td>\n <td style=\"width: 30%;\">\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.formato\" style=\"width: -webkit-fill-available\">\n </td>\n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\" >\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCampoMarcadorXML(campoMarcadorInsertarXML)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"verReporteMarcadorDetalleXML = false; habilitaCampo = false;\" icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"campo\">\n <td style=\"width: 30%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.campoFuente\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampoXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampoXML\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.campoFuente}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 30%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.marcador\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.marcador) && clickGuardarMarcadorCampoXML\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.marcador) && clickGuardarMarcadorCampoXML\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.marcador}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 30%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.formato\" style=\"width: -webkit-fill-available\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{campo.formato}}\n </ng-template>\n </p-cellEditor>\n </td>\n \n \n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarCampoMarcadorXML(campo)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\" (click)=\"cargarListaCampoMarcadorXMLAsync()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" [disabled]=\"habilitaCampo\" (click)=\"eliminarCampoMarcadorXML($event,campo)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </p-tabPanel>\n <p-tabPanel header=\"{{'columnario' | translate }}\">\n <p-accordion (onOpen)=\"cambiarTabColumnario($event)\" >\n <p-accordionTab [selected]=\"true\" >\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\n {{'columnasbasicas'|translate}}\n </ng-template>\n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevoColumnaBasica()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoReporteColumnario\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoReporteColumnario\">\n <button pButton pRipple (click)=\"verNuevoReporteColumnario = false; clickGuardarReporteColumnario = false;\" label= \"{{'listado' | translate}} {{'columnasbasicas' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"listaReporteColumnario\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" \n [rows]=\"10\" [totalRecords]=\"listaReporteColumnario.length\"\n [paginator]=\"listaReporteColumnario.length > 10\" *ngIf=\"!verNuevoReporteColumnario\"\n (onRowSelect)=\"verReporteColumnario($event)\" (onRowUnselect)=\"verReporteColumnario($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'nombre' | translate }}</th>\n <th>{{'columna' | translate }}</th>\n <th>{{'tipo' | translate }}</th>\n <th>{{'orden' | translate }}</th>\n <th>{{'operacion' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.nombre}}</td>\n <td>{{bean.nombreColumna}}</td>\n <td>{{bean.tipo | reporteColumnarioPipe: 'listaTipoColumna'}}</td>\n <td>{{bean.orden}}</td>\n <td>{{bean.operacion | reporteColumnarioPipe: 'listaOperacion'}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"verNuevoReporteColumnario\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.nombre\" maxlength=\"100\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.nombre) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.nombre) && clickGuardarReporteColumnario\">\n <label>{{'nombre' | translate}} *</label>\n </p-floatLabel>\n </div>\n \n <div class=\"field col-12 md:col-4\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaTipoColumnas\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.tipo) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.tipo) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'tipocolumna' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.reporteColumna) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.reporteColumna) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'columna' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"columnaBasica.tipo == 'D'\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaOperacionesColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.operacion\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacion) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacion) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'operacion' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaOperacionesExcelColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.operacionHorizontal\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionHorizontal) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionHorizontal) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'operacionhorizontal' | translate }} *</label>\n </p-floatLabel>\n </div>\n <!-- fila Operacion Vertical -->\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.columnaOperacionVertical\" maxlength=\"5\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.columnaOperacionVertical) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.columnaOperacionVertical) && clickGuardarReporteColumnario\">\n <label>{{'columnaoperacion' | translate}} *</label>\n </p-floatLabel>\n </div>\n <!-- Operacion Verticial -->\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaOperacionesExcelColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.operacionVertical\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionVertical) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionVertical) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'operacionvertical' | translate }} *</label>\n </p-floatLabel>\n </div>\n <!-- Orden -->\n <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarOrden()\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.orden\" maxlength=\"5\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.orden) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.orden) && clickGuardarReporteColumnario\">\n <label>{{'orden' | translate}} *</label>\n </p-floatLabel>\n </div>\n <!-- Ordenamiento Filas -->\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoLabel() || isTipoFila()\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaOrdenamiento\" [autoDisplayFirst]=\"false\" [showClear]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaBasica.orderBy\" optionLabel=\"nombre\" optionValue=\"codigo\" \n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.orderBy) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.orderBy) && clickGuardarReporteColumnario\"></p-dropdown>\n <label>{{'ordenamiento' | translate }} *</label>\n </p-floatLabel>\n </div>\n <!-- Ordenamiento Datos de la consulta -->\n <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarOrdenConsulta()\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.ordenConsulta\" maxlength=\"5\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.ordenConsulta) && clickGuardarReporteColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.ordenConsulta) && clickGuardarReporteColumnario\"\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" >\n <label>{{'ordenconsulta' | translate}} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{columnaBasica.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{columnaBasica.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaBasica()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"columnaBasica.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarColumnaBasica($event)\">\n </button>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <p-accordion (onOpen)=\"cambiarTabColumnario($event)\">\n <p-accordionTab >\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\n {{'datosadicionales'|translate}}\n </ng-template>\n <p-fieldset class=\"fieldsintitulo\" >\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n \n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"reporteFuente.archivoExcelColumnario ? reporteFuente.archivoExcelColumnario: ''\"\n [extensiones]=\"'xls;xlsx;xlsm'\" [mostraroblicargo]=\"true\" [labelrar]=\"'plantilla' | translate\"\n (onSelected)=\"obtenerArchivoColumnario($event)\"></app-input-helper-seleccion-plantilla>\n </p-floatLabel>\n </div>\n \n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.hojaExcel\" size=\"25\" maxlength=\"20\">\n <label>{{'nombre' | translate }} {{'de' | translate }} {{'la' | translate }} {{'hoja' |\n translate }}</label> \n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"reporteFuente.filaInicioColumnario\" maxlength=\"5\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\n <label>{{'filainiciocolumnario' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" appendTo=\"body\"\n [(ngModel)]=\"reporteFuente.cifradoColumnario\" optionLabel=\"nombre\"\n optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label> \n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.sintaxisColumnario\"></textarea>\n <label>{{'sintaxiscolumnario' | translate }}</label>\n </p-floatLabel>\n </div>\n \n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n </button>\n </div>\n </div>\n </p-fieldset>\n <div class=\"flex justify-content-between align-items-center mb-3 mt-3\">\n <h1 class=\"text-xl\">{{'columnaadicional' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevaColumnaAdicional()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoColumnaAdicional\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoColumnaAdicional\">\n <button pButton pRipple (click)=\"verNuevoColumnaAdicional = false; clickGuardarColumnaAdicional = false;\" label= \"{{'listado' | translate}} {{'columnaadicional' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"columnasAdicionales\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" \n [rows]=\"10\" [totalRecords]=\"columnasAdicionales.length\"\n [paginator]=\"columnasAdicionales.length > 10\" *ngIf=\"!verNuevoColumnaAdicional\"\n (onRowSelect)=\"verDetalleAdicional($event)\" (onRowUnselect)=\"verDetalleAdicional($event)\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th>{{'nombre' | translate }}</th>\n <th>{{'orden' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-columnaadicional>\n <tr [pSelectableRow]=\"columnaadicional\">\n <td>{{columnaadicional.nombre}}</td>\n <td>{{columnaadicional.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <p-fieldset class=\"fieldsintitulo\" *ngIf=\"verNuevoColumnaAdicional\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-3\" >\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"columnaAdicional.nombre\" maxlength=\"100\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.nombre) && clickGuardarColumnaAdicional\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.nombre) && clickGuardarColumnaAdicional\">\n <label>{{'alias' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-3\" >\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"columnaAdicional.orden\" maxlength=\"5\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orden) && clickGuardarColumnaAdicional\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orden) && clickGuardarColumnaAdicional\" />\n <label>{{'orden' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaOrdenamiento\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"columnaAdicional.orderBy\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orderBy) && clickGuardarColumnaAdicional\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orderBy) && clickGuardarColumnaAdicional\"></p-dropdown>\n <label>{{'ordenamiento' | translate }} *</label>\n </p-floatLabel>\n </div>\n \n <div class=\"field col-12 md:col-3\" >\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"columnaAdicional.ordenConsulta\" maxlength=\"5\" \n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.ordenConsulta) && clickGuardarColumnaAdicional\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.ordenConsulta) && clickGuardarColumnaAdicional\" />\n <label>{{'ordenconsulta' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\" >\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"columnaAdicional.sintaxis\" maxlength=\"4000\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.sintaxis) && clickGuardarColumnaAdicional\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.sintaxis) && clickGuardarColumnaAdicional\"></textarea>\n <label>{{'sintaxis' | translate}} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{columnaAdicional.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{columnaAdicional.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaAdicional()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"columnaAdicional.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarColumnaAdicional($event)\">\n </button>\n </div>\n </div>\n </p-fieldset>\n </p-accordionTab>\n <p-accordionTab >\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\n {{'marcadores'|translate}}\n </ng-template>\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n (click)=\"nuevoMarcadorColumnario()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorColumnario\">\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorColumnario\">\n <button pButton pRipple (click)=\"verNuevoMarcadorColumnario = false; clickGuardarMarcadorColumnario = false;\" label= \"{{'listado' | translate}} {{'marcador' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n </div>\n <p-table [value]=\"marcadoresColumnario\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n dataKey=\"llaveTabla\" selectionMode=\"single\" \n [rows]=\"10\" [totalRecords]=\"marcadoresColumnario.length\"\n [paginator]=\"marcadoresColumnario.length > 10\" *ngIf=\"!verNuevoMarcadorColumnario\"\n (onRowSelect)=\"verDetalleMarcadorColumnario($event)\" (onRowUnselect)=\"verDetalleMarcadorColumnario($event)\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th>{{'nombre' | translate }}</th>\n <th>{{'tipomarcador' | translate }}</th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-marcador>\n <tr [pSelectableRow]=\"marcador\">\n <td>{{marcador.marcador}}</td>\n <td>{{marcador.tipo | reporteColumnarioPipe: 'listaTipoMarcador'}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"verNuevoMarcadorColumnario\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\" >\n <div class=\"field col-12 md:col-4\" >\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"marcadorColumnario.descripcion\" maxlength=\"4000\" \n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.descripcion) && clickGuardarMarcadorColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.descripcion) && clickGuardarMarcadorColumnario\" />\n <label>{{'descripcion' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\" >\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"marcadorColumnario.marcador\" maxlength=\"50\" \n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.marcador) && clickGuardarMarcadorColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.marcador) && clickGuardarMarcadorColumnario\" />\n <label>{{'marcador' | translate}} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaTipoMarcadorColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n [(ngModel)]=\"marcadorColumnario.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.tipo) && clickGuardarMarcadorColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.tipo) && clickGuardarMarcadorColumnario\"></p-dropdown>\n <label>{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n \n <div class=\"field col-12 md:col-12\" >\n <p-floatLabel>\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"marcadorColumnario.textoRegistro\" maxlength=\"4000\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.textoRegistro) && clickGuardarMarcadorColumnario\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.textoRegistro) && clickGuardarMarcadorColumnario\"></textarea>\n <label>{{'valor' | translate}} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" >\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorColumnario.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\n label=\"{{marcadorColumnario.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorColumnario()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n *ngIf=\"marcadorColumnario.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\n (click)=\"eliminarMarcadorColumnario($event)\">\n </button>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n </p-tabPanel>\n <p-tabPanel header=\"{{'grafica' | translate }}\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.codigo\" size=\"25\"\n maxlength=\"100\">\n <label>{{'codigo' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tituloGrafico\" size=\"25\"\n maxlength=\"100\">\n <label>{{'titulo' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoGrafico\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporteFuente.tipoGrafico\" optionLabel=\"nombre\"\n optionValue=\"codigo\"></p-dropdown>\n <label>{{'tipo' | translate }}</label> \n </p-floatLabel>\n </div>\n </div>\n\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"isSql()\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\" \n label=\"{{'link_actualizar' | translate}}\" (click)=\"guardarGrafico()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined background-100\" icon=\"pi pi-eye\"\n label=\"{{'link_ver' | translate}}\" (click)=\"verGrafico()\">\n </button>\n </div>\n </div>\n </div>\n\n <p-table [value]=\"paginadorColumnas\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"20\" [totalRecords]=\"paginadorColumnas.length\" [paginator]=\"paginadorColumnas.length > 20\" >\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'columna' | translate }}</th>\n <th>{{'sintaxis' | translate }}</th>\n <th>{{'tipo' | translate }}</th>\n <th>{{'accion' | translate }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.nombre}}</td>\n <td>{{bean.sintaxis}}</td>\n <td>{{bean.tipoDato | reporteFuentePipe : 'listaTipoDato'}}</td>\n <td>\n <p-dropdown [options]=\"listaGraficoSencillo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"bean.graficoFuente\" optionLabel=\"nombre\"\n optionValue=\"codigo\"></p-dropdown>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table> \n\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl\">Colores</h1>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoColorCategoria()\" icon=\"pi pi-plus\"\n [disabled]=\"habilitaCampo\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table [value]=\"paginadorColoresGrafica\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n [rows]=\"10\" [totalRecords]=\"paginadorColoresGrafica.length\"\n [paginator]=\"paginadorColoresGrafica.length > 10\" \n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n editMode=\"row\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"width: 45%\">{{'categoria' | translate}}</th>\n <th style=\"width: 45%\">{{'color' | translate}}</th>\n <th style=\"width: 10%\"> </th>\n </tr>\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verColorCategoriaDetalle\">\n <td style=\"width: 45%\">\n <input pInputText type=\"text\" [(ngModel)]=\"colorCategoria.titulo\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(colorCategoria.titulo) && clickGuardarColorCategoria\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(colorCategoria.titulo) && clickGuardarColorCategoria\">\n </td>\n <td style=\"width: 45%\">\n <div style=\"width: 100%\">\n <p-colorPicker [(ngModel)]=\"colorCategoria.banda\" appendTo=\"body\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(colorCategoria.banda) && clickGuardarColorCategoria\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(colorCategoria.banda) && clickGuardarColorCategoria\" />\n </div>\n </td>\n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarColorCategoria(colorCategoria)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"verColorCategoriaDetalle = false\" icon=\"pi pi-times\" (click)=\"cancelarColorCategoria()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-color let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"color\" style=\"width: 100%\">\n <td style=\"width: 45%\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [(ngModel)]=\"color.titulo\" style=\"width: -webkit-fill-available\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(color.titulo) && clickGuardarColorCategoria\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(color.titulo) && clickGuardarColorCategoria\">\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{color.titulo}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 45%\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div style=\"width: 100%\">\n <p-colorPicker [(ngModel)]=\"color.banda\" appendTo=\"body\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(color.banda) && clickGuardarColorCategoria\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(color.banda) && clickGuardarColorCategoria\"/>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <p-colorPicker [(ngModel)]=\"color.banda\" [disabled]=\"true\" />\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%\">\n <div class=\"flex justify-content-end\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarColorCategoria(color)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\" (click)=\"cancelarEdicionColor()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarColorCategoria($event, color)\" [disabled]=\"habilitaCampo\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n <div class=\"flex justify-content-between card mt-3\" *ngIf=\"grafica\">\n <h1 class=\"text-xl\">{{'grafica' | translate}}</h1>\n <div style=\"width: 35%\"></div>\n <div style=\"width: 30%\">\n <p-chart [type]=\"tipoGrafica\" [data]=\"grafica.datosGrafica.data\" [options]=\"grafica.datosGrafica.options\"></p-chart>\n </div>\n <div style=\"width: 35%\"></div>\n </div>\n </p-tabPanel>\n</p-tabView>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel'; \nimport { EjecucionReporteService } from '../../services/ejecucionreporte.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextarea, InputTextareaModule } from 'primeng/inputtextarea';\nimport { PanelModule } from 'primeng/panel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { MessageService } from 'primeng/api';\n\n@Component({\n selector: 'app-popup-sentencia',\n imports: [DialogModule, InputTextareaModule, PanelModule, TranslateModule, FormsModule,],\n standalone: true,\n providers: [MessageService],\n templateUrl: './popup-sentencia.component.html',\n styleUrls: ['./popup-sentencia.component.scss']\n})\nexport class PopupSentenciaComponent implements OnInit {\n\n @Output() public regresar: EventEmitter<any> = new EventEmitter();\n @Input() public reporte: ReporteFuenteModel;\n @Input() public parametros: any[] = [];\n public listaEntrada: any[] = []\n \n public sentencia: string;\n @Input() public mostrarPopup: boolean;\n \n constructor(private reporteService: EjecucionReporteService,\n private notifService: ToastService) { }\n\n ngOnInit(): void {\n }\n\n mostrar(){\n this.sentencia = ''\n this.parametros.forEach(element => {\n this.listaEntrada.push(element.unionDTO)\n });\n \n this.reporteService.obtenerSentencia({\n reporteFuenteDTO: this.reporte,\n listaReporteEntrada: this.listaEntrada\n }).subscribe({\n next: (data) => { \n this.sentencia = data.resultado;\n },\n })\n }\n\n ocultar(){\n this.mostrarPopup = false;\n this.regresar.emit(false);\n\n }\n\n}\n","<p-dialog id='popupSentencia' header=\"{{'sentencia' | translate}}\" [(visible)]=\"mostrarPopup\" (onShow)=\"mostrar()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <p-panel>\n <textarea pInputTextarea [(ngModel)]=\"sentencia\" rows=\"5\" cols=\"30\"\n [disabled]=\"true\"\n class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\">\n </textarea>\n </p-panel>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../pipes/general.pipe';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\nimport { CargarArchivosService } from '../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../shared/servicios/encriptado-basico.service';\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\nimport { ReporteFuentePipe } from '../../pipes/reporte-fuente.pipe';\nimport { EjecucionReporteService } from '../../services/ejecucionreporte.service';\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel';\nimport { ReporteEntradaModel } from '../../../seguridad/modelos/ReporteEntradaModel';\nimport { ReporteSoporteModel } from '../../../seguridad/modelos/ReporteSoporte';\nimport { TableColumn } from '../../../core/modelos/table-column.model';\nimport { ToastService } from '../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { CargarControlFuncionalidadService } from '../../../core/servicios/cargar-control-funcionalidad.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TableModule } from 'primeng/table';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { PopupSentenciaComponent } from '../popup-sentencia/popup-sentencia.component';\nimport { FormsModule } from '@angular/forms';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { DataExporter } from '../../../core/servicios/data-exporter-table.utils';\n\n@Component({\n selector: 'app-popup-reporte',\n imports: [CommonModule, DialogModule, ConfirmPopupModule, AccordionModule, TableModule, TranslateModule, DatePipe, FieldsetModule, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, RadioButtonModule, PopupSentenciaComponent, FormsModule, FloatLabelModule],\n standalone: true,\n providers: [MessageService, ConfirmationService, DataExporter],\n templateUrl: './popup-reporte.component.html',\n styleUrls: ['./popup-reporte.component.scss']\n})\nexport class PopupReporteComponent implements OnInit {\n\n @Input() public mostrar = false;\n @Input() public aplicacion: string;\n @Input() public reporte: ReporteFuenteModel = new ReporteFuenteModel;\n @Input() public entradasPuntoProceso: any[]=[];\n @Output() public regresar: EventEmitter<any> = new EventEmitter();\n\n public panel: string = 'entrada';\n public operacion: string;\n public listaEntrada: ReporteEntradaModel[] = [];\n public listaSegundoPlano: any[] = [];\n public parametros: any[] = [];\n public elementoBorrar: any = {};\n public generaciones: any[] = [];\n public operaciones: any[] = [];\n public mostrarOtraSeleccion: boolean;\n\tpublic mostrarArchivosSoporte: boolean;\n\tpublic mostrarConsultaCasoError: boolean;\n public correo: string;\n public tipoReporte: string;\n public soporteBase: string;\n public tipoArchivo: string;\n public bloquearCorreo: boolean;\n public mapaTipoArchivos;\n public listadoArchivoSoporte: ReporteSoporteModel[] = [];\n public mostrarPopupSentencia: boolean;\n\n public items: MenuItem[];\n public vistaVisualizar: string;\n paginator={rows:2,totalRecords:0}\n public mostrarParametros: boolean;\n\tpublic mostrarQueDeseaHacer: boolean;\n\n public columnas: TableColumn[] = [];\n public listaRegistro: any[] = [];\n\n public existeJasper: boolean = false;\n cols: any[];\n exportColumns: any[];\n nombreArchivo = 'Tabla';\n columnasExportExcel: any[];\n\n constructor(private generalService: GeneralService,\n private ejecucionReporteService: EjecucionReporteService,\n private confirmationService: ConfirmationService,\n private notificacionService: ToastService,\n private authService: AuthService,\n private translateService: TranslateService,\n private cargarArchivoService: CargarArchivosService,\n public utilsService: UtilsService,\n private controlFuncionalidad: CargarControlFuncionalidadService,\n private encriptadoBasico: EncriptadoBasicoService,\n private reporteFuentePipe: ReporteFuentePipe,\n private generalPipe: GeneralPipe,\n private cargarArchivo: CargarArchivosService,\n private dataExporter: DataExporter,\n private encriptadorArchivo: EncriptadoBasicoService,) { } \n \n ngOnInit(): void {\n this.mapaTipoArchivos = this.reporteFuentePipe.MAPA_TIPO_ARCHIVOS; \n this.aplicacion = this.authService.getTokenKey('aplicacion')\n }\n\n async mostrarPopup(){\n this.panel = 'entrada';\n this.mostrarQueDeseaHacer = false;\n this.tipoReporte = null;\n this.mostrarConsultaCasoError = this.validarControlFuncionalidad('reporte:versentenciaerror');\n this.operacion = null;\n this.elementoBorrar = {}\n this.listaSegundoPlano = []\n this.listaRegistro = [];\n this.columnas = [];\n this.existeJasper = false;\n if (this.reporte.llave) {\n var resultado = await this.ejecucionReporteService.getDatosEjecucionReporte({llave: this.reporte.llave}).toPromise();\n this.reporte = resultado.reporte;\n delete this.reporte['alias']\n this.cargarListaEntrada();\n this.traerSegundoPlano();\n this.cargarCorreo();\n await this.validarExisteJasper();\n await this.cargarGeneraciones();\n this.cargarOperaciones();\n this.utilsService.resizeWindowIFrame();\n }\n this.utilsService.resizeWindowIFrame();\n }\n\n cargarMenu(){\n this.items = [\n \n {\n label: this.translateService.instant('ejecucion'),\n icon: 'glyphicons glyphicons-plus-sign',\n command: (event) => {\n this.vistaVisualizar = 'entrada';\n },\n },\n {\n label: this.translateService.instant('segundoplano'),\n icon: 'glyphicons glyphicons-file-minus',\n command: (event) => {\n this.vistaVisualizar = 'segundoplano';\n },\n visible: this.listaSegundoPlano.length > 0,\n }\n ]\n }\n\n async cargarGeneraciones(){\n this.generaciones = [];\n if ( this.utilsService.isNotBlank(this.reporte.tituloParametro) && this.existeJasper){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_JASPERDINAMICO, \n label: this.reporteFuentePipe.DESC_GENERACION_JASPERDINAMICO})\n }\n if (this.utilsService.isNotBlank(this.reporte.jasperFijo) && this.utilsService.isNotBlank(this.reporte.modoFijo)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_JASPERFIJO, \n label: this.reporteFuentePipe.DESC_GENERACION_JASPERFIJO})\n }\n if (this.utilsService.isNotBlank(this.reporte.archivoTodo) && this.utilsService.isNotBlank(this.reporte.hojaExcel)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_EXCEL, \n label: this.reporteFuentePipe.DESC_GENERACION_EXCEL})\n }\n if (this.utilsService.isNotBlank(this.reporte.archivoIndividual) || this.reporte.unicoArchivo == 'N'){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_PLANTILLA, \n label: this.reporteFuentePipe.DESC_GENERACION_PLANTILLA})\n }\n if (this.utilsService.isNotBlank(this.reporte.separador)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_ARCHIVOPLANO, \n label: this.reporteFuentePipe.DESC_GENERACION_ARCHIVOPLANO})\n }\n if (this.utilsService.isNotBlank(this.reporte.nombreTabla)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_TABLA, \n label: this.reporteFuentePipe.DESC_GENERACION_TABLA})\n }\n if (this.utilsService.isNotBlank(this.reporte.tagEncabezado) && this.utilsService.isNotBlank(this.reporte.estructuraRegistro)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_XML, \n label: this.reporteFuentePipe.DESC_GENERACION_XML})\n }\n if (this.utilsService.isNotBlank(this.reporte.archivoExcelColumnario) && this.utilsService.isNotBlank(this.reporte.hojaExcelColumnario)){\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_COLUMNARIO, \n label: this.reporteFuentePipe.DESC_GENERACION_COLUMNARIO})\n }\n }\n\n async validarExisteJasper(){\n try {\n var data = await this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporte.llave + '.jrxml'), 'ruta_plantillas', this.aplicacion).toPromise();\n if (data) {\n this.existeJasper = true;\n } \n } catch (error) {\n this.existeJasper = false;\n }\n }\n\n cargarOperaciones(){\n this.bloquearCorreo = true;\n this.operaciones = [];\n if (this.tipoReporte){\n if (this.tipoReporte != this.reporteFuentePipe.GENERACION_TABLA) {\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_DESCARGAR,\n label: this.reporteFuentePipe.DESC_OPERACION_DESCARGAR});\n \n if (this.validarControlFuncionalidad('reporte:enviocorreo')){\n this.bloquearCorreo = false;\n }\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_ENVIARCORREO,\n label: this.reporteFuentePipe.DESC_OPERACION_ENVIARCORREO});\n if (this.reporteFuentePipe.MOMENTOS_SEGUNDO_PLANO == this.reporte.momento) {\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_SEGUNDOPLANO,\n label: this.reporteFuentePipe.DESC_OPERACION_SEGUNDOPLANO});\n }\n if ((this.tipoReporte == this.reporteFuentePipe.GENERACION_JASPERFIJO && this.reporte.modoFijo == 'P')\n || this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.descargarFuente != 'S'){\n \n if (this.reporte.archivoHtml && this.reporte.campoEmail){\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_ENVIOMASIVO,\n label: this.reporteFuentePipe.DESC_OPERACION_ENVIOMASIVO});\n }\n if (this.reporte.publicacion && this.reporte.campoPublica){\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_PUBLICAR,\n label: this.reporteFuentePipe.DESC_OPERACION_PUBLICAR});\n }\n if (this.reporte.archivoHtml && this.reporte.campoEmail && this.reporte.publicacion && this.reporte.campoPublica ){\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_CORREOPUBLICAR,\n label: this.reporteFuentePipe.DESC_OPERACION_CORREOPUBLICAR});\n }\n }\n //pte proceso externo\n }\n }\n }\n\n cambioValorLista(event, parametro){\n if (event.value){\n let lista = event.value.split(':')\n if (parametro.unionDTO.tipoDato == 'N'){\n parametro.unionDTO.valor = parseInt(lista[0])\n } else {\n parametro.unionDTO.valor = lista[0]\n }\n }\n this.utilsService.resizeWindowIFrame();\n }\n \n cambioSoporteBase(event) {\n if (this.soporteBase == null) {\n this.cargarOperaciones();\n return;\n } \n this.generalService.queryForObject(new GeneralModel('ReporteSoporteDTO', null, false, {llaveTabla: this.soporteBase})).subscribe(archivoBase => {\n if (archivoBase == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.soporteBase = archivoBase.llaveTabla;\n\t\t\tthis.reporte.archivoIndividual = archivoBase.archivoIndividual;\n\t\t\tthis.cargarOperaciones();\n this.utilsService.resizeWindowIFrame();\n });\n \n }\n\n cargarCorreo(){\n this.generalService.queryForObject(new GeneralModel('UsuarioDTO', null, true, {login: this.authService.getTokenKey('usuario')})).subscribe(data => {\n this.correo = data.email;\n })\n }\n\n cargarListaEntrada(){\n this.mostrarParametros = false;\n if (this.entradasPuntoProceso.length > 0){\n this.parametros = this.entradasPuntoProceso; \n this.parametros.forEach(element => {\n if (element.unionDTO.solicitar == 'S'){\n this.mostrarParametros = true;\n }\n if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null){\n element.unionDTO.valor = new Date(element.unionDTO.valor)\n }\n })\n this.utilsService.resizeWindowIFrame();\n\n } else {\n this.ejecucionReporteService.obtenerListaEntradaEjecucion(this.reporte).subscribe(data => {\n this.parametros = data;\n this.parametros.forEach(element => {\n if (element.unionDTO.solicitar == 'S'){\n this.mostrarParametros = true;\n }\n if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null){\n element.unionDTO.valor = new Date(element.unionDTO.valor)\n }\n })\n this.utilsService.resizeWindowIFrame();\n })\n }\n }\n\n traerSegundoPlano(){\n let usuario = this.authService.getTokenKey('usuario')\n this.generalService.queryForList(new GeneralModel('EjecucionReporteDTO', null, false, {\n adicionado: usuario, \n reporteFuente: this.reporte.llave})).subscribe(data => {\n this.listaSegundoPlano = data;\n this.paginator.totalRecords = this.listaSegundoPlano.length;\n })\n }\n \n verSegundoPlano(event){\n this.elementoBorrar = event.data;\n this.elementoBorrar.fechaAdicionado = this.elementoBorrar.fechaAdicionado ? new Date(this.elementoBorrar.fechaAdicionado) : null\n this.elementoBorrar.inicia = this.elementoBorrar.inicia ? new Date(this.elementoBorrar.inicia) : null\n this.elementoBorrar.termina = this.elementoBorrar.termina ? new Date(this.elementoBorrar.termina) : null\n this.operacion = 'historico'\n this.panel = 'resultado'\n }\n\n eliminarSegundoPlano(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n header: this.translateService.instant('confirmar'),\n accept: () => {\n this.ejecucionReporteService.eliminarEjecucionReporte(this.elementoBorrar).subscribe(data =>{\n this.notificacionService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n this.regresarSegundoPlano();\n this.traerSegundoPlano();\n })\n }\n })\n }\n\n descargarArchivo(){\n this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(this.elementoBorrar.archivo)).subscribe(blob => {\n \n const a = document.createElement('a')\n const objectUrl = URL.createObjectURL(blob)\n a.href = objectUrl\n let partes = this.elementoBorrar.archivo.split(\".\");\n let extension = partes[partes.length - 1];\n a.download = this.utilsService.generarLlave() + '.' + extension;\n a.click();\n URL.revokeObjectURL(objectUrl);\n });\n }\n\n cambioTipoReporte(event){\n this.mostrarQueDeseaHacer = true;\n if (this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.unicoArchivo == 'N' ){\n this.mostrarArchivosSoporte = true;\n this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {\n reporteFuente: this.reporte.llave,\n tipo:'S'\n })).subscribe(data => {\n this.listadoArchivoSoporte = data;\n })\n } else {\n this.mostrarArchivosSoporte = false;\n this.listadoArchivoSoporte = [];\n this.tipoArchivo = null;\n this.operacion = null;\n this.cargarOperaciones();\n //this.descargarArchivo = null;\n } \n }\n\n cambioTipoArchivo(event){\n this.cargarOperaciones();\n }\n\n regresarSegundoPlano(){\n this.elementoBorrar = {}\n this.panel = 'entrada'\n this.operacion = null;\n }\n\n ocultar(){\n this.tipoReporte = null;\n this.mostrar = false;\n this.regresar.emit(false);\n }\n\n validarControlFuncionalidad(valor: string): boolean {\n return this.controlFuncionalidad.getControlFuncionalidad(valor);\n }\n\n sentencia(){\n this.mostrarPopupSentencia = true\n }\n\n regresarSentencia(event){\n this.mostrarPopupSentencia = false;\n }\n\n enviarSegundoPlano(){\n let listaEntrada = []\n this.parametros.forEach(element => {\n listaEntrada.push(element.unionDTO)\n })\n this.ejecucionReporteService.enviarSegundoPlano({\n reporte: this.reporte,\n parametros: listaEntrada,\n tipoReporte: this.tipoReporte,\n operacion: this.operacion,\n correo: this.correo,\n }).subscribe(data => {\n this.notificacionService.showInfo(data.mensaje)\n })\n }\n\n descargarReporte(){\n\n if('F' == this.tipoReporte){\n this.reporte.tipoArchivo = this.tipoArchivo;\n }\n\n let listaEntrada = []\n for(var element of this.parametros) {\n console.log(element)\n if (element.unionDTO.tipoDato == 'B' && element.unionDTO.tipo == 'D') {\n console.log('entra validacion')\n var valor: string = element.unionDTO.valor + \"\";\n if (valor.endsWith('.0')) {\n element.unionDTO.valor = parseInt(element.unionDTO.valor);\n }\n }\n listaEntrada.push(element.unionDTO)\n }\n this.ejecucionReporteService.descargarReporte({\n reporte: this.reporte,\n parametros: listaEntrada,\n tipoReporte: this.tipoReporte,\n operacion: this.operacion,\n correo: this.correo,\n endpointGeneradorReportes: ''\n }).subscribe({\n next: data =>{\n console.log(data)\n this.notificacionService.showInfo(data.mensaje)\n if (!data.archivo) {\n return;\n }\n const decodedData = atob(data.archivo);\n const byteNumbers = new Array(decodedData.length);\n for (let i = 0; i < decodedData.length; i++) {\n byteNumbers[i] = decodedData.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n\n // Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo\n const blob = new Blob([byteArray], { type: data.mime });\n\n // Crea una URL del objeto Blob\n const url = URL.createObjectURL(blob);\n\n // Crea un enlace de descarga y haz clic en él para iniciar la descarga\n const link = document.createElement('a');\n link.href = url;\n link.download = data.nombreArchivo + data.extension;\n document.body.appendChild(link);\n link.click();\n\n // Limpia la URL creada\n URL.revokeObjectURL(url);\n }\n })\n }\n \n descargarReporteSinHilo(){\n let listaEntrada = []\n this.parametros.forEach(element => {\n if (element.unionDTO.tipoDato == 'B' && element.unionDTO.tipo == 'D') {\n if (element.unionDTO.valor.endsWith('.0')) {\n element.unionDTO.valor = parseInt(element.unionDTO.valor);\n }\n }\n listaEntrada.push(element.unionDTO)\n })\n this.ejecucionReporteService.descargarReporte({\n next: data =>{\n this.notificacionService.showInfo(data.mensaje)\n const decodedData = atob(data.archivo);\n const byteNumbers = new Array(decodedData.length);\n for (let i = 0; i < decodedData.length; i++) {\n byteNumbers[i] = decodedData.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n\n // Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo\n const blob = new Blob([byteArray], { type: data.mime });\n\n // Crea una URL del objeto Blob\n const url = URL.createObjectURL(blob);\n\n // Crea un enlace de descarga y haz clic en él para iniciar la descarga\n const link = document.createElement('a');\n link.href = url;\n link.download = data.nombreArchivo + '.' + data.extension;\n document.body.appendChild(link);\n link.click();\n\n // Limpia la URL creada\n URL.revokeObjectURL(url);\n },\n error: err => {\n this.notificacionService.showError(JSON.stringify(err.error.mensajeEtiqueta))\n }\n })\n }\n\n generarTabla(){\n this.panel = 'resultado'\n let listaEntrada = []\n this.columnas = [];\n this.parametros.forEach(element => {\n listaEntrada.push(element.unionDTO)\n })\n this.ejecucionReporteService.generarTabla({reporte: this.reporte, parametros: listaEntrada}).subscribe(data => {\n var columna: TableColumn;\n data.columnas.forEach(element => {\n columna = {\n field: element.nombre.toLowerCase(),\n header: element.nombre,\n width: 300,\n canOrder: true,\n };\n this.columnas.push(columna)\n });\n this.listaRegistro = data.listaRegistro;\n })\n }\n\n crearColumnasExportar() {\n this.exportColumns = this.columnas.map(col => ({ title: col.header, dataKey: col.field }));\n this.columnasExportExcel = [];\n for(let col of this.columnas) {\n this.columnasExportExcel.push(col.field);\n }\n }\n\n exportArchivo(tipoArchivo: string) {\n this.crearColumnasExportar();\n if (tipoArchivo === 'pdf') {\n this.dataExporter.exportPdf(this.listaRegistro, this.exportColumns, this.nombreArchivo);\n } else if ('xls') {\n this.dataExporter.exportExcelColumnas(this.listaRegistro, this.nombreArchivo, this.columnasExportExcel);\n } else if (tipoArchivo === 'csv') {\n this.dataExporter.exportCSV(this.listaRegistro, this.columnasExportExcel, this.nombreArchivo );\n }\n }\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>¿Qué desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { RecursoPuntoModel } from '../../../../seguridad/modelos/RecursoPuntoModel';\nimport { CruceRecursoPuntoModel } from '../../../../seguridad/modelos/CruceRecursoPuntoModel';\nimport { AtributoPuntoModel } from '../../../../seguridad/modelos/AtributoPuntoModel';\nimport { PuntoProcesoModel } from '../../../../seguridad/modelos/PuntoProcesoModel';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FloatLabelModule } from 'primeng/floatlabel';\n\n@Component({\n selector: 'detalle-punto-proceso-reporte',\n imports: [TranslateModule, CommonModule, ConfirmPopupModule, ButtonModule, TableModule, TabViewModule, DropdownModule, FormsModule, InputTextareaModule, FloatLabelModule],\n standalone: true,\n templateUrl: './detalle-punto-proceso-reporte.component.html',\n styleUrls: ['./detalle-punto-proceso-reporte.component.scss'],\n providers: [ConfirmationService, MessageService]\n})\nexport class DetallePuntoProcesoReporteComponent implements OnInit {\n\n public vistaVisualizar: string;\n public vistaVisualizarDetalle: string;\n public listaRecursoPunto: RecursoPuntoModel[] = []\n \n @Input() public modificarReporte : boolean;\n @Input() public llaveReporte : string;\n @Input() public llaveFuente : string;\n @Input() public tipoRecurso : string;\n\n recursoPuntoDTO: RecursoPuntoModel = new RecursoPuntoModel;\n destino: String;\n nuevo: boolean;\n recursosValidar: RecursoPuntoModel[] = [];\n cruces: CruceRecursoPuntoModel[] = [];\n listaEntrada: any[] = [];\n listaPuntosProceso: any[] = [];\n listaAtributoPunto: AtributoPuntoModel[] = [];\n listadoAtributoPunto: any[] = [];\n listaCruce: CruceRecursoPuntoModel[] = [];\n cruceRecursoPunto: CruceRecursoPuntoModel = new CruceRecursoPuntoModel();\n clickGuardar: boolean;\n clickGuardarCruce: boolean;\n paginatorCruce = {\n rows: 10,\n totalRecords: 0,\n };\n paginator = {\n rows: 10,\n totalRecords: 0,\n };\n public habilitaCampo: boolean = false;\n\n constructor(private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private notificacionBusService: ToastService, private generalPipe: GeneralPipe,\n public utilsService: UtilsService,private notificacionesBusService: ToastService,private confirmationService: ConfirmationService) { }\n\n\n ngOnInit(): void {\n this.cargarListas();\n }\n\n verAction(event){\n this.recursoPuntoDTO = event.data;\n this.nuevo = false;\n this.vistaVisualizar = 'detalle' \n this.ver(this.recursoPuntoDTO, this.llaveReporte, null, 'R').then(data =>{})\n this.cancelarCruce()\n }\n\n nuevoPuntoProceso(){\n this.ver(null, this.llaveReporte, null, 'R').then(data =>{})\n\n }\n\n cargar(event){\n this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, {\n reporteFuente: this.llaveReporte,\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows,\n })).subscribe(data => {\n this.listaRecursoPunto = data;\n this.generalService.cantidadRegistros(new GeneralModel('RecursoPuntoDTO', null, false, {\n reporteFuente: this.llaveReporte\n })).subscribe(data => {\n this.paginator.totalRecords = data;\n })\n })\n \n }\n\n async cargarListas() {\n this.listaPuntosProceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('PuntoProcesoDTO', null, false, new PuntoProcesoModel()));\n }\n\n async loadCruce() {\n this.listaCruce = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {recursoPunto: this.recursoPuntoDTO.llaveTabla})).toPromise();\n }\n\n\n\n async ver(recursoPuntoDTO: RecursoPuntoModel, llave: any, destino: String, tipoRecurso) {\n this.vistaVisualizar = 'detalle';\n this.llaveReporte = llave;\n this.tipoRecurso = tipoRecurso;\n this.nuevo = recursoPuntoDTO == null;\n this.recursoPuntoDTO = this.nuevo ? new RecursoPuntoModel() : recursoPuntoDTO;\n await this.cargarRecursoPunto();\n await this.cargarEntradas();\n if (!this.nuevo) {\n await this.loadCruce();\n await this.cargarAtributos(recursoPuntoDTO.puntoProceso);\n }\n }\n\n eliminar(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n accept: () => {\n this.setRespuesta().then(data => {});\n },\n reject: () => {\n }\n });\n }\n\n async setRespuesta(){\n if(this.validarEliminacion()){\n this.recursoPuntoDTO.fechaAdicionado = null;\n this.recursoPuntoDTO.fechaModificado = null;\n await this.generalService.delete(new GeneralModel('RecursoPuntoDTO',null, false,this.recursoPuntoDTO)).toPromise();\n await this.loadCruce();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n this.ocultar();\n return\n }else {\n this.notificacionesBusService.showWarning('Debe eliminar los cruces primero');\n }\n }\n \n validarEliminacion(){\n console.log(this.listaCruce.length)\n console.log(this.listaCruce.length <= 0)\n \n let validador = this.listaCruce.length <= 0;\n return validador;\n }\n\n async cargarRecursoPunto() {\n let verificar: RecursoPuntoModel = new RecursoPuntoModel();\n if (this.tipoRecurso == 'F') {\n verificar.fuente = this.llaveReporte;\n } else if (this.tipoRecurso == 'R') {\n verificar.reporteFuente = this.llaveReporte;\n }\n this.recursosValidar = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, verificar)).toPromise();\n\n }\n\n async cargarEntradas() {\n this.listaEntrada = await this.generalService.queryForList(new GeneralModel('ReporteEntradaDTO', null, false, {reporteFuente: this.llaveReporte})).toPromise();\n }\n\n async cargarCruce() {\n if (this.recursoPuntoDTO.llaveTabla == null) {\n return;\n }\n this.cruces = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', true, { recursoPunto: this.recursoPuntoDTO.llaveTabla })).toPromise();\n }\n\n async cargarAtributos(puntoProceso) {\n this.listadoAtributoPunto = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso }));\n this.listaAtributoPunto = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso })).toPromise();\n }\n\n async guardar() {\n this.clickGuardar = true;\n if (this.validar()) {\n this.recursoPuntoDTO.fechaAdicionado = this.recursoPuntoDTO.fechaAdicionado ? new Date(this.recursoPuntoDTO.fechaAdicionado) : null;\n this.recursoPuntoDTO.fechaModificado = this.recursoPuntoDTO.fechaModificado ? new Date(this.recursoPuntoDTO.fechaModificado) : null;\n if (this.nuevo) {\n if (this.tipoRecurso == 'F') {\n this.recursoPuntoDTO.fuente = this.llaveReporte;\n } else if (this.tipoRecurso == 'R') {\n this.recursoPuntoDTO.reporteFuente = this.llaveReporte;\n }\n this.recursoPuntoDTO.tipo = this.tipoRecurso;\n this.recursoPuntoDTO = await this.generalService.crearRegistro(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n await this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\n this.nuevo = false;\n this.clickGuardar = false;\n return null\n }\n if ((await this.generalService.update(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise()) <= 0) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n return null;\n }\n await this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\n await this.loadCruce()\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.clickGuardar = false;\n }\n return null;\n }\n\n nuevoCruce() {\n this.habilitaCampo = true;\n this.cruceRecursoPunto = new CruceRecursoPuntoModel();\n this.vistaVisualizarDetalle = 'nuevoCruce'\n }\n cancelarCruce() {\n this.vistaVisualizarDetalle = null;\n this.habilitaCampo = false;\n }\n\n async agregarCruce(cruce?, nuevo?) {\n this.clickGuardarCruce = true;\n if (nuevo) {\n if (!this.validarCruce(this.cruceRecursoPunto)) {\n this.notificacionBusService.showError('Faltan campos obligatorios')\n return;\n }\n this.clickGuardarCruce = false;\n this.cruceRecursoPunto.recursoPunto = this.recursoPuntoDTO.llaveTabla;\n this.cruceRecursoPunto.llaveTabla = this.utilsService.generarLlave();\n await this.generalService.crearRegistro(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise();\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n this.vistaVisualizarDetalle = null;\n } else {\n this.cruceRecursoPunto = cruce\n if (!this.validarCruce(this.cruceRecursoPunto)) {\n this.notificacionBusService.showError('Faltan campos obligatorios')\n return;\n }\n if ((await this.generalService.update(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise()) <= 0) {\n this.notificacionBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n }\n this.notificacionBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n }\n await this.cargarCruce();\n await this.loadCruce();\n this.habilitaCampo = false;\n }\n \n eliminarCruce(event, cruce){\n this.habilitaCampo = true;\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n accept: () => {\n this.setEliminarCruce(cruce).then(data => {});\n this.habilitaCampo = false;\n }\n });\n }\n\n iniciarEdicion() {\n this.habilitaCampo = true;\n }\n\n async cancelarEdicion() { \n await this.loadCruce();\n this.habilitaCampo = false;\n \n }\n\n async setEliminarCruce(cruce){\n if ((await this.generalService.delete(new GeneralModel('CruceRecursoPuntoDTO', null, false, cruce)).toPromise()) <= 0) {\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n return\n }\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n await this.loadCruce();\n }\n\n validar() {\n let validar = true;\n if (this.recursosValidar == null || this.recursosValidar.length <= 0) {\n return validar;\n }\n this.recursosValidar.forEach(element => {\n if ((element.llaveTabla != this.recursoPuntoDTO.llaveTabla) && element.puntoProceso == this.recursoPuntoDTO.puntoProceso) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PUNTO_PROCESO_REPETIDO);\n validar = false\n }\n });\n validar = validar && this.utilsService.validarCampoObligatorio(this.recursoPuntoDTO.puntoProceso)\n return validar;\n }\n validarCruce(cruce: CruceRecursoPuntoModel) {\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(cruce.reporteEntrada)\n validador = validador && this.utilsService.validarCampoObligatorio(cruce.atributoPunto)\n if(this.tipoRecurso == null){\n this.notificacionBusService.showError('No se encuentra el recurso');\n validador = validador && false\n }\n this.cruces.forEach(async element => {\n if (this.tipoRecurso == 'F' && element.reporteEntrada == this.cruceRecursoPunto.reporteEntrada) {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\n validador = validador && false;\n } else {\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\n validador = validador && false;\n }\n });\n return validador;\n }\n\n public ocultar() {\n this.vistaVisualizar = null;\n }\n\n\n}\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n\n<div class=\"flex justify-content-between align-items-center mt-3 mb-3\">\n <h1 class=\"text-xl\">{{'punto' | translate }} {{'proceso' | translate }} </h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPuntoProceso()\"\n label=\"{{'link_nuevo' | translate}}\" *ngIf=\"vistaVisualizar !='detalle'\" >\n </button>\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'punto' | translate}} {{'proceso' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaRecursoPunto\" [scrollable]=\"true\" responsiveLayout=\"scroll\" selectionMode=\"single\" dataKey=\"puntoProceso\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" *ngIf=\"vistaVisualizar != 'detalle'\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" [lazy]=\"true\" (onLazyLoad)=\"cargar($event)\">\n <ng-template pTemplate=\"header\">\n \n <tr class=\"fondoTablaPincipal\">\n <th>{{'punto' | translate }} {{'proceso' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-punto>\n <tr [pSelectableRow]=\"punto\">\n <td>{{punto.puntoProcesoDescripcion}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n</p-table>\n\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\n <p-tabView class=\"mb-0\">\n <p-tabPanel [header]=\"'basica' | translate\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-3\">\n\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaPuntosProceso\" [autoDisplayFirst]=\"false\"\n optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"recursoPuntoDTO.puntoProceso\"\n [class]=\"!utilsService.validarCampoObligatorio(recursoPuntoDTO.puntoProceso) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" >\n </p-dropdown>\n <label htmlFor=\"puntoProceso\">{{'punto' | translate }} {{'proceso' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}} \" label =\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\n (click)=\"guardar()\">\n </button>\n <button pButton pRipple class=\"ml-2 mr-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!nuevo\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n </div>\n </div>\n\n </div>\n </p-tabPanel>\n <p-tabPanel [header]=\"'cruce' | translate\" *ngIf=\"!nuevo\">\n <div class=\"flex justify-content-end align-items-center mb-2\">\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCruce()\" icon=\"pi pi-plus\" [disabled]=\"habilitaCampo\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table #tablaGeneral [value]=\"listaCruce\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n [rows]=\"10\" [totalRecords]=\"listaCruce.length\"\n [paginator]=\"listaCruce.length > 10\" \n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n editMode=\"row\" dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th style=\"width: 45%;\">{{'entrada' | translate}}</th>\n <th style=\"width: 45%;\">{{'valor' | translate}}</th>\n <th style=\"width: 10%;\"> </th>\n </tr>\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"vistaVisualizarDetalle === 'nuevoCruce'\">\n <td style=\"width: 45%;\">\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"llave\"\n [class]=\"!utilsService.validarCampoObligatorio(cruceRecursoPunto.reporteEntrada) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\n [autoDisplayFirst]=\"false \"optionLabel=\"descripcion\" appendTo=\"body\" [autoZIndex]=\"false\"\n [(ngModel)]=\"cruceRecursoPunto.reporteEntrada\"></p-dropdown>\n </td>\n <td style=\"width: 45%;\">\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\"\n [class]=\"!utilsService.validarCampoObligatorio(cruceRecursoPunto.atributoPunto) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\" [autoZIndex]=\"false\"\n [(ngModel)]=\"cruceRecursoPunto.atributoPunto\" ></p-dropdown>\n </td>\n <td style=\"width: 10%;\">\n <div class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCruce(null,true)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"cancelarCruce()\" icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-cruce let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"cruce\" >\n <td style=\"width: 45%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"llave\"\n [class]=\"!utilsService.validarCampoObligatorio(cruce.reporteEntrada) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\n [autoDisplayFirst]=\"false \"optionLabel=\"descripcion\" appendTo=\"body\" [autoZIndex]=\"false\"\n [(ngModel)]=\"cruce.reporteEntrada\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{cruce.descripcionEntrada}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 45%;\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\"\n [class]=\"!utilsService.validarCampoObligatorio(cruce.atributoPunto) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\" [autoZIndex]=\"false\"\n [(ngModel)]=\"cruce.atributoPunto\" ></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{cruce.atributoPuntoDescripcion}}\n </ng-template>\n </p-cellEditor>\n </td>\n <td style=\"width: 10%;\">\n <div class=\"flex justify-content-end\">\n <!-- CHECK GUARDAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n icon=\"pi pi-check\" (click)=\"agregarCruce(cruce, false)\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- CANCELAR -->\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n icon=\"pi pi-times\" (click)=\"cancelarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- EDITAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <!-- ELIMINAR -->\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n icon=\"pi pi-trash\" (click)=\"eliminarCruce($event,cruce)\" [disabled]=\"habilitaCampo\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-tabPanel>\n <p-tabPanel [header]=\"'filtro' | translate\" *ngIf=\"!nuevo\">\n <div class=\"card\">\n <p-table [value]=\"listaAtributoPunto\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" >\n <ng-template pTemplate=\"header\">\n <tr>\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\n <th class=\"w-6rem\">{{'codigo' | translate}}</th> \n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-element>\n <tr>\n <td class=\"w-6rem\">\n {{element.descripcion}}\n </td>\n <td class=\"w-6rem\">\n {{element.codigo}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <div class=\"field col-12 md:col-12 lg:col-12 mt-3\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-200\" rows=\"5\" cols=\"30\" pInputTextarea\n [(ngModel)]=\"recursoPuntoDTO.filtro\" autofocus [autoResize]=\"true\"> </textarea>\n <label class=\" w-full\" for=\"descripcion\">{{'filtro' | translate}}</label>\n </p-floatLabel>\n </div>\n <div class=\"flex justify-content-end align-content-center mt-3\">\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" ></button>\n </div>\n </div>\n </p-tabPanel>\n </p-tabView>\n\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\nimport { FuenteDatoModel } from '../../../../seguridad/modelos/FuenteDato';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { MenuService } from '../../../../core/servicios/menu.service';\nimport { CargarControlFuncionalidadService } from '../../../../core/servicios/cargar-control-funcionalidad.service';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { MenubarModule } from 'primeng/menubar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DetalleEntradaReporteComponent } from '../detalle-entrada-reporte/detalle-entrada-reporte.component';\nimport { DetalleCampoReporteComponent } from '../detalle-campo-reporte/detalle-campo-reporte.component';\nimport { DetalleTipoReporteComponent } from '../detalle-tipo-reporte/detalle-tipo-reporte.component';\nimport { DetalleDistribucionReporteComponent } from '../detalle-distribucion-reporte/detalle-distribucion-reporte.component';\nimport { PopupReporteComponent } from '../../../popups/popup-reporte/popup-reporte.component';\nimport { DetallePuntoProcesoReporteComponent } from '../detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component';\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TranslateModule, InputTextModule, FormsModule, ButtonModule, ConfirmPopupModule, MenubarModule, DropdownModule, DetalleEntradaReporteComponent, DetalleCampoReporteComponent, DetalleTipoReporteComponent, DetalleDistribucionReporteComponent, PopupReporteComponent, DetallePuntoProcesoReporteComponent, InputHelperSeleccionPlantillaComponent, FloatLabelModule, InputTextareaModule ],\n templateUrl: './detalle-ejecucion-reporte.page.html',\n selector: 'app-detalle-ejecucion-reporte',\n styleUrls: ['./detalle-ejecucion-reporte.page.scss'],\n providers: [MessageService, ConfirmationService],\n})\nexport class DetalleEjecucionReportePage implements OnInit {\n public items: MenuItem[];\n public reporte: ReporteFuenteModel = new ReporteFuenteModel();\n public vistaVisualizar: string = null;\n public llaveTabla: string = null;\n\n //listas\n public listaTipo;\n public listaSiNo;\n public listaMomento;\n public listaTipoCifrado;\n\n public verTodos:boolean;\n public listaFuente : FuenteDatoModel[];\n public permiteModificarReporte: boolean;\n\n public mostrarPopupReporte:boolean =false;\n public operacion: string;\n\n @Output() public regresar = new EventEmitter();\n public clickGuardar: boolean = false;\n\n constructor(\n private translateService: TranslateService,\n private activeRoute: ActivatedRoute,\n private formBuilder: FormBuilder,\n private notificacionesBusService: ToastService,\n private generalService: GeneralService,\n private router: Router,\n public utilsService: UtilsService,\n private authService: AuthService,\n private reporteFuentePipe: ReporteFuentePipe,\n public controlFuncionService: CargarControlFuncionalidadService,\n private confirmationService: ConfirmationService,\n private ejecucionReporteService: EjecucionReporteService,\n private generalPipe: GeneralPipe,\n private menuService: MenuService,\n ) {}\n\n ngOnInit(): void {\n this.llaveTabla = this.activeRoute.snapshot.paramMap.get('llaveTabla');\n this.vistaVisualizar = 'reporte'\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\n this.reporte = new ReporteFuenteModel();\n if (this.llaveTabla){\n this.ejecucionReporteService.getDatosEjecucionReporte({llave: this.llaveTabla}).subscribe(data => {\n this.reporte = data.reporte;\n delete this.reporte['alias']\n this.listaFuente = data.listaFuente\n this.verTodos = data.permisoVerTodos;\n this.cargarMenu();\n })\n } else {\n this.cargarMenu();\n this.reporte = new ReporteFuenteModel();\n }\n this.cargarListas();\n\n }\n\n nuevoReporte() {\n if(this.isPermisoVerTodos()) {\n this.listaTipo =this.reporteFuentePipe.LISTA_TIPO;\n }else {\n this.listaTipo =this.reporteFuentePipe.LISTA_TIPO_SIN_PERMISO;\n }\n this.operacion = \"N\"; //nuevo reporte\n this.reporte = new ReporteFuenteModel();\n //this.reporte.origenFuente = this.reporteFuentePipe.FUENTE;\n this.reporte.unicoArchivo = this.generalPipe.SI;\n this.reporte.dobleLinea = this.generalPipe.NO;\n var fuente = new FuenteDatoModel();\n fuente.origen = 'F';\n if (!this.isPermisoVerTodos()){\n fuente.rol = this.authService.getTokenKey('aliasRol');\n fuente.login = this.authService.getTokenKey('usuario')\n }\n this.generalService.queryForList(new GeneralModel('FuenteDatoDTO', null, false, fuente)).subscribe(data => {\n this.listaFuente = data;\n })\n \n this.cargarListas();\n this.cargarMenu();\n //cambiarValorTipo(actual.getOrigenFuente());\n }\n\n traerReporte(reporteBase: ReporteFuenteModel){\n this.ejecucionReporteService.getDatosEjecucionReporte({llave: reporteBase.llave}).subscribe(data => {\n this.reporte = data.reporte;\n delete this.reporte['alias']\n this.listaFuente = data.listaFuente\n this.verTodos = data.permisoVerTodos;\n this.permiteModificarReporte = data.permiteModificarReporte;\n this.cargarListas();\n this.cargarMenu();\n this.operacion = 'M'\n })\n }\n\n private cargarMenu() {\n if (this.reporte.llave != null) {\n this.items = [\n {\n label: this.translateService.instant('reporte'),\n icon: 'glyphicons glyphicons-plus-sign',\n command: (event) => {\n this.vistaVisualizar = 'reporte';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\n },\n },\n {\n label: this.translateService.instant('entrada'),\n icon: 'glyphicons glyphicons-file-minus',\n command: (event) => {\n this.vistaVisualizar = 'entrada';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('entrada')}]);\n },\n visible: this.reporte.llave != null,\n },\n {\n label: this.translateService.instant('campo'),\n icon: 'glyphicons glyphicons-log-book',\n command: (event) => {\n this.vistaVisualizar = 'campo';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('campo')}]);\n },\n visible: this.reporte.llave != null,\n },\n {\n label: this.translateService.instant('tipo'),\n icon: 'glyphicons glyphicons-notes-2',\n command: (event) => {\n this.vistaVisualizar = 'tipo';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('tipo')}]);\n },\n visible: this.reporte.llave != null,\n },\n {\n label: this.translateService.instant('distribucion'),\n icon: 'glyphicons glyphicons-transfer',\n command: (event) => {\n this.vistaVisualizar = 'distribucion';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('distribucion')}]);\n },\n visible: this.reporte.llave != null,\n },\n {\n label: this.translateService.instant('puntoproceso'),\n icon: 'glyphicons glyphicons-server-new',\n command: (event) => {\n this.vistaVisualizar = 'puntoproceso';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('puntoproceso')}]);\n },\n visible: this.reporte.llave != null,\n },\n {\n label: this.translateService.instant('ejecutar'),\n icon: 'glyphicons glyphicons-disk-export',\n command: (event) => {\n this.mostrarPopupReporte = true;\n },\n visible: this.reporte.llave != null,\n },\n ]\n } else {\n this.items = [\n {\n label: this.translateService.instant('reporte'),\n icon: 'glyphicons glyphicons-plus-sign',\n command: (event) => {\n this.vistaVisualizar = 'reporte';\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\n },\n }\n ]\n }\n \n }\n\n public cargarListas(){\n this.listaTipo = this.reporteFuentePipe.LISTA_TIPO;\n this.listaMomento = this.reporteFuentePipe.LISTA_MOMENTO;\n this.listaSiNo = this.generalPipe.LISTA_SINO;\n this.generalService.queryForList(new GeneralModel('EncripcionArchivoDTO', null, false, {})).subscribe(data => {\n this.listaTipoCifrado = data;\n })\n }\n\n public actualizar(){\n this.clickGuardar = true;\n if (!this.validar()){\n this.notificacionesBusService.showError('Faltan campos obligatorios');\n return;\n }\n if (this.utilsService.isNotBlank(this.reporte.llave)){\n this.ejecucionReporteService.guardarReporte(this.reporte).subscribe(data => {\n this.reporte = data;\n this.clickGuardar = false;\n this.cargarMenu()\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n });\n /* this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporte)).subscribe(data => {\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n this.clickGuardar = false;\n delete this.reporte['alias']\n }/;\n */\n } else {\n this.ejecucionReporteService.guardarReporte(this.reporte).subscribe(data => {\n this.reporte = data;\n this.clickGuardar = false;\n this.cargarMenu()\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n });\n \n }\n \n }\n\n validar(){\n var validador: boolean = true;\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.descripcion);\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.reporteExterno);\n if (this.isFuente()){\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.fuenteDato);\n }\n if (this.isSql()){\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.query);\n let mensaje = this.utilsService.validarTextoSQL(this.reporte.query, false, true, 0, true)\n if (mensaje){\n validador = validador && false;\n this.notificacionesBusService.showWarning(mensaje);\n }\n }\n if (this.isFijo()){\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.jasperFijo);\n }\n return validador;\n }\n\n setJasperFijo(event){\n this.reporte.jasperFijo = event.data\n }\n\n regresarAction(){\n this.regresar.emit();\n }\n\n regresarPopupReporte(event){\n this.mostrarPopupReporte = false;\n }\n\n eliminar(event){\n this.confirmationService.confirm({\n target: event.target,\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n acceptLabel: this.generalPipe.SI_DESC,\n accept: () => {\n this.ejecucionReporteService.eliminarReporte(this.reporte).subscribe(data => {\n this.notificacionesBusService.showInfo('Se ha eliminado el reporte')\n this.regresarAction();\n })\n },\n reject: () => {\n }\n });\n }\n\n public isFijo():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\n }\n\n public isSql():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\n }\n\n public isFuente():boolean{\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\n }\n\n public filtroOrigenFuente(tipo:string):boolean{\n return this.reporte.origenFuente == tipo;\n }\n \n\tpublic isPermisoVerTodos() {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(\"reporte:vertodos\");\n\t}\n\t\n\tpublic isPermisoCrear() {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(\"reporte:crear\");\n\t}\n\n public isModificarReporte(){\n return this.isPermisoVerTodos() || this.permiteModificarReporte || (this.isPermisoCrear() && this.operacion == 'N')\n }\n}\n","<div class=\"flex justify-content-between align-items-center ml-2 mt-2 mb-2\">\n <h1 class=\"mb-1\">Reportes</h1>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarAction()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n</div>\n<p-confirmPopup></p-confirmPopup>\n <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n <div class=\"card mt-3\" *ngIf=\"vistaVisualizar != 'reporte'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'informacion' | translate}} {{'reporte' | translate}}</h5>\n <div class=\"Inputgroup p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <p-floatLabel>\n <input pInputText [disabled]=\"true\" [(ngModel)]=\"reporte.descripcion\">\n <label >{{('descripcion') | translate}}</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 mt-2\" *ngIf=\"vistaVisualizar == 'reporte'\">\n <div id=\"reportesListado\">\n <div class=\"card col-md-12\">\n <div class=\"Detallereporte mt-4\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" [(ngModel)]=\"reporte.descripcion\" \n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.descripcion) && clickGuardar\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.descripcion) && clickGuardar\" />\n <label>{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"titulo\" type=\"text\" [(ngModel)]=\"reporte.titulo\" />\n <label>{{'titulo' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"procedimiento\" type=\"text\" [(ngModel)]=\"reporte.procedimiento\" [disabled]=\"!isModificarReporte()\" />\n <label>{{'procedimiento' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div [ngClass]=\"isFuente() ? 'field col-12 md:col-6' : 'field col-12 md:col-2' \">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" id=\"origenFuente\" [disabled]=\"reporte.llave != null || !controlFuncionService.getControlFuncionalidad('reporte:tipo')\"\n [(ngModel)]=\"reporte.origenFuente\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\n <label>{{'tipo' | translate }}*</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isFuente()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" id=\"fuenteDato\" [disabled]=\"!isModificarReporte()\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.fuenteDato) && clickGuardar\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.fuenteDato) && clickGuardar\" \n [(ngModel)]=\"reporte.fuenteDato\" optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label>{{'fuente' | translate }} *</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaMomento\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"reporte.momento\"\n optionLabel=\"nombre\" optionValue=\"codigo\" [showClear]=\"true\">\n </p-dropdown>\n <label>{{'momento' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-2\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" id=\"reporteExterno\" [(ngModel)]=\"reporte.reporteExterno\" [autoDisplayFirst]=\"false\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.reporteExterno) && clickGuardar\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.reporteExterno) && clickGuardar\"\n optionLabel=\"nombre\" optionValue=\"codigo\" [disabled]=\"!isModificarReporte()\" >\n </p-dropdown>\n <label>{{'reporte' | translate }} {{'externo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-4\" *ngIf=\"isFijo()\">\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\n [label]=\"reporte.jasperFijo ? reporte.jasperFijo: ''\" [mostrarX]=\"true\"\n [extensiones]=\"'jrxml'\" [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(reporte.jasperFijo) && clickGuardar)\" [labelrar]=\"'jasper' | translate\"\n (onSelected)=\"setJasperFijo($event)\"></app-input-helper-seleccion-plantilla>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isFijo()\">\n <p-floatLabel> \n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n [(ngModel)]=\"reporte.cifradoJasperFijo\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\n <label>{{'tipocifrado' | translate }}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12\" *ngIf=\"isSql() || isFijo()\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.query) && clickGuardar && isSql()\"\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.query) && clickGuardar && isSql()\"\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.query\"></textarea>\n <label >{{'sql' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-6 md:col-12\" *ngIf=\"isFuente()\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.whereSql\"></textarea>\n <label>{{'where' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-6 md:col-12\" *ngIf=\"isFuente()\">\n <p-floatLabel>\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.whereSqlReporte\"></textarea>\n <label>{{'where' | translate }} {{'reporte' | translate }}</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"isModificarReporte()\"\n icon=\"glyphicons {{reporte.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" label=\"{{reporte.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\n (click)=\"actualizar()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporte.llave != null && isModificarReporte()\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"vistaVisualizar == 'entrada'\"> \n <detalle-entrada-reporte [modificarReporte]=\"isModificarReporte()\" [llaveReporte]=\"reporte.llave\"></detalle-entrada-reporte>\n </div>\n\n <div *ngIf=\"vistaVisualizar == 'campo'\">\n <detalle-campo-reporte [reporteFuente]=\"reporte\"> </detalle-campo-reporte>\n </div>\n\n <div *ngIf=\"vistaVisualizar == 'tipo'\">\n <detalle-tipo-reporte [listaFuentes]=\"listaFuente\" [llaveReporte]=\"reporte.llave\"></detalle-tipo-reporte>\n </div>\n\n <div *ngIf=\"vistaVisualizar == 'distribucion'\">\n <detalle-distribucion-reporte [llaveReporte]=\"reporte.llave\"></detalle-distribucion-reporte>\n </div>\n\n <div *ngIf=\"vistaVisualizar == 'puntoproceso'\">\n <detalle-punto-proceso-reporte [llaveReporte]=\"reporte.llave\" [tipoRecurso]=\"'R'\"></detalle-punto-proceso-reporte>\n </div>\n\n <app-popup-reporte [mostrar]=\"mostrarPopupReporte\" [reporte]=\"reporte\" [aplicacion]=\"\"\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { DetalleEjecucionReportePage } from '../detalle-ejecucion-reporte/detalle-ejecucion-reporte.page';\nimport { TableColumn } from '../../../../core/modelos/table-column.model';\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { MenuService } from '../../../../core/servicios/menu.service';\nimport { CommonModule } from '@angular/common';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n imports: [TranslateModule, CommonModule, TablaGeneralComponent, FiltroGeneralComponent, ReactiveFormsModule, ButtonModule, DetalleEjecucionReportePage, InputTextModule],\n standalone: true,\n templateUrl: './listado-ejecucion-reporte.page.html',\n styleUrls: ['./listado-ejecucion-reporte.page.scss']\n})\nexport class ListadoEjecucionReportePage implements OnInit {\n public listaReporte : ReporteFuenteModel[] = [];\n public reporte: ReporteFuenteModel;\n public columns: TableColumn[];\n public paginator = {\n rows: 10,\n totalRecords: 0,\n };\n filters: { field: string; header: string; matchMode: string; }[];\n public verDetalle: boolean = false;\n @ViewChild('detalle') detalle: DetalleEjecucionReportePage;\n\n constructor(private translateService: TranslateService,\n private formBuilder: FormBuilder,\n private menuService: MenuService,\n private generalService: GeneralService,\n private router: Router, public utilsService: UtilsService){ \n }\n\n ngOnInit(){\n this.columns = [\n {\n field: 'descripcion',\n header: this.translateService.instant('reporte'),\n// width: 100,\n },\n ]\n this.filters = [\n {\n field: 'filtro',\n header: this.translateService.instant('filtro'),\n matchMode: 'contains'\n }];\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte'}]);\n }\n\n public cargarListaReporte(event){\n let objetoFiltro : GeneralModel = new GeneralModel('ReporteFuenteDTO', null, false, {\n descripcion: event.filters.filtro?.value ? `%${event.filters.filtro?.value}%` : null,\n paginacionRegistroInicial: event.first,\n paginacionRegistroFinal: event.rows,\n })\n this.generalService.queryForList(objetoFiltro).subscribe(data => {\n this.listaReporte = data;\n this.generalService.cantidadRegistros(objetoFiltro).subscribe(data => {\n this.paginator.totalRecords = data;\n })\n });\n }\n\n public nuevo(){\n this.verDetalle = true;\n this.sleep(1000).then(data => {\n this.detalle.nuevoReporte();\n })\n }\n\n public verAction(event){\n this.verDetalle = true;\n this.sleep(1000).then(data => {\n this.detalle.traerReporte(event);\n })\n }\n\n regresarAction(){\n this.verDetalle = false;\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte'}]);\n }\n\n sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}","<div *ngIf=\"!verDetalle\">\n<h1>Reportes</h1>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"field\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" formControlName=\"filtro\" autocomplete=\"off\" />\n <label>{{'filtro' | translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevo()\"\n label=\"{{'link_nuevo' | translate}}\" >\n </button>\n</div>\n<app-tabla-general\n #tablaGeneral\n dataKey=\"llaveTabla\"\n [columns]=\"columns\"\n [value]=\"listaReporte\"\n [rows]=\"paginator.rows\"\n \n [totalRecords]=\"paginator.totalRecords\"\n (onLoad)=\"cargarListaReporte($event)\"\n (onRowSelect)=\"verAction($event)\"\n></app-tabla-general>\n</div>\n\n<app-detalle-ejecucion-reporte #detalle (regresar)=\"regresarAction()\" *ngIf=\"verDetalle\"></app-detalle-ejecucion-reporte>","import { Component, OnInit } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { MenuService } from '../../../../core/servicios/menu.service'\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel'; \nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\nimport { TableModule } from 'primeng/table';\nimport { PopupReporteComponent } from '../../../popups/popup-reporte/popup-reporte.component'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\n\n@Component({\n selector: 'app-listado-ejecucion-reporte-externo',\n templateUrl: './listado-ejecucion-reporte-externo.component.html',\n styleUrls: ['./listado-ejecucion-reporte-externo.component.scss'],\n imports: [TranslateModule, \n TableModule, \n FormsModule,\n ReactiveFormsModule, \n PopupReporteComponent, \n FiltroGeneralComponent,\n InputTextModule,\n Ripple\n ],\n standalone: true,\n})\nexport class ListadoEjecucionReporteExternoComponent implements OnInit {\n\n filtro: ReporteFuenteModel;\n listaReporteExterno: ReporteFuenteModel[];\n reporteSeleccionado: ReporteFuenteModel;\n filters = [];\n isPopupReporte: boolean = false;\n reporte: ReporteFuenteModel;\n\n constructor(private authService: AuthService, private generalPipe: GeneralPipe, private generalService: GeneralService, private translateService: TranslateService,\n private ejecucionReporteService: EjecucionReporteService, private menuService: MenuService, private utilsService: UtilsService) { }\n\n ngOnInit(): void {\n\n this.reporte = new ReporteFuenteModel();\n this.filtro = new ReporteFuenteModel();\n this.reporteSeleccionado = null;\n this.listaReporteExterno = [];\n this.cargarMigadePan();\n this.cargarFiltro();\n let event = {}\n this.cargarListaReporteExterno(event);\n }\n\n cargarMigadePan() {\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte Externo' }]);\n }\n\n cargarListaFiltros(event) {\n this.cargarListaReporteExterno(event);\n this.utilsService.resizeWindowIFrame();\n }\n\n cargarFiltro() {\n this.filters = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n },\n ];\n }\n\n async cargarListaReporteExterno(event) {\n\n this.filtro.descripcion = event['descripcion'] ? '%' + event['descripcion']['value'] + '%' : null;\n\n this.filtro.reporteExterno = this.generalPipe.SI;\n this.filtro.rol = this.authService.getTokenKey('aliasRol');\n this.filtro.login = this.authService.getTokenKey('usuario');\n\n let objetoFiltro: GeneralModel = new GeneralModel('ReporteFuenteDTO', null, false, this.filtro);\n\n this.listaReporteExterno = await this.generalService.queryForList(objetoFiltro).toPromise();\n await this.utilsService.sleep(500)\n this.utilsService.resizeWindowIFrame();\n }\n\n async verAction(event) {\n \n if (event.data.llave){\n let data = await this.ejecucionReporteService.getDatosEjecucionReporte({llave: event.data.llave}).toPromise();\n this.reporte = data.reporte;\n this.isPopupReporte = true;\n this.utilsService.resizeWindowIFrame();\n } else {\n this.reporte = new ReporteFuenteModel();\n }\n this.utilsService.resizeWindowIFrame();\n\n }\n\n regresarPopupReporte(event){\n this.reporteSeleccionado = null;\n this.isPopupReporte = false;\n this.reporte = new ReporteFuenteModel();\n }\n\n}\n","<div id=\"id_listado_ejecucion_reporte_externo\">\n\n <h1>{{'reporte' | translate}}</h1>\n\n <div class=\"flex justify-content-between align-items-center mb-3\">\n\n <!-- Filtro-->\n <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"flex mt-3\">\n <span class=\"p-float-label\">\n <input pInputText id=\"id_descripcion\" formControlName=\"descripcion\"\n autocomplete=\"off\" />\n <label for=\"id_responsable\">{{'descripcion' | translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n\n </div>\n\n <p-table #tablaGeneral id=\"tabla_lista_reporte_externo\" [value]=\"listaReporteExterno\" responsiveLayout=\"scroll\"\n [rows]=\"10\" [paginator]=\"listaReporteExterno.length > 10\" [totalRecords]=\"listaReporteExterno.length\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n selectionMode=\"single\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction($event)\"\n [(selection)]=\"reporteSeleccionado\">\n\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'reporte' | translate}}{{'s' | translate}}</th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-item>\n <tr [pSelectableRow]=\"item\">\n <td>{{item.descripcion}}</td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"1\">\n {{'mensajetablavacia' |translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n</div>\n\n<app-popup-reporte [mostrar]=\"isPopupReporte\" [reporte]=\"reporte\"\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Type } from '@angular/core';\nimport { SelectItem } from 'primeng/api';\n\nexport class CampoFormularioNuevoModel {\n\n\ttipo:string;\n\tdescripcion:string;\n\tvalorNuevo:any;\n\tobjeto:any;\n\tlongitud:number;\n\tcampo:string;\n\tobligatorio:boolean;\n\tlista:any[];\n\tlistaRespuesta:any[];\n\tpopup:string;\n\ttextoPopup:string;\n\tvalorAntiguo:any;\n\torden:number;\n\teditable:boolean;\n\tmensaje:string;\n\tmostrar:boolean;\n\t//formulario:IFormularioNuevo;\n\tdecimales:number;\n\tayuda:string;\n\tcaracteristica:boolean;\n\tcampoTabla:string;\n\tresaltado:boolean;\n\tcampoReferencia:string;\n\ttituloCampo:string;\n\tpopupComponent: Type<any>;\n\tpropiedadesPopupComponent: Partial<any>\n\tlistaPopups: any[]\n\n\t//campos creados por primeng\n\tlistaAutocompleteFiltrada: SelectItem[];\n\n\tconstructor(tipo: string, descripcion: string, longitud: number, decimales: number, campo: string, obligatorio: boolean,\n\t\tlista: any[], popup: string, editable: boolean, orden: number, mostrar: boolean, caracteristica: boolean, objeto: any) {\n\t\tthis.tipo = tipo;\n\t\tthis.descripcion = descripcion;\n\t\tthis.longitud = longitud;\n\t\tthis.decimales = decimales;\n\t\tthis.campo = campo;\n\t\tthis.obligatorio = obligatorio;\n\t\tthis.lista = lista;\n\t\tthis.popup = popup;\n\t\tthis.editable= editable;\n\t\tthis.objeto= objeto;\n\t\tthis.orden=orden;\n\t\tthis.mostrar=mostrar;\n\t\tthis.caracteristica = caracteristica;\n\t}\n\n\tfiltrarAutocomplete(event) {\n\t\tlet filtered : any[] = [];\n let query = event.query;\n for(let i = 0; i < this.lista.length; i++) {\n let objeto = this.lista[i];\n\t\t\tconsole.log(objeto)\n if (objeto.label.toLowerCase().indexOf(query.toLowerCase()) == 0) {\n filtered.push(objeto);\n }\n }\n\n this.listaAutocompleteFiltrada = filtered;\n }\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel';\nimport { PopupReporteComponent } from '../../popups/popup-reporte/popup-reporte.component'\nimport { RecursoPuntoModel } from '../../../seguridad/modelos/RecursoPuntoModel';\nimport { ReporteEntradaModel } from '../../../seguridad/modelos/ReporteEntradaModel';\nimport { CruceRecursoPuntoModel } from '../../../seguridad/modelos/CruceRecursoPuntoModel';\nimport { FuenteGeneralModel } from '../../../seguridad/modelos/FuenteGeneralModel';\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\nimport { ParametrosNavegacionService } from '../../../shared/servicios/parametros-navegacion.service';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { EjecucionReporteService } from '../../../webcommon/services/ejecucionreporte.service';\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component'\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { TableModule } from 'primeng/table';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\n@Component({\n selector: 'app-popup-punto-proceso',\n imports: [TranslateModule, CommonModule, DialogModule, TableModule, ReactiveFormsModule, PopupReporteComponent, FiltroGeneralComponent, InputTextModule],\n standalone: true,\n templateUrl: './popup-punto-proceso.component.html',\n styleUrls: ['./popup-punto-proceso.component.scss']\n})\nexport class PopupPuntoProcesoComponent implements OnInit {\n\n public reportesPunto: RecursoPuntoModel[] = [];\n public fuentesPunto: RecursoPuntoModel[] = [];\n public tipo: string;\n\tpublic parametrosReporte: any[];\n\tpublic paginador: RecursoPuntoModel[] = [];\n\tpublic reportes: RecursoPuntoModel[];\n\tpublic fuentes: RecursoPuntoModel[];\n\tpublic recurso: RecursoPuntoModel;\n\tpublic reporte: ReporteFuenteModel;\n\n public mostrarPopup: boolean;\n public mostrarPopupReporte: boolean;\n @ViewChild('popupReporte') popupReporte: PopupReporteComponent;\n @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n \n public componente: any;\n public filters = [];\n\n constructor(private generalService: GeneralService,\n private utilsService: UtilsService,\n private ejecucionReporteService: EjecucionReporteService,\n private authService: AuthService,\n private router: Router,\n private parametrosService: ParametrosNavegacionService,\n private translateService: TranslateService) { }\n\n ngOnInit(): void {\n this.filters=[\n {\n field:'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }]\n }\n\n async mostrar(reportesPunto: RecursoPuntoModel[], tipo: string, componente: any) {\n\t\t\tthis.componente = componente;\n this.reportesPunto = reportesPunto;\n\t\t\tthis.tipo = tipo;\n\t\t\tlet reportesTmp: RecursoPuntoModel[] = this.obtenerReportes();\n\t\t\tif (this.reportesPunto != null && this.reportesPunto.length > 0) {\n\t\t\t\treportesTmp.forEach(reporte => {\n\t\t\t\t\tif(reporte.filtro==null||this.utilsService.isBlank(reporte.filtro)){\n\t\t\t\t\t\tthis.reportes.push(reporte);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tlet mostrarReporte=this.validarReporte(reporte.filtro);\n\t\t\t\t\t\tif(mostrarReporte){\n\t\t\t\t\t\t\tthis.reportes.push(reporte);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n this.filtroGeneral.limpiarFiltros();\n\t\t\tthis.mostrarPopup = true;\n\t}\n\n async mostrarFuente(fuentesPunto: RecursoPuntoModel[], tipo: string, componente: any) {\n this.componente = componente;\n this.fuentesPunto = fuentesPunto;\n this.tipo = tipo;\n let fuentesTmp: RecursoPuntoModel[] = this.obtenerFuentes();\n if (this.fuentesPunto != null && this.fuentesPunto.length > 0) {\n fuentesTmp.forEach(fuente => {\n if(fuente.filtro==null||this.utilsService.isBlank(fuente.filtro)){\n this.fuentes.push(fuente);\n }else{\n let mostrarFuente=this.validarReporte(fuente.filtro);\n if(mostrarFuente){\n this.fuentes.push(fuente);\n }\n }\n })\n }\n this.filtroGeneral.limpiarFiltros();\n this.mostrarPopup = true;\n}\n\n cargarPaginador(event) {\n let reportesTmp2: RecursoPuntoModel[] = this.obtenerReportes();\n this.reportes = [];\n let parametroBusqueda = event['descripcion'] ? event['descripcion']['value'] : null;\n reportesTmp2.forEach(recurso => {\n //this.reportes.push(recurso);\n if(!this.utilsService.isBlank(parametroBusqueda)) { \n if (recurso.reporteFuenteDescripcion.toUpperCase().includes(parametroBusqueda.toUpperCase().replace(' ', ''))) {\n this.reportes.push(recurso);\n }\n } else {\n this.reportes.push(recurso);\n }\n })\n\n\t\t\tthis.paginador = this.reportes\n }\n\n cargarPaginadorFuente(event) {\n let fuentesTmp2: RecursoPuntoModel[] = this.obtenerFuentes();\n this.fuentes = [];\n let parametroBusqueda = event['descripcion'] ? event['descripcion']['value'] : null;\n fuentesTmp2.forEach(recurso => {\n //this.fuentes.push(recurso);\n if(!this.utilsService.isBlank(parametroBusqueda)) { \n if (recurso.fuenteDescripcion.toUpperCase().includes(parametroBusqueda.toUpperCase().replace(' ', ''))) {\n this.fuentes.push(recurso);\n }\n } else {\n this.fuentes.push(recurso);\n }\n })\n\n\t\t\tthis.paginador = this.fuentes\n }\n\t\n\t/**\n\t * Indica si un reporte debe presentarse o no en el punto proceso \n\t * @param fc Contexto d\te JSF\n\t * @param filtro Filtro que indica si el reporte debe visualizarse\n\t * o no\n\t * @return Si el reporte cumple con la decision se retorna true,\n\t * de lo contrario false\n\t */\n\tprivate validarReporte(filtro: string) {\n //pte definir filtro con angular\n\t\treturn true;\n\t}\n\t\n\t/**\n\t * Obtiene los reportes que se deben visualizar por el usuario \n\t * @return Reportes a presentar al usuario\n\t */\n\tprivate obtenerReportes(){\n\t\tlet reportes: RecursoPuntoModel[] = [];\n\t\tif (this.reportesPunto != null && this.reportesPunto.length > 0) {\n\t\t\tthis.reportesPunto.forEach(reporte => {\n\t\t\t\tif(reporte.filtro==null||this.utilsService.isBlank(reporte.filtro)){\n\t\t\t\t\treportes.push(reporte);\n\t\t\t\t}else{\n\t\t\t\t\tlet mostrarReporte=this.validarReporte(reporte.filtro);\n\t\t\t\t\tif(mostrarReporte){\n\t\t\t\t\t\treportes.push(reporte);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthis.reportes = this.ordenarSelectItemsAlfabeticamente(reportes);\n\t\treturn reportes;\n\t}\n\n private obtenerFuentes(){\n let fuentes: RecursoPuntoModel[] = [];\n\t\tif (this.fuentesPunto != null && this.fuentesPunto.length > 0) {\n\t\t\tthis.fuentesPunto.forEach(fuente => {\n\t\t\t\tif(fuente.filtro==null||this.utilsService.isBlank(fuente.filtro)){\n\t\t\t\t\tfuentes.push(fuente);\n\t\t\t\t}else{\n\t\t\t\t\tlet mostrarFuente=this.validarReporte(fuente.filtro);\n\t\t\t\t\tif(mostrarFuente){\n\t\t\t\t\t\tfuentes.push(fuente);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthis.fuentes = this.ordenarSelectItemsAlfabeticamente(fuentes);\n\t\treturn fuentes;\n\t}\n\n ordenarSelectItemsAlfabeticamente(reportes: RecursoPuntoModel[]): any[] {\n reportes.sort((a, b) => {\n const nombreA = a.tipo == 'R' ? a.reporteFuenteDescripcion.toLowerCase() : a.fuenteDescripcion.toLowerCase();\n const nombreB = b.tipo == 'R' ? b.reporteFuenteDescripcion.toLowerCase() : b.fuenteDescripcion.toLowerCase();\n\n if (nombreA < nombreB) {\n return -1;\n }\n if (nombreA > nombreB) {\n return 1;\n }\n return 0;\n });\n return reportes;\n }\n\t\t\n\tpublic async seleccionarRecurso(evento) {\n this.recurso = evento.data;\n if (this.recurso.tipo == 'R') {\n this.reporte = new ReporteFuenteModel();\n this.reporte.llave = this.recurso.reporteFuente;\n this.reporte = await this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, this.reporte)).toPromise();\n let filtro = new ReporteEntradaModel();\n filtro.reporteFuente = this.recurso.reporteFuente;\n this.parametrosReporte = await this.ejecucionReporteService.obtenerListaEntradaEjecucion(this.reporte).toPromise();\n let filtroCruce = new CruceRecursoPuntoModel();\n filtroCruce.recursoPunto = this.recurso.llaveTabla;\n let cruces: CruceRecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, filtroCruce)).toPromise();\n cruces.forEach(cruce => {\n let val;\n let cantidadPuntos = this.contarPuntos(cruce.atributoPuntoValor);\n let partes = cruce.atributoPuntoValor.split('.');\n switch (cantidadPuntos) {\n case 0:\n val = cruce.atributoPuntoValor;\n break;\n case 1:\n val = this.componente[partes[1]]\n break;\n case 2:\n if (partes[1] == 'credencial'){\n val = this.authService.getTokenKey(partes[2])\n } else {\n let objeto = this.componente[partes[1]]\n val = objeto[partes[2]];\n }\n break;\n default:\n return;\n }\n this.parametrosReporte.forEach(entrada => {\n if (entrada.unionDTO.llave == cruce.reporteEntrada) {\n entrada.unionDTO.valor = val;\n }\n })\n })\n this.mostrarPopup = false;\n this.mostrarPopupReporte = true;\n await this.utilsService.sleep(100);\n //this.popupReporte.mostrar(this.recurso.reporteFuente, this.parametrosReporte);\n } else {\n let fuente: FuenteGeneralModel = new FuenteGeneralModel();\n fuente.llaveTabla = this.recurso.fuente;\n fuente = await this.generalService.queryForObject(new GeneralModel('FuenteGeneralDTO', null, false, fuente)).toPromise();\n this.parametrosService.setParametros({\n fuente: fuente,\n regresar: window.location.href\n })\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/importarfuenteGeneral'], {skipLocationChange: true})\n }\n\t}\n\n contarPuntos(cadena: string): number {\n let contador = 0;\n for (let i = 0; i < cadena.length; i++) {\n if (cadena.charAt(i) === '.') {\n contador++;\n }\n }\n return contador;\n }\n\n regresarPopupReporte(event){\n this.mostrarPopupReporte = false;\n }\n\n}\n","<p-dialog id='popupPuntoProceso' header=\"{{'recurso' | translate}}\" [(visible)]=\"mostrarPopup\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" [modal]=\"true\">\n\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <app-filtro-general #filtroGeneral [filtros]=\"filters\" (metodoRegresar)=\"tipo == 'R' ? cargarPaginador($event) : cargarPaginadorFuente($event)\" >\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <div class=\"field\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" autocomplete=\"off\"\n formControlName=\"descripcion\" />\n <label for=\"descripcion\">{{'descripcion'|translate}}</label>\n </span>\n </div>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n </div>\n\n <p-table [value]=\"paginador\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"10\" [totalRecords]=\"paginador.length\" (onRowUnselect)=\"seleccionarRecurso($event)\"\n [paginator]=\"paginador.length > 10\" (onRowSelect)=\"seleccionarRecurso($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'descripcion' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-bean>\n <tr [pSelectableRow]=\"bean\">\n <td>{{bean.tipo =='R' ? bean.reporteFuenteDescripcion : bean.fuenteDescripcion}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</p>\n </ng-template>\n </p-table>\n</p-dialog>\n<app-popup-reporte [mostrar]=\"mostrarPopupReporte\" [reporte]=\"reporte\" [entradasPuntoProceso]=\"parametrosReporte\"\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { PopupPuntoProcesoComponent } from '../popup-punto-proceso/popup-punto-proceso.component';\nimport { PuntoProcesoModel } from '../../../seguridad/modelos/PuntoProcesoModel';\nimport { AtributoPuntoModel } from '../../../seguridad/modelos/AtributoPuntoModel';\nimport { RecursoPuntoModel } from '../../../seguridad/modelos/RecursoPuntoModel';\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { AuthService } from '../../../core/servicios/auth.service';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'app-punto-proceso-comp',\n imports: [CommonModule, PopupPuntoProcesoComponent, ButtonModule],\n standalone: true,\n templateUrl: './punto-proceso-comp.component.html',\n styleUrls: ['./punto-proceso-comp.component.scss']\n})\nexport class PuntoProcesoCompComponent implements OnInit {\n\n public punto: PuntoProcesoModel;\n\tpublic destino;\n\tpublic reportes: RecursoPuntoModel[] = [];\n\tpublic fuentes: any[] = [];\n\tpublic atributos: AtributoPuntoModel[] = [];\n\n @Input() public key: string;\n @Input() public componente: any;\n public verPopupPuntoProceso: boolean;\n @ViewChild('popupPuntoProceso') popupPuntoProceso: PopupPuntoProcesoComponent;\n\n constructor(private generalService: GeneralService,\n private utilsService: UtilsService,\n private authService: AuthService,) { }\n\n ngOnInit(): void {\n if (!this.key) {\n return;\n }\n this.cargarPunto().then(data => {});\n }\n\n async cargarPunto() {\n let filtro: PuntoProcesoModel = new PuntoProcesoModel();\n filtro.punto = this.key;\n filtro = await this.generalService.queryForObject(new GeneralModel('PuntoProcesoDTO', null, false, filtro)).toPromise();\n let filtroRecursos: RecursoPuntoModel = new RecursoPuntoModel();\n filtroRecursos.puntoProceso = filtro.llaveTabla;\n let aliasRol = this.authService.getTokenKey('aliasRol');\n if (!aliasRol) {\n aliasRol = '--NOVALIDO--'\n }\n filtroRecursos.rolUsuario = aliasRol;\n let lista: RecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, filtroRecursos)).toPromise();\n lista.forEach(element => {\n if (element.tipo){\n if (element.tipo == 'F') {\n this.fuentes.push(element);\n } else if (element.tipo == 'R') {\n this.reportes.push(element)\n }\n }\n });\n let filtroAtributo: AtributoPuntoModel = new AtributoPuntoModel();\n filtroAtributo.puntoProceso = filtro.llaveTabla;\n this.atributos = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, filtroAtributo)).toPromise();\n }\n\n async verReportes(){\n this.verPopupPuntoProceso = true;\n await this.utilsService.sleep(100);\n await this.popupPuntoProceso.mostrar(this.reportes, 'R', this.componente);\n }\n\n async verFuentes(){\n this.verPopupPuntoProceso = true;\n await this.utilsService.sleep(100);\n await this.popupPuntoProceso.mostrarFuente(this.fuentes, 'F', this.componente);\n }\n\n}","<!--botones-->\n<div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 p-button p-button-secondary\" *ngIf=\"reportes.length > 0\"\n icon=\"glyphicons glyphicons-print\" label=\"Reportes\" (click)=\"verReportes()\">\n </button>\n\n <button pButton pRipple class=\"m-2 p-button-outlined claro\" *ngIf=\"fuentes.length > 0\"\n icon=\"glyphicons glyphicons-upload\" label=\"Cargue Masivo\" (click)=\"verFuentes()\">\n </button>\n</div>\n<app-popup-punto-proceso #popupPuntoProceso *ngIf=\"verPopupPuntoProceso\"></app-popup-punto-proceso>","import { UnionModel } from \"./UnionModel\";\n\nexport class ColumnaFuenteModel extends UnionModel {\n llave: string;\n fuenteDato: string;\n sintaxis: string;\n nombre: string;\n tipoDato: string;\n} ","\nexport class TablaFromModel {\n tabla: string;\n alias: string;\n} ","export class JoinFromModel {\n columna1: string;\n columna2: string;\n} ","import { LlaveForaneaModel } from \"./LlaveForaneaModel\";\n\nexport class ForeingWraperModel {\n\n llave: LlaveForaneaModel;\n alias1: string;\n alias2: string;\n\n} ","import { ReporteColumnaModel } from \"./ReporteColumna\";\n\nexport class ColumnaWraperModel {\n columna: ReporteColumnaModel;\n\tseleccionado: boolean;\n\talias: string;\n}","export const ConstantesGenerales = {\n listaSiNo: new Map<string, string>()\n .set('S', 'Si')\n .set('N', 'No'),\n listaEstado: new Map<string, string>()\n .set(\"S\", \"Activo\")\n .set(\"N\", \"Inactivo\"),\n MENSAJE_INGRESAR : 'Se ingreso el registro',\n MENSAJE_GUARDAR : 'Registro guardado',\n MENSAJE_ACTUALIZAR : 'Registro Actualizado',\n MENSAJE_ACTUALIZAR_VARIOS : 'Se actualizaron los registros',\n MENSAJE_ACTUALIZAR_NO : 'Registro NO Actualizado',\n MENSAJE_ELIMINAR_VARIOS_CONFIRMAR : 'Desea eliminar los registros seleccionados?',\n MENSAJE_ELIMINAR_CONFIRMAR : 'Desea eliminar este registro?',\n MENSAJE_ELIMINAR : 'Se elimino correctamente el registro',\n MENSAJE_ELIMINAR_VARIOS : 'Se eliminarion correctamente los registros',\n MENSAJE_ELIMINAR_NO : 'No se pudo eliminar el registro',\n MENSAJE_CANCELAR : 'Registro Cancelado',\n MENSAJE_GUARDAR_NO : 'El registro no se pudo guardar por:',\n MENSAJE_YA_EXISTE : 'El registro ya existe',\n MENSAJE_ORDEN_REPETIDO : 'El orden no se puede repetir',\n MENSAJE_NO_EXISTE : 'No existen registros ',\n MENSAJE_GENERAR_REPORTE : 'Generando informacion para el reporte',\n MENSAJE_FIN_GENERAR_REPORTE : 'Se finalizo la generacion de informacion para reporte',\n MENSAJE_INCOMPLETA : 'Informacion incompleta.',\n MENSAJE_DUPLICADA : 'Existe mas de un registro.',\n ESTADO_ACTIVO: 'A',\n PORCENTAJE: \"%\",\n };\n ","import { UnionModel } from \"./UnionModel\";\n\nexport class ObjetoReporteModel extends UnionModel {\n filtro: string;\n objeto: string;\n}","import { Component, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { ObjetoReporteModel } from '../../../seguridad/modelos/ObjetoReporteModel';\nimport { ReportesService } from '../../services/reportes.service';\nimport { ConstantesGenerales } from '../../../seguridad/constantes/ConstantesGenerales';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TableModule, Table } from 'primeng/table';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { ToastService } from './../../../core/servicios/toast.service';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@Component({\n selector: 'app-popup-tablas-fuente',\n standalone: true,\n imports: [ConfirmDialogModule, ButtonModule, ButtonDirective, TranslateModule, CheckboxModule, TableModule, InputTextModule, ReactiveFormsModule, FormsModule, TablaGeneralComponent, DialogModule, DialogModule, TranslateModule, FiltroGeneralComponent],\n providers: [TranslatePipe, MessageService, ConfirmationService],\n templateUrl: './popup-tablas-fuente.component.html',\n styleUrl: './popup-tablas-fuente.component.scss'\n})\nexport class PopupTablasFuenteComponent {\n public paginadorTablas: ObjetoReporteModel[] = [];\n public filtroTabla: string;\n public visible: boolean;\n public filtro: ObjetoReporteModel = new ObjetoReporteModel();\n public filters: any[] = [];\n public paginator = {\n rows: 10,\n totalRecords: 0,\n };\n public seleccionGeneral: boolean;\n public loading: boolean;\n public columns: any[] = [];\n\n @ViewChild('tablaGeneral') tablaGeneral : Table;\n\n @Output() aplicarDestinoOcultar = new EventEmitter();\n\n constructor(private confirmationService: ConfirmationService, private reportesSvc: ReportesService, private utilsService: UtilsService, private translateService: TranslateService, private notificationBusService: ToastService) {\n this.columns = [\n {\n field: 'objeto',\n header: this.translateService.instant('descripcion'),\n width: 100,\n },\n ];\n this.filters = [\n {\n field: 'descripcion',\n header: this.translateService.instant('descripcion'),\n matchMode: 'contains',\n }\n ];\n this.load(null);\n }\n\n\n cargaLazy(event){\n this.tablaGeneral.filterGlobal(this.filtroTabla,'contains');\n }\n\n public async load(event) {\n try {\n this.loading = true;\n this.colocarFiltro();\n this.paginadorTablas = await this.reportesSvc.getObjetos(this.filtro).toPromise();\n this.paginator.totalRecords = await this.reportesSvc.getCantidadObjetos(this.filtro).toPromise();\n } catch (e) {\n console.error(e);\n }\n this.loading = false;\n }\n public colocarFiltro() {\n this.filtro = new ObjetoReporteModel();\n if (this.filtroTabla != null && this.utilsService.isNotBlank(this.filtroTabla)) {\n this.filtro.filtro = (ConstantesGenerales.PORCENTAJE + this.filtroTabla + ConstantesGenerales.PORCENTAJE);\n }\n }\n\n public buscarTabla(destino: string) {\n try {\n this.filtroTabla = '';\n this.mostrarPopup();\n } catch (e) {\n console.error(e);\n }\n }\n\n\n public seleccionarTabla() {\n try {\n\n let tablaSeleccionada = this.paginadorTablas.filter(data => data.check == true);\n if (tablaSeleccionada.length == 0) {\n this.notificationBusService.showWarning('Seleccione por lo menos un registro');\n return\n }\n this.aplicarDestinoOcultar.emit(tablaSeleccionada);\n this.ocultarPopup();\n } catch (e) {\n console.error(e);\n }\n }\n\n mostrarPopup() {\n this.visible = true;\n }\n\n ocultarPopup() {\n this.visible = false;\n }\n\n todosSeleccionados(): boolean {\n return this.paginadorTablas.every(elemento => elemento.check);\n }\n\n actualizarSeleccion(booleanogeneral: boolean): void {\n if (booleanogeneral) {\n this.confirmationService.confirm({\n target: event?.target,\n message: 'Desea seleccionar todos los registros?',\n acceptLabel: 'Si',\n key:'eliminar',\n header: 'Confirmar',\n accept: () => {\n this.paginadorTablas.forEach((elemento) => {\n elemento.check = booleanogeneral;\n });\n },\n reject: () => {\n this.seleccionGeneral =false;\n }\n });\n } else {\n this.paginadorTablas.forEach((elemento) => {\n elemento.check = booleanogeneral;\n });\n }\n\n\n\n }\n\n\n}\n","<p-confirmDialog #cd key=\"eliminar\">\n <ng-template pTemplate=\"footer\">\n <div class=\"mt-3\">\n <button type=\"button\"\n class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\n icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n (click)=\"cd.accept()\"></button>\n </div>\n </ng-template>\n</p-confirmDialog>\n<p-dialog id='popupfuenteTablas' header=\"{{'fuente' | translate}}\"\n [(visible)]=\"visible\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\"\n (onHide)=\"ocultarPopup()\" [modal]=\"true\">\n <div class=\"flex justify-content-between align-items-center mb-3\">\n <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargaLazy($event)\"> \n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\" [(ngModel)]=\"filtroTabla\"\n autocomplete=\"off\" />\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\n </span>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n \n <button pButton pRipple class=\"ml-2 p-ripple p-element p-button p-component p-button-secondary\"\n icon=\"pi pi-plus\" label=\"{{'adicionar' | translate}}\"\n (click)=\"seleccionarTabla()\">\n </button>\n\n </div>\n \n <p-table #tablaGeneral id=\"tabla_lista_tipo_entidad\" [value]=\"paginadorTablas\" [scrollable]=\"true\"\n [totalRecords]=\"paginadorTablas.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"paginadorTablas.length > 10\"\n [rows]=\"10\" styleClass=\"p-datatable-striped\"\n [showCurrentPageReport]=\"true\" editMode=\"row\" [globalFilterFields]=\"['objeto']\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n dataKey=\"alias\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:25%\" alignFrozen=\"left\" pFrozenColumn>\n <p-checkbox [style]=\"{'margin-left': '1%','margin-right':'1%'}\"\n [(ngModel)]=\"seleccionGeneral\" [binary]=\"true\" [ngModel]=\"todosSeleccionados()\"\n (ngModelChange)=\"actualizarSeleccion($event)\"></p-checkbox>\n <span style=\"margin-left:1%\">{{'tabla' | translate}}</span>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tabla>\n <tr>\n <td style=\"width:25%\">\n <p-checkbox class=\"mr-2 \" [(ngModel)]=\"tabla.check\" [binary]=\"true\" inputId=\"binary\">\n </p-checkbox>\n {{tabla.objeto}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n</p-table>\n\n\n </p-dialog>\n","export const ReporteEntradaConstantes = {\n tipoDato: new Map<string, string>()\n .set(\"F\", \"Fecha\")\n .set(\"N\", \"Numero Entero\")\n .set(\"B\", \"Numero Decimal\")\n .set(\"T\", \"Texto\")\n .set(\"E\", \"Serie Texto\")\n .set(\"U\", \"Serie Numero\"),\n tipo: new Map<string, string>()\n .set(\"D\", \"Directo\")\n .set(\"L\", \"Lista\"),\n TIPO_DIRECTO : \"D\",\n TIPO_LISTA : \"L\",\n tipoDatoColumna: new Map<string, string>()\n .set(\"F\", \"Fecha\")\n .set(\"N\", \"Numero\")\n .set(\"T\", \"Texto\"),\n};\n","import { GeneralPipe } from './../../pipes/general.pipe';\nimport { ToastService } from './../../../core/servicios/toast.service';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { ColumnaFuenteModel } from '../../../seguridad/modelos/ColumnaFuenteModel';\nimport { FuenteDatoModel } from '../../../seguridad/modelos/FuenteDato';\nimport { ReporteColumnaModel } from '../../../seguridad/modelos/ReporteColumna';\nimport { TablaFromModel } from '../../../seguridad/modelos/TablaFromModel';\nimport { JoinFromModel } from '../../../seguridad/modelos/JoinFromModel';\nimport { ReportesService } from '../../services/reportes.service';\nimport { LlaveForaneaModel } from '../../../seguridad/modelos/LlaveForaneaModel';\nimport { ForeingWraperModel } from '../../../seguridad/modelos/ForeingWraperModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\nimport { ColumnaWraperModel } from '../../../seguridad/modelos/ColumnaWraperModel';\nimport { UtilsService } from '../../../core/servicios/utils.service';\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConstantesGenerales } from '../../../seguridad/constantes/ConstantesGenerales';\nimport { ButtonModule } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { AccordionModule } from 'primeng/accordion';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\nimport { MenuService } from '../../../core/servicios/menu.service';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TabViewModule } from 'primeng/tabview';\nimport { StepsModule } from 'primeng/steps';\nimport { PopupTablasFuenteComponent } from '../../popups/popup-tablas-fuente/popup-tablas-fuente.component';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ReporteEntradaConstantes } from '../../../seguridad/constantes/ReporteEntradaConstantes';\nimport { ProgressBarModule } from 'primeng/progressbar';\n\n\n\n@Component({\n\tselector: 'app-fuente-reporte',\n\tstandalone: true,\n\timports: [ProgressBarModule,TooltipModule,CheckboxModule,PopupTablasFuenteComponent,StepsModule,CommonModule,TabViewModule,SplitButtonModule,NgIf,TranslateModule, InputTextModule,CommonModule, AccordionModule, DropdownModule, FormsModule, TableModule, TablaGeneralComponent, FiltroGeneralComponent, ButtonModule, ReactiveFormsModule, GeneralPipe, InputTextareaModule, ConfirmPopupModule, ButtonModule],\n\tproviders: [MessageService,ConfirmationService],\n\ttemplateUrl: './fuente-reporte.component.html',\n\tstyleUrl: './fuente-reporte.component.scss'\n})\nexport class FuenteReporteComponent implements OnInit {\n\n\tpublic fuente: FuenteDatoModel = new FuenteDatoModel();\n\tpublic vistaVisualizar: string\n\tpublic tablasFrom: TablaFromModel[] = []; // from TablaFrom\n\tpublic joinsFrom: JoinFromModel[] = []; //from JoinFrom \n\tpublic columnas: ReporteColumnaModel[] = [];\n\tpublic listaColumnas: any[] = [];\n\tpublic listaJoin: any[] = [];\n\tpublic col1: string;\n\tpublic col2: string;\n\tpublic campos: ColumnaFuenteModel[] = [];\n\tpublic camposSeleccionar: ColumnaWraperModel[] = [];\n\tpublic mostrarSeleccionar: boolean;\n\tpublic campoFormula: ColumnaFuenteModel = new ColumnaFuenteModel();\n\tpublic actual: number;\n\tpublic tabPrincipal: number;\n\tpublic basico: boolean;\n\tpublic seleccionGeneral: boolean;\n\tpublic foraneas: any[] = [];\n\tpublic descripcion: string;\n\tpublic query: string;\n\tpublic paginador: FuenteDatoModel[] = [];\n\tpublic filtro: FuenteDatoModel = new FuenteDatoModel();\n\tpublic paginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t};\n\tpublic columns : any[] = [];\n \tpublic filters : any[] = [];\n\tpublic loading : boolean;\n\tpublic menu: MenuItem[] = [];\n\tpublic items: MenuItem[] = [];\n\tpublic mapaMensajes: Map<number,string> = new Map<number,string>();\n\t@ViewChild('popupTablasFuenteUI') popupTablasFuenteUI: PopupTablasFuenteComponent;\n\tpublic tiposDato = ReporteEntradaConstantes.tipoDato\n\tpublic clickGuardar: boolean;\n\tpublic verNuevoJoin: boolean;\n\tpublic activeIndex: number = 0;\n\tpublic cargarPaso: boolean;\n\tloadingGenerar: boolean;\n\n\tconstructor(private menuService: MenuService,private notificationBusService: ToastService, private reportesSvc: ReportesService, private generalSvc: GeneralService, public utilsService: UtilsService, private confirmationService: ConfirmationService, private translateService: TranslateService,\n\t\tpublic messageService: MessageService, private generalPipe: GeneralPipe) { }\n\n\tngOnInit(): void {\n\t\tthis.listaColumnas = [];\n\t\tthis.campos = [];\n\t\tthis.listaJoin = [];\n\t\tthis.columnas = [];\n\t\tthis.tablasFrom = [];\n\t\tthis.camposSeleccionar = [];\n\t\tthis.joinsFrom = [];\n\t\tthis.actual = 0;\n\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte' }]);\n\t\tthis.columns = [\n\t\t {\n\t\t\tfield: 'descripcion',\n\t\t\theader: this.translateService.instant('descripcion'),\n\t\t\twidth: 100,\n\t\t },\n\t\t];\n\t\tthis.filters = [\n\t\t {\n\t\t\tfield: 'descripcion',\n\t\t\theader: this.translateService.instant('descripcion'),\n\t\t\tmatchMode: 'contains',\n\t\t }\n\t\t];\n\t\tthis.initStep();\n\t}\n\n\tpublic async load(event) {\n\t\ttry {\n\t\t\tthis.loading =true;\n\t\t\tthis.colocarFiltro();\n\t\t\tthis.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0,\n\t\t\t\tthis.filtro.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10,\n\t\t\t\tthis.paginador = await this.reportesSvc.consultarFuenteDato(this.filtro).toPromise();\n\t\t\tthis.paginator.totalRecords = await this.reportesSvc.cantidadFuenteDato(this.filtro).toPromise();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t\tthis.loading =false;\n\t}\n\n\tpublic colocarFiltro() {\n\t\tthis.filtro.origen = (\"F\");\n\t\tthis.filtro.descripcion = (null);\n\t\tif (this.utilsService.isNotBlank(this.descripcion)) {\n\t\t\tthis.filtro.descripcion = (ConstantesGenerales.PORCENTAJE + this.descripcion + ConstantesGenerales.PORCENTAJE);\n\t\t}\n\t}\n\n\n\tpublic limpiarCampos() {\n\t\tthis.descripcion = null;\n\t}\n\n\tpublic async siguiente() {\n\t\ttry {\n\t\t\tif (this.validarWizard()) {\n\t\t\t\tthis.cargarPaso = true;\n\t\t\t\tif (this.actual < 3) {\n\t\t\t\t\tif (this.actual == 0) {\n\t\t\t\t\t\tthis.foraneas = [];\n\t\t\t\t\t\tif (this.tablasFrom.length == 0) { // No selecciono ninguna tabla\n\t\t\t\t\t\t\tthis.notificationBusService.showInfo(\"Debe seleccionar al menos un objeto.\");\n\t\t\t\t\t\t\tthis.cargarPaso = false;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t} else if (this.tablasFrom.length == 1) { // Solo selecciono una, por eso no hay que generar joins.\n\t\t\t\t\t\t\tthis.actual++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet nombresTablas = [];\n\t\t\t\t\t\t\tfor (let tabla of this.tablasFrom) {\n\t\t\t\t\t\t\t\tif (!nombresTablas.includes(tabla.tabla)) {\n\t\t\t\t\t\t\t\t\tnombresTablas.push(tabla.tabla);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.foraneas = [];\n\t\t\t\t\t\t\t//List<LlaveForanea> \n\t\t\t\t\t\t\tlet llaves: LlaveForaneaModel[] = await this.reportesSvc.getLlaves(nombresTablas).toPromise();\n\t\t\t\t\t\t\tfor (let i = 0; i < this.tablasFrom.length; i++) {\n\t\t\t\t\t\t\t\tfor (let j = 0; j < this.tablasFrom.length; j++) {\n\t\t\t\t\t\t\t\t\tfor (let foranea of llaves) {\n\t\t\t\t\t\t\t\t\t\tif (foranea.tabla1 == (this.tablasFrom[i].tabla) && foranea.tabla2 == (this.tablasFrom[j].tabla)) {\n\t\t\t\t\t\t\t\t\t\t\tlet nuevo: ForeingWraperModel = new ForeingWraperModel();\n\t\t\t\t\t\t\t\t\t\t\tnuevo.alias1 = (this.tablasFrom[i].alias);\n\t\t\t\t\t\t\t\t\t\t\tnuevo.alias2 = (this.tablasFrom[j].alias);\n\t\t\t\t\t\t\t\t\t\t\tnuevo.llave = (foranea);\n\t\t\t\t\t\t\t\t\t\t\tthis.foraneas.push(nuevo);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Cargo las columnas para los siguientes procesos.\n\n\t\t\t\t\t\tthis.columnas = [];\n\t\t\t\t\t\tthis.listaColumnas = [];\n\t\t\t\t\t\tthis.camposSeleccionar = [];\n\n\t\t\t\t\t\tfor (let from of this.tablasFrom) {\n\t\t\t\t\t\t\t//ReporteColumnaDTO \n\t\t\t\t\t\t\tlet ta = new ReporteColumnaModel();\n\t\t\t\t\t\t\tta.reporteFuente = (from.tabla);\n\t\t\t\t\t\t\t//List<ReporteColumnaDTO> \n\t\t\t\t\t\t\tlet nuevas: ReporteColumnaModel[] = await this.generalSvc.queryForList(new GeneralModel('ReporteColumnaDTO', 'Reportes.consultarColumnas', false, ta)).toPromise();\n\t\t\t\t\t\t\tthis.cargarListasColumnas(nuevas, from.alias);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t\tthis.actual++;\n\t\t\t\t} else {\n\t\t\t\t\tthis.terminarPasos();\n\t\t\t\t}\n\t\t\t\tthis.cargarPaso = false;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t\tthis.cargarPaso = false;\n\t\t}\n\t}\n\n\tprivate async cargarListasColumnas(nuevas: ReporteColumnaModel[], alias: string) {\n\t\tfor (let col of nuevas) {\n\t\t\tcol.reporteFuente = (alias);\n\t\t\tthis.columnas.push(col);\n\t\t\tthis.listaColumnas.push({ value: col.reporteFuente + '.' + col.nombre, label: col.reporteFuente + '.' + col.nombre });\n\t\t\tlet campo = new ColumnaWraperModel();\n\t\t\tcampo.columna = col;\n\t\t\tcampo.alias = col.nombre;\n\t\t\tthis.camposSeleccionar.push(campo);\n\t\t}\n\t\tconsole.log('camposSeleccionar',this.camposSeleccionar);\n\t\t\n\t}\n\n\tpublic async terminarPasos() {\n\t\tthis.loadingGenerar = true;\n\t\tlet camposSql = \"\";\n\t\tlet i = 0;\n\t\tfor (let col of this.camposSeleccionar) {\n\t\t\tif (col.seleccionado) {\n\t\t\t\tcamposSql += (i == 0 ? \"\" : \",\") + col.columna.nombre + \" as \" + col.alias;\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\n\t\tthis.fuente.whereJoin = (this.generarSqlJoin());\n\t\tthis.fuente.fromSql = (this.generarSqlFrom());\n\t\tlet where = \"\";\n\t\tlet estaBlancoWhereJoin: boolean = this.fuente.whereJoin == null || \"\" == (this.fuente.whereJoin);\n\t\tlet estaBlancoWhereAdicional: boolean = this.fuente.whereAdicional == null || \"\" == (this.fuente.whereAdicional);\n\t\tif (!estaBlancoWhereJoin || !estaBlancoWhereAdicional) {\n\t\t\twhere = \" \\nWHERE \";\n\t\t\tif (!estaBlancoWhereJoin && !estaBlancoWhereAdicional) {\n\t\t\t\twhere += this.fuente.whereJoin + \" AND \\n(\" + this.fuente.whereAdicional + \")\";\n\t\t\t} else if (!estaBlancoWhereJoin) {\n\t\t\t\twhere += this.fuente.whereJoin;\n\t\t\t} else {\n\t\t\t\twhere += this.fuente.whereAdicional;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tlet sql = \"SELECT \\n\" + camposSql + \" \\nFROM \\n\" + this.fuente.fromSql + where;\n\t\t\tawait this.reportesSvc.validarQuery(sql).toPromise();\n\t\t\tthis.fuente.query = (sql);\n\t\t\tthis.query = sql;\n\t\t\tthis.tabPrincipal = 0;\n\t\t\tthis.tablasFrom = [];\n\t\t\tthis.construirColumnas();\n\t\t\tthis.actual = 0;\n\t\t\tthis.notificationBusService.showInfo('Query creada satisfactoriamente.');\n\t\t\tthis.loadingGenerar = false;\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t\tthis.loadingGenerar = false;\n\t\t}\n\t}\n\n\tpublic async adicionarForanea(evento) {\n\t\ttry {\n\t\t\t//ForeingWraper \n\t\t\tlet foranea: ForeingWraperModel = evento.data;\n\t\t\tfor (let rel of foranea.llave.relaciones) {\n\t\t\t\tlet par = rel.split(\":\");\n\t\t\t\tlet join = new JoinFromModel();\n\t\t\t\tjoin.columna1 = (foranea.alias1 + \".\" + par[0]);\n\t\t\t\tjoin.columna2 = (foranea.alias2 + \".\" + par[1]);\n\t\t\t\tif(this.joinsFrom.some(data => data.columna1 === join.columna1 && data.columna2 === join.columna2)){\n\t\t\t\t\tthis.notificationBusService.showWarning('Registro ya se encuentra asociado.')\n\t\t\t\t}else{\n\t\t\t\t\tthis.joinsFrom.push(join);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic async eliminar() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.translateService.instant('mensaje_alerta'),\n\t\t\ticon: 'confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.setRespuesta(true)\n\t\t\t},\n\t\t\treject: () => {\n\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic async setRespuesta(respuesta: boolean) {\n\t\ttry {\n\t\t\tif (respuesta) {\n\t\t\t\tthis.reportesSvc.eliminarFuenteDatosConHijos(this.fuente).toPromise();\n\t\t\t\tthis.fuente = null;\n\t\t\t\tthis.notificationBusService.showInfo(\"La fuente ha sido eliminada.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic anterior() {\n\t\tif (this.actual > 0){\n\t\tif(this.actual == 2 && this.tablasFrom.length == 1){\n\t\t\tthis.actual = 0;\n\t\t}else{\n\t\t\tthis.actual--;\n\t\t}\n\t\t}\n\t\t\t\n\t}\n\n\tpublic async validarQuery() {\n\t\ttry {\n\n\t\t\tif (this.utilsService.validarTextoSQL(this.query, true, true, 8000, true)) {\n\t\t\t\tthis.reportesSvc.validarQuery(this.query);\n\t\t\t\tthis.notificationBusService.showInfo(\"El query esta correcto.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t//Validador.adicionarMensaje(\"fuenteForm:tab:query\", e.getMessage());\n\t\t}\n\t}\n\n\tpublic adicionarJoin() {\n\t\ttry {\n\t\t\tif (this.col1 != null && this.col2 != null) {\n\t\t\t\t// TODO: Falta validar el tipo\n\t\t\t\tlet nuevo = new JoinFromModel();\n\t\t\t\tnuevo.columna1 = (this.col1);\n\t\t\t\tnuevo.columna2 = (this.col2);\n\t\t\t\tthis.joinsFrom.push(nuevo);\n\t\t\t\tthis.cancelarNuevoJoin();\n\t\t\t} else {\n\t\t\t\tthis.notificationBusService.showWarning(\"Debe seleccionar dos campos\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tnuevoJoin(){\n\t\tthis.verNuevoJoin = true;\n\t\tthis.col1 = '';\n\t\tthis.col2 = '';\n\t}\n\n\tcancelarNuevoJoin(){\n\t\tthis.verNuevoJoin = false;\n\t\tthis.col1 = '';\n\t\tthis.col2 = '';\n\t}\n\n\tpublic eliminarJoin(ae) {\n\t\ttry {\n\t\t\t//let join = (JoinFrom) ((UIParameter) ae.getComponent().findComponent(\"join\")).getValue();\n\t\t\tthis.joinsFrom = this.joinsFrom.filter((data) => data.columna1 !== ae?.columna1);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic eliminarTabla(ae) {\n\t\ttry {\n\t\t\t//TablaFrom tabla = (TablaFrom) ((UIParameter) ae.getComponent().findComponent(\"tabla\")).getValue();\n\t\t\tthis.tablasFrom = this.tablasFrom.filter((data) => data != ae);\n\t\t\tthis.notificationBusService.showWarning(\"Falta eliminar las columnas de la tabla ???\");\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic buscarTabla() {\n\t\tthis.popupTablasFuenteUI.buscarTabla(\"fuenteUI.tablaSeleccionada\");\n\t}\n\n\tpublic setTablaSeleccionada(tablaSeleccionada: any[]) {\n\t\ttry {\n\t\t\tlet tablas = [];\n\t\t\tfor (let tabla of this.tablasFrom) {\n\t\t\t\tif (!tablas.includes(tabla.tabla)) {\n\t\t\t\t\ttablas.push(tabla.tabla);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttablaSeleccionada.forEach(element => {\n\t\t\t\tthis.cargarTablaEnLista(element.objeto);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tprivate cargarTablaEnLista(tabla: string) {\n\t\tlet par = tabla.split(\"_\");\n\t\tlet alias = par[0];\n\t\tlet i = 1;\n\t\tlet tablaTemp = new TablaFromModel()\n\t\ttablaTemp.alias = alias;\n\t\twhile (this.tablasFrom.includes(tablaTemp)) {\n\t\t\talias = tabla + (i++);\n\t\t}\n\t\tlet tem = new TablaFromModel();\n\t\ttem.tabla = tabla;\n\t\ttem.alias = alias;\n\t\tthis.tablasFrom.push(tem);\n\t\treturn alias;\n\t}\n\n\n\n\tpublic cambioJoin(ce) {\n\t\ttry {\n\t\t\tthis.listaJoin = [];\n\t\t\tlet nuevo = ce.value;\n\t\t\tif (nuevo != null) {\n\t\t\t\t//ReporteColumnaDTO \n\t\t\t\tlet act: ReporteColumnaModel = null;\n\t\t\t\tfor (let col of this.columnas) {\n\t\t\t\t\tif (nuevo ==(col.reporteFuente + \".\" + col.nombre)) {\n\t\t\t\t\t\tact = col;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let col of this.columnas) {\n\t\t\t\t\tif (!col.reporteFuente.startsWith(act.reporteFuente) && col.tipoDato == (act.tipoDato) && col.orden == (act.orden)) {\n\t\t\t\t\t\tlet val = col.reporteFuente + \".\" + col.nombre;\n\t\t\t\t\t\tthis.listaJoin.push({ value: val, label: val });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic editarCampo(evento) {\n\t\ttry {\n\t\t\tlet col: ColumnaFuenteModel = evento.data;\n\t\t\tthis.campoFormula = col;\n\t\t\tlet vars = [];\n\t\t\tfor (let campo of this.campos) {\n\t\t\t\tlet var1: any;\n\t\t\t\tvar1.nombre = (campo.nombre);\n\t\t\t\tvar1.tipo = (campo.tipoDato);\n\t\t\t\tvars.push(var1);\n\t\t\t}\n\t\t\t//getBean(EditorFormulaUI.class).editar(col.getSintaxis(), \"fuenteUI.formula\", vars);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic editarWhere() {\n\t\ttry {\n\t\t\tlet vars = [];\n\t\t\tfor (let col of this.columnas) {\n\t\t\t\t//VariableFormula \n\t\t\t\tlet var1;\n\t\t\t\tvar1.nombre = (col.reporteFuente + \".\" + col.nombre);\n\t\t\t\tvar1.tipo(col.tipoDato);\n\t\t\t\tvars.push(var1);\n\t\t\t}\n\t\t\t//getBean(EditorFormulaUI.class).editar(fuente.getWhereAdicional(), \"fuenteUI.fuente.whereAdicional\", vars);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic setFormula(formula) {\n\t\tif (this.campoFormula != null) {\n\t\t\tthis.campoFormula.sintaxis = (formula);\n\t\t}\n\t\tthis.campoFormula = null;\n\t}\n\n\tpublic adicionarColumnas() {\n\t\tfor (let col of this.camposSeleccionar) {\n\t\t\tcol.seleccionado = (false);\n\t\t}\n\t\tthis.mostrarSeleccionar = true;\n\t}\n\n\tpublic agregarSeleccionados() {\n\t\ttry {\n\t\t\tfor (let col of this.camposSeleccionar) {\n\t\t\t\tif (col.seleccionado) {\n\t\t\t\t\t//ColumnaFuenteDTO \n\t\t\t\t\tlet campo = new ColumnaFuenteModel();\n\t\t\t\t\tcampo.fuenteDato = (this.fuente.llave);\n\t\t\t\t\tcampo.nombre = (col.columna.nombre);\n\t\t\t\t\tcampo.sintaxis = (col.columna.nombre);\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.ocultarSeleccionar();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic ocultarSeleccionar() {\n\t\tthis.mostrarSeleccionar = false;\n\t}\n\n\tpublic async verDetalle(evento) {\n\t\ttry {\n\t\t\tthis.vistaVisualizar = 'mantenimiento';\n\t\t\tlet fuenteDatoDTO = evento;\n\t\t\tthis.fuente = new FuenteDatoModel();\n\t\t\tthis.fuente.llave = (fuenteDatoDTO.llave);\n\t\t\tthis.fuente = await this.reportesSvc.consultarUnicaFuenteDato(this.fuente).toPromise();\n\t\t\tif (this.fuente.query2 != null) {\n\t\t\t\tthis.query = this.fuente.query + this.fuente.query2;\n\t\t\t} else {\n\t\t\t\tthis.query = this.fuente.query;\n\t\t\t}\n\t\t\t//ColumnaFuenteDTO \n\t\t\tlet col = new ColumnaFuenteModel();\n\t\t\tcol.fuenteDato = (this.fuente.llave);\n\t\t\tthis.campos = await this.reportesSvc.consultarColumnasFuente(col).toPromise();\n\t\t\tthis.actual = 0;\n\t\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte', }, {label: 'Mantenimiento Fuente'}]);\n\t\t\tthis.cargasOpciones();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic nuevo() {\n\t\ttry {\n\t\t\tthis.vistaVisualizar = 'mantenimiento';\n\t\t\tthis.fuente = new FuenteDatoModel();\n\t\t\tthis.fuente.origen = (\"F\");\n\t\t\tthis.campos = null;\n\t\t\tthis.query = null;\n\t\t\tthis.tabPrincipal = 0;\n\t\t\tthis.actual = 0;\n\t\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte', }, {label: 'Mantenimiento Fuente'}]);\n\t\t\tthis.cargasOpciones();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tcargasOpciones(){\n\t\tthis.menu= [{label: this.translateService.instant('link_eliminar'), icon: 'glyphicons glyphicons-bin', visible: this.fuente.llave != null, command: (event) => {this.eliminar()}},\n\t\t{label: this.translateService.instant('link_validar'), icon: 'glyphicons glyphicons-check', command: (event) => {this.validarQuery()}},\n\t\t{label: this.translateService.instant('link_generar'), icon: 'glyphicons glyphicons-refresh',visible: this.fuente.llave != null, command: (event) => {this.construirColumnas()}},\n\t\t]\n\t}\n\n\tregresar(){\n\t\tthis.vistaVisualizar = null;\n\t\tthis.ngOnInit();\n\t}\n\n\tprivate validar(): boolean {\n\t\tlet res = true;\n\t\tthis.clickGuardar = true;\n\t\tres = res && this.utilsService.validarCampoObligatorio(this.fuente.descripcion);\n\t\tres = res && (this.utilsService.validarTextoSQL(this.query, true, true, 8000, true) == null);\n\t\treturn res;\n\t}\n\n\t/**\n\t * Registra/actualiza la informacion general de la fuente de datos\n\t */\n\tpublic async guardar() {\n\t\ttry {\n\t\t\tif (this.validar()) {\n\t\t\t\tthis.clickGuardar = false;\n\t\t\t\tif (this.query.length > 4000) {\n\t\t\t\t\tthis.fuente.query = (this.query.substring(0, 3999));\n\t\t\t\t\tthis.fuente.query2 = (this.query.substring(3999, this.query.length));\n\t\t\t\t} else {\n\t\t\t\t\tthis.fuente.query = (this.query);\n\t\t\t\t\tthis.fuente.query2 = (null);\n\t\t\t\t}\n\n\t\t\t\tif (this.fuente.llave == null) {\n\t\t\t\t\tthis.fuente.llave = (this.utilsService.generarLlave());\n\t\t\t\t\tawait this.reportesSvc.insertarFuenteDato(this.fuente).toPromise();\n\t\t\t\t} else {\n\t\t\t\t\tawait this.reportesSvc.actualizarFuenteDato(this.fuente).toPromise();\n\t\t\t\t}\n\t\t\t\tthis.notificationBusService.showInfo(\"Los cambios han sido guardados\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}//guardar\n\n\t/**\n\t * Registra/actualiza las columnas generados para la fuente de datos como registros de tipo 'ColumnaFuente'\n\t */\n\tpublic async guardarCampos() {\n\t\ttry {\n\t\t\tif (this.fuente.llave == null) {\n\t\t\t\tthis.notificationBusService.showInfo(\"Por favor diligencie primero los datos de la fuente\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.validarCampos()) {\n\t\t\t\tawait this.reportesSvc.actualizarColumnasFuente(this.fuente, this.campos).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se han guardado los campos\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}//guardarCampos\n\n\t/**\n\t * Verifica que los valores asociados a los campos para la creacion de las columnas de la fuente sean válidos\n\t * @return false en caso de que los valores asignados a los campos sean nulos o no sean palabras válidas de acuerdo \n\t * con las condiciones dadas por ValidadorUtil.validarPalabra()),\n\t * en caso contrario retorna true\n\t */\n\tprivate validarCampos() {\n\t\tfor (let col of this.campos) {\n\t\t\tif (col.nombre == null || !this.utilsService.validarPalabra(col.nombre)) {\n\t\t\t\tthis.notificationBusService.showInfo(\"Nombre no valido (\" + col.nombre + \")\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Construye las columnas de la fuente de datos, con base en los campos obtenidos \n\t * de la consulta SQL asociada\n\t */\n\tpublic async construirColumnas() {\n\t\ttry {\n\t\t\tthis.campos = await this.reportesSvc.getColumnasSql(this.query).toPromise();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}//construirColumnas\n\n\n\n\tprivate validarWizard() {\n\t\tlet alias: string[] = [];\n\t\tfor (let tabla of this.tablasFrom) {\n\t\t\tif (alias.includes(tabla.alias)) {\n\t\t\t\tthis.notificationBusService.showInfo(\"No se puede repetir el alias de las tablas.\");\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\talias.push(tabla.alias);\n\t\t\t}\n\t\t}\n\t\talias = [];\n\t\tfor (let col of this.camposSeleccionar) {\n\t\t\tif (col.seleccionado) {\n\t\t\t\tif (alias.includes(col.alias)) {\n\t\t\t\t\tthis.notificationBusService.showInfo(\"No se puede repetir el alias de las columnas.\");\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\talias.push(col.alias);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate generarSqlFrom() {\n\t\tlet res = \"\";\n\t\tlet i = 0;\n\t\tfor (let tabla of this.tablasFrom) {\n\t\t\tres += (i == 0 ? \"\" : \",\") + tabla.tabla + \" \" + tabla.alias;\n\t\t\ti++;\n\t\t}\n\t\treturn res;\n\t}\n\n\tprivate generarSqlJoin() {\n\t\tlet res = \"\";\n\t\tlet i = 0;\n\t\tfor (let join of this.joinsFrom) {\n\t\t\tres += (i == 0 ? \"\" : \" AND \") + join.columna1 + \" = \" + join.columna2;\n\t\t\ti++;\n\t\t}\n\t\treturn res;\n\t}\n\n\t//IMPLEMENTACION STEPER\n\tinitStep(){\n\t\tthis.mapaMensajes.set(0,'Seleccione las tablas o vistas de donde desea obtener la informaci'+this.generalPipe.O_TIDLE_MIN+'n.')\n\t\tthis.mapaMensajes.set(1,'Indique de qu'+this.generalPipe.E_TILDE_MIN+' manera se relacionan los objetos entre s'+this.generalPipe.I_TILDE_MIN+'.')\n\t\tthis.mapaMensajes.set(2,'Indique los filtros adicionales que desee realizar sobre la informaci'+this.generalPipe.O_TIDLE_MIN+'n.')\n\t\tthis.mapaMensajes.set(3,'Seleccione los campos que desee ver en la consulta.')\n\t\tthis.items = [\n {\n label: this.translateService.instant('from'),\n command: (event) => {console.log(event);},\n\t\t\t\tdisabled: true,\n\t\t\t\ttitle:'Seleccione las tablas o vistas de donde desea obtener la informacion.'\n },\n {\n label: this.translateService.instant('join'),\n\t\t\t\tcommand: (event) => {console.log(event);},\n\t\t\t\tdisabled: true,\n title: 'Indique de que manera se relaccionan los objetos entre si.'\n },\n {\n label: this.translateService.instant('where'),\n\t\t\t\tcommand: (event) => {console.log(event);},\n\t\t\t\tdisabled: true,\n title: 'Indique los filtros adicionales que desee realizar sobre la informacion.'\n },\n {\n label: this.translateService.instant('campos'),\n command: (event) => {console.log(event);},\n\t\t\t\tdisabled: true,\n }\n ];\n\t}\n\n\tactualizarSeleccion(booleanogeneral: boolean): void {\n\t\tthis.camposSeleccionar.forEach((elemento) => {\n\t\t\telemento.seleccionado = booleanogeneral;\n\t\t});\n\t}\n\n\ttodosSeleccionados(): boolean {\n\t\treturn this.camposSeleccionar.every(elemento => elemento.seleccionado);\n\t}\n\n\n}\n","@if(vistaVisualizar == null){\n<h1>{{'fuente' | translate}} {{'reporte'| translate}}</h1>\n<div class=\"flex justify-content-between align-items-center mb-3\">\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n <ng-template let-form>\n <ng-container [formGroup]=\"form\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n autocomplete=\"off\" />\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\n </span>\n </ng-container>\n </ng-template>\n </app-filtro-general>\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n</div>\n<app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"load($event)\" (onRowSelect)=\"verDetalle($event)\"\n [loading]=\"loading\"></app-tabla-general>\n}\n@if(vistaVisualizar != null){\n<div class=\"flex justify-content-between align-items-center mb-3\">\n <h1>{{'fuente' | translate}} {{'reporte'| translate}}</h1>\n <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n class=\"p-button-text font-semibold\"></button>\n</div>\n<p-tabView [(activeIndex)]=\"tabPrincipal\">\n <p-tabPanel header=\"{{ 'fuente'| translate}}\">\n <div class=\"card\">\n <div class=\"mt-4\">\n <h5><i class=\"glyphicons glyphicons-book\"></i>{{'datos'| translate}} {{'basicos'| translate}}</h5>\n </div>\n\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <span class=\"p-float-label\">\n <input pInputText autofocus type=\"text\" id=\"peso\" [(ngModel)]=\"fuente.descripcion\"\n autocomplete=\"off\" />\n <label for=\"peso\">{{'nombre' | translate}}</label>\n </span>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"query\"\n autofocus [autoResize]=\"true\"> </textarea>\n <label for=\"descripcion\">{{'consulta' | translate}}\n </label>\n </span>\n </div>\n </div>\n <div class=\"flex justify-content-end mb-2\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n </button>\n <p-splitButton class=\"ml-2\" label=\"Acciones Fuente\" icon=\"glyphicons glyphicons-list\"\n [model]=\"menu\"></p-splitButton>\n </div>\n </div>\n <div class=\"flex justify-content-end mb-2\">\n <button pButton pRipple class=\"ml-2 p-button p-button-secondary\" icon=\"glyphicons glyphicons-floppy-save\"\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardarCampos()\">\n </button>\n </div>\n\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"campos\" [scrollable]=\"true\"\n [totalRecords]=\"campos.length\" [paginator]=\"camposSeleccionar.length > 10\" [rows]=\"10\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n dataKey=\"llaveTabla\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:25%\">{{'nombre' | translate}}</th>\n <th style=\"width:25%\">{{'sintaxis' | translate}}</th>\n <th style=\"width:25%\">{{'tipo' | translate}} de {{'dato' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"campo\">\n <td style=\"width:25%\">\n <input pInputText type=\"text\" [(ngModel)]=\"campo.nombre \" class=\"w-full\">\n </td>\n <td style=\"width:25%\">\n {{campo.tipoDato}}\n </td>\n <td style=\"width:25%\">\n {{campo.tipoDato}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-tabPanel>\n\n\n <p-tabPanel header=\"{{ 'wizard'| translate}}\">\n <p-steps [model]=\"items\" [readonly]=\"false\" [activeIndex]=\"actual\"></p-steps>\n\n <div class=\"cardInstrucciones mt-4 mb-3\" style=\"margin-bottom: 0px !important;\">\n <div class=\"flex align-items-center justify-content-between\">\n <div class=\"flex\">\n <div class=\"icono\">\n <i class=\"pi pi-bell\"></i>\n </div>\n <div class=\"contenedor\" style=\"margin-top: 2%;\">\n <label>{{mapaMensajes?.get(actual)}}</label>\n </div>\n </div>\n <div class=\"flex align-items-center justify-content-end\">\n <p-button (onClick)=\"anterior()\" [rounded]=\"true\" icon=\"pi pi-angle-left\" class=\"p-button-outlined\"\n pTooltip=\"Anterior\" tooltipPosition=\"top\" placeholder=\"Top\"\n [outlined]=\"true\" [disabled]=\"actual <= 0\" />\n <p-button (onClick)=\"siguiente()\" [rounded]=\"true\" icon=\"pi pi-angle-right\" class=\"p-button-outlined\"\n [outlined]=\"true\" *ngIf=\"actual != 3\"\n [pTooltip]=\"actual === 3 ? 'Terminar': 'Siguiente'\" tooltipPosition=\"top\" placeholder=\"Top\" />\n\n <button pButton label=\"{{'terminar' | translate}}\" icon=\"pi pi-angle-right\" (click)=\"siguiente()\"\n *ngIf=\"actual === 3\"\n class=\"p-ripple p-element p-button p-component p-button-secondary p-2 ml-2\"></button>\n </div>\n </div>\n </div>\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '3px' }\" *ngIf=\"cargarPaso\" />\n\n <div class=\"mt-2\" *ngIf=\"!cargarPaso\">\n @if(actual === 0){\n <div class=\"flex justify-content-end mb-2\">\n <button pButton label=\"{{'fuente' | translate}}\" icon=\"pi pi-plus\" (click)=\"buscarTabla()\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2 mt-3\"></button>\n </div>\n <div>\n\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"tablasFrom\" [scrollable]=\"true\"\n [totalRecords]=\"tablasFrom.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"tablasFrom.length > 10\"\n [rows]=\"10\" [rowsPerPageOptions]=\"[10, 20, 30]\" styleClass=\"p-datatable-striped\"\n [showCurrentPageReport]=\"true\" editMode=\"row\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n dataKey=\"llave\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\n <th style=\"width:25%\">{{'alias' | translate}}</th>\n <th style=\"width:25%\"> </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"tabla\">\n <td style=\"width:25%\">\n {{tabla.tabla}}\n </td>\n <td style=\"width:25%\">\n {{tabla.alias}}\n </td>\n <td class=\"flex justify-content-end\">\n <div>\n <!-- ELIMINAR -->\n <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n (click)=\"eliminarTabla(tabla)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </div>\n\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n }\n @if(actual == 1){\n <div class=\"mt-3\">\n <h4>{{'foranea'| translate}}</h4>\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"foraneas\" [scrollable]=\"true\"\n selectionMode=\"single\" scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\n editMode=\"row\" (onRowSelect)=\"adicionarForanea($event)\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\" dataKey=\"llave\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\n <th style=\"width:25%\">{{'campo' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pSelectableRow]=\"tabla\">\n <td style=\"width:25%\">\n {{tabla.alias1}}\n </td>\n <td style=\"width:25%\">\n {{tabla.alias2}}\n </td>\n <td style=\"width:25%\">\n {{tabla.llave.nombre}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n \n <div class=\"card mt-3\">\n <div class=\"tabla-planta-personal\"\n style=\"padding: 0% !important;background: transparent !important;height: auto !important;\">\n <div class=\"flex justify-content-between align-items-center mb-2 mt-2\">\n <h4>{{'join'| translate}}</h4>\n <button pButton label=\"{{'agregar' | translate}} {{'join' | translate}}\" (click)=\"nuevoJoin()\"\n icon=\"pi pi-plus\"\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n </div>\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"joinsFrom\" [scrollable]=\"true\"\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\n editMode=\"row\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" dataKey=\"llave\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:45%\">{{'campo' | translate}} 1</th>\n <th style=\"width:5%\">{{'=' | translate}}</th>\n <th style=\"width:45%\">{{'campo' | translate}} 2</th>\n <th>{{'' | translate}}</th>\n </tr>\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"verNuevoJoin\">\n <td style=\"width:45%\">\n <p-dropdown [options]=\"listaColumnas\" optionValue=\"value\" [(ngModel)]=\"col1\"\n appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\"\n optionLabel=\"label\" (onChange)=\"cambioJoin($event)\"></p-dropdown>\n </td>\n <td style=\"width:5%\">=</td>\n <td style=\"width:45%\">\n <p-dropdown [options]=\"listaJoin\" optionValue=\"value\" [(ngModel)]=\"col2\"\n appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\"\n optionLabel=\"label\"></p-dropdown>\n </td>\n\n <td class=\"flex justify-content-end\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"adicionarJoin()\"\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n <button pButton pRipple type=\"button\" (click)=\"cancelarNuevoJoin()\"\n icon=\"pi pi-times\"\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [pEditableRow]=\"tabla\">\n <td style=\"width:45%\">\n {{tabla.columna1}}\n </td>\n <td style=\"width:5%\">\n {{'='}}\n </td>\n <td style=\"width:45%\">\n {{tabla.columna2}}\n </td>\n <td>\n <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n (click)=\"eliminarJoin(tabla)\"\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n\n\n }\n @if(actual == 2){\n\n <div class=\"card\">\n <div class=\"mt-4\">\n <h5><i class=\"glyphicons glyphicons-book\"></i>{{'where'| translate}}</h5>\n </div>\n\n <div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-12 lg:col-12\">\n <span class=\"p-float-label\">\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\n [(ngModel)]=\"fuente.whereAdicional\" autofocus [autoResize]=\"true\"> </textarea>\n <label for=\"descripcion\">{{'consulta' | translate}}\n </label>\n </span>\n </div>\n </div>\n\n <!-- <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n (click)=\"editarWhere()\">\n </button>\n </div> -->\n </div>\n\n }\n @if(actual == 3){\n <div class=\"mt-3\">\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"camposSeleccionar\" [scrollable]=\"true\"\n [totalRecords]=\"camposSeleccionar.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"camposSeleccionar.length > 10\"\n [rows]=\"10\" [rowsPerPageOptions]=\"[10, 20, 30]\" styleClass=\"p-datatable-striped\"\n [showCurrentPageReport]=\"true\" editMode=\"row\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n dataKey=\"alias\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width:25%\" alignFrozen=\"left\" pFrozenColumn>\n <p-checkbox [style]=\"{'margin-left': '1%','margin-right':'1%'}\"\n [(ngModel)]=\"seleccionGeneral\" [binary]=\"true\" [ngModel]=\"todosSeleccionados()\"\n (ngModelChange)=\"actualizarSeleccion($event)\"></p-checkbox>\n <span style=\"margin-left:1%\">{{'tabla' | translate}}</span>\n </th>\n <th style=\"width:25%\">{{'columna' | translate}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tabla>\n <tr>\n <td style=\"width:25%\">\n <p-checkbox class=\"mr-2 \" [(ngModel)]=\"tabla.seleccionado\" [binary]=\"true\"\n inputId=\"binary\">\n </p-checkbox>\n {{tabla.columna.reporteFuente}}\n </td>\n <td style=\"width:25%\">\n {{tabla.columna.nombre}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"5\">\n {{'mensajetablavacia' | translate}}\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n }\n </div>\n </p-tabPanel>\n</p-tabView>\n\n}\n\n<app-popup-tablas-fuente #popupTablasFuenteUI\n (aplicarDestinoOcultar)=\"setTablaSeleccionada($event)\"></app-popup-tablas-fuente>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { DialogModule } from 'primeng/dialog';\nimport { TableModule } from 'primeng/table';\nimport { PlantillasService } from '../../services/plantillas.service';\nimport { firstValueFrom } from 'rxjs';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ToastService } from '../../../core/servicios/toast.service';\n\n@Component({\n selector: 'app-popup-convertir-plantillas',\n standalone: true,\n imports: [DialogModule,\n TableModule,\n PrimeTemplate,\n TranslateModule,\n CheckboxModule,\n FormsModule,\n ButtonDirective,\n Ripple,],\n templateUrl: './popup-convertir-plantillas.component.html',\n styleUrl: './popup-convertir-plantillas.component.scss'\n})\nexport class PopupConvertirPlantillasComponent implements OnInit {\n\n @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n @Input() showDialog: boolean = false;\n\n listaArchivo: any[];\n listaSeleccionados: any[] = [];\n seleccionar: boolean = true;\n seleccionarTodo: boolean = false;\n\n\n constructor(private plantillasService: PlantillasService, public translateService: TranslateService, private toastService: ToastService,) { }\n\n public ocultar() {\n this.showDialog = false;\n this.regresar.emit(false);\n }\n\n ngOnInit(): void {\n this.listaArchivo = [];\n this.listaSeleccionados = [];\n }\n\n async buscar(rutaPlantilla: string, filtro: string) {\n\n let data = await firstValueFrom(this.plantillasService.consultarListadoPlanillasAConvertir(rutaPlantilla, filtro));\n\n this.listaArchivo = data;\n\n if (!(this.listaArchivo.length > 0)) {\n this.toastService.showWarning(\"No existe plantillas para convertir\");\n this.ocultar();\n }\n\n this.showDialog = true;\n }\n\n cambiarEstadoCheck() {\n\n if (this.seleccionar) {\n this.seleccionar = false;\n for (let per of this.listaArchivo) {\n per.check = true;\n }\n } else {\n this.seleccionar = true;\n for (let per of this.listaArchivo) {\n per.check = false;\n }\n }\n return null;\n\n }\n\n estadoCheck(dato: any) {\n\n let isvalidar = false;\n\n for (let per of this.listaArchivo) {\n if (!per.check) {\n isvalidar = true;\n break;\n }\n }\n\n if (isvalidar) {\n this.seleccionar = true;\n this.seleccionarTodo = false;\n } else {\n this.seleccionar = false;\n this.seleccionarTodo = true;\n }\n\n }\n\n async continuar() {\n\n if (await this.selecciona()) {\n //Guarda el documento\n await firstValueFrom(this.plantillasService.convertirArchivo(this.listaSeleccionados));\n this.toastService.showSuccess(\"Se han convertido exitosamente los registros seleccionados\");\n this.ocultar();\n\n } else {\n this.toastService.showWarning(\"Seleccione al menos un registro\");\n return;\n }\n\n }\n\n async selecciona(): Promise<boolean> {\n\n this.listaSeleccionados = [];\n\n if (this.listaArchivo.length > 0) {\n for (let ser of this.listaArchivo) {\n if (ser.check) {\n this.listaSeleccionados.push(ser);\n }\n }\n }\n return this.listaSeleccionados.length > 0;\n }\n\n}\n","<p-dialog header=\"{{ 'seleccione' | translate }}\" [(visible)]=\"showDialog\" (onHide)=\"ocultar()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '30vw' }\">\n\n <div class=\"flex justify-content-end align-items-center mb-2\">\n <!-- Botón de Reportes-->\n <button pButton pRipple label=\"{{'continuar' | translate}}\" icon=\"glyphicons glyphicons-check\"\n class=\"p-button-secondary font-semibold mr-2 border-solid-1 border-color-75\"\n (click)=\"continuar()\"></button>\n </div>\n\n <p-table #tablaGeneral id=\"tabla_listado_control_prorroga\" [value]=\"listaArchivo\" responsiveLayout=\"scroll\"\n [rows]=\"10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [paginator]=\"listaArchivo.length > 10\"\n [scrollable]=\"true\" [totalRecords]=\"listaArchivo.length\" [showCurrentPageReport]=\"true\"\n [rowsPerPageOptions]=\"[10, 20, 50]\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n\n <ng-template pTemplate=\"header\">\n <tr>\n @if(listaArchivo.length > 0){\n <th style=\"max-width:50px; margin-left: 2px;\">\n <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoCheck()\" [binary]=\"true\"\n (click)=\"$event.stopPropagation()\">\n </p-checkbox>\n </th>\n }\n <th>{{'descripcion' | translate}}</th>\n </tr>\n <th></th>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-dato>\n <tr>\n <td style=\"max-width:50px\">\n <div class=\"field-checkbox\">\n <p-checkbox class=\"ml-1\" [(ngModel)]=\"dato.check\" [binary]=\"true\" (onChange)=\"estadoCheck(dato)\"\n (click)=\"$event.stopPropagation()\">\n </p-checkbox>\n </div>\n </td>\n <td>{{dato.nombre}}</td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"p-3 font-medium emptymessage\">\n <td colspan=\"10\"> {{'mensajetablavacia' | translate}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n</p-dialog>","import { CommonModule } from '@angular/common';\nimport { Component, ViewChild } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConfirmationService, MenuItem, TreeNode } from 'primeng/api';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { Tree, TreeModule } from 'primeng/tree';\nimport { AuthService } from '../../../../core/servicios/auth.service';\nimport { PlantillasService } from '../../../../webcommon/services/plantillas.service';\nimport { CargarControlFuncionalidadService } from '../../../../core/servicios/cargar-control-funcionalidad.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { ToastService } from '../../../../core/servicios/toast.service';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { GeneralPipe } from '../../../../webcommon/pipes/general.pipe';\nimport { PopupConvertirPlantillasComponent } from '../../../../webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component';\nimport { UtilsService } from '../../../../core/servicios/utils.service';\nimport { firstValueFrom } from 'rxjs';\nimport { EditorModule } from 'primeng/editor';\n\n@Component({\n selector: 'app-cargue-plantilla-general',\n standalone: true,\n imports: [TranslateModule,\n CommonModule,\n TreeModule,\n InputTextModule,\n ButtonModule,\n SplitButtonModule,\n ConfirmPopupModule,\n FormsModule,\n FieldsetModule,\n FileUploadModule,\n PopupConvertirPlantillasComponent,\n EditorModule\n ],\n templateUrl: './cargue-plantilla-general.component.html',\n styleUrl: './cargue-plantilla-general.component.scss',\n providers: [\n ConfirmationService\n ]\n})\nexport class CarguePlantillaGeneralComponent {\n\n @ViewChild(PopupConvertirPlantillasComponent) popupConvertirPlantillasComponent: PopupConvertirPlantillasComponent;\n @ViewChild('miFormulario', { static: false }) miFormulario!: NgForm;\n @ViewChild('tree') treeComponent!: Tree;\n\n loading: boolean;\n propiedad: string;\n extensiones: string;\n propiedadDeSistema: boolean = false;\n anexoPropiedad: string = '';\n files: TreeNode[];\n dataSelected: TreeNode;\n itemsBotonAcciones: MenuItem[];\n verConvertir: boolean;\n nomNuevaCarpeta: string;\n isVisualizarCrearCaperta: boolean = false;\n archivoSeleccionadoAnexo: File;\n archivoSeleccionado: TreeNode;\n isMostrarPopupConvertir: boolean = false;\n rutaPrincipal: string;\n filteredFiles: TreeNode[] = [];\n filterValue: string = '';\n\n FORMATS_VALIDOS: Set<string> = new Set([\n '.doc',\n '.html',\n '.jasper',\n '.xls',\n '.jrxml',\n '.odt',\n '.xlsm',\n '.xlsx',\n '.pgp',\n '.asc',\n '.cer',\n '.p12',\n '.docx',\n '.properties'\n ]);\n filtroConvertir: string;\n html: boolean;\n mostrarEditor: boolean;\n modificarHTML: string;\n\n constructor(private plantillasService: PlantillasService, private authService: AuthService, public translateService: TranslateService,\n public controlFuncionService: CargarControlFuncionalidadService, private confirmationService: ConfirmationService,\n private toastService: ToastService, private cargarArchivoServices: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService,\n private generalPipe: GeneralPipe, public utilsService: UtilsService\n ) { }\n\n async ngOnInit(): Promise<void> {\n\n this.mostrarEditor = false;\n let consultarRutaPrincipal = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_plantillas\", aplicacion: 1 }));\n let convertir = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: \"servidor_openOffice\", aplicacion: 0 }));\n this.verConvertir = !convertir.valor.valor ? true : false;\n this.rutaPrincipal = consultarRutaPrincipal.valor.valor;\n this.isVisualizarCrearCaperta = false;\n await this.openDataTable();\n\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n await sleep(100);\n\n if (this.filterValue) {\n await this.aplicarFiltro();\n }\n }\n\n async openDataTable() {\n\n setTimeout(() => {\n this.loading = true;\n\n if (!this.propiedad) {\n this.propiedad = 'ruta_plantillas'\n }\n this.plantillasService.obtenerArchivos(\n this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), 'doc;html;jasper;xls;jrxml;odt;xlsm;xlsx;pgp;asc;cer;p12;docx;properties', this.anexoPropiedad, true).subscribe\n (rta => {\n this.files = rta;\n this.filteredFiles = rta\n this.loading = false;\n if (!this.archivoSeleccionado) {\n this.archivoSeleccionado = this.files[0];\n }\n });\n }, 1000);\n }\n\n async aplicarFiltro() {\n this.filtroConvertir = this.filterValue;\n this.loading = true;\n setTimeout(() => {\n this.filteredFiles = this.obtenerFiltrosNodos(this.files, this.filterValue);\n this.loading = false;\n }, 1000);\n }\n\n obtenerFiltrosNodos(nodes: TreeNode[], filterValue: string): TreeNode[] {\n\n const filters = this.filtroAvanzado(filterValue);\n\n const filteredNodes: TreeNode[] = [];\n\n nodes.forEach(node => {\n\n // Verifica si el nodo actual o alguno de sus hijos cumple con el filtro\n const children = node.children ? this.obtenerFiltrosNodos(node.children, filterValue) : [];\n\n const nodeMatches = filters.some(filter => node.label.includes(filter));\n\n if (nodeMatches || children.length > 0) {\n filteredNodes.push({ ...node, children });\n }\n });\n\n return filteredNodes;\n }\n\n filtroAvanzado(search: string): string[] {\n\n if (search.includes('+')) {\n let aux = search;\n\n if (aux.startsWith('+')) {\n aux = aux.substring(1);\n }\n\n aux = aux.replace(/\\+/g, ':');\n const items = aux.trim().split(':');\n return items;\n\n } else {\n return [search];\n }\n }\n\n filtrarEnter(event) {\n if (event.key === 'Enter') {\n this.aplicarFiltro();\n }\n }\n\n seleccionarArchivo(event) {\n this.archivoSeleccionado = event.node;\n this.mostrarEditor = false;\n }\n\n deseleccionarArchivo($event) {\n this.dataSelected = null;\n }\n\n\n async cargarNuevo(event, fubauto) {\n\n this.isVisualizarCrearCaperta = false;\n this.archivoSeleccionadoAnexo = event.files[0];\n\n if (!this.isFormatoValido(this.archivoSeleccionadoAnexo.name)) {\n this.toastService.showWarning(\"Se debe agregar un archivo \" + Array.from(this.FORMATS_VALIDOS).join(', '))\n fubauto.clear();\n //this.toastService.showWarning(\"Se debe agregar un archivo .doc, .docx, .xls, .xlsx , .xlsm, .jrxml, .odt, .jasper, .pgp, .asc, .cer, .properties o .html\");\n return;\n }\n\n //Cargar Archivo Temporal\n let resultado = await firstValueFrom(this.plantillasService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo));\n\n fubauto.clear();\n\n if (resultado?.validacion) {\n this.toastService.showSuccess(resultado?.validacion);\n return;\n }\n\n let informacionArchivo = resultado?.informacionArchivo ? resultado?.informacionArchivo : null;\n\n //Obtener Rutas\n let rutaComplemento = this.archivoSeleccionado.data;\n\n //let objeto = (await this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_plantillas\", aplicacion: 1 }).toPromise());\n\n if (!this.archivoSeleccionado?.parent) {\n rutaComplemento = '';\n }\n\n //Verifica si el documento ya existe \n let data = await firstValueFrom(this.plantillasService.existeDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));\n\n if (data?.validacionDocumento) {\n this.toastService.showWarning(data?.validacionDocumento);\n return;\n }\n\n //Guarda el documento\n await firstValueFrom(this.plantillasService.cargarDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));\n\n this.ngOnInit();\n\n }\n\n async descargarAnexo() {\n\n //Ruta archivo \n let rutaComplemento = this.archivoSeleccionado.data;\n\n if (!this.archivoSeleccionado?.parent) {\n rutaComplemento = '';\n }\n\n this.cargarArchivoServices.descargarArchivo(this.encriptadoBasico.encriptar(this.rutaPrincipal + rutaComplemento), undefined, undefined).subscribe(blob => {\n const a = document.createElement('a');\n const objectUrl = URL.createObjectURL(blob);\n a.href = objectUrl;\n a.download = this.archivoSeleccionado?.label;\n a.click();\n URL.revokeObjectURL(objectUrl);\n });\n\n }\n\n eliminarArchivo() {\n this.confirmationService.confirm({\n target: event.target,\n key: 'eliminarArchivo',\n message: '¿Desea eliminar el registro?',\n acceptLabel: 'Si',\n icon: 'confirmar',\n accept: () => {\n this.setEliminarArchivo();\n },\n reject: () => { },\n });\n }\n\n async setEliminarArchivo() {\n\n //Ruta archivo \n let rutaComplemento = this.archivoSeleccionado.data;\n\n if (!this.archivoSeleccionado?.parent) {\n rutaComplemento = '';\n }\n\n let propiedad = 'ruta_plantillas'\n await firstValueFrom(this.cargarArchivoServices.eliminarArchivo(this.encriptadoBasico.encriptar(rutaComplemento), propiedad, '1'));\n this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n this.archivoSeleccionado = null;\n this.filterValue = null;\n this.ngOnInit();\n }\n\n isFormatoValido(nombreArchivo: string): boolean {\n // Verifica si el archivo termina con alguna de las extensiones válidas\n return Array.from(this.FORMATS_VALIDOS).some(ext => nombreArchivo.endsWith(ext));\n }\n\n crearCarpeta() {\n this.isVisualizarCrearCaperta = true;\n this.nomNuevaCarpeta = null;\n }\n\n async guardarCarpeta() {\n\n if (this.miFormulario.valid) {\n\n let rutaComplemento = this.archivoSeleccionado.data;\n\n if (!this.archivoSeleccionado?.parent) {\n rutaComplemento = '';\n }\n\n await firstValueFrom(this.plantillasService.crearCarpeta(this.rutaPrincipal, rutaComplemento, this.nomNuevaCarpeta));\n this.toastService.showSuccess('La carpeta se ha creado correctamente');\n this.ngOnInit();\n\n } else {\n\n this.toastService.showError('Faltan campos obligatorios');\n Object.keys(this.miFormulario.controls).forEach((key) => {\n if (this.miFormulario.controls[key].invalid) {\n this.miFormulario.controls[key].markAsDirty();\n }\n });\n }\n\n }\n\n eliminarCarpeta() {\n\n this.isVisualizarCrearCaperta = false;\n\n this.confirmationService.confirm({\n target: event.target,\n key: 'eliminarCarpeta',\n message: '¿Desea eliminar el registro?',\n acceptLabel: 'Si',\n icon: 'confirmar',\n accept: () => {\n this.setEliminarCarpeta();\n },\n reject: () => { },\n });\n }\n\n async setEliminarCarpeta() {\n\n let rutaComplemento = this.archivoSeleccionado.data;\n\n if (!this.archivoSeleccionado?.parent) {\n rutaComplemento = '';\n }\n\n this.plantillasService.eliminarCarpeta(this.rutaPrincipal, rutaComplemento).subscribe(rta => {\n this.toastService.showSuccess('La carpeta ha sido eliminada correctamente');\n this.archivoSeleccionado = null;\n this.filterValue = null;\n this.ngOnInit();\n })\n\n }\n\n async convertirArchivos() {\n\n this.isVisualizarCrearCaperta = false;\n this.isMostrarPopupConvertir = true;\n //const filteredNodes = this.getFilteredNodes();\n const valorFiltro = this.filterValue;\n\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\n await sleep(50);\n\n this.popupConvertirPlantillasComponent.buscar(this.rutaPrincipal, valorFiltro);\n\n }\n\n regresarPopupConvertir($event: any) {\n this.isMostrarPopupConvertir = false;\n this.ngOnInit();\n }\n\n isHtml() {\n this.html = false;\n\n if (this.archivoSeleccionado != null && this.archivoSeleccionado.label != null && this.archivoSeleccionado.label.includes('.html'))\n this.html = true;\n\n return this.html;\n }\n\n async editarAction() {\n\n let data = await firstValueFrom(this.plantillasService.consultarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data));\n\n this.modificarHTML = data;\n\n this.mostrarEditor = true;\n }\n\n async guardarHtml() {\n\n await firstValueFrom(this.plantillasService.guardarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data, this.modificarHTML));\n\n this.toastService.showSuccess('El archivo ha sido modificado correctamente');\n\n this.ngOnInit();\n\n }\n\n regresarPrincipal() {\n this.mostrarEditor = false;\n }\n\n public verificarControl(control) {\n return this.controlFuncionService.getControlFuncionalidad(control);\n }\n\n}\n","<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\n\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\n\n<div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\n (keydown)=\"filtrarEnter($event)\" />\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\n </div>\n\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\n </div>\n\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\n\n @if(!this.loading){\n <div class=\"card p-3\">\n\n <!-- CARPETA -->\n @if(archivoSeleccionado.expanded){\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-between\">\n\n <!-- Convertir -->\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\n </div>\n </button>\n\n <!--Nueva Carpeta-->\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-floppy-save color-500\"></i>\n </div>\n </button>\n\n <!--Eliminar-->\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\n </div>\n </button>\n\n <!-- Cargar Archivo -->\n <div [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-trash\"></i>\n </div>\n </p-fileUpload>\n </div>\n </div>\n }\n\n <!-- ARCHIVO-->\n @if(!archivoSeleccionado.expanded){\n\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-end\">\n @if(archivoSeleccionado.label.includes('.html')){\n\n <!--EDITAR HTML-->\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\n class=\"p-button-outlined boton-accion-principal text-gray-600\" label=\"Editar HTML\">\n </button>\n }\n\n <!-- DESCARGAR-->\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-download color-500\"></i>\n </div>\n </button>\n\n <!--ELIMINAR-->\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\n </div>\n </button>\n </div>\n }\n </div>\n }\n\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\n <div class=\"card\">\n\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\n\n <form #miFormulario=\"ngForm\">\n <!-- campos -->\n <div class=\"flex mb-3\">\n <!-- Nombre -->\n <div class=\"w-full p-0 mb-0\">\n <span class=\"p-float-label mr-2\">\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\n name=\"nombreCarpeta\">\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\n </span>\n </div>\n\n <div class=\"flex justify-content-end\">\n <!--Guardar Carpeta-->\n <button pButton pRipple class=\"mr-2 p-button background-100 color-500\"\n icon=\"glyphicons glyphicons-floppy-save\" [label]=\"('link_guardar' | translate)\"\n (click)=\"guardarCarpeta()\">\n </button>\n </div>\n </div>\n </form>\n\n </div>\n }\n <!-- EDITOR DE HTML -->\n <div *ngIf=\"isHtml() && mostrarEditor\">\n\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <!-- Botón guardar HTML -->\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-secondary\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\n </div>\n\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\n name=\"htmlPublicacion\"></p-editor>\n\n </div>\n </div>\n</div>\n\n@if(isMostrarPopupConvertir){\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpinnerService {\n private spinnerSubject = new BehaviorSubject<boolean>(false);\n spinner$ = this.spinnerSubject.asObservable();\n\n show(): void {\n this.spinnerSubject.next(true);\n }\n\n hide(): void {\n this.spinnerSubject.next(false);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError, TimeoutError, timer } from 'rxjs';\nimport { catchError, finalize, timeoutWith } from 'rxjs/operators';\nimport { SpinnerService } from '../spinner-service';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class LoadingInterceptor implements HttpInterceptor {\n\n constructor(private spinnerService: SpinnerService) {}\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n var spinnerActivated = false;\n var timeElapsed: number = 0;\n var intervalId: any; \n intervalId = setInterval(() => {\n timeElapsed++;\n if (timeElapsed > 5 && !spinnerActivated) {\n spinnerActivated = true;\n this.spinnerService.show();\n }\n }, 1000);\n\n return next.handle(req).pipe(\n finalize(() => {\n this.spinnerService.hide();\n if (intervalId) {\n clearInterval(intervalId);\n }\n })\n );\n }\n \n}","//SEGURIDAD\nexport * from './src/app/seguridad/modelos/UnionModel';\nexport * from './src/app/seguridad/modelos/aplicacion-propiedad-model';\nexport * from './src/app/seguridad/modelos/AplicacionModel';\nexport * from './src/app/seguridad/modelos/ArchivoPortalModel';\nexport * from './src/app/seguridad/modelos/AtributoPuntoModel';\nexport * from './src/app/seguridad/modelos/AtributoSSOportalModel';\nexport * from './src/app/seguridad/modelos/AuditoriaArchivoModel';\nexport * from './src/app/seguridad/modelos/CargueLineaModel';\nexport * from './src/app/seguridad/modelos/ColoresRGB';\nexport * from './src/app/seguridad/modelos/ComplementoModel';\nexport * from './src/app/seguridad/modelos/ComponentePaginaModel';\nexport * from './src/app/seguridad/modelos/ConexionModel';\nexport * from './src/app/seguridad/modelos/contenidoCorreoModel';\nexport * from './src/app/seguridad/modelos/ContenidoHtmlPortalModel';\nexport * from './src/app/seguridad/modelos/ControlFuncionModel';\nexport * from './src/app/seguridad/modelos/CorreoModel';\nexport * from './src/app/seguridad/modelos/CorreoWSModel';\nexport * from './src/app/seguridad/modelos/CruceRecursoPuntoModel';\nexport * from './src/app/seguridad/modelos/DatoInicioModel';\nexport * from './src/app/seguridad/modelos/EjecucionReporteDataModel';\nexport * from './src/app/seguridad/modelos/EmpresaModel';\nexport * from './src/app/seguridad/modelos/EmpresaSeguridadModel';\nexport * from './src/app/seguridad/modelos/EntradaComplementoModel';\nexport * from './src/app/seguridad/modelos/EtiquetaModel';\nexport * from './src/app/seguridad/modelos/Etiquetas';\nexport * from './src/app/seguridad/modelos/FuenteCampoAtributoModel';\nexport * from './src/app/seguridad/modelos/FuenteCampoModel';\nexport * from './src/app/seguridad/modelos/FuenteDato';\nexport * from './src/app/seguridad/modelos/FuenteEntradaModel';\nexport * from './src/app/seguridad/modelos/FuenteGeneralModel';\nexport * from './src/app/seguridad/modelos/FuenteLineaServicioModel';\nexport * from './src/app/seguridad/modelos/FuenteProcesoGeneralModel';\nexport * from './src/app/seguridad/modelos/FuenteServicioModel';\nexport * from './src/app/seguridad/modelos/FuncionalidadModel';\nexport * from './src/app/seguridad/modelos/GeneralModel';\nexport * from './src/app/seguridad/modelos/GrupoAccesoModel';\nexport * from './src/app/seguridad/modelos/GrupoControlFuncionModel';\nexport * from './src/app/seguridad/modelos/GrupoFuenteModel';\nexport * from './src/app/seguridad/modelos/GrupoPermisoModel';\nexport * from './src/app/seguridad/modelos/ListaServicioModel';\nexport * from './src/app/seguridad/modelos/LoginModel';\nexport * from './src/app/seguridad/modelos/MensajeSistemaModel';\nexport * from './src/app/seguridad/modelos/MenuPortalModel';\nexport * from './src/app/seguridad/modelos/ModulosModel';\nexport * from './src/app/seguridad/modelos/PaginaPortalModel';\nexport * from './src/app/seguridad/modelos/ParametroComponenteModel';\nexport * from './src/app/seguridad/modelos/ParametrosGeneralModel';\nexport * from './src/app/seguridad/modelos/PermisocontenidoModel';\nexport * from './src/app/seguridad/modelos/PermisoFuncionModel';\nexport * from './src/app/seguridad/modelos/PeticionModel';\nexport * from './src/app/seguridad/modelos/PreguntaSeguridadModel';\nexport * from './src/app/seguridad/modelos/PropiedadModel';\nexport * from './src/app/seguridad/modelos/PublicacionWebModel';\nexport * from './src/app/seguridad/modelos/PuntoProcesoModel';\nexport * from './src/app/seguridad/modelos/RecursoPunto';\nexport * from './src/app/seguridad/modelos/ReporteBanda';\nexport * from './src/app/seguridad/modelos/ReporteColumna';\nexport * from './src/app/seguridad/modelos/ReporteColumnario';\nexport * from './src/app/seguridad/modelos/ReporteColumnarioMarcador';\nexport * from './src/app/seguridad/modelos/ReporteEntradaModel';\nexport * from './src/app/seguridad/modelos/ReporteFuenteModel';\nexport * from './src/app/seguridad/modelos/ReporteMarcador';\nexport * from './src/app/seguridad/modelos/ReporteSoporte';\nexport * from './src/app/seguridad/modelos/ReporteTabla';\nexport * from './src/app/seguridad/modelos/RespuestaModel';\nexport * from './src/app/seguridad/modelos/RolModel';\nexport * from './src/app/seguridad/modelos/ServidorCorreoModel';\nexport * from './src/app/seguridad/modelos/SistemaMensajeModel';\nexport * from './src/app/seguridad/modelos/SitioPortalModel';\nexport * from './src/app/seguridad/modelos/TareasModel';\nexport * from './src/app/seguridad/modelos/TextoModel';\nexport * from './src/app/seguridad/modelos/TipoEtiqueta';\nexport * from './src/app/seguridad/modelos/UsuariogrupoModel';\nexport * from './src/app/seguridad/modelos/UsuarioModel';\n\n\nexport * from './src/environments/environment';\nexport * from './src/app/core/modelos/user.model';\nexport * from './src/app/core/errores/authentication.error';\n\nexport * from './src/app/core/servicios/auth.service';\nexport * from './src/app/core/servicios/menu.service';\nexport * from './src/app/core/servicios/storage.service';\nexport * from './src/app/core/servicios/template.service';\nexport * from './src/app/core/servicios/toast.service';\nexport * from './src/app/core/servicios/utils.service';\nexport * from './src/app/core/servicios/loading.service';\nexport * from './src/app/core/servicios/cargar-control-funcionalidad.service'\nexport * from './src/app/core/servicios/error-interceptor.service'\n\n//CORE\n\nexport * from './src/app/core/plantilla-general/plantilla-general.template';\nexport * from './src/app/core/core.module';\nexport * from './src/app/core/sharedlib.module';\n\n//ULTIMA 15\nexport * from './src/app/layout/app.layout.module';\nexport * from './src/app/layout/app.layout.component';\nexport * from './src/app/layout/app.breadcrumb.component';\nexport * from './src/app/layout/app.footer.component';\nexport * from './src/app/layout/app.menu.component';\nexport * from './src/app/layout/app.menuitem.component';\nexport * from './src/app/layout/app.menuprofile.component';\nexport * from './src/app/layout/app.rightmenu.component';\nexport * from './src/app/layout/app.sidebar.component';\nexport * from './src/app/layout/app.topbar.component';\n\n//export * from './src/app/publico/pages/publico.module';\n//export * from './src/app/publico/publico-routing.module'\nexport * from './src/app/core/componentes/breadcrumb/breadcrumb.component';\nexport * from './src/app/core/componentes/footer/footer.component';\nexport * from './src/app/core/componentes/menu/menu.component';\nexport * from './src/app/core/servicios/guardias/auth.guard';\nexport * from './src/app/core/servicios/guardias/publico.guard';\nexport * from './src/app/core/servicios/interceptores/token-interceptor.service';\n\nexport * from './src/app/core/utilidades/color.util';\nexport * from './src/app/core/componentes/inicio-component/inicio-component.component';\n//export * from './src/app/core/utilidades/translate-loader.util';\n\n//PUBLICO\nexport * from './src/app/publico/pages/login/login.page';\nexport * from './src/app/publico/pages/not-found/not-found.page';\nexport * from './src/app/publico/pages/timeout/timeout.page';\n\nexport * from './src/app/publico/pages/seleccion-rol/seleccion-rol.component'\n\nexport * from './src/app/core/componentes/filtro-general/filtro-general.component';\nexport * from './src/app/core/componentes/tabla-general/tabla-general.component';\nexport * from './src/app/core/modelos/table-column.model'\nexport * from './src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component';\nexport * from './src/app/webcommon/webcommon.module';\n\n\n//SERVICES\nexport * from './src/app/shared/servicios/general.service';\nexport * from './src/app/shared/servicios/cargar-mapas.service';\nexport * from './src/app/shared/servicios/parametros-navegacion.service';\nexport * from './src/app/webcommon/services/fuentegeneral.service';\nexport * from './src/app/shared/servicios/encriptado-basico.service';\nexport * from './src/app/webcommon/services/carguelinea.service';\nexport * from './src/app/webcommon/services/ejecucionreporte.service';\nexport * from './src/app/webcommon/services/fechaUtils.service';\nexport * from './src/app/webcommon/services/homologacion.service';\nexport * from './src/app/webcommon/services/reportes.service';\n\n//WEBCOMMON\n//fuente general\nexport * from './src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component'\nexport * from './src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page'\nexport * from './src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page'\nexport * from './src/app/webcommon/popups/popup-recurso/popup-recurso.component'\nexport * from './src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component'\n\n//importar fuente general\nexport * from './src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component'\nexport * from './src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component'\n\n//ejecucion reporte\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component'\nexport * from './src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page'\nexport * from './src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component'\nexport * from './src/app/webcommon/popups/popup-reporte/popup-reporte.component'\nexport * from './src/app/webcommon/popups/popup-sentencia/popup-sentencia.component'\nexport * from './src/app/webcommon/services/dashboard.service'\nexport * from './src/app/webcommon/pipes/dashboard.pipe'\n\n//formulario dinamico\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario'\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons'\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo'\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective'\nexport * from './src/app/core/componentes/formulariodinamico/formulariodinamico.component'\n\n//punto proceso\nexport * from './src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component'\nexport * from './src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component'\n\n//helpers generales\nexport * from './src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component'\nexport * from './src/app/core/servicios/data-exporter-table.utils'\nexport * from './src/app/webcommon/pipes/fuente.pipe'\nexport * from './src/app/webcommon/pipes/reporte-fuente.pipe'\n\n//fuente reporte\nexport * from './src/app/webcommon/pages/fuente-reporte/fuente-reporte.component';\nexport * from './src/app/webcommon/popups/popup-sentencia/popup-sentencia.component';\n\n//plantillas\nexport * from './src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component';\n\n//spinner load blockui\nexport * from './src/app/core/servicios/spinner-service';\nexport * from './src/app/core/servicios/interceptores/loading-interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UtilsService","i2.StorageService","i3.UtilsService","i3.CargarControlFuncionalidadService","i4","i1.StorageService","MenuService","i3.AuthService","i4.StorageService","i2","i4.UtilsService","i5.ErrorIntecertorService","i6","i1","i2.UtilsService","i1.LayoutService","i2.AuthService","i3","i3.MenuService","i1.MenuService","i2.LayoutService","i3.GeneralPipe","i5.AuthService","i6.MenuService","i7","i9","i11","i2.MenuService","i5.StorageService","i6.UtilsService","i7.CargarControlFuncionalidadService","i8","i10","filter","i4.AuthService","i5","i1.AuthService","i4.ToastService","i3.StorageService","i4.ErrorIntecertorService","i5.UtilsService","i3.ToastService","i6.StorageService","i6.CargarControlFuncionalidadService","i1.LoadingService","i2.ToastService","i5.LoadingService","i7.GeneralPipe","i8.UtilsService","i2.ErrorIntecertorService","i1.GeneralService","i1.FuenteGeneralService","i2.FuentePipe","i4.GeneralService","i5.cargarmapasGlobal","i6.ToastService","i9.UtilsService","i12","i13","i14","i15","i17","i18","i2.cargarmapasGlobal","i4.GeneralPipe","i1.PlantillasService","i1.FuentePipe","i2.GeneralPipe","i3.cargarmapasGlobal","i5.GeneralService","i3.GeneralService","i4.FuentePipe","i5.GeneralPipe","i10.FuenteGeneralService","i12.MenuService","i16","i19","i20","i2.GeneralService","i2.DataExporter","i5.CargueLineaService","i8.MenuService","i9.GeneralPipe","i10.UtilsService","i11.ParametrosNavegacionService","i21","i22","i5.MenuService","i7.UtilsService","i8.CargueLineaService","i5.EjecucionReporteService","i6.GeneralPipe","i8.ReporteFuentePipe","i1.ToastService","i4.DashboardPipe","i6.ReporteFuentePipe","i8.CargarArchivosService","i9.EncriptadoBasicoService","i12.FuentePipe","i13.ReporteColumnarioPipe","i14.EjecucionReporteService","i15.DashboardService","i16.DashboardPipe","i23","i25","i26","i28","i1.EjecucionReporteService","i2.EjecucionReporteService","i7.CargarArchivosService","i9.CargarControlFuncionalidadService","i10.EncriptadoBasicoService","i11.ReporteFuentePipe","i12.GeneralPipe","i13.DataExporter","i7.AuthService","i11.EjecucionReporteService","i13.MenuService","i3.EjecucionReporteService","i6.ParametrosNavegacionService","i2.ReportesService","i5.ToastService","i3.ReportesService","i8.GeneralPipe","i4.CargarControlFuncionalidadService","i8.EncriptadoBasicoService","i1.SpinnerService"],"mappings":"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"}