general-library-union 2.9.19 → 2.9.21

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 (648) hide show
  1. package/.browserslistrc +15 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/angular.json +143 -0
  7. package/karma.conf.js +44 -0
  8. package/ng-package.json +21 -0
  9. package/package.json +73 -62
  10. package/{public-api.d.ts → public-api.ts} +201 -161
  11. package/src/app/app.component.html +12 -0
  12. package/src/app/app.component.scss +0 -0
  13. package/src/app/app.component.spec.ts +29 -0
  14. package/src/app/app.component.ts +34 -0
  15. package/src/app/app.config.ts +43 -0
  16. package/src/app/app.module.ts +10 -0
  17. package/src/app/app.routes.ts +88 -0
  18. package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +6 -0
  19. package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
  20. package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +39 -0
  21. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +1 -0
  22. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
  23. package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +31 -0
  24. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +9 -0
  25. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +28 -0
  26. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +32 -0
  27. package/src/app/core/componentes/filtro-general/filtro-general.component.html +34 -0
  28. package/src/app/core/componentes/filtro-general/filtro-general.component.scss +3 -0
  29. package/src/app/core/componentes/filtro-general/filtro-general.component.ts +202 -0
  30. package/src/app/core/componentes/footer/footer.component.html +13 -0
  31. package/src/app/core/componentes/footer/footer.component.scss +3 -0
  32. package/src/app/core/componentes/footer/footer.component.ts +20 -0
  33. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +267 -0
  34. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +21 -0
  35. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +275 -0
  36. package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.d.ts → Cambio.ts} +13 -7
  37. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +118 -0
  38. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +76 -0
  39. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +67 -0
  40. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +11 -0
  41. package/src/app/core/componentes/inicio-component/inicio-component.component.html +29 -0
  42. package/src/app/core/componentes/inicio-component/inicio-component.component.scss +69 -0
  43. package/src/app/core/componentes/inicio-component/inicio-component.component.ts +65 -0
  44. package/src/app/core/componentes/menu/menu.component.html +13 -0
  45. package/src/app/core/componentes/menu/menu.component.scss +36 -0
  46. package/src/app/core/componentes/menu/menu.component.ts +35 -0
  47. package/src/app/core/componentes/tabla-general/tabla-general.component.html +90 -0
  48. package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
  49. package/src/app/core/componentes/tabla-general/tabla-general.component.ts +96 -0
  50. package/src/app/core/core.module.ts +22 -0
  51. package/src/app/core/errores/authentication.error.ts +6 -0
  52. package/src/app/core/modelos/error-response.model.ts +9 -0
  53. package/src/app/core/modelos/table-column.model.ts +10 -0
  54. package/src/app/core/modelos/user.model.ts +6 -0
  55. package/src/app/core/plantilla-general/plantilla-general.template.html +139 -0
  56. package/src/app/core/plantilla-general/plantilla-general.template.scss +37 -0
  57. package/src/app/core/plantilla-general/plantilla-general.template.ts +233 -0
  58. package/src/app/core/servicios/auth.service.ts +189 -0
  59. package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +49 -0
  60. package/src/app/core/servicios/data-exporter-table.utils.ts +78 -0
  61. package/src/app/core/servicios/error-interceptor.service.ts +208 -0
  62. package/src/app/core/servicios/guardias/auth.guard.ts +51 -0
  63. package/src/app/core/servicios/guardias/publico.guard.ts +26 -0
  64. package/src/app/core/servicios/interceptores/loading-interceptor.ts +37 -0
  65. package/src/app/core/servicios/interceptores/token-interceptor.service.ts +177 -0
  66. package/src/app/core/servicios/loading.service.ts +48 -0
  67. package/src/app/core/servicios/menu.service.ts +153 -0
  68. package/src/app/core/servicios/spinner-service.ts +18 -0
  69. package/src/app/core/servicios/storage.service.ts +68 -0
  70. package/src/app/core/servicios/template.service.ts +91 -0
  71. package/src/app/core/servicios/toast.service.ts +114 -0
  72. package/src/app/core/servicios/utils.service.ts +362 -0
  73. package/src/app/core/sharedlib.module.ts +11 -0
  74. package/src/app/core/utilidades/color.util.ts +197 -0
  75. package/src/app/layout/api/{menuchangeevent.d.ts → menuchangeevent.ts} +4 -4
  76. package/src/app/layout/app.breadcrumb.component.html +20 -0
  77. package/src/app/layout/app.breadcrumb.component.ts +78 -0
  78. package/src/app/layout/app.footer.component.html +18 -0
  79. package/src/app/layout/app.footer.component.ts +15 -0
  80. package/src/app/layout/app.layout.component.html +20 -0
  81. package/src/app/layout/app.layout.component.ts +201 -0
  82. package/src/app/layout/app.layout.module.ts +9 -0
  83. package/src/app/layout/app.menu.component.html +6 -0
  84. package/src/app/layout/app.menu.component.ts +51 -0
  85. package/src/app/layout/app.menu.service.ts +23 -0
  86. package/src/app/layout/app.menuitem.component.ts +252 -0
  87. package/src/app/layout/app.menuprofile.component.html +35 -0
  88. package/src/app/layout/app.menuprofile.component.ts +60 -0
  89. package/src/app/layout/app.rightmenu.component.html +72 -0
  90. package/src/app/layout/app.rightmenu.component.ts +24 -0
  91. package/src/app/layout/app.sidebar.component.html +40 -0
  92. package/src/app/layout/app.sidebar.component.ts +81 -0
  93. package/src/app/layout/app.topbar.component.html +214 -0
  94. package/src/app/layout/app.topbar.component.ts +335 -0
  95. package/src/app/layout/config/app.config.component.html +125 -0
  96. package/src/app/layout/config/app.config.component.ts +206 -0
  97. package/src/app/layout/config/app.config.module.ts +11 -0
  98. package/src/app/layout/service/app.layout.service.ts +191 -0
  99. package/src/app/publico/pages/login/login.page.html +53 -0
  100. package/src/app/publico/pages/login/login.page.scss +166 -0
  101. package/src/app/publico/pages/login/login.page.ts +128 -0
  102. package/src/app/publico/pages/not-found/not-found.page.html +35 -0
  103. package/src/app/publico/pages/not-found/not-found.page.scss +2 -0
  104. package/src/app/publico/pages/not-found/not-found.page.ts +46 -0
  105. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +58 -0
  106. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +49 -0
  107. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +176 -0
  108. package/src/app/publico/pages/timeout/timeout.page.html +24 -0
  109. package/src/app/publico/pages/timeout/timeout.page.scss +2 -0
  110. package/src/app/publico/pages/timeout/timeout.page.ts +18 -0
  111. package/src/app/seguridad/constantes/ConstantesGenerales.ts +30 -0
  112. package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +18 -0
  113. package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +13 -0
  114. package/src/app/seguridad/modelos/AplicacionModel.ts +11 -0
  115. package/src/app/seguridad/modelos/ArchivoPortalModel.ts +16 -0
  116. package/src/app/seguridad/modelos/AtributoPuntoModel.ts +9 -0
  117. package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +22 -0
  118. package/src/app/seguridad/modelos/{AuditoriaArchivoModel.d.ts → AuditoriaArchivoModel.ts} +13 -10
  119. package/src/app/seguridad/modelos/CargueLineaModel.ts +17 -0
  120. package/src/app/seguridad/modelos/ColoresRGB.ts +17 -0
  121. package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +9 -0
  122. package/src/app/seguridad/modelos/{ColumnaWraperModel.d.ts → ColumnaWraperModel.ts} +7 -6
  123. package/src/app/seguridad/modelos/ComplementoModel.ts +10 -0
  124. package/src/app/seguridad/modelos/ComponentePaginaModel.ts +22 -0
  125. package/src/app/seguridad/modelos/ConexionModel.ts +15 -0
  126. package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.d.ts → ContenidoHtmlPortalModel.ts} +25 -20
  127. package/src/app/seguridad/modelos/ControlFuncionModel.ts +10 -0
  128. package/src/app/seguridad/modelos/CorreoModel.ts +45 -0
  129. package/src/app/seguridad/modelos/CorreoWSModel.ts +49 -0
  130. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +14 -0
  131. package/src/app/seguridad/modelos/{DatoInicioModel.d.ts → DatoInicioModel.ts} +7 -6
  132. package/src/app/seguridad/modelos/{EjecucionReporteDataModel.d.ts → EjecucionReporteDataModel.ts} +21 -20
  133. package/src/app/seguridad/modelos/EmpresaModel.ts +25 -0
  134. package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +19 -0
  135. package/src/app/seguridad/modelos/{EntradaComplementoModel.d.ts → EntradaComplementoModel.ts} +9 -6
  136. package/src/app/seguridad/modelos/EtiquetaModel.ts +4 -0
  137. package/src/app/seguridad/modelos/Etiquetas.ts +14 -0
  138. package/src/app/seguridad/modelos/{ForeingWraperModel.d.ts → ForeingWraperModel.ts} +9 -6
  139. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +21 -0
  140. package/src/app/seguridad/modelos/{FuenteCampoModel.d.ts → FuenteCampoModel.ts} +20 -16
  141. package/src/app/seguridad/modelos/FuenteDato.ts +19 -0
  142. package/src/app/seguridad/modelos/FuenteEntradaModel.ts +9 -0
  143. package/src/app/seguridad/modelos/{FuenteGeneralModel.d.ts → FuenteGeneralModel.ts} +55 -36
  144. package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +19 -0
  145. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +14 -0
  146. package/src/app/seguridad/modelos/{FuenteServicioModel.d.ts → FuenteServicioModel.ts} +61 -47
  147. package/src/app/seguridad/modelos/FuncionalidadModel.ts +12 -0
  148. package/src/app/seguridad/modelos/GeneralModel.ts +16 -0
  149. package/src/app/seguridad/modelos/{GrupoAccesoModel.d.ts → GrupoAccesoModel.ts} +9 -6
  150. package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +12 -0
  151. package/src/app/seguridad/modelos/GrupoFuenteModel.ts +17 -0
  152. package/src/app/seguridad/modelos/GrupoPermisoModel.ts +16 -0
  153. package/src/app/seguridad/modelos/{JoinFromModel.d.ts → JoinFromModel.ts} +4 -4
  154. package/src/app/seguridad/modelos/ListaServicioModel.ts +18 -0
  155. package/src/app/seguridad/modelos/LlaveForaneaModel.ts +6 -0
  156. package/src/app/seguridad/modelos/LoginModel.ts +19 -0
  157. package/src/app/seguridad/modelos/MensajeSistemaModel.ts +10 -0
  158. package/src/app/seguridad/modelos/{MenuPortalModel.d.ts → MenuPortalModel.ts} +5 -4
  159. package/src/app/seguridad/modelos/ModulosModel.ts +17 -0
  160. package/src/app/seguridad/modelos/{ObjetoReporteModel.d.ts → ObjetoReporteModel.ts} +6 -5
  161. package/src/app/seguridad/modelos/PaginaPortalModel.ts +23 -0
  162. package/src/app/seguridad/modelos/ParametroComponenteModel.ts +9 -0
  163. package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +16 -0
  164. package/src/app/seguridad/modelos/PermisoFuncionModel.ts +11 -0
  165. package/src/app/seguridad/modelos/PermisocontenidoModel.ts +20 -0
  166. package/src/app/seguridad/modelos/{PeticionModel.d.ts → PeticionModel.ts} +20 -15
  167. package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +9 -0
  168. package/src/app/seguridad/modelos/PropiedadModel.ts +12 -0
  169. package/src/app/seguridad/modelos/PublicacionWebModel.ts +29 -0
  170. package/src/app/seguridad/modelos/PuntoProcesoModel.ts +7 -0
  171. package/src/app/seguridad/modelos/RecursoPunto.ts +13 -0
  172. package/src/app/seguridad/modelos/RecursoPuntoModel.ts +13 -0
  173. package/src/app/seguridad/modelos/ReporteBanda.ts +9 -0
  174. package/src/app/seguridad/modelos/ReporteColumna.ts +33 -0
  175. package/src/app/seguridad/modelos/ReporteColumnario.ts +82 -0
  176. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +31 -0
  177. package/src/app/seguridad/modelos/{ReporteEntradaModel.d.ts → ReporteEntradaModel.ts} +21 -19
  178. package/src/app/seguridad/modelos/{ReporteFuenteModel.d.ts → ReporteFuenteModel.ts} +141 -87
  179. package/src/app/seguridad/modelos/ReporteMarcador.ts +40 -0
  180. package/src/app/seguridad/modelos/ReporteSoporte.ts +10 -0
  181. package/src/app/seguridad/modelos/ReporteTabla.ts +14 -0
  182. package/src/app/seguridad/modelos/RespuestaModel.ts +10 -0
  183. package/src/app/seguridad/modelos/{RolModel.d.ts → RolModel.ts} +41 -37
  184. package/src/app/seguridad/modelos/ServidorCorreoModel.ts +31 -0
  185. package/src/app/seguridad/modelos/SistemaMensajeModel.ts +11 -0
  186. package/src/app/seguridad/modelos/SitioPortalModel.ts +29 -0
  187. package/src/app/seguridad/modelos/TablaFromModel.ts +5 -0
  188. package/src/app/seguridad/modelos/TareasModel.ts +54 -0
  189. package/src/app/seguridad/modelos/TextoModel.ts +11 -0
  190. package/src/app/seguridad/modelos/TipoEtiqueta.ts +8 -0
  191. package/src/app/seguridad/modelos/UnionModel.ts +14 -0
  192. package/src/app/seguridad/modelos/{UsuarioModel.d.ts → UsuarioModel.ts} +60 -49
  193. package/src/app/seguridad/modelos/UsuariogrupoModel.ts +27 -0
  194. package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +16 -0
  195. package/src/app/seguridad/modelos/contenidoCorreoModel.ts +13 -0
  196. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +47 -0
  197. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +8 -0
  198. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +144 -0
  199. package/src/app/shared/servicios/cargar-archivos.service.ts +51 -0
  200. package/src/app/shared/servicios/cargar-mapas.service.ts +43 -0
  201. package/src/app/shared/servicios/encriptado-basico.service.ts +54 -0
  202. package/src/app/shared/servicios/encriptador-simetrico.service.ts +29 -0
  203. package/src/app/shared/servicios/general.service.ts +124 -0
  204. package/src/app/shared/servicios/parametros-navegacion.service.ts +20 -0
  205. package/src/app/shared/servicios/plantillas.service.ts +22 -0
  206. package/src/app/shared/servicios/tarea.service.ts +71 -0
  207. package/src/app/shared/utilidades/translate-loader.util.ts +44 -0
  208. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +167 -0
  209. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +11 -0
  210. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +425 -0
  211. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +87 -0
  212. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
  213. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +189 -0
  214. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +117 -0
  215. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
  216. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +87 -0
  217. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +158 -0
  218. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +6 -0
  219. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +345 -0
  220. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +131 -0
  221. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
  222. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +198 -0
  223. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +206 -0
  224. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +3 -0
  225. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +329 -0
  226. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +2114 -0
  227. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +241 -0
  228. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +1677 -0
  229. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +33 -0
  230. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
  231. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +96 -0
  232. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +54 -0
  233. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
  234. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +111 -0
  235. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +394 -0
  236. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +10 -0
  237. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +599 -0
  238. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +130 -0
  239. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
  240. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +172 -0
  241. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +376 -0
  242. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +5 -0
  243. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +749 -0
  244. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +145 -0
  245. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
  246. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +302 -0
  247. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +19 -0
  248. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
  249. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +89 -0
  250. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +714 -0
  251. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
  252. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +688 -0
  253. package/src/app/webcommon/pipes/dashboard.pipe.ts +79 -0
  254. package/src/app/webcommon/pipes/fuente.pipe.ts +207 -0
  255. package/src/app/webcommon/pipes/general.pipe.ts +1043 -0
  256. package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +101 -0
  257. package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +306 -0
  258. package/src/app/webcommon/pipes/sara-general.pipe.ts +289 -0
  259. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +90 -0
  260. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
  261. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +262 -0
  262. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +50 -0
  263. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
  264. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +135 -0
  265. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +41 -0
  266. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
  267. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +283 -0
  268. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +179 -0
  269. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +3 -0
  270. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +266 -0
  271. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +261 -0
  272. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +13 -0
  273. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +519 -0
  274. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +10 -0
  275. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +5 -0
  276. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +58 -0
  277. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +71 -0
  278. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
  279. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +151 -0
  280. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +11 -0
  281. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
  282. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +82 -0
  283. package/src/app/webcommon/services/carguelinea.service.ts +72 -0
  284. package/src/app/webcommon/services/dashboard.service.ts +258 -0
  285. package/src/app/webcommon/services/ejecucionreporte.service.ts +160 -0
  286. package/src/app/webcommon/services/fechaUtils.service.ts +117 -0
  287. package/src/app/webcommon/services/fuentegeneral.service.ts +74 -0
  288. package/src/app/webcommon/services/homologacion.service.ts +49 -0
  289. package/src/app/webcommon/services/plantillas.service.ts +165 -0
  290. package/src/app/webcommon/services/reportes.service.ts +133 -0
  291. package/src/app/webcommon/webcommon.module.ts +11 -0
  292. package/src/environments/environment.prod.ts +3 -0
  293. package/src/environments/environment.ts +25 -0
  294. package/src/favicon.ico +0 -0
  295. package/src/index.html +14 -0
  296. package/src/main.ts +12 -0
  297. package/src/polyfills.ts +53 -0
  298. package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +1 -5
  299. package/src/test.ts +14 -0
  300. package/tsconfig.app.json +15 -0
  301. package/tsconfig.json +35 -0
  302. package/tsconfig.spec.json +18 -0
  303. package/esm2022/general-library-union.mjs +0 -5
  304. package/esm2022/public-api.mjs +0 -180
  305. package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +0 -40
  306. package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +0 -28
  307. package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +0 -194
  308. package/esm2022/src/app/core/componentes/footer/footer.component.mjs +0 -16
  309. package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +0 -272
  310. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +0 -11
  311. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +0 -124
  312. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +0 -73
  313. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +0 -59
  314. package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +0 -21
  315. package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +0 -67
  316. package/esm2022/src/app/core/componentes/menu/menu.component.mjs +0 -37
  317. package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +0 -93
  318. package/esm2022/src/app/core/core.module.mjs +0 -23
  319. package/esm2022/src/app/core/errores/authentication.error.mjs +0 -7
  320. package/esm2022/src/app/core/modelos/error-response.model.mjs +0 -2
  321. package/esm2022/src/app/core/modelos/table-column.model.mjs +0 -2
  322. package/esm2022/src/app/core/modelos/user.model.mjs +0 -7
  323. package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +0 -230
  324. package/esm2022/src/app/core/servicios/auth.service.mjs +0 -185
  325. package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +0 -57
  326. package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +0 -64
  327. package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +0 -214
  328. package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +0 -66
  329. package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +0 -35
  330. package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +0 -37
  331. package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +0 -180
  332. package/esm2022/src/app/core/servicios/loading.service.mjs +0 -43
  333. package/esm2022/src/app/core/servicios/menu.service.mjs +0 -146
  334. package/esm2022/src/app/core/servicios/spinner-service.mjs +0 -22
  335. package/esm2022/src/app/core/servicios/storage.service.mjs +0 -68
  336. package/esm2022/src/app/core/servicios/template.service.mjs +0 -99
  337. package/esm2022/src/app/core/servicios/toast.service.mjs +0 -120
  338. package/esm2022/src/app/core/servicios/utils.service.mjs +0 -335
  339. package/esm2022/src/app/core/sharedlib.module.mjs +0 -16
  340. package/esm2022/src/app/core/utilidades/color.util.mjs +0 -177
  341. package/esm2022/src/app/layout/api/menuchangeevent.mjs +0 -2
  342. package/esm2022/src/app/layout/app.breadcrumb.component.mjs +0 -71
  343. package/esm2022/src/app/layout/app.footer.component.mjs +0 -18
  344. package/esm2022/src/app/layout/app.layout.component.mjs +0 -188
  345. package/esm2022/src/app/layout/app.layout.module.mjs +0 -15
  346. package/esm2022/src/app/layout/app.menu.component.mjs +0 -51
  347. package/esm2022/src/app/layout/app.menu.service.mjs +0 -24
  348. package/esm2022/src/app/layout/app.menuitem.component.mjs +0 -296
  349. package/esm2022/src/app/layout/app.menuprofile.component.mjs +0 -78
  350. package/esm2022/src/app/layout/app.rightmenu.component.mjs +0 -24
  351. package/esm2022/src/app/layout/app.sidebar.component.mjs +0 -92
  352. package/esm2022/src/app/layout/app.topbar.component.mjs +0 -345
  353. package/esm2022/src/app/layout/service/app.layout.service.mjs +0 -134
  354. package/esm2022/src/app/publico/pages/login/login.page.mjs +0 -129
  355. package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +0 -51
  356. package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +0 -167
  357. package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +0 -20
  358. package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +0 -30
  359. package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +0 -19
  360. package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +0 -8
  361. package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +0 -14
  362. package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +0 -9
  363. package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +0 -17
  364. package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +0 -11
  365. package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +0 -13
  366. package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +0 -18
  367. package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +0 -9
  368. package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +0 -6
  369. package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +0 -7
  370. package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +0 -21
  371. package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +0 -14
  372. package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +0 -21
  373. package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +0 -8
  374. package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +0 -35
  375. package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +0 -37
  376. package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +0 -14
  377. package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +0 -6
  378. package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +0 -14
  379. package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +0 -25
  380. package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +0 -19
  381. package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +0 -7
  382. package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +0 -5
  383. package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +0 -12
  384. package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +0 -6
  385. package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +0 -16
  386. package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +0 -17
  387. package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +0 -19
  388. package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +0 -9
  389. package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +0 -37
  390. package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +0 -16
  391. package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +0 -11
  392. package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +0 -51
  393. package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +0 -10
  394. package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +0 -15
  395. package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +0 -7
  396. package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +0 -10
  397. package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +0 -13
  398. package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +0 -14
  399. package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +0 -5
  400. package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +0 -17
  401. package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +0 -7
  402. package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +0 -15
  403. package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +0 -8
  404. package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +0 -5
  405. package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +0 -18
  406. package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +0 -6
  407. package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +0 -20
  408. package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +0 -9
  409. package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +0 -15
  410. package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +0 -9
  411. package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +0 -20
  412. package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +0 -16
  413. package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +0 -7
  414. package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +0 -10
  415. package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +0 -27
  416. package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +0 -7
  417. package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +0 -13
  418. package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +0 -13
  419. package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +0 -8
  420. package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +0 -33
  421. package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +0 -69
  422. package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +0 -24
  423. package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +0 -20
  424. package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +0 -124
  425. package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +0 -40
  426. package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +0 -10
  427. package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +0 -13
  428. package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +0 -9
  429. package/esm2022/src/app/seguridad/modelos/RolModel.mjs +0 -39
  430. package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +0 -28
  431. package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +0 -9
  432. package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +0 -25
  433. package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +0 -5
  434. package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +0 -54
  435. package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +0 -9
  436. package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +0 -8
  437. package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +0 -12
  438. package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +0 -53
  439. package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +0 -24
  440. package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +0 -15
  441. package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +0 -10
  442. package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +0 -154
  443. package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +0 -54
  444. package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +0 -46
  445. package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +0 -53
  446. package/esm2022/src/app/shared/servicios/general.service.mjs +0 -104
  447. package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +0 -21
  448. package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +0 -370
  449. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +0 -187
  450. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +0 -85
  451. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +0 -347
  452. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +0 -206
  453. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +0 -328
  454. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +0 -1569
  455. package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +0 -105
  456. package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +0 -114
  457. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +0 -588
  458. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +0 -177
  459. package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +0 -749
  460. package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +0 -331
  461. package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +0 -96
  462. package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +0 -675
  463. package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +0 -86
  464. package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +0 -201
  465. package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +0 -916
  466. package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +0 -115
  467. package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +0 -301
  468. package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +0 -267
  469. package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +0 -128
  470. package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +0 -293
  471. package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +0 -269
  472. package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +0 -515
  473. package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +0 -64
  474. package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +0 -159
  475. package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +0 -89
  476. package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +0 -69
  477. package/esm2022/src/app/webcommon/services/dashboard.service.mjs +0 -253
  478. package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +0 -114
  479. package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +0 -88
  480. package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +0 -68
  481. package/esm2022/src/app/webcommon/services/homologacion.service.mjs +0 -50
  482. package/esm2022/src/app/webcommon/services/plantillas.service.mjs +0 -129
  483. package/esm2022/src/app/webcommon/services/reportes.service.mjs +0 -95
  484. package/esm2022/src/app/webcommon/webcommon.module.mjs +0 -15
  485. package/esm2022/src/environments/environment.mjs +0 -24
  486. package/fesm2022/general-library-union.mjs +0 -15885
  487. package/fesm2022/general-library-union.mjs.map +0 -1
  488. package/index.d.ts +0 -5
  489. package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +0 -18
  490. package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +0 -14
  491. package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +0 -34
  492. package/src/app/core/componentes/footer/footer.component.d.ts +0 -9
  493. package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +0 -46
  494. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +0 -44
  495. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +0 -45
  496. package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +0 -33
  497. package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +0 -9
  498. package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +0 -24
  499. package/src/app/core/componentes/menu/menu.component.d.ts +0 -16
  500. package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +0 -32
  501. package/src/app/core/core.module.d.ts +0 -8
  502. package/src/app/core/errores/authentication.error.d.ts +0 -3
  503. package/src/app/core/modelos/error-response.model.d.ts +0 -9
  504. package/src/app/core/modelos/table-column.model.d.ts +0 -12
  505. package/src/app/core/modelos/user.model.d.ts +0 -6
  506. package/src/app/core/plantilla-general/plantilla-general.template.d.ts +0 -89
  507. package/src/app/core/servicios/auth.service.d.ts +0 -52
  508. package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +0 -19
  509. package/src/app/core/servicios/data-exporter-table.utils.d.ts +0 -11
  510. package/src/app/core/servicios/error-interceptor.service.d.ts +0 -41
  511. package/src/app/core/servicios/guardias/auth.guard.d.ts +0 -17
  512. package/src/app/core/servicios/guardias/publico.guard.d.ts +0 -13
  513. package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +0 -11
  514. package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +0 -26
  515. package/src/app/core/servicios/loading.service.d.ts +0 -22
  516. package/src/app/core/servicios/menu.service.d.ts +0 -35
  517. package/src/app/core/servicios/spinner-service.d.ts +0 -9
  518. package/src/app/core/servicios/storage.service.d.ts +0 -37
  519. package/src/app/core/servicios/template.service.d.ts +0 -20
  520. package/src/app/core/servicios/toast.service.d.ts +0 -48
  521. package/src/app/core/servicios/utils.service.d.ts +0 -42
  522. package/src/app/core/sharedlib.module.d.ts +0 -6
  523. package/src/app/core/utilidades/color.util.d.ts +0 -70
  524. package/src/app/layout/app.breadcrumb.component.d.ts +0 -28
  525. package/src/app/layout/app.footer.component.d.ts +0 -8
  526. package/src/app/layout/app.layout.component.d.ts +0 -39
  527. package/src/app/layout/app.layout.module.d.ts +0 -6
  528. package/src/app/layout/app.menu.component.d.ts +0 -19
  529. package/src/app/layout/app.menu.service.d.ts +0 -12
  530. package/src/app/layout/app.menuitem.component.d.ts +0 -41
  531. package/src/app/layout/app.menuprofile.component.d.ts +0 -18
  532. package/src/app/layout/app.rightmenu.component.d.ts +0 -10
  533. package/src/app/layout/app.sidebar.component.d.ts +0 -34
  534. package/src/app/layout/app.topbar.component.d.ts +0 -79
  535. package/src/app/layout/service/app.layout.service.d.ts +0 -57
  536. package/src/app/publico/pages/login/login.page.d.ts +0 -40
  537. package/src/app/publico/pages/not-found/not-found.page.d.ts +0 -17
  538. package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +0 -41
  539. package/src/app/publico/pages/timeout/timeout.page.d.ts +0 -10
  540. package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +0 -25
  541. package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +0 -7
  542. package/src/app/seguridad/modelos/AplicacionModel.d.ts +0 -7
  543. package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +0 -13
  544. package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +0 -8
  545. package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +0 -16
  546. package/src/app/seguridad/modelos/CargueLineaModel.d.ts +0 -12
  547. package/src/app/seguridad/modelos/ColoresRGB.d.ts +0 -17
  548. package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +0 -8
  549. package/src/app/seguridad/modelos/ComplementoModel.d.ts +0 -6
  550. package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +0 -20
  551. package/src/app/seguridad/modelos/ConexionModel.d.ts +0 -13
  552. package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +0 -7
  553. package/src/app/seguridad/modelos/CorreoModel.d.ts +0 -31
  554. package/src/app/seguridad/modelos/CorreoWSModel.d.ts +0 -33
  555. package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +0 -13
  556. package/src/app/seguridad/modelos/EmpresaModel.d.ts +0 -23
  557. package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +0 -18
  558. package/src/app/seguridad/modelos/EtiquetaModel.d.ts +0 -4
  559. package/src/app/seguridad/modelos/Etiquetas.d.ts +0 -10
  560. package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +0 -15
  561. package/src/app/seguridad/modelos/FuenteDato.d.ts +0 -18
  562. package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +0 -8
  563. package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +0 -16
  564. package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +0 -10
  565. package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +0 -8
  566. package/src/app/seguridad/modelos/GeneralModel.d.ts +0 -8
  567. package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +0 -9
  568. package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +0 -13
  569. package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +0 -13
  570. package/src/app/seguridad/modelos/ListaServicioModel.d.ts +0 -16
  571. package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +0 -6
  572. package/src/app/seguridad/modelos/LoginModel.d.ts +0 -17
  573. package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +0 -7
  574. package/src/app/seguridad/modelos/ModulosModel.d.ts +0 -14
  575. package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +0 -19
  576. package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +0 -8
  577. package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +0 -8
  578. package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +0 -8
  579. package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +0 -18
  580. package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +0 -6
  581. package/src/app/seguridad/modelos/PropiedadModel.d.ts +0 -9
  582. package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +0 -25
  583. package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +0 -6
  584. package/src/app/seguridad/modelos/RecursoPunto.d.ts +0 -12
  585. package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +0 -12
  586. package/src/app/seguridad/modelos/ReporteBanda.d.ts +0 -7
  587. package/src/app/seguridad/modelos/ReporteColumna.d.ts +0 -32
  588. package/src/app/seguridad/modelos/ReporteColumnario.d.ts +0 -68
  589. package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +0 -23
  590. package/src/app/seguridad/modelos/ReporteMarcador.d.ts +0 -39
  591. package/src/app/seguridad/modelos/ReporteSoporte.d.ts +0 -9
  592. package/src/app/seguridad/modelos/ReporteTabla.d.ts +0 -12
  593. package/src/app/seguridad/modelos/RespuestaModel.d.ts +0 -8
  594. package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +0 -25
  595. package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +0 -8
  596. package/src/app/seguridad/modelos/SitioPortalModel.d.ts +0 -24
  597. package/src/app/seguridad/modelos/TablaFromModel.d.ts +0 -4
  598. package/src/app/seguridad/modelos/TareasModel.d.ts +0 -49
  599. package/src/app/seguridad/modelos/TextoModel.d.ts +0 -8
  600. package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +0 -7
  601. package/src/app/seguridad/modelos/UnionModel.d.ts +0 -11
  602. package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +0 -22
  603. package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +0 -13
  604. package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +0 -9
  605. package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +0 -47
  606. package/src/app/shared/servicios/cargar-archivos.service.d.ts +0 -15
  607. package/src/app/shared/servicios/cargar-mapas.service.d.ts +0 -18
  608. package/src/app/shared/servicios/encriptado-basico.service.d.ts +0 -10
  609. package/src/app/shared/servicios/general.service.d.ts +0 -24
  610. package/src/app/shared/servicios/parametros-navegacion.service.d.ts +0 -9
  611. package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +0 -78
  612. package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +0 -79
  613. package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +0 -29
  614. package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +0 -69
  615. package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +0 -51
  616. package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +0 -77
  617. package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +0 -275
  618. package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +0 -42
  619. package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +0 -35
  620. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +0 -143
  621. package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +0 -49
  622. package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +0 -128
  623. package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +0 -64
  624. package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +0 -33
  625. package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +0 -149
  626. package/src/app/webcommon/pipes/dashboard.pipe.d.ts +0 -48
  627. package/src/app/webcommon/pipes/fuente.pipe.d.ts +0 -136
  628. package/src/app/webcommon/pipes/general.pipe.d.ts +0 -646
  629. package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +0 -59
  630. package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +0 -193
  631. package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +0 -59
  632. package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +0 -27
  633. package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +0 -64
  634. package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +0 -63
  635. package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +0 -97
  636. package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +0 -21
  637. package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +0 -42
  638. package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +0 -30
  639. package/src/app/webcommon/services/carguelinea.service.d.ts +0 -19
  640. package/src/app/webcommon/services/dashboard.service.d.ts +0 -27
  641. package/src/app/webcommon/services/ejecucionreporte.service.d.ts +0 -34
  642. package/src/app/webcommon/services/fechaUtils.service.d.ts +0 -29
  643. package/src/app/webcommon/services/fuentegeneral.service.d.ts +0 -24
  644. package/src/app/webcommon/services/homologacion.service.d.ts +0 -17
  645. package/src/app/webcommon/services/plantillas.service.d.ts +0 -26
  646. package/src/app/webcommon/services/reportes.service.d.ts +0 -35
  647. package/src/app/webcommon/webcommon.module.d.ts +0 -6
  648. package/src/environments/environment.d.ts +0 -7
@@ -1,370 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, ViewChild } from '@angular/core';
3
- import { TranslateModule } from '@ngx-translate/core';
4
- import { ConfirmationService } from 'primeng/api';
5
- import { ButtonModule } from 'primeng/button';
6
- import { InputTextModule } from 'primeng/inputtext';
7
- import { SplitButtonModule } from 'primeng/splitbutton';
8
- import { TreeModule } from 'primeng/tree';
9
- import { ConfirmPopupModule } from 'primeng/confirmpopup';
10
- import { FormsModule } from '@angular/forms';
11
- import { FieldsetModule } from 'primeng/fieldset';
12
- import { FileUploadModule } from 'primeng/fileupload';
13
- import { PopupConvertirPlantillasComponent } from '../../../../webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component';
14
- import { firstValueFrom } from 'rxjs';
15
- import { EditorModule } from 'primeng/editor';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "../../../../webcommon/services/plantillas.service";
18
- import * as i2 from "../../../../core/servicios/auth.service";
19
- import * as i3 from "@ngx-translate/core";
20
- import * as i4 from "../../../../core/servicios/cargar-control-funcionalidad.service";
21
- import * as i5 from "primeng/api";
22
- import * as i6 from "../../../../core/servicios/toast.service";
23
- import * as i7 from "../../../../shared/servicios/cargar-archivos.service";
24
- import * as i8 from "../../../../shared/servicios/encriptado-basico.service";
25
- import * as i9 from "../../../../webcommon/pipes/general.pipe";
26
- import * as i10 from "../../../../core/servicios/utils.service";
27
- import * as i11 from "@angular/common";
28
- import * as i12 from "primeng/tree";
29
- import * as i13 from "primeng/inputtext";
30
- import * as i14 from "primeng/button";
31
- import * as i15 from "primeng/tooltip";
32
- import * as i16 from "primeng/confirmpopup";
33
- import * as i17 from "@angular/forms";
34
- import * as i18 from "primeng/fileupload";
35
- import * as i19 from "primeng/editor";
36
- export class CarguePlantillaGeneralComponent {
37
- plantillasService;
38
- authService;
39
- translateService;
40
- controlFuncionService;
41
- confirmationService;
42
- toastService;
43
- cargarArchivoServices;
44
- encriptadoBasico;
45
- generalPipe;
46
- utilsService;
47
- popupConvertirPlantillasComponent;
48
- miFormulario;
49
- treeComponent;
50
- loading;
51
- propiedad;
52
- extensiones;
53
- propiedadDeSistema = false;
54
- anexoPropiedad = '';
55
- files;
56
- dataSelected;
57
- itemsBotonAcciones;
58
- verConvertir;
59
- nomNuevaCarpeta;
60
- isVisualizarCrearCaperta = false;
61
- archivoSeleccionadoAnexo;
62
- archivoSeleccionado;
63
- isMostrarPopupConvertir = false;
64
- rutaPrincipal;
65
- filteredFiles = [];
66
- filterValue = '';
67
- FORMATS_VALIDOS = new Set([
68
- '.doc',
69
- '.html',
70
- '.jasper',
71
- '.xls',
72
- '.jrxml',
73
- '.odt',
74
- '.xlsm',
75
- '.xlsx',
76
- '.pgp',
77
- '.asc',
78
- '.cer',
79
- '.p12',
80
- '.docx',
81
- '.properties'
82
- ]);
83
- filtroConvertir;
84
- html;
85
- mostrarEditor;
86
- modificarHTML;
87
- constructor(plantillasService, authService, translateService, controlFuncionService, confirmationService, toastService, cargarArchivoServices, encriptadoBasico, generalPipe, utilsService) {
88
- this.plantillasService = plantillasService;
89
- this.authService = authService;
90
- this.translateService = translateService;
91
- this.controlFuncionService = controlFuncionService;
92
- this.confirmationService = confirmationService;
93
- this.toastService = toastService;
94
- this.cargarArchivoServices = cargarArchivoServices;
95
- this.encriptadoBasico = encriptadoBasico;
96
- this.generalPipe = generalPipe;
97
- this.utilsService = utilsService;
98
- }
99
- async ngOnInit() {
100
- this.mostrarEditor = false;
101
- let consultarRutaPrincipal = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: "ruta_plantillas", aplicacion: 1 }));
102
- let convertir = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: "servidor_openOffice", aplicacion: 0 }));
103
- this.verConvertir = !convertir.valor.valor ? true : false;
104
- this.rutaPrincipal = consultarRutaPrincipal.valor.valor;
105
- this.isVisualizarCrearCaperta = false;
106
- await this.openDataTable();
107
- const sleep = (m) => new Promise((r) => setTimeout(r, m));
108
- await sleep(100);
109
- if (this.filterValue) {
110
- await this.aplicarFiltro();
111
- }
112
- }
113
- async openDataTable() {
114
- setTimeout(() => {
115
- this.loading = true;
116
- if (!this.propiedad) {
117
- this.propiedad = 'ruta_plantillas';
118
- }
119
- this.plantillasService.obtenerArchivos(this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), 'doc;html;jasper;xls;jrxml;odt;xlsm;xlsx;pgp;asc;cer;p12;docx;properties', this.anexoPropiedad, true).subscribe(rta => {
120
- this.files = rta;
121
- this.filteredFiles = rta;
122
- this.loading = false;
123
- if (!this.archivoSeleccionado) {
124
- this.archivoSeleccionado = this.files[0];
125
- }
126
- });
127
- }, 1000);
128
- }
129
- async aplicarFiltro() {
130
- this.filtroConvertir = this.filterValue;
131
- this.loading = true;
132
- setTimeout(() => {
133
- this.filteredFiles = this.obtenerFiltrosNodos(this.files, this.filterValue);
134
- this.loading = false;
135
- }, 1000);
136
- }
137
- obtenerFiltrosNodos(nodes, filterValue) {
138
- const filters = this.filtroAvanzado(filterValue);
139
- const filteredNodes = [];
140
- nodes.forEach(node => {
141
- // Verifica si el nodo actual o alguno de sus hijos cumple con el filtro
142
- const children = node.children ? this.obtenerFiltrosNodos(node.children, filterValue) : [];
143
- const nodeMatches = filters.some(filter => node.label.includes(filter));
144
- if (nodeMatches || children.length > 0) {
145
- filteredNodes.push({ ...node, children });
146
- }
147
- });
148
- return filteredNodes;
149
- }
150
- filtroAvanzado(search) {
151
- if (search.includes('+')) {
152
- let aux = search;
153
- if (aux.startsWith('+')) {
154
- aux = aux.substring(1);
155
- }
156
- aux = aux.replace(/\+/g, ':');
157
- const items = aux.trim().split(':');
158
- return items;
159
- }
160
- else {
161
- return [search];
162
- }
163
- }
164
- filtrarEnter(event) {
165
- if (event.key === 'Enter') {
166
- this.aplicarFiltro();
167
- }
168
- }
169
- seleccionarArchivo(event) {
170
- this.archivoSeleccionado = event.node;
171
- this.mostrarEditor = false;
172
- }
173
- deseleccionarArchivo($event) {
174
- this.dataSelected = null;
175
- }
176
- async cargarNuevo(event, fubauto) {
177
- this.isVisualizarCrearCaperta = false;
178
- this.archivoSeleccionadoAnexo = event.files[0];
179
- if (!this.isFormatoValido(this.archivoSeleccionadoAnexo.name)) {
180
- this.toastService.showWarning("Se debe agregar un archivo " + Array.from(this.FORMATS_VALIDOS).join(', '));
181
- fubauto.clear();
182
- //this.toastService.showWarning("Se debe agregar un archivo .doc, .docx, .xls, .xlsx , .xlsm, .jrxml, .odt, .jasper, .pgp, .asc, .cer, .properties o .html");
183
- return;
184
- }
185
- //Cargar Archivo Temporal
186
- let resultado = await firstValueFrom(this.plantillasService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo));
187
- fubauto.clear();
188
- if (resultado?.validacion) {
189
- this.toastService.showSuccess(resultado?.validacion);
190
- return;
191
- }
192
- let informacionArchivo = resultado?.informacionArchivo ? resultado?.informacionArchivo : null;
193
- //Obtener Rutas
194
- let rutaComplemento = this.archivoSeleccionado.data;
195
- //let objeto = (await this.cargarArchivoServices.getPropiedad({ propiedad: "ruta_plantillas", aplicacion: 1 }).toPromise());
196
- if (!this.archivoSeleccionado?.parent) {
197
- rutaComplemento = '';
198
- }
199
- //Verifica si el documento ya existe
200
- let data = await firstValueFrom(this.plantillasService.existeDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));
201
- if (data?.validacionDocumento) {
202
- this.toastService.showWarning(data?.validacionDocumento);
203
- return;
204
- }
205
- //Guarda el documento
206
- await firstValueFrom(this.plantillasService.cargarDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));
207
- this.ngOnInit();
208
- }
209
- async descargarAnexo() {
210
- //Ruta archivo
211
- let rutaComplemento = this.archivoSeleccionado.data;
212
- if (!this.archivoSeleccionado?.parent) {
213
- rutaComplemento = '';
214
- }
215
- this.cargarArchivoServices.descargarArchivo(this.encriptadoBasico.encriptar(this.rutaPrincipal + rutaComplemento), undefined, undefined).subscribe(blob => {
216
- const a = document.createElement('a');
217
- const objectUrl = URL.createObjectURL(blob);
218
- a.href = objectUrl;
219
- a.download = this.archivoSeleccionado?.label;
220
- a.click();
221
- URL.revokeObjectURL(objectUrl);
222
- });
223
- }
224
- eliminarArchivo() {
225
- this.confirmationService.confirm({
226
- target: event.target,
227
- key: 'eliminarArchivo',
228
- message: '¿Desea eliminar el registro?',
229
- acceptLabel: 'Si',
230
- icon: 'confirmar',
231
- accept: () => {
232
- this.setEliminarArchivo();
233
- },
234
- reject: () => { },
235
- });
236
- }
237
- async setEliminarArchivo() {
238
- //Ruta archivo
239
- let rutaComplemento = this.archivoSeleccionado.data;
240
- if (!this.archivoSeleccionado?.parent) {
241
- rutaComplemento = '';
242
- }
243
- let propiedad = 'ruta_plantillas';
244
- await firstValueFrom(this.cargarArchivoServices.eliminarArchivo(this.encriptadoBasico.encriptar(rutaComplemento), propiedad, '1'));
245
- this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);
246
- this.archivoSeleccionado = null;
247
- this.filterValue = null;
248
- this.ngOnInit();
249
- }
250
- isFormatoValido(nombreArchivo) {
251
- // Verifica si el archivo termina con alguna de las extensiones válidas
252
- return Array.from(this.FORMATS_VALIDOS).some(ext => nombreArchivo.endsWith(ext));
253
- }
254
- crearCarpeta() {
255
- this.isVisualizarCrearCaperta = true;
256
- this.nomNuevaCarpeta = null;
257
- }
258
- async guardarCarpeta() {
259
- if (this.miFormulario.valid) {
260
- let rutaComplemento = this.archivoSeleccionado.data;
261
- if (!this.archivoSeleccionado?.parent) {
262
- rutaComplemento = '';
263
- }
264
- await firstValueFrom(this.plantillasService.crearCarpeta(this.rutaPrincipal, rutaComplemento, this.nomNuevaCarpeta));
265
- this.toastService.showSuccess('La carpeta se ha creado correctamente');
266
- this.ngOnInit();
267
- }
268
- else {
269
- this.toastService.showError('Faltan campos obligatorios');
270
- Object.keys(this.miFormulario.controls).forEach((key) => {
271
- if (this.miFormulario.controls[key].invalid) {
272
- this.miFormulario.controls[key].markAsDirty();
273
- }
274
- });
275
- }
276
- }
277
- eliminarCarpeta() {
278
- this.isVisualizarCrearCaperta = false;
279
- this.confirmationService.confirm({
280
- target: event.target,
281
- key: 'eliminarCarpeta',
282
- message: '¿Desea eliminar el registro?',
283
- acceptLabel: 'Si',
284
- icon: 'confirmar',
285
- accept: () => {
286
- this.setEliminarCarpeta();
287
- },
288
- reject: () => { },
289
- });
290
- }
291
- async setEliminarCarpeta() {
292
- let rutaComplemento = this.archivoSeleccionado.data;
293
- if (!this.archivoSeleccionado?.parent) {
294
- rutaComplemento = '';
295
- }
296
- this.plantillasService.eliminarCarpeta(this.rutaPrincipal, rutaComplemento).subscribe(rta => {
297
- this.toastService.showSuccess('La carpeta ha sido eliminada correctamente');
298
- this.archivoSeleccionado = null;
299
- this.filterValue = null;
300
- this.ngOnInit();
301
- });
302
- }
303
- async convertirArchivos() {
304
- this.isVisualizarCrearCaperta = false;
305
- this.isMostrarPopupConvertir = true;
306
- //const filteredNodes = this.getFilteredNodes();
307
- const valorFiltro = this.filterValue;
308
- const sleep = (m) => new Promise((r) => setTimeout(r, m));
309
- await sleep(50);
310
- this.popupConvertirPlantillasComponent.buscar(this.rutaPrincipal, valorFiltro);
311
- }
312
- regresarPopupConvertir($event) {
313
- this.isMostrarPopupConvertir = false;
314
- this.ngOnInit();
315
- }
316
- isHtml() {
317
- this.html = false;
318
- if (this.archivoSeleccionado != null && this.archivoSeleccionado.label != null && this.archivoSeleccionado.label.includes('.html'))
319
- this.html = true;
320
- return this.html;
321
- }
322
- async editarAction() {
323
- let data = await firstValueFrom(this.plantillasService.consultarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data));
324
- this.modificarHTML = data;
325
- this.mostrarEditor = true;
326
- }
327
- async guardarHtml() {
328
- await firstValueFrom(this.plantillasService.guardarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data, this.modificarHTML));
329
- this.toastService.showSuccess('El archivo ha sido modificado correctamente');
330
- this.ngOnInit();
331
- }
332
- regresarPrincipal() {
333
- this.mostrarEditor = false;
334
- }
335
- verificarControl(control) {
336
- return this.controlFuncionService.getControlFuncionalidad(control);
337
- }
338
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CarguePlantillaGeneralComponent, deps: [{ token: i1.PlantillasService }, { token: i2.AuthService }, { token: i3.TranslateService }, { token: i4.CargarControlFuncionalidadService }, { token: i5.ConfirmationService }, { token: i6.ToastService }, { token: i7.CargarArchivosService }, { token: i8.EncriptadoBasicoService }, { token: i9.GeneralPipe }, { token: i10.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
339
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: CarguePlantillaGeneralComponent, isStandalone: true, selector: "app-cargue-plantilla-general", providers: [
340
- ConfirmationService
341
- ], viewQueries: [{ propertyName: "popupConvertirPlantillasComponent", first: true, predicate: PopupConvertirPlantillasComponent, descendants: true }, { propertyName: "miFormulario", first: true, predicate: ["miFormulario"], descendants: true }, { propertyName: "treeComponent", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\r\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\r\n\r\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\r\n\r\n<div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\r\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\r\n (keydown)=\"filtrarEnter($event)\" />\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\r\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\r\n </div>\r\n\r\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\r\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\r\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\r\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\r\n </div>\r\n\r\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\r\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\r\n\r\n @if(!this.loading){\r\n <div class=\"card p-3\">\r\n\r\n <!-- CARPETA -->\r\n @if(archivoSeleccionado.expanded){\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-between\">\r\n\r\n <!-- Convertir -->\r\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\r\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Nueva Carpeta-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-floppy-save color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Eliminar-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!-- Cargar Archivo -->\r\n <div [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\r\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-trash\"></i>\r\n </div>\r\n </p-fileUpload>\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- ARCHIVO-->\r\n @if(!archivoSeleccionado.expanded){\r\n\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n @if(archivoSeleccionado.label.includes('.html')){\r\n\r\n <!--EDITAR HTML-->\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600\" label=\"Editar HTML\">\r\n </button>\r\n }\r\n\r\n <!-- DESCARGAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-download color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--ELIMINAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\r\n <div class=\"card\">\r\n\r\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\r\n\r\n <form #miFormulario=\"ngForm\">\r\n <!-- campos -->\r\n <div class=\"flex mb-3\">\r\n <!-- Nombre -->\r\n <div class=\"w-full p-0 mb-0\">\r\n <span class=\"p-float-label mr-2\">\r\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\r\n name=\"nombreCarpeta\">\r\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n <!--Guardar Carpeta-->\r\n <button pButton pRipple class=\"mr-2 p-button background-100 color-500\"\r\n icon=\"glyphicons glyphicons-floppy-save\" [label]=\"('link_guardar' | translate)\"\r\n (click)=\"guardarCarpeta()\">\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n }\r\n <!-- EDITOR DE HTML -->\r\n <div *ngIf=\"isHtml() && mostrarEditor\">\r\n\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <!-- Bot\u00F3n guardar HTML -->\r\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-secondary\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\r\n </div>\r\n\r\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\r\n name=\"htmlPublicacion\"></p-editor>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if(isMostrarPopupConvertir){\r\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\r\n}", styles: [":host ::ng-deep .p-fluid .p-fileupload .p-button{width:100%}:host ::ng-deep .min-width-20{min-width:20%}:host ::ng-deep .min-width-100{min-width:30%}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TreeModule }, { kind: "component", type: i12.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i13.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i14.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "directive", type: i15.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i16.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i17.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i17.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i17.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i17.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i17.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i17.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i17.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FieldsetModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i18.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: PopupConvertirPlantillasComponent, selector: "app-popup-convertir-plantillas", inputs: ["showDialog"], outputs: ["onSelected", "regresar"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i19.Editor, selector: "p-editor", inputs: ["style", "styleClass", "placeholder", "formats", "modules", "bounds", "scrollingContainer", "debug", "readonly"], outputs: ["onInit", "onTextChange", "onSelectionChange"] }] });
342
- }
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CarguePlantillaGeneralComponent, decorators: [{
344
- type: Component,
345
- args: [{ selector: 'app-cargue-plantilla-general', standalone: true, imports: [TranslateModule,
346
- CommonModule,
347
- TreeModule,
348
- InputTextModule,
349
- ButtonModule,
350
- SplitButtonModule,
351
- ConfirmPopupModule,
352
- FormsModule,
353
- FieldsetModule,
354
- FileUploadModule,
355
- PopupConvertirPlantillasComponent,
356
- EditorModule
357
- ], providers: [
358
- ConfirmationService
359
- ], template: "<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\r\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\r\n\r\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\r\n\r\n<div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\r\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\r\n (keydown)=\"filtrarEnter($event)\" />\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\r\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\r\n </div>\r\n\r\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\r\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\r\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\r\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\r\n </div>\r\n\r\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\r\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\r\n\r\n @if(!this.loading){\r\n <div class=\"card p-3\">\r\n\r\n <!-- CARPETA -->\r\n @if(archivoSeleccionado.expanded){\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-between\">\r\n\r\n <!-- Convertir -->\r\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\r\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Nueva Carpeta-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-floppy-save color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Eliminar-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!-- Cargar Archivo -->\r\n <div [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\r\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-trash\"></i>\r\n </div>\r\n </p-fileUpload>\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- ARCHIVO-->\r\n @if(!archivoSeleccionado.expanded){\r\n\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n @if(archivoSeleccionado.label.includes('.html')){\r\n\r\n <!--EDITAR HTML-->\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600\" label=\"Editar HTML\">\r\n </button>\r\n }\r\n\r\n <!-- DESCARGAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-download color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--ELIMINAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\r\n <div class=\"card\">\r\n\r\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\r\n\r\n <form #miFormulario=\"ngForm\">\r\n <!-- campos -->\r\n <div class=\"flex mb-3\">\r\n <!-- Nombre -->\r\n <div class=\"w-full p-0 mb-0\">\r\n <span class=\"p-float-label mr-2\">\r\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\r\n name=\"nombreCarpeta\">\r\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n <!--Guardar Carpeta-->\r\n <button pButton pRipple class=\"mr-2 p-button background-100 color-500\"\r\n icon=\"glyphicons glyphicons-floppy-save\" [label]=\"('link_guardar' | translate)\"\r\n (click)=\"guardarCarpeta()\">\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n }\r\n <!-- EDITOR DE HTML -->\r\n <div *ngIf=\"isHtml() && mostrarEditor\">\r\n\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <!-- Bot\u00F3n guardar HTML -->\r\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-secondary\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\r\n </div>\r\n\r\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\r\n name=\"htmlPublicacion\"></p-editor>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if(isMostrarPopupConvertir){\r\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\r\n}", styles: [":host ::ng-deep .p-fluid .p-fileupload .p-button{width:100%}:host ::ng-deep .min-width-20{min-width:20%}:host ::ng-deep .min-width-100{min-width:30%}\n"] }]
360
- }], ctorParameters: () => [{ type: i1.PlantillasService }, { type: i2.AuthService }, { type: i3.TranslateService }, { type: i4.CargarControlFuncionalidadService }, { type: i5.ConfirmationService }, { type: i6.ToastService }, { type: i7.CargarArchivosService }, { type: i8.EncriptadoBasicoService }, { type: i9.GeneralPipe }, { type: i10.UtilsService }], propDecorators: { popupConvertirPlantillasComponent: [{
361
- type: ViewChild,
362
- args: [PopupConvertirPlantillasComponent]
363
- }], miFormulario: [{
364
- type: ViewChild,
365
- args: ['miFormulario', { static: false }]
366
- }], treeComponent: [{
367
- type: ViewChild,
368
- args: ['tree']
369
- }] } });
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BhZ2VzL2Nhcmd1ZS1wbGFudGlsbGEvY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9wYWdlcy9jYXJndWUtcGxhbnRpbGxhL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC9jYXJndWUtcGxhbnRpbGxhLWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FB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Q2YsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUNBQWlDO3dCQUNqQyxZQUFZO3FCQUNiLGFBR1U7d0JBQ1QsbUJBQW1CO3FCQUNwQjs0WEFJNkMsaUNBQWlDO3NCQUE5RSxTQUFTO3VCQUFDLGlDQUFpQztnQkFDRSxZQUFZO3NCQUF6RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3pCLGFBQWE7c0JBQS9CLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZW51SXRlbSwgVHJlZU5vZGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBTcGxpdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xyXG5pbXBvcnQgeyBUcmVlLCBUcmVlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGFudGlsbGFzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3dlYmNvbW1vbi9zZXJ2aWNlcy9wbGFudGlsbGFzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJnYXJDb250cm9sRnVuY2lvbmFsaWRhZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy9jYXJnYXItY29udHJvbC1mdW5jaW9uYWxpZGFkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpZWxkc2V0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9maWVsZHNldCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy90b2FzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FyZ2FyQXJjaGl2b3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9jYXJnYXItYXJjaGl2b3Muc2VydmljZSc7XHJcbmltcG9ydCB7IEVuY3JpcHRhZG9CYXNpY29TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9lbmNyaXB0YWRvLWJhc2ljby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2VuZXJhbFBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi93ZWJjb21tb24vcGlwZXMvZ2VuZXJhbC5waXBlJztcclxuaW1wb3J0IHsgUG9wdXBDb252ZXJ0aXJQbGFudGlsbGFzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2ViY29tbW9uL3BvcHVwcy9wb3B1cC1jb252ZXJ0aXItcGxhbnRpbGxhcy9wb3B1cC1jb252ZXJ0aXItcGxhbnRpbGxhcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRWRpdG9yTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9lZGl0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUcmVlTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgU3BsaXRCdXR0b25Nb2R1bGUsXHJcbiAgICBDb25maXJtUG9wdXBNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEZpZWxkc2V0TW9kdWxlLFxyXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcclxuICAgIFBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudCxcclxuICAgIEVkaXRvck1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb25maXJtYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZ3VlUGxhbnRpbGxhR2VuZXJhbENvbXBvbmVudCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoUG9wdXBDb252ZXJ0aXJQbGFudGlsbGFzQ29tcG9uZW50KSBwb3B1cENvbnZlcnRpclBsYW50aWxsYXNDb21wb25lbnQ6IFBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdtaUZvcm11bGFyaW8nLCB7IHN0YXRpYzogZmFsc2UgfSkgbWlGb3JtdWxhcmlvITogTmdGb3JtO1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWUnKSB0cmVlQ29tcG9uZW50ITogVHJlZTtcclxuXHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBwcm9waWVkYWQ6IHN0cmluZztcclxuICBleHRlbnNpb25lczogc3RyaW5nO1xyXG4gIHByb3BpZWRhZERlU2lzdGVtYTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFuZXhvUHJvcGllZGFkOiBzdHJpbmcgPSAnJztcclxuICBmaWxlczogVHJlZU5vZGVbXTtcclxuICBkYXRhU2VsZWN0ZWQ6IFRyZWVOb2RlO1xyXG4gIGl0ZW1zQm90b25BY2Npb25lczogTWVudUl0ZW1bXTtcclxuICB2ZXJDb252ZXJ0aXI6IGJvb2xlYW47XHJcbiAgbm9tTnVldmFDYXJwZXRhOiBzdHJpbmc7XHJcbiAgaXNWaXN1YWxpemFyQ3JlYXJDYXBlcnRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXJjaGl2b1NlbGVjY2lvbmFkb0FuZXhvOiBGaWxlO1xyXG4gIGFyY2hpdm9TZWxlY2Npb25hZG86IFRyZWVOb2RlO1xyXG4gIGlzTW9zdHJhclBvcHVwQ29udmVydGlyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcnV0YVByaW5jaXBhbDogc3RyaW5nO1xyXG4gIGZpbHRlcmVkRmlsZXM6IFRyZWVOb2RlW10gPSBbXTtcclxuICBmaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEZPUk1BVFNfVkFMSURPUzogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcclxuICAgICcuZG9jJyxcclxuICAgICcuaHRtbCcsXHJcbiAgICAnLmphc3BlcicsXHJcbiAgICAnLnhscycsXHJcbiAgICAnLmpyeG1sJyxcclxuICAgICcub2R0JyxcclxuICAgICcueGxzbScsXHJcbiAgICAnLnhsc3gnLFxyXG4gICAgJy5wZ3AnLFxyXG4gICAgJy5hc2MnLFxyXG4gICAgJy5jZXInLFxyXG4gICAgJy5wMTInLFxyXG4gICAgJy5kb2N4JyxcclxuICAgICcucHJvcGVydGllcydcclxuICBdKTtcclxuICBmaWx0cm9Db252ZXJ0aXI6IHN0cmluZztcclxuICBodG1sOiBib29sZWFuO1xyXG4gIG1vc3RyYXJFZGl0b3I6IGJvb2xlYW47XHJcbiAgbW9kaWZpY2FySFRNTDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBsYW50aWxsYXNTZXJ2aWNlOiBQbGFudGlsbGFzU2VydmljZSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvbnRyb2xGdW5jaW9uU2VydmljZTogQ2FyZ2FyQ29udHJvbEZ1bmNpb25hbGlkYWRTZXJ2aWNlLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIGNhcmdhckFyY2hpdm9TZXJ2aWNlczogQ2FyZ2FyQXJjaGl2b3NTZXJ2aWNlLCBwcml2YXRlIGVuY3JpcHRhZG9CYXNpY286IEVuY3JpcHRhZG9CYXNpY29TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnZW5lcmFsUGlwZTogR2VuZXJhbFBpcGUsIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRoaXMubW9zdHJhckVkaXRvciA9IGZhbHNlO1xyXG4gICAgbGV0IGNvbnN1bHRhclJ1dGFQcmluY2lwYWwgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmNhcmdhckFyY2hpdm9TZXJ2aWNlcy5nZXRQcm9waWVkYWQoeyBwcm9waWVkYWQ6IFwicnV0YV9wbGFudGlsbGFzXCIsIGFwbGljYWNpb246IDEgfSkpO1xyXG4gICAgbGV0IGNvbnZlcnRpciA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuY2FyZ2FyQXJjaGl2b1NlcnZpY2VzLmdldFByb3BpZWRhZCh7IHByb3BpZWRhZDogXCJzZXJ2aWRvcl9vcGVuT2ZmaWNlXCIsIGFwbGljYWNpb246IDAgfSkpO1xyXG4gICAgdGhpcy52ZXJDb252ZXJ0aXIgPSAhY29udmVydGlyLnZhbG9yLnZhbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5ydXRhUHJpbmNpcGFsID0gY29uc3VsdGFyUnV0YVByaW5jaXBhbC52YWxvci52YWxvcjtcclxuICAgIHRoaXMuaXNWaXN1YWxpemFyQ3JlYXJDYXBlcnRhID0gZmFsc2U7XHJcbiAgICBhd2FpdCB0aGlzLm9wZW5EYXRhVGFibGUoKTtcclxuXHJcbiAgICBjb25zdCBzbGVlcCA9IChtKSA9PiBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCBtKSk7XHJcbiAgICBhd2FpdCBzbGVlcCgxMDApO1xyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlclZhbHVlKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuYXBsaWNhckZpbHRybygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb3BlbkRhdGFUYWJsZSgpIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5wcm9waWVkYWQpIHtcclxuICAgICAgICB0aGlzLnByb3BpZWRhZCA9ICdydXRhX3BsYW50aWxsYXMnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wbGFudGlsbGFzU2VydmljZS5vYnRlbmVyQXJjaGl2b3MoXHJcbiAgICAgICAgdGhpcy5wcm9waWVkYWQsIHRoaXMucHJvcGllZGFkRGVTaXN0ZW1hID8gJzAnIDogdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbktleSgnYXBsaWNhY2lvbicpLCAnZG9jO2h0bWw7amFzcGVyO3hscztqcnhtbDtvZHQ7eGxzbTt4bHN4O3BncDthc2M7Y2VyO3AxMjtkb2N4O3Byb3BlcnRpZXMnLCB0aGlzLmFuZXhvUHJvcGllZGFkLCB0cnVlKS5zdWJzY3JpYmVcclxuICAgICAgICAocnRhID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsZXMgPSBydGE7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmlsZXMgPSBydGFcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8pIHtcclxuICAgICAgICAgICAgdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvID0gdGhpcy5maWxlc1swXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYXBsaWNhckZpbHRybygpIHtcclxuICAgIHRoaXMuZmlsdHJvQ29udmVydGlyID0gdGhpcy5maWx0ZXJWYWx1ZTtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEZpbGVzID0gdGhpcy5vYnRlbmVyRmlsdHJvc05vZG9zKHRoaXMuZmlsZXMsIHRoaXMuZmlsdGVyVmFsdWUpO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgb2J0ZW5lckZpbHRyb3NOb2Rvcyhub2RlczogVHJlZU5vZGVbXSwgZmlsdGVyVmFsdWU6IHN0cmluZyk6IFRyZWVOb2RlW10ge1xyXG5cclxuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRyb0F2YW56YWRvKGZpbHRlclZhbHVlKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJlZE5vZGVzOiBUcmVlTm9kZVtdID0gW107XHJcblxyXG4gICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcclxuXHJcbiAgICAgIC8vIFZlcmlmaWNhIHNpIGVsIG5vZG8gYWN0dWFsIG8gYWxndW5vIGRlIHN1cyBoaWpvcyBjdW1wbGUgY29uIGVsIGZpbHRyb1xyXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4gPyB0aGlzLm9idGVuZXJGaWx0cm9zTm9kb3Mobm9kZS5jaGlsZHJlbiwgZmlsdGVyVmFsdWUpIDogW107XHJcblxyXG4gICAgICBjb25zdCBub2RlTWF0Y2hlcyA9IGZpbHRlcnMuc29tZShmaWx0ZXIgPT4gbm9kZS5sYWJlbC5pbmNsdWRlcyhmaWx0ZXIpKTtcclxuXHJcbiAgICAgIGlmIChub2RlTWF0Y2hlcyB8fCBjaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWROb2Rlcy5wdXNoKHsgLi4ubm9kZSwgY2hpbGRyZW4gfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmaWx0ZXJlZE5vZGVzO1xyXG4gIH1cclxuXHJcbiAgZmlsdHJvQXZhbnphZG8oc2VhcmNoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgaWYgKHNlYXJjaC5pbmNsdWRlcygnKycpKSB7XHJcbiAgICAgIGxldCBhdXggPSBzZWFyY2g7XHJcblxyXG4gICAgICBpZiAoYXV4LnN0YXJ0c1dpdGgoJysnKSkge1xyXG4gICAgICAgIGF1eCA9IGF1eC5zdWJzdHJpbmcoMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF1eCA9IGF1eC5yZXBsYWNlKC9cXCsvZywgJzonKTtcclxuICAgICAgY29uc3QgaXRlbXMgPSBhdXgudHJpbSgpLnNwbGl0KCc6Jyk7XHJcbiAgICAgIHJldHVybiBpdGVtcztcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW3NlYXJjaF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0cmFyRW50ZXIoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5hcGxpY2FyRmlsdHJvKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY2Npb25hckFyY2hpdm8oZXZlbnQpIHtcclxuICAgIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbyA9IGV2ZW50Lm5vZGU7XHJcbiAgICB0aGlzLm1vc3RyYXJFZGl0b3IgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc2VsZWNjaW9uYXJBcmNoaXZvKCRldmVudCkge1xyXG4gICAgdGhpcy5kYXRhU2VsZWN0ZWQgPSBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIGNhcmdhck51ZXZvKGV2ZW50LCBmdWJhdXRvKSB7XHJcblxyXG4gICAgdGhpcy5pc1Zpc3VhbGl6YXJDcmVhckNhcGVydGEgPSBmYWxzZTtcclxuICAgIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkb0FuZXhvID0gZXZlbnQuZmlsZXNbMF07XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzRm9ybWF0b1ZhbGlkbyh0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG9BbmV4by5uYW1lKSkge1xyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93V2FybmluZyhcIlNlIGRlYmUgYWdyZWdhciB1biBhcmNoaXZvIFwiICsgQXJyYXkuZnJvbSh0aGlzLkZPUk1BVFNfVkFMSURPUykuam9pbignLCAnKSlcclxuICAgICAgZnViYXV0by5jbGVhcigpO1xyXG4gICAgICAvL3RoaXMudG9hc3RTZXJ2aWNlLnNob3dXYXJuaW5nKFwiU2UgZGViZSBhZ3JlZ2FyIHVuIGFyY2hpdm8gLmRvYywgLmRvY3gsIC54bHMsIC54bHN4ICwgLnhsc20sIC5qcnhtbCwgLm9kdCwgLmphc3BlciwgLnBncCwgLmFzYywgLmNlciwgLnByb3BlcnRpZXMgbyAuaHRtbFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2FyZ2FyIEFyY2hpdm8gVGVtcG9yYWxcclxuICAgIGxldCByZXN1bHRhZG8gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmNhcmdhckRvY3VtZW50b1RlbXBvcmFsKHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkb0FuZXhvKSk7XHJcblxyXG4gICAgZnViYXV0by5jbGVhcigpO1xyXG5cclxuICAgIGlmIChyZXN1bHRhZG8/LnZhbGlkYWNpb24pIHtcclxuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvd1N1Y2Nlc3MocmVzdWx0YWRvPy52YWxpZGFjaW9uKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpbmZvcm1hY2lvbkFyY2hpdm8gPSByZXN1bHRhZG8/LmluZm9ybWFjaW9uQXJjaGl2byA/IHJlc3VsdGFkbz8uaW5mb3JtYWNpb25BcmNoaXZvIDogbnVsbDtcclxuXHJcbiAgICAvL09idGVuZXIgUnV0YXNcclxuICAgIGxldCBydXRhQ29tcGxlbWVudG8gPSB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8uZGF0YTtcclxuXHJcbiAgICAvL2xldCBvYmpldG8gPSAoYXdhaXQgdGhpcy5jYXJnYXJBcmNoaXZvU2VydmljZXMuZ2V0UHJvcGllZGFkKHsgcHJvcGllZGFkOiBcInJ1dGFfcGxhbnRpbGxhc1wiLCBhcGxpY2FjaW9uOiAxIH0pLnRvUHJvbWlzZSgpKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbz8ucGFyZW50KSB7XHJcbiAgICAgIHJ1dGFDb21wbGVtZW50byA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVmVyaWZpY2Egc2kgZWwgZG9jdW1lbnRvIHlhIGV4aXN0ZSBcclxuICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5wbGFudGlsbGFzU2VydmljZS5leGlzdGVEb2N1bWVudG8odGhpcy5ydXRhUHJpbmNpcGFsLCBydXRhQ29tcGxlbWVudG8sIGluZm9ybWFjaW9uQXJjaGl2bykpO1xyXG5cclxuICAgIGlmIChkYXRhPy52YWxpZGFjaW9uRG9jdW1lbnRvKSB7XHJcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3dXYXJuaW5nKGRhdGE/LnZhbGlkYWNpb25Eb2N1bWVudG8pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy9HdWFyZGEgZWwgZG9jdW1lbnRvXHJcbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmNhcmdhckRvY3VtZW50byh0aGlzLnJ1dGFQcmluY2lwYWwsIHJ1dGFDb21wbGVtZW50bywgaW5mb3JtYWNpb25BcmNoaXZvKSk7XHJcblxyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIGRlc2NhcmdhckFuZXhvKCkge1xyXG5cclxuICAgIC8vUnV0YSBhcmNoaXZvICBcclxuICAgIGxldCBydXRhQ29tcGxlbWVudG8gPSB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8uZGF0YTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbz8ucGFyZW50KSB7XHJcbiAgICAgIHJ1dGFDb21wbGVtZW50byA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2FyZ2FyQXJjaGl2b1NlcnZpY2VzLmRlc2NhcmdhckFyY2hpdm8odGhpcy5lbmNyaXB0YWRvQmFzaWNvLmVuY3JpcHRhcih0aGlzLnJ1dGFQcmluY2lwYWwgKyBydXRhQ29tcGxlbWVudG8pLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkuc3Vic2NyaWJlKGJsb2IgPT4ge1xyXG4gICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICBhLmhyZWYgPSBvYmplY3RVcmw7XHJcbiAgICAgIGEuZG93bmxvYWQgPSB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LmxhYmVsO1xyXG4gICAgICBhLmNsaWNrKCk7XHJcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGVsaW1pbmFyQXJjaGl2bygpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXHJcbiAgICAgIGtleTogJ2VsaW1pbmFyQXJjaGl2bycsXHJcbiAgICAgIG1lc3NhZ2U6ICfCv0Rlc2VhIGVsaW1pbmFyIGVsIHJlZ2lzdHJvPycsXHJcbiAgICAgIGFjY2VwdExhYmVsOiAnU2knLFxyXG4gICAgICBpY29uOiAnY29uZmlybWFyJyxcclxuICAgICAgYWNjZXB0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRFbGltaW5hckFyY2hpdm8oKTtcclxuICAgICAgfSxcclxuICAgICAgcmVqZWN0OiAoKSA9PiB7IH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNldEVsaW1pbmFyQXJjaGl2bygpIHtcclxuXHJcbiAgICAvL1J1dGEgYXJjaGl2byAgXHJcbiAgICBsZXQgcnV0YUNvbXBsZW1lbnRvID0gdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvLmRhdGE7XHJcblxyXG4gICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LnBhcmVudCkge1xyXG4gICAgICBydXRhQ29tcGxlbWVudG8gPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcHJvcGllZGFkID0gJ3J1dGFfcGxhbnRpbGxhcydcclxuICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuY2FyZ2FyQXJjaGl2b1NlcnZpY2VzLmVsaW1pbmFyQXJjaGl2byh0aGlzLmVuY3JpcHRhZG9CYXNpY28uZW5jcmlwdGFyKHJ1dGFDb21wbGVtZW50byksIHByb3BpZWRhZCwgJzEnKSk7XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93U3VjY2Vzcyh0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVIpO1xyXG4gICAgdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvID0gbnVsbDtcclxuICAgIHRoaXMuZmlsdGVyVmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgaXNGb3JtYXRvVmFsaWRvKG5vbWJyZUFyY2hpdm86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVmVyaWZpY2Egc2kgZWwgYXJjaGl2byB0ZXJtaW5hIGNvbiBhbGd1bmEgZGUgbGFzIGV4dGVuc2lvbmVzIHbDoWxpZGFzXHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLkZPUk1BVFNfVkFMSURPUykuc29tZShleHQgPT4gbm9tYnJlQXJjaGl2by5lbmRzV2l0aChleHQpKTtcclxuICB9XHJcblxyXG4gIGNyZWFyQ2FycGV0YSgpIHtcclxuICAgIHRoaXMuaXNWaXN1YWxpemFyQ3JlYXJDYXBlcnRhID0gdHJ1ZTtcclxuICAgIHRoaXMubm9tTnVldmFDYXJwZXRhID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGd1YXJkYXJDYXJwZXRhKCkge1xyXG5cclxuICAgIGlmICh0aGlzLm1pRm9ybXVsYXJpby52YWxpZCkge1xyXG5cclxuICAgICAgbGV0IHJ1dGFDb21wbGVtZW50byA9IHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LnBhcmVudCkge1xyXG4gICAgICAgIHJ1dGFDb21wbGVtZW50byA9ICcnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmNyZWFyQ2FycGV0YSh0aGlzLnJ1dGFQcmluY2lwYWwsIHJ1dGFDb21wbGVtZW50bywgdGhpcy5ub21OdWV2YUNhcnBldGEpKTtcclxuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0xhIGNhcnBldGEgc2UgaGEgY3JlYWRvIGNvcnJlY3RhbWVudGUnKTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93RXJyb3IoJ0ZhbHRhbiBjYW1wb3Mgb2JsaWdhdG9yaW9zJyk7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMubWlGb3JtdWxhcmlvLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5taUZvcm11bGFyaW8uY29udHJvbHNba2V5XS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLm1pRm9ybXVsYXJpby5jb250cm9sc1trZXldLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBlbGltaW5hckNhcnBldGEoKSB7XHJcblxyXG4gICAgdGhpcy5pc1Zpc3VhbGl6YXJDcmVhckNhcGVydGEgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcbiAgICAgIHRhcmdldDogZXZlbnQudGFyZ2V0LFxyXG4gICAgICBrZXk6ICdlbGltaW5hckNhcnBldGEnLFxyXG4gICAgICBtZXNzYWdlOiAnwr9EZXNlYSBlbGltaW5hciBlbCByZWdpc3Rybz8nLFxyXG4gICAgICBhY2NlcHRMYWJlbDogJ1NpJyxcclxuICAgICAgaWNvbjogJ2NvbmZpcm1hcicsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RWxpbWluYXJDYXJwZXRhKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHJlamVjdDogKCkgPT4geyB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZXRFbGltaW5hckNhcnBldGEoKSB7XHJcblxyXG4gICAgbGV0IHJ1dGFDb21wbGVtZW50byA9IHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhO1xyXG5cclxuICAgIGlmICghdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvPy5wYXJlbnQpIHtcclxuICAgICAgcnV0YUNvbXBsZW1lbnRvID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wbGFudGlsbGFzU2VydmljZS5lbGltaW5hckNhcnBldGEodGhpcy5ydXRhUHJpbmNpcGFsLCBydXRhQ29tcGxlbWVudG8pLnN1YnNjcmliZShydGEgPT4ge1xyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93U3VjY2VzcygnTGEgY2FycGV0YSBoYSBzaWRvIGVsaW1pbmFkYSBjb3JyZWN0YW1lbnRlJyk7XHJcbiAgICAgIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbyA9IG51bGw7XHJcbiAgICAgIHRoaXMuZmlsdGVyVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbnZlcnRpckFyY2hpdm9zKCkge1xyXG5cclxuICAgIHRoaXMuaXNWaXN1YWxpemFyQ3JlYXJDYXBlcnRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTW9zdHJhclBvcHVwQ29udmVydGlyID0gdHJ1ZTtcclxuICAgIC8vY29uc3QgZmlsdGVyZWROb2RlcyA9IHRoaXMuZ2V0RmlsdGVyZWROb2RlcygpO1xyXG4gICAgY29uc3QgdmFsb3JGaWx0cm8gPSB0aGlzLmZpbHRlclZhbHVlO1xyXG5cclxuICAgIGNvbnN0IHNsZWVwID0gKG0pID0+IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIG0pKTtcclxuICAgIGF3YWl0IHNsZWVwKDUwKTtcclxuXHJcbiAgICB0aGlzLnBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudC5idXNjYXIodGhpcy5ydXRhUHJpbmNpcGFsLCB2YWxvckZpbHRybyk7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVncmVzYXJQb3B1cENvbnZlcnRpcigkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5pc01vc3RyYXJQb3B1cENvbnZlcnRpciA9IGZhbHNlO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgaXNIdG1sKCkge1xyXG4gICAgdGhpcy5odG1sID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbyAhPSBudWxsICYmIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbCAhPSBudWxsICYmIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbC5pbmNsdWRlcygnLmh0bWwnKSlcclxuICAgICAgdGhpcy5odG1sID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odG1sO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZWRpdGFyQWN0aW9uKCkge1xyXG5cclxuICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5wbGFudGlsbGFzU2VydmljZS5jb25zdWx0YXJBcmNoaXZvSHRtbCh0aGlzLnJ1dGFQcmluY2lwYWwsIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhKSk7XHJcblxyXG4gICAgdGhpcy5tb2RpZmljYXJIVE1MID0gZGF0YTtcclxuXHJcbiAgICB0aGlzLm1vc3RyYXJFZGl0b3IgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ3VhcmRhckh0bWwoKSB7XHJcblxyXG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5wbGFudGlsbGFzU2VydmljZS5ndWFyZGFyQXJjaGl2b0h0bWwodGhpcy5ydXRhUHJpbmNpcGFsLCB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8uZGF0YSwgdGhpcy5tb2RpZmljYXJIVE1MKSk7XHJcblxyXG4gICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0VsIGFyY2hpdm8gaGEgc2lkbyBtb2RpZmljYWRvIGNvcnJlY3RhbWVudGUnKTtcclxuXHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVncmVzYXJQcmluY2lwYWwoKSB7XHJcbiAgICB0aGlzLm1vc3RyYXJFZGl0b3IgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2ZXJpZmljYXJDb250cm9sKGNvbnRyb2wpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZChjb250cm9sKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJlbGltaW5hckNhcnBldGFcIj48L3AtY29uZmlybVBvcHVwPlxyXG48cC1jb25maXJtUG9wdXAga2V5PVwiZWxpbWluYXJBcmNoaXZvXCI+PC9wLWNvbmZpcm1Qb3B1cD5cclxuXHJcbjxoMSBjbGFzcz1cIm1iLTRcIj57eydjYXJndWUnIHwgdHJhbnNsYXRlfX0ge3sncGxhbnRpbGxhcycgfCB0cmFuc2xhdGV9fTwvaDE+XHJcblxyXG48ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWRcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC01IGNhcmQgcC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cImZpbHRlclZhbHVlXCIgcGxhY2Vob2xkZXI9XCJ7eydmaWx0cm8nIHwgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiZmlsdHJhckVudGVyKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLXNlYXJjaCB0ZXh0LXhsXCIgKGNsaWNrKT1cImFwbGljYXJGaWx0cm8oKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtZWxlbWVudCBwLXJpcHBsZSBwLWJ1dHRvbi1yb3VuZGVkICBwLWJ1dHRvbi1zZWNvbmRhcnkgcC1idXR0b24gcC1jb21wb25lbnQgcC1idXR0b24taWNvbi1vbmx5IGFic29sdXRlIHJpZ2h0LTAgYm9yZGVyLW5vbmUgYmctd2hpdGUtYWxwaGEtMTBcIlxyXG4gICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgcFRvb2x0aXA9XCJFZGl0YXIgSFRNTFwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8cC10cmVlICN0cmVlIHNjcm9sbEhlaWdodD1cIjY3MHB4XCIgW3ZhbHVlXT1cImZpbHRlcmVkRmlsZXNcIiBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCIgWyhzZWxlY3Rpb24pXT1cImRhdGFTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgIFtmaWx0ZXJdPVwiZmFsc2VcIiBbZmlsdGVyUGxhY2Vob2xkZXJdPVwiJ2ZpbHRybycgfCB0cmFuc2xhdGVcIiBmaWx0ZXJNb2RlPVwic3RyaWN0XCJcclxuICAgICAgICAgICAgKG9uTm9kZVNlbGVjdCk9XCJzZWxlY2Npb25hckFyY2hpdm8oJGV2ZW50KVwiIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAob25Ob2RlVW5zZWxlY3QpPVwiZGVzZWxlY2Npb25hckFyY2hpdm8oJGV2ZW50KVwiPjwvcC10cmVlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPUENJTkVTIERJUkVDVE9SSU9TIC0gQVJDSElWT1MgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC03IHAtMCBwbC0zXCI+XHJcblxyXG4gICAgICAgIEBpZighdGhpcy5sb2FkaW5nKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBwLTNcIj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQ0FSUEVUQSAtLT5cclxuICAgICAgICAgICAgQGlmKGFyY2hpdm9TZWxlY2Npb25hZG8uZXhwYW5kZWQpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRleHQteGwgbXQtMiBtYi00IG1yLTNcIj5DYXJwZXRhOiA8L2gxPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwidGV4dC1zbSBtdC0yIG1iLTRcIj4ge3thcmNoaXZvU2VsZWNjaW9uYWRvLmxhYmVsfX0gPC9oNT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ29udmVydGlyIC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIChjbGljayk9XCJjb252ZXJ0aXJBcmNoaXZvcygpXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZlckNvbnZlcnRpciAmJiBjb250cm9sRnVuY2lvblNlcnZpY2UuZ2V0Q29udHJvbEZ1bmNpb25hbGlkYWQoJ3NlZ3VwbGFjb3I6Z3VhcmRhcicpXCJcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBsYWJlbD1cInt7J2NvbnZlcnRpcicgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBib3Rvbi1hY2Npb24tcHJpbmNpcGFsIHRleHQtZ3JheS02MDAgY29sb3ItNTAwXCJcclxuICAgICAgICAgICAgICAgICAgICBwVG9vbHRpcD1cIkNvbnZlcnRpciBhcmNoaXZvXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbmVkb3ItaWNvbm8tYWNjaW9uZXMtcHJpbmNpcGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktYXJyb3ctcmlnaHQtYXJyb3ctbGVmdCBjb2xvci01MDBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tTnVldmEgQ2FycGV0YS0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCgnc2VndXBsYWNvcjpndWFyZGFyJylcIiBwQnV0dG9uIHBSaXBwbGVcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkICBib3Rvbi1hY2Npb24tcHJpbmNpcGFsIHRleHQtZ3JheS02MDAgY29sb3ItNTAwXCJcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfbnVldm8nIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiY3JlYXJDYXJwZXRhKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVuZWRvci1pY29uby1hY2Npb25lcy1wcmluY2lwYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtZmxvcHB5LXNhdmUgY29sb3ItNTAwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLUVsaW1pbmFyLS0+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbEZ1bmNpb25TZXJ2aWNlLmdldENvbnRyb2xGdW5jaW9uYWxpZGFkKCdzZWd1cGxhY29yOmd1YXJkYXInKVwiIHBCdXR0b24gcFJpcHBsZVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgIGJvdG9uLWFjY2lvbi1wcmluY2lwYWwgdGV4dC1ncmF5LTYwMCBjb2xvci01MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19lbGltaW5hcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbGltaW5hckNhcnBldGEoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1iaW4gY29sb3ItNTAwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBDYXJnYXIgQXJjaGl2byAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnbWluLXdpZHRoLTEwMCc6ICF2ZXJDb252ZXJ0aXIsICdtaW4td2lkdGgtMjAnOiB2ZXJDb252ZXJ0aXIgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWZpbGVVcGxvYWQgI2Z1YmF1dG8gbW9kZT1cImJhc2ljXCIgW2F1dG9dPVwidHJ1ZVwiIFtjdXN0b21VcGxvYWRdPVwidHJ1ZVwiIGNob29zZUljb249XCJwaSBwaS1wYXBlcmNsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCgnc2VndXBsYWNvcjpndWFyZGFyJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaG9vc2VMYWJlbD1cInt7J2xpbmtfc3ViaXJhcmNoaXZvcycgfCB0cmFuc2xhdGV9fVwiIChvblNlbGVjdCk9XCJjYXJnYXJOdWV2bygkZXZlbnQsIGZ1YmF1dG8pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS10cmFzaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLWZpbGVVcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQVJDSElWTy0tPlxyXG4gICAgICAgICAgICBAaWYoIWFyY2hpdm9TZWxlY2Npb25hZG8uZXhwYW5kZWQpe1xyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0ZXh0LXhsIG10LTIgbWItNCBtci0zXCI+QXJjaGl2bzogPC9oMT5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRleHQtc20gbXQtMiBtYi00XCI+IHt7YXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbH19IDwvaDU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgQGlmKGFyY2hpdm9TZWxlY2Npb25hZG8ubGFiZWwuaW5jbHVkZXMoJy5odG1sJykpe1xyXG5cclxuICAgICAgICAgICAgICAgIDwhLS1FRElUQVIgSFRNTC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1jb2RlIHRleHQteGwgY29sb3ItNTAwXCIgKGNsaWNrKT1cImVkaXRhckFjdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkICBib3Rvbi1hY2Npb24tcHJpbmNpcGFsIHRleHQtZ3JheS02MDBcIiBsYWJlbD1cIkVkaXRhciBIVE1MXCI+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIERFU0NBUkdBUi0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCAgYm90b24tYWNjaW9uLXByaW5jaXBhbCB0ZXh0LWdyYXktNjAwIGNvbG9yLTUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2Rlc2NhcmdhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJBbmV4bygpXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCgnc2VndXBsYWNvcjpkZXNjYXJnYXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1kb3dubG9hZCBjb2xvci01MDBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tRUxJTUlOQVItLT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgIGJvdG9uLWFjY2lvbi1wcmluY2lwYWwgdGV4dC1ncmF5LTYwMCBjb2xvci01MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19lbGltaW5hcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbGltaW5hckFyY2hpdm8oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9sRnVuY2lvblNlcnZpY2UuZ2V0Q29udHJvbEZ1bmNpb25hbGlkYWQoJ3NlZ3VwbGFjb3I6Z3VhcmRhcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbmVkb3ItaWNvbm8tYWNjaW9uZXMtcHJpbmNpcGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWJpbiBjb2xvci01MDBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZihhcmNoaXZvU2VsZWNjaW9uYWRvLmV4cGFuZGVkICYmIGlzVmlzdWFsaXphckNyZWFyQ2FwZXJ0YSl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuXHJcbiAgICAgICAgICAgIDxoNSBjbGFzcz1cIm10LTJcIj48aSBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ub3RlXCI+PC9pPiBOdWV2YSBjYXJwZXRhPC9oNT5cclxuXHJcbiAgICAgICAgICAgIDxmb3JtICNtaUZvcm11bGFyaW89XCJuZ0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gY2FtcG9zIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTm9tYnJlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgcC0wIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsIG1yLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IGlkPVwiaWRfbnVtZXJvX2RlX2V2ZW50b1wiIFsobmdNb2RlbCldPVwibm9tTnVldmFDYXJwZXRhXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibm9tYnJlQ2FycGV0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX251bWVyb19kZV9ldmVudG9cIj57eydub21icmUnIHwgdHJhbnNsYXRlfX0gKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tR3VhcmRhciBDYXJwZXRhLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibXItMiBwLWJ1dHRvbiBiYWNrZ3JvdW5kLTEwMCBjb2xvci01MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1mbG9wcHktc2F2ZVwiIFtsYWJlbF09XCIoJ2xpbmtfZ3VhcmRhcicgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJndWFyZGFyQ2FycGV0YSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gRURJVE9SIERFIEhUTUwgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImlzSHRtbCgpICYmIG1vc3RyYXJFZGl0b3JcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQm90w7NuIGd1YXJkYXIgSFRNTCAtLT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGxhYmVsPVwie3snbGlua19ndWFyZGFyJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJndWFyZGFySHRtbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWZsb3BweS1zYXZlXCIgY2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbEZ1bmNpb25TZXJ2aWNlLmdldENvbnRyb2xGdW5jaW9uYWxpZGFkKCdzZWd1cGxhY29yOmd1YXJkYXInKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxwLWVkaXRvciBpZD1cImVkaXRvclwiIFtzdHlsZV09XCJ7IGhlaWdodDogJzUwMHB4JyB9XCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJtb2RpZmljYXJIVE1MXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJodG1sUHVibGljYWNpb25cIj48L3AtZWRpdG9yPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbkBpZihpc01vc3RyYXJQb3B1cENvbnZlcnRpcil7XHJcbjxhcHAtcG9wdXAtY29udmVydGlyLXBsYW50aWxsYXMgKHJlZ3Jlc2FyKT1cInJlZ3Jlc2FyUG9wdXBDb252ZXJ0aXIoJGV2ZW50KVwiPjwvYXBwLXBvcHVwLWNvbnZlcnRpci1wbGFudGlsbGFzPlxyXG59Il19