general-library-union 2.9.73 → 2.9.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +15 -0
- package/.editorconfig +16 -0
- package/.vscode/extensions.json +4 -0
- package/.vscode/launch.json +20 -0
- package/.vscode/tasks.json +42 -0
- package/README.md +27 -27
- package/angular.json +143 -0
- package/karma.conf.js +44 -0
- package/ng-package.json +21 -0
- package/package.json +73 -62
- package/{public-api.d.ts → public-api.ts} +201 -161
- package/src/app/app.component.html +12 -0
- package/src/app/app.component.scss +0 -0
- package/src/app/app.component.spec.ts +29 -0
- package/src/app/app.component.ts +34 -0
- package/src/app/app.config.ts +43 -0
- package/src/app/app.module.ts +10 -0
- package/src/app/app.routes.ts +88 -0
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +6 -0
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +39 -0
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +1 -0
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +31 -0
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +9 -0
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +28 -0
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +32 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.html +34 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.scss +3 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.ts +202 -0
- package/src/app/core/componentes/footer/footer.component.html +13 -0
- package/src/app/core/componentes/footer/footer.component.scss +3 -0
- package/src/app/core/componentes/footer/footer.component.ts +20 -0
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +267 -0
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +21 -0
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +275 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.d.ts → Cambio.ts} +13 -7
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +118 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +76 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +67 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +11 -0
- package/src/app/core/componentes/inicio-component/inicio-component.component.html +29 -0
- package/src/app/core/componentes/inicio-component/inicio-component.component.scss +69 -0
- package/src/app/core/componentes/inicio-component/inicio-component.component.ts +65 -0
- package/src/app/core/componentes/menu/menu.component.html +13 -0
- package/src/app/core/componentes/menu/menu.component.scss +36 -0
- package/src/app/core/componentes/menu/menu.component.ts +35 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.html +90 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.ts +96 -0
- package/src/app/core/core.module.ts +22 -0
- package/src/app/core/errores/authentication.error.ts +6 -0
- package/src/app/core/modelos/error-response.model.ts +9 -0
- package/src/app/core/modelos/table-column.model.ts +10 -0
- package/src/app/core/modelos/user.model.ts +6 -0
- package/src/app/core/plantilla-general/plantilla-general.template.html +139 -0
- package/src/app/core/plantilla-general/plantilla-general.template.scss +37 -0
- package/src/app/core/plantilla-general/plantilla-general.template.ts +233 -0
- package/src/app/core/servicios/auth.service.ts +189 -0
- package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +49 -0
- package/src/app/core/servicios/data-exporter-table.utils.ts +78 -0
- package/src/app/core/servicios/error-interceptor.service.ts +208 -0
- package/src/app/core/servicios/guardias/auth.guard.ts +51 -0
- package/src/app/core/servicios/guardias/publico.guard.ts +26 -0
- package/src/app/core/servicios/interceptores/loading-interceptor.ts +37 -0
- package/src/app/core/servicios/interceptores/token-interceptor.service.ts +177 -0
- package/src/app/core/servicios/loading.service.ts +48 -0
- package/src/app/core/servicios/menu.service.ts +153 -0
- package/src/app/core/servicios/spinner-service.ts +18 -0
- package/src/app/core/servicios/storage.service.ts +68 -0
- package/src/app/core/servicios/template.service.ts +91 -0
- package/src/app/core/servicios/toast.service.ts +114 -0
- package/src/app/core/servicios/utils.service.ts +362 -0
- package/src/app/core/sharedlib.module.ts +11 -0
- package/src/app/core/utilidades/color.util.ts +197 -0
- package/src/app/layout/api/{menuchangeevent.d.ts → menuchangeevent.ts} +4 -4
- package/src/app/layout/app.breadcrumb.component.html +20 -0
- package/src/app/layout/app.breadcrumb.component.ts +78 -0
- package/src/app/layout/app.footer.component.html +18 -0
- package/src/app/layout/app.footer.component.ts +15 -0
- package/src/app/layout/app.layout.component.html +20 -0
- package/src/app/layout/app.layout.component.ts +201 -0
- package/src/app/layout/app.layout.module.ts +9 -0
- package/src/app/layout/app.menu.component.html +6 -0
- package/src/app/layout/app.menu.component.ts +51 -0
- package/src/app/layout/app.menu.service.ts +23 -0
- package/src/app/layout/app.menuitem.component.ts +252 -0
- package/src/app/layout/app.menuprofile.component.html +35 -0
- package/src/app/layout/app.menuprofile.component.ts +60 -0
- package/src/app/layout/app.rightmenu.component.html +72 -0
- package/src/app/layout/app.rightmenu.component.ts +24 -0
- package/src/app/layout/app.sidebar.component.html +40 -0
- package/src/app/layout/app.sidebar.component.ts +81 -0
- package/src/app/layout/app.topbar.component.html +214 -0
- package/src/app/layout/app.topbar.component.ts +335 -0
- package/src/app/layout/config/app.config.component.html +125 -0
- package/src/app/layout/config/app.config.component.ts +206 -0
- package/src/app/layout/config/app.config.module.ts +11 -0
- package/src/app/layout/service/app.layout.service.ts +191 -0
- package/src/app/publico/pages/login/login.page.html +53 -0
- package/src/app/publico/pages/login/login.page.scss +166 -0
- package/src/app/publico/pages/login/login.page.ts +128 -0
- package/src/app/publico/pages/not-found/not-found.page.html +35 -0
- package/src/app/publico/pages/not-found/not-found.page.scss +2 -0
- package/src/app/publico/pages/not-found/not-found.page.ts +46 -0
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +58 -0
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +49 -0
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +176 -0
- package/src/app/publico/pages/timeout/timeout.page.html +24 -0
- package/src/app/publico/pages/timeout/timeout.page.scss +2 -0
- package/src/app/publico/pages/timeout/timeout.page.ts +18 -0
- package/src/app/seguridad/constantes/ConstantesGenerales.ts +30 -0
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +18 -0
- package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +13 -0
- package/src/app/seguridad/modelos/AplicacionModel.ts +11 -0
- package/src/app/seguridad/modelos/ArchivoPortalModel.ts +16 -0
- package/src/app/seguridad/modelos/AtributoPuntoModel.ts +9 -0
- package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +22 -0
- package/src/app/seguridad/modelos/{AuditoriaArchivoModel.d.ts → AuditoriaArchivoModel.ts} +13 -10
- package/src/app/seguridad/modelos/CargueLineaModel.ts +17 -0
- package/src/app/seguridad/modelos/ColoresRGB.ts +17 -0
- package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +9 -0
- package/src/app/seguridad/modelos/{ColumnaWraperModel.d.ts → ColumnaWraperModel.ts} +7 -6
- package/src/app/seguridad/modelos/ComplementoModel.ts +10 -0
- package/src/app/seguridad/modelos/ComponentePaginaModel.ts +22 -0
- package/src/app/seguridad/modelos/ConexionModel.ts +15 -0
- package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.d.ts → ContenidoHtmlPortalModel.ts} +25 -20
- package/src/app/seguridad/modelos/ControlFuncionModel.ts +10 -0
- package/src/app/seguridad/modelos/CorreoModel.ts +45 -0
- package/src/app/seguridad/modelos/CorreoWSModel.ts +49 -0
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +14 -0
- package/src/app/seguridad/modelos/{DatoInicioModel.d.ts → DatoInicioModel.ts} +7 -6
- package/src/app/seguridad/modelos/{EjecucionReporteDataModel.d.ts → EjecucionReporteDataModel.ts} +21 -20
- package/src/app/seguridad/modelos/EmpresaModel.ts +25 -0
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +19 -0
- package/src/app/seguridad/modelos/{EntradaComplementoModel.d.ts → EntradaComplementoModel.ts} +9 -6
- package/src/app/seguridad/modelos/EtiquetaModel.ts +4 -0
- package/src/app/seguridad/modelos/Etiquetas.ts +14 -0
- package/src/app/seguridad/modelos/{ForeingWraperModel.d.ts → ForeingWraperModel.ts} +9 -6
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +21 -0
- package/src/app/seguridad/modelos/{FuenteCampoModel.d.ts → FuenteCampoModel.ts} +20 -16
- package/src/app/seguridad/modelos/FuenteDato.ts +19 -0
- package/src/app/seguridad/modelos/FuenteEntradaModel.ts +9 -0
- package/src/app/seguridad/modelos/{FuenteGeneralModel.d.ts → FuenteGeneralModel.ts} +55 -36
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +19 -0
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +14 -0
- package/src/app/seguridad/modelos/{FuenteServicioModel.d.ts → FuenteServicioModel.ts} +61 -47
- package/src/app/seguridad/modelos/FuncionalidadModel.ts +12 -0
- package/src/app/seguridad/modelos/GeneralModel.ts +16 -0
- package/src/app/seguridad/modelos/{GrupoAccesoModel.d.ts → GrupoAccesoModel.ts} +9 -6
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +12 -0
- package/src/app/seguridad/modelos/GrupoFuenteModel.ts +17 -0
- package/src/app/seguridad/modelos/GrupoPermisoModel.ts +16 -0
- package/src/app/seguridad/modelos/{JoinFromModel.d.ts → JoinFromModel.ts} +4 -4
- package/src/app/seguridad/modelos/ListaServicioModel.ts +18 -0
- package/src/app/seguridad/modelos/LlaveForaneaModel.ts +6 -0
- package/src/app/seguridad/modelos/LoginModel.ts +19 -0
- package/src/app/seguridad/modelos/MensajeSistemaModel.ts +10 -0
- package/src/app/seguridad/modelos/{MenuPortalModel.d.ts → MenuPortalModel.ts} +5 -4
- package/src/app/seguridad/modelos/ModulosModel.ts +17 -0
- package/src/app/seguridad/modelos/{ObjetoReporteModel.d.ts → ObjetoReporteModel.ts} +6 -5
- package/src/app/seguridad/modelos/PaginaPortalModel.ts +23 -0
- package/src/app/seguridad/modelos/ParametroComponenteModel.ts +9 -0
- package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +16 -0
- package/src/app/seguridad/modelos/PermisoFuncionModel.ts +11 -0
- package/src/app/seguridad/modelos/PermisocontenidoModel.ts +20 -0
- package/src/app/seguridad/modelos/{PeticionModel.d.ts → PeticionModel.ts} +20 -15
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +9 -0
- package/src/app/seguridad/modelos/PropiedadModel.ts +12 -0
- package/src/app/seguridad/modelos/PublicacionWebModel.ts +29 -0
- package/src/app/seguridad/modelos/PuntoProcesoModel.ts +7 -0
- package/src/app/seguridad/modelos/RecursoPunto.ts +13 -0
- package/src/app/seguridad/modelos/RecursoPuntoModel.ts +13 -0
- package/src/app/seguridad/modelos/ReporteBanda.ts +9 -0
- package/src/app/seguridad/modelos/ReporteColumna.ts +33 -0
- package/src/app/seguridad/modelos/ReporteColumnario.ts +82 -0
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +31 -0
- package/src/app/seguridad/modelos/{ReporteEntradaModel.d.ts → ReporteEntradaModel.ts} +21 -19
- package/src/app/seguridad/modelos/{ReporteFuenteModel.d.ts → ReporteFuenteModel.ts} +141 -87
- package/src/app/seguridad/modelos/ReporteMarcador.ts +40 -0
- package/src/app/seguridad/modelos/ReporteSoporte.ts +10 -0
- package/src/app/seguridad/modelos/ReporteTabla.ts +14 -0
- package/src/app/seguridad/modelos/RespuestaModel.ts +10 -0
- package/src/app/seguridad/modelos/{RolModel.d.ts → RolModel.ts} +41 -37
- package/src/app/seguridad/modelos/ServidorCorreoModel.ts +31 -0
- package/src/app/seguridad/modelos/SistemaMensajeModel.ts +11 -0
- package/src/app/seguridad/modelos/SitioPortalModel.ts +29 -0
- package/src/app/seguridad/modelos/TablaFromModel.ts +5 -0
- package/src/app/seguridad/modelos/TareasModel.ts +54 -0
- package/src/app/seguridad/modelos/TextoModel.ts +11 -0
- package/src/app/seguridad/modelos/TipoEtiqueta.ts +8 -0
- package/src/app/seguridad/modelos/UnionModel.ts +14 -0
- package/src/app/seguridad/modelos/{UsuarioModel.d.ts → UsuarioModel.ts} +60 -49
- package/src/app/seguridad/modelos/UsuariogrupoModel.ts +27 -0
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +16 -0
- package/src/app/seguridad/modelos/contenidoCorreoModel.ts +13 -0
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +47 -0
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +8 -0
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +144 -0
- package/src/app/shared/servicios/cargar-archivos.service.ts +51 -0
- package/src/app/shared/servicios/cargar-mapas.service.ts +43 -0
- package/src/app/shared/servicios/encriptado-basico.service.ts +54 -0
- package/src/app/shared/servicios/encriptador-simetrico.service.ts +29 -0
- package/src/app/shared/servicios/general.service.ts +124 -0
- package/src/app/shared/servicios/parametros-navegacion.service.ts +20 -0
- package/src/app/shared/servicios/plantillas.service.ts +22 -0
- package/src/app/shared/servicios/tarea.service.ts +71 -0
- package/src/app/shared/utilidades/translate-loader.util.ts +44 -0
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +167 -0
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +11 -0
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +425 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +87 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +189 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +117 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +87 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +158 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +6 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +345 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +131 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +198 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +206 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +3 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +329 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +2114 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +241 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +1677 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +33 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +96 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +54 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +111 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +394 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +10 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +599 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +130 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +172 -0
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +376 -0
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +5 -0
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +749 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +145 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +302 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +19 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +89 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +714 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +688 -0
- package/src/app/webcommon/pipes/dashboard.pipe.ts +79 -0
- package/src/app/webcommon/pipes/fuente.pipe.ts +207 -0
- package/src/app/webcommon/pipes/general.pipe.ts +1043 -0
- package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +101 -0
- package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +306 -0
- package/src/app/webcommon/pipes/sara-general.pipe.ts +289 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +90 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +262 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +50 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +135 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +41 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +283 -0
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +179 -0
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +3 -0
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +266 -0
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +261 -0
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +13 -0
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +519 -0
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +10 -0
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +5 -0
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +58 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +71 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +151 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +11 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +82 -0
- package/src/app/webcommon/services/carguelinea.service.ts +72 -0
- package/src/app/webcommon/services/dashboard.service.ts +258 -0
- package/src/app/webcommon/services/ejecucionreporte.service.ts +160 -0
- package/src/app/webcommon/services/fechaUtils.service.ts +117 -0
- package/src/app/webcommon/services/fuentegeneral.service.ts +74 -0
- package/src/app/webcommon/services/homologacion.service.ts +49 -0
- package/src/app/webcommon/services/plantillas.service.ts +165 -0
- package/src/app/webcommon/services/reportes.service.ts +133 -0
- package/src/app/webcommon/webcommon.module.ts +11 -0
- package/src/assets/demo/customers-large.json +3604 -3604
- package/src/assets/demo/data/chat.json +123 -123
- package/src/assets/demo/data/countries.json +246 -246
- package/src/assets/demo/data/customers-large.json +3604 -3604
- package/src/assets/demo/data/customers-medium.json +904 -904
- package/src/assets/demo/data/customers-small.json +164 -164
- package/src/assets/demo/data/file-management.json +200 -200
- package/src/assets/demo/data/files-lazy.json +25 -25
- package/src/assets/demo/data/files.json +54 -54
- package/src/assets/demo/data/filesystem-lazy.json +20 -20
- package/src/assets/demo/data/filesystem.json +312 -312
- package/src/assets/demo/data/kanban.json +195 -195
- package/src/assets/demo/data/mail.json +364 -364
- package/src/assets/demo/data/members.json +49 -49
- package/src/assets/demo/data/photos.json +94 -94
- package/src/assets/demo/data/products-mixed.json +364 -364
- package/src/assets/demo/data/products-orders-small.json +340 -340
- package/src/assets/demo/data/products-orders.json +833 -833
- package/src/assets/demo/data/products-small.json +123 -123
- package/src/assets/demo/data/products.json +394 -394
- package/src/assets/demo/data/scheduleevents.json +64 -64
- package/src/assets/demo/data/tasks.json +204 -204
- package/src/assets/demo/images/blocks/ad/icon-blocks.svg +18 -18
- package/src/assets/demo/images/blocks/logos/hyper.svg +2 -2
- package/src/assets/demo/images/contact/map-dark.svg +9 -9
- package/src/assets/demo/images/contact/map-light.svg +9 -9
- package/src/assets/demo/images/landing/icon-accessibility.svg +3 -3
- package/src/assets/demo/images/landing/icon-community.svg +3 -3
- package/src/assets/demo/images/landing/icon-components.svg +4 -4
- package/src/assets/demo/images/landing/icon-mobile.svg +3 -3
- package/src/assets/demo/images/landing/icon-productivity.svg +3 -3
- package/src/assets/demo/images/landing/icon-support.svg +3 -3
- package/src/assets/demo/images/landing/icon-theme.svg +3 -3
- package/src/assets/demo/images/landing/icon-ts.svg +11 -11
- package/src/assets/demo/images/product/product-placeholder.svg +9 -9
- package/src/assets/demo/styles/badges.css +93 -93
- package/src/assets/demo/styles/badges.scss +109 -109
- package/src/assets/demo/styles/code.css +14 -14
- package/src/assets/demo/styles/code.scss +14 -14
- package/src/assets/demo/styles/flags/flags.css +1 -1
- package/src/assets/glyphicons/css/boton-icon.css +547 -547
- package/src/assets/glyphicons/css/glyphicons-basic.css +3317 -3317
- package/src/assets/glyphicons/css/glyphicons-filetypes.css +649 -649
- package/src/assets/glyphicons/css/glyphicons-halflings.css +101 -101
- package/src/assets/glyphicons/css/glyphicons-social.css +88 -88
- package/src/assets/glyphicons/css/glyphicons.css +4 -4
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.svg +167 -167
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.svg +327 -327
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.svg +827 -827
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.svg +97 -97
- package/src/assets/layout/images/401.svg +11 -11
- package/src/assets/layout/images/extensions/asset-amex.svg +22 -22
- package/src/assets/layout/images/extensions/asset-mastercard.svg +16 -16
- package/src/assets/layout/images/extensions/asset-paypal.svg +17 -17
- package/src/assets/layout/images/extensions/asset-visa.svg +16 -16
- package/src/assets/layout/images/extensions/prime-logo.svg +17 -17
- package/src/assets/layout/images/footer-ultima-dark.svg +4 -4
- package/src/assets/layout/images/footer-ultima.svg +4 -4
- package/src/assets/layout/images/logo-ultima.svg +13 -13
- package/src/assets/layout/images/widgets/feature-faq.svg +59 -59
- package/src/assets/layout/images/widgets/feature-onboarding.svg +36 -36
- package/src/assets/layout/images/widgets/feature-security.svg +47 -47
- package/src/assets/layout/styles/layout/_animation.scss +52 -52
- package/src/assets/layout/styles/layout/_breadcrumb.scss +43 -43
- package/src/assets/layout/styles/layout/_config.scss +12 -12
- package/src/assets/layout/styles/layout/_content.scss +9 -9
- package/src/assets/layout/styles/layout/_fonts.scss +29 -29
- package/src/assets/layout/styles/layout/_footer.scss +15 -15
- package/src/assets/layout/styles/layout/_invoice.scss +19 -19
- package/src/assets/layout/styles/layout/_landing.scss +10 -10
- package/src/assets/layout/styles/layout/_main.scss +27 -27
- package/src/assets/layout/styles/layout/_megamenu.scss +6 -6
- package/src/assets/layout/styles/layout/_menuprofile.scss +75 -75
- package/src/assets/layout/styles/layout/_responsive.scss +243 -243
- package/src/assets/layout/styles/layout/_rightmenu.scss +57 -57
- package/src/assets/layout/styles/layout/_typography.scss +90 -90
- package/src/assets/layout/styles/layout/_utils.scss +77 -77
- package/src/assets/layout/styles/layout/layout.css +1802 -1802
- package/src/assets/layout/styles/layout/layout.scss +18 -18
- package/src/assets/layout/styles/layout/preloading.css +65 -65
- package/src/assets/layout/styles/layout/preloading.scss +59 -59
- package/src/assets/layout/styles/layout/sidebar/_sidebar.scss +17 -17
- package/src/assets/layout/styles/layout/sidebar/_sidebar_drawer.scss +282 -282
- package/src/assets/layout/styles/layout/sidebar/_sidebar_horizontal.scss +210 -210
- package/src/assets/layout/styles/layout/sidebar/_sidebar_reveal.scss +186 -186
- package/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +201 -201
- package/src/assets/layout/styles/layout/sidebar/_sidebar_slim_plus.scss +215 -215
- package/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +183 -183
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_bluegrey.scss +10 -10
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_brown.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_cyan.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_dark.scss +8 -8
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeporange.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeppurple.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_green.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_indigo.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_light.scss +8 -8
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_pink.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_purple.scss +9 -9
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_teal.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/_topbar.scss +21 -21
- package/src/assets/layout/styles/layout/topbar/_topbar_main.scss +235 -235
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_amber.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_blue.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_bluegrey.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_brown.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_cyan.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_dark.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeporange.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeppurple.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_green.scss +8 -8
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_grey.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_indigo.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightblue.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightgreen.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lime.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_orange.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_pink.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_purple.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_teal.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_white.scss +9 -9
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_yellow.scss +9 -9
- package/src/assets/layout/styles/theme/_compact.scss +88 -88
- package/src/assets/layout/styles/theme/designer/_colors.scss +18 -18
- package/src/assets/layout/styles/theme/designer/_common.scss +74 -74
- package/src/assets/layout/styles/theme/designer/_components.scss +102 -102
- package/src/assets/layout/styles/theme/designer/_mixins.scss +203 -203
- package/src/assets/layout/styles/theme/designer/components/button/_button.scss +604 -604
- package/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +80 -80
- package/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -381
- package/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -37
- package/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +340 -340
- package/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -55
- package/src/assets/layout/styles/theme/designer/components/data/_filter.scss +137 -137
- package/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -329
- package/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +102 -102
- package/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +59 -59
- package/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +120 -120
- package/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +102 -102
- package/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -38
- package/src/assets/layout/styles/theme/designer/components/data/_tree.scss +148 -148
- package/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +250 -250
- package/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -28
- package/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -58
- package/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -117
- package/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +271 -271
- package/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +125 -125
- package/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -85
- package/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -54
- package/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -19
- package/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +149 -149
- package/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -122
- package/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +77 -77
- package/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +15 -15
- package/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +27 -27
- package/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +59 -59
- package/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +116 -116
- package/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +81 -81
- package/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +173 -173
- package/src/assets/layout/styles/theme/designer/components/input/_password.scss +51 -51
- package/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +77 -77
- package/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -48
- package/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +49 -49
- package/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -71
- package/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +47 -47
- package/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +138 -138
- package/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -42
- package/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -56
- package/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -86
- package/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -106
- package/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -45
- package/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -183
- package/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +142 -142
- package/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -59
- package/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -56
- package/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +76 -76
- package/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +82 -82
- package/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -64
- package/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -102
- package/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +102 -102
- package/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +29 -29
- package/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +47 -47
- package/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +37 -37
- package/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -17
- package/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -17
- package/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +19 -19
- package/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +7 -7
- package/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +34 -34
- package/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -11
- package/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -139
- package/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -44
- package/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +68 -68
- package/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +89 -89
- package/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +84 -84
- package/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +27 -27
- package/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +37 -37
- package/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +146 -146
- package/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -30
- package/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -31
- package/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +52 -52
- package/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +59 -59
- package/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +5 -5
- package/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +18 -18
- package/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +11 -11
- package/src/assets/layout/styles/theme/extensions/_accordion.scss +55 -55
- package/src/assets/layout/styles/theme/extensions/_autocomplete.scss +67 -67
- package/src/assets/layout/styles/theme/extensions/_breadcrumb.scss +9 -9
- package/src/assets/layout/styles/theme/extensions/_button.scss +217 -217
- package/src/assets/layout/styles/theme/extensions/_calendar.scss +154 -154
- package/src/assets/layout/styles/theme/extensions/_carousel.scss +13 -13
- package/src/assets/layout/styles/theme/extensions/_cascadeselect.scss +73 -73
- package/src/assets/layout/styles/theme/extensions/_checkbox.scss +85 -85
- package/src/assets/layout/styles/theme/extensions/_chips.scss +55 -55
- package/src/assets/layout/styles/theme/extensions/_datatable.scss +38 -38
- package/src/assets/layout/styles/theme/extensions/_dropdown.scss +48 -48
- package/src/assets/layout/styles/theme/extensions/_fieldset.scss +15 -15
- package/src/assets/layout/styles/theme/extensions/_float_label.scss +51 -51
- package/src/assets/layout/styles/theme/extensions/_fullcalendar.scss +84 -84
- package/src/assets/layout/styles/theme/extensions/_galleria.scss +26 -26
- package/src/assets/layout/styles/theme/extensions/_input.scss +14 -14
- package/src/assets/layout/styles/theme/extensions/_inputgroup.scss +32 -32
- package/src/assets/layout/styles/theme/extensions/_inputmask.scss +14 -14
- package/src/assets/layout/styles/theme/extensions/_inputnumber.scss +14 -14
- package/src/assets/layout/styles/theme/extensions/_inputswitch.scss +32 -32
- package/src/assets/layout/styles/theme/extensions/_listbox.scss +17 -17
- package/src/assets/layout/styles/theme/extensions/_megamenu.scss +9 -9
- package/src/assets/layout/styles/theme/extensions/_menu.scss +9 -9
- package/src/assets/layout/styles/theme/extensions/_menubar.scss +9 -9
- package/src/assets/layout/styles/theme/extensions/_mixins.scss +108 -108
- package/src/assets/layout/styles/theme/extensions/_multiselect.scss +104 -104
- package/src/assets/layout/styles/theme/extensions/_orderlist.scss +13 -13
- package/src/assets/layout/styles/theme/extensions/_overlaypanel.scss +20 -20
- package/src/assets/layout/styles/theme/extensions/_paginator.scss +20 -20
- package/src/assets/layout/styles/theme/extensions/_panel.scss +28 -28
- package/src/assets/layout/styles/theme/extensions/_panelmenu.scss +49 -49
- package/src/assets/layout/styles/theme/extensions/_picklist.scss +13 -13
- package/src/assets/layout/styles/theme/extensions/_progressbar.scss +6 -6
- package/src/assets/layout/styles/theme/extensions/_radiobutton.scss +49 -49
- package/src/assets/layout/styles/theme/extensions/_rating.scss +35 -35
- package/src/assets/layout/styles/theme/extensions/_selectbutton.scss +12 -12
- package/src/assets/layout/styles/theme/extensions/_slidemenu.scss +7 -7
- package/src/assets/layout/styles/theme/extensions/_slider.scss +15 -15
- package/src/assets/layout/styles/theme/extensions/_steps.scss +65 -65
- package/src/assets/layout/styles/theme/extensions/_tabmenu.scss +37 -37
- package/src/assets/layout/styles/theme/extensions/_tabview.scss +31 -31
- package/src/assets/layout/styles/theme/extensions/_tieredmenu.scss +7 -7
- package/src/assets/layout/styles/theme/extensions/_timeline.scss +8 -8
- package/src/assets/layout/styles/theme/extensions/_togglebutton.scss +10 -10
- package/src/assets/layout/styles/theme/extensions/_toolbar.scss +2 -2
- package/src/assets/layout/styles/theme/extensions/_tooltip.scss +9 -9
- package/src/assets/layout/styles/theme/extensions/_tree.scss +15 -15
- package/src/assets/layout/styles/theme/extensions/_treeselect.scss +84 -84
- package/src/assets/layout/styles/theme/extensions/_treetable.scss +18 -18
- package/src/assets/layout/styles/theme/extensions/_vendor_extensions.scss +50 -50
- package/src/assets/layout/styles/theme/theme-dark/_variables.scss +869 -869
- package/src/assets/layout/styles/theme/theme-dark/amber/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/amber/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7724 -7724
- package/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +9 -9
- package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.css +7723 -7723
- package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/brown/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/brown/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +9 -9
- package/src/assets/layout/styles/theme/theme-dark/green/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/green/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.scss +9 -9
- package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +9 -9
- package/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-dark/teal/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/teal/theme.scss +9 -9
- package/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-light/_variables.scss +868 -868
- package/src/assets/layout/styles/theme/theme-light/amber/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/amber/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/blue/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/blue/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/brown/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/brown/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -12
- package/src/assets/layout/styles/theme/theme-light/deeporange/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/deeporange/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/green/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/green/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +10 -10
- package/src/assets/layout/styles/theme/theme-light/lightblue/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/lightblue/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/lime/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/lime/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/orange/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/orange/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/pink/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/pink/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/purple/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/purple/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/teal/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/teal/theme.scss +11 -11
- package/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7731 -7731
- package/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +11 -11
- package/src/assets/theme/uniondinamic/layout-light.css +4923 -4923
- package/src/assets/theme/uniondinamic/theme-light.css +8137 -8137
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +25 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +14 -0
- package/src/main.ts +12 -0
- package/src/polyfills.ts +53 -0
- package/src/styles/primeflex/primeflex.scss +47 -47
- package/src/styles/primeng/layout/layout-dark.scss +1 -1
- package/src/styles/primeng/layout/layout-light.scss +1 -1
- package/src/styles/primeng/sass/_fonts.scss +45 -45
- package/src/styles/primeng/sass/layout/_animation.scss +70 -70
- package/src/styles/primeng/sass/layout/_breadcrumb.scss +23 -23
- package/src/styles/primeng/sass/layout/_config.scss +73 -73
- package/src/styles/primeng/sass/layout/_dashboard.scss +51 -51
- package/src/styles/primeng/sass/layout/_footer.scss +3 -3
- package/src/styles/primeng/sass/layout/_help.scss +25 -25
- package/src/styles/primeng/sass/layout/_invoice.scss +19 -19
- package/src/styles/primeng/sass/layout/_landing.scss +163 -163
- package/src/styles/primeng/sass/layout/_loader.scss +72 -72
- package/src/styles/primeng/sass/layout/_main.scss +220 -220
- package/src/styles/primeng/sass/layout/_megamenu.scss +6 -6
- package/src/styles/primeng/sass/layout/_mixins.scss +55 -55
- package/src/styles/primeng/sass/layout/_pages.scss +206 -206
- package/src/styles/primeng/sass/layout/_rightmenu.scss +43 -43
- package/src/styles/primeng/sass/layout/_rtl.scss +50 -50
- package/src/styles/primeng/sass/layout/_typography.scss +21 -21
- package/src/styles/primeng/sass/layout/_utils.scss +352 -352
- package/src/styles/primeng/sass/layout/_widgets.scss +466 -466
- package/src/styles/primeng/sass/layout/_wizard.scss +414 -414
- package/src/styles/primeng/sass/layout/core/_layout.scss +24 -24
- package/src/styles/primeng/sass/layout/core/_layout_dark.scss +2 -2
- package/src/styles/primeng/sass/layout/core/_layout_light.scss +2 -2
- package/src/styles/primeng/sass/layout/menu/_inline_menu.scss +44 -44
- package/src/styles/primeng/sass/layout/menu/_menu.scss +20 -20
- package/src/styles/primeng/sass/layout/menu/_menu_common.scss +116 -116
- package/src/styles/primeng/sass/layout/menu/_menu_exports.scss +4 -4
- package/src/styles/primeng/sass/layout/menu/_menu_horizontal.scss +75 -75
- package/src/styles/primeng/sass/layout/menu/_menu_overlay.scss +30 -30
- package/src/styles/primeng/sass/layout/menu/_menu_responsive.scss +35 -35
- package/src/styles/primeng/sass/layout/menu/_menu_slim.scss +76 -76
- package/src/styles/primeng/sass/layout/menu/_menu_static.scss +26 -26
- package/src/styles/primeng/sass/layout/menu/_menu_theme.scss +105 -105
- package/src/styles/primeng/sass/layout/menu/_rtl_menu.scss +155 -155
- package/src/styles/primeng/sass/layout/menu/themes/_menu_bluegrey.scss +16 -16
- package/src/styles/primeng/sass/layout/menu/themes/_menu_brown.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_cyan.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_dark.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_deeporange.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_deeppurple.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_green.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_indigo.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_light.scss +15 -15
- package/src/styles/primeng/sass/layout/menu/themes/_menu_pink.scss +16 -16
- package/src/styles/primeng/sass/layout/menu/themes/_menu_purple.scss +16 -16
- package/src/styles/primeng/sass/layout/menu/themes/_menu_teal.scss +16 -16
- package/src/styles/primeng/sass/layout/topbar/_rtl_topbar.scss +92 -92
- package/src/styles/primeng/sass/layout/topbar/_topbar.scss +24 -24
- package/src/styles/primeng/sass/layout/topbar/_topbar_common.scss +161 -161
- package/src/styles/primeng/sass/layout/topbar/_topbar_exports.scss +4 -4
- package/src/styles/primeng/sass/layout/topbar/_topbar_responsive.scss +90 -90
- package/src/styles/primeng/sass/layout/topbar/_topbar_theme.scss +115 -115
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_amber.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_blue.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_bluegrey.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_brown.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_custom.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_cyan.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_dark.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeporange.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeppurple.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_green.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_grey.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_indigo.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightblue.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightgreen.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lime.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_orange.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_pink.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_purple.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_teal.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_white.scss +13 -13
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_yellow.scss +13 -13
- package/src/styles/primeng/sass/overrides/_layout_styles.scss +30 -30
- package/src/styles/primeng/sass/overrides/_layout_variables.scss +3 -3
- package/src/styles/primeng/sass/overrides/_theme_styles.scss +4897 -4826
- package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +6035 -5962
- package/src/styles/primeng/sass/overrides/_theme_variables.scss +135 -135
- package/src/styles/primeng/sass/theme/_compact.scss +88 -88
- package/src/styles/primeng/sass/theme/_theme_dark.scss +6 -6
- package/src/styles/primeng/sass/theme/_theme_light.scss +5 -5
- package/src/styles/primeng/sass/theme/designer/_colors.scss +18 -18
- package/src/styles/primeng/sass/theme/designer/_common.scss +75 -75
- package/src/styles/primeng/sass/theme/designer/_components.scss +102 -102
- package/src/styles/primeng/sass/theme/designer/_mixins.scss +203 -203
- package/src/styles/primeng/sass/theme/designer/components/button/_button.scss +621 -621
- package/src/styles/primeng/sass/theme/designer/components/button/_speeddial.scss +80 -80
- package/src/styles/primeng/sass/theme/designer/components/button/_splitbutton.scss +381 -381
- package/src/styles/primeng/sass/theme/designer/components/data/_carousel.scss +37 -37
- package/src/styles/primeng/sass/theme/designer/components/data/_datatable.scss +357 -357
- package/src/styles/primeng/sass/theme/designer/components/data/_dataview.scss +55 -55
- package/src/styles/primeng/sass/theme/designer/components/data/_filter.scss +137 -137
- package/src/styles/primeng/sass/theme/designer/components/data/_fullcalendar.scss +329 -329
- package/src/styles/primeng/sass/theme/designer/components/data/_orderlist.scss +102 -102
- package/src/styles/primeng/sass/theme/designer/components/data/_organizationchart.scss +58 -58
- package/src/styles/primeng/sass/theme/designer/components/data/_paginator.scss +126 -126
- package/src/styles/primeng/sass/theme/designer/components/data/_picklist.scss +102 -102
- package/src/styles/primeng/sass/theme/designer/components/data/_timeline.scss +38 -38
- package/src/styles/primeng/sass/theme/designer/components/data/_tree.scss +155 -155
- package/src/styles/primeng/sass/theme/designer/components/data/_treetable.scss +246 -246
- package/src/styles/primeng/sass/theme/designer/components/data/_virtualscroller.scss +28 -28
- package/src/styles/primeng/sass/theme/designer/components/file/_fileupload.scss +58 -58
- package/src/styles/primeng/sass/theme/designer/components/input/_autocomplete.scss +117 -117
- package/src/styles/primeng/sass/theme/designer/components/input/_calendar.scss +271 -271
- package/src/styles/primeng/sass/theme/designer/components/input/_cascadeselect.scss +125 -125
- package/src/styles/primeng/sass/theme/designer/components/input/_checkbox.scss +92 -92
- package/src/styles/primeng/sass/theme/designer/components/input/_chips.scss +54 -54
- package/src/styles/primeng/sass/theme/designer/components/input/_colorpicker.scss +19 -19
- package/src/styles/primeng/sass/theme/designer/components/input/_dropdown.scss +173 -173
- package/src/styles/primeng/sass/theme/designer/components/input/_editor.scss +122 -122
- package/src/styles/primeng/sass/theme/designer/components/input/_inputgroup.scss +75 -75
- package/src/styles/primeng/sass/theme/designer/components/input/_inputmask.scss +15 -15
- package/src/styles/primeng/sass/theme/designer/components/input/_inputnumber.scss +27 -27
- package/src/styles/primeng/sass/theme/designer/components/input/_inputswitch.scss +59 -59
- package/src/styles/primeng/sass/theme/designer/components/input/_inputtext.scss +134 -134
- package/src/styles/primeng/sass/theme/designer/components/input/_listbox.scss +81 -81
- package/src/styles/primeng/sass/theme/designer/components/input/_multiselect.scss +173 -173
- package/src/styles/primeng/sass/theme/designer/components/input/_password.scss +51 -51
- package/src/styles/primeng/sass/theme/designer/components/input/_radiobutton.scss +77 -77
- package/src/styles/primeng/sass/theme/designer/components/input/_rating.scss +48 -48
- package/src/styles/primeng/sass/theme/designer/components/input/_selectbutton.scss +49 -49
- package/src/styles/primeng/sass/theme/designer/components/input/_slider.scss +71 -71
- package/src/styles/primeng/sass/theme/designer/components/input/_togglebutton.scss +47 -47
- package/src/styles/primeng/sass/theme/designer/components/input/_treeselect.scss +138 -138
- package/src/styles/primeng/sass/theme/designer/components/menu/_breadcrumb.scss +42 -42
- package/src/styles/primeng/sass/theme/designer/components/menu/_contextmenu.scss +56 -56
- package/src/styles/primeng/sass/theme/designer/components/menu/_dock.scss +86 -86
- package/src/styles/primeng/sass/theme/designer/components/menu/_megamenu.scss +106 -106
- package/src/styles/primeng/sass/theme/designer/components/menu/_menu.scss +45 -45
- package/src/styles/primeng/sass/theme/designer/components/menu/_menubar.scss +208 -208
- package/src/styles/primeng/sass/theme/designer/components/menu/_panelmenu.scss +142 -142
- package/src/styles/primeng/sass/theme/designer/components/menu/_slidemenu.scss +59 -59
- package/src/styles/primeng/sass/theme/designer/components/menu/_steps.scss +56 -56
- package/src/styles/primeng/sass/theme/designer/components/menu/_tabmenu.scss +77 -77
- package/src/styles/primeng/sass/theme/designer/components/menu/_tieredmenu.scss +91 -91
- package/src/styles/primeng/sass/theme/designer/components/messages/_inlinemessage.scss +64 -64
- package/src/styles/primeng/sass/theme/designer/components/messages/_message.scss +102 -102
- package/src/styles/primeng/sass/theme/designer/components/messages/_toast.scss +102 -102
- package/src/styles/primeng/sass/theme/designer/components/misc/_avatar.scss +29 -29
- package/src/styles/primeng/sass/theme/designer/components/misc/_badge.scss +47 -47
- package/src/styles/primeng/sass/theme/designer/components/misc/_chip.scss +37 -37
- package/src/styles/primeng/sass/theme/designer/components/misc/_inplace.scss +17 -17
- package/src/styles/primeng/sass/theme/designer/components/misc/_progressbar.scss +17 -17
- package/src/styles/primeng/sass/theme/designer/components/misc/_scrolltop.scss +19 -19
- package/src/styles/primeng/sass/theme/designer/components/misc/_skeleton.scss +7 -7
- package/src/styles/primeng/sass/theme/designer/components/misc/_tag.scss +34 -34
- package/src/styles/primeng/sass/theme/designer/components/misc/_terminal.scss +11 -11
- package/src/styles/primeng/sass/theme/designer/components/multimedia/_galleria.scss +139 -139
- package/src/styles/primeng/sass/theme/designer/components/multimedia/_image.scss +44 -44
- package/src/styles/primeng/sass/theme/designer/components/overlay/_confirmpopup.scss +77 -77
- package/src/styles/primeng/sass/theme/designer/components/overlay/_dialog.scss +91 -91
- package/src/styles/primeng/sass/theme/designer/components/overlay/_overlaypanel.scss +79 -79
- package/src/styles/primeng/sass/theme/designer/components/overlay/_sidebar.scss +27 -27
- package/src/styles/primeng/sass/theme/designer/components/overlay/_tooltip.scss +37 -37
- package/src/styles/primeng/sass/theme/designer/components/panel/_accordion.scss +180 -180
- package/src/styles/primeng/sass/theme/designer/components/panel/_card.scss +48 -48
- package/src/styles/primeng/sass/theme/designer/components/panel/_divider.scss +31 -31
- package/src/styles/primeng/sass/theme/designer/components/panel/_fieldset.scss +50 -50
- package/src/styles/primeng/sass/theme/designer/components/panel/_panel.scss +59 -59
- package/src/styles/primeng/sass/theme/designer/components/panel/_scrollpanel.scss +5 -5
- package/src/styles/primeng/sass/theme/designer/components/panel/_splitter.scss +18 -18
- package/src/styles/primeng/sass/theme/designer/components/panel/_tabview.scss +92 -92
- package/src/styles/primeng/sass/theme/designer/components/panel/_toolbar.scss +11 -11
- package/src/styles/primeng/sass/theme/extensions/_accordion.scss +73 -73
- package/src/styles/primeng/sass/theme/extensions/_autocomplete.scss +67 -67
- package/src/styles/primeng/sass/theme/extensions/_breadcrumb.scss +9 -9
- package/src/styles/primeng/sass/theme/extensions/_button.scss +243 -243
- package/src/styles/primeng/sass/theme/extensions/_calendar.scss +154 -154
- package/src/styles/primeng/sass/theme/extensions/_carousel.scss +13 -13
- package/src/styles/primeng/sass/theme/extensions/_cascadeselect.scss +73 -73
- package/src/styles/primeng/sass/theme/extensions/_checkbox.scss +85 -85
- package/src/styles/primeng/sass/theme/extensions/_chips.scss +55 -55
- package/src/styles/primeng/sass/theme/extensions/_datatable.scss +40 -40
- package/src/styles/primeng/sass/theme/extensions/_dropdown.scss +50 -50
- package/src/styles/primeng/sass/theme/extensions/_fieldset.scss +15 -15
- package/src/styles/primeng/sass/theme/extensions/_float_label.scss +51 -51
- package/src/styles/primeng/sass/theme/extensions/_fullcalendar.scss +84 -84
- package/src/styles/primeng/sass/theme/extensions/_galleria.scss +26 -26
- package/src/styles/primeng/sass/theme/extensions/_input.scss +17 -17
- package/src/styles/primeng/sass/theme/extensions/_inputgroup.scss +128 -128
- package/src/styles/primeng/sass/theme/extensions/_inputmask.scss +14 -14
- package/src/styles/primeng/sass/theme/extensions/_inputnumber.scss +14 -14
- package/src/styles/primeng/sass/theme/extensions/_inputswitch.scss +32 -32
- package/src/styles/primeng/sass/theme/extensions/_listbox.scss +17 -17
- package/src/styles/primeng/sass/theme/extensions/_megamenu.scss +9 -9
- package/src/styles/primeng/sass/theme/extensions/_menu.scss +9 -9
- package/src/styles/primeng/sass/theme/extensions/_menubar.scss +9 -9
- package/src/styles/primeng/sass/theme/extensions/_mixins.scss +110 -110
- package/src/styles/primeng/sass/theme/extensions/_multiselect.scss +104 -104
- package/src/styles/primeng/sass/theme/extensions/_orderlist.scss +13 -13
- package/src/styles/primeng/sass/theme/extensions/_overlaypanel.scss +24 -24
- package/src/styles/primeng/sass/theme/extensions/_paginator.scss +22 -22
- package/src/styles/primeng/sass/theme/extensions/_panel.scss +38 -38
- package/src/styles/primeng/sass/theme/extensions/_panelmenu.scss +49 -49
- package/src/styles/primeng/sass/theme/extensions/_picklist.scss +13 -13
- package/src/styles/primeng/sass/theme/extensions/_progressbar.scss +6 -6
- package/src/styles/primeng/sass/theme/extensions/_radiobutton.scss +49 -49
- package/src/styles/primeng/sass/theme/extensions/_rating.scss +35 -35
- package/src/styles/primeng/sass/theme/extensions/_selectbutton.scss +12 -12
- package/src/styles/primeng/sass/theme/extensions/_slidemenu.scss +7 -7
- package/src/styles/primeng/sass/theme/extensions/_slider.scss +15 -15
- package/src/styles/primeng/sass/theme/extensions/_steps.scss +67 -67
- package/src/styles/primeng/sass/theme/extensions/_tabmenu.scss +38 -38
- package/src/styles/primeng/sass/theme/extensions/_tabview.scss +31 -31
- package/src/styles/primeng/sass/theme/extensions/_tieredmenu.scss +7 -7
- package/src/styles/primeng/sass/theme/extensions/_timeline.scss +8 -8
- package/src/styles/primeng/sass/theme/extensions/_togglebutton.scss +10 -10
- package/src/styles/primeng/sass/theme/extensions/_toolbar.scss +2 -2
- package/src/styles/primeng/sass/theme/extensions/_tooltip.scss +9 -9
- package/src/styles/primeng/sass/theme/extensions/_tree.scss +15 -15
- package/src/styles/primeng/sass/theme/extensions/_treeselect.scss +84 -84
- package/src/styles/primeng/sass/theme/extensions/_treetable.scss +18 -18
- package/src/styles/primeng/sass/theme/extensions/_vendor_extensions.scss +50 -50
- package/src/styles/primeng/sass/variables/layout/_layout_common.scss +9 -9
- package/src/styles/primeng/sass/variables/layout/_layout_dark.scss +38 -38
- package/src/styles/primeng/sass/variables/layout/_layout_light.scss +38 -38
- package/src/styles/primeng/sass/variables/theme/_theme_dark.scss +871 -871
- package/src/styles/primeng/sass/variables/theme/_theme_light.scss +878 -878
- package/src/styles/primeng/theme/theme-dark.scss +8 -8
- package/src/styles/primeng/theme/theme-light.scss +11 -11
- package/src/styles/sass/_mixins.scss +2 -2
- package/src/styles/sass/_variables.scss +20 -20
- package/src/styles/sass/mixins/_breakpoints.scss +16 -16
- package/src/styles/sass/mixins/_colors.scss +34 -34
- package/src/styles/sass/pages/_general.scss +57 -57
- package/src/styles/sass/pages/_listado.scss +98 -98
- package/src/styles-dark.scss +32 -32
- package/src/styles.scss +32 -32
- package/src/test.ts +14 -0
- package/tsconfig.app.json +15 -0
- package/tsconfig.json +35 -0
- package/tsconfig.spec.json +18 -0
- package/esm2022/general-library-union.mjs +0 -5
- package/esm2022/public-api.mjs +0 -180
- package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +0 -40
- package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +0 -28
- package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +0 -194
- package/esm2022/src/app/core/componentes/footer/footer.component.mjs +0 -16
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +0 -272
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +0 -11
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +0 -124
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +0 -73
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +0 -59
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +0 -21
- package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +0 -67
- package/esm2022/src/app/core/componentes/menu/menu.component.mjs +0 -37
- package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +0 -93
- package/esm2022/src/app/core/core.module.mjs +0 -23
- package/esm2022/src/app/core/errores/authentication.error.mjs +0 -7
- package/esm2022/src/app/core/modelos/error-response.model.mjs +0 -2
- package/esm2022/src/app/core/modelos/table-column.model.mjs +0 -2
- package/esm2022/src/app/core/modelos/user.model.mjs +0 -7
- package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +0 -230
- package/esm2022/src/app/core/servicios/auth.service.mjs +0 -185
- package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +0 -57
- package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +0 -64
- package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +0 -214
- package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +0 -66
- package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +0 -35
- package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +0 -37
- package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +0 -180
- package/esm2022/src/app/core/servicios/loading.service.mjs +0 -43
- package/esm2022/src/app/core/servicios/menu.service.mjs +0 -146
- package/esm2022/src/app/core/servicios/spinner-service.mjs +0 -22
- package/esm2022/src/app/core/servicios/storage.service.mjs +0 -68
- package/esm2022/src/app/core/servicios/template.service.mjs +0 -99
- package/esm2022/src/app/core/servicios/toast.service.mjs +0 -120
- package/esm2022/src/app/core/servicios/utils.service.mjs +0 -335
- package/esm2022/src/app/core/sharedlib.module.mjs +0 -16
- package/esm2022/src/app/core/utilidades/color.util.mjs +0 -177
- package/esm2022/src/app/layout/api/menuchangeevent.mjs +0 -2
- package/esm2022/src/app/layout/app.breadcrumb.component.mjs +0 -71
- package/esm2022/src/app/layout/app.footer.component.mjs +0 -18
- package/esm2022/src/app/layout/app.layout.component.mjs +0 -188
- package/esm2022/src/app/layout/app.layout.module.mjs +0 -15
- package/esm2022/src/app/layout/app.menu.component.mjs +0 -51
- package/esm2022/src/app/layout/app.menu.service.mjs +0 -24
- package/esm2022/src/app/layout/app.menuitem.component.mjs +0 -296
- package/esm2022/src/app/layout/app.menuprofile.component.mjs +0 -78
- package/esm2022/src/app/layout/app.rightmenu.component.mjs +0 -24
- package/esm2022/src/app/layout/app.sidebar.component.mjs +0 -92
- package/esm2022/src/app/layout/app.topbar.component.mjs +0 -345
- package/esm2022/src/app/layout/service/app.layout.service.mjs +0 -134
- package/esm2022/src/app/publico/pages/login/login.page.mjs +0 -129
- package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +0 -51
- package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +0 -167
- package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +0 -20
- package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +0 -30
- package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +0 -19
- package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +0 -8
- package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +0 -14
- package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +0 -17
- package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +0 -11
- package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +0 -13
- package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +0 -18
- package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +0 -6
- package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +0 -21
- package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +0 -14
- package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +0 -21
- package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +0 -8
- package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +0 -35
- package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +0 -37
- package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +0 -14
- package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +0 -6
- package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +0 -14
- package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +0 -25
- package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +0 -19
- package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +0 -5
- package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +0 -12
- package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +0 -6
- package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +0 -16
- package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +0 -17
- package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +0 -19
- package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +0 -37
- package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +0 -16
- package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +0 -11
- package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +0 -51
- package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +0 -10
- package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +0 -15
- package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +0 -10
- package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +0 -13
- package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +0 -14
- package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +0 -5
- package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +0 -17
- package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +0 -15
- package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +0 -8
- package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +0 -5
- package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +0 -18
- package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +0 -6
- package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +0 -20
- package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +0 -15
- package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +0 -20
- package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +0 -16
- package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +0 -10
- package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +0 -27
- package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +0 -7
- package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +0 -13
- package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +0 -13
- package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +0 -8
- package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +0 -33
- package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +0 -69
- package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +0 -24
- package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +0 -20
- package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +0 -124
- package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +0 -40
- package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +0 -10
- package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +0 -13
- package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/RolModel.mjs +0 -39
- package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +0 -28
- package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +0 -25
- package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +0 -5
- package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +0 -54
- package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +0 -9
- package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +0 -8
- package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +0 -12
- package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +0 -53
- package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +0 -24
- package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +0 -15
- package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +0 -10
- package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +0 -154
- package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +0 -54
- package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +0 -46
- package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +0 -53
- package/esm2022/src/app/shared/servicios/general.service.mjs +0 -104
- package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +0 -21
- package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +0 -370
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +0 -187
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +0 -85
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +0 -347
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +0 -206
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +0 -329
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +0 -1583
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +0 -105
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +0 -114
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +0 -588
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +0 -177
- package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +0 -749
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +0 -331
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +0 -96
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +0 -675
- package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +0 -86
- package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +0 -201
- package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +0 -916
- package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +0 -115
- package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +0 -301
- package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +0 -267
- package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +0 -128
- package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +0 -293
- package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +0 -269
- package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +0 -555
- package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +0 -64
- package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +0 -159
- package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +0 -89
- package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +0 -69
- package/esm2022/src/app/webcommon/services/dashboard.service.mjs +0 -253
- package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +0 -114
- package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +0 -88
- package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +0 -68
- package/esm2022/src/app/webcommon/services/homologacion.service.mjs +0 -50
- package/esm2022/src/app/webcommon/services/plantillas.service.mjs +0 -129
- package/esm2022/src/app/webcommon/services/reportes.service.mjs +0 -95
- package/esm2022/src/app/webcommon/webcommon.module.mjs +0 -15
- package/esm2022/src/environments/environment.mjs +0 -24
- package/fesm2022/general-library-union.mjs +0 -15938
- package/fesm2022/general-library-union.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +0 -18
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +0 -14
- package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +0 -34
- package/src/app/core/componentes/footer/footer.component.d.ts +0 -9
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +0 -46
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +0 -44
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +0 -45
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +0 -33
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +0 -9
- package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +0 -24
- package/src/app/core/componentes/menu/menu.component.d.ts +0 -16
- package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +0 -32
- package/src/app/core/core.module.d.ts +0 -8
- package/src/app/core/errores/authentication.error.d.ts +0 -3
- package/src/app/core/modelos/error-response.model.d.ts +0 -9
- package/src/app/core/modelos/table-column.model.d.ts +0 -12
- package/src/app/core/modelos/user.model.d.ts +0 -6
- package/src/app/core/plantilla-general/plantilla-general.template.d.ts +0 -89
- package/src/app/core/servicios/auth.service.d.ts +0 -52
- package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +0 -19
- package/src/app/core/servicios/data-exporter-table.utils.d.ts +0 -11
- package/src/app/core/servicios/error-interceptor.service.d.ts +0 -41
- package/src/app/core/servicios/guardias/auth.guard.d.ts +0 -17
- package/src/app/core/servicios/guardias/publico.guard.d.ts +0 -13
- package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +0 -11
- package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +0 -26
- package/src/app/core/servicios/loading.service.d.ts +0 -22
- package/src/app/core/servicios/menu.service.d.ts +0 -35
- package/src/app/core/servicios/spinner-service.d.ts +0 -9
- package/src/app/core/servicios/storage.service.d.ts +0 -37
- package/src/app/core/servicios/template.service.d.ts +0 -20
- package/src/app/core/servicios/toast.service.d.ts +0 -48
- package/src/app/core/servicios/utils.service.d.ts +0 -42
- package/src/app/core/sharedlib.module.d.ts +0 -6
- package/src/app/core/utilidades/color.util.d.ts +0 -70
- package/src/app/layout/app.breadcrumb.component.d.ts +0 -28
- package/src/app/layout/app.footer.component.d.ts +0 -8
- package/src/app/layout/app.layout.component.d.ts +0 -39
- package/src/app/layout/app.layout.module.d.ts +0 -6
- package/src/app/layout/app.menu.component.d.ts +0 -19
- package/src/app/layout/app.menu.service.d.ts +0 -12
- package/src/app/layout/app.menuitem.component.d.ts +0 -41
- package/src/app/layout/app.menuprofile.component.d.ts +0 -18
- package/src/app/layout/app.rightmenu.component.d.ts +0 -10
- package/src/app/layout/app.sidebar.component.d.ts +0 -34
- package/src/app/layout/app.topbar.component.d.ts +0 -79
- package/src/app/layout/service/app.layout.service.d.ts +0 -57
- package/src/app/publico/pages/login/login.page.d.ts +0 -40
- package/src/app/publico/pages/not-found/not-found.page.d.ts +0 -17
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +0 -41
- package/src/app/publico/pages/timeout/timeout.page.d.ts +0 -10
- package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +0 -25
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +0 -7
- package/src/app/seguridad/modelos/AplicacionModel.d.ts +0 -7
- package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +0 -13
- package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +0 -8
- package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +0 -16
- package/src/app/seguridad/modelos/CargueLineaModel.d.ts +0 -12
- package/src/app/seguridad/modelos/ColoresRGB.d.ts +0 -17
- package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +0 -8
- package/src/app/seguridad/modelos/ComplementoModel.d.ts +0 -6
- package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +0 -20
- package/src/app/seguridad/modelos/ConexionModel.d.ts +0 -13
- package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +0 -7
- package/src/app/seguridad/modelos/CorreoModel.d.ts +0 -31
- package/src/app/seguridad/modelos/CorreoWSModel.d.ts +0 -33
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +0 -13
- package/src/app/seguridad/modelos/EmpresaModel.d.ts +0 -23
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +0 -18
- package/src/app/seguridad/modelos/EtiquetaModel.d.ts +0 -4
- package/src/app/seguridad/modelos/Etiquetas.d.ts +0 -10
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +0 -15
- package/src/app/seguridad/modelos/FuenteDato.d.ts +0 -18
- package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +0 -8
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +0 -16
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +0 -10
- package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +0 -8
- package/src/app/seguridad/modelos/GeneralModel.d.ts +0 -8
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +0 -9
- package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +0 -13
- package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +0 -13
- package/src/app/seguridad/modelos/ListaServicioModel.d.ts +0 -16
- package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +0 -6
- package/src/app/seguridad/modelos/LoginModel.d.ts +0 -17
- package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +0 -7
- package/src/app/seguridad/modelos/ModulosModel.d.ts +0 -14
- package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +0 -19
- package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +0 -8
- package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +0 -8
- package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +0 -8
- package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +0 -18
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +0 -6
- package/src/app/seguridad/modelos/PropiedadModel.d.ts +0 -9
- package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +0 -25
- package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +0 -6
- package/src/app/seguridad/modelos/RecursoPunto.d.ts +0 -12
- package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +0 -12
- package/src/app/seguridad/modelos/ReporteBanda.d.ts +0 -7
- package/src/app/seguridad/modelos/ReporteColumna.d.ts +0 -32
- package/src/app/seguridad/modelos/ReporteColumnario.d.ts +0 -68
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +0 -23
- package/src/app/seguridad/modelos/ReporteMarcador.d.ts +0 -39
- package/src/app/seguridad/modelos/ReporteSoporte.d.ts +0 -9
- package/src/app/seguridad/modelos/ReporteTabla.d.ts +0 -12
- package/src/app/seguridad/modelos/RespuestaModel.d.ts +0 -8
- package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +0 -25
- package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +0 -8
- package/src/app/seguridad/modelos/SitioPortalModel.d.ts +0 -24
- package/src/app/seguridad/modelos/TablaFromModel.d.ts +0 -4
- package/src/app/seguridad/modelos/TareasModel.d.ts +0 -49
- package/src/app/seguridad/modelos/TextoModel.d.ts +0 -8
- package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +0 -7
- package/src/app/seguridad/modelos/UnionModel.d.ts +0 -11
- package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +0 -22
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +0 -13
- package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +0 -9
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +0 -47
- package/src/app/shared/servicios/cargar-archivos.service.d.ts +0 -15
- package/src/app/shared/servicios/cargar-mapas.service.d.ts +0 -18
- package/src/app/shared/servicios/encriptado-basico.service.d.ts +0 -10
- package/src/app/shared/servicios/general.service.d.ts +0 -24
- package/src/app/shared/servicios/parametros-navegacion.service.d.ts +0 -9
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +0 -78
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +0 -79
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +0 -29
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +0 -69
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +0 -51
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +0 -77
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +0 -278
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +0 -42
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +0 -35
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +0 -143
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +0 -49
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +0 -128
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +0 -64
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +0 -33
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +0 -149
- package/src/app/webcommon/pipes/dashboard.pipe.d.ts +0 -48
- package/src/app/webcommon/pipes/fuente.pipe.d.ts +0 -136
- package/src/app/webcommon/pipes/general.pipe.d.ts +0 -646
- package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +0 -59
- package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +0 -193
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +0 -59
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +0 -27
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +0 -64
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +0 -63
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +0 -105
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +0 -21
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +0 -42
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +0 -30
- package/src/app/webcommon/services/carguelinea.service.d.ts +0 -19
- package/src/app/webcommon/services/dashboard.service.d.ts +0 -27
- package/src/app/webcommon/services/ejecucionreporte.service.d.ts +0 -34
- package/src/app/webcommon/services/fechaUtils.service.d.ts +0 -29
- package/src/app/webcommon/services/fuentegeneral.service.d.ts +0 -24
- package/src/app/webcommon/services/homologacion.service.d.ts +0 -17
- package/src/app/webcommon/services/plantillas.service.d.ts +0 -26
- package/src/app/webcommon/services/reportes.service.d.ts +0 -35
- package/src/app/webcommon/webcommon.module.d.ts +0 -6
- package/src/environments/environment.d.ts +0 -7
|
@@ -1,555 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
3
|
-
import { GeneralModel } from '../../../seguridad/modelos/GeneralModel';
|
|
4
|
-
import { ConfirmationService, MessageService } from 'primeng/api';
|
|
5
|
-
import { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel';
|
|
6
|
-
import { DialogModule } from 'primeng/dialog';
|
|
7
|
-
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
|
8
|
-
import { AccordionModule } from 'primeng/accordion';
|
|
9
|
-
import { TableModule } from 'primeng/table';
|
|
10
|
-
import { CommonModule, DatePipe } from '@angular/common';
|
|
11
|
-
import { FieldsetModule } from 'primeng/fieldset';
|
|
12
|
-
import { InputNumberModule } from 'primeng/inputnumber';
|
|
13
|
-
import { InputTextModule } from 'primeng/inputtext';
|
|
14
|
-
import { DropdownModule } from 'primeng/dropdown';
|
|
15
|
-
import { CalendarModule } from 'primeng/calendar';
|
|
16
|
-
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
17
|
-
import { PopupSentenciaComponent } from '../popup-sentencia/popup-sentencia.component';
|
|
18
|
-
import { FormsModule } from '@angular/forms';
|
|
19
|
-
import { FloatLabelModule } from 'primeng/floatlabel';
|
|
20
|
-
import { DataExporter } from '../../../core/servicios/data-exporter-table.utils';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "../../../shared/servicios/general.service";
|
|
23
|
-
import * as i2 from "../../services/ejecucionreporte.service";
|
|
24
|
-
import * as i3 from "primeng/api";
|
|
25
|
-
import * as i4 from "../../../core/servicios/toast.service";
|
|
26
|
-
import * as i5 from "../../../core/servicios/auth.service";
|
|
27
|
-
import * as i6 from "@ngx-translate/core";
|
|
28
|
-
import * as i7 from "../../../shared/servicios/cargar-archivos.service";
|
|
29
|
-
import * as i8 from "../../../core/servicios/utils.service";
|
|
30
|
-
import * as i9 from "../../../core/servicios/cargar-control-funcionalidad.service";
|
|
31
|
-
import * as i10 from "../../../shared/servicios/encriptado-basico.service";
|
|
32
|
-
import * as i11 from "../../pipes/reporte-fuente.pipe";
|
|
33
|
-
import * as i12 from "../../pipes/general.pipe";
|
|
34
|
-
import * as i13 from "../../../core/servicios/data-exporter-table.utils";
|
|
35
|
-
import * as i14 from "@angular/common";
|
|
36
|
-
import * as i15 from "primeng/dialog";
|
|
37
|
-
import * as i16 from "primeng/confirmpopup";
|
|
38
|
-
import * as i17 from "primeng/accordion";
|
|
39
|
-
import * as i18 from "primeng/table";
|
|
40
|
-
import * as i19 from "primeng/fieldset";
|
|
41
|
-
import * as i20 from "primeng/inputnumber";
|
|
42
|
-
import * as i21 from "primeng/inputtext";
|
|
43
|
-
import * as i22 from "primeng/dropdown";
|
|
44
|
-
import * as i23 from "primeng/calendar";
|
|
45
|
-
import * as i24 from "primeng/button";
|
|
46
|
-
import * as i25 from "primeng/radiobutton";
|
|
47
|
-
import * as i26 from "@angular/forms";
|
|
48
|
-
import * as i27 from "primeng/floatlabel";
|
|
49
|
-
export class PopupReporteComponent {
|
|
50
|
-
generalService;
|
|
51
|
-
ejecucionReporteService;
|
|
52
|
-
confirmationService;
|
|
53
|
-
notificacionService;
|
|
54
|
-
authService;
|
|
55
|
-
translateService;
|
|
56
|
-
cargarArchivoService;
|
|
57
|
-
utilsService;
|
|
58
|
-
controlFuncionalidad;
|
|
59
|
-
encriptadoBasico;
|
|
60
|
-
reporteFuentePipe;
|
|
61
|
-
generalPipe;
|
|
62
|
-
cargarArchivo;
|
|
63
|
-
dataExporter;
|
|
64
|
-
encriptadorArchivo;
|
|
65
|
-
mostrar = false;
|
|
66
|
-
aplicacion;
|
|
67
|
-
reporte = new ReporteFuenteModel;
|
|
68
|
-
entradasPuntoProceso = [];
|
|
69
|
-
regresar = new EventEmitter();
|
|
70
|
-
panel = 'entrada';
|
|
71
|
-
operacion;
|
|
72
|
-
listaEntrada = [];
|
|
73
|
-
listaSegundoPlano = [];
|
|
74
|
-
parametros = [];
|
|
75
|
-
elementoBorrar = {};
|
|
76
|
-
generaciones = [];
|
|
77
|
-
operaciones = [];
|
|
78
|
-
mostrarOtraSeleccion;
|
|
79
|
-
mostrarArchivosSoporte;
|
|
80
|
-
mostrarConsultaCasoError;
|
|
81
|
-
correo;
|
|
82
|
-
tipoReporte;
|
|
83
|
-
soporteBase;
|
|
84
|
-
tipoArchivo;
|
|
85
|
-
bloquearCorreo;
|
|
86
|
-
mapaTipoArchivos;
|
|
87
|
-
listadoArchivoSoporte = [];
|
|
88
|
-
mostrarPopupSentencia;
|
|
89
|
-
items;
|
|
90
|
-
vistaVisualizar;
|
|
91
|
-
paginator = { rows: 2, totalRecords: 0 };
|
|
92
|
-
mostrarParametros;
|
|
93
|
-
mostrarQueDeseaHacer;
|
|
94
|
-
columnas = [];
|
|
95
|
-
listaRegistro = [];
|
|
96
|
-
existeJasper = false;
|
|
97
|
-
cols;
|
|
98
|
-
exportColumns;
|
|
99
|
-
nombreArchivo = 'Tabla';
|
|
100
|
-
columnasExportExcel;
|
|
101
|
-
constructor(generalService, ejecucionReporteService, confirmationService, notificacionService, authService, translateService, cargarArchivoService, utilsService, controlFuncionalidad, encriptadoBasico, reporteFuentePipe, generalPipe, cargarArchivo, dataExporter, encriptadorArchivo) {
|
|
102
|
-
this.generalService = generalService;
|
|
103
|
-
this.ejecucionReporteService = ejecucionReporteService;
|
|
104
|
-
this.confirmationService = confirmationService;
|
|
105
|
-
this.notificacionService = notificacionService;
|
|
106
|
-
this.authService = authService;
|
|
107
|
-
this.translateService = translateService;
|
|
108
|
-
this.cargarArchivoService = cargarArchivoService;
|
|
109
|
-
this.utilsService = utilsService;
|
|
110
|
-
this.controlFuncionalidad = controlFuncionalidad;
|
|
111
|
-
this.encriptadoBasico = encriptadoBasico;
|
|
112
|
-
this.reporteFuentePipe = reporteFuentePipe;
|
|
113
|
-
this.generalPipe = generalPipe;
|
|
114
|
-
this.cargarArchivo = cargarArchivo;
|
|
115
|
-
this.dataExporter = dataExporter;
|
|
116
|
-
this.encriptadorArchivo = encriptadorArchivo;
|
|
117
|
-
}
|
|
118
|
-
ngOnInit() {
|
|
119
|
-
this.mapaTipoArchivos = this.reporteFuentePipe.MAPA_TIPO_ARCHIVOS;
|
|
120
|
-
this.aplicacion = this.authService.getTokenKey('aplicacion');
|
|
121
|
-
}
|
|
122
|
-
async mostrarPopup() {
|
|
123
|
-
this.panel = 'entrada';
|
|
124
|
-
this.mostrarQueDeseaHacer = false;
|
|
125
|
-
this.tipoReporte = null;
|
|
126
|
-
this.mostrarConsultaCasoError = this.validarControlFuncionalidad('reporte:versentenciaerror');
|
|
127
|
-
this.operacion = null;
|
|
128
|
-
this.elementoBorrar = {};
|
|
129
|
-
this.listaSegundoPlano = [];
|
|
130
|
-
this.listaRegistro = [];
|
|
131
|
-
this.columnas = [];
|
|
132
|
-
this.existeJasper = false;
|
|
133
|
-
if (this.reporte.llave) {
|
|
134
|
-
var resultado = await this.ejecucionReporteService.getDatosEjecucionReporte({ llave: this.reporte.llave }).toPromise();
|
|
135
|
-
this.reporte = resultado.reporte;
|
|
136
|
-
delete this.reporte['alias'];
|
|
137
|
-
this.cargarListaEntrada();
|
|
138
|
-
this.traerSegundoPlano();
|
|
139
|
-
this.cargarCorreo();
|
|
140
|
-
await this.validarExisteJasper();
|
|
141
|
-
await this.cargarGeneraciones();
|
|
142
|
-
this.cargarOperaciones();
|
|
143
|
-
this.utilsService.resizeWindowIFrame();
|
|
144
|
-
}
|
|
145
|
-
this.utilsService.resizeWindowIFrame();
|
|
146
|
-
}
|
|
147
|
-
cargarMenu() {
|
|
148
|
-
this.items = [
|
|
149
|
-
{
|
|
150
|
-
label: this.translateService.instant('ejecucion'),
|
|
151
|
-
icon: 'glyphicons glyphicons-plus-sign',
|
|
152
|
-
command: (event) => {
|
|
153
|
-
this.vistaVisualizar = 'entrada';
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
label: this.translateService.instant('segundoplano'),
|
|
158
|
-
icon: 'glyphicons glyphicons-file-minus',
|
|
159
|
-
command: (event) => {
|
|
160
|
-
this.vistaVisualizar = 'segundoplano';
|
|
161
|
-
},
|
|
162
|
-
visible: this.listaSegundoPlano.length > 0,
|
|
163
|
-
}
|
|
164
|
-
];
|
|
165
|
-
}
|
|
166
|
-
async cargarGeneraciones() {
|
|
167
|
-
this.generaciones = [];
|
|
168
|
-
if (this.utilsService.isNotBlank(this.reporte.tituloParametro) && this.existeJasper) {
|
|
169
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_JASPERDINAMICO,
|
|
170
|
-
label: this.reporteFuentePipe.DESC_GENERACION_JASPERDINAMICO });
|
|
171
|
-
}
|
|
172
|
-
if (this.utilsService.isNotBlank(this.reporte.jasperFijo) && this.utilsService.isNotBlank(this.reporte.modoFijo)) {
|
|
173
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_JASPERFIJO,
|
|
174
|
-
label: this.reporteFuentePipe.DESC_GENERACION_JASPERFIJO });
|
|
175
|
-
}
|
|
176
|
-
if (this.utilsService.isNotBlank(this.reporte.archivoTodo) && this.utilsService.isNotBlank(this.reporte.hojaExcel)) {
|
|
177
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_EXCEL,
|
|
178
|
-
label: this.reporteFuentePipe.DESC_GENERACION_EXCEL });
|
|
179
|
-
}
|
|
180
|
-
if (this.utilsService.isNotBlank(this.reporte.archivoIndividual) || this.reporte.unicoArchivo == 'N') {
|
|
181
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_PLANTILLA,
|
|
182
|
-
label: this.reporteFuentePipe.DESC_GENERACION_PLANTILLA });
|
|
183
|
-
}
|
|
184
|
-
if (this.utilsService.isNotBlank(this.reporte.separador)) {
|
|
185
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_ARCHIVOPLANO,
|
|
186
|
-
label: this.reporteFuentePipe.DESC_GENERACION_ARCHIVOPLANO });
|
|
187
|
-
}
|
|
188
|
-
if (this.utilsService.isNotBlank(this.reporte.nombreTabla)) {
|
|
189
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_TABLA,
|
|
190
|
-
label: this.reporteFuentePipe.DESC_GENERACION_TABLA });
|
|
191
|
-
}
|
|
192
|
-
if (this.utilsService.isNotBlank(this.reporte.tagEncabezado) && this.utilsService.isNotBlank(this.reporte.estructuraRegistro)) {
|
|
193
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_XML,
|
|
194
|
-
label: this.reporteFuentePipe.DESC_GENERACION_XML });
|
|
195
|
-
}
|
|
196
|
-
if (this.utilsService.isNotBlank(this.reporte.archivoExcelColumnario) && this.utilsService.isNotBlank(this.reporte.hojaExcelColumnario)) {
|
|
197
|
-
this.generaciones.push({ value: this.reporteFuentePipe.GENERACION_COLUMNARIO,
|
|
198
|
-
label: this.reporteFuentePipe.DESC_GENERACION_COLUMNARIO });
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
async validarExisteJasper() {
|
|
202
|
-
try {
|
|
203
|
-
var data = await this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporte.llave + '.jrxml'), 'ruta_plantillas', this.aplicacion).toPromise();
|
|
204
|
-
if (data) {
|
|
205
|
-
this.existeJasper = true;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
this.existeJasper = false;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
cargarOperaciones() {
|
|
213
|
-
this.bloquearCorreo = true;
|
|
214
|
-
this.operaciones = [];
|
|
215
|
-
if (this.tipoReporte) {
|
|
216
|
-
if (this.tipoReporte != this.reporteFuentePipe.GENERACION_TABLA) {
|
|
217
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_DESCARGAR,
|
|
218
|
-
label: this.reporteFuentePipe.DESC_OPERACION_DESCARGAR });
|
|
219
|
-
if (this.validarControlFuncionalidad('reporte:enviocorreo')) {
|
|
220
|
-
this.bloquearCorreo = false;
|
|
221
|
-
}
|
|
222
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_ENVIARCORREO,
|
|
223
|
-
label: this.reporteFuentePipe.DESC_OPERACION_ENVIARCORREO });
|
|
224
|
-
if (this.reporteFuentePipe.MOMENTOS_SEGUNDO_PLANO == this.reporte.momento) {
|
|
225
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_SEGUNDOPLANO,
|
|
226
|
-
label: this.reporteFuentePipe.DESC_OPERACION_SEGUNDOPLANO });
|
|
227
|
-
}
|
|
228
|
-
if ((this.tipoReporte == this.reporteFuentePipe.GENERACION_JASPERFIJO && this.reporte.modoFijo == 'P')
|
|
229
|
-
|| this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.descargarFuente != 'S') {
|
|
230
|
-
if (this.reporte.archivoHtml && this.reporte.campoEmail) {
|
|
231
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_ENVIOMASIVO,
|
|
232
|
-
label: this.reporteFuentePipe.DESC_OPERACION_ENVIOMASIVO });
|
|
233
|
-
}
|
|
234
|
-
if (this.reporte.publicacion && this.reporte.campoPublica) {
|
|
235
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_PUBLICAR,
|
|
236
|
-
label: this.reporteFuentePipe.DESC_OPERACION_PUBLICAR });
|
|
237
|
-
}
|
|
238
|
-
if (this.reporte.archivoHtml && this.reporte.campoEmail && this.reporte.publicacion && this.reporte.campoPublica) {
|
|
239
|
-
this.operaciones.push({ value: this.reporteFuentePipe.OPERACION_CORREOPUBLICAR,
|
|
240
|
-
label: this.reporteFuentePipe.DESC_OPERACION_CORREOPUBLICAR });
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
//pte proceso externo
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
cambioValorLista(event, parametro) {
|
|
248
|
-
if (event.value) {
|
|
249
|
-
let lista = event.value.split(':');
|
|
250
|
-
if (parametro.unionDTO.tipoDato == 'N') {
|
|
251
|
-
parametro.unionDTO.valor = parseInt(lista[0]);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
parametro.unionDTO.valor = lista[0];
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
this.utilsService.resizeWindowIFrame();
|
|
258
|
-
}
|
|
259
|
-
cambioSoporteBase(event) {
|
|
260
|
-
if (this.soporteBase == null) {
|
|
261
|
-
this.cargarOperaciones();
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
this.generalService.queryForObject(new GeneralModel('ReporteSoporteDTO', null, false, { llaveTabla: this.soporteBase })).subscribe(archivoBase => {
|
|
265
|
-
if (archivoBase == null) {
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
this.soporteBase = archivoBase.llaveTabla;
|
|
269
|
-
this.reporte.archivoIndividual = archivoBase.archivoIndividual;
|
|
270
|
-
this.cargarOperaciones();
|
|
271
|
-
this.utilsService.resizeWindowIFrame();
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
cargarCorreo() {
|
|
275
|
-
this.generalService.queryForObject(new GeneralModel('UsuarioDTO', null, true, { login: this.authService.getTokenKey('usuario') })).subscribe(data => {
|
|
276
|
-
this.correo = data.email;
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
cargarListaEntrada() {
|
|
280
|
-
this.mostrarParametros = false;
|
|
281
|
-
if (this.entradasPuntoProceso.length > 0) {
|
|
282
|
-
this.parametros = this.entradasPuntoProceso;
|
|
283
|
-
this.parametros.forEach(element => {
|
|
284
|
-
if (element.unionDTO.solicitar == 'S') {
|
|
285
|
-
this.mostrarParametros = true;
|
|
286
|
-
}
|
|
287
|
-
if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null) {
|
|
288
|
-
element.unionDTO.valor = new Date(element.unionDTO.valor);
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
this.utilsService.resizeWindowIFrame();
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
this.ejecucionReporteService.obtenerListaEntradaEjecucion(this.reporte).subscribe(data => {
|
|
295
|
-
this.parametros = data;
|
|
296
|
-
this.parametros.forEach(element => {
|
|
297
|
-
if (element.unionDTO.solicitar == 'S') {
|
|
298
|
-
this.mostrarParametros = true;
|
|
299
|
-
}
|
|
300
|
-
if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null) {
|
|
301
|
-
element.unionDTO.valor = new Date(element.unionDTO.valor);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
this.utilsService.resizeWindowIFrame();
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
traerSegundoPlano() {
|
|
309
|
-
let usuario = this.authService.getTokenKey('usuario');
|
|
310
|
-
this.generalService.queryForList(new GeneralModel('EjecucionReporteDTO', null, false, {
|
|
311
|
-
adicionado: usuario,
|
|
312
|
-
reporteFuente: this.reporte.llave
|
|
313
|
-
})).subscribe(data => {
|
|
314
|
-
this.listaSegundoPlano = data;
|
|
315
|
-
this.paginator.totalRecords = this.listaSegundoPlano.length;
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
verSegundoPlano(event) {
|
|
319
|
-
this.elementoBorrar = event.data;
|
|
320
|
-
this.elementoBorrar.fechaAdicionado = this.elementoBorrar.fechaAdicionado ? new Date(this.elementoBorrar.fechaAdicionado) : null;
|
|
321
|
-
this.elementoBorrar.inicia = this.elementoBorrar.inicia ? new Date(this.elementoBorrar.inicia) : null;
|
|
322
|
-
this.elementoBorrar.termina = this.elementoBorrar.termina ? new Date(this.elementoBorrar.termina) : null;
|
|
323
|
-
this.operacion = 'historico';
|
|
324
|
-
this.panel = 'resultado';
|
|
325
|
-
}
|
|
326
|
-
eliminarSegundoPlano(event) {
|
|
327
|
-
this.confirmationService.confirm({
|
|
328
|
-
target: event.target,
|
|
329
|
-
message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,
|
|
330
|
-
acceptLabel: this.generalPipe.SI_DESC,
|
|
331
|
-
header: this.translateService.instant('confirmar'),
|
|
332
|
-
accept: () => {
|
|
333
|
-
this.ejecucionReporteService.eliminarEjecucionReporte(this.elementoBorrar).subscribe(data => {
|
|
334
|
-
this.notificacionService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);
|
|
335
|
-
this.regresarSegundoPlano();
|
|
336
|
-
this.traerSegundoPlano();
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
descargarArchivo() {
|
|
342
|
-
this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(this.elementoBorrar.archivo)).subscribe(blob => {
|
|
343
|
-
const a = document.createElement('a');
|
|
344
|
-
const objectUrl = URL.createObjectURL(blob);
|
|
345
|
-
a.href = objectUrl;
|
|
346
|
-
let partes = this.elementoBorrar.archivo.split(".");
|
|
347
|
-
let extension = partes[partes.length - 1];
|
|
348
|
-
a.download = this.utilsService.generarLlave() + '.' + extension;
|
|
349
|
-
a.click();
|
|
350
|
-
URL.revokeObjectURL(objectUrl);
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
cambioTipoReporte(event) {
|
|
354
|
-
this.mostrarQueDeseaHacer = true;
|
|
355
|
-
if (this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.unicoArchivo == 'N') {
|
|
356
|
-
this.mostrarArchivosSoporte = true;
|
|
357
|
-
this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {
|
|
358
|
-
reporteFuente: this.reporte.llave,
|
|
359
|
-
tipo: 'S'
|
|
360
|
-
})).subscribe(data => {
|
|
361
|
-
this.listadoArchivoSoporte = data;
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
this.mostrarArchivosSoporte = false;
|
|
366
|
-
this.listadoArchivoSoporte = [];
|
|
367
|
-
this.tipoArchivo = null;
|
|
368
|
-
this.operacion = null;
|
|
369
|
-
this.cargarOperaciones();
|
|
370
|
-
//this.descargarArchivo = null;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
cambioTipoArchivo(event) {
|
|
374
|
-
this.cargarOperaciones();
|
|
375
|
-
}
|
|
376
|
-
regresarSegundoPlano() {
|
|
377
|
-
this.elementoBorrar = {};
|
|
378
|
-
this.panel = 'entrada';
|
|
379
|
-
this.operacion = null;
|
|
380
|
-
}
|
|
381
|
-
ocultar() {
|
|
382
|
-
this.tipoReporte = null;
|
|
383
|
-
this.mostrar = false;
|
|
384
|
-
this.regresar.emit(false);
|
|
385
|
-
}
|
|
386
|
-
validarControlFuncionalidad(valor) {
|
|
387
|
-
return this.controlFuncionalidad.getControlFuncionalidad(valor);
|
|
388
|
-
}
|
|
389
|
-
sentencia() {
|
|
390
|
-
this.mostrarPopupSentencia = true;
|
|
391
|
-
}
|
|
392
|
-
regresarSentencia(event) {
|
|
393
|
-
this.mostrarPopupSentencia = false;
|
|
394
|
-
}
|
|
395
|
-
enviarSegundoPlano() {
|
|
396
|
-
let listaEntrada = [];
|
|
397
|
-
this.parametros.forEach(element => {
|
|
398
|
-
listaEntrada.push(element.unionDTO);
|
|
399
|
-
});
|
|
400
|
-
this.ejecucionReporteService.enviarSegundoPlano({
|
|
401
|
-
reporte: this.reporte,
|
|
402
|
-
parametros: listaEntrada,
|
|
403
|
-
tipoReporte: this.tipoReporte,
|
|
404
|
-
operacion: this.operacion,
|
|
405
|
-
correo: this.correo,
|
|
406
|
-
}).subscribe(data => {
|
|
407
|
-
this.notificacionService.showInfo(data.mensaje);
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
descargarReporte() {
|
|
411
|
-
if ('F' == this.tipoReporte) {
|
|
412
|
-
this.reporte.tipoArchivo = this.tipoArchivo;
|
|
413
|
-
}
|
|
414
|
-
let listaEntrada = [];
|
|
415
|
-
for (var element of this.parametros) {
|
|
416
|
-
console.log(element);
|
|
417
|
-
if (element.unionDTO.tipoDato == 'B' && element.unionDTO.tipo == 'D') {
|
|
418
|
-
console.log('entra validacion');
|
|
419
|
-
var valor = element.unionDTO.valor + "";
|
|
420
|
-
if (valor.endsWith('.0')) {
|
|
421
|
-
element.unionDTO.valor = parseInt(element.unionDTO.valor);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
listaEntrada.push(element.unionDTO);
|
|
425
|
-
}
|
|
426
|
-
this.ejecucionReporteService.descargarReporte({
|
|
427
|
-
reporte: this.reporte,
|
|
428
|
-
parametros: listaEntrada,
|
|
429
|
-
tipoReporte: this.tipoReporte,
|
|
430
|
-
operacion: this.operacion,
|
|
431
|
-
correo: this.correo,
|
|
432
|
-
endpointGeneradorReportes: ''
|
|
433
|
-
}).subscribe({
|
|
434
|
-
next: data => {
|
|
435
|
-
console.log(data);
|
|
436
|
-
this.notificacionService.showInfo(data.mensaje);
|
|
437
|
-
if (!data.archivo) {
|
|
438
|
-
return;
|
|
439
|
-
}
|
|
440
|
-
const decodedData = atob(data.archivo);
|
|
441
|
-
const byteNumbers = new Array(decodedData.length);
|
|
442
|
-
for (let i = 0; i < decodedData.length; i++) {
|
|
443
|
-
byteNumbers[i] = decodedData.charCodeAt(i);
|
|
444
|
-
}
|
|
445
|
-
const byteArray = new Uint8Array(byteNumbers);
|
|
446
|
-
// Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo
|
|
447
|
-
const blob = new Blob([byteArray], { type: data.mime });
|
|
448
|
-
// Crea una URL del objeto Blob
|
|
449
|
-
const url = URL.createObjectURL(blob);
|
|
450
|
-
// Crea un enlace de descarga y haz clic en él para iniciar la descarga
|
|
451
|
-
const link = document.createElement('a');
|
|
452
|
-
link.href = url;
|
|
453
|
-
link.download = data.nombreArchivo + data.extension;
|
|
454
|
-
document.body.appendChild(link);
|
|
455
|
-
link.click();
|
|
456
|
-
// Limpia la URL creada
|
|
457
|
-
URL.revokeObjectURL(url);
|
|
458
|
-
}
|
|
459
|
-
});
|
|
460
|
-
}
|
|
461
|
-
descargarReporteSinHilo() {
|
|
462
|
-
let listaEntrada = [];
|
|
463
|
-
this.parametros.forEach(element => {
|
|
464
|
-
if (element.unionDTO.tipoDato == 'B' && element.unionDTO.tipo == 'D') {
|
|
465
|
-
if (element.unionDTO.valor.endsWith('.0')) {
|
|
466
|
-
element.unionDTO.valor = parseInt(element.unionDTO.valor);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
listaEntrada.push(element.unionDTO);
|
|
470
|
-
});
|
|
471
|
-
this.ejecucionReporteService.descargarReporte({
|
|
472
|
-
next: data => {
|
|
473
|
-
this.notificacionService.showInfo(data.mensaje);
|
|
474
|
-
const decodedData = atob(data.archivo);
|
|
475
|
-
const byteNumbers = new Array(decodedData.length);
|
|
476
|
-
for (let i = 0; i < decodedData.length; i++) {
|
|
477
|
-
byteNumbers[i] = decodedData.charCodeAt(i);
|
|
478
|
-
}
|
|
479
|
-
const byteArray = new Uint8Array(byteNumbers);
|
|
480
|
-
// Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo
|
|
481
|
-
const blob = new Blob([byteArray], { type: data.mime });
|
|
482
|
-
// Crea una URL del objeto Blob
|
|
483
|
-
const url = URL.createObjectURL(blob);
|
|
484
|
-
// Crea un enlace de descarga y haz clic en él para iniciar la descarga
|
|
485
|
-
const link = document.createElement('a');
|
|
486
|
-
link.href = url;
|
|
487
|
-
link.download = data.nombreArchivo + '.' + data.extension;
|
|
488
|
-
document.body.appendChild(link);
|
|
489
|
-
link.click();
|
|
490
|
-
// Limpia la URL creada
|
|
491
|
-
URL.revokeObjectURL(url);
|
|
492
|
-
},
|
|
493
|
-
error: err => {
|
|
494
|
-
this.notificacionService.showError(JSON.stringify(err.error.mensajeEtiqueta));
|
|
495
|
-
}
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
generarTabla() {
|
|
499
|
-
this.panel = 'resultado';
|
|
500
|
-
let listaEntrada = [];
|
|
501
|
-
this.columnas = [];
|
|
502
|
-
this.parametros.forEach(element => {
|
|
503
|
-
listaEntrada.push(element.unionDTO);
|
|
504
|
-
});
|
|
505
|
-
this.ejecucionReporteService.generarTabla({ reporte: this.reporte, parametros: listaEntrada }).subscribe(data => {
|
|
506
|
-
var columna;
|
|
507
|
-
data.columnas.forEach(element => {
|
|
508
|
-
columna = {
|
|
509
|
-
field: element.nombre.toLowerCase(),
|
|
510
|
-
header: element.nombre,
|
|
511
|
-
width: 300,
|
|
512
|
-
canOrder: true,
|
|
513
|
-
};
|
|
514
|
-
this.columnas.push(columna);
|
|
515
|
-
});
|
|
516
|
-
this.listaRegistro = data.listaRegistro;
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
crearColumnasExportar() {
|
|
520
|
-
this.exportColumns = this.columnas.map(col => ({ title: col.header, dataKey: col.field }));
|
|
521
|
-
this.columnasExportExcel = [];
|
|
522
|
-
for (let col of this.columnas) {
|
|
523
|
-
this.columnasExportExcel.push(col.field);
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
exportArchivo(tipoArchivo) {
|
|
527
|
-
this.crearColumnasExportar();
|
|
528
|
-
if (tipoArchivo === 'pdf') {
|
|
529
|
-
this.dataExporter.exportPdf(this.listaRegistro, this.exportColumns, this.nombreArchivo);
|
|
530
|
-
}
|
|
531
|
-
else if ('xls') {
|
|
532
|
-
this.dataExporter.exportExcelColumnas(this.listaRegistro, this.nombreArchivo, this.columnasExportExcel);
|
|
533
|
-
}
|
|
534
|
-
else if (tipoArchivo === 'csv') {
|
|
535
|
-
this.dataExporter.exportCSV(this.listaRegistro, this.columnasExportExcel, this.nombreArchivo);
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PopupReporteComponent, deps: [{ token: i1.GeneralService }, { token: i2.EjecucionReporteService }, { token: i3.ConfirmationService }, { token: i4.ToastService }, { token: i5.AuthService }, { token: i6.TranslateService }, { token: i7.CargarArchivosService }, { token: i8.UtilsService }, { token: i9.CargarControlFuncionalidadService }, { token: i10.EncriptadoBasicoService }, { token: i11.ReporteFuentePipe }, { token: i12.GeneralPipe }, { token: i7.CargarArchivosService }, { token: i13.DataExporter }, { token: i10.EncriptadoBasicoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
539
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: PopupReporteComponent, isStandalone: true, selector: "app-popup-reporte", inputs: { mostrar: "mostrar", aplicacion: "aplicacion", reporte: "reporte", entradasPuntoProceso: "entradasPuntoProceso" }, outputs: { regresar: "regresar" }, providers: [MessageService, ConfirmationService, DataExporter], ngImport: i0, template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i14.DatePipe, name: "date" }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i15.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { 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: AccordionModule }, { kind: "component", type: i17.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex", "selectOnFocus", "headerAriaLevel"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i17.AccordionTab, selector: "p-accordionTab", inputs: ["id", "header", "headerStyle", "tabStyle", "contentStyle", "tabStyleClass", "headerStyleClass", "contentStyleClass", "disabled", "cache", "transitionOptions", "iconPos", "selected", "headerAriaLevel"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i18.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i18.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FieldsetModule }, { kind: "component", type: i19.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i20.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i21.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i22.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i23.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i24.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i25.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: PopupSentenciaComponent, selector: "app-popup-sentencia", inputs: ["reporte", "parametros", "mostrarPopup"], outputs: ["regresar"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i26.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: i26.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i26.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i27.FloatLabel, selector: "p-floatLabel" }] });
|
|
540
|
-
}
|
|
541
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PopupReporteComponent, decorators: [{
|
|
542
|
-
type: Component,
|
|
543
|
-
args: [{ selector: 'app-popup-reporte', imports: [CommonModule, DialogModule, ConfirmPopupModule, AccordionModule, TableModule, TranslateModule, DatePipe, FieldsetModule, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, RadioButtonModule, PopupSentenciaComponent, FormsModule, FloatLabelModule], standalone: true, providers: [MessageService, ConfirmationService, DataExporter], template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"] }]
|
|
544
|
-
}], ctorParameters: () => [{ type: i1.GeneralService }, { type: i2.EjecucionReporteService }, { type: i3.ConfirmationService }, { type: i4.ToastService }, { type: i5.AuthService }, { type: i6.TranslateService }, { type: i7.CargarArchivosService }, { type: i8.UtilsService }, { type: i9.CargarControlFuncionalidadService }, { type: i10.EncriptadoBasicoService }, { type: i11.ReporteFuentePipe }, { type: i12.GeneralPipe }, { type: i7.CargarArchivosService }, { type: i13.DataExporter }, { type: i10.EncriptadoBasicoService }], propDecorators: { mostrar: [{
|
|
545
|
-
type: Input
|
|
546
|
-
}], aplicacion: [{
|
|
547
|
-
type: Input
|
|
548
|
-
}], reporte: [{
|
|
549
|
-
type: Input
|
|
550
|
-
}], entradasPuntoProceso: [{
|
|
551
|
-
type: Input
|
|
552
|
-
}], regresar: [{
|
|
553
|
-
type: Output
|
|
554
|
-
}] } });
|
|
555
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtcmVwb3J0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9wb3B1cHMvcG9wdXAtcmVwb3J0ZS9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BvcHVwcy9wb3B1cC1yZXBvcnRlL3BvcHVwLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQVksY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FB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LEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLGNBQ25RLElBQUksYUFDTCxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUM7d2lCQU1oRCxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9nZW5lcmFsLnBpcGUnO1xuaW1wb3J0IHsgR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljaW9zL2dlbmVyYWwuc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9HZW5lcmFsTW9kZWwnO1xuaW1wb3J0IHsgQ2FyZ2FyQXJjaGl2b3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9jYXJnYXItYXJjaGl2b3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvZW5jcmlwdGFkby1iYXNpY28uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXBvcnRlRnVlbnRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUnO1xuaW1wb3J0IHsgRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lamVjdWNpb25yZXBvcnRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3J0ZUZ1ZW50ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZUZ1ZW50ZU1vZGVsJztcbmltcG9ydCB7IFJlcG9ydGVFbnRyYWRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9SZXBvcnRlRW50cmFkYU1vZGVsJztcbmltcG9ydCB7IFJlcG9ydGVTb3BvcnRlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9SZXBvcnRlU29wb3J0ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxvcy90YWJsZS1jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENhcmdhckNvbnRyb2xGdW5jaW9uYWxpZGFkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2Nhcmdhci1jb250cm9sLWZ1bmNpb25hbGlkYWQuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XG5pbXBvcnQgeyBBY2NvcmRpb25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2FjY29yZGlvbic7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGaWVsZHNldE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IFBvcHVwU2VudGVuY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wdXAtc2VudGVuY2lhL3BvcHVwLXNlbnRlbmNpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG9hdExhYmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9mbG9hdGxhYmVsJztcbmltcG9ydCB7IERhdGFFeHBvcnRlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2RhdGEtZXhwb3J0ZXItdGFibGUudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcG9wdXAtcmVwb3J0ZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBBY2NvcmRpb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERhdGVQaXBlLCBGaWVsZHNldE1vZHVsZSwgSW5wdXROdW1iZXJNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIENhbGVuZGFyTW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZSwgUG9wdXBTZW50ZW5jaWFDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBGbG9hdExhYmVsTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBEYXRhRXhwb3J0ZXJdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wdXAtcmVwb3J0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcHVwUmVwb3J0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIG1vc3RyYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFwbGljYWNpb246IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHJlcG9ydGU6IFJlcG9ydGVGdWVudGVNb2RlbCA9IG5ldyBSZXBvcnRlRnVlbnRlTW9kZWw7XG4gIEBJbnB1dCgpIHB1YmxpYyBlbnRyYWRhc1B1bnRvUHJvY2VzbzogYW55W109W107XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVncmVzYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYW5lbDogc3RyaW5nID0gJ2VudHJhZGEnO1xuICBwdWJsaWMgb3BlcmFjaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBsaXN0YUVudHJhZGE6IFJlcG9ydGVFbnRyYWRhTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgbGlzdGFTZWd1bmRvUGxhbm86IGFueVtdID0gW107XG4gIHB1YmxpYyBwYXJhbWV0cm9zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgZWxlbWVudG9Cb3JyYXI6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2VuZXJhY2lvbmVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgb3BlcmFjaW9uZXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBtb3N0cmFyT3RyYVNlbGVjY2lvbjogYm9vbGVhbjtcblx0cHVibGljIG1vc3RyYXJBcmNoaXZvc1NvcG9ydGU6IGJvb2xlYW47XG5cdHB1YmxpYyBtb3N0cmFyQ29uc3VsdGFDYXNvRXJyb3I6IGJvb2xlYW47XG4gIHB1YmxpYyBjb3JyZW86IHN0cmluZztcbiAgcHVibGljIHRpcG9SZXBvcnRlOiBzdHJpbmc7XG4gIHB1YmxpYyBzb3BvcnRlQmFzZTogc3RyaW5nO1xuICBwdWJsaWMgdGlwb0FyY2hpdm86IHN0cmluZztcbiAgcHVibGljIGJsb3F1ZWFyQ29ycmVvOiBib29sZWFuO1xuICBwdWJsaWMgbWFwYVRpcG9BcmNoaXZvcztcbiAgcHVibGljIGxpc3RhZG9BcmNoaXZvU29wb3J0ZTogUmVwb3J0ZVNvcG9ydGVNb2RlbFtdID0gW107XG4gIHB1YmxpYyBtb3N0cmFyUG9wdXBTZW50ZW5jaWE6IGJvb2xlYW47XG5cbiAgcHVibGljIGl0ZW1zOiBNZW51SXRlbVtdO1xuICBwdWJsaWMgdmlzdGFWaXN1YWxpemFyOiBzdHJpbmc7XG4gIHBhZ2luYXRvcj17cm93czoyLHRvdGFsUmVjb3JkczowfVxuICBwdWJsaWMgbW9zdHJhclBhcmFtZXRyb3M6IGJvb2xlYW47XG5cdHB1YmxpYyBtb3N0cmFyUXVlRGVzZWFIYWNlcjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29sdW1uYXM6IFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgcHVibGljIGxpc3RhUmVnaXN0cm86IGFueVtdID0gW107XG5cbiAgcHVibGljIGV4aXN0ZUphc3BlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2xzOiBhbnlbXTtcbiAgZXhwb3J0Q29sdW1uczogYW55W107XG4gIG5vbWJyZUFyY2hpdm8gPSAnVGFibGEnO1xuICBjb2x1bW5hc0V4cG9ydEV4Y2VsOiBhbnlbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlamVjdWNpb25SZXBvcnRlU2VydmljZTogRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBub3RpZmljYWNpb25TZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FyZ2FyQXJjaGl2b1NlcnZpY2U6IENhcmdhckFyY2hpdm9zU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbnRyb2xGdW5jaW9uYWxpZGFkOiBDYXJnYXJDb250cm9sRnVuY2lvbmFsaWRhZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW5jcmlwdGFkb0Jhc2ljbzogRW5jcmlwdGFkb0Jhc2ljb1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVwb3J0ZUZ1ZW50ZVBpcGU6IFJlcG9ydGVGdWVudGVQaXBlLFxuICAgICAgICAgICAgICBwcml2YXRlIGdlbmVyYWxQaXBlOiBHZW5lcmFsUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjYXJnYXJBcmNoaXZvOiBDYXJnYXJBcmNoaXZvc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGF0YUV4cG9ydGVyOiBEYXRhRXhwb3J0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW5jcmlwdGFkb3JBcmNoaXZvOiBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSwpIHsgfSAgICAgICAgIFxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBhVGlwb0FyY2hpdm9zID0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5NQVBBX1RJUE9fQVJDSElWT1M7ICBcbiAgICB0aGlzLmFwbGljYWNpb24gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuS2V5KCdhcGxpY2FjaW9uJylcbiAgfVxuXG4gIGFzeW5jIG1vc3RyYXJQb3B1cCgpe1xuICAgIHRoaXMucGFuZWwgPSAnZW50cmFkYSc7XG4gICAgdGhpcy5tb3N0cmFyUXVlRGVzZWFIYWNlciA9IGZhbHNlO1xuICAgIHRoaXMudGlwb1JlcG9ydGUgPSBudWxsO1xuICAgIHRoaXMubW9zdHJhckNvbnN1bHRhQ2Fzb0Vycm9yID0gdGhpcy52YWxpZGFyQ29udHJvbEZ1bmNpb25hbGlkYWQoJ3JlcG9ydGU6dmVyc2VudGVuY2lhZXJyb3InKTtcbiAgICB0aGlzLm9wZXJhY2lvbiA9IG51bGw7XG4gICAgdGhpcy5lbGVtZW50b0JvcnJhciA9IHt9XG4gICAgdGhpcy5saXN0YVNlZ3VuZG9QbGFubyA9IFtdXG4gICAgdGhpcy5saXN0YVJlZ2lzdHJvID0gW107XG4gICAgdGhpcy5jb2x1bW5hcyA9IFtdO1xuICAgIHRoaXMuZXhpc3RlSmFzcGVyID0gZmFsc2U7XG4gICAgaWYgKHRoaXMucmVwb3J0ZS5sbGF2ZSkge1xuICAgICAgdmFyIHJlc3VsdGFkbyA9IGF3YWl0IHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZ2V0RGF0b3NFamVjdWNpb25SZXBvcnRlKHtsbGF2ZTogdGhpcy5yZXBvcnRlLmxsYXZlfSkudG9Qcm9taXNlKCk7XG4gICAgICB0aGlzLnJlcG9ydGUgPSByZXN1bHRhZG8ucmVwb3J0ZTtcbiAgICAgIGRlbGV0ZSB0aGlzLnJlcG9ydGVbJ2FsaWFzJ11cbiAgICAgIHRoaXMuY2FyZ2FyTGlzdGFFbnRyYWRhKCk7XG4gICAgICB0aGlzLnRyYWVyU2VndW5kb1BsYW5vKCk7XG4gICAgICB0aGlzLmNhcmdhckNvcnJlbygpO1xuICAgICAgYXdhaXQgdGhpcy52YWxpZGFyRXhpc3RlSmFzcGVyKCk7XG4gICAgICBhd2FpdCB0aGlzLmNhcmdhckdlbmVyYWNpb25lcygpO1xuICAgICAgdGhpcy5jYXJnYXJPcGVyYWNpb25lcygpO1xuICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICB9XG5cbiAgY2FyZ2FyTWVudSgpe1xuICAgIHRoaXMuaXRlbXMgPSBbXG4gICAgICBcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlamVjdWNpb24nKSxcbiAgICAgICAgaWNvbjogJ2dseXBoaWNvbnMgZ2x5cGhpY29ucy1wbHVzLXNpZ24nLFxuICAgICAgICBjb21tYW5kOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9ICdlbnRyYWRhJztcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnc2VndW5kb3BsYW5vJyksXG4gICAgICAgIGljb246ICdnbHlwaGljb25zIGdseXBoaWNvbnMtZmlsZS1taW51cycsXG4gICAgICAgIGNvbW1hbmQ6IChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlzdGFWaXN1YWxpemFyID0gJ3NlZ3VuZG9wbGFubyc7XG4gICAgICAgIH0sXG4gICAgICAgIHZpc2libGU6IHRoaXMubGlzdGFTZWd1bmRvUGxhbm8ubGVuZ3RoID4gMCxcbiAgICAgIH1cbiAgICBdXG4gIH1cblxuICBhc3luYyBjYXJnYXJHZW5lcmFjaW9uZXMoKXtcbiAgICB0aGlzLmdlbmVyYWNpb25lcyA9IFtdO1xuICAgIGlmICggdGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUudGl0dWxvUGFyYW1ldHJvKSAmJiB0aGlzLmV4aXN0ZUphc3Blcil7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0pBU1BFUkRJTkFNSUNPLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9KQVNQRVJESU5BTUlDT30pXG4gICAgfVxuICAgIGlmICh0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5qYXNwZXJGaWpvKSAmJiB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5tb2RvRmlqbykpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9KQVNQRVJGSUpPLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9KQVNQRVJGSUpPfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9Ub2RvKSAmJiB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5ob2phRXhjZWwpKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fRVhDRUwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0VYQ0VMfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9JbmRpdmlkdWFsKSB8fCB0aGlzLnJlcG9ydGUudW5pY29BcmNoaXZvID09ICdOJyl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1BMQU5USUxMQSwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fUExBTlRJTExBfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLnNlcGFyYWRvcikpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9BUkNISVZPUExBTk8sIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0FSQ0hJVk9QTEFOT30pXG4gICAgfVxuICAgIGlmICh0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5ub21icmVUYWJsYSkpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9UQUJMQSwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fVEFCTEF9KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUudGFnRW5jYWJlemFkbykgJiYgdGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuZXN0cnVjdHVyYVJlZ2lzdHJvKSl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1hNTCwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fWE1MfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9FeGNlbENvbHVtbmFyaW8pICYmIHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmhvamFFeGNlbENvbHVtbmFyaW8pKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fQ09MVU1OQVJJTywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fQ09MVU1OQVJJT30pXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmFsaWRhckV4aXN0ZUphc3Blcigpe1xuICAgIHRyeSB7XG4gICAgICB2YXIgZGF0YSA9IGF3YWl0IHRoaXMuY2FyZ2FyQXJjaGl2by5kZXNjYXJnYXJBcmNoaXZvKHRoaXMuZW5jcmlwdGFkb3JBcmNoaXZvLmVuY3JpcHRhcigncmVwb3J0ZXMvJyArIHRoaXMucmVwb3J0ZS5sbGF2ZSArICcuanJ4bWwnKSwgJ3J1dGFfcGxhbnRpbGxhcycsIHRoaXMuYXBsaWNhY2lvbikudG9Qcm9taXNlKCk7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLmV4aXN0ZUphc3BlciA9IHRydWU7XG4gICAgICB9ICAgXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXhpc3RlSmFzcGVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FyZ2FyT3BlcmFjaW9uZXMoKXtcbiAgICB0aGlzLmJsb3F1ZWFyQ29ycmVvID0gdHJ1ZTtcbiAgICB0aGlzLm9wZXJhY2lvbmVzID0gW107XG4gICAgaWYgKHRoaXMudGlwb1JlcG9ydGUpe1xuICAgICAgaWYgKHRoaXMudGlwb1JlcG9ydGUgIT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1RBQkxBKSB7XG4gICAgICAgIHRoaXMub3BlcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuT1BFUkFDSU9OX0RFU0NBUkdBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX09QRVJBQ0lPTl9ERVNDQVJHQVJ9KTtcbiAgICAgIFxuICAgICAgICBpZiAodGhpcy52YWxpZGFyQ29udHJvbEZ1bmNpb25hbGlkYWQoJ3JlcG9ydGU6ZW52aW9jb3JyZW8nKSl7XG4gICAgICAgICAgdGhpcy5ibG9xdWVhckNvcnJlbyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3BlcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuT1BFUkFDSU9OX0VOVklBUkNPUlJFTyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0VOVklBUkNPUlJFT30pO1xuICAgICAgICBpZiAodGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5NT01FTlRPU19TRUdVTkRPX1BMQU5PID09IHRoaXMucmVwb3J0ZS5tb21lbnRvKSB7XG4gICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fU0VHVU5ET1BMQU5PLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX09QRVJBQ0lPTl9TRUdVTkRPUExBTk99KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHRoaXMudGlwb1JlcG9ydGUgPT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0pBU1BFUkZJSk8gJiYgdGhpcy5yZXBvcnRlLm1vZG9GaWpvID09ICdQJylcbiAgICAgICAgICB8fCB0aGlzLnRpcG9SZXBvcnRlID09IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9QTEFOVElMTEEgJiYgdGhpcy5yZXBvcnRlLmRlc2NhcmdhckZ1ZW50ZSAhPSAnUycpe1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydGUuYXJjaGl2b0h0bWwgJiYgdGhpcy5yZXBvcnRlLmNhbXBvRW1haWwpe1xuICAgICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fRU5WSU9NQVNJVk8sXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0VOVklPTUFTSVZPfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydGUucHVibGljYWNpb24gJiYgdGhpcy5yZXBvcnRlLmNhbXBvUHVibGljYSl7XG4gICAgICAgICAgICB0aGlzLm9wZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk9QRVJBQ0lPTl9QVUJMSUNBUixcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19PUEVSQUNJT05fUFVCTElDQVJ9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucmVwb3J0ZS5hcmNoaXZvSHRtbCAmJiB0aGlzLnJlcG9ydGUuY2FtcG9FbWFpbCAmJiB0aGlzLnJlcG9ydGUucHVibGljYWNpb24gJiYgdGhpcy5yZXBvcnRlLmNhbXBvUHVibGljYSApe1xuICAgICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fQ09SUkVPUFVCTElDQVIsXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0NPUlJFT1BVQkxJQ0FSfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vcHRlIHByb2Nlc28gZXh0ZXJub1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbWJpb1ZhbG9yTGlzdGEoZXZlbnQsIHBhcmFtZXRybyl7XG4gICAgaWYgKGV2ZW50LnZhbHVlKXtcbiAgICAgIGxldCBsaXN0YSA9IGV2ZW50LnZhbHVlLnNwbGl0KCc6JylcbiAgICAgIGlmIChwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ04nKXtcbiAgICAgICAgcGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yID0gcGFyc2VJbnQobGlzdGFbMF0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbWV0cm8udW5pb25EVE8udmFsb3IgPSBsaXN0YVswXVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcbiAgfVxuICBcbiAgY2FtYmlvU29wb3J0ZUJhc2UoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5zb3BvcnRlQmFzZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yT2JqZWN0KG5ldyBHZW5lcmFsTW9kZWwoJ1JlcG9ydGVTb3BvcnRlRFRPJywgbnVsbCwgZmFsc2UsIHtsbGF2ZVRhYmxhOiB0aGlzLnNvcG9ydGVCYXNlfSkpLnN1YnNjcmliZShhcmNoaXZvQmFzZSA9PiB7XG4gICAgICBpZiAoYXJjaGl2b0Jhc2UgPT0gbnVsbCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNvcG9ydGVCYXNlID0gYXJjaGl2b0Jhc2UubGxhdmVUYWJsYTtcblx0XHRcdHRoaXMucmVwb3J0ZS5hcmNoaXZvSW5kaXZpZHVhbCA9IGFyY2hpdm9CYXNlLmFyY2hpdm9JbmRpdmlkdWFsO1xuXHRcdFx0dGhpcy5jYXJnYXJPcGVyYWNpb25lcygpO1xuICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgfSk7XG4gICAgXG4gIH1cblxuICBjYXJnYXJDb3JyZW8oKXtcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yT2JqZWN0KG5ldyBHZW5lcmFsTW9kZWwoJ1VzdWFyaW9EVE8nLCBudWxsLCB0cnVlLCB7bG9naW46IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3VzdWFyaW8nKX0pKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmNvcnJlbyA9IGRhdGEuZW1haWw7XG4gICAgfSlcbiAgfVxuXG4gIGNhcmdhckxpc3RhRW50cmFkYSgpe1xuICAgIHRoaXMubW9zdHJhclBhcmFtZXRyb3MgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5lbnRyYWRhc1B1bnRvUHJvY2Vzby5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMucGFyYW1ldHJvcyA9IHRoaXMuZW50cmFkYXNQdW50b1Byb2Nlc287ICBcbiAgICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy5zb2xpY2l0YXIgPT0gJ1MnKXtcbiAgICAgICAgICB0aGlzLm1vc3RyYXJQYXJhbWV0cm9zID0gIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udGlwb0RhdG8gPT0gJ0YnICYmIGVsZW1lbnQudW5pb25EVE8udmFsb3IgIT0gbnVsbCl7XG4gICAgICAgICAgZWxlbWVudC51bmlvbkRUTy52YWxvciA9IG5ldyBEYXRlKGVsZW1lbnQudW5pb25EVE8udmFsb3IpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLm9idGVuZXJMaXN0YUVudHJhZGFFamVjdWNpb24odGhpcy5yZXBvcnRlKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFyYW1ldHJvcyA9IGRhdGE7XG4gICAgICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChlbGVtZW50LnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUycpe1xuICAgICAgICAgICAgdGhpcy5tb3N0cmFyUGFyYW1ldHJvcyA9ICB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnRicgJiYgZWxlbWVudC51bmlvbkRUTy52YWxvciAhPSBudWxsKXtcbiAgICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBuZXcgRGF0ZShlbGVtZW50LnVuaW9uRFRPLnZhbG9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHRyYWVyU2VndW5kb1BsYW5vKCl7XG4gICAgbGV0IHVzdWFyaW8gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuS2V5KCd1c3VhcmlvJylcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yTGlzdChuZXcgR2VuZXJhbE1vZGVsKCdFamVjdWNpb25SZXBvcnRlRFRPJywgbnVsbCwgZmFsc2UsIHtcbiAgICAgIGFkaWNpb25hZG86IHVzdWFyaW8sIFxuICAgICAgcmVwb3J0ZUZ1ZW50ZTogdGhpcy5yZXBvcnRlLmxsYXZlfSkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5saXN0YVNlZ3VuZG9QbGFubyA9IGRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA9IHRoaXMubGlzdGFTZWd1bmRvUGxhbm8ubGVuZ3RoO1xuICAgICAgfSlcbiAgfVxuICBcbiAgdmVyU2VndW5kb1BsYW5vKGV2ZW50KXtcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyID0gZXZlbnQuZGF0YTtcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyLmZlY2hhQWRpY2lvbmFkbyA9IHRoaXMuZWxlbWVudG9Cb3JyYXIuZmVjaGFBZGljaW9uYWRvID8gbmV3IERhdGUodGhpcy5lbGVtZW50b0JvcnJhci5mZWNoYUFkaWNpb25hZG8pIDogbnVsbFxuICAgIHRoaXMuZWxlbWVudG9Cb3JyYXIuaW5pY2lhID0gdGhpcy5lbGVtZW50b0JvcnJhci5pbmljaWEgPyBuZXcgRGF0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyLmluaWNpYSkgOiBudWxsXG4gICAgdGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hID0gdGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hID8gbmV3IERhdGUodGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hKSA6IG51bGxcbiAgICB0aGlzLm9wZXJhY2lvbiA9ICdoaXN0b3JpY28nXG4gICAgdGhpcy5wYW5lbCA9ICdyZXN1bHRhZG8nXG4gIH1cblxuICBlbGltaW5hclNlZ3VuZG9QbGFubyhldmVudCl7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICBtZXNzYWdlOiAgdGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0VMSU1JTkFSX0NPTkZJUk1BUixcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmdlbmVyYWxQaXBlLlNJX0RFU0MsXG4gICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb25maXJtYXInKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLmVsaW1pbmFyRWplY3VjaW9uUmVwb3J0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyKS5zdWJzY3JpYmUoZGF0YSA9PntcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8odGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0VMSU1JTkFSKVxuICAgICAgICAgIHRoaXMucmVncmVzYXJTZWd1bmRvUGxhbm8oKTtcbiAgICAgICAgICB0aGlzLnRyYWVyU2VndW5kb1BsYW5vKCk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGRlc2NhcmdhckFyY2hpdm8oKXtcbiAgICB0aGlzLmNhcmdhckFyY2hpdm9TZXJ2aWNlLmRlc2NhcmdhckFyY2hpdm8odGhpcy5lbmNyaXB0YWRvQmFzaWNvLmVuY3JpcHRhcih0aGlzLmVsZW1lbnRvQm9ycmFyLmFyY2hpdm8pKS5zdWJzY3JpYmUoYmxvYiA9PiB7XG4gICAgICBcbiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICAgIGNvbnN0IG9iamVjdFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgIGEuaHJlZiA9IG9iamVjdFVybFxuICAgICAgbGV0IHBhcnRlcyA9IHRoaXMuZWxlbWVudG9Cb3JyYXIuYXJjaGl2by5zcGxpdChcIi5cIik7XG4gICAgICBsZXQgZXh0ZW5zaW9uID0gcGFydGVzW3BhcnRlcy5sZW5ndGggLSAxXTtcbiAgICAgIGEuZG93bmxvYWQgPSB0aGlzLnV0aWxzU2VydmljZS5nZW5lcmFyTGxhdmUoKSArICcuJyArIGV4dGVuc2lvbjtcbiAgICAgIGEuY2xpY2soKTtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbWJpb1RpcG9SZXBvcnRlKGV2ZW50KXtcbiAgICB0aGlzLm1vc3RyYXJRdWVEZXNlYUhhY2VyID0gdHJ1ZTtcbiAgICBpZiAodGhpcy50aXBvUmVwb3J0ZSA9PSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fUExBTlRJTExBICYmIHRoaXMucmVwb3J0ZS51bmljb0FyY2hpdm8gPT0gJ04nICl7XG4gICAgICB0aGlzLm1vc3RyYXJBcmNoaXZvc1NvcG9ydGUgPSB0cnVlO1xuICAgICAgdGhpcy5nZW5lcmFsU2VydmljZS5xdWVyeUZvckxpc3QobmV3IEdlbmVyYWxNb2RlbCgnUmVwb3J0ZVNvcG9ydGVEVE8nLCBudWxsLCBmYWxzZSwge1xuICAgICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLnJlcG9ydGUubGxhdmUsXG4gICAgICAgIHRpcG86J1MnXG4gICAgICB9KSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxpc3RhZG9BcmNoaXZvU29wb3J0ZSA9IGRhdGE7XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9zdHJhckFyY2hpdm9zU29wb3J0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpc3RhZG9BcmNoaXZvU29wb3J0ZSA9IFtdO1xuICAgICAgICB0aGlzLnRpcG9BcmNoaXZvID0gbnVsbDtcbiAgICAgICAgdGhpcy5vcGVyYWNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICAgIC8vdGhpcy5kZXNjYXJnYXJBcmNoaXZvID0gbnVsbDtcbiAgICB9IFxuICB9XG5cbiAgY2FtYmlvVGlwb0FyY2hpdm8oZXZlbnQpe1xuICAgIHRoaXMuY2FyZ2FyT3BlcmFjaW9uZXMoKTtcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VndW5kb1BsYW5vKCl7XG4gICAgdGhpcy5lbGVtZW50b0JvcnJhciA9IHt9XG4gICAgdGhpcy5wYW5lbCA9ICdlbnRyYWRhJ1xuICAgIHRoaXMub3BlcmFjaW9uID0gbnVsbDtcbiAgfVxuXG4gIG9jdWx0YXIoKXtcbiAgICB0aGlzLnRpcG9SZXBvcnRlID0gbnVsbDtcbiAgICB0aGlzLm1vc3RyYXIgPSBmYWxzZTtcbiAgICB0aGlzLnJlZ3Jlc2FyLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgdmFsaWRhckNvbnRyb2xGdW5jaW9uYWxpZGFkKHZhbG9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sRnVuY2lvbmFsaWRhZC5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCh2YWxvcik7XG4gIH1cblxuICBzZW50ZW5jaWEoKXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IHRydWVcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VudGVuY2lhKGV2ZW50KXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IGZhbHNlO1xuICB9XG5cbiAgZW52aWFyU2VndW5kb1BsYW5vKCl7XG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBsaXN0YUVudHJhZGEucHVzaChlbGVtZW50LnVuaW9uRFRPKVxuICAgIH0pXG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5lbnZpYXJTZWd1bmRvUGxhbm8oe1xuICAgICAgcmVwb3J0ZTogdGhpcy5yZXBvcnRlLFxuICAgICAgcGFyYW1ldHJvczogbGlzdGFFbnRyYWRhLFxuICAgICAgdGlwb1JlcG9ydGU6IHRoaXMudGlwb1JlcG9ydGUsXG4gICAgICBvcGVyYWNpb246IHRoaXMub3BlcmFjaW9uLFxuICAgICAgY29ycmVvOiB0aGlzLmNvcnJlbyxcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgIH0pXG4gIH1cblxuICBkZXNjYXJnYXJSZXBvcnRlKCl7XG5cbiAgICBpZignRicgPT0gdGhpcy50aXBvUmVwb3J0ZSl7XG4gICAgICB0aGlzLnJlcG9ydGUudGlwb0FyY2hpdm8gPSB0aGlzLnRpcG9BcmNoaXZvO1xuICAgIH1cblxuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIGZvcih2YXIgZWxlbWVudCBvZiB0aGlzLnBhcmFtZXRyb3MpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpXG4gICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnQicgJiYgZWxlbWVudC51bmlvbkRUTy50aXBvID09ICdEJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdmFsaWRhY2lvbicpXG4gICAgICAgIHZhciB2YWxvcjogc3RyaW5nID0gZWxlbWVudC51bmlvbkRUTy52YWxvciArIFwiXCI7XG4gICAgICAgIGlmICh2YWxvci5lbmRzV2l0aCgnLjAnKSkge1xuICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBwYXJzZUludChlbGVtZW50LnVuaW9uRFRPLnZhbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9XG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5kZXNjYXJnYXJSZXBvcnRlKHtcbiAgICAgIHJlcG9ydGU6IHRoaXMucmVwb3J0ZSxcbiAgICAgIHBhcmFtZXRyb3M6IGxpc3RhRW50cmFkYSxcbiAgICAgIHRpcG9SZXBvcnRlOiB0aGlzLnRpcG9SZXBvcnRlLFxuICAgICAgb3BlcmFjaW9uOiB0aGlzLm9wZXJhY2lvbixcbiAgICAgIGNvcnJlbzogdGhpcy5jb3JyZW8sXG4gICAgICBlbmRwb2ludEdlbmVyYWRvclJlcG9ydGVzOiAnJ1xuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkYXRhID0+e1xuICAgICAgICBjb25zb2xlLmxvZyhkYXRhKVxuICAgICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgICAgICBpZiAoIWRhdGEuYXJjaGl2bykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWNvZGVkRGF0YSA9IGF0b2IoZGF0YS5hcmNoaXZvKTtcbiAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoZGVjb2RlZERhdGEubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gZGVjb2RlZERhdGEuY2hhckNvZGVBdChpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBvYmpldG8gQmxvYiBjb24gbG9zIGJ5dGVzIGRlY29kaWZpY2Fkb3MgeSBlbCB0aXBvIE1JTUUgZGVsIGFyY2hpdm9cbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGRhdGEubWltZSB9KTtcblxuICAgICAgICAvLyBDcmVhIHVuYSBVUkwgZGVsIG9iamV0byBCbG9iXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBlbmxhY2UgZGUgZGVzY2FyZ2EgeSBoYXogY2xpYyBlbiDDqWwgcGFyYSBpbmljaWFyIGxhIGRlc2NhcmdhXG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IGRhdGEubm9tYnJlQXJjaGl2byAgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIFxuICBkZXNjYXJnYXJSZXBvcnRlU2luSGlsbygpe1xuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udGlwb0RhdG8gPT0gJ0InICYmIGVsZW1lbnQudW5pb25EVE8udGlwbyA9PSAnRCcpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udmFsb3IuZW5kc1dpdGgoJy4wJykpIHtcbiAgICAgICAgICBlbGVtZW50LnVuaW9uRFRPLnZhbG9yID0gcGFyc2VJbnQoZWxlbWVudC51bmlvbkRUTy52YWxvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3RhRW50cmFkYS5wdXNoKGVsZW1lbnQudW5pb25EVE8pXG4gICAgfSlcbiAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLmRlc2NhcmdhclJlcG9ydGUoe1xuICAgICAgbmV4dDogZGF0YSA9PntcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25TZXJ2aWNlLnNob3dJbmZvKGRhdGEubWVuc2FqZSlcbiAgICAgICAgY29uc3QgZGVjb2RlZERhdGEgPSBhdG9iKGRhdGEuYXJjaGl2byk7XG4gICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGRlY29kZWREYXRhLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZERhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IGRlY29kZWREYXRhLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gb2JqZXRvIEJsb2IgY29uIGxvcyBieXRlcyBkZWNvZGlmaWNhZG9zIHkgZWwgdGlwbyBNSU1FIGRlbCBhcmNoaXZvXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBkYXRhLm1pbWUgfSk7XG5cbiAgICAgICAgLy8gQ3JlYSB1bmEgVVJMIGRlbCBvYmpldG8gQmxvYlxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gZW5sYWNlIGRlIGRlc2NhcmdhIHkgaGF6IGNsaWMgZW4gw6lsIHBhcmEgaW5pY2lhciBsYSBkZXNjYXJnYVxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBkYXRhLm5vbWJyZUFyY2hpdm8gKyAnLicgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25TZXJ2aWNlLnNob3dFcnJvcihKU09OLnN0cmluZ2lmeShlcnIuZXJyb3IubWVuc2FqZUV0aXF1ZXRhKSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhclRhYmxhKCl7XG4gICAgdGhpcy5wYW5lbCA9ICdyZXN1bHRhZG8nXG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5jb2x1bW5hcyA9IFtdO1xuICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9KVxuICAgIHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZ2VuZXJhclRhYmxhKHtyZXBvcnRlOiB0aGlzLnJlcG9ydGUsIHBhcmFtZXRyb3M6IGxpc3RhRW50cmFkYX0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHZhciBjb2x1bW5hOiBUYWJsZUNvbHVtbjtcbiAgICAgIGRhdGEuY29sdW1uYXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29sdW1uYSA9IHtcbiAgICAgICAgICBmaWVsZDogZWxlbWVudC5ub21icmUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBoZWFkZXI6IGVsZW1lbnQubm9tYnJlLFxuICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgY2FuT3JkZXI6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sdW1uYXMucHVzaChjb2x1bW5hKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpc3RhUmVnaXN0cm8gPSBkYXRhLmxpc3RhUmVnaXN0cm87XG4gICAgfSlcbiAgfVxuXG4gIGNyZWFyQ29sdW1uYXNFeHBvcnRhcigpIHtcbiAgICB0aGlzLmV4cG9ydENvbHVtbnMgPSB0aGlzLmNvbHVtbmFzLm1hcChjb2wgPT4gKHsgdGl0bGU6IGNvbC5oZWFkZXIsIGRhdGFLZXk6IGNvbC5maWVsZCB9KSk7XG4gICAgdGhpcy5jb2x1bW5hc0V4cG9ydEV4Y2VsID0gW107XG4gICAgZm9yKGxldCBjb2wgb2YgdGhpcy5jb2x1bW5hcykge1xuICAgICAgdGhpcy5jb2x1bW5hc0V4cG9ydEV4Y2VsLnB1c2goY29sLmZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnRBcmNoaXZvKHRpcG9BcmNoaXZvOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNyZWFyQ29sdW1uYXNFeHBvcnRhcigpO1xuICAgIGlmICh0aXBvQXJjaGl2byA9PT0gJ3BkZicpIHtcbiAgICAgIHRoaXMuZGF0YUV4cG9ydGVyLmV4cG9ydFBkZih0aGlzLmxpc3RhUmVnaXN0cm8sIHRoaXMuZXhwb3J0Q29sdW1ucywgdGhpcy5ub21icmVBcmNoaXZvKTtcbiAgICB9IGVsc2UgaWYgKCd4bHMnKSB7XG4gICAgICB0aGlzLmRhdGFFeHBvcnRlci5leHBvcnRFeGNlbENvbHVtbmFzKHRoaXMubGlzdGFSZWdpc3RybywgdGhpcy5ub21icmVBcmNoaXZvLCB0aGlzLmNvbHVtbmFzRXhwb3J0RXhjZWwpO1xuICAgIH0gZWxzZSBpZiAodGlwb0FyY2hpdm8gPT09ICdjc3YnKSB7XG4gICAgICB0aGlzLmRhdGFFeHBvcnRlci5leHBvcnRDU1YodGhpcy5saXN0YVJlZ2lzdHJvLCB0aGlzLmNvbHVtbmFzRXhwb3J0RXhjZWwsIHRoaXMubm9tYnJlQXJjaGl2byApO1xuICAgIH1cbiAgfVxufVxuIiwiPHAtY29uZmlybVBvcHVwPjwvcC1jb25maXJtUG9wdXA+XG48cC1kaWFsb2cgaWQ9J3BvcHVwUmVwb3J0ZScgaGVhZGVyPVwie3sncmVwb3J0ZXNnZW5lcmFsZXMnIHwgdHJhbnNsYXRlfX1cIiBbKHZpc2libGUpXT1cIm1vc3RyYXJcIiAob25TaG93KT1cIm1vc3RyYXJQb3B1cCgpXCJcbiAgICBbYnJlYWtwb2ludHNdPVwieyc5NjBweCc6ICc3NXZ3JywgJzY0MHB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNTB2dyd9XCIgKG9uSGlkZSk9XCJvY3VsdGFyKClcIiBbbW9kYWxdPVwidHJ1ZVwiPlxuXG4gICAgPGRpdiAqbmdJZj1cInBhbmVsID09ICdlbnRyYWRhJ1wiPlxuICAgICAgICA8IS0tU2VndW5kbyBwbGFuby0tPlxuICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBbc2VsZWN0ZWRdPVwidHJ1ZVwiIFtoZWFkZXJdPVwiJ3NlZ3VuZG9wbGFubycgfCB0cmFuc2xhdGVcIiAqbmdJZj1cImxpc3RhU2VndW5kb1BsYW5vLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdGFTZWd1bmRvUGxhbm9cIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIlxuICAgICAgICAgICAgICAgICAgICBbcm93c109XCJwYWdpbmF0b3Iucm93c1wiIFt0b3RhbFJlY29yZHNdPVwicGFnaW5hdG9yLnRvdGFsUmVjb3Jkc1wiXG4gICAgICAgICAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA+IHBhZ2luYXRvci5yb3dzXCIgKG9uUm93U2VsZWN0KT1cInZlclNlZ3VuZG9QbGFubygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZm9uZG9UYWJsYVBpbmNpcGFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J2VzdGFkbycgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snZmVjaGFpbmljaWFsJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW50cmFkYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwiZW50cmFkYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2VudHJhZGEubm9tYnJlRXN0YWRvfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2VudHJhZGEuaW5pY2lhIHwgZGF0ZTogJ2RkL01NL3l5eXkgaDptbSBhJ319PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgPHAtZmllbGRzZXQgY2xhc3M9XCJtdC0wXCIgICpuZ0lmPVwibW9zdHJhclBhcmFtZXRyb3NcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydlbnRyYWRhJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJwYXJhbWV0cm9zXCIgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXBhcmFtZXRybz5cbiAgICAgICAgICAgICAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJwYXJhbWV0cm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUydcIj57eyBwYXJhbWV0cm8udW5pb25EVE8uZGVzY3JpcGNpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4tLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAgKm5nSWY9XCJwYXJhbWV0cm8udW5pb25EVE8uc29saWNpdGFyID09ICdTJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnVCcgfHwgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdFJykgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnVScgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCIgLz5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdOJyAmJiBwYXJhbWV0cm8udW5pb25EVE8udGlwbyA9PSAnRCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCIgbW9kZT1cImRlY2ltYWxcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ0InICYmIHBhcmFtZXRyby51bmlvbkRUTy50aXBvID09ICdEJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGFyYW1ldHJvLmxpc3RhXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNhbWJpb1ZhbG9yTGlzdGEoJGV2ZW50LCBwYXJhbWV0cm8pXCIgWyhuZ01vZGVsKV09XCJwYXJhbWV0cm8udW5pb25EVE8ubGxhdmVMaXN0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0wnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdGJyAmJiBwYXJhbWV0cm8udW5pb25EVE8udGlwbyA9PSAnRCdcIj48L3AtY2FsZW5kYXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUydcIj57eyBwYXJhbWV0cm8udW5pb25EVE8uZGVzY3JpcGNpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG4gICAgICAgIDxwLWZpZWxkc2V0IGNsYXNzPVwibXQtMFwiICpuZ0lmPVwiZ2VuZXJhY2lvbmVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydnZW5lcmFyJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWQgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBnZW5lcmFjaW9uZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIChvbkNsaWNrKT1cImNhbWJpb1RpcG9SZXBvcnRlKCRldmVudClcIiBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiIG5hbWU9XCJ0aXBvUmVwb3J0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci52YWx1ZVwiIFsobmdNb2RlbCldPVwidGlwb1JlcG9ydGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbG9yLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG5cbiAgICAgICAgPHAtZmllbGRzZXQgY2xhc3M9XCJtdC0wXCIgKm5nSWY9XCInQScgIT0gdGlwb1JlcG9ydGUgJiYgbW9zdHJhclF1ZURlc2VhSGFjZXJcIiA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYm9va1wiIHN0eWxlPVwiY29sb3I6dmFyKC0tY29sb3ItNDAwKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+wr9RdcOpIGRlc2VhIGhhY2VyPzwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJ0aXBvUmVwb3J0ZSAmJiAnRicgPT0gdGlwb1JlcG9ydGVcIj57eydzZWxlY2Npb25ldGlwb2FyY2hpdm9kZXNlYWdlbmVyYXInIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlwb1JlcG9ydGUgJiYgJ0YnID09IHRpcG9SZXBvcnRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWQgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtMyBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMFwiICAqbmdGb3I9XCJsZXQgdmFsb3Igb2YgbWFwYVRpcG9BcmNoaXZvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvbiAob25DbGljayk9XCJjYW1iaW9UaXBvQXJjaGl2bygkZXZlbnQpXCIgW2lucHV0SWRdPVwidmFsb3IuY29kaWdvXCIgbmFtZT1cInRpcG9BcmNoaXZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5jb2RpZ29cIiAgWyhuZ01vZGVsKV09XCJ0aXBvQXJjaGl2b1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLmNvZGlnb1wiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsb3Iubm9tYnJlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vc3RyYXJBcmNoaXZvc1NvcG9ydGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiRGV0YWxsZXJlcG9ydGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImxpc3RhZG9BcmNoaXZvU29wb3J0ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uTGFiZWw9XCJkZXNjcmlwY2lvblwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cImxsYXZlVGFibGFcIiBbKG5nTW9kZWwpXT1cInNvcG9ydGVCYXNlXCIgKG9uQ2hhbmdlKT1cImNhbWJpb1NvcG9ydGVCYXNlKCRldmVudClcIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Tb3BvcnRlIEJhc2U6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlwb1JlcG9ydGUgPT0gJ0YnICYmIHRpcG9BcmNoaXZvIHx8IHRpcG9SZXBvcnRlICE9ICdGJyBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBvcGVyYWNpb25lc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvbiBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiIG5hbWU9XCJvcGVyYWNpb25cIiBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcGVyYWNpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJ2YWxvci52YWx1ZVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsb3IubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRSdcIj5cbiAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cImNvcnJlb1wiIHR5cGU9XCJ0ZXh0XCIgW2Rpc2FibGVkXT1cImJsb3F1ZWFyQ29ycmVvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J2NvcnJlbycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWZpZWxkc2V0PlxuICAgICAgICBcblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm0tMiBtdC00IHAtYnV0dG9uIHAtYnV0dG9uLW91dGxpbmVkIGJhY2tncm91bmQtMTAwXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInZhbGlkYXJDb250cm9sRnVuY2lvbmFsaWRhZCgnZWplY3JlcG86c2VudGVuY2lhJylcIiBsYWJlbD1cIlZlciBzZW50ZW5jaWFcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWV5ZS1vcGVuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VudGVuY2lhKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ0UnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1lbnZlbG9wZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VudmlhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRCcgJiYgcmVwb3J0ZS5tb21lbnRvICE9ICdEJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2hlY2tcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJSZXBvcnRlKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ0QnICYmIHJlcG9ydGUubW9tZW50byA9PSAnRCdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWNoZWNrXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2dlbmVyYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZGVzY2FyZ2FyUmVwb3J0ZVNpbkhpbG8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cInRpcG9SZXBvcnRlID09ICdBJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2hlY2tcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJnZW5lcmFyVGFibGEoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPCEtLXB0ZSBwcm9jZXNvIGV4dGVybm8tLT5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ00nIHx8IG9wZXJhY2lvbiA9PSAnTVAnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1lbnZlbG9wZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VudmlhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnUCdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWZvbGRlci1vcGVuXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfcHVibGljYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZW52aWFyU2VndW5kb1BsYW5vKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0nUydcIiAgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1jaGVja1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2dlbmVyYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZW52aWFyU2VndW5kb1BsYW5vKClcIj48L2J1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicGFuZWwgPT0gJ3Jlc3VsdGFkbydcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnaGlzdG9yaWNvJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtYmFzZSBtdC0yIG1sLTJcIj57eydkZXRhbGxlJyB8IHRyYW5zbGF0ZX19IHt7J3NlZ3VuZG9wbGFubycgfCB0cmFuc2xhdGV9fTwvaDQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBmb250LXNlbWlib2xkIGZsZXgtc2hyaW5rLTAgbWwtNFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVncmVzYXJTZWd1bmRvUGxhbm8oKVwiIGxhYmVsPVwie3snbGlua19yZWdyZXNhcicgfCB0cmFuc2xhdGV9fVwiID5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIElucHV0Z3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJlbGVtZW50b0JvcnJhci5pbmljaWFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCI+PC9wLWNhbGVuZGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ2ZlY2hhaW5pY2lhbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZWxlbWVudG9Cb3JyYXIudGVybWluYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIj48L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eygnZmVjaGFmaW5hbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIFtyZWFkb25seV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVsZW1lbnRvQm9ycmFyLm5vbWJyZUVzdGFkb1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7KCdlc3RhZG8nKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0xMiBsZzpjb2wtMTJcIiAqbmdJZj1cImVsZW1lbnRvQm9ycmFyLmVzdGFkbyA9PSAnRSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ21lbnNhamUnKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJtaW4tdy1mdWxsIHAtaW5wdXR0ZXh0YXJlYSBwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWVsZW1lbnQgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIiBjb2xzPVwiMzBcIiBwSW5wdXRUZXh0YXJlYSBbKG5nTW9kZWwpXT1cImVsZW1lbnRvQm9ycmFyLmFyY2hpdm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibWwtMiBwLWJ1dHRvbiBwLWJ1dHRvbi1yYWlzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudG9Cb3JyYXIuZXN0YWRvID09ICdUJ1wiIGljb249XCJwaSBwaS1kb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2Rlc2NhcmdhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJBcmNoaXZvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtbC0yIHAtYnV0dG9uLW91dGxpbmVkXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1iaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19lbGltaW5hcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbGltaW5hclNlZ3VuZG9QbGFubygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInRpcG9SZXBvcnRlID09ICdBJ1wiID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbWItM1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gQm90b25lcyBkZXNjYXJnYSAtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWZpbGVcIiAoY2xpY2spPVwiZXhwb3J0QXJjaGl2bygnY3N2JylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1leHBvcnQgYm9yZGVyLXNvbGlkLTEgYm9yZGVyLWNvbG9yLTQwMCBtbC0zIHctYXV0b1wiIHBUb29sdGlwPVwiQ1NWXCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlLWV4Y2VsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydEFyY2hpdm8oJ3hscycpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBtbC0yIGJhY2tncm91bmQtMTAwIHctYXV0b1wiIHBUb29sdGlwPVwiWExTXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlLXBkZlwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBvcnRBcmNoaXZvKCdwZGYnKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgbWwtMiB3LWF1dG9cIiBwVG9vbHRpcD1cIlBERlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdGFSZWdpc3Ryb1wiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiIFt0b3RhbFJlY29yZHNdPVwibGlzdGFSZWdpc3Ryby5sZW5ndGhcIiBbcGFnaW5hdG9yXT1cImxpc3RhUmVnaXN0cm8ubGVuZ3RoID4gMTBcIiA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJmb25kb1RhYmxhUGluY2lwYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBjb2wuaGVhZGVyIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVudHJhZGE+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBlbnRyYWRhW2NvbC5maWVsZF0gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInAtMyBmb250LW1lZGl1bSBlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J21lbnNhamV0YWJsYXZhY2lhJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9wLWRpYWxvZz5cbjxhcHAtcG9wdXAtc2VudGVuY2lhIFtyZXBvcnRlXT1cInJlcG9ydGVcIiBbcGFyYW1ldHJvc109XCJwYXJhbWV0cm9zXCIgW21vc3RyYXJQb3B1cF09XCJtb3N0cmFyUG9wdXBTZW50ZW5jaWFcIlxuICAgIChyZWdyZXNhcik9XCJyZWdyZXNhclNlbnRlbmNpYSgkZXZlbnQpXCI+PC9hcHAtcG9wdXAtc2VudGVuY2lhPiJdfQ==
|