general-library-union 2.8.18 → 2.8.19

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 (647) 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 +194 -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 +180 -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 +154 -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 +15885 -0
  185. package/fesm2022/general-library-union.mjs.map +1 -0
  186. package/index.d.ts +5 -0
  187. package/package.json +17 -28
  188. package/{public-api.ts → public-api.d.ts} +35 -75
  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} +3 -9
  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 +26 -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} +1 -1
  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} +2 -5
  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} +4 -5
  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} +2 -7
  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} +3 -4
  262. package/src/app/seguridad/modelos/{EjecucionReporteDataModel.ts → EjecucionReporteDataModel.d.ts} +2 -3
  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} +2 -5
  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} +2 -5
  269. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +15 -0
  270. package/src/app/seguridad/modelos/{FuenteCampoModel.ts → FuenteCampoModel.d.ts} +2 -6
  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} +2 -21
  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} +2 -16
  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} +2 -5
  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} +2 -2
  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} +1 -2
  289. package/src/app/seguridad/modelos/ModulosModel.d.ts +14 -0
  290. package/src/app/seguridad/modelos/{ObjetoReporteModel.ts → ObjetoReporteModel.d.ts} +2 -3
  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} +1 -6
  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} +2 -4
  308. package/src/app/seguridad/modelos/{ReporteFuenteModel.ts → ReporteFuenteModel.d.ts} +16 -70
  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} +4 -8
  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} +5 -16
  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/.browserslistrc +0 -15
  371. package/.editorconfig +0 -16
  372. package/.vscode/extensions.json +0 -4
  373. package/.vscode/launch.json +0 -20
  374. package/.vscode/tasks.json +0 -42
  375. package/angular.json +0 -143
  376. package/karma.conf.js +0 -44
  377. package/ng-package.json +0 -21
  378. package/src/app/app.component.html +0 -12
  379. package/src/app/app.component.scss +0 -0
  380. package/src/app/app.component.spec.ts +0 -29
  381. package/src/app/app.component.ts +0 -34
  382. package/src/app/app.config.ts +0 -43
  383. package/src/app/app.module.ts +0 -10
  384. package/src/app/app.routes.ts +0 -88
  385. package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +0 -6
  386. package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
  387. package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +0 -39
  388. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +0 -1
  389. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
  390. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +0 -31
  391. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +0 -9
  392. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +0 -28
  393. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +0 -32
  394. package/src/app/core/componentes/filtro-general/filtro-general.component.html +0 -34
  395. package/src/app/core/componentes/filtro-general/filtro-general.component.scss +0 -3
  396. package/src/app/core/componentes/filtro-general/filtro-general.component.ts +0 -202
  397. package/src/app/core/componentes/footer/footer.component.html +0 -13
  398. package/src/app/core/componentes/footer/footer.component.scss +0 -3
  399. package/src/app/core/componentes/footer/footer.component.ts +0 -20
  400. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +0 -267
  401. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +0 -21
  402. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +0 -275
  403. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +0 -118
  404. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +0 -76
  405. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +0 -67
  406. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +0 -11
  407. package/src/app/core/componentes/inicio-component/inicio-component.component.html +0 -29
  408. package/src/app/core/componentes/inicio-component/inicio-component.component.scss +0 -69
  409. package/src/app/core/componentes/inicio-component/inicio-component.component.ts +0 -65
  410. package/src/app/core/componentes/menu/menu.component.html +0 -13
  411. package/src/app/core/componentes/menu/menu.component.scss +0 -36
  412. package/src/app/core/componentes/menu/menu.component.ts +0 -35
  413. package/src/app/core/componentes/tabla-general/tabla-general.component.html +0 -90
  414. package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
  415. package/src/app/core/componentes/tabla-general/tabla-general.component.ts +0 -96
  416. package/src/app/core/core.module.ts +0 -22
  417. package/src/app/core/errores/authentication.error.ts +0 -6
  418. package/src/app/core/modelos/error-response.model.ts +0 -9
  419. package/src/app/core/modelos/table-column.model.ts +0 -10
  420. package/src/app/core/modelos/user.model.ts +0 -6
  421. package/src/app/core/plantilla-general/plantilla-general.template.html +0 -139
  422. package/src/app/core/plantilla-general/plantilla-general.template.scss +0 -37
  423. package/src/app/core/plantilla-general/plantilla-general.template.ts +0 -233
  424. package/src/app/core/servicios/auth.service.ts +0 -189
  425. package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +0 -49
  426. package/src/app/core/servicios/data-exporter-table.utils.ts +0 -78
  427. package/src/app/core/servicios/error-interceptor.service.ts +0 -208
  428. package/src/app/core/servicios/guardias/auth.guard.ts +0 -51
  429. package/src/app/core/servicios/guardias/publico.guard.ts +0 -26
  430. package/src/app/core/servicios/interceptores/loading-interceptor.ts +0 -37
  431. package/src/app/core/servicios/interceptores/token-interceptor.service.ts +0 -177
  432. package/src/app/core/servicios/loading.service.ts +0 -48
  433. package/src/app/core/servicios/menu.service.ts +0 -153
  434. package/src/app/core/servicios/spinner-service.ts +0 -18
  435. package/src/app/core/servicios/storage.service.ts +0 -68
  436. package/src/app/core/servicios/template.service.ts +0 -91
  437. package/src/app/core/servicios/toast.service.ts +0 -114
  438. package/src/app/core/servicios/utils.service.ts +0 -362
  439. package/src/app/core/sharedlib.module.ts +0 -11
  440. package/src/app/core/utilidades/color.util.ts +0 -197
  441. package/src/app/layout/app.breadcrumb.component.html +0 -20
  442. package/src/app/layout/app.breadcrumb.component.ts +0 -78
  443. package/src/app/layout/app.footer.component.html +0 -18
  444. package/src/app/layout/app.footer.component.ts +0 -15
  445. package/src/app/layout/app.layout.component.html +0 -20
  446. package/src/app/layout/app.layout.component.ts +0 -201
  447. package/src/app/layout/app.layout.module.ts +0 -9
  448. package/src/app/layout/app.menu.component.html +0 -6
  449. package/src/app/layout/app.menu.component.ts +0 -51
  450. package/src/app/layout/app.menu.service.ts +0 -23
  451. package/src/app/layout/app.menuitem.component.ts +0 -252
  452. package/src/app/layout/app.menuprofile.component.html +0 -35
  453. package/src/app/layout/app.menuprofile.component.ts +0 -60
  454. package/src/app/layout/app.rightmenu.component.html +0 -72
  455. package/src/app/layout/app.rightmenu.component.ts +0 -24
  456. package/src/app/layout/app.sidebar.component.html +0 -40
  457. package/src/app/layout/app.sidebar.component.ts +0 -81
  458. package/src/app/layout/app.topbar.component.html +0 -214
  459. package/src/app/layout/app.topbar.component.ts +0 -335
  460. package/src/app/layout/config/app.config.component.html +0 -125
  461. package/src/app/layout/config/app.config.component.ts +0 -206
  462. package/src/app/layout/config/app.config.module.ts +0 -11
  463. package/src/app/layout/service/app.layout.service.ts +0 -191
  464. package/src/app/publico/pages/login/login.page.html +0 -53
  465. package/src/app/publico/pages/login/login.page.scss +0 -166
  466. package/src/app/publico/pages/login/login.page.ts +0 -128
  467. package/src/app/publico/pages/not-found/not-found.page.html +0 -35
  468. package/src/app/publico/pages/not-found/not-found.page.scss +0 -2
  469. package/src/app/publico/pages/not-found/not-found.page.ts +0 -46
  470. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +0 -58
  471. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +0 -49
  472. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +0 -176
  473. package/src/app/publico/pages/timeout/timeout.page.html +0 -24
  474. package/src/app/publico/pages/timeout/timeout.page.scss +0 -2
  475. package/src/app/publico/pages/timeout/timeout.page.ts +0 -18
  476. package/src/app/seguridad/constantes/ConstantesGenerales.ts +0 -30
  477. package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +0 -18
  478. package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +0 -13
  479. package/src/app/seguridad/modelos/AplicacionModel.ts +0 -11
  480. package/src/app/seguridad/modelos/ArchivoPortalModel.ts +0 -16
  481. package/src/app/seguridad/modelos/AtributoPuntoModel.ts +0 -9
  482. package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +0 -22
  483. package/src/app/seguridad/modelos/CargueLineaModel.ts +0 -17
  484. package/src/app/seguridad/modelos/ColoresRGB.ts +0 -17
  485. package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +0 -9
  486. package/src/app/seguridad/modelos/ComplementoModel.ts +0 -10
  487. package/src/app/seguridad/modelos/ComponentePaginaModel.ts +0 -22
  488. package/src/app/seguridad/modelos/ConexionModel.ts +0 -15
  489. package/src/app/seguridad/modelos/ControlFuncionModel.ts +0 -10
  490. package/src/app/seguridad/modelos/CorreoModel.ts +0 -45
  491. package/src/app/seguridad/modelos/CorreoWSModel.ts +0 -49
  492. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +0 -14
  493. package/src/app/seguridad/modelos/EmpresaModel.ts +0 -25
  494. package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +0 -19
  495. package/src/app/seguridad/modelos/EtiquetaModel.ts +0 -4
  496. package/src/app/seguridad/modelos/Etiquetas.ts +0 -14
  497. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +0 -21
  498. package/src/app/seguridad/modelos/FuenteDato.ts +0 -19
  499. package/src/app/seguridad/modelos/FuenteEntradaModel.ts +0 -9
  500. package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +0 -19
  501. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +0 -14
  502. package/src/app/seguridad/modelos/FuncionalidadModel.ts +0 -12
  503. package/src/app/seguridad/modelos/GeneralModel.ts +0 -16
  504. package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +0 -12
  505. package/src/app/seguridad/modelos/GrupoFuenteModel.ts +0 -17
  506. package/src/app/seguridad/modelos/GrupoPermisoModel.ts +0 -16
  507. package/src/app/seguridad/modelos/ListaServicioModel.ts +0 -18
  508. package/src/app/seguridad/modelos/LlaveForaneaModel.ts +0 -6
  509. package/src/app/seguridad/modelos/LoginModel.ts +0 -19
  510. package/src/app/seguridad/modelos/MensajeSistemaModel.ts +0 -10
  511. package/src/app/seguridad/modelos/ModulosModel.ts +0 -17
  512. package/src/app/seguridad/modelos/PaginaPortalModel.ts +0 -23
  513. package/src/app/seguridad/modelos/ParametroComponenteModel.ts +0 -9
  514. package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +0 -16
  515. package/src/app/seguridad/modelos/PermisoFuncionModel.ts +0 -11
  516. package/src/app/seguridad/modelos/PermisocontenidoModel.ts +0 -20
  517. package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +0 -9
  518. package/src/app/seguridad/modelos/PropiedadModel.ts +0 -12
  519. package/src/app/seguridad/modelos/PublicacionWebModel.ts +0 -29
  520. package/src/app/seguridad/modelos/PuntoProcesoModel.ts +0 -7
  521. package/src/app/seguridad/modelos/RecursoPunto.ts +0 -13
  522. package/src/app/seguridad/modelos/RecursoPuntoModel.ts +0 -13
  523. package/src/app/seguridad/modelos/ReporteBanda.ts +0 -9
  524. package/src/app/seguridad/modelos/ReporteColumna.ts +0 -33
  525. package/src/app/seguridad/modelos/ReporteColumnario.ts +0 -82
  526. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +0 -31
  527. package/src/app/seguridad/modelos/ReporteMarcador.ts +0 -40
  528. package/src/app/seguridad/modelos/ReporteSoporte.ts +0 -10
  529. package/src/app/seguridad/modelos/ReporteTabla.ts +0 -14
  530. package/src/app/seguridad/modelos/RespuestaModel.ts +0 -10
  531. package/src/app/seguridad/modelos/ServidorCorreoModel.ts +0 -31
  532. package/src/app/seguridad/modelos/SistemaMensajeModel.ts +0 -11
  533. package/src/app/seguridad/modelos/SitioPortalModel.ts +0 -29
  534. package/src/app/seguridad/modelos/TablaFromModel.ts +0 -5
  535. package/src/app/seguridad/modelos/TareasModel.ts +0 -54
  536. package/src/app/seguridad/modelos/TextoModel.ts +0 -11
  537. package/src/app/seguridad/modelos/TipoEtiqueta.ts +0 -8
  538. package/src/app/seguridad/modelos/UnionModel.ts +0 -14
  539. package/src/app/seguridad/modelos/UsuariogrupoModel.ts +0 -27
  540. package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +0 -16
  541. package/src/app/seguridad/modelos/contenidoCorreoModel.ts +0 -13
  542. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +0 -47
  543. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +0 -8
  544. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +0 -144
  545. package/src/app/shared/servicios/cargar-archivos.service.ts +0 -51
  546. package/src/app/shared/servicios/cargar-mapas.service.ts +0 -43
  547. package/src/app/shared/servicios/encriptado-basico.service.ts +0 -54
  548. package/src/app/shared/servicios/encriptador-simetrico.service.ts +0 -29
  549. package/src/app/shared/servicios/general.service.ts +0 -124
  550. package/src/app/shared/servicios/parametros-navegacion.service.ts +0 -20
  551. package/src/app/shared/servicios/plantillas.service.ts +0 -22
  552. package/src/app/shared/servicios/tarea.service.ts +0 -71
  553. package/src/app/shared/utilidades/translate-loader.util.ts +0 -44
  554. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +0 -167
  555. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +0 -11
  556. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +0 -425
  557. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +0 -87
  558. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
  559. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +0 -189
  560. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +0 -117
  561. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
  562. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +0 -87
  563. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +0 -158
  564. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +0 -6
  565. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +0 -345
  566. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +0 -131
  567. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
  568. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +0 -198
  569. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +0 -206
  570. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +0 -3
  571. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +0 -329
  572. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +0 -2114
  573. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +0 -241
  574. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +0 -1677
  575. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +0 -33
  576. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
  577. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +0 -96
  578. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +0 -54
  579. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
  580. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +0 -111
  581. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +0 -394
  582. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +0 -10
  583. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +0 -599
  584. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +0 -130
  585. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
  586. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +0 -172
  587. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +0 -376
  588. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +0 -5
  589. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +0 -749
  590. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +0 -145
  591. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
  592. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +0 -302
  593. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +0 -19
  594. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
  595. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +0 -89
  596. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +0 -714
  597. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
  598. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +0 -688
  599. package/src/app/webcommon/pipes/dashboard.pipe.ts +0 -79
  600. package/src/app/webcommon/pipes/fuente.pipe.ts +0 -207
  601. package/src/app/webcommon/pipes/general.pipe.ts +0 -1043
  602. package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +0 -101
  603. package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +0 -306
  604. package/src/app/webcommon/pipes/sara-general.pipe.ts +0 -289
  605. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +0 -90
  606. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
  607. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +0 -262
  608. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +0 -50
  609. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
  610. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +0 -135
  611. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +0 -41
  612. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
  613. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +0 -283
  614. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +0 -179
  615. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +0 -3
  616. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +0 -266
  617. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +0 -261
  618. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +0 -13
  619. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +0 -519
  620. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +0 -10
  621. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +0 -5
  622. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +0 -58
  623. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +0 -71
  624. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
  625. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +0 -151
  626. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +0 -11
  627. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
  628. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +0 -82
  629. package/src/app/webcommon/services/carguelinea.service.ts +0 -72
  630. package/src/app/webcommon/services/dashboard.service.ts +0 -258
  631. package/src/app/webcommon/services/ejecucionreporte.service.ts +0 -160
  632. package/src/app/webcommon/services/fechaUtils.service.ts +0 -117
  633. package/src/app/webcommon/services/fuentegeneral.service.ts +0 -74
  634. package/src/app/webcommon/services/homologacion.service.ts +0 -49
  635. package/src/app/webcommon/services/plantillas.service.ts +0 -165
  636. package/src/app/webcommon/services/reportes.service.ts +0 -133
  637. package/src/app/webcommon/webcommon.module.ts +0 -11
  638. package/src/environments/environment.prod.ts +0 -3
  639. package/src/environments/environment.ts +0 -25
  640. package/src/favicon.ico +0 -0
  641. package/src/index.html +0 -14
  642. package/src/main.ts +0 -12
  643. package/src/polyfills.ts +0 -53
  644. package/src/test.ts +0 -14
  645. package/tsconfig.app.json +0 -15
  646. package/tsconfig.json +0 -35
  647. package/tsconfig.spec.json +0 -18
@@ -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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c0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaW1lb3V0RXJyb3IsIGNhdGNoRXJyb3IsIGZpcnN0VmFsdWVGcm9tLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JJbnRlY2VydG9yU2VydmljZSB9IGZyb20gJy4vZXJyb3ItaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBlcnJvckludGVyY2VwdG9yIDogRXJyb3JJbnRlY2VydG9yU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvcikge1xuICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ0VsIHNlcnZpY2lvIG5vIGVzdMOhIGRpc3BvbmlibGUuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KSk7XG4gICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZGFcbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnRVJSX0NPTk5FQ1RJT05fUkVGVVNFRCcpKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ySW50ZXJjZXB0b3Iuc2hvd0Vycm9yKEpTT04uc3RyaW5naWZ5KHt0aXBvOiAnRVJSJywgdHJhemE6ICcuJywgbWVuc2FqZTogJ0VsIHNlcnZpY2lvIG5vIGVzdMOhIGRpc3BvbmlibGUuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoe3RpcG86ICdFUlInLCB0cmF6YTogJy4nLCBtZW5zYWplOiAnU2UgcHJvZHVqbyB1biBlcnJvciBkZSByZWQuIFBvciBmYXZvciwgaW50w6ludGVsbyBtw6FzIHRhcmRlLid9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5lcnJvckludGVyY2VwdG9yLnNob3dFcnJvcihKU09OLnN0cmluZ2lmeSh7dGlwbzogJ0VSUicsIHRyYXphOiAnLicsIG1lbnNhamU6ICdTZSBwcm9kdWpvIHVuIGVycm9yIGRlIHJlZC4gUG9yIGZhdm9yLCBpbnTDqW50ZWxvIG3DoXMgdGFyZGUuJ30pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgSFRUUDogJHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgIC8vTGxhbWFkbyBhIGludGVyY2VwdG9yXG4gICAgICAgIHRoaXMuZXJyb3JJbnRlcmNlcHRvci5zaG93RXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpKTtcbiAgICAgICAgLy8gQSBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yIG9jY3VycmVkLiBIYW5kbGUgaXQgYWNjb3JkaW5nbHkuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkOicsIGVycm9yLmVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBiYWNrZW5kIHJldHVybmVkIGFuIHVuc3VjY2Vzc2Z1bCByZXNwb25zZSBjb2RlLlxuICAgICAgICAvLyBUaGUgcmVzcG9uc2UgYm9keSBtYXkgY29udGFpbiBjbHVlcyBhcyB0byB3aGF0IHdlbnQgd3JvbmcuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYEJhY2tlbmQgcmV0dXJuZWQgY29kZSAke2Vycm9yLnN0YXR1c30sIGJvZHkgd2FzOiBgLCBlcnJvci5lcnJvcik7XG4gICAgICB9XG4gICAgICAvLyBSZXR1cm4gYW4gb2JzZXJ2YWJsZSB3aXRoIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZS5cbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignU29tZXRoaW5nIGJhZCBoYXBwZW5lZDsgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKSk7XG4gICAgfVxuXG5cbiAgYXN5bmMgZ2V0VGVtcGxhdGVDb2xvcih1cmxhcGludWNsZW8sIGNvZGlnb0FwbGljYWNpb24sIG5vbWJyZUFwbGljYWNpb24pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJykpe1xuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgndXJsbnVjbGVvJywgdXJsYXBpbnVjbGVvKVxuICAgIH1cbiAgICBjb25zdCBjb2xvciA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY29sb3InKTtcbiAgICB2YXIgYmFzZVBvcnRhbDogc3RyaW5nID0gdGhpcy51dGlsc1NlcnZpY2Uub2J0ZW5lckJhc2UoKTtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuZW5kc1dpdGgoJ25vdC1mb3VuZCcpKSB7XG4gICAgICByZXR1cm4gXCIjRjE3MTBDXCI7XG4gICAgfVxuICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZW5lcmFyVG9rZW5QdWJsaWNvKHVybGFwaW51Y2xlbykudG9Qcm9taXNlKCk7XG4gICAgdmFyIGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7ZGF0YS50b2tlbn1gKS5zZXQoJ0Jhc2UnLCBiYXNlUG9ydGFsKTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICBjb25zdCB1cmwgPSBgJHt1cmxhcGludWNsZW99L2F1dGhlbnRpY2F0aW9uL2luaWNpb2A7XG4gICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ251bWVyb0FwbGljYWNpb24nLCBjb2RpZ29BcGxpY2FjaW9uKTtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RpcG8nLCAnY29sb3InKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5odHRwLmdldCh1cmwsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IGhlYWRlcnMgfSApLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICkudG9Qcm9taXNlKCk7XG4gICAgICBjb25zdCBuZXdDb2xvciA9IChyZXNwb25zZSBhcyBhbnkpPy5jb2xvcmVzPy5jb2xvcjE7XG5cbiAgICAgIGlmIChuZXdDb2xvcikge1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2NvbG9yJywgbmV3Q29sb3IpO1xuICAgICAgICByZXR1cm4gbmV3Q29sb3I7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnI2ZmZmZmZic7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,120 @@
1
+ import { Injectable } from '@angular/core';
2
+ import Swal from 'sweetalert2';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/api";
5
+ import * as i2 from "./utils.service";
6
+ export class ToastService {
7
+ messageService;
8
+ utilsService;
9
+ _delay = 10000;
10
+ constructor(messageService, utilsService) {
11
+ this.messageService = messageService;
12
+ this.utilsService = utilsService;
13
+ }
14
+ /**
15
+ * Muestra el toast con el mensaje de éxito enviado.
16
+ * @param message
17
+ * @param title
18
+ */
19
+ showSuccess(message, title) {
20
+ this._showMessage('success', title ?? 'OK', message);
21
+ }
22
+ /**
23
+ * Muestra el toast con el mensaje informativo enviado.
24
+ * @param message
25
+ * @param title
26
+ */
27
+ showInfo(message, title) {
28
+ this._showMessage('success', title ?? 'Ok', message);
29
+ }
30
+ /**
31
+ * Muestra el toast con el mensaje de advertencia enviado.
32
+ * @param message
33
+ * @param title
34
+ */
35
+ showWarningPopup(message, title) {
36
+ message = message.replace(/\n/g, '<br/>');
37
+ let contenidoHtml = `<p class="msjError" stye="text-align: left;">${message}</p>`;
38
+ Swal.fire({
39
+ title: `<span style="color: var(--color-700);">${title ? title : 'Información'}</span>`,
40
+ html: contenidoHtml,
41
+ icon: 'success',
42
+ showCancelButton: false,
43
+ showCloseButton: true,
44
+ showConfirmButton: true,
45
+ didOpen: () => {
46
+ const OkButton = document.getElementById('Ok');
47
+ OkButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-ok');
48
+ OkButton.addEventListener('click', () => {
49
+ Swal.close();
50
+ this.utilsService.sleep(500).then(data => {
51
+ this.utilsService.resizeWindowIFrame();
52
+ });
53
+ });
54
+ },
55
+ }).then((result) => {
56
+ if (result.isConfirmed) {
57
+ this.utilsService.sleep(500).then(data => {
58
+ this.utilsService.resizeWindowIFrame();
59
+ });
60
+ }
61
+ else if (result.dismiss === Swal.DismissReason.cancel) {
62
+ this.utilsService.sleep(500).then(data => {
63
+ this.utilsService.resizeWindowIFrame();
64
+ });
65
+ }
66
+ else if (result.dismiss === Swal.DismissReason.close) {
67
+ this.utilsService.sleep(500).then(data => {
68
+ this.utilsService.resizeWindowIFrame();
69
+ });
70
+ }
71
+ });
72
+ }
73
+ /**
74
+ * Muestra el toast con el mensaje de advertencia enviado.
75
+ * @param message
76
+ * @param title
77
+ */
78
+ showWarning(message, title) {
79
+ this._showMessage('warn', title ?? 'Advertencia', message);
80
+ }
81
+ /**
82
+ * Muestra el toast con el mensaje de error enviado.
83
+ * @param message
84
+ * @param title
85
+ */
86
+ showError(message, title) {
87
+ this._showMessage('error', title ?? 'Error', message);
88
+ }
89
+ /**
90
+ * Agregar un mensaje al servicio para que el toast lo muestre.
91
+ * @param severity success | info | warn | error
92
+ * @param title
93
+ * @param message
94
+ */
95
+ _showMessage(severity, title, message) {
96
+ console.log('_showMessage');
97
+ console.log(window['env']['codigoAplicacion']);
98
+ if ('10' == window['env']['codigoAplicacion']) {
99
+ window.parent.postMessage({ type: 'toast', data: { severity: severity, summary: title, detail: message } }, '*');
100
+ }
101
+ else {
102
+ this.messageService.add({
103
+ severity: severity,
104
+ summary: title,
105
+ detail: message,
106
+ life: this._delay,
107
+ styleClass: 'toast-salto-linea'
108
+ });
109
+ }
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ToastService, deps: [{ token: i1.MessageService }, { token: i2.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ToastService, providedIn: 'root' });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ToastService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root',
118
+ }]
119
+ }], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.UtilsService }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7OztBQU0vQixNQUFNLE9BQU8sWUFBWTtJQUdIO0lBQXdDO0lBRnBELE1BQU0sR0FBVyxLQUFLLENBQUM7SUFFL0IsWUFBb0IsY0FBOEIsRUFBVSxZQUEwQjtRQUFsRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFMUY7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLE9BQWUsRUFBRSxLQUFjO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUM5QyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxhQUFhLEdBQUcsZ0RBQWdELE9BQU8sTUFBTSxDQUFBO1FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixLQUFLLEVBQUMsMENBQTBDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLFNBQVM7WUFDdEYsSUFBSSxFQUFFLGFBQWE7WUFDbkIs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QUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEgsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxPQUFPO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDakIsVUFBVSxFQUFFLG1CQUFtQjthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBRUgsQ0FBQzt1R0F4R1UsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbHMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIF9kZWxheTogbnVtYmVyID0gMTAwMDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIE11ZXN0cmEgZWwgdG9hc3QgY29uIGVsIG1lbnNhamUgZGUgw6l4aXRvIGVudmlhZG8uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqIEBwYXJhbSB0aXRsZVxuICAgKi9cbiAgc2hvd1N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3Nob3dNZXNzYWdlKCdzdWNjZXNzJywgdGl0bGUgPz8gJ09LJywgbWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogTXVlc3RyYSBlbCB0b2FzdCBjb24gZWwgbWVuc2FqZSBpbmZvcm1hdGl2byBlbnZpYWRvLlxuICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgKiBAcGFyYW0gdGl0bGVcbiAgICovXG4gIHNob3dJbmZvKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zaG93TWVzc2FnZSgnc3VjY2VzcycsIHRpdGxlID8/ICdPaycsIG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11ZXN0cmEgZWwgdG9hc3QgY29uIGVsIG1lbnNhamUgZGUgYWR2ZXJ0ZW5jaWEgZW52aWFkby5cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICogQHBhcmFtIHRpdGxlXG4gICAqL1xuICBzaG93V2FybmluZ1BvcHVwKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXG4vZywgJzxici8+Jyk7XG4gICAgbGV0IGNvbnRlbmlkb0h0bWwgPSBgPHAgY2xhc3M9XCJtc2pFcnJvclwiIHN0eWU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPiR7bWVzc2FnZX08L3A+YFxuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTpgPHNwYW4gc3R5bGU9XCJjb2xvcjogdmFyKC0tY29sb3ItNzAwKTtcIj4ke3RpdGxlID8gdGl0bGUgOiAnSW5mb3JtYWNpw7NuJ308L3NwYW4+YCxcbiAgICAgIGh0bWw6IGNvbnRlbmlkb0h0bWwsXG4gICAgICBpY29uOiAnc3VjY2VzcycsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiB0cnVlLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IE9rQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ09rJyk7XG4gICAgICAgICAgT2tCdXR0b24uY2xhc3NMaXN0LmFkZCgnc3dhbDItc3R5bGVkJywgJ3N3YWwyLWNhbmNlbCcsICdidG4tb2snKTtcbiAgICAgICAgICBPa0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnNsZWVwKDUwMCkudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcbiAgICAgICAgdGhpcy51dGlsc1NlcnZpY2Uuc2xlZXAoNTAwKS50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xuICAgICAgICB0aGlzLnV0aWxzU2VydmljZS5zbGVlcCg1MDApLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kaXNtaXNzID09PSBTd2FsLkRpc21pc3NSZWFzb24uY2xvc2UpIHtcbiAgICAgICAgdGhpcy51dGlsc1NlcnZpY2Uuc2xlZXAoNTAwKS50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE11ZXN0cmEgZWwgdG9hc3QgY29uIGVsIG1lbnNhamUgZGUgYWR2ZXJ0ZW5jaWEgZW52aWFkby5cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICogQHBhcmFtIHRpdGxlXG4gICAqL1xuICBzaG93V2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc2hvd01lc3NhZ2UoJ3dhcm4nLCB0aXRsZSA/PyAnQWR2ZXJ0ZW5jaWEnLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdWVzdHJhIGVsIHRvYXN0IGNvbiBlbCBtZW5zYWplIGRlIGVycm9yIGVudmlhZG8uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqIEBwYXJhbSB0aXRsZVxuICAgKi9cbiAgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zaG93TWVzc2FnZSgnZXJyb3InLCB0aXRsZSA/PyAnRXJyb3InLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ3JlZ2FyIHVuIG1lbnNhamUgYWwgc2VydmljaW8gcGFyYSBxdWUgZWwgdG9hc3QgbG8gbXVlc3RyZS5cbiAgICogQHBhcmFtIHNldmVyaXR5IHN1Y2Nlc3MgfCBpbmZvIHwgd2FybiB8IGVycm9yXG4gICAqIEBwYXJhbSB0aXRsZVxuICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2hvd01lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgdGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ19zaG93TWVzc2FnZScpXG4gICAgY29uc29sZS5sb2cod2luZG93WydlbnYnXVsnY29kaWdvQXBsaWNhY2lvbiddKVxuICAgIGlmICgnMTAnID09IHdpbmRvd1snZW52J11bJ2NvZGlnb0FwbGljYWNpb24nXSkge1xuICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7IHR5cGU6ICd0b2FzdCcsIGRhdGE6IHsgc2V2ZXJpdHk6IHNldmVyaXR5ICwgc3VtbWFyeTogdGl0bGUsIGRldGFpbDogbWVzc2FnZSB9IH0sICcqJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgc2V2ZXJpdHk6IHNldmVyaXR5LFxuICAgICAgICBzdW1tYXJ5OiB0aXRsZSxcbiAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICBsaWZlOiB0aGlzLl9kZWxheSxcbiAgICAgICAgc3R5bGVDbGFzczogJ3RvYXN0LXNhbHRvLWxpbmVhJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICB9XG59XG4iXX0=
@@ -0,0 +1,335 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-cookie-service";
5
+ export class UtilsService {
6
+ cookieService;
7
+ document;
8
+ RESERVADAS_SQL_NOPUEDECONTENER = [';'];
9
+ reservadas = ['ALTER', 'DELETE', 'DROP', 'MODIFY', 'CREATE', 'DATABASE', 'TABLE', 'UPDATE', 'TRIGGER', 'GRANT', 'REVOKE', 'CALL', 'INSERT', 'TRUNCATE', 'USE', '--'];
10
+ constructor(cookieService, document) {
11
+ this.cookieService = cookieService;
12
+ this.document = document;
13
+ }
14
+ generarLlave() {
15
+ let result = '';
16
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
17
+ const charactersLength = 32;
18
+ for (let i = 0; i < charactersLength; i++) {
19
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
20
+ }
21
+ return result.toLowerCase();
22
+ }
23
+ generarPin(cantidad) {
24
+ let result = '';
25
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
26
+ for (let i = 0; i < cantidad; i++) {
27
+ result += characters.charAt(Math.floor(Math.random() * cantidad));
28
+ }
29
+ return result.toLowerCase();
30
+ }
31
+ rightpad(str, length, char) {
32
+ if (str === undefined) {
33
+ return null;
34
+ }
35
+ if (typeof str !== 'string' || typeof length !== 'number') {
36
+ throw new TypeError('Los argumentos deben ser una cadena y un número.');
37
+ }
38
+ if (str.length >= length) {
39
+ return str;
40
+ }
41
+ char = char || ' '; // Utiliza un espacio como carácter de relleno si no se proporciona uno
42
+ var padLength = length - str.length;
43
+ var padding = char.repeat(padLength);
44
+ return str + padding;
45
+ }
46
+ validarCampoNumerico(event) {
47
+ const input = event.target;
48
+ const regex = /[^0-9]/gi;
49
+ input.value = input.value.replace(regex, '');
50
+ }
51
+ isNotBlank(str) {
52
+ return str != null && str.trim().length > 0;
53
+ }
54
+ isBlank(str) {
55
+ return str == null || str?.trim() === '';
56
+ }
57
+ validarCampoObligatorio(valor) {
58
+ // Verificar si el valor no es null ni undefined
59
+ if (valor !== null && valor !== undefined) {
60
+ // Verificar si el valor no es una cadena vacía (en caso de ser una cadena)
61
+ if (typeof valor === 'string' && valor.trim() === '') {
62
+ return false;
63
+ }
64
+ // Verificar si el valor no es un arreglo vacío (en caso de ser un arreglo)
65
+ if (Array.isArray(valor) && valor.length === 0) {
66
+ return false;
67
+ }
68
+ /*if (typeof valor === 'object' && Object.keys(valor).length === 0) {
69
+ return false;
70
+ }*/
71
+ return true;
72
+ }
73
+ return false;
74
+ }
75
+ capitalizeFully(inputString) {
76
+ if (!inputString) {
77
+ return '';
78
+ }
79
+ const words = inputString.split(' ');
80
+ const capitalizedWords = words.map(word => {
81
+ if (word.length > 0) {
82
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
83
+ }
84
+ return '';
85
+ });
86
+ const result = capitalizedWords.join(' ');
87
+ return result;
88
+ }
89
+ ordenarSelectItemsAlfabeticamente(arrayDeObjetos) {
90
+ arrayDeObjetos.sort((a, b) => {
91
+ const nombreA = a.label.toLowerCase();
92
+ const nombreB = b.label.toLowerCase();
93
+ if (nombreA < nombreB) {
94
+ return -1;
95
+ }
96
+ if (nombreA > nombreB) {
97
+ return 1;
98
+ }
99
+ return 0;
100
+ });
101
+ return arrayDeObjetos;
102
+ }
103
+ obtenerParametroDeURL(urlString, parametro) {
104
+ const url = new URL(urlString);
105
+ const searchParams = new URLSearchParams(url.search);
106
+ return searchParams.get(parametro);
107
+ }
108
+ validarEmail(email) {
109
+ const patronEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
110
+ return patronEmail.test(email);
111
+ }
112
+ obtenerBase() {
113
+ var basePortal = null;
114
+ var paginaActual = window.location.href;
115
+ var url = new URL(paginaActual);
116
+ var params = new URLSearchParams(url.search);
117
+ if (paginaActual.toString().includes('PortalSara')) {
118
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
119
+ basePortal = match.groups?.seguridad;
120
+ }
121
+ }
122
+ else if (params?.get('us_id')) {
123
+ paginaActual = window.parent.location.href;
124
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
125
+ basePortal = match.groups?.seguridad;
126
+ }
127
+ }
128
+ else {
129
+ const regex = /^.*?\/\/.*?\/(.*?)\//g; // Expresión regular para obtener la primera parte de la URL
130
+ const match = Array.from(paginaActual.matchAll(regex));
131
+ if (match && match[0] && match[0][1]) {
132
+ basePortal = match[0][1];
133
+ }
134
+ }
135
+ return basePortal;
136
+ }
137
+ validarEspacio(caracter) {
138
+ const regex = /\s/; // La expresión regular para espacios en blanco
139
+ return regex.test(caracter); // Devuelve true si el carácter es un espacio en blanco
140
+ }
141
+ validarTextoSQL(valor, obligatorio, select, longitud, validarSentencia) {
142
+ // Verifica obligatoriedad
143
+ if (obligatorio && (valor == null || valor.trim().length == 0 || valor == '--')) {
144
+ return 'Obligatorio';
145
+ }
146
+ // Verifica longitud máxima
147
+ if (longitud > 0) {
148
+ if (valor != null && valor != '--' && valor.length > longitud) {
149
+ return 'Longitud maxima de ' + longitud;
150
+ }
151
+ }
152
+ // Realiza las demás validacion solo en el caso de que la cadena SQL/valor no sea vacia
153
+ if (valor == null || valor.trim().length == 0 || valor == '--')
154
+ return null;
155
+ if (validarSentencia) {
156
+ if (select) {
157
+ if (!valor.toUpperCase().startsWith('SELECT')) {
158
+ return 'El texto debe iniciar con la palabra Select';
159
+ }
160
+ }
161
+ else {
162
+ if (valor.toUpperCase().includes('SELECT')) {
163
+ return 'No puede contener la palabra Select';
164
+ }
165
+ }
166
+ }
167
+ var indice;
168
+ var mensaje;
169
+ this.RESERVADAS_SQL_NOPUEDECONTENER.forEach(item => {
170
+ if (valor.includes(item)) {
171
+ mensaje = 'No puede contener ' + item;
172
+ }
173
+ });
174
+ this.reservadas.forEach(item => {
175
+ if (valor.toUpperCase().includes(item.toUpperCase())) {
176
+ indice = (valor.toUpperCase().indexOf(item.toUpperCase()));
177
+ if (indice == 0 || (this.validarEspacio(valor.charAt(indice - 1)) && this.validarEspacio(valor.charAt(item.length + indice)))) {
178
+ mensaje = 'No puede contener ' + item;
179
+ }
180
+ }
181
+ });
182
+ return mensaje;
183
+ }
184
+ sleep(ms) {
185
+ return new Promise((resolve) => setTimeout(resolve, ms));
186
+ }
187
+ validarTextoArchivoJasper(texto) {
188
+ if (texto.trim() == '' || texto == null) {
189
+ return "El campo no puede estar vacio";
190
+ }
191
+ if (texto.match("^[^\\D].*")) {
192
+ return "El campo no puede iniciar con numeros";
193
+ }
194
+ if (texto.match("^[^\\S].*")) {
195
+ return "El campo no puede iniciar con caracteres en blanco";
196
+ }
197
+ if (!texto.match("^[^\\W].*")) {
198
+ return "El campo no puede iniciar con caracteres especiales";
199
+ }
200
+ return null;
201
+ }
202
+ resizeWindowIFrame() {
203
+ if (window.frameElement != null) {
204
+ this.resizeIframeKeepPosition(window.frameElement);
205
+ }
206
+ }
207
+ /**
208
+ * Funcion para mantener la posición actual en el iframe.
209
+ * @param obj es un "FrameElement"
210
+ */
211
+ resizeIframeKeepPosition(obj) {
212
+ var ifrm = obj;
213
+ var doc = ifrm.contentDocument ? ifrm.contentDocument : ifrm.contentWindow.document;
214
+ var tamanio = this.getDocHeight(doc) + 40;
215
+ ifrm.style.height = tamanio + "px";
216
+ }
217
+ getDocHeight(doc) {
218
+ console.log('getDocHeight');
219
+ let navegador = this.obtenerNavegador().toLowerCase();
220
+ var height = 0;
221
+ doc = doc || document;
222
+ const appRoot = doc.querySelector('app-root');
223
+ const swalPopup = doc.querySelector('.swal2-popup');
224
+ if (swalPopup) {
225
+ return swalPopup.offsetHeight + 40;
226
+ }
227
+ // Si encuentra el elemento <app-root>, retorna su altura
228
+ if (appRoot) {
229
+ return appRoot.offsetHeight;
230
+ }
231
+ //var body = doc.body, html = doc.documentElement;
232
+ //height = Math.max( body.scrollHeight, body.offsetHeight,
233
+ //html.clientHeight, html.scrollHeight, html.offsetHeight );
234
+ if (navegador.indexOf('firefox') !== -1) {
235
+ if (doc.formDetalleConvocatoria) {
236
+ let cantidadMiles = height / 1000;
237
+ height = height + 600 + (cantidadMiles * 40);
238
+ }
239
+ }
240
+ // console.warn('FCO : llama a getDocHeight');
241
+ return height;
242
+ }
243
+ obtenerNavegador() {
244
+ var ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
245
+ if (/trident/i.test(M[1])) {
246
+ tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
247
+ return 'IE ' + (tem[1] || '');
248
+ }
249
+ if (M[1] === 'Chrome') {
250
+ tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
251
+ if (tem != null)
252
+ return tem.slice(1).join(' ').replace('OPR', 'Opera');
253
+ }
254
+ M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
255
+ if ((tem = ua.match(/version\/(\d+)/i)) != null)
256
+ M.splice(1, 1, tem[1]);
257
+ return M.join(' ');
258
+ }
259
+ obtenerUrlApi(urlapi) {
260
+ if (urlapi) {
261
+ return urlapi;
262
+ }
263
+ switch (this.getTokenKey('aplicacion')) {
264
+ case '1':
265
+ return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');
266
+ case '13':
267
+ return window['env']['urlapimana'] ? window['env']['urlapimana'] : this.cookieService.get('urlnucleo');
268
+ case '10':
269
+ return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');
270
+ //return window['env']['urlapi'] ? window['env']['urlapi'] : this.cookieService.get('urlnucleo');
271
+ case '77':
272
+ return window['env']['urlapimanaaps'] ? window['env']['urlapimanaaps'] : this.cookieService.get('urlnucleo');
273
+ default:
274
+ return this.cookieService.get('urlnucleo');
275
+ }
276
+ }
277
+ getTokenKey(key) {
278
+ try {
279
+ const data = this._decodeToken();
280
+ return data[key].toString();
281
+ }
282
+ catch (error) {
283
+ return undefined;
284
+ }
285
+ }
286
+ _decodeToken() {
287
+ try {
288
+ const token = this.getItem('token', '');
289
+ const data = token.split('.')[1];
290
+ return JSON.parse(atob(data));
291
+ }
292
+ catch (error) {
293
+ throw error;
294
+ }
295
+ }
296
+ getItem(key, defaultValue) {
297
+ return localStorage.getItem(this.obtenerBase() + '_' + key) ?? defaultValue;
298
+ }
299
+ cambiarTema(tema) {
300
+ localStorage.setItem(this.obtenerBase() + '_' + 'tema', tema);
301
+ let linkTema = this.document.getElementById('temaApp');
302
+ linkTema.href = `${tema}.css`;
303
+ }
304
+ calcularPosicionDialog() {
305
+ var parentWindow = window.parent;
306
+ var obj = window.frameElement;
307
+ var ifrm = obj;
308
+ if (ifrm) {
309
+ const scrollTop = parentWindow.pageYOffset || parentWindow.document.documentElement.scrollTop || parentWindow.document.body.scrollTop || 0;
310
+ const dialog = document.querySelector('.p-dialog');
311
+ if (dialog) {
312
+ const scrollHeight = parentWindow.document.documentElement.scrollHeight;
313
+ const mitadScrollHeight = scrollHeight / 2;
314
+ const inicio = -mitadScrollHeight;
315
+ dialog.style.top = `${inicio + 50 + (scrollTop)}px`;
316
+ }
317
+ }
318
+ }
319
+ validarPalabra(texto) {
320
+ const pletras = /^[a-zA-Z][0-9a-zA-Z]*$/;
321
+ return pletras.test(texto);
322
+ }
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, deps: [{ token: i1.CookieService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
324
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, providedIn: 'root' });
325
+ }
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, decorators: [{
327
+ type: Injectable,
328
+ args: [{
329
+ providedIn: 'root'
330
+ }]
331
+ }], ctorParameters: () => [{ type: i1.CookieService }, { type: Document, decorators: [{
332
+ type: Inject,
333
+ args: [DOCUMENT]
334
+ }] }] });
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBQXdEO0lBSHBFLDhCQUE4QixHQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsVUFBVSxHQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFbkwsWUFBb0IsYUFBNEIsRUFBNEIsUUFBa0I7UUFBMUUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5RixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxVQUFVLEdBQUcsZ0VBQWdFLENBQUM7UUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxP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aldVLFlBQVksK0NBS21DLFFBQVE7MkdBTHZELFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTW9ELE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFV0aWxzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBSRVNFUlZBREFTX1NRTF9OT1BVRURFQ09OVEVORVI6IGFueVtdID0gWyc7J11cbiAgcHJpdmF0ZSByZXNlcnZhZGFzOiBhbnlbXSA9IFsnQUxURVInLCAnREVMRVRFJywgJ0RST1AnLCAnTU9ESUZZJywgJ0NSRUFURScsICdEQVRBQkFTRScsICdUQUJMRScsICdVUERBVEUnLCAnVFJJR0dFUicsICdHUkFOVCcsICdSRVZPS0UnLCAnQ0FMTCcsICdJTlNFUlQnLCAnVFJVTkNBVEUnLCAnVVNFJywgJy0tJ11cbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZSwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsKXtcbiAgfVxuICBcbiAgcHVibGljIGdlbmVyYXJMbGF2ZSgpIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IDMyO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhcmFjdGVyc0xlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgZ2VuZXJhclBpbihjYW50aWRhZDogbnVtYmVyKSB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FudGlkYWQ7IGkrKykge1xuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNhbnRpZGFkKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcmlnaHRwYWQoc3RyLCBsZW5ndGgsIGNoYXIpIHtcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGxlbmd0aCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0xvcyBhcmd1bWVudG9zIGRlYmVuIHNlciB1bmEgY2FkZW5hIHkgdW4gbsO6bWVyby4nKTtcbiAgICB9XG5cbiAgICBpZiAoc3RyLmxlbmd0aCA+PSBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgY2hhciA9IGNoYXIgfHwgJyAnOyAvLyBVdGlsaXphIHVuIGVzcGFjaW8gY29tbyBjYXLDoWN0ZXIgZGUgcmVsbGVubyBzaSBubyBzZSBwcm9wb3JjaW9uYSB1bm9cblxuICAgIHZhciBwYWRMZW5ndGggPSBsZW5ndGggLSBzdHIubGVuZ3RoO1xuICAgIHZhciBwYWRkaW5nID0gY2hhci5yZXBlYXQocGFkTGVuZ3RoKTtcblxuICAgIHJldHVybiBzdHIgKyBwYWRkaW5nO1xuICB9XG5cbiAgdmFsaWRhckNhbXBvTnVtZXJpY28oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHJlZ2V4ID0gL1teMC05XS9naTtcbiAgICBpbnB1dC52YWx1ZSA9IGlucHV0LnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcbiAgfVxuXG4gIGlzTm90Qmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ciAhPSBudWxsICYmIHN0ci50cmltKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGlzQmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ciA9PSBudWxsIHx8IHN0cj8udHJpbSgpID09PSAnJztcbiAgfVxuXG4gIHZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKHZhbG9yKTogYm9vbGVhbiB7XG4gICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIG51bGwgbmkgdW5kZWZpbmVkXG4gICAgaWYgKHZhbG9yICE9PSBudWxsICYmIHZhbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyB1bmEgY2FkZW5hIHZhY8OtYSAoZW4gY2FzbyBkZSBzZXIgdW5hIGNhZGVuYSlcbiAgICAgIGlmICh0eXBlb2YgdmFsb3IgPT09ICdzdHJpbmcnICYmIHZhbG9yLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIHVuIGFycmVnbG8gdmFjw61vIChlbiBjYXNvIGRlIHNlciB1biBhcnJlZ2xvKVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsb3IpICYmIHZhbG9yLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvKmlmICh0eXBlb2YgdmFsb3IgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbG9yKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSovXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY2FwaXRhbGl6ZUZ1bGx5KGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgd29yZHMgPSBpbnB1dFN0cmluZy5zcGxpdCgnICcpO1xuICAgIGNvbnN0IGNhcGl0YWxpemVkV29yZHMgPSB3b3Jkcy5tYXAod29yZCA9PiB7XG4gICAgICBpZiAod29yZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhcGl0YWxpemVkV29yZHMuam9pbignICcpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBvcmRlbmFyU2VsZWN0SXRlbXNBbGZhYmV0aWNhbWVudGUoYXJyYXlEZU9iamV0b3M6IGFueVtdKTogYW55W10ge1xuICAgIGFycmF5RGVPYmpldG9zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5vbWJyZUEgPSBhLmxhYmVsLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBub21icmVCID0gYi5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAobm9tYnJlQSA8IG5vbWJyZUIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYgKG5vbWJyZUEgPiBub21icmVCKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFycmF5RGVPYmpldG9zO1xuICB9XG5cbiAgb2J0ZW5lclBhcmFtZXRyb0RlVVJMKHVybFN0cmluZzogc3RyaW5nLCBwYXJhbWV0cm86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodXJsU3RyaW5nKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2gpO1xuICAgIHJldHVybiBzZWFyY2hQYXJhbXMuZ2V0KHBhcmFtZXRybyk7XG4gIH1cblxuICB2YWxpZGFyRW1haWwoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhdHJvbkVtYWlsID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvO1xuICAgIHJldHVybiBwYXRyb25FbWFpbC50ZXN0KGVtYWlsKTtcbiAgfVxuXG4gIG9idGVuZXJCYXNlKCk6IChzdHJpbmcgfCBudWxsKSB7XG5cbiAgICB2YXIgYmFzZVBvcnRhbDogc3RyaW5nID0gbnVsbDtcbiAgICB2YXIgcGFnaW5hQWN0dWFsOiBhbnkgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIHZhciB1cmwgPSBuZXcgVVJMKHBhZ2luYUFjdHVhbCk7XG4gICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsLnNlYXJjaCk7XG4gICAgaWYgKHBhZ2luYUFjdHVhbC50b1N0cmluZygpLmluY2x1ZGVzKCdQb3J0YWxTYXJhJykpIHtcbiAgICAgIGZvciAodmFyIG1hdGNoIG9mIHBhZ2luYUFjdHVhbC5tYXRjaEFsbCgvKD88aW5pY2lvPi4qKVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XG4gICAgICAgIGJhc2VQb3J0YWwgPSBtYXRjaC5ncm91cHM/LnNlZ3VyaWRhZDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBhcmFtcz8uZ2V0KCd1c19pZCcpKSB7XG4gICAgICBwYWdpbmFBY3R1YWwgPSB3aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWY7XG4gICAgICBmb3IgKHZhciBtYXRjaCBvZiBwYWdpbmFBY3R1YWwubWF0Y2hBbGwoLyg/PGluaWNpbz4uKilcXC8oPzxzZWd1cmlkYWQ+LiopXFwvKD88c2l0aW8+LiopXFwvKD88cGFnaW5hPi4qKS9nKSkge1xuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2guZ3JvdXBzPy5zZWd1cmlkYWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14uKj9cXC9cXC8uKj9cXC8oLio/KVxcLy9nOyAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBvYnRlbmVyIGxhIHByaW1lcmEgcGFydGUgZGUgbGEgVVJMXG4gICAgICBjb25zdCBtYXRjaCA9IEFycmF5LmZyb20ocGFnaW5hQWN0dWFsLm1hdGNoQWxsKHJlZ2V4KSk7XG5cbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXSAmJiBtYXRjaFswXVsxXSkge1xuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2hbMF1bMV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlUG9ydGFsO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGFyRXNwYWNpbyhjYXJhY3Rlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnZXggPSAvXFxzLzsgLy8gTGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgZXNwYWNpb3MgZW4gYmxhbmNvXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoY2FyYWN0ZXIpOyAvLyBEZXZ1ZWx2ZSB0cnVlIHNpIGVsIGNhcsOhY3RlciBlcyB1biBlc3BhY2lvIGVuIGJsYW5jb1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXJUZXh0b1NRTCh2YWxvcjogc3RyaW5nLCBvYmxpZ2F0b3JpbzogYm9vbGVhbiwgc2VsZWN0OiBib29sZWFuLCBsb25naXR1ZDogbnVtYmVyLCB2YWxpZGFyU2VudGVuY2lhOiBib29sZWFuKTogKHN0cmluZyB8IG51bGwpIHtcbiAgICAvLyBWZXJpZmljYSBvYmxpZ2F0b3JpZWRhZFxuICAgIGlmIChvYmxpZ2F0b3JpbyAmJiAodmFsb3IgPT0gbnVsbCB8fCB2YWxvci50cmltKCkubGVuZ3RoID09IDAgfHwgdmFsb3IgPT0gJy0tJykpIHtcbiAgICAgIHJldHVybiAnT2JsaWdhdG9yaW8nO1xuICAgIH1cbiAgICAvLyBWZXJpZmljYSBsb25naXR1ZCBtw6F4aW1hXG4gICAgaWYgKGxvbmdpdHVkID4gMCkge1xuICAgICAgaWYgKHZhbG9yICE9IG51bGwgJiYgdmFsb3IgIT0gJy0tJyAmJiB2YWxvci5sZW5ndGggPiBsb25naXR1ZCkge1xuICAgICAgICByZXR1cm4gJ0xvbmdpdHVkIG1heGltYSBkZSAnICsgbG9uZ2l0dWQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFJlYWxpemEgbGFzIGRlbcOhcyB2YWxpZGFjaW9uIHNvbG8gZW4gZWwgY2FzbyBkZSBxdWUgbGEgY2FkZW5hIFNRTC92YWxvciBubyBzZWEgdmFjaWFcbiAgICBpZiAodmFsb3IgPT0gbnVsbCB8fCB2YWxvci50cmltKCkubGVuZ3RoID09IDAgfHwgdmFsb3IgPT0gJy0tJylcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgaWYgKHZhbGlkYXJTZW50ZW5jaWEpIHtcbiAgICAgIGlmIChzZWxlY3QpIHtcbiAgICAgICAgaWYgKCF2YWxvci50b1VwcGVyQ2FzZSgpLnN0YXJ0c1dpdGgoJ1NFTEVDVCcpKSB7XG4gICAgICAgICAgcmV0dXJuICdFbCB0ZXh0byBkZWJlIGluaWNpYXIgY29uIGxhIHBhbGFicmEgU2VsZWN0JztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1NFTEVDVCcpKSB7XG4gICAgICAgICAgcmV0dXJuICdObyBwdWVkZSBjb250ZW5lciBsYSBwYWxhYnJhIFNlbGVjdCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGluZGljZTogbnVtYmVyO1xuICAgIHZhciBtZW5zYWplOiBzdHJpbmc7XG4gICAgdGhpcy5SRVNFUlZBREFTX1NRTF9OT1BVRURFQ09OVEVORVIuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICh2YWxvci5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICBtZW5zYWplID0gJ05vIHB1ZWRlIGNvbnRlbmVyICcgKyBpdGVtO1xuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5yZXNlcnZhZGFzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAodmFsb3IudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhpdGVtLnRvVXBwZXJDYXNlKCkpKSB7XG4gICAgICAgIGluZGljZSA9ICh2YWxvci50b1VwcGVyQ2FzZSgpLmluZGV4T2YoaXRlbS50b1VwcGVyQ2FzZSgpKSk7XG4gICAgICAgIGlmIChpbmRpY2UgPT0gMCB8fCAodGhpcy52YWxpZGFyRXNwYWNpbyh2YWxvci5jaGFyQXQoaW5kaWNlIC0gMSkpICYmIHRoaXMudmFsaWRhckVzcGFjaW8odmFsb3IuY2hhckF0KGl0ZW0ubGVuZ3RoICsgaW5kaWNlKSkpKSB7XG4gICAgICAgICAgbWVuc2FqZSA9ICdObyBwdWVkZSBjb250ZW5lciAnICsgaXRlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIG1lbnNhamU7XG4gIH1cblxuICBzbGVlcChtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gIH1cblxuICB2YWxpZGFyVGV4dG9BcmNoaXZvSmFzcGVyKHRleHRvOiBzdHJpbmcpOiAoc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0ZXh0by50cmltKCkgPT0gJycgfHwgdGV4dG8gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgZXN0YXIgdmFjaW9cIjtcbiAgICB9XG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXERdLipcIikpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIG51bWVyb3NcIjtcbiAgICB9XG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXFNdLipcIikpIHtcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIGNhcmFjdGVyZXMgZW4gYmxhbmNvXCI7XG4gICAgfVxuICAgIGlmICghdGV4dG8ubWF0Y2goXCJeW15cXFxcV10uKlwiKSkge1xuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gY2FyYWN0ZXJlcyBlc3BlY2lhbGVzXCI7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVzaXplV2luZG93SUZyYW1lKCkge1xuXHRcdGlmICggd2luZG93LmZyYW1lRWxlbWVudCAhPSBudWxsKSB7XG5cdFx0XHR0aGlzLnJlc2l6ZUlmcmFtZUtlZXBQb3NpdGlvbih3aW5kb3cuZnJhbWVFbGVtZW50KTtcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBGdW5jaW9uIHBhcmEgbWFudGVuZXIgbGEgcG9zaWNpw7NuIGFjdHVhbCBlbiBlbCBpZnJhbWUuXG5cdCAqIEBwYXJhbSBvYmogZXMgdW4gXCJGcmFtZUVsZW1lbnRcIlxuXHQgKi9cblx0cHJpdmF0ZSByZXNpemVJZnJhbWVLZWVwUG9zaXRpb24ob2JqKSB7XG5cdFx0XG5cdFx0dmFyIGlmcm0gPSBvYmo7XG5cdFx0dmFyIGRvYyA9IGlmcm0uY29udGVudERvY3VtZW50ID8gaWZybS5jb250ZW50RG9jdW1lbnQ6IGlmcm0uY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICB2YXIgdGFtYW5pbzogbnVtYmVyPSAgdGhpcy5nZXREb2NIZWlnaHQoIGRvYyApICArIDQwXG5cdFx0aWZybS5zdHlsZS5oZWlnaHQgPSB0YW1hbmlvICsgXCJweFwiO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREb2NIZWlnaHQoZG9jKXtcbiAgICBjb25zb2xlLmxvZygnZ2V0RG9jSGVpZ2h0Jylcblx0XHRsZXQgbmF2ZWdhZG9yID0gdGhpcy5vYnRlbmVyTmF2ZWdhZG9yKCkudG9Mb3dlckNhc2UoKTtcblx0XHR2YXIgaGVpZ2h0ID0gMDtcblx0XHRkb2MgPSBkb2MgfHwgZG9jdW1lbnQ7XG4gICAgY29uc3QgYXBwUm9vdCA9IGRvYy5xdWVyeVNlbGVjdG9yKCdhcHAtcm9vdCcpO1xuXG4gICAgY29uc3Qgc3dhbFBvcHVwID0gZG9jLnF1ZXJ5U2VsZWN0b3IoJy5zd2FsMi1wb3B1cCcpO1xuICAgIGlmIChzd2FsUG9wdXApIHtcbiAgICAgICAgcmV0dXJuIHN3YWxQb3B1cC5vZmZzZXRIZWlnaHQgKyA0MDtcbiAgICB9XG5cbiAgICAvLyBTaSBlbmN1ZW50cmEgZWwgZWxlbWVudG8gPGFwcC1yb290PiwgcmV0b3JuYSBzdSBhbHR1cmFcbiAgICBpZiAoYXBwUm9vdCkge1xuICAgICAgICByZXR1cm4gYXBwUm9vdC5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuXHRcdC8vdmFyIGJvZHkgPSBkb2MuYm9keSwgaHRtbCA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0Ly9oZWlnaHQgPSBNYXRoLm1heCggYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkub2Zmc2V0SGVpZ2h0LCBcblx0XHQvL2h0bWwuY2xpZW50SGVpZ2h0LCBodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5vZmZzZXRIZWlnaHQgKTtcblx0XHRcblx0XHRpZiAobmF2ZWdhZG9yLmluZGV4T2YoJ2ZpcmVmb3gnKSAhPT0gLTEpe1xuXHRcdFx0aWYoZG9jLmZvcm1EZXRhbGxlQ29udm9jYXRvcmlhKXtcblx0XHRcdFx0bGV0IGNhbnRpZGFkTWlsZXMgPSBoZWlnaHQgLyAxMDAwO1xuXHRcdFx0XHRoZWlnaHQgPSBoZWlnaHQgKyA2MDAgKyAoY2FudGlkYWRNaWxlcyo0MClcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdC8vXHRjb25zb2xlLndhcm4oJ0ZDTyA6IGxsYW1hIGEgZ2V0RG9jSGVpZ2h0Jyk7XG5cdFxuXHRcdHJldHVybiBoZWlnaHQ7XG5cdH1cblxuXHRvYnRlbmVyTmF2ZWdhZG9yKCl7XG5cdFx0dmFyIHVhPSBuYXZpZ2F0b3IudXNlckFnZW50LCB0ZW0sIFxuXHRcdE09IHVhLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XG5cdFx0aWYoL3RyaWRlbnQvaS50ZXN0KE1bMV0pKXtcblx0XHRcdHRlbT0gIC9cXGJydlsgOl0rKFxcZCspL2cuZXhlYyh1YSkgfHwgW107XG5cdFx0XHRyZXR1cm4gJ0lFICcrKHRlbVsxXSB8fCAnJyk7XG5cdFx0fVxuXHRcdGlmKE1bMV09PT0gJ0Nocm9tZScpe1xuXHRcdFx0dGVtPSB1YS5tYXRjaCgvXFxiKE9QUnxFZGdlKVxcLyhcXGQrKS8pO1xuXHRcdFx0aWYodGVtIT0gbnVsbCkgcmV0dXJuIHRlbS5zbGljZSgxKS5qb2luKCcgJykucmVwbGFjZSgnT1BSJywgJ09wZXJhJyk7XG5cdFx0fVxuXHRcdE09IE1bMl0/IFtNWzFdLCBNWzJdXTogW25hdmlnYXRvci5hcHBOYW1lLCBuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgJy0/J107XG5cdFx0aWYoKHRlbT0gdWEubWF0Y2goL3ZlcnNpb25cXC8oXFxkKykvaSkpIT0gbnVsbCkgTS5zcGxpY2UoMSwgMSwgdGVtWzFdKTtcblx0XHRyZXR1cm4gTS5qb2luKCcgJyk7XG5cdH1cblxuICBvYnRlbmVyVXJsQXBpKHVybGFwaT86IHN0cmluZyApOiBzdHJpbmcge1xuICAgIGlmICh1cmxhcGkpe1xuICAgICAgcmV0dXJuIHVybGFwaTtcbiAgICB9XG4gICAgc3dpdGNoICh0aGlzLmdldFRva2VuS2V5KCdhcGxpY2FjaW9uJykpIHtcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddID8gd2luZG93WydlbnYnXVsndXJsYXBpc2FyYSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBjYXNlICcxMyc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGNhc2UgJzEwJzpcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xuICAgICAgICAvL3JldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGknXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgICBjYXNlICc3Nyc6XG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAgdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbktleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kZWNvZGVUb2tlbigpO1xuICAgICAgcmV0dXJuIGRhdGFba2V5XS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RlY29kZVRva2VuKCk6IGFueSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRJdGVtKCd0b2tlbicsICcnKTtcbiAgICAgIGNvbnN0IGRhdGEgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMub2J0ZW5lckJhc2UoKSArICdfJyArICBrZXkpID8/IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIGNhbWJpYXJUZW1hKHRlbWEgOiAoJ3RlbWFDbGFybycgfCAndGVtYU9zY3VybycpKXtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9idGVuZXJCYXNlKCkgKyAnXycgKyd0ZW1hJywgdGVtYSk7XG4gICAgbGV0IGxpbmtUZW1hID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtYUFwcCcpIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICBsaW5rVGVtYS5ocmVmID0gYCR7dGVtYX0uY3NzYFxuICB9XG5cbiAgY2FsY3VsYXJQb3NpY2lvbkRpYWxvZygpIHtcbiAgICB2YXIgcGFyZW50V2luZG93OiBXaW5kb3cgPSB3aW5kb3cucGFyZW50O1xuICAgIHZhciBvYmo6IGFueSA9IHdpbmRvdy5mcmFtZUVsZW1lbnQgO1xuICAgIHZhciBpZnJtID0gb2JqO1xuICAgIGlmIChpZnJtKSB7XG4gICAgICBjb25zdCBzY3JvbGxUb3AgPSBwYXJlbnRXaW5kb3cucGFnZVlPZmZzZXQgfHwgcGFyZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgcGFyZW50V2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICBjb25zdCBkaWFsb2cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1kaWFsb2cnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChkaWFsb2cpIHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gcGFyZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgY29uc3QgbWl0YWRTY3JvbGxIZWlnaHQgPSBzY3JvbGxIZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBpbmljaW8gPSAtbWl0YWRTY3JvbGxIZWlnaHQ7XG4gICAgICAgIGRpYWxvZy5zdHlsZS50b3AgPSBgJHtpbmljaW8gKyA1MCArIChzY3JvbGxUb3AgKSB9cHhgOyAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YWxpZGFyUGFsYWJyYSh0ZXh0bzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGxldHJhcyA9IC9eW2EtekEtWl1bMC05YS16QS1aXSokLztcbiAgICByZXR1cm4gcGxldHJhcy50ZXN0KHRleHRvKTtcbiAgfVxufSJdfQ==