general-library-union 3.0.96 → 3.0.97
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/esm2022/general-library-union.mjs +5 -0
- package/esm2022/public-api.mjs +180 -0
- package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +40 -0
- package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +28 -0
- package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +196 -0
- package/esm2022/src/app/core/componentes/footer/footer.component.mjs +16 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +272 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +11 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +124 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +73 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +59 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +21 -0
- package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +72 -0
- package/esm2022/src/app/core/componentes/menu/menu.component.mjs +37 -0
- package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +93 -0
- package/esm2022/src/app/core/core.module.mjs +23 -0
- package/esm2022/src/app/core/errores/authentication.error.mjs +7 -0
- package/esm2022/src/app/core/modelos/error-response.model.mjs +2 -0
- package/esm2022/src/app/core/modelos/table-column.model.mjs +2 -0
- package/esm2022/src/app/core/modelos/user.model.mjs +7 -0
- package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +230 -0
- package/esm2022/src/app/core/servicios/auth.service.mjs +185 -0
- package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +54 -0
- package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +64 -0
- package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +214 -0
- package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +66 -0
- package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +35 -0
- package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +37 -0
- package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +180 -0
- package/esm2022/src/app/core/servicios/loading.service.mjs +43 -0
- package/esm2022/src/app/core/servicios/menu.service.mjs +146 -0
- package/esm2022/src/app/core/servicios/spinner-service.mjs +22 -0
- package/esm2022/src/app/core/servicios/storage.service.mjs +68 -0
- package/esm2022/src/app/core/servicios/template.service.mjs +99 -0
- package/esm2022/src/app/core/servicios/toast.service.mjs +120 -0
- package/esm2022/src/app/core/servicios/utils.service.mjs +338 -0
- package/esm2022/src/app/core/sharedlib.module.mjs +16 -0
- package/esm2022/src/app/core/utilidades/color.util.mjs +177 -0
- package/esm2022/src/app/layout/api/menuchangeevent.mjs +2 -0
- package/esm2022/src/app/layout/app.breadcrumb.component.mjs +71 -0
- package/esm2022/src/app/layout/app.footer.component.mjs +18 -0
- package/esm2022/src/app/layout/app.layout.component.mjs +188 -0
- package/esm2022/src/app/layout/app.layout.module.mjs +15 -0
- package/esm2022/src/app/layout/app.menu.component.mjs +51 -0
- package/esm2022/src/app/layout/app.menu.service.mjs +24 -0
- package/esm2022/src/app/layout/app.menuitem.component.mjs +296 -0
- package/esm2022/src/app/layout/app.menuprofile.component.mjs +78 -0
- package/esm2022/src/app/layout/app.rightmenu.component.mjs +24 -0
- package/esm2022/src/app/layout/app.sidebar.component.mjs +92 -0
- package/esm2022/src/app/layout/app.topbar.component.mjs +346 -0
- package/esm2022/src/app/layout/service/app.layout.service.mjs +134 -0
- package/esm2022/src/app/publico/pages/login/login.page.mjs +132 -0
- package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +51 -0
- package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +167 -0
- package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +20 -0
- package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +30 -0
- package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +11 -0
- package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +18 -0
- package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +21 -0
- package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +21 -0
- package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +35 -0
- package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +37 -0
- package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +25 -0
- package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +12 -0
- package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +37 -0
- package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +11 -0
- package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +51 -0
- package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +18 -0
- package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +27 -0
- package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +33 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +69 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +24 -0
- package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +124 -0
- package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +40 -0
- package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/RolModel.mjs +39 -0
- package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +28 -0
- package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +25 -0
- package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +54 -0
- package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +12 -0
- package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +53 -0
- package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +24 -0
- package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +10 -0
- package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +154 -0
- package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +54 -0
- package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +46 -0
- package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +53 -0
- package/esm2022/src/app/shared/servicios/general.service.mjs +104 -0
- package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +21 -0
- package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +378 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +187 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +85 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +347 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +206 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +329 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +1583 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +105 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +114 -0
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +588 -0
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +177 -0
- package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +769 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +331 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +95 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +675 -0
- package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +86 -0
- package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +201 -0
- package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +918 -0
- package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +115 -0
- package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +301 -0
- package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +267 -0
- package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +128 -0
- package/esm2022/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.mjs +73 -0
- package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +293 -0
- package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +269 -0
- package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +555 -0
- package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +64 -0
- package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +162 -0
- package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +89 -0
- package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +69 -0
- package/esm2022/src/app/webcommon/services/dashboard.service.mjs +253 -0
- package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +114 -0
- package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +97 -0
- package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +68 -0
- package/esm2022/src/app/webcommon/services/homologacion.service.mjs +50 -0
- package/esm2022/src/app/webcommon/services/plantillas.service.mjs +129 -0
- package/esm2022/src/app/webcommon/services/reportes.service.mjs +95 -0
- package/esm2022/src/app/webcommon/webcommon.module.mjs +15 -0
- package/esm2022/src/environments/environment.mjs +24 -0
- package/fesm2022/general-library-union.mjs +16039 -0
- package/fesm2022/general-library-union.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +17 -28
- package/{public-api.ts → public-api.d.ts} +35 -75
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +18 -0
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +14 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +34 -0
- package/src/app/core/componentes/footer/footer.component.d.ts +9 -0
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +46 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.ts → Cambio.d.ts} +3 -9
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +44 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +45 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +33 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +9 -0
- package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +26 -0
- package/src/app/core/componentes/menu/menu.component.d.ts +16 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +32 -0
- package/src/app/core/core.module.d.ts +8 -0
- package/src/app/core/errores/authentication.error.d.ts +3 -0
- package/src/app/core/modelos/error-response.model.d.ts +9 -0
- package/src/app/core/modelos/table-column.model.d.ts +12 -0
- package/src/app/core/modelos/user.model.d.ts +6 -0
- package/src/app/core/plantilla-general/plantilla-general.template.d.ts +89 -0
- package/src/app/core/servicios/auth.service.d.ts +52 -0
- package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +19 -0
- package/src/app/core/servicios/data-exporter-table.utils.d.ts +11 -0
- package/src/app/core/servicios/error-interceptor.service.d.ts +41 -0
- package/src/app/core/servicios/guardias/auth.guard.d.ts +17 -0
- package/src/app/core/servicios/guardias/publico.guard.d.ts +13 -0
- package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +11 -0
- package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +26 -0
- package/src/app/core/servicios/loading.service.d.ts +22 -0
- package/src/app/core/servicios/menu.service.d.ts +35 -0
- package/src/app/core/servicios/spinner-service.d.ts +9 -0
- package/src/app/core/servicios/storage.service.d.ts +37 -0
- package/src/app/core/servicios/template.service.d.ts +20 -0
- package/src/app/core/servicios/toast.service.d.ts +48 -0
- package/src/app/core/servicios/utils.service.d.ts +43 -0
- package/src/app/core/sharedlib.module.d.ts +6 -0
- package/src/app/core/utilidades/color.util.d.ts +70 -0
- package/src/app/layout/api/{menuchangeevent.ts → menuchangeevent.d.ts} +1 -1
- package/src/app/layout/app.breadcrumb.component.d.ts +28 -0
- package/src/app/layout/app.footer.component.d.ts +8 -0
- package/src/app/layout/app.layout.component.d.ts +39 -0
- package/src/app/layout/app.layout.module.d.ts +6 -0
- package/src/app/layout/app.menu.component.d.ts +19 -0
- package/src/app/layout/app.menu.service.d.ts +12 -0
- package/src/app/layout/app.menuitem.component.d.ts +41 -0
- package/src/app/layout/app.menuprofile.component.d.ts +18 -0
- package/src/app/layout/app.rightmenu.component.d.ts +10 -0
- package/src/app/layout/app.sidebar.component.d.ts +34 -0
- package/src/app/layout/app.topbar.component.d.ts +79 -0
- package/src/app/layout/service/app.layout.service.d.ts +57 -0
- package/src/app/publico/pages/login/login.page.d.ts +40 -0
- package/src/app/publico/pages/not-found/not-found.page.d.ts +17 -0
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +41 -0
- package/src/app/publico/pages/timeout/timeout.page.d.ts +10 -0
- package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +25 -0
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +7 -0
- package/src/app/seguridad/modelos/AplicacionModel.d.ts +7 -0
- package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +13 -0
- package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +8 -0
- package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +16 -0
- package/src/app/seguridad/modelos/{AuditoriaArchivoModel.ts → AuditoriaArchivoModel.d.ts} +2 -5
- package/src/app/seguridad/modelos/CargueLineaModel.d.ts +12 -0
- package/src/app/seguridad/modelos/ColoresRGB.d.ts +17 -0
- package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{ColumnaWraperModel.ts → ColumnaWraperModel.d.ts} +4 -5
- package/src/app/seguridad/modelos/ComplementoModel.d.ts +6 -0
- package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +20 -0
- package/src/app/seguridad/modelos/ConexionModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.ts → ContenidoHtmlPortalModel.d.ts} +2 -7
- package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +7 -0
- package/src/app/seguridad/modelos/CorreoModel.d.ts +31 -0
- package/src/app/seguridad/modelos/CorreoWSModel.d.ts +33 -0
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{DatoInicioModel.ts → DatoInicioModel.d.ts} +3 -4
- package/src/app/seguridad/modelos/{EjecucionReporteDataModel.ts → EjecucionReporteDataModel.d.ts} +2 -3
- package/src/app/seguridad/modelos/EmpresaModel.d.ts +23 -0
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +18 -0
- package/src/app/seguridad/modelos/{EntradaComplementoModel.ts → EntradaComplementoModel.d.ts} +2 -5
- package/src/app/seguridad/modelos/EtiquetaModel.d.ts +4 -0
- package/src/app/seguridad/modelos/Etiquetas.d.ts +10 -0
- package/src/app/seguridad/modelos/{ForeingWraperModel.ts → ForeingWraperModel.d.ts} +2 -5
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +15 -0
- package/src/app/seguridad/modelos/{FuenteCampoModel.ts → FuenteCampoModel.d.ts} +2 -6
- package/src/app/seguridad/modelos/FuenteDato.d.ts +18 -0
- package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{FuenteGeneralModel.ts → FuenteGeneralModel.d.ts} +2 -21
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +16 -0
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +10 -0
- package/src/app/seguridad/modelos/{FuenteServicioModel.ts → FuenteServicioModel.d.ts} +2 -16
- package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +8 -0
- package/src/app/seguridad/modelos/GeneralModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{GrupoAccesoModel.ts → GrupoAccesoModel.d.ts} +2 -5
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +9 -0
- package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +13 -0
- package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{JoinFromModel.ts → JoinFromModel.d.ts} +2 -2
- package/src/app/seguridad/modelos/ListaServicioModel.d.ts +16 -0
- package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +6 -0
- package/src/app/seguridad/modelos/LoginModel.d.ts +17 -0
- package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +7 -0
- package/src/app/seguridad/modelos/{MenuPortalModel.ts → MenuPortalModel.d.ts} +1 -2
- package/src/app/seguridad/modelos/ModulosModel.d.ts +14 -0
- package/src/app/seguridad/modelos/{ObjetoReporteModel.ts → ObjetoReporteModel.d.ts} +2 -3
- package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +19 -0
- package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +8 -0
- package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +8 -0
- package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +8 -0
- package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +18 -0
- package/src/app/seguridad/modelos/{PeticionModel.ts → PeticionModel.d.ts} +1 -6
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +6 -0
- package/src/app/seguridad/modelos/PropiedadModel.d.ts +9 -0
- package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +25 -0
- package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +6 -0
- package/src/app/seguridad/modelos/RecursoPunto.d.ts +12 -0
- package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +12 -0
- package/src/app/seguridad/modelos/ReporteBanda.d.ts +7 -0
- package/src/app/seguridad/modelos/ReporteColumna.d.ts +32 -0
- package/src/app/seguridad/modelos/ReporteColumnario.d.ts +68 -0
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +23 -0
- package/src/app/seguridad/modelos/{ReporteEntradaModel.ts → ReporteEntradaModel.d.ts} +2 -4
- package/src/app/seguridad/modelos/{ReporteFuenteModel.ts → ReporteFuenteModel.d.ts} +16 -70
- package/src/app/seguridad/modelos/ReporteMarcador.d.ts +39 -0
- package/src/app/seguridad/modelos/ReporteSoporte.d.ts +9 -0
- package/src/app/seguridad/modelos/ReporteTabla.d.ts +12 -0
- package/src/app/seguridad/modelos/RespuestaModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{RolModel.ts → RolModel.d.ts} +4 -8
- package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +25 -0
- package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +8 -0
- package/src/app/seguridad/modelos/SitioPortalModel.d.ts +24 -0
- package/src/app/seguridad/modelos/TablaFromModel.d.ts +4 -0
- package/src/app/seguridad/modelos/TareasModel.d.ts +49 -0
- package/src/app/seguridad/modelos/TextoModel.d.ts +8 -0
- package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +7 -0
- package/src/app/seguridad/modelos/UnionModel.d.ts +11 -0
- package/src/app/seguridad/modelos/{UsuarioModel.ts → UsuarioModel.d.ts} +5 -16
- package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +22 -0
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +13 -0
- package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +9 -0
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +47 -0
- package/src/app/shared/servicios/cargar-archivos.service.d.ts +15 -0
- package/src/app/shared/servicios/cargar-mapas.service.d.ts +18 -0
- package/src/app/shared/servicios/encriptado-basico.service.d.ts +10 -0
- package/src/app/shared/servicios/general.service.d.ts +24 -0
- package/src/app/shared/servicios/parametros-navegacion.service.d.ts +9 -0
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +79 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +79 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +29 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +69 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +51 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +77 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +278 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +42 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +35 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +143 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +49 -0
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +132 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +64 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +33 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +149 -0
- package/src/app/webcommon/pipes/dashboard.pipe.d.ts +48 -0
- package/src/app/webcommon/pipes/fuente.pipe.d.ts +136 -0
- package/src/app/webcommon/pipes/general.pipe.d.ts +647 -0
- package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +59 -0
- package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +193 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +59 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +27 -0
- package/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.d.ts +21 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +64 -0
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +63 -0
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +105 -0
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +21 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +42 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +30 -0
- package/src/app/webcommon/services/carguelinea.service.d.ts +19 -0
- package/src/app/webcommon/services/dashboard.service.d.ts +27 -0
- package/src/app/webcommon/services/ejecucionreporte.service.d.ts +34 -0
- package/src/app/webcommon/services/fechaUtils.service.d.ts +30 -0
- package/src/app/webcommon/services/fuentegeneral.service.d.ts +24 -0
- package/src/app/webcommon/services/homologacion.service.d.ts +17 -0
- package/src/app/webcommon/services/plantillas.service.d.ts +26 -0
- package/src/app/webcommon/services/reportes.service.d.ts +35 -0
- package/src/app/webcommon/webcommon.module.d.ts +6 -0
- package/src/environments/environment.d.ts +7 -0
- package/.browserslistrc +0 -15
- package/.editorconfig +0 -16
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/angular.json +0 -143
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -21
- package/src/app/app.component.html +0 -12
- package/src/app/app.component.scss +0 -0
- package/src/app/app.component.spec.ts +0 -29
- package/src/app/app.component.ts +0 -34
- package/src/app/app.config.ts +0 -43
- package/src/app/app.module.ts +0 -10
- package/src/app/app.routes.ts +0 -88
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +0 -6
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +0 -39
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +0 -1
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +0 -31
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +0 -9
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +0 -28
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +0 -32
- package/src/app/core/componentes/filtro-general/filtro-general.component.html +0 -36
- package/src/app/core/componentes/filtro-general/filtro-general.component.scss +0 -3
- package/src/app/core/componentes/filtro-general/filtro-general.component.ts +0 -203
- package/src/app/core/componentes/footer/footer.component.html +0 -13
- package/src/app/core/componentes/footer/footer.component.scss +0 -3
- package/src/app/core/componentes/footer/footer.component.ts +0 -20
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +0 -267
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +0 -21
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +0 -275
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +0 -118
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +0 -76
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +0 -67
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +0 -11
- package/src/app/core/componentes/inicio-component/inicio-component.component.html +0 -29
- package/src/app/core/componentes/inicio-component/inicio-component.component.scss +0 -69
- package/src/app/core/componentes/inicio-component/inicio-component.component.ts +0 -70
- package/src/app/core/componentes/menu/menu.component.html +0 -13
- package/src/app/core/componentes/menu/menu.component.scss +0 -36
- package/src/app/core/componentes/menu/menu.component.ts +0 -35
- package/src/app/core/componentes/tabla-general/tabla-general.component.html +0 -90
- package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.ts +0 -96
- package/src/app/core/core.module.ts +0 -22
- package/src/app/core/errores/authentication.error.ts +0 -6
- package/src/app/core/modelos/error-response.model.ts +0 -9
- package/src/app/core/modelos/table-column.model.ts +0 -10
- package/src/app/core/modelos/user.model.ts +0 -6
- package/src/app/core/plantilla-general/plantilla-general.template.html +0 -139
- package/src/app/core/plantilla-general/plantilla-general.template.scss +0 -37
- package/src/app/core/plantilla-general/plantilla-general.template.ts +0 -233
- package/src/app/core/servicios/auth.service.ts +0 -189
- package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +0 -48
- package/src/app/core/servicios/data-exporter-table.utils.ts +0 -78
- package/src/app/core/servicios/error-interceptor.service.ts +0 -208
- package/src/app/core/servicios/guardias/auth.guard.ts +0 -51
- package/src/app/core/servicios/guardias/publico.guard.ts +0 -26
- package/src/app/core/servicios/interceptores/loading-interceptor.ts +0 -37
- package/src/app/core/servicios/interceptores/token-interceptor.service.ts +0 -177
- package/src/app/core/servicios/loading.service.ts +0 -48
- package/src/app/core/servicios/menu.service.ts +0 -153
- package/src/app/core/servicios/spinner-service.ts +0 -18
- package/src/app/core/servicios/storage.service.ts +0 -68
- package/src/app/core/servicios/template.service.ts +0 -91
- package/src/app/core/servicios/toast.service.ts +0 -114
- package/src/app/core/servicios/utils.service.ts +0 -367
- package/src/app/core/sharedlib.module.ts +0 -11
- package/src/app/core/utilidades/color.util.ts +0 -197
- package/src/app/layout/app.breadcrumb.component.html +0 -20
- package/src/app/layout/app.breadcrumb.component.ts +0 -78
- package/src/app/layout/app.footer.component.html +0 -18
- package/src/app/layout/app.footer.component.ts +0 -15
- package/src/app/layout/app.layout.component.html +0 -20
- package/src/app/layout/app.layout.component.ts +0 -201
- package/src/app/layout/app.layout.module.ts +0 -9
- package/src/app/layout/app.menu.component.html +0 -6
- package/src/app/layout/app.menu.component.ts +0 -51
- package/src/app/layout/app.menu.service.ts +0 -23
- package/src/app/layout/app.menuitem.component.ts +0 -252
- package/src/app/layout/app.menuprofile.component.html +0 -35
- package/src/app/layout/app.menuprofile.component.ts +0 -60
- package/src/app/layout/app.rightmenu.component.html +0 -72
- package/src/app/layout/app.rightmenu.component.ts +0 -24
- package/src/app/layout/app.sidebar.component.html +0 -40
- package/src/app/layout/app.sidebar.component.ts +0 -81
- package/src/app/layout/app.topbar.component.html +0 -214
- package/src/app/layout/app.topbar.component.ts +0 -336
- package/src/app/layout/config/app.config.component.html +0 -125
- package/src/app/layout/config/app.config.component.ts +0 -206
- package/src/app/layout/config/app.config.module.ts +0 -11
- package/src/app/layout/service/app.layout.service.ts +0 -191
- package/src/app/publico/pages/login/login.page.html +0 -53
- package/src/app/publico/pages/login/login.page.scss +0 -210
- package/src/app/publico/pages/login/login.page.ts +0 -130
- package/src/app/publico/pages/not-found/not-found.page.html +0 -35
- package/src/app/publico/pages/not-found/not-found.page.scss +0 -2
- package/src/app/publico/pages/not-found/not-found.page.ts +0 -46
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +0 -58
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +0 -49
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +0 -176
- package/src/app/publico/pages/timeout/timeout.page.html +0 -24
- package/src/app/publico/pages/timeout/timeout.page.scss +0 -2
- package/src/app/publico/pages/timeout/timeout.page.ts +0 -18
- package/src/app/seguridad/constantes/ConstantesGenerales.ts +0 -30
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +0 -18
- package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +0 -13
- package/src/app/seguridad/modelos/AplicacionModel.ts +0 -11
- package/src/app/seguridad/modelos/ArchivoPortalModel.ts +0 -16
- package/src/app/seguridad/modelos/AtributoPuntoModel.ts +0 -9
- package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +0 -22
- package/src/app/seguridad/modelos/CargueLineaModel.ts +0 -17
- package/src/app/seguridad/modelos/ColoresRGB.ts +0 -17
- package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +0 -9
- package/src/app/seguridad/modelos/ComplementoModel.ts +0 -10
- package/src/app/seguridad/modelos/ComponentePaginaModel.ts +0 -22
- package/src/app/seguridad/modelos/ConexionModel.ts +0 -15
- package/src/app/seguridad/modelos/ControlFuncionModel.ts +0 -10
- package/src/app/seguridad/modelos/CorreoModel.ts +0 -45
- package/src/app/seguridad/modelos/CorreoWSModel.ts +0 -49
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +0 -14
- package/src/app/seguridad/modelos/EmpresaModel.ts +0 -25
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +0 -19
- package/src/app/seguridad/modelos/EtiquetaModel.ts +0 -4
- package/src/app/seguridad/modelos/Etiquetas.ts +0 -14
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +0 -21
- package/src/app/seguridad/modelos/FuenteDato.ts +0 -19
- package/src/app/seguridad/modelos/FuenteEntradaModel.ts +0 -9
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +0 -19
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +0 -14
- package/src/app/seguridad/modelos/FuncionalidadModel.ts +0 -12
- package/src/app/seguridad/modelos/GeneralModel.ts +0 -16
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +0 -12
- package/src/app/seguridad/modelos/GrupoFuenteModel.ts +0 -17
- package/src/app/seguridad/modelos/GrupoPermisoModel.ts +0 -16
- package/src/app/seguridad/modelos/ListaServicioModel.ts +0 -18
- package/src/app/seguridad/modelos/LlaveForaneaModel.ts +0 -6
- package/src/app/seguridad/modelos/LoginModel.ts +0 -19
- package/src/app/seguridad/modelos/MensajeSistemaModel.ts +0 -10
- package/src/app/seguridad/modelos/ModulosModel.ts +0 -17
- package/src/app/seguridad/modelos/PaginaPortalModel.ts +0 -23
- package/src/app/seguridad/modelos/ParametroComponenteModel.ts +0 -9
- package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +0 -16
- package/src/app/seguridad/modelos/PermisoFuncionModel.ts +0 -11
- package/src/app/seguridad/modelos/PermisocontenidoModel.ts +0 -20
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +0 -9
- package/src/app/seguridad/modelos/PropiedadModel.ts +0 -12
- package/src/app/seguridad/modelos/PublicacionWebModel.ts +0 -29
- package/src/app/seguridad/modelos/PuntoProcesoModel.ts +0 -7
- package/src/app/seguridad/modelos/RecursoPunto.ts +0 -13
- package/src/app/seguridad/modelos/RecursoPuntoModel.ts +0 -13
- package/src/app/seguridad/modelos/ReporteBanda.ts +0 -9
- package/src/app/seguridad/modelos/ReporteColumna.ts +0 -33
- package/src/app/seguridad/modelos/ReporteColumnario.ts +0 -82
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +0 -31
- package/src/app/seguridad/modelos/ReporteMarcador.ts +0 -40
- package/src/app/seguridad/modelos/ReporteSoporte.ts +0 -10
- package/src/app/seguridad/modelos/ReporteTabla.ts +0 -14
- package/src/app/seguridad/modelos/RespuestaModel.ts +0 -10
- package/src/app/seguridad/modelos/ServidorCorreoModel.ts +0 -31
- package/src/app/seguridad/modelos/SistemaMensajeModel.ts +0 -11
- package/src/app/seguridad/modelos/SitioPortalModel.ts +0 -29
- package/src/app/seguridad/modelos/TablaFromModel.ts +0 -5
- package/src/app/seguridad/modelos/TareasModel.ts +0 -54
- package/src/app/seguridad/modelos/TextoModel.ts +0 -11
- package/src/app/seguridad/modelos/TipoEtiqueta.ts +0 -8
- package/src/app/seguridad/modelos/UnionModel.ts +0 -14
- package/src/app/seguridad/modelos/UsuariogrupoModel.ts +0 -27
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +0 -16
- package/src/app/seguridad/modelos/contenidoCorreoModel.ts +0 -13
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +0 -47
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +0 -8
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +0 -144
- package/src/app/shared/servicios/cargar-archivos.service.ts +0 -51
- package/src/app/shared/servicios/cargar-mapas.service.ts +0 -43
- package/src/app/shared/servicios/encriptado-basico.service.ts +0 -54
- package/src/app/shared/servicios/encriptador-simetrico.service.ts +0 -29
- package/src/app/shared/servicios/general.service.ts +0 -124
- package/src/app/shared/servicios/parametros-navegacion.service.ts +0 -20
- package/src/app/shared/servicios/plantillas.service.ts +0 -22
- package/src/app/shared/servicios/tarea.service.ts +0 -71
- package/src/app/shared/utilidades/translate-loader.util.ts +0 -44
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +0 -175
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +0 -78
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +0 -438
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +0 -87
- 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 +0 -189
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +0 -117
- 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 +0 -87
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +0 -158
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +0 -6
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +0 -345
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +0 -131
- 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 +0 -198
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +0 -206
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +0 -3
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +0 -330
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +0 -2121
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +0 -241
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +0 -1694
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +0 -33
- 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 +0 -96
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +0 -54
- 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 +0 -111
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +0 -394
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +0 -10
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +0 -599
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +0 -130
- 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 +0 -172
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +0 -404
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +0 -5
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +0 -763
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +0 -145
- 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 +0 -302
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +0 -19
- 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 +0 -88
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +0 -714
- 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 +0 -688
- package/src/app/webcommon/pipes/dashboard.pipe.ts +0 -79
- package/src/app/webcommon/pipes/fuente.pipe.ts +0 -207
- package/src/app/webcommon/pipes/general.pipe.ts +0 -1046
- package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +0 -101
- package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +0 -306
- package/src/app/webcommon/pipes/sara-general.pipe.ts +0 -289
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +0 -90
- 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 +0 -262
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +0 -50
- 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 +0 -135
- package/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.html +0 -44
- package/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.scss +0 -0
- package/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.ts +0 -66
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +0 -41
- 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 +0 -283
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +0 -179
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +0 -3
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +0 -266
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +0 -273
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +0 -13
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +0 -557
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +0 -10
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +0 -5
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +0 -58
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +0 -71
- 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 +0 -154
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +0 -11
- 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 +0 -82
- package/src/app/webcommon/services/carguelinea.service.ts +0 -74
- package/src/app/webcommon/services/dashboard.service.ts +0 -258
- package/src/app/webcommon/services/ejecucionreporte.service.ts +0 -160
- package/src/app/webcommon/services/fechaUtils.service.ts +0 -127
- package/src/app/webcommon/services/fuentegeneral.service.ts +0 -74
- package/src/app/webcommon/services/homologacion.service.ts +0 -49
- package/src/app/webcommon/services/plantillas.service.ts +0 -165
- package/src/app/webcommon/services/reportes.service.ts +0 -133
- package/src/app/webcommon/webcommon.module.ts +0 -11
- package/src/environments/environment.prod.ts +0 -3
- package/src/environments/environment.ts +0 -25
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -14
- package/src/main.ts +0 -12
- package/src/polyfills.ts +0 -53
- package/src/test.ts +0 -14
- package/tsconfig.app.json +0 -15
- package/tsconfig.json +0 -35
- package/tsconfig.spec.json +0 -18
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ViewChild } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { ConfirmationService } from 'primeng/api';
|
|
5
|
+
import { ButtonModule } from 'primeng/button';
|
|
6
|
+
import { InputTextModule } from 'primeng/inputtext';
|
|
7
|
+
import { SplitButtonModule } from 'primeng/splitbutton';
|
|
8
|
+
import { TreeModule } from 'primeng/tree';
|
|
9
|
+
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
|
10
|
+
import { FormsModule } from '@angular/forms';
|
|
11
|
+
import { FieldsetModule } from 'primeng/fieldset';
|
|
12
|
+
import { FileUploadModule } from 'primeng/fileupload';
|
|
13
|
+
import { PopupConvertirPlantillasComponent } from '../../../../webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component';
|
|
14
|
+
import { firstValueFrom } from 'rxjs';
|
|
15
|
+
import { EditorModule } from 'primeng/editor';
|
|
16
|
+
import { ProgressBarModule } from 'primeng/progressbar';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "../../../../webcommon/services/plantillas.service";
|
|
19
|
+
import * as i2 from "../../../../core/servicios/auth.service";
|
|
20
|
+
import * as i3 from "@ngx-translate/core";
|
|
21
|
+
import * as i4 from "../../../../core/servicios/cargar-control-funcionalidad.service";
|
|
22
|
+
import * as i5 from "primeng/api";
|
|
23
|
+
import * as i6 from "../../../../core/servicios/toast.service";
|
|
24
|
+
import * as i7 from "../../../../shared/servicios/cargar-archivos.service";
|
|
25
|
+
import * as i8 from "../../../../shared/servicios/encriptado-basico.service";
|
|
26
|
+
import * as i9 from "../../../../webcommon/pipes/general.pipe";
|
|
27
|
+
import * as i10 from "../../../../core/servicios/utils.service";
|
|
28
|
+
import * as i11 from "@angular/common";
|
|
29
|
+
import * as i12 from "primeng/tree";
|
|
30
|
+
import * as i13 from "primeng/inputtext";
|
|
31
|
+
import * as i14 from "primeng/button";
|
|
32
|
+
import * as i15 from "primeng/tooltip";
|
|
33
|
+
import * as i16 from "primeng/confirmpopup";
|
|
34
|
+
import * as i17 from "@angular/forms";
|
|
35
|
+
import * as i18 from "primeng/fileupload";
|
|
36
|
+
import * as i19 from "primeng/progressbar";
|
|
37
|
+
import * as i20 from "primeng/editor";
|
|
38
|
+
export class CarguePlantillaGeneralComponent {
|
|
39
|
+
plantillasService;
|
|
40
|
+
authService;
|
|
41
|
+
translateService;
|
|
42
|
+
controlFuncionService;
|
|
43
|
+
confirmationService;
|
|
44
|
+
toastService;
|
|
45
|
+
cargarArchivoServices;
|
|
46
|
+
encriptadoBasico;
|
|
47
|
+
generalPipe;
|
|
48
|
+
utilsService;
|
|
49
|
+
popupConvertirPlantillasComponent;
|
|
50
|
+
miFormulario;
|
|
51
|
+
treeComponent;
|
|
52
|
+
loading;
|
|
53
|
+
propiedad;
|
|
54
|
+
extensiones;
|
|
55
|
+
propiedadDeSistema = false;
|
|
56
|
+
anexoPropiedad = '';
|
|
57
|
+
files;
|
|
58
|
+
dataSelected;
|
|
59
|
+
itemsBotonAcciones;
|
|
60
|
+
verConvertir;
|
|
61
|
+
nomNuevaCarpeta;
|
|
62
|
+
isVisualizarCrearCaperta = false;
|
|
63
|
+
archivoSeleccionadoAnexo;
|
|
64
|
+
archivoSeleccionado;
|
|
65
|
+
isMostrarPopupConvertir = false;
|
|
66
|
+
rutaPrincipal;
|
|
67
|
+
filteredFiles = [];
|
|
68
|
+
filterValue = '';
|
|
69
|
+
filtroConvertir;
|
|
70
|
+
html;
|
|
71
|
+
mostrarEditor;
|
|
72
|
+
modificarHTML;
|
|
73
|
+
FORMATS_VALIDOS = new Set([
|
|
74
|
+
'.doc',
|
|
75
|
+
'.html',
|
|
76
|
+
'.jasper',
|
|
77
|
+
'.xls',
|
|
78
|
+
'.jrxml',
|
|
79
|
+
'.odt',
|
|
80
|
+
'.xlsm',
|
|
81
|
+
'.xlsx',
|
|
82
|
+
'.pgp',
|
|
83
|
+
'.asc',
|
|
84
|
+
'.cer',
|
|
85
|
+
'.p12',
|
|
86
|
+
'.docx',
|
|
87
|
+
'.properties'
|
|
88
|
+
]);
|
|
89
|
+
FORMATOS = 'doc;html;jasper;xls;jrxml;odt;xlsm;xlsx;pgp;asc;cer;p12;docx;properties';
|
|
90
|
+
constructor(plantillasService, authService, translateService, controlFuncionService, confirmationService, toastService, cargarArchivoServices, encriptadoBasico, generalPipe, utilsService) {
|
|
91
|
+
this.plantillasService = plantillasService;
|
|
92
|
+
this.authService = authService;
|
|
93
|
+
this.translateService = translateService;
|
|
94
|
+
this.controlFuncionService = controlFuncionService;
|
|
95
|
+
this.confirmationService = confirmationService;
|
|
96
|
+
this.toastService = toastService;
|
|
97
|
+
this.cargarArchivoServices = cargarArchivoServices;
|
|
98
|
+
this.encriptadoBasico = encriptadoBasico;
|
|
99
|
+
this.generalPipe = generalPipe;
|
|
100
|
+
this.utilsService = utilsService;
|
|
101
|
+
}
|
|
102
|
+
async ngOnInit() {
|
|
103
|
+
this.loading = true;
|
|
104
|
+
this.mostrarEditor = false;
|
|
105
|
+
let consultarRutaPrincipal = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: "ruta_plantillas", aplicacion: 1 }));
|
|
106
|
+
let convertir = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: "servidor_openOffice", aplicacion: 0 }));
|
|
107
|
+
this.verConvertir = !convertir.valor.valor ? true : false;
|
|
108
|
+
this.rutaPrincipal = consultarRutaPrincipal.valor.valor;
|
|
109
|
+
this.isVisualizarCrearCaperta = false;
|
|
110
|
+
await this.openDataTable();
|
|
111
|
+
const sleep = (m) => new Promise((r) => setTimeout(r, m));
|
|
112
|
+
await sleep(100);
|
|
113
|
+
if (this.filterValue) {
|
|
114
|
+
await this.aplicarFiltro();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async openDataTable() {
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
this.loading = true;
|
|
120
|
+
if (!this.propiedad) {
|
|
121
|
+
this.propiedad = 'ruta_plantillas';
|
|
122
|
+
}
|
|
123
|
+
this.plantillasService.obtenerArchivos(this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), this.FORMATOS, this.anexoPropiedad, true).subscribe(rta => {
|
|
124
|
+
this.files = rta;
|
|
125
|
+
this.filteredFiles = rta;
|
|
126
|
+
this.loading = false;
|
|
127
|
+
//this.isCargarInicio = false;
|
|
128
|
+
if (!this.archivoSeleccionado) {
|
|
129
|
+
this.archivoSeleccionado = this.files[0];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}, 1000);
|
|
133
|
+
}
|
|
134
|
+
async aplicarFiltro() {
|
|
135
|
+
this.filtroConvertir = this.filterValue;
|
|
136
|
+
this.loading = true;
|
|
137
|
+
setTimeout(() => {
|
|
138
|
+
this.filteredFiles = this.obtenerFiltrosNodos(this.files, this.filterValue);
|
|
139
|
+
this.loading = false;
|
|
140
|
+
}, 1000);
|
|
141
|
+
}
|
|
142
|
+
obtenerFiltrosNodos(nodes, filterValue) {
|
|
143
|
+
const filters = this.filtroAvanzado(filterValue);
|
|
144
|
+
const filteredNodes = [];
|
|
145
|
+
nodes.forEach(node => {
|
|
146
|
+
// Verifica si el nodo actual o alguno de sus hijos cumple con el filtro
|
|
147
|
+
const children = node.children ? this.obtenerFiltrosNodos(node.children, filterValue) : [];
|
|
148
|
+
const nodeMatches = filters.some(filter => node.label.includes(filter));
|
|
149
|
+
if (nodeMatches || children.length > 0) {
|
|
150
|
+
filteredNodes.push({ ...node, children });
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return filteredNodes;
|
|
154
|
+
}
|
|
155
|
+
filtroAvanzado(search) {
|
|
156
|
+
if (search.includes('+')) {
|
|
157
|
+
let aux = search;
|
|
158
|
+
if (aux.startsWith('+')) {
|
|
159
|
+
aux = aux.substring(1);
|
|
160
|
+
}
|
|
161
|
+
aux = aux.replace(/\+/g, ':');
|
|
162
|
+
const items = aux.trim().split(':');
|
|
163
|
+
return items;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
return [search];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
filtrarEnter(event) {
|
|
170
|
+
if (event.key === 'Enter') {
|
|
171
|
+
this.aplicarFiltro();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
seleccionarArchivo(event) {
|
|
175
|
+
this.archivoSeleccionado = event.node;
|
|
176
|
+
this.mostrarEditor = false;
|
|
177
|
+
}
|
|
178
|
+
deseleccionarArchivo($event) {
|
|
179
|
+
this.dataSelected = null;
|
|
180
|
+
}
|
|
181
|
+
async cargarNuevo(event, fubauto) {
|
|
182
|
+
this.isVisualizarCrearCaperta = false;
|
|
183
|
+
this.archivoSeleccionadoAnexo = event.files[0];
|
|
184
|
+
if (!this.isFormatoValido(this.archivoSeleccionadoAnexo.name)) {
|
|
185
|
+
this.toastService.showWarning("Se debe agregar un archivo " + Array.from(this.FORMATS_VALIDOS).join(', '));
|
|
186
|
+
fubauto.clear();
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
//Cargar Archivo Temporal
|
|
190
|
+
let resultado = await firstValueFrom(this.plantillasService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo));
|
|
191
|
+
fubauto.clear();
|
|
192
|
+
if (resultado?.validacion) {
|
|
193
|
+
this.toastService.showSuccess(resultado?.validacion);
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
let informacionArchivo = resultado?.informacionArchivo ? resultado?.informacionArchivo : null;
|
|
197
|
+
//Obtener Rutas
|
|
198
|
+
let rutaComplemento = this.archivoSeleccionado.data;
|
|
199
|
+
//let objeto = (await this.cargarArchivoServices.getPropiedad({ propiedad: "ruta_plantillas", aplicacion: 1 }).toPromise());
|
|
200
|
+
if (!this.archivoSeleccionado?.parent) {
|
|
201
|
+
rutaComplemento = '';
|
|
202
|
+
}
|
|
203
|
+
//Verifica si el documento ya existe
|
|
204
|
+
let data = await firstValueFrom(this.plantillasService.existeDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));
|
|
205
|
+
if (data?.validacionDocumento) {
|
|
206
|
+
this.toastService.showWarning(data?.validacionDocumento);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
//Guarda el documento
|
|
210
|
+
await firstValueFrom(this.plantillasService.cargarDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));
|
|
211
|
+
this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);
|
|
212
|
+
this.ngOnInit();
|
|
213
|
+
}
|
|
214
|
+
async descargarAnexo() {
|
|
215
|
+
//Ruta archivo
|
|
216
|
+
let rutaComplemento = this.archivoSeleccionado.data;
|
|
217
|
+
if (!this.archivoSeleccionado?.parent) {
|
|
218
|
+
rutaComplemento = '';
|
|
219
|
+
}
|
|
220
|
+
this.cargarArchivoServices.descargarArchivo(this.encriptadoBasico.encriptar(this.rutaPrincipal + rutaComplemento), undefined, undefined).subscribe(blob => {
|
|
221
|
+
const a = document.createElement('a');
|
|
222
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
223
|
+
a.href = objectUrl;
|
|
224
|
+
a.download = this.archivoSeleccionado?.label;
|
|
225
|
+
a.click();
|
|
226
|
+
URL.revokeObjectURL(objectUrl);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
eliminarArchivo() {
|
|
230
|
+
this.confirmationService.confirm({
|
|
231
|
+
target: event.target,
|
|
232
|
+
key: 'eliminarArchivo',
|
|
233
|
+
message: '¿Desea eliminar el registro?',
|
|
234
|
+
acceptLabel: 'Si',
|
|
235
|
+
icon: 'confirmar',
|
|
236
|
+
accept: () => {
|
|
237
|
+
this.setEliminarArchivo();
|
|
238
|
+
},
|
|
239
|
+
reject: () => { },
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
async setEliminarArchivo() {
|
|
243
|
+
this.loading = true;
|
|
244
|
+
//Ruta archivo
|
|
245
|
+
let rutaComplemento = this.archivoSeleccionado.data;
|
|
246
|
+
if (!this.archivoSeleccionado?.parent) {
|
|
247
|
+
rutaComplemento = '';
|
|
248
|
+
}
|
|
249
|
+
let propiedad = 'ruta_plantillas';
|
|
250
|
+
await firstValueFrom(this.cargarArchivoServices.eliminarArchivo(this.encriptadoBasico.encriptar(rutaComplemento), propiedad, '1'));
|
|
251
|
+
this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);
|
|
252
|
+
this.archivoSeleccionado = null;
|
|
253
|
+
this.filterValue = null;
|
|
254
|
+
this.ngOnInit();
|
|
255
|
+
}
|
|
256
|
+
isFormatoValido(nombreArchivo) {
|
|
257
|
+
// Verifica si el archivo termina con alguna de las extensiones válidas
|
|
258
|
+
return Array.from(this.FORMATS_VALIDOS).some(ext => nombreArchivo.endsWith(ext));
|
|
259
|
+
}
|
|
260
|
+
crearCarpeta() {
|
|
261
|
+
this.isVisualizarCrearCaperta = true;
|
|
262
|
+
this.nomNuevaCarpeta = null;
|
|
263
|
+
}
|
|
264
|
+
async guardarCarpeta() {
|
|
265
|
+
if (this.miFormulario.valid) {
|
|
266
|
+
let rutaComplemento = this.archivoSeleccionado.data;
|
|
267
|
+
if (!this.archivoSeleccionado?.parent) {
|
|
268
|
+
rutaComplemento = '';
|
|
269
|
+
}
|
|
270
|
+
await firstValueFrom(this.plantillasService.crearCarpeta(this.rutaPrincipal, rutaComplemento, this.nomNuevaCarpeta));
|
|
271
|
+
this.toastService.showSuccess('La carpeta se ha creado correctamente');
|
|
272
|
+
this.ngOnInit();
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
this.toastService.showError('Faltan campos obligatorios');
|
|
276
|
+
Object.keys(this.miFormulario.controls).forEach((key) => {
|
|
277
|
+
if (this.miFormulario.controls[key].invalid) {
|
|
278
|
+
this.miFormulario.controls[key].markAsDirty();
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
eliminarCarpeta() {
|
|
284
|
+
this.isVisualizarCrearCaperta = false;
|
|
285
|
+
this.confirmationService.confirm({
|
|
286
|
+
target: event.target,
|
|
287
|
+
key: 'eliminarCarpeta',
|
|
288
|
+
message: '¿Desea eliminar el registro?',
|
|
289
|
+
acceptLabel: 'Si',
|
|
290
|
+
icon: 'confirmar',
|
|
291
|
+
accept: () => {
|
|
292
|
+
this.setEliminarCarpeta();
|
|
293
|
+
},
|
|
294
|
+
reject: () => { },
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
async setEliminarCarpeta() {
|
|
298
|
+
this.loading = true;
|
|
299
|
+
let rutaComplemento = this.archivoSeleccionado.data;
|
|
300
|
+
if (!this.archivoSeleccionado?.parent) {
|
|
301
|
+
rutaComplemento = '';
|
|
302
|
+
}
|
|
303
|
+
this.plantillasService.eliminarCarpeta(this.rutaPrincipal, rutaComplemento).subscribe(rta => {
|
|
304
|
+
this.toastService.showSuccess('La carpeta ha sido eliminada correctamente');
|
|
305
|
+
this.archivoSeleccionado = null;
|
|
306
|
+
this.filterValue = null;
|
|
307
|
+
this.ngOnInit();
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
async convertirArchivos() {
|
|
311
|
+
this.isVisualizarCrearCaperta = false;
|
|
312
|
+
this.isMostrarPopupConvertir = true;
|
|
313
|
+
//const filteredNodes = this.getFilteredNodes();
|
|
314
|
+
const valorFiltro = this.filterValue;
|
|
315
|
+
const sleep = (m) => new Promise((r) => setTimeout(r, m));
|
|
316
|
+
await sleep(50);
|
|
317
|
+
this.popupConvertirPlantillasComponent.buscar(this.rutaPrincipal, valorFiltro);
|
|
318
|
+
}
|
|
319
|
+
regresarPopupConvertir($event) {
|
|
320
|
+
this.isMostrarPopupConvertir = false;
|
|
321
|
+
this.ngOnInit();
|
|
322
|
+
}
|
|
323
|
+
isHtml() {
|
|
324
|
+
this.html = false;
|
|
325
|
+
if (this.archivoSeleccionado != null && this.archivoSeleccionado.label != null && this.archivoSeleccionado.label.includes('.html'))
|
|
326
|
+
this.html = true;
|
|
327
|
+
return this.html;
|
|
328
|
+
}
|
|
329
|
+
async editarAction() {
|
|
330
|
+
let data = await firstValueFrom(this.plantillasService.consultarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data));
|
|
331
|
+
this.modificarHTML = data;
|
|
332
|
+
this.mostrarEditor = true;
|
|
333
|
+
}
|
|
334
|
+
async guardarHtml() {
|
|
335
|
+
await firstValueFrom(this.plantillasService.guardarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data, this.modificarHTML));
|
|
336
|
+
this.toastService.showSuccess('El archivo ha sido modificado correctamente');
|
|
337
|
+
this.ngOnInit();
|
|
338
|
+
}
|
|
339
|
+
regresarPrincipal() {
|
|
340
|
+
this.mostrarEditor = false;
|
|
341
|
+
}
|
|
342
|
+
verificarControl(control) {
|
|
343
|
+
return this.controlFuncionService.getControlFuncionalidad(control);
|
|
344
|
+
}
|
|
345
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CarguePlantillaGeneralComponent, deps: [{ token: i1.PlantillasService }, { token: i2.AuthService }, { token: i3.TranslateService }, { token: i4.CargarControlFuncionalidadService }, { token: i5.ConfirmationService }, { token: i6.ToastService }, { token: i7.CargarArchivosService }, { token: i8.EncriptadoBasicoService }, { token: i9.GeneralPipe }, { token: i10.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
346
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: CarguePlantillaGeneralComponent, isStandalone: true, selector: "app-cargue-plantilla-general", providers: [
|
|
347
|
+
ConfirmationService
|
|
348
|
+
], viewQueries: [{ propertyName: "popupConvertirPlantillasComponent", first: true, predicate: PopupConvertirPlantillasComponent, descendants: true }, { propertyName: "miFormulario", first: true, predicate: ["miFormulario"], descendants: true }, { propertyName: "treeComponent", first: true, predicate: ["tree"], descendants: true }], ngImport: i0, template: "<div id=\"cargue-plantillas\">\n<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\n\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\n\n<div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\n (keydown)=\"filtrarEnter($event)\" />\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\n </div>\n\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\n </div>\n\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\n\n @if(this.loading){\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n }\n\n @if(!this.loading){\n <div class=\"encabezado-acciones sombra-caja mb-3\">\n\n <!-- CARPETA -->\n @if(archivoSeleccionado.expanded){\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-between\">\n\n <!-- Convertir -->\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\n class=\"w-full mr-3 p-button-secondary boton-accion-principal color-500\"\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\n </div>\n </button>\n\n <!--Nueva Carpeta-->\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"w-full mr-3 p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-plus color-500\"></i>\n </div>\n </button>\n\n <!--Eliminar-->\n <div class=\"btn-fileupload-claro mr-3\">\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"p-button p-button-secondary font-semibold flex-shrink-0 boton-accion-principal mr-3\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i style=\"color: var(--color-500)\" class=\"glyphicons glyphicons-bin\"></i>\n </div>\n </button>\n </div>\n\n <!-- Cargar Archivo -->\n <div class=\"btn-fileupload-claro\" [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-trash\"></i>\n </div>\n </p-fileUpload>\n </div>\n </div>\n }\n\n <!-- ARCHIVO-->\n @if(!archivoSeleccionado.expanded){\n\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-end\">\n @if(archivoSeleccionado.label.includes('.html')){\n\n <!--EDITAR HTML-->\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\n class=\"mr-3 w-full p-button-secondary boton-accion-principal \" label=\"Editar HTML\">\n </button>\n }\n\n <!-- DESCARGAR-->\n <button pButton pRipple class=\"mr-3 w-full p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-download color-500\"></i>\n </div>\n </button>\n\n <!--ELIMINAR-->\n <button pButton pRipple class=\"w-full p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\n </div>\n </button>\n </div>\n }\n </div>\n }\n\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\n <div class=\"encabezado-acciones sombra-caja mb-3\">\n\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\n\n <form #miFormulario=\"ngForm\">\n <!-- campos -->\n <div class=\"flex mb-3\">\n <!-- Nombre -->\n <div class=\"w-full p-0 mb-0\">\n <span class=\"p-float-label mr-2\">\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\n name=\"nombreCarpeta\">\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\n </span>\n </div>\n\n <div class=\"flex justify-content-end\">\n <!--Guardar Carpeta-->\n <button pButton pRipple class=\"mr-2 p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n [label]=\"('link_guardar' | translate)\" (click)=\"guardarCarpeta()\">\n </button>\n </div>\n </div>\n </form>\n\n </div>\n }\n <!-- EDITOR DE HTML -->\n <div *ngIf=\"isHtml() && mostrarEditor\">\n\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <!-- Bot\u00F3n guardar HTML -->\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-raised\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\n </div>\n\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\n name=\"htmlPublicacion\"></p-editor>\n\n </div>\n </div>\n</div>\n\n@if(isMostrarPopupConvertir){\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\n}\n\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TreeModule }, { kind: "component", type: i12.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i13.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i14.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "directive", type: i15.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i16.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i17.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i17.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i17.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i17.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i17.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i17.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i17.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FieldsetModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i18.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: i19.ProgressBar, selector: "p-progressBar", inputs: ["value", "showValue", "styleClass", "style", "unit", "mode", "color"] }, { kind: "component", type: PopupConvertirPlantillasComponent, selector: "app-popup-convertir-plantillas", inputs: ["showDialog"], outputs: ["onSelected", "regresar"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i20.Editor, selector: "p-editor", inputs: ["style", "styleClass", "placeholder", "formats", "modules", "bounds", "scrollingContainer", "debug", "readonly"], outputs: ["onInit", "onTextChange", "onSelectionChange"] }, { kind: "ngmodule", type: ProgressBarModule }] });
|
|
349
|
+
}
|
|
350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: CarguePlantillaGeneralComponent, decorators: [{
|
|
351
|
+
type: Component,
|
|
352
|
+
args: [{ selector: 'app-cargue-plantilla-general', standalone: true, imports: [TranslateModule,
|
|
353
|
+
CommonModule,
|
|
354
|
+
TreeModule,
|
|
355
|
+
InputTextModule,
|
|
356
|
+
ButtonModule,
|
|
357
|
+
SplitButtonModule,
|
|
358
|
+
ConfirmPopupModule,
|
|
359
|
+
FormsModule,
|
|
360
|
+
FieldsetModule,
|
|
361
|
+
FileUploadModule,
|
|
362
|
+
PopupConvertirPlantillasComponent,
|
|
363
|
+
EditorModule,
|
|
364
|
+
ProgressBarModule
|
|
365
|
+
], providers: [
|
|
366
|
+
ConfirmationService
|
|
367
|
+
], template: "<div id=\"cargue-plantillas\">\n<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\n\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\n\n<div class=\"p-fluid p-formgrid grid\">\n\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\n (keydown)=\"filtrarEnter($event)\" />\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\n </div>\n\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\n </div>\n\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\n\n @if(this.loading){\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n }\n\n @if(!this.loading){\n <div class=\"encabezado-acciones sombra-caja mb-3\">\n\n <!-- CARPETA -->\n @if(archivoSeleccionado.expanded){\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-between\">\n\n <!-- Convertir -->\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\n class=\"w-full mr-3 p-button-secondary boton-accion-principal color-500\"\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\n </div>\n </button>\n\n <!--Nueva Carpeta-->\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"w-full mr-3 p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-plus color-500\"></i>\n </div>\n </button>\n\n <!--Eliminar-->\n <div class=\"btn-fileupload-claro mr-3\">\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\n class=\"p-button p-button-secondary font-semibold flex-shrink-0 boton-accion-principal mr-3\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i style=\"color: var(--color-500)\" class=\"glyphicons glyphicons-bin\"></i>\n </div>\n </button>\n </div>\n\n <!-- Cargar Archivo -->\n <div class=\"btn-fileupload-claro\" [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"pi pi-trash\"></i>\n </div>\n </p-fileUpload>\n </div>\n </div>\n }\n\n <!-- ARCHIVO-->\n @if(!archivoSeleccionado.expanded){\n\n <div class=\"flex align-items-center\">\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\n </div>\n\n <div class=\"flex justify-content-end\">\n @if(archivoSeleccionado.label.includes('.html')){\n\n <!--EDITAR HTML-->\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\n class=\"mr-3 w-full p-button-secondary boton-accion-principal \" label=\"Editar HTML\">\n </button>\n }\n\n <!-- DESCARGAR-->\n <button pButton pRipple class=\"mr-3 w-full p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-download color-500\"></i>\n </div>\n </button>\n\n <!--ELIMINAR-->\n <button pButton pRipple class=\"w-full p-button-secondary boton-accion-principal color-500\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\n <div class=\"contenedor-icono-acciones-principal\">\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\n </div>\n </button>\n </div>\n }\n </div>\n }\n\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\n <div class=\"encabezado-acciones sombra-caja mb-3\">\n\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\n\n <form #miFormulario=\"ngForm\">\n <!-- campos -->\n <div class=\"flex mb-3\">\n <!-- Nombre -->\n <div class=\"w-full p-0 mb-0\">\n <span class=\"p-float-label mr-2\">\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\n name=\"nombreCarpeta\">\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\n </span>\n </div>\n\n <div class=\"flex justify-content-end\">\n <!--Guardar Carpeta-->\n <button pButton pRipple class=\"mr-2 p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n [label]=\"('link_guardar' | translate)\" (click)=\"guardarCarpeta()\">\n </button>\n </div>\n </div>\n </form>\n\n </div>\n }\n <!-- EDITOR DE HTML -->\n <div *ngIf=\"isHtml() && mostrarEditor\">\n\n <div class=\"flex justify-content-end align-items-center mb-3\">\n <!-- Bot\u00F3n guardar HTML -->\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-raised\"\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\n </div>\n\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\n name=\"htmlPublicacion\"></p-editor>\n\n </div>\n </div>\n</div>\n\n@if(isMostrarPopupConvertir){\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\n}\n\n</div>" }]
|
|
368
|
+
}], ctorParameters: () => [{ type: i1.PlantillasService }, { type: i2.AuthService }, { type: i3.TranslateService }, { type: i4.CargarControlFuncionalidadService }, { type: i5.ConfirmationService }, { type: i6.ToastService }, { type: i7.CargarArchivosService }, { type: i8.EncriptadoBasicoService }, { type: i9.GeneralPipe }, { type: i10.UtilsService }], propDecorators: { popupConvertirPlantillasComponent: [{
|
|
369
|
+
type: ViewChild,
|
|
370
|
+
args: [PopupConvertirPlantillasComponent]
|
|
371
|
+
}], miFormulario: [{
|
|
372
|
+
type: ViewChild,
|
|
373
|
+
args: ['miFormulario', { static: false }]
|
|
374
|
+
}], treeComponent: [{
|
|
375
|
+
type: ViewChild,
|
|
376
|
+
args: ['tree']
|
|
377
|
+
}] } });
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BhZ2VzL2Nhcmd1ZS1wbGFudGlsbGEvY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9wYWdlcy9jYXJndWUtcGxhbnRpbGxhL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC9jYXJndWUtcGxhbnRpbGxhLWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFzQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FB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QyxxeFJBOEtNLHlERGxKTSxlQUFlLDJGQUN2QixZQUFZLGtPQUNaLFVBQVUsKzNCQUNWLGVBQWUseUhBQ2YsWUFBWSw2T0FDWixpQkFBaUIsc1hBQ2pCLGtCQUFrQiwwUEFDbEIsV0FBVywyd0NBQ1gsY0FBYyw4QkFDZCxnQkFBZ0IsMGdDQUNoQixpQ0FBaUMsdUlBQ2pDLFlBQVksa1JBQ1osaUJBQWlCOzsyRkFRUiwrQkFBK0I7a0JBdkIzQyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxlQUFlO3dCQUN2QixZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQ0FBaUM7d0JBQ2pDLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQixhQUdVO3dCQUNULG1CQUFtQjtxQkFDcEI7NFhBSTZDLGlDQUFpQztzQkFBOUUsU0FBUzt1QkFBQyxpQ0FBaUM7Z0JBQ0UsWUFBWTtzQkFBekQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN6QixhQUFhO3NCQUEvQixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVudUl0ZW0sIFRyZWVOb2RlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgU3BsaXRCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NwbGl0YnV0dG9uJztcbmltcG9ydCB7IFRyZWUsIFRyZWVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RyZWUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhbnRpbGxhc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi93ZWJjb21tb24vc2VydmljZXMvcGxhbnRpbGxhcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhcmdhckNvbnRyb2xGdW5jaW9uYWxpZGFkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2Nhcmdhci1jb250cm9sLWZ1bmNpb25hbGlkYWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRzZXRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ZpZWxkc2V0JztcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJnYXJBcmNoaXZvc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljaW9zL2Nhcmdhci1hcmNoaXZvcy5zZXJ2aWNlJztcbmltcG9ydCB7IEVuY3JpcHRhZG9CYXNpY29TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9lbmNyaXB0YWRvLWJhc2ljby5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vd2ViY29tbW9uL3BpcGVzL2dlbmVyYWwucGlwZSc7XG5pbXBvcnQgeyBQb3B1cENvbnZlcnRpclBsYW50aWxsYXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi93ZWJjb21tb24vcG9wdXBzL3BvcHVwLWNvbnZlcnRpci1wbGFudGlsbGFzL3BvcHVwLWNvbnZlcnRpci1wbGFudGlsbGFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFZGl0b3JNb2R1bGUgfSBmcm9tICdwcmltZW5nL2VkaXRvcic7XG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcHJvZ3Jlc3NiYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2FyZ3VlLXBsYW50aWxsYS1nZW5lcmFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFNwbGl0QnV0dG9uTW9kdWxlLFxuICAgIENvbmZpcm1Qb3B1cE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGaWVsZHNldE1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIFBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudCxcbiAgICBFZGl0b3JNb2R1bGUsXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcmd1ZS1wbGFudGlsbGEtZ2VuZXJhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJndWUtcGxhbnRpbGxhLWdlbmVyYWwuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICBDb25maXJtYXRpb25TZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZ3VlUGxhbnRpbGxhR2VuZXJhbENvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChQb3B1cENvbnZlcnRpclBsYW50aWxsYXNDb21wb25lbnQpIHBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudDogUG9wdXBDb252ZXJ0aXJQbGFudGlsbGFzQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdtaUZvcm11bGFyaW8nLCB7IHN0YXRpYzogZmFsc2UgfSkgbWlGb3JtdWxhcmlvITogTmdGb3JtO1xuICBAVmlld0NoaWxkKCd0cmVlJykgdHJlZUNvbXBvbmVudCE6IFRyZWU7XG5cbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgcHJvcGllZGFkOiBzdHJpbmc7XG4gIGV4dGVuc2lvbmVzOiBzdHJpbmc7XG4gIHByb3BpZWRhZERlU2lzdGVtYTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbmV4b1Byb3BpZWRhZDogc3RyaW5nID0gJyc7XG4gIGZpbGVzOiBUcmVlTm9kZVtdO1xuICBkYXRhU2VsZWN0ZWQ6IFRyZWVOb2RlO1xuICBpdGVtc0JvdG9uQWNjaW9uZXM6IE1lbnVJdGVtW107XG4gIHZlckNvbnZlcnRpcjogYm9vbGVhbjtcbiAgbm9tTnVldmFDYXJwZXRhOiBzdHJpbmc7XG4gIGlzVmlzdWFsaXphckNyZWFyQ2FwZXJ0YTogYm9vbGVhbiA9IGZhbHNlO1xuICBhcmNoaXZvU2VsZWNjaW9uYWRvQW5leG86IEZpbGU7XG4gIGFyY2hpdm9TZWxlY2Npb25hZG86IFRyZWVOb2RlO1xuICBpc01vc3RyYXJQb3B1cENvbnZlcnRpcjogYm9vbGVhbiA9IGZhbHNlO1xuICBydXRhUHJpbmNpcGFsOiBzdHJpbmc7XG4gIGZpbHRlcmVkRmlsZXM6IFRyZWVOb2RlW10gPSBbXTtcbiAgZmlsdGVyVmFsdWU6IHN0cmluZyA9ICcnO1xuICBmaWx0cm9Db252ZXJ0aXI6IHN0cmluZztcbiAgaHRtbDogYm9vbGVhbjtcbiAgbW9zdHJhckVkaXRvcjogYm9vbGVhbjtcbiAgbW9kaWZpY2FySFRNTDogc3RyaW5nO1xuXG4gIEZPUk1BVFNfVkFMSURPUzogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgICAnLmRvYycsXG4gICAgJy5odG1sJyxcbiAgICAnLmphc3BlcicsXG4gICAgJy54bHMnLFxuICAgICcuanJ4bWwnLFxuICAgICcub2R0JyxcbiAgICAnLnhsc20nLFxuICAgICcueGxzeCcsXG4gICAgJy5wZ3AnLFxuICAgICcuYXNjJyxcbiAgICAnLmNlcicsXG4gICAgJy5wMTInLFxuICAgICcuZG9jeCcsXG4gICAgJy5wcm9wZXJ0aWVzJ1xuICBdKTtcblxuICByZWFkb25seSBGT1JNQVRPUyA9ICdkb2M7aHRtbDtqYXNwZXI7eGxzO2pyeG1sO29kdDt4bHNtO3hsc3g7cGdwO2FzYztjZXI7cDEyO2RvY3g7cHJvcGVydGllcyc7XG4gIFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGxhbnRpbGxhc1NlcnZpY2U6IFBsYW50aWxsYXNTZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGNvbnRyb2xGdW5jaW9uU2VydmljZTogQ2FyZ2FyQ29udHJvbEZ1bmNpb25hbGlkYWRTZXJ2aWNlLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSwgcHJpdmF0ZSBjYXJnYXJBcmNoaXZvU2VydmljZXM6IENhcmdhckFyY2hpdm9zU2VydmljZSwgcHJpdmF0ZSBlbmNyaXB0YWRvQmFzaWNvOiBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSxcbiAgICBwcml2YXRlIGdlbmVyYWxQaXBlOiBHZW5lcmFsUGlwZSwgcHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMubW9zdHJhckVkaXRvciA9IGZhbHNlO1xuICAgIGxldCBjb25zdWx0YXJSdXRhUHJpbmNpcGFsID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jYXJnYXJBcmNoaXZvU2VydmljZXMuZ2V0UHJvcGllZGFkKHsgcHJvcGllZGFkOiBcInJ1dGFfcGxhbnRpbGxhc1wiLCBhcGxpY2FjaW9uOiAxIH0pKTtcbiAgICBsZXQgY29udmVydGlyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jYXJnYXJBcmNoaXZvU2VydmljZXMuZ2V0UHJvcGllZGFkKHsgcHJvcGllZGFkOiBcInNlcnZpZG9yX29wZW5PZmZpY2VcIiwgYXBsaWNhY2lvbjogMCB9KSk7XG4gICAgdGhpcy52ZXJDb252ZXJ0aXIgPSAhY29udmVydGlyLnZhbG9yLnZhbG9yID8gdHJ1ZSA6IGZhbHNlO1xuICAgIHRoaXMucnV0YVByaW5jaXBhbCA9IGNvbnN1bHRhclJ1dGFQcmluY2lwYWwudmFsb3IudmFsb3I7XG4gICAgdGhpcy5pc1Zpc3VhbGl6YXJDcmVhckNhcGVydGEgPSBmYWxzZTtcbiAgICBhd2FpdCB0aGlzLm9wZW5EYXRhVGFibGUoKTtcblxuICAgIGNvbnN0IHNsZWVwID0gKG0pID0+IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIG0pKTtcbiAgICBhd2FpdCBzbGVlcCgxMDApO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyVmFsdWUpIHtcbiAgICAgIGF3YWl0IHRoaXMuYXBsaWNhckZpbHRybygpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5EYXRhVGFibGUoKSB7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGlmICghdGhpcy5wcm9waWVkYWQpIHtcbiAgICAgICAgdGhpcy5wcm9waWVkYWQgPSAncnV0YV9wbGFudGlsbGFzJ1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLm9idGVuZXJBcmNoaXZvcyhcbiAgICAgICAgdGhpcy5wcm9waWVkYWQsIHRoaXMucHJvcGllZGFkRGVTaXN0ZW1hID8gJzAnIDogdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbktleSgnYXBsaWNhY2lvbicpLCB0aGlzLkZPUk1BVE9TLCB0aGlzLmFuZXhvUHJvcGllZGFkLCB0cnVlKS5zdWJzY3JpYmVcbiAgICAgICAgKHJ0YSA9PiB7XG4gICAgICAgICAgdGhpcy5maWxlcyA9IHJ0YTtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRmlsZXMgPSBydGFcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAvL3RoaXMuaXNDYXJnYXJJbmljaW8gPSBmYWxzZTtcbiAgICAgICAgICBpZiAoIXRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbykge1xuICAgICAgICAgICAgdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvID0gdGhpcy5maWxlc1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYXN5bmMgYXBsaWNhckZpbHRybygpIHtcbiAgICB0aGlzLmZpbHRyb0NvbnZlcnRpciA9IHRoaXMuZmlsdGVyVmFsdWU7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRGaWxlcyA9IHRoaXMub2J0ZW5lckZpbHRyb3NOb2Rvcyh0aGlzLmZpbGVzLCB0aGlzLmZpbHRlclZhbHVlKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgb2J0ZW5lckZpbHRyb3NOb2Rvcyhub2RlczogVHJlZU5vZGVbXSwgZmlsdGVyVmFsdWU6IHN0cmluZyk6IFRyZWVOb2RlW10ge1xuXG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZmlsdHJvQXZhbnphZG8oZmlsdGVyVmFsdWUpO1xuXG4gICAgY29uc3QgZmlsdGVyZWROb2RlczogVHJlZU5vZGVbXSA9IFtdO1xuXG4gICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcblxuICAgICAgLy8gVmVyaWZpY2Egc2kgZWwgbm9kbyBhY3R1YWwgbyBhbGd1bm8gZGUgc3VzIGhpam9zIGN1bXBsZSBjb24gZWwgZmlsdHJvXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4gPyB0aGlzLm9idGVuZXJGaWx0cm9zTm9kb3Mobm9kZS5jaGlsZHJlbiwgZmlsdGVyVmFsdWUpIDogW107XG5cbiAgICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gZmlsdGVycy5zb21lKGZpbHRlciA9PiBub2RlLmxhYmVsLmluY2x1ZGVzKGZpbHRlcikpO1xuXG4gICAgICBpZiAobm9kZU1hdGNoZXMgfHwgY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJlZE5vZGVzLnB1c2goeyAuLi5ub2RlLCBjaGlsZHJlbiB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWx0ZXJlZE5vZGVzO1xuICB9XG5cbiAgZmlsdHJvQXZhbnphZG8oc2VhcmNoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG5cbiAgICBpZiAoc2VhcmNoLmluY2x1ZGVzKCcrJykpIHtcbiAgICAgIGxldCBhdXggPSBzZWFyY2g7XG5cbiAgICAgIGlmIChhdXguc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICAgIGF1eCA9IGF1eC5zdWJzdHJpbmcoMSk7XG4gICAgICB9XG5cbiAgICAgIGF1eCA9IGF1eC5yZXBsYWNlKC9cXCsvZywgJzonKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gYXV4LnRyaW0oKS5zcGxpdCgnOicpO1xuICAgICAgcmV0dXJuIGl0ZW1zO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbc2VhcmNoXTtcbiAgICB9XG4gIH1cblxuICBmaWx0cmFyRW50ZXIoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmFwbGljYXJGaWx0cm8oKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY2Npb25hckFyY2hpdm8oZXZlbnQpIHtcbiAgICB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8gPSBldmVudC5ub2RlO1xuICAgIHRoaXMubW9zdHJhckVkaXRvciA9IGZhbHNlO1xuICB9XG5cbiAgZGVzZWxlY2Npb25hckFyY2hpdm8oJGV2ZW50KSB7XG4gICAgdGhpcy5kYXRhU2VsZWN0ZWQgPSBudWxsO1xuICB9XG5cblxuICBhc3luYyBjYXJnYXJOdWV2byhldmVudCwgZnViYXV0bykge1xuXG4gICAgdGhpcy5pc1Zpc3VhbGl6YXJDcmVhckNhcGVydGEgPSBmYWxzZTtcbiAgICB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG9BbmV4byA9IGV2ZW50LmZpbGVzWzBdO1xuXG4gICAgaWYgKCF0aGlzLmlzRm9ybWF0b1ZhbGlkbyh0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG9BbmV4by5uYW1lKSkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvd1dhcm5pbmcoXCJTZSBkZWJlIGFncmVnYXIgdW4gYXJjaGl2byBcIiArIEFycmF5LmZyb20odGhpcy5GT1JNQVRTX1ZBTElET1MpLmpvaW4oJywgJykpXG4gICAgICBmdWJhdXRvLmNsZWFyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9DYXJnYXIgQXJjaGl2byBUZW1wb3JhbFxuICAgIGxldCByZXN1bHRhZG8gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmNhcmdhckRvY3VtZW50b1RlbXBvcmFsKHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkb0FuZXhvKSk7XG5cbiAgICBmdWJhdXRvLmNsZWFyKCk7XG5cbiAgICBpZiAocmVzdWx0YWRvPy52YWxpZGFjaW9uKSB7XG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93U3VjY2VzcyhyZXN1bHRhZG8/LnZhbGlkYWNpb24pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBpbmZvcm1hY2lvbkFyY2hpdm8gPSByZXN1bHRhZG8/LmluZm9ybWFjaW9uQXJjaGl2byA/IHJlc3VsdGFkbz8uaW5mb3JtYWNpb25BcmNoaXZvIDogbnVsbDtcblxuICAgIC8vT2J0ZW5lciBSdXRhc1xuICAgIGxldCBydXRhQ29tcGxlbWVudG8gPSB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8uZGF0YTtcblxuICAgIC8vbGV0IG9iamV0byA9IChhd2FpdCB0aGlzLmNhcmdhckFyY2hpdm9TZXJ2aWNlcy5nZXRQcm9waWVkYWQoeyBwcm9waWVkYWQ6IFwicnV0YV9wbGFudGlsbGFzXCIsIGFwbGljYWNpb246IDEgfSkudG9Qcm9taXNlKCkpO1xuXG4gICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LnBhcmVudCkge1xuICAgICAgcnV0YUNvbXBsZW1lbnRvID0gJyc7XG4gICAgfVxuXG4gICAgLy9WZXJpZmljYSBzaSBlbCBkb2N1bWVudG8geWEgZXhpc3RlIFxuICAgIGxldCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5wbGFudGlsbGFzU2VydmljZS5leGlzdGVEb2N1bWVudG8odGhpcy5ydXRhUHJpbmNpcGFsLCBydXRhQ29tcGxlbWVudG8sIGluZm9ybWFjaW9uQXJjaGl2bykpO1xuXG4gICAgaWYgKGRhdGE/LnZhbGlkYWNpb25Eb2N1bWVudG8pIHtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3dXYXJuaW5nKGRhdGE/LnZhbGlkYWNpb25Eb2N1bWVudG8pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vR3VhcmRhIGVsIGRvY3VtZW50b1xuICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucGxhbnRpbGxhc1NlcnZpY2UuY2FyZ2FyRG9jdW1lbnRvKHRoaXMucnV0YVByaW5jaXBhbCwgcnV0YUNvbXBsZW1lbnRvLCBpbmZvcm1hY2lvbkFyY2hpdm8pKTtcblxuICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3dTdWNjZXNzKHRoaXMuZ2VuZXJhbFBpcGUuTUVOU0FKRV9HVUFSREFSKTtcblxuICAgIHRoaXMubmdPbkluaXQoKTtcblxuICB9XG5cbiAgYXN5bmMgZGVzY2FyZ2FyQW5leG8oKSB7XG5cbiAgICAvL1J1dGEgYXJjaGl2byAgXG4gICAgbGV0IHJ1dGFDb21wbGVtZW50byA9IHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhO1xuXG4gICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LnBhcmVudCkge1xuICAgICAgcnV0YUNvbXBsZW1lbnRvID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5jYXJnYXJBcmNoaXZvU2VydmljZXMuZGVzY2FyZ2FyQXJjaGl2byh0aGlzLmVuY3JpcHRhZG9CYXNpY28uZW5jcmlwdGFyKHRoaXMucnV0YVByaW5jaXBhbCArIHJ1dGFDb21wbGVtZW50byksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKS5zdWJzY3JpYmUoYmxvYiA9PiB7XG4gICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgY29uc3Qgb2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgIGEuaHJlZiA9IG9iamVjdFVybDtcbiAgICAgIGEuZG93bmxvYWQgPSB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LmxhYmVsO1xuICAgICAgYS5jbGljaygpO1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xuICAgIH0pO1xuXG4gIH1cblxuICBlbGltaW5hckFyY2hpdm8oKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICBrZXk6ICdlbGltaW5hckFyY2hpdm8nLFxuICAgICAgbWVzc2FnZTogJ8K/RGVzZWEgZWxpbWluYXIgZWwgcmVnaXN0cm8/JyxcbiAgICAgIGFjY2VwdExhYmVsOiAnU2knLFxuICAgICAgaWNvbjogJ2NvbmZpcm1hcicsXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRFbGltaW5hckFyY2hpdm8oKTtcbiAgICAgIH0sXG4gICAgICByZWplY3Q6ICgpID0+IHsgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEVsaW1pbmFyQXJjaGl2bygpIHtcblxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAvL1J1dGEgYXJjaGl2byAgXG4gICAgbGV0IHJ1dGFDb21wbGVtZW50byA9IHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhO1xuXG4gICAgaWYgKCF0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8/LnBhcmVudCkge1xuICAgICAgcnV0YUNvbXBsZW1lbnRvID0gJyc7XG4gICAgfVxuXG4gICAgbGV0IHByb3BpZWRhZCA9ICdydXRhX3BsYW50aWxsYXMnXG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jYXJnYXJBcmNoaXZvU2VydmljZXMuZWxpbWluYXJBcmNoaXZvKHRoaXMuZW5jcmlwdGFkb0Jhc2ljby5lbmNyaXB0YXIocnV0YUNvbXBsZW1lbnRvKSwgcHJvcGllZGFkLCAnMScpKTtcbiAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93U3VjY2Vzcyh0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVIpO1xuICAgIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbyA9IG51bGw7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5uZ09uSW5pdCgpO1xuICB9XG5cbiAgaXNGb3JtYXRvVmFsaWRvKG5vbWJyZUFyY2hpdm86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIFZlcmlmaWNhIHNpIGVsIGFyY2hpdm8gdGVybWluYSBjb24gYWxndW5hIGRlIGxhcyBleHRlbnNpb25lcyB2w6FsaWRhc1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuRk9STUFUU19WQUxJRE9TKS5zb21lKGV4dCA9PiBub21icmVBcmNoaXZvLmVuZHNXaXRoKGV4dCkpO1xuICB9XG5cbiAgY3JlYXJDYXJwZXRhKCkge1xuICAgIHRoaXMuaXNWaXN1YWxpemFyQ3JlYXJDYXBlcnRhID0gdHJ1ZTtcbiAgICB0aGlzLm5vbU51ZXZhQ2FycGV0YSA9IG51bGw7XG4gIH1cblxuICBhc3luYyBndWFyZGFyQ2FycGV0YSgpIHtcblxuICAgIGlmICh0aGlzLm1pRm9ybXVsYXJpby52YWxpZCkge1xuXG4gICAgICBsZXQgcnV0YUNvbXBsZW1lbnRvID0gdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvLmRhdGE7XG5cbiAgICAgIGlmICghdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvPy5wYXJlbnQpIHtcbiAgICAgICAgcnV0YUNvbXBsZW1lbnRvID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucGxhbnRpbGxhc1NlcnZpY2UuY3JlYXJDYXJwZXRhKHRoaXMucnV0YVByaW5jaXBhbCwgcnV0YUNvbXBsZW1lbnRvLCB0aGlzLm5vbU51ZXZhQ2FycGV0YSkpO1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0xhIGNhcnBldGEgc2UgaGEgY3JlYWRvIGNvcnJlY3RhbWVudGUnKTtcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3dFcnJvcignRmFsdGFuIGNhbXBvcyBvYmxpZ2F0b3Jpb3MnKTtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMubWlGb3JtdWxhcmlvLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubWlGb3JtdWxhcmlvLmNvbnRyb2xzW2tleV0uaW52YWxpZCkge1xuICAgICAgICAgIHRoaXMubWlGb3JtdWxhcmlvLmNvbnRyb2xzW2tleV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICBlbGltaW5hckNhcnBldGEoKSB7XG5cbiAgICB0aGlzLmlzVmlzdWFsaXphckNyZWFyQ2FwZXJ0YSA9IGZhbHNlO1xuXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICBrZXk6ICdlbGltaW5hckNhcnBldGEnLFxuICAgICAgbWVzc2FnZTogJ8K/RGVzZWEgZWxpbWluYXIgZWwgcmVnaXN0cm8/JyxcbiAgICAgIGFjY2VwdExhYmVsOiAnU2knLFxuICAgICAgaWNvbjogJ2NvbmZpcm1hcicsXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRFbGltaW5hckNhcnBldGEoKTtcbiAgICAgIH0sXG4gICAgICByZWplY3Q6ICgpID0+IHsgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEVsaW1pbmFyQ2FycGV0YSgpIHtcblxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBsZXQgcnV0YUNvbXBsZW1lbnRvID0gdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvLmRhdGE7XG5cbiAgICBpZiAoIXRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbz8ucGFyZW50KSB7XG4gICAgICBydXRhQ29tcGxlbWVudG8gPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmVsaW1pbmFyQ2FycGV0YSh0aGlzLnJ1dGFQcmluY2lwYWwsIHJ1dGFDb21wbGVtZW50bykuc3Vic2NyaWJlKHJ0YSA9PiB7XG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93U3VjY2VzcygnTGEgY2FycGV0YSBoYSBzaWRvIGVsaW1pbmFkYSBjb3JyZWN0YW1lbnRlJyk7XG4gICAgICB0aGlzLmFyY2hpdm9TZWxlY2Npb25hZG8gPSBudWxsO1xuICAgICAgdGhpcy5maWx0ZXJWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfSlcblxuICB9XG5cbiAgYXN5bmMgY29udmVydGlyQXJjaGl2b3MoKSB7XG5cbiAgICB0aGlzLmlzVmlzdWFsaXphckNyZWFyQ2FwZXJ0YSA9IGZhbHNlO1xuICAgIHRoaXMuaXNNb3N0cmFyUG9wdXBDb252ZXJ0aXIgPSB0cnVlO1xuICAgIC8vY29uc3QgZmlsdGVyZWROb2RlcyA9IHRoaXMuZ2V0RmlsdGVyZWROb2RlcygpO1xuICAgIGNvbnN0IHZhbG9yRmlsdHJvID0gdGhpcy5maWx0ZXJWYWx1ZTtcblxuICAgIGNvbnN0IHNsZWVwID0gKG0pID0+IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIG0pKTtcbiAgICBhd2FpdCBzbGVlcCg1MCk7XG5cbiAgICB0aGlzLnBvcHVwQ29udmVydGlyUGxhbnRpbGxhc0NvbXBvbmVudC5idXNjYXIodGhpcy5ydXRhUHJpbmNpcGFsLCB2YWxvckZpbHRybyk7XG5cbiAgfVxuXG4gIHJlZ3Jlc2FyUG9wdXBDb252ZXJ0aXIoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlzTW9zdHJhclBvcHVwQ29udmVydGlyID0gZmFsc2U7XG4gICAgdGhpcy5uZ09uSW5pdCgpO1xuICB9XG5cbiAgaXNIdG1sKCkge1xuICAgIHRoaXMuaHRtbCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkbyAhPSBudWxsICYmIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbCAhPSBudWxsICYmIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbC5pbmNsdWRlcygnLmh0bWwnKSlcbiAgICAgIHRoaXMuaHRtbCA9IHRydWU7XG5cbiAgICByZXR1cm4gdGhpcy5odG1sO1xuICB9XG5cbiAgYXN5bmMgZWRpdGFyQWN0aW9uKCkge1xuXG4gICAgbGV0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmNvbnN1bHRhckFyY2hpdm9IdG1sKHRoaXMucnV0YVByaW5jaXBhbCwgdGhpcy5hcmNoaXZvU2VsZWNjaW9uYWRvLmRhdGEpKTtcblxuICAgIHRoaXMubW9kaWZpY2FySFRNTCA9IGRhdGE7XG5cbiAgICB0aGlzLm1vc3RyYXJFZGl0b3IgPSB0cnVlO1xuICB9XG5cbiAgYXN5bmMgZ3VhcmRhckh0bWwoKSB7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnBsYW50aWxsYXNTZXJ2aWNlLmd1YXJkYXJBcmNoaXZvSHRtbCh0aGlzLnJ1dGFQcmluY2lwYWwsIHRoaXMuYXJjaGl2b1NlbGVjY2lvbmFkby5kYXRhLCB0aGlzLm1vZGlmaWNhckhUTUwpKTtcblxuICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3dTdWNjZXNzKCdFbCBhcmNoaXZvIGhhIHNpZG8gbW9kaWZpY2FkbyBjb3JyZWN0YW1lbnRlJyk7XG5cbiAgICB0aGlzLm5nT25Jbml0KCk7XG5cbiAgfVxuXG4gIHJlZ3Jlc2FyUHJpbmNpcGFsKCkge1xuICAgIHRoaXMubW9zdHJhckVkaXRvciA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhckNvbnRyb2woY29udHJvbCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZChjb250cm9sKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGlkPVwiY2FyZ3VlLXBsYW50aWxsYXNcIj5cbjxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJlbGltaW5hckNhcnBldGFcIj48L3AtY29uZmlybVBvcHVwPlxuPHAtY29uZmlybVBvcHVwIGtleT1cImVsaW1pbmFyQXJjaGl2b1wiPjwvcC1jb25maXJtUG9wdXA+XG5cbjxoMSBjbGFzcz1cIm1iLTRcIj57eydjYXJndWUnIHwgdHJhbnNsYXRlfX0ge3sncGxhbnRpbGxhcycgfCB0cmFuc2xhdGV9fTwvaDE+XG5cbjxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtNSBjYXJkIHAtNVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cImZpbHRlclZhbHVlXCIgcGxhY2Vob2xkZXI9XCJ7eydmaWx0cm8nIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImZpbHRyYXJFbnRlcigkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gcFJpcHBsZSBpY29uPVwicGkgcGktc2VhcmNoIHRleHQteGxcIiAoY2xpY2spPVwiYXBsaWNhckZpbHRybygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtZWxlbWVudCBwLXJpcHBsZSBwLWJ1dHRvbi1yb3VuZGVkICBwLWJ1dHRvbi1zZWNvbmRhcnkgcC1idXR0b24gcC1jb21wb25lbnQgcC1idXR0b24taWNvbi1vbmx5IGFic29sdXRlIHJpZ2h0LTAgYm9yZGVyLW5vbmUgYmctd2hpdGUtYWxwaGEtMTBcIlxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIHBUb29sdGlwPVwiRWRpdGFyIEhUTUxcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHAtdHJlZSAjdHJlZSBzY3JvbGxIZWlnaHQ9XCI2NzBweFwiIFt2YWx1ZV09XCJmaWx0ZXJlZEZpbGVzXCIgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiIFsoc2VsZWN0aW9uKV09XCJkYXRhU2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2ZpbHRlcl09XCJmYWxzZVwiIFtmaWx0ZXJQbGFjZWhvbGRlcl09XCInZmlsdHJvJyB8IHRyYW5zbGF0ZVwiIGZpbHRlck1vZGU9XCJzdHJpY3RcIlxuICAgICAgICAgICAgKG9uTm9kZVNlbGVjdCk9XCJzZWxlY2Npb25hckFyY2hpdm8oJGV2ZW50KVwiIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgKG9uTm9kZVVuc2VsZWN0KT1cImRlc2VsZWNjaW9uYXJBcmNoaXZvKCRldmVudClcIj48L3AtdHJlZT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gT1BDSU5FUyBESVJFQ1RPUklPUyAtIEFSQ0hJVk9TIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTYgbGc6Y29sLTcgcC0wIHBsLTNcIj5cblxuICAgICAgICBAaWYodGhpcy5sb2FkaW5nKXtcbiAgICAgICAgPHAtcHJvZ3Jlc3NCYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGVdPVwieyBoZWlnaHQ6ICc2cHgnIH1cIj48L3AtcHJvZ3Jlc3NCYXI+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYoIXRoaXMubG9hZGluZyl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbmNhYmV6YWRvLWFjY2lvbmVzIHNvbWJyYS1jYWphIG1iLTNcIj5cblxuICAgICAgICAgICAgPCEtLSBDQVJQRVRBIC0tPlxuICAgICAgICAgICAgQGlmKGFyY2hpdm9TZWxlY2Npb25hZG8uZXhwYW5kZWQpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwidGV4dC14bCBtdC0yIG1iLTQgbXItM1wiPkNhcnBldGE6IDwvaDE+XG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwidGV4dC1zbSBtdC0yIG1iLTRcIj4ge3thcmNoaXZvU2VsZWNjaW9uYWRvLmxhYmVsfX0gPC9oNT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBDb252ZXJ0aXIgLS0+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIChjbGljayk9XCJjb252ZXJ0aXJBcmNoaXZvcygpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ2ZXJDb252ZXJ0aXIgJiYgY29udHJvbEZ1bmNpb25TZXJ2aWNlLmdldENvbnRyb2xGdW5jaW9uYWxpZGFkKCdzZWd1cGxhY29yOmd1YXJkYXInKVwiXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIGxhYmVsPVwie3snY29udmVydGlyJyB8IHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbXItMyBwLWJ1dHRvbi1zZWNvbmRhcnkgYm90b24tYWNjaW9uLXByaW5jaXBhbCBjb2xvci01MDBcIlxuICAgICAgICAgICAgICAgICAgICBwVG9vbHRpcD1cIkNvbnZlcnRpciBhcmNoaXZvXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1hcnJvdy1yaWdodC1hcnJvdy1sZWZ0IGNvbG9yLTUwMFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8IS0tTnVldmEgQ2FycGV0YS0tPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9sRnVuY2lvblNlcnZpY2UuZ2V0Q29udHJvbEZ1bmNpb25hbGlkYWQoJ3NlZ3VwbGFjb3I6Z3VhcmRhcicpXCIgcEJ1dHRvbiBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIG1yLTMgcC1idXR0b24tc2Vjb25kYXJ5IGJvdG9uLWFjY2lvbi1wcmluY2lwYWwgY29sb3ItNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX251ZXZvJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImNyZWFyQ2FycGV0YSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtcGx1cyBjb2xvci01MDBcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPCEtLUVsaW1pbmFyLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1maWxldXBsb2FkLWNsYXJvIG1yLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCgnc2VndXBsYWNvcjpndWFyZGFyJylcIiBwQnV0dG9uIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24gcC1idXR0b24tc2Vjb25kYXJ5IGZvbnQtc2VtaWJvbGQgZmxleC1zaHJpbmstMCBib3Rvbi1hY2Npb24tcHJpbmNpcGFsIG1yLTNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VsaW1pbmFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImVsaW1pbmFyQ2FycGV0YSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVuZWRvci1pY29uby1hY2Npb25lcy1wcmluY2lwYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBzdHlsZT1cImNvbG9yOiB2YXIoLS1jb2xvci01MDApXCIgY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYmluXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBDYXJnYXIgQXJjaGl2byAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWZpbGV1cGxvYWQtY2xhcm9cIiBbbmdDbGFzc109XCJ7ICdtaW4td2lkdGgtMTAwJzogIXZlckNvbnZlcnRpciwgJ21pbi13aWR0aC0yMCc6IHZlckNvbnZlcnRpciB9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWZpbGVVcGxvYWQgI2Z1YmF1dG8gbW9kZT1cImJhc2ljXCIgW2F1dG9dPVwidHJ1ZVwiIFtjdXN0b21VcGxvYWRdPVwidHJ1ZVwiIGNob29zZUljb249XCJwaSBwaS1wYXBlcmNsaXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9sRnVuY2lvblNlcnZpY2UuZ2V0Q29udHJvbEZ1bmNpb25hbGlkYWQoJ3NlZ3VwbGFjb3I6Z3VhcmRhcicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZUxhYmVsPVwie3snbGlua19zdWJpcmFyY2hpdm9zJyB8IHRyYW5zbGF0ZX19XCIgKG9uU2VsZWN0KT1cImNhcmdhck51ZXZvKCRldmVudCwgZnViYXV0bylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdHJhc2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9wLWZpbGVVcGxvYWQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBBUkNISVZPLS0+XG4gICAgICAgICAgICBAaWYoIWFyY2hpdm9TZWxlY2Npb25hZG8uZXhwYW5kZWQpe1xuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0ZXh0LXhsIG10LTIgbWItNCBtci0zXCI+QXJjaGl2bzogPC9oMT5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LXNtIG10LTIgbWItNFwiPiB7e2FyY2hpdm9TZWxlY2Npb25hZG8ubGFiZWx9fSA8L2g1PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICBAaWYoYXJjaGl2b1NlbGVjY2lvbmFkby5sYWJlbC5pbmNsdWRlcygnLmh0bWwnKSl7XG5cbiAgICAgICAgICAgICAgICA8IS0tRURJVEFSIEhUTUwtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWNvZGUgdGV4dC14bCBjb2xvci01MDBcIiAoY2xpY2spPVwiZWRpdGFyQWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yLTMgdy1mdWxsIHAtYnV0dG9uLXNlY29uZGFyeSAgYm90b24tYWNjaW9uLXByaW5jaXBhbCBcIiBsYWJlbD1cIkVkaXRhciBIVE1MXCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBERVNDQVJHQVItLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm1yLTMgdy1mdWxsIHAtYnV0dG9uLXNlY29uZGFyeSBib3Rvbi1hY2Npb24tcHJpbmNpcGFsIGNvbG9yLTUwMFwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19kZXNjYXJnYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZGVzY2FyZ2FyQW5leG8oKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbEZ1bmNpb25TZXJ2aWNlLmdldENvbnRyb2xGdW5jaW9uYWxpZGFkKCdzZWd1cGxhY29yOmRlc2NhcmdhcicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW5lZG9yLWljb25vLWFjY2lvbmVzLXByaW5jaXBhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtZG93bmxvYWQgY29sb3ItNTAwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDwhLS1FTElNSU5BUi0tPlxuICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwidy1mdWxsIHAtYnV0dG9uLXNlY29uZGFyeSAgYm90b24tYWNjaW9uLXByaW5jaXBhbCBjb2xvci01MDBcIlxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfZWxpbWluYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZWxpbWluYXJBcmNoaXZvKClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xGdW5jaW9uU2VydmljZS5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCgnc2VndXBsYWNvcjpndWFyZGFyJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbmVkb3ItaWNvbm8tYWNjaW9uZXMtcHJpbmNpcGFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1iaW4gY29sb3ItNTAwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZihhcmNoaXZvU2VsZWNjaW9uYWRvLmV4cGFuZGVkICYmIGlzVmlzdWFsaXphckNyZWFyQ2FwZXJ0YSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbmNhYmV6YWRvLWFjY2lvbmVzIHNvbWJyYS1jYWphIG1iLTNcIj5cblxuICAgICAgICAgICAgPGg1IGNsYXNzPVwibXQtMlwiPjxpIGNsYXNzPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLW5vdGVcIj48L2k+IE51ZXZhIGNhcnBldGE8L2g1PlxuXG4gICAgICAgICAgICA8Zm9ybSAjbWlGb3JtdWxhcmlvPVwibmdGb3JtXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBjYW1wb3MgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIE5vbWJyZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBwLTAgbWItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBpZD1cImlkX251bWVyb19kZV9ldmVudG9cIiBbKG5nTW9kZWwpXT1cIm5vbU51ZXZhQ2FycGV0YVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJub21icmVDYXJwZXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX251bWVyb19kZV9ldmVudG9cIj57eydub21icmUnIHwgdHJhbnNsYXRlfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1HdWFyZGFyIENhcnBldGEtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibXItMiBwLWJ1dHRvbi1yYWlzZWRcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWZsb3BweS1zYXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKCdsaW5rX2d1YXJkYXInIHwgdHJhbnNsYXRlKVwiIChjbGljayk9XCJndWFyZGFyQ2FycGV0YSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBFRElUT1IgREUgSFRNTCAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzSHRtbCgpICYmIG1vc3RyYXJFZGl0b3JcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gQm90w7NuIGd1YXJkYXIgSFRNTCAtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBsYWJlbD1cInt7J2xpbmtfZ3VhcmRhcicgfCB0cmFuc2xhdGUgfX1cIiAoY2xpY2spPVwiZ3VhcmRhckh0bWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtZmxvcHB5LXNhdmVcIiBjbGFzcz1cInAtYnV0dG9uLXJhaXNlZFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbEZ1bmNpb25TZXJ2aWNlLmdldENvbnRyb2xGdW5jaW9uYWxpZGFkKCdzZWd1cGxhY29yOmd1YXJkYXInKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxwLWVkaXRvciBpZD1cImVkaXRvclwiIFtzdHlsZV09XCJ7IGhlaWdodDogJzUwMHB4JyB9XCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJtb2RpZmljYXJIVE1MXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaHRtbFB1YmxpY2FjaW9uXCI+PC9wLWVkaXRvcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG5AaWYoaXNNb3N0cmFyUG9wdXBDb252ZXJ0aXIpe1xuPGFwcC1wb3B1cC1jb252ZXJ0aXItcGxhbnRpbGxhcyAocmVncmVzYXIpPVwicmVncmVzYXJQb3B1cENvbnZlcnRpcigkZXZlbnQpXCI+PC9hcHAtcG9wdXAtY29udmVydGlyLXBsYW50aWxsYXM+XG59XG5cbjwvZGl2PiJdfQ==
|