general-library-union 2.7.23 → 2.7.25

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 (649) hide show
  1. package/esm2022/general-library-union.mjs +5 -0
  2. package/esm2022/public-api.mjs +180 -0
  3. package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +40 -0
  4. package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +28 -0
  5. package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +192 -0
  6. package/esm2022/src/app/core/componentes/footer/footer.component.mjs +16 -0
  7. package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +272 -0
  8. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +11 -0
  9. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +124 -0
  10. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +73 -0
  11. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +59 -0
  12. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +21 -0
  13. package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +67 -0
  14. package/esm2022/src/app/core/componentes/menu/menu.component.mjs +37 -0
  15. package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +93 -0
  16. package/esm2022/src/app/core/core.module.mjs +23 -0
  17. package/esm2022/src/app/core/errores/authentication.error.mjs +7 -0
  18. package/esm2022/src/app/core/modelos/error-response.model.mjs +2 -0
  19. package/esm2022/src/app/core/modelos/table-column.model.mjs +2 -0
  20. package/esm2022/src/app/core/modelos/user.model.mjs +7 -0
  21. package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +230 -0
  22. package/esm2022/src/app/core/servicios/auth.service.mjs +185 -0
  23. package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +57 -0
  24. package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +64 -0
  25. package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +214 -0
  26. package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +66 -0
  27. package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +35 -0
  28. package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +37 -0
  29. package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +120 -0
  30. package/esm2022/src/app/core/servicios/loading.service.mjs +43 -0
  31. package/esm2022/src/app/core/servicios/menu.service.mjs +146 -0
  32. package/esm2022/src/app/core/servicios/spinner-service.mjs +22 -0
  33. package/esm2022/src/app/core/servicios/storage.service.mjs +68 -0
  34. package/esm2022/src/app/core/servicios/template.service.mjs +99 -0
  35. package/esm2022/src/app/core/servicios/toast.service.mjs +120 -0
  36. package/esm2022/src/app/core/servicios/utils.service.mjs +335 -0
  37. package/esm2022/src/app/core/sharedlib.module.mjs +16 -0
  38. package/esm2022/src/app/core/utilidades/color.util.mjs +177 -0
  39. package/esm2022/src/app/layout/api/menuchangeevent.mjs +2 -0
  40. package/esm2022/src/app/layout/app.breadcrumb.component.mjs +71 -0
  41. package/esm2022/src/app/layout/app.footer.component.mjs +18 -0
  42. package/esm2022/src/app/layout/app.layout.component.mjs +188 -0
  43. package/esm2022/src/app/layout/app.layout.module.mjs +15 -0
  44. package/esm2022/src/app/layout/app.menu.component.mjs +51 -0
  45. package/esm2022/src/app/layout/app.menu.service.mjs +24 -0
  46. package/esm2022/src/app/layout/app.menuitem.component.mjs +296 -0
  47. package/esm2022/src/app/layout/app.menuprofile.component.mjs +78 -0
  48. package/esm2022/src/app/layout/app.rightmenu.component.mjs +24 -0
  49. package/esm2022/src/app/layout/app.sidebar.component.mjs +92 -0
  50. package/esm2022/src/app/layout/app.topbar.component.mjs +345 -0
  51. package/esm2022/src/app/layout/service/app.layout.service.mjs +134 -0
  52. package/esm2022/src/app/publico/pages/login/login.page.mjs +129 -0
  53. package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +51 -0
  54. package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +167 -0
  55. package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +20 -0
  56. package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +30 -0
  57. package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +19 -0
  58. package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +8 -0
  59. package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +14 -0
  60. package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +9 -0
  61. package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +17 -0
  62. package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +11 -0
  63. package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +13 -0
  64. package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +18 -0
  65. package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +9 -0
  66. package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +6 -0
  67. package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +7 -0
  68. package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +21 -0
  69. package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +14 -0
  70. package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +21 -0
  71. package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +8 -0
  72. package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +35 -0
  73. package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +37 -0
  74. package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +14 -0
  75. package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +6 -0
  76. package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +14 -0
  77. package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +25 -0
  78. package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +19 -0
  79. package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +7 -0
  80. package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +5 -0
  81. package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +12 -0
  82. package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +6 -0
  83. package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +16 -0
  84. package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +17 -0
  85. package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +19 -0
  86. package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +9 -0
  87. package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +37 -0
  88. package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +16 -0
  89. package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +11 -0
  90. package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +51 -0
  91. package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +10 -0
  92. package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +15 -0
  93. package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +7 -0
  94. package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +10 -0
  95. package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +13 -0
  96. package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +14 -0
  97. package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +5 -0
  98. package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +17 -0
  99. package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +7 -0
  100. package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +15 -0
  101. package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +8 -0
  102. package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +5 -0
  103. package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +18 -0
  104. package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +6 -0
  105. package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +20 -0
  106. package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +9 -0
  107. package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +15 -0
  108. package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +9 -0
  109. package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +20 -0
  110. package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +16 -0
  111. package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +7 -0
  112. package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +10 -0
  113. package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +27 -0
  114. package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +7 -0
  115. package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +13 -0
  116. package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +13 -0
  117. package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +8 -0
  118. package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +33 -0
  119. package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +69 -0
  120. package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +24 -0
  121. package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +20 -0
  122. package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +124 -0
  123. package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +40 -0
  124. package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +10 -0
  125. package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +13 -0
  126. package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +9 -0
  127. package/esm2022/src/app/seguridad/modelos/RolModel.mjs +39 -0
  128. package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +28 -0
  129. package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +9 -0
  130. package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +25 -0
  131. package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +5 -0
  132. package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +54 -0
  133. package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +9 -0
  134. package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +8 -0
  135. package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +12 -0
  136. package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +53 -0
  137. package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +24 -0
  138. package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +15 -0
  139. package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +10 -0
  140. package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +151 -0
  141. package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +54 -0
  142. package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +46 -0
  143. package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +53 -0
  144. package/esm2022/src/app/shared/servicios/general.service.mjs +104 -0
  145. package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +21 -0
  146. package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +370 -0
  147. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +187 -0
  148. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +85 -0
  149. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +347 -0
  150. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +206 -0
  151. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +328 -0
  152. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +1569 -0
  153. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +105 -0
  154. package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +114 -0
  155. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +588 -0
  156. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +177 -0
  157. package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +749 -0
  158. package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +331 -0
  159. package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +96 -0
  160. package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +675 -0
  161. package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +86 -0
  162. package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +201 -0
  163. package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +916 -0
  164. package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +115 -0
  165. package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +301 -0
  166. package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +267 -0
  167. package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +128 -0
  168. package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +293 -0
  169. package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +269 -0
  170. package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +515 -0
  171. package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +64 -0
  172. package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +159 -0
  173. package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +89 -0
  174. package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +69 -0
  175. package/esm2022/src/app/webcommon/services/dashboard.service.mjs +253 -0
  176. package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +114 -0
  177. package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +88 -0
  178. package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +68 -0
  179. package/esm2022/src/app/webcommon/services/homologacion.service.mjs +50 -0
  180. package/esm2022/src/app/webcommon/services/plantillas.service.mjs +129 -0
  181. package/esm2022/src/app/webcommon/services/reportes.service.mjs +95 -0
  182. package/esm2022/src/app/webcommon/webcommon.module.mjs +15 -0
  183. package/esm2022/src/environments/environment.mjs +24 -0
  184. package/fesm2022/general-library-union.mjs +15820 -0
  185. package/fesm2022/general-library-union.mjs.map +1 -0
  186. package/index.d.ts +5 -0
  187. package/package.json +62 -73
  188. package/{public-api.ts → public-api.d.ts} +161 -201
  189. package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +18 -0
  190. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +14 -0
  191. package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +34 -0
  192. package/src/app/core/componentes/footer/footer.component.d.ts +9 -0
  193. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +46 -0
  194. package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.ts → Cambio.d.ts} +7 -13
  195. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +44 -0
  196. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +45 -0
  197. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +33 -0
  198. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +9 -0
  199. package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +24 -0
  200. package/src/app/core/componentes/menu/menu.component.d.ts +16 -0
  201. package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +32 -0
  202. package/src/app/core/core.module.d.ts +8 -0
  203. package/src/app/core/errores/authentication.error.d.ts +3 -0
  204. package/src/app/core/modelos/error-response.model.d.ts +9 -0
  205. package/src/app/core/modelos/table-column.model.d.ts +12 -0
  206. package/src/app/core/modelos/user.model.d.ts +6 -0
  207. package/src/app/core/plantilla-general/plantilla-general.template.d.ts +89 -0
  208. package/src/app/core/servicios/auth.service.d.ts +52 -0
  209. package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +19 -0
  210. package/src/app/core/servicios/data-exporter-table.utils.d.ts +11 -0
  211. package/src/app/core/servicios/error-interceptor.service.d.ts +41 -0
  212. package/src/app/core/servicios/guardias/auth.guard.d.ts +17 -0
  213. package/src/app/core/servicios/guardias/publico.guard.d.ts +13 -0
  214. package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +11 -0
  215. package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +21 -0
  216. package/src/app/core/servicios/loading.service.d.ts +22 -0
  217. package/src/app/core/servicios/menu.service.d.ts +35 -0
  218. package/src/app/core/servicios/spinner-service.d.ts +9 -0
  219. package/src/app/core/servicios/storage.service.d.ts +37 -0
  220. package/src/app/core/servicios/template.service.d.ts +20 -0
  221. package/src/app/core/servicios/toast.service.d.ts +48 -0
  222. package/src/app/core/servicios/utils.service.d.ts +42 -0
  223. package/src/app/core/sharedlib.module.d.ts +6 -0
  224. package/src/app/core/utilidades/color.util.d.ts +70 -0
  225. package/src/app/layout/api/{menuchangeevent.ts → menuchangeevent.d.ts} +4 -4
  226. package/src/app/layout/app.breadcrumb.component.d.ts +28 -0
  227. package/src/app/layout/app.footer.component.d.ts +8 -0
  228. package/src/app/layout/app.layout.component.d.ts +39 -0
  229. package/src/app/layout/app.layout.module.d.ts +6 -0
  230. package/src/app/layout/app.menu.component.d.ts +19 -0
  231. package/src/app/layout/app.menu.service.d.ts +12 -0
  232. package/src/app/layout/app.menuitem.component.d.ts +41 -0
  233. package/src/app/layout/app.menuprofile.component.d.ts +18 -0
  234. package/src/app/layout/app.rightmenu.component.d.ts +10 -0
  235. package/src/app/layout/app.sidebar.component.d.ts +34 -0
  236. package/src/app/layout/app.topbar.component.d.ts +79 -0
  237. package/src/app/layout/service/app.layout.service.d.ts +57 -0
  238. package/src/app/publico/pages/login/login.page.d.ts +40 -0
  239. package/src/app/publico/pages/not-found/not-found.page.d.ts +17 -0
  240. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +41 -0
  241. package/src/app/publico/pages/timeout/timeout.page.d.ts +10 -0
  242. package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +25 -0
  243. package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +7 -0
  244. package/src/app/seguridad/modelos/AplicacionModel.d.ts +7 -0
  245. package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +13 -0
  246. package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +8 -0
  247. package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +16 -0
  248. package/src/app/seguridad/modelos/{AuditoriaArchivoModel.ts → AuditoriaArchivoModel.d.ts} +10 -13
  249. package/src/app/seguridad/modelos/CargueLineaModel.d.ts +12 -0
  250. package/src/app/seguridad/modelos/ColoresRGB.d.ts +17 -0
  251. package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +8 -0
  252. package/src/app/seguridad/modelos/{ColumnaWraperModel.ts → ColumnaWraperModel.d.ts} +6 -7
  253. package/src/app/seguridad/modelos/ComplementoModel.d.ts +6 -0
  254. package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +20 -0
  255. package/src/app/seguridad/modelos/ConexionModel.d.ts +13 -0
  256. package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.ts → ContenidoHtmlPortalModel.d.ts} +20 -25
  257. package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +7 -0
  258. package/src/app/seguridad/modelos/CorreoModel.d.ts +31 -0
  259. package/src/app/seguridad/modelos/CorreoWSModel.d.ts +33 -0
  260. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +13 -0
  261. package/src/app/seguridad/modelos/{DatoInicioModel.ts → DatoInicioModel.d.ts} +6 -7
  262. package/src/app/seguridad/modelos/{EjecucionReporteDataModel.ts → EjecucionReporteDataModel.d.ts} +20 -21
  263. package/src/app/seguridad/modelos/EmpresaModel.d.ts +23 -0
  264. package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +18 -0
  265. package/src/app/seguridad/modelos/{EntradaComplementoModel.ts → EntradaComplementoModel.d.ts} +6 -9
  266. package/src/app/seguridad/modelos/EtiquetaModel.d.ts +4 -0
  267. package/src/app/seguridad/modelos/Etiquetas.d.ts +10 -0
  268. package/src/app/seguridad/modelos/{ForeingWraperModel.ts → ForeingWraperModel.d.ts} +6 -9
  269. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +15 -0
  270. package/src/app/seguridad/modelos/{FuenteCampoModel.ts → FuenteCampoModel.d.ts} +16 -20
  271. package/src/app/seguridad/modelos/FuenteDato.d.ts +18 -0
  272. package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +8 -0
  273. package/src/app/seguridad/modelos/{FuenteGeneralModel.ts → FuenteGeneralModel.d.ts} +36 -55
  274. package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +16 -0
  275. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +10 -0
  276. package/src/app/seguridad/modelos/{FuenteServicioModel.ts → FuenteServicioModel.d.ts} +47 -61
  277. package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +8 -0
  278. package/src/app/seguridad/modelos/GeneralModel.d.ts +8 -0
  279. package/src/app/seguridad/modelos/{GrupoAccesoModel.ts → GrupoAccesoModel.d.ts} +6 -9
  280. package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +9 -0
  281. package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +13 -0
  282. package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +13 -0
  283. package/src/app/seguridad/modelos/{JoinFromModel.ts → JoinFromModel.d.ts} +4 -4
  284. package/src/app/seguridad/modelos/ListaServicioModel.d.ts +16 -0
  285. package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +6 -0
  286. package/src/app/seguridad/modelos/LoginModel.d.ts +17 -0
  287. package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +7 -0
  288. package/src/app/seguridad/modelos/{MenuPortalModel.ts → MenuPortalModel.d.ts} +4 -5
  289. package/src/app/seguridad/modelos/ModulosModel.d.ts +14 -0
  290. package/src/app/seguridad/modelos/{ObjetoReporteModel.ts → ObjetoReporteModel.d.ts} +5 -6
  291. package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +19 -0
  292. package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +8 -0
  293. package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +8 -0
  294. package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +8 -0
  295. package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +18 -0
  296. package/src/app/seguridad/modelos/{PeticionModel.ts → PeticionModel.d.ts} +15 -20
  297. package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +6 -0
  298. package/src/app/seguridad/modelos/PropiedadModel.d.ts +9 -0
  299. package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +25 -0
  300. package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +6 -0
  301. package/src/app/seguridad/modelos/RecursoPunto.d.ts +12 -0
  302. package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +12 -0
  303. package/src/app/seguridad/modelos/ReporteBanda.d.ts +7 -0
  304. package/src/app/seguridad/modelos/ReporteColumna.d.ts +32 -0
  305. package/src/app/seguridad/modelos/ReporteColumnario.d.ts +68 -0
  306. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +23 -0
  307. package/src/app/seguridad/modelos/{ReporteEntradaModel.ts → ReporteEntradaModel.d.ts} +19 -21
  308. package/src/app/seguridad/modelos/{ReporteFuenteModel.ts → ReporteFuenteModel.d.ts} +87 -141
  309. package/src/app/seguridad/modelos/ReporteMarcador.d.ts +39 -0
  310. package/src/app/seguridad/modelos/ReporteSoporte.d.ts +9 -0
  311. package/src/app/seguridad/modelos/ReporteTabla.d.ts +12 -0
  312. package/src/app/seguridad/modelos/RespuestaModel.d.ts +8 -0
  313. package/src/app/seguridad/modelos/{RolModel.ts → RolModel.d.ts} +37 -41
  314. package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +25 -0
  315. package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +8 -0
  316. package/src/app/seguridad/modelos/SitioPortalModel.d.ts +24 -0
  317. package/src/app/seguridad/modelos/TablaFromModel.d.ts +4 -0
  318. package/src/app/seguridad/modelos/TareasModel.d.ts +49 -0
  319. package/src/app/seguridad/modelos/TextoModel.d.ts +8 -0
  320. package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +7 -0
  321. package/src/app/seguridad/modelos/UnionModel.d.ts +11 -0
  322. package/src/app/seguridad/modelos/{UsuarioModel.ts → UsuarioModel.d.ts} +49 -60
  323. package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +22 -0
  324. package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +13 -0
  325. package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +9 -0
  326. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +47 -0
  327. package/src/app/shared/servicios/cargar-archivos.service.d.ts +15 -0
  328. package/src/app/shared/servicios/cargar-mapas.service.d.ts +18 -0
  329. package/src/app/shared/servicios/encriptado-basico.service.d.ts +10 -0
  330. package/src/app/shared/servicios/general.service.d.ts +24 -0
  331. package/src/app/shared/servicios/parametros-navegacion.service.d.ts +9 -0
  332. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +78 -0
  333. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +79 -0
  334. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +29 -0
  335. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +69 -0
  336. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +51 -0
  337. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +77 -0
  338. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +275 -0
  339. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +42 -0
  340. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +35 -0
  341. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +143 -0
  342. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +49 -0
  343. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +128 -0
  344. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +64 -0
  345. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +33 -0
  346. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +149 -0
  347. package/src/app/webcommon/pipes/dashboard.pipe.d.ts +48 -0
  348. package/src/app/webcommon/pipes/fuente.pipe.d.ts +136 -0
  349. package/src/app/webcommon/pipes/general.pipe.d.ts +646 -0
  350. package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +59 -0
  351. package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +193 -0
  352. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +59 -0
  353. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +27 -0
  354. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +64 -0
  355. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +63 -0
  356. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +97 -0
  357. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +21 -0
  358. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +42 -0
  359. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +30 -0
  360. package/src/app/webcommon/services/carguelinea.service.d.ts +19 -0
  361. package/src/app/webcommon/services/dashboard.service.d.ts +27 -0
  362. package/src/app/webcommon/services/ejecucionreporte.service.d.ts +34 -0
  363. package/src/app/webcommon/services/fechaUtils.service.d.ts +29 -0
  364. package/src/app/webcommon/services/fuentegeneral.service.d.ts +24 -0
  365. package/src/app/webcommon/services/homologacion.service.d.ts +17 -0
  366. package/src/app/webcommon/services/plantillas.service.d.ts +26 -0
  367. package/src/app/webcommon/services/reportes.service.d.ts +35 -0
  368. package/src/app/webcommon/webcommon.module.d.ts +6 -0
  369. package/src/environments/environment.d.ts +7 -0
  370. package/src/styles/primeng/sass/overrides/_theme_styles.scss +3 -3
  371. package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +3 -3
  372. package/.browserslistrc +0 -15
  373. package/.editorconfig +0 -16
  374. package/.vscode/extensions.json +0 -4
  375. package/.vscode/launch.json +0 -20
  376. package/.vscode/tasks.json +0 -42
  377. package/angular.json +0 -143
  378. package/karma.conf.js +0 -44
  379. package/ng-package.json +0 -21
  380. package/src/app/app.component.html +0 -12
  381. package/src/app/app.component.scss +0 -0
  382. package/src/app/app.component.spec.ts +0 -29
  383. package/src/app/app.component.ts +0 -34
  384. package/src/app/app.config.ts +0 -43
  385. package/src/app/app.module.ts +0 -10
  386. package/src/app/app.routes.ts +0 -88
  387. package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +0 -6
  388. package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
  389. package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +0 -39
  390. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +0 -1
  391. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
  392. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +0 -31
  393. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +0 -9
  394. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +0 -28
  395. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +0 -32
  396. package/src/app/core/componentes/filtro-general/filtro-general.component.html +0 -34
  397. package/src/app/core/componentes/filtro-general/filtro-general.component.scss +0 -3
  398. package/src/app/core/componentes/filtro-general/filtro-general.component.ts +0 -200
  399. package/src/app/core/componentes/footer/footer.component.html +0 -13
  400. package/src/app/core/componentes/footer/footer.component.scss +0 -3
  401. package/src/app/core/componentes/footer/footer.component.ts +0 -20
  402. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +0 -267
  403. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +0 -21
  404. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +0 -275
  405. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +0 -118
  406. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +0 -76
  407. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +0 -67
  408. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +0 -11
  409. package/src/app/core/componentes/inicio-component/inicio-component.component.html +0 -29
  410. package/src/app/core/componentes/inicio-component/inicio-component.component.scss +0 -69
  411. package/src/app/core/componentes/inicio-component/inicio-component.component.ts +0 -65
  412. package/src/app/core/componentes/menu/menu.component.html +0 -13
  413. package/src/app/core/componentes/menu/menu.component.scss +0 -36
  414. package/src/app/core/componentes/menu/menu.component.ts +0 -35
  415. package/src/app/core/componentes/tabla-general/tabla-general.component.html +0 -90
  416. package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
  417. package/src/app/core/componentes/tabla-general/tabla-general.component.ts +0 -96
  418. package/src/app/core/core.module.ts +0 -22
  419. package/src/app/core/errores/authentication.error.ts +0 -6
  420. package/src/app/core/modelos/error-response.model.ts +0 -9
  421. package/src/app/core/modelos/table-column.model.ts +0 -10
  422. package/src/app/core/modelos/user.model.ts +0 -6
  423. package/src/app/core/plantilla-general/plantilla-general.template.html +0 -139
  424. package/src/app/core/plantilla-general/plantilla-general.template.scss +0 -37
  425. package/src/app/core/plantilla-general/plantilla-general.template.ts +0 -233
  426. package/src/app/core/servicios/auth.service.ts +0 -189
  427. package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +0 -49
  428. package/src/app/core/servicios/data-exporter-table.utils.ts +0 -78
  429. package/src/app/core/servicios/error-interceptor.service.ts +0 -208
  430. package/src/app/core/servicios/guardias/auth.guard.ts +0 -51
  431. package/src/app/core/servicios/guardias/publico.guard.ts +0 -26
  432. package/src/app/core/servicios/interceptores/loading-interceptor.ts +0 -37
  433. package/src/app/core/servicios/interceptores/token-interceptor.service.ts +0 -110
  434. package/src/app/core/servicios/loading.service.ts +0 -48
  435. package/src/app/core/servicios/menu.service.ts +0 -153
  436. package/src/app/core/servicios/spinner-service.ts +0 -18
  437. package/src/app/core/servicios/storage.service.ts +0 -68
  438. package/src/app/core/servicios/template.service.ts +0 -91
  439. package/src/app/core/servicios/toast.service.ts +0 -114
  440. package/src/app/core/servicios/utils.service.ts +0 -362
  441. package/src/app/core/sharedlib.module.ts +0 -11
  442. package/src/app/core/utilidades/color.util.ts +0 -197
  443. package/src/app/layout/app.breadcrumb.component.html +0 -20
  444. package/src/app/layout/app.breadcrumb.component.ts +0 -78
  445. package/src/app/layout/app.footer.component.html +0 -18
  446. package/src/app/layout/app.footer.component.ts +0 -15
  447. package/src/app/layout/app.layout.component.html +0 -20
  448. package/src/app/layout/app.layout.component.ts +0 -201
  449. package/src/app/layout/app.layout.module.ts +0 -9
  450. package/src/app/layout/app.menu.component.html +0 -6
  451. package/src/app/layout/app.menu.component.ts +0 -51
  452. package/src/app/layout/app.menu.service.ts +0 -23
  453. package/src/app/layout/app.menuitem.component.ts +0 -252
  454. package/src/app/layout/app.menuprofile.component.html +0 -35
  455. package/src/app/layout/app.menuprofile.component.ts +0 -60
  456. package/src/app/layout/app.rightmenu.component.html +0 -72
  457. package/src/app/layout/app.rightmenu.component.ts +0 -24
  458. package/src/app/layout/app.sidebar.component.html +0 -40
  459. package/src/app/layout/app.sidebar.component.ts +0 -81
  460. package/src/app/layout/app.topbar.component.html +0 -214
  461. package/src/app/layout/app.topbar.component.ts +0 -335
  462. package/src/app/layout/config/app.config.component.html +0 -125
  463. package/src/app/layout/config/app.config.component.ts +0 -206
  464. package/src/app/layout/config/app.config.module.ts +0 -11
  465. package/src/app/layout/service/app.layout.service.ts +0 -191
  466. package/src/app/publico/pages/login/login.page.html +0 -53
  467. package/src/app/publico/pages/login/login.page.scss +0 -166
  468. package/src/app/publico/pages/login/login.page.ts +0 -128
  469. package/src/app/publico/pages/not-found/not-found.page.html +0 -35
  470. package/src/app/publico/pages/not-found/not-found.page.scss +0 -2
  471. package/src/app/publico/pages/not-found/not-found.page.ts +0 -46
  472. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +0 -58
  473. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +0 -49
  474. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +0 -176
  475. package/src/app/publico/pages/timeout/timeout.page.html +0 -24
  476. package/src/app/publico/pages/timeout/timeout.page.scss +0 -2
  477. package/src/app/publico/pages/timeout/timeout.page.ts +0 -18
  478. package/src/app/seguridad/constantes/ConstantesGenerales.ts +0 -30
  479. package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +0 -18
  480. package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +0 -13
  481. package/src/app/seguridad/modelos/AplicacionModel.ts +0 -11
  482. package/src/app/seguridad/modelos/ArchivoPortalModel.ts +0 -16
  483. package/src/app/seguridad/modelos/AtributoPuntoModel.ts +0 -9
  484. package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +0 -22
  485. package/src/app/seguridad/modelos/CargueLineaModel.ts +0 -17
  486. package/src/app/seguridad/modelos/ColoresRGB.ts +0 -17
  487. package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +0 -9
  488. package/src/app/seguridad/modelos/ComplementoModel.ts +0 -10
  489. package/src/app/seguridad/modelos/ComponentePaginaModel.ts +0 -22
  490. package/src/app/seguridad/modelos/ConexionModel.ts +0 -15
  491. package/src/app/seguridad/modelos/ControlFuncionModel.ts +0 -10
  492. package/src/app/seguridad/modelos/CorreoModel.ts +0 -45
  493. package/src/app/seguridad/modelos/CorreoWSModel.ts +0 -49
  494. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +0 -14
  495. package/src/app/seguridad/modelos/EmpresaModel.ts +0 -25
  496. package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +0 -19
  497. package/src/app/seguridad/modelos/EtiquetaModel.ts +0 -4
  498. package/src/app/seguridad/modelos/Etiquetas.ts +0 -14
  499. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +0 -21
  500. package/src/app/seguridad/modelos/FuenteDato.ts +0 -19
  501. package/src/app/seguridad/modelos/FuenteEntradaModel.ts +0 -9
  502. package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +0 -19
  503. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +0 -14
  504. package/src/app/seguridad/modelos/FuncionalidadModel.ts +0 -12
  505. package/src/app/seguridad/modelos/GeneralModel.ts +0 -16
  506. package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +0 -12
  507. package/src/app/seguridad/modelos/GrupoFuenteModel.ts +0 -17
  508. package/src/app/seguridad/modelos/GrupoPermisoModel.ts +0 -16
  509. package/src/app/seguridad/modelos/ListaServicioModel.ts +0 -18
  510. package/src/app/seguridad/modelos/LlaveForaneaModel.ts +0 -6
  511. package/src/app/seguridad/modelos/LoginModel.ts +0 -19
  512. package/src/app/seguridad/modelos/MensajeSistemaModel.ts +0 -10
  513. package/src/app/seguridad/modelos/ModulosModel.ts +0 -17
  514. package/src/app/seguridad/modelos/PaginaPortalModel.ts +0 -23
  515. package/src/app/seguridad/modelos/ParametroComponenteModel.ts +0 -9
  516. package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +0 -16
  517. package/src/app/seguridad/modelos/PermisoFuncionModel.ts +0 -11
  518. package/src/app/seguridad/modelos/PermisocontenidoModel.ts +0 -20
  519. package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +0 -9
  520. package/src/app/seguridad/modelos/PropiedadModel.ts +0 -12
  521. package/src/app/seguridad/modelos/PublicacionWebModel.ts +0 -29
  522. package/src/app/seguridad/modelos/PuntoProcesoModel.ts +0 -7
  523. package/src/app/seguridad/modelos/RecursoPunto.ts +0 -13
  524. package/src/app/seguridad/modelos/RecursoPuntoModel.ts +0 -13
  525. package/src/app/seguridad/modelos/ReporteBanda.ts +0 -9
  526. package/src/app/seguridad/modelos/ReporteColumna.ts +0 -33
  527. package/src/app/seguridad/modelos/ReporteColumnario.ts +0 -82
  528. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +0 -31
  529. package/src/app/seguridad/modelos/ReporteMarcador.ts +0 -40
  530. package/src/app/seguridad/modelos/ReporteSoporte.ts +0 -10
  531. package/src/app/seguridad/modelos/ReporteTabla.ts +0 -14
  532. package/src/app/seguridad/modelos/RespuestaModel.ts +0 -10
  533. package/src/app/seguridad/modelos/ServidorCorreoModel.ts +0 -31
  534. package/src/app/seguridad/modelos/SistemaMensajeModel.ts +0 -11
  535. package/src/app/seguridad/modelos/SitioPortalModel.ts +0 -29
  536. package/src/app/seguridad/modelos/TablaFromModel.ts +0 -5
  537. package/src/app/seguridad/modelos/TareasModel.ts +0 -54
  538. package/src/app/seguridad/modelos/TextoModel.ts +0 -11
  539. package/src/app/seguridad/modelos/TipoEtiqueta.ts +0 -8
  540. package/src/app/seguridad/modelos/UnionModel.ts +0 -14
  541. package/src/app/seguridad/modelos/UsuariogrupoModel.ts +0 -27
  542. package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +0 -16
  543. package/src/app/seguridad/modelos/contenidoCorreoModel.ts +0 -13
  544. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +0 -47
  545. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +0 -8
  546. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +0 -141
  547. package/src/app/shared/servicios/cargar-archivos.service.ts +0 -51
  548. package/src/app/shared/servicios/cargar-mapas.service.ts +0 -43
  549. package/src/app/shared/servicios/encriptado-basico.service.ts +0 -54
  550. package/src/app/shared/servicios/encriptador-simetrico.service.ts +0 -29
  551. package/src/app/shared/servicios/general.service.ts +0 -124
  552. package/src/app/shared/servicios/parametros-navegacion.service.ts +0 -20
  553. package/src/app/shared/servicios/plantillas.service.ts +0 -22
  554. package/src/app/shared/servicios/tarea.service.ts +0 -71
  555. package/src/app/shared/utilidades/translate-loader.util.ts +0 -44
  556. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +0 -167
  557. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +0 -11
  558. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +0 -425
  559. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +0 -87
  560. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
  561. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +0 -189
  562. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +0 -117
  563. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
  564. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +0 -87
  565. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +0 -158
  566. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +0 -6
  567. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +0 -345
  568. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +0 -131
  569. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
  570. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +0 -198
  571. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +0 -206
  572. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +0 -3
  573. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +0 -329
  574. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +0 -2114
  575. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +0 -241
  576. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +0 -1677
  577. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +0 -33
  578. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
  579. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +0 -96
  580. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +0 -54
  581. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
  582. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +0 -111
  583. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +0 -394
  584. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +0 -10
  585. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +0 -599
  586. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +0 -130
  587. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
  588. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +0 -172
  589. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +0 -376
  590. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +0 -5
  591. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +0 -749
  592. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +0 -145
  593. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
  594. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +0 -302
  595. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +0 -19
  596. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
  597. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +0 -89
  598. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +0 -714
  599. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
  600. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +0 -688
  601. package/src/app/webcommon/pipes/dashboard.pipe.ts +0 -79
  602. package/src/app/webcommon/pipes/fuente.pipe.ts +0 -207
  603. package/src/app/webcommon/pipes/general.pipe.ts +0 -1043
  604. package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +0 -101
  605. package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +0 -306
  606. package/src/app/webcommon/pipes/sara-general.pipe.ts +0 -289
  607. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +0 -90
  608. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
  609. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +0 -262
  610. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +0 -50
  611. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
  612. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +0 -135
  613. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +0 -41
  614. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
  615. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +0 -283
  616. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +0 -179
  617. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +0 -3
  618. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +0 -266
  619. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +0 -261
  620. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +0 -13
  621. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +0 -519
  622. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +0 -10
  623. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +0 -5
  624. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +0 -58
  625. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +0 -71
  626. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
  627. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +0 -151
  628. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +0 -11
  629. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
  630. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +0 -82
  631. package/src/app/webcommon/services/carguelinea.service.ts +0 -72
  632. package/src/app/webcommon/services/dashboard.service.ts +0 -258
  633. package/src/app/webcommon/services/ejecucionreporte.service.ts +0 -160
  634. package/src/app/webcommon/services/fechaUtils.service.ts +0 -117
  635. package/src/app/webcommon/services/fuentegeneral.service.ts +0 -74
  636. package/src/app/webcommon/services/homologacion.service.ts +0 -49
  637. package/src/app/webcommon/services/plantillas.service.ts +0 -165
  638. package/src/app/webcommon/services/reportes.service.ts +0 -133
  639. package/src/app/webcommon/webcommon.module.ts +0 -11
  640. package/src/environments/environment.prod.ts +0 -3
  641. package/src/environments/environment.ts +0 -25
  642. package/src/favicon.ico +0 -0
  643. package/src/index.html +0 -14
  644. package/src/main.ts +0 -12
  645. package/src/polyfills.ts +0 -53
  646. package/src/test.ts +0 -14
  647. package/tsconfig.app.json +0 -15
  648. package/tsconfig.json +0 -35
  649. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,120 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpErrorResponse } from '@angular/common/http';
3
+ import { catchError, EMPTY, from, throwError, TimeoutError } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "../auth.service";
7
+ import * as i3 from "../../servicios/storage.service";
8
+ import * as i4 from "../error-interceptor.service";
9
+ import * as i5 from "../utils.service";
10
+ export class TokenInterceptorService {
11
+ router;
12
+ authService;
13
+ storage;
14
+ errorInterceptor;
15
+ utilsService;
16
+ constructor(router, authService, storage, errorInterceptor, utilsService) {
17
+ this.router = router;
18
+ this.authService = authService;
19
+ this.storage = storage;
20
+ this.errorInterceptor = errorInterceptor;
21
+ this.utilsService = utilsService;
22
+ }
23
+ intercept(request, next) {
24
+ return from(this.interceptDetalle(request, next)).pipe(catchError((error) => {
25
+ if (error instanceof TimeoutError) {
26
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }).toString());
27
+ }
28
+ else if (error instanceof HttpErrorResponse) {
29
+ if (error.error instanceof ErrorEvent) {
30
+ // A client-side or network error occurred
31
+ if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {
32
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }).toString());
33
+ }
34
+ else {
35
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }).toString());
36
+ }
37
+ }
38
+ else {
39
+ if (error.status == 0) {
40
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }).toString());
41
+ }
42
+ else {
43
+ console.error(`Error HTTP: ${error.status} - ${error.message}`);
44
+ }
45
+ }
46
+ }
47
+ return throwError(error);
48
+ }));
49
+ }
50
+ async interceptDetalle(request, next) {
51
+ if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {
52
+ let token = this.authService.getToken();
53
+ if (token) {
54
+ let fechaActual = new Date();
55
+ let fechaExpTokenIni = new Date(this.storage.getDecodedJWT().exp * 1000);
56
+ let fechaExpTokenFin = new Date(this.storage.getDecodedJWT().exp * 1000);
57
+ fechaExpTokenIni.setMinutes(fechaExpTokenIni.getMinutes() - 10);
58
+ if (fechaActual >= fechaExpTokenIni && fechaActual <= fechaExpTokenFin) {
59
+ var tokenPublico = await this.authService.generarTokenPublico().toPromise();
60
+ var tokenRefrescar = await this.authService.refrescarToken({ token: token }, tokenPublico?.token).toPromise();
61
+ token = tokenRefrescar?.token;
62
+ this.authService.deleteToken();
63
+ this.storage.setItem('token', token);
64
+ }
65
+ }
66
+ }
67
+ return await this.setearTokenRequest(request, next).toPromise();
68
+ }
69
+ setearTokenRequest(request, next) {
70
+ var basePortal = this.utilsService.obtenerBase();
71
+ let token = this.authService.getToken();
72
+ if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {
73
+ request = request.clone({
74
+ headers: request.headers.set('Authorization', `Bearer ${token}`),
75
+ });
76
+ }
77
+ request = request.clone({
78
+ headers: request.headers.set('Base', basePortal),
79
+ });
80
+ return next.handle(request).pipe(catchError((error) => {
81
+ if (error.status === 401) {
82
+ this.authService.deleteToken();
83
+ this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');
84
+ return EMPTY;
85
+ }
86
+ if (error instanceof TimeoutError) {
87
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }).toString());
88
+ }
89
+ else if (error instanceof HttpErrorResponse) {
90
+ if (error.error instanceof ErrorEvent) {
91
+ // A client-side or network error occurred
92
+ if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {
93
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }).toString());
94
+ }
95
+ else {
96
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }).toString());
97
+ }
98
+ }
99
+ else {
100
+ if (error.status == 0) {
101
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }).toString());
102
+ }
103
+ else {
104
+ console.error(`Error HTTP: ${error.status} - ${error.message}`);
105
+ }
106
+ }
107
+ }
108
+ return throwError(() => error);
109
+ }));
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TokenInterceptorService, deps: [{ token: i1.Router }, { token: i2.AuthService }, { token: i3.StorageService }, { token: i4.ErrorIntecertorService }, { token: i5.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TokenInterceptorService, providedIn: 'root' });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TokenInterceptorService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root',
118
+ }]
119
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.StorageService }, { type: i4.ErrorIntecertorService }, { type: i5.UtilsService }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4taW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvaW50ZXJjZXB0b3Jlcy90b2tlbi1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUF3RCxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxVQUFVLEVBQVcsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVzlGLE1BQU0sT0FBTyx1QkFBdUI7SUFDZDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBSnBCLFlBQW9CLE1BQWMsRUFDZCxXQUF3QixFQUN4QixPQUF1QixFQUN2QixnQkFBd0MsRUFDeEMsWUFBMEI7UUFKMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7SUFBRyxDQUFDO0lBRWxELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JELFVBQVUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3hCLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFB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LENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDaEssQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLDZEQUE2RCxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUNoSyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEtBQUssQ0FBQyxNQUFNLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0E5RlUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCB0aW1lb3V0LCBUaW1lb3V0RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9ySW50ZWNlcnRvclNlcnZpY2UgfSBmcm9tICcuLi9lcnJvci1pbnRlcmNlcHRvci5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9rZW5JbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBcclxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLCBcclxuICAgICAgICAgICAgICBwcml2YXRlIGVycm9ySW50ZXJjZXB0b3I6IEVycm9ySW50ZWNlcnRvclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSkge31cclxuICBcclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PntcclxuICAgIHJldHVybiAgZnJvbSh0aGlzLmludGVyY2VwdERldGFsbGUocmVxdWVzdCwgbmV4dCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnRWwgc2VydmljaW8gbm8gZXN0w6EgZGlzcG9uaWJsZS4gUG9yIGZhdm9yLCBpbnTDqW50ZWxvIG3DoXMgdGFyZGUuJ30pLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWRcclxuICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJ0VSUl9DT05ORUNUSU9OX1JFRlVTRUQnKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnRWwgc2VydmljaW8gbm8gZXN0w6EgZGlzcG9uaWJsZS4gUG9yIGZhdm9yLCBpbnTDqW50ZWxvIG3DoXMgdGFyZGUuJ30pLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnU2UgcHJvZHVqbyB1biBlcnJvciBkZSByZWQuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvckludGVyY2VwdG9yLnNob3dFcnJvcihKU09OLnN0cmluZ2lmeSh7dGlwbzogJ0VSUicsIHRyYXphOiAnLicsIG1lbnNhamU6ICdTZSBwcm9kdWpvIHVuIGVycm9yIGRlIHJlZC4gUG9yIGZhdm9yLCBpbnTDqW50ZWxvIG3DoXMgdGFyZGUuJ30pLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIEhUVFA6ICR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaW50ZXJjZXB0RGV0YWxsZShyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IFByb21pc2U8SHR0cEV2ZW50PGFueT4+ICB7XHJcbiAgICBpZiAocmVxdWVzdC51cmwuaW5jbHVkZXMoJy9yZXF1aWVyZXRva2VuJykgJiYgIXJlcXVlc3QudXJsLmluY2x1ZGVzKCcvcG9ydGFsUHVibGljbycpKSB7XHJcbiAgICAgIGxldCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKTtcclxuICAgICAgaWYgKHRva2VuKXtcclxuICAgICAgICBsZXQgZmVjaGFBY3R1YWwgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGxldCBmZWNoYUV4cFRva2VuSW5pID0gbmV3IERhdGUodGhpcy5zdG9yYWdlLmdldERlY29kZWRKV1QoKS5leHAgKiAxMDAwKVxyXG4gICAgICAgIGxldCBmZWNoYUV4cFRva2VuRmluID0gbmV3IERhdGUodGhpcy5zdG9yYWdlLmdldERlY29kZWRKV1QoKS5leHAgKiAxMDAwKVxyXG4gICAgICAgIGZlY2hhRXhwVG9rZW5Jbmkuc2V0TWludXRlcyhmZWNoYUV4cFRva2VuSW5pLmdldE1pbnV0ZXMoKSAtIDEwKTtcclxuICAgICAgICBpZiAoZmVjaGFBY3R1YWwgPj0gZmVjaGFFeHBUb2tlbkluaSAmJiBmZWNoYUFjdHVhbDw9ZmVjaGFFeHBUb2tlbkZpbil7XHJcbiAgICAgICAgICB2YXIgdG9rZW5QdWJsaWNvID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZW5lcmFyVG9rZW5QdWJsaWNvKCkudG9Qcm9taXNlKClcclxuICAgICAgICAgIHZhciB0b2tlblJlZnJlc2NhciA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UucmVmcmVzY2FyVG9rZW4oe3Rva2VuOiB0b2tlbiB9LCAodG9rZW5QdWJsaWNvIGFzIGFueSk/LnRva2VuIGFzIHN0cmluZykudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICB0b2tlbiA9ICh0b2tlblJlZnJlc2NhciBhcyBhbnkpPy50b2tlbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRlbGV0ZVRva2VuKClcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKCd0b2tlbicsIHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNldGVhclRva2VuUmVxdWVzdChyZXF1ZXN0LCBuZXh0KS50b1Byb21pc2UoKTtcclxuICB9IFxyXG5cclxuICBzZXRlYXJUb2tlblJlcXVlc3QocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PntcclxuICAgIHZhciBiYXNlUG9ydGFsOiBzdHJpbmcgPSB0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpO1xyXG4gICAgbGV0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpO1xyXG4gICAgaWYgKHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvcmVxdWllcmV0b2tlbicpICYmICFyZXF1ZXN0LnVybC5pbmNsdWRlcygnL3BvcnRhbFB1YmxpY28nKSkge1xyXG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHt0b2tlbn1gKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuc2V0KCdCYXNlJywgYmFzZVBvcnRhbCksXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGVsZXRlVG9rZW4oKTtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy51dGlsc1NlcnZpY2Uub2J0ZW5lckJhc2UoKSArICcvbG9naW4nKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVGltZW91dEVycm9yKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ0VsIHNlcnZpY2lvIG5vIGVzdMOhIGRpc3BvbmlibGUuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KS50b1N0cmluZygpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgICAgICAgLy8gQSBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yIG9jY3VycmVkXHJcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKCdFUlJfQ09OTkVDVElPTl9SRUZVU0VEJykpIHtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ0VsIHNlcnZpY2lvIG5vIGVzdMOhIGRpc3BvbmlibGUuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ1NlIHByb2R1am8gdW4gZXJyb3IgZGUgcmVkLiBQb3IgZmF2b3IsIGludMOpbnRlbG8gbcOhcyB0YXJkZS4nfSkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnU2UgcHJvZHVqbyB1biBlcnJvciBkZSByZWQuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBIVFRQOiAke2Vycm9yLnN0YXR1c30gLSAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class LoadingService {
5
+ _loadingFullScreen = new BehaviorSubject(false);
6
+ _loadingFullScreenObservable$ = this._loadingFullScreen.asObservable();
7
+ _loadingBreadCrumb = new BehaviorSubject(false);
8
+ _loadingBreadCrumbObservable$ = this._loadingBreadCrumb.asObservable();
9
+ constructor() { }
10
+ /**
11
+ * Observable del loading full screen
12
+ */
13
+ get loadingFullScreen() {
14
+ return this._loadingFullScreenObservable$;
15
+ }
16
+ /**
17
+ * Observable del loading en el breadcrumb
18
+ */
19
+ get loadingBreadCrumb() {
20
+ return this._loadingBreadCrumbObservable$;
21
+ }
22
+ startFullScreenLoading() {
23
+ this._loadingFullScreen.next(true);
24
+ }
25
+ endFullScreenLoading() {
26
+ this._loadingFullScreen.next(false);
27
+ }
28
+ startBreadCrumLoading() {
29
+ this._loadingBreadCrumb.next(true);
30
+ }
31
+ endBreadCrumLoading() {
32
+ this._loadingBreadCrumb.next(false);
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingService, providedIn: 'root' });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }], ctorParameters: () => [] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2lvcy9sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8sY0FBYztJQUVqQixrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkYsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXZFLGtCQUFrQixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNuRiw2QkFBNkIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFL0UsZ0JBQWdCLENBQUM7SUFFakI7O09BRUc7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztJQUM1QyxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzt1R0F2Q1UsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nRnVsbFNjcmVlbjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSBfbG9hZGluZ0Z1bGxTY3JlZW5PYnNlcnZhYmxlJCA9IHRoaXMuX2xvYWRpbmdGdWxsU2NyZWVuLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9sb2FkaW5nQnJlYWRDcnVtYjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSBfbG9hZGluZ0JyZWFkQ3J1bWJPYnNlcnZhYmxlJCA9IHRoaXMuX2xvYWRpbmdCcmVhZENydW1iLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIGRlbCBsb2FkaW5nIGZ1bGwgc2NyZWVuXHJcbiAgICovXHJcbiAgZ2V0IGxvYWRpbmdGdWxsU2NyZWVuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmdGdWxsU2NyZWVuT2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIGRlbCBsb2FkaW5nIGVuIGVsIGJyZWFkY3J1bWJcclxuICAgKi9cclxuXHJcbiAgZ2V0IGxvYWRpbmdCcmVhZENydW1iKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmdCcmVhZENydW1iT2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhcnRGdWxsU2NyZWVuTG9hZGluZygpOiB2b2lke1xyXG4gICAgdGhpcy5fbG9hZGluZ0Z1bGxTY3JlZW4ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbmRGdWxsU2NyZWVuTG9hZGluZygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvYWRpbmdGdWxsU2NyZWVuLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0QnJlYWRDcnVtTG9hZGluZygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvYWRpbmdCcmVhZENydW1iLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW5kQnJlYWRDcnVtTG9hZGluZygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvYWRpbmdCcmVhZENydW1iLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,146 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map, of, Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./storage.service";
5
+ export class MenuService {
6
+ storageService;
7
+ _menu = {};
8
+ _menuSource = new Subject();
9
+ _breadcrumbSource = new Subject();
10
+ _menuObservable$ = this._menuSource.asObservable();
11
+ _breadcrumbObservable$ = this._breadcrumbSource.asObservable();
12
+ constructor(storageService) {
13
+ this.storageService = storageService;
14
+ }
15
+ /**
16
+ * Observable para los eventos del breadcrumb
17
+ */
18
+ get breadcrumb() {
19
+ return this._breadcrumbObservable$;
20
+ }
21
+ /**
22
+ * Observable para el menu principal
23
+ */
24
+ get menu() {
25
+ return this._menuObservable$;
26
+ }
27
+ /**
28
+ * Agrega items al breadcrumb
29
+ * @param items
30
+ */
31
+ setBreadcrumb(items) {
32
+ this._breadcrumbSource.next(items);
33
+ }
34
+ /**
35
+ * Consulta la lista de tareas del usuario para cargar el menú
36
+ * @returns
37
+ */
38
+ loadTareas() {
39
+ /********************************************************/
40
+ /* Se debe cambiar con el request al servicio de tareas */
41
+ this._menu = {};
42
+ return of(JSON.parse(this.storageService.getItem('__tareas'))).pipe(map((tareas) => {
43
+ const arbolTareas = [];
44
+ let nodoBase = null;
45
+ let nodoHijo = null;
46
+ for (const unaTarea of tareas) {
47
+ const modulo = unaTarea.modulo + '';
48
+ if (!(modulo in this._menu)) {
49
+ this._menu[modulo] = { label: unaTarea.nombreModulo, items: [] };
50
+ }
51
+ if (!unaTarea.nombrePadre) {
52
+ arbolTareas.push(unaTarea);
53
+ continue;
54
+ }
55
+ nodoBase = null;
56
+ // Buscar en el primer nivel
57
+ for (const unNodo of arbolTareas) {
58
+ if (unNodo.tipo !== "M") {
59
+ continue;
60
+ }
61
+ if (unaTarea.nombreAbuelo && unNodo.descripcion === unaTarea.nombreAbuelo && unNodo.modulo === unaTarea.modulo) {
62
+ // Buscar en el segundo nivel
63
+ for (const unNodo2 of unNodo.listaTareas || []) {
64
+ if (unNodo2.tipo !== "M") {
65
+ continue;
66
+ }
67
+ if (unNodo2.descripcion === unaTarea.nombrePadre && unNodo2.modulo === unaTarea.modulo) {
68
+ nodoBase = unNodo2;
69
+ break;
70
+ }
71
+ }
72
+ if (!nodoBase) {
73
+ nodoHijo = {
74
+ descripcion: unaTarea.nombrePadre,
75
+ gif: unaTarea.gifPadre,
76
+ tipo: "M",
77
+ listaTareas: [],
78
+ modulo: unaTarea.modulo,
79
+ };
80
+ unNodo.listaTareas.push(nodoHijo);
81
+ nodoBase = nodoHijo;
82
+ }
83
+ break;
84
+ }
85
+ if (unNodo.descripcion === unaTarea.nombrePadre && unNodo.modulo === unaTarea.modulo) {
86
+ nodoBase = unNodo;
87
+ break;
88
+ }
89
+ }
90
+ if (!nodoBase) {
91
+ nodoBase = {
92
+ descripcion: unaTarea.nombreAbuelo || unaTarea.nombrePadre,
93
+ gif: unaTarea.nombreAbuelo ? unaTarea.gifAbuelo : unaTarea.gifPadre,
94
+ orden: unaTarea.nombreAbuelo ? unaTarea.ordenAbuelo : unaTarea.ordenPadre,
95
+ tipo: "M",
96
+ listaTareas: [],
97
+ modulo: unaTarea.modulo,
98
+ };
99
+ arbolTareas.push(nodoBase);
100
+ if (unaTarea.nombreAbuelo) {
101
+ nodoHijo = {
102
+ descripcion: unaTarea.nombrePadre,
103
+ gif: unaTarea.gifPadre,
104
+ tipo: "M",
105
+ listaTareas: [],
106
+ modulo: unaTarea.modulo,
107
+ };
108
+ nodoBase.listaTareas.push(nodoHijo);
109
+ nodoBase = nodoHijo;
110
+ }
111
+ }
112
+ nodoBase.listaTareas.push(unaTarea);
113
+ }
114
+ let respuesta = this.convertToMenuItems(arbolTareas);
115
+ respuesta.forEach(dato => {
116
+ const modulo = dato.tabindex;
117
+ this._menu[modulo].items.push(dato);
118
+ });
119
+ }));
120
+ /********************************************************/
121
+ }
122
+ convertToMenuItems(tareas) {
123
+ return tareas.map(tarea => {
124
+ const menuItem = {
125
+ label: tarea.descripcion,
126
+ icon: tarea.gif ? 'glyphicons ' + tarea.gif : undefined,
127
+ routerLink: tarea.urlprincipal ? tarea.urlprincipal.replace(/.jsf/, '') : undefined,
128
+ tabindex: tarea.modulo,
129
+ items: tarea.listaTareas ? this.convertToMenuItems(tarea.listaTareas) : undefined
130
+ };
131
+ return menuItem;
132
+ });
133
+ }
134
+ setTareasDelModulo(modulo) {
135
+ this._menuSource.next(this._menu[modulo]);
136
+ }
137
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MenuService, deps: [{ token: i1.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
138
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MenuService, providedIn: 'root' });
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MenuService, decorators: [{
141
+ type: Injectable,
142
+ args: [{
143
+ providedIn: 'root',
144
+ }]
145
+ }], ctorParameters: () => [{ type: i1.StorageService }] });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2lvcy9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBaUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLFdBQVc7SUFPRjtJQU5aLEtBQUssR0FBZ0MsRUFBRSxDQUFDO0lBQ3hDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO0lBQ3RDLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUFDOUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxzQkFBc0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFdkUsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUV0RDs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLDBEQUEwRDtRQUMxRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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Q0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxRQUFRLEdBQWE7Z0JBQ3pCLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDeEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN2RCxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNuRixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ2xGLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO3VHQS9JVSxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaS9tZW51aXRlbSc7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX21lbnU6IHsgW2tleTogc3RyaW5nXTogTWVudUl0ZW0gfSA9IHt9O1xyXG4gIHByaXZhdGUgX21lbnVTb3VyY2UgPSBuZXcgU3ViamVjdDxNZW51SXRlbT4oKTtcclxuICBwcml2YXRlIF9icmVhZGNydW1iU291cmNlID0gbmV3IFN1YmplY3Q8TWVudUl0ZW1bXT4oKTtcclxuICBwcml2YXRlIF9tZW51T2JzZXJ2YWJsZSQgPSB0aGlzLl9tZW51U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgX2JyZWFkY3J1bWJPYnNlcnZhYmxlJCA9IHRoaXMuX2JyZWFkY3J1bWJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIHBhcmEgbG9zIGV2ZW50b3MgZGVsIGJyZWFkY3J1bWJcclxuICAgKi9cclxuICBnZXQgYnJlYWRjcnVtYigpIHtcclxuICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIHBhcmEgZWwgbWVudSBwcmluY2lwYWxcclxuICAgKi9cclxuICBnZXQgbWVudSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9tZW51T2JzZXJ2YWJsZSQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZ3JlZ2EgaXRlbXMgYWwgYnJlYWRjcnVtYlxyXG4gICAqIEBwYXJhbSBpdGVtc1xyXG4gICAqL1xyXG4gIHNldEJyZWFkY3J1bWIoaXRlbXM6IE1lbnVJdGVtW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX2JyZWFkY3J1bWJTb3VyY2UubmV4dChpdGVtcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdWx0YSBsYSBsaXN0YSBkZSB0YXJlYXMgZGVsIHVzdWFyaW8gcGFyYSBjYXJnYXIgZWwgbWVuw7pcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGxvYWRUYXJlYXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgICAvKiBTZSBkZWJlIGNhbWJpYXIgY29uIGVsIHJlcXVlc3QgYWwgc2VydmljaW8gZGUgdGFyZWFzICovXHJcbiAgICB0aGlzLl9tZW51ID0ge31cclxuICAgIHJldHVybiBvZihKU09OLnBhcnNlKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnX190YXJlYXMnKSkpLnBpcGUoXHJcbiAgICAgIG1hcCgodGFyZWFzOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFyYm9sVGFyZWFzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICBsZXQgbm9kb0Jhc2UgPSBudWxsO1xyXG4gICAgIGxldCBub2RvSGlqbyA9IG51bGw7XHJcbiAgIFxyXG4gICAgIGZvciAoY29uc3QgdW5hVGFyZWEgb2YgdGFyZWFzKSB7XHJcbiAgICAgIGNvbnN0IG1vZHVsbyA9IHVuYVRhcmVhLm1vZHVsbysnJztcclxuICAgICAgICBpZiAoIShtb2R1bG8gaW4gdGhpcy5fbWVudSkpIHtcclxuICAgICAgICAgIHRoaXMuX21lbnVbbW9kdWxvXSA9IHsgbGFiZWw6IHVuYVRhcmVhLm5vbWJyZU1vZHVsbywgaXRlbXM6IFtdIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgaWYgKCF1bmFUYXJlYS5ub21icmVQYWRyZSkge1xyXG4gICAgICAgICBhcmJvbFRhcmVhcy5wdXNoKHVuYVRhcmVhKTtcclxuICAgICAgICAgY29udGludWU7XHJcbiAgICAgICB9XHJcbiAgIFxyXG4gICAgICAgbm9kb0Jhc2UgPSBudWxsO1xyXG4gICBcclxuICAgICAgIC8vIEJ1c2NhciBlbiBlbCBwcmltZXIgbml2ZWxcclxuICAgICAgIGZvciAoY29uc3QgdW5Ob2RvIG9mIGFyYm9sVGFyZWFzKSB7XHJcbiAgICAgICAgaWYgKHVuTm9kby50aXBvICE9PSBcIk1cIikge1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh1bmFUYXJlYS5ub21icmVBYnVlbG8gJiYgdW5Ob2RvLmRlc2NyaXBjaW9uID09PSB1bmFUYXJlYS5ub21icmVBYnVlbG8gJiYgdW5Ob2RvLm1vZHVsbyA9PT0gdW5hVGFyZWEubW9kdWxvKSB7XHJcbiAgICAgICAgICAvLyBCdXNjYXIgZW4gZWwgc2VndW5kbyBuaXZlbFxyXG4gICAgICAgICAgZm9yIChjb25zdCB1bk5vZG8yIG9mIHVuTm9kby5saXN0YVRhcmVhcyB8fCBbXSkge1xyXG4gICAgICAgICAgICBpZiAodW5Ob2RvMi50aXBvICE9PSBcIk1cIikge1xyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh1bk5vZG8yLmRlc2NyaXBjaW9uID09PSB1bmFUYXJlYS5ub21icmVQYWRyZSAmJiB1bk5vZG8yLm1vZHVsbyA9PT0gdW5hVGFyZWEubW9kdWxvKSAge1xyXG4gICAgICAgICAgICAgIG5vZG9CYXNlID0gdW5Ob2RvMjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFub2RvQmFzZSkge1xyXG4gICAgICAgICAgICBub2RvSGlqbyA9IHtcclxuICAgICAgICAgICAgICBkZXNjcmlwY2lvbjogdW5hVGFyZWEubm9tYnJlUGFkcmUsXHJcbiAgICAgICAgICAgICAgZ2lmOiB1bmFUYXJlYS5naWZQYWRyZSxcclxuICAgICAgICAgICAgICB0aXBvOiBcIk1cIixcclxuICAgICAgICAgICAgICBsaXN0YVRhcmVhczogW10sXHJcbiAgICAgICAgICAgICAgbW9kdWxvOiB1bmFUYXJlYS5tb2R1bG8sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHVuTm9kby5saXN0YVRhcmVhcyEucHVzaChub2RvSGlqbyk7XHJcbiAgICAgICAgICAgIG5vZG9CYXNlID0gbm9kb0hpam87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHVuTm9kby5kZXNjcmlwY2lvbiA9PT0gdW5hVGFyZWEubm9tYnJlUGFkcmUgJiYgdW5Ob2RvLm1vZHVsbyA9PT0gdW5hVGFyZWEubW9kdWxvKSB7XHJcbiAgICAgICAgICBub2RvQmFzZSA9IHVuTm9kbztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBpZiAoIW5vZG9CYXNlKSB7XHJcbiAgICAgICAgbm9kb0Jhc2UgPSB7XHJcbiAgICAgICAgICBkZXNjcmlwY2lvbjogdW5hVGFyZWEubm9tYnJlQWJ1ZWxvIHx8IHVuYVRhcmVhLm5vbWJyZVBhZHJlLFxyXG4gICAgICAgICAgZ2lmOiB1bmFUYXJlYS5ub21icmVBYnVlbG8gPyB1bmFUYXJlYS5naWZBYnVlbG8gOiB1bmFUYXJlYS5naWZQYWRyZSxcclxuICAgICAgICAgIG9yZGVuOiB1bmFUYXJlYS5ub21icmVBYnVlbG8gPyB1bmFUYXJlYS5vcmRlbkFidWVsbyA6IHVuYVRhcmVhLm9yZGVuUGFkcmUsXHJcbiAgICAgICAgICB0aXBvOiBcIk1cIixcclxuICAgICAgICAgIGxpc3RhVGFyZWFzOiBbXSxcclxuICAgICAgICAgIG1vZHVsbzogdW5hVGFyZWEubW9kdWxvLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYXJib2xUYXJlYXMucHVzaChub2RvQmFzZSk7XHJcbiAgXHJcbiAgICAgICAgaWYgKHVuYVRhcmVhLm5vbWJyZUFidWVsbykge1xyXG4gICAgICAgICAgbm9kb0hpam8gPSB7XHJcbiAgICAgICAgICAgIGRlc2NyaXBjaW9uOiB1bmFUYXJlYS5ub21icmVQYWRyZSxcclxuICAgICAgICAgICAgZ2lmOiB1bmFUYXJlYS5naWZQYWRyZSxcclxuICAgICAgICAgICAgdGlwbzogXCJNXCIsXHJcbiAgICAgICAgICAgIGxpc3RhVGFyZWFzOiBbXSwgXHJcbiAgICAgICAgICAgIG1vZHVsbzogdW5hVGFyZWEubW9kdWxvLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIG5vZG9CYXNlLmxpc3RhVGFyZWFzIS5wdXNoKG5vZG9IaWpvKTtcclxuICAgICAgICAgIG5vZG9CYXNlID0gbm9kb0hpam87XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG5vZG9CYXNlLmxpc3RhVGFyZWFzIS5wdXNoKHVuYVRhcmVhKTtcclxuICAgIH1cclxuICAgICBsZXQgcmVzcHVlc3RhID0gdGhpcy5jb252ZXJ0VG9NZW51SXRlbXMoYXJib2xUYXJlYXMpO1xyXG4gICAgIHJlc3B1ZXN0YS5mb3JFYWNoKGRhdG8gPT4ge1xyXG4gICAgICBjb25zdCBtb2R1bG8gPSBkYXRvLnRhYmluZGV4O1xyXG4gICAgICB0aGlzLl9tZW51W21vZHVsb10uaXRlbXMucHVzaChkYXRvKTtcclxuICAgICB9KSBcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9NZW51SXRlbXModGFyZWFzOiBhbnlbXSk6IE1lbnVJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRhcmVhcy5tYXAodGFyZWEgPT4ge1xyXG4gICAgICBjb25zdCBtZW51SXRlbTogTWVudUl0ZW0gPSB7XHJcbiAgICAgICAgbGFiZWw6IHRhcmVhLmRlc2NyaXBjaW9uLFxyXG4gICAgICAgIGljb246IHRhcmVhLmdpZiA/ICdnbHlwaGljb25zICcgKyB0YXJlYS5naWYgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcm91dGVyTGluazogdGFyZWEudXJscHJpbmNpcGFsID8gdGFyZWEudXJscHJpbmNpcGFsLnJlcGxhY2UoLy5qc2YvLCAnJykgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdGFiaW5kZXg6IHRhcmVhLm1vZHVsbyxcclxuICAgICAgICBpdGVtczogdGFyZWEubGlzdGFUYXJlYXMgPyB0aGlzLmNvbnZlcnRUb01lbnVJdGVtcyh0YXJlYS5saXN0YVRhcmVhcykgOiB1bmRlZmluZWRcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIG1lbnVJdGVtO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRUYXJlYXNEZWxNb2R1bG8obW9kdWxvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lbnVTb3VyY2UubmV4dCh0aGlzLl9tZW51W21vZHVsb10pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SpinnerService {
5
+ spinnerSubject = new BehaviorSubject(false);
6
+ spinner$ = this.spinnerSubject.asObservable();
7
+ show() {
8
+ this.spinnerSubject.next(true);
9
+ }
10
+ hide() {
11
+ this.spinnerSubject.next(false);
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SpinnerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SpinnerService, providedIn: 'root' });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SpinnerService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root'
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2lvcy9zcGlubmVyLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8sY0FBYztJQUNqQixjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDN0QsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFOUMsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzt1R0FWVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlubmVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzcGlubmVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNwaW5uZXIkID0gdGhpcy5zcGlubmVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgc2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Bpbm5lclN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGhpZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwaW5uZXJTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { jwtDecode } from "jwt-decode";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./utils.service";
5
+ export class StorageService {
6
+ utilsService;
7
+ constructor(utilsService) {
8
+ this.utilsService = utilsService;
9
+ }
10
+ rolSeleccionado;
11
+ setRolSeleccionado(rolSeleccionado) {
12
+ this.rolSeleccionado = rolSeleccionado;
13
+ }
14
+ /**
15
+ * Guarda un valor string en la clave dada dentro del localStorage
16
+ * @param key Clave
17
+ * @param value Valor en formato texto
18
+ */
19
+ setItem(key, value) {
20
+ localStorage.setItem(this.utilsService.obtenerBase() + '_' + key, value);
21
+ }
22
+ /**
23
+ * Retorna el valor almacenado en el localStorage bajo la clave dada.
24
+ * Si no existe y se específica un valor por defecto se retorna el valor
25
+ * por defecto. En caso que no se especifique ningun valor, se retorna
26
+ * undefined.
27
+ * @param key clave
28
+ * @param defaultValue Valor opcional por defecto
29
+ * @returns string | undefined
30
+ */
31
+ getItem(key, defaultValue) {
32
+ return localStorage.getItem(this.utilsService.obtenerBase() + '_' + key) ?? defaultValue;
33
+ }
34
+ /**
35
+ * Borra del localStorage la clave/valor de la clave dada.
36
+ * @param key Clave
37
+ */
38
+ removeItem(key) {
39
+ localStorage.removeItem(this.utilsService.obtenerBase() + '_' + key);
40
+ }
41
+ /**
42
+ * Borra todos los datos del localStorage
43
+ */
44
+ clear() {
45
+ localStorage.clear();
46
+ }
47
+ getSessionToken() {
48
+ let tokenEncriptado = localStorage.getItem(this.utilsService.obtenerBase() + '_' + 'token');
49
+ /*let tokenDecrypt = CryptoJS.AES.decrypt(tokenEncriptado, environment.crypto_secret_key);
50
+ let tokenDecryptString = tokenDecrypt.toString(CryptoJS.enc.Utf8);
51
+ let token = JSON.parse(tokenDecryptString);*/
52
+ return tokenEncriptado;
53
+ }
54
+ getDecodedJWT() {
55
+ let jwt = this.getSessionToken();
56
+ let tokenDecoded = JSON.parse(JSON.stringify(jwtDecode(jwt)));
57
+ return tokenDecoded;
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: StorageService, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: StorageService, providedIn: 'root' });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: StorageService, decorators: [{
63
+ type: Injectable,
64
+ args: [{
65
+ providedIn: 'root',
66
+ }]
67
+ }], ctorParameters: () => [{ type: i1.UtilsService }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2lvcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFLdkMsTUFBTSxPQUFPLGNBQWM7SUFDTDtJQUFwQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFMUMsZUFBZSxDQUFDO0lBRXhCLGtCQUFrQixDQUFDLGVBQWU7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDaEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxZQUFxQjtRQUN4QyxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLEdBQUksR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDO0lBQzVGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsR0FBVztRQUNwQixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLGVBQWUsR0FBUSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2pHOztxREFFNkM7UUFDN0MsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDakMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzt1R0EzRFUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gXCJqd3QtZGVjb2RlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UpIHt9XHJcblxyXG4gIHByaXZhdGUgcm9sU2VsZWNjaW9uYWRvO1xyXG5cclxuICBzZXRSb2xTZWxlY2Npb25hZG8ocm9sU2VsZWNjaW9uYWRvKSB7XHJcbiAgICB0aGlzLnJvbFNlbGVjY2lvbmFkbyA9IHJvbFNlbGVjY2lvbmFkbztcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBHdWFyZGEgdW4gdmFsb3Igc3RyaW5nIGVuIGxhIGNsYXZlIGRhZGEgZGVudHJvIGRlbCBsb2NhbFN0b3JhZ2VcclxuICAgKiBAcGFyYW0ga2V5IENsYXZlXHJcbiAgICogQHBhcmFtIHZhbHVlIFZhbG9yIGVuIGZvcm1hdG8gdGV4dG9cclxuICAgKi9cclxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpICsgJ18nICsga2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRvcm5hIGVsIHZhbG9yIGFsbWFjZW5hZG8gZW4gZWwgbG9jYWxTdG9yYWdlIGJham8gbGEgY2xhdmUgZGFkYS5cclxuICAgKiBTaSBubyBleGlzdGUgeSBzZSBlc3BlY8OtZmljYSB1biB2YWxvciBwb3IgZGVmZWN0byBzZSByZXRvcm5hIGVsIHZhbG9yXHJcbiAgICogcG9yIGRlZmVjdG8uIEVuIGNhc28gcXVlIG5vIHNlIGVzcGVjaWZpcXVlIG5pbmd1biB2YWxvciwgc2UgcmV0b3JuYVxyXG4gICAqIHVuZGVmaW5lZC5cclxuICAgKiBAcGFyYW0ga2V5IGNsYXZlXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBWYWxvciBvcGNpb25hbCBwb3IgZGVmZWN0b1xyXG4gICAqIEByZXR1cm5zIHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy51dGlsc1NlcnZpY2Uub2J0ZW5lckJhc2UoKSArICdfJyArICBrZXkpID8/IGRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvcnJhIGRlbCBsb2NhbFN0b3JhZ2UgbGEgY2xhdmUvdmFsb3IgZGUgbGEgY2xhdmUgZGFkYS5cclxuICAgKiBAcGFyYW0ga2V5IENsYXZlXHJcbiAgICovXHJcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy51dGlsc1NlcnZpY2Uub2J0ZW5lckJhc2UoKSArICdfJyArIGtleSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCb3JyYSB0b2RvcyBsb3MgZGF0b3MgZGVsIGxvY2FsU3RvcmFnZVxyXG4gICAqL1xyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXNzaW9uVG9rZW4oKSB7XHJcbiAgICBsZXQgdG9rZW5FbmNyaXB0YWRvOiBhbnkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpICsgJ18nICsgJ3Rva2VuJyk7XHJcbiAgICAvKmxldCB0b2tlbkRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdCh0b2tlbkVuY3JpcHRhZG8sIGVudmlyb25tZW50LmNyeXB0b19zZWNyZXRfa2V5KTtcclxuICAgIGxldCB0b2tlbkRlY3J5cHRTdHJpbmcgPSB0b2tlbkRlY3J5cHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xyXG4gICAgbGV0IHRva2VuID0gSlNPTi5wYXJzZSh0b2tlbkRlY3J5cHRTdHJpbmcpOyovXHJcbiAgICByZXR1cm4gdG9rZW5FbmNyaXB0YWRvO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVjb2RlZEpXVCgpe1xyXG4gICAgbGV0IGp3dCA9IHRoaXMuZ2V0U2Vzc2lvblRva2VuKCk7XHJcbiAgICBsZXQgdG9rZW5EZWNvZGVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShqd3REZWNvZGUoand0KSkpO1xyXG4gICAgcmV0dXJuIHRva2VuRGVjb2RlZDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,99 @@
1
+ import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { TimeoutError, catchError, throwError } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./storage.service";
6
+ import * as i2 from "ngx-cookie-service";
7
+ import * as i3 from "./auth.service";
8
+ import * as i4 from "./utils.service";
9
+ import * as i5 from "./error-interceptor.service";
10
+ import * as i6 from "@angular/common/http";
11
+ export class TemplateService {
12
+ storageService;
13
+ cookieService;
14
+ authService;
15
+ utilsService;
16
+ errorInterceptor;
17
+ http;
18
+ constructor(storageService, cookieService, authService, utilsService, errorInterceptor, http) {
19
+ this.storageService = storageService;
20
+ this.cookieService = cookieService;
21
+ this.authService = authService;
22
+ this.utilsService = utilsService;
23
+ this.errorInterceptor = errorInterceptor;
24
+ this.http = http;
25
+ this.handleError = this.handleError.bind(this);
26
+ }
27
+ handleError(error) {
28
+ if (error instanceof TimeoutError) {
29
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }));
30
+ }
31
+ else if (error instanceof HttpErrorResponse) {
32
+ if (error.error instanceof ErrorEvent) {
33
+ // A client-side or network error occurreda
34
+ if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {
35
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.' }));
36
+ }
37
+ else {
38
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }));
39
+ }
40
+ }
41
+ else {
42
+ if (error.status == 0) {
43
+ this.errorInterceptor.showError(JSON.stringify({ tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.' }));
44
+ }
45
+ else {
46
+ console.error(`Error HTTP: ${error.status} - ${error.message}`);
47
+ }
48
+ }
49
+ }
50
+ if (error.status === 500) {
51
+ //Llamado a interceptor
52
+ this.errorInterceptor.showError(JSON.stringify(error.error));
53
+ // A client-side or network error occurred. Handle it accordingly.
54
+ console.error('An error occurred:', error.error);
55
+ }
56
+ else {
57
+ // The backend returned an unsuccessful response code.
58
+ // The response body may contain clues as to what went wrong.
59
+ console.error(`Backend returned code ${error.status}, body was: `, error.error);
60
+ }
61
+ // Return an observable with a user-facing error message.
62
+ return throwError(() => new Error('Something bad happened; please try again later.'));
63
+ }
64
+ async getTemplateColor(urlapinucleo, codigoAplicacion, nombreAplicacion) {
65
+ if (!this.cookieService.get('urlnucleo')) {
66
+ this.cookieService.set('urlnucleo', urlapinucleo);
67
+ }
68
+ const color = this.storageService.getItem('color');
69
+ var basePortal = this.utilsService.obtenerBase();
70
+ if (window.location.href.endsWith('not-found')) {
71
+ return "#F1710C";
72
+ }
73
+ let data = await this.authService.generarTokenPublico(urlapinucleo).toPromise();
74
+ var headers = new HttpHeaders().set('Authorization', `Bearer ${data.token}`).set('Base', basePortal);
75
+ if (!color) {
76
+ const url = `${urlapinucleo}/authentication/inicio`;
77
+ let params = new HttpParams();
78
+ params = params.set('numeroAplicacion', codigoAplicacion);
79
+ params = params.set('tipo', 'color');
80
+ const response = await this.http.get(url, { params: params, headers: headers }).pipe(catchError(this.handleError)).toPromise();
81
+ const newColor = response?.colores?.color1;
82
+ if (newColor) {
83
+ this.storageService.setItem('color', newColor);
84
+ return newColor;
85
+ }
86
+ return '#ffffff';
87
+ }
88
+ return color;
89
+ }
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateService, deps: [{ token: i1.StorageService }, { token: i2.CookieService }, { token: i3.AuthService }, { token: i4.UtilsService }, { token: i5.ErrorIntecertorService }, { token: i6.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
91
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateService, providedIn: 'root' });
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateService, decorators: [{
94
+ type: Injectable,
95
+ args: [{
96
+ providedIn: 'root',
97
+ }]
98
+ }], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.CookieService }, { type: i3.AuthService }, { type: i4.UtilsService }, { type: i5.ErrorIntecertorService }, { type: i6.HttpClient }] });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdGVtcGxhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWtCLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFXNUUsTUFBTSxPQUFPLGVBQWU7SUFFaEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTlYsWUFDVSxjQUE4QixFQUM5QixhQUE0QixFQUM1QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixnQkFBeUMsRUFDekMsSUFBZ0I7UUFMaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBd0I7UUFDMUMsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxpRUFBaUUsRUFBQyxDQUFDLENBQUMs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c0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGltZW91dEVycm9yLCBjYXRjaEVycm9yLCBmaXJzdFZhbHVlRnJvbSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFcnJvckludGVjZXJ0b3JTZXJ2aWNlIH0gZnJvbSAnLi9lcnJvci1pbnRlcmNlcHRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVycm9ySW50ZXJjZXB0b3IgOiBFcnJvckludGVjZXJ0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVGltZW91dEVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvckludGVyY2VwdG9yLnNob3dFcnJvcihKU09OLnN0cmluZ2lmeSh7dGlwbzogJ0VSUicsIHRyYXphOiAnLicsIG1lbnNhamU6ICdFbCBzZXJ2aWNpbyBubyBlc3TDoSBkaXNwb25pYmxlLiBQb3IgZmF2b3IsIGludMOpbnRlbG8gbcOhcyB0YXJkZS4nfSkpO1xyXG4gICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWRhXHJcbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnRVJSX0NPTk5FQ1RJT05fUkVGVVNFRCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnRWwgc2VydmljaW8gbm8gZXN0w6EgZGlzcG9uaWJsZS4gUG9yIGZhdm9yLCBpbnTDqW50ZWxvIG3DoXMgdGFyZGUuJ30pKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnU2UgcHJvZHVqbyB1biBlcnJvciBkZSByZWQuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ1NlIHByb2R1am8gdW4gZXJyb3IgZGUgcmVkLiBQb3IgZmF2b3IsIGludMOpbnRlbG8gbcOhcyB0YXJkZS4nfSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgSFRUUDogJHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5tZXNzYWdlfWApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcclxuICAgICAgICAvL0xsYW1hZG8gYSBpbnRlcmNlcHRvclxyXG4gICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpKTtcclxuICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuIEhhbmRsZSBpdCBhY2NvcmRpbmdseS5cclxuICAgICAgICBjb25zb2xlLmVycm9yKCdBbiBlcnJvciBvY2N1cnJlZDonLCBlcnJvci5lcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVGhlIGJhY2tlbmQgcmV0dXJuZWQgYW4gdW5zdWNjZXNzZnVsIHJlc3BvbnNlIGNvZGUuXHJcbiAgICAgICAgLy8gVGhlIHJlc3BvbnNlIGJvZHkgbWF5IGNvbnRhaW4gY2x1ZXMgYXMgdG8gd2hhdCB3ZW50IHdyb25nLlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICBgQmFja2VuZCByZXR1cm5lZCBjb2RlICR7ZXJyb3Iuc3RhdHVzfSwgYm9keSB3YXM6IGAsIGVycm9yLmVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBSZXR1cm4gYW4gb2JzZXJ2YWJsZSB3aXRoIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZS5cclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdTb21ldGhpbmcgYmFkIGhhcHBlbmVkOyBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicpKTtcclxuICAgIH1cclxuXHJcblxyXG4gIGFzeW5jIGdldFRlbXBsYXRlQ29sb3IodXJsYXBpbnVjbGVvLCBjb2RpZ29BcGxpY2FjaW9uLCBub21icmVBcGxpY2FjaW9uKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGlmICghdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJykpe1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KCd1cmxudWNsZW8nLCB1cmxhcGludWNsZW8pXHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY29sb3InKTtcclxuICAgIHZhciBiYXNlUG9ydGFsOiBzdHJpbmcgPSB0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpO1xyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ocmVmLmVuZHNXaXRoKCdub3QtZm91bmQnKSkge1xyXG4gICAgICByZXR1cm4gXCIjRjE3MTBDXCI7XHJcbiAgICB9XHJcbiAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuZ2VuZXJhclRva2VuUHVibGljbyh1cmxhcGludWNsZW8pLnRvUHJvbWlzZSgpO1xyXG4gICAgdmFyIGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7ZGF0YS50b2tlbn1gKS5zZXQoJ0Jhc2UnLCBiYXNlUG9ydGFsKTtcclxuICAgIGlmICghY29sb3IpIHtcclxuICAgICAgY29uc3QgdXJsID0gYCR7dXJsYXBpbnVjbGVvfS9hdXRoZW50aWNhdGlvbi9pbmljaW9gO1xyXG4gICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbnVtZXJvQXBsaWNhY2lvbicsIGNvZGlnb0FwbGljYWNpb24pO1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0aXBvJywgJ2NvbG9yJyk7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5odHRwLmdldCh1cmwsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IGhlYWRlcnMgfSApLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBjb25zdCBuZXdDb2xvciA9IChyZXNwb25zZSBhcyBhbnkpPy5jb2xvcmVzPy5jb2xvcjE7XHJcblxyXG4gICAgICBpZiAobmV3Q29sb3IpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2NvbG9yJywgbmV3Q29sb3IpO1xyXG4gICAgICAgIHJldHVybiBuZXdDb2xvcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuICcjZmZmZmZmJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sb3I7XHJcbiAgfVxyXG59XHJcbiJdfQ==