{"version":3,"sources":["C:/Users/adri9/Escritorio/admin-everpath/src/$_lazy_route_resource lazy","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.breadcrumb.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.breadcrumb.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.footer.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.menu.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.menu.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.routes.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.submenu.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.submenu.css","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.topbar.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/app.topbar.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/breadcrumb.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable-helper.directive.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable.directive.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/sortable-list.directive.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/sortable.directive.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.css","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/AlaFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/AvisoCiudadanoFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/BalizaFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/BalizaFormulario_lite.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/CoincidenciasLocalizacionContenidos.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/ConexionFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Contenido.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Encuesta.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/EspacioFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Foto.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/FotoBlob.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/HistoricoLocalizacionContenido.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Idioma.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/IdiomaCalendatio.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Informe.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Modelo3D.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/NivelFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/NodoFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Noticia.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/PerfilFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/RutaSugerida.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/SeccionFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/TipologiaContenidoFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/TipologiaSeccionFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/UrlDescargaApp.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/UsuarioFormulario.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Vertical.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/WebExterna.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/compass.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/constantes.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/dto/loginDto.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioAla.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioAla.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioBaliza.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioBaliza.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioConexion.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioConexion.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioContenido.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioContenido.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioCrearSeccion.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioCrearSeccion.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioEspacio.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioEspacio.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNivel.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNivel.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNodo.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNodo.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPerfilMovilidad.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPerfilMovilidad.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPosicionarContenido.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPosicionarContenido.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioQR.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioQR.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaContenido.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaContenido.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaSeccion.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaSeccion.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioUsuario.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioUsuario.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioWebExterna.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioWebExterna.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/balizas.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/componentes.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/contenidos.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/dashboard.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/encuestas.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/entidades.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/formularios.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/informes.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/mapas.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/mensajes.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/noticias.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/rutas.sugeridas.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/selector.espacio.module.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/authentication.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/permisos.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/role-guard.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/diagnostico/diagnostico.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/entity-manager-provider/entity-manager-provider.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/idioma/idioma.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/informes/informes.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/web-service-service/servicios-stats.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/web-service-service/servicios-web-service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/service/exportar.service.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/string-prototypes.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/DescargaApp/DescargaApp.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/DescargaApp/DescargaApp.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Login/Login.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Login/Login.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/MensajesParent.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/MensajesParent.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/Noticias.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/Noticias.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/NoticiasParent.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/NoticiasParent.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/nuevo/nueva.noticia.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/nuevo/nueva.noticia.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridas.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridas.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridasParent.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridasParent.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/nuevo/nueva.rutaSugerida.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/nuevo/nueva.rutaSugerida.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/ContenidosParent.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/ContenidosParent.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/MapasParent.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/MapasParent.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.html","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.scss","C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.ts","C:/Users/adri9/Escritorio/admin-everpath/src/environments/environment.ts","C:/Users/adri9/Escritorio/admin-everpath/src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"../../../../../src/$$_lazy_route_resource lazy recursive\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/$$_lazy_route_resource lazy\n// module id = ../../../../../src/$$_lazy_route_resource lazy recursive\n// module chunks = main","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n power_settings_new\\r\\n \\r\\n
\\r\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.breadcrumb.component.html\n// module id = ../../../../../src/app/app.breadcrumb.component.html\n// module chunks = main","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { AppComponent } from './app.component';\r\nimport { BreadcrumbService } from './breadcrumb.service';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { MenuItem } from 'primeng/primeng';\r\nimport { TranslatePipe, TranslateService, LangChangeEvent } from 'ng2-translate';\r\nimport { AuthenticationService } from './providers/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/primeng';\r\nimport { EntityManagerProvider } from './providers/entity-manager-provider/entity-manager-provider';\r\nimport { Constantes } from './domain/constantes';\r\nimport { PermisosService } from './providers/authentication/permisos.service';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './app.breadcrumb.component.html',\r\n\tproviders: [ConfirmationService]\r\n})\r\n\r\nexport class AppBreadcrumbComponent implements OnDestroy {\r\n\r\n subscription: Subscription;\r\n\r\n items: MenuItem[];\r\n \r\n espacioSeleccionado: any;\r\n permisosService: PermisosService;\r\n\r\n\r\n constructor(\r\n public breadcrumbService: BreadcrumbService,\r\n public authService: AuthenticationService,\r\n\t\t\t\t private router: Router,\r\n\t\t\t\t private translate: TranslateService,\r\n private confirmationService: ConfirmationService,\r\n private entityManager: EntityManagerProvider\r\n\t){\r\n \r\n this.subscription = breadcrumbService.itemsHandler.subscribe(response => {\r\n const that = this;\r\n const idEspacio = that.authService.getIdEspacio();\r\n this.entityManager.getEspacioById(idEspacio)\r\n .then(function(espacio){\r\n that.items = response;\r\n that.espacioSeleccionado = espacio;\r\n });\r\n /*this.entityManager.getFUNCIONALIDADESbyUSUARIO(that.espacioSeleccionado.Id)\r\n\t\t .then(function(funcionalidades){\r\n\t\t\treturn that.permisosService.getMenu(funcionalidades);\r\n\t\t });*/\r\n \r\n });\r\n \r\n }\r\n\r\n logout() {\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_LOGOUT'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.authService.logout();\r\n\t\t\t\tthis.router.navigate(['/']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\r\n\t\t\t}\r\n\t\t});\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.breadcrumb.component.ts","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.html\n// module id = ../../../../../src/app/app.component.html\n// module chunks = main","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mat-elevation-z0{-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{-webkit-box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12);box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{-webkit-box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{-webkit-box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12);box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{-webkit-box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{-webkit-box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12);box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{-webkit-box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12);box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{-webkit-box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12);box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{-webkit-box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12);box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{-webkit-box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12);box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{-webkit-box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12);box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12);box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12);box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{-webkit-box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12);box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{-webkit-box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12);box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 56px;letter-spacing:-.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 64px;letter-spacing:-.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 64px;letter-spacing:-.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 64px}.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button,.mat-stroked-button{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-card{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-card-title{font-size:24px;font-weight:400}.mat-card-content,.mat-card-header .mat-card-title,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:13px;line-height:18px}.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell{font-size:14px}.mat-calendar{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-expansion-panel-header{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.4375em 0;border-top:.84375em solid transparent}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.28125em}.mat-form-field-underline{bottom:1.25em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.54167em;top:calc(100% - 1.66667em)}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-select{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0}.mat-tooltip{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:9px;padding-bottom:9px}.mat-list-item{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-list-option{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{font-size:16px}.mat-list .mat-list-item .mat-line,.mat-nav-list .mat-list-item .mat-line,.mat-selection-list .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.mat-list .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{font-size:16px}.mat-list .mat-list-option .mat-line,.mat-nav-list .mat-list-option .mat-line,.mat-selection-list .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.mat-list .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-list[dense] .mat-list-item,.mat-nav-list[dense] .mat-list-item,.mat-selection-list[dense] .mat-list-item{font-size:12px}.mat-list[dense] .mat-list-item .mat-line,.mat-nav-list[dense] .mat-list-item .mat-line,.mat-selection-list[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.mat-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-list-option,.mat-nav-list[dense] .mat-list-option,.mat-selection-list[dense] .mat-list-option{font-size:12px}.mat-list[dense] .mat-list-option .mat-line,.mat-nav-list[dense] .mat-list-option .mat-line,.mat-selection-list[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.mat-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-subheader,.mat-nav-list[dense] .mat-subheader,.mat-selection-list[dense] .mat-subheader{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-simple-snackbar{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-ripple{overflow:hidden}@media screen and (-ms-high-contrast:active){.mat-ripple{display:none}}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;-webkit-transition:opacity,-webkit-transform 0s cubic-bezier(0,0,.2,1);transition:opacity,-webkit-transform 0s cubic-bezier(0,0,.2,1);transition:opacity,transform 0s cubic-bezier(0,0,.2,1);transition:opacity,transform 0s cubic-bezier(0,0,.2,1),-webkit-transform 0s cubic-bezier(0,0,.2,1);-webkit-transform:scale(0);transform:scale(0)}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:1000}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;-webkit-transition:opacity .4s cubic-bezier(.25,.8,.25,1);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.288)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-option{color:#fff}.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(255,255,255,.04)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#c2185b}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#b0bec5}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(255,255,255,.04)}.mat-option.mat-active{background:rgba(255,255,255,.04);color:#fff}.mat-option.mat-option-disabled{color:rgba(255,255,255,.5)}.mat-optgroup-label{color:rgba(255,255,255,.7)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(255,255,255,.5)}.mat-pseudo-checkbox{color:rgba(255,255,255,.7)}.mat-pseudo-checkbox::after{color:#303030}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#b0bec5}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#c2185b}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#686868}.mat-app-background{background-color:#303030;color:#fff}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#424242;color:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#424242}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}.mat-button,.mat-icon-button,.mat-stroked-button{background:0 0}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:rgba(194,24,91,.12)}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:rgba(176,190,197,.12)}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:rgba(244,67,54,.12)}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay,.mat-stroked-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#c2185b}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#b0bec5}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled],.mat-stroked-button.mat-accent[disabled],.mat-stroked-button.mat-primary[disabled],.mat-stroked-button.mat-warn[disabled],.mat-stroked-button[disabled][disabled]{color:rgba(255,255,255,.3)}.mat-fab,.mat-mini-fab,.mat-raised-button{color:#fff;background-color:#424242}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{color:#fff}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{color:rgba(0,0,0,.87)}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(255,255,255,.3)}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#c2185b}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#b0bec5}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{background-color:rgba(255,255,255,.12)}.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element{background-color:rgba(0,0,0,.2)}.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-button.mat-primary .mat-ripple-element{background-color:rgba(194,24,91,.1)}.mat-button.mat-accent .mat-ripple-element{background-color:rgba(176,190,197,.1)}.mat-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.1)}.mat-flat-button{color:#fff;background-color:#424242}.mat-flat-button.mat-primary{color:#fff}.mat-flat-button.mat-accent{color:rgba(0,0,0,.87)}.mat-flat-button.mat-warn{color:#fff}.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled]{color:rgba(255,255,255,.3)}.mat-flat-button.mat-primary{background-color:#c2185b}.mat-flat-button.mat-accent{background-color:#b0bec5}.mat-flat-button.mat-warn{background-color:#f44336}.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled]{background-color:rgba(255,255,255,.12)}.mat-flat-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-flat-button.mat-accent .mat-ripple-element{background-color:rgba(0,0,0,.2)}.mat-flat-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-icon-button.mat-primary .mat-ripple-element{background-color:rgba(194,24,91,.2)}.mat-icon-button.mat-accent .mat-ripple-element{background-color:rgba(176,190,197,.2)}.mat-icon-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.2)}.mat-button-toggle{color:rgba(255,255,255,.5)}.mat-button-toggle.cdk-focused .mat-button-toggle-focus-overlay{background-color:rgba(255,255,255,.12)}.mat-button-toggle-checked{background-color:#212121;color:rgba(255,255,255,.7)}.mat-button-toggle-disabled{background-color:#000;color:rgba(255,255,255,.3)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#424242}.mat-card{background:#424242;color:#fff}.mat-card-subtitle{color:rgba(255,255,255,.7)}.mat-checkbox-frame{border-color:rgba(255,255,255,.7)}.mat-checkbox-checkmark{fill:#303030}.mat-checkbox-checkmark-path{stroke:#303030!important}.mat-checkbox-mixedmark{background-color:#303030}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#c2185b}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#b0bec5}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.mat-checkbox-disabled .mat-checkbox-label{color:#686868}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(194,24,91,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(176,190,197,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-chip:not(.mat-basic-chip){background-color:#616161;color:#fff}.mat-chip:not(.mat-basic-chip) .mat-chip-remove{color:#fff;opacity:.4}.mat-chip:not(.mat-basic-chip) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-primary{background-color:#c2185b;color:#fff}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-accent{background-color:#b0bec5;color:rgba(0,0,0,.87)}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove:hover{opacity:.54}.mat-table{background:#424242}.mat-header-row,.mat-row{border-bottom-color:rgba(255,255,255,.12)}.mat-header-cell{color:rgba(255,255,255,.7)}.mat-cell{color:#fff}.mat-datepicker-content{background-color:#424242;color:#fff}.mat-calendar-arrow{border-top-color:#fff}.mat-calendar-next-button,.mat-calendar-previous-button{color:#fff}.mat-calendar-table-header{color:rgba(255,255,255,.5)}.mat-calendar-table-header-divider::after{background:rgba(255,255,255,.12)}.mat-calendar-body-label{color:rgba(255,255,255,.7)}.mat-calendar-body-cell-content{color:#fff;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(255,255,255,.5)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(255,255,255,.04)}.mat-calendar-body-selected{background-color:#c2185b;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(194,24,91,.4)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(255,255,255,.5)}.mat-calendar-body-today.mat-calendar-body-selected{-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(255,255,255,.3)}.mat-datepicker-toggle-active{color:#c2185b}.mat-dialog-container{background:#424242;color:#fff}.mat-divider{border-top-color:rgba(255,255,255,.12)}.mat-divider-vertical{border-right-color:rgba(255,255,255,.12)}.mat-expansion-panel{background:#424242;color:#fff}.mat-action-row{border-top-color:rgba(255,255,255,.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(255,255,255,.04)}.mat-expansion-panel-header-title{color:#fff}.mat-expansion-indicator::after,.mat-expansion-panel-header-description{color:rgba(255,255,255,.7)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(255,255,255,.3)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label{color:rgba(255,255,255,.7)}.mat-hint{color:rgba(255,255,255,.7)}.mat-focused .mat-form-field-label{color:#c2185b}.mat-focused .mat-form-field-label.mat-accent{color:#b0bec5}.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#b0bec5}.mat-form-field-underline{background-color:rgba(255,255,255,.7)}.mat-form-field-disabled .mat-form-field-underline{background-image:-webkit-gradient(linear,left top, right top,color-stop(0, rgba(255,255,255,.7)),color-stop(33%, rgba(255,255,255,.7)),color-stop(0, transparent));background-image:linear-gradient(to right,rgba(255,255,255,.7) 0,rgba(255,255,255,.7) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x}.mat-form-field-ripple{background-color:#c2185b}.mat-form-field-ripple.mat-accent{background-color:#b0bec5}.mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-invalid .mat-form-field-label{color:#f44336}.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker,.mat-form-field-invalid .mat-form-field-label.mat-accent{color:#f44336}.mat-form-field-invalid .mat-form-field-ripple{background-color:#f44336}.mat-error{color:#f44336}.mat-icon.mat-primary{color:#c2185b}.mat-icon.mat-accent{color:#b0bec5}.mat-icon.mat-warn{color:#f44336}.mat-input-element:disabled{color:rgba(255,255,255,.5)}.mat-input-element{caret-color:#c2185b}.mat-input-element::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element:-ms-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element::-ms-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element::placeholder{color:rgba(255,255,255,.5)}.mat-input-element::-moz-placeholder{color:rgba(255,255,255,.5)}.mat-input-element::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element:-ms-input-placeholder{color:rgba(255,255,255,.5)}.mat-accent .mat-input-element{caret-color:#b0bec5}.mat-form-field-invalid .mat-input-element,.mat-warn .mat-input-element{caret-color:#f44336}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{color:#fff}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{color:#fff}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{color:rgba(255,255,255,.7)}.mat-list-item-disabled{background-color:#000}.mat-list-option.mat-list-item-focus,.mat-list-option:hover,.mat-nav-list .mat-list-item.mat-list-item-focus,.mat-nav-list .mat-list-item:hover{background:rgba(255,255,255,.04)}.mat-menu-panel{background:#424242}.mat-menu-item{background:0 0;color:#fff}.mat-menu-item[disabled]{color:rgba(255,255,255,.5)}.mat-menu-item .mat-icon:not([color]),.mat-menu-item-submenu-trigger::after{color:#fff}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(255,255,255,.04)}.mat-paginator{background:#424242}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(255,255,255,.7)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.mat-paginator-first,.mat-paginator-last{border-top:2px solid #fff}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(255,255,255,.5)}.mat-progress-bar-background{fill:#e91e63}.mat-progress-bar-buffer{background-color:#e91e63}.mat-progress-bar-fill::after{background-color:#c2185b}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#cfd8dc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#cfd8dc}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#b0bec5}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#c2185b}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#b0bec5}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(255,255,255,.7)}.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(255,255,255,.5)}.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(255,255,255,.5)}.mat-radio-disabled .mat-radio-label-content{color:rgba(255,255,255,.5)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#c2185b}.mat-radio-button.mat-primary .mat-radio-inner-circle{background-color:#c2185b}.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element{background-color:rgba(194,24,91,.26)}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#b0bec5}.mat-radio-button.mat-accent .mat-radio-inner-circle{background-color:#b0bec5}.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element{background-color:rgba(176,190,197,.26)}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle{background-color:#f44336}.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-select-content,.mat-select-panel-done-animating{background:#424242}.mat-select-value{color:#fff}.mat-select-placeholder{color:rgba(255,255,255,.5)}.mat-select-disabled .mat-select-value{color:rgba(255,255,255,.5)}.mat-select-arrow{color:rgba(255,255,255,.7)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(255,255,255,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#c2185b}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#b0bec5}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(255,255,255,.5)}.mat-drawer-container{background-color:#303030;color:#fff}.mat-drawer{background-color:#424242;color:#fff}.mat-drawer.mat-drawer-push{background-color:#424242}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(189,189,189,.6)}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#b0bec5}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(176,190,197,.5)}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-slide-toggle .mat-ripple-element{background-color:rgba(176,190,197,.12)}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#f48fb1}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(244,143,177,.5)}.mat-slide-toggle.mat-primary:not(.mat-checked) .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-slide-toggle.mat-primary .mat-ripple-element{background-color:rgba(244,143,177,.12)}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#ef9a9a}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(239,154,154,.5)}.mat-slide-toggle.mat-warn:not(.mat-checked) .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-slide-toggle.mat-warn .mat-ripple-element{background-color:rgba(239,154,154,.12)}.mat-disabled .mat-slide-toggle-thumb{background-color:#424242}.mat-disabled .mat-slide-toggle-bar{background-color:rgba(255,255,255,.12)}.mat-slide-toggle-thumb{background-color:#bdbdbd}.mat-slide-toggle-bar{background-color:rgba(255,255,255,.5)}.mat-slider-track-background{background-color:rgba(255,255,255,.3)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#c2185b}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#b0bec5}.mat-accent .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(176,190,197,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(255,255,255,.3)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill{background-color:rgba(255,255,255,.3)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(255,255,255,.3)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(255,255,255,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(255,255,255,.3)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(255,255,255,.3);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(255,255,255,.3)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(255,255,255,.3)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(255,255,255,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(255,255,255,.04)}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(255,255,255,.5)}.mat-step-header .mat-step-icon{background-color:#c2185b;color:#fff}.mat-step-header .mat-step-icon-not-touched{background-color:rgba(255,255,255,.5);color:#fff}.mat-step-header .mat-step-label.mat-step-label-active{color:#fff}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#424242}.mat-stepper-vertical-line::before{border-left-color:rgba(255,255,255,.12)}.mat-stepper-horizontal-line{border-top-color:rgba(255,255,255,.12)}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(255,255,255,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(255,255,255,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#fff}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.5)}.mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.5)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-primary .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-primary .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-primary .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(233,30,99,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#c2185b}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-accent .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-accent .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-accent .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(207,216,220,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#b0bec5}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-warn .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-warn .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-warn .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-warn .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-background-primary .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(233,30,99,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#c2185b}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-tab-group.mat-background-accent .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-background-accent .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(207,216,220,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#b0bec5}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-warn .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-group.mat-background-warn .mat-tab-link:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-label:not(.mat-tab-disabled):focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-link:not(.mat-tab-disabled):focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-toolbar{background:#212121;color:#fff}.mat-toolbar.mat-primary{background:#c2185b;color:#fff}.mat-toolbar.mat-accent{background:#b0bec5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-snack-bar-container{background:#fafafa;color:rgba(0,0,0,.87)}.mat-simple-snackbar-action{color:inherit}.example-margin {\\n margin: 0 10px; }spinner circle {\\n fill: transparent;\\n -webkit-transform-origin: center;\\n transform-origin: center;\\n -webkit-transition: stroke-dashoffset 225ms linear;\\n transition: stroke-dashoffset 225ms linear; }.mat-progress-spinner {\\n display: block;\\n position: relative; }.mat-progress-spinner circle, .mat-spinner circle {\\n stroke: #673ab7; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.scss\n// module id = ../../../../../src/app/app.component.scss\n// module chunks = main","import { Component, OnDestroy, Renderer, OnInit, NgZone } from '@angular/core';\r\n\r\nimport { NgIf } from '@angular/common';\r\n\r\nimport { ServiciosWebServiceProvider } from './providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from './providers/authentication/authentication.service';\r\nimport { LoginDTO } from './domain/dto/loginDto';\r\n\r\nimport { Message } from 'primeng/primeng';\r\n\r\n// Necesario para mostrar mensajes con esta plantilla\r\n\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { Router, ActivatedRoute, NavigationStart } from '@angular/router';\r\n\r\n// Cargamos el import del servicio de traducción de la librería\r\nimport {TranslateService} from 'ng2-translate';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { Constantes } from './domain/constantes';\r\n\r\nimport {Title} from \"@angular/platform-browser\";\r\n\r\n// Por default dejamos el inglés\r\nconst defaultLanguage = 'es';\r\n// Y como adicional el español\r\nconst additionalLanguages = ['es', 'en', 'ca', 'gl'];\r\n// Combinamos las traducciones disponibles al default.\r\nconst languages: string[] = [defaultLanguage].concat(additionalLanguages);\r\n\r\n@Component({\r\n\tselector: 'app-root',\r\n\ttemplateUrl: './app.component.html',\r\n\tstyleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnDestroy, OnInit {\r\n\r\n\ttitle = 'Everpaths';\r\n\r\n\tmenuClick: boolean;\r\n\r\n\tmenuButtonClick: boolean;\r\n\r\n\ttopbarMenuButtonClick: boolean;\r\n\r\n\ttopbarMenuClick: boolean;\r\n\r\n\ttopbarMenuActive: boolean;\r\n\r\n\tactiveTopbarItem: Element;\r\n\r\n\tlayoutStatic = true;\r\n\r\n\tsidebarActive: boolean;\r\n\r\n\tmobileMenuActive: boolean;\r\n\r\n\tdarkMenu: boolean;\r\n\r\n\tisRTL: boolean;\r\n\r\n\trippleInitListener: any;\r\n\r\n\trippleMouseDownListener: any;\r\n\r\n\tlogado: boolean;\r\n\r\n\tmodel: LoginDTO;\r\n\r\n\tmsgs: any[];\r\n\r\n\tloading: boolean;\r\n\r\n\tcolor: string;\r\n\tmode: string;\r\n\r\n\tmostrarMenu: boolean = false;\r\n\tmenuPlegado: boolean = false;\r\n\ttimerAuth: any = null;\r\n\r\n\tformLogin: FormGroup;\r\n\r\n\tlink: HTMLLinkElement = document.querySelector('link[rel=\"icon\"]');\r\n\r\n\tconstructor(\r\n\t\tpublic renderer: Renderer,\r\n\t\tprivate translate: TranslateService,\r\n\t\tpublic zone: NgZone,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate router: Router,\r\n\t\tprivate titleService: Title\r\n\t\t) {\r\n\t\tconsole.log('*** appComponent ***');\r\n\t\tthis.loading = false;\r\n\t\tthis.color = 'primary';\r\n\t\tthis.mode = 'indeterminate';\r\n\t\tthis.model = new LoginDTO();\r\n\r\n\t\trouter.events.subscribe(event => {\r\n\t\t\tif (event instanceof NavigationStart) {\r\n\t\t\t\tconsole.log('NavigationStart');\r\n\t\t\t\tconst estoy = router.url;\r\n\t\t\t\tconst voy = event.url;\r\n\r\n\t\t\t\tconsole.log(' - Estoy en: ' + estoy);\r\n\t\t\t\tconsole.log(' - Voy a: ' + voy);\r\n\r\n\t\t\t\tthis.mostrarMenu = !this.ocultarMenus();\r\n\r\n\t\t\t\tif (voy === '/contenidos' && estoy.indexOf('/contenidos/editar;id=') === -1){\r\n\t\t\t\t\tthis.authService.resetFiltroContenido();\r\n\t\t\t\t}\r\n\t\t\t\tthis.authService.NewToken();\r\n\t\t\t}\r\n\t\t\t// NavigationEnd\r\n\t\t\t// NavigationCancel\r\n\t\t\t// NavigationError\r\n\t\t\t// RoutesRecognized\r\n\t\t});\r\n\r\n\t\tif (this.timerAuth) {\r\n\t\t\tthis.timerAuth.cancel();\r\n\t\t}\r\n\t\tthis.timerAuth = setInterval(() => {\r\n\t\t\t\r\n\t\t\tthis.authService.redirigirNoLogado();\r\n\t\t\t\r\n\t \t}, 15000);\r\n\r\n\t}\r\n\r\n\tocultarMenus(){\r\n\t\tconst logado = this.authService.isAuthenticated();\r\n\t\treturn !logado;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\tthis.mostrarMenu = !this.ocultarMenus();\r\n\t\tthis.titleService.setTitle(Constantes.TITLE);\r\n\t\tthis.changeIcon();\r\n\r\n\t\tthis.formLogin = new FormGroup({\r\n\t\t\t'entidad': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t]),\r\n\t\t\t'user': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t]),\r\n\t\t\t'pass': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t])\r\n\t\t});\r\n\r\n // Asignamos el lenguaje predefinido y los disponibles\r\n this.translate.setDefaultLang(defaultLanguage);\r\n this.translate.addLangs(additionalLanguages);\r\n // Nos basamos en el lenguaje del navegador para cambiar el lenguaje\r\n let initLang = this.translate.getBrowserLang();\r\n if (languages.indexOf(initLang) === -1) {\r\n initLang = defaultLanguage;\r\n }\r\n // En base a lo anterior asignamos el lenguaje a usar\r\n this.translate.use(initLang);\r\n\r\n\t\tthis.zone.runOutsideAngular(() => { this.bindRipple(); });\r\n\t}\r\n\r\n\tchangeIcon() {\r\n this.link.href = Constantes.ICON;\r\n };\r\n\r\n\tbindRipple() {\r\n\t\tthis.rippleInitListener = this.init.bind(this);\r\n\t\tdocument.addEventListener('DOMContentLoaded', this.rippleInitListener);\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.rippleMouseDownListener = this.rippleMouseDown.bind(this);\r\n\t\tdocument.addEventListener('mousedown', this.rippleMouseDownListener, false);\r\n\t}\r\n\r\n\trippleMouseDown(e) {\r\n\t\tfor (let target = e.target; target && target !== this; target = target['parentNode']) {\r\n\t\t\tif (!this.isVisible(target)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// Element.matches() -> https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\r\n\t\t\tif (this.selectorMatches(target, '.ripplelink, .ui-button')) {\r\n\t\t\t\tconst element = target;\r\n\t\t\t\tthis.rippleEffect(element, e);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tselectorMatches(el, selector) {\r\n\t\tconst p = Element.prototype;\r\n\t\tconst f = p['matches'] || p['webkitMatchesSelector'] || p['mozMatchesSelector'] || p['msMatchesSelector'] || function (s) {\r\n\t\t\treturn [].indexOf.call(document.querySelectorAll(s), this) !== -1;\r\n\t\t};\r\n\t\treturn f.call(el, selector);\r\n\t}\r\n\r\n\tisVisible(el) {\r\n\t\treturn !!(el.offsetWidth || el.offsetHeight);\r\n\t}\r\n\r\n\trippleEffect(element, e) {\r\n\t\tif (element.querySelector('.ink') === null) {\r\n\t\t\tconst inkEl = document.createElement('span');\r\n\t\t\tthis.addClass(inkEl, 'ink');\r\n\r\n\t\t\tif (this.hasClass(element, 'ripplelink')) {\r\n\t\t\t\telement.querySelector('span').insertAdjacentHTML('afterend', '');\r\n\t\t\t} else {\r\n\t\t\t\telement.appendChild(inkEl);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst ink = element.querySelector('.ink');\r\n\t\tthis.removeClass(ink, 'ripple-animate');\r\n\r\n\t\tif (!ink.offsetHeight && !ink.offsetWidth) {\r\n\t\t\tconst d = Math.max(element.offsetWidth, element.offsetHeight);\r\n\t\t\tink.style.height = d + 'px';\r\n\t\t\tink.style.width = d + 'px';\r\n\t\t}\r\n\r\n\t\tconst x = e.pageX - this.getOffset(element).left - (ink.offsetWidth / 2);\r\n\t\tconst y = e.pageY - this.getOffset(element).top - (ink.offsetHeight / 2);\r\n\r\n\t\tink.style.top = y + 'px';\r\n\t\tink.style.left = x + 'px';\r\n\t\tink.style.pointerEvents = 'none';\r\n\t\tthis.addClass(ink, 'ripple-animate');\r\n\t}\r\n\thasClass(element, className) {\r\n\t\tif (element.classList) {\r\n\t\t\treturn element.classList.contains(className);\r\n\t\t} else {\r\n\t\t\treturn new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\r\n\t\t}\r\n\t}\r\n\r\n\taddClass(element, className) {\r\n\t\tif (element.classList) {\r\n\t\t\telement.classList.add(className);\r\n\t\t} else {\r\n\t\t\telement.className += ' ' + className;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveClass(element, className) {\r\n\t\tif (element.classList) {\r\n\t\t\telement.classList.remove(className);\r\n\t\t} else {\r\n\t\t\telement.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n\t\t}\r\n\t}\r\n\r\n\tgetOffset(el) {\r\n\t\tconst rect = el.getBoundingClientRect();\r\n\r\n\t\treturn {\r\n\t\t\ttop: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\r\n\t\t\tleft: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0),\r\n\t\t};\r\n\t}\r\n\r\n\tunbindRipple() {\r\n\t\tif (this.rippleInitListener) {\r\n\t\t\tdocument.removeEventListener('DOMContentLoaded', this.rippleInitListener);\r\n\t\t}\r\n\t\tif (this.rippleMouseDownListener) {\r\n\t\t\tdocument.removeEventListener('mousedown', this.rippleMouseDownListener);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.unbindRipple();\r\n\t}\r\n\r\n\tonWrapperClick() {\r\n\t\tif (!this.menuClick && !this.menuButtonClick) {\r\n\t\t\tthis.mobileMenuActive = false;\r\n\t\t}\r\n\r\n\t\tif (!this.topbarMenuClick && !this.topbarMenuButtonClick) {\r\n\t\t\tthis.topbarMenuActive = false;\r\n\t\t\tthis.activeTopbarItem = null;\r\n\t\t}\r\n\r\n\t\tthis.menuClick = false;\r\n\t\tthis.menuButtonClick = false;\r\n\t\tthis.topbarMenuClick = false;\r\n\t\tthis.topbarMenuButtonClick = false;\r\n\t}\r\n\r\n\tonMenuButtonClick(event: Event) {\r\n\t\tthis.menuButtonClick = true;\r\n\r\n\t\tif (this.isMobile()) {\r\n\t\t\tthis.mobileMenuActive = !this.mobileMenuActive;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonTopbarMobileMenuButtonClick(event: Event) {\r\n\t\tthis.topbarMenuButtonClick = true;\r\n\t\tthis.topbarMenuActive = !this.topbarMenuActive;\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonTopbarRootItemClick(event: Event, item: Element) {\r\n\t\tif (this.activeTopbarItem === item) {\r\n\t\t\tthis.activeTopbarItem = null;\r\n\t\t} else {\r\n\t\t\tthis.activeTopbarItem = item;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonTopbarMenuClick(event: Event) {\r\n\t\tthis.topbarMenuClick = true;\r\n\t}\r\n\r\n\tonSidebarClick(event: Event) {\r\n\t\tthis.menuClick = true;\r\n\t}\r\n\r\n\tonToggleMenuClick(event: Event) {\r\n\t\tthis.layoutStatic = !this.layoutStatic;\r\n\t}\r\n\r\n\tisMobile() {\r\n\t\treturn window.innerWidth <= 1024;\r\n\t}\r\n\r\n\t/* AVISOS */\r\n\thideAlert(){\r\n\t\tthis.msgs = [];\r\n\t}\r\n\r\n\tshowAlert(severity: string, mensaje: string){\r\n\r\n\t\tif (severity === 'error') {\r\n\t\t\tthis.showError(mensaje);\r\n\t\t}\r\n\t\telse if (severity === 'info') {\r\n\t\t\tthis.showInfo(mensaje);\r\n\t\t}\r\n\t\telse if (severity === 'warn') {\r\n\t\t\tthis.showWarn('mensaje', mensaje);\r\n\t\t}\r\n\t\telse if (severity === 'success') {\r\n\t\t\tthis.showSuccess(mensaje);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.showError(mensaje);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tshowError(mensaje) {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({ severity: 'error', detail: mensaje });\r\n\t}\r\n\r\n\tshowInfo(mensaje) {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({ severity: 'info', detail: mensaje });\r\n\t}\r\n\r\n\tshowSuccess(mensaje) {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({ severity: 'success', detail: mensaje });\r\n\t}\r\n\r\n\tshowWarn(operacion?, mensaje = '') {\r\n\t\tthis.msgs = [];\r\n\t\tif (operacion === 'guardar') {\r\n\t\t\tthis.msgs.push({severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR')});\r\n\t\t}\r\n\t\telse if(operacion === 'guardarConContenidos'){\r\n\t\t\tthis.msgs.push({severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR_CONTENIDOS')});\r\n\t\t}\r\n\t\telse if (operacion === 'eliminar'){\r\n\t\t\tthis.msgs.push({severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR')});\r\n\t\t}\r\n\t\telse if (operacion === 'mensaje'){\r\n\t\t\tthis.msgs.push({severity: 'warn', detail: mensaje});\r\n\t\t}\r\n\t\t// this.msgs.push({severity: 'warn', detail: mensaje});\r\n\t}\r\n\r\n\t/* MENU LATERAL */\r\n\tocultarMenuLateral(){\r\n\t\tconst appMenu: HTMLElement = document.getElementsByTagName('app-menu')[0];\r\n\t\tif (appMenu) {\r\n\t\t\tappMenu.hidden = true;\r\n\t\t}\r\n\t\tconst menu: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper')[0].getElementsByClassName('layout-main') as HTMLCollectionOf;\r\n\t\tmenu[0].style.marginLeft = '0px';\r\n\t\t/*\r\n\t\tconst topBar: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper-static')[0]\r\n\t\t.getElementsByClassName('layout-main')[0]\r\n\t\t.getElementsByClassName('layout-topbar') as HTMLCollectionOf;\r\n\t\ttopBar[0].style.width = '100%'; // calc(100% - 240px)\r\n\t\t*/\r\n\t}\r\n\r\n\tmostrarMenuLateral(){\r\n\t\tconst appMenu: HTMLElement = document.getElementsByTagName('app-menu')[0];\r\n\t\tif (appMenu) {\r\n\t\t\tappMenu.hidden = false;\r\n\t\t}\r\n\r\n\t\tconst appMenuLayout: HTMLCollectionOf = document.getElementsByTagName('app-menu')[0].getElementsByClassName('layout-sidebar') as HTMLCollectionOf;\r\n\t\tif (appMenuLayout) {\r\n\t\t\tappMenuLayout[0].style.marginLeft = '0px';\r\n\t\t}\r\n\r\n\t\tconst menu: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper')[0].getElementsByClassName('layout-main') as HTMLCollectionOf;\r\n\t\tmenu[0].style.marginLeft = '240px';\r\n\t\t/*\r\n\t\tconst topBar: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper-static')[0]\r\n\t\t\t.getElementsByClassName('layout-main')[0]\r\n\t\t\t.getElementsByClassName('layout-topbar') as HTMLCollectionOf;\r\n\t\ttopBar[0].style.width = 'calc(100% - 240px)';\r\n\t\t*/\r\n\t\tthis.menuPlegado = false;\r\n\t}\r\n\r\n\r\n\tplegarMenuLateral(){\r\n\r\n\t\tif (this.menuPlegado) {\r\n\t\t\tthis.desplegarMenuLateral();\r\n\t\t}\r\n\t\telse{\r\n\r\n\t\t\tconst appMenuLayout: HTMLCollectionOf = document.getElementsByTagName('app-menu')[0].getElementsByClassName('layout-sidebar') as HTMLCollectionOf;\r\n\t\t\tif (appMenuLayout) {\r\n\t\t\t\tappMenuLayout[0].style.marginLeft = '-170px';\r\n\t\t\t}\r\n\r\n\t\t\tconst menu: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper')[0].getElementsByClassName('layout-main') as HTMLCollectionOf;\r\n\t\t\tmenu[0].style.marginLeft = '70px';\r\n\t\t\t/*\r\n\t\t\tconst topBar: HTMLCollectionOf = document.getElementsByClassName('layout-wrapper-static')[0]\r\n\t\t\t.getElementsByClassName('layout-main')[0]\r\n\t\t\t.getElementsByClassName('layout-topbar') as HTMLCollectionOf;\r\n\t\t\ttopBar[0].style.width = 'calc(100% - 70px)';\r\n\t\t\t*/\r\n\t\t\tthis.menuPlegado = true;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdesplegarMenuLateral(){\r\n\t\tthis.mostrarMenuLateral();\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.component.ts","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n template: `\r\n \r\n `\r\n})\r\nexport class AppFooterComponent {\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.footer.component.ts","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\r\\n\\t
\\r\\n \\r\\n \\\"logo-colored\\\"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
    \\r\\n\\t
    \\r\\n\\r\\n
    \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.menu.component.html\n// module id = ../../../../../src/app/app.menu.component.html\n// module chunks = main","import { Component, Input, OnInit, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { MenuItem, ScrollPanel } from 'primeng/primeng';\r\nimport { AppComponent } from './app.component';\r\nimport { AuthenticationService } from './providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from './providers/entity-manager-provider/entity-manager-provider';\r\nimport { PermisosService } from './providers/authentication/permisos.service';\r\n\r\n@Component({\r\n\tselector: 'app-menu',\r\n\ttemplateUrl: './app.menu.component.html'\r\n})\r\nexport class AppMenuComponent implements OnInit, AfterViewInit {\r\n\r\n\t@Input() reset: boolean;\r\n\r\n\tmodel: any[];\r\n\tplegado = false;\r\n\r\n\t@ViewChild('scrollPanel') layoutMenuScrollerViewChild: ScrollPanel;\r\n\r\n\tconstructor(\r\n\t\tpublic app: AppComponent,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic entityManager: EntityManagerProvider,\r\n\t\tpublic permisosService: PermisosService\r\n\t) {\r\n\t\t\r\n\t\tthis.permisosService.currentMenu\r\n\t\t.subscribe(menu => {\r\n\t\t\tthis.model = menu;\r\n\t\t});\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tsetTimeout(() => { this.layoutMenuScrollerViewChild.moveBar(); }, 100);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\tthis.permisosService.construirMenu();\r\n\t}\r\n\r\n\r\n\tchangeTheme(theme) {\r\n\t\tconst themeLink: HTMLLinkElement = document.getElementById('theme-css');\r\n\t\tthemeLink.href = 'assets/theme/theme-' + theme + '.css';\r\n\t}\r\n\r\n\tchangeLayout(theme) {\r\n\t\tconst layoutLink: HTMLLinkElement = document.getElementById('layout-css');\r\n\t\tlayoutLink.href = 'assets/layout/css/layout-' + theme + '.css';\r\n\t}\r\n\r\n\thandleClick($event){\r\n\r\n\t\tthis.app.plegarMenuLateral();\r\n\r\n\t}\r\n}\r\n\r\n@Component({\r\n\t/* tslint:disable:component-selector */\r\n\tselector: '[app-submenu]',\r\n\ttemplateUrl: './app.submenu.component.html',\r\n\tstyleUrls: ['./app.submenu.css']\r\n})\r\n\r\nexport class AppSubMenuComponent {\r\n\r\n\t@Input() item: MenuItem;\r\n\r\n\t@Input() root: boolean;\r\n\r\n\t@Input() visible: boolean;\r\n\r\n\t_reset: boolean;\r\n\r\n\tactiveIndex: number;\r\n\r\n\thover: boolean;\r\n\r\n\tconstructor(public app: AppComponent, public router: Router, public location: Location, public appMenu: AppMenuComponent,\r\n\t\tpublic authService: AuthenticationService) { }\r\n\r\n\titemClick(event: Event, item: MenuItem, index: number)  {\r\n\r\n\t\tthis.authService.resetFiltroContenido();\r\n\r\n\t\t// avoid processing disabled items\r\n\t\tif (item.disabled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// activate current item and deactivate active sibling if any\r\n\t\tif (item.routerLink || item.items || item.command || item.url) {\r\n\t\t\tthis.activeIndex = (this.activeIndex === index) ? null : index;\r\n\t\t}\r\n\r\n\t\t// execute command\r\n\t\tif (item.command) {\r\n\t\t\titem.command({ originalEvent: event, item: item });\r\n\t\t}\r\n\r\n\t\t// prevent hash change\r\n\t\tif (item.items || (!item.url && !item.routerLink)) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.appMenu.layoutMenuScrollerViewChild.moveBar();\r\n\t\t\t}, 450);\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\t// hide menu\r\n\t\tif (!item.items) {\r\n\t\t\tif (this.app.isMobile()) {\r\n\t\t\t\tthis.app.sidebarActive = false;\r\n\t\t\t\tthis.app.mobileMenuActive = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisActive(index: number): boolean {\r\n\t\treturn this.activeIndex === index;\r\n\t}\r\n\r\n\t@Input() get reset(): boolean {\r\n\t\treturn this._reset;\r\n\t}\r\n\r\n\tset reset(val: boolean) {\r\n\t\tthis._reset = val;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.menu.component.ts","// Extension de tipos\r\nimport './string-prototypes';\r\n\r\n// Angular\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Http, HttpModule } from '@angular/http';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport {AccordionModule} from 'primeng/accordion';\r\nimport 'rxjs/add/operator/toPromise';\r\n\r\n// import Canvg from 'canvg';\r\n\r\n// PrimeNG Modules\r\nimport {\r\n\tDialogModule,\r\n\tDropdownModule,\r\n\tGrowlModule,\r\n\tMessagesModule,\r\n\tScrollPanelModule,\r\n\tSlideMenuModule,\r\n\tConfirmDialogModule,\r\n\tInputMaskModule,\r\n\tInputSwitchModule,\r\n\tInputTextModule,\r\n\tInputTextareaModule,\r\n\tSpinnerModule,\r\n\tFileUploadModule\r\n} from 'primeng/primeng';\r\n\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\n\r\n// APP-COMPONENTS\r\nimport { AppComponent } from './app.component';\r\nimport { AppMenuComponent, AppSubMenuComponent } from './app.menu.component';\r\nimport { AppBreadcrumbComponent } from './app.breadcrumb.component';\r\nimport { AppTopBarComponent } from './app.topbar.component';\r\nimport { AppFooterComponent } from './app.footer.component';\r\n\r\nimport { AppRoutes } from './app.routes';\r\n\r\n// Modulos\r\nimport { ContenidosModule } from './modules/contenidos.module';\r\nimport { DashboardModule } from './modules/dashboard.module';\r\nimport { EntidadesModule } from './modules/entidades.module';\r\nimport { MapasModule } from './modules/mapas.module';\r\nimport { MensajesModule } from './modules/mensajes.module';\r\nimport { NoticiasModule } from './modules/noticias.module';\r\nimport { RutasSugeridasModule } from './modules/rutas.sugeridas.module';\r\nimport { SelectorEspacioModule } from './modules/selector.espacio.module';\r\nimport { BalizasModule } from './modules/balizas.module';\r\nimport { InformesModule } from './modules/informes.module';\r\nimport { EncuestasModule } from './modules/encuestas.module';\r\n// Componentes\r\nimport { LoginComponent } from './views/Login/Login.component';\r\nimport { BreezeTestComponent } from './views/BreezeTest/BreezeTest.component';\r\nimport { DescargaAppComponent } from './views/DescargaApp/DescargaApp.component';\r\n// Servicios\r\nimport { EntityManagerProvider } from './providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from './providers/web-service-service/servicios-web-service';\r\nimport { ServiciosStatsProvider } from './providers/web-service-service/servicios-stats';\r\nimport { IdiomaService } from './providers/idioma/idioma.service';\r\nimport { DiagnosticoService } from './providers/diagnostico/diagnostico.service';\r\nimport { PermisosService } from\t'./providers/authentication/permisos.service';\r\nimport { InformesService } from './providers/informes/informes.service'\r\n\r\nimport { BreezeBridgeAngularModule } from 'breeze-bridge-angular';\r\nimport { BreadcrumbService } from './breadcrumb.service';\r\n\r\nimport { JwtModule } from '@auth0/angular-jwt';\r\nimport { AuthenticationService } from './providers/authentication/authentication.service';\r\nimport { RoleGuardService } from './providers/authentication/role-guard.service';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n// ALASQL\r\nimport 'rxjs/add/operator/toPromise';\r\nimport * as alasql from 'alasql';\r\n\r\n\r\nexport function getToken() {\r\n\treturn localStorage.getItem('token');\r\n}\r\nexport function getEntidad() {\r\n\treturn localStorage.getItem('Entidad');\r\n}\r\n@NgModule({\r\n\texports: [\r\n\t\tTranslateModule\r\n\t],\r\n\timports: [\r\n\t\t// ComponentesModule,\r\n\t\tContenidosModule.forRoot(),\r\n\t\tDashboardModule.forRoot(),\r\n\t\tEntidadesModule.forRoot(),\r\n\t\tBalizasModule.forRoot(),\r\n\t\tMapasModule,\r\n\t\tMensajesModule.forRoot(),\r\n\t\tNoticiasModule.forRoot(),\r\n\t\tRutasSugeridasModule.forRoot(),\r\n\t\tSelectorEspacioModule.forRoot(),\r\n\t\tInformesModule.forRoot(),\r\n\t\tEncuestasModule.forRoot(),\r\n\t\tAppRoutes,\r\n\r\n\t\tBreezeBridgeAngularModule,\r\n\t\tBrowserModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDropdownModule,\r\n\t\tFormsModule,\r\n\t\tHttpClientModule,\r\n\t\tHttpModule,\r\n\t\tInputMaskModule,\r\n\t\tInputSwitchModule,\r\n\t\tInputTextModule,\r\n\t\tInputTextareaModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFileUploadModule,\r\n\r\n\t\tProgressSpinnerModule,\r\n\t\tSpinnerModule,\r\n\r\n\t\tBrowserAnimationsModule,\r\n\t\tAccordionModule,\r\n\t\tDialogModule,\r\n\t\tGrowlModule,\r\n\t\tMessagesModule,\r\n\t\tScrollPanelModule,\r\n\t\tSlideMenuModule,\r\n\t\tJwtModule.forRoot({\r\n\t\t\tconfig: {\r\n\t\t\t\ttokenGetter: getToken\r\n\t\t\t}\r\n\t\t}),\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n\t\t})\r\n\r\n\r\n\t],\r\n\tdeclarations: [\r\n\t\tAppComponent,\r\n\t\tAppMenuComponent,\r\n\t\tAppSubMenuComponent,\r\n\t\tAppBreadcrumbComponent,\r\n\t\tAppTopBarComponent,\r\n\t\tAppFooterComponent,\r\n\t\tBreezeTestComponent,\r\n\t\tLoginComponent,\r\n\t\tDescargaAppComponent\r\n\t],\r\n\tproviders: [\r\n\t\tAppComponent,\r\n\t\t{\r\n\t\t\tprovide: LocationStrategy,\r\n\t\t\tuseClass:\r\n\t\t\t\tHashLocationStrategy\r\n\t\t},\r\n\t\tBreadcrumbService,\r\n\t\tServiciosWebServiceProvider,\r\n\t\tServiciosStatsProvider,\r\n\t\tEntityManagerProvider,\r\n\t\tDiagnosticoService,\r\n\t\tIdiomaService,\r\n\t\tAuthenticationService,\r\n\t\tRoleGuardService,\r\n\t\tPermisosService,\r\n\t\tInformesService\r\n\t],\r\n\tbootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.module.ts","import { Routes, RouterModule } from '@angular/router';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { BreezeTestComponent } from './views/BreezeTest/BreezeTest.component';\r\n\r\nimport { LoginComponent } from './views/Login/Login.component';\r\nimport { RoleGuardService as RoleGuard } from './providers/authentication/role-guard.service';\r\nimport { Permisos } from './providers/authentication/permisos.service';\r\nimport { DescargaAppComponent } from './views/DescargaApp/DescargaApp.component';\r\nimport { AppHistoricoChartComponent } from './componentes/HistoricoChart/historicoChart.component';\r\n\r\nexport const routes: Routes = [\r\n\r\n\t// { path: '', component: LoginComponent },\r\n\t/*{ path: 'print',\r\n\t\toutlet: 'print',\r\n\t\tcomponent: PrintLayoutComponent,\r\n\t\tchildren: [\r\n\t\t{ path: 'informe', component: AppImprimirChartComponent}\r\n\t]},*/\r\n\t{ path: 'Login', component: LoginComponent, pathMatch: 'full' },\r\n\t{ path: 'DescargaApp', component: DescargaAppComponent },\r\n\t{\r\n\t\tpath: 'Conexion',\r\n\t\tcomponent: BreezeTestComponent,\r\n\t\tcanActivate: [RoleGuard],\r\n\t\tdata: {\r\n\t\t\t expectedRole: [Permisos.Test_menu]\r\n\t\t},\r\n\t},\r\n\r\n\t{ path: '', pathMatch: 'full', redirectTo: 'Login'},\r\n\t{ path: '**', pathMatch: 'full', redirectTo: 'Login' },\r\n];\r\n\r\nexport const AppRoutes: ModuleWithProviders = RouterModule.forRoot(routes);\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.routes.ts","module.exports = \"\\r\\n
  • \\r\\n \\r\\n \\r\\n {{child.label}}\\r\\n keyboard_arrow_down\\r\\n {{child.badge}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{child.label}}\\r\\n keyboard_arrow_down\\r\\n {{child.badge}}\\r\\n \\r\\n \\r\\n
      \\r\\n
    • \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.submenu.component.html\n// module id = ../../../../../src/app/app.submenu.component.html\n// module chunks = main","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\r\\n\\r\\n.layout-wrapper .layout-sidebar .layout-menu>li.active-menuitem>ul {\\r\\n background-color: #535F6A;\\r\\n border-bottom-left-radius: 6px;\\r\\n border-bottom-right-radius: 6px;\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.layout-wrapper .layout-sidebar .layout-menu li ul {\\r\\n height: 0px;\\r\\n overflow: hidden;\\r\\n list-style-type: none;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n}\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.submenu.css\n// module id = ../../../../../src/app/app.submenu.css\n// module chunks = main","module.exports = \"\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\\"top-bar-logo\\\"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n
        \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.topbar.component.html\n// module id = ../../../../../src/app/app.topbar.component.html\n// module chunks = main","import {Component, OnInit} from '@angular/core';\r\nimport {AppComponent} from './app.component';\r\nimport { ConfirmationService } from 'primeng/primeng';\r\nimport { Constantes } from './domain/constantes';\r\nimport { AuthenticationService } from './providers/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport {getEntidad } from './app.module'\r\nimport { isString } from 'util';\r\nimport { ServiciosWebServiceProvider } from './providers/web-service-service/servicios-web-service';\r\n@Component({\r\n selector: 'app-topbar',\r\n templateUrl: './app.topbar.component.html',\r\n\tproviders: [ConfirmationService]\r\n})\r\nexport class AppTopBarComponent {\r\n\r\n\tuserName;\r\n\tlogo: string = Constantes.LOGO_TOPBAR;\r\n\tcolorTopBar: string = Constantes.COLOR_TOPBAR;\r\n\r\n constructor(\r\n\t\tpublic app: AppComponent,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate router: Router,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate sws: ServiciosWebServiceProvider\r\n\t){\r\n\r\n\t\tthis.userName = this.authService.getLastUser();\r\n\r\n\t}\r\n\r\n\r\n\tlogout() {\r\n\t\tconsole.log('***** LOGOUT ******');\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_LOGOUT'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.authService.logout();\r\n\t\t\t\tthis.router.navigate(['/']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsettings(){\r\n\t\tthis.router.navigate(['/entidades']);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst entidad = getEntidad();\r\n\t\tconst that = this;\r\n\t\tconsole.log(entidad);\r\n\t\t// TODO: TENEMOS QUE COMPROBAR SI EXISTE UNA CARPETA CON EL NOMBRE ENTIDAD DENTRO DE IMAGES, SI NO EXISTE DEBEREMOS IGUALAR LA VARIABLE ENTIDAD A CADENA VACIA\r\n\t\tthis.sws.getLogoPath(entidad).toPromise()\r\n\t\t.then(function (data) {\r\n\t\t\tconsole.log(data);\r\n\t\t\tthat.logo = data;\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\tconsole.log(\"ERROR:\" + error);\r\n\t\t});\r\n\t\t// this.logo = \"assets/itsoft/images/\"+entidad+\"ITSN.png\"\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/app.topbar.component.ts","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { MenuItem } from 'primeng/primeng';\r\n\r\n@Injectable()\r\nexport class BreadcrumbService {\r\n\r\n private itemsSource = new Subject();\r\n\r\n itemsHandler = this.itemsSource.asObservable();\r\n\r\n setItems(items: MenuItem[]) {\r\n this.itemsSource.next(items);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/breadcrumb.service.ts","module.exports = \"\\r\\n

      Descripción Informe Coincidencias de Ubicación

      \\r\\n
      \\r\\n
      \\r\\n

      Coincidencias de Ubicación 

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | number:'2.1-3'}} {{this.translate.instant('Informes.minutos')}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date: this.translate.instant('General.fermatofechapipe')}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date: this.translate.instant('General.fermatofechapipe') }}\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.html\n// module id = ../../../../../src/app/componentes/CoincidenciasChart/coincidenciasChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.scss\n// module id = ../../../../../src/app/componentes/CoincidenciasChart/coincidenciasChart.component.scss\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\nimport { Message } from 'primeng/primeng';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\n\r\n@Component({\r\n selector: 'app-coincidenciaschart',\r\n\ttemplateUrl: './coincidenciasChart.component.html',\r\n\tstyleUrls: ['./coincidenciasChart.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class AppCoincidenciasChartComponent implements OnInit, OnDestroy {\r\n\r\n\t@Input() coincidenciasList: EspacioFormulario = new EspacioFormulario();\r\n\t@ViewChild('dt') dt;\r\n\r\n\tcoincidenciasFiltrados: EspacioFormulario;\r\n spinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n /* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n public tipo_informe_seleccionado: any[];\r\n public tipologias_contenido_seleccionadas: any[];\r\n\tpublic contenidos_seleccionados: any[];\r\n/*\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\tpublic opcion_desde_selected2;\r\n\tpublic opcion_hasta_selected2;\r\n\tpublic op2_desde;\r\n\tpublic op2_hasta;\r\n\t*/\r\n public cols4;\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tinicio_Fecha_Desde_Filter: any;\r\n\tinicio_Fecha_Hasta_Filter: any;\r\n\tfin_Fecha_Desde_Filter: any;\r\n\tfin_Fecha_Hasta_Filter: any;\r\n\tstartHourDefault: any;\r\n\tfinHourDefault: any;\r\n\r\n\tpublic positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\r\n\r\n\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** InformesComponent ***');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\t// Tabla Historicos\r\n\t\tthis.cols4 = [\r\n\t\t\t{ field: 'Titulo_1', header: this.translate.instant('Coincidencias.Titulo_1'), visible: true, width: '20%' },\r\n\t\t\t{ field: 'Titulo_2', header: this.translate.instant('Coincidencias.Titulo_2'), visible: true, width: '20%' },\r\n\t\t\t{ field: 'tiempo_coincidencia', header: this.translate.instant('Coincidencias.Duracion'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'desde_max', header: this.translate.instant('Coincidencias.FechaDesde'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'hasta_min', header: this.translate.instant('Coincidencias.FechaHasta'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('Coincidencias.Seccion'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'Localizacion', header: '', visible: false, width: '0%' }\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n }\r\n\r\n\tngOnInit() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.coincidenciasFiltrados = this.coincidenciasList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tngOnChanges(change) {\r\n\t\tthis.coincidenciasFiltrados = this.coincidenciasList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\r\n\t\tconst that = this;\r\n\t\tthis.coincidenciasFiltrados = this.coincidenciasList;\r\n\r\n\t\tif(this.dt.filters){\r\n\t\t\tfor (const key in this.dt.filters) {\r\n\t\t\t\tconsole.log(key, this.dt.filters[key])\r\n\t\t\t\tthis.dt.filter(this.dt.filters[key].value, key, this.dt.filters[key].matchMode);\r\n\t\t\t}\r\n\t\t\tconsole.log(this.dt)\r\n\t\t}\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'inicio_coincidencia') {\r\n\t\t\t\tthis.inicio_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'fin_coincidencia') {\r\n\t\t\t\tthis.inicio_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'inicio_coincidencia') {\r\n\t\t\t\tthis.fin_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'fin_coincidencia') {\r\n\t\t\t\tthis.fin_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Aplicamos filtro FechaDesde\r\n\t\tthis.coincidenciasFiltrados = this.coincidenciasFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Desde_Filter === undefined || that.inicio_Fecha_Desde_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Desde_Filter === undefined || that.fin_Fecha_Desde_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Desde_Filter !== undefined && that.inicio_Fecha_Desde_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Desde_Filter <= new Date(h.desde_1);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Desde_Filter !== undefined && that.fin_Fecha_Desde_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Desde_Filter >= new Date(h.hasta_1);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaHasta\r\n\t\tthis.coincidenciasFiltrados = this.coincidenciasFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Hasta_Filter === undefined || that.inicio_Fecha_Hasta_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Hasta_Filter === undefined || that.fin_Fecha_Hasta_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Hasta_Filter !== undefined && that.inicio_Fecha_Hasta_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Hasta_Filter <= new Date(h.desde_1);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Hasta_Filter !== undefined && that.fin_Fecha_Hasta_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Hasta_Filter >= new Date(h.hasta_1);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tfilterLocalizacion(value, field, op){\r\n\t\tconsole.log(value);\r\n\t\tconsole.log(field);\r\n\t\tconsole.log(op);\r\n\r\n\t\tthis.dt.filter(value, 'Localizacion', op);\r\n\t}\r\n\r\n\r\n /****** AUX ********/\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tdescripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/CoincidenciasChart/coincidenciasChart.component.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      {{contenido.Elemento}}{{contenido.Seccion}}
          Desde: {{contenido.FechaDesde | date:'yyyy-MM-dd HH:mm:ss'}}
          Hasta: {{contenido.FechaHasta | date:'yyyy-MM-dd HH:mm:ss'}}
      \\r\\n
      \\r\\n\\r\\n

      Descripción Informe Histórico de Ubicaciones

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      Histórico de Ubicaciones 

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 12345\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 12345\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      0 ? 'flex' : 'none' }\\\">\\r\\n play_arrow\\r\\n stop\\r\\n pause\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n close\\r\\n open_with\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{'Historicos.Rango' | translate}}: {{(frameRangeValues[0]+1) + ' - ' + (frameRangeValues[1]+1)}}
      \\r\\n
      {{'Historicos.Actual' | translate}}: {{frameActual+1}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{getDiaPintar() | date: 'dd-MM-yyyy'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      \\r\\n \\r\\n {{this.nombrePlano}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n

      {{getHoraInicioPintar() | date: 'HH:mm:ss'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      Cambiando de Plano ...

      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'Historicos.Leyenda' | translate}}

      \\r\\n

      {{'Historicos.UltPos' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\r\\n {{ 'No hay ubicación'}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Ala}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Nivel}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Seccion}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      0 ? 'flex' : 'none' }\\\">\\r\\n play_arrow\\r\\n stop\\r\\n pause\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n close\\r\\n open_with\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{'Historicos.Rango' | translate}}: {{(frameRangeValues[0]+1) + ' - ' + (frameRangeValues[1]+1)}}
      \\r\\n
      {{'Historicos.Actual' | translate}}: {{frameActual+1}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{getDiaPintar() | date: 'dd-MM-yyyy'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      \\r\\n \\r\\n {{this.nombrePlano}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n

      {{getHoraInicioPintar() | date: 'HH:mm:ss'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      Cambiando de Plano ...

      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'Historicos.Leyenda' | translate}}

      \\r\\n

      {{'Historicos.UltPos' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\r\\n {{ 'No hay ubicación'}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Ala}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Nivel}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Seccion}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.html\n// module id = ../../../../../src/app/componentes/HistoricoChart/historicoChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".iconMaximize:hover {\\n color: #999; }\\n\\n.iconMaximize {\\n font-size: 24px;\\n cursor: pointer;\\n color: #FFF; }\\n\\n.blink_me {\\n -webkit-animation: blinker 1s linear infinite;\\n animation: blinker 1s linear infinite; }\\n\\n@-webkit-keyframes blinker {\\n 50% {\\n opacity: 0; } }\\n\\n@keyframes blinker {\\n 50% {\\n opacity: 0; } }\\n\\n.CambioAla {\\n font-weight: bold; }\\n\\n.NoUbicado {\\n font-size: 32px !important; }\\n\\n.w3-border-w, .w3-hover-border-red:hover {\\n border-color: black !important; }\\n\\n.w3-border-bottom {\\n border-bottom: 1px solid #ccc !important; }\\n\\n.w3-container, .w3-panel {\\n padding: 0.01em 16px; }\\n\\n.trDialog {\\n width: 100%; }\\n\\n.tdDialog {\\n font-size: 12px;\\n padding: 10px; }\\n\\n.icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\\n:host ::ng-deep .fijo {\\n position: absolute !important;\\n height: 300px !important; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar {\\n background: #6D7882;\\n border: 5px solid white;\\n color: white; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar .ui-dialog-title {\\n font-size: 14px; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-icon .fa {\\n color: white; }\\n\\n.tableDialog {\\n border-collapse: collapse; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.scss\n// module id = ../../../../../src/app/componentes/HistoricoChart/historicoChart.component.scss\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnChanges, OnDestroy, Input, ViewChild, NgZone, HostListener} from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { ContenidoPlano, PlanoComponent, SeccionPlano} from 'interiores-mapa';\r\nimport { Message } from 'primeng/primeng';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { HistoricoLocalizacionContenido } from '../../domain/HistoricoLocalizacionContenido';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\n\r\n\r\nimport { Subscription, Observable } from '../../../../node_modules/rxjs';\r\nimport { timer } from '../../../../node_modules/rxjs/observable/timer';\r\n\r\nimport { Predicate } from '../../../../node_modules/breeze-client';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-historicochart',\r\n\ttemplateUrl: './historicoChart.component.html',\r\n\tstyleUrls: ['./historicoChart.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class AppHistoricoChartComponent implements OnInit, OnDestroy, OnChanges {\r\n\t@ViewChild('dt_historicos') dt_historicos;\r\n\t@Input() tipologiasList = [];\r\n\t@Input() historicosList: HistoricoLocalizacionContenido[];\r\n\r\n\thistoricosListTodos: HistoricoLocalizacionContenido[];\r\n\thistoricosFiltrados: HistoricoLocalizacionContenido[];\r\n\t// @Output() onChangeRange: EventEmitter = new EventEmitter();\r\n\r\n\t@HostListener(\"window:scroll\", ['$event'])\r\n\tdoSomethingOnWindowsScroll($event:Event){\r\n\t\tlet target = $event.srcElement as HTMLTextAreaElement;\r\n\t \tthis.scrollTop = target.children[0].scrollTop;\r\n\t}\r\n\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n\tpublic cols3;\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n displayBasic2: boolean;\r\n displayCustom: boolean;\r\n\r\n// activeIndex: number = 0;\r\n\r\n public tipo_informe_seleccionado: any[];\r\n public tipologias_contenido_seleccionadas: any[];\r\n\tpublic contenidos_seleccionados: any[];\r\n\tselectedHistoric: HistoricoLocalizacionContenido[] = [];\r\n\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\tpublic opcion_desde_selected2;\r\n\tpublic opcion_hasta_selected2;\r\n\tpublic startHourDefault;\r\n\tpublic finHourDefault;\r\n\tpublic op_desde;\r\n\tpublic op_hasta;\r\n\tpublic op_desde2;\r\n\tpublic op_hasta2;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\ttipologia_Filter: string;\r\n\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tappComponent: any;\r\n\tfechaVisualizacion: Date = new Date();\r\n\t@ViewChild('plano') plano: PlanoComponent;\r\n\t@ViewChild('plano2') plano2: PlanoComponent;\r\n\r\n\tmapaPantallaCompletaVisible = false;\r\n\tlistaNiveles: any[] = [];\r\n\tnombrePlanta: String;\r\n\tpathPlano: 'https://itsoftcdn.azureedge.net/everpaths/everpaths-b4562844-2974-40d4-8be9-fa64620b9d3c' ;\r\n\tzoomLevels: Number[]= [1, 1];\r\n\tcontenidosAnt = [];\r\n\tcontents: ContenidoPlano[] = [];\r\n\tsections: SeccionPlano[] = [];\r\n\tcurrentZoomLevel: number;\r\n\tzoomLevelsVisibilityLabels: Number[] = [1, 100];\r\n\r\n\tTIEMPO_AUTOREFRESCO = 1;\r\n\tprivate subscription: any; // private subscription: Subscription;\r\n\teverySecond: Observable < number > = timer(0, this.TIEMPO_AUTOREFRESCO * 1000);\r\n\r\n\tnumAla = 0; // Indice de AlaFormularioSeleccionada\r\n\talasDrop = []; // Lista de Alas para el DropDown\r\n\tcambiandoPlanta: boolean = false;\r\n\r\n\tindiceToAdd: number;\r\n\tinicio_Fecha_Desde_Filter: any;\r\n\tinicio_Fecha_Hasta_Filter: any;\r\n\tfin_Fecha_Desde_Filter: any;\r\n\tfin_Fecha_Hasta_Filter: any;\r\n\r\n\tarrayFechasDesde = [];\r\n\tframeRangeValues = [0, 0];\r\n\tframeActual = 0;\r\n\tframeAnterior = 0;\r\n\t// Variables para controlar el color del contenido y el numerito que han de mostrar en el plano\r\n\tleyenda: Map;\r\n\tleyendaArrayValores: any;\r\n\r\n\tpublic plantachange: boolean = false;\r\n\tocultarIMPRESION: boolean = true;\r\n\tvalorFiltroElemento: any;\r\n\tnombrePlano: string;\r\n\r\n\tpublic dialogContenidosApilados: boolean = false;\r\n\tpublic contenidosApilados: any;\r\n\tpublic positionDialogContenidosApiladosX: number;\r\n\tpublic positionDialogContenidosApiladosY: number;\r\n\tpublic positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\r\n\tpublic scrollTop: number = 0;\r\n\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** InformesComponent ***');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\t// Tabla Historicos\r\n\t\tthis.cols3 = [\r\n\t\t\t{ field: 'Elemento', header: this.translate.instant('Historicos.Elemento'), visible: true, width: '20%', imprimir: true, value:\"\" },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('Historicos.Descripcion'), visible: true, width: '20%', imprimir: false },\r\n\t\t\t{ field: 'Tipologias', header: this.translate.instant('Historicos.Tipologias'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaDesde', header: this.translate.instant('Historicos.FechaDesde'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaHasta', header: this.translate.instant('Historicos.FechaHasta'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('Historicos.Seccion'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'Localizacion', header: '', visible: false, width: '0%' }\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n\t\tconsole.log(this.startHourDefault, this.finHourDefault)\r\n\t\tthis.contenidosApilados = [];\r\n }\r\n\r\n\t//#region ** CICLO VIDA **\r\n\tngOnInit() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tthis.alasDrop = [];\r\n\t\tthis.numAla = 0;\r\n\t\tthis.historicosList.forEach(element => {\r\n\t\t\tif (element.Ala_Id !== undefined && !this.alasDrop.find(a => a.id === element.Ala_Id)){\r\n\t\t\t\tthis.alasDrop.push({\r\n\t\t\t\t\tlabel: element.Ala === element.Nivel ? element.Ala : element.Ala + ' - ' + element.Nivel,\r\n\t\t\t\t\tvalue: this.alasDrop.length,\r\n\t\t\t\t\tid: element.Ala_Id,\r\n\t\t\t\t\tpathPlano: element.pathPlano,\r\n\t\t\t\t\tcontents: [],\r\n\t\t\t\t\tsections: [],\r\n\t\t\t\t\tidNivel: element.Nivel_Id,\r\n\t\t\t\t\torden: 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.leyenda = new Map([]);\r\n\t\tthis.leyendaArrayValores = [];\r\n\r\n\t\tthis.historicosListTodos = this.historicosList;\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt_historicos !== 'undefined'){\r\n\t\t\tthis.dt_historicos.first = 0;\r\n\t\t}\r\n\r\n\t\tthis.ordenarSelectorAlaNivel();\r\n\t\t\r\n\t}\r\n\r\n\tngOnChanges(change) {\r\n\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n\r\n\t\tthis.alasDrop = [];\r\n\t\tthis.numAla = 0;\r\n\r\n\t\tif (change.historicosList) {\r\n\t\t\tthis.historicosListTodos = change.historicosList.currentValue;\r\n\t\t}\r\n\r\n\t\tthis.vaciarHistoricosPlano();\r\n\t\tthis.selectedHistoric = [];\r\n\r\n\t\tthis.generarArrayFechasDesde();\r\n\r\n\t\tthis.frameActual = 0;\r\n\t\t\r\n\t\tthis.historicosList = this.historicosListTodos;\r\n\t\t\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt_historicos !== 'undefined'){\r\n\t\t\tthis.dt_historicos.first = 0;\r\n\t\t}\r\n\t\tthis.historicosList.forEach(element => {\r\n\t\t\tif (element.Ala_Id !== undefined && !this.alasDrop.find(a => a.id === element.Ala_Id)){\r\n\t\t\t\tthis.alasDrop.push({\r\n\t\t\t\t\tlabel: element.Ala === element.Nivel ? element.Ala : element.Ala + ' - ' + element.Nivel,\r\n\t\t\t\t\tvalue: this.alasDrop.length,\r\n\t\t\t\t\tid: element.Ala_Id,\r\n\t\t\t\t\tpathPlano: element.pathPlano,\r\n\t\t\t\t\tcontents: [],\r\n\t\t\t\t\tsections: [],\r\n\t\t\t\t\tidNivel: element.Nivel_Id,\r\n\t\t\t\t\torden: 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tthis.ordenarSelectorAlaNivel();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}, 1000);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tordenarSelectorAlaNivel() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tlet includes = 'ESPACIO';\r\n\t\tincludes = includes + ', IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS';\r\n\t\tincludes = includes + ', ALAS.IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS.NODOS.CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\r\n\t\treturn entityManager.getNIVEL(predicado, includes)\r\n\t\t.then(function(niveles){\r\n\t\t\tif (niveles) {\r\n\t\t\t\tfor (let index = 0; index < that.alasDrop.length; index++) {\r\n\t\t\t\t\tlet orden = niveles.find(n => n.Id === that.alasDrop[index].idNivel);\r\n\t\t\t\t\tif(orden){\r\n\t\t\t\t\t\tthat.alasDrop[index].orden = orden.NivelVertical;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet auxAlasDrop = that.alasDrop.sort(((a, b) => a.orden - b.orden));\r\n\t\t\tthat.alasDrop = [];\r\n\t\t\tfor (let index = 0; index < auxAlasDrop.length; index++) {\r\n\t\t\t\tauxAlasDrop[index].value = index;\r\n\t\t\t\tthat.alasDrop.push(auxAlasDrop[index])\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tconsole.log(that.alasDrop)\r\n\t\t\tthat.cambiarPlanta(0);\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconsole.error(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t\t\r\n\t}\r\n\t//#endregion\r\n\t//#region ** TABLA **\r\n\tfilterTipologia(event, columna) {\r\n\t\tconst that = this;\r\n\t\tconsole.log(event);\r\n\t\tthis.dt_historicos.filter(event.Nombre, columna, 'equals');\r\n\t}\r\n\r\n\tfilterLocalizacion(value, field, op){\r\n\t\tconsole.log(value);\r\n\t\tconsole.log(field);\r\n\t\tconsole.log(op);\r\n\t\tthis.dt_historicos.filter(value, 'Localizacion', op);\r\n\t}\r\n\tseleccionarTodo(event){\r\n\t\tconsole.log('Se va a seleccionar toda la tabla');\r\n\t\tthis.onRowSelect(event);\r\n\r\n\t}\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\t\tconst that = this;\r\n\t\tthat.historicosFiltrados = that.historicosList;\r\n\r\n\t\tif(that.dt_historicos.filters){\r\n\t\t\tfor (const key in that.dt_historicos.filters) {\r\n\t\t\t\tconsole.log(key, that.dt_historicos.filters[key])\r\n\t\t\t\tthis.dt_historicos.filter(that.dt_historicos.filters[key].value, key, that.dt_historicos.filters[key].matchMode);\r\n\t\t\t}\r\n\t\t\tconsole.log(that.dt_historicos)\r\n\t\t}\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthis.inicio_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthis.inicio_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthis.fin_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthis.fin_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Aplicamos filtro FechaDesde\r\n\t\tthis.historicosFiltrados = this.historicosFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Desde_Filter === undefined || that.inicio_Fecha_Desde_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Desde_Filter === undefined || that.fin_Fecha_Desde_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Desde_Filter !== undefined && that.inicio_Fecha_Desde_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Desde_Filter <= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Desde_Filter !== undefined && that.fin_Fecha_Desde_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Desde_Filter >= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaHasta\r\n\t\tthis.historicosFiltrados = this.historicosFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Hasta_Filter === undefined || that.inicio_Fecha_Hasta_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Hasta_Filter === undefined || that.fin_Fecha_Hasta_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Hasta_Filter !== undefined && that.inicio_Fecha_Hasta_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Hasta_Filter <= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Hasta_Filter !== undefined && that.fin_Fecha_Hasta_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Hasta_Filter >= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\r\n\r\n\t}\r\n\tfilterElemento(event, col){\r\n\t\tconsole.log(event)\r\n\t\tconsole.log(col)\r\n\t\tthis.dt_historicos.filter(event, col, 'contains');\r\n\t\tconsole.log(this.dt_historicos)\r\n\t\tdocument.getElementsByClassName('ui-inputtext ui-corner-all ui-state-default ui-widget')[4].attributes[5].value = event;\r\n\t}\r\n\tonRowDblClick(event, col) {\r\n\t\tconsole.log('doble click hecho!!');\r\n\t\tconsole.log(event.target.innerText);\r\n\t\tif(event.target.innerText){\r\n\t\t\tthis.valorFiltroElemento = event.target.innerText;\r\n\t\t}\r\n\t\tthis.dt_historicos.filter(event.target.innerText, col, 'contains');\r\n\t}\r\n\r\n\tonRowSelect(event){\r\n\t\tthis.stopSecuenciaHistoricos();\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tif (this.frameActual > this.frameRangeValues[1]) {\r\n\t\t\tthis.frameActual = this.frameRangeValues[1];\r\n\r\n\t\t}\r\n\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tif(event.data){\r\n\t\t\tlet AlaHistoricoUltPintar = this.alasDrop.find(i => i.id === event.data.Ala_Id);\r\n\t\t\tthis.cambiarPlanta(AlaHistoricoUltPintar.value);\r\n\t\t}else if(this.selectedHistoric.length > 0){\r\n\t\t\tlet pagina = this.alasDrop.find(a => a.idNivel === this.selectedHistoric[0].Nivel_Id)\r\n\t\t\tthis.cambiarPlanta(pagina.value)\r\n\t\t}\r\n\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t\r\n\t}\r\n\r\n\tonRowUnselect(event) {\r\n\t\tthis.stopSecuenciaHistoricos();\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tif (this.frameActual > this.frameRangeValues[1]) {\r\n\t\t\tthis.frameActual = this.frameRangeValues[1];\r\n\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t}\r\n\t//#endregion\r\n\r\n\tagruparContenidosPorSeccion(historicosList: HistoricoLocalizacionContenido[]){\r\n\t\tconst historicosListFiltrados: HistoricoLocalizacionContenido[] = [];\r\n\r\n\r\n\t\t// Return the reduced historicosList\r\n\t\tconst grupos = historicosList.reduce((result, currentItem) => {\r\n\t\t\t// If an historicosList already present for key, push it to the array. Otherwise create an array and push the object.\r\n\t\t\tif (!result[currentItem.Contenido_Id]) {\r\n\t\t\tresult[currentItem.Contenido_Id] = [];\r\n\t\t\t}\r\n\t\t\tresult[currentItem.Contenido_Id].push( currentItem )\r\n\t\t\t// return the current iteration `result` value, this will be the next iteration's `result` value and accumulate\r\n\t\t\treturn result;\r\n\t\t}, {}); // Empty object is the initial value for result object\r\n\r\n\t\t// TODO: agrupar los historicos por seccion una vez separados por Contenido_id\r\n\t\tObject.keys(grupos).forEach(id => {\r\n\t\t\tconst historicosListContenido = grupos[id];\r\n\t\t\tlet elementoAgrupar:HistoricoLocalizacionContenido;\r\n\t\t\tfor (let index = 0; index < historicosListContenido.length; index++) {\r\n\t\t\t\tconst element = historicosListContenido[index];\r\n\t\t\t\tif (index == 0) {\r\n\r\n\t\t\t\t\telementoAgrupar = Object.assign(new HistoricoLocalizacionContenido(), element);\r\n\t\t\t\t\t// historicosListFiltrados.push(element);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t//if (historicosListFiltrados[historicosListFiltrados.length - 1].Seccion_Id != element.Seccion_Id) {\r\n\t\t\t\t\tif (elementoAgrupar.Seccion_Id != element.Seccion_Id) {\r\n\t\t\t\t\t\telementoAgrupar.FechaHasta = historicosListContenido[index - 1].FechaHasta;\r\n\t\t\t\t\t\thistoricosListFiltrados.push(elementoAgrupar);\r\n\t\t\t\t\t\telementoAgrupar = Object.assign(new HistoricoLocalizacionContenido(), element);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn historicosListFiltrados\r\n\t}\r\n\r\n\tcargarPuntoEnPlano(historicosAnt, conNumero = true, conPunto = false){\r\n\r\n\t\tconst alaSelect = this.alasDrop[this.numAla];\r\n\t\tif (alaSelect) {\r\n\t\t\tconst id_ala_seleccionada = alaSelect.id;\r\n\t\t\t// this.vaciarHistoricosPlano();\r\n\t\t\tif (historicosAnt.length > 0) {\r\n\r\n\t\t\t\t// Ponemos todos los frames a 0\r\n\t\t\t\tthis.leyendaArrayValores.forEach(valor => {\r\n\t\t\t\t\tvalor.frame = 0;\r\n\t\t\t\t\tthis.leyenda.set(valor.key, valor);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// elementAnt.setHistoricoPuntoPlano();\r\n\t\t\t\tfor (let index = 0; index < historicosAnt.length; index++) {\r\n\t\t\t\t\tconst ha = historicosAnt[index];\r\n\t\t\t\t\tconst cont = this.leyenda.get(ha.Contenido_Id);\r\n\r\n\t\t\t\t\tha.setHistoricoPuntoPlano(cont.indiceColor);\r\n\t\t\t\t\t// Comprobar que los contenidos pertenezcan al ala seleccionada\r\n\t\t\t\t\tif (id_ala_seleccionada === ha.Ala_Id) {\r\n\t\t\t\t\t\t\tthis.contents.push(ha.contenidoPlano);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcargarHistoricosEnPlano(historicosPintar, conNumero = true, conPunto = false, historicosAnt = []){\r\n\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tthis.generarLeyenda();\r\n\r\n\t\tconst alaSelect = this.alasDrop[this.numAla];\r\n\t\tif (alaSelect) {\r\n\t\t\tconst id_ala_seleccionada = alaSelect.id;\r\n\t\t\tthis.vaciarHistoricosPlano();\r\n\r\n\t\t\tif (historicosAnt.length > 0) {\r\n\t\t\t\tthis.cargarPuntoEnPlano(historicosAnt);\r\n\t\t\t}\r\n\r\n\t\t\tif (historicosPintar.length > 0) {\r\n\r\n\t\t\t\t// Ponemos todos los frames a 0\r\n\t\t\t\tthis.leyendaArrayValores.forEach(valor => {\r\n\t\t\t\t\tvalor.frame = 0;\r\n\t\t\t\t\tthis.leyenda.set(valor.key, valor);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// elementAnt.setHistoricoPuntoPlano();\r\n\t\t\t\tfor (let index = 0; index < historicosPintar.length; index++) {\r\n\t\t\t\t\tconst element = historicosPintar[index];\r\n\t\t\t\t\tconst cont = this.actualizarLeyenda(element);\r\n\t\t\t\t\tif (conNumero) {\r\n\t\t\t\t\t\telement.setHistoricoPlano(cont.frame, cont.indiceColor);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\telement.setHistoricoPlano(0, cont.indiceColor);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Comprobar que los contenidos pertenezcan al ala seleccionada\r\n\t\t\t\t\tif (id_ala_seleccionada === element.Ala_Id) {\r\n\t\t\t\t\t\tif(this.contents){\r\n\t\t\t\t\t\t\telement.contenidoPlano = this.desplazarContenidosCoincidentes(this.contents, element.contenidoPlano);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.contents.push(element.contenidoPlano);\r\n\t\t\t\t\t\t\talaSelect.contents.push(element.contenidoPlano);\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdesplazarContenidosCoincidentes(contents: ContenidoPlano[], contenidoPlano: ContenidoPlano): any {\r\n\t\t\t\t// Si hay dos o más visitas en las mismas coordenadas, desplazo la chincheta\r\n\t\t\t\tif (contenidoPlano) {\r\n\t\t\t\t\tthis.contents.forEach((h:ContenidoPlano) => {\r\n\t\t\t\t\t\tif (h.getX() === contenidoPlano.getX() && h.getY() === contenidoPlano.getY()) {\r\n\t\t\t\t\t\t\tcontenidoPlano.setX(contenidoPlano.getX() + 0);\r\n\t\t\t\t\t\t\tcontenidoPlano.setY(contenidoPlano.getY() + 0);\r\n\t\t\t\t\t}});\r\n\t\t\t\t}\r\n\t\t\t\treturn contenidoPlano;\r\n\t}\r\n\r\n\tvaciarHistoricosPlano(): any {\r\n\t\tthis.contents = [];\r\n\t\tthis.contents = Object.assign([], this.contents);\r\n\t\tthis.contents.splice(0, this.contents.length);\r\n\t\tthis.contents = Object.assign([], this.contents);\r\n\r\n\t\tthis.sections = [];\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\t\tthis.sections.splice(0, this.sections.length);\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\r\n\t}\r\n\r\n\tgenerarLeyenda(){\r\n\t\tthis.leyenda = new Map([]);\r\n\r\n\t\t// Si no tenemos nada seleccionado en la tabla y solo hemos buscado un contenido mostramos todos sis historicos en el plano\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\r\n\t\t\tconst historicosListAux = this.historicosList.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\t\t\tconst last = historicosListAux.length - 1 >= 0 ? historicosListAux.length - 1 : 0;\r\n\t\t\tconst historico = historicosListAux[last];\r\n\t\t\tif (historico) {\r\n\t\t\t\tconst contenidoEnMapa = this.leyenda.get(historico.Contenido_Id);\r\n\t\t\t\tif (!contenidoEnMapa) {\r\n\t\t\t\t\tthis.leyenda.set(historico.Contenido_Id,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey: historico.Contenido_Id,\r\n\t\t\t\t\t\t\tnombre: historico.Elemento,\r\n\t\t\t\t\t\t\tAla: historico.Ala,\r\n\t\t\t\t\t\t\tNivel: historico.Nivel,\r\n\t\t\t\t\t\t\tSeccion: historico.Seccion,\r\n\t\t\t\t\t\t\tindiceColor: this.leyenda.size,\r\n\t\t\t\t\t\t\tframe: 0,\r\n\t\t\t\t\t\t\ticono: 'assets/planos/Chinchetas_destinos/' + this.leyenda.size + '/destino-00.svg',\r\n\t\t\t\t\t\t\tblink: false,\r\n\t\t\t\t\t\t\tnegrita: false,\r\n\t\t\t\t\t\t\tnoubicado: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.selectedHistoric.forEach(historico => {\r\n\t\t\t\tconst contenidoEnMapa = this.leyenda.get(historico.Contenido_Id);\r\n\t\t\t\tif (!contenidoEnMapa) {\r\n\t\t\t\t\tthis.leyenda.set(historico.Contenido_Id,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey: historico.Contenido_Id,\r\n\t\t\t\t\t\t\tnombre: historico.Elemento,\r\n\t\t\t\t\t\t\tAla: '',\r\n\t\t\t\t\t\t\tNivel: '',\r\n\t\t\t\t\t\t\tSeccion: '',\r\n\t\t\t\t\t\t\tindiceColor: this.leyenda.size,\r\n\t\t\t\t\t\t\tframe: 0,\r\n\t\t\t\t\t\t\ticono: 'assets/planos/Chinchetas_destinos/' + this.leyenda.size + '/destino-00.svg',\r\n\t\t\t\t\t\t\tblink: false,\r\n\t\t\t\t\t\t\tnegrita: false,\r\n\t\t\t\t\t\t\tnoubicado: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.leyendaArrayValores = Array.from( this.leyenda.values() );\r\n\t\tthis.leyendaArrayValores.filter( l => l === undefined);\r\n\t}\r\n\r\n\tactualizarLeyenda(historico){\r\n\r\n\t\tconst cont = this.leyenda.get(historico.Contenido_Id);\r\n\t\tif (!cont) {\r\n\t\t\tcont.frame = 0;\r\n\t\t}\r\n\r\n\t\tcont.frame += 1;\r\n\t\tcont.Ala = historico.Ala;\r\n\t\tcont.Nivel = historico.Nivel;\r\n\t\tcont.Seccion = historico.Seccion;\r\n\t\tthis.leyenda.set(cont.key, cont);\r\n\r\n\t\treturn cont;\r\n\t}\r\n\r\n\tcontarContenidosDistintos(array){\r\n\t\tconst result = [];\r\n\t\tconst map = new Map();\r\n\t\tfor (const item of array) {\r\n\t\t\tif (!map.has(item.Contenido_Id)){\r\n\t\t\t\tmap.set(item.Contenido_Id, true); // set any value to Map\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tid: item.Contenido_Id,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.length;\r\n\t}\r\n\r\n\r\n\tmapaPantallaCompletaVisibleChanged(){\r\n\t\tthis.mapaPantallaCompletaVisible = !this.mapaPantallaCompletaVisible;\r\n\t}\r\n\r\n\t//#region ** ANIMACION **\r\n\r\n\treproducirSecuenciaHistoricos(){\r\n\t\tconst that = this;\r\n\r\n\t\t// Si existe la suscripcion o esta cerrada y estaba pausado reanudamos\r\n\t\tif (this.subscription && !this.subscription.closed && this.subscription.isStopped) {\r\n\t\t\tthis.subscription.isStopped = !this.subscription.isStopped;\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Si no existe la suscripcion o esta cerrada la creamos\r\n\t\tif (!this.subscription || this.subscription.closed) {\r\n\t\t\tthis.vaciarHistoricosPlano();\r\n\r\n\t\t\t// Numero de frames que no animamos tras el cambio de planta, esto evita que se siga ejecutando la animacion mientras se muestra la pantalla de carga\r\n\t\t\tconst FRAMES_ESPERA_TRAS_CAMBIO_PLANTA = 1;\r\n\t\t\tlet framesTranscurridosCambioPlanta = FRAMES_ESPERA_TRAS_CAMBIO_PLANTA;\r\n\t\t\tthis.indiceToAdd = this.frameActual;\r\n\r\n\r\n\t\t\tthis.subscription = this.everySecond\r\n\t\t\t.subscribe((seconds) => {\r\n\r\n\t\t\t\t// Paso de la Animacion\r\n\t\t\t\tif (!that.cambiandoPlanta && framesTranscurridosCambioPlanta >= FRAMES_ESPERA_TRAS_CAMBIO_PLANTA) {\r\n\t\t\t\t\t// Si solo tenemos un contenido haremos el cambio de planta automatico\r\n\t\t\t\t\tif (this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\t\t\t\tconst id_ala_seleccionada = this.alasDrop[this.numAla].id;\r\n\t\t\t\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\t\t\t\t\t\tconst historico = historicosPintar[0];\r\n\t\t\t\t\t\tif (id_ala_seleccionada === historico.Ala_Id) {\r\n\t\t\t\t\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// Cambiar de planta\r\n\t\t\t\t\t\t\tconst alaDrop = this.alasDrop.find( a => a.id === historico.Ala_Id);\r\n\t\t\t\t\t\t\tthis.vaciarHistoricosPlano();\r\n\t\t\t\t\t\t\tthis.cambiarPlanta(alaDrop.value, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Si acabamos de cambiar la planta ponemos a 0 el numero de frames transcurridos desde el cambio\r\n\t\t\t\tif (that.cambiandoPlanta) {\r\n\t\t\t\t\tframesTranscurridosCambioPlanta = 0;\r\n\t\t\t\t}\r\n\t\t\t\t// Si no acabamos de cambiar la planta incrementamos el numero de frames trasncurridos\r\n\t\t\t\telse {\r\n\t\t\t\t\tframesTranscurridosCambioPlanta += 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tanimacionEnCurso(){ // Devuelve true si esta reproduciendose la animacion aunque este pausada\r\n\t\t// Si solo tenemos un contenido haremos el cambio de planta automatico\r\n\t\tif (this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\tconst existeSuscription = this.subscription && !this.subscription.closed;\r\n\t\t\tif (!existeSuscription) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (existeSuscription)\r\n\t\t\t{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tejecutarPasoAnimacion(){\r\n\r\n\t\tconst historicosAnt = this.obtenerPuntosHistoricosAnteriores(this.indiceToAdd - 1); // this.obtenerPuntosPasosAnteriores();\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar, false, false, historicosAnt);\r\n\t\t// Tras cargar el contenido en el plano incrementamos el numero de frame a animar\r\n\r\n\t\tthis.frameActual = this.indiceToAdd;\r\n\t\tthis.indiceToAdd += 1;\r\n\t\tthis.comprobarCambioDePlantaContenido(this.indiceToAdd);\r\n\t\t// this.actualizarLeyenda(historico);\r\n\t\t// Pausamos y Reseteamos el indice cuando llegamos al ultimo elemento\r\n\t\tif (this.indiceToAdd >= this.frameRangeValues[1] + 1) {\r\n\t\t\tthis.pausarSecuenciaHistoricos();\r\n\t\t\tthis.indiceToAdd = this.frameRangeValues[0];\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tcomprobarCambioDePlantaContenido(indiceToAdd){\r\n\t\tif (indiceToAdd === 0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\t\tconst historicosPintados = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd - 1);\r\n\t\thistoricosPintar.forEach(element => {\r\n\t\t\tconst historicoPintado = historicosPintados.find(h => h.Contenido_Id === element.Contenido_Id);\r\n\t\t\tconst historicoPintadoNoUbicado = historicosPintados.find(hn => hn.Contenido_Id !== element.Contenido_Id);\r\n\t\t\tif(historicoPintado && element.Ala_Id !== historicoPintado.Ala_Id){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === historicoPintado.Contenido_Id);\r\n\t\t\t\tleyenda.blink = true;\r\n\t\t\t}\r\n\t\t\telse if(!historicoPintado){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.Ala === '');\r\n\t\t\t\tleyenda.noubicado = true;\r\n\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === historicoPintado.Contenido_Id);\r\n\t\t\t\tleyenda.blink = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thistoricosPintar.forEach(element => {\r\n\t\t\tconst idAlaSeleccionada = this.alasDrop[this.numAla].id;\r\n\t\t\tif(element.Ala_Id !== idAlaSeleccionada){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === element.Contenido_Id);\r\n\t\t\t\tleyenda.negrita = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === element.Contenido_Id);\r\n\t\t\t\tleyenda.negrita = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tstopSecuenciaHistoricos(){\r\n\t\tthis.frameActual = 0;\r\n\t\tif (this.subscription) {\r\n\t\t\tthis.subscription.unsubscribe();\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t}\r\n\r\n\tpausarSecuenciaHistoricos(){\r\n\t\tif (this.subscription) {\r\n\t\t\tthis.subscription.isStopped = !this.subscription.isStopped;\r\n\t\t}\r\n\t}\r\n\r\n\tgenerarArrayFechasDesde(){\r\n\r\n\t\tthis.frameRangeValues[0] = 0;\r\n\t\tthis.arrayFechasDesde = [];\r\n\t\tlet historicos = [];\r\n\r\n\t\t// Ordenamos los historicos por fecha\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\tthis.historicosList = this.historicosList.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\t\t\thistoricos = this.historicosList;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.selectedHistoric = this.selectedHistoric.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\t\t}\r\n\r\n\t\t// Cogemos las fechas desde sin repeticion de los historicos\r\n\t\thistoricos.forEach(element => {\r\n\t\t\tconst fechaEncontrada = this.arrayFechasDesde.find( f => f === element.FechaDesde);\r\n\t\t\tif (!fechaEncontrada) {\r\n\t\t\t\tthis.arrayFechasDesde.push(element.FechaDesde);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.frameRangeValues[1] = this.arrayFechasDesde.length <= 0 ? 0 : this.arrayFechasDesde.length - 1;\r\n\t}\r\n\t//#endregion\r\n\r\n\t//#region ** Slider Frame **\r\n\tonSliderChange($event){\r\n\t\t// Cambiamos el indice de la animacion al seleccionado en el slider\r\n\t\tthis.indiceToAdd = this.frameActual;\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar, false);\r\n\t}\r\n\r\n\tobtenerHistoricosRangoFechasDesde(indiceToAdd?){\r\n\r\n\t\tlet historicos: HistoricoLocalizacionContenido[] = [];\r\n\t\tif (indiceToAdd < 0) {\r\n\t\t\treturn historicos;\r\n\t\t}\r\n\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\thistoricos = this.historicosList;\r\n\t\t}\r\n\t\telse{\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\t\t}\r\n\r\n\t\thistoricos = historicos.sort((a, b) =>\r\n\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t);\r\n\r\n\t\tlet historicosPintar = [];\r\n\t\tif (indiceToAdd !== undefined) {\r\n\t\t\tconst desde = this.arrayFechasDesde[indiceToAdd];\r\n\t\t\tconst fechaDesde = new Date(desde);\r\n\r\n\t\t\thistoricosPintar = historicos.filter( h => h.FechaDesde === desde);\r\n\t\t\t// Buscar en selectedHistoric otros historicos de distinto contenido que tengan la fechaDesde anterior a la fecha desde y fecha Hasta posterior\r\n\t\t\thistoricosPintar = historicos.filter( h => {\r\n\t\t\t\tconst fd = new Date(h.FechaDesde);\r\n\t\t\t\tconst fh = new Date(h.FechaHasta);\r\n\t\t\t\tconst condicion_1 = fd.getTime() === fechaDesde.getTime();\r\n\t\t\t\tconst condicion_2_1 = fd.getTime() <= fechaDesde.getTime();\r\n\t\t\t\tconst condicion_2_2 = fh.getTime() > fechaDesde.getTime();\r\n\t\t\t\treturn condicion_1|| (condicion_2_1 && condicion_2_2);\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\thistoricosPintar = historicos;\r\n\t\t}\r\n\r\n\t\treturn historicosPintar;\r\n\t}\r\n\r\n\tobtenerPuntosHistoricosAnteriores(indiceToAdd){\r\n\r\n\t\tlet historicos: HistoricoLocalizacionContenido[] = [];\r\n\t\tif (indiceToAdd < 0) {\r\n\t\t\treturn historicos;\r\n\t\t}\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\thistoricos = this.historicosList;\r\n\t\t}\r\n\t\telse{\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\t\t}\r\n\r\n\t\thistoricos = historicos.sort((a, b) =>\r\n\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t);\r\n\r\n\t\tlet puntosPintar = [];\r\n\t\tif (indiceToAdd !== undefined) {\r\n\t\t\tconst desde = this.arrayFechasDesde[indiceToAdd];\r\n\t\t\tconst fechaDesde = new Date(desde);\r\n\r\n\t\t\tpuntosPintar = historicos.filter( h => {\r\n\t\t\t\tconst fd = new Date(h.FechaDesde);\r\n\t\t\t\treturn fd <= fechaDesde;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tpuntosPintar = historicos;\r\n\t\t}\r\n\r\n\t\treturn puntosPintar;\r\n\t}\r\n/*\r\n\tobtenerPuntosPasosAnteriores(){\r\n\t\tthis.frameAnterior = this.indiceToAdd - 1;\r\n\t\tlet historicosAnt = [];\r\n\t\tif(this.frameAnterior >= 0){\r\n\t\t\thistoricosAnt = this.obtenerHistoricosRangoFechasDesde(this.frameAnterior);\r\n\t\t}\r\n\t\tthis.frameAnterior = this.frameAnterior - 1;\r\n\t\twhile(this.frameAnterior >= 0){\r\n\t\t\tconst historicosAnteriores = this.obtenerHistoricosRangoFechasDesde(this.frameAnterior);\r\n\t\t\thistoricosAnt.push(historicosAnteriores[0]);\r\n\t\t\tthis.frameAnterior = this.frameAnterior - 1;\r\n\t\t}\r\n\r\n\t\treturn historicosAnt;\r\n\t}\r\n*/\r\n\t//#endregion\r\n\r\n\t//#region ** Selector Planta **\r\n\tgetFirsAla() {\r\n\t\tif (this.alasDrop && this.alasDrop.length > 0) {\r\n\t\t return this.alasDrop[0].label;\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcambiarPlanta(indice, animado = false) {\r\n\r\n\t\t// Mostramos pantalla de cambio de planta\r\n\t\tif (animado) {\r\n\t\t\tthis.cambiandoPlanta = true;\r\n\r\n\t\t\t// Esperamos a que se muestre la pantalla para cambiar el ala\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.numAla = indice;\r\n\t\t\t\tconst res = this.alasDrop.find(a => a.value === indice);\r\n\t\t\t\tconst historicoConEsaAla = this.historicosList.find( h => h.Ala_Id === res.id);\r\n\r\n\t\t\t\tif (historicoConEsaAla) {\r\n\t\t\t\t\tthis.pathPlano = historicoConEsaAla.pathPlano;\r\n\t\t\t\t\tthis.nombrePlano = historicoConEsaAla.Ala === historicoConEsaAla.Nivel ? historicoConEsaAla.Ala : historicoConEsaAla.Ala + \"-\" + historicoConEsaAla.Nivel;\r\n\t\t\t\t\tthis.zoomLevels = historicoConEsaAla.zoomLevels;\r\n\t\t\t\t\tthis.currentZoomLevel = 1;\r\n\t\t\t\t}\r\n\t\t\t}, this.TIEMPO_AUTOREFRESCO * 1000);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.numAla = indice;\r\n\t\t\tconst res = this.alasDrop.find(a => a.value === indice);\r\n\t\t\tconst historicoConEsaAla = this.historicosList.find( h => h.Ala_Id === res.id);\r\n\r\n\t\t\tif (historicoConEsaAla) {\r\n\t\t\t\tthis.pathPlano = historicoConEsaAla.pathPlano;\r\n\t\t\t\tthis.nombrePlano = historicoConEsaAla.Ala === historicoConEsaAla.Nivel ? historicoConEsaAla.Ala : historicoConEsaAla.Ala + \"-\" + historicoConEsaAla.Nivel;\r\n\t\t\t\tthis.zoomLevels = historicoConEsaAla.zoomLevels;\r\n\t\t\t\tthis.currentZoomLevel = 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region PLANO CALLBACKS **\r\n\tpublic onSVGLoaded(event) {\r\n\t\tconsole.log('onSVGLoaded');\r\n\t\tconsole.log(event);\r\n\t\t// Si estamos animando el historico no cargamos todos los contenidos, dejamos que la animacion lo haga\r\n\t\tif (!this.subscription || this.subscription.closed) {\r\n\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t}\r\n\t\tthis.cambiandoPlanta = false;\r\n\t}\r\n\r\n\tpublic onSVGClicked(event) {\r\n\t\tconsole.log(event);\r\n\t}\r\n\r\n\tpublic onContentClicked(event){\r\n\t\tthis.dialogContenidosApilados = false;\r\n\t\tsetTimeout(() => {\r\n\r\n\r\n\t\t\r\n\t\tthis.positionDialogContenidosApiladosX = event.event.x - 200;\r\n\t\tif(event.event.y > 400){\r\n\t\t\tthis.positionDialogContenidosApiladosY = event.event.y + this.scrollTop - 330;\r\n\t\t}else{\r\n\t\t\tthis.positionDialogContenidosApiladosY = event.event.y + this.scrollTop + 20;\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\t\tlet x = event.x;\r\n\t\tlet y = event.y;\r\n\t\tthis.contenidosApilados = [];\r\n\t\tthis.selectedHistoric.forEach(element => {\r\n\t\t\tif(element.X === x && element.Y === y){\r\n\t\t\t\tthis.contenidosApilados.push(element);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif(this.contenidosApilados.length > 1){\r\n\t\t\tthis.dialogContenidosApilados = true;\r\n\t\t}\r\n\r\n\t\t}, 500);\r\n\t\t\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region ** Aux Pintar Fechas **\r\n\t/*convertirFechaUTC(fechaString){\r\n\t\tconst FechaUbicacionaux = new Date(fechaString);\r\n\t\tconst FechaUbicacion = new Date(Date.UTC(FechaUbicacionaux.getFullYear() , FechaUbicacionaux.getMonth() , FechaUbicacionaux.getDate() , FechaUbicacionaux.getHours() , FechaUbicacionaux.getMinutes() , FechaUbicacionaux.getSeconds()));\r\n\t\treturn FechaUbicacion;\r\n\t}\r\n\t*/\r\n\r\n\tgetDiaPintar(){\r\n\t\tif (this.arrayFechasDesde && this.arrayFechasDesde[this.frameActual]) {\r\n\t\t\t/*const fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\tconst fecha = this.convertirFechaUTC(fechaAux);\r\n\r\n\t\t\treturn fecha;*/\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\treturn fechaAux;\r\n\t\t}\r\n\t}\r\n\tgetHoraInicioPintar(){\r\n\t\tif (this.arrayFechasDesde && this.arrayFechasDesde[this.frameActual]) {\r\n/*\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\tconst fecha = this.convertirFechaUTC(fechaAux);\r\n\r\n\t\t\treturn fecha;*/\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\treturn fechaAux;\r\n\t\t}\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region ** Gestion Mensajes **\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tdescripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/HistoricoChart/historicoChart.component.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      {{contenido.Titulo}}{{contenido.Seccion}}
      Fecha Localización: {{contenido.FechaUltimaLocalizacion | date:'yyyy-MM-dd HH:mm:ss'}}
      \\r\\n
      \\r\\n\\r\\n

      Descripción Informe Localización Tiempo Real

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      Localización en Tiempo Real 

      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      {{rowData[col.field]}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t12345\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{nombrePlanta}} - {{plantaSeleccionada.Nivel.Nombre}}\\r\\n
      \\r\\n
      \\r\\n {{nombrePlanta}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n close\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n {{vertical.Nombre}}\\r\\n
      \\r\\n {{vertical.NumeroContenidos}}\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{planta.Nivel.Nombre}}
      \\r\\n
      \\r\\n {{planta.Contenidos.length}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.html\n// module id = ../../../../../src/app/componentes/LocalizacionChart/localizacionChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"body .ui-accordion-content {\\n background-color: #ffffff;\\n border: none; }\\n\\nbody .cabecera-acordeon {\\n width: 100%; }\\n\\n/* Tarjetas ALA */\\n\\n.acordeonDataGrid > div > div > div > p-panel {\\n /* background: rgb(225, 232, 238); */\\n border: solid 1px;\\n border-color: #c8d0d6;\\n border-radius: 10px;\\n /* box-shadow: 0 5px 10px rgba(0, 0, 0, 0.02), 0 6px 6px localizacion_header_acordeon_badgiergba(0, 0, 0, 0.1); */\\n -webkit-box-shadow: 0 1px 3px 0 #fffefe, 0 2px 2px 0 #fffefe, 0 0 2px 0 #fffefe;\\n box-shadow: 0 1px 3px 0 #fffefe, 0 2px 2px 0 #fffefe, 0 0 2px 0 #fffefe;\\n padding: 15px;\\n margin: 20px; }\\n\\n.acordeonDataGrid > div > div > div > p-panel > div {\\n /* background: rgb(225, 232, 238); */\\n border: solid 0; }\\n\\nbody .ala-cell {\\n color: white;\\n background-color: white;\\n padding: inherit; }\\n\\nbody .add-ala {\\n text-align: center;\\n padding: 20px; }\\n\\nbody .ala-nombre {\\n background-color: white;\\n font-size: 16px;\\n color: #898989; }\\n\\nbody .ala-imagen {\\n width: 100px;\\n height: 100px;\\n opacity: 0.5; }\\n\\n.contenedorDasboardsPantallaCompleta {\\n z-index: 100000000000;\\n /*height: calc(100vh);*/\\n min-height: 100%;\\n width: calc(100vw);\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: white; }\\n\\n.iconCloseDialog {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999;\\n /*\\r\\n margin-top: 14px;\\r\\n margin-left: 14px;\\r\\n */ }\\n\\n.iconCloseDialog:hover {\\n color: #000; }\\n\\n.localizacion_header_acordeon_badgie {\\n position: absolute;\\n right: 0;\\n top: 0;\\n margin: 7px;\\n margin-right: 17px;\\n border-radius: 50%;\\n padding: 3px;\\n height: 25px;\\n width: 25px;\\n background-color: #109AC8;\\n text-align: center;\\n color: white;\\n font-size: 110%; }\\n\\n.localizacion_elemento_acordeon {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n padding: 10px;\\n cursor: pointer;\\n border-bottom: solid 1px lightgrey; }\\n\\n.localizacion_elemento_acordeon:hover {\\n background-color: #e8e8e8; }\\n\\n.localizacion_elemento_acordeon_badgie {\\n right: 0;\\n top: 0;\\n margin: 7px;\\n border-radius: 50%;\\n padding: 3px;\\n height: 25px;\\n width: 25px;\\n background-color: #109AC8;\\n text-align: center;\\n color: white;\\n font-size: 110%; }\\n\\n.trDialog {\\n width: 100%;\\n border-bottom: solid 1px lightgrey; }\\n\\n.tdDialog {\\n font-size: 12px;\\n padding: 10px; }\\n\\n.icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\\n:host ::ng-deep .fijo {\\n position: absolute !important;\\n height: 300px !important; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar {\\n background: #6D7882;\\n border: 5px solid white;\\n color: white; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar .ui-dialog-title {\\n font-size: 14px; }\\n\\n:host ::ng-deep .ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-icon .fa {\\n color: white; }\\n\\n.tableDialog {\\n border-collapse: collapse; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.scss\n// module id = ../../../../../src/app/componentes/LocalizacionChart/localizacionChart.component.scss\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild, OnChanges, Output, HostListener } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService, LangChangeEvent } from 'ng2-translate';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { AppComponent } from '../../app.component';\r\nimport { Message, SelectItem } from 'primeng/primeng';\r\nimport { Tablita } from '../../domain/Tablita';\r\nimport { InformesService } from '../../providers/informes/informes.service';\r\nimport { Contenido } from '../../domain/Contenido';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { Predicate } from '../../../../node_modules/breeze-client';\r\nimport { Compass } from '../../domain/compass';\r\nimport { ConexionPlano, ContenidoPlano, NodoPlano, SeccionPlano, PlanoComponent} from 'interiores-mapa';\r\nimport { NotificacionPlano } from 'interiores-mapa/dist/notificacionPlano';\r\nimport { BeaconPlano } from 'interiores-mapa/dist/beaconPlano';\r\nimport { BalizaFormulario } from '../../domain/BalizaFormulario';\r\nimport { SeccionFormulario } from '../../domain/SeccionFormulario';\r\nimport { NodoFormulario } from '../../domain/NodoFormulario';\r\nimport * as d3RadialMenu from 'd3-radial-menu';\r\nimport { AlaFormulario } from '../../domain/AlaFormulario';\r\nimport { VerticalManager, Vertical, Planta } from '../../domain/Vertical';\r\n\r\n@Component({\r\n selector: 'app-localizacionchart',\r\n\ttemplateUrl: './localizacionChart.component.html',\r\n\tstyleUrls: ['./localizacionChart.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class AppLocalizacionChartComponent implements OnInit, OnDestroy, OnChanges {\r\n\t@Input() contenidosList: Contenido[] = [];\r\n\t@Input() tipologiasList = [];\r\n\r\n\t@ViewChild('dt') dt;\r\n\r\n\t@HostListener(\"window:scroll\", ['$event'])\r\n\tdoSomethingOnWindowsScroll($event:Event){\r\n\t\tlet target = $event.srcElement as HTMLTextAreaElement;\r\n\t \tthis.scrollTop = target.children[0].scrollTop;\r\n\t}\r\n\r\n\tlistaNiveles: any[] = [];\r\n\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n\tsecciones = [];\r\n\tplantaSeleccionada: Planta;\r\n\r\n\tnombrePlanta: String;\r\n\tpathPlano: String;\r\n\tzoomLevels: Number[]= [1, 1];\r\n\tcontents: ContenidoPlano[] = [];\r\n\tcurrentZoomLevel: number;\r\n\tzoomLevelsVisibilityLabels: Number[] = [1, 100];\r\n\r\n\t/*\r\n\t\tpathPlano: String;\r\n\t\tcurrentZoomLevel: number = 1;\r\n\t\tzoomLevels: Number[];\r\n\t\tpathSvgPlano: string;\r\n\t\tcompass: Compass;\r\n\t\tcursorPointer: string = '';\r\n\t\tfechaVisualizacion: Date = new Date();\r\n\r\n\t\t@ViewChild('plano') plano: PlanoComponent;\r\n\t*/\r\n\r\n\tpuntos = [];\r\n\tradius = 250;\r\n\topacity = 0.5;\r\n\testado = 'center';\r\n\r\n\r\n\r\n\tpublic Informes: Contenido[] = [];\r\n\tpublic Tabla: Tablita[] = [];\r\n\r\n public cols;\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\tpublic opcionesSelectorTipologia: SelectItem[] = [];\r\n\r\n\tverticalManager: VerticalManager;\r\n\tverticales: Vertical[] = [];\r\n\tmapaPantallaCompletaVisible: boolean;\r\n\r\n\t//tipologiasList;\r\n\ttipologia_Filter: string;\r\n\r\n\tpublic dialogContenidosApilados: boolean = false;\r\n\tpublic contenidosApilados: any;\r\n\tpublic positionDialogContenidosApiladosX: number;\r\n\tpublic positionDialogContenidosApiladosY: number;\r\n\tpublic positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\tpublic scrollTop: number = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate informeService: InformesService\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\t// Tabla Localizacion Tiempo Real\r\n\t\tthis.cols = [\r\n\t\t\t{ field: 'Titulo', header: this.translate.instant('Informes.Elemento'), visible: true, width: '20%' },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('Informes.Descripcion'), visible: true, width: '20%' },\r\n\t\t\t{ field: 'Tipo', header: this.translate.instant('Informes.Tipologias'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'PermaneceDesde', header: this.translate.instant('Informes.PermaneceDesde'), visible: false, width: '15%' },\r\n\t\t\t{ field: 'TiempoDesdeUltimaLocalizacion', header: this.translate.instant('Informes.TiempoDesdeUltimaLocalizacion'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('Informes.Seccion'), visible: true, width: '15%' },\r\n\t\t\t{ field: 'Localizacion', header: '', visible: false, width: '0%'}\r\n\t\t];\r\n\r\n\t\tthis.contenidosApilados = [];\r\n }\r\n\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof that.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t\tif (!this.verticalManager) {\r\n\t\t\tthis.verticalManager = new VerticalManager();\r\n\t\t}\r\n\r\n\t\tthis.cargarEntidades()\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(){\r\n\t\t\tconsole.log('*** Error: ngOnInit ***');\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tngOnChanges($event) {\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t\tif (!this.verticalManager) {\r\n\t\t\tthis.verticalManager = new VerticalManager();\r\n\t\t}\r\n\t\tthis.cargarEntidades()\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(){\r\n\t\t\tconsole.log('*** Error: ngOnChanges ***');\r\n\t\t});\r\n\t\tif (this.plantaSeleccionada ) {\r\n\t\t\tthis.cargarPlano(this.plantaSeleccionada );\r\n\t\t}\r\n\t}\r\n\tfilterTipologia(event, columna) {\r\n\t\tthis.dt.filter(event.Nombre, columna, 'equals');\r\n\t}\r\n\r\n\ttipoPintar(event){\r\n\t\tconst aux = event.Tipo;\r\n\t\treturn aux;\r\n\t}\r\n\r\n\tfilterLocalizacion(value, field, op){\r\n\t\tthis.dt.filter(value, 'Localizacion', op);\r\n\t}\r\n\r\n setScale(contenedorPlano, anchoMapa) {\r\n return (contenedorPlano.offsetWidth - 30) / anchoMapa;\r\n }\r\n\r\n\tverPlanoPlanta(event: Planta) {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.cargarPlano(event);\r\n\t\tthis.mapaPantallaCompletaVisible = true;\r\n\t}\r\n\r\n\tocultarPlanoPlanta(event: Planta) {\r\n\t\tthis.mapaPantallaCompletaVisible = false;\r\n\t}\r\n\r\n\r\n\tcargarEntidades(): Promise < any > {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.comprobarPermisos()\r\n\t\t.then(function(){\r\n\t\t\treturn that.obtenerNIVEL();\r\n\t\t})\r\n\t\t.then(function(niveles) {\r\n\t\t\tniveles.forEach(nivel => {\r\n\t\t\t\tfor (let index = 0; index < nivel.ALAS.length; index++) {\r\n\t\t\t\t\tif (index === nivel.ALAS.length - 1) {\r\n\t\t\t\t\t\tconst ala = nivel.ALAS[index];\r\n\t\t\t\t\t\tala.esLaUltima = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tobtenerNIVEL() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tlet includes = 'ESPACIO';\r\n\t\tincludes = includes + ', IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS';\r\n\t\tincludes = includes + ', ALAS.IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS.NODOS.CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\r\n\t\treturn entityManager.getNIVEL(predicado, includes)\r\n\t\t.then(function(niveles){\r\n\t\t\tif (niveles) {\r\n\t\t\t\tlet nivelAlas = niveles.find(n => n.ALAS.length > 1);\r\n\t\t\t\tthat.listaNiveles = niveles;\r\n\t\t\t\tif(nivelAlas){\r\n\t\t\t\t\tthat.verticales = that.verticalManager.generarVerticalesFromNIVELES(niveles);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthat.verticales = that.verticalManager.generarVerticalesFromESPACIO(niveles);\r\n\t\t\t\t\tconsole.log(that.verticales)\r\n\t\t\t\t}\r\n\t\t\t\tthat.verticalManager.asignarContenidosAVerticales(that.verticales, that.contenidosList, nivelAlas);\r\n\r\n\t\t\t}\r\n\t\t\treturn that.listaNiveles;\r\n\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconsole.error(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic onSVGLoaded(event, alaSeleccionada) {\r\n\t\tif (this.plantaSeleccionada) {\r\n\t\t\tthis.contents = this.verticalManager.getContenidosPlano(this.plantaSeleccionada);\r\n\t\t\tthis.contents = Object.assign([], this.contents);\r\n\t\t}\r\n\t\t//ocultar Spinner\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tcargarPlano(event) {\r\n\t\tthis.plantaSeleccionada = event;\r\n\t\tthis.zoomLevels = [this.plantaSeleccionada.Ala.zoomMinimo, this.plantaSeleccionada.Ala.zoomMaximo];\r\n\t\tthis.zoomLevelsVisibilityLabels = this.zoomLevels;\r\n\t\tthis.currentZoomLevel = 1;\r\n\t\tconst cambioPlano = this.plantaSeleccionada.Ala.RutaImagen !== this.pathPlano;\r\n\t\tthis.pathPlano = this.plantaSeleccionada.Ala.RutaImagen;\r\n\t\tthis.nombrePlanta = this.plantaSeleccionada.Nombre;\r\n\t\t// Si no cambio el plano no se va a llamar a onSVGLoad y no se refrescan los contanidos asi que los refresco manualmente\r\n\t\tif (!cambioPlano){\r\n\t\t\tif (this.plantaSeleccionada) {\r\n\t\t\t\tthis.contents = this.verticalManager.getContenidosPlano(this.plantaSeleccionada);\r\n\t\t\t\tthis.contents = Object.assign([], this.contents);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n /****** AUX ********/\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tpublic onContentClicked(event){\r\n\t\tthis.dialogContenidosApilados = false;\r\n\t\tsetTimeout(() => {\r\n\r\n\r\n\t\t\r\n\t\tthis.positionDialogContenidosApiladosX = event.event.x - 200;\r\n\t\tif(event.event.y > 400){\r\n\t\t\tthis.positionDialogContenidosApiladosY = event.event.y + this.scrollTop - 330;\r\n\t\t}else{\r\n\t\t\tthis.positionDialogContenidosApiladosY = event.event.y + this.scrollTop + 20;\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\r\n\t\tlet x = event.x;\r\n\t\tlet y = event.y;\r\n\t\tthis.contenidosApilados = [];\r\n\t\tthis.contenidosList.forEach(element => {\r\n\t\t\tif(element.X === x && element.Y === y){\r\n\t\t\t\tlet contenidoSimbolo = this.contents.find(contenido => contenido.getId() === element.Id);\r\n\t\t\t\tlet simbolo: string = contenidoSimbolo.getSimbolo().toString();\r\n\t\t\t\telement.CONTENIDO_PLANO.setSimbolo(simbolo);\r\n\t\t\t\tthis.contenidosApilados.push(element);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif(this.contenidosApilados.length > 1){\r\n\t\t\tthis.dialogContenidosApilados = true;\r\n\t\t}\r\n\r\n\t\t}, 500);\r\n\t\t\r\n\t}\r\n\r\n\tdescripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/LocalizacionChart/localizacionChart.component.ts","module.exports = \"\\r\\n

      Descripción Informe Ocupación

      \\r\\n
      \\r\\n
      \\r\\n

      Ocupación 

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{maxRange}}
      \\r\\n
      {{redondeo(4*maxRange/5)}}
      \\r\\n
      {{redondeo(3*maxRange/5)}}
      \\r\\n
      {{redondeo(2*maxRange/5)}}
      \\r\\n
      {{redondeo(1*maxRange/5)}}
      \\r\\n
      0
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      1\\\" id=\\\"ocupacion_lado_derecho\\\" class=\\\"ui-g-4\\\">\\r\\n
      \\r\\n
      \\r\\n
      {{this.alasDrop[i].label}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.html\n// module id = ../../../../../src/app/componentes/OcupacionChart/ocupacionChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pulsador {\\n cursor: pointer; }\\n\\n.degradado {\\n /*background-image: linear-gradient(rgb(201,118,118), rgb(142,179,212));*/\\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ff0014), color-stop(#d7ff00), to(#0500ff));\\n background-image: linear-gradient(#ff0014, #d7ff00, #0500ff);\\n background-repeat: 'no-repeat';\\n height: 300px;\\n width: 10px;\\n margin: 10px; }\\n\\n.degradadoTX {\\n margin-left: 15px;\\n height: 50px;\\n width: 40px;\\n text-align: left;\\n font-weight: bold;\\n font-size: 10px;\\n padding-top: 10px; }\\n\\n.barraLegend {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-pack: distribute;\\n justify-content: space-around;\\n margin-top: 10px; }\\n\\n.iconDownload {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999; }\\n\\n.iconDownload:hover {\\n color: #000; }\\n\\n.iconMaximize {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999; }\\n\\n.iconMaximize:hover {\\n color: #000; }\\n\\n.mensaje {\\n font-size: 25px;\\n text-align: left; }\\n\\n.dropTipo {\\n padding: 2px; }\\n\\n.iconosDiv {\\n float: right; }\\n\\n.iconCloseDialog {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999;\\n margin-top: 14px;\\n margin-left: 14px; }\\n\\n.iconCloseDialog:hover {\\n color: #000; }\\n\\n.iconCloseBoxDialog {\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px; }\\n\\n.icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\\n/*\\r\\n.containerPlano{\\r\\n perspective: 500px;\\r\\n}\\r\\n\\r\\n.plano{\\r\\n transform: scaleZ(1.5) rotateX(55deg);\\r\\n}\\r\\n\\r\\n.planoExt{\\r\\n\\r\\n}\\r\\n\\r\\n*/\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.scss\n// module id = ../../../../../src/app/componentes/OcupacionChart/ocupacionChart.component.scss\n// module chunks = main","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n OnInit,\r\n ViewChild,\r\n OnChanges,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { SeccionPlano, PlanoComponent } from 'interiores-mapa';\r\nimport { zoomCenterCoordsPlano } from 'interiores-mapa/dist/zoomCenterCoordsPlano';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { AlaFormulario } from '../../domain/AlaFormulario';\r\nimport { ServiciosStatsProvider } from '../../providers/web-service-service/servicios-stats';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { TranslateService } from '../../../../node_modules/ng2-translate';\r\nimport { Message } from '_debugger';\r\n\r\ntype PaneType = 'left' | 'right';\r\n\r\nconst COLORES2 = [\r\n [255, 14, 240],\r\n [255, 160, 0],\r\n [5, 0, 255],\r\n];\r\n\r\nconst COLORES = [\r\n [255, 0, 20],\r\n [215, 255, 0],\r\n [5, 0, 255],\r\n];\r\n\r\nconst VISITANODOS = 0;\r\nconst VISITAUSUARIOS = 1;\r\nconst BUSCACONTENIDO = 2;\r\n\r\n@Component({\r\n selector: 'app-ocupacionchart',\r\n templateUrl: './ocupacionChart.component.html',\r\n styleUrls: ['./ocupacionChart.component.scss'],\r\n providers: [EntityManagerProvider]\r\n})\r\n\r\nexport class AppOcupacionChartComponent implements OnInit, OnChanges {\r\n // @ViewChild('contenedorPlano') contenedorPlano: any;\r\n @ViewChild('plano') plano: PlanoComponent;\r\n @ViewChildren('contenedorPlano') contenedoresPlano;\r\n\r\n\tmsgs: Message[] = [];\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\r\n // Filtros fecha\r\n dateRange = {\r\n inicio: null,\r\n fin: null,\r\n lastMinutes: null\r\n };\r\n filtroDesde;\r\n filtroHasta;\r\n startHourDefault: any;\r\n\tfinHourDefault: any;\r\n\r\n // Plano\r\n listaAlasFormulario = []; // Lista de las AlaFormulario\r\n numAla = 0; // Indice de AlaFormularioSeleccionada\r\n alasDrop = []; // Lista de Alas para el DropDown\r\n alasSVG = []; // Lista SVGs de las Alas\r\n\r\n secciones = [];\r\n seccionesPre = [];\r\n seccionesHot = {};\r\n\r\n nodosDeLaConsulta = [];\r\n\r\n zoomIniciado;\r\n zoomAndCenterCoords;\r\n anchoMapa;\r\n altoMapa;\r\n\r\n planoData = {\r\n width: 0,\r\n height: 0,\r\n };\r\n\r\n\r\n // Seleccion de rango de fechas\r\n rangoFechasSeleccionado;\r\n numTipo;\r\n\r\n // stats\r\n consulta = [];\r\n visitasNodo = [];\r\n visitasSeccion = [];\r\n\r\n // Variables que alimentan lib-mapa-calor\r\n pathPlano = '';\r\n puntos = {}; // Es un mapa con key pathPlano y value point[]\r\n radius = 250;\r\n opacity = 0.5;\r\n scale = 0.3;\r\n useOpacity = true;\r\n maxRange = 0;\r\n\r\n idiomaCalendario: IdiomaCalendario;\r\n\r\n public positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\r\n constructor(\r\n public sws: ServiciosWebServiceProvider,\r\n public authenticationService: AuthenticationService,\r\n public statsService: ServiciosStatsProvider,\r\n private entityManagerProvider: EntityManagerProvider,\r\n private translate: TranslateService,\r\n ) {\r\n\r\n // Inicializamos Spinner\r\n this.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n this.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n this.blockUI.style.display = 'none';\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n this.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n console.log('Method ngOnInit.');\r\n this.cargarALAs('ngOnInit');\r\n }\r\n\r\n clickEventHandler(item, i){\r\n console.log(item);\r\n this.cambiarPlanta({value: i});\r\n }\r\n\r\n ngOnChanges() {\r\n console.log('Method ngOnChanges.');\r\n this.cargaSecciones();\r\n this.zoomIniciado = false;\r\n }\r\n\r\n onFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tthis.filtroDesde = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tthis.filtroHasta = fecha;\r\n\t\t}\r\n\r\n\t\tthis.cargaSecciones();\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n onChangeRangeDate() {\r\n this.dateRange.inicio = this.filtroDesde;\r\n this.dateRange.fin = this.filtroHasta;\r\n this.onChangeRangeHotMap(this.dateRange);\r\n }\r\n\r\n //#region COPPONENTE rangeFilter\r\n\tonChangeRangeHotMap(dateRange){\r\n\t\tconsole.log('----------- EJECUTADO onChangeRangeHotMap');\r\n\t\tconsole.log(dateRange);\r\n\r\n\r\n\t\tconst idEspacio = this.authenticationService.getIdEspacio();\r\n\t\tconst timeCache = 0; // this.calculaTimeCache();\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tconst that = this;\r\n\r\n\t\tconst ahora = new Date();\r\n\t\tconst horaFin = ahora.getHours() * 100 + ahora.getMinutes();\r\n\t\tlet horaIni = horaFin;\r\n\r\n\t\tconst fInicio = this.statsService.fechaToCubefec(dateRange.inicio);\r\n\t\tconst fFin = this.statsService.fechaToCubefec(dateRange.fin) ;\r\n\t\tconst rangoF = fInicio.fecha + ',' + fFin.fecha;\r\n\r\n\t\t// let group = 'Seccion,Usuario,Fecha';\r\n\t\tlet group = 'Nodo,Usuario,Fecha';\r\n\t\tif (dateRange.lastMinutes != null){\r\n\t\t\tgroup += ',Hora';\r\n\t\t\thoraIni -= dateRange.lastMinutes;\r\n\t\t}\r\n\r\n\t\tconst filtro = {\r\n\t\t\tGroup: group,\r\n\t\t\tRangeFecha: rangoF,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tOrder: 'Nodo',\r\n\t\t\tcache: 'CUBEDASH1_RV_' + rangoF + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\treturn this.statsService.statsVisitaCuenta(token, filtro, function (res) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tif (dateRange.lastMinutes != null){\r\n\t\t\t\tconst _finLista = [];\r\n\t\t\t\tfor (const _i in res.lista){\r\n\t\t\t\t\tconst _reg = res.lista[_i];\r\n\t\t\t\t\tconst _hora = parseInt(_reg.Hora, 0);\r\n\t\t\t\t\tif (horaIni <= _hora && _hora <= horaFin){\r\n\t\t\t\t\t\t_finLista.push(_reg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tres.lista = _finLista;\r\n\t\t\t}\r\n\r\n\t\t\tconst agrupa = function(xs, key) {\r\n\t\t\t\treturn xs.reduce(function(rv, x) {\r\n\t\t\t\t (rv[x[key]] = rv[x[key]] || []).push(x);\r\n\t\t\t\t return rv;\r\n\t\t\t\t}, {});\r\n\t\t\t };\r\n\r\n\t\t\tconst _nuevaLista = agrupa(res.lista, 'Seccion');\r\n\r\n\t\t\tconst _nuevaLista2 = [];\r\n\t\t\tfor (const _i in _nuevaLista){\r\n\t\t\t\tconst total = _nuevaLista[_i].length;\r\n\t\t\t\tif (total === 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_nuevaLista[_i][0].Total = total;\r\n\t\t\t\t_nuevaLista2.push(_nuevaLista[_i][0]);\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthat.visitasSeccion = _nuevaLista2;\r\n\r\n\t\t\tconsole.log('visitasSeccion: ');\r\n\t\t\tconsole.log(that.visitasSeccion);\r\n\r\n\t\t\t// TODO: Añadido 27/02/2020: Vamos a hacer una consulta por Nodos:\r\n\t\t\tconst _nuevaListaNodos = agrupa(res.lista, 'Nodo');\r\n\r\n\t\t\tconst _nuevaLista2Nodos = [];\r\n\t\t\tfor (const _i in _nuevaListaNodos){\r\n\t\t\t\tconst total = _nuevaListaNodos[_i].length;\r\n\t\t\t\tif (total === 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_nuevaListaNodos[_i][0].Total = total;\r\n\t\t\t\t_nuevaLista2Nodos.push(_nuevaListaNodos[_i][0]);\r\n\r\n\t\t\t}\r\n\r\n that.visitasNodo = _nuevaLista2Nodos;\r\n that.cargaSecciones();\r\n\t\t});\r\n\r\n\t}\r\n //#endregion\r\n\r\n redondeo(num) {\r\n return Math.floor(num);\r\n }\r\n\r\n setScale(contenedorPlano, anchoMapa) {\r\n\r\n const escala = (contenedorPlano.offsetWidth - 30) / anchoMapa;\r\n const digits = 3;\r\n\r\n let n = escala - Math.pow(10, -digits) / 2;\r\n n += n / Math.pow(2, 53); // added 1360765523: 17.56.toFixedDown(2) === \"17.56\"\r\n return n.toFixed(digits);\r\n }\r\n\r\n setRadius(IconoContenidoScale) {\r\n this.radius = this.radius * IconoContenidoScale * 0.8;\r\n }\r\n\r\n getFirsAla() {\r\n if (this.alasDrop && this.alasDrop.length > 0) {\r\n return this.alasDrop[0].label;\r\n }\r\n return '';\r\n }\r\n\r\n cambiarPlanta(res) {\r\n // console.log(this.alas[res.value]);\r\n this.numAla = res.value;\r\n if (this.numAla >= this.seccionesPre.length) {\r\n this.numAla = 0;\r\n }\r\n this.cargaSecciones();\r\n }\r\n\r\n\r\n cargaSecciones() {\r\n console.log('--------------- EJECUTO cargaSecciones');\r\n let max = 0;\r\n let all = 0;\r\n\r\n this.seccionesHot = {};\r\n\r\n if (!this.visitasNodo) {\r\n return;\r\n }\r\n\r\n this.visitasNodo.forEach((element) => {\r\n this.seccionesHot[element.Seccion] = {\r\n Total: element.Total,\r\n };\r\n\r\n all += element.Total;\r\n if (max < element.Total) {\r\n max = element.Total;\r\n }\r\n });\r\n\r\n this.maxRange = max;\r\n\r\n this.visitasNodo.forEach((element) => {\r\n const perc = Math.floor((element.Total * 100) / max);\r\n const percAll = Math.floor((element.Total * 100) / all);\r\n this.seccionesHot[element.Seccion]['percentageAll'] = percAll;\r\n this.seccionesHot[element.Seccion]['percentage'] = perc;\r\n this.seccionesHot[element.Seccion]['color'] = this.pickHex(\r\n perc / 100\r\n );\r\n });\r\n\r\n this.nodosDeLaConsulta = [];\r\n this.visitasNodo.forEach((element) => {\r\n this.nodosDeLaConsulta.push(element);\r\n });\r\n\r\n this.cargarALAs('cargaSecciones');\r\n }\r\n\r\n cargarALAs(id: String) {\r\n console.log('--------------- EJECUTO cargarALAs');\r\n\r\n for (const key of Object.keys(this.puntos)) {\r\n this.puntos[key] = [];\r\n }\r\n\r\n // const newId = id;\r\n const alaActual = this.listaAlasFormulario[this.numAla];\r\n let idAlaActual;\r\n\r\n // TODO: Revisar que se cambia bien el radius dependiendo de la escala del icono\r\n if (id === 'cargaSecciones'){\r\n idAlaActual = alaActual.Id;\r\n this.setRadius(alaActual.IconoContenidoScale);\r\n }\r\n\r\n const that = this;\r\n const entityManager = that.entityManagerProvider;\r\n let includes = 'NIVEL, ';\r\n includes = includes + 'SECCIONS.NODOS';\r\n this.spinner.style.display = 'inherit';\r\n return entityManager\r\n .getALAById(undefined, includes)\r\n .then(function (entidades) {\r\n if (!entidades || entidades.length < 1) {\r\n } else {\r\n let i = 0;\r\n\r\n if (id === 'ngOnInit') {\r\n that.alasDrop = [];\r\n }\r\n const _seccionesFormat = {};\r\n\t\t entidades.sort( function(a, b) {\r\n\t\t\tif ( a.NIVEL.NivelVertical === b.NIVEL.NivelVertical) {\r\n\t\t\t return a.Nomobre.localeCompare(b.Nomobre) ;\r\n\t\t\t}\r\n\t\t\treturn a.NIVEL.NivelVertical - b.NIVEL.NivelVertical;\r\n\t\t });\r\n entidades.forEach((element) => {\r\n const oAlaForm = new AlaFormulario(element);\r\n\r\n // Modificado Jeronimo 14/04/2020: Antes de cargar las alas en listaAlasFormulario, busco si el ala ya está en esa lista y si ya está no la vuelvo a añadir.\r\n const alaEncontradaAux = that.listaAlasFormulario.find(\r\n (a) => a.Id === oAlaForm.Id\r\n );\r\n if (alaEncontradaAux) {\r\n // No hago nada.\r\n } else {\r\n that.listaAlasFormulario.push(oAlaForm);\r\n }\r\n\r\n // that.listaAlasFormulario.push(oAlaForm);\r\n if (id === 'ngOnInit') {\r\n that.alasSVG.push(element.RutaImagen);\r\n that.seccionesPre.push(element.SECCIONS);\r\n that.alasDrop.push({\r\n label: element.Nomobre === element.NIVEL.Nombre ? element.Nomobre : element.Nomobre + ' - ' + element.NIVEL.Nombre,\r\n value: i,\r\n });\r\n\r\n }\r\n\r\n\r\n element.SECCIONS.forEach((_sec) => {\r\n _seccionesFormat[_sec.Id] = {\r\n nombre: _sec.Nombre,\r\n };\r\n\r\n _sec.NODOS.forEach((_nod) => {\r\n // x sería el índice del elemento en el array de nodosDeLaConsulta\r\n let enc = false;\r\n let x = 0;\r\n const tam = that.nodosDeLaConsulta.length;\r\n while (x < tam && !enc) {\r\n if (\r\n _nod.Id ===\r\n that.nodosDeLaConsulta[x].Nodo\r\n ) {\r\n enc = true;\r\n } else {\r\n x = x + 1;\r\n }\r\n }\r\n if (enc) {\r\n const point = {\r\n id: _nod.Id,\r\n x: _nod.X,\r\n y: _nod.Y,\r\n value: that.nodosDeLaConsulta[x].Total,\r\n };\r\n // that.puntos.push(point);\r\n if (that.puntos[element.RutaImagen] === undefined) {\r\n that.puntos[element.RutaImagen] = [];\r\n }\r\n // Comprobamos si ya existia el punto y si existia le cambiamos el valor\r\n const puntoEncontrado = that.puntos[element.RutaImagen].find(\r\n (a) => a.id === point.id\r\n );\r\n\r\n if (puntoEncontrado) {\r\n const index = that.puntos[element.RutaImagen].indexOf(puntoEncontrado);\r\n that.puntos[element.RutaImagen][index] = point;\r\n }\r\n else {\r\n that.puntos[element.RutaImagen].push(point);\r\n }\r\n\r\n }\r\n });\r\n });\r\n that.puntos[element.RutaImagen] = Object.assign([], that.puntos[element.RutaImagen]);\r\n i++;\r\n });\r\n\r\n console.log(\r\n 'DATOS DE LOS PUNTOS DE LOS NODOS A MOSTRAR EN EL MAPA:'\r\n );\r\n console.log(that.puntos);\r\n\r\n that.puntos = Object.assign([], that.puntos);\r\n }\r\n // Fin Else\r\n\r\n // that.addSecciones(0);\r\n const alaNueva = that.alasSVG[that.numAla];\r\n\r\n if (alaNueva === that.pathPlano) {\r\n // Si NO hemos cambiado de ala añadimos las secciones del Ala actual por si estas han cambiado\r\n that.addSecciones(that.numAla);\r\n } else {\r\n // Si hemos cambiado de ala seteamos that.pathPlano que deipara cargarAla -> onSVGLoaded -> CargarSecciones\r\n that.pathPlano = alaNueva;\r\n }\r\n\r\n that.setCurrentTransform();\r\n setTimeout(function () {\r\n that.zoomIniciado = true;\r\n }, 2000);\r\n const token = that.authenticationService.getToken();\r\n const idEspacio = that.authenticationService.getIdEspacio();\r\n return that.sws\r\n .wsGetGeocalibracionAlasEspacio(token, idEspacio)\r\n .toPromise();\r\n })\r\n .then(function (resp: any) {\r\n\t\tconsole.log('GEOCALIBRACION_ALA: ', resp.GeocalibracionAlas);\r\n\r\n that.listaAlasFormulario.forEach((ala) => {\r\n const aux = resp.GeocalibracionAlas.find(\r\n (g) => g.IdAla === ala.Id\r\n );\r\n // console.log(aux);\r\n ala.GEOCALIBRACION_ALA = aux;\r\n });\r\n const alaSeleccionada = that.listaAlasFormulario.find(\r\n (a) => a.RutaImagen === that.alasSVG[that.numAla]\r\n );\r\n that.anchoMapa =\r\n alaSeleccionada.GEOCALIBRACION_ALA !== undefined\r\n ? alaSeleccionada.GEOCALIBRACION_ALA.SVG_width\r\n : that.anchoMapa;\r\n that.altoMapa =\r\n alaSeleccionada.GEOCALIBRACION_ALA !== undefined\r\n ? alaSeleccionada.GEOCALIBRACION_ALA.SVG_height\r\n : that.altoMapa;\r\n\t\t\tconsole.log(\"Ancho: \" , that.anchoMapa, \"Alto: \", that.altoMapa);\r\n\r\n if (alaSeleccionada.GEOCALIBRACION_ALA === undefined) {\r\n console.error(\r\n 'No existe GEOCALIBRACION_ALA para este ALA: ' +\r\n alaSeleccionada.id +\r\n ', si se quiere que el plano se vea bien ha de insertarse en base de datos una GEOCALIBRACION_ALA minimo con SVG_width y SVG_height'\r\n );\r\n }\r\n that.spinner.style.display = 'none';\r\n });\r\n }\r\n\r\n addSecciones(num) {\r\n console.log('*** Add Secciones ***');\r\n if (this.seccionesPre.length <= num) {\r\n return;\r\n }\r\n\r\n const _seccs = [];\r\n this.seccionesPre[num].forEach((seccion) => {\r\n let color = this.pickHex(0);\r\n let nombre = seccion.Nombre; // + '[' + seccion.Id + ']';\r\n if (this.seccionesHot && this.seccionesHot[seccion.Id]) {\r\n color = this.seccionesHot[seccion.Id].color;\r\n\r\n nombre +=\r\n ' ' +\r\n this.seccionesHot[seccion.Id].Total +\r\n ' visitas (' +\r\n this.seccionesHot[seccion.Id].percentageAll +\r\n '%) ';\r\n }\r\n\r\n const seccionCoordenadasPoligono: Array<\r\n Array\r\n > = !seccion.CoordenadasPoligono\r\n ? null\r\n : JSON.parse(seccion.CoordenadasPoligono);\r\n const seccionPlano = new SeccionPlano(\r\n seccion.Id,\r\n nombre,\r\n seccionCoordenadasPoligono,\r\n 1,\r\n 1\r\n );\r\n seccionPlano.ENTIDAD = seccion;\r\n seccionPlano.fill = color;\r\n seccionPlano.stroke = color;\r\n seccionPlano.strokeWidth = '5';\r\n seccionPlano.hoverFill = color;\r\n seccionPlano.hoverStroke = color;\r\n _seccs.push(seccionPlano);\r\n });\r\n this.secciones = _seccs;\r\n }\r\n\r\n setCurrentTransform() {\r\n const _key = 'MAPPOS_' + this.alasSVG[this.numAla];\r\n const dat = localStorage.getItem(_key);\r\n\r\n let current: any = {};\r\n if (dat) {\r\n current = JSON.parse(dat);\r\n }\r\n\r\n if (!current.k) {\r\n return;\r\n }\r\n\r\n const _width = this.planoData.width; // DCANETE Revisar W\r\n const _height = this.planoData.height; // DCANETE Revisar H\r\n\r\n this.zoomAndCenterCoords = new zoomCenterCoordsPlano(\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n current.k,\r\n [_width / 2, _height / 2]\r\n );\r\n }\r\n\r\n\r\n pickHex(weight) {\r\n let color1 = COLORES[0];\r\n let color2 = COLORES[1];\r\n let multi = 1;\r\n if (weight < 0.5) {\r\n color1 = COLORES[1];\r\n color2 = COLORES[2];\r\n multi = 2;\r\n }\r\n\r\n const w1 = weight * multi;\r\n const w2 = 1 - w1;\r\n\r\n const rgb = [\r\n Math.round(color1[0] * w1 + color2[0] * w2),\r\n Math.round(color1[1] * w1 + color2[1] * w2),\r\n Math.round(color1[2] * w1 + color2[2] * w2),\r\n ];\r\n\r\n return 'rgba(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ',0.8)';\r\n }\r\n\r\n descripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/OcupacionChart/ocupacionChart.component.ts","module.exports = \"\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      \\r\\n Otras imágenes\\r\\n

      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n \\r\\n \\r\\n
        \\r\\n\\r\\n\\r\\n
        \\r\\n \\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.html\n// module id = ../../../../../src/app/componentes/carrouselFotos/carrouselFotos.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".box {\\n display: inline-block;\\n width: 200px;\\n margin-right: 10px;\\n margin-bottom: 10px;\\n cursor: pointer; }\\n .box.sortable.dragging {\\n color: transparent;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat; }\\n .boxDetalle {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n margin: 0;\\n padding: 0;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap; }\\n .boxDetalle img {\\n margin-top: 20px; }\\n ul {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n margin: 0;\\n padding: 0;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column; }\\n ul.horizontal {\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap; }\\n #custom-input-carrousel {\\n display: none; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.scss\n// module id = ../../../../../src/app/componentes/carrouselFotos/carrouselFotos.component.scss\n// module chunks = main","\r\nimport { Component, EventEmitter, Output , OnInit, SimpleChanges, ViewChild, ElementRef, Input, OnDestroy, OnChanges} from '@angular/core';\r\nimport { contenidosModuleRoutes } from '../../modules/contenidos.module';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { SortEvent } from './draggable/sortable-list.directive';\r\nimport { Foto } from '../../domain/Foto';\r\n\r\n\r\n@Component({\r\n selector: 'app-carrousel-fotos',\r\n templateUrl: './carrouselFotos.component.html',\r\n styleUrls: ['./carrouselFotos.component.scss']\r\n})\r\n\r\n\r\nexport class CarrouselFotosComponent implements OnInit, OnChanges {\r\n\r\n\r\n\tpublic subidaFoto: boolean; \r\n\t @ViewChild('fileUploader') fileUploader:ElementRef;\r\n\t @Input() fotos: Foto[] = [];\r\n\t @Output() nuevoCarrusel = new EventEmitter();\r\n\r\n\tconstructor(\r\n\t\tprivate entityManager: EntityManagerProvider\r\n\t\t)\r\n\t{\r\n\t\tthis.subidaFoto = true;\r\n\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.subidaFoto = true;\r\n\t}\r\n\tngOnChanges(change) {\r\n\r\n\t\tif (change.fotos) {\r\n\t\t\tthis.fotos = change.fotos.currentValue;\r\n\t\t\tthis.subidaFoto = false;\r\n\t\t\tthis.fotos = this.ordenarCarrusel(this.fotos);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tordenarCarrusel(fotos){\r\n\t\tfotos.sort(function (a, b) {\r\n\t\t\tif (a.Orden > b.Orden) {\r\n\t\t\t return 1;\r\n\t\t\t}\r\n\t\t\tif (a.Orden < b.Orden) {\r\n\t\t\t return -1;\r\n\t\t\t}\r\n\t\t\t// a must be equal to b\r\n\t\t\treturn 0;\r\n\t\t });\r\n\t\t return fotos;\r\n\t}\r\n\r\n\r\n\t sort(event: SortEvent) {\r\n\t \tconst current = this.fotos[event.currentIndex];\r\n\t \tconst swapWith = this.fotos[event.newIndex];\r\n\t\r\n\t \tthis.fotos[event.newIndex] = current;\r\n\t \tthis.fotos[event.currentIndex] = swapWith;\r\n\t\tthis.fotos[event.newIndex].Orden = event.newIndex;\r\n\t\tthis.fotos[event.currentIndex].Orden = event.currentIndex;\r\n\t\tthis.nuevoCarrusel.emit(this.fotos)\r\n\t\t\r\n\t }\r\n\t eliminarFoto(foto: any){\r\n\t \tlet nuevoArray = this.fotos.filter((item) => item !== foto)\r\n\t \tthis.fotos = nuevoArray;\r\n\t\tthis.nuevoCarrusel.emit(this.fotos)\r\n\t }\r\n\r\n\t subirFotoCarrusel(event){\r\n\t \tthis.subidaFoto = true;\r\n\t \tconst that = this;\r\n\r\n\t \tconst file: File = event.target.files[0];\r\n\t\tlet foto = new Foto();\r\n\t\tfoto.File = file;\r\n\t\tfoto.Orden = this.fotos.length;\r\n\t\tfoto.Tipo = 1;\r\n\t\tfoto.Id = 'undefined';\r\n\t \tif (FileReader && file) {\r\n\t\tconst fr = new FileReader();\r\n\t\t \t\tfr.onload = e => {\r\n\t\t \t\t\t//this.srcNuevaImagenDetalle = e.target.result\r\n\t\t\t\t\t foto.UrlFotoExt = e.target.result;\r\n\t \t\t\t\tthis.fotos.push(foto);\r\n\t\t\t\t \tthis.nuevoCarrusel.emit(this.fotos)\r\n\t\t\t\t \tthis.subidaFoto = false;\r\n\t \t\t\t\r\n\t\t\t\t\r\n\t \t\t};\r\n\t \t\tfr.readAsDataURL(file);\r\n\t \t}\r\n\t \tthis.fileUploader.nativeElement.value = null;\r\n\r\n\r\n\t }\r\n\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/carrouselFotos.component.ts","import { Directive, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { DraggableDirective } from './draggable.directive';\r\nimport { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\n\r\n@Directive({\r\n selector: '[appDraggableHelper]',\r\n exportAs: 'appDraggableHelper'\r\n})\r\nexport class DraggableHelperDirective implements OnInit, OnDestroy {\r\n private overlayRef: OverlayRef;\r\n private positionStrategy = new GlobalPositionStrategy(document);\r\n private startPosition?: { x: number; y: number };\r\n\r\n constructor(private draggable: DraggableDirective,\r\n private templateRef: TemplateRef,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay) { }\r\n\r\n ngOnInit(): void {\r\n this.draggable.dragStart.subscribe(event => this.onDragStart(event));\r\n this.draggable.dragMove.subscribe(event => this.onDragMove(event));\r\n this.draggable.dragEnd.subscribe(() => this.onDragEnd());\r\n\r\n // create an overlay...\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.positionStrategy\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // remove the overlay...\r\n this.overlayRef.dispose();\r\n }\r\n\r\n private onDragStart(event: PointerEvent): void {\r\n // determine relative start position\r\n const clientRect = this.draggable.element.nativeElement.getBoundingClientRect();\r\n\r\n this.startPosition = {\r\n x: event.clientX - clientRect.left,\r\n y: event.clientY - clientRect.top\r\n };\r\n\r\n // added after YouTube video: width\r\n this.overlayRef.overlayElement.style.width = `${clientRect.width}px`;\r\n }\r\n\r\n private onDragMove(event: PointerEvent): void {\r\n if (!this.overlayRef.hasAttached()) {\r\n // render the helper in the overlay\r\n this.overlayRef.attach(new TemplatePortal(this.templateRef, this.viewContainerRef));\r\n // added after YouTube video: width\r\n const rootElement = this.overlayRef.overlayElement.firstChild as HTMLElement;\r\n rootElement.style.width = '100%';\r\n rootElement.style.boxSizing = 'border-box';\r\n }\r\n\r\n // position the helper...\r\n this.positionStrategy.left(`${event.clientX - this.startPosition.x}px`);\r\n this.positionStrategy.top(`${event.clientY - this.startPosition.y}px`);\r\n this.positionStrategy.apply();\r\n }\r\n\r\n private onDragEnd(): void {\r\n // remove the helper from the overlay\r\n this.overlayRef.detach();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable-helper.directive.ts","import { Directive, EventEmitter, HostBinding, HostListener, Output, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDraggable]'\r\n})\r\nexport class DraggableDirective {\r\n @HostBinding('class.draggable') draggable = true;\r\n\r\n pointerId?: number;\r\n\r\n // to trigger pointer-events polyfill\r\n @HostBinding('attr.touch-action') touchAction = 'none';\r\n\r\n @Output() dragStart = new EventEmitter();\r\n @Output() dragMove = new EventEmitter();\r\n @Output() dragEnd = new EventEmitter();\r\n\r\n @HostBinding('class.dragging') dragging = false;\r\n\r\n constructor(public element: ElementRef) {}\r\n\r\n @HostListener('pointerdown', ['$event'])\r\n onPointerDown(event: PointerEvent): void {\r\n // added after YouTube video: ignore right-click\r\n if (event.button !== 0) {\r\n return;\r\n }\r\n\r\n this.pointerId = event.pointerId;\r\n\r\n this.dragging = true;\r\n this.dragStart.emit(event);\r\n }\r\n\r\n @HostListener('document:pointermove', ['$event'])\r\n onPointerMove(event: PointerEvent): void {\r\n if (!this.dragging || event.pointerId !== this.pointerId) {\r\n return;\r\n }\r\n\r\n this.dragMove.emit(event);\r\n }\r\n\r\n // added after YouTube video: pointercancel\r\n @HostListener('document:pointercancel', ['$event'])\r\n @HostListener('document:pointerup', ['$event'])\r\n onPointerUp(event: PointerEvent): void {\r\n if (!this.dragging || event.pointerId !== this.pointerId) {\r\n return;\r\n }\r\n\r\n this.dragging = false;\r\n this.dragEnd.emit(event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable.directive.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { DraggableDirective } from './draggable.directive';\r\nimport { DraggableHelperDirective } from './draggable-helper.directive';\r\nimport { SortableDirective } from './sortable.directive';\r\nimport { SortableListDirective } from './sortable-list.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule\r\n ],\r\n declarations: [\r\n DraggableDirective,\r\n DraggableHelperDirective,\r\n SortableDirective,\r\n SortableListDirective\r\n ],\r\n exports: [\r\n DraggableDirective,\r\n DraggableHelperDirective,\r\n SortableListDirective,\r\n SortableDirective\r\n ]\r\n})\r\nexport class DraggableModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/draggable.module.ts","import { AfterContentInit, ContentChildren, Directive, EventEmitter, Output, QueryList } from '@angular/core';\r\nimport { SortableDirective } from './sortable.directive';\r\n\r\nexport interface SortEvent {\r\n currentIndex: number;\r\n newIndex: number;\r\n}\r\n\r\nconst distance = (rectA: ClientRect, rectB: ClientRect): number => {\r\n return Math.sqrt(\r\n Math.pow(rectB.top - rectA.top, 2) +\r\n Math.pow(rectB.left - rectA.left, 2)\r\n )\r\n};\r\n\r\nconst hCenter = (rect: ClientRect): number => {\r\n return rect.left + rect.width / 2;\r\n};\r\n\r\nconst vCenter = (rect: ClientRect): number => {\r\n return rect.top + rect.height / 2;\r\n};\r\n\r\n@Directive({\r\n selector: '[appSortableList]'\r\n})\r\nexport class SortableListDirective implements AfterContentInit {\r\n @ContentChildren(SortableDirective) sortables: QueryList;\r\n\r\n @Output() sort = new EventEmitter();\r\n\r\n private clientRects: ClientRect[];\r\n\r\n ngAfterContentInit(): void {\r\n this.sortables.forEach(sortable => {\r\n console.log(sortable)\r\n sortable.dragStart.subscribe(() => this.measureClientRects());\r\n sortable.dragMove.subscribe(event => this.detectSorting(sortable, event));\r\n });\r\n }\r\n\r\n private measureClientRects() {\r\n this.clientRects = this.sortables.map(sortable => sortable.element.nativeElement.getBoundingClientRect());\r\n }\r\n\r\n private detectSorting(sortable: SortableDirective, event: PointerEvent) {\r\n const currentIndex = this.sortables.toArray().indexOf(sortable);\r\n const currentRect = this.clientRects[currentIndex];\r\n\r\n this.clientRects\r\n .slice()\r\n .sort((rectA, rectB) => distance(rectA, currentRect) - distance(rectB, currentRect))\r\n .filter(rect => rect !== currentRect)\r\n .some(rect => {\r\n const isHorizontal = rect.top === currentRect.top;\r\n const isBefore = isHorizontal ? \r\n rect.left < currentRect.left :\r\n rect.top < currentRect.top;\r\n\r\n // refactored this part a little bit after my Youtube video\r\n // for improving readability\r\n const moveBack = isBefore && (isHorizontal ?\r\n event.clientX < hCenter(rect) :\r\n event.clientY < vCenter(rect)\r\n );\r\n\r\n const moveForward = !isBefore && (isHorizontal ?\r\n event.clientX > hCenter(rect) :\r\n event.clientY > vCenter(rect)\r\n );\r\n\r\n if (moveBack || moveForward) {\r\n this.sort.emit({\r\n currentIndex: currentIndex,\r\n newIndex: this.clientRects.indexOf(rect)\r\n });\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/sortable-list.directive.ts","import { Directive, forwardRef, HostBinding } from '@angular/core';\r\nimport { DraggableDirective } from './draggable.directive';\r\n\r\n@Directive({\r\n selector: '[appSortable]',\r\n providers: [\r\n { provide: DraggableDirective, useExisting: forwardRef(() => SortableDirective) }\r\n ]\r\n})\r\nexport class SortableDirective extends DraggableDirective {\r\n @HostBinding('class.sortable') sortable = true;\r\n}\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/carrouselFotos/draggable/sortable.directive.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.html\n// module id = ../../../../../src/app/componentes/geoposicionamiento/geoposicionar.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.scss\n// module id = ../../../../../src/app/componentes/geoposicionamiento/geoposicionar.component.scss\n// module chunks = main","\r\nimport { Component, EventEmitter, Input, Output , OnInit, OnChanges} from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-geoposicionar',\r\n templateUrl: './geoposicionar.component.html',\r\n styleUrls: ['./geoposicionar.component.scss']\r\n})\r\n\r\n\r\nexport class GeoposicionarComponent implements OnInit, OnChanges {\r\n\r\n\tngOnInit(): void {\r\n\t}\r\n\r\n\tngOnChanges(change){\r\n\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/geoposicionamiento/geoposicionar.component.ts","module.exports = \"
      \\r\\n
      \\r\\n
      \\r\\n {{'Graficas.'+dat.mes | translate}}\\r\\n
      \\r\\n
      \\r\\n
      {{dat.total}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.html\n// module id = ../../../../../src/app/componentes/graficas/barChartDash/barChartDash.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".nivelBox {\\n height: 20px;\\n font-weight: bold;\\n text-align: center; }\\n\\n.mesBox {\\n float: left;\\n margin-left: 10px; }\\n\\n.boxVerde {\\n background-color: #a9e53b !important; }\\n\\n.boxNaranja {\\n background-color: #e6ac30 !important; }\\n\\n.boxNeutro {\\n background-color: #ccc !important; }\\n\\n.linea {\\n margin: 2px;\\n padding: 0px; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.scss\n// module id = ../../../../../src/app/componentes/graficas/barChartDash/barChartDash.component.scss\n// module chunks = main","\r\nimport { Component, EventEmitter, Input, Output , OnInit, OnChanges} from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-barchartdash',\r\n templateUrl: './barChartDash.component.html',\r\n styleUrls: ['./barChartDash.component.scss']\r\n})\r\n\r\n\r\nexport class BarChartDashComponent implements OnInit, OnChanges {\r\n\r\n @Input() data: any;\r\n\r\n resultado: any = [];\r\n\r\n\r\n Colores: Array = ['boxVerde', 'boxNaranja'];\r\n\r\n constructor(){\r\n\r\n }\r\n\r\n ngOnInit(){\r\n\r\n }\r\n\r\n ngOnChanges(change){\r\n console.log(change);\r\n let max = 0;\r\n let mes = 0;\r\n let fecha = 99999999999999;\r\n\r\n this.resultado = [];\r\n\r\n // console.log(this.data);\r\n\r\n this.data.forEach(element => {\r\n const _max = parseInt(element.Total, 0);\r\n const _fecha = parseInt(element.Fecha, 0);\r\n\r\n if (_max > max){\r\n max = _max;\r\n }\r\n\r\n if (_fecha < fecha){\r\n fecha = _fecha;\r\n mes = parseInt(element.Mes, 0);\r\n }\r\n\r\n });\r\n console.log(max)\r\n console.log(fecha)\r\n\r\n if (this.data.length === 0){\r\n return;\r\n }\r\n\r\n\r\n if (this.data.length < 6){\r\n for (let i = 0; i <= 7 - this.data.length; i++){\r\n mes--;\r\n if (mes < 1){\r\n mes = 12;\r\n }\r\n\r\n this.data.push({\r\n Mes: mes,\r\n Total: 0\r\n });\r\n }\r\n }\r\n\r\n let n = 0;\r\n\r\n this.data.forEach(element => {\r\n let _clase = this.Colores[n];\r\n if (!_clase){\r\n _clase = 'boxNeutro';\r\n }\r\n\r\n\r\n\r\n if (element.Mes){\r\n this.resultado.push({\r\n mes: 'MesRed' + parseInt(element.Mes, 0),\r\n nivel: max < 1 ? 0 : Math.floor(element.Total * 100 / max),\r\n clase: ['nivelBox', _clase ],\r\n total: element.Total\r\n });\r\n }\r\n\r\n n++;\r\n });\r\n console.log(this.resultado)\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/barChartDash/barChartDash.component.ts","module.exports = \"\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.html\n// module id = ../../../../../src/app/componentes/graficas/chart/chart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.scss\n// module id = ../../../../../src/app/componentes/graficas/chart/chart.component.scss\n// module chunks = main","\r\nimport { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-chart',\r\n templateUrl: './chart.component.html',\r\n styleUrls: ['./chart.component.scss']\r\n})\r\n\r\n\r\nexport class AppChartComponent implements OnInit {\r\n\r\n @Input() data;\r\n\r\n options = {\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n },\r\n maintainAspectRatio: false,\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n display: false\r\n }\r\n }]\r\n }\r\n };\r\n\r\n\r\n\r\n constructor() {\r\n\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n console.log(this.data)\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/chart/chart.component.ts","module.exports = \"
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{'Dashboard.top7' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{favorito.num}}.
      \\r\\n
      {{favorito.Titulo}}
      \\r\\n
      \\r\\n
      \\r\\n
      {{favorito.percent}}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      {{'Dashboard.top7' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{contenido.num}}.
      \\r\\n
      {{contenido.Titulo}}
      \\r\\n
      \\r\\n
      \\r\\n
      {{contenido.percent}}% ({{contenido.Total}})
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.html\n// module id = ../../../../../src/app/componentes/graficas/contenidosDash/contenidosDash.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".overview-box-indicadores {\\n background-color: #eb6c42; }\\n\\n.overview-box-count-sup {\\n font-size: 30px; }\\n\\n.overview-box-count-inf {\\n font-size: 45px;\\n padding: 5px; }\\n\\n.verticalLine {\\n border-left: 2px solid #999;\\n border-right: 2px solid #999; }\\n\\n.verticalLineLeft {\\n border-left: 2px solid #999; }\\n\\n/* .custom .ui-dialog-content {\\r\\n height: 1200px !important;\\r\\n} */\\n\\n.cajaBox {\\n padding: 0px;\\n background-color: white;\\n margin: 15px; }\\n\\n.cajaBoxPantallaCompleta {\\n padding: 0px;\\n background-color: white;\\n margin: 15px;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0; }\\n\\n.contenedorDasboardsPantallaCompleta {\\n z-index: 100000000000;\\n /*height: calc(100vh);*/\\n min-height: 100%;\\n width: calc(100vw);\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: white; }\\n\\n.headerBoxVerde {\\n background-color: #a9e53b !important; }\\n\\n.headerBoxNaranja {\\n background-color: #e6ac30 !important; }\\n\\n.headerBoxGris {\\n background-color: #555 !important; }\\n\\n.cuerpoBox {\\n background-color: #ffffff;\\n color: #333;\\n height: 0px; }\\n\\n.iconBox {\\n border-radius: 50%;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px;\\n background-color: #fff; }\\n\\n.iconBoxDialog {\\n border-radius: 50%;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -30px;\\n background-color: #fff; }\\n\\n.iconCloseBoxDialog {\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px; }\\n\\n.headerBoxGrisMaximizado {\\n background-color: #555 !important;\\n height: 24px; }\\n\\n.cuerpoTitle {\\n font-size: 25px; }\\n\\n.cuerpoTitle2 {\\n font-size: 15px;\\n font-weight: bold;\\n margin-left: 5px;\\n margin-right: 5px; }\\n\\n.cuerpoTitleSub {\\n font-size: 15px;\\n background-color: #999;\\n color: #fff;\\n font-weight: bold;\\n margin-top: 10px; }\\n\\n.cuerpoTitleSub2 {\\n margin-top: 5px; }\\n\\n.blockBox {\\n padding: 10px; }\\n\\n.blockBox2 {\\n padding: 0px; }\\n\\n.simboloBox {\\n font-size: 18px; }\\n\\n.chartVisitas {\\n position: relative;\\n height: 100px;\\n width: 50%;\\n padding: 5px; }\\n\\n.linea {\\n border-bottom: 1px solid #ccc;\\n font-size: 15px; }\\n\\n.lineaSup {\\n margin-bottom: 1px; }\\n\\n.txNum {\\n float: right; }\\n\\n.txTit {\\n float: left;\\n text-align: left; }\\n\\n.txTit2 {\\n margin-left: 20px;\\n text-align: left; }\\n\\n.txPer {\\n float: right;\\n font-size: 10px; }\\n\\n.cleanPadding {\\n padding-bottom: 0px; }\\n\\n.lineaPrimera {\\n font-weight: bold; }\\n\\n.descargaIcon {\\n cursor: pointer;\\n float: left;\\n padding: 10px;\\n position: absolute; }\\n\\n.infoTit {\\n float: right;\\n margin-right: 10px;\\n font-size: 15px;\\n cursor: pointer; }\\n\\n.iticon-px24 {\\n font-size: 24px; }\\n\\n.infoDownload {\\n color: #999; }\\n\\n.infoDownload:hover {\\n color: #000; }\\n\\n.contenidoNav {\\n background-color: #fff; }\\n\\n.contenidoNav:hover {\\n background-color: rgba(0, 0, 0, 0.2); }\\n\\n.pantallaCompleta {\\n width: 100vW;\\n height: 1200px !important; }\\n\\n.dialogMapaMaximizado {\\n z-index: 100000000000;\\n /*height: calc(100vh);*/\\n min-height: 100%;\\n width: calc(100vw);\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: white; }\\n\\n.iconCloseDialog {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999;\\n margin-top: 14px;\\n margin-left: 14px; }\\n\\n.iconCloseDialog:hover {\\n color: #000; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.scss\n// module id = ../../../../../src/app/componentes/graficas/contenidosDash/contenidosDash.component.scss\n// module chunks = main","import { Component, EventEmitter, Input, Output , OnInit, OnChanges} from '@angular/core';\r\nimport { AuthenticationService } from '../../../providers/authentication/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { ServiciosStatsProvider } from '../../../providers/web-service-service/servicios-stats';\r\n\r\nconst CACHE_DESF_SEC = 120;\r\nconst BUSCACONTENIDO = 2;\r\n\r\n@Component({\r\n selector: 'app-contenidosdash',\r\n templateUrl: './contenidosDash.component.html',\r\n styleUrls: ['./contenidosDash.component.scss']\r\n})\r\nexport class ContenidosDashComponent implements OnInit, OnChanges {\r\n\t@Input() contenidosIndicadores: any;\r\n\t@Input() contenidosIndicadoresFavoritos: any;\r\n\r\n\t@Input() listaContenidos: any[] = [];\r\n\ttodosContenidosFiltrados: any[] = [];\r\n\ttipoContenido: string = 'masVisitados';\r\n\t@Input() listaContenidosFavoritos: {\r\n\t\tlista: undefined[],\r\n\t\tmsg: '',\r\n\t\tres: 0\r\n\t};\r\n constructor(public authService: AuthenticationService,public router: Router,public statsService: ServiciosStatsProvider,\r\n ){\r\n\r\n }\r\n\r\n ngOnInit(){\r\n\t\tthis.listaContenidos = [];\r\n\t\tthis.listaContenidosFavoritos = {\r\n\t\t\tlista: undefined,\r\n\t\t\tmsg: '',\r\n\t\t\tres: 0\r\n\t\t};\r\n\r\n const hoy = new Date();\r\n const inicio = new Date(hoy.getFullYear(), hoy.getMonth(), 1, hoy.getHours(), hoy.getMinutes());\r\n const fin = new Date(hoy.getFullYear(), hoy.getMonth() + 1, 0, hoy.getHours(), hoy.getMinutes());\r\n\r\n this.cargarIndicadoresContenidos({\r\n inicio: inicio,\r\n fin: fin\r\n });\r\n }\r\n ngOnChanges(change){\r\n\t\tlet contenidosFiltradosFavoritos = [];\r\n\r\n\t\tlet _favoritos = {\r\n\t\t\tlista: [],\r\n\t\t\tmsg: '',\r\n\t\t\tres: 0\r\n\t\t};\r\n\t\t _favoritos.lista = this.listaContenidosFavoritos.lista;\r\n\t\tthis.contenidosIndicadoresFavoritos = {};\r\n\t\tthis.contenidosIndicadoresFavoritos.total = _favoritos.lista.length;\r\n\t\tlet _n = 0;\r\n\t\tcontenidosFiltradosFavoritos = _favoritos.lista\r\n\t\tcontenidosFiltradosFavoritos.forEach(element => {\r\n\t\t\telement.percent = element.USUARIOS.length;\r\n\t\t\telement.num = _n + 1;\r\n\t\t\telement.class = '';\r\n\t\t\tif ( _n === 0){\r\n\t\t\t\telement.class = 'lineaPrimera';\r\n\t\t\t}\r\n\t\t\t_n++;\r\n\t\t});\r\n\t\tthis.contenidosIndicadoresFavoritos.lista = contenidosFiltradosFavoritos;\r\n\t}\r\n navegarContenidos(_contenido){\r\n\t\t// console.log(_contenido.Id);\r\n\t\tthis.router.navigate(['/contenidos/editar', { id: _contenido.Id, entidad: 'CONTENIDO' }]);\r\n\t\t//https://espaciosjunta.juntadeandalucia.es/#/contenidos/editar;id=0eea6e42-2867-ed11-88b8-0050568999a2;entidad=CONTENIDO\r\n\t\t//this.router.navigate(['/contenidos/editar'], { queryParams: { titulo: _contenido.Titulo }});\r\n\t}\r\n\thayContenidosFavoritos(): boolean{\r\n\t\tif(this.contenidosIndicadoresFavoritos && this.contenidosIndicadoresFavoritos.lista && this.contenidosIndicadoresFavoritos.lista.length === 0){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n hayContenidos(): boolean{\r\n\t\tif(this.contenidosIndicadores && this.contenidosIndicadores.lista && this.contenidosIndicadores.lista.length === 0){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n onChangeRangeContents(dateRange){\r\n\t\tthis.cargarIndicadoresContenidos(dateRange);\r\n\r\n\t}\r\n\r\n calculaTimeCache(){\r\n\t\tconst fec = new Date();\r\n\t\tconst timestamp = fec.getTime() - (fec.getTime() % (CACHE_DESF_SEC * 1000));\r\n\r\n\r\n\t\treturn timestamp;\r\n\t}\r\n cargarIndicadoresContenidos(dateRange){\r\n\t\tconsole.log(dateRange);\r\n\t\tconst _contenidos = this.listaContenidos;\r\n\r\n\t\tif (!_contenidos){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.contenidosIndicadores = {};\r\n\t\tthis.contenidosIndicadores.total = _contenidos.length;\r\n\r\n\r\n\r\n\t\tconst ahora = new Date();\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst that = this;\r\n \r\n\t\tconst timeCache = this.calculaTimeCache();\r\n\r\n\r\n\t\tconst horaFin = ahora.getHours() * 100 + ahora.getMinutes();\r\n\t\tlet horaIni = horaFin;\r\n\r\n\t\tconst fInicio = this.statsService.fechaToCubefec(dateRange.inicio);\r\n\t\tconst fFin = this.statsService.fechaToCubefec(dateRange.fin) ;\r\n\t\tconst rangoF = fInicio.fecha + ',' + fFin.fecha;\r\n\r\n\t\tlet group = 'Contenido_id';\r\n\t\tif (dateRange.lastMinutes != null){\r\n\t\t\tgroup += ',Hora';\r\n\t\t\thoraIni -= dateRange.lastMinutes;\r\n\r\n\t\t}\r\n\r\n\t\tconst filtroContenido = {\r\n\t\t\tGroup: group,\r\n\t\t\tRangeFecha: rangoF,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASHCONT_D_' + idEspacio + rangoF + timeCache,\r\n\t\t\ttipo: BUSCACONTENIDO,\r\n\t\t\tOrder: 'Total DESC',\r\n\t\t};\r\n\r\n\t\tconst todosContenidosById = {};\r\n\t\t_contenidos.forEach(element => {\r\n\t\t\ttodosContenidosById[element.Id] = element;\r\n\t\t});\r\n\r\n\t\t// console.log(todosContenidosById);\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtroContenido, function (res) {\r\n\t\t\tif (!res.lista){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t// console.log(res);\r\n\t\t\tconst total = res.lista.length;\r\n\t\t\tlet max = 7;\r\n\t\t\tconst contenidosFiltrados = [];\r\n\t\t\tthat.todosContenidosFiltrados = [];\r\n\t\t\tlet COUNT = 0;\r\n\t\t\tfor ( const i in res.lista){\r\n\t\t\t\tif (! res.lista[i] || ! res.lista[i].Contenido){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tconst _contenido = todosContenidosById[res.lista[i].Contenido];\r\n\t\t\t\tif (!_contenido){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (dateRange.lastMinutes != null){\r\n\t\t\t\t\tconst _hora = parseInt(res.lista[i].Hora, 0);\r\n\t\t\t\t\tif (!(horaIni <= _hora && _hora <= horaFin)){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// console.log(res.lista[i]);\r\n\r\n\t\t\t\t_contenido.Total = res.lista[i].Total;\r\n\t\t\t\tCOUNT += _contenido.Total ;\r\n\r\n\t\t\t\t// console.log(_contenido);\r\n\r\n\t\t\t\tmax--;\r\n\t\t\t\tif ( max >= 0){\r\n\t\t\t\t\tcontenidosFiltrados.push(_contenido);\r\n\t\t\t\t}\r\n\t\t\t\tthat.todosContenidosFiltrados.push(res.lista[i]);\r\n\t\t\t}\r\n\t\t\t// console.log(contenidosFiltrados);\r\n\r\n\t\t\tlet _n = 0;\r\n\t\t\tcontenidosFiltrados.forEach(element => {\r\n\t\t\t\telement.percent = Math.floor(element.Total * 10000 / COUNT) / 100;\r\n\t\t\t\telement.num = _n + 1;\r\n\t\t\t\telement.class = '';\r\n\t\t\t\tif ( _n === 0){\r\n\t\t\t\t\telement.class = 'lineaPrimera';\r\n\t\t\t\t}\r\n\t\t\t\t_n++;\r\n\t\t\t});\r\n\r\n\t\t\tthat.contenidosIndicadores.lista = contenidosFiltrados;\r\n\r\n\t\t});\r\n\r\n\t}\r\n}\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/contenidosDash/contenidosDash.component.ts","module.exports = \"
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n close\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{mensaje}} \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n open_with\\r\\n cloud_download\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{maxRange}}
      \\r\\n
      {{redondeo(4*maxRange/5)}}
      \\r\\n
      {{redondeo(3*maxRange/5)}}
      \\r\\n
      {{redondeo(2*maxRange/5)}}
      \\r\\n
      {{redondeo(1*maxRange/5)}}
      \\r\\n
      0
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.html\n// module id = ../../../../../src/app/componentes/graficas/hotChart/hotChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pulsador {\\n cursor: pointer; }\\n\\n.degradado {\\n /*background-image: linear-gradient(rgb(201,118,118), rgb(142,179,212));*/\\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ff0014), color-stop(#d7ff00), to(#0500ff));\\n background-image: linear-gradient(#ff0014, #d7ff00, #0500ff);\\n background-repeat: 'no-repeat';\\n height: 300px;\\n width: 10px;\\n margin: 10px; }\\n\\n.degradadoTX {\\n margin-left: 15px;\\n height: 50px;\\n width: 40px;\\n text-align: left;\\n font-weight: bold;\\n font-size: 10px;\\n padding-top: 10px; }\\n\\n.barraLegend {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-pack: distribute;\\n justify-content: space-around;\\n margin-top: 10px; }\\n\\n.iconDownload {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999; }\\n\\n.iconDownload:hover {\\n color: #000; }\\n\\n.iconMaximize {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999; }\\n\\n.iconMaximize:hover {\\n color: #000; }\\n\\n.mensaje {\\n font-size: 25px;\\n text-align: left; }\\n\\n.dropTipo {\\n padding: 2px; }\\n\\n.iconosDiv {\\n float: right; }\\n\\n.iconCloseDialog {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999;\\n margin-top: 14px;\\n margin-left: 14px; }\\n\\n.iconCloseDialog:hover {\\n color: #000; }\\n\\n.iconCloseBoxDialog {\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px; }\\n\\n/*\\r\\n.containerPlano{\\r\\n perspective: 500px;\\r\\n}\\r\\n\\r\\n.plano{\\r\\n transform: scaleZ(1.5) rotateX(55deg);\\r\\n}\\r\\n\\r\\n.planoExt{\\r\\n\\r\\n}\\r\\n\\r\\n*/\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.scss\n// module id = ../../../../../src/app/componentes/graficas/hotChart/hotChart.component.scss\n// module chunks = main","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOutput,\r\n\tOnInit,\r\n\tViewChild,\r\n\tOnChanges,\r\n} from \"@angular/core\";\r\nimport {\r\n\tanimate,\r\n\tstate,\r\n\tstyle,\r\n\ttransition,\r\n\ttrigger,\r\n} from \"@angular/animations\";\r\n\r\nimport { EntityManagerProvider } from \"../../../providers/entity-manager-provider/entity-manager-provider\";\r\nimport { SeccionPlano, PlanoComponent } from \"interiores-mapa\";\r\nimport { zoomCenterCoordsPlano } from \"interiores-mapa/dist/zoomCenterCoordsPlano\";\r\nimport { ServiciosWebServiceProvider } from \"../../../providers/web-service-service/servicios-web-service\";\r\nimport { AuthenticationService } from \"../../../providers/authentication/authentication.service\";\r\nimport { AlaFormulario } from \"../../../domain/AlaFormulario\";\r\nimport { Planta, VerticalManager } from \"../../../domain/Vertical\";\r\nimport { Predicate } from \"breeze-client\";\r\n\r\n\r\ntype PaneType = \"left\" | \"right\";\r\n\r\nconst COLORES2 = [\r\n\t[255, 14, 240],\r\n\t[255, 160, 0],\r\n\t[5, 0, 255],\r\n];\r\n\r\nconst COLORES = [\r\n\t[255, 0, 20],\r\n\t[215, 255, 0],\r\n\t[5, 0, 255],\r\n];\r\n\r\n@Component({\r\n\tselector: \"app-hotchart\",\r\n\ttemplateUrl: \"./hotChart.component.html\",\r\n\tstyleUrls: [\"./hotChart.component.scss\"],\r\n\tanimations: [\r\n\t\ttrigger(\"side1\", [\r\n\t\t\tstate(\"left\", style({ opacity: 0 })),\r\n\t\t\tstate(\"center\", style({ opacity: 1 })),\r\n\t\t\tstate(\"right\", style({ opacity: 0 })),\r\n\r\n\t\t\ttransition(\"left <=> center\", [animate(\"200ms ease-in\")]),\r\n\t\t\ttransition(\"center <=> right\", [animate(\"200ms ease-in\")])\r\n\t\t]),\r\n\t],\r\n\tproviders: [EntityManagerProvider],\r\n})\r\nexport class AppHotChartComponent implements OnInit, OnChanges {\r\n\t@Input() data;\r\n\t@Input() consulta;\r\n\t@Input() mensaje;\r\n\t// @Input() mostrarIconoMaximizar;\r\n\t@Input() numAla = 0;\r\n\t@Input() numTipo = 0;\r\n\t@Output() onChangeRange: EventEmitter = new EventEmitter();\r\n\t@Output() onLoadSecciones: EventEmitter = new EventEmitter();\r\n\t@Output() onDownloadCsv: EventEmitter = new EventEmitter();\r\n\t@ViewChild(\"plano\") plano: PlanoComponent;\r\n\t@ViewChild(\"contenedorPlano\") contenedorPlano: any;\r\n\t// @Output() maximizeHotChartEvent = new EventEmitter();\r\n\t@Output() maximizeHotChartEvent: EventEmitter = new EventEmitter();\r\n\r\n\testado = \"center\";\r\n\r\n\tpathPlano = \"\";\r\n\r\n\talas = [];\r\n\tsecciones = [];\r\n\tseccionesPre = [];\r\n\tverticalManager: VerticalManager;\r\n\tmostrarIconoMaximizar = true;\r\n\r\n\t// numAla = 0; // Para seleccionar el plano que se pinta.\r\n\t// numTipo = 0; // Para seleccionar el periodo en el que se cuentan las visitas\r\n\tnumModo = 0; // Para seleccionar si se cuentan las visitas por número de visitas o por tiempo de visita.\r\n\r\n\tmaxRange = 0;\r\n\r\n\tplanoData = {\r\n\t\twidth: 0,\r\n\t\theight: 0,\r\n\t};\r\n\r\n\talasDrop = [];\r\n\ttiposDrop = [\r\n\t\t{ label: \"Visitas\", value: 0 },\r\n\t\t{ label: \"Permanencia\", value: 1 },\r\n\t\t{ label: \"Visitas X Permanencia\", value: 2 },\r\n\t];\r\n\tmodosDrop = [\r\n\t\t{ label: \"Número de visitas\", value: 0 },\r\n\t\t{ label: \"Tiempo de visita\", value: 1 },\r\n\t];\r\n\talasSelect;\r\n\trangoFechasSeleccionado;\r\n\r\n\tmostrarSecciones = true;\r\n\talaCargada = false;\r\n\r\n\tdireccion = 1;\r\n\r\n\tseccionesHot: any = {};\r\n\r\n\tcurrentZoomLevel: number = 1;\r\n\r\n\tzoomAndCenterCoords: zoomCenterCoordsPlano;\r\n\tzoomCenterTransitionDuration: Number = 1000;\r\n\r\n\tzoomIniciado = false;\r\n\r\n\tplano_current_transform: any = {};\r\n\tsave_zoom_event: any = false;\r\n\r\n\t// Añadido 27/027/2020: Variables para el nuevo mapa de calor\r\n\tpuntos = [];\r\n\tradius = 250;\r\n\topacity = 0.5;\r\n\tscale = 0.3;\r\n\tuseOpacity = true;\r\n\t// FIXME: Estas variables se han de obtener de base de datos en donde viene el tamaño del mapa.\r\n\tanchoMapa = 4000;\r\n\taltoMapa = 4000;\r\n\tlistaAlasFormulario = [];\r\n\r\n\tnodosDeLaConsulta = [];\r\n\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authenticationService: AuthenticationService,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService\r\n\t) {}\r\n\r\n\tsetRadius(IconoContenidoScale) {\r\n\t\tthis.radius = this.radius * IconoContenidoScale * 0.8;\r\n\t}\r\n\tsetScale(contenedorPlano, anchoMapa) {\r\n\t\t// return (contenedorPlano.offsetWidth - 30) / anchoMapa;\r\n\t\tlet scale = 1;\r\n\t\tif (this.altoMapa > this.anchoMapa) {\r\n\t\t\tconst num = (contenedorPlano.offsetHeight - 30) / this.altoMapa;\r\n\t\t\t// Redondeamos a dos cifras para que no se queje HTML de que el valor cambia al usar muchos decimales y las ultimas cifras siempre varian\r\n\t\t\tscale = Math.round((num + Number.EPSILON) * 100) / 100;\r\n\t\t} else {\r\n\t\t\tconst num = (contenedorPlano.offsetWidth - 30) / this.anchoMapa;\r\n\t\t\t// Redondeamos a dos cifras para que no se queje HTML de que el valor cambia al usar muchos decimales y las ultimas cifras siempre varian\r\n\t\t\tscale = Math.round((num + Number.EPSILON) * 100) / 100;\r\n\t\t}\r\n\t\t// console.log('Scale: ' + scale);\r\n\t\treturn scale;\r\n\t}\r\n\r\n\tOnChanges($event) {\r\n\t\tthis.cargaSecciones();\r\n\t}\r\n\r\n\tonZoomChanged(zoomChange) {\r\n\t\tif (this.zoomIniciado) {\r\n\t\t\tthis.saveZoom(zoomChange);\r\n\t\t}\r\n\t}\r\n\r\n\tsaveZoom(zoomChange) {\r\n\t\tconst _key = \"MAPPOS_\" + this.alas[this.numAla];\r\n\t\tlocalStorage.setItem(_key, JSON.stringify(zoomChange));\r\n\t}\r\n\r\n\tsetCurrentTransform() {\r\n\t\tconst _key = \"MAPPOS_\" + this.alas[this.numAla];\r\n\t\tconst dat = localStorage.getItem(_key);\r\n\r\n\t\tlet current: any = {};\r\n\t\tif (dat) {\r\n\t\t\tcurrent = JSON.parse(dat);\r\n\t\t}\r\n\r\n\t\tif (!current.k) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst _width = this.planoData.width; // DCANETE Revisar W\r\n\t\tconst _height = this.planoData.height; // DCANETE Revisar H\r\n\r\n\t\tthis.zoomAndCenterCoords = new zoomCenterCoordsPlano(\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\t0,\r\n\t\t\tcurrent.k,\r\n\t\t\t[_width / 2, _height / 2]\r\n\t\t);\r\n\t}\r\n\r\n\tonChangeRangeApp(change) {\r\n\t\tthis.rangoFechasSeleccionado = change;\r\n\t\tthis.numTipo = change.numTipo;\r\n\t\tchange.numModo = this.numModo;\r\n\t\t// console.log('---------- onChangeRangeApp valor de change: ');\r\n\t\t// console.log(change);\r\n\t\tthis.onChangeRange.emit(change);\r\n\t}\r\n\r\n\tpublic cambiarModo(res) {\r\n\t\tthis.numModo = res.value;\r\n\t\tthis.rangoFechasSeleccionado.numModo = res.value;\r\n\t\tthis.rangoFechasSeleccionado.numTipo = this.numTipo;\r\n\t\t// console.log('---------- cambiarModo valor de rangoFechasSeleccionado: ');\r\n\t\t// console.log(this.rangoFechasSeleccionado);\r\n\t\tthis.onChangeRange.emit(this.rangoFechasSeleccionado);\r\n\t}\r\n\r\n\tredondeo(num) {\r\n\t\treturn Math.floor(num);\r\n\t}\r\n\r\n\tdownloadCSV(event) {\r\n\t\tthis.onDownloadCsv.emit(event);\r\n\t}\r\n\r\n\tmaximizeHotChart() {\r\n\t\tthis.mostrarIconoMaximizar = false;\r\n\t\tconst valoresSeleccionadosHotChart = {\r\n\t\t\tpathPlano: this.pathPlano,\r\n\t\t\tnumAla: this.numAla,\r\n\t\t\tnumTipo: this.numTipo,\r\n\t\t\tnumModo: this.numModo,\r\n\t\t};\r\n\t\tthis.maximizeHotChartEvent.emit(valoresSeleccionadosHotChart);\r\n\t}\r\n\r\n\tminimizeHotChart() {\r\n\t\tthis.mostrarIconoMaximizar = true;\r\n\t\tconst valoresSeleccionadosHotChart = {\r\n\t\t\tpathPlano: this.pathPlano,\r\n\t\t\tnumAla: this.numAla,\r\n\t\t\tnumTipo: this.numTipo,\r\n\t\t\tnumModo: this.numModo,\r\n\t\t};\r\n\t\tthis.maximizeHotChartEvent.emit(valoresSeleccionadosHotChart);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.cargarALAs(\"ngOnInit\");\r\n\r\n\t\tthis.numAla = 0;\r\n\t\tthis.numModo = 0;\r\n\t\tthis.zoomIniciado = false;\r\n\t\tconst hoy = new Date();\r\n\t\tconst inicioAux = new Date(\r\n\t\t\thoy.getFullYear(),\r\n\t\t\thoy.getMonth(),\r\n\t\t\t1,\r\n\t\t\thoy.getHours(),\r\n\t\t\thoy.getMinutes()\r\n\t\t);\r\n\t\tconst finAux = new Date(\r\n\t\t\thoy.getFullYear(),\r\n\t\t\thoy.getMonth() + 1,\r\n\t\t\t0,\r\n\t\t\thoy.getHours(),\r\n\t\t\thoy.getMinutes()\r\n\t\t);\r\n\t\tthis.rangoFechasSeleccionado = {\r\n\t\t\tinicio: inicioAux,\r\n\t\t\tfin: finAux,\r\n\t\t\tlastMinutes: 0,\r\n\t\t\tnumTipo: 0,\r\n\t\t\tnumModo: 0,\r\n\t\t};\r\n\t}\r\n\r\n\tngOnChanges(change) {\r\n\t\tthis.cargaSecciones();\r\n\t\tthis.zoomIniciado = false;\r\n\t}\r\n\r\n\tpickHex(weight) {\r\n\t\tlet color1 = COLORES[0];\r\n\t\tlet color2 = COLORES[1];\r\n\t\tlet multi = 1;\r\n\t\tif (weight < 0.5) {\r\n\t\t\tcolor1 = COLORES[1];\r\n\t\t\tcolor2 = COLORES[2];\r\n\t\t\tmulti = 2;\r\n\t\t}\r\n\r\n\t\tconst w1 = weight * multi;\r\n\t\tconst w2 = 1 - w1;\r\n\r\n\t\tconst rgb = [\r\n\t\t\tMath.round(color1[0] * w1 + color2[0] * w2),\r\n\t\t\tMath.round(color1[1] * w1 + color2[1] * w2),\r\n\t\t\tMath.round(color1[2] * w1 + color2[2] * w2),\r\n\t\t];\r\n\r\n\t\treturn \"rgba(\" + rgb[0] + \",\" + rgb[1] + \",\" + rgb[2] + \",0.8)\";\r\n\t}\r\n\r\n\tcargaSecciones() {\r\n\t\tconsole.log('cargaSecciones');\r\n\t\tlet max = 0;\r\n\t\tlet all = 0;\r\n\r\n\t\tthis.seccionesHot = {};\r\n\r\n\t\tif (!this.consulta) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.consulta.forEach((element) => {\r\n\t\t\tthis.seccionesHot[element.Seccion] = {\r\n\t\t\t\tTotal: element.Total,\r\n\t\t\t};\r\n\r\n\t\t\tall += element.Total;\r\n\t\t\tif (max < element.Total) {\r\n\t\t\t\tmax = element.Total;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.maxRange = max;\r\n\r\n\t\tthis.consulta.forEach((element) => {\r\n\t\t\tconst perc = Math.floor((element.Total * 100) / max);\r\n\t\t\tconst percAll = Math.floor((element.Total * 100) / all);\r\n\t\t\tthis.seccionesHot[element.Seccion][\"percentageAll\"] = percAll;\r\n\t\t\tthis.seccionesHot[element.Seccion][\"percentage\"] = perc;\r\n\t\t\tthis.seccionesHot[element.Seccion][\"color\"] = this.pickHex(\r\n\t\t\t\tperc / 100\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tthis.nodosDeLaConsulta = [];\r\n\t\tthis.consulta.forEach((element) => {\r\n\t\t\tthis.nodosDeLaConsulta.push(element);\r\n\t\t});\r\n\r\n\t\t// this.cargarALAs(\"cargaSecciones\");\r\n\t\tthis.cargarSeccionAux();\r\n\t}\r\n\r\n\tgetZoomStart() {\r\n\t\t// console.log(this.alas);\r\n\t}\r\n\r\n\tcargarALAs(id: String) {\r\n\t\tconsole.log(\"cargarALAs: \", id);\r\n\t\tthis.puntos = [];\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate(\"IdEspacio\", \"==\", idEspacio);\r\n\t\tlet includes = \"\";\r\n\t\tincludes = includes + \"SECCIONS.NODOS\";\r\n\t\tincludes = includes + \", NIVEL\";\r\n\t\tlet includes2 = \"ESPACIO\";\r\n\t\tincludes2 = includes2 + \", IDIOMAS.IDIOMA\";\r\n\t\tincludes2 = includes2 + \", ALAS.IDIOMAS.IDIOMA\";\r\n\t\t//includes2 = includes2 + ', SECCIONS.NODOS';\r\n\t\tlet listaNiveles;\r\n\t\tlet ENT = [];\r\n\t\tlet plantas = [];\r\n\t\tlet planta = new Planta();\r\n\t\tif (!this.verticalManager) {\r\n\t\t\tthis.verticalManager = new VerticalManager();\r\n\t\t}\r\n\t\tconst alaActual = this.listaAlasFormulario[this.numAla];\r\n\t\tlet idAlaActual;\r\n\t\tif (id === \"cargaSecciones\") {\r\n\t\t\tidAlaActual = alaActual.Id;\r\n\t\t\tthis.setRadius(alaActual.IconoContenidoScale);\r\n\t\t}\r\n\t\tif (id === \"ngOnInit\") {\r\n\t\t\tidAlaActual = undefined;\r\n\t\t}\r\n\r\n\t\treturn entityManager\r\n\t\t\t.getALAById(idAlaActual, includes)\r\n\t\t\t.then(function (entidades) {\r\n\t\t\t\tif (!entidades || entidades.length < 1) {\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet i = 0;\r\n\r\n\t\t\t\t\tif (id === \"ngOnInit\") {\r\n\t\t\t\t\t\tthat.alasDrop = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst _seccionesFormat = {};\r\n\t\t\t\t\t//ordenadas alas alfabeticamente\r\n\t\t\t\t\t/*entidades.sort(function (a, b) {\r\n return a.Nomobre.localeCompare(b.Nomobre);\r\n });*/\r\n\r\n\t\t\t\t\tentidades.forEach((element) => {\r\n\t\t\t\t\t\tconst oAlaForm = new AlaFormulario(element);\r\n\t\t\t\t\t\t//entityManager.getALAById(oAlaForm.Id, includes);\r\n\t\t\t\t\t\t// Modificado Jeronimo 14/04/2020: Antes de cargar las alas en listaAlasFormulario, busco si el ala ya está en esa lista y si ya está no la vuelvo a añadir.\r\n\t\t\t\t\t\tconst alaEncontradaAux = that.listaAlasFormulario.find(\r\n\t\t\t\t\t\t\t(a) => a.Id === oAlaForm.Id\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tif (alaEncontradaAux) {\r\n\t\t\t\t\t\t\t// No hago nada.\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthat.listaAlasFormulario.push(oAlaForm);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// that.listaAlasFormulario.push(oAlaForm);\r\n\t\t\t\t\t\tif (id === \"ngOnInit\") {\r\n\t\t\t\t\t\t\tthat.alas.push(element.RutaImagen);\r\n\t\t\t\t\t\t\tthat.seccionesPre.push(element.SECCIONS);\r\n\t\t\t\t\t\t\tthat.alasDrop.push({\r\n\t\t\t\t\t\t\t\tlabel: element.Nomobre,\r\n\t\t\t\t\t\t\t\tvalue: i,\r\n\t\t\t\t\t\t\t\tnivel: element.NIVEL.NivelVertical,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthat.alasDrop.sort(function (a, b) {\r\n\t\t\t\t\t\t\tif (a.nivel === b.nivel) {\r\n\t\t\t\t\t\t\t\treturn a.label.localeCompare(b.label);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn a.nivel - b.nivel;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\telement.SECCIONS.forEach((_sec) => {\r\n\t\t\t\t\t\t\t_seccionesFormat[_sec.Id] = {\r\n\t\t\t\t\t\t\t\tnombre: _sec.Nombre,\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t_sec.NODOS.forEach((_nod) => {\r\n\t\t\t\t\t\t\t\t// x sería el índice del elemento en el array de nodosDeLaConsulta\r\n\t\t\t\t\t\t\t\tlet enc = false;\r\n\t\t\t\t\t\t\t\tlet x = 0;\r\n\t\t\t\t\t\t\t\tconst tam = that.nodosDeLaConsulta.length;\r\n\t\t\t\t\t\t\t\twhile (x < tam && !enc) {\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t_nod.Id ===\r\n\t\t\t\t\t\t\t\t\t\tthat.nodosDeLaConsulta[x].Nodo\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\tenc = true;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tx = x + 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (enc) {\r\n\t\t\t\t\t\t\t\t\tconst point = {\r\n\t\t\t\t\t\t\t\t\t\tid: _nod.Id,\r\n\t\t\t\t\t\t\t\t\t\tx: _nod.X,\r\n\t\t\t\t\t\t\t\t\t\ty: _nod.Y,\r\n\t\t\t\t\t\t\t\t\t\tvalue: that.nodosDeLaConsulta[x].Total,\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tthat.puntos.push(point);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\ti++;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// console.log('DATOS DE LOS PUNTOS DE LOS NODOS A MOSTRAR EN EL MAPA:');\r\n\t\t\t\t\t// console.log(that.puntos);\r\n\r\n\t\t\t\t\tthat.puntos = Object.assign([], that.puntos);\r\n\r\n\t\t\t\t\tthat.onLoadSecciones.emit(_seccionesFormat);\r\n\t\t\t\t}\r\n\t\t\t\t// Fin Else\r\n\r\n\t\t\t\t// that.addSecciones(0);\r\n\t\t\t\tconst alaNueva = that.alas[that.numAla];\r\n\r\n\t\t\t\tif (alaNueva === that.pathPlano) {\r\n\t\t\t\t\t// Si NO hemos cambiado de ala añadimos las secciones del Ala actualpor si estas han cambiado\r\n\t\t\t\t\tthat.addSecciones(that.numAla);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Si hemos cambiado de ala seteamos that.pathPlano que deipara cargarAla -> onSVGLoaded -> CargarSecciones\r\n\t\t\t\t\tthat.pathPlano = alaNueva;\r\n\t\t\t\t}\r\n\t\t\t\tthat.setCurrentTransform();\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tthat.zoomIniciado = true;\r\n\t\t\t\t}, 2000);\r\n\t\t\t\tconst token = that.authenticationService.getToken();\r\n\t\t\t\tconst idEspacio = that.authenticationService.getIdEspacio();\r\n\t\t\t\treturn that.sws\r\n\t\t\t\t\t.wsGetGeocalibracionAlasEspacio(token, idEspacio)\r\n\t\t\t\t\t.toPromise();\r\n\t\t\t})\r\n\t\t\t.then(function (resp: any) {\r\n\t\t\t\tconsole.log(\"GEOCALIBRACION_ALA: \", resp.GeocalibracionAlas);\r\n\t\t\t\tthat.listaAlasFormulario.forEach((ala) => {\r\n\t\t\t\t\tconst aux = resp.GeocalibracionAlas.find(\r\n\t\t\t\t\t\t(g) => g.IdAla === ala.Id\r\n\t\t\t\t\t);\r\n\t\t\t\t\tala.GEOCALIBRACION_ALA = aux;\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tlet alaSeleccionada = that.listaAlasFormulario.find(\r\n\t\t\t\t\t(a) => a.RutaImagen === that.alas[that.numAla]\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif(alaSeleccionada.GEOCALIBRACION_ALA === undefined){\r\n\t\t\t\t\talaSeleccionada = that.listaAlasFormulario.find(a => a.GEOCALIBRACION_ALA !== undefined)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthat.anchoMapa =\r\n\t\t\t\t\talaSeleccionada.GEOCALIBRACION_ALA !== undefined\r\n\t\t\t\t\t\t? alaSeleccionada.GEOCALIBRACION_ALA.SVG_width\r\n\t\t\t\t\t\t: that.anchoMapa;\r\n\t\t\t\tthat.altoMapa =\r\n\t\t\t\t\talaSeleccionada.GEOCALIBRACION_ALA !== undefined\r\n\t\t\t\t\t\t? alaSeleccionada.GEOCALIBRACION_ALA.SVG_height\r\n\t\t\t\t\t\t: that.altoMapa;\r\n\t\t\t\tconsole.log(\"Ancho: \", that.anchoMapa, \"Alto: \", that.altoMapa);\r\n\t\t\t\tif (alaSeleccionada.GEOCALIBRACION_ALA === undefined) {\r\n\t\t\t\t\tconsole.error(\r\n\t\t\t\t\t\t\"No existe GEOCALIBRACION_ALA para este ALA: \" +\r\n\t\t\t\t\t\t\talaSeleccionada.id +\r\n\t\t\t\t\t\t\t\", si se quiere que el plano se vea bien ha de insertarse en base de datos una GEOCALIBRACION_ALA minimo con SVG_width y SVG_height\"\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tcargarSeccionAux() {\r\n\t\tconsole.log(\"cargarSeccionAux\");\r\n\t\tthis.puntos = [];\r\n\t\tconst that = this;\r\n\t\tconst _seccionesFormat = {};\r\n\r\n\t\tif (!this.verticalManager) {\r\n\t\t\tthis.verticalManager = new VerticalManager();\r\n\t\t}\r\n\t\tconst alaActual = this.listaAlasFormulario[this.numAla];\r\n\t\tif (!alaActual) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tlet idAlaActual = alaActual.Id;\r\n\t\tthis.setRadius(alaActual.IconoContenidoScale);\r\n\r\n\t\tconst alaFormularioSeleccionada = that.listaAlasFormulario.filter( a => a.Id === idAlaActual)\r\n\t\talaFormularioSeleccionada.forEach((element) => {\r\n\t\t\tconst oAlaForm = new AlaFormulario(element.ENTIDAD);\r\n\t\t\tconst alaEncontradaAux = alaFormularioSeleccionada.find(\r\n\t\t\t\t(a) => a.Id === oAlaForm.Id\r\n\t\t\t);\r\n\t\t\tif (!alaEncontradaAux) {\r\n\t\t\t\talaFormularioSeleccionada.push(oAlaForm);\r\n\t\t\t}\r\n\r\n\t\t\tthat.alasDrop.sort(function (a, b) {\r\n\t\t\t\tif (a.nivel === b.nivel) {\r\n\t\t\t\t\treturn a.label.localeCompare(b.label);\r\n\t\t\t\t}\r\n\t\t\t\treturn a.nivel - b.nivel;\r\n\t\t\t});\r\n\t\t\telement.ENTIDAD.SECCIONS.forEach((_sec) => {\r\n\t\t\t\t_seccionesFormat[_sec.Id] = {\r\n\t\t\t\t\tnombre: _sec.Nombre,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t_sec.NODOS.forEach((_nod) => {\r\n\t\t\t\t\t// x sería el índice del elemento en el array de nodosDeLaConsulta\r\n\t\t\t\t\tlet enc = false;\r\n\t\t\t\t\tlet x = 0;\r\n\t\t\t\t\tconst tam = that.nodosDeLaConsulta.length;\r\n\t\t\t\t\twhile (x < tam && !enc) {\r\n\t\t\t\t\t\tif (_nod.Id === that.nodosDeLaConsulta[x].Nodo) {\r\n\t\t\t\t\t\t\tenc = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tx = x + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (enc) {\r\n\t\t\t\t\t\tconst point = {\r\n\t\t\t\t\t\t\tid: _nod.Id,\r\n\t\t\t\t\t\t\tx: _nod.X,\r\n\t\t\t\t\t\t\ty: _nod.Y,\r\n\t\t\t\t\t\t\tvalue: that.nodosDeLaConsulta[x].Total,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tthat.puntos.push(point);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t\tthat.puntos = Object.assign([], that.puntos);\r\n\t\t//that.onLoadSecciones.emit(_seccionesFormat);\r\n\t}\r\n\r\n\tgetFirsAla() {\r\n\t\tif (this.alasDrop && this.alasDrop.length > 0) {\r\n\t\t\treturn this.alasDrop[0].label;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tgetFirsModo() {\r\n\t\treturn this.modosDrop[0].label;\r\n\t}\r\n\r\n\tanimationDone(evento) {\r\n\t\t// console.log('--------------- EJECUTANDO animationDone');\r\n\t\tconst alaSeleccionadaAux = this.listaAlasFormulario.find(\r\n\t\t\t(a) => a.RutaImagen === this.alas[this.numAla]\r\n\t\t);\r\n\t\tif (alaSeleccionadaAux.GEOCALIBRACION_ALA) {\r\n\t\t\tthis.anchoMapa =\r\n\t\t\t\talaSeleccionadaAux.GEOCALIBRACION_ALA !== undefined\r\n\t\t\t\t\t? alaSeleccionadaAux.GEOCALIBRACION_ALA.SVG_width\r\n\t\t\t\t\t: this.anchoMapa;\r\n\t\t\tthis.altoMapa =\r\n\t\t\t\talaSeleccionadaAux.GEOCALIBRACION_ALA !== undefined\r\n\t\t\t\t\t? alaSeleccionadaAux.GEOCALIBRACION_ALA.SVG_height\r\n\t\t\t\t\t: this.altoMapa;\r\n\t\t}\r\n\r\n\t\tif (this.direccion === 1) {\r\n\t\t\tif (this.estado === \"left\") {\r\n\t\t\t\tthis.estado = \"center\";\r\n\t\t\t}\r\n\r\n\t\t\tif (this.estado === \"right\") {\r\n\t\t\t\tthis.estado = \"left\";\r\n\t\t\t\tthis.pathPlano = this.alas[this.numAla];\r\n\t\t\t\t// this.addSecciones(this.numAla);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.estado === \"right\") {\r\n\t\t\t\tthis.estado = \"center\";\r\n\t\t\t}\r\n\r\n\t\t\tif (this.estado === \"left\") {\r\n\t\t\t\tthis.estado = \"right\";\r\n\t\t\t\t// this.addSecciones(this.numAla);\r\n\t\t\t\tthis.pathPlano = this.alas[this.numAla];\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.cargaSecciones();\r\n\t}\r\n\r\n\tnext(evento) {\r\n\t\tthis.numAla++;\r\n\t\tif (this.numAla >= this.seccionesPre.length) {\r\n\t\t\tthis.numAla = 0;\r\n\t\t}\r\n\t\tthis.direccion = 1;\r\n\t\tthis.estado = \"right\";\r\n\t}\r\n\r\n\tbefore(evento) {\r\n\t\tthis.numAla--;\r\n\t\tif (this.numAla < 0) {\r\n\t\t\tthis.numAla = this.seccionesPre.length - 1;\r\n\t\t}\r\n\t\tthis.direccion = -1;\r\n\t\tthis.estado = \"left\";\r\n\t}\r\n\r\n\tonSVGLoaded($event) {\r\n\t\t// console.log('*** Plano cargado ***');\r\n\t\tthis.addSecciones(this.numAla);\r\n\t}\r\n\r\n\tcambiarPlanta(res) {\r\n\t\t// console.log(res);\r\n\t\tthis.direccion = this.numAla < res.value ? 1 : 0;\r\n\t\tthis.estado = this.numAla < res.value ? \"right\" : \"left\";\r\n\r\n\t\t// console.log(this.alas[res.value]);\r\n\t\tthis.numAla = res.value;\r\n\t\tif (this.numAla >= this.seccionesPre.length) {\r\n\t\t\tthis.numAla = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic cambiarTipo(res) {\r\n\t\tthis.estado = \"right\";\r\n\t\tthis.numTipo = res.value;\r\n\t}\r\n\r\n\taddSecciones(num) {\r\n\t\t// console.log('*** Add Secciones ***');\r\n\t\tif (this.seccionesPre.length <= num) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst _seccs = [];\r\n\t\tthis.seccionesPre[num].forEach((seccion) => {\r\n\t\t\tlet color = this.pickHex(0);\r\n\t\t\tlet nombre = seccion.Nombre; // + '[' + seccion.Id + ']';\r\n\t\t\tif (this.seccionesHot && this.seccionesHot[seccion.Id]) {\r\n\t\t\t\tcolor = this.seccionesHot[seccion.Id].color;\r\n\r\n\t\t\t\tnombre +=\r\n\t\t\t\t\t\" \" +\r\n\t\t\t\t\tthis.seccionesHot[seccion.Id].Total +\r\n\t\t\t\t\t\" visitas (\" +\r\n\t\t\t\t\tthis.seccionesHot[seccion.Id].percentageAll +\r\n\t\t\t\t\t\"%) \";\r\n\t\t\t}\r\n\r\n\t\t\tconst seccionCoordenadasPoligono: Array> =\r\n\t\t\t\t!seccion.CoordenadasPoligono\r\n\t\t\t\t\t? null\r\n\t\t\t\t\t: JSON.parse(seccion.CoordenadasPoligono);\r\n\t\t\tconst seccionPlano = new SeccionPlano(\r\n\t\t\t\tseccion.Id,\r\n\t\t\t\tnombre,\r\n\t\t\t\tseccionCoordenadasPoligono,\r\n\t\t\t\t1,\r\n\t\t\t\t1\r\n\t\t\t);\r\n\t\t\tseccionPlano.ENTIDAD = seccion;\r\n\t\t\tseccionPlano.fill = color;\r\n\t\t\tseccionPlano.stroke = color;\r\n\t\t\tseccionPlano.strokeWidth = \"5\";\r\n\t\t\tseccionPlano.hoverFill = color;\r\n\t\t\tseccionPlano.hoverStroke = color;\r\n\t\t\t_seccs.push(seccionPlano);\r\n\t\t});\r\n\t\tthis.secciones = _seccs;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/hotChart/hotChart.component.ts","module.exports = \"\\r\\n info\\r\\n\\r\\n
      \\r\\n \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.html\n// module id = ../../../../../src/app/componentes/graficas/infoDash/infoDash.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".divIcon {\\n cursor: pointer;\\n font-size: 15px;\\n color: #999; }\\n\\n.divIcon:hover {\\n color: #000; }\\n\\n.divMessage {\\n position: absolute;\\n font-size: 15px;\\n text-align: justify; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.scss\n// module id = ../../../../../src/app/componentes/graficas/infoDash/infoDash.component.scss\n// module chunks = main","import { Component, EventEmitter, Input, Output, OnInit, ViewChild, OnChanges } from '@angular/core';\r\n\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\n@Component({\r\n selector: 'app-info-dash',\r\n templateUrl: './infoDash.component.html',\r\n styleUrls: ['./infoDash.component.scss'],\r\n providers: []\r\n})\r\n\r\n\r\nexport class InfoDashComponent implements OnInit {\r\n\r\n @Input() mensaje: string;\r\n\r\n msgs: any[] = [];\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n ){\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n show(){\r\n this.msgs = [];\r\n const tr_tx = this.translate.instant(this.mensaje);\r\n this.msgs.push({severity: 'info', summary: 'Info', detail: tr_tx});\r\n }\r\n\r\n hide(){\r\n this.msgs = [];\r\n }\r\n\r\n pulsado(evento){\r\n this.show();\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/infoDash/infoDash.component.ts","module.exports = \"\\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      {{'Inicio' | translate}}
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      {{'Fin' | translate}}
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.html\n// module id = ../../../../../src/app/componentes/graficas/rangeFilter/rangeFilter.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.scss\n// module id = ../../../../../src/app/componentes/graficas/rangeFilter/rangeFilter.component.scss\n// module chunks = main","import { Component, EventEmitter, Input, Output , OnInit, ViewChild, OnChanges } from '@angular/core';\r\n\r\nimport { IdiomaCalendario } from '../../../domain/IdiomaCalendatio';\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\n@Component({\r\n selector: 'app-range-filter',\r\n templateUrl: './rangeFilter.component.html',\r\n styleUrls: ['./rangeFilter.component.scss'],\r\n providers: []\r\n })\r\n\r\n\r\n export class RangefilterComponent implements OnInit{\r\n\r\n @Input() uiClass = 'ui-g-3';\r\n @Input() uiClassDate = 'ui-g-3';\r\n @Input() uiClassSep = 'ui-g-1';\r\n @Output() onChangeRange: EventEmitter = new EventEmitter();\r\n\r\n idiomaCalendario: IdiomaCalendario;\r\n\r\n muestraFechasRango = false;\r\n FechaInicioRango = new Date();\r\n FechaFinRango = new Date();\r\n tiposRango = [\r\n {label: this.translate.instant('Dashboard.mesactual'), value: 'mes_actual'},\r\n {label: this.translate.instant('Dashboard.mesanterior'), value: 'mes_anterior'},\r\n {label: this.translate.instant('Dashboard.ultimos30dias'), value: 'ultimos_30_dias'},\r\n {label: this.translate.instant('Dashboard.hoy'), value: 'hoy'},\r\n {label: this.translate.instant('Dashboard.ultimos5minutos'), value: 'ultimos_5_min'},\r\n {label: this.translate.instant('Dashboard.personalizar'), value: 'otros'}\r\n ];\r\n\r\n\r\n ngOnInit(): void {\r\n console.log('Componente RangefilterComponent CARGADO');\r\n }\r\n\r\n constructor(\r\n private translate: TranslateService\r\n ){\r\n\r\n this.idiomaCalendario = new IdiomaCalendario();\r\n this.idiomaCalendario.firstDayOfWeek = 1;\r\n this.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n this.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n this.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n this.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n this.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n this.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n this.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n }\r\n\r\n\r\n cambiarTipoRango(change){\r\n console.log(change.value);\r\n const hoy = new Date();\r\n let inicio = new Date(hoy.getFullYear(), hoy.getMonth(), 1, hoy.getHours(), hoy.getMinutes());\r\n let fin = new Date(hoy.getFullYear(), hoy.getMonth() + 1, 0, hoy.getHours(), hoy.getMinutes());\r\n let lastMinutes = null;\r\n let numTipo = 0;\r\n\r\n this.muestraFechasRango = false;\r\n\r\n let isEmited = true;\r\n\r\n switch (change.value){\r\n case 'mes_actual':\r\n break;\r\n case 'mes_anterior':\r\n inicio = new Date(hoy.getFullYear(), hoy.getMonth() - 1, 1);\r\n fin = new Date(hoy.getFullYear(), hoy.getMonth() , 0);\r\n numTipo = 1;\r\n break;\r\n case 'ultimos_30_dias':\r\n inicio = new Date(hoy.getFullYear(), hoy.getMonth(), hoy.getDate() - 30);\r\n fin = hoy;\r\n numTipo = 2;\r\n break;\r\n case 'hoy':\r\n inicio = hoy;\r\n fin = hoy;\r\n numTipo = 3;\r\n break;\r\n case 'ultimos_5_min':\r\n inicio = hoy;\r\n fin = hoy;\r\n lastMinutes = 5;\r\n numTipo = 4;\r\n break;\r\n case 'otros':\r\n inicio = hoy;\r\n fin = hoy;\r\n this.muestraFechasRango = true;\r\n isEmited = false;\r\n numTipo = 5;\r\n break;\r\n }\r\n\r\n const dev = {\r\n inicio: inicio,\r\n fin: fin,\r\n lastMinutes: lastMinutes,\r\n numTipo: numTipo\r\n };\r\n\r\n if (isEmited) {\r\n this.onChangeRange.emit(dev);\r\n }\r\n\r\n }\r\n\r\n cambiarFechaRango(fecha){\r\n\r\n if (this.FechaInicioRango > this.FechaFinRango){\r\n this.FechaInicioRango = this.FechaFinRango;\r\n this.FechaFinRango = this.FechaInicioRango;\r\n }\r\n\r\n const dev = {\r\n inicio: this.FechaInicioRango,\r\n fin: this.FechaFinRango\r\n };\r\n\r\n this.onChangeRange.emit(dev);\r\n }\r\n\r\n\t onFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaInicioRango') {\r\n\t\t\tthis.FechaInicioRango = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaFinRango') {\r\n\t\t\tthis.FechaFinRango = fecha;\r\n\t\t}\r\n\t\tthis.cambiarFechaRango(fecha);\r\n\t\tcalendar.overlayVisible=false;\r\n\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/graficas/rangeFilter/rangeFilter.component.ts","module.exports = \"\\r\\n\\r\\n

      Descripción Informe Histórico por Secciones

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      Histórico por Secciones 

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 12345\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{rowData['Ala']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData['Nivel']}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 12345\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      0 ? 'flex' : 'none' }\\\">\\r\\n play_arrow\\r\\n stop\\r\\n pause\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n close\\r\\n open_with\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{'Historicos.Rango' | translate}}: {{(frameRangeValues[0]+1) + ' - ' + (frameRangeValues[1]+1)}}
      \\r\\n
      {{'Historicos.Actual' | translate}}: {{frameActual+1}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{getDiaPintar() | date: 'dd-MM-yyyy'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      \\r\\n \\r\\n {{this.nombrePlano}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n

      {{getHoraInicioPintar() | date: 'HH:mm:ss'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      Cambiando de Plano ...

      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'Historicos.Leyenda' | translate}}

      \\r\\n

      {{'Historicos.UltPos' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\r\\n {{ 'No hay ubicación'}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Ala}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Nivel}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Seccion}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      0 ? 'flex' : 'none' }\\\">\\r\\n play_arrow\\r\\n stop\\r\\n pause\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n close\\r\\n open_with\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{'Historicos.Rango' | translate}}: {{(frameRangeValues[0]+1) + ' - ' + (frameRangeValues[1]+1)}}
      \\r\\n
      {{'Historicos.Actual' | translate}}: {{frameActual+1}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{getDiaPintar() | date: 'dd-MM-yyyy'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      \\r\\n \\r\\n {{this.nombrePlano}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n

      {{getHoraInicioPintar() | date: 'HH:mm:ss'}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      Cambiando de Plano ...

      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'Historicos.Leyenda' | translate}}

      \\r\\n

      {{'Historicos.UltPos' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\r\\n {{ 'No hay ubicación'}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      {{item.nombre}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Ala}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Nivel}}\\r\\n

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      \\r\\n {{item.Seccion}}\\r\\n

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.html\n// module id = ../../../../../src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".iconMaximize:hover {\\n color: #999; }\\n\\n.iconMaximize {\\n font-size: 24px;\\n cursor: pointer;\\n color: #FFF; }\\n\\n.blink_me {\\n -webkit-animation: blinker 1s linear infinite;\\n animation: blinker 1s linear infinite; }\\n\\n@-webkit-keyframes blinker {\\n 50% {\\n opacity: 0; } }\\n\\n@keyframes blinker {\\n 50% {\\n opacity: 0; } }\\n\\n.CambioAla {\\n font-weight: bold; }\\n\\n.NoUbicado {\\n font-size: 32px !important; }\\n\\n.w3-border-w, .w3-hover-border-red:hover {\\n border-color: black !important; }\\n\\n.w3-border-bottom {\\n border-bottom: 1px solid #ccc !important; }\\n\\n.w3-container, .w3-panel {\\n padding: 0.01em 16px; }\\n\\n.left {\\n text-align: left; }\\n\\n.icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.scss\n// module id = ../../../../../src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.scss\n// module chunks = main","import { PermisosService, Permisos } from '../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnChanges, OnDestroy, Input, ViewChild, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { ContenidoPlano, PlanoComponent, SeccionPlano} from 'interiores-mapa';\r\nimport { Message} from 'primeng/primeng';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { HistoricoLocalizacionContenido } from '../../domain/HistoricoLocalizacionContenido';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { Predicate } from '../../../../node_modules/breeze-client';\r\n\r\n\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { timer } from 'rxjs/observable/timer';\r\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { timeHours } from 'd3';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-historicoseccionchart',\r\n\ttemplateUrl: './historicoSeccionChart.component.html',\r\n\tstyleUrls: ['./historicoSeccionChart.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class AppHistoricoSeccionChartComponent implements OnInit, OnDestroy, OnChanges {\r\n\t@ViewChild('dt_historicos') dt_historicos;\r\n\t@Input() tipologiasList = [];\r\n\t@Input() historicosList: HistoricoLocalizacionContenido[];\r\n\t@Input() mostrarSecciones: boolean;\r\n\t@Input() contenidosList = [];\r\n\t@Output() historicoSecciones = new EventEmitter();\r\n\r\n\r\n\thistoricosListTodos: HistoricoLocalizacionContenido[];\r\n\thistoricosFiltrados: HistoricoLocalizacionContenido[];\r\n\t// @Output() onChangeRange: EventEmitter = new EventEmitter();\r\n\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n\tpublic cols3;\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n displayBasic2: boolean;\r\n displayCustom: boolean;\r\n\r\n// activeIndex: number = 0;\r\n\r\n public tipo_informe_seleccionado: any[];\r\n public tipologias_contenido_seleccionadas: any[];\r\n\tpublic contenidos_seleccionados: any[];\r\n\tselectedHistoric: HistoricoLocalizacionContenido[] = [];\r\n\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\tpublic opcion_desde_selected2;\r\n\tpublic opcion_hasta_selected2;\r\n\tpublic op_desde;\r\n\tpublic op_hasta;\r\n\tpublic op_desde2;\r\n\tpublic op_hasta2;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\t//variable de opciones para dropdown donde \r\n\r\n\ttipologia_Filter: string;\r\n\tcontenido_Filter: string;\r\n\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tappComponent: any;\r\n\tfechaVisualizacion: Date = new Date();\r\n\t@ViewChild('plano') plano: PlanoComponent;\r\n\t@ViewChild('plano2') plano2: PlanoComponent;\r\n\r\n\tmapaPantallaCompletaVisible = false;\r\n\tlistaNiveles: any[] = [];\r\n\tnombrePlanta: String;\r\n\tpathPlano: 'https://itsoftcdn.azureedge.net/everpaths/everpaths-b4562844-2974-40d4-8be9-fa64620b9d3c' ;\r\n\tzoomLevels: Number[]= [1, 1];\r\n\tcontenidosAnt = [];\r\n\tcontents: ContenidoPlano[] = [];\r\n\tsections: SeccionPlano[] = [];\r\n\tcurrentZoomLevel: number;\r\n\tzoomLevelsVisibilityLabels: Number[] = [1, 100];\r\n\r\n\tTIEMPO_AUTOREFRESCO = 1;\r\n\tprivate subscription: any; // private subscription: Subscription;\r\n\teverySecond: Observable < number > = timer(0, this.TIEMPO_AUTOREFRESCO * 1000);\r\n\r\n\tnumAla = 0; // Indice de AlaFormularioSeleccionada\r\n\talasDrop = []; // Lista de Alas para el DropDown\r\n\tcambiandoPlanta: boolean = false;\r\n\r\n\tindiceToAdd: number;\r\n\tinicio_Fecha_Desde_Filter: any;\r\n\tinicio_Fecha_Hasta_Filter: any;\r\n\tfin_Fecha_Desde_Filter: any;\r\n\tfin_Fecha_Hasta_Filter: any;\r\n\tstartHourDefault: any;\r\n\tfinHourDefault: any;\r\n\r\n\tarrayFechasDesde = [];\r\n\tframeRangeValues = [0, 0];\r\n\tframeActual = 0;\r\n\tframeAnterior = 0;\r\n\t// Variables para controlar el color del contenido y el numerito que han de mostrar en el plano\r\n\tleyenda: Map;\r\n\tleyendaArrayValores: any;\r\n\r\n\tpublic plantachange: boolean = false;\r\n\tocultarIMPRESION: boolean = true;\r\n\tvalorFiltroElemento: any;\r\n\tnombrePlano: string;\r\n\tpublic first: number;\r\n\r\n\tpublic positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\t// Tabla Historicos\r\n\t\tthis.cols3 = [\r\n\t\t\t{ field: 'Elemento', header: this.translate.instant('Historicos.Elemento'), visible: true, width: '20%', imprimir: true, value:\"\" },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('Historicos.Descripcion'), visible: true, width: '20%', imprimir: false },\r\n\t\t\t{ field: 'Tipologias', header: this.translate.instant('Historicos.Tipologias'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaDesde', header: this.translate.instant('Historicos.FechaDesde'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaHasta', header: this.translate.instant('Historicos.FechaHasta'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('Historicos.Seccion'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'Localizacion', header: '', visible: false, width: '0%' }\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n }\r\n\r\n\t//#region ** CICLO VIDA **\r\n\tngOnInit() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tthis.alasDrop = [];\r\n\t\tthis.historicosList = this.agruparContenidosPorSeccion(this.historicosList)\r\n\t\tthis.historicosList.forEach(element => {\r\n\t\t\tif (element.Ala_Id !== undefined && !this.alasDrop.find(a => a.id === element.Ala_Id)) {\r\n\t\t\t\tthis.alasDrop.push({\r\n\t\t\t\t\tlabel: element.Ala === element.Nivel ? element.Ala : element.Ala + ' - ' + element.Nivel,\r\n\t\t\t\t\tvalue: this.alasDrop.length,\r\n\t\t\t\t\tid: element.Ala_Id,\r\n\t\t\t\t\tpathPlano: element.pathPlano,\r\n\t\t\t\t\tcontents: [],\r\n\t\t\t\t\tsections:[],\r\n\t\t\t\t\tidNivel: element.Nivel_Id,\r\n\t\t\t\t\torden: 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.leyenda = new Map([]);\r\n\t\tthis.leyendaArrayValores = [];\r\n\r\n\t\tthis.historicosListTodos = this.historicosList;\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\r\n\r\n\t\tthis.ordenarSelectorAlaNivel();\r\n\t\t\r\n\t\t\r\n\t}\r\n\r\n\tngOnChanges(change) {\r\n\t\tthis.alasDrop = [];\r\n\r\n\t\tif (change.historicosList) {\r\n\t\t\tthis.historicosListTodos = change.historicosList.currentValue;\r\n\t\t}\r\n\t\tthis.historicosList = this.agruparContenidosPorSeccion(this.historicosList);\r\n\t\tthis.vaciarHistoricosPlano();\r\n\t\tthis.selectedHistoric = [];\r\n\r\n\t\tthis.generarArrayFechasDesde();\r\n\r\n\t\tthis.frameActual = 0;\r\n\r\n\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\t\tthis.historicosList.forEach(element => {\r\n\t\t\tif (element.Ala_Id !== undefined && !this.alasDrop.find(a => a.id === element.Ala_Id)){\r\n\t\t\t\tthis.alasDrop.push({\r\n\t\t\t\t\tlabel: element.Ala === element.Nivel ? element.Ala : element.Ala + ' - ' + element.Nivel,\r\n\t\t\t\t\tvalue: this.alasDrop.length,\r\n\t\t\t\t\tid: element.Ala_Id,\r\n\t\t\t\t\tpathPlano: element.pathPlano,\r\n\t\t\t\t\tcontents: [],\r\n\t\t\t\t\tsections: [],\r\n\t\t\t\t\tidNivel: element.Nivel_Id,\r\n\t\t\t\t\torden: 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t\r\n\t\tthis.ordenarSelectorAlaNivel();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}, 1000);\r\n\r\n\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tordenarSelectorAlaNivel() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tlet includes = 'ESPACIO';\r\n\t\tincludes = includes + ', IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS';\r\n\t\tincludes = includes + ', ALAS.IDIOMAS.IDIOMA';\r\n\t\t// includes = includes + ', ALAS.SECCIONS.NODOS.CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\r\n\t\treturn entityManager.getNIVEL(predicado, includes)\r\n\t\t.then(function(niveles){\r\n\t\t\tif (niveles) {\r\n\t\t\t\tfor (let index = 0; index < that.alasDrop.length; index++) {\r\n\t\t\t\t\tlet orden = niveles.find(n => n.Id === that.alasDrop[index].idNivel);\r\n\t\t\t\t\tif(orden){\r\n\t\t\t\t\t\tthat.alasDrop[index].orden = orden.NivelVertical;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet auxAlasDrop = that.alasDrop.sort(((a, b) => a.orden - b.orden));\r\n\t\t\tthat.alasDrop = [];\r\n\t\t\tfor (let index = 0; index < auxAlasDrop.length; index++) {\r\n\t\t\t\tauxAlasDrop[index].value = index;\r\n\t\t\t\tthat.alasDrop.push(auxAlasDrop[index])\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tthat.cambiarPlanta(0);\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconsole.error(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t\t\r\n\t}\r\n\t//#endregion\r\n\t//#region ** TABLA **\r\n\tfilterTipologia(event, columna) {\r\n\t\tconst that = this;\r\n\t\tthis.dt_historicos.filter(event.Nombre, columna, 'equals');\r\n\t}\r\n\r\n\tfilterLocalizacion(value, field, op){\r\n\t\tthis.dt_historicos.filter(value, 'Localizacion', op);\r\n\t}\r\n\tseleccionarTodo(event){\r\n\t\tthis.onRowSelect(event);\r\n\r\n\t}\r\n''\r\n\tseleccionarContenido(event){\r\n\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\r\n\t\tif(this.dt_historicos.filters){\r\n\t\t\tfor (const key in this.dt_historicos.filters) {\r\n\t\t\t\t\r\n\t\t\t\tthis.dt_historicos.filter(this.dt_historicos.filters[key].value, key, this.dt_historicos.filters[key].matchMode);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t\r\n\r\n\t\tif(event.value){\r\n\t\t\tthis.selectedHistoric = [];\r\n\t\t\tthis.historicosList.forEach(element => {\r\n\t\t\t\tif(this.dt_historicos.filteredValue && this.dt_historicos.filteredValue.length > 0){\r\n\t\t\t\t\tlet existeFiltrado = this.dt_historicos.filteredValue.find(h => h.Contenido_Id === element.Contenido_Id)\r\n\t\t\t\t\tif(element.Contenido_Id === event.value && existeFiltrado){\r\n\t\t\t\t\t\tthis.selectedHistoric.push(element)\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if (element.Contenido_Id === event.value){\r\n\t\t\t\t\tthis.selectedHistoric.push(element)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.historicosFiltrados = this.selectedHistoric;\r\n\t\t\tthis.dt_historicos.first = 0;\r\n\t\t\tif(this.selectedHistoric.length > 0){\r\n\t\t\t\tlet pagina = this.alasDrop.find(a => a.idNivel === this.selectedHistoric[0].Nivel_Id)\r\n\t\t\t\tthis.cambiarPlanta(pagina.value)\r\n\t\t\t}\r\n\r\n\r\n\t\t}else{\r\n\t\t\tthis.selectedHistoric = []\r\n\t\t\tthis.historicosFiltrados = this.historicosList;\r\n\t\t\tthis.dt_historicos.first = 0;\r\n\t\t\tthis.cambiarPlanta(0);\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\r\n\t}\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\r\n\t\tconst that = this;\r\n\t\tthis.historicosFiltrados = this.historicosList;\r\n\r\n\t\tif(that.dt_historicos.filters){\r\n\t\t\tfor (const key in that.dt_historicos.filters) {\r\n\t\t\t\tthis.dt_historicos.filter(that.dt_historicos.filters[key].value, key, that.dt_historicos.filters[key].matchMode);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthis.inicio_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthis.inicio_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthis.fin_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthis.fin_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Aplicamos filtro FechaDesde\r\n\t\tthis.historicosFiltrados = this.historicosFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Desde_Filter === undefined || that.inicio_Fecha_Desde_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Desde_Filter === undefined || that.fin_Fecha_Desde_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Desde_Filter !== undefined && that.inicio_Fecha_Desde_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Desde_Filter <= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Desde_Filter !== undefined && that.fin_Fecha_Desde_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Desde_Filter >= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaHasta\r\n\t\tthis.historicosFiltrados = this.historicosFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Hasta_Filter === undefined || that.inicio_Fecha_Hasta_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Hasta_Filter === undefined || that.fin_Fecha_Hasta_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Hasta_Filter !== undefined && that.inicio_Fecha_Hasta_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Hasta_Filter <= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Hasta_Filter !== undefined && that.fin_Fecha_Hasta_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Hasta_Filter >= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\r\n\t}\r\n\tfilterElemento(event, col){\r\n\t\tthis.dt_historicos.filter(event, col, 'contains');\r\n\t\tdocument.getElementsByClassName('ui-inputtext ui-corner-all ui-state-default ui-widget')[4].attributes[5].value = event;\r\n\t}\r\n\tonRowDblClick(event, col) {\r\n\r\n\t\tif(event.target.innerText){\r\n\t\t\tthis.valorFiltroElemento = event.target.innerText;\r\n\t\t}\r\n\t\tthis.dt_historicos.filter(event.target.innerText, col, 'contains');\r\n\t}\r\n\r\n\tonRowSelect(event){\r\n\t\tconst contenidoDistinto = this.selectedHistoric.find(s => s.Contenido_Id !== event.data.Contenido_Id)\r\n\t\tif(!contenidoDistinto){\r\n\t\tthis.stopSecuenciaHistoricos();\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tif (this.frameActual > this.frameRangeValues[1]) {\r\n\t\t\tthis.frameActual = this.frameRangeValues[1];\r\n\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\tlet AlaHistoricoUltPintar = this.alasDrop.find(i => i.id === event.data.Ala_Id);\r\n\t\t\r\n\t\t\tthis.cambiarPlanta(AlaHistoricoUltPintar.value);\r\n\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t}else{\r\n\t\tthis.showInfo('En este informe no puedes seleccionar elementos distintos.')\r\n\t\tthis.selectedHistoric.length = this.selectedHistoric.length - 1;\r\n\t}\r\n\r\n\t}\r\n\r\n\tonRowUnselect(event) {\r\n\t\tthis.stopSecuenciaHistoricos();\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tif (this.frameActual > this.frameRangeValues[1]) {\r\n\t\t\tthis.frameActual = this.frameRangeValues[1];\r\n\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t}\r\n\t//#endregion\r\n\tagruparContenidosPorSeccion(historicosList: HistoricoLocalizacionContenido[]){\r\n\t\tconst historicosListFiltrados: HistoricoLocalizacionContenido[] = [];\r\n\t\tfor (let index = 0; index < historicosList.length; index++) {\r\n\t\t\tlet elemento: HistoricoLocalizacionContenido;\r\n\t\t\telemento = historicosList[index];\r\n\t\t\tif(index === 0){\r\n\t\t\t\thistoricosListFiltrados.push(elemento);\r\n\t\t\t}else if(elemento.Seccion_Id !== historicosList[index - 1].Seccion_Id){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.Seccion_Id === historicosList[index-1].Seccion_Id && elemento.Elemento === historicosList[index-1].Elemento && elemento.FechaDesde.toString() === historicosList[index - 1].FechaHasta.toString()){\r\n\t\t\t\tlet desde = historicosList[index - 1].FechaDesde;\r\n\t\t\t\telemento.FechaDesde = desde;\r\n\t\t\t\thistoricosListFiltrados.length = historicosListFiltrados.length - 1;\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.Seccion_Id === historicosList[index-1].Seccion_Id && elemento.Elemento === historicosList[index-1].Elemento && elemento.FechaDesde.toString() !== historicosList[index - 1].FechaHasta.toString()){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.Elemento !== historicosList[index - 1].Elemento){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\tthis.historicoSecciones.emit(historicosListFiltrados)\r\n\t\t//mando la tabla a la pagina 0\r\n\t\tif(typeof this.dt_historicos !== 'undefined'){\r\n\t\t\tthis.dt_historicos.first = 0;\r\n\t\t}\r\n\t\t\r\n\t\treturn historicosListFiltrados\r\n\t}\r\n\r\n\tagruparContenidosPorSeccion2(historicosList: HistoricoLocalizacionContenido[]){\r\n\t\tconst historicosListFiltrados: HistoricoLocalizacionContenido[] = [];\r\n\r\n\r\n\t\t// Return the reduced historicosList\r\n\t\tconst grupos = historicosList.reduce((result, currentItem) => {\r\n\t\t\t// If an historicosList already present for key, push it to the array. Otherwise create an array and push the object.\r\n\t\t\tif (!result[currentItem.Contenido_Id]) {\r\n\t\t\tresult[currentItem.Contenido_Id] = [];\r\n\t\t\t}\r\n\t\t\tresult[currentItem.Contenido_Id].push( currentItem )\r\n\t\t\t// return the current iteration `result` value, this will be the next iteration's `result` value and accumulate\r\n\t\t\treturn result;\r\n\t\t}, {}); // Empty object is the initial value for result object\r\n\r\n\t\t// TODO: agrupar los historicos por seccion una vez separados por Contenido_id\r\n\t\tObject.keys(grupos).forEach(id => {\r\n\t\t\tconst historicosListContenido = grupos[id];\r\n\t\t\tlet elementoAgrupar:HistoricoLocalizacionContenido;\r\n\t\t\tfor (let index = 0; index < historicosListContenido.length; index++) {\r\n\t\t\t\tconst element = historicosListContenido[index];\r\n\t\t\t\tif (index == 0) {\r\n\r\n\t\t\t\t\telementoAgrupar = Object.assign(new HistoricoLocalizacionContenido(), element);\r\n\t\t\t\t\t// historicosListFiltrados.push(element);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t//if (historicosListFiltrados[historicosListFiltrados.length - 1].Seccion_Id != element.Seccion_Id) {\r\n\t\t\t\t\tif (elementoAgrupar.Seccion_Id != element.Seccion_Id) {\r\n\t\t\t\t\t\telementoAgrupar.FechaHasta = historicosListContenido[index - 1].FechaHasta;\r\n\t\t\t\t\t\thistoricosListFiltrados.push(elementoAgrupar);\r\n\t\t\t\t\t\telementoAgrupar = Object.assign(new HistoricoLocalizacionContenido(), element);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn historicosListFiltrados\r\n\t}\r\n\r\n\tcargarPuntoEnPlano(historicosAnt, conNumero = true, conPunto = false){\r\n\r\n\t\tconst alaSelect = this.alasDrop[this.numAla];\r\n\t\tif (alaSelect) {\r\n\t\t\tconst id_ala_seleccionada = alaSelect.id;\r\n\t\t\t// this.vaciarHistoricosPlano();\r\n\t\t\tif (historicosAnt.length > 0) {\r\n\r\n\t\t\t\t// Ponemos todos los frames a 0\r\n\t\t\t\tthis.leyendaArrayValores.forEach(valor => {\r\n\t\t\t\t\tvalor.frame = 0;\r\n\t\t\t\t\tthis.leyenda.set(valor.key, valor);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// elementAnt.setHistoricoPuntoPlano();\r\n\t\t\t\tfor (let index = 0; index < historicosAnt.length; index++) {\r\n\t\t\t\t\tconst ha = historicosAnt[index];\r\n\t\t\t\t\tha.setHistoricoSeccionPuntoPlano(17);\r\n\t\t\t\t\t// Comprobar que los contenidos pertenezcan al ala seleccionada\r\n\t\t\t\t\tif (id_ala_seleccionada === ha.Ala_Id) {\r\n\t\t\t\t\t\tif (this.mostrarSecciones) {\r\n\t\t\t\t\t\t\tthis.sections.push(ha.seccionPlano);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprueba(){\r\n\t\tthis.selectedHistoric = [];\r\n\t\treturn true;\r\n\t}\r\n\tcargarHistoricosEnPlano(historicosPintar, conNumero = true, conPunto = false, historicosAnt = []){\r\n\r\n\t\tthis.generarArrayFechasDesde();\r\n\t\tthis.generarLeyenda();\r\n\t\tconst alaSelect = this.alasDrop[this.numAla];\r\n\t\tif (alaSelect) {\r\n\t\t\tconst id_ala_seleccionada = alaSelect.id;\r\n\t\t\tthis.vaciarHistoricosPlano();\r\n\r\n\t\t\tif (historicosAnt.length > 0) {\r\n\t\t\t\tthis.cargarPuntoEnPlano(historicosAnt);\r\n\t\t\t}\r\n\r\n\t\t\tif (historicosPintar.length > 0) {\r\n\r\n\t\t\t\t// Ponemos todos los frames a 0\r\n\t\t\t\tthis.leyendaArrayValores.forEach(valor => {\r\n\t\t\t\t\tvalor.frame = 0;\r\n\t\t\t\t\tthis.leyenda.set(valor.key, valor);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// elementAnt.setHistoricoPuntoPlano();\r\n\t\t\t\tfor (let index = 0; index < historicosPintar.length; index++) {\r\n\t\t\t\t\tconst element = historicosPintar[index];\r\n\t\t\t\t\tconst cont = this.actualizarLeyenda(element);\r\n\t\t\t\t\telement.setHistoricoSeccionPlano(cont.frame, 16);\r\n\r\n\t\t\t\t\t// Comprobar que los contenidos pertenezcan al ala seleccionada\r\n\t\t\t\t\tif (id_ala_seleccionada === element.Ala_Id) {\r\n\t\t\t\t\t\t\talaSelect.sections.push(element.seccionPlano);\r\n\t\t\t\t\t\t\tthis.sections.push(element.seccionPlano);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdesplazarContenidosCoincidentes(contents: ContenidoPlano[], contenidoPlano: ContenidoPlano): any {\r\n\t\t\t\t// Si hay dos o más visitas en las mismas coordenadas, desplazo la chincheta\r\n\t\t\t\tif (contenidoPlano) {\r\n\t\t\t\t\tthis.contents.forEach((h:ContenidoPlano) => {\r\n\t\t\t\t\t\tif (h.getX() === contenidoPlano.getX() && h.getY() === contenidoPlano.getY()) {\r\n\t\t\t\t\t\t\tcontenidoPlano.setX(contenidoPlano.getX() + 0);\r\n\t\t\t\t\t\t\tcontenidoPlano.setY(contenidoPlano.getY() + 0);\r\n\t\t\t\t\t}});\r\n\t\t\t\t}\r\n\t\t\t\treturn contenidoPlano;\r\n\t}\r\n\r\n\tvaciarHistoricosPlano(): any {\r\n\t\tthis.contents = [];\r\n\t\tthis.contents = Object.assign([], this.contents);\r\n\t\tthis.contents.splice(0, this.contents.length);\r\n\t\tthis.contents = Object.assign([], this.contents);\r\n\r\n\t\tthis.sections = [];\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\t\tthis.sections.splice(0, this.sections.length);\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\r\n\t}\r\n\r\n\tgenerarLeyenda(){\r\n\t\tthis.leyenda = new Map([]);\r\n\r\n\t\t// Si no tenemos nada seleccionado en la tabla y solo hemos buscado un contenido mostramos todos sis historicos en el plano\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\r\n\t\t\tconst historicosListAux = this.historicosList.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\r\n\t\t\tconst last = historicosListAux.length - 1 >= 0 ? historicosListAux.length - 1 : 0;\r\n\t\t\tconst historico = historicosListAux[last];\r\n\r\n\t\t\tif (historico) {\r\n\t\t\t\tconst contenidoEnMapa = this.leyenda.get(historico.Contenido_Id);\r\n\t\t\t\tif (!contenidoEnMapa) {\r\n\t\t\t\t\tthis.leyenda.set(historico.Contenido_Id,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey: historico.Contenido_Id,\r\n\t\t\t\t\t\t\tnombre: historico.Elemento,\r\n\t\t\t\t\t\t\tAla: historico.Ala,\r\n\t\t\t\t\t\t\tNivel: historico.Nivel,\r\n\t\t\t\t\t\t\tSeccion: historico.Seccion,\r\n\t\t\t\t\t\t\tindiceColor: this.leyenda.size,\r\n\t\t\t\t\t\t\tframe: 0,\r\n\t\t\t\t\t\t\ticono: '',\r\n\t\t\t\t\t\t\tblink: false,\r\n\t\t\t\t\t\t\tnegrita: false,\r\n\t\t\t\t\t\t\tnoubicado: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.selectedHistoric.forEach(historico => {\r\n\t\t\t\tconst contenidoEnMapa = this.leyenda.get(historico.Contenido_Id);\r\n\t\t\t\tif (!contenidoEnMapa) {\r\n\t\t\t\t\tthis.leyenda.set(historico.Contenido_Id,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tkey: historico.Contenido_Id,\r\n\t\t\t\t\t\t\tnombre: historico.Elemento,\r\n\t\t\t\t\t\t\tAla: '',\r\n\t\t\t\t\t\t\tNivel: '',\r\n\t\t\t\t\t\t\tSeccion: '',\r\n\t\t\t\t\t\t\tindiceColor: this.leyenda.size,\r\n\t\t\t\t\t\t\tframe: 0,\r\n\t\t\t\t\t\t\ticono: '',\r\n\t\t\t\t\t\t\tblink: false,\r\n\t\t\t\t\t\t\tnegrita: false,\r\n\t\t\t\t\t\t\tnoubicado: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.leyendaArrayValores = Array.from( this.leyenda.values() );\r\n\t\tthis.leyendaArrayValores.filter( l => l === undefined);\r\n\r\n\t}\r\n\r\n\tactualizarLeyenda(historico){\r\n\r\n\t\tconst cont = this.leyenda.get(historico.Contenido_Id);\r\n\t\tif (!cont) {\r\n\t\t\tcont.frame = 0;\r\n\t\t}\r\n\r\n\t\tcont.frame += 1;\r\n\t\tcont.Ala = historico.Ala;\r\n\t\tcont.Nivel = historico.Nivel;\r\n\t\tcont.Seccion = historico.Seccion;\r\n\t\tthis.leyenda.set(cont.key, cont);\r\n\t\treturn cont;\r\n\t}\r\n\r\n\tcontarContenidosDistintos(array){\r\n\t\tconst result = [];\r\n\t\tconst map = new Map();\r\n\t\tfor (const item of array) {\r\n\t\t\tif (!map.has(item.Contenido_Id)){\r\n\t\t\t\tmap.set(item.Contenido_Id, true); // set any value to Map\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tid: item.Contenido_Id,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.length;\r\n\t}\r\n\r\n\r\n\tmapaPantallaCompletaVisibleChanged(){\r\n\t\tthis.mapaPantallaCompletaVisible = !this.mapaPantallaCompletaVisible;\r\n\t}\r\n\r\n\t//#region ** ANIMACION **\r\n\r\n\treproducirSecuenciaHistoricos(){\r\n\t\tconst that = this;\r\n\r\n\t\t// Si existe la suscripcion o esta cerrada y estaba pausado reanudamos\r\n\t\tif (this.subscription && !this.subscription.closed && this.subscription.isStopped) {\r\n\t\t\tthis.subscription.isStopped = !this.subscription.isStopped;\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Si no existe la suscripcion o esta cerrada la creamos\r\n\t\tif (!this.subscription || this.subscription.closed) {\r\n\t\t\tthis.vaciarHistoricosPlano();\r\n\r\n\t\t\t// Numero de frames que no animamos tras el cambio de planta, esto evita que se siga ejecutando la animacion mientras se muestra la pantalla de carga\r\n\t\t\tconst FRAMES_ESPERA_TRAS_CAMBIO_PLANTA = 1;\r\n\t\t\tlet framesTranscurridosCambioPlanta = FRAMES_ESPERA_TRAS_CAMBIO_PLANTA;\r\n\t\t\tthis.indiceToAdd = this.frameActual;\r\n\r\n\r\n\t\t\tthis.subscription = this.everySecond\r\n\t\t\t.subscribe((seconds) => {\r\n\r\n\t\t\t\t// Paso de la Animacion\r\n\t\t\t\tif (!that.cambiandoPlanta && framesTranscurridosCambioPlanta >= FRAMES_ESPERA_TRAS_CAMBIO_PLANTA) {\r\n\t\t\t\t\t// Si solo tenemos un contenido haremos el cambio de planta automatico\r\n\t\t\t\t\tif (this.contarContenidosDistintos(this.historicosList) <= 1 || this.contarContenidosDistintos(this.selectedHistoric) <= 1) {\r\n\r\n\t\t\t\t\t\tconst id_ala_seleccionada = this.alasDrop[this.numAla].id;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\r\n\t\t\t\t\t\tconst historico = historicosPintar[0];\r\n\t\t\t\t\t\tif (id_ala_seleccionada === historico.Ala_Id) {\r\n\r\n\t\t\t\t\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// Cambiar de planta\r\n\t\t\r\n\t\t\t\t\t\t\tconst alaDrop = this.alasDrop.find( a => a.id === historico.Ala_Id);\r\n\t\t\t\t\t\t\tthis.vaciarHistoricosPlano();\r\n\t\t\t\t\t\t\tthis.cambiarPlanta(alaDrop.value, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Si acabamos de cambiar la planta ponemos a 0 el numero de frames transcurridos desde el cambio\r\n\t\t\t\tif (that.cambiandoPlanta) {\r\n\t\t\t\t\tframesTranscurridosCambioPlanta = 0;\r\n\t\t\t\t}\r\n\t\t\t\t// Si no acabamos de cambiar la planta incrementamos el numero de frames trasncurridos\r\n\t\t\t\telse {\r\n\t\t\t\t\tframesTranscurridosCambioPlanta += 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tanimacionEnCurso(){ // Devuelve true si esta reproduciendose la animacion aunque este pausada\r\n\t\t// Si solo tenemos un contenido haremos el cambio de planta automatico\r\n\t\tif (this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\tconst existeSuscription = this.subscription && !this.subscription.closed;\r\n\t\t\tif (!existeSuscription) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (existeSuscription)\r\n\t\t\t{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tejecutarPasoAnimacion(){\r\n\r\n\t\tconst historicosAnt = this.obtenerPuntosHistoricosAnteriores(this.indiceToAdd - 1); // this.obtenerPuntosPasosAnteriores();\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar, false, false, historicosAnt);\r\n\t\t// Tras cargar el contenido en el plano incrementamos el numero de frame a animar\r\n\r\n\t\tthis.frameActual = this.indiceToAdd;\r\n\t\tthis.indiceToAdd += 1;\r\n\t\tthis.comprobarCambioDePlantaContenido(this.indiceToAdd);\r\n\t\t// this.actualizarLeyenda(historico);\r\n\t\t// Pausamos y Reseteamos el indice cuando llegamos al ultimo elemento\r\n\t\tif (this.indiceToAdd >= this.frameRangeValues[1] + 1) {\r\n\t\t\tthis.pausarSecuenciaHistoricos();\r\n\t\t\tthis.indiceToAdd = this.frameRangeValues[0];\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tcomprobarCambioDePlantaContenido(indiceToAdd){\r\n\r\n\t\tif (indiceToAdd === 0){\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\t\tconst historicosPintados = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd - 1);\r\n\t\thistoricosPintar.forEach(element => {\r\n\t\t\tconst historicoPintado = historicosPintados.find(h => h.Contenido_Id === element.Contenido_Id);\r\n\t\t\tconst historicoPintadoNoUbicado = historicosPintados.find(hn => hn.Contenido_Id !== element.Contenido_Id);\r\n\t\t\tif(historicoPintado && element.Ala_Id !== historicoPintado.Ala_Id){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === historicoPintado.Contenido_Id);\r\n\t\t\t\tleyenda.blink = true;\r\n\t\t\t}\r\n\t\t\telse if(!historicoPintado){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.Ala === '');\r\n\t\t\t\tleyenda.noubicado = true;\r\n\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === historicoPintado.Contenido_Id);\r\n\t\t\t\tleyenda.blink = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thistoricosPintar.forEach(element => {\r\n\t\t\tconst idAlaSeleccionada = this.alasDrop[this.numAla].id;\r\n\t\t\tif(element.Ala_Id !== idAlaSeleccionada){\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === element.Contenido_Id);\r\n\t\t\t\tleyenda.negrita = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst leyenda = this.leyendaArrayValores.find(l => l.key === element.Contenido_Id);\r\n\t\t\t\tleyenda.negrita = false;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tstopSecuenciaHistoricos(){\r\n\t\tthis.frameActual = 0;\r\n\t\tif (this.subscription) {\r\n\t\t\tthis.subscription.unsubscribe();\r\n\t\t}\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t}\r\n\r\n\tpausarSecuenciaHistoricos(){\r\n\t\tif (this.subscription) {\r\n\t\t\tthis.subscription.isStopped = !this.subscription.isStopped;\r\n\t\t}\r\n\t}\r\n\r\n\tgenerarArrayFechasDesde(){\r\n\r\n\t\tthis.frameRangeValues[0] = 0;\r\n\t\tthis.arrayFechasDesde = [];\r\n\t\tlet historicos = [];\r\n\r\n\t\t// Ordenamos los historicos por fecha\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\tthis.historicosList = this.historicosList.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\t\t\thistoricos = this.historicosList;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.selectedHistoric = this.selectedHistoric.sort((a, b) =>\r\n\t\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t\t);\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\t\t}\r\n\r\n\t\t// Cogemos las fechas desde sin repeticion de los historicos\r\n\t\thistoricos.forEach(element => {\r\n\t\t\tconst fechaEncontrada = this.arrayFechasDesde.find( f => f === element.FechaDesde);\r\n\t\t\tif (!fechaEncontrada) {\r\n\t\t\t\tthis.arrayFechasDesde.push(element.FechaDesde);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.frameRangeValues[1] = this.arrayFechasDesde.length <= 0 ? 0 : this.arrayFechasDesde.length - 1;\r\n\t}\r\n\t//#endregion\r\n\r\n\t//#region ** Slider Frame **\r\n\tonSliderChange($event){\r\n\t\t// Cambiamos el indice de la animacion al seleccionado en el slider\r\n\t\tthis.indiceToAdd = this.frameActual;\r\n\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde(this.indiceToAdd);\r\n\t\tthis.cargarHistoricosEnPlano(historicosPintar, false);\r\n\t}\r\n\r\n\tobtenerHistoricosRangoFechasDesde(indiceToAdd?){\r\n\r\n\t\tlet historicos: HistoricoLocalizacionContenido[] = [];\r\n\t\tif (indiceToAdd < 0) {\r\n\t\t\treturn historicos;\r\n\t\t}\r\n\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\thistoricos = this.historicosList;\r\n\r\n\t\t}\r\n\t\telse{\r\n\t\t\t\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\r\n\t\t}\r\n\r\n\t\thistoricos = historicos.sort((a, b) =>\r\n\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t);\r\n\r\n\t\tlet historicosPintar = [];\r\n\t\tif (indiceToAdd !== undefined) {\r\n\t\t\tconst desde = this.arrayFechasDesde[indiceToAdd];\r\n\t\t\tconst fechaDesde = new Date(desde);\r\n\r\n\t\t\thistoricosPintar = historicos.filter( h => h.FechaDesde === desde);\r\n\t\t\t// Buscar en selectedHistoric otros historicos de distinto contenido que tengan la fechaDesde anterior a la fecha desde y fecha Hasta posterior\r\n\t\t\thistoricosPintar = historicos.filter( h => {\r\n\t\t\t\tconst fd = new Date(h.FechaDesde);\r\n\t\t\t\tconst fh = new Date(h.FechaHasta);\r\n\t\t\t\tconst condicion_1 = fd.getTime() === fechaDesde.getTime();\r\n\t\t\t\tconst condicion_2_1 = fd.getTime() <= fechaDesde.getTime();\r\n\t\t\t\tconst condicion_2_2 = fh.getTime() > fechaDesde.getTime();\r\n\t\t\t\treturn condicion_1|| (condicion_2_1 && condicion_2_2);\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\t\r\n\t\t\thistoricosPintar = historicos;\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\treturn historicosPintar;\r\n\t}\r\n\r\n\tobtenerPuntosHistoricosAnteriores(indiceToAdd){\r\n\r\n\t\tlet historicos: HistoricoLocalizacionContenido[] = [];\r\n\t\tif (indiceToAdd < 0) {\r\n\t\t\treturn historicos;\r\n\t\t}\r\n\t\tif (this.selectedHistoric.length <= 0 && this.contarContenidosDistintos(this.historicosList) <= 1) {\r\n\t\t\thistoricos = this.historicosList;\r\n\t\t}\r\n\t\telse{\r\n\t\t\thistoricos = this.selectedHistoric;\r\n\t\t}\r\n\r\n\t\thistoricos = historicos.sort((a, b) =>\r\n\t\t\tnew Date(a.FechaDesde).getTime() - new Date(b.FechaDesde).getTime()\r\n\t\t);\r\n\r\n\t\tlet puntosPintar = [];\r\n\t\tif (indiceToAdd !== undefined) {\r\n\t\t\tconst desde = this.arrayFechasDesde[indiceToAdd];\r\n\t\t\tconst fechaDesde = new Date(desde);\r\n\r\n\t\t\tpuntosPintar = historicos.filter( h => {\r\n\t\t\t\tconst fd = new Date(h.FechaDesde);\r\n\t\t\t\treturn fd <= fechaDesde;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tpuntosPintar = historicos;\r\n\t\t}\r\n\r\n\t\treturn puntosPintar;\r\n\t}\r\n/*\r\n\tobtenerPuntosPasosAnteriores(){\r\n\t\tthis.frameAnterior = this.indiceToAdd - 1;\r\n\t\tlet historicosAnt = [];\r\n\t\tif(this.frameAnterior >= 0){\r\n\t\t\thistoricosAnt = this.obtenerHistoricosRangoFechasDesde(this.frameAnterior);\r\n\t\t}\r\n\t\tthis.frameAnterior = this.frameAnterior - 1;\r\n\t\twhile(this.frameAnterior >= 0){\r\n\t\t\tconst historicosAnteriores = this.obtenerHistoricosRangoFechasDesde(this.frameAnterior);\r\n\t\t\thistoricosAnt.push(historicosAnteriores[0]);\r\n\t\t\tthis.frameAnterior = this.frameAnterior - 1;\r\n\t\t}\r\n\r\n\t\treturn historicosAnt;\r\n\t}\r\n*/\r\n\t//#endregion\r\n\r\n\t//#region ** Selector Planta **\r\n\tgetFirsAla() {\r\n\t\tif (this.alasDrop && this.alasDrop.length > 0) {\r\n\t\t return this.alasDrop[0].label;\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcambiarPlanta(indice, animado = false) {\r\n\t\t// Mostramos pantalla de cambio de planta\r\n\t\tif (animado) {\r\n\t\t\tthis.cambiandoPlanta = true;\r\n\r\n\t\t\t// Esperamos a que se muestre la pantalla para cambiar el ala\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.numAla = indice;\r\n\t\t\t\tconst res = this.alasDrop.find(a => a.value === indice);\r\n\t\t\t\tconst historicoConEsaAla = this.historicosList.find( h => h.Ala_Id === res.id);\r\n\r\n\t\t\t\tif (historicoConEsaAla) {\r\n\t\t\t\t\tthis.pathPlano = historicoConEsaAla.pathPlano;\r\n\t\t\t\t\tthis.nombrePlano = historicoConEsaAla.Ala === historicoConEsaAla.Nivel ? historicoConEsaAla.Ala : historicoConEsaAla.Ala + \"-\" + historicoConEsaAla.Nivel;\r\n\t\t\t\t\tthis.zoomLevels = historicoConEsaAla.zoomLevels;\r\n\t\t\t\t\tthis.currentZoomLevel = 1;\r\n\t\t\t\t}\r\n\t\t\t}, this.TIEMPO_AUTOREFRESCO * 1000);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.numAla = indice;\r\n\t\t\tconst res = this.alasDrop.find(a => a.value === indice);\r\n\t\t\tconst historicoConEsaAla = this.historicosList.find( h => h.Ala_Id === res.id);\r\n\r\n\t\t\tif (historicoConEsaAla) {\r\n\t\t\t\tthis.pathPlano = historicoConEsaAla.pathPlano;\r\n\t\t\t\tthis.nombrePlano = historicoConEsaAla.Ala === historicoConEsaAla.Nivel ? historicoConEsaAla.Ala : historicoConEsaAla.Ala + \"-\" + historicoConEsaAla.Nivel;\r\n\t\t\t\tthis.zoomLevels = historicoConEsaAla.zoomLevels;\r\n\t\t\t\tthis.currentZoomLevel = 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region PLANO CALLBACKS **\r\n\tpublic onSVGLoaded(event) {\r\n\r\n\t\t// Si estamos animando el historico no cargamos todos los contenidos, dejamos que la animacion lo haga\r\n\t\tif (!this.subscription || this.subscription.closed) {\r\n\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconst historicosPintar = this.obtenerHistoricosRangoFechasDesde();\r\n\t\t\tthis.cargarHistoricosEnPlano(historicosPintar);\r\n\t\t\tthis.ejecutarPasoAnimacion();\r\n\t\t}\r\n\t\tthis.cambiandoPlanta = false;\r\n\t}\r\n\r\n\tpublic onSVGClicked(event) {\r\n\r\n\t}\r\n\r\n\tpublic onContentClicked(event){\r\n\r\n\t}\r\n\r\n\t//#endregion\r\nwSuccess\r\n\t//#region ** Aux Pintar Fechas **\r\n\t/*convertirFechaUTC(fechaString){\r\n\t\tconst FechaUbicacionaux = new Date(fechaString);\r\n\t\tconst FechaUbicacion = new Date(Date.UTC(FechaUbicacionaux.getFullYear() , FechaUbicacionaux.getMonth() , FechaUbicacionaux.getDate() , FechaUbicacionaux.getHours() , FechaUbicacionaux.getMinutes() , FechaUbicacionaux.getSeconds()));\r\n\t\treturn FechaUbicacion;\r\n\t}\r\n\t*/\r\n\r\n\tgetDiaPintar(){\r\n\t\tif (this.arrayFechasDesde && this.arrayFechasDesde[this.frameActual]) {\r\n\t\t\t/*const fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\tconst fecha = this.convertirFechaUTC(fechaAux);\r\n\r\n\t\t\treturn fecha;*/\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\treturn fechaAux;\r\n\t\t}\r\n\t}\r\n\tgetHoraInicioPintar(){\r\n\t\tif (this.arrayFechasDesde && this.arrayFechasDesde[this.frameActual]) {\r\n/*\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\tconst fecha = this.convertirFechaUTC(fechaAux);\r\n\r\n\t\t\treturn fecha;*/\r\n\t\t\tconst fechaAux = this.arrayFechasDesde[this.frameActual];\r\n\t\t\treturn fechaAux;\r\n\t\t}\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region ** Gestion Mensajes **\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showInfo = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'info', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\t//#endregion\r\n\r\n\tdescripcionInforme(event){\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoSeccionChart/historicoSeccionChart.component.ts","module.exports = \"\\r\\n

      Descripción Informe Histórico Tipologías Seccion

      \\r\\n
      \\r\\n
      \\r\\n

      Histórico Tipologías Seccion 

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field] | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      {{rowData[col.field]}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.html\n// module id = ../../../../../src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".icon-info-informe {\\n position: relative;\\n left: 0px;\\n top: 2px;\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.scss\n// module id = ../../../../../src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.scss\n// module chunks = main","import { PermisosService, Permisos } from '../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\nimport { Message } from 'primeng/primeng';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { HistoricoLocalizacionContenido } from '../../domain/HistoricoLocalizacionContenido';\r\n\r\n@Component({\r\n selector: 'app-historicotipologiaseccionchart',\r\n\ttemplateUrl: './historicoTipologiaSeccionChart.component.html',\r\n\tstyleUrls: ['./historicoTipologiaSeccionChart.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class AppHistoricoTipologiaSeccionChartComponent implements OnInit, OnDestroy {\r\n\r\n\t@Input() historicosTipologiaSeccionList: HistoricoLocalizacionContenido[];\r\n\t@ViewChild('dt') dt;\r\n\t@Output() historicoTipologiaSecciones = new EventEmitter();\r\n\t@Input() tipologiasSeccionesList = [];\r\n\t@Input() tipologiasList = [];\r\n\t@Input() contenidosList = [];\r\n\r\n\thistoricosTipologiaSeccionListFiltrados: HistoricoLocalizacionContenido[];\r\n spinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n /* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n public tipo_informe_seleccionado: any[];\r\n public tipologias_contenido_seleccionadas: any[];\r\n\tpublic contenidos_seleccionados: any[];\r\n\t\r\n\tpublic tipologiasSeccion_seccion_seleccionadas: any[];\r\n/*\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\tpublic opcion_desde_selected2;\r\n\tpublic opcion_hasta_selected2;\r\n\tpublic op2_desde;\r\n\tpublic op2_hasta;\r\n\t*/\r\n public cols3;\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\t\r\n\r\n\tpublic positionDialogInfoInformeY: number;\r\n\tpublic positionDialogInfoInformeX: number;\r\n\tpublic dialogDescripcionInforme: boolean = false;\r\n\r\n\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tinicio_Fecha_Desde_Filter: any;\r\n\tinicio_Fecha_Hasta_Filter: any;\r\n\tfin_Fecha_Desde_Filter: any;\r\n\tfin_Fecha_Hasta_Filter: any;\r\n\tstartHourDefault: any;\r\n\tfinHourDefault: any;\r\n\r\n\r\n\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** InformesComponent ***');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\t// Tabla Historicos\r\n\t\tthis.cols3 = [\r\n\t\t\t{ field: 'Elemento', header: this.translate.instant('Historicos.Elemento'), visible: true, width: '20%', imprimir: true, value:\"\" },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('Historicos.Descripcion'), visible: true, width: '20%', imprimir: false },\r\n\t\t\t{ field: 'Tipologias', header: this.translate.instant('Historicos.Tipologias'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaDesde', header: this.translate.instant('Historicos.FechaDesde'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'FechaHasta', header: this.translate.instant('Historicos.FechaHasta'), visible: true, width: '15%', imprimir: true },\r\n\t\t\t{ field: 'tipologiaSeccion', header: this.translate.instant('Historicos.TipologiasSeccion'), visible: true, width: '15%', imprimir: true },\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n }\r\n\r\n\tngOnInit() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.historicosTipologiaSeccionList = this.agruparContenidosPorSeccion(this.historicosTipologiaSeccionList);\r\n\t\tthis.historicosTipologiaSeccionListFiltrados = this.historicosTipologiaSeccionList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t\tconsole.log(this.historicosTipologiaSeccionListFiltrados)\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tngOnChanges(change) {\r\n\t\tconsole.log(change);\r\n\t\tthis.historicosTipologiaSeccionList = this.agruparContenidosPorSeccion(this.historicosTipologiaSeccionList);\r\n\t\tthis.historicosTipologiaSeccionListFiltrados = this.historicosTipologiaSeccionList;\r\n\t\tthis.tipologiasList = this.tipologiasList;\r\n\t\t//mando tabla a pagina 1\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t\tconsole.log(this.historicosTipologiaSeccionListFiltrados)\r\n\t}\r\n\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\t\tconsole.log(event)\r\n\t\tconst that = this;\r\n\t\tthat.historicosTipologiaSeccionListFiltrados = that.historicosTipologiaSeccionList;\r\n\r\n\t\tif(that.dt.filters){\r\n\t\t\tfor (const key in that.dt.filters) {\r\n\t\t\t\tconsole.log(key, that.dt.filters[key])\r\n\t\t\t\tthis.dt.filter(that.dt.filters[key].value, key, that.dt.filters[key].matchMode);\r\n\t\t\t}\r\n\t\t\tconsole.log(that.dt)\r\n\t\t}\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthat.inicio_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthat.inicio_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'FechaDesde') {\r\n\t\t\t\tthat.fin_Fecha_Desde_Filter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaHasta') {\r\n\t\t\t\tthat.fin_Fecha_Hasta_Filter = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Aplicamos filtro FechaDesde\r\n\t\tthat.historicosTipologiaSeccionListFiltrados = that.historicosTipologiaSeccionListFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Desde_Filter === undefined || that.inicio_Fecha_Desde_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Desde_Filter === undefined || that.fin_Fecha_Desde_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Desde_Filter !== undefined && that.inicio_Fecha_Desde_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Desde_Filter <= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Desde_Filter !== undefined && that.fin_Fecha_Desde_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Desde_Filter >= new Date(h.FechaDesde);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaHasta\r\n\t\tthis.historicosTipologiaSeccionListFiltrados = this.historicosTipologiaSeccionListFiltrados.filter(function (h) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.inicio_Fecha_Hasta_Filter === undefined || that.inicio_Fecha_Hasta_Filter === null) &&\r\n\t\t\t\t(that.fin_Fecha_Hasta_Filter === undefined || that.fin_Fecha_Hasta_Filter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.inicio_Fecha_Hasta_Filter !== undefined && that.inicio_Fecha_Hasta_Filter !== null ) {\r\n\t\t\t\tflagDesde = that.inicio_Fecha_Hasta_Filter <= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\tif (that.fin_Fecha_Hasta_Filter !== undefined && that.fin_Fecha_Hasta_Filter !== null) {\r\n\t\t\t\tflagHasta = that.fin_Fecha_Hasta_Filter >= new Date(h.FechaHasta);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n\tchangeTipologiaSeccion(event){\r\n\t\tconsole.log(event);\r\n\t\tconsole.log(this.historicosTipologiaSeccionListFiltrados)\r\n\t\t//this.dt.reset();\r\n\t\tthis.historicosTipologiaSeccionListFiltrados = this.historicosTipologiaSeccionList;\r\n\r\n\t\tif(this.dt.filters){\r\n\t\t\tfor (const key in this.dt.filters) {\r\n\t\t\t\tconsole.log(key, this.dt.filters[key])\r\n\t\t\t\tthis.dt.filter(this.dt.filters[key].value, key, this.dt.filters[key].matchMode);\r\n\t\t\t}\r\n\t\t\tconsole.log(this.dt)\r\n\t\t}\r\n\r\n\t\tif(event.value.length > 0){\r\n\t\t\tlet array = [];\r\n\t\t\tthis.historicosTipologiaSeccionListFiltrados.forEach(elemento => {\r\n\t\t\t\tlet existeTipologia = this.tipologiasSeccion_seccion_seleccionadas.find(t => t === elemento.SeccionFormulario.TIPOLOGIAS_SECCION[0])\r\n\t\t\t\tif(existeTipologia){\r\n\t\t\t\t\tarray.push(elemento);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.historicosTipologiaSeccionListFiltrados = array;\r\n\t\t}else{\r\n\t\t\tthis.historicosTipologiaSeccionListFiltrados = this.historicosTipologiaSeccionList;\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\r\n\r\n\tfilterTipologia(event, columna) {\r\n\t\tconst that = this;\r\n\t\tthis.dt.filter(event.Nombre, columna, 'equals');\r\n\t\tconsole.log(this.historicosTipologiaSeccionListFiltrados)\r\n\t}\r\n\r\n\r\n /****** AUX ********/\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tdescripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = !this.dialogDescripcionInforme;\r\n\t}\r\n\r\n\tagruparContenidosPorSeccion(historicosList: HistoricoLocalizacionContenido[]){\r\n\t\tlet historicosListFiltrados: HistoricoLocalizacionContenido[] = [];\r\n\t\tfor (let index = 0; index < historicosList.length; index++) {\r\n\t\t\tlet elemento: HistoricoLocalizacionContenido;\r\n\t\t\telemento = historicosList[index];\r\n\t\t\tif(elemento.SeccionFormulario.TIPOLOGIAS_SECCION && elemento.SeccionFormulario.TIPOLOGIAS_SECCION.length > 0){\r\n\t\t\t\telemento.tipologiaSeccion = elemento.SeccionFormulario.TIPOLOGIAS_SECCION[0].Nombre;\r\n\t\t\t}else{\r\n\t\t\t\telemento.tipologiaSeccion = 'Sin tipología';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(index === 0){\r\n\t\t\t\thistoricosListFiltrados.push(elemento);\r\n\t\t\t}else if(elemento.tipologiaSeccion !== historicosList[index - 1].tipologiaSeccion){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.tipologiaSeccion === historicosList[index-1].tipologiaSeccion && elemento.Elemento === historicosList[index-1].Elemento && elemento.FechaDesde.toString() === historicosList[index - 1].FechaHasta.toString()){\r\n\t\t\t\tlet desde = historicosList[index - 1].FechaDesde;\r\n\t\t\t\telemento.FechaDesde = desde;\r\n\t\t\t\thistoricosListFiltrados.length = historicosListFiltrados.length - 1;\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.tipologiaSeccion === historicosList[index-1].tipologiaSeccion && elemento.Elemento === historicosList[index-1].Elemento && elemento.FechaDesde.toString() !== historicosList[index - 1].FechaHasta.toString()){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}else if(elemento.Elemento !== historicosList[index - 1].Elemento){\r\n\t\t\t\thistoricosListFiltrados.push(elemento)\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\thistoricosListFiltrados = historicosListFiltrados.filter(h => h.tipologiaSeccion !== 'Sin tipología');\r\n\t\tthis.historicoTipologiaSecciones.emit(historicosListFiltrados)\r\n\t\t//mando la tabla a la pagina 0\r\n\t\tif(typeof this.dt !== 'undefined'){\r\n\t\t\tthis.dt.first = 0;\r\n\t\t}\r\n\t\t\r\n\t\treturn historicosListFiltrados\r\n\t}\r\n\r\n\tseleccionarContenido(event){\r\n\t\tconsole.log(event)\r\n\t\tthis.dt.filter(event, 'Contenido_Id', 'equals');\r\n\t\tconsole.log(this.historicosTipologiaSeccionListFiltrados)\r\n\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component.ts","module.exports = \"
      \\r\\n\\r\\n EMPIEZA COMPONENTE app-selector-idioma
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      TERNIMA COMPONENTE app-selector-idioma
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.html\n// module id = ../../../../../src/app/componentes/selectorIdioma/selectorIdioma.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.scss\n// module id = ../../../../../src/app/componentes/selectorIdioma/selectorIdioma.component.scss\n// module chunks = main","\r\nimport { Component, EventEmitter, Output , OnInit} from '@angular/core';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\n\r\n@Component({\r\n selector: 'app-selector-idioma',\r\n templateUrl: './selectorIdioma.component.html',\r\n styleUrls: ['./selectorIdioma.component.scss']\r\n})\r\n\r\n// No se usa\r\n//TODO: Prueba para importar un componente en varios sitios\r\n\r\nexport class SelectorIdiomaComponent implements OnInit {\r\n\r\n\t@Output() onIdiomaChange: EventEmitter = new EventEmitter();\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\tconstructor(\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate idiomaService: IdiomaService\r\n\t\t)\r\n\t{\r\n\t\tconst that = this;\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\r\n\r\n\t}\r\n\r\n\tidiomaChange($event){\r\n\t\tthis.onIdiomaChange.emit($event);\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/selectorIdioma/selectorIdioma.component.ts","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.css\n// module id = ../../../../../src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.css\n// module chunks = main","module.exports = \"\\r\\n
      \\r\\n\\t\\r\\n
      \\r\\n
      \\r\\n\\t\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t{{'RutasSugeridas.listanodos' | translate}}\\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{'RutasSugeridas.contenidos' | translate}}: {{filtro.total}}\\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{col.header}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ 'this.ContenidoEstado.label' | translate }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ 'this.ContenidoEstado.label' | translate }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t{{rowData[col.field]}}\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t{{ this.getContenidoEstado(rowData[col.field]).label |translate }}\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t{{rowData[col.field]}}\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t{{rowData[col.field].Nombre}}\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.html\n// module id = ../../../../../src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.html\n// module chunks = main","\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Contenido } from '../../domain/Contenido';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AppComponent } from '../../app.component';\r\nimport { Predicate } from 'breeze-client';\r\nimport { takeUntil } from 'rxjs/operator/takeUntil';\r\nimport { Permisos, PermisosService } from '../../providers/authentication/permisos.service';\r\n\r\nconst FILTRO_INI = JSON.stringify({\r\n\twhere: {\r\n\t\tTitulo: '',\r\n\t\testado: 4,\r\n\t\t// expirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\tDesde: '',\r\n\t\tHasta: '',\r\n\t\tElementoAsignado: '',\r\n\t\tIdAlternativo: '',\r\n\t\tTipologia: ''\r\n\t},\r\n\torder: 'Titulo DESC',\r\n\ttop: 10,\r\n\tpage: 0,\r\n\ttotal: 0\r\n});\r\n\r\n\r\n@Component({\r\n\tselector: 'app-tabla-asignacion-contenidos',\r\n\ttemplateUrl: './tabla-asignacion-contenidos.component.html',\r\n\tstyleUrls: ['./tabla-asignacion-contenidos.component.css']\r\n})\r\n\r\nexport class TablaAsignacionContenidosComponent implements OnInit {\r\n\t@ViewChild('dt_no_asignados') dt_no_asignados;\r\n\t@ViewChild('pg_no_asignados') pg_no_asignados;\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\r\n\t// Contenido asociado\r\n\tcontenidosTodos: Contenido[] = [];\r\n\tcontenidosFiltrados: Contenido[] = [];\r\n\tpublic contenidoSeleccionado: Contenido[] = [];\r\n\tpublic displayDialog: boolean = false;\r\n\tpublic filtro = JSON.parse(FILTRO_INI);\r\n\r\n\tpublic tipologiasContenido = [{\r\n\t\ttipo: 'TODOS',\r\n\t\tvalue: 'TODOS',\r\n\t\tclases: [],\r\n\t\tlabel: 'Todos'\r\n\t}];\r\n\tpublic tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\r\n\ttriggerPageChange: boolean = true;\r\n\tpublic ContenidoEstado = [\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoActivo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoProximo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoExpirado'\r\n\t\t}\r\n\t];\r\n\r\n\tpublic ContenidoEstadoMod = this.ContenidoEstado[0];\r\n\r\n\tpublic colsTodos: any[] = [];\r\n\r\n\tpublic msgAvisoContenido = [];\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tpermisos: Permisos;\r\n\t// ---\r\n\r\n\tconstructor(\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService\r\n\t) {\r\n\r\n\t\tthis.msgAvisoContenido = [];\r\n\r\n\t\tthis.msgAvisoContenido.push({ severity: 'info', detail: this.translate.instant('Mensajes.avisoasignarcontenido') });\r\n\r\n\t\tthis.colsTodos = [\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen') }, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo') }, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado') }, // clases: ['th-tipo-corto2'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo') }, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TIPOLOGIA_CONTENIDO', fieldSort: 'Tipologia', header: this.translate.instant('Contenidos.tipologia') }, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'MostrarEdicion', fieldSort: '', header: '' }\r\n\t\t];\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\treturn that.cargarContenidos();\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/* TABLA ASIGNACION CONTENIDO */\r\n\tonInputSearchChange() {\r\n\t\tconst _where = this.filtro.where;\r\n\t\tthis.filtro = JSON.parse(FILTRO_INI);\r\n\t\tthis.filtro.where = _where;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterTipologia(TIPOLOGIA_CONTENIDO) {\r\n\t\tconst valorFiltrado = TIPOLOGIA_CONTENIDO.Nombre;\r\n\r\n\t\tthis.filtro.where.Tipologia = valorFiltrado;\r\n\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterEstado(filter) {\r\n\t\tthis.filtro.where.estado = filter.value;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\r\n\tgetContenidoEstado(_val) {\r\n\t\tfor (const i in this.ContenidoEstado) {\r\n\t\t\tif (this.ContenidoEstado[i].value === _val) {\r\n\t\t\t\treturn this.ContenidoEstado[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tonPageChange(evento) {\r\n\t\tconsole.log(evento);\r\n\t\tthis.filtro.page = evento.page;\r\n\t\tif (this.triggerPageChange) {\r\n\t\t\tthis.cargarContenidos();\r\n\t\t} else {\r\n\t\t\tthis.triggerPageChange = true;\r\n\t\t}\r\n\t}\r\n\r\n\tasignarContenido(rowData) {\r\n\r\n\t\t// Asignamos contenidos\r\n\t\tconst idContenido = rowData.ENTIDAD.Id ? rowData.ENTIDAD.Id : rowData.Id;\r\n\r\n\t\tthis.contenidosTodos = this.contenidosTodos.filter(obj => obj.ENTIDAD.Id !== idContenido);\r\n\t\tthis.contenidoSeleccionado = new Array();\r\n\t\tthis.contenidoSeleccionado.push(rowData);\r\n\r\n\t\tlet filtroNoAsignados;;\r\n\r\n\r\n\t\tif (this.dt_no_asignados.filters) {\r\n\t\t\tfiltroNoAsignados = this.dt_no_asignados.filters;\r\n\t\t}\r\n\r\n\t\tif (filtroNoAsignados !== undefined) {\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\t\t\tthis.dt_no_asignados.filters = filtroNoAsignados;\r\n\t\t\tthis.dt_no_asignados.filter();\r\n\t\t} else {\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\t\t}\r\n\r\n\r\n\t\tthis.filtro.total = this.contenidosTodos.length;\r\n\r\n\t\tif (this.contenidosTodos.length === 0 && this.filtro.page > 0) {\r\n\t\t\tthis.filtro.page--;\r\n\r\n\t\t\tthis.pg_no_asignados.paginatorState.page = this.filtro.page;\r\n\t\t\tthis.pg_no_asignados.paginatorState.totalRecords = this.filtro.total;\r\n\r\n\t\t\tthis.pg_no_asignados.changePage(this.filtro.page);\r\n\t\t}\r\n\r\n\t\tthis.displayDialog = false;\r\n\t}\r\n\r\n\tdesasignarContenido(rowData) {\r\n\t\tthis.contenidosTodos.push(rowData);\r\n\t\tthis.contenidoSeleccionado = new Array();\r\n\r\n\t\t// ASIGNADOS\r\n\t\tlet value = '';\r\n\t\tlet matchMode = '';\r\n\t\tif (this.dt_no_asignados.filters && this.dt_no_asignados.filters.global) {\r\n\t\t\tvalue = this.dt_no_asignados.filters.global.value;\r\n\t\t\tmatchMode = this.dt_no_asignados.filters.global.matchMode;\r\n\t\t}\r\n\r\n\t\tthis.dt_no_asignados.reset();\r\n\t\tthis.dt_no_asignados.filterGlobal(value, matchMode);\r\n\r\n\t\t// NO ASIGNADOS\r\n\t\tvalue = '';\r\n\t\tmatchMode = '';\r\n\t}\r\n\r\n\tmostrarEditar(rowdata) {\r\n\t\trowdata.MostrarEdicion = true;\r\n\t}\r\n\r\n\tocultarEditar(rowdata) {\r\n\t\trowdata.MostrarEdicion = false;\r\n\t}\r\n\r\n\tmostrarAsignarContenido() {\r\n\t\tthis.cargarContenidos();\r\n\t\tthis.displayDialog = true;\r\n\t}\r\n\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tcargarContenidos() {\r\n\t\tconst that = this;\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst columnas = [];\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idIdioma = this.idiomaSeleccionado.ENTIDAD.Id;\r\n\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst _elementoAsignado = this.filtro.where['ElementoAsignado'];\r\n\t\tconst _titulo = this.filtro.where['Titulo'];\r\n\t\tconst _idAlternativo = this.filtro.where['IdAlternativo'];\r\n\r\n\t\tlet _tipologia = '';\r\n\t\tif (this.filtro.where.Tipologia && this.translate.instant('Contenidos.estadoTodos') !== this.filtro.where.Tipologia.toString()) {\r\n\t\t\t_tipologia = this.filtro.where['Tipologia'];\r\n\t\t}\r\n\t\tlet size = 10;\r\n\t\tlet first = this.filtro.page * size;\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst _estado = this.filtro.where.estado;\r\n\t\tconst Desde = this.filtro.Desde;\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\tlet ids = [];\r\n\r\n\t\tlet excluidos = new Array();\r\n\t\tthat.contenidosTodos = new Array();\r\n\r\n\t\tlet Activos = false;\r\n\t\tif (that.permisos.Gestion_Activos === 2) {\r\n\t\t\tActivos = true;\r\n\t\t}\r\n\r\n\t\t// this.entityManager.getCONTENIDOOrdenado(where, order, top, page, includes, columnas )\r\n\t\tthis.sws.wsBuscarContenidos(token, idEspacio, idIdioma, _titulo, _estado, Desde, Hasta, _idAlternativo, _tipologia, _elementoAsignado, first, size, orderBy, order, excluidos, Activos).toPromise()\r\n\t\t\t.then(function (resp) {\r\n\t\t\t\tids = resp.lista;\r\n\r\n\t\t\t\tthat.filtro.total = resp.total;\r\n\t\t\t\tlet includes = 'FOTOS, ';\r\n\t\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\t\tincludes = includes + 'ALAS.ALA.IDIOMAS, ';\r\n\t\t\t\tincludes = includes + 'ESPACIOS.ESPACIO.IDIOMAS, ';\r\n\t\t\t\tincludes = includes + 'SECCIONES.SECCION.IDIOMAS, ';\r\n\t\t\t\tincludes = includes + 'NODODS.NODO.SECCION, ';\r\n\t\t\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO.IDIOMAS';\r\n\r\n\t\t\t\treturn that.entityManager.getContenidosById(ids, includes, columnas);\r\n\t\t\t})\r\n\t\t\t.then(function (data) {\r\n\t\t\t\tthat.contenidosTodos = [];\r\n\t\t\t\tthat.contenidosFiltrados = [];\r\n\r\n\t\t\t\t// Ordenamos los contenidos segun el orden en el que obtuvimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\t\tdata = data.sort(function (a, b) {\r\n\t\t\t\t\treturn ids.indexOf(a.Id) - ids.indexOf(b.Id);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tdata.forEach(cont => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === '') {\r\n\t\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthat.contenidosFiltrados.push(contenido);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR'));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.contenidosFiltrados.forEach(elemento => {\r\n\t\t\t\t\tif (elemento.Imagen === undefined) {\r\n\t\t\t\t\t\telemento.Imagen = that.authService.getFotoBlobPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// AQUI VER COMO FILTRARIA LOS CONTENIDOS YA ASIGNADOS DEPENDIENDO DE DONDE SE CARGUE ESTE COMPONONTE, SEGURAMENTE SEA CON UN INPUT\r\n\t\t\t\t/*\r\n\t\t\t\tconst conts = that.contenidosFiltrados.find( c => c.Id === that.AvisoSeleccionado.ENTIDAD.IdContenido);\r\n\t\t\t\tif(conts){\r\n\t\t\t\t\tthat.contenidoSeleccionado = [conts];\r\n\t\t\t\t\tthat.contenidosFiltrados.filter( c => c.Id !== that.AvisoSeleccionado.ENTIDAD.IdContenido);\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\tthat.contenidosFiltrados.forEach((contenidoFormulario: Contenido) => {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(contenidoFormulario.ENTIDAD);\r\n\t\t\t\t\tthat.contenidosTodos.push(contenido);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.dt_no_asignados.reset();\r\n\r\n\t\t\t\t// Traducimos Contenidos al idioma seleccionado\r\n\t\t\t\tthat.contenidosFiltrados = that.idiomaService.traducirContenidos(that.contenidosFiltrados, that.idiomaSeleccionado);\r\n\t\t\t\tthat.triggerPageChange = false;\r\n\r\n\t\t\t\tthat.pg_no_asignados.paginatorState.page = that.filtro.page;\r\n\t\t\t\tthat.pg_no_asignados.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\t\tthat.pg_no_asignados.changePage(that.filtro.page);\r\n\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.html\n// module id = ../../../../../src/app/componentes/weditor/weditor.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".textAreaHtml {\\n height: 360px;\\n width: 100%; }\\n\\n.textBarHtml {\\n background-color: #e8e8e8;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.scss\n// module id = ../../../../../src/app/componentes/weditor/weditor.component.scss\n// module chunks = main","import { Component, EventEmitter, Input, Output, OnInit, forwardRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-weditor',\r\n templateUrl: './weditor.component.html',\r\n styleUrls: ['./weditor.component.scss'],\r\n providers: [ {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WeditorComponent),\r\n multi: true\r\n } ]\r\n})\r\n\r\nexport class WeditorComponent implements ControlValueAccessor, OnInit {\r\n\r\n\r\n @Output() onTextChange: EventEmitter = new EventEmitter();\r\n\r\n\t@ViewChild('weditor') weditor: any;\r\n\r\n private texto: string = '';\r\n private cambiado;\r\n public modeHtmlEnable = false;\r\n\r\n constructor(){\r\n\r\n }\r\n\r\n private onTextChangeInternal($event){\r\n\r\n\t\tif($event.htmlValue === null && $event.delta && $event.delta.ops && $event.delta.ops.length > 0 && $event.delta.ops[0].insert && $event.delta.ops[0].insert.image){\r\n\t\t\t$event.htmlValue = '

      ';\r\n\t\t}\r\n\t\t\r\n\t\tthis.onTextChange.emit($event);\r\n\t\t// this.cambiado(this.texto);\r\n }\r\n\r\n private onHtmlChangeInternal(evento){\r\n this.texto = evento.target.value;\r\n //this.cambiado(this.texto);\r\n this.onTextChange.emit(evento);\r\n }\r\n\r\n changeHtmlMode(_v){\r\n this.modeHtmlEnable = !this.modeHtmlEnable;\r\n\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.texto = obj;\r\n // throw new Error('Method not implemented.');\r\n }\r\n registerOnChange(fn: any): void {\r\n // this.cambiado = fn;\r\n // throw new Error('Method not implemented.');\r\n }\r\n registerOnTouched(fn: any): void {\r\n // console.log(fn);\r\n // throw new Error('Method not implemented.');\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n // console.log(isDisabled);\r\n // throw new Error('Method not implemented.');\r\n }\r\n\r\n get value(): any {\r\n return this.texto;\r\n }\r\n\r\n set value(v: any) {\r\n this.texto = v;\r\n }\r\n\r\n ngOnInit(): void { \r\n // throw new Error('Method not implemented.');\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditor/weditor.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\t\\t\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.html\n// module id = ../../../../../src/app/componentes/weditorMensajes/weditorMensajes.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".textAreaHtml {\\n height: 360px;\\n width: 100%; }\\n\\n.textBarHtml {\\n background-color: #e8e8e8;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.scss\n// module id = ../../../../../src/app/componentes/weditorMensajes/weditorMensajes.component.scss\n// module chunks = main","import { Component, EventEmitter, Input, Output, OnInit, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-weditor-mensajes',\r\n templateUrl: './weditorMensajes.component.html',\r\n styleUrls: ['./weditorMensajes.component.scss'],\r\n providers: [ {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WeditorMensajesComponent),\r\n multi: true\r\n } ]\r\n})\r\n\r\nexport class WeditorMensajesComponent implements ControlValueAccessor, OnInit {\r\n\r\n\r\n @Output() onTextChange: EventEmitter = new EventEmitter();\r\n\r\n private texto: string = '';\r\n private cambiado;\r\n public modeHtmlEnable = false;\r\n\r\n constructor(){\r\n\r\n }\r\n\r\n private onTextChangeInternal(evento){\r\n // this.cambiado(this.texto);\r\n this.onTextChange.emit(evento);\r\n }\r\n\r\n private onHtmlChangeInternal(evento){\r\n this.texto = evento.target.value;\r\n // this.cambiado(this.texto);\r\n this.onTextChange.emit(evento);\r\n }\r\n\r\n changeHtmlMode(_v){\r\n this.modeHtmlEnable = !this.modeHtmlEnable;\r\n\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.texto = obj;\r\n // throw new Error('Method not implemented.');\r\n }\r\n registerOnChange(fn: any): void {\r\n this.cambiado = fn;\r\n // throw new Error('Method not implemented.');\r\n }\r\n registerOnTouched(fn: any): void {\r\n // console.log(fn);\r\n // throw new Error('Method not implemented.');\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n // console.log(isDisabled);\r\n // throw new Error('Method not implemented.');\r\n }\r\n\r\n get value(): any {\r\n return this.texto;\r\n }\r\n\r\n set value(v: any) {\r\n this.texto = v;\r\n }\r\n\r\n ngOnInit(): void {\r\n // throw new Error('Method not implemented.');\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/componentes/weditorMensajes/weditorMensajes.component.ts","import { ContenidoPlano, SeccionPlano, NodoPlano } from 'interiores-mapa';\r\nexport class AlaFormulario {\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNomobre: string;\r\n\tDescripcion: string;\r\n\tImagen: any;\r\n\tRutaImagen: any;\r\n\teditarVisible: boolean;\r\n\tseleccionarVisible: boolean;\r\n\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\r\n\tzoomMinimo: Number;\r\n\tzoomMaximo: Number;\r\n\tzoomMaximoRuta: Number;\r\n\tzoomMinimoLabel: Number;\r\n\r\n\tIconoNodoScale: number;\r\n\tIconoContenidoScale: number;\r\n\r\n\tConexionScale: number;\r\n\tAristaSeccionScale: number;\r\n\tPuntoConexionScale: number;\r\n\tPuntoSeccionScale: number;\r\n\r\n\tbackgroundColor: string;\r\n\r\n\tIdiomas: Map;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tTIPO: string;\r\n\tGEOCALIBRACION_ALA: any;\r\n\tnumeroCONTENIDOS: Number = 0;\r\n\r\n\t// Añadido para controlar componente plano desde la vista informes\r\n\r\n\tzoomLevels: any[];\r\n\tcurrentZoomLevel: number;\r\n\tpathSvgPlano: any;\r\n\tpathPlano: any;\r\n\tcompass: any;\r\n/*\r\n\tmapSections: Map = new Map();\r\n\tmapNodes: Map = new Map();\r\n\tmapContents: Map = new Map();\r\n\r\n\tcontents: ContenidoPlano[] = [];\r\n\tnodes: NodoPlano[] = [];\r\n\tsections: SeccionPlano[] = [];\r\n*/\r\n\tconstructor(ala?) {\r\n\t\tthis.Nomobre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Imagen = '';\r\n\t\tthis.RutaImagen = '';\r\n\t\tthis.editarVisible = false;\r\n\t\tthis.seleccionarVisible = false;\r\n\r\n\t\tthis.zoomMinimo = 1;\r\n\t\tthis.zoomMaximo = 1;\r\n\t\tthis.zoomMaximoRuta = 1;\r\n\t\tthis.zoomMinimoLabel = 1;\r\n\r\n\t\tthis.IconoNodoScale = 1;\r\n\t\tthis.IconoContenidoScale = 1;\r\n\t\tthis.ConexionScale = 1;\r\n\t\tthis.AristaSeccionScale = 1;\r\n\t\tthis.PuntoConexionScale = 1;\r\n\t\tthis.PuntoSeccionScale = 1;\r\n\t\tthis.backgroundColor = 'rgba(163,0,255,1)';\r\n\r\n\t\tthis.Idiomas = new Map();\r\n\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.numeroCONTENIDOS = 0;\r\n\r\n\t\tif (ala) {\r\n\t\t\tthis.ENTIDAD = ala;\r\n\t\t\tthis.Id = ala.Id;\r\n\t\t\tthis.Nomobre = ala.Nomobre;\r\n\t\t\tthis.Descripcion = ala.Descripcion;\r\n\t\t\tthis.TIPO = ala.constructor.name.split('_', 2)[0];\r\n\t\t\tthis.Imagen = ala.RutaImagen;\r\n\t\t\tthis.RutaImagen = ala.RutaImagen;\r\n\r\n\t\t\tthis.FechaAlta = ala.FechaAlta;\r\n\t\t\tthis.FechaBaja = ala.FechaBaja;\r\n\r\n\t\t\tthis.zoomMinimo = ala.zoomMinimo;\r\n\t\t\tthis.zoomMaximo = ala.zoomMaximo;\r\n\t\t\tthis.zoomMaximoRuta = ala.zoomMaximoRuta;\r\n\t\t\tthis.zoomMinimoLabel = ala.zoomMinimoLabel;\r\n\r\n\t\t\tthis.IconoNodoScale = ala.IconoNodoScale;\r\n\t\t\tthis.IconoContenidoScale = ala.IconoContenidoScale;\r\n\r\n\t\t\tthis.backgroundColor = ala.backgroundColor;\r\n\r\n\t\t\tala.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new AlaIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\r\n\t\t\tif (ala.CONTENIDOS){\r\n\t\t\t\tthis.numeroCONTENIDOS = ala.CONTENIDOS.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n\r\nexport class AlaIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\r\n\tconstructor(alaIdioma?) {\r\n\r\n\t\tif (alaIdioma) {\r\n\t\t\tthis.Codigo = alaIdioma.IDIOMA.Codigo ? alaIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = alaIdioma.Nombre ? alaIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = alaIdioma.Descripcion ? alaIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/AlaFormulario.ts","import { NodoFormulario, NodoFormulario_lite } from './NodoFormulario';\r\nimport { BeaconPlano } from 'interiores-mapa/dist/beaconPlano';\r\nimport { SeccionFormulario } from './SeccionFormulario';\r\nimport { EspacioFormulario } from './EspacioFormulario';\r\nimport { ContenidoPlano } from 'interiores-mapa';\r\nimport { Constantes } from './constantes';\r\nimport { environment } from '../../environments/environment';\r\n\r\nexport class AvisoCiudadanoFormulario {\r\n\r\n\tId: string;\r\n\tTitulo: string;\r\n\tCuerpo: string;\r\n\tContenido: string;\r\n\tFechaCreacion: Date;\r\n\tFechaInicio: Date;\r\n\tFechaFin: Date;\r\n\tEsParaVisitantesActuales: boolean;\r\n\tnumeroDestinatarios: number;\r\n\tnumeroEnvios: number;\r\n\tTiempoReenvioMinutos: number;\r\n\r\n\tTipo: number; // 0.- Instantanea, 1.- Programada\r\n\tAccionDesencadenante: number; // 0.- Entrando, 1.- Saliendo\r\n\r\n\tX: number;\r\n\tY: number;\r\n\tLatitud: number;\r\n\tLongitud: number;\r\n\r\n\talaPertenencia: string;\r\n\r\n\tIconoRepresentacion: string;\r\n\r\n\tnodos: NodoFormulario_lite[];\r\n\tsecciones: SeccionFormulario[];\r\n\tespacios: EspacioFormulario[];\r\n\r\n\tfoto: string;\r\n contenidoAsociado: string;\r\n\r\n\tMostrarEdicion: boolean;\r\n\trepetir;\r\n\talEntrar;\r\n\talSalir; // 0.- Entrando, 1.- Saliendo\r\n\testan;\r\n\tvisitaron;\r\n\texploraron;\r\n\ttienenApp;\r\n\r\n\tImagen: any; // FotoBlob;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tSECCIONES: any[];\r\n\tNODOS: any[];\r\n\tESPACIOS: any[];\r\n\tCONTENID: any;\r\n\r\n\tAVISO_PLANO: ContenidoPlano = ContenidoPlano.createInstance();\r\n\r\n\tconstructor() {\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.Id = '';\r\n\t\tthis.Titulo = '';\r\n\t\tthis.Cuerpo = '';\r\n\t\tthis.FechaCreacion = new Date();\r\n\t\tthis.TiempoReenvioMinutos = null;\r\n\t\tthis.Contenido = '';\r\n\t\tthis.FechaInicio = null;\r\n\t\tthis.FechaFin = null;\r\n\t\tthis.EsParaVisitantesActuales = true;\r\n\t\tthis.numeroDestinatarios = 0;\r\n\t\tthis.X = 0;\r\n\t\tthis.Y = 0;\r\n\t\tthis.Latitud = 0;\r\n\t\tthis.Longitud = 0;\r\n\r\n\t\tthis.Tipo = 0; // 0.- Instantanea, 1.- Programada\r\n\t\tthis.AccionDesencadenante = null;\r\n/*\r\n ENVIAR_AL_ENTRAR = 0,\r\n\t ENVIAR_AL_SALIR = 1,\r\n ESTAN_AHORA = 2,\r\n VISITADO_ALGUNA_VEZ = 3,\r\n EXPLORADO_ALGUNA_VEZ = 4,\r\n\t TIENEN_LA_APP = 5\r\n*/\r\n\r\n\t\tthis.alaPertenencia = '';\r\n\r\n\t\tthis.nodos = [];\r\n\t\tthis.secciones = [];\r\n\t\tthis.espacios = [];\r\n\r\n\t\tthis.AVISO_PLANO = ContenidoPlano.createInstance();\r\n\t\tthis.SECCIONES = [];\r\n\t\tthis.NODOS = [];\r\n\t\tthis.ESPACIOS = [];\r\n\r\n\t\tthis.IconoRepresentacion = 'assets/itsoft/IconosSVG/' + 'email.svg';\r\n\r\n\t}\r\n\r\n\r\n\tfromENTIDAD(ENTIDAD: any): AvisoCiudadanoFormulario{\r\n\r\n\t\tthis.fromENTIDAD_LITE(ENTIDAD);\r\n\r\n\t\tthis.numeroEnvios = ENTIDAD.ENVIOS ? ENTIDAD.ENVIOS.length : 0;\r\n\t\tthis.numeroDestinatarios = ENTIDAD.ENVIOS ? this.unique(ENTIDAD.ENVIOS).length : 0;\r\n\r\n\r\n\t\tENTIDAD.NODOS.forEach(Nodo_has_aviso => {\r\n\t\t\tif (Nodo_has_aviso.NODO) {\r\n\t\t\t\tthis.NODOS.push(Nodo_has_aviso);\r\n\t\t\t\tconst nodo: NodoFormulario_lite = new NodoFormulario_lite().fromENTIDAD(Nodo_has_aviso.NODO);\r\n\t\t\t\tthis.nodos.push(nodo);\r\n\r\n\t\t\t\tif (Nodo_has_aviso.NODO.SECCION && Nodo_has_aviso.NODO.SECCION.ALA) {\r\n\t\t\t\t\tthis.alaPertenencia = Nodo_has_aviso.NODO.SECCION.ALA.Nomobre;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tENTIDAD.ESPACIOS.forEach(Espacio_has_aviso => {\r\n\t\t\tif (Espacio_has_aviso.ESPACIO) {\r\n\t\t\t\tthis.ESPACIOS.push(Espacio_has_aviso);\r\n\t\t\t\tconst espacio: EspacioFormulario = new EspacioFormulario(Espacio_has_aviso.ESPACIO);\r\n\r\n\t\t\t\tif(this.espacios.find( e => e.Id === espacio.Id) === undefined){\r\n\t\t\t\t\tthis.espacios.push(espacio);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (ENTIDAD.FOTO && ENTIDAD.FOTO.Length > 0){\r\n\t\t\tthis.foto = ENTIDAD.FOTO[0].UrlFotoExt;\r\n\t\t}\r\n\r\n\t\tif (ENTIDAD.CONTENID){\r\n\t\t\tthis.contenidoAsociado = ENTIDAD.CONTENID.Titulo;\r\n\t\t}\r\n\r\n\t\tENTIDAD.SECCIONES.forEach(seccion_has_aviso => {\r\n\t\t\tthis.SECCIONES.push(seccion_has_aviso.SECCION);\r\n\t\t\tconst seccion: SeccionFormulario = new SeccionFormulario().fromENTIDAD(seccion_has_aviso.SECCION);\r\n\r\n\t\t\tif(this.secciones.find( e => e.Id === seccion.Id) === undefined){\r\n\t\t\t\tthis.secciones.push(seccion);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\t// FOTO\r\n\t\tif (this.ENTIDAD.FOTO[0] !== undefined) {\r\n\t\t\tconst ultima = this.ENTIDAD.FOTO.length - 1;\r\n\r\n\t\t\tif (this.ENTIDAD.FOTO[ultima] && this.ENTIDAD.FOTO[ultima].UrlFotoExt) {\r\n\t\t\t\tthis.Imagen = this.ENTIDAD.FOTO[ultima].UrlFotoExt;\r\n\t\t\t}\r\n\t\t\telse if (this.ENTIDAD.FOTO[ultima] && this.ENTIDAD.FOTO[ultima].IdFotoExt){\r\n\t\t\t\tthis.Imagen = environment.urlBaseFotos + this.ENTIDAD.FOTO[ultima].IdFotoExt;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromBeaconPlano(cont: ContenidoPlano): AvisoCiudadanoFormulario{\r\n\r\n\t\tthis.AVISO_PLANO = cont;\r\n\r\n\t\tif (this.AVISO_PLANO && this.AVISO_PLANO.ENTIDAD) {\r\n\t\t\treturn this.fromENTIDAD(this.AVISO_PLANO.ENTIDAD);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\tfromENTIDAD_LITE(ENTIDAD: any): AvisoCiudadanoFormulario{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = ENTIDAD.Id;\r\n\t\tthis.Titulo = ENTIDAD.Titulo;\r\n\t\tthis.Cuerpo = ENTIDAD.Cuerpo;\r\n\t\tthis.FechaCreacion = ENTIDAD.FechaCreacion;\r\n\t\tthis.TiempoReenvioMinutos = ENTIDAD.TiempoReenvioMinutos;\r\n\t\tthis.Contenido = ENTIDAD.Contenido;\r\n\t\tthis.FechaInicio = ENTIDAD.FechaInicio;\r\n\t\tthis.FechaFin = ENTIDAD.FechaFin;\r\n\t\tthis.EsParaVisitantesActuales = ENTIDAD.EsParaVisitantesActuales;\r\n\t\tthis.numeroDestinatarios = ENTIDAD.numeroDestinatarios;\r\n\t\tthis.X = ENTIDAD.X;\r\n\t\tthis.Y = ENTIDAD.Y;\r\n\t\tthis.Latitud = ENTIDAD.Latitud;\r\n\t\tthis.Longitud = ENTIDAD.Longitud;\r\n\t\tthis.Tipo = ENTIDAD.Tipo;\r\n\t\tthis.AccionDesencadenante = ENTIDAD.AccionDesencadenante;\r\n\r\n\t\tthis.alEntrar = ENTIDAD.AccionDesencadenante === Constantes.ENVIAR_AL_ENTRAR ? true : false;\r\n\t\tthis.alSalir = ENTIDAD.AccionDesencadenante === Constantes.ENVIAR_AL_SALIR ? true : false;\r\n\r\n\t\tthis.estan = ENTIDAD.AccionDesencadenante === Constantes.ESTAN_AHORA ? true : false;\r\n\t\tthis.visitaron = ENTIDAD.AccionDesencadenante === Constantes.VISITADO_ALGUNA_VEZ ? true : false;\r\n\t\tthis.exploraron = ENTIDAD.AccionDesencadenante === Constantes.EXPLORADO_ALGUNA_VEZ ? true : false;\r\n\t\tthis.tienenApp = ENTIDAD.AccionDesencadenante === Constantes.TIENEN_LA_APP ? true : false;\r\n\r\n\r\n\r\n\t\tthis.repetir = this.ENTIDAD.TiempoReenvioMinutos === null ? false : true;\r\n\r\n\t\tthis.nodos = [];\r\n\t\tthis.secciones = [];\r\n\t\tthis.espacios = [];\r\n\r\n\t\treturn ENTIDAD;\r\n\t}\r\n\r\n\tunique (xs) {\r\n\t\tconst seen = {};\r\n\t\treturn xs.filter(function(x) {\r\n\t\t\tif (seen[x.IdUsuario]){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tseen[x.IdUsuario] = true;\r\n\t\t\treturn x.IdUsuario;\r\n\t\t});\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/AvisoCiudadanoFormulario.ts","import { NodoFormulario_lite } from './NodoFormulario';\r\nimport { BeaconPlano } from 'interiores-mapa/dist/beaconPlano';\r\n\r\nexport class BalizaFormulario {\r\n\r\n\tId: string;\r\n\tIdHardware: string;\r\n\tDescInstalacion: string;\r\n\tFechaInstalacion: Date;\r\n\tNivelBateria: Number;\r\n\tTimestampLecturaBateria: string;\r\n\tPasswordBeacons: string;\r\n\tpotenciaTx: Number;\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\tFechaLecturaBateria: Date;\r\n\tX: Number;\r\n\tY: Number;\r\n\tLatitud: Number;\r\n\tLongitud: Number;\r\n\tIconoRepresentacion: string;\r\n\tTipologiaNombre: string;\r\n\r\n\tnodos: NodoFormulario_lite[];\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tSECCIONES: any[];\r\n\tALA_PLANO: any;\r\n\tTIPOLOGIA_BALIZA: any;\r\n\tBALIZA_PLANO: BeaconPlano = BeaconPlano.createInstance();\r\n\r\n\tconstructor() {\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.SECCIONES = [];\r\n\t\tthis.Id = '';\r\n\t\tthis.IdHardware = '';\r\n\t\tthis.DescInstalacion = '';\r\n\t\tthis.FechaInstalacion = null;\r\n\t\tthis.NivelBateria = 0;\r\n\t\tthis.TimestampLecturaBateria = '';\r\n\t\tthis.FechaLecturaBateria = null;\r\n\t\tthis.PasswordBeacons = '';\r\n\t\tthis.potenciaTx = 0;\r\n\t\tthis.FechaAlta = null;\r\n\t\tthis.FechaBaja = null;\r\n\t\tthis.X = 0;\r\n\t\tthis.Y = 0;\r\n\t\tthis.Latitud = 0;\r\n\t\tthis.Longitud = 0;\r\n\t\tthis.nodos = [];\r\n\t\tthis.BALIZA_PLANO = BeaconPlano.createInstance();\r\n\t\tthis.TipologiaNombre = '';\r\n\t\tthis.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-baliza.svg';\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): BalizaFormulario{\r\n\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = ENTIDAD.Id;\r\n\t\tthis.IdHardware = ENTIDAD.IdHardware;\r\n\t\tthis.DescInstalacion = ENTIDAD.DescInstalacion;\r\n\t\tthis.FechaInstalacion = ENTIDAD.FechaInstalacion;\r\n\t\tthis.NivelBateria = ENTIDAD.NivelBateria;\r\n\t\tthis.TimestampLecturaBateria = ENTIDAD.TimestampLecturaBateria;\r\n\t\tthis.FechaLecturaBateria = ENTIDAD.FechaLecturaBateria;\r\n\t\tthis.PasswordBeacons = ENTIDAD.PasswordBeacons;\r\n\t\tthis.potenciaTx = ENTIDAD.potenciaTx;\r\n\t\tthis.FechaAlta = ENTIDAD.FechaAlta;\r\n\t\tthis.FechaBaja = ENTIDAD.FechaBaja;\r\n\t\tthis.X = ENTIDAD.X;\r\n\t\tthis.Y = ENTIDAD.Y;\r\n\t\tthis.Latitud = ENTIDAD.Latitud;\r\n\t\tthis.Longitud = ENTIDAD.Longitud;\r\n\r\n\t\tENTIDAD.NODOS.forEach(Nodo_has_baliza => {\r\n\t\t\tif (Nodo_has_baliza && Nodo_has_baliza.NODO) {\r\n\t\t\t\tconst nodo: NodoFormulario_lite = new NodoFormulario_lite().fromENTIDAD(Nodo_has_baliza.NODO);\r\n\t\t\t\tthis.nodos.push(nodo);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tENTIDAD.NODOS.forEach(Nodo_has_baliza => {\r\n\t\t\tif (Nodo_has_baliza && Nodo_has_baliza.NODO) {\r\n\r\n\t\t\t\tif (Nodo_has_baliza.NODO.SECCION) {\r\n\t\t\t\t\tconst asignada = this.SECCIONES.find( x => x.Id === Nodo_has_baliza.NODO.SECCION.Id);\r\n\t\t\t\t\tif (!asignada) {\r\n\t\t\t\t\t\tthis.SECCIONES.push(Nodo_has_baliza.NODO.SECCION);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.ALA_PLANO = this.ENTIDAD.ALA_PLANO;\r\n\t\tthis.TIPOLOGIA_BALIZA = ENTIDAD.TIPOLOGIA_BALIZA;\r\n\r\n\t\tif (this.TIPOLOGIA_BALIZA) {\r\n\t\t\tthis.TipologiaNombre = this.TIPOLOGIA_BALIZA.Nombre;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromBeaconPlano(cont: BeaconPlano): BalizaFormulario{\r\n\t\tthis.BALIZA_PLANO = cont;\r\n\t\tif (this.BALIZA_PLANO.ENTIDAD) {\r\n\t\t\treturn this.fromENTIDAD(this.BALIZA_PLANO.ENTIDAD);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/BalizaFormulario.ts","import { Entidad } from './Entidad';\r\nimport { NodoFormulario_lite } from './NodoFormulario_lite';\r\n\r\nexport class BalizaFormulario_lite {\r\n\tId: string;\r\n\tIdHardware: string;\r\n\tDescInstalacion: string;\r\n\tFechaInstalacion: Date;\r\n\tNivelBateria: Number;\r\n\tTimestampLecturaBateria: string;\r\n\tPasswordBeacons: string;\r\n\tpotenciaTx: Number;\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\tFechaLecturaBateria: Date;\r\n\tX: Number;\r\n\tY: Number;\r\n\tLatitud: Number;\r\n\tLongitud: Number;\r\n\tIconoRepresentacion: string;\r\n\tTipologiaNombre: string;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(){}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): BalizaFormulario_lite{\r\n\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = ENTIDAD.Id;\r\n\t\tthis.IdHardware = ENTIDAD.IdHardware;\r\n\t\tthis.DescInstalacion = ENTIDAD.DescInstalacion;\r\n\t\tthis.FechaInstalacion = ENTIDAD.FechaInstalacion;\r\n\t\tthis.NivelBateria = ENTIDAD.NivelBateria;\r\n\t\tthis.TimestampLecturaBateria = ENTIDAD.TimestampLecturaBateria;\r\n\t\tthis.FechaLecturaBateria = ENTIDAD.FechaLecturaBateria;\r\n\t\tthis.PasswordBeacons = ENTIDAD.PasswordBeacons;\r\n\t\tthis.potenciaTx = ENTIDAD.potenciaTx;\r\n\t\tthis.FechaAlta = ENTIDAD.FechaAlta;\r\n\t\tthis.FechaBaja = ENTIDAD.FechaBaja;\r\n\t\tthis.X = ENTIDAD.X;\r\n\t\tthis.Y = ENTIDAD.Y;\r\n\t\tthis.Latitud = ENTIDAD.Latitud;\r\n\t\tthis.Longitud = ENTIDAD.Longitud;\r\n\t\tthis.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-baliza.svg';\r\n\t\treturn this;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/BalizaFormulario_lite.ts","import { Contenido } from './Contenido';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AlaFormulario } from './AlaFormulario';\r\nimport { NodoFormulario } from './NodoFormulario';\r\n\r\nexport class CoincidenciasLocalizacionContenidos {\r\n\r\n\tContenido_1: Contenido;\r\n\tContenido_2: Contenido;\r\n\r\n\tTitulo_1: String;\r\n\tTitulo_2: String;\r\n\tSeccion: String;\r\n\r\n\t// Datos del WS\r\n\tcontenido_1: String; // Id\r\n\tdesde_1: Date;\r\n\thasta_1: Date;\r\n\tcontenido_2: String; // Id\r\n\tdesde_2: Date;\r\n\thasta_2: Date;\r\n\tdesde_max: Date;\r\n\thasta_min: Date;\r\n\ttiempo_coincidencia: Number;\r\n\r\n\tAla_Id: String; // Id\r\n\tNivel_Id: String; // Id\r\n\tNodo_Id: String; // Id\r\n\tSeccion_Id: String; // Id\r\n\tNivel: string;\r\n\tAla: string;\r\n\tLocalizacion: string;\r\n\r\n\tconstructor(){\r\n\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): CoincidenciasLocalizacionContenidos{\r\n\r\n\t\t// Datos del WS\r\n\t\tthis.contenido_1 = ENTIDAD.contenido_1;\r\n\t\tthis.desde_1 = ENTIDAD.desde_1;\r\n\t\tthis.hasta_1 = ENTIDAD.hasta_1;\r\n\t\tthis.contenido_2 = ENTIDAD.contenido_2;\r\n\t\tthis.desde_2 = ENTIDAD.desde_2;\r\n\t\tthis.hasta_2 = ENTIDAD.hasta_2;\r\n\t\tthis.desde_max = ENTIDAD.desde_max;\r\n\t\tthis.hasta_min = ENTIDAD.hasta_min;\r\n\t\tthis.tiempo_coincidencia = ENTIDAD.tiempo_coincidencia; \r\n\r\n\t\tthis.Ala_Id = ENTIDAD.Ala_Id; \r\n\t\tthis.Nivel_Id = ENTIDAD.Nivel_Id; \r\n\t\tthis.Nodo_Id = ENTIDAD.Nodo_Id; \r\n\t\tthis.Seccion_Id = ENTIDAD.Seccion_Id; \r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\trellenarContenido(cont_1: Contenido, cont_2: Contenido, seccion){\r\n\r\n\t\tthis.Contenido_1 = cont_1;\r\n\t\tthis.Contenido_2 = cont_2;\r\n\t\tthis.Titulo_1 = cont_1.Titulo;\r\n\t\tthis.Titulo_2 = cont_2.Titulo;\r\n\t\tthis.Seccion = seccion.Nombre;\r\n\t\tthis.Nivel = cont_1.Nivel;\r\n\t\tthis.Ala = cont_1.Ala;\r\n\t\tthis.Localizacion = this.Ala + ' ' + this.Nivel + ' ' + this.Seccion;\r\n\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/CoincidenciasLocalizacionContenidos.ts","// import { ConexionPlano } from '../domain/conexionPlano';\r\n// import { NodoPlano } from '../domain/nodoPlano';\r\n\r\nimport { ConexionPlano } from 'interiores-mapa';\r\nimport { NodoPlano } from 'interiores-mapa';\r\nimport { Constantes } from './constantes';\r\n\r\nexport class ConexionFormulario {\r\n\r\n\tId: string;\r\n\tIndicacion: string;\r\n\r\n\tCortadoTemporalmente: Boolean;\r\n\r\n\tIdNodoOrigen: string;\r\n\tIdNodoDestino: string;\r\n\r\n\tPESO_CONEXIONS: PesoFormulario[];\r\n\r\n\tCONEXION_PLANO: ConexionPlano = ConexionPlano.createInstance();\r\n\tNODO_PLANO_ORIGEN: NodoPlano = NodoPlano.createInstance();\r\n\tNODO_PLANO_DESTINO: NodoPlano = NodoPlano.createInstance();\r\n\tIdiomas: Map = new Map();\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor() {\r\n\t\tthis.Id = '';\r\n\t\tthis.Indicacion = '';\r\n\t\tthis.CortadoTemporalmente = false;\r\n\t\tthis.IdNodoOrigen = '';\r\n\t\tthis.IdNodoDestino = '';\r\n\t\tthis.PESO_CONEXIONS = [];\r\n\r\n\t\tthis.CONEXION_PLANO = ConexionPlano.createInstance();\r\n\t\tthis.NODO_PLANO_ORIGEN = NodoPlano.createInstance();\r\n\t\tthis.NODO_PLANO_DESTINO = NodoPlano.createInstance();\r\n\t\tthis.ENTIDAD = {};\r\n\t}\r\n\r\n\r\n\tfromConexionPlano(conexionPlano: ConexionPlano, nodoPlanoOrigen?: NodoPlano, nodoPlanoDestino?: NodoPlano): ConexionFormulario {\r\n\r\n\t\tthis.CONEXION_PLANO = conexionPlano;\r\n\t\tthis.NODO_PLANO_ORIGEN = nodoPlanoOrigen;\r\n\t\tthis.NODO_PLANO_DESTINO = nodoPlanoDestino;\r\n\r\n\t\tif (this.CONEXION_PLANO.ENTIDAD) {\r\n\t\t\tthis.fromENTIDAD(this.CONEXION_PLANO.ENTIDAD);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): ConexionFormulario{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.Indicacion = this.ENTIDAD.Indicacion ? this.ENTIDAD.Indicacion : '';\r\n\t\tthis.CortadoTemporalmente = this.ENTIDAD.CortadoTemporalmente;\r\n\t\tthis.IdNodoOrigen = this.ENTIDAD.IdNodoOrigen;\r\n\t\tthis.IdNodoOrigen = this.ENTIDAD.IdNodoOrigen;\r\n\t\tthis.IdNodoDestino = this.ENTIDAD.IdNodoDestino;\r\n\t\tthis.IdNodoDestino = this.ENTIDAD.IdNodoDestino;\r\n\r\n\t\tthis.ENTIDAD.PESO_CONEXIONS.forEach(element => {\r\n\t\t\tconst peso = new PesoFormulario(element);\r\n\t\t\tthis.PESO_CONEXIONS.push(peso);\r\n\t\t});\r\n\r\n\t\tthis.ENTIDAD.IDIOMAS.forEach(element => {\r\n\t\t\tconst aux = new ConexionNodoIdiomaFormulario(element);\r\n\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t});\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n}\r\n\r\n\r\n\r\nexport class PesoFormulario {\r\n\r\n\tId: string;\r\n\tIdConexionNodo: string;\r\n\tIdPerfilMovilidad: string;\r\n\r\n\tPeso: any;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tPerfilMovilidad: any;\r\n\r\n\tconstructor(peso_conexion?: any) {\r\n\t\tthis.Id = '';\r\n\t\tthis.IdConexionNodo = '';\r\n\t\tthis.IdPerfilMovilidad = '';\r\n\r\n\t\tthis.Peso = Constantes.PESO;\r\n\r\n\t\t// Objeto de Breeze\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.PerfilMovilidad = {};\r\n\r\n\t\tif (peso_conexion !== undefined) {\r\n\r\n\t\t\tconst entidad = peso_conexion;\r\n\r\n\t\t\tthis.Id = entidad.Id;\r\n\t\t\tthis.IdConexionNodo = entidad.IdConexionNodo ? entidad.IdConexionNodo : '';\r\n\t\t\tthis.IdPerfilMovilidad = entidad.IdConexionNodo ? entidad.IdConexionNodo : '';\r\n\r\n\t\t\tif (entidad.Peso === Constantes.MAX_PESO) {\r\n\t\t\t\tthis.Peso = '∞';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.Peso = entidad.Peso;\r\n\t\t\t}\r\n\r\n\t\t\tthis.PerfilMovilidad = entidad.PerfilMovilidad;\r\n\t\t\tthis.ENTIDAD = entidad;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport class ConexionNodoIdiomaFormulario {\r\n\r\n\tCodigo: string = '';\r\n\tIndicacion: string = '';\r\n\t// TextoContenidos: string;\r\n\tconstructor(conexionNodoIdioma?) {\r\n\t\tif (conexionNodoIdioma) {\r\n\t\t\tthis.Codigo = conexionNodoIdioma.IDIOMA.Codigo ? conexionNodoIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Indicacion = conexionNodoIdioma.Indicacion ? conexionNodoIdioma.Indicacion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Indicacion = '';\r\n\t\t}\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/ConexionFormulario.ts","import { WebExterna } from './../domain/WebExterna';\r\nimport { ContenidoPlano } from 'interiores-mapa';\r\nimport { Constantes } from './constantes';\r\nimport { environment } from '../../environments/environment';\r\nimport { Foto } from './Foto';\r\nimport { UsuarioFormulario } from './UsuarioFormulario';\r\nexport class Contenido {\r\n\r\n\tIdContenido: string;\r\n\tId: string;\r\n\tElemento: string;\r\n\tTitulo: string;\r\n\tNombreCorto: string;\r\n\tDescripcion: string;\r\n\tUrl: string;\r\n\tHtmlDetalle: string;\r\n\tSource: string;\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\tPOSICION_ACTUAL_CONTENIDOS: any[];\r\n\tPOSICION_ULTIMA_CONTENIDOS: any[];\r\n\tX: number;\r\n\tY: number;\r\n\tALA_PLANO: any;\r\n\tWebsExternas: WebExterna[];\r\n\tENTIDAD: any;\r\n\tusuarios: UsuarioFormulario[];\r\n\tImagen: any;\r\n\tImagenDetalle: any;\r\n\r\n\tfotoPrincipal: Foto;\r\n\tfotosCarrusel: Foto[];\r\n\r\n\tElementoAsignado: { Nombre: string, Tipo: string, MostrarEdicion: false, ENTIDAD: any}[];\r\n\tEnlaces: Number;\r\n\tFavoritos: Number;\r\n\tMostrarEdicion: boolean;\r\n\tExpiracionMensaje: string;\r\n\texpirado: Number;\r\n\tnuevaImagenSeleccionada: any;\r\n\tnuevaImagenDetalleSeleccionada: any;\r\n\tborrarImagenDetalleSeleccionada: any;\r\n\tAudioTexto: string;\r\n\tIdAlternativo: string;\r\n\tLatitud: number;\r\n\tLongitud: number;\r\n\tSeccion: string; // Nombre de la seccion\r\n\tAla: string; // Nombre del Ala\r\n\tNivel: string; // Nombre del Nivel\r\n\tLocalizacion: string; // Para filtro en tabla localizacion\r\n\tTipo: string; // nombre de la TIPOLOGIA_CONTENIDO\r\n\r\n\tTIPOLOGIA_CONTENIDO: any;\r\n\tCONTENIDO_PLANO: ContenidoPlano = ContenidoPlano.createInstance();\r\n\r\n\tIdiomas: Map = new Map();\r\n\r\n\t// TODO: tiempo de permanencia en ultima ubicacion si es localizable\r\n\tPermaneceDesde: string;\r\n\tTiempoDesdeUltimaLocalizacion: string;\r\n\tFechaUltimaLocalizacion: Date;\r\n\r\n\tActual;\r\n\tUltima;\r\n\r\n\tconstructor() {\r\n\t\tthis.usuarios = [];\r\n\t\tthis.WebsExternas = [];\r\n\t\tthis.ElementoAsignado = [];\r\n\t\tthis.Elemento = '';\r\n\t\tthis.Titulo = '';\r\n\t\tthis.NombreCorto = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Url = '';\r\n\t\tthis.HtmlDetalle = '';\r\n\t\tthis.FechaAlta = new Date();\r\n\t\tthis.FechaBaja = null;\r\n\t\tthis.FechaUltimaLocalizacion = new Date();\r\n\t\tthis.AudioTexto = '';\r\n\t\tthis.IdAlternativo = '';\r\n\t\tthis.Seccion = '';\r\n\t\tthis.Tipo = '';\r\n\t\tthis.PermaneceDesde='';\r\n\t\tthis.POSICION_ACTUAL_CONTENIDOS;\r\n\t\tthis.POSICION_ULTIMA_CONTENIDOS;\r\n\r\n\t\tthis.TIPOLOGIA_CONTENIDO = {};\r\n\t\tthis.CONTENIDO_PLANO = ContenidoPlano.createInstance();\r\n\t}\r\n\r\n\tfromNodoPlano(cont: ContenidoPlano): Contenido{\r\n\r\n\t\tthis.CONTENIDO_PLANO = cont;\r\n\r\n\t\tif (this.CONTENIDO_PLANO.ENTIDAD) {\r\n\t\t\treturn this.fromENTIDAD(this.CONTENIDO_PLANO.ENTIDAD);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): Contenido{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.IdContenido = this.ENTIDAD.Id;\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.Titulo = this.ENTIDAD.Titulo;\r\n\t\tthis.NombreCorto = this.ENTIDAD.NombreCorto ? this.ENTIDAD.NombreCorto : '' ;\r\n\t\tthis.Descripcion = this.ENTIDAD.Descripcion;\r\n\t\tthis.FechaAlta = this.ENTIDAD.FechaAlta;\r\n\t\tthis.FechaBaja = this.ENTIDAD.FechaBaja;\r\n\t\tthis.FechaUltimaLocalizacion = this.ENTIDAD.FechaUltimaLocalizacion;\r\n\t\tthis.POSICION_ACTUAL_CONTENIDOS = this.ENTIDAD.POSICION_ACTUAL_CONTENIDOS;\r\n\t\tthis.POSICION_ULTIMA_CONTENIDOS = this.ENTIDAD.POSICION_ULTIMA_CONTENIDOS;\r\n\t\tthis.X = this.ENTIDAD.X;\r\n\t\tthis.Y = this.ENTIDAD.Y;\r\n\t\tthis.HtmlDetalle = this.ENTIDAD.htmlVisualizableDetalle;\r\n\t\tthis.ENTIDAD = this.ENTIDAD;\r\n\t\tthis.WebsExternas = [];\r\n\t\tthis.TIPOLOGIA_CONTENIDO = this.ENTIDAD.TIPOLOGIA_CONTENIDO;\r\n\t\tthis.Tipo = this.TIPOLOGIA_CONTENIDO ? this.TIPOLOGIA_CONTENIDO.Nombre : '';\r\n\t\tthis.Latitud = this.ENTIDAD.Latitud;\r\n\t\tthis.Longitud = this.ENTIDAD.Longitud;\r\n\t\tthis.fotosCarrusel = [];\r\n\t\tthis.Actual = this.POSICION_ACTUAL_CONTENIDOS.slice(-1);\r\n\t\tif (this.Actual) {\r\n\t\t\tthis.Actual = this.Actual[0];\r\n\t\t}\r\n\r\n\t\tthis.Ultima = this.POSICION_ULTIMA_CONTENIDOS.slice(-1);\r\n\t\tif (this.Ultima) {\r\n\t\t\tthis.Ultima = this.Ultima[0];\r\n\t\t}\r\n\r\n\t\tif (this.ENTIDAD.ALA_PLANO) {\r\n\t\t\tthis.ALA_PLANO = this.ENTIDAD.ALA_PLANO;\r\n\t\t\tthis.Ala = this.ALA_PLANO.Nomobre;\r\n\r\n\t\t\tif (this.ENTIDAD.ALA_PLANO.NIVEL) {\r\n\t\t\t\tthis.Nivel = this.ALA_PLANO.NIVEL.Nombre;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.AudioTexto = this.ENTIDAD.AudioTexto ? this.ENTIDAD.AudioTexto : '';\r\n\t\tthis.IdAlternativo = this.ENTIDAD.IdAlternativo ? this.ENTIDAD.IdAlternativo : '';\r\n\t\tconst now = new Date();\r\n\t\tconst baja = this.FechaBaja ? new Date(this.FechaBaja) : null;\r\n\t\tconst alta = new Date(this.FechaAlta);\r\n\r\n\t\t// Calculados\r\n\t\tthis.expirado = this.getTipoCaducidad(now, baja, alta);\r\n\t\tthis.ExpiracionMensaje = this.getEtiquetaCaducidad(now, baja, alta);\r\n\t\tthis.ElementoAsignado = this.getAsignaciones(this.ENTIDAD);\r\n\r\n\t\t// IDIOMA\r\n\t\tthis.ENTIDAD.IDIOMAS.forEach(element => {\r\n\t\t\tconst aux = new ContenidoIdiomaFormulario(element);\r\n\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t});\r\n\r\n\t\t// NODOS\r\n\t\tif (this.ENTIDAD.NODODS && this.ENTIDAD.NODODS.length > 0 && this.ENTIDAD.NODODS[this.ENTIDAD.NODODS.length - 1].NODO && this.ENTIDAD.NODODS[this.ENTIDAD.NODODS.length - 1].NODO.SECCION) {\r\n\t\t\tthis.Seccion = this.ENTIDAD.NODODS[this.ENTIDAD.NODODS.length - 1].NODO.SECCION.Nombre;\r\n\t\t}\r\n\t\telse if (this.ENTIDAD.SECCIONES && this.ENTIDAD.SECCIONES.length > 0 && this.ENTIDAD.SECCIONES[0].SECCION){\r\n\t\t\tthis.Seccion = this.ENTIDAD.SECCIONES[0].SECCION.Nombre;\r\n\t\t}\r\n\t\tthis.Localizacion = this.Ala + ' ' + this.Nivel + ' ' + this.Seccion;\r\n\r\n\t\t// CONTENIDO_WEB_EXTERNAS\r\n\t\tif (this.ENTIDAD.CONTENIDO_WEB_EXTERNAS) {\r\n\t\t\tthis.Enlaces = this.ENTIDAD.CONTENIDO_WEB_EXTERNAS.length;\r\n\t\t\tthis.ENTIDAD.CONTENIDO_WEB_EXTERNAS.forEach(element => {\r\n\t\t\t\tconst contenidoWebExterna = new WebExterna(element);\r\n\t\t\t\tcontenidoWebExterna.Nombre = element.Texto;\r\n\t\t\t\tcontenidoWebExterna.Url = element.url;\r\n\t\t\t\tcontenidoWebExterna.IdWebExterna = element.Id;\r\n\t\t\t\tcontenidoWebExterna.ENTIDAD = element;\r\n\t\t\t\tthis.WebsExternas.push(contenidoWebExterna);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Enlaces = 0;\r\n\t\t}\r\n\r\n\t\t// FOTO\r\n\t\tif (this.ENTIDAD.FOTOS && this.ENTIDAD.FOTOS[0] !== undefined) {\r\n\t\t\t/*const ultima = this.ENTIDAD.FOTOS.length - 1;\r\n\r\n\t\t\tif (this.ENTIDAD.FOTOS[ultima] && this.ENTIDAD.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\tthis.Imagen = this.ENTIDAD.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t}\r\n\t\t\telse if (this.ENTIDAD.FOTOS[ultima] && this.ENTIDAD.FOTOS[ultima].IdFotoExt){\r\n\t\t\t\tthis.Imagen = environment.urlBaseFotos + this.ENTIDAD.FOTOS[ultima].IdFotoExt;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.ENTIDAD.FOTOS[ultima] && this.ENTIDAD.FOTOS[ultima].UrlFotoExt_detalle) {\r\n\t\t\t\tthis.ImagenDetalle = this.ENTIDAD.FOTOS[ultima].UrlFotoExt_detalle;\r\n\t\t\t}\r\n\t\t\telse if (this.ENTIDAD.FOTOS[ultima] && this.ENTIDAD.FOTOS[ultima].IdFotoExt_detalle){\r\n\t\t\t\tthis.ImagenDetalle = environment.urlBaseFotos + this.ENTIDAD.FOTOS[ultima].IdFotoExt_detalle;\r\n\t\t\t}*/\r\n\r\n\t\t\tthis.ENTIDAD.FOTOS.forEach(element => {\r\n\t\t\t\tconst FotoAux = new Foto().fromENTIDAD(element);\r\n\t\t\t\tif (FotoAux.Tipo == 1) {\r\n\t\t\t\t\tthis.fotosCarrusel.push(FotoAux);\r\n\t\t\t\t}\r\n\t\t\t\tif (FotoAux.Tipo == 0) {\r\n\t\t\t\t\tthis.fotoPrincipal = FotoAux;\r\n\t\t\t\t\tthis.Imagen = this.fotoPrincipal.UrlFotoExt;\r\n\t\t\t\t\tthis.ImagenDetalle = this.fotoPrincipal.UrlFotoExt_detalle;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(this.ENTIDAD.POSICION_ACTUAL_CONTENIDOS){\r\n\t\t\tthis.POSICION_ACTUAL_CONTENIDOS = this.ENTIDAD.POSICION_ACTUAL_CONTENIDOS;\r\n\t\t}\r\n\t\tif(this.ENTIDAD.POSICION_ULTIMA_CONTENIDOS){\r\n\t\t\tthis.POSICION_ULTIMA_CONTENIDOS = this.ENTIDAD.POSICION_ULTIMA_CONTENIDOS;\r\n\t\t}\r\n\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\tgetAsignaciones(contenido){\r\n\r\n\t\tconst asignaciones = [];\r\n\t\tconst tipoElementoAsignado = [];\r\n\t\tif (contenido.ALAS.length > 0) {\r\n\t\t\tcontenido.ALAS.forEach(elemento => {\r\n\t\t\t\tif (elemento.ALA) {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.ALA.Nomobre, Tipo: 'ALA', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.IdAla, Tipo: 'ALA', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (contenido.ESPACIOS.length > 0) {\r\n\t\t\tcontenido.ESPACIOS.forEach(elemento => {\r\n\t\t\t\tif (elemento.ESPACIO) {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.ESPACIO.Nombre, Tipo: 'ESPACIO', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.IdEspacio, Tipo: 'ESPACIO', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (contenido.NIVELES.length > 0) {\r\n\t\t\tcontenido.NIVELES.forEach(elemento => {\r\n\t\t\t\tif (elemento.NIVEL) {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.NIVEL.Nombre, Tipo: 'NIVEL', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.IdNivel, Tipo: 'NIVEL', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (contenido.NODODS.length > 0) {\r\n\t\t\tcontenido.NODODS.forEach(elemento => {\r\n\t\t\t\tif (elemento.NODO) {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.NODO.Nombre, Tipo: 'NODO', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.IdNodo, Tipo: 'NODO', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (contenido.SECCIONES.length > 0) {\r\n\t\t\tcontenido.SECCIONES.forEach(elemento => {\r\n\t\t\t\tif (elemento.SECCION) {\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.SECCION.Nombre, Tipo: 'SECCION', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tasignaciones.push(\r\n\t\t\t\t\t\t{ Nombre: elemento.IdSeccion, Tipo: 'SECCION', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn asignaciones;\r\n\t}\r\n\r\n\r\n\tgetEtiquetaCaducidad( now: Date, baja: Date, alta: Date){\r\n\r\n\t\tlet respuesta = '';\r\n\t\tif ( baja === null || baja === undefined ){\r\n\r\n\t\t\tif ( alta.getTime() <= now.getTime()){\r\n\t\t\t\trespuesta = 'Activo';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = 'Activo';\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Expira el ' + baja.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expira en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() < alta.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Expirado el ' + baja.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expirado hace ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\r\n getFullDateCalc(fec: Date){\r\n\r\n\t\tlet mes = '' + fec.getMonth();\r\n\t\tlet dia = '' + fec.getDate();\r\n\t\tif (fec.getMonth() < 10){\r\n\t\t\tmes = '0' + fec.getMonth();\r\n\t\t}\r\n\r\n\t\tif (fec.getDate() < 10){\r\n\t\t\tdia = '0' + fec.getDate();\r\n\t\t}\r\n\r\n\t\tconst year = fec.getFullYear();\r\n\r\n\t\treturn year + '/' + mes + '/' + dia;\r\n\t}\r\n\r\n\tgetTipoCaducidad( now: Date, baja: Date, alta: Date){\r\n\t\tlet respuesta = 0;\r\n\t\tconst EXPIRADO = 0;\t// Danger\r\n\t\tconst PROXIMO = 1;\t// warning\r\n\t\tconst EXPIRA = 2;\t\t// Succes\r\n\t\tconst ACTIVO = 3;\t\t// normal\r\n\t\tconst TODOS = 4;\r\n\t\tconst PROXIMOACT = 5;\r\n\r\n\r\n\t\tif ( baja === null || baja === undefined ){\r\n\t\t\tif ( this.getFullDateCalc(alta) <= this.getFullDateCalc(now)){\r\n\t\t\t\trespuesta = ACTIVO;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\trespuesta = PROXIMOACT;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = ACTIVO;\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\t// respuesta = EXPIRA;\r\n\t\t\t\t\trespuesta = ACTIVO;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// respuesta = PROXIMO;\r\n\t\t\t\t\trespuesta = ACTIVO;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( this.getFullDateCalc(alta) > this.getFullDateCalc(now) ){\r\n\t\t\t\trespuesta = PROXIMOACT;\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = EXPIRADO;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = EXPIRADO;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\t/* ** FUNCIONES VARIAS ** */\r\n\tminDiff(firstDate: Date, secondDate: Date) {\r\n\t\tconst date2 = secondDate;\r\n\t\tconst date1 = firstDate;\r\n\t\tif (date2 !== undefined && date2 !== null && date1 !== undefined && date1 !== null) {\r\n\t\t\tconst timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n\t\t\tconst diffDays = Math.ceil(timeDiff / (1000));\r\n\t\t\treturn diffDays;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 999;\r\n\t\t}\r\n\t}\r\n\r\n\thourDiff(firstDate: Date, secondDate: Date) {\r\n\t\treturn this.minDiff(firstDate, secondDate) / 3600\r\n\t}\r\n\r\n\tdayDiff(firstDate: Date, secondDate: Date) {\r\n\t\treturn this.hourDiff(firstDate, secondDate) / 24;\r\n\t}\r\n\r\n/*\r\n\tdayDiff(firstDate: Date, secondDate: Date) {\r\n\t\tconst date2 = secondDate;\r\n\t\tconst date1 = firstDate;\r\n\t\tif (date2 !== undefined && date2 !== null && date1 !== undefined && date1 !== null) {\r\n\t\t\tconst timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n\t\t\tconst diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\t\t\treturn diffDays;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 999;\r\n\t\t}\r\n\t\t/ 24\r\n\t}\r\n*/\r\n\r\n}\r\n\r\n\r\nexport class ContenidoIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\thtmlVisualizableDetalle: string;\r\n\thtmlVisualizableCelda: string;\r\n\tAudioTexto: string;\r\n\tNombreCorto: string;\r\n\r\n\r\n\tconstructor(contenidoIdioma?) {\r\n\r\n\t\tif (contenidoIdioma) {\r\n\r\n\t\t\tthis.Codigo = contenidoIdioma.IDIOMA.Codigo ? contenidoIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = contenidoIdioma.Nombre ? contenidoIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = contenidoIdioma.Descripcion ? contenidoIdioma.Descripcion : '';\r\n\t\t\tthis.htmlVisualizableDetalle = contenidoIdioma.htmlVisualizableDetalle ? contenidoIdioma.htmlVisualizableDetalle : '';\r\n\t\t\tthis.htmlVisualizableCelda = contenidoIdioma.htmlVisualizableCelda ? contenidoIdioma.htmlVisualizableCelda : '';\r\n\t\t\tthis.AudioTexto = contenidoIdioma.AudioTexto ? contenidoIdioma.AudioTexto : '';\r\n\t\t\tthis.NombreCorto = contenidoIdioma.NombreCorto ? contenidoIdioma.NombreCorto : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t\tthis.htmlVisualizableDetalle = '';\r\n\t\t\tthis.htmlVisualizableCelda = '';\r\n\t\t\tthis.AudioTexto = '';\r\n\t\t\tthis.NombreCorto = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Contenido.ts","\r\nimport { BeaconPlano } from 'interiores-mapa/dist/beaconPlano';\r\n\r\nexport class Encuesta {\r\n\tnombreEncuesta: string;\r\n\tformulacionPregunta: string;\r\n\tformulacionRespuesta: string;\r\n\ttipoPregunta: string;\r\n\tusuario: string;\r\n\tfecha: Date;\r\n\trango: any;\r\n\tENTIDAD: any;\r\n\r\n constructor(){}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): Encuesta{\r\n\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.nombreEncuesta = this.ENTIDAD.nombreEncuesta;\r\n\t\tthis.formulacionPregunta = this.ENTIDAD.formulacionPregunta;\r\n\t\tthis.formulacionRespuesta = this.ENTIDAD.formulacionRespuesta;\r\n\t\tthis.tipoPregunta = this.ENTIDAD.tipoPregunta;\r\n\t\tthis.usuario = this.ENTIDAD.usuario;\r\n\t\tthis.fecha = this.ENTIDAD.fecha;\r\n\t\tif(this.ENTIDAD.tipoPregunta === 1){\r\n\t\t\tthis.rango = Array(Number(this.ENTIDAD.formulacionRespuesta)).fill(1).map((x,i)=>i)\r\n\t\t}else{\r\n\t\t\tthis.rango = [];\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Encuesta.ts","import { Constantes } from './constantes';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { environment } from '../../environments/environment';\r\n\r\nexport class EspacioFormulario {\r\n\tfilter(arg0: (h: any) => boolean): EspacioFormulario {\r\n\t\tthrow new Error('Method not implemented.');\r\n\t}\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tPasswordBeacons: string;\r\n\tImagen: string; // fotoblob\r\n\tDuracion: string;\r\n\tColorEspacio: string;\r\n\tColorFuenteEspacio: string;\r\n\tColorSeleccionEspacio: string;\r\n\r\n\t// Indica si se ha de mostrar el boton editar\r\n\teditarVisible: boolean;\r\n\r\n\tIdiomas: Map;\r\n\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\tFechaDesde: Date;\r\n\tFechaHasta: Date;\r\n\tUbicarAnonimos: boolean;\r\n\tPantallaPrincipal: Number;\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tTIPO: string;\r\n\tnumeroCONTENIDOS: Number = 0;\r\n\tArea: Number;\r\n\r\n\tconstructor(espacio?) {\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.editarVisible = false;\r\n\t\tthis.PasswordBeacons = '';\r\n\t\tthis.Idiomas = new Map();\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.UbicarAnonimos = false;\r\n\t\t//this.PantallaPrincipal =\r\n\t\tthis.ColorSeleccionEspacio = 'rgba(184,219,184,0.6)';\r\n\t\tthis.ColorFuenteEspacio = 'rgba(255,255,255,1)';\r\n\t\tthis.ColorEspacio = 'rgba(100,102,101,1)';\r\n\t\tthis.Area = 0;\r\n\r\n\t\tif (espacio) {\r\n\r\n\r\n\t\t\t/* IDEA para mostrar idioma por defecto\r\n\t\t\tespacio.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new EspacioIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = this.Idiomas.get(idiomaDefecto.ENTIDAD.Codigo);\r\n\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre;\r\n\t\t\tthis.Descripcion = espacioIdioma.Descripcion;\r\n\t\t\t*/\r\n\r\n\t\t\tthis.ENTIDAD = espacio;\r\n\t\t\tthis.Id = espacio.Id;\r\n\t\t\tthis.Nombre = espacio.Nombre;\r\n\t\t\tthis.Descripcion = espacio.Descripcion;\r\n\t\t\tthis.editarVisible = espacio.editarVisible;\r\n\t\t\tthis.PasswordBeacons = espacio.PasswordBeacons;\r\n\r\n\t\t\tthis.ColorEspacio = espacio.ColorEspacio;\r\n\t\t\tthis.ColorFuenteEspacio = espacio.ColorFuenteEspacio;\r\n\t\t\tthis.ColorSeleccionEspacio = espacio.ColorSeleccionEspacio;\r\n\r\n\t\t\tthis.FechaAlta = espacio.FechaAlta;\r\n\t\t\tthis.FechaBaja = espacio.FechaBaja;\r\n\t\t\tthis.UbicarAnonimos = espacio.UbicarAnonimos;\r\n\t\t\tthis.PantallaPrincipal = espacio.PantallaPrincipal;\r\n\t\t\tthis.TIPO = this.ENTIDAD .constructor.name.split('_', 2)[0];\r\n\r\n\t\t\tthis.Area = espacio.AREA;\r\n\r\n\t\t\tif (this.ENTIDAD.CONTENIDOS) {\r\n\t\t\t\tthis.numeroCONTENIDOS = this.ENTIDAD .CONTENIDOS.length;\r\n\t\t\t}\r\n\r\n\t\t\tespacio.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new EspacioIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\r\n\t\t\t// FOTOS\r\n\t\t\tconst ultima = espacio.FOTOS.length - 1;\r\n\t\t\tif (ultima >= 0) {\r\n\t\t\t\tif (espacio.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\tthis.Imagen = espacio.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.Imagen = environment.urlBaseFotos + espacio.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport class EspacioIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\r\n\tconstructor(espacioIdioma?) {\r\n\t\tif (espacioIdioma) {\r\n\t\t\tthis.Codigo = espacioIdioma.IDIOMA.Codigo ? espacioIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t}\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/EspacioFormulario.ts","export class Foto {\r\n\tIdNoticia: string;\r\n\tId: string;\r\n\tIdFotoExt: string;\r\n\tIdContenidoWebExterna: string;\r\n\tIdContenido: string;\r\n\tIdBaliza: string;\r\n\tIdNodo: string;\r\n\tIdEspacio: string;\r\n\tIdRutaSugerida: string;\r\n\tUrlFotoExt: string;\r\n\tIdAvisoCiudadano: string;\r\n\tIdFotoExt_detalle: string;\r\n\tUrlFotoExt_detalle: string;\r\n\tTipo: number;\r\n\tOrden: number;\r\n\tFile: any;\r\n\tENTIDAD: any;\r\n\r\n constructor(){}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): Foto{\r\n\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.IdFotoExt = this.ENTIDAD.IdFotoExt;\r\n\t\tthis.IdFotoExt_detalle = this.ENTIDAD.IdFotoExt_detalle;\r\n\t\tthis.UrlFotoExt = this.ENTIDAD.UrlFotoExt;\r\n\t\tthis.UrlFotoExt_detalle = this.ENTIDAD.UrlFotoExt_detalle;\r\n\t\tthis.Tipo = this.ENTIDAD.Tipo;\r\n\t\tthis.Orden = this.ENTIDAD.Orden;\r\n\t\tthis.File = this.ENTIDAD.File;\r\n\r\n\t\tthis.IdContenido = this.ENTIDAD.IdContenido;\r\n\t\tthis.IdContenidoWebExterna = this.ENTIDAD.IdContenidoWebExterna;\r\n\t\tthis.IdEspacio = this.ENTIDAD.IdEspacio;\r\n\t\tthis.IdRutaSugerida = this.ENTIDAD.IdRutaSugerida;\r\n\t\tthis.IdAvisoCiudadano = this.ENTIDAD.IdAvisoCiudadano;\r\n\r\n\t\tthis.IdNodo = this.ENTIDAD.IdNodo;\r\n\t\tthis.IdBaliza = this.ENTIDAD.IdBaliza;\r\n\t\tthis.IdNoticia = this.ENTIDAD.IdNoticia;\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Foto.ts","export class FotoBlob {\r\n blob: any;\r\n oFoto: any;\r\n name: string;\r\n size: number;\r\n constructor(){}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/FotoBlob.ts","import { Contenido } from './Contenido';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { SeccionFormulario } from './SeccionFormulario';\r\nimport { AlaFormulario } from './AlaFormulario';\r\nimport { ContenidoPlano } from 'interiores-mapa';\r\nimport { SeccionPlano } from 'interiores-mapa';\r\nimport { Constantes } from './constantes';\r\n\r\nexport class HistoricoLocalizacionContenido {\r\n\tId: string;\r\n\tContenido_Id: string;\r\n\tContenido: Contenido; // OJO: Este es el contenido a mostrar pero con los datos actuales\r\n\tElemento: string;\r\n\tDescripcion: string;\r\n\tTipologias: string;\r\n\r\n\tSeccion: string; // Nombre de la seccion\r\n\tAla: string; // Nombre del Ala\r\n\tNivel: string; // Nombre del Nivel\r\n\tLocalizacion: string; // Para filtro en tabla localizacion\r\n\r\n\tFechaDesde: Date;\r\n\tFechaHasta: Date;\r\n\r\n\tENTIDAD: any;\r\n\r\n\t// Al mostrarlo en Historicos tendremos que usar los datos siguientes que son los correspondientes a la fecha del historico\r\n\tcontenidoPlano: ContenidoPlano;\r\n\tX: number;\r\n\tY: number;\r\n\r\n\tAla_Id: String; // Id\r\n\tNivel_Id: String; // Id\r\n\tNodo_Id: String; // Id\r\n\tSeccion_Id: String; // Id\r\n\r\n\tAlaFormulario: AlaFormulario;\r\n\tSeccionFormulario: SeccionFormulario;\r\n\r\n\t// Campos para selector dropdown\r\n\tvalue: string;\r\n\tlabel: string;\r\n\r\n\t// Para pintar plano\r\n\tpathPlano: any;\r\n\tzoomLevels: any[];\r\n\r\n\tseccionPlano: any;\r\n\r\n\ttipologiaSeccion: string;\r\n\r\n\tconstructor(){\r\n\t\tthis.Id = '';\r\n\t\tthis.Elemento = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Tipologias = '';\r\n\t\tthis.Seccion = '';\r\n\t\tthis.FechaDesde = new Date();\r\n\t\tthis.FechaHasta = new Date();\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): HistoricoLocalizacionContenido{\r\n\r\n\t\tthis.Id = ENTIDAD.Id;\r\n\t\tthis.Elemento = ENTIDAD.Nombre;\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Tipologias = '';\r\n\t\tthis.FechaDesde = ENTIDAD.FechaDesde;\r\n\t\tthis.FechaHasta = ENTIDAD.FechaHasta;\r\n\t\tthis.Seccion = '';\r\n\t\tthis.X = ENTIDAD.X;\r\n\t\tthis.Y = ENTIDAD.Y;\r\n\r\n\t\tthis.Contenido_Id = ENTIDAD.Contenido_Id;\r\n\t\tthis.Ala_Id = ENTIDAD.Ala_Id;\r\n\t\tthis.Nivel_Id = ENTIDAD.Nivel_Id;\r\n\t\tthis.Nodo_Id = ENTIDAD.Nodo_Id;\r\n\t\tthis.Seccion_Id = ENTIDAD.Seccion_Id;\r\n\r\n\t\tthis.value = ENTIDAD.Contenido_Id;\r\n\t\tthis.label = ENTIDAD.Nombre;\r\n\t\t//this.tipologiaSeccion = ENTIDAD.SeccionFormulario.TIPOLOGIAS_SECCION[0].Nombre;\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tserializarLite(){\r\n\t\tconst h = {\r\n\t\t\tId: this.Id,\r\n\t\t\tElemento: this.Elemento,\r\n\t\t\tDescripcion: this.Descripcion,\r\n\t\t\tTipologias: this.Tipologias,\r\n\t\t\tFechaDesde: this.FechaDesde,\r\n\t\t\tFechaHasta\t: this.FechaHasta,\r\n\t\t\t//Seccion: this.Seccion,\r\n\t\t\tX\t: this.X,\r\n\t\t\tY\t: this.Y,\r\n\r\n\t\t\tContenido_Id: this.Contenido_Id,\r\n\t\t\tAla_Id: this.Ala_Id,\r\n\t\t\tNivel_Id: this.Nivel_Id,\r\n\t\t\tNodo_Id: this.Nodo_Id,\r\n\t\t\tSeccion_Id: this.Seccion_Id,\r\n\r\n\t\t\tvalue: this.value,\r\n\t\t\tlabel: this.label\r\n\t\t}\r\n\r\n\t\tconst cadenaHistoricos = JSON.stringify(h);\r\n\t\treturn cadenaHistoricos;\r\n\t}\r\n\r\n\trellenarContenido(cont: Contenido, sec: any, ala: AlaFormulario){\r\n\t\tthis.Contenido_Id = cont.Id;\r\n\t\tthis.Contenido = cont;\r\n\t\tthis.Tipologias = this.Contenido.Tipo;\r\n\t\tthis.Elemento = this.Contenido.Titulo;\r\n\t\tthis.Descripcion = this.Contenido.Descripcion;\r\n\r\n\r\n\r\n\t\tif (sec) {\r\n\t\t\tthis.SeccionFormulario = new SeccionFormulario().fromENTIDAD(sec);\r\n\t\t\tthis.Seccion = sec.Nombre;\r\n\t\t\tthis.Ala = sec.ALA.Nomobre; // Nombre del Ala\r\n\t\t\tthis.Nivel = sec.ALA.NIVEL.Nombre; // Nombre del Nivel\r\n\t\t\tthis.Localizacion = this.Ala + ' ' + this.Nivel + ' ' + this.Seccion; // Para filtro en tabla localizacion\r\n\t\t}\r\n\r\n\t\tif (ala) {\r\n\t\t\tthis.AlaFormulario = new AlaFormulario(ala);\r\n\t\t\tif (ala.RutaImagen){\r\n\t\t\t\tthis.pathPlano = ala.RutaImagen;\r\n\t\t\t}\r\n\t\t\tif (ala.zoomMinimo && ala.zoomMaximo){\r\n\t\t\t\tthis.zoomLevels = [ala.zoomMinimo , ala.zoomMaximo];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tsetHistoricoPuntoPlano(numeroContenido){\r\n\t\tlet contenidoPlano;\r\n\t\tconst punto = 'assets/planos/puntos/point_icon-' + numeroContenido + '.svg';\r\n\t\t// const punto = 'assets/planos/point_icon.svg';\r\n\t\tcontenidoPlano = new ContenidoPlano(this.Contenido_Id, this.Elemento, this.X, this.Y, punto, [], this.AlaFormulario.IconoContenidoScale * 2);\r\n\t\tcontenidoPlano.ENTIDAD = this.Contenido.ENTIDAD;\r\n\r\n\t\t\t// Icono visible\r\n\t\t\t\tcontenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\tcontenidoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\tcontenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\tcontenidoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\tcontenidoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\tcontenidoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\tcontenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\tcontenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\tcontenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\tcontenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\tcontenidoPlano.setIconAlign('center-center');\r\n\r\n\t\t\t// Posicionamos label aunque no se valla a ver\r\n\t\t\t\tconst width = parseInt(Constantes.contenidoIconWidth, 0);\r\n\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\tcontenidoPlano.setLabelXoffset(10 + (width / 2));\r\n\t\t\t\tcontenidoPlano.setLabelYoffset(-30);\r\n\r\n\t\t\t// Label no Visible\r\n\t\t\t\tcontenidoPlano.setLabel(''); // Label desde BD\r\n\t\t\t\tcontenidoPlano.setLabelColor('');\r\n\t\t\t\tcontenidoPlano.setLabelFontFamily('');\r\n\t\t\t\tcontenidoPlano.setLabelFontSize('');\r\n\r\n\t\t\tthis.contenidoPlano = contenidoPlano;\r\n\r\n\t}\r\n\r\n\tsetHistoricoPlano(orden, numeroContenido = 0) {\r\n\t\ttry {\r\n\r\n\t\t\t// TODO: Cambiar con que valores se genera\r\n\t\t\tlet contenidoPlano;\r\n\t\t\tlet contenidoPuntoPlano;\r\n\t\t\tconst numero = orden < 10 ? '0' + orden : '' + orden;\r\n\t\t\tlet icono;\r\n\t\t\tif(Number(numero) > 99){\r\n\t\t\t\t icono = 'assets/planos/Chinchetas_destinos/' + numeroContenido + '/destino-00.svg';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t icono = 'assets/planos/Chinchetas_destinos/' + numeroContenido + '/destino-' + numero + '.svg';\r\n\t\t\t}\r\n\t\t\t//const icono = 'assets/planos/Chinchetas_destinos/' + numeroContenido + '/destino-' + numero + '.svg';\r\n\t\t\tconst punto = 'assets/planos/dot-inside-a-circle_icon-icons.com_70195.svg';\r\n\t\t\tcontenidoPlano = new ContenidoPlano(this.Contenido_Id, this.Elemento, this.X, this.Y, icono, [], this.AlaFormulario.IconoContenidoScale * 2);\r\n\t\t\tcontenidoPuntoPlano = new ContenidoPlano(this.Contenido_Id, this.Elemento, this.X, this.Y, punto, [], this.AlaFormulario.IconoContenidoScale * 2);\r\n\r\n\t\t\tcontenidoPlano.ENTIDAD = this.Contenido.ENTIDAD;\r\n\t\t\tcontenidoPuntoPlano.ENTIDAD = this.Contenido.ENTIDAD;\r\n\t\t\t// Icono visible\r\n\t\t\t\tcontenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\tcontenidoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\tcontenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\tcontenidoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\tcontenidoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\tcontenidoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\tcontenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\tcontenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\tcontenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\tcontenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\tcontenidoPlano.setIconAlign('bottom-center');\r\n\r\n\t\t\t\tcontenidoPuntoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\tcontenidoPuntoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\tcontenidoPuntoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\tcontenidoPuntoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\tcontenidoPuntoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\tcontenidoPuntoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\tcontenidoPuntoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\tcontenidoPuntoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\tcontenidoPuntoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\tcontenidoPuntoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\tcontenidoPuntoPlano.setIconAlign('bottom-center');\r\n\t\t\t// Posicionamos label aunque no se valla a ver\r\n\t\t\t\tconst width = parseInt(Constantes.contenidoIconWidth, 0);\r\n\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\tcontenidoPlano.setLabelXoffset(10 + (width / 2));\r\n\t\t\t\tcontenidoPlano.setLabelYoffset(-30);\r\n\r\n\t\t\t// Label no Visible\r\n\t\t\t\tcontenidoPlano.setLabel(''); // Label desde BD\r\n\t\t\t\tcontenidoPlano.setLabelColor('');\r\n\t\t\t\tcontenidoPlano.setLabelFontFamily('');\r\n\t\t\t\tcontenidoPlano.setLabelFontSize('');\r\n\r\n\t\t\tthis.contenidoPlano = contenidoPlano;\r\n\t\t}\r\n\t\tcatch (ex) {\r\n\t\t\tconsole.error(ex);\r\n\t\t}\r\n\t}\r\n\r\n\tsetHistoricoSeccionPlano(orden, numeroContenido = 0){\r\n\t\ttry {\r\n\r\n\t\t\t// TODO: Cambiar con que valores se genera\r\n\t\t\tlet seccionPlano;\r\n\t\t\tconst numero = orden < 10 ? '0' + orden : '' + orden;\r\n\t\t\tlet icono;\r\n\r\n\t\t\tif(Number(numero) > 99){\r\n\t\t\t\t icono = 'assets/planos/Chinchetas_destinos/' + numeroContenido + '/destino-00.svg';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t icono = 'assets/planos/Chinchetas_destinos/' + numeroContenido + '/destino-' + numero + '.svg';\r\n\t\t\t}\r\n\r\n\t\t\tconst punto = 'assets/planos/dot-inside-a-circle_icon-icons.com_70195.svg';\r\n\t\t\tvar json = JSON.parse(this.SeccionFormulario.ENTIDAD.CoordenadasPoligono);\r\n\t\t\tseccionPlano = new SeccionPlano(this.SeccionFormulario.Id,this.SeccionFormulario.Nombre, json, 1, 1); this.SeccionFormulario.SECCION_PLANO;\r\n\r\n\t\t\t// Creamos el color\r\n\t\t\tvar color = this.seccion_rgba(numeroContenido)\r\n\t\t\tseccionPlano.fill = color;\t\t// Reposo\r\n\t\t\tseccionPlano.hoverFill = color;\t// Hover\r\n\t\t\t// Arista Seccion\r\n\t\t\tseccionPlano.stroke = color;\t\t\t\t\t// Reposo\r\n\t\t\tseccionPlano.hoverStroke = color;\t// Hover\r\n\t\t\t// Ancho\r\n\t\t\tseccionPlano.strokeWidth = color;\r\n\r\n\t\t\tthis.seccionPlano = seccionPlano;\r\n\t\t}\r\n\t\tcatch (ex) {\r\n\t\t\tconsole.error(ex);\r\n\t\t}\r\n\t}\r\n\r\n\tsetHistoricoSeccionPuntoPlano(indiceColor){\r\n\t\ttry {\r\n\r\n\t\t\t// TODO: Cambiar con que valores se genera\r\n\t\t\tlet seccionPlano;\r\n\t\t\tvar json = JSON.parse(this.SeccionFormulario.ENTIDAD.CoordenadasPoligono);\r\n\t\t\tseccionPlano = new SeccionPlano(this.SeccionFormulario.Id,this.SeccionFormulario.Nombre, json, 1, 1); this.SeccionFormulario.SECCION_PLANO;\r\n\r\n\t\t\t// Creamos el color\r\n\t\t\tvar color = this.seccion_rgba(indiceColor)\r\n\t\t\tseccionPlano.fill = color;\t\t// Reposo\r\n\t\t\tseccionPlano.hoverFill = color;\t// Hover\r\n\t\t\t// Arista Seccion\r\n\t\t\tseccionPlano.stroke = color;\t\t\t\t\t// Reposo\r\n\t\t\tseccionPlano.hoverStroke = color;\t// Hover\r\n\t\t\t// Ancho\r\n\t\t\tseccionPlano.strokeWidth = color;\r\n\r\n\t\t\tthis.seccionPlano = seccionPlano;\r\n\t\t}\r\n\t\tcatch (ex) {\r\n\t\t\tconsole.error(ex);\r\n\t\t}\r\n\t}\r\n\r\n\tseccion_rgba(number) {\r\n\r\n\r\n\t\tif (number == 1) {\r\n\t\t\treturn Constantes.Red;\r\n\t\t}\r\n\t\tif (number == 2) {\r\n\t\t\treturn Constantes.Maroon;\r\n\t\t}\r\n\t\tif (number == 3) {\r\n\t\t\treturn Constantes.Yellow;\r\n\t\t}\r\n\t\tif (number == 4) {\r\n\t\t\treturn Constantes.Olive;\r\n\t\t}\r\n\t\tif (number == 5) {\r\n\t\t\treturn Constantes.Lime;\r\n\t\t}\r\n\t\tif (number == 6) {\r\n\t\t\treturn Constantes.Green;\r\n\t\t}\r\n\t\tif (number == 7) {\r\n\t\t\treturn Constantes.Aqua;\r\n\t\t}\r\n\t\tif (number == 8) {\r\n\t\t\treturn Constantes.Teal;\r\n\t\t}\r\n\t\tif (number == 9) {\r\n\t\t\treturn Constantes.Blue;\r\n\t\t}\r\n\t\tif (number == 10) {\r\n\t\t\treturn Constantes.Navy;\r\n\t\t}\r\n\t\tif (number == 11) {\r\n\t\t\treturn Constantes.Fuchsia;\r\n\t\t}\r\n\t\tif (number == 12) {\r\n\t\t\treturn Constantes.Purple;\r\n\t\t}\r\n\t\tif (number == 13) {\r\n\t\t\treturn Constantes.White;\r\n\t\t}\r\n\t\tif (number == 14) {\r\n\t\t\treturn Constantes.Silver;\r\n\t\t}\r\n\t\tif (number == 15) {\r\n\t\t\treturn Constantes.Black;\r\n\t\t}\r\n\t\tif (number == 16) {\r\n\t\t\treturn Constantes.LightBlue;\r\n\t\t}\r\n\t\tif (number == 17) {\r\n\t\t\treturn Constantes.LightBlue2;\r\n\t\t}\r\n\t\treturn Constantes.Lime;\r\n\r\n\t}\r\n\r\n\thexToRGB(hex: string, alpha: string) {\r\n\r\n\t\tconst r = parseInt(hex.slice(1, 3), 16);\r\n\t\tconst g = parseInt(hex.slice(3, 5), 16);\r\n\t\tconst b = parseInt(hex.slice(5, 7), 16);\r\n\r\n\t\tif (alpha) {\r\n\t\t return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n\t\t} else {\r\n\t\t return `rgb(${r}, ${g}, ${b})`;\r\n\t\t}\r\n\t }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/HistoricoLocalizacionContenido.ts","import { SelectItem } from 'primeng/api';\r\n\r\n\r\nexport class Idioma implements SelectItem {\r\n label: string;\r\n value: any;\r\n styleClass?: string;\r\n icon: string;\r\n\ttitle: string;\r\n\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(idioma){\r\n\t\tif (idioma) {\r\n\t\t\tthis.label = idioma.Descripcion;\r\n\t\t\tthis.value = idioma.Codigo;\r\n\t\t\tthis.icon = idioma.Icono;\r\n\t\t\tthis.title = idioma.Descripcion;\r\n\r\n\t\t\tthis.ENTIDAD = idioma;\r\n\t\t}\r\n\t}\r\n\r\n }\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Idioma.ts","export class IdiomaCalendario {\r\n\tfirstDayOfWeek: number;\r\n\tdayNames: string[];\r\n\tdayNamesShort: string[];\r\n\tdayNamesMin: string[];\r\n\tmonthNames: string[];\r\n\tmonthNamesShort: string[];\r\n\ttoday: string;\r\n\tclear: string;\r\n\r\n\tconstructor() {\r\n\t this.firstDayOfWeek = 1;\r\n\t this.dayNames = [];\r\n\t this.dayNamesShort = [];\r\n\t this.dayNamesMin = [];\r\n\t this.monthNames = [];\r\n\t this.monthNamesShort = [];\r\n\t this.today = '';\r\n\t this.clear = '';\r\n\t}\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/IdiomaCalendatio.ts","import { Contenido } from './Contenido';\r\n\r\nexport class Informe {\r\n\t// Un Informe es un contenido a mostrar en la pantalla de Informes\r\n\tContenido: Contenido;\r\n\t\r\n\tId: string;\r\n\tElemento: string;\r\n\tDescripcion: string;\r\n\tTipologias: string;\r\n\tPermaneceDesde: string;\r\n\tSeccion: string;\r\n\tX: number;\r\n\tY: number;\r\n\r\n\t// Campos para selector dropdown\r\n\tvalue: string;\r\n\tlabel: string; \r\n\t// ENTIDAD: any;\r\n\r\n\tconstructor(){\r\n\t\tthis.Id = '';\r\n\t\tthis.Elemento = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Tipologias = '';\r\n\t\tthis.PermaneceDesde = '';\r\n\t\tthis.Seccion = '';\r\n\t}\r\n\r\n\r\n\tfromContenido(cont: Contenido): Informe{\r\n\t\tthis.Contenido = cont;\r\n\r\n\t\tthis.Id = this.Contenido.Id;\r\n\t\tthis.Elemento = this.Contenido.Titulo;\r\n\t\tthis.Descripcion = this.Contenido.Descripcion;\r\n\t\tthis.Tipologias = this.Contenido.Tipo;\r\n\t\tthis.PermaneceDesde = 'TODO: ';\r\n\t\tthis.Seccion = this.Contenido.Seccion;\r\n\t\tthis.X = this.Contenido.X;\r\n\t\tthis.Y = this.Contenido.Y;\r\n\r\n\t\tthis.value = this.Contenido.Id;\r\n\t\tthis.label = this.Contenido.Titulo; \r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): Informe{\r\n\t\tthis.Contenido = new Contenido().fromENTIDAD(ENTIDAD);\r\n\r\n\t\tthis.Id = this.Contenido.Id;\r\n\t\tthis.Elemento = this.Contenido.Titulo;\r\n\t\tthis.Descripcion = this.Contenido.Descripcion;\r\n\t\tthis.Tipologias = this.Contenido.Tipo;\r\n\t\tthis.PermaneceDesde = 'TODO: ';\r\n\t\tthis.Seccion = this.Contenido.Seccion;\r\n\t\tthis.X = this.Contenido.X;\r\n\t\tthis.Y = this.Contenido.Y;\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Informe.ts","export class Modelo3D {\r\n\r\n Id: string;\r\n Nombre: string;\r\n Descripcion: string;\r\n FechaAlta: Date;\r\n NombreFichero: string;\r\n\tFechaActualizacionFichero: Date;\r\n\r\n\tIdExt_ios: string;\r\n\tIdExt_android: string;\r\n\tUrlExt_ios: string;\r\n\tUrlExt_android: string;\r\n\r\n GeocalibracionActiva: boolean;\r\n Metros_Aparicion: number;\r\n Orientacion: number;\r\n Latitud_topLeft: number;\r\n Longitud_topLeft: number;\r\n Latitud_topRight: number;\r\n Longitud_topRight: number;\r\n Latitud_bottomRight: number;\r\n Longitud_bottomRight: number;\r\n Latitud_bottomLeft: number;\r\n Longitud_bottomLeft: number;\r\n width: number;\r\n\theight: number;\r\n\r\n\t// visible: boolean;\r\n\r\n\tENTIDAD: any;\r\n\r\n constructor() {\r\n\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.FechaAlta = new Date();\r\n\t\tthis.NombreFichero = '';\r\n\t\tthis.GeocalibracionActiva = false;\r\n\t\tthis.Metros_Aparicion = 0;\r\n\r\n\t\tthis.Orientacion = 0;\r\n this.Latitud_topLeft = 0;\r\n this.Longitud_topLeft = 0;\r\n this.Latitud_topRight = 0;\r\n this.Longitud_topRight = 0;\r\n this.Latitud_bottomRight = 0;\r\n this.Longitud_bottomRight = 0;\r\n this.Latitud_bottomLeft = 0;\r\n this.Longitud_bottomLeft = 0;\r\n this.width = 0;\r\n\t\tthis.height = 0;\r\n\r\n\t\tthis.FechaActualizacionFichero = new Date();\r\n\r\n\t\tthis.IdExt_ios = '';\r\n\t\tthis.IdExt_android = '';\r\n\t\tthis.UrlExt_ios = '';\r\n\t\tthis.UrlExt_android = '';\r\n\r\n\t\t// this.visible = false;\r\n\r\n }\r\n\r\n fromENTIDAD(ENTIDAD: any): Modelo3D{\r\n\r\n\t\tif (ENTIDAD) {\r\n\t\t\tthis.ENTIDAD = ENTIDAD;\r\n\r\n\t\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\t\tthis.Nombre = this.ENTIDAD.Nombre;\r\n\t\t\tthis.Descripcion = this.ENTIDAD.Descripcion ? this.ENTIDAD.Descripcion : '' ;\r\n\t\t\tthis.FechaAlta = this.ENTIDAD.FechaAlta;\r\n\r\n\t\t\tthis.NombreFichero = this.ENTIDAD.NombreFichero;\r\n\t\t\tthis.FechaActualizacionFichero = this.ENTIDAD.FechaActualizacionFichero;\r\n\r\n\t\t\tthis.IdExt_ios = this.ENTIDAD.IdExt_ios;\r\n\t\t\tthis.IdExt_android = this.ENTIDAD.IdExt_android;\r\n\t\t\tthis.UrlExt_ios = this.ENTIDAD.UrlExt_ios;\r\n\t\t\tthis.UrlExt_android = this.ENTIDAD.UrlExt_android;\r\n\r\n\t\t\tthis.GeocalibracionActiva = this.ENTIDAD.GeocalibracionActiva;\r\n\t\t\tthis.Metros_Aparicion = this.ENTIDAD.Metros_Aparicion;\r\n\t\t\tthis.Orientacion = this.ENTIDAD.Orientacion;\r\n\t\t\tthis.Latitud_topLeft = this.ENTIDAD.Latitud_topLeft;\r\n\t\t\tthis.Longitud_topLeft = this.ENTIDAD.Longitud_topLeft;\r\n\t\t\tthis.Latitud_topRight = this.ENTIDAD.Latitud_topRight;\r\n\t\t\tthis.Longitud_topRight = this.ENTIDAD.Longitud_topRight;\r\n\t\t\tthis.Latitud_bottomRight = this.ENTIDAD.Latitud_bottomRight;\r\n\t\t\tthis.Longitud_bottomRight = this.ENTIDAD.Longitud_bottomRight;\r\n\t\t\tthis.Latitud_bottomLeft = this.ENTIDAD.Latitud_bottomLeft;\r\n\t\t\tthis.Longitud_bottomLeft = this.ENTIDAD.Longitud_bottomLeft;\r\n\t\t\tthis.width = this.ENTIDAD.width;\r\n\t\t\tthis.height = this.ENTIDAD.height;\r\n\t\t}\r\n\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Modelo3D.ts","export class NivelFormulario {\r\n\t// Alimentar los inputs\r\n\tNombre: string;\r\n\tNivelVertical: number;\r\n\tDescripcion: string;\r\n\tNombreCorto: string;\r\n\tIdiomas: Map;\r\n\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(nivel?) {\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.NombreCorto = '';\r\n\t\tthis.NivelVertical = 0;\r\n\t\tthis.ENTIDAD = {};\r\n\r\n\r\n\t\tif (nivel) {\r\n\r\n\t\t\tthis.ENTIDAD = nivel;\r\n\t\t\tthis.Nombre = nivel.Nombre;\r\n\t\t\tthis.Descripcion = nivel.Descripcion;\r\n\t\t\tthis.NombreCorto = nivel.NombreCorto;\r\n\t\t\tthis.NivelVertical = nivel.NivelVertical;\r\n\r\n\t\t\tthis.FechaAlta = nivel.FechaAlta;\r\n\t\t\tthis.FechaBaja = nivel.FechaBaja;\r\n\r\n\t\t\tnivel.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new NivelIdiomaFormulario(element);\r\n\t\t\t\tif (!this.Idiomas) {\r\n\t\t\t\t\tthis.Idiomas = new Map();\r\n\t\t\t\t}\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t}\r\n}\r\n\r\nexport class NivelIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tNombreCorto: string;\r\n\r\n\tconstructor(espacioIdioma?) {\r\n\r\n\t\tif (espacioIdioma) {\r\n\t\t\tthis.Codigo = espacioIdioma.IDIOMA.Codigo ? espacioIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\tthis.NombreCorto = espacioIdioma.NombreCorto ? espacioIdioma.NombreCorto : '';\r\n\t\t\t\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t\tthis.NombreCorto = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/NivelFormulario.ts","// import { NodoPlano } from '../domain/nodoPlano';\r\nimport { NodoPlano } from 'interiores-mapa';\r\nimport { Contenido } from './Contenido';\r\nimport { BalizaFormulario_lite } from './BalizaFormulario_lite';\r\n\r\nexport class NodoFormulario {\r\n\tId: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tCalidadNumBeaconsMin: Number;\r\n\tCalidadPotenciaTxMin: Number;\r\n\tEsPDI: Boolean;\r\n\tX: Number;\r\n\tY: Number;\r\n\tLatitud: Number;\r\n\tLongitud: Number;\r\n\tRutaImagenPDI: string;\r\n\tMostrarEnIndicacionesIntermedias: Boolean;\r\n\tIdTipologia: string;\r\n\tIdSeccion: string;\r\n\tNombreSeccion: string;\r\n\tEsPortal: Boolean;\r\n\tEsEntrada: Boolean;\r\n\r\n\tnumeroCONTENIDOS: Number = 0;\r\n\tcontenidosAsociados: Contenido[];\r\n\tresumenContenidosAsociados = [];\r\n\ttiposContenidosAsociados: any[];\r\n\r\n\tTIPOLOGIA_NODO: any;\r\n\tIconoRepresentacion: string;\r\n\r\n\tNODO_PLANO: NodoPlano = NodoPlano.createInstance();\r\n\tIdiomas: Map = new Map();\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tTIPO: string;\r\n\r\n\tbalizas: BalizaFormulario_lite[];\r\n\r\n\tconstructor() {\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\r\n\t\tthis.Id = '';\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.CalidadNumBeaconsMin = 0;\r\n\t\tthis.CalidadPotenciaTxMin = 0;\r\n\t\tthis.EsPDI = false;\r\n\t\tthis.X = 0;\r\n\t\tthis.Y = 0;\r\n\t\tthis.Latitud = 0;\r\n\t\tthis.Longitud = 0;\r\n\t\tthis.RutaImagenPDI = '';\r\n\t\tthis.MostrarEnIndicacionesIntermedias = false;\r\n\t\tthis.IdTipologia = '';\r\n\t\tthis.IdSeccion = '';\r\n\t\tthis.NombreSeccion = '';\r\n\t\tthis.EsPortal = false;\r\n\t\tthis.EsEntrada = false;\r\n\t\tthis.contenidosAsociados = [];\r\n\t\tthis.tiposContenidosAsociados = [];\r\n\t\tthis.NODO_PLANO = NodoPlano.createInstance();\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.balizas = [];\r\n\r\n\t\tthis.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/tipologia-nodo.svg';\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromNodoPlano(nodoPlano: NodoPlano): NodoFormulario{\r\n\t\tthis.NODO_PLANO = nodoPlano;\r\n\r\n\t\tif (this.NODO_PLANO.ENTIDAD) {\r\n\t\t\treturn this.fromENTIDAD(this.NODO_PLANO.ENTIDAD);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): NodoFormulario{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.Nombre = this.ENTIDAD.Nombre;\r\n\t\tthis.Descripcion = this.ENTIDAD.Descripcion;\r\n\t\tthis.CalidadNumBeaconsMin = this.ENTIDAD.CalidadNumBeaconsMin;\r\n\t\tthis.CalidadPotenciaTxMin = this.ENTIDAD.CalidadPotenciaTxMin;\r\n\t\tthis.EsPDI = this.ENTIDAD.EsPDI;\r\n\t\tthis.X = this.ENTIDAD.X;\r\n\t\tthis.Y = this.ENTIDAD.Y;\r\n\t\tthis.Latitud = this.ENTIDAD.Latitud;\r\n\t\tthis.Longitud = this.ENTIDAD.Longitud;\r\n\t\tthis.RutaImagenPDI = this.ENTIDAD.RutaImagenPDI;\r\n\t\tthis.MostrarEnIndicacionesIntermedias = this.ENTIDAD.mostrarEnIndicacionesIntermedias;\r\n\t\tthis.IdTipologia = this.ENTIDAD.IdTipologia;\r\n\t\tthis.IdSeccion = this.ENTIDAD.IdSeccion;\r\n\t\tthis.NombreSeccion = this.ENTIDAD.SECCION ? this.ENTIDAD.SECCION.Nombre : '';\r\n\t\tthis.EsPortal = this.ENTIDAD.EsPortal;\r\n\t\tthis.EsEntrada = this.ENTIDAD.EsEntrada;\r\n\r\n\t\tthis.TIPOLOGIA_NODO = this.ENTIDAD.TIPOLOGIA_NODO;\r\n\t\tif (this.TIPOLOGIA_NODO) {\r\n\t\t\tthis.IconoRepresentacion = this.TIPOLOGIA_NODO.IconoRepresentacion;\r\n\t\t}\r\n\r\n\t\tthis.TIPO = this.ENTIDAD.constructor.name.split('_', 2)[0];\r\n\r\n\t\tthis.ENTIDAD.IDIOMAS.forEach(element => {\r\n\t\t\tconst aux = new NodoIdiomaFormulario(element);\r\n\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t});\r\n\r\n\t\tif (this.ENTIDAD.BALIZAS) {\r\n\t\t\tthis.ENTIDAD.BALIZAS.forEach(nodo_has_baliza => {\r\n\t\t\t\tif (nodo_has_baliza.BALIZA) {\r\n\t\t\t\t\tconst baliza: BalizaFormulario_lite = new BalizaFormulario_lite().fromENTIDAD(nodo_has_baliza.BALIZA);\r\n\t\t\t\t\tthis.balizas.push(baliza);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.ENTIDAD.CONTENIDOS) {\r\n\t\t\tthis.numeroCONTENIDOS = this.ENTIDAD.CONTENIDOS.length;\r\n\t\t\tthis.ENTIDAD.CONTENIDOS.forEach(cont => {\r\n\t\t\t\tif (cont.CONTENIDO) {\r\n\r\n\t\t\t\t\tconst now = new Date();\r\n\t\t\t\t\tconst baja = cont.CONTENIDO.FechaBaja;\r\n\r\n\t\t\t\t\t// Solo contamos los contenidos no caducados\r\n\t\t\t\t\tif ( baja === null || now.getTime() <= baja.getTime()) {\r\n\t\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont.CONTENIDO);\r\n\t\t\t\t\t\tthis.contenidosAsociados.push(contenido);\r\n\r\n\t\t\t\t\t\tconst aux = this.resumenContenidosAsociados.filter( t => t.Tipo === contenido.TIPOLOGIA_CONTENIDO.Nombre);\r\n\t\t\t\t\t\tif (aux && aux[0]) {\r\n\t\t\t\t\t\t\tconst contenido_aux = aux[0];\r\n\t\t\t\t\t\t\tcontenido_aux.Cantidad = contenido_aux.Cantidad + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tthis.resumenContenidosAsociados.push({\r\n\t\t\t\t\t\t\t\tTipo: contenido.TIPOLOGIA_CONTENIDO.Nombre,\r\n\t\t\t\t\t\t\t\tIconoRepresentacion: contenido.TIPOLOGIA_CONTENIDO.IconoRepresentacion,\r\n\t\t\t\t\t\t\t\tCantidad: 1\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}\r\n\r\nexport class NodoFormulario_lite {\r\n\r\n\tId: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tCalidadNumBeaconsMin: Number;\r\n\tCalidadPotenciaTxMin: Number;\r\n\tEsPDI: Boolean;\r\n\tX: Number;\r\n\tY: Number;\r\n\tLatitud: Number;\r\n\tLongitud: Number;\r\n\tRutaImagenPDI: string;\r\n\tMostrarEnIndicacionesIntermedias: Boolean;\r\n\tIdTipologia: string;\r\n\tIdSeccion: string;\r\n\tNombreSeccion: string;\r\n\tEsPortal: Boolean;\r\n\tEsEntrada: Boolean;\r\n\r\n\tnumeroCONTENIDOS: Number = 0;\r\n\tcontenidosAsociados: Contenido[];\r\n\tresumenContenidosAsociados = [];\r\n\ttiposContenidosAsociados: any[];\r\n\r\n\tTIPOLOGIA_NODO: any;\r\n\tIconoRepresentacion: string;\r\n\r\n\tNODO_PLANO: NodoPlano = NodoPlano.createInstance();\r\n\tIdiomas: Map = new Map();\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tTIPO: string;\r\n\r\n\tbalizas: BalizaFormulario_lite[];\r\n\r\n\tfromENTIDAD(ENTIDAD: any): NodoFormulario_lite{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.Nombre = this.ENTIDAD.Nombre;\r\n\t\tthis.Descripcion = this.ENTIDAD.Descripcion;\r\n\t\tthis.CalidadNumBeaconsMin = this.ENTIDAD.CalidadNumBeaconsMin;\r\n\t\tthis.CalidadPotenciaTxMin = this.ENTIDAD.CalidadPotenciaTxMin;\r\n\t\tthis.EsPDI = this.ENTIDAD.EsPDI;\r\n\t\tthis.X = this.ENTIDAD.X;\r\n\t\tthis.Y = this.ENTIDAD.Y;\r\n\t\tthis.Latitud = this.ENTIDAD.Latitud;\r\n\t\tthis.Longitud = this.ENTIDAD.Longitud;\r\n\t\tthis.RutaImagenPDI = this.ENTIDAD.RutaImagenPDI;\r\n\t\tthis.MostrarEnIndicacionesIntermedias = this.ENTIDAD.mostrarEnIndicacionesIntermedias;\r\n\t\tthis.IdTipologia = this.ENTIDAD.IdTipologia;\r\n\t\tthis.IdSeccion = this.ENTIDAD.IdSeccion;\r\n\t\tthis.NombreSeccion = this.ENTIDAD.SECCION ? this.ENTIDAD.SECCION.Nombre : '';\r\n\t\tthis.EsPortal = this.ENTIDAD.EsPortal;\r\n\t\tthis.EsEntrada = this.ENTIDAD.EsEntrada;\r\n\r\n\t\tthis.TIPOLOGIA_NODO = this.ENTIDAD.TIPOLOGIA_NODO;\r\n\t\tif (this.TIPOLOGIA_NODO) {\r\n\t\t\tthis.IconoRepresentacion = this.TIPOLOGIA_NODO.IconoRepresentacion;\r\n\t\t}\r\n\r\n\t\tthis.TIPO = this.ENTIDAD.constructor.name.split('_', 2)[0];\r\n\t\tthis.ENTIDAD.IDIOMAS.forEach(element => {\r\n\t\t\tconst aux = new NodoIdiomaFormulario(element);\r\n\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n}\r\n\r\n\r\nexport class NodoIdiomaFormulario {\r\n\r\n\tCodigo: string = '';\r\n\tNombre: string = '';\r\n\tDescripcion: string = '';\r\n\tNombreSeccion: string ='';\r\n\t// TextoContenidos: string;\r\n\r\n\tconstructor(nodoIdioma?) {\r\n\r\n\t\tif (nodoIdioma) {\r\n\t\t\tthis.Codigo = nodoIdioma.IDIOMA.Codigo ? nodoIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = nodoIdioma.Nombre ? nodoIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = nodoIdioma.Descripcion ? nodoIdioma.Descripcion : '';\r\n\t\t\tthis.NombreSeccion = nodoIdioma.NombreSeccion ? nodoIdioma.NombreSeccion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t\tthis.NombreSeccion='';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/NodoFormulario.ts","import { FotoBlob } from './FotoBlob';\r\n\r\nexport class Noticia {\r\n\r\n\tTitulo: string;\r\n\tTextoContenido: string;\r\n\tFechaAlta: string;\r\n\tFechaBaja: string;\r\n\tENTIDAD: any;\r\n\tImagen: any; // FotoBlob;\r\n\tExpiracionMensaje: string;\r\n\texpirado: Number;\r\n\tMostrarEdicion: boolean;\r\n\tIdiomas: Map;\r\n\r\n\tconstructor(not?) {\r\n\r\n\t\tif (not) {\r\n\t\t\tthis.Titulo = not.Titulo;\r\n\t\t\tthis.TextoContenido = not.TextoContenido;\r\n\t\t\tthis.FechaAlta = not.FechaAlta;\r\n\t\t\tthis.FechaBaja = not.FechaBaja;\r\n\t\t\tthis.MostrarEdicion = false;\r\n\t\t\tthis.ENTIDAD = not;\r\n\r\n\t\t\tconst now = new Date();\r\n\t\t\tconst baja = this.FechaBaja? new Date(this.FechaBaja) : null; //new Date(this.FechaBaja);\r\n\t\t\tconst alta = new Date(this.FechaAlta);\r\n\t\t\tthis.expirado = this.getTipoCaducidad(now, baja, alta);\r\n\t\t\tthis.ExpiracionMensaje = this.getEtiquetaCaducidad(now, baja, alta);\r\n\r\n\t\t\tthis.Idiomas = new Map();\r\n\t\t\tnot.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new NoticiaIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Titulo = '';\r\n\t\t\tthis.TextoContenido = '';\r\n\t\t\tthis.FechaAlta = '';\r\n\t\t\tthis.FechaBaja = '';\r\n\t\t\tthis.MostrarEdicion = false;\r\n\t\t\tthis.Idiomas = new Map();\r\n\t\t}\r\n\t }\r\n\r\n\t getEtiquetaCaducidad( now: Date, baja: Date, alta: Date){\r\n\r\n\t\tlet respuesta = '';\r\n\t\tif ( baja === null || baja === undefined ){\r\n\r\n\t\t\tif ( alta.getTime() < now.getTime()){\r\n\t\t\t\trespuesta = 'Activo';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = 'Activo';\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Expira el ' + baja.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expira en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() < alta.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Expirado el ' + baja.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expirado hace ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\tgetTipoCaducidad( now: Date, baja: Date, alta: Date){\r\n\t\t// Danger = 0\r\n\t\t// warning = 1\r\n\t\t// Succes = 2\r\n\t\t// normal = 3\r\n\r\n\t\tlet respuesta = 0;\r\n\t\tif ( baja === null || baja === undefined ){\r\n\r\n\t\t\tif ( alta.getTime() <= now.getTime()){\r\n\t\t\t\trespuesta = 3;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = 3;\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() < alta.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\t/* ** FUNCIONES VARIAS ** */\r\n\t// podriamos sacarlas a otro provider\r\n\tdayDiff(firstDate: Date, secondDate: Date) {\r\n\t\tconst date2 = secondDate;\r\n\t\tconst date1 = firstDate;\r\n\t\tif (date2 !== undefined && date2 !== null && date1 !== undefined && date1 !== null) {\r\n\t\t\tconst timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n\t\t\tconst diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\t\t\treturn diffDays;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 999;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport class NoticiaIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tTitulo: string;\r\n\tTextoContenido: string;\r\n\r\n\tconstructor(noticiaIdioma?) {\r\n\r\n\t\tif (noticiaIdioma) {\r\n\t\t\tthis.Codigo = noticiaIdioma.IDIOMA.Codigo ? noticiaIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Titulo = noticiaIdioma.Nombre ? noticiaIdioma.Nombre : '';\r\n\t\t\tthis.TextoContenido = noticiaIdioma.Descripcion ? noticiaIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Titulo = '';\r\n\t\t\tthis.TextoContenido = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Noticia.ts","export class PerfilFormulario {\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNomobre: string;\r\n\tPesoMAximo: string;\r\n\tIdiomas: Map;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(perfil?) {\r\n\t\tthis.Nomobre = '';\r\n\t\tthis.Id = '';\r\n\t\tthis.PesoMAximo = ' 0';\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.Idiomas = new Map();\r\n\r\n\t\tif (perfil) {\r\n\r\n\t\t\tthis.ENTIDAD = perfil;\r\n\t\t\tthis.Id = perfil.Id;\r\n\t\t\tthis.Nomobre = perfil.Nomobre;\r\n\t\t\tthis.PesoMAximo = perfil.PesoMAximo;\r\n\r\n\t\t\tperfil.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new PerfilIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t}\r\n}\r\n\r\nexport class PerfilIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\r\n\r\n\tconstructor(espacioIdioma?) {\r\n\r\n\t\tif (espacioIdioma) {\r\n\t\t\tthis.Codigo = espacioIdioma.IDIOMA.Codigo ? espacioIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/PerfilFormulario.ts","import { FotoBlob } from './FotoBlob';\r\n\r\nexport class RutaSugerida {\r\n\tId: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tFechaAlta: string;\r\n\tFechaBaja: string;\r\n\tRutaHasNodos: any[];\r\n\tRutaHasContenidos: any[];\r\n\tENTIDAD: any;\r\n\tImagen: any; // FotoBlob;\r\n\tExpiracionMensaje: string;\r\n\texpirado: Number;\r\n\tMostrarEdicion: boolean;\r\n\tIdiomas: Map;\r\n\tContenidos: any[];\r\n\tPermiteRuta: boolean;\r\n\tPrioridadDestacado: number;\r\n\tPrioridad: number;\r\n\r\n\tconstructor(rut?) {\r\n\t\tif (rut) {\r\n\t\t\tthis.Id = rut.Id;\r\n\t\t\tthis.Nombre = rut.nombre;\r\n\t\t\tthis.Descripcion = rut.descripcion;\r\n\t\t\tthis.FechaAlta = rut.fecha_alta;\r\n\t\t\tthis.FechaBaja = rut.fecha_baja;\r\n\t\t\tthis.RutaHasNodos = rut.RUTA_has_NODOS;\r\n\t\t\tthis.RutaHasContenidos = rut.RUTA_has_CONTENIDOS;\r\n\t\t\tthis.Contenidos = [];\r\n\t\t\tthis.MostrarEdicion = false;\r\n\r\n\t\t\tthis.ENTIDAD = rut;\r\n\t\t\tthis.PermiteRuta = rut.PermiteRuta;\r\n\t\t\tconst now = new Date();\r\n\t\t\tconst baja = this.FechaBaja ? new Date(this.FechaBaja) : null; // new Date(this.FechaBaja);\r\n\t\t\tconst alta = new Date(this.FechaAlta);\r\n\t\t\tthis.expirado = this.getTipoCaducidad(now, baja, alta);\r\n\t\t\tthis.ExpiracionMensaje = this.getEtiquetaCaducidad(now, baja, alta);\r\n\t\t\tthis.Idiomas = new Map();\r\n\r\n\t\t\tthis.PrioridadDestacado = rut.PrioridadDestacado;\r\n\t\t\tthis.Prioridad = rut.Prioridad;\r\n\r\n\t\t\trut.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new RutaSugeridaIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t\tthis.FechaAlta = '';\r\n\t\t\tthis.FechaBaja = '';\r\n\t\t\tthis.RutaHasNodos = [];\r\n\t\t\tthis.RutaHasContenidos = [];\r\n\t\t\tthis.MostrarEdicion = false;\r\n\t\t\tthis.Contenidos = [];\r\n\t\t\tthis.PermiteRuta = false;\r\n\t\t\tthis.ENTIDAD = undefined;\r\n\r\n\t\t\tthis.expirado = -1;\r\n\t\t\tthis.ExpiracionMensaje = '';\r\n\t\t\tthis.Idiomas = new Map();\r\n\r\n\t\t\tthis.PrioridadDestacado = 0;\r\n\t\t\tthis.Prioridad = 0;\r\n\t\t}\r\n\t }\r\n\r\n\t getEtiquetaCaducidad( now: Date, baja: Date, alta: Date){\r\n\r\n\t\tlet respuesta = '';\r\n\t\tif ( baja === null || baja === undefined ){\r\n\r\n\t\t\tif ( alta.getTime() < now.getTime()){\r\n\t\t\t\trespuesta = 'Activo';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = 'Activo';\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Expira el ' + baja.toLocaleDateString;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expira en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() < alta.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 'Empieza el ' + alta.toLocaleDateString();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Empieza en ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\t\r\n\t\t\t\t\trespuesta = 'Expirado el ' + baja.getFullYear() + '/' +('0' + baja.getDate()).slice(-2) + '/' + ('0' + (baja.getMonth()+ 1)).slice(-2);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 'Expirado hace ' + diferencia + ' días';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\tgetTipoCaducidad( now: Date, baja: Date, alta: Date){\r\n\t\t// Danger = 0\r\n\t\t// warning = 1\r\n\t\t// Succes = 2\r\n\t\t// normal = 3\r\n\r\n\t\tlet respuesta = 0;\r\n\t\tif ( baja === null || baja === undefined ){\r\n\r\n\t\t\tif ( alta.getTime() <= now.getTime()){\r\n\t\t\t\trespuesta = 2;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// FechaBaja es posterior a hoy y FechaAlta es anterior a hoy\r\n\t\t\tif ( alta.getTime() < now.getTime() && now.getTime() < baja.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 60){\r\n\t\t\t\t\trespuesta = 3;\r\n\t\t\t\t}\r\n\t\t\t\telse if (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() < alta.getTime() ){\r\n\t\t\t\tconst diferencia = this.dayDiff(alta, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 2;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( now.getTime() > baja.getTime()) {\r\n\t\t\t\tconst diferencia = this.dayDiff(baja, now) ;\r\n\t\t\t\tif (diferencia > 30) {\r\n\t\t\t\t\trespuesta = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\trespuesta = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn respuesta;\r\n\t}\r\n\r\n\t/* ** FUNCIONES VARIAS ** */\r\n\t// podriamos sacarlas a otro provider\r\n\tdayDiff(firstDate: Date, secondDate: Date) {\r\n\t\tconst date2 = secondDate;\r\n\t\tconst date1 = firstDate;\r\n\t\tif (date2 !== undefined && date2 !== null && date1 !== undefined && date1 !== null) {\r\n\t\t\tconst timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n\t\t\tconst diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\t\t\treturn diffDays;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 999;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport class RutaSugeridaIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\r\n\tconstructor(rutaSugeridaIdioma?) {\r\n\r\n\t\tif (rutaSugeridaIdioma) {\r\n\t\t\tthis.Codigo = rutaSugeridaIdioma.IDIOMA.Codigo ? rutaSugeridaIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = rutaSugeridaIdioma.Nombre ? rutaSugeridaIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = rutaSugeridaIdioma.Descripcion ? rutaSugeridaIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/RutaSugerida.ts","// import { SeccionPlano } from '../domain/seccionPlano';\r\nimport { SeccionPlano } from 'interiores-mapa';\r\nimport { Constantes } from './constantes';\r\n\r\nexport class SeccionFormulario {\r\n\r\n\tId: string;\r\n\tIdAlternativo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tColor: any;\r\n\tColorHover: any;\r\n\tIdAla: string;\r\n\tIdiomas: Map = new Map();\r\n\tpotenciaTx: Number;\r\n\tFechaAlta: Date;\r\n\tFechaBaja: Date;\r\n\r\n\tSECCION_PLANO: SeccionPlano = SeccionPlano.createInstance();\r\n\r\n\tTIPOLOGIAS_SECCION: any[];\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\tTIPO: string;\r\n\tnumeroCONTENIDOS: Number = 0;\r\n\tnivelSeccion: Number = 0;\r\n\r\n\t// constructor(seccionPlano?: SeccionPlano, idAla?: string) {\r\n\tconstructor( idAla?: string ) {\r\n\t\tthis.IdAla = idAla;\r\n\r\n\t\tthis.Id = '';\r\n\t\tthis.IdAlternativo = '';\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Descripcion = '';\r\n\t\tthis.Color = {r: 0, g: 0, b: 0, a: 0 };\r\n\t\tthis.ColorHover = '';\r\n\t\tthis.FechaAlta = null;\r\n\t\tthis.FechaBaja = null;\r\n\r\n\t\tthis.SECCION_PLANO = SeccionPlano.createInstance();\r\n\t\tthis.TIPOLOGIAS_SECCION = [];\r\n\t\tthis.ENTIDAD = {};\r\n\t}\r\n\r\n\tfromSeccionPlano(seccionPlano: SeccionPlano): SeccionFormulario{\r\n\t\tthis.SECCION_PLANO = seccionPlano;\r\n\r\n\t\tif (this.SECCION_PLANO.ENTIDAD) {\r\n\t\t\treturn this.fromENTIDAD(this.SECCION_PLANO.ENTIDAD);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tfromENTIDAD(ENTIDAD: any): SeccionFormulario{\r\n\t\tthis.ENTIDAD = ENTIDAD;\r\n\r\n\t\tthis.Id = this.ENTIDAD.Id;\r\n\t\tthis.IdAlternativo = this.ENTIDAD.IdAlternativo;\r\n\t\tthis.Nombre = this.ENTIDAD.Nombre;\r\n\t\tthis.Descripcion = this.ENTIDAD.Descripcion;\r\n\t\tthis.FechaAlta = ENTIDAD.FechaAlta;\r\n\t\tthis.FechaBaja = ENTIDAD.FechaBaja;\r\n\r\n\t\tlet stringColor = this.ENTIDAD.Color;\r\n\t\tif (stringColor) {\r\n\t\t\tconst arrayColor = stringColor.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3] };\r\n\t\t\tthis.Color = objetoColor;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tstringColor = Constantes.seccionFill; // 'rgba(64, 255, 0, 1)';\r\n\t\t\tconst arrayColor = stringColor.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3] };\r\n\t\t\tthis.Color = objetoColor;\r\n\t\t}\r\n\r\n\t\tthis.ColorHover = this.ENTIDAD.ColorHover;\r\n\t\tthis.TIPO = this.ENTIDAD .constructor.name.split('_', 2)[0];\r\n\t\tif (this.ENTIDAD.CONTENIDOS) {\r\n\t\t\tthis.numeroCONTENIDOS = this.ENTIDAD.CONTENIDOS.length;\r\n\t\t}\r\n\r\n\t\tthis.ENTIDAD.IDIOMAS.forEach(element => {\r\n\t\t\tconst aux = new SeccionIdiomaFormulario(element);\r\n\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t});\r\n\r\n\t\tif (this.ENTIDAD.TIPOLOGIAS && this.ENTIDAD.TIPOLOGIAS.length > 0) {\r\n\t\t\tthis.ENTIDAD.TIPOLOGIAS.forEach(element => {\r\n\t\t\t\tthis.TIPOLOGIAS_SECCION.push(element.TIPOLOGIA_SECCION);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n}\r\n\r\nexport class SeccionIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\r\n\tconstructor(seccionIdioma?) {\r\n\r\n\t\tif (seccionIdioma) {\r\n\t\t\tthis.Codigo = seccionIdioma.IDIOMA.Codigo ? seccionIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = seccionIdioma.Nombre ? seccionIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = seccionIdioma.Descripcion ? seccionIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/SeccionFormulario.ts","import { Constantes } from './constantes';\r\n// Cargamos el import del servicio de traducción de la librería\r\nimport {TranslateService} from 'ng2-translate';\r\n\r\nexport class TipologiaContenidoFormulario {\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNombre: string;\r\n\tIdiomas: Map;\r\n\tTipo = '';\r\n\tBuscable= false;\r\n\tVisibleEnMapa= false;\r\n\tUbicarAnonimos= false;\r\n\tPantallaPrincipal= Number;\r\n\tMostrableEnDirectorioDeContenidos= false;\r\n\tVisibilidadPorDefecto = true;\r\n\tIconoRepresentacion = '';\r\n\tVisibilidadLabelMapa = '';\r\n\tVisibilidadIconoMapa = '';\r\n\tVisibilidadListaCOntenidosSeccion = '';\r\n\tanchorPoint: AnchorPoint;\r\n\tVisibilidadMenuLateral = false;\r\n\tVisibilidadListaContenidosWeb = true;\r\n\tTipoUbicacion = null;\r\n\tActiva = true;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(\r\n\t\tprivate translate: TranslateService,\r\n\t\ttipologia?) \r\n\t{\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Id = '';\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.Tipo = '';\r\n\t\tthis.Buscable = false;\r\n\t\tthis.VisibleEnMapa = false;\r\n\t\tthis.UbicarAnonimos = false;\r\n\t\tthis.MostrableEnDirectorioDeContenidos = false;\r\n\t\tthis.VisibilidadPorDefecto = true;\r\n\t\tthis.IconoRepresentacion = '';\r\n\t\tthis.Idiomas = new Map();\r\n\t\tthis.VisibilidadLabelMapa = '';\r\n\t\tthis.VisibilidadIconoMapa = '';\r\n\t\tthis.VisibilidadListaCOntenidosSeccion = '';\r\n\t\tthis.anchorPoint = new AnchorPoint();\r\n\t\tthis.VisibilidadMenuLateral = false;\r\n\t\tthis.VisibilidadListaContenidosWeb = true;\r\n\t\tthis.TipoUbicacion = new TipoLocalizacion(this.translate);;\r\n\t\tthis.Activa = true;\r\n\t\t\r\n\r\n\t\tif (tipologia) {\r\n\r\n\t\t\tthis.ENTIDAD = tipologia;\r\n\t\t\tthis.Id = tipologia.Id;\r\n\t\t\tthis.Nombre = tipologia.Nombre;\r\n\t\t\tthis.Tipo = tipologia.Tipo;\r\n\t\t\tthis.Buscable = tipologia.Buscable;\r\n\t\t\tthis.VisibleEnMapa = tipologia.VisibleEnMapa;\r\n\t\t\tthis.UbicarAnonimos = tipologia.UbicarAnonimos;\r\n\t\t\tthis.PantallaPrincipal = tipologia.PantallaPrincipal;\r\n\t\t\tthis.MostrableEnDirectorioDeContenidos = tipologia.MostrableEnDirectorioDeContenidos;\r\n\t\t\tthis.VisibilidadPorDefecto = tipologia.VisibilidadPorDefecto;\r\n\t\t\tthis.IconoRepresentacion = tipologia.IconoRepresentacion;\r\n\t\t\tthis.VisibilidadLabelMapa = tipologia.VisibilidadLabelMapa;\r\n\t\t\tthis.VisibilidadIconoMapa = tipologia.VisibilidadIconoMapa;\r\n\t\t\tthis.VisibilidadListaCOntenidosSeccion = tipologia.VisibilidadListaCOntenidosSeccion;\r\n\t\t\tthis.anchorPoint = new AnchorPoint(tipologia.AnchorPoint);\r\n\t\t\t\r\n\t\t\tthis.VisibilidadMenuLateral = tipologia.VisibilidadMenuLateral;\r\n\t\t\tthis.VisibilidadListaContenidosWeb = tipologia.VisibilidadListaContenidosWeb;\r\n\t\t\tthis.TipoUbicacion = new TipoLocalizacion(this.translate, tipologia.TipoUbicacion);\r\n\t\t\tthis.Activa = tipologia.Activa;\r\n\r\n\t\t\ttipologia.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new TipologiaContenidoIdiomaFormulario(element);\r\n\t\t\t\tif (element.IDIOMA) {\r\n\t\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nexport class AnchorPoint {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\r\n\tconstructor(anchorValue?: string) {\r\n\t\tif (anchorValue) {\r\n\t\t\tthis.value = anchorValue;\r\n\t\t\tthis.label = anchorValue;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.value = Constantes.bottom_right;\r\n\t\t\tthis.label = Constantes.bottom_right;\r\n\t\t}\r\n\t }\r\n}\r\n\r\nexport class TipoLocalizacion {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\r\n\tconstructor(private translate: TranslateService, locationValue?: string) {\r\n\t\tif (locationValue) {\r\n\t\t\tthis.value = locationValue;\r\n\t\t\tthis.label = this.translate.instant('Formularios.' + locationValue);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.value = 'ESTATICO';\r\n\t\t\tthis.label = this.translate.instant('Formularios.' + 'ESTATICO');\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nexport class TipologiaContenidoIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\r\n\r\n\tconstructor(espacioIdioma?) {\r\n\r\n\t\tif (espacioIdioma && espacioIdioma.IDIOMA) {\r\n\t\t\tthis.Codigo = espacioIdioma.IDIOMA.Codigo ? espacioIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/TipologiaContenidoFormulario.ts","import { Constantes } from './constantes';\r\n// Cargamos el import del servicio de traducción de la librería\r\nimport {TranslateService} from 'ng2-translate';\r\n\r\nexport class TipologiaSeccionFormulario {\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\tIdAlternativo: string;\r\n\tIdiomas: Map;\r\n\tTipo = '';\r\n\tIconoRepresentacion = '';\r\n\tanchorPoint: AnchorPoint;\r\n\tActiva = true;\r\n\tSecciones: any;\r\n\r\n\t// Objeto de Breeze\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(\r\n\t\tprivate translate: TranslateService,\r\n\t\ttipologia?) \r\n\t{\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Id = '';\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.Tipo = '';\r\n\t\tthis.IconoRepresentacion = '';\r\n\t\tthis.Idiomas = new Map();\r\n\t\tthis.IdAlternativo = '';\r\n\t\tthis.anchorPoint = new AnchorPoint();\r\n\t\tthis.Activa = true;\r\n\t\tthis.Secciones = [];\r\n\t\t\r\n\r\n\t\tif (tipologia) {\r\n\r\n\t\t\tthis.ENTIDAD = tipologia;\r\n\t\t\tthis.Id = tipologia.Id;\r\n\t\t\tthis.Nombre = tipologia.Nombre;\r\n\t\t\tthis.Descripcion = tipologia.Descripcion;\r\n\t\t\tthis.IdAlternativo = tipologia.IdAlternativo;\r\n\t\t\tthis.Tipo = tipologia.Tipo;\r\n\t\t\tthis.IconoRepresentacion = tipologia.IconoRepresentacion;\r\n\t\t\tthis.anchorPoint = new AnchorPoint(tipologia.AnchorPoint);\r\n\t\t\tthis.Activa = tipologia.Activa;\r\n\t\t\tthis.Secciones = tipologia.SECCIONES;\r\n\t\t\ttipologia.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new TipologiaSeccionIdiomaFormulario(element);\r\n\t\t\t\tif (element.IDIOMA) {\r\n\t\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nexport class AnchorPoint {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\r\n\tconstructor(anchorValue?: string) {\r\n\t\tif (anchorValue) {\r\n\t\t\tthis.value = anchorValue;\r\n\t\t\tthis.label = anchorValue;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.value = Constantes.bottom_right;\r\n\t\t\tthis.label = Constantes.bottom_right;\r\n\t\t}\r\n\t }\r\n}\r\n\r\n\r\nexport class TipologiaSeccionIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\r\n\r\n\tconstructor(espacioIdioma?) {\r\n\r\n\t\tif (espacioIdioma && espacioIdioma.IDIOMA) {\r\n\t\t\tthis.Codigo = espacioIdioma.IDIOMA.Codigo ? espacioIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/TipologiaSeccionFormulario.ts","export class UrlDescargaApp {\r\n\r\n\tIdApp: string;\r\n\tTipo: string;\r\n\tUrl_android: string;\r\n\tUrl_ios: string;\r\n\r\n\tconstructor(urlDescarga?) {\r\n\r\n\t\tif (urlDescarga) {\r\n\t\t\tthis.IdApp = urlDescarga.IdApp;\r\n\t\t\tthis.Tipo = urlDescarga.Tipo;\r\n\t\t\tthis.Url_android = urlDescarga.Url_android;\r\n\t\t\tthis.Url_ios = urlDescarga.Url_ios;\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n\r\nexport class AlaIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tNombre: string;\r\n\tDescripcion: string;\r\n\r\n\tconstructor(alaIdioma?) {\r\n\r\n\t\tif (alaIdioma) {\r\n\t\t\tthis.Codigo = alaIdioma.IDIOMA.Codigo ? alaIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Nombre = alaIdioma.Nombre ? alaIdioma.Nombre : '';\r\n\t\t\tthis.Descripcion = alaIdioma.Descripcion ? alaIdioma.Descripcion : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Nombre = '';\r\n\t\t\tthis.Descripcion = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/UrlDescargaApp.ts","export class UsuarioFormulario {\r\n\t// Alimentar los inputs\r\n\tId: string;\r\n\tNombre: string;\r\n\tLogin: string;\r\n\tContrasenia: string;\r\n\tEmail: string;\r\n\r\n\tFechaAlta: string;\r\n\tFechaBaja: string;\r\n\tTipo: string; // Tipo de Perfil\r\n\tNombreTipo: string;\r\n\tActivo: boolean;\r\n\r\n\t// Objeto de Breeze\r\n\tPERFIL: any;\r\n\tENTIDAD: any;\r\n\r\n\tconstructor(usuario?) {\r\n\t\tthis.Id = '';\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Login = '';\r\n\t\tthis.Contrasenia = '';\r\n\t\tthis.ENTIDAD = {};\r\n\t\tthis.PERFIL = {};\r\n\t\tthis.Tipo = '';\r\n\t\tthis.NombreTipo = '';\r\n\r\n\t\tif (usuario) {\r\n\r\n\t\t\tthis.ENTIDAD = usuario;\r\n\t\t\tthis.PERFIL = usuario.PERFIL;\r\n\t\t\tthis.Id = usuario.Id;\r\n\t\t\tthis.Nombre = usuario.Nombre;\r\n\t\t\tthis.Login = usuario.Login;\r\n\t\t\tthis.Email = usuario.Email;\r\n\t\t\tthis.Contrasenia = usuario.Contrasenia;\r\n\t\t\tthis.FechaAlta = usuario.FechaAlta;\r\n\t\t\tthis.FechaBaja = usuario.FechaBaja;\r\n\r\n\t\t\tconst now = new Date();\r\n\t\t\tif (usuario.FechaBaja !== undefined && usuario.FechaBaja !== null) {\r\n\r\n\t\t\t\tif ( now.getTime() > usuario.FechaBaja.getTime()) {\r\n\t\t\t\t\tthis.Activo = false;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.Activo = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.Activo = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (usuario.PERFIL) {\r\n\t\t\t\tthis.Tipo = usuario.PERFIL.Tipo;\r\n\t\t\t\tthis.NombreTipo = usuario.PERFIL.Nombre;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/UsuarioFormulario.ts","import { AlaFormulario } from './AlaFormulario';\r\nimport { NivelFormulario } from './NivelFormulario';\r\nimport { Compass } from './compass';\r\nimport { Contenido } from './Contenido';\r\nimport { ContenidoPlano } from '../../../node_modules/interiores-mapa/dist';\r\nimport { Constantes } from './constantes';\r\n\r\nexport class Vertical {\r\n\r\n Nombre: string;\r\n Plantas: Planta[];\r\n NumeroContenidos = 0; // Suma del numero de contenidos de las plantas de la vertical\r\n\r\n\tconstructor() {\r\n this.Nombre = '';\r\n this.Plantas = [];\r\n }\r\n\r\n fromALA(ENTIDAD: any){\r\n \r\n if (ENTIDAD) {\r\n const aux = new Planta().fromALA(ENTIDAD);\r\n this.Plantas.push(aux);\r\n this.Nombre = ENTIDAD.Nomobre;\r\n }\r\n else{\r\n \r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n fromESPACIO(ENTIDAD: any){\r\n console.log(ENTIDAD)\r\n if (ENTIDAD) {\r\n this.Nombre = ENTIDAD.ESPACIO.Nombre;\r\n }\r\n\r\n return this;\r\n\r\n }\r\n \r\n}\r\n\r\n\r\nexport class Planta {\r\n\r\n Nombre: String;\r\n Ala: AlaFormulario;\r\n Nivel: NivelFormulario;\r\n Contenidos: Contenido[] = [];\r\n\r\n\tzoomLevels: any[];\r\n\tcurrentZoomLevel: number;\r\n\tpathSvgPlano: any;\r\n\tpathPlano: any;\r\n\tcompass: any;\r\n\r\n\tconstructor() {\r\n this.Contenidos = [];\r\n }\r\n\r\n fromALA(ENTIDAD: any){\r\n if (ENTIDAD) {\r\n const aux = new AlaFormulario(ENTIDAD);\r\n this.Ala = aux;\r\n this.pathPlano = this.Ala.RutaImagen;\r\n this.Nombre = this.Ala.Nomobre;\r\n this.Nivel = new NivelFormulario(ENTIDAD.NIVEL);\r\n }\r\n else{\r\n \r\n }\r\n\r\n return this;\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nexport class VerticalManager {\r\n \r\n\tconstructor() {\r\n return this;\r\n }\r\n\r\n public generarVerticalesFromNIVELES(niveles): Vertical[]{\r\n const verticales: Vertical[] = [];\r\n if (niveles) {\r\n console.log(niveles)\r\n niveles.forEach(nivel => {\r\n if (nivel.ALAS) {\r\n\r\n nivel.ALAS.forEach(ala => {\r\n \r\n let vertical = verticales.find( v => v.Nombre === ala.Nomobre);\r\n const planta = new Planta().fromALA(ala);\r\n\r\n if (vertical) {\r\n vertical.Plantas.push(planta);\r\n \r\n const index = verticales.indexOf(vertical);\r\n verticales[index] = vertical;\r\n }\r\n else {\r\n vertical = new Vertical().fromALA(ala);\r\n verticales.push(vertical);\r\n }\r\n\r\n }); \r\n }\r\n\r\n });\r\n }\r\n\r\n return verticales;\r\n }\r\n\r\n public generarVerticalesFromESPACIO(niveles): Vertical[]{\r\n const verticales: Vertical[] = [];\r\n if (niveles) {\r\n \r\n niveles.forEach(nivel => {\r\n if (nivel.ALAS) {\r\n\r\n nivel.ALAS.forEach(ala => {\r\n\r\n let vertical = verticales.find( v => v.Nombre === nivel.ESPACIO.Nombre);\r\n \r\n\r\n const planta = new Planta().fromALA(ala);\r\n\r\n if (vertical) {\r\n vertical.Plantas.push(planta);\r\n const index = verticales.indexOf(vertical);\r\n verticales[index] = vertical;\r\n }\r\n else {\r\n vertical = new Vertical().fromESPACIO(nivel);\r\n vertical.Plantas.push(planta);\r\n verticales.push(vertical);\r\n }\r\n\r\n });\r\n \r\n }\r\n \r\n });\r\n }\r\n\r\n return verticales;\r\n }\r\n \r\n // Asignar contenidos a Plantas y refrescar vertical.NumeroContenidos\r\n public asignarContenidosAVerticales(verticales: Vertical[], contenidos: Contenido[], ordenNoVertical){\r\n const verticalesAux = verticales;\r\n verticales.forEach(vertical => {\r\n vertical.NumeroContenidos = 0;\r\n vertical.Plantas.forEach(planta => {\r\n const contenidosPlanta = contenidos.filter( c => c.ALA_PLANO.Id === planta.Ala.Id);\r\n planta.Contenidos = contenidosPlanta;\r\n vertical.NumeroContenidos += contenidosPlanta.length;\r\n });\r\n if(ordenNoVertical){\r\n vertical.Plantas.sort( (p1, p2) => p2.Nivel.NivelVertical - p1.Nivel.NivelVertical);\r\n }else{\r\n vertical.Plantas.sort( (p1, p2) => p1.Nivel.NivelVertical - p2.Nivel.NivelVertical);\r\n } \r\n \r\n });\r\n return verticalesAux;\r\n }\r\n\r\n public getContenidosPlano(planta: Planta): ContenidoPlano[]{\r\n const contenidosPlano: ContenidoPlano[] = [];\r\n\r\n planta.Contenidos.forEach(element => {\r\n const contP = this.setContenidoPlano(element);\r\n contenidosPlano.push(contP);\r\n });\r\n\r\n return contenidosPlano;\r\n\r\n }\r\n\r\n private setContenidoPlano(contenido): ContenidoPlano{\r\n\t\ttry {\r\n\t\t\tlet contenidoPlano;\r\n\t\t\tif (contenido.TIPOLOGIA_CONTENIDO) {\r\n\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, contenido.TIPOLOGIA_CONTENIDO.IconoRepresentacion, [], contenido.ALA_PLANO.IconoContenidoScale);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst icono = 'assets/planos/iconos/' + 'wifi.png';\r\n\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, icono, [], contenido.ALA_PLANO.IconoContenidoScale);\r\n\t\t\t\tconsole.log('5.- NO TIPOLOGIA NODO');\r\n\t\t\t}\r\n\t\t\tcontenidoPlano.ENTIDAD = contenido.ENTIDAD;\r\n\r\n contenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n contenidoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n contenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n contenidoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n contenidoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n contenidoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n contenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n contenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n contenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n contenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n contenidoPlano.setIconAlign(contenido.TIPOLOGIA_CONTENIDO.AnchorPoint);\r\n \r\n const alineacion = contenido.TIPOLOGIA_CONTENIDO.AnchorPoint;\r\n const width = parseInt(Constantes.contenidoIconWidth, 0);\r\n if (alineacion === 'top-left') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + width);\r\n contenidoPlano.setLabelYoffset(30);\r\n }\r\n else if (alineacion === 'top-center') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + (width / 2));\r\n contenidoPlano.setLabelYoffset(30);\r\n }\r\n else if (alineacion === 'top-right') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10);\r\n contenidoPlano.setLabelYoffset(30);\r\n }\r\n else if (alineacion === 'center-left') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + width);\r\n contenidoPlano.setLabelYoffset(-15);\r\n }\r\n else if (alineacion === 'center-center') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + (width / 2));\r\n contenidoPlano.setLabelYoffset(-15);\r\n }\r\n else if (alineacion === 'center-right') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10);\r\n contenidoPlano.setLabelYoffset(-15);\r\n }\r\n else if (alineacion === 'bottom-left') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + width);\r\n contenidoPlano.setLabelYoffset(-30);\r\n }\r\n else if (alineacion === 'bottom-center') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10 + (width / 2));\r\n contenidoPlano.setLabelYoffset(-30);\r\n }\r\n else if (alineacion === 'bottom-right') {\r\n contenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n contenidoPlano.setLabelXoffset(10);\r\n contenidoPlano.setLabelYoffset(-30);\r\n }\r\n \r\n contenidoPlano.setLabel(contenido.Titulo);\r\n contenidoPlano.setLabelColor(Constantes.labelColor);\r\n contenidoPlano.setLabelFontFamily(Constantes.labelFontFamily);\r\n contenidoPlano.setLabelFontSize(Constantes.labelFontSize);\r\n\r\n\t\t\treturn contenidoPlano;\r\n\t\t}\r\n\t\tcatch (ex) {\r\n\t\t\tconsole.log(ex);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/Vertical.ts","export class WebExterna {\r\n\tIdWebExterna: string;\r\n\tNombre: string;\r\n\tImagen: any;\r\n\tUrl: string;\r\n\tENTIDAD: any;\r\n\r\n\tIdiomas: Map = new Map();\r\n\r\n\tconstructor(webExterna?) {\r\n\t\tthis.Nombre = '';\r\n\t\tthis.Imagen = null;\r\n\t\tthis.Url = '';\r\n\t\tthis.IdWebExterna = Guid.newGuid();\r\n\r\n\t\tif (webExterna) {\r\n\t\t\tthis.Nombre = webExterna.Nombre;\r\n\t\t\tthis.Imagen = webExterna.Imagen;\r\n\t\t\tthis.Url = webExterna.Url;\r\n\t\t\tthis.IdWebExterna = webExterna.Id;\r\n\t\t\tthis.ENTIDAD = webExterna;\r\n\r\n\t\t\twebExterna.IDIOMAS.forEach(element => {\r\n\t\t\t\tconst aux = new ContenidoWebExternaIdiomaFormulario(element);\r\n\t\t\t\tthis.Idiomas.set(element.IDIOMA.Codigo, aux);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n}\r\n\r\nexport class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n // tslint:disable-next-line:no-bitwise\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n\r\nexport class ContenidoWebExternaIdiomaFormulario {\r\n\r\n\tCodigo: string;\r\n\tTexto: string;\r\n\t// TextoContenidos: string;\r\n\r\n\tconstructor(conexionNodoIdioma?) {\r\n\r\n\t\tif (conexionNodoIdioma) {\r\n\t\t\tthis.Codigo = conexionNodoIdioma.IDIOMA.Codigo ? conexionNodoIdioma.IDIOMA.Codigo : '';\r\n\t\t\tthis.Texto = conexionNodoIdioma.Texto ? conexionNodoIdioma.Texto : '';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.Codigo = '';\r\n\t\t\tthis.Texto = '';\r\n\t\t}\r\n\r\n\t }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/WebExterna.ts","export class Compass {\r\n\twidth: number;\r\n\theight: number;\r\n\trotation: number;\r\n\tcompass_group: any;\r\n\t\r\n\tcreate(container: any) {\r\n\t\tvar radius = this.width / 4;\r\n\t\tvar interact = radius * 0.7;\r\n\t\tvar pad = 20;\r\n\r\n\t\tthis.compass_group = container.append(\"g\");\r\n\t\tthis.compass_group.attr(\"transform\", \"translate(50, 50) \");\r\n\r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc-minor\").attr(\"cx\", this.width/2 - interact).attr(\"cy\", this.height/2).attr(\"r\", interact);\r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc-minor\").attr(\"cx\", this.width/2).attr(\"cy\", this.height/2 + interact).attr(\"r\", interact);\r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc-minor\").attr(\"cx\", this.width/2 ).attr(\"cy\", this.height/2 - interact).attr(\"r\", interact); \r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc-minor\").attr(\"cx\", this.width/2 + interact).attr(\"cy\", this.height/2).attr(\"r\", interact);\r\n\r\n\t\t// build the cardinal winds\r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc\").attr(\"cx\", this.width/2 - interact).attr(\"cy\", this.height/2 - interact).attr(\"r\", radius);\r\n \r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc\").attr(\"cx\", this.width/2 + interact).attr(\"cy\", this.height/2 - interact).attr(\"r\", radius);\r\n \r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc\").attr(\"cx\", this.width/2 - interact).attr(\"cy\", this.height/2 + interact).attr(\"r\", radius);\r\n \r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc\").attr(\"cx\", this.width/2 + interact).attr(\"cy\", this.height/2 + interact).attr(\"r\", radius);\r\n\r\n\t\t// build the outer circle\r\n\t\tthis.compass_group.append(\"circle\").attr(\"class\", \"arc-heavy\").attr(\"cx\", this.width/2).attr(\"cy\", this.height/2).attr(\"r\", this.width / 2);\r\n \r\n\t\t// labels\r\n\t\tthis.compass_group.append(\"text\").attr(\"class\",\"direction\").attr(\"y\", pad).attr(\"x\", this.width/2).text(\"N\");\r\n\t\t\r\n\t\treturn this.compass_group;\r\n\t}\r\n\r\n\trotate(degrees) {\r\n\t\tthis.rotation = degrees;\r\n\t\tthis.compass_group.attr('transform', 'translate(50, 50) rotate(' + this.rotation + ', ' + (this.width / 2) + ', ' + (this.height / 2) + ')');\r\n\t} \r\n\r\n constructor(nWidth: number, nHeight: number, nRotation: number) {\r\n \tthis.width = nWidth;\r\n \tthis.height = nHeight;\r\n \tthis.rotation = nRotation;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/compass.ts","import { environment } from \"../../environments/environment\";\r\n\r\nexport class Constantes {\r\n\r\n\t// Variables dinámicas para Logo y otros\r\n\tstatic LOGO: string = environment.logo;\r\n\tstatic TITULO_LOGO: string = environment.tituloLogo;\r\n\tstatic TITLE: string = environment.title;\r\n\tstatic ICON: string = environment.icon;\r\n\tstatic COLOR_TOPBAR: string = environment.colorTopBar;\r\n\tstatic LOGO_TOPBAR: string = environment.logoTopBar;\r\n\r\n\t// Roles\r\n\tstatic readonly SUPER_ADMINISTRADOR = 'SUPER_ADMINISTRADOR';\r\n\tstatic readonly ADMINISTRADOR_ENTIDAD = 'ADMINISTRADOR_ENTIDAD';\r\n\tstatic readonly GESTOR_ESPACIOS = 'GESTOR_ESPACIOS';\r\n\tstatic readonly GESTOR_CONTENIDO = 'GESTOR_CONTENIDO';\r\n\tstatic readonly SOLO_NOTIFICACIONES = 'SOLO_NOTIFICACIONES';\r\n\tstatic readonly GESTOR_CONTENIDO_SOLO_LECTURA = 'GESTOR_CONTENIDO_SOLO_LECTURA';\r\n\r\n\tstatic readonly CIUDADANO = 'CIUDADANO';\r\n\r\n\tstatic readonly DIAS_PROXIMOS_EXPIRAR = 30;\r\n\r\n\t// AVISO (Notificacion)\r\n\t// 0.- Instantanea, 1.- Programada\r\n\tstatic readonly NOTIFICACION_INSTANTANEA = 0;\r\n\tstatic readonly NOTIFICACION_PROGRAMADA = 1;\r\n\r\n\t// Tipos Programados 0.- Entrando, 1.- Saliendo\r\n\tstatic readonly ENVIAR_AL_ENTRAR = 0;\r\n\tstatic readonly ENVIAR_AL_SALIR = 1;\r\n\r\n\t// Tipos Instantaneoss\r\n\tstatic readonly ESTAN_AHORA = 2;\r\n\tstatic readonly VISITADO_ALGUNA_VEZ = 3;\r\n\tstatic readonly EXPLORADO_ALGUNA_VEZ = 4;\r\n\tstatic readonly TIENEN_LA_APP = 5;\r\n\r\n\t// Guias\r\n\r\n\tstatic readonly Guia_de_Refencia_de_estilos = environment.urlPublicacionFija + '/assets/itsoft/guias/Guia_de_Refencia_de_estilos.pdf';\r\n\tstatic readonly Guia_de_Refencia_de_estilos_tipotolia = environment.urlPublicacionFija + '/assets/itsoft/guias/Guia_de_Refencia_de_estilos_tipotolia.pdf';\r\n\tstatic readonly Tipologia_Plantilla = environment.urlPublicacionFija + '/assets/itsoft/guias/tipologia-plantilla.svg';\r\n\tstatic readonly Guia_de_Refencia_de_exportacion = environment.urlPublicacionFija + '/assets/itsoft/guias/Plantilla_Importar_Contenido.xlsx';\r\n\r\n\r\n\t// ACTIVOS\r\n\tstatic readonly TIPO_LOCALIZACION_ACTIVOS = {\r\n\t\tESTATICO: 0,\r\n\t\tDIRECTA: 1,\r\n\t\tINDIRECTA: 2\r\n\t};\r\n\r\n\t// AUTORIZADO POR UBICACION\r\n\tstatic readonly VISIBLE_SI_UBICADO_EN =\r\n\t{\r\n\t\tSIEMPRE: 0,\r\n\t\tESPACIO: 1,\r\n\t\tSECCION: 2,\r\n\t\tNODO: 3\r\n\t};\r\n\r\n\t// VALORES POR DEFECTO\r\n\tstatic readonly MAX_PESO = 2147483647;\r\n\tstatic readonly PESO_DEFAULT = 999999;\r\n\tstatic readonly PESO = 100;\r\n\tstatic readonly X_COORDENADA = -999999;\r\n\tstatic readonly Y_COORDENADA = -999999;\r\n\tstatic readonly ZOOM_MINIMO = 1;\r\n\tstatic readonly ZOOM_MAXIMO = 5;\r\n\t\r\n\t//Tipo Foto\r\n\tstatic readonly TIPO_FOTO =\r\n {\r\n PRINCIPAL: 0,\r\n CARRUSEL: 1\r\n }\r\n\r\n\tstatic readonly AZUL = 'rgba(0,172,255,1)';\r\n\tstatic readonly VERDE = 'rgba(64, 255, 0, 1)';\r\n\tstatic readonly HOVER = 'rgba(150, 255, 115, 0.5)';\r\n\r\n\t// nodoPlano\r\n\tstatic readonly nodoSymbolStroke = 'rgba(120,120,120,1)';\r\n\tstatic readonly nodoSymbolFill = 'rgba(255,255,255,0.5)';\r\n\tstatic readonly nodoSymbolStrokeWidth = '2';\r\n\r\n\tstatic readonly nodoSectionHoverFill = 'rgba(255,255,0,1)';\r\n\tstatic readonly nodoSectionHoverStroke = 'rgba(0,196,0,0.5)';\r\n\r\n\tstatic readonly nodoSymbolSize = 35;\r\n\tstatic readonly nodoIconHeight = '150';\r\n\tstatic readonly nodoIconWidth = '150';\r\n\r\n\tstatic readonly nodosymbolHoverStroke = 'rgba(150, 255, 115, 0.5)';\r\n\tstatic readonly nodosymbolHoverFill = 'rgba(150, 255, 115, 0.5)';\r\n\r\n\tstatic readonly nodoSymbolStroke_SELECT = 'rgba(64, 255, 0,1)';\r\n\tstatic readonly nodoSymbolFill_SELECT = 'rgba(64, 255, 0,0.5)';\r\n\tstatic readonly nodoSymbolStrokeWidth_SELECT = '4';\r\n\tstatic readonly nodoSectionHoverFill_SELECT = 'rgba(64, 255, 0,0,1)';\r\n\tstatic readonly nodoSectionHoverStroke_SELECT = 'rgba(64, 255, 0,0.5)';\r\n\tstatic readonly nodoSymbolSize_SELECT = 35;\r\n\tstatic readonly nodoIconHeight_SELECT = '150';\r\n\tstatic readonly nodoIconWidth_SELECT= '150';\r\n\r\n\r\n\tstatic readonly nodoBeconAsociadoHoverFill = 'rgba(255,255,0,0.8)';\r\n\tstatic readonly nodoBeconAsociadoHoverStroke = 'rgba(0,196,0,0.25)';\r\n// seccionPlano\r\n\r\n\t// Relleno Seccion\r\n\tstatic readonly seccionFill = 'rgba(184,219,184,0.4)'; \t\t\t\t// Reposo\r\n\tstatic readonly seccionHoverFill = 'rgba(150, 255, 115, 0.4)'; \t\t// Hover\r\n\tstatic readonly seccionFill_SELECT = 'rgba(64, 255, 0,0.5)';\t\t// Select\r\n\r\n\t// Arista Seccion\r\n\tstatic readonly seccionStroke = 'rgba(184,219,184,0.4)'; \t\t\t\t// Reposo\r\n\tstatic readonly seccionHoverStroke = 'rgba(64, 255, 0, 0.4)';\t\t\t// Hover\r\n\tstatic readonly seccionStroke_SELECT = 'rgba(64, 255, 0, 0.4)';\t\t// Select\r\n\r\n\t// Ancho\r\n\tstatic readonly seccionStrokeWidth = '5'; \t\t\t\t\t\t\t// Reposo\r\n\tstatic readonly seccionStrokeWidth_SELECT = '5';\t\t\t\t\t// Select\r\n\r\n\t// ¿?¿?¿?\r\n\tstatic readonly seccionHoverFill_SELECT = 'rgba(64, 255, 0, 0, 1)';\r\n\tstatic readonly seccionHoverStroke_SELECT = 'rgba(64, 255, 0, 0.5)';\r\n\r\n// conexionPlano\r\n\tstatic readonly conexionFill = 'rgba(0,172,255,1)';\r\n\tstatic readonly conexionStroke = 'rgba(0,172,255,1)';\r\n\tstatic readonly conexionStrokeWidth = '10';\r\n\r\n\tstatic readonly conexionsymbolHoverStroke = 'rgba(150, 255, 115, 0.5)';\r\n\tstatic readonly conexionsymbolHoverFill = 'rgba(150, 255, 115, 0.5)';\r\n\r\n\tstatic readonly conexionsymbolHoverStroke_SELECT = 'rgba(150, 255, 115, 0.5)';\r\n\tstatic readonly conexionsymbolHoverStroke_CORTADO = 'rgba(150, 255, 115, 0.5)';\r\n\r\n\tstatic readonly conexionFill_SELECT = 'rgba(64, 255, 0, 1)';\r\n\tstatic readonly conexionStroke_SELECT = 'rgba(64, 255, 0, 1)';\r\n\tstatic readonly conexionStrokeWidth_SELECT = '15';\r\n\r\n\tstatic readonly conexionFill_CORTADO = 'rgba(255,128,128,1)';\r\n\tstatic readonly conexionStroke_CORTADO = 'rgba(255,128,128,1)';\r\n\tstatic readonly conexionStrokeWidth_CORTADO = '10';\r\n\r\n// contenidoPlano\r\n\tstatic readonly contenidoSymbolStroke = 'rgba(0,0,0,0)';\r\n\tstatic readonly contenidoSymbolFill = 'rgba(0,0,0,0)';\r\n\tstatic readonly contenidoSymbolStrokeWidth = '5';\r\n\tstatic readonly contenidoSymbolSize = 45;\r\n\tstatic readonly contenidoSectionHoverFill = 'rgba(255,255,0,0.5)';\r\n\tstatic readonly contenidoSectionHoverStroke = 'rgba(0,196,0,0.5)';\r\n\tstatic readonly contenidoIconHeight = '100';\r\n\tstatic readonly contenidoIconWidth = '100';\r\n\r\n\tstatic readonly contenidosymbolHoverStroke = 'rgba(150, 255, 115, 0.5)';\r\n\tstatic readonly contenidosymbolHoverFill = 'rgba(150, 255, 115, 0.5)';\r\n\r\n\tstatic readonly contenidoSymbolStroke_SELECT = 'rgba(64, 255, 0,1)';\r\n\tstatic readonly contenidoSymbolFill_SELECT = 'rgba(64, 255, 0,0.5)';\r\n\tstatic readonly contenidoSymbolStrokeWidth_SELECT = '4';\r\n\tstatic readonly contenidoSymbolSize_SELECT = 45;\r\n\tstatic readonly contenidoSectionHoverFill_SELECT = 'rgba(255,255,0,0.5)';\r\n\tstatic readonly contenidoSectionHoverStroke_SELECT = 'rgba(0,196,0,0.5)';\r\n\tstatic readonly contenidoIconHeight_SELECT = '100';\r\n\tstatic readonly contenidoIconWidth_SELECT = '100';\r\n\t// static readonly iconAlignBottomRight = 'bottom-right';\r\n\tstatic readonly labelColor = 'black';\r\n\tstatic readonly labelFontFamily = 'sans-serif';\r\n\tstatic readonly labelTextLeft = 'left'; // 'middle';\r\n\tstatic readonly labelTextMiddle = 'middle'; // 'middle';\r\n\tstatic readonly labelFontSize = '40px';\r\n\r\n\tstatic readonly top_left = 'top-left';\r\n\tstatic readonly top_center = 'top-center';\r\n\tstatic readonly top_right = 'top-right';\r\n\tstatic readonly center_left = 'center-left';\r\n\tstatic readonly center_center = 'center-center';\r\n\tstatic readonly center_right = 'center-right';\r\n\tstatic readonly bottom_left = 'bottom-left';\r\n\tstatic readonly bottom_center = 'bottom-center';\r\n\tstatic readonly bottom_right = 'bottom-right';\r\n\r\n\t// Colores Secciones Historicos\r\n\tstatic readonly White\t= 'rgb(255, 255, 255, 0.8)';\r\n\tstatic readonly Silver\t= 'rgb(192, 192, 192, 0.8)';\r\n\tstatic readonly Gray\t= 'rgb(128, 128, 128, 0.8)';\r\n\tstatic readonly Black\t= 'rgb(0, 0, 0, 0.8)';\r\n\tstatic readonly Red\t\t= 'rgb(255, 0, 0, 0.8)';\r\n\tstatic readonly Maroon\t= 'rgb(128, 0, 0, 0.8)';\r\n\tstatic readonly Yellow\t= 'rgb(255, 255, 0, 0.8)';\r\n\tstatic readonly Olive\t= 'rgb(128, 128, 0, 0.8)';\r\n\tstatic readonly Lime\t= 'rgb(0, 255, 0, 0.8)';\r\n\tstatic readonly Green\t= 'rgb(0, 128, 0, 0.8)';\r\n\tstatic readonly Aqua\t= 'rgb(0, 255, 255, 0.8)';\r\n\tstatic readonly Teal\t= 'rgb(0, 128, 128, 0.8)';\r\n\tstatic readonly Blue\t= 'rgb(0, 0, 255, 0.8)';\r\n\tstatic readonly Navy\t= 'rgb(0, 0, 128, 0.8)';\r\n\tstatic readonly Fuchsia\t= 'rgb(255, 0, 255, 0.8)';\r\n\tstatic readonly Purple\t= 'rgb(128, 0, 128, 0.8)';\r\n\tstatic readonly LightBlue = 'rgb(16, 154, 200, 0.8)';\r\n\tstatic readonly LightBlue2 = 'rgb(16, 154, 200, 0.2)';\r\n\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/constantes.ts","export class LoginDTO {\r\n\tentidad: string;\r\n\tuser: string;\r\n\tpassword: string;\r\n\terror: string;\r\n\r\n\tconstructor() {\r\n \t\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/domain/dto/loginDto.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.Nomobre\\\" (ngModelChange)=\\\"inputChanged('nombre')\\\"\\r\\n\\t\\t pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.Descripcion\\\" (ngModelChange)=\\\"inputChanged('descripcion')\\\"\\r\\n\\t\\t pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.zoomMinimo\\\" (ngModelChange)=\\\"inputChanged('zoomMinimo')\\\" pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.zoomMaximo\\\" (ngModelChange)=\\\"inputChanged('zoomMaximo')\\\" pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.zoomMaximoRuta\\\" (ngModelChange)=\\\"inputChanged('zoomMaximoRuta')\\\" pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.alaSeleccionada.zoomMinimoLabel\\\" (ngModelChange)=\\\"inputChanged('zoomMinimoLabel')\\\" pInputText class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\">\\r\\n\\t\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n

      {{alaSeleccionada.ENTIDAD.RutaImagen}}

      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      {{'Mapas.Aúnporadjuntar' | translate}}

      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioAla.component.html\n// module id = ../../../../../src/app/formularios/FormularioAla.component.html\n// module chunks = main","import { AlaFormulario, AlaIdiomaFormulario } from './../domain/AlaFormulario';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { Message } from 'primeng/components/common/api';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\nimport { AppComponent } from '../app.component';\r\nimport { HashLocationStrategy } from '@angular/common';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-formulario-ala',\r\n\ttemplateUrl: './FormularioAla.component.html',\r\n providers: [MessageService]\r\n})\r\n\r\nexport class FormularioAlaComponent implements OnDestroy, OnChanges{ // extends FormGroup { // extends FormularioBaseComponent {\r\n\r\n\t// Nivel al que pertenece el Ala\r\n\t@Input() nivelSeleccionado: any = {};\r\n\t@Input() alaSeleccionada: AlaFormulario = new AlaFormulario();\r\n\t@Input() edicion: boolean;\r\n\t// Imagen seleccionada en el selector de imagen\r\n\t@Input() imagenAlaSeleccionada: any;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\tmsgs: Message[] = [];\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic labelBotonImagen = 'Seleccionar Plano';\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\tpublic zoomMaxError = false;\r\n\tpublic zoomMaxRutaError = false;\r\n\tpublic zoomMinError = false;\r\n\tpublic zoomMinLabelError = false;\r\n\tpublic zoomOkError= false;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\t// Componente selector de la Imagen\r\n\tselectorImagenAla: any;\r\n\r\n\tescalaNodos;\r\n\tescalaContenidos;\r\n\r\n\tspinner: HTMLElement;\r\n\tgeoposicionar: boolean;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate wsServices: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService)\r\n\t{\r\n\t\tconst that = this;\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t});\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.geoposicionar = false;\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.msgs = [];\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.escalaNodos = this.alaSeleccionada.IconoNodoScale * 10;\r\n\t\tthis.escalaContenidos = this.alaSeleccionada.IconoContenidoScale * 10;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\t/* ** Metodos de GroupForm ** */\r\n\tonFileSelectAla($event, fileUploadComponentAla) {\r\n\t\t// this.labelBotonImagen = 'Cambiar Plano';\r\n\t\tthis.selectorImagenAla = fileUploadComponentAla;\r\n\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\tthis.imagenAlaSeleccionada = $event.files[0];\r\n\t\t// this.alaSeleccionada.Imagen = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect($event?, fileUploadComponent?) {\r\n\t\t// this.labelBotonImagen = 'Añadir Plano';\r\n\t\tthis.imagenAlaSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\t// this.labelBotonImagen = 'Añadir Plano';\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\tonBase64Generated(img) {\r\n\t\tthis.imagenAlaSeleccionada = img;\r\n\t\tconsole.log('this.imagenAlaSeleccionada = ' + this.imagenAlaSeleccionada);\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* */\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst alaIdioma = this.alaSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\talaIdioma.Nombre = this.alaSeleccionada.Nomobre;\r\n\t\talaIdioma.Descripcion = this.alaSeleccionada.Descripcion;\r\n\t\tthis.alaSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, alaIdioma);\r\n\r\n\t\tthis.fAltaError = this.alaSeleccionada.FechaAlta === undefined || this.alaSeleccionada.FechaAlta === null || this.alaSeleccionada.FechaAlta.toString() === '';\r\n\t\tthis.fBajaError = false; // this.rutaSeleccionada.FechaBaja === '' || this.rutaSeleccionada.FechaBaja === undefined || this.rutaSeleccionada.FechaBaja === null\r\n\t\tthis.zoomMinError = this.alaSeleccionada.zoomMinimo <= 0;\r\n\t\tthis.zoomMaxError = this.alaSeleccionada.zoomMaximo <= 0;\r\n\t\tthis.zoomMaxRutaError = this.alaSeleccionada.zoomMaximoRuta <= 0;\r\n\t\tthis.zoomMinLabelError = this.alaSeleccionada.zoomMinimoLabel <= 0;\r\n\t\tthis.zoomOkError = this.alaSeleccionada.zoomMaximo < this.alaSeleccionada.zoomMinimo;\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tthis.alaSeleccionada.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tthis.alaSeleccionada.FechaBaja = fecha;\r\n\t\t}\r\n\t\tthis.inputChanged(fecha);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\r\n\t\tthis.inputChanged('');\r\n\r\n\t\tif (this.zoomOkError) {\r\n\t\t\tthis.appComponent.showError('El zoom Minimo ha de ser menos al zoom Maximo');\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\treturn !this.zoomOkError;\r\n\t\t}\r\n\t\tconst ok = !this.fAltaError && !this.zoomMaxError && !this.zoomMaxRutaError && !this.zoomMinError && !this.zoomMinLabelError;\r\n\r\n\t\tif (!ok){\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t}\r\n\r\n\t\treturn ok;\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\r\n\t/* Operaciones */\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic subirImagenAlaSeleccionada(imagenAlaSeleccionada) {\r\n\t\tif (imagenAlaSeleccionada) {\r\n\t\t\t// return this.wsServices.subirFicheroCMS(imagenAlaSeleccionada, 'imagenAlaSeleccionada.png').toPromise();\r\n\t\t\treturn this.wsServices.subirFicheroCMS(imagenAlaSeleccionada).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\r\n\tpublic guardarNuevo() {\r\n\t\tconst that = this;\r\n\r\n\t\tlet urlImagenAlaSeleccionada = '';\r\n\r\n\t\tthis.subirImagenAlaSeleccionada(this.imagenAlaSeleccionada)\r\n\t\t.then(function(urlImagen) {\r\n\t\t\tconsole.log(urlImagen)\r\n\t\t\turlImagenAlaSeleccionada = urlImagen;\r\n\t\t\treturn that.entityManager.newALA();\r\n\t\t})\r\n\t\t.then(function(oALA) {\r\n\t\t\toALA.IDIOMAS.forEach(ALA_IDIOMA => {\r\n\t\t\t\tconst aux = that.alaSeleccionada.Idiomas.get(ALA_IDIOMA.IDIOMA.Codigo);\r\n\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tALA_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tALA_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.alaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tALA_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t\tALA_IDIOMA.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tconst alaIdioma = that.alaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.alaSeleccionada.Nomobre = alaIdioma ? alaIdioma.Nombre : '';\r\n\t\t\tthat.alaSeleccionada.Descripcion = alaIdioma ? alaIdioma.Descripcion : '';\r\n\r\n\t\t\toALA.Nomobre = that.alaSeleccionada.Nomobre;\r\n\t\t\toALA.Descripcion = that.alaSeleccionada.Descripcion;\r\n\r\n\t\t\toALA.zoomMinimo = that.alaSeleccionada.zoomMinimo;\r\n\t\t\toALA.zoomMaximo = that.alaSeleccionada.zoomMaximo;\r\n\t\t\toALA.zoomMaximoRuta = that.alaSeleccionada.zoomMaximoRuta;\r\n\t\t\toALA.zoomMinimoLabel = that.alaSeleccionada.zoomMinimoLabel;\r\n\r\n\t\t\toALA.FechaAlta = that.alaSeleccionada.FechaAlta;\r\n\t\t\toALA.FechaBaja = that.alaSeleccionada.FechaBaja;\r\n\r\n\t\t\toALA.IconoContenidoScale = that.escalaContenidos / 10;\r\n\t\t\toALA.IconoNodoScale = that.escalaNodos / 10;\r\n\r\n\t\t\toALA.ConexionScale = 1;\r\n\t\t\toALA.AristaSeccionScale = 1;\r\n\t\t\toALA.PuntosConexionScale = 1;\r\n\t\t\toALA.PuntosSeccionScale = 1;\r\n\r\n\t\t\toALA.RutaImagen = urlImagenAlaSeleccionada;\r\n\t\t\toALA.backgroundColor = that.alaSeleccionada.backgroundColor;\r\n\r\n\t\t\tthat.alaSeleccionada.ENTIDAD = oALA;\r\n\r\n\t\t\t// that.alaSeleccionada = that.alaSeleccionada = oALA;\r\n\t\t\tthat.nivelSeleccionado.ALAS.push(oALA);\r\n\r\n\t\t\treturn that.entityManager.newSECCION();\r\n\t\t})\r\n\t\t.then(function (oSECCION: any) {\r\n\t\t\toSECCION.Nombre = 'Default';\r\n\t\t\toSECCION.Descripcion = 'Default para Ala: ' + that.alaSeleccionada.Nomobre;\r\n\t\t\toSECCION.FechaAlta = new Date();\r\n\t\t\toSECCION.IdAla = that.alaSeleccionada.ENTIDAD.Id;\r\n\t\t\toSECCION.IDIOMAS.forEach(element => {\r\n\t\t\t\telement.Nombre = 'Default';\r\n\t\t\t\telement.Descripcion = 'Default para Ala: ' + that.alaSeleccionada.Nomobre;\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.SECCIONS.push(oSECCION);\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (elem: any) {\r\n\t\t\tconsole.log(elem)\r\n\t\t\tif (elem !== false) {\r\n\t\t\t\tthat.onElementoGuardado.emit(elem);\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.onElementoError.emit(elem);\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic guardarEdicion() {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function () {\r\n\r\n\t\t\tconst espacioIdioma = that.alaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.alaSeleccionada.Nomobre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthat.alaSeleccionada.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.Nomobre = that.alaSeleccionada.Nomobre;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.Descripcion = that.alaSeleccionada.Descripcion;\r\n\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.zoomMinimo = that.alaSeleccionada.zoomMinimo;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.zoomMaximo = that.alaSeleccionada.zoomMaximo;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.zoomMaximoRuta = that.alaSeleccionada.zoomMaximoRuta;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.zoomMinimoLabel = that.alaSeleccionada.zoomMinimoLabel;\r\n\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.IconoContenidoScale = that.escalaContenidos / 10;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.IconoNodoScale = that.escalaNodos / 10;\r\n\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.FechaAlta = that.alaSeleccionada.FechaAlta;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.FechaBaja = that.alaSeleccionada.FechaBaja;\r\n\t\t\tthat.alaSeleccionada.ENTIDAD.backgroundColor = that.alaSeleccionada.backgroundColor;\r\n\r\n\t\t\tif (that.imagenAlaSeleccionada){\r\n\t\t\t\tconsole.log('guardarEdicion = ' + that.imagenAlaSeleccionada);\r\n\t\t\t\tthat.subirImagenAlaSeleccionada(that.imagenAlaSeleccionada)\r\n\t\t\t\t.then(function(urlImagen) {\r\n\t\t\t\t\tthat.alaSeleccionada.ENTIDAD.RutaImagen = urlImagen;\r\n\r\n\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t\t})\r\n\t\t\t\t.then(function (msg) {\r\n\t\t\t\t\tthat.onElementoGuardado.emit(that.alaSeleccionada);\r\n\t\t\t\t\treturn msg;\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(data: any) {\r\n\t\t\t\t\tconsole.log(data)\r\n\t\t\t\t\t// Renovamos el Token\r\n\t\t\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\t\t\tthat.authService.relogin();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (err) {\r\n\t\t\t\t\treturn err;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthat.entityManager.saveChanges()\r\n\t\t\t\t.then(function (msg) {\r\n\t\t\t\t\tthat.onElementoGuardado.emit(that.alaSeleccionada);\r\n\t\t\t\t\treturn msg;\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(data: any) {\r\n\t\t\t\t\tconsole.log(data)\r\n\t\t\t\t\t// Renovamos el Token\r\n\t\t\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\t\t\tthat.authService.relogin();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (err) {\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\treturn err;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tconst that = this;\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t\t.then(function () {\r\n\t\t\t\tthat.onElementoEliminado.emit(that.alaSeleccionada.ENTIDAD);\r\n\t\t\t\t// Renovamos el Token\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t})\r\n\t\t\t.catch(function (e) {\r\n\t\t\t\tthat.onElementoEliminado.emit(false);\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t\treturn e;\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic eliminarSeleccionado() {\r\n\t\tconst that = this;\r\n\t\tif (this.alaSeleccionada !== undefined) {\r\n\t\t\treturn this.entityManager.deleteALA(this.alaSeleccionada.ENTIDAD)\r\n\t\t\t.then(function(){\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t\t// return this.entityManager.saveChanges();\r\n\t\t}\r\n\t}\r\n\r\n\t/* App-Selector_Idioma */\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet alaIdioma = this.alaSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!alaIdioma) {\r\n\t\t\talaIdioma = new AlaIdiomaFormulario();\r\n\t\t\tthis.alaSeleccionada.Idiomas.set(idioma.value, alaIdioma);\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.alaSeleccionada.Nomobre = alaIdioma.Nombre;\r\n\t\tthis.alaSeleccionada.Descripcion = alaIdioma.Descripcion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.alaSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newALA_IDIOMA(this.alaSeleccionada.ENTIDAD)\r\n\t\t.then(function(ALA_IDIOMAs){\r\n\r\n\t\t\tALA_IDIOMAs.forEach(ALA_IDIOMA => {\r\n\t\t\t\tconst aux = that.alaSeleccionada.Idiomas.get(ALA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tALA_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tALA_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tposicionarAla(){\r\n\t\tthis.geoposicionar = true;\r\n\t\t//this.appComponent.showError('No Implementado!');\r\n\t}\r\n\r\n\r\n\tonEscalaContenidoChange(event){\r\n\t\tconsole.log(event.value / 10);\r\n\t}\r\n\r\n\tonEscalaNodoChange(event){\r\n\t\tconsole.log(event.value / 10);\r\n\t}\r\n\r\n\t\t/* PIPETA */\r\n\t/*\r\n\t\tseleccionPipeta(){\r\n\t\t\tthis.setEyedropSelected(true);\r\n\t\t}\r\n\t*/\r\n\tpublic onColorChange($event){\r\n\t\tconsole.log($event);\r\n\t}\r\n\r\n\tpublic getColor(){\r\n\t\treturn this.alaSeleccionada.backgroundColor;\r\n\t}\r\n\r\n\tpublic setColor(_color){\r\n\r\n\t\tconst colors = _color.match(/\\d+/g);\r\n\t\tlet alfa = '1';\r\n\t\tif ( colors.length < 3 )\t{\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (colors[3] !== undefined){\r\n\t\t\talfa = colors[3] + (colors[4] !== undefined ? '.' + colors[4] : '' );\r\n\t\t}\r\n\r\n\t\t_color = 'rgba(' + colors[0] + ',' + colors[1] + ',' + colors[2] + ',' + alfa + ')';\r\n\r\n\t\tthis.alaSeleccionada.backgroundColor = _color;\r\n\t}\r\n\r\n\tmostrarMiniaturaAla(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenAlaSeleccionada !== undefined;\r\n\t\tconst mostrar = this.alaSeleccionada.Imagen && this.alaSeleccionada.Imagen !== 'done' && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n\r\n\tmostrarMiniaturaNoHayImagen(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenAlaSeleccionada !== undefined;\r\n\t\tconst mostrar = !this.mostrarMiniaturaAla() && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioAla.component.ts","module.exports = \"
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.IdHardware\\\" pInputText>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.PasswordBeacons\\\" pInputText disabled>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.X\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.Y\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.NivelBateria\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"balizaSeleccionado.potenciaTx\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Beacons.nodosasociados' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{'Beacons.ninguno' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioBaliza.component.html\n// module id = ../../../../../src/app/formularios/FormularioBaliza.component.html\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { AppComponent } from '../app.component';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { PermisosService, Permisos } from '../providers/authentication/permisos.service';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\nimport { BalizaFormulario } from '../domain/BalizaFormulario';\r\n\r\n@Component({\r\n selector: 'app-formulario-baliza',\r\n templateUrl: './FormularioBaliza.component.html'\r\n})\r\n\r\nexport class FormularioBalizaComponent implements OnDestroy{\r\n\r\n @Input() balizaSeleccionado: BalizaFormulario;\r\n @Input() confirmacionVisible: boolean;\r\n @Input() msgs: any[];\r\n @Input() visible: boolean = true;\r\n @Input() idHardwareBalizas: string[];\r\n\r\n\r\n @Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n @Output() onElementoError: EventEmitter = new EventEmitter();\r\n @Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n @Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n public isValid = true;\r\n public color;\r\n\r\n public operacion;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n blockUI: HTMLElement;\r\n spinner: HTMLElement;\r\n permisos: Permisos = new Permisos();\r\n\r\n public fAltaError = false;\r\n public fBajaError = false;\r\n\ttipologiasBaliza: any;\r\n\r\n constructor(\r\n\tprivate appComponent: AppComponent,\r\n private entityManagerProvider: EntityManagerProvider,\r\n\t public authService: AuthenticationService,\r\n\t public idiomaService: IdiomaService,\r\n\t public sws: ServiciosWebServiceProvider,\r\n\t private translate: TranslateService,\r\n\t private permisosService: PermisosService\r\n\t) {\r\n\t\tconst that = this;\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarBaliza')[0] as HTMLElement;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\r\n\t\tthis.entityManagerProvider.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t\tconst includes = undefined;\r\n\t\t\tconst where = undefined;\r\n\t\t\treturn that.obtenerTIPOLOGIA_BALIZA();\r\n\t\t});\r\n\r\n\t\tthis.comprobarPermisos();\r\n\t\tconsole.log(this.idHardwareBalizas)\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t\tthis.msgs = [];\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.msgs = [];\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\t\r\n\t\tif (!this.balizaSeleccionado.IdHardware) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse if(this.idHardwareBalizas.includes(this.balizaSeleccionado.IdHardware) === true && this.balizaSeleccionado.IdHardware !== this.balizaSeleccionado.ENTIDAD.IdHardware){\r\n\t\t\tthis.isValid = false;\r\n\t\t\tthis.msgs.push({ severity: 'error', summary: this.translate.instant('Beacons.nombreDuplicado'), detail: this.translate.instant('Beacons.nombreDuplicado') });\r\n\t\t}else {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\tthis.onFormularioValidation.emit(this.isValid);\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\t\t\tthis.guardarBaliza();\r\n\r\n\t\t} else {\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tthis.confirmacionVisible = false;\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tguardarBaliza(){\r\n\r\n\t\tthis.balizaSeleccionado.ENTIDAD.X = this.balizaSeleccionado.X;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.Y = this.balizaSeleccionado.Y;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.IdHardware = this.balizaSeleccionado.IdHardware;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.DescInstalacion = this.balizaSeleccionado.DescInstalacion;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.PasswordBeacons = this.balizaSeleccionado.PasswordBeacons;\r\n\r\n\t\tthis.balizaSeleccionado.ENTIDAD.FechaAlta = this.balizaSeleccionado.FechaAlta;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.FechaBaja = this.balizaSeleccionado.FechaBaja;\r\n\t\tthis.balizaSeleccionado.ENTIDAD.FechaInstalacion = this.balizaSeleccionado.FechaInstalacion;\r\n\r\n\t\tthis.balizaSeleccionado.ENTIDAD.TIPOLOGIA_BALIZA = this.balizaSeleccionado.TIPOLOGIA_BALIZA;\r\n\t\t\r\n\t\tif(this.balizaSeleccionado.ENTIDAD.TIPOLOGIA_BALIZA.esBeacon){\r\n\t\t\tthis.balizaSeleccionado.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-baliza.svg';\r\n\t\t\tthis.balizaSeleccionado.ENTIDAD.IconoRepresentacion = this.balizaSeleccionado.IconoRepresentacion;\r\n\t\t}\r\n\t\tif(this.balizaSeleccionado.ENTIDAD.TIPOLOGIA_BALIZA.esSniffer){\r\n\t\t\tthis.balizaSeleccionado.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-snifer.svg';\r\n\t\t\tthis.balizaSeleccionado.ENTIDAD.IconoRepresentacion = this.balizaSeleccionado.IconoRepresentacion;\r\n\t\t}\r\n\t\tif(this.balizaSeleccionado.ENTIDAD.TIPOLOGIA_BALIZA.esTag){\r\n\t\t\tthis.balizaSeleccionado.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-tag.svg';\r\n\t\t\tthis.balizaSeleccionado.ENTIDAD.IconoRepresentacion = this.balizaSeleccionado.IconoRepresentacion;\r\n\t\t}\r\n\r\n\t\t// No editable:\r\n\t\t// this.balizaSeleccionado.ENTIDAD.NivelBateria = this.balizaSeleccionado.NivelBateria;\r\n\t\t// this.balizaSeleccionado.ENTIDAD.potenciaTx = this.balizaSeleccionado.potenciaTx;\r\n\t\t// this.balizaSeleccionado.ENTIDAD.TimestampLecturaBateria = this.balizaSeleccionado.TimestampLecturaBateria;\r\n\r\n\t\tthis.confirmacionVisible = false;\r\n\r\n\t\tconst that = this;\r\n\t\tconst token = that.authService.getToken();\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\tconst idAla = this.balizaSeleccionado.ENTIDAD.ALA_PLANO ? this.balizaSeleccionado.ENTIDAD.ALA_PLANO.Id : \"\";\r\n\t\treturn that.sws.wsObtenerLLFromXY(token, that.balizaSeleccionado.X, that.balizaSeleccionado.Y, idEspacio, idAla).toPromise()\r\n\t\t// return that.entityManagerProvider.saveChanges()\r\n\t\t.then(function (ll) {\r\n\t\t\tconsole.log(ll)\r\n\t\t\tthat.balizaSeleccionado.ENTIDAD.Latitud = ll.Latitud;\r\n\t\t\tthat.balizaSeleccionado.ENTIDAD.Longitud = ll.Longitud;\r\n\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data){\r\n\r\n\t\t\t\t\tthat.authService.relogin();\r\n\t\t\t\t\tthat.onElementoGuardado.emit({ result: true, element: that.balizaSeleccionado });\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.balizaSeleccionado });\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tconsole.log(err)\r\n\t\t\tconsole.log('aqui')\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.balizaSeleccionado });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tthis.confirmacionVisible = false;\r\n\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t.then(function () {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoEliminado.emit({ result: true, element: that.balizaSeleccionado });\r\n\t\t\tthat.authService.relogin();\r\n\t\t})\r\n\t\t.catch(function () {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoEliminado.emit({ result: false, element: that.balizaSeleccionado });\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminarSeleccionado () {\r\n\t\tconst that = this;\r\n\t\tif (this.balizaSeleccionado !== undefined) {\r\n\t\t\treturn this.entityManagerProvider.deleteBALIZA(this.balizaSeleccionado.ENTIDAD);\r\n\t\t}\r\n\t}\r\n\r\n\taplicar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarBaliza')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\t}\r\n\r\n\tposicionar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarBaliza')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tobtenerTIPOLOGIA_BALIZA() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\treturn entityManager.getTIPOLOGIA_BALIZA(undefined, undefined)\r\n\t\t\t.then(function (entidades) {\r\n\t\t\t\tthat.tipologiasBaliza = entidades;\r\n\r\n\t\t\t\tthat.tipologiasBaliza = entidades;\r\n\t\t\t\tif (that.tipologiasBaliza && that.tipologiasBaliza.length > 0) {\r\n\t\t\t\t\tthat.tipologiasBaliza.sort((one: any, two: any) => {\r\n\t\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaInstalacion') {\r\n\t\t\tthis.balizaSeleccionado.FechaInstalacion = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaLecturaBateria') {\r\n\t\t\tthis.balizaSeleccionado.FechaLecturaBateria = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.balizaSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.balizaSeleccionado.FechaBaja = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioBaliza.component.ts","module.exports = \"
      \\r\\n\\r\\n
      \\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t{{item.value.ENTIDAD.Codigo}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      {{idioma.value.title}}
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t\\r\\n\\t
      \\r\\n\\t\\t

      \\r\\n\\t\\t\\t
      {{this.conexionSeleccionada.NODO_PLANO_ORIGEN?.getNombre()}}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      {{this.conexionSeleccionada.NODO_PLANO_DESTINO?.getNombre()}}
      \\r\\n\\t\\t

      \\r\\n\\t
      \\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.conexionSeleccionada.Indicacion\\\" (ngModelChange)=\\\"inputChanged('indicacionIda')\\\" pInputText >\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"peso_conexion.Peso\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\t\\r\\n\\t
      \\r\\n\\t\\t

      \\r\\n\\t\\t\\t
      {{this.conexionSeleccionada.NODO_PLANO_DESTINO?.getNombre()}}
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      {{this.conexionSeleccionada.NODO_PLANO_ORIGEN?.getNombre()}}
      \\r\\n\\t\\t

      \\r\\n\\t
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.conexionSeleccionadaVuelta.Indicacion\\\" (ngModelChange)=\\\"inputChanged('indicacionVuelta')\\\" pInputText >\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"peso_conexion_vuelta.Peso\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n\\r\\n\\t
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioConexion.component.html\n// module id = ../../../../../src/app/formularios/FormularioConexion.component.html\n// module chunks = main","import { PermisosService } from './../providers/authentication/permisos.service';\r\nimport { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, Inject, forwardRef, OnDestroy, OnChanges, SimpleChanges} from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { ConexionFormulario, ConexionNodoIdiomaFormulario } from '../domain/ConexionFormulario';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { AppComponent } from '../app.component';\r\n\r\n@Component({\r\n selector: 'app-formulario-conexion',\r\n templateUrl: './FormularioConexion.component.html'\r\n})\r\n\r\nexport class FormularioConexionComponent implements OnDestroy, OnChanges{\r\n\r\n @Input() conexionSeleccionada: ConexionFormulario = new ConexionFormulario();\r\n @Input() conexionSeleccionadaVuelta: ConexionFormulario = new ConexionFormulario();\r\n @Input() perfilesMovilidad: any;\r\n @Input() edicion: boolean;\r\n @Input() confirmacionVisible: boolean;\r\n @Input() displayDialogEditarNodo: boolean;\r\n @Input() msgs: any[];\r\n @Input() visible: boolean = true;\r\n\r\n @Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n @Output() onElementoError: EventEmitter = new EventEmitter();\r\n @Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n @Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n public isValid = true;\r\n public operacion;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tpermisos: Permisos = new Permisos();\r\n\r\n\tspinner: HTMLElement;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\t\tpublic idiomaService: IdiomaService,\r\n\t\t\tprivate translate: TranslateService,\r\n\t\t\tprivate permisosService: PermisosService) {\r\n\t\t\tconst that = this;\r\n\t\t\t// Inicializamos Spinner\r\n\t\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\t\tthis.entityManagerProvider.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t\treturn that.comprobarPermisos();\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tsetPesoMaximo(peso_conexion){\r\n\t\tpeso_conexion.Peso = '∞';\r\n\t\tconsole.log('peso_conexion: ' + peso_conexion.Peso);\r\n\t}\r\n\r\n/* ************************************************************************** */\r\n/* COMUN FORMULARIO */\r\n/* ************************************************************************** */\r\n\r\n\tinputChanged(value) {\r\n\r\n\t\t// Cojemos la traduccion del conexionNodo al idioma seleccionado\r\n\t\tconst conexionNodoIdioma = this.conexionSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tconexionNodoIdioma.Indicacion = this.conexionSeleccionada.Indicacion;\r\n\t\tthis.conexionSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, conexionNodoIdioma);\r\n\r\n\t\t// Cojemos la traduccion del conexionNodo de vuelta al idioma seleccionado\r\n\t\tconst conexionNodoVuelta = this.conexionSeleccionadaVuelta.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tconexionNodoVuelta.Indicacion = this.conexionSeleccionadaVuelta.Indicacion;\r\n\t\tthis.conexionSeleccionadaVuelta.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, conexionNodoVuelta);\r\n\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.conexionSeleccionada && (this.conexionSeleccionada.Id ? true : false);\r\n\t\t// return this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\tif (this.conexionSeleccionada.Indicacion === '' || this.conexionSeleccionada.Indicacion === undefined) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\tthis.onFormularioValidation.emit(this.isValid);\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError( this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO') );\r\n\t\t\tconsole.log('Formulario no completo!');\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic guardarNuevo () {\r\n\t}\r\n\r\n\tpublic guardarEdicion () {\r\n\t\tconst that = this;\r\n\r\n\t\tthat.guardarMultiIdioma()\r\n\t\t.then(function(msg) {\r\n\t\t\tconsole.log(that.conexionSeleccionada)\r\n\t\t\tconsole.log(that.conexionSeleccionadaVuelta)\r\n\t\t\t// Editamos Conexion de Ida\r\n\t\t\tconst conexionNodoIdioma = that.conexionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.conexionSeleccionada.Indicacion = conexionNodoIdioma.Indicacion ? conexionNodoIdioma.Indicacion : '';\r\n\r\n\r\n\t\t\tthat.conexionSeleccionada.ENTIDAD.Indicacion = that.conexionSeleccionada.Indicacion;\r\n\t\t\tthat.conexionSeleccionada.ENTIDAD.CortadoTemporalmente = that.conexionSeleccionada.CortadoTemporalmente;\r\n\t\t\tthat.conexionSeleccionada.ENTIDAD.CoordenadasCamino = JSON.stringify(that.conexionSeleccionada.CONEXION_PLANO.getRuta());\r\n\r\n\t\t\tfor (let index = 0; index < that.conexionSeleccionada.PESO_CONEXIONS.length; index++) {\r\n\t\t\t\tconst peso_conexion = that.conexionSeleccionada.PESO_CONEXIONS[index];\r\n\t\t\t\tif (peso_conexion.Peso === '∞') {\r\n\t\t\t\t\tthat.conexionSeleccionada.ENTIDAD.PESO_CONEXIONS[index].Peso = Constantes.MAX_PESO;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthat.conexionSeleccionada.ENTIDAD.PESO_CONEXIONS[index].Peso = peso_conexion.Peso;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Editamos Conexion de Vuelta\r\n\t\t\tconst conexionNodoVuelta = that.conexionSeleccionadaVuelta.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.conexionSeleccionadaVuelta.Indicacion = conexionNodoVuelta.Indicacion ? conexionNodoVuelta.Indicacion : '';\r\n\r\n\t\t\tthat.conexionSeleccionadaVuelta.ENTIDAD.Indicacion = that.conexionSeleccionadaVuelta.Indicacion;\r\n\t\t\tthat.conexionSeleccionadaVuelta.ENTIDAD.CortadoTemporalmente = that.conexionSeleccionada.CortadoTemporalmente;\r\n\t\t\tlet arrayRutasIda = that.conexionSeleccionada.CONEXION_PLANO.getRuta();\r\n\t\t\t\r\n\t\t\tif(arrayRutasIda !== null){\r\n\t\t\t\tlet arrayRutasIdaInvertidas = [...arrayRutasIda].reverse();\r\n\t\t\t\tthat.conexionSeleccionadaVuelta.ENTIDAD.CoordenadasCamino = JSON.stringify(arrayRutasIdaInvertidas);\r\n\t\t\t\tthat.conexionSeleccionadaVuelta.CONEXION_PLANO.setRuta(arrayRutasIdaInvertidas);\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t\tfor (let index = 0; index < that.conexionSeleccionadaVuelta.PESO_CONEXIONS.length; index++) {\r\n\r\n\t\t\t\tconst peso_conexion = that.conexionSeleccionadaVuelta.PESO_CONEXIONS[index];\r\n\t\t\t\tif (peso_conexion.Peso === '∞') {\r\n\t\t\t\t\tthat.conexionSeleccionadaVuelta.ENTIDAD.PESO_CONEXIONS[index].Peso = Constantes.MAX_PESO;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthat.conexionSeleccionadaVuelta.ENTIDAD.PESO_CONEXIONS[index].Peso = peso_conexion.Peso;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: true, element: [that.conexionSeleccionada, that.conexionSeleccionadaVuelta] });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn msg;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tconsole.log(err)\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: [that.conexionSeleccionada, that.conexionSeleccionadaVuelta]});\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManagerProvider.deleteEntityArray(this.conexionSeleccionada.ENTIDAD.IDIOMAS);\r\n\t\tthis.entityManagerProvider.deleteEntityArray(this.conexionSeleccionadaVuelta.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManagerProvider.newCONEXION_NODOS_IDIOMA(this.conexionSeleccionada.ENTIDAD)\r\n\t\t.then(function(CONEXION_IDIOMAs){\r\n\r\n\t\t\tCONEXION_IDIOMAs.forEach(CONEXION_IDIOMA => {\r\n\t\t\t\tconst aux = that.conexionSeleccionada.Idiomas.get(CONEXION_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tCONEXION_IDIOMA.Indicacion = aux.Indicacion;\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn that.entityManagerProvider.newCONEXION_NODOS_IDIOMA(that.conexionSeleccionadaVuelta.ENTIDAD);\r\n\t\t})\r\n\t\t.then(function(CONEXION_IDIOMAs){\r\n\r\n\t\t\tCONEXION_IDIOMAs.forEach(CONEXION_IDIOMA => {\r\n\t\t\t\tconst aux = that.conexionSeleccionadaVuelta.Idiomas.get(CONEXION_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tCONEXION_IDIOMA.Indicacion = aux.Indicacion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tconst that = this;\r\n\t\t//this.spinner.style.display = 'inherit';\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t.then(function () {\r\n\t\t\tthat.onElementoEliminado.emit({ result: true, element: [that.conexionSeleccionada, that.conexionSeleccionadaVuelta] });\r\n\t\t})\r\n\t\t.catch(function () {\r\n\t\t\tthat.onElementoEliminado.emit({ result: false, element: [that.conexionSeleccionada, that.conexionSeleccionadaVuelta] });\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminarSeleccionado () {\r\n\t\tconst that = this;\r\n\t\tif (this.conexionSeleccionada !== undefined) {\r\n\t\t\tthat.authService.relogin();\r\n\t\t\treturn this.entityManagerProvider.deleteCascadaCONEXIONES_NODO(\r\n\t\t\t\t[this.conexionSeleccionada.ENTIDAD, this.conexionSeleccionadaVuelta.ENTIDAD]\r\n\t\t\t);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// CONEXION IDA\r\n\t\t// Cojemos la traduccion del conexionNodo al idioma seleccionado\r\n\t\tlet conexionNodoIdioma = this.conexionSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!conexionNodoIdioma) {\r\n\t\t\tconexionNodoIdioma = new ConexionNodoIdiomaFormulario();\r\n\t\t\tthis.conexionSeleccionada.Idiomas.set(idioma.value, conexionNodoIdioma);\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de conexionNodoFormulario con los valores del idioma seleccionado\r\n\t\tthis.conexionSeleccionada.Indicacion = conexionNodoIdioma.Indicacion;\r\n\r\n\r\n\t\t// CONEXION VUELTA\r\n\t\t// Cojemos la traduccion del conexionNodo al idioma seleccionado\r\n\t\tlet conexionVuelta = this.conexionSeleccionadaVuelta.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!conexionVuelta) {\r\n\t\t\tconexionVuelta = new ConexionNodoIdiomaFormulario();\r\n\t\t\tthis.conexionSeleccionadaVuelta.Idiomas.set(idioma.value, conexionVuelta);\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de conexionNodoFormulario con los valores del idioma seleccionado\r\n\t\tthis.conexionSeleccionadaVuelta.Indicacion = conexionVuelta.Indicacion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioConexion.component.ts","module.exports = \"
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"contenidoSeleccionado.X\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"contenidoSeleccionado.Y\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n \\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioContenido.component.html\n// module id = ../../../../../src/app/formularios/FormularioContenido.component.html\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { AppComponent } from '../app.component';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { PermisosService, Permisos } from '../providers/authentication/permisos.service';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\n\r\n\r\n@Component({\r\n selector: 'app-formulario-contenido',\r\n templateUrl: './FormularioContenido.component.html'\r\n})\r\n\r\nexport class FormularioContenidoComponent implements OnDestroy, OnChanges{\r\n\r\n @Input() contenidoSeleccionado: any;\r\n @Input() confirmacionVisible: boolean;\r\n @Input() msgs: any[];\r\n @Input() visible: boolean = true;\r\n\r\n @Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n @Output() onElementoError: EventEmitter = new EventEmitter();\r\n @Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n @Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n\r\n public isValid = true;\r\n public color;\r\n\r\n public operacion;\r\n\r\n\r\n blockUI: HTMLElement;\r\n spinner: HTMLElement;\r\n permisos: Permisos = new Permisos();\r\n idiomaCalendario: IdiomaCalendario;\r\n constructor(\r\n\tprivate appComponent: AppComponent,\r\n private entityManagerProvider: EntityManagerProvider,\r\n\t public authService: AuthenticationService,\r\n\t public idiomaService: IdiomaService,\r\n\t public sws: ServiciosWebServiceProvider,\r\n\t private translate: TranslateService,\r\n\t private permisosService: PermisosService\r\n\t) {\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.comprobarPermisos();\r\n\t}\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif(this.contenidoSeleccionado){\r\n\t\t\tlet contenido = this.contenidoSeleccionado;\r\n\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\tcontenido.Imagen = this.authService.getFotoPorDefecto();\r\n\t\t\t}\r\n\t\t\tthis.contenidoSeleccionado = contenido;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\t}\r\n\r\n\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tguardar(){\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.X = this.contenidoSeleccionado.X;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.Y = this.contenidoSeleccionado.Y;\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.FechaAlta = this.contenidoSeleccionado.FechaAlta;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.FechaBaja = this.contenidoSeleccionado.FechaBaja;\r\n\r\n\t\tthis.confirmacionVisible = false;\r\n\r\n\t\tconst that = this;\r\n\t\tconst token = that.authService.getToken();\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst idAla = that.contenidoSeleccionado.ALA_PLANO.Id;\r\n\r\n\t\treturn that.sws.wsObtenerLLFromXY(token, that.contenidoSeleccionado.X, that.contenidoSeleccionado.Y, idEspacio, idAla).toPromise()\r\n\t\t.then(function (ll) {\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Latitud = ll.Latitud;\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Longitud = ll.Longitud;\r\n\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: true, element: that.contenidoSeleccionado });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn msg;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.contenidoSeleccionado });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\taplicar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\t}\r\n\r\n\tposicionar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.contenidoSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.contenidoSeleccionado.FechaBaja = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioContenido.component.ts","module.exports = \"
      \\r\\n \\r\\n
      \\r\\n

      \\r\\n {{'Formularios.mensajeNuevaSeccion' | translate}}\\r\\n

      \\r\\n\\r\\n

      \\r\\n {{'Formularios.mensajeNuevaSeccionAdd' | translate}}\\r\\n

      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioCrearSeccion.component.html\n// module id = ../../../../../src/app/formularios/FormularioCrearSeccion.component.html\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\n@Component({\r\n selector: 'app-formulario-crear-seccion',\r\n templateUrl: './FormularioCrearSeccion.component.html'\r\n})\r\n\r\nexport class FormularioCrearSeccionComponent implements OnDestroy{\r\n\r\n @Input() nodos: Array = [];\r\n\r\n @Output() onSeccionCreada: EventEmitter = new EventEmitter();\r\n\r\n public msgs: String = '';\r\n spinner: HTMLElement;\r\n\r\n constructor(\r\n private entityManagerProvider: EntityManagerProvider,\r\n\t public authService: AuthenticationService,\r\n\t public idiomaService: IdiomaService,\r\n\t private translate: TranslateService\r\n\t) {\r\n\t\t\t// Inicializamos Spinner\r\n\t\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\r\n }\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n }\r\n\r\n guardable(){\r\n return this.nodos && this.nodos.length > 3;\r\n }\r\n\r\n\r\n\tcancelar(){\r\n\t\tthis.onSeccionCreada.emit(false);\r\n\t\tthis.authService.relogin();\r\n\t}\r\n\r\n\tguardar(){\r\n\t\tthis.spinner.style.display = 'inherit';\r\n \tthis.onSeccionCreada.emit(true);\r\n\t\tthis.authService.relogin();\r\n\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioCrearSeccion.component.ts","module.exports = \"
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.espacioSeleccionado.Nombre\\\" (ngModelChange)=\\\"inputChanged('nombre')\\\" [class.input-requerido]=\\\"nombreError\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\t
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.espacioSeleccionado.Descripcion\\\" (ngModelChange)=\\\"inputChanged('descripcion')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.espacioSeleccionado.PasswordBeacons\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{'Formularios.colorespacio' | translate}}

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{'Formularios.colorfuente' | translate}}

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{'Formularios.colorseleccion' | translate}}

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioEspacio.component.html\n// module id = ../../../../../src/app/formularios/FormularioEspacio.component.html\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, ViewChild, SimpleChanges, OnChanges, OnInit } from '@angular/core';\r\n\r\nimport { Message } from 'primeng/components/common/api';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { EspacioFormulario, EspacioIdiomaFormulario } from '../domain/EspacioFormulario';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { ImageCropperComponent, CropperSettings } from 'ngx-img-cropper';\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\nimport { AppComponent } from '../app.component';\r\nimport { PermisosService, Permisos } from '../providers/authentication/permisos.service';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-espacio',\r\n\ttemplateUrl: './FormularioEspacio.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\n\r\nexport class FormularioEspacioComponent implements OnDestroy, OnChanges, OnInit { // extends FormGroup { // extends FormularioBaseComponent {\r\n\r\n\t@Input() mapEspacioIdioma: Map; // Mapa con la misma noticia pero en distintos idiomas.\r\n\r\n\t@Input() espacioSeleccionado: EspacioFormulario = new EspacioFormulario();\r\n\t@Input() edicion: boolean;\r\n\t@Input() limpiarImagen: boolean;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\t@Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n\tmsgs: Message[] = [];\r\n\tspinner: HTMLElement;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\timagenSeleccionada: any;\r\n\tselectorImagenEspacio: any;\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\tpublic pantallaPrincipalError = false;\r\n\r\n\tpublic isValid = true;\r\n\tpublic nombreError = false;\r\n\tpublic imagenError = false;\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\r\n\t/* IMAGE CROPPER*/\r\n\tdata: any;\r\n\tcropperSettings: CropperSettings;\r\n\timageCropperVisible = false;\r\n\r\n\t@ViewChild('cropper', undefined)\r\n\tcropper: ImageCropperComponent;\r\n\tpermisos: Permisos;\r\n\tPantallaPrincipal: any;\r\n\tconstructor(\r\n\tprivate appComponent: AppComponent,\r\n\tprivate entityManager: EntityManagerProvider,\r\n\tpublic authService: AuthenticationService,\r\n\tprivate messageService: MessageService,\r\n\tpublic sws: ServiciosWebServiceProvider,\r\n\tprivate idiomaService: IdiomaService,\r\n\tprivate translate: TranslateService,\r\n\tprivate permisosService: PermisosService)\r\n\t{\r\n\r\n\t\t\tthis.cropperSettings = new CropperSettings();\r\n\t\t\tthis.cropperSettings.width = 400;\r\n\t\t\tthis.cropperSettings.height = 400;\r\n\t\t\tthis.cropperSettings.croppedWidth = 400;\r\n\t\t\tthis.cropperSettings.croppedHeight = 400;\r\n\t\t\tthis.cropperSettings.canvasWidth = 400;\r\n\t\t\tthis.cropperSettings.canvasHeight = 400;\r\n\t\t\tthis.cropperSettings.noFileInput = true;\r\n\t\t\tthis.cropperSettings.fileType = \"image/webp\";\r\n\t\t\tthis.cropperSettings.minWithRelativeToResolution = true;\r\n\r\n\t\t\tthis.data = {};\r\n\t\t\t// Inicializamos Spinner\r\n\t\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\t\tconst that = this;\r\n\t\t\tthis.entityManager.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\r\n\t\t\t\treturn that.comprobarPermisos();\r\n\t\t\t})\r\n\t\t\t.then(function (perm) {\r\n\t\t\t\t// Permisos ok\r\n\t\t\t});\r\n\r\n\r\n\t\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\t\tthis.PantallaPrincipal = [\r\n\t\t\t\t{label: 'Mapa', value: 0},\r\n\t\t\t\t{label: 'Ruta Sugerida', value: 1}\r\n\t\t\t];\r\n\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\tthis.data = {};\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.data = {};\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tonFileSelect($event, fileUploadComponent) {\r\n\t\tthis.selectorImagenEspacio = fileUploadComponent;\r\n\t\tthis.imagenSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect($event?, fileUploadComponent?) {\r\n\t\tthis.imagenSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t\treturn perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* Validacion */\r\n\tinputChanged(value) {\r\n\t\tconst p1Error = this.espacioSeleccionado === undefined || this.espacioSeleccionado.Nombre === '';\r\n\t\tconst p2Error = this.espacioSeleccionado.Imagen === undefined && this.imagenSeleccionada === undefined && this.espacioSeleccionado.ENTIDAD.Imagen === undefined;\r\n\t\tconst p3Error = this.espacioSeleccionado.FechaAlta === undefined || this.espacioSeleccionado.FechaAlta === null;\r\n\t\tconst p4Error = false; // this.rutaSeleccionada.FechaBaja === '' || this.rutaSeleccionada.FechaBaja === undefined || this.rutaSeleccionada.FechaBaja === null\r\n\t\tconst p5Error = false;\r\n\t\tconst p6Error = this.espacioSeleccionado.PantallaPrincipal === undefined;\r\n\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio') {\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.nombreError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.nombreError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.imagenError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.imagenError = false;\r\n\t\t\t}\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t\tif (p6Error) {\r\n\t\t\t\tthis.pantallaPrincipalError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.pantallaPrincipalError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (value === 'nombre') {\r\n\t\t\tif (this.espacioSeleccionado.Nombre === '') {\r\n\t\t\t\tthis.nombreError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.nombreError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_alta\r\n\t\tif (value === 'fecha_alta'){\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_baja\r\n\t\tif (value === 'fecha_baja'){\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(value === 'anonimo'){\r\n\t\t\tif (p5Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(value === 'pantallaPrincipal'){\r\n\t\t\t// Siempre que entra aqui es por que se ha seleccionado una pantalla principal, si o si\r\n\t\t\tthis.pantallaPrincipalError = false;\r\n\t\t}\r\n\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst espacioIdioma = this.espacioSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tespacioIdioma.Nombre = this.espacioSeleccionado.Nombre;\r\n\t\tespacioIdioma.Descripcion = this.espacioSeleccionado.Descripcion;\r\n\t\tthis.espacioSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, espacioIdioma);\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\tthis.nombreError = false;\r\n\t\treturn this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\r\n\t\tif (this.nombreError || this.fAltaError || this.pantallaPrincipalError) {\r\n\t\t\tthis.msgs.push({ severity: 'error', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO') });\r\n\r\n\t\t}\r\n\r\n\t\tif (this.imagenError) {\r\n\t\t\tthis.msgs.push({ severity: 'error', summary: this.translate.instant('Formularios.imagenobligatoria'), detail: this.translate.instant('Formularios.debeelegirimagen') });\r\n\t\t}\r\n\r\n\t\tthis.isValid = !this.nombreError && !this.imagenError;\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion) {\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar() {\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar') {\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar() {\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\r\n\t/* Operaciones */\r\n\tpublic guardar = () => {\r\n\t\tif (this.validar()) {\r\n\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic guardarNuevo = () => {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.entityManager.newESPACIO()\r\n\t\t.then(function (ESPACIO) {\r\n\r\n\t\t\tESPACIO.IDIOMAS.forEach(ESPACIO_IDIOMA => {\r\n\t\t\t\tconst aux = that.espacioSeleccionado.Idiomas.get(ESPACIO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tESPACIO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tESPACIO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.espacioSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tESPACIO_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t\tESPACIO_IDIOMA.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = that.espacioSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.espacioSeleccionado.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthat.espacioSeleccionado.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\t\tESPACIO.Nombre = that.espacioSeleccionado.Nombre;\r\n\t\t\tESPACIO.Descripcion = that.espacioSeleccionado.Descripcion;\r\n\t\t\tESPACIO.PasswordBeacons = that.espacioSeleccionado.PasswordBeacons;\r\n\t\t\tESPACIO.FechaAlta = that.espacioSeleccionado.FechaAlta;\r\n\t\t\tESPACIO.FechaBaja = that.espacioSeleccionado.FechaBaja;\r\n\t\t\tESPACIO.UbicarAnonimos = that.espacioSeleccionado.UbicarAnonimos;\r\n\t\t\tESPACIO.PantallaPrincipal = that.espacioSeleccionado.PantallaPrincipal;\r\n\r\n\t\t\t// Cambiar en el futuro para que sea seleccionable\r\n\t\t\tESPACIO.ColorEspacio = that.espacioSeleccionado.ColorEspacio;\r\n\t\t\tESPACIO.ColorFuenteEspacio = that.espacioSeleccionado.ColorFuenteEspacio;\r\n\t\t\tESPACIO.ColorSeleccionEspacio = that.espacioSeleccionado.ColorSeleccionEspacio;\r\n\r\n\t\t\tthat.espacioSeleccionado.ENTIDAD = ESPACIO;\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function (fotos) {\r\n\t\t\tthat.espacioSeleccionado.Imagen = that.imagenSeleccionada;\r\n\t\t\tthat.onElementoGuardado.emit(that.espacioSeleccionado);\r\n\t\t\treturn that.espacioSeleccionado;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoError.emit(null);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\tpublic guardarEdicion() {\r\n\t\tconst that = this;\r\n\r\n\t\t// this.espacioSeleccionado.ENTIDAD.IDIOMAS.forEach(ESPACIO_IDIOMA => {\r\n\t\t// \tconst aux = that.espacioSeleccionado.Idiomas.get(ESPACIO_IDIOMA.IDIOMA.Codigo);\r\n\t\t// \tESPACIO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t// \tESPACIO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t// });\r\n\r\n\t\tconst espacioIdioma = that.espacioSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\tthat.espacioSeleccionado.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\tthat.espacioSeleccionado.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\tthis.espacioSeleccionado.ENTIDAD.Nombre = this.espacioSeleccionado.Nombre;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.Descripcion = this.espacioSeleccionado.Descripcion;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.PasswordBeacons = this.espacioSeleccionado.PasswordBeacons;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.FechaAlta = this.espacioSeleccionado.FechaAlta;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.FechaBaja = this.espacioSeleccionado.FechaBaja;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.ColorEspacio = this.espacioSeleccionado.ColorEspacio;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.ColorFuenteEspacio = this.espacioSeleccionado.ColorFuenteEspacio;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.ColorSeleccionEspacio = this.espacioSeleccionado.ColorSeleccionEspacio;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.UbicarAnonimos = this.espacioSeleccionado.UbicarAnonimos;\r\n\t\tthis.espacioSeleccionado.ENTIDAD.PantallaPrincipal = this.espacioSeleccionado.PantallaPrincipal;\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function (msg) {\r\n\r\n\t\t\tif (that.imagenSeleccionada !== undefined && that.imagenSeleccionada !== null) {\r\n\t\t\t\tthat.espacioSeleccionado.Imagen = that.imagenSeleccionada; // .objectURL;\r\n\t\t\t}\r\n\t\t\tthat.onElementoGuardado.emit(that.espacioSeleccionado);\r\n\t\t\t// lo ocultamos en la funcion onElementoGuardado\r\n\t\t\treturn that.espacioSeleccionado;\r\n\t\t})\r\n\t\t.catch(function (err) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.espacioSeleccionado.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newESPACIO_IDIOMA(this.espacioSeleccionado.ENTIDAD)\r\n\t\t.then(function(ESPACIO_IDIOMAs){\r\n\r\n\t\t\tESPACIO_IDIOMAs.forEach(ESPACIO_IDIOMA => {\r\n\t\t\t\tconst aux = that.espacioSeleccionado.Idiomas.get(ESPACIO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tESPACIO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tESPACIO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t\t.then(function () {\r\n\t\t\t\tthat.onElementoEliminado.emit(that.espacioSeleccionado);\r\n\t\t\t\tthat.authService.relogin();\r\n\r\n\t\t\t})\r\n\t\t\t.catch(function () {\r\n\t\t\t\tthat.onElementoEliminado.emit(undefined);\r\n\t\t\t});\r\n\t}\r\n\r\n\teliminarSeleccionado() {\r\n\t\tconst that = this;\r\n\t\tlet includes = 'IDIOMAS.IDIOMA, ';\r\n\t\tincludes = includes + 'NIVELS.ALAS.SECCIONS.NODOS.CONTENIDOS, ';\r\n\t\tincludes = includes + 'RUTAS_SUGERIDA, ';\r\n\t\tincludes = includes + 'NOTICIAS, ';\r\n\t\tincludes = includes + 'CONTENIDOS, ';\r\n\t\tincludes = includes + 'FOTOS';\r\n\r\n\t\tconst idEspacio = this.espacioSeleccionado.ENTIDAD.Id;\r\n\r\n\t\treturn this.entityManager.getEspacioById(idEspacio, includes)\r\n\t\t.then(function (espacio) {\r\n\r\n\t\t\treturn that.entityManager.deleteESPACIO(espacio);\r\n\t\t\t// return that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic subirFotos() {\r\n\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\r\n\t\tif (that.imagenSeleccionada !== undefined) {\r\n\t\t\t/*\r\n\t\t\tif (that.espacioSeleccionado.ENTIDAD && that.espacioSeleccionado.ENTIDAD.FOTOS) {\r\n\t\t\t\tthat.entityManager.deleteEntityArray(that.espacioSeleccionado.ENTIDAD.FOTOS);\r\n\t\t\t}\r\n\r\n\t\t\tpromises.push(that.enviarFoto('IdEspacio', that.espacioSeleccionado.ENTIDAD.Id, that.imagenSeleccionada));\r\n\t\t\t*/\r\n\t\t\tlet idFoto = null;\r\n\t\t\tif (that.espacioSeleccionado.ENTIDAD && that.espacioSeleccionado.ENTIDAD.FOTOS) {\r\n\t\t\t\tconst ultima = that.espacioSeleccionado.ENTIDAD.FOTOS.length - 1;\r\n\t\t\t\tconst fotoUpdate = that.espacioSeleccionado.ENTIDAD.FOTOS[ultima];\r\n\t\t\t\tidFoto = fotoUpdate ? fotoUpdate.Id : null;\r\n\t\t\t}\r\n\t\t\tpromises.push(that.enviarFoto('IdEspacio', that.espacioSeleccionado.ENTIDAD.Id, that.imagenSeleccionada, idFoto));\r\n\t\t}\r\n\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\tenviarFoto(entidad, idEntidad, imagen, idFoto = null) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsSubidaFoto(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n\t/* App-Selector_Idioma */\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (idioma) {\r\n\t\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\t\tlet espacioIdioma = this.espacioSeleccionado.Idiomas.get(idioma.value);\r\n\r\n\t\t\t// Si no existe la creamos\r\n\t\t\tif (!espacioIdioma) {\r\n\r\n\t\t\t\tespacioIdioma = new EspacioIdiomaFormulario();\r\n\r\n\t\t\t\tthis.espacioSeleccionado.Idiomas.set(idioma.value, espacioIdioma);\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\t\tthis.espacioSeleccionado.Nombre = espacioIdioma.Nombre;\r\n\t\t\tthis.espacioSeleccionado.Descripcion = espacioIdioma.Descripcion;\r\n\r\n\t\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t\t}\r\n\t}\r\n\r\n\r\n/* Image Cropper */\r\nfileChangeListener($event) {\r\n\tthis.imageCropperVisible = true;\r\n\tconst image: any = new Image();\r\n\tconst file: File = $event.target.files[0];\r\n\tconst nombre = file.name;\r\n\tconst tipo = file.type;\r\n\tconst myReader: FileReader = new FileReader();\r\n\tconst that = this;\r\n\tmyReader.onloadend = function (loadEvent: any) {\r\n\t\timage.src = loadEvent.target.result;\r\n\t\tthat.cropper.setImage(image);\r\n\t\tthat.imagenSeleccionada = that.sws.base64ToFile(image.src, nombre, tipo)\r\n\t\t.then(function(fotoFile){\r\n\t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\t});\r\n\t};\r\n\tmyReader.readAsDataURL(file);\r\n}\r\n\r\nasignarFotoCropp($event){\r\n\tconst that = this;\r\n\tthat.imagenSeleccionada = this.sws.base64ToFile(this.data.image, that.imagenSeleccionada.name)\r\n\t.then(function(fotoFile){\r\n\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\tthat.imageCropperVisible = false;\r\n\t});\r\n}\r\n\r\n\r\n\t/* PIPETA */\r\n\t/*\r\n\tseleccionPipeta(){\r\n\t\tthis.setEyedropSelected(true);\r\n\t}\r\n*/\r\n\tpublic onColorChange($event){\r\n\t\tconsole.log($event);\r\n\t}\r\n\r\n\tpublic getColor(campo){\r\n\t\tif (campo === 'ColorEspacio') {\r\n\t\t\treturn this.espacioSeleccionado.ColorEspacio;\r\n\t\t}\r\n\t\tif (campo === 'ColorFuenteEspacio') {\r\n\t\t\treturn this.espacioSeleccionado.ColorFuenteEspacio;\r\n\t\t}\r\n\t\tif (campo === 'ColorSeleccionEspacio') {\r\n\t\t\treturn this.espacioSeleccionado.ColorSeleccionEspacio;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic setColor(_color, campo){\r\n\r\n\t\tconst colors = _color.match(/\\d+/g);\r\n\t\tlet alfa = '1';\r\n\t\tif ( colors.length < 3 )\t{\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(colors[3] !== undefined){\r\n\t\t\talfa = colors[3] + (colors[4] !== undefined ? '.' + colors[4] : '' );\r\n\t\t}\r\n\r\n\t\t_color = 'rgba(' + colors[0] + ',' + colors[1] + ',' + colors[2] + ',' + alfa + ')';\r\n\r\n\t\tif (campo === 'ColorEspacio') {\r\n\t\t\tthis.espacioSeleccionado.ColorEspacio = _color;\r\n\t\t}\r\n\t\tif (campo === 'ColorFuenteEspacio') {\r\n\t\t\tthis.espacioSeleccionado.ColorFuenteEspacio = _color;\r\n\t\t}\r\n\t\tif (campo === 'ColorSeleccionEspacio') {\r\n\t\t\tthis.espacioSeleccionado.ColorSeleccionEspacio = _color;\r\n\t\t}\r\n\t}\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.espacioSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.espacioSeleccionado.FechaBaja = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioEspacio.component.ts","module.exports = \"
      \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.nivelSeleccionado.Nombre\\\" (ngModelChange)=\\\"inputChanged('nombre')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.nivelSeleccionado.NivelVertical\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.nivelSeleccionado.Descripcion\\\" (ngModelChange)=\\\"inputChanged('descripcion')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.nivelSeleccionado.NombreCorto\\\" (ngModelChange)=\\\"inputChanged('NombreCorto')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNivel.component.html\n// module id = ../../../../../src/app/formularios/FormularioNivel.component.html\n// module chunks = main","import { OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\n\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/components/common/api';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { NivelFormulario, NivelIdiomaFormulario } from '../domain/NivelFormulario';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\nimport { AppComponent } from '../app.component';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-formulario-nivel',\r\n\ttemplateUrl: './FormularioNivel.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\nexport class FormularioNivelComponent implements OnDestroy, OnChanges{ // extends FormGroup { // extends FormularioBaseComponent {\r\n\r\n\t@Input() nivelSeleccionado: any = NivelFormulario;\r\n\t@Input() edicion: boolean;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\tprivate espacio: any;\r\n\r\n\tmsgs: Message[] = [];\r\n\tspinner: HTMLElement;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService) {\r\n\r\n\t\tconst that = this;\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t});\r\n\r\n\t\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tprotected leerFormularioPropio() {\r\n\t\tthis.nivelSeleccionado.ESPACIO = this.espacio;\r\n\t\tthis.nivelSeleccionado.idEspacio = this.authService.getIdEspacio();\r\n\t\treturn this.nivelSeleccionado;\r\n\t}\r\n\r\n\tpublic setNivelSeleccionado(nivel: any) {\r\n\t\tthis.nivelSeleccionado = nivel;\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* */\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst espacioIdioma = this.nivelSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tespacioIdioma.Nombre = this.nivelSeleccionado.Nombre;\r\n\t\tespacioIdioma.Descripcion = this.nivelSeleccionado.Descripcion;\r\n\t\tespacioIdioma.NombreCorto = this.nivelSeleccionado.NombreCorto;\r\n\t\tthis.nivelSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, espacioIdioma);\r\n\r\n\t\tconst p1Error = this.nivelSeleccionado.FechaAlta === undefined || this.nivelSeleccionado.FechaAlta === null || this.nivelSeleccionado.FechaAlta === '';\r\n\t\tconst p2Error = false; // this.rutaSeleccionada.FechaBaja === '' || this.rutaSeleccionada.FechaBaja === undefined || this.rutaSeleccionada.FechaBaja === null\r\n\r\n\t\t// validacion al editar fecha_alta\r\n\t\tif (value === 'fecha_alta'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_baja\r\n\t\telse if (value === 'fecha_baja'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\tconst p1 = this.fAltaError;\r\n\r\n\t\tif (p1) {\r\n\t\t\tthis.msgs.push({ severity: 'error', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO') });\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion) {\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar() {\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tcancelar() {\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\treturn this.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected guardarNuevo = () => {\r\n\t\tconst that = this;\r\n\t\treturn this.entityManager.newNIVEL()\r\n\t\t.then(function (oNivel) {\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\t\toNivel.IDIOMAS.forEach(ESPACIO_IDIOMA => {\r\n\t\t\t\tconst aux = that.nivelSeleccionado.Idiomas.get(ESPACIO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tESPACIO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tESPACIO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.nivelSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tESPACIO_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t\tESPACIO_IDIOMA.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = that.nivelSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.nivelSeleccionado.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthat.nivelSeleccionado.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\t\toNivel.IdEspacio = idEspacio;\r\n\t\t\toNivel.Nombre = that.nivelSeleccionado.Nombre;\r\n\t\t\toNivel.Descripcion = that.nivelSeleccionado.Descripcion;\r\n\t\t\toNivel.NivelVertical = that.nivelSeleccionado.NivelVertical;\r\n\t\t\toNivel.NombreCorto = that.nivelSeleccionado.NombreCorto;\r\n\t\t\toNivel.FechaAlta = that.nivelSeleccionado.FechaAlta;\r\n\t\t\toNivel.FechaBaja = that.nivelSeleccionado.FechaBaja;\r\n\r\n\t\t\tthat.nivelSeleccionado = oNivel;\r\n\t\t\treturn that.entityManager.getEspacioById(idEspacio);\r\n\t\t})\r\n\t\t.then(function (espacio) {\r\n\t\t\tthat.espacio = espacio;\r\n\t\t\tthat.nivelSeleccionado.ESPACIO = that.espacio;\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.onElementoGuardado.emit(that.nivelSeleccionado);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(that.nivelSeleccionado);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tprotected guardarEdicion = () => {\r\n\t\tconst that = this;\r\n\r\n\t\tthis.guardarMultiIdioma()\r\n\t\t.then(function () {\r\n\t\t\tconst espacioIdioma = that.nivelSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.nivelSeleccionado.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthat.nivelSeleccionado.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\t\tthat.nivelSeleccionado.FechaAlta = that.nivelSeleccionado.FechaAlta;\r\n\t\t\tthat.nivelSeleccionado.FechaBaja = that.nivelSeleccionado.FechaBaja;\r\n\t\t\tthat.nivelSeleccionado.NombreCorto = that.nivelSeleccionado.NombreCorto;\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.onElementoGuardado.emit(that.nivelSeleccionado);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(that.nivelSeleccionado);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.nivelSeleccionado.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newNIVEL_IDIOMA(this.nivelSeleccionado)\r\n\t\t.then(function(NIVEL_IDIOMAs){\r\n\r\n\t\t\tNIVEL_IDIOMAs.forEach(NIVEL_IDIOMA => {\r\n\t\t\t\tconst aux = that.nivelSeleccionado.Idiomas.get(NIVEL_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tNIVEL_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tNIVEL_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/* App-Selector_Idioma */\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.nivelSeleccionado || !this.nivelSeleccionado.Idiomas) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet espacioIdioma = this.nivelSeleccionado.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!espacioIdioma) {\r\n\r\n\t\t\tespacioIdioma = new NivelIdiomaFormulario();\r\n\r\n\t\t\tthis.nivelSeleccionado.Idiomas.set(idioma.value, espacioIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.nivelSeleccionado.Nombre = espacioIdioma.Nombre;\r\n\t\tthis.nivelSeleccionado.Descripcion = espacioIdioma.Descripcion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.nivelSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.nivelSeleccionado.FechaBaja = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNivel.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.Nombre\\\" (ngModelChange)=\\\"inputChanged('Nombre')\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.Descripcion\\\" (ngModelChange)=\\\"inputChanged('Descripcion')\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.X\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.Y\\\" pInputText disabled>\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.NombreSeccion\\\" (ngModelChange)=\\\"inputChanged('NombreSeccion')\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Formularios.contenidosasociados' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Beacons.ninguno' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'Formularios.conexionesactuales' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n {{item.NodoDestino?.SECCION.ALA.NIVEL?.Nombre}} - {{item.NodoDestino?.SECCION.ALA.Nomobre}}\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.CalidadNumBeaconsMin\\\" (ngModelChange)=\\\"inputChanged('CalidadNumBeaconsMin')\\\" pInputText>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.nodoSeleccionado.CalidadPotenciaTxMin\\\" (ngModelChange)=\\\"inputChanged('CalidadPotenciaTxMin')\\\" pInputText>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n {{'Formularios.balizasasociadas' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{'Beacons.ninguna' | translate}}\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNodo.component.html\n// module id = ../../../../../src/app/formularios/FormularioNodo.component.html\n// module chunks = main","import { AlaFormulario } from './../domain/AlaFormulario';\r\nimport { Component, EventEmitter, Input, Output, Inject, forwardRef, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { element } from 'protractor';\r\nimport { NodoFormulario, NodoIdiomaFormulario } from '../domain/NodoFormulario';\r\nimport {InputSwitchModule} from 'primeng/inputswitch';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { Contenido } from '../domain/Contenido';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ConexionFormulario } from '../domain/ConexionFormulario';\r\nimport { Predicate } from 'breeze-client';\r\nimport { AppComponent } from '../app.component';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { PermisosService, Permisos } from '../providers/authentication/permisos.service';\r\nimport { BalizaFormulario } from '../domain/BalizaFormulario';\r\n\r\n@Component({\r\n selector: 'app-formulario-nodo',\r\n templateUrl: './FormularioNodo.component.html'\r\n})\r\n\r\nexport class FormularioNodoComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n\t@Input() nodoSeleccionado: NodoFormulario = new NodoFormulario();\r\n\t@Input() resumenContenidosAsociados = [{ \tTipo: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\tIconoRepresentacion: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\tCantidad: 0 }];\r\n\t@Input() idiomaSeleccionado: Idioma;\r\n\t@Input() edicion: boolean;\r\n\t@Input() tipologias: any[];\r\n\t// @Input() tipologiasSeleccionada: any[];\r\n\t@Input() confirmacionVisible: boolean;\r\n\t@Input() msgs: any[];\r\n\t@Input() visible: boolean = true;\r\n\r\n\t@Input() alaDestinoPortal: AlaFormulario;\r\n\t@Input() alaOrigenPortal: AlaFormulario;\r\n\t@Input() balizaAsociarSeleccionada: BalizaFormulario;\r\n\r\n\t@Output() onElementoDescartado: EventEmitter = new EventEmitter();\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\t@Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n\t@Output() onNodoPortalCrearPressed: EventEmitter = new EventEmitter();\r\n\t@Output() onNodoPortalCancelPressed: EventEmitter = new EventEmitter();\r\n\t@Output() onNodoPortalChange: EventEmitter = new EventEmitter();\r\n\t@Output() onNodoPortalEliminado: EventEmitter = new EventEmitter();\r\n\r\n\t@Output() onAlaPortalChange: EventEmitter = new EventEmitter();\r\n\t@Output() onConexionPortalSeleccionada: EventEmitter = new EventEmitter();\r\n\r\n\tpublic isValid = true;\r\n\tpublic seleccionTipologia: any;\r\n\tpublic selectedPortales: any[] = [];\r\n\tpublic cancelarGuardado = true;\r\n\r\n\tperfilesMovilidad: any[] = [];\r\n\tperfilesMovilidadDefecto: any;\r\n\r\n\tcolsPortal;\r\n\tmsgsPortal=[];\r\n\r\n\ttypes: any[];\r\n\tselectedTypes: string[] = [];\r\n\r\n\toperacion;\r\n\r\n\t/* IDIOMA */\r\n\t// @Input() idiomaSeleccionado: Idioma;\r\n\tidiomas;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\t// Portal\r\n\ttabNODEMenuItems: MenuItem[];\r\n\tactiveNODOMenuItem: MenuItem;\r\n\ttabPortalNodo: boolean = false;\r\n\ttabEditarNodo: boolean = true;\r\n\ttabBalizaNodo: boolean = false;\r\n\tvisibleCrearPortal: boolean = false;\r\n\tseleccionandoNodoDestino: boolean = false;\r\n\t@Input() alasPortal: AlaFormulario[] = [];\r\n\tconexionesConPortales: any[] = [];\r\n\tconexionesPortalSeleccionada: any = new ConexionFormulario();\r\n\tconexionesPortalSeleccionadaVuelta: any = new ConexionFormulario();\r\n\r\n\tblockUI: HTMLElement;\r\n\tspinner: HTMLElement;\r\n\r\n\tmsgInfoBaliza: any[];\r\n\tmsgsComoAsignar: any[];\r\n\tmsgInfoPortal: any[];\r\n\tmsgAvisoAsignar: any[];\r\n\r\n\tpermisos: Permisos = new Permisos();\r\n\tbalizas = [];\r\n\tbalizasMostrar = [];\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate sws: ServiciosWebServiceProvider,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\t\t\tthis.colsPortal = [\r\n\t\t\t\t{ field: 'Nombre', header: this.translate.instant('Formularios.nombre') }\r\n\t\t\t];\r\n\r\n\t\t\tconst that = this;\r\n\t\t\t// Inicializamos Spinner\r\n\t\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\tthis.entityManagerProvider.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t});\r\n\r\n\t\t\tthis.tabNODEMenuItems = [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.editar'),\r\n\t\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\t\tthis.tabNodoSeleccionada(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.portales'),\r\n\t\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\t\tthis.tabPortalesSeleccionada(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.balizas'),\r\n\t\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\t\tthis.tabBalizasSeleccionada(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t];\r\n\t\t\tthis.activeNODOMenuItem = this.tabNODEMenuItems[0];\r\n\t\t\tthis.tabPortalNodo = false;\r\n\t\t\tthis.tabBalizaNodo = false;\r\n\t\t\tthis.tabEditarNodo = true;\r\n\r\n\t\t\tthis.msgInfoBaliza = [];\r\n\t\t\tthis.msgInfoBaliza.push( {severity: 'info', detail: this.translate.instant('Beacons.msgInfoBaliza')} );\r\n\t\t\tthis.msgsComoAsignar = [];\r\n\t\t\tthis.msgsComoAsignar.push( {severity: 'info', detail: this.translate.instant('Beacons.msgsComoAsignar')} );\r\n\r\n\t\t\tthis.msgInfoPortal = [];\r\n\t\t\tthis.msgInfoPortal.push( {severity: 'info', detail: this.translate.instant('Formularios.msgInfoPortal')} );\r\n\r\n\t\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.comprobarPermisos();\r\n\t}\r\n\r\n\tngOnDestroy(){\r\n\t\tif (this.cancelarGuardado) {\r\n\t\t\tthis.entityManagerProvider.RejectChanges();\r\n\t\t}\r\n\t\tthis.seleccionandoNodoDestino = false;\r\n\t\tthis.onAlaPortalChange.emit(this.alaOrigenPortal);\r\n\t\t// this.onNodoPortalCancelPressed.emit();\r\n\t}\r\n\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\r\n\t\tlet cambionodoSeleccionado = changes['nodoSeleccionado'];\r\n\r\n\t\t// Cogemos las conexiones en las que el nodo es origen y esta conectado con otro portal\r\n\t\tif (cambionodoSeleccionado && cambionodoSeleccionado.currentValue.ENTIDAD.CONEXIONS_NODOS_ORIGEN) {\r\n\t\t\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\t\t\tthis.confirmacionVisible = false;\r\n\t\t\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\r\n\t\t\t\tconst nodoOrigen: NodoFormulario = cambionodoSeleccionado.currentValue;\r\n\t\t\t\tthis.alaOrigenPortal = new AlaFormulario(nodoOrigen.ENTIDAD.SECCION.ALA);\r\n\r\n\t\t\t\tthis.conexionesConPortales = [];\r\n\t\t\t\tnodoOrigen.ENTIDAD.CONEXIONS_NODOS_ORIGEN.forEach(elemento => {\r\n\t\t\t\t\tif (elemento.NodoDestino.EsPortal && elemento.NodoOrigen.EsPortal) {\r\n\t\t\t\t\t\tthis.conexionesConPortales.push(elemento);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.conexionesConPortales = this.conexionesConPortales.sort(\r\n\t\t\t\t\t(a, b) => a.NodoDestino.SECCION.ALA.NIVEL.NivelVertical - b.NodoDestino.SECCION.ALA.NIVEL.NivelVertical\r\n\t\t\t\t);\r\n\t\t}\r\n\r\n\t\tcambionodoSeleccionado = changes['balizaAsociarSeleccionada'];\r\n\t\tif (cambionodoSeleccionado && this.tabBalizaNodo) {\r\n\r\n\t\t\tconst baliza: BalizaFormulario = cambionodoSeleccionado.currentValue;\r\n\r\n\t\t\tconsole.log('Vamos a asociar: ' + baliza.Id);\r\n\r\n\t\t\t\r\n\t\t\tif(baliza.ENTIDAD){\r\n\t\t\t\tif(baliza.ENTIDAD.TIPOLOGIA_BALIZA){\r\n\t\t\t\t\tif(baliza.ENTIDAD.TIPOLOGIA_BALIZA.esBeacon === true || baliza.ENTIDAD.TIPOLOGIA_BALIZA.esSniffer === true){\r\n\t\t\t\t\t\tconst encontrada = this.nodoSeleccionado.balizas.find( x => x.Id === baliza.Id);\r\n\t\t\t\t\t\tif (encontrada) {\r\n\t\t\t\t\t\t\tthis.nodoSeleccionado.balizas = this.nodoSeleccionado.balizas.filter( x => x.Id !== baliza.Id);\r\n\t\t\t\t\t\t\tthis.balizasMostrar = this.balizasMostrar.filter( x => x.Id !== baliza.Id);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t//console.log(baliza)\r\n\t\t\t\t\t\t\tthis.nodoSeleccionado.balizas.push(baliza);\r\n\t\t\t\t\t\t\tthis.balizasMostrar.push(baliza)\r\n\t\t\t\t\t\t\t//console.log(this.nodoSeleccionado.balizas)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tconsole.log(this.nodoSeleccionado.balizas)\r\n\t\t\t\t\t\tconsole.log(this.balizasMostrar)\t\r\n\t\t\t\t\t\tthis.msgAvisoAsignar = [];\r\n\t\t\t\t\t\tthis.msgAvisoAsignar.push( {severity: 'warn', detail: 'La tipología de esta baliza impide asignarla o desasignarla al nodo.'} );\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.msgAvisoAsignar = [];\r\n\t\t\t\t\t\t}, 3000);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tpublic onTipologiaChange(event) {\r\n\r\n\t}\r\n\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del nodo al idioma seleccionado\r\n\t\tconst nodoIdioma = this.nodoSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tnodoIdioma.Nombre = this.nodoSeleccionado.Nombre;\r\n\t\tnodoIdioma.Descripcion = this.nodoSeleccionado.Descripcion;\r\n\t\tnodoIdioma.NombreSeccion = this.nodoSeleccionado.NombreSeccion;\r\n\t\tthis.nodoSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, nodoIdioma);\r\n\t}\r\n\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.nodoSeleccionado && (this.nodoSeleccionado.Id ? true : false);\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\tif (!this.nodoSeleccionado.Nombre) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\tthis.onFormularioValidation.emit(this.isValid);\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tthis.confirmacionVisible = false;\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic guardarNuevo () {\r\n\t}\r\n\r\n\tpublic guardarEdicion () {\r\n\t\tconst that = this;\r\n\t\tthis.cancelarGuardado = false;\r\n\t\tconst promises: any[] = [];\r\n\t\tconst nodosConectados: any[] = [];\r\n\t\tconst nodosNoConectados: any[] = [];\r\n\r\n\t\tthis.guardarMultiIdioma()\r\n\t\t.then(function(){\r\n\t\t\tif (that.nodoSeleccionado === undefined || that.nodoSeleccionado === null) {\r\n\t\t\t\treturn that.translate.instant('Formularios.noseleccionado');\r\n\t\t\t}\r\n\t\t\tif (!that.nodoSeleccionado.Id) {\r\n\t\t\t\treturn that.translate.instant('Formularios.operacionnovalida');\r\n\t\t\t}\r\n\r\n\t\t\tconst nodoIdioma = that.nodoSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.nodoSeleccionado.Nombre = nodoIdioma.Nombre ? nodoIdioma.Nombre : '';\r\n\t\t\tthat.nodoSeleccionado.Descripcion = nodoIdioma.Descripcion ? nodoIdioma.Descripcion : '';\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.Nombre = that.nodoSeleccionado.Nombre;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.Descripcion = that.nodoSeleccionado.Descripcion;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.X = that.nodoSeleccionado.X;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.Y = that.nodoSeleccionado.Y;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.IdSeccion = that.nodoSeleccionado.IdSeccion;\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.CalidadPotenciaTxMin = that.nodoSeleccionado.CalidadPotenciaTxMin;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.CalidadNumBeaconsMin = that.nodoSeleccionado.CalidadNumBeaconsMin;\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.IdTipologia = that.nodoSeleccionado.TIPOLOGIA_NODO.Id;\r\n\t\t\tif (that.nodoSeleccionado.TIPOLOGIA_NODO.MostrarDestinoSugerido) {\r\n\t\t\t\tthat.nodoSeleccionado.ENTIDAD.EsPDI = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthat.nodoSeleccionado.ENTIDAD.EsPDI = false;\r\n\t\t\t}\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.EsEntrada = that.nodoSeleccionado.EsEntrada;\r\n\r\n\t\t\tthat.nodoSeleccionado.NODO_PLANO.setNombre(that.nodoSeleccionado.Nombre);\r\n\t\t\tif (that.nodoSeleccionado.ENTIDAD.TIPOLOGIA_NODO) {\r\n\t\t\t\tthat.nodoSeleccionado.NODO_PLANO.setSimbolo(that.nodoSeleccionado.ENTIDAD.TIPOLOGIA_NODO.IconoRepresentacion);\r\n\t\t\t}\r\n\r\n\t\t\tthat.nodoSeleccionado.NODO_PLANO.conexiones.forEach(conexionPlano => {\r\n\t\t\t\tthat.nodoSeleccionado.ENTIDAD.CONEXIONS_NODOS_ORIGEN.forEach(conexion => {\r\n\t\t\t\t\tif (conexion.Id === conexionPlano.getId()) {\r\n\t\t\t\t\t\tconexion.CoordenadasCamino = JSON.stringify(conexionPlano.getRuta());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.nodoSeleccionado.ENTIDAD.CONEXIONS_NODOS_DESTINO.forEach(conexion => {\r\n\t\t\t\t\tif (conexion.Id === conexionPlano.getId()) {\r\n\t\t\t\t\t\tconexion.CoordenadasCamino = JSON.stringify(conexionPlano.getRuta());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// Comprobamos si el nodo antes de la edicion era portal y despues de la edicion no es portal:\r\n\t\t\t// Entonces borramos todas las conexiones entre el y los nodos portal que existieran\r\n\t\t\tif (!that.nodoSeleccionado.EsPortal && that.nodoSeleccionado.ENTIDAD.EsPortal ) {\r\n\r\n\t\t\t\tconsole.log('Borrar todas las conexiones con los portales');\r\n\t\t\t\tconst conexionesBorradas = [];\r\n\r\n\t\t\t\t// CONEXIONS_NODOS_DESTINO\r\n\t\t\t\t let aux = that.nodoSeleccionado.ENTIDAD.CONEXIONS_NODOS_DESTINO.filter( x => x.NodoDestino.EsPortal && x.NodoOrigen.EsPortal);\r\n\r\n\t\t\t\t for (let index = aux.length - 1; index >= 0; index--) {\r\n\r\n\t\t\t\t\tconst elemento = aux[index];\r\n\t\t\t\t\tconexionesBorradas.push(elemento);\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tthat.entityManagerProvider.deleteCascadaCONEXION_NODO(elemento);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.log('ERROR: error al leer un ALA: ' + e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// CONEXIONS_NODOS_ORIGEN\r\n\t\t\t\taux = that.nodoSeleccionado.ENTIDAD.CONEXIONS_NODOS_ORIGEN.filter( x => x.NodoDestino.EsPortal && x.NodoOrigen.EsPortal);\r\n\t\t\t\tfor (let index = aux.length - 1; index >= 0; index--) {\r\n\r\n\t\t\t\t\tconst elemento = aux[index];\r\n\t\t\t\t\tconexionesBorradas.push(elemento);\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tthat.entityManagerProvider.deleteCascadaCONEXION_NODO(elemento);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.log('ERROR: error al leer un ALA: ' + e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthat.onNodoPortalEliminado.emit({ result: true, element: conexionesBorradas });\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Si el nodo seleccionado es portal tenemos que revisar que existan conexiones entre el y los nodos portal que se esten seleccionados\r\n\t\t\tif (that.nodoSeleccionado.EsPortal) {\r\n\r\n\t\t\t\tthat.selectedPortales.forEach(nodo => {\r\n\t\t\t\t\tconst conexionesConPortales = that.nodoSeleccionado.ENTIDAD.CONEXIONS_NODOS_ORIGEN.filter( x => x.NodoDestino.Id === nodo.Id);\r\n\r\n\t\t\t\t\tif (conexionesConPortales.length > 0) {\r\n\t\t\t\t\t\tnodosConectados.push(nodo);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tnodosNoConectados.push(nodo);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tnodosNoConectados.forEach(nodo => {\r\n\t\t\t\t\t// Nueva conexion Origen\r\n\t\t\t\t\tpromises.push(that.entityManagerProvider.newCONEXION_NODOS());\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.EsPortal = that.nodoSeleccionado.EsPortal;\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(conexiones){\r\n\r\n\t\t\tfor (let index = 0; index < nodosNoConectados.length; index++) {\r\n\t\t\t\tconst nodo = nodosNoConectados[index];\r\n\t\t\t\tconst conexionOrigen = conexiones[index];\r\n\t\t\t\tconsole.log('TODO: para cada Nueva conexion Origen Crear un peso_conexion para cada conexion con cada perfil de movilidad');\r\n\t\t\t}\r\n\r\n\t\t\tnodosNoConectados.forEach(nodo => {\r\n\t\t\t\t// Nueva conexion Destino\r\n\t\t\t\tpromises.push(that.entityManagerProvider.newCONEXION_NODOS());\r\n\t\t\t});\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(conexiones){\r\n\r\n\t\t\tfor (let index = 0; index < nodosNoConectados.length; index++) {\r\n\t\t\t\tconst nodo = nodosNoConectados[index];\r\n\t\t\t\tconst conexionDestino = conexiones[index];\r\n\t\t\t\tconsole.log('TODO: para cada Nueva Destino Origen Crear un peso_conexion para cada conexion con cada perfil de movilidad');\r\n\t\t\t}\r\n\r\n\t\t\t// return that.entityManagerProvider.saveChanges();\r\n\t\t\tconst token = that.authService.getToken();\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\tconst idAla = that.nodoSeleccionado.ENTIDAD.SECCION.ALA.Id;\r\n\r\n\t\t\treturn that.sws.wsObtenerLLFromXY(token, that.nodoSeleccionado.X, that.nodoSeleccionado.Y, idEspacio, idAla).toPromise();\r\n\r\n\t\t})\r\n\t\t.then(function (ll) {\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.Latitud = ll.Latitud;\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.Longitud = ll.Longitud;\r\n\r\n\t\t\tconst borrar = []; // baliza_has_nodo\r\n\t\t\tconst crear: BalizaFormulario[] = []; // BALIZA\r\n\t\t\tthat.nodoSeleccionado.balizas.forEach(baliza => {\r\n\r\n\t\t\t\tconst encontrado = that.nodoSeleccionado.ENTIDAD.BALIZAS.find( b => b.IdBaliza === baliza.Id);\r\n\t\t\t\tif (!encontrado) {\r\n\t\t\t\t\tcrear.push(baliza.ENTIDAD);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tthat.nodoSeleccionado.ENTIDAD.BALIZAS.forEach(baliza_has_nodo => {\r\n\r\n\t\t\t\tconst encontrado = that.nodoSeleccionado.balizas.find( b => b.Id === baliza_has_nodo.IdBaliza);\r\n\t\t\t\tif (!encontrado) {\r\n\t\t\t\t\tborrar.push(baliza_has_nodo);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t\treturn that.guardarRelacionBalizas(borrar, crear);\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: true, element: that.nodoSeleccionado });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn msg;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.nodoSeleccionado });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarRelacionBalizas(borrar, crear: BalizaFormulario[]){\r\n\t\tconst that = this;\r\n\t\tconst promises = [];\r\n\t\tthis.entityManagerProvider.deleteEntityArray(borrar);\r\n\r\n\t\tcrear.forEach(baliza => {\r\n\t\t\tpromises.push(that.entityManagerProvider.newNODO_has_BALIZA());\r\n\t\t});\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function(oNodo_haz_balizaS){\r\n\r\n\t\t\tfor (let index = 0; index < oNodo_haz_balizaS.length; index++) {\r\n\t\t\t\tconst n_b = oNodo_haz_balizaS[index].result;\r\n\t\t\t\tconst b = crear[index];\r\n\t\t\t\tconst n = that.nodoSeleccionado;\r\n\r\n\t\t\t\tn_b.NODO_Id = n.Id;\r\n\t\t\t\tn_b.BALIZA_Id = b.Id;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManagerProvider.deleteEntityArray(this.nodoSeleccionado.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManagerProvider.newNodo_IDIOMA(this.nodoSeleccionado.ENTIDAD)\r\n\t\t.then(function(NODO_IDIOMAs){\r\n\r\n\t\t\tNODO_IDIOMAs.forEach(NODO_IDIOMA => {\r\n\t\t\t\tconst aux = that.nodoSeleccionado.Idiomas.get(NODO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tNODO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tNODO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t.then(function () {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoEliminado.emit({ result: true, element: that.nodoSeleccionado });\r\n\t\t\tthat.authService.relogin();\r\n\r\n\t\t})\r\n\t\t.catch(function () {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoEliminado.emit({ result: false, element: that.nodoSeleccionado });\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminarSeleccionado () {\r\n\t\tconst that = this;\r\n\t\tif (this.nodoSeleccionado !== undefined) {\r\n\t\t\treturn this.entityManagerProvider.deleteNODO(this.nodoSeleccionado.ENTIDAD);\r\n\t\t\t// this.entityManagerProvider.deleteCascadaNODOS(this.nodoSeleccionado.ENTIDAD);\r\n\t\t\t// return this.entityManagerProvider.saveChanges();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\t/* App-Selector_Idioma */\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del nodo al idioma seleccionado\r\n\t\tlet nodoIdioma = this.nodoSeleccionado.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!nodoIdioma) {\r\n\r\n\t\t\tnodoIdioma = new NodoIdiomaFormulario();\r\n\r\n\t\t\tthis.nodoSeleccionado.Idiomas.set(idioma.value, nodoIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de nodoFormulario con los valores del idioma seleccionado\r\n\t\tthis.nodoSeleccionado.Nombre = nodoIdioma.Nombre;\r\n\t\tthis.nodoSeleccionado.Descripcion = nodoIdioma.Descripcion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\r\n\tonPortalChange($event){\r\n\t\tthis.onNodoPortalChange.emit({ result: true, element: {$event, nodo: this.nodoSeleccionado} });\r\n\t}\r\n\r\n\talaPortalChange(alaPortal){\r\n\t\tthis.alaDestinoPortal = alaPortal.value;\r\n\t\tthis.onAlaPortalChange.emit(this.alaDestinoPortal);\r\n\t}\r\n\r\n\t/* TAB_MENU */\r\n\ttabNodoSeleccionada(event){\r\n\t\tthis.activeNODOMenuItem = this.tabNODEMenuItems[0];\r\n\t\tthis.tabPortalNodo = false;\r\n\t\tthis.tabBalizaNodo = false;\r\n\t\tthis.tabEditarNodo = true;\r\n\t\tthis.seleccionandoNodoDestino = false;\r\n\t\tthis.onNodoPortalCancelPressed.emit();\r\n\t\tif (!this.visibleCrearPortal) {\r\n\t\t\tthis.onAlaPortalChange.emit(this.alaOrigenPortal);\r\n\t\t}\r\n\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\ttabPortalesSeleccionada(event){\r\n\t\tthis.activeNODOMenuItem = this.tabNODEMenuItems[1];\r\n\t\tthis.tabPortalNodo = true;\r\n\t\tthis.tabBalizaNodo = false;\r\n\t\tthis.tabEditarNodo = false;\r\n\t\tthis.seleccionandoNodoDestino = false;\r\n\t\tthis.onNodoPortalCancelPressed.emit();\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\r\n\t\tthis.msgsPortal = [];\r\n\t\tif (!this.nodoSeleccionado.EsPortal) {\r\n\t\t\tthis.msgsPortal.push({severity: 'warn', detail: this.translate.instant('Mapas.avisoportales')});\r\n\t\t}\r\n\t}\r\n\r\n\ttabBalizasSeleccionada(event){\r\n\t\tthis.activeNODOMenuItem = this.tabNODEMenuItems[2];\r\n\t\tthis.seleccionandoNodoDestino = false;\r\n\t\tthis.onNodoPortalCancelPressed.emit();\r\n\t\tthis.tabPortalNodo = false;\r\n\t\tthis.tabBalizaNodo = true;\r\n\t\tthis.tabEditarNodo = false;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t\tconst that = this;\r\n\t\tthat.nodoSeleccionado.balizas.forEach(baliza => {\r\n\t\t\tif(baliza.ENTIDAD){\r\n\t\t\t\tif(baliza.ENTIDAD.TIPOLOGIA_BALIZA){\r\n\t\t\t\t\tif(baliza.ENTIDAD.TIPOLOGIA_BALIZA.esBeacon === true || baliza.ENTIDAD.TIPOLOGIA_BALIZA.esSniffer === true){\r\n\t\t\t\t\t\tthat.balizasMostrar.push(baliza);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log(that.balizasMostrar)\r\n\t\treturn this.entityManagerProvider.getBALIZA()\r\n\t\t.then(function(balizas){\r\n\t\t\tthat.balizas = balizas;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t// PORTAL\r\n\tmostrarCrearPortal(mostrar){\r\n\r\n\t\tif (mostrar) {\r\n\t\t\tthis.seleccionandoNodoDestino = true;\r\n\t\t\tthis.onNodoPortalCrearPressed.emit();\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.seleccionenododestino'));\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.seleccionandoNodoDestino = false;\r\n\t\t\tthis.blockUI.style.display = 'inherit';\r\n\t\t\tthis.appComponent.hideAlert();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tverConexion(item){\r\n\t\tconsole.log(item);\r\n\t}\r\n\r\n\tobtenerPERFIL_MOVILIDAD_CIUDADANO(){\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\tconst includes = '';\r\n\r\n\t\tthat.perfilesMovilidad = [];\r\n\t\tthat.perfilesMovilidadDefecto = null;\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\treturn entityManager.getPERFIL_MOVILIDAD_CIUDADANO(predicado, undefined)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY PERFILES');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('PERFILES CARGADOS CORRECTAMENTE = ' + entidades.length);\r\n\r\n\t\t\t\tthat.perfilesMovilidad = entidades;\r\n\t\t\t\tif (that.perfilesMovilidad && that.perfilesMovilidad.length > 0) {\r\n\t\t\t\t\tthat.perfilesMovilidadDefecto = that.perfilesMovilidad[0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn that.perfilesMovilidad;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tonConexionNodoSeleccionada(item: any){\r\n\t\tthis.visibleCrearPortal = !this.visibleCrearPortal;\r\n\r\n\t\tthis.onConexionPortalSeleccionada.emit(item);\r\n\r\n\t\tthis.seleccionandoNodoDestino = false;\r\n\t\tthis.onNodoPortalCancelPressed.emit();\r\n\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t// BALIZAS\r\n\tasignarBalizaPressed(event){\r\n\t\tconsole.log('asignarBalizaPressed');\r\n\t\tconsole.log(event);\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioNodo.component.ts","module.exports = \"
      \\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{item.value.ENTIDAD.Codigo}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      {{idioma.value.title}}
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.perfilSeleccionado.Nomobre\\\" (ngModelChange)=\\\"inputChanged('Nomobre')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPerfilMovilidad.component.html\n// module id = ../../../../../src/app/formularios/FormularioPerfilMovilidad.component.html\n// module chunks = main","import { Component, EventEmitter, Input, Output, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\r\n\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\n\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { PerfilIdiomaFormulario, PerfilFormulario } from '../domain/PerfilFormulario';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { PermisosService, Permisos } from '../providers/authentication/permisos.service';\r\nimport { Constantes } from '../domain/constantes';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-perfil',\r\n\ttemplateUrl: './FormularioPerfilMovilidad.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\nexport class FormularioPerfilMovilidadComponent implements OnDestroy, OnChanges{\r\n\r\n\t@Input() perfilSeleccionado: any;\r\n\t@Input() edicion: boolean;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\tspinner: HTMLElement;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic cancelarGuardado = true;\r\n\tconstructor(\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (this.cancelarGuardado) {\r\n\t\t\tthis.entityManager.RejectChanges();\r\n\t\t}\r\n\t}\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst rutaSugeridaIdioma = this.perfilSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\trutaSugeridaIdioma.Nombre = this.perfilSeleccionado.Nomobre;\r\n\t\trutaSugeridaIdioma.Descripcion = this.perfilSeleccionado.Descripcion;\r\n\t\tthis.perfilSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, rutaSugeridaIdioma);\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tif (this.edicion) {\r\n\t\t\treturn this.guardarEdicion();\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn this.guardarNuevo();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic guardarNuevo(){\r\n\t\tconst that = this;\r\n\t\tthis.cancelarGuardado = false;\r\n\t\treturn that.entityManager.newPERFIL_MOVILIDAD_CIUDADANO()\r\n\t\t.then(function (oPerfil) {\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\toPerfil.IdEspacio = idEspacio;\r\n\r\n\t\t\toPerfil.IDIOMAS.forEach(PERFIL_MOVILIDAD_IDIOMA => {\r\n\t\t\t\tconst aux = that.perfilSeleccionado.Idiomas.get(PERFIL_MOVILIDAD_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tPERFIL_MOVILIDAD_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.perfilSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tPERFIL_MOVILIDAD_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tconst perfilIdioma = that.perfilSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.perfilSeleccionado.Nomobre = perfilIdioma.Nombre ? perfilIdioma.Nombre : '';\r\n\r\n\t\t\toPerfil.Nomobre = that.perfilSeleccionado.Nomobre;\r\n\t\t\toPerfil.PesoMAximo = Constantes.PESO_DEFAULT; // that.perfilSeleccionado.PesoMAximo;\r\n\r\n\t\t\tthat.perfilSeleccionado.Id = oPerfil.Id;\r\n\r\n\t\t\tthat.perfilSeleccionado.ENTIDAD = oPerfil;\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\tconsole.log('PERFIL Guardado CORRECTAMENTE = ' + that.perfilSeleccionado.Nombre);\r\n\t\t\tthat.onElementoGuardado.emit(that.perfilSeleccionado);\r\n\t\t\t// return true;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(that.perfilSeleccionado);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tguardarEdicion(){\r\n\t\tconst that = this;\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function () {\r\n\t\t\tconst perfilIdioma = that.perfilSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.perfilSeleccionado.Nomobre = perfilIdioma.Nombre ? perfilIdioma.Nombre : '';\r\n\r\n\t\t\tthat.perfilSeleccionado.ENTIDAD.Nomobre = that.perfilSeleccionado.Nomobre;\r\n\t\t\tthat.perfilSeleccionado.ENTIDAD.PesoMAximo = Constantes.PESO_DEFAULT; // that.perfilSeleccionado.PesoMAximo;\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\tconsole.log('PERFIL Guardado CORRECTAMENTE = ' + that.perfilSeleccionado.ENTIDAD.Nomobre);\r\n\t\t\tthat.onElementoGuardado.emit(that.perfilSeleccionado);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(that.perfilSeleccionado);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.perfilSeleccionado.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newPERFIL_MOVILIDAD_CIUDADANO_IDIOMA(this.perfilSeleccionado.ENTIDAD)\r\n\t\t.then(function(PERFIL_MOVILIDAD_CIUDADANOs){\r\n\r\n\t\t\tPERFIL_MOVILIDAD_CIUDADANOs.forEach(PERFIL_MOVILIDAD_CIUDADANO => {\r\n\t\t\t\tconst aux = that.perfilSeleccionado.Idiomas.get(PERFIL_MOVILIDAD_CIUDADANO.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tPERFIL_MOVILIDAD_CIUDADANO.Nombre = aux.Nombre;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(that.perfilSeleccionado);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet perfilIdioma = this.perfilSeleccionado.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!perfilIdioma) {\r\n\r\n\t\t\tperfilIdioma = new PerfilIdiomaFormulario();\r\n\r\n\t\t\tthis.perfilSeleccionado.Idiomas.set(idioma.value, perfilIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.perfilSeleccionado.Nomobre = perfilIdioma.Nombre;\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPerfilMovilidad.component.ts","module.exports = \"
      \\r\\n\\r\\n\\t
      \\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"nodoSeleccionado.SECCION.Nombre\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t 0\\\" [ngModel]=\\\"nodoSeleccionado.Nombre\\\" pInputText>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"nodoSeleccionado.X\\\" pInputText>\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t 0\\\" [(ngModel)]=\\\"nodoSeleccionado.Y\\\" pInputText>\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n\\t\\r\\n\\t\\r\\n\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPosicionarContenido.component.html\n// module id = ../../../../../src/app/formularios/FormularioPosicionarContenido.component.html\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, Inject, forwardRef, OnDestroy } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { NodoFormulario } from '../domain/NodoFormulario';\r\nimport { AppComponent } from '../app.component';\r\n\r\n@Component({\r\n selector: 'app-formulario-posicionar-contenido',\r\n templateUrl: './FormularioPosicionarContenido.component.html'\r\n})\r\n\r\nexport class FormularioPosicionarContenidoComponent implements OnDestroy{\r\n\r\n\t@Input() nodosSeleccionados: any[] = [];\r\n\t@Input() msgs: any[];\r\n\t@Input() visible: boolean = true;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\t@Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n\tpublic isValid = true;\r\n\tpublic color;\r\n\r\n\tpublic operacion;\r\n\r\n\tblockUI: HTMLElement;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService\r\n\t\t) {\r\n\r\n\t\t\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\t\t\tif (this.blockUI) {\r\n\t\t\t\t\t// this.blockUI.style.display = 'inherit';\r\n\t\t\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t}\r\n\r\n\taplicar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\t\tthis.authService.relogin();\r\n\r\n\t}\r\n\r\n\tposicionar(){\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.authService.relogin();\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioPosicionarContenido.component.ts","module.exports = \"
      \\r\\n \\r\\n

      {{contenidosSeleccionados?.Titulo}}

      \\r\\n \\r\\n \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioQR.component.html\n// module id = ../../../../../src/app/formularios/FormularioQR.component.html\n// module chunks = main","\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, ViewChild, SimpleChanges, OnChanges, OnInit } from '@angular/core';\r\nimport { Message } from 'primeng/components/common/api';\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TipologiaContenidoFormulario } from '../domain/TipologiaContenidoFormulario';\r\nimport { AppComponent } from '../app.component';\r\nimport { ImageCropperComponent, CropperSettings } from 'ngx-img-cropper';\r\nimport { Contenido, ContenidoIdiomaFormulario } from '../domain/Contenido';\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-QR',\r\n\ttemplateUrl: './FormularioQR.component.html'\r\n})\r\n\r\n\r\nexport class FormularioQR implements OnDestroy, OnChanges, OnInit { // extends FormGroup { // extends FormularioBaseComponent {\r\n @Input() contenidosSeleccionados: Contenido = new Contenido();\r\n\tconstructor(\r\n private appComponent: AppComponent,\r\n\tprivate entityManager: EntityManagerProvider,\r\n\tpublic authService: AuthenticationService,\r\n\tpublic sws: ServiciosWebServiceProvider)\r\n\t{\r\n\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\t\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\r\n\t\r\n\t\r\n\t}\r\n \r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioQR.component.ts","module.exports = \"
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\r\\n 0\\\" [(ngModel)]=\\\"this.seccionSeleccionada.Nombre\\\" (ngModelChange)=\\\"inputChanged('Nombre')\\\" pInputText>\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\r\\n 0\\\" [(ngModel)]=\\\"this.seccionSeleccionada.Descripcion\\\" (ngModelChange)=\\\"inputChanged('Descripcion')\\\" pInputText>\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      0\\\" >\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\r\\n 0\\\" [(ngModel)]=\\\"this.seccionSeleccionada.IdAlternativo\\\" (ngModelChange)=\\\"inputChanged('IdAlternativo')\\\"pInputText disabled>\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.html\n// module id = ../../../../../src/app/formularios/FormularioSeccion.component.html\n// module chunks = main","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".eyedropper {\\n font-size: 20px;\\n border-color: #444;\\n border-radius: 3px;\\n border-width: 1px;\\n border-style: solid;\\n cursor: pointer; }\\n\\n.eyedropSelected {\\n border-color: #22aa22;\\n color: #22aa22; }\\n\\n.cuadroColor {\\n height: 50px;\\n border-radius: 3px;\\n width: 50px;\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.scss\n// module id = ../../../../../src/app/formularios/FormularioSeccion.component.scss\n// module chunks = main","import { IdiomaService } from './../providers/idioma/idioma.service';\r\nimport { Component, EventEmitter, Input, Output, ViewChild, Inject, forwardRef, OnDestroy, AfterViewInit, OnChanges } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { element } from 'protractor';\r\nimport { SeccionFormulario, SeccionIdiomaFormulario } from '../domain/SeccionFormulario';\r\nimport { VIEWPORT_RULER_PROVIDER_FACTORY } from '@angular/cdk/scrolling';\r\nimport { ColorPickerModule, SelectItem } from 'primeng/primeng';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { Permisos, PermisosService } from '../providers/authentication/permisos.service';\r\nimport { AppComponent } from '../app.component';\r\nimport { IdiomaCalendario } from '../domain/IdiomaCalendatio';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport * as allSettled from 'promise-all-settled';\r\n\r\n\r\n@Component({\r\n selector: 'app-formulario-seccion',\r\n templateUrl: './FormularioSeccion.component.html',\r\n styleUrls: ['./FormularioSeccion.component.scss'],\r\n})\r\n\r\nexport class FormularioSeccionComponent implements OnDestroy, AfterViewInit, OnChanges{\r\n\t[x: string]: any;\r\n\r\n @Input() seccionSeleccionada: SeccionFormulario = new SeccionFormulario();\r\n @Input() edicion: boolean;\r\n @Input() confirmacionVisible: boolean;\r\n @Input() apareceBoton: boolean = false;\r\n @Input() msgs: any[];\r\n @Input() visible: boolean = true;\r\n @Input() colorSeleccionado: string = 'rgba(0,0,0,0.4)';\r\n @Input() opcionesSelectorTipologia: any[] = [];\r\n\r\n\r\n @Output() onEyedropperSelected: EventEmitter = new EventEmitter();\r\n @Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n @Output() onElementoError: EventEmitter = new EventEmitter();\r\n @Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n @Output() onFormularioValidation: EventEmitter = new EventEmitter();\r\n\r\n\tpublic isValid = true;\r\n\tpublic color;\r\n\r\n\tpublic operacion;\r\n\r\n\tprivate isEyedropSelected = false;\r\n\tprivate classEyedrop = [];\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\tMapa_plano_seccion_formulario = 0;\r\n\r\n\tspinner: HTMLElement;\r\n\tpublic permiteContenidos: boolean = false;\r\n\r\n\t//Tipologías\r\n\tpublic tipologias_seleccionadas: any[] = [];\r\n\tpublic muestraTipologias: boolean = false;\r\n\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService\r\n\t){\r\n\t\tconst that = this;\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\r\n\t\tthis.entityManagerProvider.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t\t/*if(this.seccionSeleccionada.FechaBaja !== null){\r\n\t\t\tthis.apareceBoton = true;\r\n\t\t}*/\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\t// Nada\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\r\n\t}\r\n\tcomprobacionTipologia(){\r\n\t\t//this.muestraTipologias = false;\r\n\t\tsetTimeout(() => {\r\n\t\t\tif(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0]){\r\n\t\t\t\r\n\t\t\t\tif(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0].Activa === false) {\r\n\t\t\t\t\tthis.seccionSeleccionada.TIPOLOGIAS_SECCION[0] = null;\r\n\t\t\t\t\tthis.opcionesSelectorTipologia = this.opcionesSelectorTipologia.filter(o => o.Activa === true);\r\n\t\t\t\t\tthis.muestraTipologias = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tthis.opcionesSelectorTipologia = this.opcionesSelectorTipologia.filter(o => o.Activa === true);\r\n\t\t\t\tthis.muestraTipologias = true;\r\n\t\t\t}\r\n\t\t}, 250);\r\n\t}\r\n\r\n\tngOnChanges(change){\r\n\r\n\t\tif ( this.isEyedropSelected ){\r\n\t\t\tthis.actualizaColor();\r\n\t\t}\r\n\r\n\r\n\r\n\t\t// si el cambio ha sido en el color no actualizamos el idioma\r\n\t\tif (change.colorSeleccionado === undefined) {\r\n\t\t\tif (this.idiomaDefecto){\r\n\t\t\t\tthis.setIdioma(this.idiomaDefecto);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (change.seccionSeleccionada && change.seccionSeleccionada.previousValue && change.seccionSeleccionada.previousValue.FechaBaja !== null){\r\n\t\t\tthis.apareceBoton = true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.permiteContenidos = false;\r\n\t\t\tthis.apareceBoton = false;\r\n\t\t}\r\n\t\tconsole.log(this.seccionSeleccionada)\r\n\t\tthis.muestraTipologias = false;\r\n\t\tsetTimeout(() => {\r\n\t\t\tif(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0]){\r\n\t\t\t\r\n\t\t\t\tif(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0].Activa === false && this.opcionesSelectorTipologia.length > 0) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet existe = this.opcionesSelectorTipologia.find(o => o === this.seccionSeleccionada.TIPOLOGIAS_SECCION[0]);\r\n\t\t\t\t\tif(!existe){\r\n\t\t\t\t\t\tthis.opcionesSelectorTipologia.push(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.muestraTipologias = true;\r\n\t\t\t\t}else if(this.seccionSeleccionada.TIPOLOGIAS_SECCION[0].Activa === true && this.opcionesSelectorTipologia.length > 0){\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.opcionesSelectorTipologia = this.opcionesSelectorTipologia.filter(o => o.Activa === true);\r\n\t\t\t\t\tthis.muestraTipologias = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.muestraTipologias = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tconsole.log(this.opcionesSelectorTipologia);\r\n\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\tthis.muestraTipologias = true;\r\n\t\t\t}\r\n\t\t}, 250);\r\n\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tthis.Mapa_plano_seccion_formulario = 0;\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.entityManagerProvider.getFUNCIONALIDADESbyUSUARIO(userId)\r\n\t\t.then(function(funcionalidades){\r\n\r\n\t\t\tif (funcionalidades) {\r\n\t\t\t\tfuncionalidades.forEach(funcion => {\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD) {\r\n\t\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_seccion_formulario) {\r\n\t\t\t\t\t\t\tthat.Mapa_plano_seccion_formulario = funcion.Tipo;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n/* ************************************************************************** */\r\n/* COMUN FORMULARIO */\r\n/* ************************************************************************** */\r\n\r\n\tinputChanged(value) {\r\n\t\tif(value === 'FechaBaja'){\r\n\t\t\tif(this.seccionSeleccionada.FechaBaja !== null){\r\n\t\t\t\tconsole.log(\"Ha cambiado la fecha\");\r\n\t\t\t\tthis.apareceBoton = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.apareceBoton = false;\r\n\t\t\t\tthis.permiteContenidos = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst seccionIdioma = this.seccionSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tseccionIdioma.Nombre = this.seccionSeleccionada.Nombre;\r\n\t\tseccionIdioma.Descripcion = this.seccionSeleccionada.Descripcion;\r\n\t\tthis.seccionSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, seccionIdioma);\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.seccionSeleccionada && (this.seccionSeleccionada.Id ? true : false);\r\n\t\t// return this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\tif (this.seccionSeleccionada.Nombre === '' || this.seccionSeleccionada.Nombre === undefined) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\tthis.onFormularioValidation.emit(this.isValid);\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\tthis.guardarEdicion();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tthis.confirmacionVisible = false;\r\n\t\t\t//this.apareceBoton = false;\r\n\t\t\tconsole.log('Formulario no completo!');\r\n\t\t}\r\n\t}\r\n\tpublic guardarConContenidos(): any {\r\n\t\tif (this.validar()) {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\tthis.guardarNuevo();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\tthis.guardarEdicionConContenidos();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tthis.confirmacionVisible = false;\r\n\t\t\t//this.apareceBoton = false;\r\n\t\t\tconsole.log('Formulario no completo!');\r\n\t\t}\r\n\t}\r\n\tpublic guardarNuevo () {\r\n\t}\r\n\tprotected guardarEdicionConContenidos(){\r\n\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function(msg) {\r\n\r\n\t\t\tconst seccionIdioma = that.seccionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.seccionSeleccionada.Nombre = seccionIdioma.Nombre ? seccionIdioma.Nombre : '';\r\n\t\t\tthat.seccionSeleccionada.Descripcion = seccionIdioma.Descripcion ? seccionIdioma.Descripcion : '';\r\n\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Nombre = that.seccionSeleccionada.Nombre;\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Descripcion = that.seccionSeleccionada.Descripcion;\r\n\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.FechaAlta = that.seccionSeleccionada.FechaAlta;\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\t//contenidos\r\n\t\t\tif(that.seccionSeleccionada.numeroCONTENIDOS !== 0){\r\n\t\t\t\tthat.seccionSeleccionada.ENTIDAD.CONTENIDOS.forEach(c =>{\r\n\t\t\t\t\tif(c.CONTENIDO.FechaBaja === null){\r\n\t\t\t\t\t\tc.CONTENIDO.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet fechaauxDayRuta = new Date(that.seccionSeleccionada.FechaBaja).getDate();\r\n\t\t\t\t\tlet fechaauxDayContenido = c.CONTENIDO.FechaBaja.getDate();\r\n\r\n\t\t\t\t\tlet fechaauxMonthRuta = new Date(that.seccionSeleccionada.FechaBaja).getMonth();\r\n\t\t\t\t\tlet fechaauxMonthContenido = c.CONTENIDO.FechaBaja.getMonth();\r\n\r\n\t\t\t\t\tlet fechaauxYearRuta = new Date(that.seccionSeleccionada.FechaBaja).getFullYear();\r\n\t\t\t\t\tlet fechaauxyearContenido = c.CONTENIDO.FechaBaja.getFullYear();\r\n\r\n\t\t\t\t\tif( fechaauxyearContenido > fechaauxYearRuta){\r\n\t\t\t\t\t\tc.CONTENIDO.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(fechaauxyearContenido === fechaauxYearRuta){\r\n\t\t\t\t\t\tif(fechaauxMonthContenido > fechaauxMonthRuta){\r\n\t\t\t\t\t\t\tc.CONTENIDO.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(fechaauxMonthContenido === fechaauxMonthRuta && fechaauxDayContenido > fechaauxDayRuta){\r\n\t\t\t\t\t\t\tc.CONTENIDO.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.CoordenadasPoligono = JSON.stringify(that.seccionSeleccionada.SECCION_PLANO.getCoordenadasPoligono());\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Color = 'rgba(' + that.seccionSeleccionada.Color.r + ',' + that.seccionSeleccionada.Color.g + ',' + that.seccionSeleccionada.Color.b + ',' + that.seccionSeleccionada.Color.a + ')';\r\n\r\n\t\t\tconst alfa = that.seccionSeleccionada.Color.a;\r\n\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + alfa + ')';\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setFill(that.seccionSeleccionada.ENTIDAD.Color);\t// Reposo\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setHoverFill(seccionHoverColor);\t\t\t\t\t// Hover\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setNombre(that.seccionSeleccionada.Nombre);\r\n\r\n\t\t\treturn that.guardarRelacionesTipologias(that.seccionSeleccionada.ENTIDAD.TIPOLOGIAS, that.seccionSeleccionada.TIPOLOGIAS_SECCION);\r\n\t\t\t})\r\n\r\n\t\t\t.then(function(msg) {\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\t\t\tconsole.log(that.seccionSeleccionada);\r\n\t\t\tthat.onElementoGuardado.emit({ result: true, element: that.seccionSeleccionada });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn msg;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\tconsole.log(data)\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.seccionSeleccionada });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarRelacionesTipologias(entidades, tipologias){\r\n\t\tconst that = this;\r\n\t\t//const promises = [];\r\n\t\tthis.entityManagerProvider.deleteEntityArray(entidades);\r\n\t\tconsole.log(tipologias)\r\n\t\t\r\n\t\tif(tipologias.length > 0){\r\n\t\t\tif(tipologias[0] !== null){\r\n\t\t\t\tthat.entityManagerProvider.newSECCION_has_TIPOLOGIA()\r\n\t\t\t\t.then(function(oSeccionHasTipologia){\r\n\t\t\t\t\tif (oSeccionHasTipologia) {\r\n\t\t\t\t\t\tconst relacion = oSeccionHasTipologia;\r\n\t\t\t\t\t\tconst idSeccion = that.seccionSeleccionada.Id;\r\n\t\t\t\t\t\tconst idTipologia = tipologias[0].Id;\r\n\t\t\t\t\t\tconst Seccion = that.seccionSeleccionada;\r\n\t\t\t\t\t\tconst Tipologia = tipologias[0];\r\n\t\t\t\t\t\trelacion.idSeccion = idSeccion;\r\n\t\t\t\t\t\trelacion.idTipologia = idTipologia;\r\n\t\t\t\t\t\trelacion.SECCION = Seccion.ENTIDAD;\r\n\t\t\t\t\t\trelacion.TIPOLOGIA_SECCION = Tipologia;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\r\n\t\t//PARTE PARA CUANDO QUERAMOS ASIGNAR MÁS DE UNA TIPOLOGÍA a la SECCION\r\n\t\t//----------------------------------------------------------------------------\r\n\t\t// tipologias.forEach(tipologia => {\r\n\t\t// \tconsole.log(tipologia)\r\n\t\t// \tpromises.push(that.entityManagerProvider.newSECCION_has_TIPOLOGIA());\r\n\t\t// });\r\n\t\t// return allSettled(promises)\r\n\t\t// .then(function(oSeccionHasTipologia){\r\n\t\t// \tconsole.log(oSeccionHasTipologia)\r\n\t\t// \tfor (let index = 0; index < oSeccionHasTipologia.length; index++) {\r\n\t\t// \t\tconst relacion = oSeccionHasTipologia[index].result;\r\n\t\t// \t\tconst idSeccion = that.seccionSeleccionada.Id;\r\n\t\t// \t\tconst idTipologia = tipologias[index].Id;\r\n\t\t// \t\tconst Seccion = that.seccionSeleccionada;\r\n\t\t// \t\tconst Tipologia = tipologias[index];\r\n\r\n\t\t// \t\trelacion.idSeccion = idSeccion;\r\n\t\t// \t\trelacion.idTipologia = idTipologia;\r\n\t\t// \t\trelacion.SECCION = Seccion.ENTIDAD;\r\n\t\t// \t\trelacion.TIPOLOGIA_SECCION = Tipologia;\r\n\t\t// \t}\r\n\r\n\t\t// \treturn true;\r\n\t\t// });\r\n\t}\r\n\tprotected guardarEdicion () {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function(msg) {\r\n\r\n\t\t\tconst seccionIdioma = that.seccionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.seccionSeleccionada.Nombre = seccionIdioma.Nombre ? seccionIdioma.Nombre : '';\r\n\t\t\tthat.seccionSeleccionada.Descripcion = seccionIdioma.Descripcion ? seccionIdioma.Descripcion : '';\r\n\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Nombre = that.seccionSeleccionada.Nombre;\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Descripcion = that.seccionSeleccionada.Descripcion;\r\n\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.FechaAlta = that.seccionSeleccionada.FechaAlta;\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.FechaBaja = that.seccionSeleccionada.FechaBaja;\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.CoordenadasPoligono = JSON.stringify(that.seccionSeleccionada.SECCION_PLANO.getCoordenadasPoligono());\r\n\t\t\tthat.seccionSeleccionada.ENTIDAD.Color = 'rgba(' + that.seccionSeleccionada.Color.r + ',' + that.seccionSeleccionada.Color.g + ',' + that.seccionSeleccionada.Color.b + ',' + that.seccionSeleccionada.Color.a + ')';\r\n\r\n\t\t\tconst alfa = that.seccionSeleccionada.Color.a;\r\n\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + alfa + ')';\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setFill(that.seccionSeleccionada.ENTIDAD.Color);\t// Reposo\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setHoverFill(seccionHoverColor);\t\t\t\t\t// Hover\r\n\t\t\tthat.seccionSeleccionada.SECCION_PLANO.setNombre(that.seccionSeleccionada.Nombre);\r\n\r\n\t\t\tconsole.log(that.seccionSeleccionada);\r\n\r\n\t\t\treturn that.guardarRelacionesTipologias(that.seccionSeleccionada.ENTIDAD.TIPOLOGIAS, that.seccionSeleccionada.TIPOLOGIAS_SECCION);\r\n\t\t\t})\r\n\r\n\t\t\t.then(function(msg) {\r\n\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t})\r\n\t\t.then(function(msg) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: true, element: that.seccionSeleccionada });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn msg;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err) {\r\n\t\t\tthat.onElementoGuardado.emit({ result: false, element: that.seccionSeleccionada });\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManagerProvider.deleteEntityArray(this.seccionSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManagerProvider.newSECCION_IDIOMA(this.seccionSeleccionada.ENTIDAD)\r\n\t\t.then(function(SECCION_IDIOMAs){\r\n\r\n\t\t\tSECCION_IDIOMAs.forEach(SECCION_IDIOMA => {\r\n\t\t\t\tconst aux = that.seccionSeleccionada.Idiomas.get(SECCION_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tSECCION_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tSECCION_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tconst that = this;\r\n\t\tif (this.seccionSeleccionada) {\r\n\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\treturn this.entityManagerProvider.deleteSECCION(this.seccionSeleccionada.ENTIDAD)\r\n\t\t\t.then(function (msg) {\r\n\t\t\t\tthat.onElementoEliminado.emit({ result: true, element: that.seccionSeleccionada });\r\n\t\t\t\t// Renovamos el Token\r\n\t\t\t\tthat.authService.relogin();\r\n\r\n\t\t\t})\r\n\t\t\t.catch(function () {\r\n\t\t\t\tthat.onElementoEliminado.emit({ result: false, element: that.seccionSeleccionada });\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthat.onElementoEliminado.emit({ result: false, element: that.seccionSeleccionada });\r\n\t\t\tthat.authService.relogin();\r\n\t\t}\r\n\t}\r\n\r\n\t/* CONFIRMACION */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tif(operacion === 'guardar'){\r\n\t\t\tif(this.permiteContenidos === true){\r\n\t\t\t\toperacion = 'guardarConContenidos';\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t\t/*if(this.seccionSeleccionada.FechaBaja !== null){\r\n\t\t\tthis.apareceBoton = true;\r\n\t\t}*/\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\t\tthis.guardar();\r\n\r\n\t\t}\r\n\t\telse if(this.operacion === 'guardarConContenidos'){\r\n\t\t\tif(this.permiteContenidos === true){\r\n\t\t\t\tconsole.log(\"Se va a guardar con contenidos\");\r\n\t\t\t\tthis.guardarConContenidos();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t\t/*if(this.seccionSeleccionada.FechaBaja){\r\n\t\t\tthis.apareceBoton = false;\r\n\t\t}*/\r\n\t}\r\n\r\n\t/* IDIOMA */\r\n\tonIdiomaChange($event) {\r\n\t\tthis.setIdioma($event.value);\r\n\r\n\t}\r\n\tprivate setIdioma(idioma){\r\n\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet seccionIdioma = this.seccionSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!seccionIdioma) {\r\n\r\n\t\t\tseccionIdioma = new SeccionIdiomaFormulario();\r\n\r\n\t\t\tthis.seccionSeleccionada.Idiomas.set(idioma.value, seccionIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.seccionSeleccionada.Nombre = seccionIdioma.Nombre;\r\n\t\tthis.seccionSeleccionada.Descripcion = seccionIdioma.Descripcion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\r\n\t/* PIPETA */\r\n\tseleccionPipeta(){\r\n\t\tthis.setEyedropSelected(true);\r\n\t}\r\n\r\n\tpublic onColorChange($event){\r\n\t\tconsole.log($event);\r\n\t}\r\n\r\n\tpublic getColor(){\r\n\t\treturn 'rgba(' + this.seccionSeleccionada.Color.r + ',' + this.seccionSeleccionada.Color.g + ',' + this.seccionSeleccionada.Color.b + ',' + this.seccionSeleccionada.Color.a + ')';\r\n\t}\r\n\r\n\tpublic getAlfa(){\r\n\r\n\t}\r\n\r\n\tsetPickerState(isOpen){\r\n\r\n\t}\r\n\r\n\tpublic setColor(_color){\r\n\t\tthis.colorSeleccionado = _color;\r\n\t\tthis.actualizaColor();\r\n\t}\r\n\r\n\tsetEyedropSelected(_val){\r\n\t\tthis.isEyedropSelected = _val;\r\n\t\tthis.onEyedropperSelected.emit(_val);\r\n\t\tif (_val){\r\n\t\t\tthis.classEyedrop = ['eyedropSelected'];\r\n\t\t}else{\r\n\t\t\tthis.classEyedrop = [];\r\n\t\t}\r\n\t}\r\n\r\n\tactualizaColor(){\r\n\t\tconst colors = this.colorSeleccionado.match(/\\d+/g);\r\n\t\tthis.setEyedropSelected(false);\r\n\t\tif ( colors.length < 3 )\t{\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst alfa = colors[3] + (colors[4] !== undefined ? '.' + colors[4] : '' );\r\n\r\n\t\tconst _nuevoColor = {\r\n\t\t\tr: colors[0],\r\n\t\t\tg: colors[1],\r\n\t\t\tb: colors[2],\r\n\t\t\ta: alfa\r\n\t\t};\r\n\r\n\t\tthis.seccionSeleccionada.Color = _nuevoColor;\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.seccionSeleccionada.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.seccionSeleccionada.FechaBaja = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioSeccion.component.ts","module.exports = \"
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.tipologiaSeleccionada.Nombre\\\" (ngModelChange)=\\\"inputChanged('Nombre')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      {{tipologiaSeleccionada.ENTIDAD.IconoRepresentacion}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      {{'Mapas.Aúnporadjuntar' | translate}}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaContenido.component.html\n// module id = ../../../../../src/app/formularios/FormularioTipologiaContenido.component.html\n// module chunks = main","import { TipologiaContenidoIdiomaFormulario, AnchorPoint } from './../domain/TipologiaContenidoFormulario';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\r\n\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\n\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/primeng';\r\nimport { Predicate } from 'breeze-client';\r\nimport { Permisos, PermisosService } from '../providers/authentication/permisos.service';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { AppComponent } from '../app.component';\r\nimport { TipoLocalizacion } from '../domain/TipologiaContenidoFormulario';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-tipologia-contenido',\r\n\ttemplateUrl: './FormularioTipologiaContenido.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\nexport class FormularioTipologiaContenidoComponent implements OnDestroy, OnChanges{\r\n\t[x: string]: any;\r\n\r\n\t@Input() tipologiaSeleccionada: any;\r\n\t@Input() edicion: boolean;\r\n\t@Input() msgs: Message[] = [];\r\n\t@Input() tipologiasExistentes: any[] = [];\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\timagenTipologiaSeleccionada: any;\r\n\tselectorImagenTipologia: any;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic permisos: Permisos = new Permisos();\r\n\tspinner: HTMLElement;\r\n\r\n\tanchorPoint = Constantes.top_center;\r\n\tanchorPoints = [\r\n\t\tnew AnchorPoint(Constantes.top_left),\r\n\t\tnew AnchorPoint(Constantes.top_center),\r\n\t\tnew AnchorPoint(Constantes.top_right),\r\n\t\tnew AnchorPoint(Constantes.center_left),\r\n\t\tnew AnchorPoint(Constantes.center_center),\r\n\t\tnew AnchorPoint(Constantes.center_right),\r\n\t\tnew AnchorPoint(Constantes.bottom_left),\r\n\t\tnew AnchorPoint(Constantes.bottom_center),\r\n\t\tnew AnchorPoint(Constantes.bottom_right)\r\n\t];\r\n\r\n\ttiposLocalizacion = [\r\n\t\tnew TipoLocalizacion(this.translate, 'ESTATICO'),\r\n\t\tnew TipoLocalizacion(this.translate, 'DIRECTA'),\r\n\t\tnew TipoLocalizacion(this.translate, 'INDIRECTA')\r\n\t];\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate wsServices: ServiciosWebServiceProvider,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\t// that.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t\tthis.tipologiasExistentes = this.tipologiasExistentes;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst tipologiaContenidoIdioma = this.tipologiaSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\ttipologiaContenidoIdioma.Nombre = this.tipologiaSeleccionada.Nombre;\r\n\r\n\t\tthis.tipologiaSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, tipologiaContenidoIdioma);\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tonFileSelectTipologia($event, fileUploadComponent) {\r\n\t\tthis.selectorImagenTipologia = fileUploadComponent;\r\n\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\tthis.imagenTipologiaSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect($event?, fileUploadComponent?) {\r\n\t\tthis.imagenTipologiaSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion) {\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tpublic mostrarConfirmacionBorrar(){\r\n\t\tconsole.log(\"TODO: mostrarConfirmacionBorrar?\" + this.tipologiaSeleccionada);\r\n\t}\r\n\r\n\tconfirmar() {\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar') {\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar() {\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tshowWarn(operacion) {\r\n\t\tthis.msgs = [];\r\n\t\tif (operacion === 'guardar') {\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR') });\r\n\t\t}\r\n\t\telse if (operacion === 'eliminar') {\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR') });\r\n\t\t}\r\n\t}\r\n\r\n\tpublic eliminar(){\r\n\t\tconst that = this;\r\n\t\tconst includes = 'CONTENIDOS';\r\n\t\tconst where = new Predicate('Id', '==', this.tipologiaSeleccionada.ENTIDAD.Id);\r\n\r\n\t\tthat.spinner.style.display = 'inherit';\r\n\t\tthis.entityManager.getTIPOLOGIA_CONTENIDO(where, includes)\r\n\t\t.then(function(result){\r\n\t\t\tconst tipologia = result;\r\n\t\t\tif (result.length > 0 && result[0].CONTENIDOS.length > 0) {\r\n\t\t\t\tthat.msgs.push({ severity: 'warn', detail: that.translate.instant('MensajesConfirmacion.NO_PERMITIDO_ELIMINAR_TIPO_CONTENIDO') });\r\n\t\t\t\tthat.confirmacionVisible = false;\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthat.entityManager.deleteTIPOLOGIA_CONTENIDO(result[0])\r\n\t\t\t\t// that.entityManager.saveChanges()\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\tthat.onElementoEliminado.emit(tipologia);\r\n\t\t\t\t\tthat.authService.relogin();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\r\n\t\tconst existente = this.tipologiasExistentes.find(t => t.nombre.toLowerCase() === this.tipologiaSeleccionada.Nombre.toLowerCase() && t.id !== this.tipologiaSeleccionada.Id);\r\n\t\tif(!existente){\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (this.edicion) {\r\n\t\t\t\treturn this.guardarEdicion();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn this.guardarNuevo();\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.msgs = [];\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_TIPOLOGIA_DUPLICADA') });\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic guardarNuevo(){\r\n\t\tconst that = this;\r\n\t\tlet urlImagenAlaSeleccionada = '';\r\n\t\tthis.subirImagenTipologiaSeleccionada(this.imagenTipologiaSeleccionada)\r\n\t\t.then(function(urlImagen) {\r\n\t\t\turlImagenAlaSeleccionada = urlImagen;\r\n\r\n\t\t\treturn that.entityManager.newTIPOLOGIA_CONTENIDO();\r\n\t\t})\r\n\t\t.then(function (oTIPOLOGIA_CONTENIDO) {\r\n\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\toTIPOLOGIA_CONTENIDO.IdEspacio = idEspacio;\r\n\r\n\t\t\toTIPOLOGIA_CONTENIDO.IDIOMAS.forEach(TIPOLOGIA_CONTENIDO_IDIOMA => {\r\n\t\t\t\tconst aux = that.tipologiaSeleccionada.Idiomas.get(TIPOLOGIA_CONTENIDO_IDIOMA.IDIOMA.Codigo);\r\n\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.tipologiaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = that.tipologiaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.tipologiaSeleccionada.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\r\n\t\t\toTIPOLOGIA_CONTENIDO.Nombre = that.tipologiaSeleccionada.Nombre;\r\n\t\t\toTIPOLOGIA_CONTENIDO.Tipo = that.tipologiaSeleccionada.Tipo;\r\n\t\t\toTIPOLOGIA_CONTENIDO.Buscable = that.tipologiaSeleccionada.Buscable;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadPorDefecto = that.tipologiaSeleccionada.VisibilidadPorDefecto;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibleEnMapa = that.tipologiaSeleccionada.VisibleEnMapa;\r\n\t\t\toTIPOLOGIA_CONTENIDO.MostrableEnDirectorioDeContenidos = that.tipologiaSeleccionada.MostrableEnDirectorioDeContenidos;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadLabelMapa = that.tipologiaSeleccionada.VisibilidadLabelMapa;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadIconoMapa = that.tipologiaSeleccionada.VisibilidadIconoMapa;\r\n\t\t\toTIPOLOGIA_CONTENIDO.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\t\t\toTIPOLOGIA_CONTENIDO.AnchorPoint = that.tipologiaSeleccionada.anchorPoint.value;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadListaCOntenidosSeccion = that.tipologiaSeleccionada.VisibilidadListaCOntenidosSeccion;\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadMenuLateral = that.tipologiaSeleccionada.VisibilidadMenuLateral;\r\n\t\t\toTIPOLOGIA_CONTENIDO.Activa = that.tipologiaSeleccionada.Activa;\r\n\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibilidadListaContenidosWeb = that.tipologiaSeleccionada.VisibilidadListaContenidosWeb;\r\n\t\t\toTIPOLOGIA_CONTENIDO.TipoUbicacion = that.tipologiaSeleccionada.TipoUbicacion ? that.tipologiaSeleccionada.TipoUbicacion.value : 'ESTATICO';\r\n\t\t\toTIPOLOGIA_CONTENIDO.VisibleSoloEn = Constantes.VISIBLE_SI_UBICADO_EN.SIEMPRE;\r\n\r\n\t\t\tthat.tipologiaSeleccionada.Id = oTIPOLOGIA_CONTENIDO.Id;\r\n\t\t\tthat.tipologiaSeleccionada.IconoRepresentacion = oTIPOLOGIA_CONTENIDO.IconoRepresentacion;\r\n\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD = oTIPOLOGIA_CONTENIDO;\r\n\r\n\r\n\t\t\tconsole.log('tipologia Guardado CORRECTAMENTE = ' + oTIPOLOGIA_CONTENIDO);\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t//return true;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeleccionada);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoError.emit(that.tipologiaSeleccionada);\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\tpublic subirImagenTipologiaSeleccionada(imagenTipologiaSeleccionada) {\r\n\t\tif (imagenTipologiaSeleccionada) {\r\n\t\t\t// return this.wsServices.subirFicheroCMS(imagenTipologiaSeleccionada, this.tipologiaSeleccionada.Nombre + '.csv').toPromise();\r\n\t\t\treturn this.wsServices.subirFicheroCMS(imagenTipologiaSeleccionada).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\r\n\tguardarEdicion(){\r\n\t\tconst that = this;\r\n\t\tlet urlImagenAlaSeleccionada = '';\r\n\r\n\t\tthis.guardarMultiIdioma()\r\n\t\t.then(function(){\r\n\r\n\t\t\tconst espacioIdioma = that.tipologiaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.tipologiaSeleccionada.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.Nombre = that.tipologiaSeleccionada.Nombre;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.Tipo = that.tipologiaSeleccionada.Tipo;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.Buscable = that.tipologiaSeleccionada.Buscable;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadPorDefecto = that.tipologiaSeleccionada.VisibilidadPorDefecto;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibleEnMapa = that.tipologiaSeleccionada.VisibleEnMapa;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.MostrableEnDirectorioDeContenidos = that.tipologiaSeleccionada.MostrableEnDirectorioDeContenidos;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadLabelMapa = that.tipologiaSeleccionada.VisibilidadLabelMapa;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadIconoMapa = that.tipologiaSeleccionada.VisibilidadIconoMapa;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.AnchorPoint = that.tipologiaSeleccionada.anchorPoint.value;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadListaCOntenidosSeccion = that.tipologiaSeleccionada.VisibilidadListaCOntenidosSeccion;\r\n\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadMenuLateral = that.tipologiaSeleccionada.VisibilidadMenuLateral;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.Activa = that.tipologiaSeleccionada.Activa;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.VisibilidadListaContenidosWeb = that.tipologiaSeleccionada.VisibilidadListaContenidosWeb;\r\n\t\t\tthat.tipologiaSeleccionada.ENTIDAD.TipoUbicacion = that.tipologiaSeleccionada.TipoUbicacion ? that.tipologiaSeleccionada.TipoUbicacion.value : 'ESTATICO';\r\n\r\n\t\t\tif (that.imagenTipologiaSeleccionada) {\r\n\r\n\t\t\t\treturn that.subirImagenTipologiaSeleccionada(that.imagenTipologiaSeleccionada)\r\n\t\t\t\t.then(function(urlImagen) {\r\n\t\t\t\t\turlImagenAlaSeleccionada = urlImagen;\r\n\r\n\t\t\t\t\tthat.tipologiaSeleccionada.ENTIDAD.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\t\t\t\t\tthat.tipologiaSeleccionada.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\r\n\r\n\t\t\t\t\tconsole.log('tipologia Guardado CORRECTAMENTE = ' + that.tipologiaSeleccionada.ENTIDAD.Nombre);\r\n\t\t\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeleccionada);\r\n\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\t\tconsole.log('tipologia Guardado CORRECTAMENTE = ' + that.tipologiaSeleccionada.ENTIDAD.Nombre);\r\n\t\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeleccionada);\r\n\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoError.emit(that.tipologiaSeleccionada);\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.tipologiaSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newTIPOLOGIA_CONTENIDO_IDIOMA(this.tipologiaSeleccionada.ENTIDAD)\r\n\t\t.then(function(TIPOLOGIA_CONTENIDO_IDIOMAs){\r\n\r\n\t\t\tTIPOLOGIA_CONTENIDO_IDIOMAs.forEach(TIPOLOGIA_CONTENIDO_IDIOMA => {\r\n\t\t\t\tconst aux = that.tipologiaSeleccionada.Idiomas.get(TIPOLOGIA_CONTENIDO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tTIPOLOGIA_CONTENIDO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet perfilIdioma = this.tipologiaSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!perfilIdioma) {\r\n\r\n\t\t\tperfilIdioma = new TipologiaContenidoIdiomaFormulario();\r\n\r\n\t\t\tthis.tipologiaSeleccionada.Idiomas.set(idioma.value, perfilIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.tipologiaSeleccionada.Nombre = perfilIdioma.Nombre;\r\n\r\n\t\t// console.log('Cambiado el Titulo al del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\r\n\tmostrarMiniaturaAla(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenTipologiaSeleccionada !== undefined;\r\n\t\tconst mostrar = this.tipologiaSeleccionada.IconoRepresentacion && this.tipologiaSeleccionada.IconoRepresentacion !== 'done' && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n\r\n\tmostrarMiniaturaNoHayImagen(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenTipologiaSeleccionada !== undefined;\r\n\t\tconst mostrar = !this.mostrarMiniaturaAla() && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaContenido.component.ts","module.exports = \"
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.tipologiaSeccionSeleccionada.Nombre\\\" (ngModelChange)=\\\"inputChanged('Nombre')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.tipologiaSeccionSeleccionada.Descripcion\\\" (ngModelChange)=\\\"inputChanged('Descripcion')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.tipologiaSeccionSeleccionada.IdAlternativo\\\" (ngModelChange)=\\\"inputChanged('IdAlternativo')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaSeccion.component.html\n// module id = ../../../../../src/app/formularios/FormularioTipologiaSeccion.component.html\n// module chunks = main","import { TipologiaSeccionIdiomaFormulario, AnchorPoint } from '../domain/TipologiaSeccionFormulario';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\r\n\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\n\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/primeng';\r\nimport { Predicate } from 'breeze-client';\r\nimport { Permisos, PermisosService } from '../providers/authentication/permisos.service';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { AppComponent } from '../app.component';\r\nimport { TipoLocalizacion } from '../domain/TipologiaContenidoFormulario';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-tipologia-seccion',\r\n\ttemplateUrl: './FormularioTipologiaSeccion.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\nexport class FormularioTipologiaSeccionComponent implements OnDestroy, OnChanges{\r\n\t[x: string]: any;\r\n\r\n\t@Input() tipologiaSeccionSeleccionada: any;\r\n\t@Input() edicion: boolean;\r\n\t@Input() msgs: Message[] = [];\r\n\t@Input() tipologiasSeccionExistentes: any[] = [];\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\timagenTipologiaSeleccionada: any;\r\n\tselectorImagenTipologia: any;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic permisos: Permisos = new Permisos();\r\n\tspinner: HTMLElement;\r\n\r\n\tanchorPoint = Constantes.top_center;\r\n\tanchorPoints = [\r\n\t\tnew AnchorPoint(Constantes.top_left),\r\n\t\tnew AnchorPoint(Constantes.top_center),\r\n\t\tnew AnchorPoint(Constantes.top_right),\r\n\t\tnew AnchorPoint(Constantes.center_left),\r\n\t\tnew AnchorPoint(Constantes.center_center),\r\n\t\tnew AnchorPoint(Constantes.center_right),\r\n\t\tnew AnchorPoint(Constantes.bottom_left),\r\n\t\tnew AnchorPoint(Constantes.bottom_center),\r\n\t\tnew AnchorPoint(Constantes.bottom_right)\r\n\t];\r\n\r\n\ttiposLocalizacion = [\r\n\t\tnew TipoLocalizacion(this.translate, 'ESTATICO'),\r\n\t\tnew TipoLocalizacion(this.translate, 'DIRECTA'),\r\n\t\tnew TipoLocalizacion(this.translate, 'INDIRECTA')\r\n\t];\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate wsServices: ServiciosWebServiceProvider,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\t// that.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t\tthis.tipologiasSeccionExistentes = this.tipologiasSeccionExistentes;\r\n\t\tconsole.log(this.tipologiaSeccionSeleccionada)\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\tinputChanged(value) {\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst tipologiaSeccionIdioma = this.tipologiaSeccionSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\ttipologiaSeccionIdioma.Nombre = this.tipologiaSeccionSeleccionada.Nombre;\r\n\r\n\t\tthis.tipologiaSeccionSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, tipologiaSeccionIdioma);\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tonFileSelectTipologia($event, fileUploadComponent) {\r\n\t\tthis.selectorImagenTipologia = fileUploadComponent;\r\n\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\tthis.imagenTipologiaSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect($event?, fileUploadComponent?) {\r\n\t\tthis.imagenTipologiaSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion) {\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tpublic mostrarConfirmacionBorrar(){\r\n\t\tconsole.log(\"TODO: mostrarConfirmacionBorrar?\" + this.tipologiaSeleccionada);\r\n\t}\r\n\r\n\tconfirmar() {\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.msgs = [];\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardar();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar') {\r\n\t\t\tthis.eliminar();\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar() {\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tshowWarn(operacion) {\r\n\t\tthis.msgs = [];\r\n\t\tif (operacion === 'guardar') {\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR') });\r\n\t\t}\r\n\t\telse if (operacion === 'eliminar') {\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR') });\r\n\t\t}\r\n\t}\r\n\r\n\tpublic eliminar(){\r\n\t\tconst that = this;\r\n\t\tconst where = new Predicate('Id', '==', this.tipologiaSeccionSeleccionada.ENTIDAD.Id);\r\n\t\tthat.spinner.style.display = 'inherit';\r\n\t\tthis.entityManager.getTIPOLOGIA_SECCION(where)\r\n\t\t.then(function(result){\r\n\t\t\tconsole.log(result)\r\n\t\t\tconst tipologiaSeccion = result;\r\n\t\t\tif (result.length > 0 && result[0].SECCIONES.length > 0) {\r\n\t\t\t\tthat.msgs.push({ severity: 'warn', detail: that.translate.instant('MensajesConfirmacion.NO_PERMITIDO_ELIMINAR_TIPO_SECCION') });\r\n\t\t\t\tthat.confirmacionVisible = false;\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthat.entityManager.deleteTIPOLOGIA_SECCION(result[0])\r\n\t\t\t\t// that.entityManager.saveChanges()\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\tthat.onElementoEliminado.emit(tipologiaSeccion);\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\tthat.authService.relogin();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\r\n\t\tconst existente = this.tipologiasSeccionExistentes.find(t => t.nombre.toLowerCase() === this.tipologiaSeccionSeleccionada.Nombre.toLowerCase() && t.id !== this.tipologiaSeccionSeleccionada.Id);\r\n\t\tif(!existente){\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (this.edicion) {\r\n\t\t\t\treturn this.guardarEdicion();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn this.guardarNuevo();\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tthis.msgs = [];\r\n\t\t\tthis.msgs.push({ severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_TIPOLOGIA_DUPLICADA') });\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic guardarNuevo(){\r\n\t\tconst that = this;\r\n\r\n\t\tthat.entityManager.newTIPOLOGIA_SECCION()\r\n\t\t.then(function (oTIPOLOGIA_SECCION) {\r\n\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\toTIPOLOGIA_SECCION.IdEspacio = idEspacio;\r\n\r\n\t\t\toTIPOLOGIA_SECCION.IDIOMAS.forEach(TIPOLOGIA_SECCION_IDIOMA => {\r\n\t\t\t\tconst aux = that.tipologiaSeccionSeleccionada.Idiomas.get(TIPOLOGIA_SECCION_IDIOMA.IDIOMA.Codigo);\r\n\r\n\t\t\t\tif(aux){\r\n\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst espacioIdioma = that.tipologiaSeccionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\t\t\tif(espacioIdioma){\r\n\t\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = that.tipologiaSeccionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.tipologiaSeccionSeleccionada.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\r\n\t\t\toTIPOLOGIA_SECCION.Nombre = that.tipologiaSeccionSeleccionada.Nombre;\r\n\t\t\toTIPOLOGIA_SECCION.Descripcion = that.tipologiaSeccionSeleccionada.Descripcion;\r\n\t\t\toTIPOLOGIA_SECCION.IdAlternativo = that.tipologiaSeccionSeleccionada.IdAlternativo;\r\n\t\t\toTIPOLOGIA_SECCION.Tipo = that.tipologiaSeccionSeleccionada.Tipo;\r\n\t\t\t//oTIPOLOGIA_CONTENIDO.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\t\t\t//oTIPOLOGIA_CONTENIDO.AnchorPoint = that.tipologiaSeleccionada.anchorPoint.value;\r\n\t\t\toTIPOLOGIA_SECCION.Activa = that.tipologiaSeccionSeleccionada.Activa;\r\n\t\t\tthat.tipologiaSeccionSeleccionada.Id = oTIPOLOGIA_SECCION.Id;\r\n\t\t\t//that.tipologiaSeccionSeleccionada.idAlternativo = oTIPOLOGIA_SECCION.idAlternativo;\r\n\t\t\t//that.tipologiaSeleccionada.IconoRepresentacion = oTIPOLOGIA_CONTENIDO.IconoRepresentacion;\r\n\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD = oTIPOLOGIA_SECCION;\r\n\r\n\r\n\t\t\tconsole.log('tipologia de sección Guardado CORRECTAMENTE = ' + oTIPOLOGIA_SECCION);\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t//return true;\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeccionSeleccionada);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoError.emit(that.tipologiaSeccionSeleccionada);\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\tpublic subirImagenTipologiaSeleccionada(imagenTipologiaSeccionSeleccionada) {\r\n\t\tif (imagenTipologiaSeccionSeleccionada) {\r\n\t\t\t// return this.wsServices.subirFicheroCMS(imagenTipologiaSeleccionada, this.tipologiaSeleccionada.Nombre + '.csv').toPromise();\r\n\t\t\treturn this.wsServices.subirFicheroCMS(imagenTipologiaSeccionSeleccionada).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\r\n\tguardarEdicion(){\r\n\t\tconst that = this;\r\n\t\tlet urlImagenAlaSeleccionada = '';\r\n\r\n\t\tthis.guardarMultiIdioma()\r\n\t\t.then(function(){\r\n\r\n\t\t\tconst espacioIdioma = that.tipologiaSeccionSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.tipologiaSeccionSeleccionada.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.Nombre = that.tipologiaSeccionSeleccionada.Nombre;\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.Tipo = that.tipologiaSeccionSeleccionada.Tipo;\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.Descripcion = that.tipologiaSeccionSeleccionada.Descripcion;\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.IdAlternativo = that.tipologiaSeccionSeleccionada.IdAlternativo;\r\n\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.Activa = that.tipologiaSeccionSeleccionada.Activa;\r\n\r\n\t\t\tif (that.imagenTipologiaSeleccionada) {\r\n\r\n\t\t\t\treturn that.subirImagenTipologiaSeleccionada(that.imagenTipologiaSeleccionada)\r\n\t\t\t\t.then(function(urlImagen) {\r\n\t\t\t\t\turlImagenAlaSeleccionada = urlImagen;\r\n\r\n\t\t\t\t\tthat.tipologiaSeccionSeleccionada.ENTIDAD.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\t\t\t\t\tthat.tipologiaSeccionSeleccionada.IconoRepresentacion = urlImagenAlaSeleccionada;\r\n\r\n\r\n\t\t\t\t\tconsole.log('tipologia Seccion Guardado CORRECTAMENTE = ' + that.tipologiaSeccionSeleccionada.ENTIDAD.Nombre);\r\n\t\t\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeccionSeleccionada);\r\n\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\t\tconsole.log('tipologia Seccion Guardado CORRECTAMENTE = ' + that.tipologiaSeccionSeleccionada.ENTIDAD);\r\n\t\t\t\tthat.onElementoGuardado.emit(that.tipologiaSeccionSeleccionada);\r\n\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function(data: any) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\tif(data.httpResponse.status === 200){\r\n\t\t\t\tthat.authService.relogin();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.onElementoError.emit(that.tipologiaSeleccionada);\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.tipologiaSeccionSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newTIPOLOGIA_SECCION_IDIOMA(this.tipologiaSeccionSeleccionada.ENTIDAD)\r\n\t\t.then(function(TIPOLOGIA_SECCION_IDIOMAs){\r\n\r\n\t\t\tTIPOLOGIA_SECCION_IDIOMAs.forEach(TIPOLOGIA_SECCION_IDIOMA => {\r\n\t\t\t\tconst aux = that.tipologiaSeccionSeleccionada.Idiomas.get(TIPOLOGIA_SECCION_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tTIPOLOGIA_SECCION_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet perfilIdioma = this.tipologiaSeccionSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!perfilIdioma) {\r\n\r\n\t\t\tperfilIdioma = new TipologiaSeccionIdiomaFormulario();\r\n\r\n\t\t\tthis.tipologiaSeccionSeleccionada.Idiomas.set(idioma.value, perfilIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.tipologiaSeccionSeleccionada.Nombre = perfilIdioma.Nombre;\r\n\r\n\t\t// console.log('Cambiado el Titulo al del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\r\n\tmostrarMiniaturaAla(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenTipologiaSeleccionada !== undefined;\r\n\t\tconst mostrar = this.tipologiaSeleccionada.IconoRepresentacion && this.tipologiaSeleccionada.IconoRepresentacion !== 'done' && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n\r\n\tmostrarMiniaturaNoHayImagen(){\r\n\t\tconst hayNuevaImagenSeleccionada = this.imagenTipologiaSeleccionada !== undefined;\r\n\t\tconst mostrar = !this.mostrarMiniaturaAla() && !hayNuevaImagenSeleccionada;\r\n\t\treturn mostrar;\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioTipologiaSeccion.component.ts","module.exports = \"
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.usuarioSeleccionado.Nombre\\\" (ngModelChange)=\\\"inputChanged('Nombre')\\\" pInputText>\\r\\n\\t\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.usuarioSeleccionado.Login\\\" (ngModelChange)=\\\"inputChanged('Login')\\\" pInputText>\\r\\n\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.usuarioSeleccionado.Email\\\" (ngModelChange)=\\\"inputChanged('Email')\\\" pInputText>\\r\\n\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.Contrasenia\\\" (ngModelChange)=\\\"inputChanged('Contrasenia')\\\" pInputText>\\r\\n\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\t 0\\\" [(ngModel)]=\\\"this.ReContrasenia\\\" (ngModelChange)=\\\"inputChanged('ReContrasenia')\\\" pInputText>\\r\\n\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n\\t
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioUsuario.component.html\n// module id = ../../../../../src/app/formularios/FormularioUsuario.component.html\n// module chunks = main","import { AppComponent } from './../app.component';\r\nimport { UsuarioFormulario } from './../domain/UsuarioFormulario';\r\nimport { Component, EventEmitter, Input, Output, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\n\r\nimport { MessageService } from 'primeng/components/common/messageservice';\r\n\r\nimport { Constantes } from '../domain/constantes';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { Permisos, PermisosService } from '../providers/authentication/permisos.service';\r\nimport { Predicate } from 'breeze-client';\r\nimport { TranslateService } from 'ng2-translate/src/translate.service';\r\n\r\n@Component({\r\n\tselector: 'app-formulario-usuario',\r\n\ttemplateUrl: './FormularioUsuario.component.html',\r\n\tproviders: [MessageService]\r\n})\r\n\r\nexport class FormularioUsuarioComponent implements OnDestroy, OnChanges {\r\n\r\n\t@Input() usuarioSeleccionado: UsuarioFormulario;\r\n\t@Input() edicion: boolean;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\tprivate isValid = false;\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic cancelarGuardado = true;\r\n\r\n\tpublic perfiles = [];\r\n\tpublic perfilSeleccionado;\r\n\tpublic Contrasenia = '';\r\n\tpublic ReContrasenia = '';\r\n\tpublic constantesVar = Constantes;\r\n\r\n\tpublic usuarioActual: UsuarioFormulario;\r\n\r\n\tpublic errorMail = false;\r\n\tpublic errorLoginVacio = false;\r\n\tpublic errorPassword = false;\r\n\tpublic errorRepetir = false;\r\n\tpublic noComprobarPassword = false;\r\n\r\n\tmsgs: any[] = [];\r\n\tspinner: HTMLElement;\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate sws: ServiciosWebServiceProvider,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.getPERFIL()\r\n\t\t.then(function(perfiles){\r\n\t\t\tthat.perfiles = perfiles.filter( x => x.Tipo !== Constantes.CIUDADANO);\r\n\t\t\tconst includes = 'ESPACIOS, PERFIL, PERFIL.FUNCIONALIDADES';\r\n\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\t// const predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\t\tconst where = new Predicate('PERFIL.Tipo', '!=', Constantes.CIUDADANO);\r\n\t\t\treturn entityManager.getUSUARIObyIdEspacio(idEspacio, includes, where);\r\n\t\t})\r\n\t\t.then(function(usuarios){\r\n\r\n\t\t\tconst loginUsuarioActual = that.authService.getLastUser();\r\n\t\t\tconst usu = new UsuarioFormulario(usuarios.filter( x => x.Login.toLowerCase() === loginUsuarioActual.toLowerCase() )[0]);\r\n\r\n\t\t\tthat.usuarioActual = usu;\r\n\t\t\tif (that.usuarioActual.Tipo === Constantes.ADMINISTRADOR_ENTIDAD) {\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.SUPER_ADMINISTRADOR);\r\n\t\t\t}\r\n\r\n\t\t\tif (that.usuarioActual.Tipo === Constantes.GESTOR_ESPACIOS) {\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.SUPER_ADMINISTRADOR);\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.ADMINISTRADOR_ENTIDAD);\r\n\t\t\t}\r\n\r\n\t\t\tif (that.usuarioActual.Tipo === Constantes.GESTOR_CONTENIDO) {\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.SUPER_ADMINISTRADOR);\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.ADMINISTRADOR_ENTIDAD);\r\n\t\t\t\tthat.perfiles = that.perfiles.filter( x => x.Tipo !== Constantes.GESTOR_ESPACIOS);\r\n\t\t\t}\r\n\r\n\t\t\tthat.errorMail = false;\r\n\t\t\tthat.errorLoginVacio = false;\r\n\t\t\tthat.errorPassword = false;\r\n\t\t\tthat.errorRepetir = false;\r\n\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.perfilSeleccionado = this.perfiles.filter( x => x.Tipo === this.usuarioSeleccionado.Tipo)[0];\r\n\t\tthis.Contrasenia = '';\r\n\t\tthis.ReContrasenia = '';\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tif (this.cancelarGuardado) {\r\n\t\t\tthis.entityManager.RejectChanges();\r\n\t\t}\r\n\t\tthis.Contrasenia = '';\r\n\t\tthis.ReContrasenia = '';\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* */\r\n\tinputChanged(value) {\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.msgs = [];\r\n\r\n\t\tthis.noComprobarPassword = this.Contrasenia === '' && this.ReContrasenia === '';\r\n\t\tconst emailExpresion = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n\t\tconst error2 = this.Contrasenia.length < 8; // longitud Minima\r\n\t\tconst error3 = !/\\d/.test(this.Contrasenia); // contiene numeros\r\n\t\tconst error4 = !/[A-Z]/.test(this.Contrasenia); // contiene mayusculas\r\n\t\tconst error5 = !/[ !@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]/.test(this.Contrasenia); // contiene simbolo\r\n\t\tthis.errorMail = !emailExpresion.test(String(this.usuarioSeleccionado.Email).toLowerCase()); // es email\r\n\t\tthis.errorLoginVacio = this.usuarioSeleccionado.Login === ''; // Login Vacio\r\n\t\tthis.errorRepetir = this.Contrasenia !== this.ReContrasenia; // Repetir contraseña\r\n\t\tthis.errorPassword = error2 || error3 || error4 || error5 || this.errorRepetir;\r\n\r\n\t\tconst NolongitudMinima = this.translate.instant('Formularios.NolongitudMinima');\r\n\t\tconst Nocontienenumeros = this.translate.instant('Formularios.Nocontienenumeros');\r\n\t\tconst Nocontienemayusculas = this.translate.instant('Formularios.Nocontienemayusculas');\r\n\t\tconst Nocontienesimbolo = this.translate.instant('Formularios.Nocontienesimbolo');\r\n\t\tconst Noesemail = this.translate.instant('Formularios.Noesemail');\r\n\t\tconst Nologin = this.translate.instant('Formularios.Nologin');\r\n\t\tconst Nocoinciden = this.translate.instant('Formularios.Nocoinciden');\r\n\r\n\r\n\r\n\t\tif (this.noComprobarPassword) {\r\n\r\n\t\t\tif (this.errorMail || this.errorLoginVacio) {\r\n\t\t\t\tif (this.errorMail) {\r\n\t\t\t\t\tthis.appComponent.showError(Noesemail);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.errorLoginVacio) {\r\n\t\t\t\t\tthis.appComponent.showError(Nologin);\r\n\t\t\t\t}\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.isValid = true;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\tlet mensajeError = '';\r\n\t\t\tthis.isValid = true;\r\n\t\t\tif (error2) {\r\n\t\t\t\tmensajeError = mensajeError + NolongitudMinima;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (error3) {\r\n\t\t\t\tmensajeError = mensajeError + Nocontienenumeros;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (error4) {\r\n\t\t\t\tmensajeError = mensajeError + Nocontienemayusculas;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (error5) {\r\n\t\t\t\tmensajeError = mensajeError + Nocontienesimbolo;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (this.errorMail) {\r\n\t\t\t\tmensajeError = mensajeError + Noesemail;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (this.errorLoginVacio) {\r\n\t\t\t\tmensajeError = mensajeError + Nologin;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\t\t\tif (this.errorRepetir) {\r\n\t\t\t\tmensajeError = mensajeError + Nocoinciden;\r\n\t\t\t\tthis.isValid = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.isValid) {\r\n\t\t\t\tthis.appComponent.showError(mensajeError);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.validar()) {\r\n\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t\tif (this.edicion) {\r\n\t\t\t\treturn this.guardarEdicion();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn this.guardarNuevo();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic guardarNuevo(){\r\n\t\tconst that = this;\r\n\t\tthis.cancelarGuardado = false;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst Nombre = that.usuarioSeleccionado.Nombre;\r\n\t\tconst Login = that.usuarioSeleccionado.Login;\r\n\t\tconst Contrasenia = that.Contrasenia;\r\n\t\tconst Email = that.usuarioSeleccionado.Email;\r\n\r\n\t\tif (that.perfilSeleccionado === undefined) {\r\n\t\t\tthat.perfilSeleccionado = that.perfiles[0];\r\n\t\t}\r\n\t\tconst idPerfil = that.perfilSeleccionado.Id;\r\n\r\n\t\tconst token = this.authService.getToken();\r\n\t\treturn \tthat.authService.sws.wsCrearUsuario(token, Nombre, Login, Contrasenia, Email, idPerfil, idEspacio).toPromise()\r\n\t\t.then(function () {\r\n\t\t\tconsole.log('USUARIO Guardado CORRECTAMENTE');\r\n\t\t\tthat.onElementoGuardado.emit(true);\r\n\t\t\tthat.authService.relogin();\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(false);\r\n\t\t});\r\n\t}\r\n\r\n\tguardarEdicion(){\r\n\r\n\t\tconst that = this;\r\n\t\tthis.cancelarGuardado = false;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst Nombre = that.usuarioSeleccionado.Nombre;\r\n\t\tconst Login = that.usuarioSeleccionado.Login;\r\n\t\tconst Contrasenia = this.Contrasenia;\r\n\t\tconst Activo = that.usuarioSeleccionado.Activo;\r\n\r\n\t\tconst Email = that.usuarioSeleccionado.Email;\r\n\r\n\t\tif (that.perfilSeleccionado === undefined) {\r\n\t\t\tthat.perfilSeleccionado = that.perfiles[0];\r\n\t\t}\r\n\t\tconst idPerfil = that.perfilSeleccionado.Id;\r\n\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\t// TODO: CAMBIAR PERFIL POR BREEZE Y LUEGO LLAMAR AL SERVICION WEB DE ACTUALIZAR USUARIO\r\n\r\n\r\n\t\treturn \tthat.authService.sws.wsUpdateUsuario(token, Nombre, Login, Contrasenia, Email, idPerfil, idEspacio, Activo).toPromise()\r\n\t\t.then(function () {\r\n\t\t\tconsole.log('USUARIO Guardado CORRECTAMENTE');\r\n\t\t\tthat.onElementoGuardado.emit(true);\r\n\t\t\tthat.authService.relogin();\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.onElementoError.emit(false);\r\n\t\t});\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgs = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioUsuario.component.ts","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t{{item.value.ENTIDAD.Codigo}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      {{idioma.value.title}}
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.WebExternaSeleccionada.Nombre\\\" (ngModelChange)=\\\"inputChanged('nombreWeb')\\\" pInputText>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
      \\r\\n\\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t 0\\\" [(ngModel)]=\\\"this.WebExternaSeleccionada.Url\\\" (ngModelChange)=\\\"inputChanged('UrlWeb')\\\" pInputText>\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\t\\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioWebExterna.component.html\n// module id = ../../../../../src/app/formularios/FormularioWebExterna.component.html\n// module chunks = main","import { WebExterna, ContenidoWebExternaIdiomaFormulario } from './../domain/WebExterna';\r\n\r\nimport { Component, Input, EventEmitter, Output, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\r\nimport { EntityManagerProvider } from '../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../providers/authentication/authentication.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { IdiomaService } from '../providers/idioma/idioma.service';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { emit } from 'cluster';\r\nimport { AppComponent } from '../app.component';\r\n\r\n@Component({\r\n selector: 'app-formulario-web-externa',\r\n templateUrl: './FormularioWebExterna.component.html'\r\n})\r\n\r\nexport class FormularioWebExternaComponent implements OnDestroy, OnChanges{\r\n\r\n\t@Input() WebExternaSeleccionada: WebExterna;\r\n\r\n\t@Output() onElementoGuardado: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoError: EventEmitter = new EventEmitter();\r\n\t@Output() onElementoEliminado: EventEmitter = new EventEmitter();\r\n\r\n\tpublic msgsValidacion;\r\n\tpublic confirmacionVisible;\r\n\tpublic operacion;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tprivate idiomaService: IdiomaService\r\n\t) {\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\tif (that.WebExternaSeleccionada) {\r\n\t\t\t\tthat.WebExternaSeleccionada.Idiomas = that.idiomaService.newMapContenidoWebExternaIdiomas(that.idiomas);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.onIdiomaChange({value: this.idiomaSeleccionado});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\t/* ACCIONES */\r\n\tguardarContenidoWebExterna() {\r\n\r\n\t\tif (this.validar()) {\r\n\t\t\t// if (this.esEdicion() === false) {\r\n\t\t\t\t// Delegamos la guardado de la web a NuevoContenidoComponent pera no cambiar esa logica ahoramismo\r\n\t\t\tthis.onElementoGuardado.emit(this.WebExternaSeleccionada);\r\n\t\t\tthis.authService.relogin();\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\r\n\teliminarContenidoWebExterna(webSeleccionada) {\r\n\t\t// Delegamos la eliminacion de la web a NuevoContenidoComponent pera no cambiar esa logica ahoramismo\r\n\t\tthis. onElementoEliminado.emit(webSeleccionada);\r\n\t\tthis.authService.relogin();\r\n\t}\r\n\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* */\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.WebExternaSeleccionada && (this.WebExternaSeleccionada.ENTIDAD ? true : false);\r\n\t}\r\n\r\n\tinputChanged(value) {\r\n\r\n\t\t// Cojemos la traduccion del contenido al idioma seleccionado\r\n\t\tif (this.WebExternaSeleccionada) {\r\n\t\t\tconst contenidoWebExternaIdioma = this.WebExternaSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\t\t\t// Guardamos los posibles cambios del idioma\r\n\t\t\tif (contenidoWebExternaIdioma) {\r\n\t\t\t\tcontenidoWebExternaIdioma.Texto = this.WebExternaSeleccionada.Nombre;\r\n\t\t\t\tthis.WebExternaSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, contenidoWebExternaIdioma);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tconsole.warn('Implementar: validar');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\t\tif (this.esEdicion()) {\r\n\t\t\treturn this.guardarEdicion();\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn this.guardarNuevo();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic guardarNuevo(){\r\n\t\tconst that = this;\r\n\t}\r\n\r\n\tguardarEdicion(){\r\n\r\n\t}\r\n\r\n\r\n\tpublic subirImagenTipologiaSeleccionada(imagenTipologiaSeleccionada) {\r\n\r\n\t}\r\n\r\n\t/* IDIOMA */\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma || !this.WebExternaSeleccionada || !this.WebExternaSeleccionada.Idiomas) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet contenidoWebExternaIdioma = this.WebExternaSeleccionada.Idiomas.get(idioma.value);\r\n\t\t// Si no existe la creamos\r\n\t\tif (!contenidoWebExternaIdioma) {\r\n\t\t\tcontenidoWebExternaIdioma = new ContenidoWebExternaIdiomaFormulario();\r\n\t\t\tthis.WebExternaSeleccionada.Idiomas.set(idioma.value, contenidoWebExternaIdioma);\r\n\t\t}\r\n\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.WebExternaSeleccionada.Nombre = contenidoWebExternaIdioma.Texto;\r\n\r\n\t\tconsole.log('Cambiado el Titulo al del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\t/* Confirmacion */\r\n\tmostrarConfirmacion(operacion){\r\n\t\tthis.appComponent.showWarn(operacion);\r\n\t\tthis.operacion = operacion;\r\n\t\tthis.confirmacionVisible = true;\r\n\t}\r\n\r\n\tconfirmar(){\r\n\t\tthis.confirmacionVisible = false;\r\n\t\tthis.msgsValidacion = [];\r\n\r\n\t\tif (this.operacion === 'guardar') {\r\n\t\t\tthis.guardarContenidoWebExterna();\r\n\t\t}\r\n\t\telse if (this.operacion === 'eliminar'){\r\n\t\t\tthis.eliminarContenidoWebExterna(this.WebExternaSeleccionada);\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.msgsValidacion = [];\r\n\t\tthis.operacion = '';\r\n\t\tthis.confirmacionVisible = false;\r\n\t}\r\n\r\n\tshowWarn(operacion) {\r\n\t\tthis.msgsValidacion = [];\r\n\t\tif (operacion === 'guardar') {\r\n\t\t\tthis.msgsValidacion.push({severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR')});\r\n\t\t}\r\n\t\telse if (operacion === 'eliminar'){\r\n\t\t\tthis.msgsValidacion.push({severity: 'warn', detail: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR')});\r\n\t\t}\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/formularios/FormularioWebExterna.component.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { BeaconsComponent } from '../views/Beacons/Beacons.component';\r\nimport { Http } from '@angular/http';\r\n\r\nimport { SliderModule } from 'primeng/slider';\r\nimport {CalendarModule} from 'primeng/calendar';\r\n\r\n\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport {\r\n\tButtonModule,\r\n\tDialogModule,\r\n\tConfirmDialogModule,\r\n\tInputSwitchModule,\r\n\tTabMenuModule,\r\n\tDropdownModule,\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\nimport { FileUploadModule } from 'primeng/primeng';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { ComponentesModule } from './componentes.module';\r\n\r\nimport { FormularioBalizaModule } from './formularios.module'\r\n\r\nexport const balizasModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'balizas',\r\n\t\tcomponent: BeaconsComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: BeaconsComponent ,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t \texpectedRole: [Permisos.Ajustes_menu]\r\n\t\t\t\t},\r\n\t\t \t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tFormularioBalizaModule,\r\n\t\tComponentesModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(balizasModuleRoutes),\r\n\t\tDropdownModule,\r\n\t\tButtonModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDialogModule,\r\n\t\tTableModule,\r\n\t\tInputSwitchModule,\r\n\t\tTabMenuModule,\r\n\t\tFileUploadModule,\r\n\t\tSliderModule,\r\n\t\tCalendarModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tBeaconsComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class BalizasModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: BalizasModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/balizas.module.ts","import { GeoposicionarComponent } from '../componentes/geoposicionamiento/geoposicionar.component';\r\nimport { SelectorIdiomaComponent } from '../componentes/selectorIdioma/selectorIdioma.component';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Http } from '@angular/http';\r\nimport { TableModule } from 'primeng/table';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TablaAsignacionContenidosComponent } from '../componentes/tabla-asignacion-contenidos/tabla-asignacion-contenidos.component';\r\n\r\nexport {\r\n\tGeoposicionarComponent,\r\n\tSelectorIdiomaComponent,\r\n\tTablaAsignacionContenidosComponent\r\n};\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tGeoposicionarComponent,\r\n\t\tSelectorIdiomaComponent,\r\n\t\tTablaAsignacionContenidosComponent\r\n\t\t\r\n\t],\r\n\texports: [\r\n\t\tGeoposicionarComponent,\r\n\t\tSelectorIdiomaComponent,\r\n\t\tTablaAsignacionContenidosComponent\r\n\t],\r\n\timports: [\r\n\t\tFormsModule,\r\n\t\tTableModule,\r\n\t\tCommonModule,\r\n\t\tTranslateModule.forRoot({\r\n\t\t\tprovide: TranslateLoader,\r\n\t\t\tuseFactory: function (http: Http) { return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n\t\t\tdeps: [Http]\r\n\t\t})\r\n\t\t\r\n\r\n\t],\r\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n\r\n})\r\nexport class ComponentesModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/componentes.module.ts","import { NgModule, ModuleWithProviders, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n// import { FormsModule } from '@angular/forms';\r\n// import { FormGroup } from '@angular/forms';\r\n\r\n// import { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n// import { FormControlName } from '@angular/forms';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { Http } from '@angular/http';\r\nimport { ContenidosParentComponent } from '../views/contenidos/ContenidosParent.component';\r\nimport { ContenidosComponent } from '../views/contenidos/contenidos.component';\r\nimport { NuevoContenidoComponent } from '../views/contenidos/nuevo/nuevo.contenido.component';\r\n\r\nimport { WeditorComponent } from '../componentes/weditor/weditor.component';\r\nimport { CarrouselFotosComponent } from '../componentes/carrouselFotos/carrouselFotos.component'\r\n\r\nimport { PlanoModule } from 'interiores-mapa';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { DraggableModule } from '../componentes/carrouselFotos/draggable/draggable.module';\r\n\r\nimport {\r\n\tAccordionModule,\r\n\tCalendarModule,\r\n\tCardModule,\r\n\tConfirmDialogModule,\r\n\tDataGridModule,\r\n\tDialogModule,\r\n\tEditorModule,\r\n\tFileUploadModule,\r\n\tGrowlModule,\r\n\tMessagesModule,\r\n\tPanelModule,\r\n\tPickListModule,\r\n\tToolbarModule,\r\n\tDropdownModule,\r\n\tTabMenuModule,\r\n\tPaginatorModule\r\n} from 'primeng/primeng';\r\nimport { TableModule } from 'primeng/table';\r\n\r\nimport { FormularioWebExternaComponent } from '../formularios/FormularioWebExterna.component';\r\nimport { FormularioPosicionarContenidoComponent } from '../formularios/FormularioPosicionarContenido.component';\r\nimport { FormularioQR } from '../formularios/FormularioQR.component';\r\nimport { ImageCropperModule } from 'ngx-img-cropper';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\n\r\nimport { ComponentesModule } from '../modules/componentes.module';\r\n\r\nimport { QRCodeModule } from 'angularx-qrcode';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\n\r\n/*\r\nimport { ChartModule } from 'primeng/primeng';\r\nimport { DataGridModule } from 'primeng/primeng';\r\nimport { DialogModule } from 'primeng/primeng';\r\nimport { GalleriaModule } from 'primeng/primeng';\r\nimport { PanelModule } from 'primeng/primeng';\r\n*/\r\nexport const contenidosModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'contenidos',\r\n\t\tcomponent: ContenidosParentComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: ContenidosComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Contenidos_menu]\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'nuevo',\r\n\t\t\t\tcomponent: NuevoContenidoComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Contenidos_menu]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'editar',\r\n\t\t\t\tcomponent: NuevoContenidoComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Contenidos_menu]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tQRCodeModule,\r\n\r\n\t\tComponentesModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tRouterModule.forChild(contenidosModuleRoutes),\r\n\r\n\t\tPlanoModule,\r\n/*\r\n\t\tChartModule,\r\n\t\tDataGridModule,\r\n\t\tGalleriaModule,\r\n\t\tPanelModule,\r\n*/\r\n\r\n\t\tAccordionModule,\r\n\t\tCalendarModule,\r\n\t\tCardModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDataGridModule,\r\n\t\tDialogModule,\r\n\t\tEditorModule,\r\n\t\tFileUploadModule,\r\n\t\tGrowlModule,\r\n\t\tImageCropperModule,\r\n\t\tMessagesModule,\r\n\t\tPanelModule,\r\n\t\tPickListModule,\r\n\t\tTableModule,\r\n\t\tPaginatorModule,\r\n\t\tTabMenuModule,\r\n\t\tDropdownModule,\r\n\t\tToolbarModule,\r\n\t\tCKEditorModule,\r\n\t\tDraggableModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tContenidosParentComponent,\r\n\t\tContenidosComponent,\r\n\t\tNuevoContenidoComponent,\r\n\t\tCarrouselFotosComponent,\r\n\t\tFormularioWebExternaComponent,\r\n\t\tFormularioPosicionarContenidoComponent,\r\n\t\tWeditorComponent,\r\n\t\tFormularioQR\r\n\t],\r\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA ]\r\n})\r\n\r\nexport class ContenidosModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: ContenidosModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/contenidos.module.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Http } from '@angular/http';\r\nimport { DashboardComponent } from '../views/Dashboard/dashboard.component';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { ChartModule } from 'primeng/primeng';\r\nimport { DataGridModule } from 'primeng/primeng';\r\nimport { DialogModule } from 'primeng/primeng';\r\nimport { GalleriaModule } from 'primeng/primeng';\r\nimport { GrowlModule } from 'primeng/primeng';\r\nimport { PanelModule } from 'primeng/primeng';\r\nimport { DropdownModule } from 'primeng/primeng';\r\nimport { CalendarModule } from 'primeng/primeng';\r\nimport { TableModule } from 'primeng/table';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { AppChartComponent } from '../componentes/graficas/chart/chart.component';\r\nimport { AppHotChartComponent } from '../componentes/graficas/hotChart/hotChart.component';\r\nimport { RangefilterComponent } from '../componentes/graficas/rangeFilter/rangeFilter.component';\r\nimport { InfoDashComponent } from '../componentes/graficas/infoDash/infoDash.component';\r\nimport { PlanoModule } from 'interiores-mapa';\r\nimport { MapaCalorModule } from 'mapacalorcomponent/dist/mapa-calor';\r\n\r\nimport {\r\n\tBrowserAnimationsModule\r\n } from '@angular/platform-browser/animations';\r\n\r\nimport { BarChartDashComponent } from '../componentes/graficas/barChartDash/barChartDash.component';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { version } from 'punycode';\r\nimport { ContenidosDashComponent } from '../componentes/graficas/contenidosDash/contenidosDash.component';\r\n\r\n// import { ItsoftKibanaIntegrationModule} from '../../../../itsoft-kibana-integration/dist/itsoft-kibana-integration';\r\n\r\n\r\nexport const dashboardModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'dashboard',\r\n\t\tcomponent: DashboardComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: DashboardComponent ,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Dashboard_menu]\r\n\t\t\t\t},\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(dashboardModuleRoutes),\r\n\t\tCalendarModule,\r\n\t\tChartModule,\r\n\t\tDropdownModule,\r\n\t\tDataGridModule,\r\n\t\tDialogModule,\r\n\t\tGalleriaModule,\r\n\t\tGrowlModule,\r\n\t\tPanelModule,\r\n\t\tMapaCalorModule,\r\n\t\tTableModule,\r\n\t\tPlanoModule,\r\n\t\tBrowserAnimationsModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n\t\t\t\t}),\r\n\t\t// ItsoftKibanaIntegrationModule\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tDashboardComponent,\r\n\t\tAppChartComponent,\r\n\t\tAppHotChartComponent,\r\n\t\tBarChartDashComponent,\r\n\t\tRangefilterComponent,\r\n\t\tInfoDashComponent,\r\n\t\tContenidosDashComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class DashboardModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: DashboardModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/dashboard.module.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { EncuestasComponent } from '../views/Encuestas/Encuestas.component';\r\nimport { Http } from '@angular/http';\r\n\r\nimport { SliderModule } from 'primeng/slider';\r\nimport {CalendarModule} from 'primeng/calendar';\r\n\r\n\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport {\r\n\tButtonModule,\r\n\tDialogModule,\r\n\tConfirmDialogModule,\r\n\tInputSwitchModule,\r\n\tTabMenuModule,\r\n\tDropdownModule,\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\nimport { FileUploadModule } from 'primeng/primeng';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { ComponentesModule } from './componentes.module';\r\n\r\nimport { FormularioBalizaModule } from './formularios.module'\r\n\r\nexport const encuestasModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'encuestas',\r\n\t\tcomponent: EncuestasComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: EncuestasComponent ,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t \texpectedRole: [Permisos.Encuestas_menu]\r\n\t\t\t\t},\r\n\t\t \t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tFormularioBalizaModule,\r\n\t\tComponentesModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(encuestasModuleRoutes),\r\n\t\tDropdownModule,\r\n\t\tButtonModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDialogModule,\r\n\t\tTableModule,\r\n\t\tInputSwitchModule,\r\n\t\tTabMenuModule,\r\n\t\tFileUploadModule,\r\n\t\tSliderModule,\r\n\t\tCalendarModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tEncuestasComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class EncuestasModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: EncuestasModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/encuestas.module.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { EntidadesComponent } from '../views/Entidades/entidades.component';\r\nimport { Http } from '@angular/http';\r\nimport { FormularioPerfilMovilidadComponent } from '../formularios/FormularioPerfilMovilidad.component';\r\nimport { FormularioTipologiaContenidoComponent } from '../formularios/FormularioTipologiaContenido.component';\r\nimport { FormularioTipologiaSeccionComponent } from '../formularios/FormularioTipologiaSeccion.component';\r\nimport { FormularioUsuarioComponent } from '../formularios/FormularioUsuario.component';\r\nimport {CalendarModule} from 'primeng/calendar';\r\n\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport {\r\n\tButtonModule,\r\n\tDialogModule,\r\n\tConfirmDialogModule,\r\n\tInputSwitchModule,\r\n\tTabMenuModule,\r\n\tDropdownModule,\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\nimport { FileUploadModule } from 'primeng/primeng';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\n\r\nexport const entidadesModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'entidades',\r\n\t\tcomponent: EntidadesComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: EntidadesComponent ,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Ajustes_menu]\r\n\t\t\t\t},\r\n\t\t \t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(entidadesModuleRoutes),\r\n\t\tDropdownModule,\r\n\t\tButtonModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDialogModule,\r\n\t\tTableModule,\r\n\t\tInputSwitchModule,\r\n\t\tTabMenuModule,\r\n\t\tFileUploadModule,\r\n\t\tCalendarModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tEntidadesComponent,\r\n\t\tFormularioPerfilMovilidadComponent,\r\n\t\tFormularioTipologiaContenidoComponent,\r\n\t\tFormularioTipologiaSeccionComponent,\r\n\t\tFormularioUsuarioComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class EntidadesModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: EntidadesModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/entidades.module.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormularioBalizaComponent } from '../formularios/FormularioBaliza.component';\r\n\r\n\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { TranslateModule } from 'ng2-translate';\r\n\r\nimport {\r\n\tDropdownModule,\r\n\tCalendarModule,\r\n\tMessagesModule\r\n} from 'primeng/primeng';\r\n// Para componentes que vana ser cargados desde mas de una vista es necesario definir un modullo e importar ese modulo desde la vista que se desee usar el componente\r\n\r\n@NgModule(\r\n {\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslateModule,\r\n\t\t\tCalendarModule,\r\n\t\t\tMessagesModule,\r\n\t\t\tDropdownModule\r\n ],\r\n exports: [\r\n FormularioBalizaComponent,\r\n\r\n ],\r\n declarations: [\r\n FormularioBalizaComponent,\r\n ],\r\n providers: [],\r\n })\r\n\r\n export class FormularioBalizaModule{\r\n }\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/formularios.module.ts","import { NgModule, ModuleWithProviders, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Http } from '@angular/http';\r\nimport { InformesComponent } from '../views/Informes/Informes.component';\r\nimport {InputSwitchModule} from 'primeng/inputswitch';\r\nimport {MenubarModule} from 'primeng/menubar';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {MultiSelectModule} from 'primeng/multiselect';\r\nimport {CalendarModule} from 'primeng/calendar';\r\nimport { AppOcupacionChartComponent } from '../componentes/OcupacionChart/ocupacionChart.component';\r\nimport {AppLocalizacionChartComponent} from '../componentes/LocalizacionChart/localizacionChart.component';\r\nimport {AppHistoricoChartComponent} from '../componentes/HistoricoChart/historicoChart.component';\r\nimport {AppHistoricoSeccionChartComponent} from '../componentes/historicoSeccionChart/historicoSeccionChart.component';\r\nimport {AppHistoricoTipologiaSeccionChartComponent} from '../componentes/historicoTipologiaSeccionChart/historicoTipologiaSeccionChart.component';\r\n//import {AppImprimirChartComponent} from '../componentes/Imprimir/Imprimir.component';\r\nimport {AppCoincidenciasChartComponent} from '../componentes/CoincidenciasChart/coincidenciasChart.component';\r\nimport { PlanoModule } from 'interiores-mapa';\r\nimport {SelectButtonModule} from 'primeng/selectbutton';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport {\r\n\tAccordionModule\r\n} from 'primeng/primeng';\r\n\r\nimport {\r\n\r\n\tConfirmDialogModule,\r\n\tDialogModule,\r\n\tFileUploadModule,\r\n\tGrowlModule,\r\n\tPickListModule,\r\n\tDropdownModule,\r\n\tPaginatorModule,\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { TranslateLoader, TranslateStaticLoader } from 'ng2-translate/src/translate.service';\r\nimport { TranslateModule } from 'ng2-translate';\r\nimport { ComponentesModule } from './componentes.module';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { AppModule } from '../app.module';\r\nimport { DashboardModule } from './dashboard.module';\r\nimport { MapaCalorModule } from 'mapacalorcomponent/dist/mapa-calor';\r\nimport {SliderModule} from 'primeng/slider';\r\n\r\nexport const InformesModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'informes',\r\n\t\tcomponent: InformesComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: InformesComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t// TODO: Dar de alta el nuevo permiso en BBDD y agregar esta linea\r\n\t\t\t\t\texpectedRole: [Permisos.Dashboard_menu]\r\n\t\t\t\t\t// expectedRole: [Permisos.Informes_menu]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tSelectButtonModule,\r\n\t\tSliderModule,\r\n\t\tAccordionModule,\r\n\t\tMapaCalorModule,\r\n\t\tDashboardModule,\r\n\t\tInputSwitchModule,\r\n\t\tButtonModule,\r\n\t\tComponentesModule,\r\n\t\tMenubarModule,\r\n\t\tInputTextModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tRouterModule.forChild(InformesModuleRoutes),\r\n\t\tCalendarModule,\r\n\t\t// CardModule,\r\n\t\tConfirmDialogModule,\r\n\t\t// DataGridModule,\r\n\t\tDialogModule,\r\n\t\t// EditorModule,\r\n\t\tFileUploadModule,\r\n\t\tGrowlModule,\r\n\t\tPickListModule,\r\n\t\tTableModule,\r\n\t\tMultiSelectModule,\r\n\t\tPaginatorModule,\r\n\t\t// TabMenuModule,\r\n\t\tDropdownModule,\r\n\t\tPlanoModule,\r\n\t\tTooltipModule,\r\n\t\t// ToolbarModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tInformesComponent,\r\n\t\tAppOcupacionChartComponent,\r\n\t\tAppLocalizacionChartComponent,\r\n\t\tAppHistoricoChartComponent,\r\n\t\tAppHistoricoSeccionChartComponent,\r\n\t\tAppCoincidenciasChartComponent,\r\n\t\tAppHistoricoTipologiaSeccionChartComponent\r\n\t\t//AppImprimirChartComponent\r\n\t],\r\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\n\r\nexport class InformesModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: InformesModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/informes.module.ts","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AngularDraggableModule } from 'angular2-draggable';\r\n\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\n\r\nimport { MapasParentComponent } from '../views/mapas/MapasParent.component';\r\nimport { SelectorMapasComponent } from '../views/mapas/SelectorMapas.component';\r\nimport { MapasComponent } from '../views/mapas/mapas.component';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\n\r\nimport { PlanoModule } from 'interiores-mapa';\r\nimport { Http } from '@angular/http';\r\nimport { FormularioAlaComponent } from '../formularios/FormularioAla.component';\r\nimport { FormularioConexionComponent } from '../formularios/FormularioConexion.component';\r\nimport { FormularioNivelComponent } from '../formularios/FormularioNivel.component';\r\nimport { FormularioNodoComponent } from '../formularios/FormularioNodo.component';\r\nimport { FormularioSeccionComponent } from '../formularios/FormularioSeccion.component';\r\nimport { FormularioCrearSeccionComponent } from '../formularios/FormularioCrearSeccion.component';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\nimport 'hammerjs';\r\n\r\n\r\nimport {\r\n\tAccordionModule,\r\n\tCalendarModule,\r\n\tConfirmDialogModule,\r\n\tDataGridModule,\r\n\tDialogModule,\r\n\tDropdownModule,\r\n\tFileUploadModule,\r\n\tGrowlModule,\r\n\tInputSwitchModule,\r\n\tMessagesModule,\r\n\tTabMenuModule,\r\n\tPanelModule,\r\n\tSlideMenuModule,\r\n\tToolbarModule,\r\n\tListboxModule,\r\n\tSliderModule,\r\n\tMultiSelectModule\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\nimport { FormularioContenidoComponent } from '../formularios/FormularioContenido.component';\r\nimport { FormularioBalizaModule } from '../modules/formularios.module';\r\n\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\n// import { GeoposicionarComponent } from '../componentes/geoposicionamiento/geoposicionar.component';\r\n\r\nexport const mapasModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'mapas',\r\n\t\tcomponent: MapasParentComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: SelectorMapasComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Mapas_menu]\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'editar',\r\n\t\t\t\tcomponent: MapasComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Mapas_menu]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(mapasModuleRoutes),\r\n\t\tFormularioBalizaModule,\r\n\t\tAccordionModule,\r\n\t\tCalendarModule,\r\n\t\tColorPickerModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDataGridModule,\r\n\t\tDialogModule,\r\n\t\tDropdownModule,\r\n\t\tFileUploadModule,\r\n\t\tGrowlModule,\r\n\t\tInputSwitchModule,\r\n\t\tListboxModule,\r\n\t\tPanelModule,\r\n\t\tSlideMenuModule,\r\n\t\tTableModule,\r\n\t\tToolbarModule,\r\n\t\tTabMenuModule,\r\n\t\tAngularDraggableModule,\r\n\t\tSliderModule,\r\n\t\tPlanoModule,\r\n\t\tMultiSelectModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t\t// TableModule,\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\t// PlanoComponent,\r\n\t\tMapasParentComponent,\r\n\t\tMapasComponent,\r\n\t\tSelectorMapasComponent,\r\n\t\tFormularioAlaComponent,\r\n\t\tFormularioNivelComponent,\r\n\t\tFormularioConexionComponent,\r\n\t\tFormularioNodoComponent,\r\n\t\tFormularioSeccionComponent,\r\n\t\tFormularioContenidoComponent,\r\n\t\tFormularioCrearSeccionComponent,\r\n\t\t// GeoposicionarComponent\r\n\r\n\t\t// SelectorIdiomaComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class MapasModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/mapas.module.ts","import { NgModule, ModuleWithProviders, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MensajesComponent } from '../views/Mensajes/Mensajes.component';\r\nimport { Http } from '@angular/http';\r\nimport { ButtonModule, \tCalendarModule, InputSwitchModule, DropdownModule, DialogModule, EditorModule, TabMenuModule } from 'primeng/primeng';\r\nimport { GrowlModule } from 'primeng/primeng';\r\nimport { TableModule } from 'primeng/table';\r\nimport { ConfirmDialogModule } from 'primeng/primeng';\r\nimport { PaginatorModule } from 'primeng/primeng';\r\nimport {TabViewModule} from 'primeng/tabview';\r\nimport {CheckboxModule} from 'primeng/checkbox';\r\n\r\nimport { PlanoModule } from 'interiores-mapa';\r\n\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { Constantes } from '../domain/constantes';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nimport { MessagesModule } from 'primeng/primeng';\r\nimport { NuevoMensajeComponent } from '../views/Mensajes/nuevo/nuevo.mensaje.component';\r\n\r\nimport { ImageCropperModule } from 'ngx-img-cropper';\r\nimport { MensajesParentComponent } from '../views/Mensajes/MensajesParent.component';\r\nimport { WeditorMensajesComponent } from '../componentes/weditorMensajes/weditorMensajes.component';\r\n// import { ComponentesModule } from './componentes.module';\r\n\r\n// import { GeoposicionarComponent } from '../componentes/geoposicionamiento/geoposicionar.component';\r\nimport { ComponentesModule } from '../modules/componentes.module';\r\n\r\nexport const mensajesModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'mensajes',\r\n\t\tcomponent: MensajesParentComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: MensajesComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Mensajes_menu]\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'nuevo',\r\n\t\t\t\tcomponent: NuevoMensajeComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Mensajes_menu]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tComponentesModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(mensajesModuleRoutes),\r\n\t\tCalendarModule,\r\n\t\tButtonModule,\r\n\t\tGrowlModule,\r\n\t\tImageCropperModule,\r\n\t\tTableModule,\r\n\t\tEditorModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDialogModule,\r\n\t\tInputSwitchModule,\r\n\t\tMessagesModule,\r\n\t\tTabMenuModule,\r\n\t\tPaginatorModule,\r\n\t\tTabViewModule,\r\n\t\tCheckboxModule,\r\n\t\tDropdownModule,\r\n\t\tPlanoModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t\t// AboutRoutes\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tMensajesParentComponent,\r\n\t\tMensajesComponent,\r\n\t\tNuevoMensajeComponent,\r\n\t\tWeditorMensajesComponent\r\n\t],\r\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA ]\r\n\r\n})\r\n\r\nexport class MensajesModule {\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: MensajesModule\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/mensajes.module.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { Constantes } from '../domain/constantes';\r\n\r\nimport { NoticiasParentComponent } from '../views/Noticias/NoticiasParent.component';\r\nimport { NoticiasComponent } from '../views/Noticias/Noticias.component';\r\nimport { NuevaNoticiaComponent } from '../views/Noticias/nuevo/nueva.noticia.component';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { ButtonModule } from 'primeng/primeng';\r\nimport { CalendarModule } from 'primeng/primeng';\r\nimport { ConfirmDialogModule } from 'primeng/primeng';\r\nimport { DropdownModule } from 'primeng/primeng';\r\nimport { FileUploadModule } from 'primeng/primeng';\r\nimport { GrowlModule } from 'primeng/primeng';\r\nimport { TableModule } from 'primeng/table';\r\nimport { Http } from '@angular/http';\r\nimport { ImageCropperModule } from 'ngx-img-cropper';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\nexport const noticiasModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'noticias',\r\n\t\tcomponent: NoticiasParentComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: NoticiasComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Noticias_menu]\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'nueva',\r\n\t\t\t\tcomponent: NuevaNoticiaComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.Noticias_menu]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule.forChild(noticiasModuleRoutes),\r\n\r\n\t\tButtonModule,\r\n\t\tCalendarModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDropdownModule,\r\n\t\tFileUploadModule,\r\n\t\tGrowlModule,\r\n\t\tImageCropperModule,\r\n\t\tTableModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tNoticiasParentComponent,\r\n\t\tNoticiasComponent,\r\n\t\tNuevaNoticiaComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class NoticiasModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: NoticiasModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/noticias.module.ts","//#region Import\r\n// import { FormsModule } from '@angular/forms';\r\n// import { FormGroup } from '@angular/forms';\r\n// import { FormControl, FormGroup, Validators } from '@angular/forms';\r\n// import { FormControlName } from '@angular/forms';\r\n\r\n// import { CalendarModule } from 'primeng/primeng';\r\n// import { CardModule } from 'primeng/primeng';\r\n// import { EditorModule } from 'primeng/primeng';\r\n// import { FileUploadModule } from 'primeng/primeng';\r\n\r\n// import { PickListModule } from 'primeng/primeng';\r\n// import { TableModule } from 'primeng/table';\r\n// import { TabMenuModule } from 'primeng/primeng';\r\n\r\n\r\n\r\n// import { ChartModule } from 'primeng/primeng';\r\n// import { DataGridModule } from 'primeng/primeng';\r\n// import { GalleriaModule } from 'primeng/primeng';\r\n// import { PanelModule } from 'primeng/primeng';\r\n\r\n//#endregion\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { Http } from '@angular/http';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\nimport { RutasSugeridasParentComponent } from '../views/RutasSugeridas/RutasSugeridasParent.component';\r\nimport { RutasSugeridasComponent } from '../views/RutasSugeridas/RutasSugeridas.component';\r\nimport { NuevaRutaSugeridaComponent } from '../views/RutasSugeridas/nuevo/nueva.rutaSugerida.component';\r\nimport { ImageCropperModule } from 'ngx-img-cropper';\r\n\r\nimport {\r\n\tButtonModule,\r\n\tCalendarModule,\r\n\tDropdownModule,\r\n\tGrowlModule,\r\n\tFileUploadModule,\r\n\tPickListModule,\r\n\tDialogModule,\r\n\tConfirmDialogModule,\r\n\tPaginatorModule,\r\n\tInputSwitchModule,\r\n} from 'primeng/primeng';\r\n\r\nimport { TableModule } from 'primeng/table';\r\n\r\nimport { AngularSplitModule } from 'angular-split';\r\nimport { Permisos } from '../providers/authentication/permisos.service';\r\n\r\nexport const rutasSugeridasModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'rutas-sugeridas',\r\n\t\tcomponent: RutasSugeridasParentComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: RutasSugeridasComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.RutaSugerida_menu]\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t}\r\n\t\t\t,\r\n\t\t\t{\r\n\t\t\t\tpath: 'nueva',\r\n\t\t\t\tcomponent: NuevaRutaSugeridaComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.RutaSugerida_menu]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: 'editar',\r\n\t\t\t\tcomponent: NuevaRutaSugeridaComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: [Permisos.RutaSugerida_menu]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t],\r\n\t\tpathMatch: 'prefix'\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tInputSwitchModule,\r\n\t\tCommonModule,\r\n\t\tDropdownModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tRouterModule.forChild(rutasSugeridasModuleRoutes),\r\n\r\n\r\n\t\t// \t\tChartModule,\r\n\t\t// \t\tDataGridModule,\r\n\t\t// \t\tGalleriaModule,\r\n\t\t// \t\tPanelModule,\r\n\t\t// \t\tCalendarModule,\r\n\t\t// \t\tCardModule,\r\n\t\t// \t\tDialogModule,\r\n\t\t// \t\tEditorModule,\r\n\t\t// \t\tPickListModule,\r\n\t\t// \t\tTabMenuModule\r\n\t\tPickListModule,\r\n\t\tDialogModule,\r\n\t\tAngularSplitModule,\r\n\t\tButtonModule,\r\n\t\tCalendarModule,\r\n\t\tConfirmDialogModule,\r\n\t\tFileUploadModule,\r\n\t\tGrowlModule,\r\n\t\tTableModule,\r\n\t\tImageCropperModule,\r\n\t\tPaginatorModule,\r\n\r\n\t\tMatIconModule,\r\n\t\tTranslateModule.forRoot({\r\n\t\t\tprovide: TranslateLoader,\r\n\t\t\tuseFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n\t\t\tdeps: [Http]\r\n\t\t})\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tRutasSugeridasParentComponent,\r\n\t\tRutasSugeridasComponent,\r\n\t\tNuevaRutaSugeridaComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class RutasSugeridasModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: RutasSugeridasModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/rutas.sugeridas.module.ts","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { SelectorEspacioComponent } from '../views/SelectorEspacios/SelectorEspacio.component';\r\nimport { FormularioEspacioComponent } from '../formularios/FormularioEspacio.component';\r\nimport { Http } from '@angular/http';\r\nimport { DataGridModule } from 'primeng/primeng';\r\nimport { GrowlModule } from 'primeng/primeng';\r\nimport { MessagesModule } from 'primeng/primeng';\r\nimport { PanelModule } from 'primeng/primeng';\r\nimport { FileUploadModule } from 'primeng/primeng';\r\nimport { CalendarModule } from 'primeng/primeng';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TranslateModule, TranslateLoader, TranslateStaticLoader } from 'ng2-translate';\r\nimport { ImageCropperModule } from 'ngx-img-cropper';\r\nimport { RoleGuardService as RoleGuard } from '../providers/authentication/role-guard.service';\r\n// import { ColorPickerModule } from 'primeng/primeng';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport {\r\n\tButtonModule,\r\n\tDialogModule,\r\n\tConfirmDialogModule,\r\n\tInputSwitchModule,\r\n\tTabMenuModule,\r\n\tDropdownModule,\r\n} from 'primeng/primeng';\r\n// import { SelectorIdiomaComponent } from '../componentes/selector-idioma/selector-idioma.component';\r\n\r\nexport const selectorEspacioModuleRoutes: Routes = [\r\n\t{\r\n\t\tpath: 'espacios',\r\n\t\tcomponent: SelectorEspacioComponent, // the `component` property is necessary when the lazy module provides some service in order to injection work well. If defined, the referenced component's template should have an element with the `` directive.\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcomponent: SelectorEspacioComponent,\r\n\t\t\t\tcanActivate: [RoleGuard],\r\n\t\t\t\tdata: {\r\n\t\t\t\t\texpectedRole: undefined\r\n\t\t\t\t},\r\n\t\t\t\tpathMatch: 'full'\r\n\t\t\t }\r\n\t\t]\r\n\t}\r\n];\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCalendarModule,\r\n\t\tInputSwitchModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tMessagesModule,\r\n\t\tRouterModule.forChild(selectorEspacioModuleRoutes),\r\n\t\tButtonModule,\r\n\t\tInputSwitchModule,\r\n\t\tColorPickerModule,\r\n\t\tConfirmDialogModule,\r\n\t\tDataGridModule,\r\n\t\tDialogModule,\r\n\t\tDropdownModule,\r\n\t\tGrowlModule,\r\n\t\tImageCropperModule,\r\n\t\tPanelModule,\r\n\t\tTableModule,\r\n\t\tFileUploadModule,\r\n\t\tTranslateModule.forRoot({\r\n provide: TranslateLoader,\r\n useFactory: function(http: Http){ return new TranslateStaticLoader(http, '/assets/i18n', '.json'); },\r\n deps: [Http]\r\n })\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tFormularioEspacioComponent,\r\n\t\tSelectorEspacioComponent\r\n\t\t// SelectorIdiomaComponent\r\n\t]\r\n\r\n})\r\n\r\nexport class SelectorEspacioModule {\r\n\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t ngModule: SelectorEspacioModule\r\n\t\t // providers: [CreditCardService]\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/modules/selector.espacio.module.ts","import { FotoBlob } from './../../domain/FotoBlob';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/delay';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\nimport {\r\n\tServiciosWebServiceProvider\r\n} from '../web-service-service/servicios-web-service';\r\n\r\nimport * as decode from 'jwt-decode';\r\n\r\nimport 'rxjs/add/observable/fromPromise';\r\n\r\nimport { Router } from '@angular/router';\r\n\r\nimport {\r\n\tconfig, Predicate,\r\n} from 'breeze-client';\r\n@Injectable()\r\nexport class AuthenticationService {\r\n\r\n\t// store the URL so we can redirect after logging in\r\n\tredirectUrl: string;\r\n\r\n\tconstructor(private http: HttpClient, private jwtHelperService: JwtHelperService, public sws: ServiciosWebServiceProvider, private router: Router) {\r\n\r\n\t}\r\n\r\n\tlogin(ent, usr, pass) {\r\n\t\tconst that = this;\r\n\t\treturn this.sws.wsLogin(ent, usr, pass).toPromise()\r\n\t\t\t.then(function (data) {\r\n\t\t\t\tif ((data.res === 1) && (data.lista.length > 0)) {\r\n\t\t\t\t\tthat.setToken(data.lista[0].token);\r\n\t\t\t\t\tthat.setLastUser(usr);\r\n\t\t\t\t\tthat.setLastPass(pass);\r\n\t\t\t\t\tthat.setEntidad(ent);\r\n\t\t\t\t}\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\tthrow e;\r\n\t\t\t});\r\n\t}\r\n\r\n\tNewToken() {\r\n\t\tconst that = this;\r\n\t\tconst token = this.getToken();\r\n\t\tif(token){\r\n\t\t\tconst today = new Date();\r\n\t\t\tconst expireData = this.jwtHelperService.getTokenExpirationDate(token);\r\n\t\t\tconst diffMs_FechaUbicacion = (expireData.getTime() - today.getTime()); // milliseconds between now & Christmas\r\n\t\t\tconst diffMins_FechaUbicacion = Math.round(((diffMs_FechaUbicacion % 86400000) % 3600000) / 60000); // minutes\r\n\t\t\tconsole.log(\"*** Token expire in: \" + diffMins_FechaUbicacion + \" min\");\r\n\r\n\t\t\t// Si faltan mas de 10 min para caducar el token no lo renovamos\r\n\t\t\tif (diffMins_FechaUbicacion > 10) {\r\n\t\t\t\treturn Promise.resolve(token);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.sws.wsNewToken(token).toPromise()\r\n\t\t\t.then(function (data) {\r\n\t\t\t\tconst today = new Date();\r\n\t\t\t\tconst expireData = that.jwtHelperService.getTokenExpirationDate(data);\r\n\t\t\t\tconst diffMs_FechaUbicacion = (expireData.getTime() - today.getTime()); // milliseconds between now & Christmas\r\n\t\t\t\tconst diffMins_FechaUbicacion = Math.round(((diffMs_FechaUbicacion % 86400000) % 3600000) / 60000); // minutes\r\n\t\t\t\tconsole.log(\"*** New Token: \" + data + \"\\n New Token expire in: \" + diffMins_FechaUbicacion + \" min\");\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tthat.setToken(data);\r\n\t\t\t\t}\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\tthrow e;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\trelogin() {\r\n\t\tconst ent = this.getEntidad();\r\n\t\tconst usr = this.getLastUser();\r\n\t\tconst pass = this.getLastPass();\r\n\t\treturn this.NewToken();\r\n\t}\r\n\r\n\tpublic setHeaderToken() {\r\n\t\t// Provider replacement\r\n\t\tconst ajaxAdapter = config.getAdapterInstance('ajax', 'angular');\r\n\r\n\t\t// Default authentication settings\r\n\t\tconst headers = ajaxAdapter.defaultSettings['headers'] || {};\r\n\t\tconst token = this.getToken();\r\n\r\n\t\theaders['Authorization'] = 'Bearer ' + token;\r\n\t\tajaxAdapter.defaultSettings['headers'] = headers;\r\n\t}\r\n\r\n\tpublic isAuthenticated(): boolean {\r\n\t\tconst token: string = this.jwtHelperService.tokenGetter();\r\n\t\tconst user: string = this.getLastUser();\r\n\t\tconst pwd: string = this.getLastPass();\r\n\t\tconst ent: string = this.getEntidad();\r\n\r\n\t\tif (!token || !user || !pwd || !ent) {\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn !this.estaTokenExpirado();\r\n\t\t}\r\n\r\n\t\t// No controlamos si el token está expirado. De ello se encarga el propio servicio.\r\n\t\t// 15/03/2018: es mejor controlar localmente tb la expiración. Si no pasa frecuentemente que si abandonas la app sin hacer logout y abres (por ejemplo) al\r\n\t\t// día siguiente de nuevo la app, se accede del tirón sin pasar por la pantalla de login, que sería lo correcto.\r\n\t\t// const tokenExpired: boolean = this.jwtHelperService.isTokenExpired(token);\r\n\t\t// return !tokenExpired;\r\n\t}\r\n\r\n\testaTokenExpirado(){\r\n\t\tconst token: string = this.jwtHelperService.tokenGetter();\r\n\t\tconst tokenExpired: boolean = this.jwtHelperService.isTokenExpired(token);\r\n\t\treturn tokenExpired;\r\n\t\t// return true; // Fixme\r\n\t}\r\n\r\n\tpublic getToken(): string {\r\n\t\tconst token: string = this.jwtHelperService.tokenGetter();\r\n\t\treturn token;\r\n\t}\r\n\r\n\tpublic setToken(token: string) {\r\n\t\tlocalStorage.setItem('token', token);\r\n\t\tthis.setHeaderToken();\r\n\t}\r\n\r\n\tpublic getIdUsuario() {\r\n\t\t// decode the token to get its payload\r\n\t\tconst token = this.getToken();\r\n\t\tif (!token) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst tokenPayload = decode(token);\r\n\t\treturn tokenPayload.nameid;\r\n\t}\r\n\r\n\tpublic getIdEntidad() {\r\n\t\t// decode the token to get its payload\r\n\t\tconst token = this.getToken();\r\n\t\tif (!token) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst tokenPayload = decode(token);\r\n\t\treturn tokenPayload.primarygroupsid;\r\n\t}\r\n\r\n\tpublic getIdApp() {\r\n\t\t// decode the token to get its payload\r\n\t\tconst token = this.getToken();\r\n\t\tif (!token) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst tokenPayload = decode(token);\r\n\t\treturn tokenPayload.system;\r\n\t}\r\n\r\n\tpublic getRole() {\r\n\t\t// decode the token to get its payload\r\n\t\tconst token = this.getToken();\r\n\t\tif (!token) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst tokenPayload = decode(token);\r\n\t\treturn tokenPayload.role;\r\n\t}\r\n\r\n\tpublic getLastUser(): string {\r\n\t\treturn localStorage.getItem('user');\r\n\t}\r\n\r\n\tpublic setLastUser(user: string) {\r\n\t\tlocalStorage.setItem('user', user);\r\n\t}\r\n\r\n\tpublic getLastPass(): string {\r\n\t\treturn localStorage.getItem('pass');\r\n\t}\r\n\r\n\tpublic setLastPass(pass: string) {\r\n\t\tlocalStorage.setItem('pass', pass);\r\n\t}\r\n\r\n\tpublic getEntidad() {\r\n\t\treturn localStorage.getItem('Entidad');\r\n\t}\r\n\r\n\tpublic setEntidad(Entidad: string) {\r\n\t\tlocalStorage.setItem('Entidad', Entidad);\r\n\t}\r\n\r\n\tpublic getIdEspacio() {\r\n\t\treturn localStorage.getItem('IdEspacio');\r\n\t}\r\n\r\n\tpublic setIdEspacio(Entidad: string) {\r\n\t\tlocalStorage.setItem('IdEspacio', Entidad);\r\n\t}\r\n\r\n\tpublic setAreaEspacio(Entidad: string) {\r\n\t\tlocalStorage.setItem('AreaEspacio', Entidad);\r\n\t}\r\n\r\n\tpublic getAreaEspacio() {\r\n\t\treturn localStorage.getItem('AreaEspacio');\r\n\t}\r\n\r\n\tpublic getFotoPorDefecto() {\r\n\t\treturn 'assets/itsoft/images/no-contenidos-p.png';\r\n\t\t// return localStorage.getItem('FotoPorDefecto');\r\n\t}\r\n\r\n\tpublic getFotoBlobPorDefecto() {\r\n\t\treturn new FotoBlob();\r\n\t}\r\n\r\n\tpublic setFotoPorDefecto(fotoBlob) {\r\n\t\tconst json = JSON.stringify(fotoBlob);\r\n\t\treturn localStorage.setItem('FotoPorDefecto', fotoBlob);\r\n\t}\r\n\r\n\tpublic logout(): void {\r\n\t\tlocalStorage.removeItem('token');\r\n\t\tlocalStorage.removeItem('IdEspacio');\r\n\t\tlocalStorage.removeItem('user');\r\n\t\tlocalStorage.removeItem('pass');\r\n\t\tlocalStorage.removeItem('Entidad');\r\n\t\tlocalStorage.removeItem('FotoPorDefecto');\r\n\t}\r\n\r\n\tredirigirNoLogado(): boolean {\r\n\t\tconst logado = this.isAuthenticated();\r\n\t\t// console.log(this.router.url + ' estaLogado: ' + logado);\r\n\t\tconst noLogin = this.router.url.indexOf('/Login') === -1;\r\n\r\n\t\tif (!logado && this.router.url !== '/' && noLogin && this.router.url.split('?')[0] !== '/DescargaApp' ) {\r\n\t\t\t// this.logout();\r\n\t\t\tthis.router.navigate(['/']);\r\n\t\t}\r\n\t\treturn logado;\r\n\t}\r\n\r\n\t/* Filtros Busqueda Contenido */\r\n\tpublic getFiltroContenido(): any {\r\n\t\tconst valor = localStorage.getItem('FiltroContenido');\r\n\r\n\t\tconst filtro = valor ? JSON.parse(valor) : {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhere: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitulo: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\testado: '3', // ACTIVO\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texpirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDesde: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHasta: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tElementoAsignado: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdAlternativo: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia: ''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\torder: 'Titulo desc',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop: 10,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: 0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttotal: 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\treturn filtro;\r\n\t}\r\n\r\n\tpublic setFiltroContenido(filtro: string) {\r\n\t\tlocalStorage.setItem('FiltroContenido', JSON.stringify(filtro));\r\n\t}\r\n\r\n\tpublic resetFiltroContenido() {\r\n\t\tconst valor = {\r\n\t\t\t\twhere: {\r\n\t\t\t\tTitulo: '',\r\n\t\t\t\testado: '3', // ACTIVO\r\n\t\t\t\texpirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\t\t\tDesde: '',\r\n\t\t\t\tHasta: '',\r\n\t\t\t\tElementoAsignado: '',\r\n\t\t\t\tIdAlternativo: '',\r\n\t\t\t\tTipologia: ''\r\n\t\t\t},\r\n\t\t\torder: 'Titulo desc',\r\n\t\t\ttop: 10,\r\n\t\t\tpage: 0,\r\n\t\t\ttotal: 0\r\n\t\t};\r\n\r\n\t\tlocalStorage.setItem('FiltroContenido', JSON.stringify(valor));\r\n\t}\r\n\tpublic setRutaSugerida(rutaId) {\r\n\t\tlocalStorage.setItem('rutaId', rutaId);\r\n\t}\r\n\tpublic getRutaSugerida(): any {\r\n\t\tconst rutaId = localStorage.getItem('rutaId');\r\n\t\treturn rutaId;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/authentication.service.ts","import { Injectable } from '@angular/core';\r\n\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/delay';\r\n\r\nimport 'rxjs/add/observable/fromPromise';\r\n\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../entity-manager-provider/entity-manager-provider';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { InformesService } from '../informes/informes.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { IdiomaService } from '../idioma/idioma.service';\r\nimport { BehaviorSubject } from '../../../../node_modules/rxjs';\r\nimport { Predicate } from 'breeze-client';\r\nimport { textChangeRangeIsUnchanged } from 'typescript';\r\n\r\n\r\n\r\nconst PREFERENCIAS_RUTAS_INICIALES = {\r\n\tDashboard_menu: '/dashboard',\r\n\tContenidos_menu: '/contenidos',\r\n\tRutaSugerida_menu: '/rutas-sugeridas',\r\n\tMapas_menu: '/mapas',\r\n\tMensajes_menu: '/mensajes',\r\n\tAjustes_menu: '/entidades',\r\n\tBalizas_menu: '/balizas',\r\n\tDiagnostico_menu: '/Conexion',\r\n\tInformes_menu: '/informes',\r\n\tEncuestas_menu: '/encuestas'\r\n};\r\n\r\n@Injectable()\r\nexport class PermisosService {\r\n\r\n\t[x: string]: any;\r\n\r\n\t// store the URL so we can redirect after logging in\r\n\tredirectUrl: string;\r\n\r\n\tmenuLateralModel: any = [];\r\n\tprivate menuSource = new BehaviorSubject(this.menuLateralModel);\r\n\tcurrentMenu = this.menuSource.asObservable();\r\n\r\n\tchangeMenu(menu){\r\n\t\tthis.menuSource.next(menu);\r\n\t}\r\n\r\n\tconstruirMenu(){\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tthis.model = [];\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.entityManager.getFUNCIONALIDADESbyUSUARIO(userId)\r\n\t\t.then(function(funcionalidades){\r\n\t\t\treturn that.getMenu(funcionalidades);\r\n\t\t})\r\n\t\t.then(function(menu){\r\n\t\t\tthat.changeMenu(menu);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private entityManager: EntityManagerProvider,\r\n\t\tprivate authService: AuthenticationService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate informeService: InformesService,\r\n\t\tprivate idiomaService: IdiomaService\r\n\r\n\t\t) {\r\n\t}\r\n\r\n\t/* MENU LATERAL */\r\n\tgetMenu(funcionalidades){\r\n\t\t\r\n\t\tconst that = this;\r\n\t\tconst model = [];\r\n\r\n\t\tif (funcionalidades) {\r\n\r\n\t\t\tfuncionalidades.sort(function(a, b) {\r\n\t\t\t\tconst textA = a.FUNCIONALIDAD.OrdenMenu;\r\n\t\t\t\tconst textB = b.FUNCIONALIDAD.OrdenMenu;\r\n\t\t\t\treturn (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\r\n\t\t\t});\r\n\r\n\t\t\tlet opsTipologia = [];\r\n\r\n\t\t\treturn this.obtenerTIPOLOGIA_CONTENIDO()\r\n\t\t\t.then(function(tipologias){\r\n\t\t\t\topsTipologia = tipologias;\r\n\r\n\t\t\t\topsTipologia = that.idiomaService.traducirTipologiasContenidoIdiomaNavegador(opsTipologia);\r\n\t\t\t\tfuncionalidades.forEach(funcion => {\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD) {\r\n\r\n\t\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Dashboard_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Dashboard'), // 'Dashboard'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-dashboard iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Dashboard_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Mapas_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Planos'), // 'Planos',\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-ubicacion-contenido-en-mapa iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Mapas_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Contenidos_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tconst items = [];\r\n\t\t\t\t\t\t\t\tconst haySubmenu = opsTipologia.find(t => t.VisibilidadMenuLateral) !== undefined;\r\n\t\t\t\t\t\t\t\tif (haySubmenu){\r\n\t\t\t\t\t\t\t\t\titems.push({\r\n\t\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Todos'), // 'todos los Contenidos'\r\n\t\t\t\t\t\t\t\t\t\ticon: '',\r\n\t\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Contenidos_menu, { idTipologia: that.translate.instant('MenuLateral.Todos')} ],\r\n\t\t\t\t\t\t\t\t\t\troot: false,\r\n\t\t\t\t\t\t\t\t\t\tvisible: false,\r\n\t\t\t\t\t\t\t\t\t\titems: false\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\topsTipologia.forEach(element => {\r\n\t\t\t\t\t\t\t\t\t\tif (element.VisibilidadMenuLateral) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\titems.push(\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: element.Nombre, // 'Contenidos'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Contenidos_menu , { idTipologia: element.Id} ], // TODO: Ruta con iDTipologia\r\n\t\t\t\t\t\t\t\t\t\t\t\t\troot: false,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvisible: false,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\titems: false\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (items.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t// TODO: Traducir nombre tipologia\r\n\t\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Contenidos'), // 'Contenidos'\r\n\t\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-contenido iticon-px32',\r\n\t\t\t\t\t\t\t\t\t\t// routerLink: [PREFERENCIAS_RUTAS_INICIALES.Contenidos_menu],\r\n\t\t\t\t\t\t\t\t\t\troot: true,\r\n\t\t\t\t\t\t\t\t\t\titems: items\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Contenidos'), // 'Contenidos'\r\n\t\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-contenido iticon-px32',\r\n\t\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Contenidos_menu]\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.RutaSugerida_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Rutas'), // 'Rutas sugeridas'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-ruta iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.RutaSugerida_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Mensajes_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Mensajes'), // 'Mensajes'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-email iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Mensajes_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Ajustes_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Ajustes'), // 'Ajustes'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tab-settings iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Ajustes_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Test_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Diagnostico'), // 'Diagnostico'\r\n\t\t\t\t\t\t\t\t\t// icon: 'material-icons ui-icon-build',\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-diagnostico iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Diagnostico_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Balizas_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Balizas'), // 'Balizas'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-nodo-baliza iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Balizas_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// TODO: Dar de alta el nuevo permiso en BBDD y agregar esta linea\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Informes_menu) {\r\n\t\t\t\t\t\t// if (funcion.FUNCIONALIDAD.Nombre === Permisos.Dashboard_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Informes'), // 'Informes'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-noticia iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Informes_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (funcion.FUNCIONALIDAD.Nombre === Permisos.Encuestas_menu) {\r\n\t\t\t\t\t\t\tif (funcion.Tipo === 2) {\r\n\t\t\t\t\t\t\t\tmodel.push({\r\n\t\t\t\t\t\t\t\t\tlabel: that.translate.instant('MenuLateral.Encuestas'), // 'Encuestas'\r\n\t\t\t\t\t\t\t\t\ticon: 'iticon-tipologia-informacion iticon-px32',\r\n\t\t\t\t\t\t\t\t\trouterLink: [PREFERENCIAS_RUTAS_INICIALES.Encuestas_menu]\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t\treturn model;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/*\r\n obtenerTipologias() {\r\n const that = this;\r\n const entityManager = that.entityManager;\r\n const idEspacio = that.authService.getIdEspacio();\r\n return entityManager.getTipologiasEspacio(idEspacio);\r\n }\r\n\t*/\r\n\r\n\tobtenerTIPOLOGIA_CONTENIDO(pre?) {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tlet predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\r\n\t\tif (pre) {\r\n\t\t\tpredicado = predicado.and(pre);\r\n\t\t}\r\n\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tlet permisos: Permisos;\r\n\t\treturn this.getPermisosUsuario(userId)\r\n\t\t.then(function (perm){\r\n\t\t\tpermisos = perm;\r\n\t\t\treturn entityManager.getTIPOLOGIA_CONTENIDO(predicado, 'IDIOMAS.IDIOMA')\r\n\t\t})\r\n\t\t.then(function (entidades) {\r\n\r\n\t\t\t// that.tipologiasContenido = entidades;\r\n\t\t\tconst tipologiasAux = [];\r\n\t\t\tentidades.forEach(tipologia => {\r\n\t\t\t\tif (tipologia.TipoUbicacion === null || tipologia.TipoUbicacion === 'ESTATICO') {\r\n\t\t\t\t\ttipologiasAux.push(tipologia);\r\n\t\t\t\t}\r\n\t\t\t\telse if (permisos.Gestion_Activos === 2) {\r\n\t\t\t\t\ttipologiasAux.push(tipologia);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthat.tipologiasContenido = tipologiasAux;\r\n\r\n\t\t\tif (that.tipologiasContenido && that.tipologiasContenido.length > 0) {\r\n\t\t\t\tthat.tipologiasContenido.sort( (one: any, two: any) => {\r\n\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn that.tipologiasContenido;\r\n\t\t});\r\n\t}\r\n\tobtenerTIPOLOGIA_SECCION(pre?) {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tlet predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tconst include = 'IDIOMAS.IDIOMA, SECCIONES';\r\n\r\n\t\tif (pre) {\r\n\t\t\tpredicado = predicado.and(pre);\r\n\t\t}\r\n\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tlet permisos: Permisos;\r\n\t\treturn this.getPermisosUsuario(userId)\r\n\t\t.then(function (perm){\r\n\t\t\tpermisos = perm;\r\n\t\t\treturn entityManager.getTIPOLOGIA_SECCION(predicado, include)\r\n\t\t})\r\n\t\t.then(function (entidades) {\r\n\t\t\tconsole.log(entidades)\r\n\t\t\t// that.tipologiasContenido = entidades;\r\n\t\t\tconst tipologiasSeccionAux = [];\r\n\t\t\tentidades.forEach(tipologia => {\r\n\t\t\tif (permisos.Gestion_Activos === 2) {\r\n\t\t\t\ttipologiasSeccionAux.push(tipologia);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthat.tipologiasSeccion = tipologiasSeccionAux;\r\n\r\n\t\t\tif (that.tipologiasSeccion && that.tipologiasSeccion.length > 0) {\r\n\t\t\t\tthat.tipologiasSeccion.sort( (one: any, two: any) => {\r\n\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn that.tipologiasSeccion;\r\n\t\t});\r\n\t}\r\n\r\n\tgetPermisosUsuario(userId){\r\n\r\n\t\treturn this.entityManager.getFUNCIONALIDADESbyUSUARIO(userId)\r\n\t\t.then(function(funcionalidades){\r\n\t\t\tconst permisos = new Permisos(funcionalidades);\r\n\t\t\treturn permisos;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tgetRutaPaginaInicio(userId){\r\n\t\tconst that = this;\r\n\t\treturn this.entityManager.getFUNCIONALIDADESbyUSUARIO(userId)\r\n\t\t.then(function(funcionalidades){\r\n\t\t\treturn that.getMenu(funcionalidades);\r\n\t\t})\r\n\t\t.then(function(menu){\r\n\t\t\tthat.model = menu;\r\n\t\t\tconst principal = that.model[0];\r\n\t\t\treturn principal.routerLink;\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\nexport class Permisos {\r\n\r\n\t// Menu Lateral\r\n\tstatic readonly Dashboard_menu = 'Dashboard_menu';\r\n\tstatic readonly Mapas_menu = 'Mapas_menu';\r\n\tstatic readonly Contenidos_menu = 'Contenidos_menu';\r\n\tstatic readonly RutaSugerida_menu = 'RutaSugerida_menu';\r\n\tstatic readonly Noticias_menu = 'Noticias_menu';\r\n\tstatic readonly Mensajes_menu = 'Mensajes_menu';\r\n\tstatic readonly Ajustes_menu = 'Ajustes_menu';\r\n\tstatic readonly Balizas_menu = 'Balizas_menu';\r\n\tstatic readonly Test_menu = 'Test_menu';\r\n\tstatic readonly Informes_menu = 'Informes_menu';\r\n\tstatic readonly Encuestas_menu = 'Encuestas_menu';\r\n\r\n\t// Pantalla Plano\r\n\tstatic readonly Constante_Mapa_crear_plano = 'Mapa_crear_plano';\r\n\tstatic readonly Constante_Mapa_plano_nodo = 'Mapa_plano_nodo';\r\n\tstatic readonly Constante_Mapa_plano_seccion = 'Mapa_plano_seccion';\r\n\tstatic readonly Constante_Mapa_plano_contenido = 'Mapa_plano_contenido';\r\n\tstatic readonly Constante_Mapa_plano_conexion = 'Mapa_plano_conexion';\r\n\tstatic readonly Constante_Mapa_plano_balizas = 'Mapa_plano_balizas';\r\n\tstatic readonly Constante_Mapa_plano_Preview_por_Fecha = 'Mapa_plano_Preview_por_Fecha';\r\n\r\n\tstatic readonly Constante_Mapa_plano_nodo_formulario = 'Mapa_plano_nodo_formulario';\r\n\tstatic readonly Constante_Mapa_plano_seccion_formulario = 'Mapa_plano_seccion_formulario';\r\n\tstatic readonly Constante_Mapa_plano_contenido_formulario = 'Mapa_plano_contenido_formulario';\r\n\tstatic readonly Constante_Mapa_plano_conexion_formulario = 'Mapa_plano_conexion_formulario';\r\n\tstatic readonly Constante_Mapa_plano_baliza_formulario = 'Mapa_plano_baliza_formulario';\r\n\r\n\tstatic readonly Constante_Mapa_plano_cortar_conexion_formulario= 'Mapa_plano_cortar_conexion_formulario';\r\n\tstatic readonly Constante_Mapa_plano_eliminar_conexion_formulario = 'Mapa_plano_eliminar_conexion_formulario';\r\n\tstatic readonly Constante_Mapa_plano_baliza_password = 'Mapa_plano_baliza_password';\r\n\r\n\t// Pantalla Selector Plano\r\n\tstatic readonly Constante_Selector_Mapa_add_nivel = 'Selector_Mapa_add_nivel';\r\n\tstatic readonly Constante_Selector_Mapa_editar_nivel = 'Selector_Mapa_editar_nivel';\r\n\tstatic readonly Constante_Selector_Mapa_borrar_nivel = 'Selector_Mapa_borrar_nivel';\r\n\r\n\tstatic readonly Constante_Selector_Mapa_add_ala = 'Selector_Mapa_add_ala';\r\n\tstatic readonly Constante_Selector_Mapa_editar_ala = 'Selector_Mapa_editar_ala';\r\n\tstatic readonly Constante_Selector_Mapa_borrar_ala = 'Selector_Mapa_borrar_ala';\r\n\r\n\t// Pantalla Contenidos\r\n\tstatic readonly Constante_Contenidos_add_contenido = 'Contenidos_add_contenido';\r\n\tstatic readonly Constante_Contenidos_editar_contenido = 'Contenidos_editar_contenido';\r\n\tstatic readonly Constante_Contenidos_borrar_contenido = 'Contenidos_borrar_contenido';\r\n\tstatic readonly Constante_Contenidos_exportar_contenido = 'Contenidos_exportar_contenido';\r\n\tstatic readonly Constante_Contenidos_importar_contenido = 'Contenidos_importar_contenido';\r\n\r\n\t// Pantalla Encuestas\r\n\tstatic readonly Constante_Encuestas_exportar_encuesta = 'Encuestas_exportar_encuesta';\r\n\r\n\t// Modelo3D\r\n\tstatic readonly Constante_Contenido_modelo_3d = 'Contenido_modelo_3d';\r\n\r\n\t// Pantalla Ruta Sugerida\r\n\tstatic readonly Constante_RutaSugerida_add_ruta= 'RutaSugerida_add_ruta';\r\n\tstatic readonly Constante_RutaSugerida_editar_ruta = 'RutaSugerida_editar_ruta';\r\n\tstatic readonly Constante_RutaSugerida_borrar_ruta = 'RutaSugerida_borrar_ruta';\r\n\r\n\t// Pantalla Mensajes\r\n\tstatic readonly Constante_Mensajes_ver_mensaje= 'Mensajes_ver_mensaje';\r\n\tstatic readonly Constante_Mensajes_enviar_mensaje = 'Mensajes_enviar_mensaje';\r\n\tstatic readonly Constante_Mensajes_ver_detalle_mensaje = 'Mensajes_ver_detalle_mensaje';\r\n\tstatic readonly Constante_Mensajes_enviar_mensaje_visisitado = 'Mensajes_enviar_mensaje_visisitado';\r\n\tstatic readonly Constante_Mensajes_enviar_mensaje_explorado = 'Mensajes_enviar_mensaje_explorado';\r\n\tstatic readonly Constante_Mensajes_enviar_mensaje_tiene_app = 'Mensajes_enviar_mensaje_tiene_app';\r\n\r\n\t// Perfil Movilidad\r\n\tstatic readonly Constante_Ajustes_add_Perfil = 'Ajustes_add_Perfil';\r\n\tstatic readonly Constante_Ajustes_editar_Perfil = 'Ajustes_editar_Perfil';\r\n\tstatic readonly Constante_Ajustes_borrar_Perfil = 'Ajustes_borrar_Perfil';\r\n\r\n\t// Tipologia\r\n\tstatic readonly Constante_Ajustes_add_Tipologia = 'Ajustes_add_Tipologia';\r\n\tstatic readonly Constante_Ajustes_editar_Tipologia = 'Ajustes_editar_Tipologia';\r\n\tstatic readonly Constante_Ajustes_borrar_Tipologia = 'Ajustes_borrar_Tipologia';\r\n\tstatic readonly Constante_Tipologia_Contenido_Localizable_Crear = 'Tipologia_Contenido_Localizable_Crear';\r\n\r\n\t// Usuarios\r\n\tstatic readonly Constante_Ajustes_add_Usuarios = 'Ajustes_add_Usuarios';\r\n\tstatic readonly Constante_Ajustes_editar_Usuarios = 'Ajustes_editar_Usuarios';\r\n\tstatic readonly Constante_Ajustes_borrar_Usuarios = 'Ajustes_borrar_Usuarios';\r\n\r\n\t// Pantalla Espacios\r\n\tstatic readonly Constante_Selector_Espacio_add_espacio = 'Selector_Espacio_add_espacio';\r\n\tstatic readonly Constante_Selector_Espacio_editar_espacio = 'Selector_Espacio_editar_espacio';\r\n\tstatic readonly Constante_Selector_Espacio_borrar_espacio = 'Selector_Espacio_borrar_espacio';\r\n\r\n\t// Activos\r\n\tstatic readonly Constante_Gestion_Activos = 'Gestion_Activos';\r\n\r\n\t// TIPOLOGIA_SECCION\r\n\tstatic readonly Constante_Ajustes_add_Tipologia_Seccion = 'Ajustes_add_Tipologia_Seccion';\r\n\tstatic readonly Constante_Ajustes_editar_Tipologia_Seccion = 'Ajustes_editar_Tipologia_Seccion';\r\n\tstatic readonly Constante_Ajustes_borrar_Tipologia_Seccion = 'Ajustes_borrar_Tipologia_Seccion';\r\n\r\n\t/* permisos Tipologia_Seccion*/\r\n\tAjustes_add_Tipologia_Seccion = 0;\r\n\tAjustes_editar_Tipologia_Seccion = 0;\r\n\tAjustes_borrar_Tipologia_Seccion = 0;\r\n\r\n\t/* Permisos SelectorMapasComponent */\r\n\tSelector_Mapa_add_nivel = 0;\r\n\tSelector_Mapa_editar_nivel = 0;\r\n\tSelector_Mapa_borrar_nivel = 0;\r\n\r\n\tSelector_Mapa_add_ala = 0;\r\n\tSelector_Mapa_editar_ala = 0;\r\n\tSelector_Mapa_borrar_ala = 0;\r\n\r\n\t/* Permisos Espacio*/\r\n\tSelector_Espacio_add_espacio = 0;\r\n\tSelector_Espacio_editar_espacio = 0;\r\n\tSelector_Espacio_borrar_espacio = 0;\r\n\r\n\r\n\t/* Permisos mapas.component */\r\n\tMapa_crear_plano = 0;\r\n\tMapa_plano_nodo = 0;\r\n\tMapa_plano_seccion = 0;\r\n\tMapa_plano_contenido = 0;\r\n\tMapa_plano_conexion = 0;\r\n\r\n\tMapa_plano_nodo_formulario = 0;\r\n\tMapa_plano_seccion_formulario = 0;\r\n\tMapa_plano_contenido_formulario = 0;\r\n\tMapa_plano_conexion_formulario = 0;\r\n\tMapa_plano_cortar_conexion_formulario = 0;\r\n\tMapa_plano_eliminar_conexion_formulario = 0;\r\n\tMapa_plano_balizas = 0;\r\n\tMapa_plano_baliza_formulario = 0;\r\n\tMapa_plano_baliza_password = 0;\r\n\tMapa_plano_Preview_por_Fecha = 0;\r\n\r\n\t/* permisos Contenido */\r\n\tContenidos_add_contenido = 0;\r\n\tContenidos_editar_contenido = 0;\r\n\tContenidos_borrar_contenido = 0;\r\n \tContenidos_exportar_contenido = 0;\r\n\tContenidos_importar_contenido = 0;\r\n\tContenido_modelo_3d = 0;\r\n\r\n\t/* permisos encuesta */\r\n \tEncuestas_exportar_encuesta = 0;\r\n\r\n\t// Pantalla Ruta Sugerida\r\n\tRutaSugerida_add_ruta= 0;\r\n\tRutaSugerida_editar_ruta = 0;\r\n\tRutaSugerida_borrar_ruta = 0;\r\n\r\n\t// Pantalla Mensajes\r\n\tMensajes_ver_mensaje= 0;\r\n\tMensajes_enviar_mensaje = 0;\r\n\tMensajes_ver_detalle_mensaje = 0;\r\n\tMensajes_enviar_mensaje_visisitado = 0;\r\n\tMensajes_enviar_mensaje_explorado = 0;\r\n\tMensajes_enviar_mensaje_tiene_app = 0;\r\n\r\n\t// Perfil Movilidad\r\n\tAjustes_add_Perfil = 0;\r\n\tAjustes_editar_Perfil = 0;\r\n\tAjustes_borrar_Perfil = 0;\r\n\r\n\t// Tipologia\r\n\tAjustes_add_Tipologia = 0;\r\n\tAjustes_editar_Tipologia = 0;\r\n\tAjustes_borrar_Tipologia = 0;\r\n\tTipologia_Contenido_Localizable_Crear = 0;\r\n\t// Usuarios\r\n\tAjustes_add_Usuarios = 0;\r\n\tAjustes_editar_Usuarios = 0;\r\n\tAjustes_borrar_Usuarios = 0;\r\n\r\n\t// Activos\r\n\tGestion_Activos = 0;\r\n\r\n\r\n\tconstructor(funcionalidades?: any) {\r\n\r\n\t\tif (funcionalidades) {\r\n\t\t\tfuncionalidades.forEach(funcion => {\r\n\t\t\t\tif (funcion.FUNCIONALIDAD) {\r\n\r\n\t\t\t\t\t/* SelectorMapasComponent */\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_add_nivel) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_add_nivel = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_editar_nivel) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_editar_nivel = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_borrar_nivel) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_borrar_nivel = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_add_ala) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_add_ala = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_editar_ala) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_editar_ala = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Mapa_borrar_ala) {\r\n\t\t\t\t\t\tthis.Selector_Mapa_borrar_ala = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* mapasComponent */\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_crear_plano) {\r\n\t\t\t\t\t\tthis.Mapa_crear_plano = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_nodo) {\r\n\t\t\t\t\t\tthis.Mapa_plano_nodo = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_seccion) {\r\n\t\t\t\t\t\tthis.Mapa_plano_seccion = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_contenido) {\r\n\t\t\t\t\t\tthis.Mapa_plano_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_conexion) {\r\n\t\t\t\t\t\tthis.Mapa_plano_conexion = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_Preview_por_Fecha){\r\n\t\t\t\t\t\tthis.Mapa_plano_Preview_por_Fecha = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Formularios\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_nodo_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_nodo_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_seccion_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_seccion_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_contenido_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_contenido_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_conexion_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_conexion_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_cortar_conexion_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_cortar_conexion_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_eliminar_conexion_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_eliminar_conexion_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Balizas en Mapa*/\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_balizas) {\r\n\t\t\t\t\t\tthis.Mapa_plano_balizas = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_baliza_formulario) {\r\n\t\t\t\t\t\tthis.Mapa_plano_baliza_formulario = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mapa_plano_baliza_password) {\r\n\t\t\t\t\t\tthis.Mapa_plano_baliza_password = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* permisos Contenido */\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenidos_add_contenido) {\r\n\t\t\t\t\t\tthis.Contenidos_add_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenidos_editar_contenido) {\r\n\t\t\t\t\t\tthis.Contenidos_editar_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenidos_borrar_contenido) {\r\n\t\t\t\t\t\tthis.Contenidos_borrar_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenidos_exportar_contenido) {\r\n\t\t\t\t\t\tthis.Contenidos_exportar_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenidos_importar_contenido) {\r\n\t\t\t\t\t\tthis.Contenidos_importar_contenido = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* permisos Encuesta */\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Encuestas_exportar_encuesta) {\r\n\t\t\t\t\t\tthis.Encuestas_exportar_encuesta = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//Modelo3D\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Contenido_modelo_3d) {\r\n\t\t\t\t\t\tthis.Contenido_modelo_3d = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Pantalla Ruta Sugerida\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_RutaSugerida_add_ruta) {\r\n\t\t\t\t\t\tthis.RutaSugerida_add_ruta = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_RutaSugerida_editar_ruta) {\r\n\t\t\t\t\t\tthis.RutaSugerida_editar_ruta = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_RutaSugerida_borrar_ruta) {\r\n\t\t\t\t\t\tthis.RutaSugerida_borrar_ruta = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Pantalla Mensajes\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_ver_mensaje) {\r\n\t\t\t\t\t\tthis.Mensajes_ver_mensaje = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_enviar_mensaje) {\r\n\t\t\t\t\t\tthis.Mensajes_enviar_mensaje = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_ver_detalle_mensaje) {\r\n\t\t\t\t\t\tthis.Mensajes_ver_detalle_mensaje = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_enviar_mensaje_visisitado) {\r\n\t\t\t\t\t\tthis.Mensajes_enviar_mensaje_visisitado = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_enviar_mensaje_explorado) {\r\n\t\t\t\t\t\tthis.Mensajes_enviar_mensaje_explorado = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Mensajes_enviar_mensaje_tiene_app) {\r\n\t\t\t\t\t\tthis.Mensajes_enviar_mensaje_tiene_app = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Perfil Movilidad\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_add_Perfil) {\r\n\t\t\t\t\t\tthis.Ajustes_add_Perfil = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_editar_Perfil) {\r\n\t\t\t\t\t\tthis.Ajustes_editar_Perfil = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_borrar_Perfil) {\r\n\t\t\t\t\t\tthis.Ajustes_borrar_Perfil = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Tipologia\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_add_Tipologia) {\r\n\t\t\t\t\t\tthis.Ajustes_add_Tipologia = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_editar_Tipologia) {\r\n\t\t\t\t\t\tthis.Ajustes_editar_Tipologia = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_borrar_Tipologia) {\r\n\t\t\t\t\t\tthis.Ajustes_borrar_Tipologia = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Tipologia_Contenido_Localizable_Crear){\r\n\t\t\t\t\t\tthis.Tipologia_Contenido_Localizable_Crear = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Usuarios\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_add_Usuarios) {\r\n\t\t\t\t\t\tthis.Ajustes_add_Usuarios = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_editar_Usuarios) {\r\n\t\t\t\t\t\tthis.Ajustes_editar_Usuarios = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_borrar_Usuarios) {\r\n\t\t\t\t\t\tthis.Ajustes_borrar_Usuarios = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Pantalla Espacios\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Espacio_add_espacio) {\r\n\t\t\t\t\t\tthis.Selector_Espacio_add_espacio = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Espacio_editar_espacio) {\r\n\t\t\t\t\t\tthis.Selector_Espacio_editar_espacio = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Selector_Espacio_borrar_espacio) {\r\n\t\t\t\t\t\tthis.Selector_Espacio_borrar_espacio = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Activos\r\n\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Gestion_Activos) {\r\n\t\t\t\t\t\tthis.Gestion_Activos = funcion.Tipo;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// TIPOLOGIA_SECCION\r\n\t\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_add_Tipologia_Seccion) {\r\n\t\t\t\t\t\t\tthis.Ajustes_add_Tipologia_Seccion = funcion.Tipo;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_editar_Tipologia_Seccion) {\r\n\t\t\t\t\t\t\tthis.Ajustes_editar_Tipologia_Seccion = funcion.Tipo;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (funcion.FUNCIONALIDAD.Nombre === Permisos.Constante_Ajustes_borrar_Tipologia_Seccion) {\r\n\t\t\t\t\t\t\tthis.Ajustes_borrar_Tipologia_Seccion = funcion.Tipo;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/permisos.service.ts","import {\r\n Injectable\r\n} from '@angular/core';\r\n\r\nimport {\r\n CanActivate,\r\n Router,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport {\r\n AuthenticationService\r\n} from './authentication.service';\r\n\r\nimport * as decode from 'jwt-decode';\r\nimport { EntityManagerProvider } from '../entity-manager-provider/entity-manager-provider';\r\nimport { PermisosService } from './permisos.service';\r\n\r\n@Injectable()\r\nexport class RoleGuardService implements CanActivate {\r\n\r\n constructor(\r\n\t private authService: AuthenticationService,\r\n\t private router: Router,\r\n\t public entityManager: EntityManagerProvider,\r\n\t public permisosService: PermisosService)\r\n\t{}\r\n\r\n \tasync canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\r\n\tconst userId = this.authService.getIdUsuario();\r\n\tconst that = this;\r\n\r\n\treturn this.entityManager.getFUNCIONALIDADESbyUSUARIO(userId)\r\n\t.then(function(funcionalidades){\r\n\r\n\t\t// decode the token to get its payload\r\n\t\tconst token = that.authService.getToken();\r\n\t\tconst tokenPayload = decode(token);\r\n\r\n\t\t// Si no se restringe el acceso se deja acceder\r\n\t\tconst expectedRole = route.data.expectedRole;\r\n\t\tif (expectedRole === null || expectedRole === '' || typeof(expectedRole) === 'undefined') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Vamos a comprobar si el usuario tiene las funcionalidades esperadas\r\n\t\tlet accesible = false;\r\n\t\troute.data.expectedRole.forEach(element => {\r\n\t\t\ttry {\r\n\r\n\t\t\t\tconst func = funcionalidades.find( x => x.FUNCIONALIDAD.Nombre === element);\r\n\t\t\t\tif (func.Tipo !== 0){\r\n\t\t\t\t\taccesible = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t} catch (error) {\r\n\t\t\t\taccesible = false;\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tif (!that.authService.isAuthenticated()) {\r\n\t\t\tthat.router.navigate(['']);\r\n\t\t\treturn false;\r\n\t\t} else if (tokenPayload.role === null || tokenPayload.role === '' || typeof(tokenPayload.role) === 'undefined') {\r\n\t\t\tthat.router.navigate(['']);\r\n\t\t\treturn false;\r\n\t\t} else if (accesible) {\r\n\t\t\t// that.router.navigate(['']);\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t});\r\n\r\n\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n if (this.authService.isAuthenticated || url === '/') {\r\n return true;\r\n }\r\n\r\n // Store the attempted URL for redirecting\r\n this.authService.redirectUrl = url;\r\n\r\n // Navigate to the login page with extras\r\n this.router.navigate(['/']);\r\n\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/authentication/role-guard.service.ts","import { Injectable } from '@angular/core';\r\nimport { EntityManagerProvider } from '../entity-manager-provider/entity-manager-provider';\r\nimport { allSettled } from 'q';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { NodoFormulario } from '../../domain/NodoFormulario';\r\nimport { SeccionPlano } from 'interiores-mapa';\r\n\r\n@Injectable()\r\nexport class DiagnosticoService {\r\n\r\n \tconstructor(\r\n\t\tpublic EM: EntityManagerProvider\r\n\t){\r\n\r\n\t}\r\n\r\n\tERROR_CONTENIDO_SIN_NODO = 1;\r\n\tERROR_CONTENIDO_SIN_SECCION = 2;\r\n\tERROR_CONTENIDO_SIN_NODO_has_CONTENIDO = 3;\r\n\tERROR_CONTENIDO_SIN_SECCION_has_CONTENIDO = 4;\r\n\r\n\r\n\tpublic repararContenidos(){\r\n\t\tconst that = this;\r\n\t\tthis.limpiar('BreezeBody');\r\n\r\n\t\tlet contenidosTodos;\r\n\t\tlet seccionesTodas;\r\n\t\tlet seccionPorDefecto;\r\n\r\n\t\tlet includes = 'ALA, ';\r\n\t\tincludes = includes + 'CONTENIDOS.CONTENIDO, ';\r\n\t\tincludes = includes + 'NODOS';\r\n\r\n\t\treturn this.EM.getSECCION(undefined, includes)\r\n\t\t.then(function (secciones){\r\n\t\t\tseccionesTodas = secciones;\r\n\r\n\t\t\tincludes = 'ALAS.ALA, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO, ';\r\n\t\t\tincludes = includes + ' NIVELES.NIVEL, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION';\r\n\r\n\t\t\treturn that.EM.getCONTENIDO(undefined, includes);\r\n\t\t})\r\n\t\t.then(function (contenidos){\r\n\t\t\tcontenidosTodos = contenidos;\r\n\r\n\t\t\tconst promises: any[] = [];\r\n\r\n\t\t\tfor (let index = 0; index < contenidos.length; index++) {\r\n\t\t\t\tlet error = 0;\r\n\t\t\t\tconst contenido = contenidos[index];\r\n\r\n\t\t\t\tconsole.log('Contenido: ' + contenido.Titulo );\r\n\t\t\t\tif (contenido.Titulo === 'contenido2') {\r\n\t\t\t\t\tconst a = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contenido.SECCIONES.length === 0) {\r\n\t\t\t\t\terror = that.ERROR_CONTENIDO_SIN_SECCION_has_CONTENIDO;\r\n\t\t\t\t}\r\n\t\t\t\telse if (contenido.SECCIONES[0].SECCION === null){\r\n\t\t\t\t\terror = that.ERROR_CONTENIDO_SIN_SECCION;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contenido.NODODS.length === 0) {\r\n\t\t\t\t\terror = that.ERROR_CONTENIDO_SIN_NODO_has_CONTENIDO;\r\n\t\t\t\t}\r\n\t\t\t\telse if (contenido.NODODS[0].NODO === null){\r\n\t\t\t\t\terror = that.ERROR_CONTENIDO_SIN_NODO;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contenido.IdAlaPlano){\r\n\t\t\t\t\tseccionesTodas.forEach(seccion => {\r\n\t\t\t\t\t\tif (seccion.ALA.Id === contenido.IdAlaPlano && seccion.Nombre === 'Default') {\r\n\t\t\t\t\t\t\tseccionPorDefecto = seccion;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (seccion.Nombre === 'Default'){\r\n\t\t\t\t\t\t\tseccionPorDefecto = seccion;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tthat.repararContenido(contenido, seccionPorDefecto, seccionesTodas);\r\n\r\n\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\t\t\t}\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (contenidos){\r\n\t\t\treturn that.EM.saveChanges();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic repararNodo(Nodo, seccionDefecto, sections) {\r\n\r\n\t\tlet seccionDetectada;\r\n\r\n\t\tthis.escribir(1, 'NODO: ' + Nodo.Nombre, 'BreezeBody');\r\n\t\tthis.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\tthis.escribir(1, '.', 'BreezeBody');\r\n\r\n\t\t// const contentPlano = this.mapContents.get(contenido.id);\r\n\t\tconsole.log(Nodo.X + ' , ' + Nodo.Y);\r\n\r\n\r\n\t\t// Calcular la nueva seccion...\r\n\t\tseccionDetectada = seccionDefecto;\r\n\t\tsections.forEach((seccionPlano: SeccionPlano) => {\r\n\t\t\tif (seccionPlano.getCoordenadasPoligono()) {\r\n\t\t\t\tif (this.pointInPolygon([Nodo.X as number, Nodo.Y as number], seccionPlano.getCoordenadasPoligono())) {\r\n\t\t\t\t\tseccionDetectada = seccionPlano.ENTIDAD;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tNodo.IdSeccion = seccionDetectada.Id;\r\n\t\tNodo.NombreSeccion = seccionDetectada.Nombre;\r\n\r\n\t\treturn this.EM.saveChanges();\r\n\t}\r\n\r\n\tpublic repararContenido(contenido, seccionDefecto, sections) {\r\n\r\n\t\tlet seccionDetectada;\r\n\t\tlet nodosSeccionDetectada;\r\n\t\tlet distanciaMinima = Constantes.MAX_PESO;\r\n\t\tlet nodoMasCercano;\r\n\r\n\t\tthis.escribir(1, 'CONTENIDO: ' + contenido.Titulo, 'BreezeBody');\r\n\t\tthis.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\tthis.escribir(1, '.', 'BreezeBody');\r\n\r\n\t\t// const contentPlano = this.mapContents.get(contenido.id);\r\n\t\tconsole.log(contenido.X + ' , ' + contenido.Y);\r\n\r\n\t\t// Calcular la nueva seccion...\r\n\t\tseccionDetectada = seccionDefecto;\r\n\t\tsections.forEach((seccion) => {\r\n\r\n\t\t\tif (contenido.IdAlaPlano && seccion.ALA.Id === contenido.IdAlaPlano){\r\n\t\t\t\tif (seccion.CoordenadasPoligono) {\r\n\t\t\t\t\tif (this.pointInPolygon([contenido.X as number, contenido.Y as number], JSON.parse(seccion.CoordenadasPoligono))) {\r\n\t\t\t\t\t\tseccionDetectada = seccion;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tnodosSeccionDetectada = seccionDetectada ? seccionDetectada.NODOS : [];\r\n\t\t// d = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )\r\n\t\tnodosSeccionDetectada.forEach(nodo => {\r\n\t\t\tconst x1 = nodo.X;\r\n\t\t\tconst y1 = nodo.Y;\r\n\t\t\tconst x2 = contenido.X;\r\n\t\t\tconst y2 = contenido.Y;\r\n\r\n\t\t\tconst d = Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) );\r\n\t\t\tconsole.log('--- Distancia a: ' + nodo.Nombre + ' = ' + d);\r\n\r\n\t\t\tif (d < distanciaMinima) {\r\n\t\t\t\tdistanciaMinima = d;\r\n\t\t\t\tnodoMasCercano = nodo;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (seccionDetectada && nodoMasCercano) {\r\n\r\n\t\t\tconsole.log('Seccion Seleccionada: ' + seccionDetectada.Nombre);\r\n\t\t\tif (contenido.SECCIONES.length > 0) {\r\n\r\n\t\t\t\tif (contenido.NODODS.length > 0) {\r\n\t\t\t\t\t// Cogemos la seccion que fue asignada al posicionar el contenido por medio del nodo\r\n\t\t\t\t\tconst nodoAntiguo = contenido.NODODS[0].NODO;\r\n\t\t\t\t\tconst seccionAntigua = nodoAntiguo.SECCION;\r\n\t\t\t\t\t// Filtrar de las secciones asignadas al contenido la seccionAntigua y cambio la seccion\r\n\t\t\t\t\tconst seccion_aux = contenido.SECCIONES.filter( s => s.IdSeccion === seccionAntigua.Id)[0];\r\n\r\n\t\t\t\t\tif (seccion_aux) {\r\n\t\t\t\t\t\tseccion_aux.SECCION = seccionDetectada;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\t// Si no existia relacion con la seccion anterior asumimos que la numero 0 es la asignada por posicionamiento\r\n\t\t\t\t\t\tcontenido.SECCIONES[0].SECCION = seccionDetectada;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconsole.error('No NODO_has_CONTENIDO Detectada -> Contenido: ' + contenido.nombre);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconsole.log('SECCION Seccion_hasContenido -> Contenido: ' + contenido.nombre);\r\n\t\t\t\tthis.crearRelacionSeccion_has_Contenido(contenido, seccionDetectada)\r\n\t\t\t\t.then(function(SECCION_has_CONTENIDO){\r\n\t\t\t\t\tconsole.log('SECCION_has_CONTENIDO Creada -> Contenido: ' + contenido.nombre);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tconsole.log('Nodo mas Cercano: ' + nodoMasCercano.Nombre);\r\n\t\t\tif (contenido.NODODS.length > 0) {\r\n\t\t\t\tcontenido.NODODS[0].NODO = nodoMasCercano;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconsole.log('NODO no Asignado -> Contenido: ' + contenido.nombre);\r\n\t\t\t\tthis.crearRelacionNodo_has_Contenido(contenido, nodoMasCercano)\r\n\t\t\t\t.then(function(NODO_has_CONTENIDO){\r\n\t\t\t\t\tconsole.log('NODO_has_CONTENIDO Creado -> Contenido: ' + contenido.nombre);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (!seccionDetectada) {\r\n\t\t\t\tconsole.error('No seccionDetectada -> Contenido: ' + contenido.nombre);\r\n\t\t\t}\r\n\t\t\tif (!nodoMasCercano) {\r\n\t\t\t\tconsole.error('No nodoMasCercano -> Contenido: ' + contenido.nombre);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcrearRelacionSeccion_has_Contenido(contenido, seccionDetectada){\r\n\t\tconst that = this;\r\n\t\treturn this.EM.newSECCION_has_CONTENIDO()\r\n\t\t.then(function(SECCION_has_CONTENIDO){\r\n\t\t\tconst element = SECCION_has_CONTENIDO;\r\n\t\t\telement.CONTENIDO = contenido;\r\n\t\t\telement.IdContenido = contenido.Id;\r\n\t\t\telement.SECCION = seccionDetectada;\r\n\t\t\telement.IdSeccion = seccionDetectada.Id;\r\n\t\t\telement.Prioridad = 0;\r\n\t\t\telement.PrioridadDestacado = 0;\r\n\r\n\t\t\treturn element;\r\n\t\t});\r\n\t}\r\n\r\n\tcrearRelacionNodo_has_Contenido(contenido, nodoMasCercano){\r\n\t\tconst that = this;\r\n\t\treturn this.EM.newNODO_has_CONTENIDO()\r\n\t\t.then(function(NODO_has_CONTENIDO){\r\n\t\t\tconst element = NODO_has_CONTENIDO;\r\n\t\t\telement.CONTENIDO = contenido;\r\n\t\t\telement.IdContenido = contenido.Id;\r\n\t\t\telement.NODO = nodoMasCercano;\r\n\t\t\telement.IdNodo = nodoMasCercano.Id;\r\n\r\n\t\t\treturn element;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic pintarDiagnosticoCONTENIDOs(){\r\n\t\tconst that = this;\r\n\t\tthis.limpiar('BreezeBody');\r\n\r\n\t\tlet contenidosTodos;\r\n\t\tlet seccionesTodas;\r\n\t\tlet seccionPorDefecto;\r\n\r\n\t\tlet includes = 'ALA, ';\r\n\t\tincludes = includes + 'CONTENIDOS.CONTENIDO, ';\r\n\t\tincludes = includes + 'NODOS';\r\n\r\n\t\treturn this.EM.getSECCION(undefined, includes)\r\n\t\t.then(function (secciones){\r\n\t\t\tseccionesTodas = secciones;\r\n\r\n\t\t\tincludes = 'ALAS.ALA, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO, ';\r\n\t\t\tincludes = includes + ' NIVELES.NIVEL, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION';\r\n\r\n\t\t\treturn that.EM.getCONTENIDO(undefined, includes);\r\n\t\t})\r\n\t\t.then(function (contenidos){\r\n\t\t\tcontenidosTodos = contenidos;\r\n\r\n\t\t\tconst promises: any[] = [];\r\n\r\n\t\t\tfor (let index = 0; index < contenidos.length; index++) {\r\n\t\t\t\tlet error = false;\r\n\t\t\t\tconst contenido = contenidos[index];\r\n\r\n\t\t\t\tthat.escribir(1, 'CONTENIDO: ' + contenido.Titulo, 'BreezeBody');\r\n\t\t\t\tthat.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\r\n\t\t\t\tif (contenido.SECCIONES.length === 0) {\r\n\t\t\t\t\tthat.escribirError(2, ' -- CONTENIDO ERROR: ' + contenido.Titulo , 'BreezeBody');\r\n\t\t\t\t\tthat.escribirError(3, ' -- No Existe SECCION_has_CONTENIDO', 'BreezeBody');\r\n\t\t\t\t\terror = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if (contenido.SECCIONES[0].SECCION === null){\r\n\t\t\t\t\tthat.escribirError(2, ' -- CONTENIDO ERROR: ' + contenido.Titulo , 'BreezeBody');\r\n\t\t\t\t\tthat.escribirError(3, ' -- No Existe SECCION: ' + contenido.SECCIONES[0].IdSeccion , 'BreezeBody');\r\n\t\t\t\t\terror = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contenido.NODODS.length === 0) {\r\n\t\t\t\t\tthat.escribirError(2, ' -- CONTENIDO ERROR: ' + contenido.Titulo , 'BreezeBody');\r\n\t\t\t\t\tthat.escribirError(3, ' -- No Existe NODO_has_CONTENIDO', 'BreezeBody');\r\n\t\t\t\t\terror = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if (contenido.NODODS[0].NODO === null){\r\n\t\t\t\t\tthat.escribirError(2, ' -- CONTENIDO ERROR: ' + contenido.Titulo , 'BreezeBody');\r\n\t\t\t\t\tthat.escribirError(3, ' -- No Existe NODO: ' + contenido.NODODS[0].IdNodo , 'BreezeBody');\r\n\t\t\t\t\terror = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!error) {\r\n\t\t\t\t\tthat.escribir(2, 'OK!: ', 'BreezeBody');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contenido.IdAlaPlano){\r\n\t\t\t\t\t// TODO: Sacar Seccion por defecto\r\n\t\t\t\t\tseccionPorDefecto = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\t\t\t}\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (contenidos){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic pintarDiagnosticoCONEXIONES_NODOs() {\r\n\t\tconst that = this;\r\n\t\tthis.limpiar('BreezeBody');\r\n\r\n\t\tconst entityManager = that.EM;\r\n\t\t// const includes = 'SECCIONS, SECCIONS.NODOS, SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO';\r\n\t\t// let includes = 'SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\t\tconst includes = 'CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\r\n\t\treturn entityManager.getNODO(undefined, includes)\r\n\t\t.then(function (nodos) {\r\n\t\t\tif (nodos == null || nodos.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY NODOS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\t// Pintar nodo con sus conexiones de ida y vuelta\r\n\t\t\t\tnodos.forEach(ENTIDAD => {\r\n\t\t\t\t\t// Imprimimos nombre del nodo\r\n\t\t\t\t\tthat.escribir(1, 'NODO: ' + ENTIDAD.Nombre, 'BreezeBody');\r\n\t\t\t\t\tthat.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\r\n\t\t\t\t\tif (ENTIDAD.CONEXIONS_NODOS_DESTINO.length === ENTIDAD.CONEXIONS_NODOS_ORIGEN.length) {\r\n\t\t\t\t\t\tthat.escribir(2, 'OK!: ', 'BreezeBody');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\t// Contamos elementos ENTIDAD.CONEXIONS_NODOS_DESTINO\r\n\t\t\t\t\t\tthat.escribirError(2, 'Destinos: ' + ENTIDAD.CONEXIONS_NODOS_DESTINO.length, 'BreezeBody');\r\n\r\n\t\t\t\t\t\t// Contamos elementos ENTIDAD.CONEXIONS_NODOS_ORIGEN\r\n\t\t\t\t\t\tthat.escribirError(2, 'Origenes: ' + ENTIDAD.CONEXIONS_NODOS_ORIGEN.length, 'BreezeBody');\r\n\t\t\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\t\t// Imprimimos ENTIDAD.CONEXIONS_NODOS_DESTINO\r\n\t\t\t\t\t\tENTIDAD.CONEXIONS_NODOS_DESTINO.forEach(elemento => {\r\n\t\t\t\t\t\t\tthat.escribir(2, (elemento.NodoOrigen ? elemento.NodoOrigen.Nombre : '0000-0000-0000-0000') + ' ---> ' + (elemento.NodoDestino ? elemento.NodoDestino.Nombre : '0000-0000-0000-0000') + ' [ ' + elemento.Id + ' ]', 'BreezeBody');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\r\n\t\t\t\t\t\t// Imprimimos ENTIDAD.CONEXIONS_NODOS_ORIGEN\r\n\t\t\t\t\t\tENTIDAD.CONEXIONS_NODOS_ORIGEN.forEach(elemento => {\r\n\t\t\t\t\t\t\tthat.escribir(2, (elemento.NodoDestino ? elemento.NodoDestino.Nombre : '0000-0000-0000-0000') + ' <--- ' + (elemento.NodoOrigen ? elemento.NodoOrigen.Nombre : '0000-0000-0000-0000') + ' [ ' + elemento.Id + ' ]', 'BreezeBody');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\tthat.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic urlParam (name)\r\n\t{\r\n\t\tconst results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n\t\tif (results == null) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn decodeURI(results[1]) || 0;\r\n\t\t}\r\n\t}\r\n\r\n \tpublic escribir(nivel, mensaje, childName) {\r\n\r\n\t\tconst child = document.getElementById(childName);\r\n\t\tconst span = document.createElement('span');\r\n\r\n\t\tspan.innerText += mensaje;\r\n\t\tspan.style.display = 'block';\r\n\t\tspan.style.background = 'white';\r\n\t\tspan.style.color = '#999';\r\n\t\tspan.style.paddingLeft = (nivel * 20) + 'px';\r\n\t\tspan.style.transition = '0.3s ease all';\r\n\t\t// span.style.borderBottom = '1px solid #DDD';\r\n\r\n\t\tchild.appendChild(span);\r\n\t\t// child.innerText += ('' + mensaje + '');\r\n\t}\r\n\r\n\tpublic escribirError(nivel, mensaje, childName) {\r\n\r\n\t\tconst child = document.getElementById(childName);\r\n\t\tconst span = document.createElement('span');\r\n\r\n\t\tspan.innerText += mensaje;\r\n\t\tspan.style.display = 'block';\r\n\t\tspan.style.background = 'white';\r\n\t\tspan.style.color = '#900';\r\n\t\tspan.style.paddingLeft = (nivel * 20) + 'px';\r\n\t\tspan.style.transition = '0.3s ease all';\r\n\t\t// span.style.borderBottom = '1px solid #DDD';\r\n\r\n\t\tchild.appendChild(span);\r\n\t\t// child.innerText += ('' + mensaje + '');\r\n\t}\r\n\r\n\tpublic limpiar(childName){\r\n\t\tconst child = document.getElementById(childName);\r\n\t\tchild.innerText = '';\r\n\t}\r\n\r\n\tpublic pointInPolygon(point: number[], polygon: number[][]): boolean {\r\n let inside = false;\r\n\r\n const x = point[0], y = point[1];\r\n\t\tfor (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\r\n\t\t\tconst xi = polygon[i][0], yi = polygon[i][1], xj = polygon[j][0], yj = polygon[j][1];\r\n\t\t\tconst intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\r\n\t\t\tif (intersect) { inside = !inside; }\r\n\t\t}\r\n\r\n return inside;\r\n\t}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/diagnostico/diagnostico.service.ts","import {\r\n\tInjectable\r\n} from '@angular/core';\r\nimport { Constantes } from '../../domain/constantes';\r\n\r\nimport {\r\n\tEntityManager,\r\n\tMetadataStore,\r\n\tEntityQuery,\r\n\tPredicate\r\n} from 'breeze-client';\r\n\r\nimport {\r\n\tAuthenticationService\r\n} from '../authentication/authentication.service';\r\n\r\n// Import required breeze adapters. Rollup.js requires the use of breeze.base.debug.js, which doesn't include\r\n// the breeze adapters.\r\nimport 'breeze-client/breeze.dataService.webApi';\r\nimport 'breeze-client/breeze.modelLibrary.backingStore';\r\nimport 'breeze-client/breeze.uriBuilder.json';\r\nimport 'breeze-client/breeze.uriBuilder.odata';\r\nimport { allSettled } from 'q';\r\nimport * as Q from 'q';\r\nimport { throwMatDialogContentAlreadyAttachedError } from '@angular/material';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n// The entityManager manages a static master manager and a per instance sandbox manager.\r\n@ Injectable()\r\nexport class EntityManagerProvider {include\r\n\tredirectUrl: string;\r\n\tmasterManager: EntityManager;\r\n\tms: MetadataStore;\r\n\tBREEZE_endpoint = environment.urlServicioBreeze;\r\n\tIDIOMAS: any[] = null;\r\n\tFUNCIONALIDADES: any = {};\r\n\r\n\tconstructor(private authService: AuthenticationService) {\r\n\t\tconst that = this;\r\n\r\n\tthis.authService.setHeaderToken();\r\n\t\tthis.ms = new MetadataStore();\r\n\r\n\t\t// Configuramos El EntityManager de Breeze\r\n\t\tthis.masterManager = this.getMasterManager();\r\n\t\tthis.masterManager.saveOptions.allowConcurrentSaves = true;\r\n\t\tthis.masterManager.metadataStore.fetchMetadata(this.BREEZE_endpoint);\r\n\t}\r\n\r\n\t//#region **** METODOS PRIVADOS ****\r\n\r\n\t/* METADATA */\r\n\tprivate getMasterManager(): EntityManager {\r\n\t\t// console.log('getMasterManager');\r\n\t\tconst _masterManager\t= new EntityManager({\r\n\t\t\tserviceName: this.BREEZE_endpoint,\r\n\t\t\tmetadataStore: this.ms\r\n\t\t});\r\n\t\treturn _masterManager;\r\n\t}\r\n\r\n\t/* GET */\r\n\tprivate getByCriteria(entidad, where?, expands?, columns?): any{\r\n\t\t// console.log('getByCriteria ' + entidad + \" [\" + parent.location.href + \"]\");\r\n\r\n\t\tconst that = this;\r\n\t\tconst query = EntityQuery.from(entidad).where(where).select(columns).expand(expands)\r\n\t\t.using(this.masterManager);\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\t\t\tconst Entidades = data.results;\r\n\t\t\treturn Entidades;\r\n\t\t})\r\n\t\t.catch(function(e) {\r\n\t\t\tconsole.log('EXCEPTION getByCriteria ' + e);\r\n\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.getByCriteria(entidad, where, expands);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getByCriteriaOrder(entidad, where?, order?, top?, page?, expands?, columns?): any{\r\n\t\tconsole.log('getByCriteriaOrder');\r\n\t\tconst that = this;\r\n\t\tconst query = EntityQuery.from(entidad)\r\n\t\t.where(where)\r\n\t\t.select(columns)\r\n\t\t.expand(expands)\r\n\t\t.orderBy(order)\r\n\t\t.inlineCount()\r\n\t\t.skip((page * top))\r\n\t\t// .top(top * 2) // DCANETE BUG breeze, segun reordene, la consulta puede cambiar, debido a que el top lo replica en todas las subconsultas\r\n\t\t.top(top)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\r\n\t\t\tconst Entidades = data.results;\r\n\t\t\treturn {\r\n\t\t\t\tentidades: Entidades,\r\n\t\t\t\ttotal: data.inlineCount\r\n\t\t\t};\r\n\t\t})\r\n\t\t.catch(function(e) {\r\n\t\t\tconsole.log('EXCEPTION getByCriteria ' + e);\r\n\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.getByCriteria(entidad, where, expands);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getById(entidad, Id, expands?, columns?) {\r\n\t\tconsole.log('getById');\r\n\t\tconst that = this;\r\n\t\tconst query = EntityQuery.from(entidad).select(columns).where('Id', '==', Id).expand(expands)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\r\n\t\t\tconst Entidades = data.results;\r\n\t\t\treturn Entidades;\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.getById(entidad, Id, expands);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* NEW */\r\n\tnuevaEntity(entity: string){\r\n\t\treturn this.newEntity(entity);\r\n\t}\r\n\r\n\tprivate newEntity(entity: string): any{\r\n\tconsole.log('newEntity');\r\n\r\n\t\tconst that = this;\r\n\t\t/*\r\n\t\tconst query = EntityQuery.from(entity)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\t\t*/\r\n\t\t\tconst promise = new Promise((resolve, reject) => {\r\n\t\t\t\tconst entidad = that.masterManager.createEntity(entity);\r\n\t\t\t\tresolve(entidad);\r\n\t\t\t});\r\n\r\n\t\t\treturn promise;\r\n\t\t/*\r\n\t\t\tconst entidad = that.masterManager.createEntity(entity);\r\n\t\t\treturn entidad;\r\n\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.newEntity(entity);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n*/\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region **** METODOS GENERICOS ****\r\n\r\n\t/* SAVE */\r\n\tsaveChanges(that?){\r\n\t\t// console.log('saveChanges');\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.masterManager.saveChanges()\r\n\t\t.then((a) => {\r\n\t\t\tconsole.log('OK: saveChanges ');\r\n\t\t\treturn a;\r\n\t\t}).catch(function(e) {\r\n\t\t\tconsole.log('ERROR: saveChanges ');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401) {\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token) {\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.saveChanges();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.masterManager.rejectChanges();\r\n\t\t\t\tthrow e;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* REJECT */\r\n\tRejectChanges(that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tthat.masterManager.rejectChanges();\r\n\t}\r\n\r\n\t/* DELETE */\r\n\tdeleteEntity(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tif (entidad) {\r\n\t\t\tconst TIPO = entidad.constructor.name.split('_UBIMAPS', 2)[0];\r\n\t\t\ttry {\r\n\r\n\t\t\t\tif (entidad.FOTOS && entidad.FOTOS.length > 0) {\r\n\t\t\t\t\tthat.deleteEntityArray(entidad.FOTOS);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (entidad.FOTO && entidad.FOTO.length > 0) {\r\n\t\t\t\t\tthat.deleteEntityArray(entidad.FOTO);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst retDelete = entidad.entityAspect.setDeleted();\r\n\t\t\t\t// console.log('OK: deleteEntity ' + TIPO + ': ' + entidad.Id);\r\n\t\t\t\treturn retDelete;\r\n\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t\tconsole.log('ERROR: deleteEntity ' + TIPO + ': ' + entidad.Id);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdeleteEntityArray(entityArray: any[], that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tif (entityArray) {\r\n\t\t\tfor (let index = entityArray.length - 1; index >= 0; index--) {\r\n\t\t\t\tconst element = entityArray[index];\r\n\t\t\t\tconst TIPO = element.constructor.name.split('_', 2)[0];\r\n\t\t\t\ttry {\r\n\t\t\t\t\tthat.deleteEntity(element);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.log('ERROR: deleteEntityArray ' + TIPO + 's');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t//#endregion\r\n\r\n\t//#region **** DELETE ****\r\n\r\n\t/* SECCION */\r\n\t// Usada para borrar una seccion directamenta, los Nodos se reasignaran a la seccion por defecto\r\n\tpublic deleteSECCION(entidad: any){\r\n\t\tconst that = this;\r\n\t\tconst idAla = entidad.IdAla;\r\n\t\tlet seccionDefecto: any;\r\n\t\tconst seccionBorrar = entidad;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst where = new Predicate('ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\tconst include = 'NODOS, IDIOMAS, CONTENIDOS, CIUDADANO_UBICADO_ESPACIOS';\r\n\r\n\t\treturn this.getSECCION(where, include)\r\n\t\t.then(function (secciones) {\r\n\t\t\tsecciones = secciones.filter( x => x.IdAla === idAla);\r\n\t\t\tsecciones = secciones.filter( x => x.Nombre === 'Default');\r\n\t\t\tseccionDefecto = secciones[0];\r\n\t\t\tconst nodos = seccionBorrar.NODOS;\r\n\r\n\t\t\t// Reasigno los nodos que estaban en esta seccion a la seccion por defecto\r\n\t\t\tfor (let index = nodos.length - 1; index >= 0; index--) {\r\n\t\t\t\tconst nodo = nodos[index];\r\n\t\t\t\tnodo.SECCION = seccionDefecto;\r\n\t\t\t}\r\n\r\n\t\t\treturn that.saveChanges();\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn that.deleteCascadaSECCION(entidad);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\tprivate deleteCascadaSECCION(entidad: any){\r\n\t\treturn this.deleteCascadaSECCIONES([entidad]);\r\n\t}\r\n\tprivate deleteCascadaSECCIONES(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaSECCIONES: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.TIPOLOGIAS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.CONTENIDOS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.CIUDADANO_UBICADO_ESPACIOS, that]);\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\t// Borrado de las secciones desde otro borrado en cascada, ademas de ser un borrado profundo\r\n\tprivate loadAnddeleteCascadaSECCIONES(array: any[], that?){\r\n\t\tconsole.log('loadAnddeleteCascadaSECCIONES: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.loadAnddeleteCascadaSECCION, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate loadAnddeleteCascadaSECCION(entidad: any, that?){\r\n\t\tconsole.log('loadAnddeleteCascadaSECCION: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\tconst include = 'NODOS.CONTENIDOS, NODOS.IDIOMAS, NODOS.RUTA_has_NODOS, IDIOMAS, CONTENIDOS, CIUDADANO_UBICADO_ESPACIOS';\r\n\r\n\t\treturn that.getSECCION(where, include)\r\n\t\t.then(function (secciones) {\r\n\t\t\treturn that.fullDeleteCascadaSECCIONES(secciones, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\tprivate fullDeleteCascadaSECCION(entidad: any, that){\r\n\t\tthis.fullDeleteCascadaSECCIONES([entidad], that);\r\n\t}\r\n\tprivate fullDeleteCascadaSECCIONES(array: any[], that?){\r\n\t\tconsole.log('fullDeleteCascadaSECCIONES: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaNODOS, entidad.NODOS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.CONTENIDOS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.CIUDADANO_UBICADO_ESPACIOS, that]);\r\n\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/* NODO */\r\n\tdeleteNODO(entidad: any){\r\n\t\treturn this.deleteCascadaNODO(entidad);\r\n\t}\r\n\tprivate deleteCascadaNODOS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaNODOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaNODO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\tprivate deleteCascadaNODO(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\r\n\t\tfuncs.push([that.deleteRelacionesNodo, entidad, that]);\r\n\t\tfuncs.push([that.loadAndDeleteCascadaCONEXIONES_NODOS, [entidad], that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteRelacionesNodo(nodo, that?){\r\n\t\tconsole.log('** deleteRelacionesNodo: ' + nodo.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', nodo.Id);\r\n\t\tconst include = 'BALIZAS, CIUDADANO_UBICADO_ESPACIOS, IDIOMAS, RUTA_has_NODOS, CONTENIDOS';\r\n\r\n\t\treturn that.getNODO(where, include)\r\n\t\t.then(function (nodos) {\r\n\t\t\tnodo = nodos[0];\r\n\t\t\tthat.deleteEntityArray(nodo.BALIZAS, that);\r\n\t\t\tthat.deleteEntityArray(nodo.CONTENIDOS, that);\r\n\t\t\tthat.deleteEntityArray(nodo.CIUDADANO_UBICADO_ESPACIOS, that);\r\n\t\t\tthat.deleteEntityArray(nodo.IDIOMAS, that);\r\n\t\t\tthat.deleteEntityArray(nodo.RUTA_has_NODOS, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/* CONEXIONS_NODO */\r\n\t// Borrado de las conexiones de una lista de nodos desde otro borrado en cascada, ademas de ser un borrado profundo\r\n\tprivate loadAndDeleteCascadaCONEXIONES_NODOS(arrayNODO: any[], that?){\r\n\t\tconsole.log('loadAndDeleteCascadaCONEXIONES_NODOS: ' + arrayNODO.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarrayNODO.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.loadAndDeleteCascadaCONEXIONES_NODO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\t// Carga las conexiones del nodo pasado como parametro y las elimina\r\n\tprivate loadAndDeleteCascadaCONEXIONES_NODO(nodo: any, that?){\r\n\t\tconsole.log('loadAndDeleteCascadaCONEXIONES_NODO: ' + nodo.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', nodo.Id);\r\n\t\tlet include = 'CONEXIONS_NODOS_ORIGEN.IDIOMAS, CONEXIONS_NODOS_DESTINO.IDIOMAS';\r\n\t\tinclude = include + ', CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\r\n\t\treturn that.getNODO(where, include)\r\n\t\t.then(function (nodos) {\r\n\t\t\tnodo = nodos[0];\r\n\t\t\tconst conexiones = nodo.CONEXIONS_NODOS_ORIGEN.concat(nodo.CONEXIONS_NODOS_DESTINO);\r\n\t\t\treturn that.deleteCascadaCONEXIONES_NODO(conexiones, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\tdeleteCascadaCONEXIONES_NODO(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaCONEXIONES_NODO: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.PESO_CONEXIONS, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tdeleteCascadaCONEXION_NODO(entidad: any){\r\n\t\treturn this.deleteCascadaCONEXIONES_NODO([entidad]);\r\n\t}\r\n\r\n\t/* NIVEL */\r\n\tdeleteNIVEL(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaNIVEL(entidad, that);\r\n\t}\r\n\tdeleteNIVELES(array: any[], that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaNIVELES(array, that);\r\n\t}\r\n\tdeleteCascadaNIVEL(entidad: any, that?){\r\n\t\t// that = this !== undefined ? this : that;\r\n\t\t// return that.deleteCascadaNIVELES([entidad], that);\r\n\t\tconsole.log('** deleteCascadaNIVEL: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\tconst include = 'ALAS, IDIOMAS, CONTENIDOS, TECNOLOGIAS';\r\n\t\treturn that.getNIVEL(where, include)\r\n\t\t.then(function (entidades) {\r\n\t\t\tentidad = entidades[0];\r\n\t\t\tconst funcs = [];\r\n\t\t\tfuncs.push([that.loadAndDeleteCascadadeleteALAS, entidad.ALAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.TECNOLOGIAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.CONTENIDOS, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t});\r\n\t}\r\n\tdeleteCascadaNIVELES(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaNIVELES: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\t\tfuncs.push([that.deleteCascadaNIVEL, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/* ALA */\r\n\tdeleteGEOCALIBRACION_ALA(idAla, that?){\r\n\t\tconsole.log('** deleteGEOCALIBRACION_ALA.IdAla: ' + idAla);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.getGEOCALIBRACION_ALAByIdAla(idAla)\r\n\t\t.then(function (geocalibracion_alas) {\r\n\t\t\tconst geo = geocalibracion_alas[0];\r\n\t\t\treturn that.deleteEntity(geo, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn that.saveChanges();\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteALA(entidad: any, that?){\r\n\t\tconsole.log('** deleteALA: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst include = 'CONTENIDOS_SITUADOS_EN_ALA';\r\n\t\treturn that.getALAById(entidad.Id, include)\r\n\t\t.then(function (alas) {\r\n\t\t\tconst ala = alas[0];\r\n\t\t\tconst CONTENIDOS_SITUADOS_EN_ALA = ala.CONTENIDOS_SITUADOS_EN_ALA;\r\n\t\t\tfor (let index = CONTENIDOS_SITUADOS_EN_ALA.length - 1; index >= 0; index--) {\r\n\t\t\t\tconst contenido = CONTENIDOS_SITUADOS_EN_ALA[index];\r\n\t\t\t\tcontenido.ALA_PLANO = null;\r\n\t\t\t\tcontenido.IdAlaPlano = null;\r\n\t\t\t}\r\n\t\t\treturn that.saveChanges();\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn that.deleteCascadaALA(entidad);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate loadAndDeleteCascadadeleteALAS(array: any[], that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteALA, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\tprivate deleteCascadaALA(entidad: any, that?){\r\n\t\tconsole.log('** deleteCascadaALA: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\t// return this.deleteCascadaALAS([entidad], that);\r\n\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\tconst include = 'SECCIONS, CIUDADANO_UBICADO_ESPACIOS, IDIOMAS, CONTENIDOS';\r\n\r\n\t\treturn that.getALA(where, include)\r\n\t\t.then(function (entidades) {\r\n\t\t\tentidad = entidades[0];\r\n\t\t\tconst funcs = [];\r\n\t\t\tfuncs.push([that.deleteGEOCALIBRACION_ALA, entidad.Id, that]);\r\n\t\t\tfuncs.push([that.loadAnddeleteCascadaSECCIONES, entidad.SECCIONS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.CONTENIDOS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.CIUDADANO_UBICADO_ESPACIOS]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\tprivate deleteCascadaALAS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaALAS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaALA, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/* RUTA */\r\n\tdeleteRUTAS(rutasArray: any[], that?){\r\n\t\tconsole.log('** deleteRUTAS: ' + rutasArray.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaRUTAS(rutasArray, that);\r\n\t}\r\n\tdeleteRUTA(entidad: any, that?){\r\n\t\tconsole.log('** deleteRUTA: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaRUTA(entidad, that);\r\n\t}\r\n\tprivate deleteRelacionesRuta(ruta: any, that?){\r\n\t\tconsole.log('** deleteRelacionesRuta: ' + ruta.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', ruta.Id);\r\n\t\tconst include = 'RUTA_has_NODOS, IDIOMAS, CIUDADANO_SOLICITUD_RUTA_SUGERIDAS, RUTA_has_CONTENIDOS';\r\n\r\n\t\treturn that.getRUTA(where, include)\r\n\t\t.then(function (rutas) {\r\n\t\t\truta = rutas[0];\r\n\t\t\tthat.deleteEntityArray( ruta.RUTA_has_CONTENIDOS, that);\r\n\t\t\tthat.deleteEntityArray( ruta.RUTA_has_NODOS, that);\r\n\t\t\tthat.deleteEntityArray( ruta.CIUDADANO_SOLICITUD_RUTA_SUGERIDAS, that);\r\n\t\t\tthat.deleteEntityArray( ruta.IDIOMAS, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\tprivate deleteCascadaRUTA(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\r\n\t\tfuncs.push([that.deleteRelacionesRuta, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteCascadaRUTAS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaRUTAS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaRUTA, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/* NOTICIA */\r\n\tdeleteNOTICIA(entidad: any){\r\n\t\tthis.deleteNOTICIAS([entidad]);\r\n\t}\r\n\tdeleteNOTICIAS(array: any[]){\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([this.deleteEntityArray, entidad.IDIOMAS, this]);\r\n\t\t\t\tfuncs.push([this.saveChanges, null, this]);\r\n\t\t\t\tfuncs.push([this.deleteEntity, entidad, this]);\r\n\t\t\t\tfuncs.push([this.saveChanges, null, this]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tconst that = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\t/* TIPOLOGIA_SECCIONES */\r\n\tdeleteTIPOLOGIA_SECCION(entidad: any, that?){\r\n\t\tconsole.log('** deleteTIPOLOGIA_SECCION: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaTIPOLOGIA_SECCION(entidad, that);\r\n\t}\r\n\tprivate deleteCascadaTIPOLOGIA_SECCION(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tfuncs.push([that.deleteRelacionesTIPOLOGIA_SECCION, entidad, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate deleteRelacionesTIPOLOGIA_SECCION(tipo: any, that?){\r\n\t\tconsole.log('** deleteRelacionesTIPOLOGIA_SECCION: ' + tipo.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', tipo.Id);\r\n\t\tconst include = 'IDIOMAS, SECCIONES';\r\n\t\treturn that.getTIPOLOGIA_SECCION(where, include)\r\n\t\t.then(function (tipos) {\r\n\t\t\ttipo = tipos[0];\r\n\t\t\tconsole.log(tipo)\r\n\t\t\tthat.deleteEntityArray( tipo.IDIOMAS, that);\r\n\t\t\tthat.deleteEntityArray( tipo.SECCIONES, that); // SECCIONES es la relacion SECCION_has_TIPOLOGIA\r\n\t\t\treturn that.saveChanges(that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\t/* TIPOLOGIA_CONTENIDO */\r\n\tdeleteTIPOLOGIAS_CONTENIDO(rutasArray: any[], that?){\r\n\t\tconsole.log('** deleteTIPOLOGIAS_CONTENIDO: ' + rutasArray.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaTIPOLOGIAS_CONTENIDO(rutasArray, that);\r\n\t}\r\n\tdeleteTIPOLOGIA_CONTENIDO(entidad: any, that?){\r\n\t\tconsole.log('** deleteTIPOLOGIA_CONTENIDO: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaTIPOLOGIA_CONTENIDO(entidad, that);\r\n\t}\r\n\tprivate deleteCascadaTIPOLOGIA_CONTENIDO(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tfuncs.push([that.deleteRelacionesTIPOLOGIA_CONTENIDO, entidad, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteCascadaTIPOLOGIAS_CONTENIDO(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaTIPOLOGIAS_CONTENIDO: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaTIPOLOGIA_CONTENIDO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteRelacionesTIPOLOGIA_CONTENIDO(tipo: any, that?){\r\n\t\tconsole.log('** deleteRelacionesTIPOLOGIA_CONTENIDO: ' + tipo.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', tipo.Id);\r\n\t\tconst include = 'IDIOMAS';\r\n\t\treturn that.getTIPOLOGIA_CONTENIDO(where, include)\r\n\t\t.then(function (tipos) {\r\n\t\t\ttipo = tipos[0];\r\n\t\t\tthat.deleteEntityArray( tipo.IDIOMAS, that);\r\n\t\t\treturn that.saveChanges(that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\t/* CONTENIDO */\r\n\tdeleteCONTENIDO(entidad: any, that?){\r\n\t\tconsole.log('** deleteCONTENIDO: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaCONTENIDO(entidad, that);\r\n\t}\r\n\r\n\tdeleteCONTENIDOS_ESPACIO(espacio: any, that?){\r\n\t\tconsole.log('** deleteCONTENIDOS_ESPACIO: ' + espacio.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('EspacioPertenencia', '==', espacio.Id);\r\n\t\treturn that.getCONTENIDO(where)\r\n\t\t.then(function (contenidos) {\r\n\t\t\treturn that.deleteCascadaCONTENIDOS(contenidos, that);\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteCONTENIDOS(array: any[], that?){\r\n\t\tconsole.log('** deleteCONTENIDOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaCONTENIDOS(array, that);\r\n\t}\r\n\tprivate deleteCascadaCONTENIDO(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\tconst include = 'IDIOMAS, RUTAS, CONTENIDO_WEB_EXTERNAS.IDIOMAS, NIVELES, ESPACIOS, ALAS, SECCIONES, NODODS';\r\n\t\treturn that.getCONTENIDO(where, include)\r\n\t\t.then(function (entidades) {\r\n\t\t\tentidad = entidades[0];\r\n\r\n\t\t\tif (entidad.RUTAS.length > 0 ) {\r\n\t\t\t\treturn 'CON RUTAS';\r\n\t\t\t}\r\n\r\n\t\t\tconst funcs = [];\r\n\t\t\tfuncs.push([that.deleteRelacionesCONTENIDO, entidad, that]);\r\n\t\t\tfuncs.push([that.deleteCONTENIDO_WEB_EXTERNAS, entidad.CONTENIDO_WEB_EXTERNAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(resp){\r\n\r\n\t\t\tif(resp === 'CON RUTAS'){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\tprivate deleteCascadaCONTENIDOS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaCONTENIDOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaCONTENIDO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteRelacionesCONTENIDO(contenido: any, that?){\r\n\t\tconsole.log('** deleteRelacionesCONTENIDO: ' + contenido.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tthat.deleteEntityArray(contenido.NIVELES, that);\r\n\t\tthat.deleteEntityArray(contenido.ESPACIOS, that);\r\n\t\tthat.deleteEntityArray(contenido.ALAS, that);\r\n\t\tthat.deleteEntityArray(contenido.SECCIONES, that);\r\n\t\tthat.deleteEntityArray(contenido.NODODS, that);\r\n\t\tthat.deleteEntityArray(contenido.IDIOMAS, that);\r\n\t\tthat.deleteEntityArray(contenido.FOTOS, that);\r\n\t\tthat.deleteEntity(contenido.MODELO_3D, that);\r\n\t\treturn that.saveChanges(that);\r\n\t}\r\n\r\n\t/* MODELO_3D */\r\n\tdeleteMODELO_3D(entidad: any, that?){\r\n\t\tconsole.log('** deleteMODELO_3D: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaMODELO_3D(entidad, that);\r\n\t}\r\n\r\n\tprivate deleteCascadaMODELO_3D(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\treturn that.getMODELO_3D(where)\r\n\t\t.then(function (entidades) {\r\n\t\t\tentidad = entidades[0];\r\n\r\n\t\t\tconst funcs = [];\r\n\t\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(resp){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\t/* CONTENIDO_WEB_EXTERNA */\r\n\tdeleteCONTENIDO_WEB_EXTERNA(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tfuncs.push([that.deleteEntityArray, entidad.IDIOMAS, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tdeleteCONTENIDO_WEB_EXTERNAS(websArray: any[], that?){\r\n\t\tconsole.log('** deleteCONTENIDO_WEB_EXTERNAS: ' + websArray.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\twebsArray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCONTENIDO_WEB_EXTERNA, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/* ESPACIO */\r\n\t// TODO: Cascada con FKs\r\n\tdeleteESPACIO(espacio: any, that?){\r\n\t\tconsole.log('** deleteESPACIO: ' + espacio.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', espacio.Id);\r\n\t\tlet include = 'NIVELS, NOTICIAS, RUTAS_SUGERIDA, FOTOS, TECNOLOGIAS';\r\n\t\tinclude = include + ', CIUDADANOS_UBICADO_ESPACIO, PERFIL_MOVILIDAD_CIUDADANOS';\r\n\t\tinclude = include + ', POSICION_ULTIMAS, USUARIOS.USUARIO, IDIOMAS, POSICION_ACTUALS';\r\n\t\tinclude = include + ', AVISO_CIUDADANO, TIPOLOGIA_CONTENIDOS, CONTENIDOS.CONTENIDO';\r\n\r\n\t\treturn that.getESPACIO(where, include)\r\n\t\t.then(function (espacios) {\r\n\t\t\tespacio = espacios[0];\r\n\r\n\t\t\tthat = this !== undefined ? this : that;\r\n\t\t\tconst funcs = [];\r\n\r\n\t\t\tconst usuariosEspacio = [];\r\n\t\t\tespacio.USUARIOS.forEach(element => {\r\n\t\t\t\tusuariosEspacio.push(element.USUARIO);\r\n\t\t\t});\r\n\r\n\t\t\tfuncs.push([that.deleteNIVELES, espacio.NIVELS, that]);\r\n\t\t\tfuncs.push([that.deleteNOTICIAS, espacio.NOTICIAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.USUARIOS, that]);\r\n\t\t\tfuncs.push([that.deleteUSUARIOS, usuariosEspacio, that]);\r\n\t\t\tfuncs.push([that.deleteRUTAS, espacio.RUTAS_SUGERIDA, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.AVISO_CIUDADANO, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.CIUDADANOS_UBICADO_ESPACIO, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.CONTENIDOS, that]);\r\n\t\t\tfuncs.push([that.deleteCONTENIDOS_ESPACIO, espacio, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.TECNOLOGIAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.IDIOMAS, that]);\r\n\t\t\tfuncs.push([that.deletePERFIL_MOVILIDAD_CIUDADANOS, espacio.PERFIL_MOVILIDAD_CIUDADANOS, that]);\r\n\t\t\tfuncs.push([that.deleteTIPOLOGIAS_CONTENIDO, espacio.TIPOLOGIA_CONTENIDOS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.POSICION_ACTUALS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.POSICION_ULTIMAS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, espacio.FOTOS, that]);\r\n\t\t\tfuncs.push([that.saveChanges, that]);\r\n\t\t\tfuncs.push([that.deleteEntity, espacio, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\t/* PERFIL_MOVILIDAD_CIUDADANO */\r\n\tdeletePERFIL_MOVILIDAD_CIUDADANO(entidad: any, that?){\r\n\t\tconsole.log('** deletePERFIL_MOVILIDAD_CIUDADANO: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deletePERFIL_MOVILIDAD_CIUDADANO(entidad, that);\r\n\t}\r\n\tdeletePERFIL_MOVILIDAD_CIUDADANOS(array: any[], that?){\r\n\t\tconsole.log('** deletePERFIL_MOVILIDAD_CIUDADANOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\treturn that.deleteCascadaPERFIL_MOVILIDAD_CIUDADANOS(array, that);\r\n\t}\r\n\r\n\tprivate deleteCascadaPERFIL_MOVILIDAD_CIUDADANO(perfil, that?){\r\n\t\tconsole.log('** deleteCascadaPERFIL_MOVILIDAD_CIUDADANO: ' + perfil.Id);\r\n\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst where = new Predicate('Id', '==', perfil.Id);\r\n\t\tconst include = 'PESO_CONEXIONS, IDIOMAS';\r\n\r\n\t\treturn that.getPERFIL_MOVILIDAD_CIUDADANO(where, include)\r\n\t\t.then(function (perfiles) {\r\n\t\t\tperfil = perfiles[0];\r\n\t\t\tconst funcs = [];\r\n\t\t\tfuncs.push([that.deleteEntityArray, perfil.PESO_CONEXIONS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, perfil.IDIOMAS, that]);\r\n\t\t\tfuncs.push([that.saveChanges, that]);\r\n\t\t\tfuncs.push([that.deleteEntity, perfil, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate deleteCascadaPERFIL_MOVILIDAD_CIUDADANOS(array, that?){\r\n\t\tconsole.log('** deleteCascadaPERFIL_MOVILIDAD_CIUDADANOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaPERFIL_MOVILIDAD_CIUDADANO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate deleteUSUARIOS(usuarios, that?){\r\n\t\tconsole.log('** deletePERFIL_MOVILIDAD_CIUDADANO: ' + usuarios.length);\r\n\t\tconsole.log('**** TODO:: ');\r\n\t}\r\n\r\n\r\n\t/* BALIZA */\r\n\tdeleteBALIZA(entidad: any){\r\n\t\treturn this.deleteCascadaBALIZA(entidad);\r\n\t}\r\n\tprivate deleteCascadaBALIZAS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaBALIZAS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaBALIZA, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\r\n\t}\r\n\tprivate deleteCascadaBALIZA(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\r\n\t\tfuncs.push([that.deleteRelacionesBaliza, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteRelacionesBaliza(baliza, that?){\r\n\t\tconsole.log('** deleteRelacionesBaliza: ' + baliza.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', baliza.Id);\r\n\t\tconst include = 'NODOS';\r\n\r\n\t\treturn that.getBALIZA(where, include)\r\n\t\t.then(function (balizas) {\r\n\t\t\tbaliza = balizas[0];\r\n\t\t\tthat.deleteEntityArray(baliza.NODOS, that);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/* AVISO_CIUDADANO */\r\n\tdeleteAVISO(entidad: any){\r\n\t\treturn this.deleteCascadaAVISO(entidad);\r\n\t}\r\n\tprivate deleteCascadaAVISOS(array: any[], that?){\r\n\t\tconsole.log('** deleteCascadaAVISOS: ' + array.length);\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\t\tarray.forEach(entidad => {\r\n\t\t\ttry {\r\n\t\t\t\tfuncs.push([that.deleteCascadaAVISO, entidad, that]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteCascadaAVISO(entidad: any, that?){\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst funcs = [];\r\n\r\n\t\tfuncs.push([that.deleteRelacionesAviso, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\t\tfuncs.push([that.deleteEntity, entidad, that]);\r\n\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\tlet result = Q(true);\r\n\t\tfuncs.forEach( (arr) =>\r\n\t\t{\r\n\t\t\tconst func = arr[0];\r\n\t\t\tconst args = arr[1];\r\n\t\t\tthat = arr[2];\r\n\t\t\tresult = result.then(() => {\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\treturn func(that);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\tprivate deleteRelacionesAviso(entidad, that?){\r\n\t\tconsole.log('** deleteRelacionesAviso: ' + entidad.Id);\r\n\t\tthat = this !== undefined ? this : that;\r\n\r\n\t\tconst where = new Predicate('Id', '==', entidad.Id);\r\n\t\tconst include = 'FOTO,SECCIONES, ESPACIOS, NODOS';\r\n\r\n\t\treturn that.getAVISO_CIUDADANO(where, include)\r\n\t\t.then(function (avisos) {\r\n\t\t\t// entidad = avisos[0];\r\n\t\t\t// that.deleteEntityArray(entidad.FOTO, that);\r\n\r\n\t\t\tthat = this !== undefined ? this : that;\r\n\t\t\tconst funcs = [];\r\n\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.FOTO, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.SECCIONES, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.ESPACIOS, that]);\r\n\t\t\tfuncs.push([that.deleteEntityArray, entidad.NODOS, that]);\r\n\t\t\tfuncs.push([that.saveChanges, null, that]);\r\n\r\n\t\t\tlet result = Q(true);\r\n\t\t\tfuncs.forEach( (arr) =>\r\n\t\t\t{\r\n\t\t\t\tconst func = arr[0];\r\n\t\t\t\tconst args = arr[1];\r\n\t\t\t\tthat = arr[2];\r\n\t\t\t\tresult = result.then(() => {\r\n\t\t\t\t\tif (args) {\r\n\t\t\t\t\t\treturn func(args, that);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn func(that);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn result;\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region **** NEW and GET ****\r\n\r\n\t/* XXXXXX_has_YYYYYY */\r\n\tnewNIVEL_has_CONTENIDO(): any {\r\n\t\treturn\tthis.newEntity('NIVEL_has_CONTENIDO');\r\n\t}\r\n\tnewESPACIO_has_CONTENIDO(){\r\n\t\treturn\tthis.newEntity('ESPACIO_has_CONTENIDO');\r\n\t}\r\n\tnewESPACIO_has_USUARIO(){\r\n\t\treturn\tthis.newEntity('ESPACIO_has_USUARIO');\r\n\t}\r\n\tnewALA_has_CONTENIDO(){\r\n\t\treturn\tthis.newEntity('ALA_has_CONTENIDO');\r\n\t}\r\n\tnewSECCION_has_CONTENIDO(){\r\n\t\treturn\tthis.newEntity('SECCION_has_CONTENIDO');\r\n\t}\r\n\tnewSECCION_has_TIPOLOGIA(){\r\n\t\tconsole.log('llega1')\r\n\t\treturn\tthis.newEntity('SECCION_has_TIPOLOGIA');\r\n\t}\r\n\tnewRUTA_has_CONTENIDO(){\r\n\t\treturn\tthis.newEntity('RUTA_has_CONTENIDO');\r\n\t}\r\n\tnewNODO_has_CONTENIDO(){\r\n\t\treturn\tthis.newEntity('NODO_has_CONTENIDO');\r\n\t}\r\n\tnewNIVEL_has_TECNOLOGIA(){\r\n\t\treturn this.newEntity('NIVEL_has_TECNOLOGIA');\r\n\t}\r\n\tnewESPACIO_has_TECNOLOGIA(){\r\n\t\treturn this.newEntity('ESPACIO_has_TECNOLOGIA');\r\n\t}\r\n\tnewNODO_has_BALIZA(){\r\n\t\treturn\tthis.newEntity('NODO_has_BALIZA');\r\n\t}\r\n\t/* NODO */\r\n\tgetNODO(where?, expands?, columns?): any{\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tif (!where) {\r\n\t\t\twhere = new Predicate('SECCION.ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\telse{\r\n\t\t\twhere = where.and('SECCION.ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\treturn this.getByCriteria('NODO', where, expands, columns);\r\n\t}\r\n\r\n\tnewNodo(): any {\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet nodo;\r\n\t\treturn\t this.newEntity('NODO')\r\n\t\t.then(function(resp){\r\n\t\t\tnodo = resp;\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newNodo_IDIOMA(nodo)\r\n\t\t\t.then(function(IDIOMAS){\r\n\t\t\t\tnodo.IDIOMAS = IDIOMAS;\r\n\t\t\t\treturn nodo;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tnewNodo_IDIOMA(NODO: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('NODO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oNODO_Idioma){\r\n\t\t\toNODO_Idioma .forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst nodoIdiomaIdioma = item.value;\r\n\t\t\t\tnodoIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tnodoIdiomaIdioma.NODO = NODO;\r\n\t\t\t\tnodoIdiomaIdioma.IdNodo = NODO.Id;\r\n\t\t\t\tnodoIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tNODO.IDIOMAS.push(nodoIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn NODO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ALA */\r\n\tgetALA(where?, expands?, columns?): any{\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tif (!where) {\r\n\t\t\twhere = new Predicate('NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\telse{\r\n\t\t\twhere = where.and('NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\treturn this.getByCriteria('ALA', where, expands, columns);\r\n\t}\r\n\r\n\tgetALAById(id: String, expands?, columns?): any{\r\n if (id) {\r\n const where = new Predicate('Id', '==', id);\r\n return this.getByCriteria('ALA', where, expands, columns);\r\n }\r\n else {\r\n return this.getALA(undefined, expands, columns);\r\n }\r\n }\r\n\r\n\tgetGEOCALIBRACION_ALAByIdAla(idAla){\r\n\t\tconst where = new Predicate('IdAla', '==', idAla);\r\n\t\treturn this.getByCriteria('GEOCALIBRACION_ALA', where, null, null);\r\n\t}\r\n\r\n\tnewALA(): any{\r\n\t\tconst that = this;\r\n\t\tlet ala;\r\n\t\treturn this.newEntity('ALA')\r\n\t\t.then(function(resp){\r\n\t\t\tala = resp;\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newALA_IDIOMA(ala)\r\n\t\t\t.then(function(IDIOMAS){\r\n\t\t\t\tala.IDIOMAS = IDIOMAS;\r\n\t\t\t\treturn ala;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tnewALA_IDIOMA(ALA: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('ALA_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oALA_Idioma){\r\n\t\t\toALA_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst alaIdiomaIdioma = item.value;\r\n\t\t\t\talaIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\talaIdiomaIdioma.ALA = ALA;\r\n\t\t\t\talaIdiomaIdioma.IdAla = ALA.Id;\r\n\t\t\t\talaIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tALA.IDIOMAS.push(alaIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn ALA.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* BALIZA */\r\n\tgetBALIZA(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('BALIZA', where, expands, columns);\r\n\t}\r\n\r\n\tgetBalizasEspacio(){\r\n\t\t// http://10.8.0.37:8888/breeze/Ubimaps/BALIZA?$filter=(EspacioPertenencia%20eq%20guid%27dc479657-6711-ec11-80f5-00505621ec8d%27)\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst where = new Predicate('EspacioPertenencia', '==', idEspacio);\r\n\t\treturn this.getByCriteria('BALIZA', where, undefined, undefined);\r\n\t}\r\n\r\n\tnewBALIZA(): any{\r\n\t\treturn\t this.newEntity('BALIZA');\r\n\t}\r\n\r\n\t/* SECCION */\r\n\tgetSECCION(where?, expands?, columns?): any{\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tif (!where) {\r\n\t\t\twhere = new Predicate('ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\telse{\r\n\t\t\twhere = where.and('ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\treturn this.getByCriteria('SECCION', where, expands, columns);\r\n\t}\r\n\r\n\tnewSECCION(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet newSECCION;\r\n\t\treturn\t this.newEntity('SECCION')\r\n\t\t.then(function(seccion){\r\n\t\t\tnewSECCION = seccion;\r\n\t\t\t// newSECCION.IdAlternativo = newSECCION.Id;\r\n\t\t\tnewSECCION.IdAlternativo = Math.floor(Date.now() / 1000);\r\n\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newSECCION_IDIOMA(newSECCION);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tnewSECCION.IDIOMAS = IDIOMAS;\r\n\t\t\treturn newSECCION;\r\n\t\t});\r\n\t}\r\n\r\n\tnewSECCION_IDIOMA(SECCION: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('SECCION_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oSECCION_Idioma){\r\n\t\t\toSECCION_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst seccionIdiomaIdioma = item.value;\r\n\t\t\t\tseccionIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tseccionIdiomaIdioma.SECCION = SECCION;\r\n\t\t\t\tseccionIdiomaIdioma.IdSeccion = SECCION.Id;\r\n\t\t\t\tseccionIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tSECCION.IDIOMAS.push(seccionIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn SECCION.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* NIVEL */\r\n\tgetNIVEL(where?, expands?, columns?): any{\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tif (!where) {\r\n\t\t\twhere = new Predicate('ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\telse{\r\n\t\t\twhere = where.and('ESPACIO.Id', '==', idEspacio);\r\n\t\t}\r\n\t\treturn this.getByCriteria('NIVEL', where, expands, columns);\r\n\t}\r\n\r\n\tnewNIVEL(): any{\r\n\t\tconst that = this;\r\n\t\tlet nivel;\r\n\t\tlet tecnologiaPorDefecto;\r\n\t\tlet NIVEL_hasTECNOLOGIA;\r\n\r\n\t\treturn that.getTECNOLOGIA('BEACON')\r\n\t\t.then(function (tecnologiasENTIDAD: any[]) {\r\n\t\t\ttecnologiaPorDefecto = tecnologiasENTIDAD[0];\r\n\t\t\treturn that.newNIVEL_has_TECNOLOGIA();\r\n\t\t})\r\n\t\t.then(function (nivel_has_tecnologia: any[]) {\r\n\t\t\tNIVEL_hasTECNOLOGIA = nivel_has_tecnologia;\r\n\t\t\tNIVEL_hasTECNOLOGIA.TECNOLOGIA = tecnologiaPorDefecto;\r\n\t\t\treturn that.newEntity('NIVEL');\r\n\t\t})\r\n\t\t.then(function(resp){\r\n\t\t\tnivel = resp;\r\n\t\t\tnivel.TECNOLOGIAS.push(NIVEL_hasTECNOLOGIA);\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newNIVEL_IDIOMA(nivel)\r\n\t\t\t.then(function(IDIOMAS){\r\n\t\t\t\tnivel.IDIOMAS = IDIOMAS;\r\n\t\t\t\treturn nivel;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tnewNIVEL_IDIOMA(NIVEL: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('NIVEL_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oNIVEL_Idioma){\r\n\t\t\toNIVEL_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst nivelIdiomaIdioma = item.value;\r\n\t\t\t\tnivelIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tnivelIdiomaIdioma.NIVEL = NIVEL;\r\n\t\t\t\tnivelIdiomaIdioma.IdNivel = NIVEL.Id;\r\n\t\t\t\tnivelIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tNIVEL.IDIOMAS.push(nivelIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn NIVEL.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* APP */\r\n\tgetAPP(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('APP', where, expands, columns);\r\n\t}\r\n\r\n\tnewAPP(): any{\r\n\t\treturn\t this.newEntity('APP');\r\n\t}\r\n\r\n\t/* CONTENIDO */\r\n\tgetCONTENIDO(where?, expands?, columns?): any{\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tif (where === undefined) {\r\n\t\t\twhere = new Predicate('EspacioPertenencia', '==', idEspacio);\r\n\t\t}\r\n\t\telse{\r\n\t\t\twhere = where.and('EspacioPertenencia', '==', idEspacio);\r\n\t\t}\r\n\t\treturn this.getByCriteria('CONTENIDO', where, expands, columns);\r\n\t}\r\n\r\n\tgetCONTENIDOOrdenado(where?, order?, top?, page?, expands?, columns?): any{\r\n\t\tif (!top){\r\n\t\t\ttop = 10;\r\n\t\t}\r\n\t\tif (!page){\r\n\t\t\tpage = 0;\r\n\t\t}\r\n\t\treturn this.getByCriteriaOrder('CONTENIDO', where, order, top, page, expands, columns);\r\n\t}\r\n\r\n\tgetContenidosById(ids, expands?, columns?){\r\n\t\tlet where = new Predicate('Id', '==', ids[0]);\r\n\t\tids.forEach(id => {\r\n\t\t\twhere = where.or('Id', '==', id);\r\n\t\t});\r\n\r\n\t\treturn this.getByCriteria('CONTENIDO', where, expands, columns);\r\n\t}\r\n\r\n\tgetAVISOOrdenado(where?, order?, top?, page?, expands?): any{\r\n\t\tif (!top){\r\n\t\t\ttop = 10;\r\n\t\t}\r\n\t\tif (!page){\r\n\t\t\tpage = 0;\r\n\t\t}\r\n\t\treturn this.getByCriteriaOrder('AVISO_CIUDADANO', where, order, top, page, expands);\r\n\t}\r\n\r\n\tnewCONTENIDO(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet CONTENIDO;\r\n\t\treturn\t this.newEntity('CONTENIDO')\r\n\t\t.then(function(contenido){\r\n\t\t\tCONTENIDO = contenido;\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newCONTENIDO_IDIOMA(CONTENIDO)\r\n\t\t\t.then(function(IDIOMAS){\r\n\t\t\t\tCONTENIDO.IDIOMAS = IDIOMAS;\r\n\t\t\t\treturn CONTENIDO;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tnewCONTENIDO_IDIOMA(CONTENIDO: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('CONTENIDO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oCONTENIDO_Idioma){\r\n\t\t\toCONTENIDO_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst contenidoIdiomaIdioma = item.value;\r\n\t\t\t\tcontenidoIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tcontenidoIdiomaIdioma.CONTENIDOS = CONTENIDO;\r\n\t\t\t\tcontenidoIdiomaIdioma.IdContenido = CONTENIDO.Id;\r\n\t\t\t\tcontenidoIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tCONTENIDO.IDIOMAS.push(contenidoIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn CONTENIDO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ESPACIO */\r\n\tgetESPACIO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('ESPACIO', where, expands, columns);\r\n\t}\r\n\r\n\tnewESPACIO(): any{\r\n\t\tconst that = this;\r\n\t\tlet espacio;\r\n\t\tlet idUsuario;\r\n\t\tlet idEntidad;\r\n\t\tlet tecnologiaPorDefecto;\r\n\t\tlet ESPACIO_has_TECNOLOGIA;\r\n\t\tlet TIPOLOGIA_CONTENIDO;\r\n\t\treturn this.newEntity('ESPACIO')\r\n\t\t.then(function(resp){\r\n\t\t\tespacio = resp;\r\n\t\t\tidEntidad = that.authService.getIdEntidad();\r\n\t\t\tespacio.IdEntidad = idEntidad;\r\n\t\t\t// Cambiar en el futuro para que sea seleccionable\r\n\t\t\tespacio.ColorSeleccionEspacio = 'rgba(184,219,184,0.6)';\r\n\t\t\tespacio.ColorFuenteEspacio = 'rgba(255,255,255,1)';\r\n\t\t\tespacio.ColorEspacio = 'rgba(100,102,101,1)';\r\n\t\t\treturn that.newESPACIO_IDIOMA(espacio);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tespacio.IDIOMAS = IDIOMAS;\r\n\t\t\treturn that.newESPACIO_has_USUARIO();\r\n\t\t})\r\n\t\t.then(function(newESPACIO_has_USUARIO){\r\n\t\t\tidUsuario = that.authService.getIdUsuario();\r\n\t\t\tnewESPACIO_has_USUARIO.IdEspacio = espacio.Id;\r\n\t\t\tnewESPACIO_has_USUARIO.IdUsuario = idUsuario;\r\n\t\t\treturn that.getTECNOLOGIA('BEACON');\r\n\t\t})\r\n\t\t.then(function (tecnologiasENTIDAD: any[]) {\r\n\t\t\ttecnologiaPorDefecto = tecnologiasENTIDAD[0];\r\n\t\t\treturn that.newESPACIO_has_TECNOLOGIA();\r\n\t\t})\r\n\t\t.then(function (espacio_has_tecnologia: any[]) {\r\n\t\t\tESPACIO_has_TECNOLOGIA = espacio_has_tecnologia;\r\n\t\t\tESPACIO_has_TECNOLOGIA.TECNOLOGIA = tecnologiaPorDefecto;\r\n\t\t\tespacio.TECNOLOGIAS.push(ESPACIO_has_TECNOLOGIA);\r\n\r\n\t\t\treturn that.newTIPOLOGIA_CONTENIDO();\r\n\t\t})\r\n\t\t.then(function (tipologia_contenido: any[]) {\r\n\t\t\tTIPOLOGIA_CONTENIDO = tipologia_contenido;\r\n\t\t\tTIPOLOGIA_CONTENIDO.Tipo = 'CIUDADANO';\r\n\t\t\tTIPOLOGIA_CONTENIDO.Nombre = 'Visita';\r\n\t\t\tTIPOLOGIA_CONTENIDO.VisibilidadListaContenidosWeb = false;\r\n\t\t\tTIPOLOGIA_CONTENIDO.IconoRepresentacion = 'assets/itsoft/IconosSVG/SVG/tipologia-usuarios.svg';\r\n\t\t\tTIPOLOGIA_CONTENIDO.VisibleSoloEn = Constantes.VISIBLE_SI_UBICADO_EN.SIEMPRE;\r\n\t\t\tespacio.TIPOLOGIA_CONTENIDOS.push(TIPOLOGIA_CONTENIDO);\r\n\r\n\t\t\treturn that.saveChanges();\r\n\t\t})\r\n\t\t.then(function (resp: any) {\r\n\t\t\tconsole.log(resp);\r\n\t\t\treturn that.newPERFIL_MOVILIDAD_CIUDADANO();\r\n\t\t})\r\n\t\t.then(function (oPerfil: any) {\r\n\r\n\t\t\toPerfil.IdEspacio = espacio.Id;\r\n\t\t\toPerfil.Nomobre = 'Standar';\r\n\t\t\toPerfil.IDIOMAS.forEach(PERFIL_MOVILIDAD_IDIOMA => {\r\n\t\t\t\tPERFIL_MOVILIDAD_IDIOMA.Nombre = 'Standar';\r\n\t\t\t});\r\n\r\n\t\t\toPerfil.PesoMAximo = Constantes.PESO_DEFAULT; // that.perfilSeleccionado.PesoMAximo;\r\n\r\n\t\t\treturn that.saveChanges();\r\n\t\t})\r\n\t\t.then(function(resp:any){\r\n\t\t\tconsole.log(resp);\r\n\t\t\treturn espacio;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tnewESPACIO_IDIOMA(ESPACIO: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('ESPACIO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oESPACIO_Idioma){\r\n\t\t\toESPACIO_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst espacioIdiomaIdioma = item.value;\r\n\t\t\t\tespacioIdiomaIdioma.IdEspacio = ESPACIO.Id;\r\n\t\t\t\tespacioIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tESPACIO.IDIOMAS.push(espacioIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn ESPACIO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* NOTICIA */\r\n\tgetNOTICIA(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('NOTICIA', where, expands, columns);\r\n\t}\r\n\r\n\tnewNOTICIA(): any{\r\n\t\tconst that = this;\r\n\t\tlet noticia;\r\n\t\treturn this.newEntity('NOTICIA')\r\n\t\t.then(function(resp){\r\n\t\t\tnoticia = resp;\r\n\t\t\t// Crear las relaciones con cada idiomas para la nueva conexion\r\n\t\t\treturn that.newALA_IDIOMA(noticia)\r\n\t\t\t.then(function(IDIOMAS){\r\n\t\t\t\tnoticia.IDIOMAS = IDIOMAS;\r\n\t\t\t\treturn noticia;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tnewNOTICIA_IDIOMA(NOTICIA: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('NOTICIA_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oNOTICIA_IDIOMA){\r\n\t\t\toNOTICIA_IDIOMA.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst alaIdiomaIdioma = item.value;\r\n\t\t\t\talaIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\talaIdiomaIdioma.ALA = NOTICIA;\r\n\t\t\t\talaIdiomaIdioma.IdAla = NOTICIA.Id;\r\n\t\t\t\talaIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tNOTICIA.IDIOMAS.push(alaIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn NOTICIA.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tgetNoticiaById(idNoticia, includes?, columns?){\r\n\t\tconst that = this;\r\n\t\tconst p1 = new Predicate('Id', '==', idNoticia);\r\n\t\tconst query = EntityQuery.from('NOTICIA').select(columns).where(p1).using(this.masterManager).expand(includes);\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\t\t\tif (data.results.length > 0) {\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\tresolve(data.results);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* ENTIDAD */\r\n\tgetENTIDAD(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('ENTIDAD', where, expands, columns);\r\n\t}\r\n\r\n\tnewENTIDAD(): any{\r\n\t\treturn\t this.newEntity('ENTIDAD');\r\n\t}\r\n\r\n\t/* PERFIL */\r\n\tgetPERFIL(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('PERFIL', where, expands, columns);\r\n\t}\r\n\r\n\tnewPERFIL(): any{\r\n\t\treturn\t this.newEntity('PERFIL');\r\n\t}\r\n\r\n\r\n\t/* RUTA_SUGERIDA */\r\n\tgetRUTA(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('RUTA_SUGERIDA', where, expands, columns);\r\n\t}\r\n\r\n\tnewRUTA_SUGERIDA(): any{\r\n\t\tconst that = this;\r\n\t\tlet ruta;\r\n\t\treturn this.newEntity('RUTA_SUGERIDA')\r\n\t\t.then(function(resp){\r\n\t\t\truta = resp;\r\n\t\t\treturn that.newRUTA_SUGERIDA_IDIOMA(ruta);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\truta.IDIOMAS = IDIOMAS;\r\n\t\t\treturn ruta;\r\n\t\t});\r\n\t}\r\n\r\n\tnewRUTA_SUGERIDA_IDIOMA(RUTA_SUGERIDA: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('RUTA_SUGERIDA_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oRUTA_SUGERIDA_IDIOMA){\r\n\t\t\toRUTA_SUGERIDA_IDIOMA.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst rutaIdiomaIdioma = item.value;\r\n\t\t\t\trutaIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\trutaIdiomaIdioma.RUTA_SUGERIDA = RUTA_SUGERIDA;\r\n\t\t\t\trutaIdiomaIdioma.IdRutaSugerida = RUTA_SUGERIDA.Id;\r\n\t\t\t\trutaIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tRUTA_SUGERIDA.IDIOMAS.push(rutaIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn RUTA_SUGERIDA.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* TIPOLOGIA_NODO */\r\n\tgetTIPOLOGIA_NODO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('TIPOLOGIA_NODO', where, expands, columns);\r\n\t}\r\n\r\n\tnewTIPOLOGIA_NODO(): any{\r\n\t\treturn\t this.newEntity('TIPOLOGIA_NODO');\r\n\t}\r\n\r\n\t/* TIPOLOGIA_CONTENIDO */\r\n\tgetTIPOLOGIA_CONTENIDO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('TIPOLOGIA_CONTENIDO', where, expands, columns);\r\n\t}\r\n\r\n\r\n\r\n\tnewTIPOLOGIA_CONTENIDO(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet newTipologia;\r\n\t\treturn\t this.newEntity('TIPOLOGIA_CONTENIDO')\r\n\t\t.then(function(tipologia){\r\n\t\t\tnewTipologia = tipologia;\r\n\t\t\treturn that.newTIPOLOGIA_CONTENIDO_IDIOMA(newTipologia);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tnewTipologia.IDIOMAS = IDIOMAS;\r\n\t\t\treturn newTipologia;\r\n\t\t});\r\n\t}\r\n\r\n\tnewTIPOLOGIA_CONTENIDO_IDIOMA(TIPOLOGIA_CONTENIDO){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('TIPOLOGIA_CONTENIDO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oTIPOLOGIA_CONTENIDO_Idioma){\r\n\t\t\toTIPOLOGIA_CONTENIDO_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst tipologiaContenidoIdiomaIdioma = item.value;\r\n\t\t\t\ttipologiaContenidoIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\ttipologiaContenidoIdiomaIdioma.TIPOLOGIA_CONTENIDO = TIPOLOGIA_CONTENIDO;\r\n\t\t\t\ttipologiaContenidoIdiomaIdioma.IdTipologiaContenido = TIPOLOGIA_CONTENIDO.Id;\r\n\t\t\t\ttipologiaContenidoIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tTIPOLOGIA_CONTENIDO.IDIOMAS.push(tipologiaContenidoIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn TIPOLOGIA_CONTENIDO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* TIPOLOGIA_SECCION */\r\n\tgetTIPOLOGIA_SECCION(where?, expands?, columns?): any{\r\n\t\tconsole.log(where, expands)\r\n\t\treturn this.getByCriteria('TIPOLOGIA_SECCION', where, expands, columns);\r\n\t}\r\n\r\n\t\t/* TIPOLOGIA_SECCION */\r\n\t\tgetRelacionTIPOLOGIA_SECCION(where?, expands?, columns?): any{\r\n\t\t\tconsole.log(where, expands)\r\n\t\t\treturn this.getByCriteria('SECCION_has_TIPOLOGIA', where, expands, columns);\r\n\t\t}\r\n\r\n\tnewTIPOLOGIA_SECCION(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet newTipologiaSeccion;\r\n\t\treturn\t this.newEntity('TIPOLOGIA_SECCION')\r\n\t\t.then(function(tipologiaSeccion){\r\n\t\t\tnewTipologiaSeccion = tipologiaSeccion;\r\n\t\t\treturn that.newTIPOLOGIA_SECCION_IDIOMA(newTipologiaSeccion);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tnewTipologiaSeccion.IDIOMAS = IDIOMAS;\r\n\t\t\treturn newTipologiaSeccion;\r\n\t\t});\r\n\t}\r\n\r\n\tnewTIPOLOGIA_SECCION_IDIOMA(TIPOLOGIA_SECCION){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('TIPOLOGIA_SECCION_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oTIPOLOGIA_SECCION_Idioma){\r\n\t\t\toTIPOLOGIA_SECCION_Idioma.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst tipologiaSeccionIdioma = item.value;\r\n\t\t\t\ttipologiaSeccionIdioma.IDIOMA = idioma;\r\n\t\t\t\ttipologiaSeccionIdioma.TIPOLOGIA_SECCION = TIPOLOGIA_SECCION;\r\n\t\t\t\ttipologiaSeccionIdioma.idTipologiaSeccion = TIPOLOGIA_SECCION.Id;\r\n\t\t\t\ttipologiaSeccionIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tTIPOLOGIA_SECCION.IDIOMAS.push(tipologiaSeccionIdioma);\r\n\t\t\t});\r\n\t\t\treturn TIPOLOGIA_SECCION.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* TIPOLOGIA_BALIZA */\r\n\tgetTIPOLOGIA_BALIZA (where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('TIPOLOGIA_BALIZA', where, expands, columns);\r\n\t}\r\n\r\n\r\n\t/* USUARIO */\r\n\tgetUSUARIO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('USUARIO', where, expands, columns);\r\n\t}\r\n\r\n\tnewUSUARIO(): any{\r\n\t\treturn\t this.newEntity('USUARIO');\r\n\t}\r\n\r\n\t/* AVISO_CIUDADANO */\r\n\tgetAVISO_CIUDADANO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('AVISO_CIUDADANO', where, expands, columns);\r\n\t}\r\n\r\n\tnewAVISO_CIUDADANO(): any{\r\n\t\treturn this.newEntity('AVISO_CIUDADANO');\r\n\t}\r\n\r\n\t/* ESPACIO_has_AVISO */\r\n\tnewESPACIO_has_AVISO(): any{\r\n\t\treturn\tthis.newEntity('ESPACIO_has_AVISO');\r\n\t}\r\n\r\n\t/* SECCION_has_AVISO */\r\n\tnewSECCION_has_AVISO(): any{\r\n\t\treturn\t this.newEntity('SECCION_has_AVISO');\r\n\t}\r\n\r\n\t/* NODO_has_AVISO */\r\n\tnewNODO_has_AVISO(): any{\r\n\t\treturn\t this.newEntity('NODO_has_AVISO');\r\n\t}\r\n\r\n\r\n\t/* NODO_CALIBRACION_ALA */\r\n\tgetNODO_CALIBRACION_ALA(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('NODO_CALIBRACION_ALA', where, expands, columns);\r\n\t}\r\n\r\n\tnewNODO_CALIBRACION_ALA(): any{\r\n\t\treturn\t this.newEntity('NODO_CALIBRACION_ALA');\r\n\t}\r\n\r\n\t/* FOTO */\r\n\tnewFOTO(){\r\n\t\treturn\t this.newEntity('FOTO')\r\n\t\t.then(function(foto){\r\n\t\t\treturn foto;\r\n\t\t});\r\n\t}\r\n\r\n\t/* CONEXION_NODOS */\r\n\tgetCONEXION_NODOS(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('CONEXION_NODOS', where, expands, columns);\r\n\t}\r\n\r\n\tnewCONEXION_NODOS(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet newConexion;\r\n\t\treturn\t this.newEntity('CONEXION_NODOS')\r\n\t\t.then(function(Conexion){\r\n\t\t\tnewConexion = Conexion;\r\n\t\t\treturn that.newCONEXION_NODOS_IDIOMA(newConexion);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tnewConexion.IDIOMAS = IDIOMAS;\r\n\t\t\treturn newConexion;\r\n\t\t});\r\n\t}\r\n\r\n\tnewCONEXION_NODOS_IDIOMA(CONEXION_NODO){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('CONEXION_NODO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oCONEXION_NODO_IDIOMA){\r\n\t\t\toCONEXION_NODO_IDIOMA.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst conexionIdiomaIdioma = item.value;\r\n\t\t\t\tconexionIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tconexionIdiomaIdioma.TIPOLOGIA_CONTENIDO = CONEXION_NODO;\r\n\t\t\t\tconexionIdiomaIdioma.IdTipologiaContenido = CONEXION_NODO.Id;\r\n\t\t\t\tconexionIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tCONEXION_NODO.IDIOMAS.push(conexionIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn CONEXION_NODO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\t/* PESO_CONEXION */\r\n\tgetPESO_CONEXION(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('PESO_CONEXION', where, expands, columns);\r\n\t}\r\n\r\n\tnewPESO_CONEXION(): any{\r\n\t\treturn\t this.newEntity('PESO_CONEXION');\r\n\t}\r\n\r\n\t/* PERFIL_MOVILIDAD_CIUDADANO */\r\n\tgetPERFIL_MOVILIDAD_CIUDADANO(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('PERFIL_MOVILIDAD_CIUDADANO', where, expands, columns);\r\n\t}\r\n\r\n\tnewPERFIL_MOVILIDAD_CIUDADANO(): any{\r\n\t\tconst that = this;\r\n\t\tlet perfilMovilidad;\r\n\t\treturn this.newEntity('PERFIL_MOVILIDAD_CIUDADANO')\r\n\t\t.then(function(PERFIL_MOVILIDAD_CIUDADANO){\r\n\t\t\tperfilMovilidad = PERFIL_MOVILIDAD_CIUDADANO;\r\n\t\t\treturn that.newPERFIL_MOVILIDAD_CIUDADANO_IDIOMA(perfilMovilidad);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tperfilMovilidad.IDIOMAS = IDIOMAS;\r\n\t\t\treturn perfilMovilidad;\r\n\t\t});\r\n\t}\r\n\r\n\tnewPERFIL_MOVILIDAD_CIUDADANO_IDIOMA(PERFIL_MOVILIDAD_CIUDADANO){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('PERFIL_MOVILIDAD_CIUDADANO_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oPERFIL_MOVILIDAD_CIUDADANO_IDIOMA){\r\n\t\t\toPERFIL_MOVILIDAD_CIUDADANO_IDIOMA.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst perfilMovilidadIdiomaIdioma = item.value;\r\n\t\t\t\tperfilMovilidadIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\tperfilMovilidadIdiomaIdioma.PERFIL_MOVILIDAD_CIUDADANO = PERFIL_MOVILIDAD_CIUDADANO;\r\n\t\t\t\tperfilMovilidadIdiomaIdioma.IdPerfilMovilidad = PERFIL_MOVILIDAD_CIUDADANO.Id;\r\n\t\t\t\tperfilMovilidadIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tPERFIL_MOVILIDAD_CIUDADANO.IDIOMAS.push(perfilMovilidadIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn PERFIL_MOVILIDAD_CIUDADANO.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* CONTENIDO_WEB_EXTERNA */\r\n\tgetCONTENIDO_WEB_EXTERNA(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('CONTENIDO_WEB_EXTERNA', where, expands, columns);\r\n\t}\r\n\r\n\tnewCONTENIDO_WEB_EXTERNA(): any{\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet newContenidoWebExterna;\r\n\t\treturn this.newEntity('CONTENIDO_WEB_EXTERNA')\r\n\t\t.then(function(PERFIL_MOVILIDAD_CIUDADANO){\r\n\t\t\tnewContenidoWebExterna = PERFIL_MOVILIDAD_CIUDADANO;\r\n\t\t\treturn that.newCONTENIDO_WEB_EXTERNA_IDIOMA(newContenidoWebExterna);\r\n\t\t})\r\n\t\t.then(function(IDIOMAS){\r\n\t\t\tnewContenidoWebExterna.IDIOMAS = IDIOMAS;\r\n\t\t\treturn newContenidoWebExterna;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tnewCONTENIDO_WEB_EXTERNA_IDIOMA(CONTENIDO_WEB_EXTERNA){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idiomas;\r\n\t\treturn this.getIDIOMA()\r\n\t\t.then(function(oIdiomas){\r\n\t\t\tidiomas = oIdiomas;\r\n\t\t\tidiomas.forEach(idioma => {\r\n\t\t\t\tpromises.push(that.newEntity('CONTENIDO_WEB_EXTERNA_IDIOMA'));\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function(oCONTENIDO_WEB_EXTERNA_IDIOMA){\r\n\t\t\toCONTENIDO_WEB_EXTERNA_IDIOMA.forEach(item => {\r\n\t\t\t\tconst idioma = idiomas.pop();\r\n\t\t\t\tconst webexternaIdiomaIdioma = item.value;\r\n\t\t\t\twebexternaIdiomaIdioma.IDIOMA = idioma;\r\n\t\t\t\twebexternaIdiomaIdioma.CONTENIDO_WEB_EXTERNA = CONTENIDO_WEB_EXTERNA;\r\n\t\t\t\twebexternaIdiomaIdioma.IdContenido = CONTENIDO_WEB_EXTERNA.Id;\r\n\t\t\t\twebexternaIdiomaIdioma.IdIdioma = idioma.Id;\r\n\t\t\t\tCONTENIDO_WEB_EXTERNA.IDIOMAS.push(webexternaIdiomaIdioma);\r\n\t\t\t});\r\n\t\t\treturn CONTENIDO_WEB_EXTERNA.IDIOMAS;\r\n\t\t});\r\n\t}\r\n\r\n\t/* IDIOMA */\r\n\tgetIDIOMA(where?, expands?, columns?): any{\r\n\t\t//const predicado = new Predicate('IDIOMA.ENTIDAD.Visible', '==', true);\r\n\t\tconst aux = this.getLocalIDIOMA();\r\n\t\tif (aux && aux.length > 0) {\r\n\t\t\treturn Promise.resolve(aux);\r\n\t\t}\r\n\r\n\t\treturn this.getByCriteria('IDIOMA', where, expands, columns)\r\n\t\t.then((idiomas) => {\r\n\t\t\tthis.setLocalIDIOMA(idiomas);\r\n\t\t\tconsole.log('IDIOMAS CARGADOS');\r\n\t\t\treturn Promise.resolve(idiomas);\r\n\t\t});\r\n\t}\r\n\r\n\t/* TECNOLOGIA */\r\n\tgetTECNOLOGIA(Codigo: string): any{\r\n\t\tconst predicado = new Predicate('Codigo', '==', Codigo);\r\n\t\treturn this.getByCriteria('TECNOLOGIA', predicado, undefined, undefined);\r\n\t}\r\n\t//TODO: Probar a recuperar de local Storage para ahorrar peticiones\r\n\r\n\tpublic getLocalIDIOMA() {\r\n\t\tif (this.IDIOMAS) {\r\n\t\t\tconsole.log('IDIOMAS CARGADOS de MEMORIA');\r\n\t\t}\r\n\t\treturn this.IDIOMAS;\r\n\t}\r\n\r\n\tpublic setLocalIDIOMA(idiomas) {\r\n\t\tthis.IDIOMAS = idiomas;\r\n\t}\r\n\t// getFUNCIONALIDADESbyUSUARIO\r\n\tpublic getLocalFUNCIONALIDADES(idUsuario) {\r\n\t\tif ( this.FUNCIONALIDADES[idUsuario]) {\r\n\t\t\tconsole.log('PERMISOS CARGADOS de MEMORIA');\r\n\t\t}\r\n\t\treturn this.FUNCIONALIDADES[idUsuario];\r\n\t}\r\n\r\n\tpublic setLocalFUNCIONALIDADES(func, idUsuario) {\r\n\t\tthis.FUNCIONALIDADES[idUsuario] = func;\r\n\t}\r\n\r\n\t/* MODELO_3D */\r\n\tgetMODELO_3D(where?, expands?, columns?): any{\r\n\t\treturn this.getByCriteria('MODELO_3D', where, expands, columns);\r\n\t}\r\n\r\n\tnewMODELO_3D(): any{\r\n\t\treturn\t this.newEntity('MODELO_3D');\r\n\t}\r\n\r\n\t//#endregion\r\n\r\n\t//#region **** ESPECIALES ****\r\n\r\n\t/* CONTENIDO */\r\n\tgetCONTENIDObyIdEspacio(idEspacio, includes?, columns?){\r\n\t\tconst that = this;\r\n\r\n\t\tconst predicado = new Predicate('ESPACIOS.Id', '==', idEspacio)\r\n\t\t\t\t\t\t\t\t.or('NODODS.SECCION.ALA.NIVEL.ESPACIO.Id', '==', idEspacio)\r\n\t\t\t\t\t\t\t\t.or('SECCIONES.ALA.NIVEL.ESPACIO.Id', '==', idEspacio)\r\n\t\t\t\t\t\t\t\t.or('NIVELES.ESPACIO.Id', '==', idEspacio)\r\n\t\t\t\t\t\t\t\t.or('ALAS.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\r\n\t\treturn this.getCONTENIDO(predicado, includes, columns)\r\n\t\t.then(function(contenidos){\r\n\t\t\treturn contenidos;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic getContenidoById(Id, expands?, columns?): any{\r\n\t\treturn this.getById('CONTENIDO', Id, expands, columns);\r\n\t}\r\n\r\n/*\r\n\tpublic getContenidosByTipologiaId(ids, expands?, columns?){\r\n\r\n\t\tlet where = new Predicate('TIPOLOGIA_CONTENIDO.Id', '==', ids[0]);\r\n\t\tids.forEach(id => {\r\n\t\t\twhere = where.or('TIPOLOGIA_CONTENIDO.Id', '==', id);\r\n\t\t});\r\n\r\n\t\tconst includes = 'TIPOLOGIA_CONTENIDO';\r\n\r\n\t\treturn this.getCONTENIDO(where, includes);\r\n\t\t// return this.getByCriteria('CONTENIDO', where, expands, columns);\r\n\t}\r\n*/\r\n\tgetContenidosByTipologiaId(ids, expands?, columns?){\r\n\t\tlet where = new Predicate('IdTipologia', '==', ids[0]);\r\n\t\tids.forEach(id => {\r\n\t\t\twhere = where.or('IdTipologia', '==', id);\r\n\t\t});\r\n\r\n\t\treturn this.getByCriteria('CONTENIDO', where, expands, columns);\r\n\t}\r\n\tgetTipologiasEspacio(idEspacio){\r\n\t\tconst that = this;\r\n\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\treturn this.getTIPOLOGIA_CONTENIDO(predicado, 'IDIOMAS.IDIOMA')\r\n\t\t.then(function (entidades) {\r\n let tipologiasContenido = [];\r\n\t\t\ttipologiasContenido = entidades;\r\n tipologiasContenido.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : ((b.Nombre > a.Nombre) ? -1 : 0));\r\n\r\n return tipologiasContenido;\r\n\t\t});\r\n\t}\r\n\r\n\tgetTipologiasLocalizablesEspacio(idEspacio){\r\n\t\tconst that = this;\r\n\r\n\t\tconst predicado1 = new Predicate('IdEspacio', '==', idEspacio)\r\n\t\t.and('TipoUbicacion', '==', Constantes.TIPO_LOCALIZACION_ACTIVOS.DIRECTA)\r\n\r\n\t\tconst predicado2 = new Predicate('IdEspacio', '==', idEspacio)\r\n\t\t.and('TipoUbicacion', '==', Constantes.TIPO_LOCALIZACION_ACTIVOS.INDIRECTA)\r\n\r\n\t\tconst predicado = predicado1.or(predicado2)\r\n\r\n\t\treturn this.getTIPOLOGIA_CONTENIDO(predicado, 'IDIOMAS.IDIOMA')\r\n\t\t.then(function (entidades) {\r\n let tipologiasContenido = [];\r\n\t\t\ttipologiasContenido = entidades;\r\n tipologiasContenido.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : ((b.Nombre > a.Nombre) ? -1 : 0));\r\n\r\n return tipologiasContenido;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ESPACIO */\r\n\tpublic getEspacioById(idEspacio, includes?, columns?){\r\n\t\tconst that = this;\r\n\t\tconst p1 = new Predicate('Id', '==', idEspacio);\r\n\r\n\t\tconst query = EntityQuery.from('ESPACIO').select(columns).where(p1).using(this.masterManager).expand(includes);\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\r\n\t\t\tif (data.results.length > 0) {\r\n\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tresolve(data.results[0]);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tgetEspacioConNoticiasById(idEspacio, columns?){\r\n\t\tconst that = this;\r\n\t\tconst predicado = new Predicate('Id', '==', idEspacio);\r\n\r\n\t\t// const predicado = new Predicate('Id', '==', idEspacio);\r\n\t\t// predicado.and('NOTICIAS.IDIOMA.Default', '==', true);\r\n\r\n\t\tconst query = EntityQuery.from('ESPACIO').select(columns).where(predicado).using(this.masterManager).expand('NOTICIAS.FOTOS');\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t//that.authService.relogin();\r\n\r\n\t\t\tif (data.results.length > 0) {\r\n\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tresolve(data.results[0]);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\t/* RUTA_SUGERIDA */\r\n\tpublic getRutaById(idRuta, includes?, columns?){\r\n\t\tconst that = this;\r\n\t\tconst p1 = new Predicate('Id', '==', idRuta);\r\n\r\n\t\tconst query = EntityQuery.from('RUTA_SUGERIDA').select(columns).where(p1).using(this.masterManager).expand(includes);\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t//that.authService.relogin();\r\n\r\n\t\t\tif (data.results.length > 0) {\r\n\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tresolve(data.results[0]);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tconsole.log('getRutaById: ' + err);\r\n\t\t});\r\n\t}\r\n\r\n\t/* ENTIDAD */\r\n\tpublic getEntidadById(idEntidad, includes?, columns?): any{\r\n\t\tconst that = this;\r\n\t\tconst p1 = new Predicate('Id', '==', idEntidad);\r\n\r\n\t\tconst query = EntityQuery.from('ENTIDAD').select(columns).where(p1).using(this.masterManager).expand(includes);\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t//that.authService.relogin();\r\n\t\t\tif (data.results.length > 0) {\r\n\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tresolve(data.results[0]);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\treturn e;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/* CONTENIDO_WEB_EXTERNA */\r\n\tpublic getCONTENIDO_WEB_EXTERNAbyCONTENIDO(Id, expands?, columns?){\r\n\t\tconst that = this;\r\n\t\tconst query = EntityQuery.from('CONTENIDO_WEB_EXTERNA').select(columns).where('IdContenido', '==', Id).expand(expands)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\r\n\t\t\tconst Entidades = data.results;\r\n\t\t\treturn Entidades;\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.getById('CONTENIDO_WEB_EXTERNA', Id, expands);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* CONEXION_NODOS */\r\n\tgetTramosCortados(IdEspacio, expands?, columns?){\r\n\t\treturn \"*** Deprecated ***\"\r\n\t\t/*\r\n\t\tconst that = this;\r\n\t\tIdEspacio = this.authService.getIdEspacio();\r\n\t\tlet predicado = new Predicate('CortadoTemporalmente', '==', true);\r\n\t\tpredicado = predicado.and('NodoOrigen.SECCION.ALA.NIVEL.IdEspacio', '==', IdEspacio);\r\n\r\n\t\tconst query = EntityQuery.from('CONEXION_NODOS').select(columns).where(predicado).expand(expands)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\r\n\r\n\t\t\tconst Entidades = data.results;\r\n\t\t\treturn Entidades;\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t\treturn that.getById('CONTENIDO_WEB_EXTERNA', IdEspacio, expands);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t*/\r\n\t}\r\n\r\n\t/* FUNCIONALIDADES Y PERFILES */\r\n\tpublic getFUNCIONALIDADESbyUSUARIO(idUsuario: string, columns?){\r\n\r\n\t\tconst aux = this.getLocalFUNCIONALIDADES(idUsuario);\r\n\t\tif (aux) {\r\n\t\t\treturn Promise.resolve(aux);\r\n\t\t}\r\n\r\n\r\n\t\tconst expand = 'PERFIL.FUNCIONALIDADES.FUNCIONALIDAD, PERFIL.PERMISOS';\r\n\t\tconst that = this;\r\n\t\tconst IdEspacio = this.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('Id', '==', idUsuario);\r\n\r\n\t\tconst query = EntityQuery.from('USUARIO').select(columns).where(predicado).expand(expand)\r\n\t\t.using(this.masterManager);\r\n\r\n\t\treturn this.masterManager.executeQuery(query)\r\n\t\t.then( function(data) {\r\n\t\t\t// Renovamos el Token\r\n\t\t\t// that.authService.relogin();\r\n\r\n\t\t\tconst Entidades: any = data.results[0];\r\n\t\t\tconst funcionalidades = Entidades.PERFIL.FUNCIONALIDADES;\r\n\t\t\tthat.setLocalFUNCIONALIDADES(funcionalidades, idUsuario)\r\n\t\t\tconsole.log('PERMISOS CARGADOS');\r\n\t\t\treturn funcionalidades;\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tif (codigo === 401){\r\n\t\t\t\treturn that.authService.relogin()\r\n\t\t\t\t.then(function(token){\r\n\t\t\t\t\tthat.authService.setHeaderToken();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic getUSUARIObyIdEspacio(idEspacio: string, includes?, where?: Predicate){\r\n\t\tconst that = this;\r\n\r\n\t\tconst newWhere = new Predicate(where).and(new Predicate ('ESPACIOS', 'any', 'IdEspacio', '==', idEspacio));\r\n\r\n\t\treturn this.getUSUARIO(newWhere, includes)\r\n\t\t.then(function(usuarios){\r\n\t\t\tconst usuariosEspacio = [];\r\n\t\t\tusuarios.forEach(usu => {\r\n\t\t\t\tusu.ESPACIOS.forEach(esp => {\r\n\t\t\t\t\tif (esp.IdEspacio === idEspacio) {\r\n\t\t\t\t\t\tusuariosEspacio.push(usu);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn usuariosEspacio;\r\n\t\t});\r\n\t}\r\n\r\n\t/* REPARACION XXXXXX_IDIOMA */\r\n\tpublic repareESPACIO_IDIOMA(espacio: any ){\r\n\r\n\t}\r\n\t//#endregion\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/entity-manager-provider/entity-manager-provider.ts","import { Idioma } from './../../domain/Idioma';\r\nimport { Injectable } from '@angular/core';\r\nimport { EspacioIdiomaFormulario } from '../../domain/EspacioFormulario';\r\nimport { NivelIdiomaFormulario } from '../../domain/NivelFormulario';\r\nimport { AlaIdiomaFormulario } from '../../domain/AlaFormulario';\r\nimport { NoticiaIdiomaFormulario } from '../../domain/Noticia';\r\nimport { RutaSugeridaIdiomaFormulario } from '../../domain/RutaSugerida';\r\nimport { PerfilIdiomaFormulario } from '../../domain/PerfilFormulario';\r\nimport { TipologiaContenidoIdiomaFormulario } from '../../domain/TipologiaContenidoFormulario';\r\nimport { TipologiaSeccionIdiomaFormulario } from '../../domain/TipologiaSeccionFormulario';\r\nimport { SeccionIdiomaFormulario } from '../../domain/SeccionFormulario';\r\nimport { NodoIdiomaFormulario } from '../../domain/NodoFormulario';\r\nimport { ConexionNodoIdiomaFormulario } from '../../domain/ConexionFormulario';\r\nimport { ContenidoIdiomaFormulario, Contenido } from '../../domain/Contenido';\r\nimport { ContenidoWebExternaIdiomaFormulario } from '../../domain/WebExterna';\r\nimport { TranslateService } from 'ng2-translate';\r\n\r\n\r\n@Injectable()\r\nexport class IdiomaService {\r\n\r\n\tconstructor(\r\n\t\tprivate translate: TranslateService,\r\n\t){\r\n\r\n\t}\r\n\r\n\tpublic getIdiomaDefecto(idiomas: Idioma[]): Idioma{\r\n\t\tconst idiomaDefecto = idiomas.filter( x => x.ENTIDAD.Default)[0];\r\n\t\treturn idiomaDefecto;\r\n\t}\r\n\r\n\t/* ESPACIO */\r\n\tpublic newMapEspacioIdiomas(idiomas){\r\n\r\n\t\tconst espacioIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst espacioIdioma = new EspacioIdiomaFormulario();\r\n\t\t\tespacioIdiomas.set(element.value, espacioIdioma);\r\n\t\t});\r\n\r\n\t\treturn espacioIdiomas;\r\n\t}\r\n\r\n\tpublic getMapEspacioIdiomas(ESPACIO_IDIOMAs: any[]){\r\n\r\n\t\tconst espacioIdiomas = new Map();\r\n\r\n\t\tESPACIO_IDIOMAs.forEach(ESPACIO_IDIOMA => {\r\n\t\t\tconst espacioIdioma = new EspacioIdiomaFormulario(ESPACIO_IDIOMA);\r\n\t\t\tespacioIdiomas.set(espacioIdioma.Codigo, espacioIdioma);\r\n\t\t});\r\n\r\n\t\treturn espacioIdiomas;\r\n\t}\r\n\r\n\t/* NIVEL */\r\n\tpublic newMapNivelIdiomas(idiomas){\r\n\r\n\t\tconst nivelIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst nivelIdioma = new NivelIdiomaFormulario();\r\n\t\t\tnivelIdiomas.set(element.value, nivelIdioma);\r\n\t\t});\r\n\r\n\t\treturn nivelIdiomas;\r\n\t}\r\n\r\n\tpublic getMapNivelIdiomas(NIVEL_IDIOMAs: any[]){\r\n\r\n\t\tconst nivelIdiomas = new Map();\r\n\r\n\t\tNIVEL_IDIOMAs.forEach(NIVEL_IDIOMA => {\r\n\t\t\tconst nivelIdioma = new NivelIdiomaFormulario(NIVEL_IDIOMA);\r\n\t\t\tnivelIdiomas.set(nivelIdioma.Codigo, nivelIdioma);\r\n\t\t});\r\n\r\n\t\treturn nivelIdiomas;\r\n\t}\r\n\r\n\r\n\t/* ALA */\r\n\tpublic newMapAlaIdiomas(idiomas){\r\n\r\n\t\tconst alaIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst alaIdioma = new AlaIdiomaFormulario();\r\n\t\t\talaIdiomas.set(element.value, alaIdioma);\r\n\t\t});\r\n\r\n\t\treturn alaIdiomas;\r\n\t}\r\n\r\n\tpublic getMapAlaIdiomas(ALA_IDIOMAs: any[]){\r\n\r\n\t\tconst alaIdiomas = new Map();\r\n\r\n\t\tALA_IDIOMAs.forEach(ALA_IDIOMA => {\r\n\t\t\tconst alaIdioma = new AlaIdiomaFormulario(ALA_IDIOMA);\r\n\t\t\talaIdiomas.set(alaIdioma.Codigo, alaIdioma);\r\n\t\t});\r\n\r\n\t\treturn alaIdiomas;\r\n\t}\r\n\r\n\t/* NOTICIA */\r\n\tpublic newMapNoticiaIdiomas(idiomas){\r\n\r\n\t\tconst noticiaIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst noticiaIdioma = new NoticiaIdiomaFormulario();\r\n\t\t\tnoticiaIdiomas.set(element.value, noticiaIdioma);\r\n\t\t});\r\n\r\n\t\treturn noticiaIdiomas;\r\n\t}\r\n\r\n\tpublic getMapNoticiaIdiomas(NOTICIA_IDIOMAs: any[]){\r\n\r\n\t\tconst noticiaIdiomas = new Map();\r\n\r\n\t\tNOTICIA_IDIOMAs.forEach(NOTICIA_IDIOMA => {\r\n\t\t\tconst noticiaIdioma = new NoticiaIdiomaFormulario(NOTICIA_IDIOMA);\r\n\t\t\tnoticiaIdiomas.set(noticiaIdioma.Codigo, noticiaIdioma);\r\n\t\t});\r\n\r\n\t\treturn noticiaIdiomas;\r\n\t}\r\n\r\n\t/* RUTA_SUGERIDA */\r\n\tpublic newMapRutaSugeridaIdiomas(idiomas){\r\n\r\n\t\tconst noticiaIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst noticiaIdioma = new RutaSugeridaIdiomaFormulario();\r\n\t\t\tnoticiaIdiomas.set(element.value, noticiaIdioma);\r\n\t\t});\r\n\r\n\t\treturn noticiaIdiomas;\r\n\t}\r\n\r\n\tpublic getMapRutaSugeridaIdiomas(RUTA_SUGERIDA_IDIOMAs: any[]){\r\n\r\n\t\tconst noticiaIdiomas = new Map();\r\n\r\n\t\tRUTA_SUGERIDA_IDIOMAs.forEach(RUTA_SUGERIDA_IDIOMA => {\r\n\t\t\tconst noticiaIdioma = new RutaSugeridaIdiomaFormulario(RUTA_SUGERIDA_IDIOMA);\r\n\t\t\tnoticiaIdiomas.set(noticiaIdioma.Codigo, noticiaIdioma);\r\n\t\t});\r\n\r\n\t\treturn noticiaIdiomas;\r\n\t}\r\n\r\n\t\t/* PERFIL_MOVILIDAD */\r\n\r\n\t\tpublic newMapPerfilmovilidadIdiomas(idiomas){\r\n\r\n\t\t\tconst perfilIdiomas = new Map();\r\n\r\n\t\t\tidiomas.forEach(element => {\r\n\t\t\t\tconst perfilIdioma = new PerfilIdiomaFormulario();\r\n\t\t\t\tperfilIdiomas.set(element.value, perfilIdioma);\r\n\t\t\t});\r\n\r\n\t\t\treturn perfilIdiomas;\r\n\t\t}\r\n\r\n\t\tpublic getMapPerfilmovilidadIdiomas(PERFIL_MOVILIDAD_IDIOMAs: any[]){\r\n\r\n\t\t\tconst perfilIdiomas = new Map();\r\n\r\n\t\t\tPERFIL_MOVILIDAD_IDIOMAs.forEach(PERFIL_MOVILIDAD_IDIOMA => {\r\n\t\t\t\tconst rutaSugeridaIdioma = new PerfilIdiomaFormulario(PERFIL_MOVILIDAD_IDIOMA);\r\n\t\t\t\tperfilIdiomas.set(rutaSugeridaIdioma.Codigo, rutaSugeridaIdioma);\r\n\t\t\t});\r\n\r\n\t\t\treturn perfilIdiomas;\r\n\t\t}\r\n\r\n\r\n\t/* TIPOLOGIA_CONTENIDO */\r\n\r\n\tpublic newMapTipologiaContenidoIdiomas(idiomas){\r\n\r\n\t\tconst tipologiaContenidoIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst tipologiaContenidoIdioma = new TipologiaContenidoIdiomaFormulario();\r\n\t\t\ttipologiaContenidoIdiomas.set(element.value, tipologiaContenidoIdioma);\r\n\t\t});\r\n\r\n\t\treturn tipologiaContenidoIdiomas;\r\n\t}\r\n\r\n\tpublic getMapTipologiaContenidoIdiomas(TIPOLOGIA_CONTENIDO_IDIOMAs: any[]){\r\n\r\n\t\tconst tipologiaContenidoIdiomas = new Map();\r\n\r\n\t\tTIPOLOGIA_CONTENIDO_IDIOMAs.forEach(TIPOLOGIA_CONTENIDO_IDIOMA => {\r\n\t\t\tconst tipologiaContenidoIdioma = new TipologiaContenidoIdiomaFormulario(TIPOLOGIA_CONTENIDO_IDIOMA);\r\n\t\t\ttipologiaContenidoIdiomas.set(tipologiaContenidoIdioma.Codigo, tipologiaContenidoIdioma);\r\n\t\t});\r\n\r\n\t\treturn tipologiaContenidoIdiomas;\r\n\t}\r\n\r\n\tpublic traducirTipologiasContenidoIdiomaNavegador(tipologias): any[]\r\n\t{\r\n\t\tconst codigoIdioma = this.translate.currentLang;\r\n\t\tconst tipologiasTraducidas = this.traducirTipologiasContenido(tipologias, {value: codigoIdioma});\r\n\t\treturn tipologiasTraducidas;\r\n\t}\r\n\r\n\tpublic traducirTipologiasContenido(tipologias, idioma): any[]{\r\n\t\tconst aux = [];\r\n\t\ttipologias.forEach(t => {\r\n\t\t\tconst tipologia = this.traducirTipologiaContenido(t, idioma);\r\n\t\t\tif (tipologia) {\r\n\t\t\t\taux.push(tipologia);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn aux;\r\n\t}\r\n\r\n\tpublic traducirTipologiaContenido(tipologia: any, idioma: any): any {\r\n\t\tif (tipologia.IDIOMAS) {\r\n\t\t\ttipologia.Idiomas = this.getMapTipologiaContenidoIdiomas(tipologia.IDIOMAS);\r\n\t\t\tconst contenidoIdioma = tipologia.Idiomas.get(idioma.value);\r\n\t\t\ttipologia.Nombre = contenidoIdioma.Nombre;\r\n\t\t}\r\n\r\n\t\treturn tipologia.Nombre !== '' ? tipologia : undefined;\r\n\t}\r\n\r\n\t/* TIPOLOGIA_SECCION */\r\n\r\n\tpublic newMapTipologiaSeccionIdiomas(idiomas){\r\n\r\n\t\tconst tipologiaSeccionIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst tipologiaContenidoIdioma = new TipologiaSeccionIdiomaFormulario();\r\n\t\t\ttipologiaSeccionIdiomas.set(element.value, tipologiaContenidoIdioma);\r\n\t\t});\r\n\r\n\t\treturn tipologiaSeccionIdiomas;\r\n\t}\r\n\r\n\tpublic getMapTipologiaSeccionIdiomas(TIPOLOGIA_SECCION_IDIOMAs: any[]){\r\n\r\n\t\tconst tipologiaSeccionIdiomas = new Map();\r\n\r\n\t\tTIPOLOGIA_SECCION_IDIOMAs.forEach(TIPOLOGIA_SECCION_IDIOMA => {\r\n\t\t\tconst tipologiaSeccionIdioma = new TipologiaSeccionIdiomaFormulario(TIPOLOGIA_SECCION_IDIOMA);\r\n\t\t\ttipologiaSeccionIdiomas.set(tipologiaSeccionIdioma.Codigo, tipologiaSeccionIdioma);\r\n\t\t});\r\n\r\n\t\treturn tipologiaSeccionIdiomas;\r\n\t}\r\n\r\n\tpublic traducirTipologiasSeccionIdiomaNavegador(tipologiasSeccion): any[]\r\n\t{\r\n\t\tconst codigoIdioma = this.translate.currentLang;\r\n\t\tconst tipologiasSeccionTraducidas = this.traducirTipologiasSeccion(tipologiasSeccion, {value: codigoIdioma});\r\n\t\treturn tipologiasSeccionTraducidas;\r\n\t}\r\n\r\n\tpublic traducirTipologiasSeccion(tipologiasSeccion, idioma): any[]{\r\n\t\tconst aux = [];\r\n\t\ttipologiasSeccion.forEach(t => {\r\n\t\t\tconst tipologiaSeccion = this.traducirTipologiaSeccion(t, idioma);\r\n\t\t\tif (tipologiaSeccion) {\r\n\t\t\t\taux.push(tipologiaSeccion);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn aux;\r\n\t}\r\n\r\n\tpublic traducirTipologiaSeccion(tipologiaSeccion: any, idioma: any): any {\r\n\t\tif (tipologiaSeccion.IDIOMAS) {\r\n\t\t\ttipologiaSeccion.Idiomas = this.getMapTipologiaSeccionIdiomas(tipologiaSeccion.IDIOMAS);\r\n\t\t\tconst contenidoIdioma = tipologiaSeccion.Idiomas.get(idioma.value);\r\n\t\t\ttipologiaSeccion.Nombre = contenidoIdioma.Nombre;\r\n\t\t}\r\n\r\n\t\treturn tipologiaSeccion.Nombre !== '' ? tipologiaSeccion : undefined;\r\n\t}\r\n\r\n\r\n\t/* SECCION */\r\n\r\n\tpublic newMapSeccionIdiomas(idiomas){\r\n\r\n\t\tconst seccionIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst seccionIdioma = new SeccionIdiomaFormulario();\r\n\t\t\tseccionIdiomas.set(element.value, seccionIdioma);\r\n\t\t});\r\n\r\n\t\treturn seccionIdiomas;\r\n\t}\r\n\r\n\tpublic getMapSeccionIdiomas(SECCION_IDIOMAs: any[]){\r\n\r\n\t\tconst seccionIdiomas = new Map();\r\n\r\n\t\tSECCION_IDIOMAs.forEach(SECCION_IDIOMA => {\r\n\t\t\tconst seccionIdioma = new SeccionIdiomaFormulario(SECCION_IDIOMA);\r\n\t\t\tseccionIdiomas.set(seccionIdioma.Codigo, seccionIdioma);\r\n\t\t});\r\n\r\n\t\treturn seccionIdiomas;\r\n\t}\r\n\t/* NODO */\r\n\r\n\tpublic newMapNodoIdiomas(idiomas){\r\n\r\n\t\tconst nodoIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst nodoIdioma = new NodoIdiomaFormulario();\r\n\t\t\tnodoIdiomas.set(element.value, nodoIdioma);\r\n\t\t});\r\n\r\n\t\treturn nodoIdiomas;\r\n\t}\r\n\r\n\tpublic getMapNodoIdiomas(NODO_IDIOMAs: any[]){\r\n\r\n\t\tconst nodoIdiomas = new Map();\r\n\r\n\t\tNODO_IDIOMAs.forEach(NODO_IDIOMA => {\r\n\t\t\tconst nodoIdioma = new NodoIdiomaFormulario(NODO_IDIOMA);\r\n\t\t\tnodoIdiomas.set(nodoIdioma.Codigo, nodoIdioma);\r\n\t\t});\r\n\r\n\t\treturn nodoIdiomas;\r\n\t}\r\n\r\n\r\n\tpublic newMapConexionNodoIdiomas(idiomas){\r\n\r\n\t\tconst conexionNodoIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst conexionNodoIdioma = new ConexionNodoIdiomaFormulario();\r\n\t\t\tconexionNodoIdiomas.set(element.value, conexionNodoIdioma);\r\n\t\t});\r\n\r\n\t\treturn conexionNodoIdiomas;\r\n\t}\r\n\r\n\tpublic getMapConexionNodoIdiomas(CONEXION_NODOS_IDIOMAs: any[]){\r\n\r\n\t\tconst conexionNodoIdiomas = new Map();\r\n\r\n\t\tCONEXION_NODOS_IDIOMAs.forEach(CONEXION_NODOS_IDIOMA => {\r\n\t\t\tconst conexionNodoIdioma = new ConexionNodoIdiomaFormulario(CONEXION_NODOS_IDIOMA);\r\n\t\t\tconexionNodoIdiomas.set(conexionNodoIdioma.Codigo, conexionNodoIdioma);\r\n\t\t});\r\n\r\n\t\treturn conexionNodoIdiomas;\r\n\t}\r\n\r\n\tpublic newMapContenidoIdiomas(idiomas){\r\n\r\n\t\tconst contenidoIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst contenidoIdioma = new ContenidoIdiomaFormulario();\r\n\t\t\tcontenidoIdiomas.set(element.value, contenidoIdioma);\r\n\t\t});\r\n\r\n\t\treturn contenidoIdiomas;\r\n\t}\r\n\r\n\tpublic getMapContenidoIdiomas(CONTENIDO_IDIOMAs: any[]){\r\n\r\n\t\tconst contenidoIdiomas = new Map();\r\n\r\n\t\tCONTENIDO_IDIOMAs.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\tconst contenidoIdioma = new ContenidoIdiomaFormulario(CONTENIDO_IDIOMA);\r\n\t\t\tcontenidoIdiomas.set(contenidoIdioma.Codigo, contenidoIdioma);\r\n\t\t});\r\n\r\n\t\treturn contenidoIdiomas;\r\n\t}\r\n\r\n\t/* CONTENIDO_WEB_EXTERNA */\r\n\tpublic newMapContenidoWebExternaIdiomas(idiomas){\r\n\r\n\t\tconst contenidoWebExternaIdiomas = new Map();\r\n\r\n\t\tidiomas.forEach(element => {\r\n\t\t\tconst contenidoWebExternaIdioma = new ContenidoWebExternaIdiomaFormulario();\r\n\t\t\tcontenidoWebExternaIdiomas.set(element.value, contenidoWebExternaIdioma);\r\n\t\t});\r\n\r\n\t\treturn contenidoWebExternaIdiomas;\r\n\t}\r\n\r\n\tpublic getMapContenidoWebExternaIdiomas(CONTENIDO_WEB_EXTERNA_IDIOMAs: any[]){\r\n\r\n\t\tconst contenidoWebExternaIdiomas = new Map();\r\n\r\n\t\tCONTENIDO_WEB_EXTERNA_IDIOMAs.forEach(CONTENIDO_WEB_EXTERNA_IDIOMA => {\r\n\t\t\tconst contenidoWebExternaIdioma = new ContenidoWebExternaIdiomaFormulario(CONTENIDO_WEB_EXTERNA_IDIOMA);\r\n\t\t\tcontenidoWebExternaIdiomas.set(contenidoWebExternaIdioma.Codigo, contenidoWebExternaIdioma);\r\n\t\t});\r\n\r\n\t\treturn contenidoWebExternaIdiomas;\r\n\t}\r\n\r\n\t/* FECHAS */\r\n\tpublic timastampToDate(timestamp){\r\n\t\t// unixtimestamp = 201810111320290260\r\n\t\t// Months array\r\n\r\n\t\t// Convert timestamp to milliseconds\r\n\t\tconst date = new Date();\r\n\r\n\t\t// Year\r\n\t\tconst year = timestamp.slice(0, 4);\r\n\r\n\t\t// Month\r\n\t\tconst month = timestamp.slice(4, 6) - 1;\r\n\r\n\t\t// Day\r\n\t\tconst day = timestamp.slice(6, 8);\r\n\r\n\t\tdate.setFullYear(year, month, day);\r\n\r\n\t\t// Hours\r\n\t\tconst hours = timestamp.slice(8, 10);\r\n\r\n\t\t// Minutes\r\n\t\tconst minutes = timestamp.slice(10, 12);\r\n\r\n\t\t// Seconds\r\n\t\tconst seconds = timestamp.slice(12, 14);\r\n\r\n\t\tdate.setHours(hours, minutes, seconds);\r\n\r\n\t\treturn date;\r\n\t}\r\n\r\n\tpublic unixtimestampToDate(unixtimestamp){\r\n\r\n\t\t// Convert timestamp to milliseconds\r\n\t\tconst date = new Date(unixtimestamp * 1000);\r\n\r\n\t\treturn date;\r\n\r\n\t}\r\n\r\n\t/* CONTENIDO */\r\n\r\n\tpublic traducirContenidos(contenidos, idioma): Contenido[]{\r\n\t\tcontenidos.forEach(contenido => {\r\n\t\t\tcontenido = this.traducirContenido(contenido, idioma);\r\n\t\t});\r\n\r\n\t\treturn contenidos;\r\n\t}\r\n\r\n\tpublic traducirContenido(contenido: Contenido, idioma: any): any {\r\n\r\n\t\t// Cojemos la traduccion del contenido al idioma seleccionado\r\n\t\tconst contenidoIdioma = contenido.Idiomas.get(idioma.value);\r\n\r\n\t\t// Seteamos los valores de contenidoFormulario con los valores del idioma seleccionado\r\n\t\tcontenido.Titulo = contenidoIdioma.Nombre;\r\n\t\tcontenido.Descripcion = contenidoIdioma.Descripcion;\r\n\t\tcontenido.HtmlDetalle = contenidoIdioma.htmlVisualizableDetalle;\r\n\t\tcontenido.AudioTexto = contenidoIdioma.AudioTexto;\r\n\t\tcontenido.NombreCorto = contenidoIdioma.NombreCorto;\r\n\r\n\t\tconst tipologiaIdioma = contenido.TIPOLOGIA_CONTENIDO.IDIOMAS.find( x => x.IDIOMA.Codigo === idioma.value);\r\n\t\tcontenido.TIPOLOGIA_CONTENIDO.Nombre = tipologiaIdioma.Nombre;\r\n\r\n\t\tcontenido.ElementoAsignado\r\n\t\t.forEach(elemento => {\r\n\r\n\t\t\t// { Nombre: elemento.ALA.Nomobre, Tipo: 'ALA', MostrarEdicion: false, ENTIDAD: elemento}\r\n\t\t\tif (elemento.Tipo === 'ALA') {\r\n\t\t\t\tconst alaIdioma = elemento.ENTIDAD.ALA.IDIOMAS.find( x => x.IDIOMA.Codigo === idioma.value);\r\n\t\t\t\telemento.Nombre = alaIdioma.Nombre;\r\n\t\t\t}\r\n\r\n\t\t\tif (elemento.Tipo === 'ESPACIO') {\r\n\t\t\t\tconst alaIdioma = elemento.ENTIDAD.ESPACIO.IDIOMAS.find( x => x.IDIOMA.Codigo === idioma.value);\r\n\t\t\t\telemento.Nombre = alaIdioma.Nombre;\r\n\t\t\t}\r\n\r\n\t\t\tif (elemento.Tipo === 'SECCION') {\r\n\t\t\t\tif (elemento.ENTIDAD.SECCION.Nombre !== 'Default') {\r\n\t\t\t\t\tconst alaIdioma = elemento.ENTIDAD.SECCION.IDIOMAS.find( x => x.IDIOMA.Codigo === idioma.value);\r\n\t\t\t\t\telemento.Nombre = alaIdioma.Nombre;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\telemento.Nombre = elemento.ENTIDAD.SECCION.nombre;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (elemento.Tipo === 'NIVEL') {\r\n\t\t\t\tconst alaIdioma = elemento.ENTIDAD.NIVEL.IDIOMAS.find( x => x.IDIOMA.Codigo === idioma.value);\r\n\t\t\t\telemento.Nombre = alaIdioma.Nombre;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/idioma/idioma.service.ts","import { Injectable } from '@angular/core';\r\nimport { AuthenticationService } from '../authentication/authentication.service';\r\nimport { ServiciosWebServiceProvider } from '../web-service-service/servicios-web-service';\r\nimport { Informe } from '../../domain/Informe';\r\nimport { Contenido } from '../../domain/Contenido';\r\nimport { EntityManagerProvider } from '../entity-manager-provider/entity-manager-provider';\r\nimport { IdiomaService } from '../idioma/idioma.service';\r\nimport { ServiciosStatsProvider } from '../web-service-service/servicios-stats';\r\nimport { HistoricoLocalizacionContenido } from '../../domain/HistoricoLocalizacionContenido';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { CoincidenciasLocalizacionContenidos } from '../../domain/CoincidenciasLocalizacionContenidos';\r\nimport { TranslateService } from '../../../../node_modules/ng2-translate';\r\nimport { DatePipe } from '../../../../node_modules/@angular/common';\r\nimport { SeccionPlano } from 'interiores-mapa';\r\n\r\n@Injectable()\r\nexport class InformesService {\r\n\r\n constructor(\r\n private authService: AuthenticationService,\r\n private sws: ServiciosWebServiceProvider,\r\n private entityManager: EntityManagerProvider,\r\n private idiomaService: IdiomaService,\r\n private swsStats: ServiciosStatsProvider,\r\n private translate: TranslateService,\r\n ) {\r\n\r\n\r\n }\r\n\r\n /* *** SELECTORES ** */\r\n // Tipologias\r\n obtenerTipologias() {\r\n const that = this;\r\n const entityManager = that.entityManager;\r\n const idEspacio = that.authService.getIdEspacio();\r\n return entityManager.getTipologiasLocalizablesEspacio(idEspacio)\r\n .then(function (entidades) {\r\n let tipologiasContenido = [];\r\n tipologiasContenido = entidades;\r\n tipologiasContenido.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : ((b.Nombre > a.Nombre) ? -1 : 0));\r\n // TODO: Filtrar tipologias, coger solo las que son TipoUbicacion = DIRECTA o INDIRECTA\r\n return tipologiasContenido;\r\n });\r\n }\r\n obtenerSecciones(){\r\n const that = this;\r\n const entityManager = that.entityManager;\r\n const idEspacio = that.authService.getIdEspacio();\r\n return entityManager.getSECCION()\r\n .then(function (secciones) {\r\n let seccioneslist = [];\r\n seccioneslist = secciones;\r\n seccioneslist.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : ((b.Nombre > a.Nombre) ? -1 : 0));\r\n return seccioneslist;\r\n });\r\n }\r\n // Contenidos\r\n obtenerContenidosByTipologiad(idsTipologias, idiomaSeleccionado?): Promise {\r\n const that = this;\r\n let contenidosFiltrados = [];\r\n\r\n return this.entityManager.getContenidosByTipologiaId(idsTipologias)\r\n .then(function (data) {\r\n\t\t\tcontenidosFiltrados = [];\r\n\t\t\tcontenidosFiltrados = [];\r\n if (!data) {\r\n return contenidosFiltrados;\r\n }\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontenidosFiltrados.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontenidosFiltrados.forEach(elemento => {\r\n\t\t\t\tif (elemento.Imagen === undefined) {\r\n\t\t\t\t\telemento.Imagen = that.authService.getFotoBlobPorDefecto();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n // Traducimos Contenidos al idioma seleccionado\r\n if (idiomaSeleccionado !== undefined){\r\n contenidosFiltrados = that.idiomaService.traducirContenidos(contenidosFiltrados, idiomaSeleccionado);\r\n }\r\n\r\n const informes: Informe[] = [];\r\n\t\t\tcontenidosFiltrados.forEach((cont: Contenido) => {\r\n\t\t\t\tconst contenido = new Informe().fromContenido(cont);\r\n\t\t\t\tinformes.push(contenido);\r\n\t\t\t});\r\n\r\n return informes;\r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerLocalizacionTiempoReal');\r\n console.error(error);\r\n\r\n const informes: Contenido[] = [];\r\n return informes;\r\n\t\t});\r\n }\r\n\r\n\r\n\r\n /* *** TIPOS INFORME ** */\r\n\r\n // TIEMPO REAL\r\n // get\r\n\r\n\t/// Deprecated: al final se esta probando a hacer por consulta a breeze obtenerLocalizacionTiempoReal_3\r\n obtenerLocalizacionTiempoReal(idsContenidos, TIEMPO_MOSTRAR, idiomaSeleccionado?, listaSecciones?): Promise{\r\n\t\tconst that = this;\r\n const token = this.authService.getToken();\r\n const idEspacio = that.authService.getIdEspacio();\r\n\r\n let contenidosFiltrados = [];\r\n let includes = '';\r\n\r\n includes = includes + 'IDIOMAS.IDIOMA, ';\r\n includes = includes + 'SECCIONES.SECCION, ';\r\n includes = includes + 'NODODS.NODO.SECCION';\r\n\r\n return this.entityManager.getContenidosById(idsContenidos, includes)\r\n .then(function (data) {\r\n\t\t\tcontenidosFiltrados = [];\r\n if (!data) {\r\n return contenidosFiltrados;\r\n }\r\n\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata = data.sort(function(a, b){\r\n\t\t\t\treturn idsContenidos.indexOf(a.Id) - idsContenidos.indexOf(b.Id);\r\n\t\t\t});\r\n\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontenidosFiltrados.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n // Traducimos Contenidos al idioma seleccionado\r\n if (idiomaSeleccionado !== undefined){\r\n contenidosFiltrados = that.idiomaService.traducirContenidos(contenidosFiltrados, idiomaSeleccionado);\r\n }\r\n return that.swsStats.getLocalizacionTiempoRealContenidos(token, idsContenidos).toPromise();\r\n })\r\n .then(function(localizacionTiempoReal){\r\n contenidosFiltrados.forEach(cont => {\r\n let ultimo = localizacionTiempoReal.lista.find(h => h.Contenido_Id === cont.Id);\r\n if (ultimo && ultimo.Actual) {\r\n const today = new Date();\r\n const FechaUbicacionaux = new Date(ultimo.Actual.FechaUbicacion);\r\n const FechaUbicacion = new Date(Date.UTC(FechaUbicacionaux.getFullYear() , FechaUbicacionaux.getMonth() , FechaUbicacionaux.getDate() , FechaUbicacionaux.getHours() , FechaUbicacionaux.getMinutes() , FechaUbicacionaux.getSeconds()));\r\n\r\n const diffMs_FechaUbicacion = (today.getTime() - FechaUbicacion.getTime()); // milliseconds between now & Christmas\r\n const diffDays_FechaUbicacion = Math.floor(diffMs_FechaUbicacion / 86400000); // days\r\n const diffHrs_FechaUbicacion = Math.floor((diffMs_FechaUbicacion % 86400000) / 3600000); // hours\r\n const diffMins_FechaUbicacion = Math.round(((diffMs_FechaUbicacion % 86400000) % 3600000) / 60000); // minutes\r\n\r\n const aux_min_mostrar = diffMins_FechaUbicacion + diffHrs_FechaUbicacion * 60 + diffDays_FechaUbicacion * 24 * 60;\r\n\r\n if (TIEMPO_MOSTRAR > 0 && aux_min_mostrar >= TIEMPO_MOSTRAR) {\r\n cont.mostrar = false;\r\n }\r\n else if (TIEMPO_MOSTRAR > 0){\r\n cont.mostrar = true;\r\n }\r\n else if(TIEMPO_MOSTRAR === 0){\r\n cont.mostrar = true;\r\n }\r\n else {\r\n cont.mostrar = false;\r\n }\r\n cont.FechaUltimaLocalizacion = FechaUbicacion;\r\n cont.TiempoDesdeUltimaLocalizacion = diffDays_FechaUbicacion + that.translate.instant('Informes.dias') + diffHrs_FechaUbicacion + that.translate.instant('Informes.horas') + diffMins_FechaUbicacion + that.translate.instant('Informes.minutos');\r\n }\r\n else {\r\n cont.PermaneceDesde = that.translate.instant('Informes.nuncaLocalizadoLabel'); // 'Nunca ha ha sido Localizado.';\r\n }\r\n });\r\n let aux = contenidosFiltrados.filter( c => c.mostrar === true);\r\n if(listaSecciones){\r\n listaSecciones.forEach(element => {\r\n aux = aux.filter(s => s.Seccion === element);\r\n });\r\n }\r\n\r\n return aux;\r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerLocalizacionTiempoReal');\r\n console.error(error);\r\n\r\n const informes: Contenido[] = [];\r\n return informes;\r\n\t\t});\r\n }\r\n\r\n\t/// Deprecated: Prueba para intentar optimizar pero va mas lento, al final se esta probando a hacer por consulta a breeze\r\n\tobtenerLocalizacionTiempoReal_2(idsContenidos, TIEMPO_MOSTRAR, idiomaSeleccionado?, listaSecciones?): Promise{\r\n\t\tconst that = this;\r\n const token = this.authService.getToken();\r\n let contenidosFiltrados = [];\r\n\r\n\t\treturn that.swsStats.getLocalizacionTiempoRealContenidos_ext(token, idsContenidos).toPromise()\r\n .then(function(localizacionTiempoReal){\r\n\t\t\tlocalizacionTiempoReal = localizacionTiempoReal.lista;\r\n\t\t\tcontenidosFiltrados = [];\r\n if (!localizacionTiempoReal) {\r\n return contenidosFiltrados;\r\n }\r\n\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tlocalizacionTiempoReal = localizacionTiempoReal.sort(function(a, b){\r\n\t\t\t\treturn idsContenidos.indexOf(a.Id) - idsContenidos.indexOf(b.Id);\r\n\t\t\t});\r\n\r\n\t\t\tlocalizacionTiempoReal.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontenidosFiltrados.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n // Traducimos Contenidos al idioma seleccionado\r\n if (idiomaSeleccionado !== undefined){\r\n contenidosFiltrados = that.idiomaService.traducirContenidos(contenidosFiltrados, idiomaSeleccionado);\r\n }\r\n\r\n contenidosFiltrados.forEach(cont => {\r\n let ultimo = localizacionTiempoReal.find(h => h.Contenido_Id === cont.Id);\r\n if (ultimo && ultimo.Actual) {\r\n const today = new Date();\r\n const FechaUbicacionaux = new Date(ultimo.Actual.FechaUbicacion);\r\n const FechaUbicacion = new Date(Date.UTC(FechaUbicacionaux.getFullYear() , FechaUbicacionaux.getMonth() , FechaUbicacionaux.getDate() , FechaUbicacionaux.getHours() , FechaUbicacionaux.getMinutes() , FechaUbicacionaux.getSeconds()));\r\n\r\n const diffMs_FechaUbicacion = (today.getTime() - FechaUbicacion.getTime()); // milliseconds between now & Christmas\r\n const diffDays_FechaUbicacion = Math.floor(diffMs_FechaUbicacion / 86400000); // days\r\n const diffHrs_FechaUbicacion = Math.floor((diffMs_FechaUbicacion % 86400000) / 3600000); // hours\r\n const diffMins_FechaUbicacion = Math.round(((diffMs_FechaUbicacion % 86400000) % 3600000) / 60000); // minutes\r\n\r\n const aux_min_mostrar = diffMins_FechaUbicacion + diffHrs_FechaUbicacion * 60 + diffDays_FechaUbicacion * 24 * 60;\r\n\r\n if (TIEMPO_MOSTRAR > 0 && aux_min_mostrar >= TIEMPO_MOSTRAR) {\r\n cont.mostrar = false;\r\n }\r\n else if (TIEMPO_MOSTRAR > 0){\r\n cont.mostrar = true;\r\n }\r\n else if(TIEMPO_MOSTRAR === 0){\r\n cont.mostrar = true;\r\n }\r\n else {\r\n cont.mostrar = false;\r\n }\r\n cont.FechaUltimaLocalizacion = FechaUbicacion;\r\n cont.TiempoDesdeUltimaLocalizacion = diffDays_FechaUbicacion + that.translate.instant('Informes.dias') + diffHrs_FechaUbicacion + that.translate.instant('Informes.horas') + diffMins_FechaUbicacion + that.translate.instant('Informes.minutos');\r\n }\r\n else {\r\n cont.PermaneceDesde = that.translate.instant('Informes.nuncaLocalizadoLabel'); // 'Nunca ha ha sido Localizado.';\r\n }\r\n });\r\n let aux = contenidosFiltrados.filter( c => c.mostrar === true);\r\n if(listaSecciones){\r\n listaSecciones.forEach(element => {\r\n aux = aux.filter(s => s.Seccion === element);\r\n });\r\n }\r\n\r\n return aux;\r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerLocalizacionTiempoReal');\r\n console.error(error);\r\n\r\n const informes: Contenido[] = [];\r\n return informes;\r\n\t\t});\r\n }\r\n\r\n obtenerLocalizacionTiempoReal_3(idsContenidos, TIEMPO_MOSTRAR, idiomaSeleccionado?, listaSecciones?, idsTipologia?): Promise{\r\n\t\tconst that = this;\r\n const token = this.authService.getToken();\r\n const idEspacio = that.authService.getIdEspacio();\r\n\r\n let contenidosFiltrados = [];\r\n let includes = '';\r\n\r\n includes = includes + 'IDIOMAS.IDIOMA, ';\r\n includes = includes + 'SECCIONES.SECCION, ';\r\n includes = includes + 'NODODS.NODO.SECCION, ';\r\n\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO.IDIOMAS, ';\r\n\t\tincludes = includes + 'POSICION_ACTUAL_CONTENIDOS.NODO.SECCION.ALA.NIVEL, ';\r\n\t\tincludes = includes + 'POSICION_ULTIMA_CONTENIDOS.NODO.SECCION.ALA.NIVEL';\r\n\r\n return this.entityManager.getContenidosByTipologiaId(idsTipologia, includes)\r\n .then(function (data) {\r\n\t\t\tcontenidosFiltrados = [];\r\n if (!data) {\r\n return contenidosFiltrados;\r\n }\r\n\r\n\t\t\tconst auxi = data.filter( c => idsContenidos.indexOf(c.Id) >= 0);\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata = auxi.sort(function(a, b){\r\n\t\t\t\treturn idsContenidos.indexOf(a.Id) - idsContenidos.indexOf(b.Id);\r\n\t\t\t});\r\n\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontenidosFiltrados.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n // Traducimos Contenidos al idioma seleccionado\r\n if (idiomaSeleccionado !== undefined){\r\n contenidosFiltrados = that.idiomaService.traducirContenidos(contenidosFiltrados, idiomaSeleccionado);\r\n }\r\n\r\n contenidosFiltrados.forEach(cont => {\r\n\t\t\t\tlet ultimo = contenidosFiltrados.find(h => h.Id === cont.Id);\r\n\t\t\t\tif (ultimo && ultimo.Actual) {\r\n\t\t\t\t\tconst today = new Date();\r\n\t\t\t\t\tconst FechaUbicacionaux = new Date(ultimo.Actual.FechaUbicacion);\r\n\t\t\t\t\t// const FechaUbicacion = new Date(Date.UTC(FechaUbicacionaux.getFullYear() , FechaUbicacionaux.getMonth() , FechaUbicacionaux.getDate() , FechaUbicacionaux.getHours() , FechaUbicacionaux.getMinutes() , FechaUbicacionaux.getSeconds()));\r\n\t\t\t\t\tconst FechaUbicacion = FechaUbicacionaux;\r\n\t\t\t\t\tconst diffMs_FechaUbicacion = (today.getTime() - FechaUbicacion.getTime()); // milliseconds between now & Christmas\r\n\t\t\t\t\tconst diffDays_FechaUbicacion = Math.floor(diffMs_FechaUbicacion / 86400000); // days\r\n\t\t\t\t\tconst diffHrs_FechaUbicacion = Math.floor((diffMs_FechaUbicacion % 86400000) / 3600000); // hours\r\n\t\t\t\t\tconst diffMins_FechaUbicacion = Math.round(((diffMs_FechaUbicacion % 86400000) % 3600000) / 60000); // minutes\r\n\r\n\t\t\t\t\tconst aux_min_mostrar = diffMins_FechaUbicacion + diffHrs_FechaUbicacion * 60 + diffDays_FechaUbicacion * 24 * 60;\r\n\r\n\t\t\t\t\tif (TIEMPO_MOSTRAR > 0 && aux_min_mostrar >= TIEMPO_MOSTRAR) {\r\n\t\t\t\t\t\tcont.mostrar = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (TIEMPO_MOSTRAR > 0){\r\n\t\t\t\t\t\tcont.mostrar = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(TIEMPO_MOSTRAR === 0){\r\n\t\t\t\t\t\tcont.mostrar = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcont.mostrar = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcont.FechaUltimaLocalizacion = FechaUbicacion;\r\n if(diffDays_FechaUbicacion < 1 && diffHrs_FechaUbicacion < 1 && diffMins_FechaUbicacion < 3){\r\n cont.TiempoDesdeUltimaLocalizacion = 'Ahora';\r\n }else{ \r\n cont.TiempoDesdeUltimaLocalizacion = diffDays_FechaUbicacion + that.translate.instant('Informes.dias') + diffHrs_FechaUbicacion + that.translate.instant('Informes.horas') + diffMins_FechaUbicacion + that.translate.instant('Informes.minutos');\r\n }\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcont.PermaneceDesde = that.translate.instant('Informes.nuncaLocalizadoLabel'); // 'Nunca ha ha sido Localizado.';\r\n\t\t\t\t}\r\n });\r\n let aux = contenidosFiltrados.filter( c => c.mostrar === true);\r\n\r\n if(listaSecciones.length > 0){\r\n console.log(listaSecciones);\r\n let auxContenidos = [];\r\n listaSecciones.forEach(seccion => {\r\n aux.filter(s => s.Seccion === seccion).forEach(element => {\r\n auxContenidos.push(element);\r\n });\r\n console.log(auxContenidos)\r\n });\r\n aux = auxContenidos;\r\n return auxContenidos;\r\n }else{\r\n \r\n return aux;\r\n }\r\n\r\n \r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerLocalizacionTiempoReal');\r\n console.error(error);\r\n\r\n const informes: Contenido[] = [];\r\n return informes;\r\n\t\t});\r\n }\r\n\r\n // HISTORICOS\r\n // get\r\n obtenerHistoricoLocalizacionesContenidos(idsContenidos, fechaDesde, fechaHasta, duration, idiomaSeleccionado?, listaSecciones?, listaTipologiasSecciones?): Promise{\r\n\t\tconst that = this;\r\n const token = this.authService.getToken();\r\n const idEspacio = that.authService.getIdEspacio();\r\n\r\n let historicosFiltrados: HistoricoLocalizacionContenido[] = [];\r\n\r\n return this.swsStats.getHistoricoLocalizacionesContenidos(token, idsContenidos, fechaDesde, fechaHasta).toPromise()\r\n .then(function (data) {\r\n //console.log(data)\r\n\t\t\thistoricosFiltrados = [];\r\n if (!data) {\r\n return historicosFiltrados;\r\n }\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata.lista = data.lista.sort(function(a, b){\r\n\t\t\t\treturn idsContenidos.indexOf(a.Contenido_Id) - idsContenidos.indexOf(b.Contenido_Id);\r\n\t\t\t});\r\n\r\n\t\t\tdata.lista.forEach(cont => {\r\n\t\t\t\ttry {\r\n \t// const historico = new HistoricoLocalizacionContenido(that.entityManager).fromENTIDAD(cont);\r\n const historico = new HistoricoLocalizacionContenido().fromENTIDAD(cont);\r\n let FechaAux = new Date(historico.FechaDesde);\r\n historico.FechaDesde = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(historico.FechaHasta);\r\n historico.FechaHasta = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n\t\t\t\t\thistoricosFiltrados.push(historico);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n return that.rellenarContenidosHistoricos(historicosFiltrados);\r\n })\r\n .then(function(historicos){\r\n\r\n if(listaSecciones && listaSecciones.length > 0){\r\n let auxHistoricosSecciones = [];\r\n listaSecciones.forEach(seccion => {\r\n historicos.filter(s => s.Seccion === seccion).forEach(element => {\r\n auxHistoricosSecciones.push(element);\r\n });\r\n });\r\n historicos = auxHistoricosSecciones;\r\n }\r\n if(listaTipologiasSecciones && listaTipologiasSecciones.length > 0){\r\n let auxHistoricosTipologiasSecciones = [];\r\n listaTipologiasSecciones.forEach(tipoSeccion => {\r\n let historicosConSeccion = historicos.filter(h => h.SeccionFormulario);\r\n let historicosConTipologiaSeccion = historicosConSeccion.filter(h => h.SeccionFormulario.TIPOLOGIAS_SECCION.length > 0);\r\n historicosConTipologiaSeccion.filter(s => s.SeccionFormulario.TIPOLOGIAS_SECCION[0].nombre === tipoSeccion).forEach(element => {\r\n auxHistoricosTipologiasSecciones.push(element);\r\n });\r\n });\r\n historicos = auxHistoricosTipologiasSecciones;\r\n }\r\n\r\n if(duration > 0){\r\n let auxTiempoHistorico = [];\r\n let tiempo = duration*60000;\r\n historicos.forEach(element => {\r\n let tiempoUbicacion = element.FechaHasta.getTime() - element.FechaDesde.getTime();\r\n if(tiempoUbicacion >= tiempo){\r\n auxTiempoHistorico.push(element);\r\n }\r\n \r\n });\r\n historicos = auxTiempoHistorico;\r\n }\r\n\r\n \r\n\r\n // Ordenamos los historicos por Elemento, FechaDesde, FechaHasta\r\n\t\t\thistoricos = historicos.sort((a, b) => {\r\n\r\n\t\t\t\tlet desde = 0;\r\n\t\t\t\tif (a.FechaDesde > b.FechaDesde) {\r\n\t\t\t\t\tdesde = 1;\r\n\t\t\t\t} else if (a.FechaDesde < b.FechaDesde) {\r\n\t\t\t\t\tdesde = -1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdesde = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet hasta = 0;\r\n\t\t\t\tif (a.FechaHasta > b.FechaHasta) {\r\n\t\t\t\t\thasta = 1;\r\n\t\t\t\t} else if (a.FechaHasta < b.FechaHasta) {\r\n\t\t\t\t\thasta = -1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\thasta = 0;\r\n\t\t\t\t}\r\n\r\n return a.Elemento.localeCompare(b.Elemento) || desde || hasta;\r\n\r\n\t\t\t});\r\n\r\n\r\n \r\n return historicos;\r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerHistoricoLocalizacionesContenidos');\r\n console.error(error);\r\n\r\n historicosFiltrados = [];\r\n return historicosFiltrados;\r\n\t\t});\r\n }\r\n // rellenar\r\n rellenarContenidosHistoricos(historicos: HistoricoLocalizacionContenido[]){\r\n const that = this;\r\n let includes = 'IDIOMAS.IDIOMA';\r\n // includes = includes + 'NODODS.NODO.SECCION,';\r\n\t\t// includes = includes + 'TIPOLOGIA_CONTENIDO, ';\r\n\t\t// includes = includes + 'ALAS, ';\r\n // includes = includes + 'ALA_PLANO, ';\r\n\t\t// includes = includes + 'IDIOMAS.IDIOMA';\r\n // includes = includes + 'SECCIONES.SECCION';\r\n let secciones = [];\r\n let alas = [];\r\n const ids = [];\r\n historicos.forEach(element => {\r\n const aux = ids.find(cont => cont === element.Contenido_Id);\r\n\r\n if (!aux) {\r\n ids.push(element.Contenido_Id);\r\n }\r\n\r\n });\r\n\r\n\r\n return that.entityManager.getSECCION(undefined, includes)\r\n\t\t.then(function(resp){\r\n secciones = resp;\r\n return that.entityManager.getALA(undefined, includes);\r\n })\r\n\t\t.then(function(resp){\r\n alas = resp;\r\n includes += ', NODODS';\r\n return that.entityManager.getContenidosById(ids, includes);\r\n })\r\n\t\t.then(function(contenidos){\r\n const historicosRellenos: HistoricoLocalizacionContenido[] = [];\r\n\r\n historicos.forEach(element => {\r\n const contenidoENTIDAD = contenidos.find(cont => cont.Id === element.Contenido_Id);\r\n const seccionHistorico = secciones.find(sec => sec.Id === element.Seccion_Id);\r\n const alaHistorico = alas.find(sec => sec.Id === element.Ala_Id);\r\n\r\n\r\n const contenido = new Contenido().fromENTIDAD(contenidoENTIDAD);\r\n\r\n const historicoAux: HistoricoLocalizacionContenido = element;\r\n element.rellenarContenido(contenido, seccionHistorico, alaHistorico);\r\n\r\n historicosRellenos.push(historicoAux);\r\n });\r\n\r\n // Traducimos Contenidos al idioma seleccionado\r\n // TODO: Crear una funcion para traducir historico segun el id_contenido y que le cambie nombre, descripcion, seccion y tipologia al idioma indicado\r\n /*if (idiomaSeleccionado !== undefined){\r\n historicosFiltrados = that.idiomaService.traducirContenidos(historicosFiltrados, idiomaSeleccionado);\r\n }*/\r\n\r\n return historicosRellenos;\r\n\r\n\t\t});\r\n }\r\n\r\n // COINCIDENCIAS\r\n // get\r\n obtenerCoincidenciasLocalizacionContenidos(idsContenidos, fechaDesde, fechaHasta, idiomaSeleccionado?): Promise{\r\n\t\tconst that = this;\r\n const token = this.authService.getToken();\r\n const idEspacio = that.authService.getIdEspacio();\r\n\r\n let coincidenciasFiltradas: CoincidenciasLocalizacionContenidos[] = [];\r\n\r\n\r\n return this.swsStats.getCoincidenciasLocalizacion(token, idsContenidos, fechaDesde, fechaHasta).toPromise()\r\n .then(function (data) {\r\n\t\t\tcoincidenciasFiltradas = [];\r\n if (!data) {\r\n return coincidenciasFiltradas;\r\n }\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata.lista = data.lista.sort(function(a, b){\r\n\t\t\t\treturn idsContenidos.indexOf(a.Id) - idsContenidos.indexOf(b.Id);\r\n\t\t\t});\r\n\r\n\t\t\tdata.lista.forEach(cont => {\r\n\t\t\t\ttry {\r\n const coincidencia = new CoincidenciasLocalizacionContenidos().fromENTIDAD(cont);\r\n\r\n let FechaAux = new Date(coincidencia.desde_1);\r\n coincidencia.desde_1 = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(coincidencia.hasta_1);\r\n coincidencia.hasta_1 = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(coincidencia.desde_2);\r\n coincidencia.desde_2 = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(coincidencia.hasta_2);\r\n coincidencia.hasta_2 = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(coincidencia.hasta_min);\r\n coincidencia.hasta_min = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n FechaAux = new Date(coincidencia.desde_max);\r\n coincidencia.desde_max = new Date(Date.UTC(FechaAux.getFullYear() , FechaAux.getMonth() , FechaAux.getDate() , FechaAux.getHours() , FechaAux.getMinutes() , FechaAux.getSeconds()));\r\n\r\n\r\n\t\t\t\t\tcoincidenciasFiltradas.push(coincidencia);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t console.error('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n return that.rellenarContenidosCoincidencias(coincidenciasFiltradas);\r\n })\r\n .then(function(coincidencias){\r\n return coincidencias;\r\n })\r\n .catch(function (error) {\r\n // ERROR\r\n console.error('Error al obtenerCoincidenciasLocalizacionContenidos');\r\n console.error(error);\r\n\r\n coincidenciasFiltradas = [];\r\n return coincidenciasFiltradas;\r\n\t\t});\r\n }\r\n // rellenar\r\n rellenarContenidosCoincidencias(coincidenciasFiltradas: CoincidenciasLocalizacionContenidos[]){\r\n const that = this;\r\n const includes = 'IDIOMAS.IDIOMA';\r\n let secciones;\r\n const ids = [];\r\n coincidenciasFiltradas.forEach(element => {\r\n let aux = ids.find(cont => cont === element.contenido_1);\r\n if (!aux) {\r\n ids.push(element.contenido_1);\r\n }\r\n aux = ids.find(cont => cont === element.contenido_2);\r\n if (!aux) {\r\n ids.push(element.contenido_2);\r\n }\r\n });\r\n\r\n const listaCoincidencias = coincidenciasFiltradas;\r\n return that.entityManager.getSECCION(undefined, includes)\r\n\t\t.then(function(resp){\r\n secciones = resp;\r\n return that.entityManager.getContenidosById(ids, includes);\r\n })\r\n\t\t.then(function(contenidos){\r\n const coincidenciasRellenos: CoincidenciasLocalizacionContenidos[] = [];\r\n\r\n listaCoincidencias.forEach(element => {\r\n const Contenido_1ENTIDAD = contenidos.find(cont => cont.Id === element.contenido_1);\r\n const Contenido_2ENTIDAD = contenidos.find(cont => cont.Id === element.contenido_2);\r\n const seccionCoincidencia = secciones.find(sec => sec.Id === element.Seccion_Id);\r\n\r\n if (Contenido_1ENTIDAD && Contenido_2ENTIDAD) {\r\n const Contenido_1 = new Contenido().fromENTIDAD(Contenido_1ENTIDAD);\r\n const Contenido_2 = new Contenido().fromENTIDAD(Contenido_2ENTIDAD);\r\n\r\n const coincidenciaAux: CoincidenciasLocalizacionContenidos = element;\r\n coincidenciaAux.rellenarContenido(Contenido_1, Contenido_2, seccionCoincidencia);\r\n\r\n coincidenciasRellenos.push(coincidenciaAux);\r\n }\r\n\r\n });\r\n\r\n return coincidenciasRellenos;\r\n\t\t});\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/informes/informes.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Headers } from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ServiciosStatsProvider {\r\n\r\n\turlStatsVisitas = '/Visitas';\r\n\r\n\tMESES = {};\r\n\r\n\tconstructor(public http: Http, public translate: TranslateService) {\r\n\t\tthis.urlStatsVisitas = environment.ubimapsStats + this.urlStatsVisitas;\r\n\r\n\t\tfor (let i = 1; i <= 12; i++) {\r\n\t\t\tconst _mes = '' + i;\r\n\r\n\t\t\tthis.MESES[_mes] = this.translate.instant('Graficas.Mes' + _mes);\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tmigrarBDStat(token, idEntidad){\r\n\r\n\t\tif (!confirm('Vas a proceder a migrar la BD de estadísticas. ¿Quieres continuar?')){\r\n\t\t\talert('Operacion cancelada');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\r\n\t\tconst fecha = new Date();\r\n\t\tconst tiempoInicial = fecha.getTime();\r\n\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tthis.http.get(environment.apiUrl + '/diagnostico/MigrarStatsBD?idEntidad=' + idEntidad, {headers: headers})\r\n\t\t\t.subscribe(function (res) {\r\n\t\t\t\tconst fecF = new Date();\r\n\t\t\t\tconst tiempoTotal = fecF.getTime() - tiempoInicial;\r\n\r\n\t\t\t\tconsole.log(tiempoTotal);\r\n\t\t\t\tconsole.log(res);\r\n\t\t\t\talert('Hecho');\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tstatsVisitaCuenta(token, filtro, _callback) {\r\n\t\t// console.log('INICIADOS STATS');\r\n\r\n\t\tconst fec = new Date();\r\n\t\tconst tiempoInicial = fec.getTime();\r\n\r\n\r\n\t\tlet cadena = '?';\r\n\t\tlet _n = 0;\r\n\t\tfor (const i in filtro) {\r\n\t\t\tif (_n > 0) {\r\n\t\t\t\tcadena += '&';\r\n\t\t\t}\r\n\t\t\tcadena += i + '=' + filtro[i];\r\n\t\t\t_n++;\r\n\t\t}\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tthis.http.get(this.urlStatsVisitas + cadena, {headers: headers})\r\n\t\t\t.subscribe(function (res) {\r\n\t\t\t\tconst fecF = new Date();\r\n\t\t\t\tconst tiempoTotal = fecF.getTime() - tiempoInicial;\r\n\t\t\t\tconst resultado = res.json();\r\n\t\t\t\tresultado.tiempo = tiempoTotal;\r\n\t\t\t\t_callback(resultado);\r\n\t\t\t});\r\n\t}\r\n\r\n\tfechaToCubefec(fec: Date = new Date(), separador: string = '') {\r\n\t\tconst _mesN = fec.getMonth() + 1;\r\n\t\tlet mes = '' + _mesN;\r\n\t\tlet dia = '' + fec.getDate();\r\n\t\tlet hora = '' + fec.getHours();\r\n\t\tlet minuto = '' + fec.getMinutes();\r\n\r\n\t\tif (_mesN < 10) {\r\n\t\t\tmes = '0' + _mesN;\r\n\t\t}\r\n\r\n\t\tif (fec.getDate() < 10) {\r\n\t\t\tdia = '0' + fec.getDate();\r\n\t\t}\r\n\r\n\t\tif (fec.getHours() < 10) {\r\n\t\t\thora = '0' + fec.getHours();\r\n\t\t}\r\n\r\n\t\tif (fec.getMinutes() < 10) {\r\n\t\t\tminuto = '0' + fec.getMinutes();\r\n\t\t}\r\n\r\n\t\tconst year = fec.getFullYear();\r\n\r\n\t\treturn {\r\n\t\t\tfecha: year + separador + mes + separador + dia,\r\n\t\t\thora: hora + separador + minuto\r\n\t\t};\r\n\t}\r\n\r\n\tgetLastMonthsRange(months){\r\n\t\tconst actual = new Date();\r\n\r\n\t\tconst last = new Date();\r\n\t\tlast.setDate(1);\r\n\t\tlast.setMonth(last.getMonth() - months);\r\n\r\n\t\tconst actualCub = this.fechaToCubefec(actual);\r\n\t\tconst lastCub = this.fechaToCubefec(last);\r\n\r\n\t\treturn lastCub.fecha + ',' + actualCub.fecha;\r\n\t}\r\n\r\n\tgetWeekRange(_actual: Date, inDate: Boolean) {\r\n\t\tconst actual = new Date(_actual);\r\n\t\tconst actual2 = new Date(_actual);\r\n\r\n\t\tconst day = actual.getDay();\r\n\t\tconst diffMon = actual.getDate() - day + (day === 0 ? -6 : 1);\r\n\t\tconst diffSun = actual2.getDate() + 7 - day;\r\n\r\n\t\tconst monday = new Date(actual.setDate(diffMon));\r\n\r\n\t\tconst sunday = new Date(actual2.setDate(diffSun));\r\n\r\n\t\tif (inDate){\r\n\t\t\treturn {\r\n\t\t\t\tmonday: monday,\r\n\t\t\t\ttoday: _actual,\r\n\t\t\t\tsunday: sunday\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst mondayCub = this.fechaToCubefec(monday);\r\n\t\tconst actualCub = this.fechaToCubefec(_actual);\r\n\r\n\t\treturn mondayCub.fecha + ',' + actualCub.fecha;\r\n\t}\r\n\r\n\t/* ** ACTIVOS ** */\r\n\tgetHistoricoLocalizacionesContenidos(token, idsContenidos, fechaDesde: Date, fechaHasta: Date) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\tlet fd = '';\r\n\t\tif (fechaDesde) {\r\n\t\t\tconst mes = fechaDesde.getUTCMonth() + 1;\r\n\t\t\tconst dia = fechaDesde.getUTCDate();\r\n\t\t\tconst anio = fechaDesde.getUTCFullYear();\r\n\t\t\tconst hora = fechaDesde.getUTCHours();\r\n\t\t\tconst minutos = fechaDesde.getUTCMinutes();\r\n\r\n\t\t\tfd = anio.toString().padStart(4, '0') + '-' +\r\n\t\t\tmes.toString().padStart(2, '0') + '-' +\r\n\t\t\tdia.toString().padStart(2, '0') + ' ' +\r\n\t\t\thora.toString().padStart(2, '0') + ':' +\r\n\t\t\tminutos.toString().padStart(2, '0');\r\n\r\n\t\t\t// fd = fechaDesde.toTimeString();\r\n\t\t}\r\n\t\tlet fh = '';\r\n\t\tif (fechaHasta) {\r\n\t\t\tconst mes = fechaHasta.getUTCMonth() + 1;\r\n\t\t\tconst dia = fechaHasta.getUTCDate();\r\n\t\t\tconst anio = fechaHasta.getUTCFullYear();\r\n\t\t\tconst hora = fechaHasta.getUTCHours();\r\n\t\t\tconst minutos = fechaHasta.getUTCMinutes();\r\n\r\n\t\t\t// fh = dia + '/' + mes + '/' + anio;\r\n\t\t\tfh = anio.toString().padStart(4, '0') + '-' +\r\n\t\t\tmes.toString().padStart(2, '0') + '-' +\r\n\t\t\tdia.toString().padStart(2, '0') + ' ' +\r\n\t\t\thora.toString().padStart(2, '0') + ':' +\r\n\t\t\tminutos.toString().padStart(2, '0');\r\n\r\n\t\t\t// fh = fechaHasta.toTimeString();\r\n\t\t}\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tContenidos: idsContenidos,\r\n\t\t\tFechaDesde: fd,\r\n\t\t\tFechaHasta: fh\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsStats + 'ObtenerHistoricoLocalizacionesContenidos', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\t// ObtenerUltimoHistoricoLocalizacionesContenidos\r\n\t// obtenemos las ultimas localizaciones del contenido en la tabla historicos que ha de tener todas sus posiciones\r\n\t// Filtramos y cogemos solo las localizaciones del ultimo dia ya que consideramos que si no esta hubicado hoy en el sitio no va a estar ahi\r\n\tgetUltimoHistoricoLocalizacionesContenidos(token, idsContenidos) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\tconst fd = '01/01/1990';\r\n\t\t/*\r\n\t\tconst fechaDesde = new Date();\r\n\t\tif (fechaDesde) {\r\n\t\t\tconst mes = fechaDesde.getMonth() + 1;\r\n\t\t\tconst dia = fechaDesde.getDate() - 1;\r\n\t\t\tconst anio = fechaDesde.getFullYear();\r\n\t\t\tfd = dia + '/' + mes + '/' + anio;\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\tlet fh = '';\r\n\t\tconst fechaHasta = new Date();\r\n\t\tif (fechaHasta) {\r\n\t\t\tconst mes = fechaHasta.getUTCMonth() + 1;\r\n\t\t\tconst dia = fechaHasta.getUTCDate();\r\n\t\t\tconst anio = fechaHasta.getUTCFullYear();\r\n\t\t\tfh = anio.toString().padStart(4, '0') + '-' + mes.toString().padStart(2, '0') + '-' + dia.toString().padStart(2, '0');\r\n\t\t}\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tContenidos: idsContenidos,\r\n\t\t\tFechaDesde: fd,\r\n\t\t\tFechaHasta: fh\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsStats + 'ObtenerUltimoHistoricoLocalizacionesContenidos', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\tgetLocalizacionTiempoRealContenidos(token, idsContenidos) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tContenidos: idsContenidos\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsStats + 'ObtenerLocalizacionTiempoRealContenidos', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\tgetLocalizacionTiempoRealContenidos_ext(token, idsContenidos) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tContenidos: idsContenidos\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsStats + 'ObtenerLocalizacionTiempoRealContenidos_ext', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\tgetCoincidenciasLocalizacion(token, idsContenidos, fechaDesde: Date, fechaHasta: Date) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\tlet fd = '';\r\n\t\tif (fechaDesde) {\r\n\r\n\t\t\tconst mes = fechaDesde.getUTCMonth() + 1;\r\n\t\t\tconst dia = fechaDesde.getUTCDate();\r\n\t\t\tconst anio = fechaDesde.getUTCFullYear();\r\n\t\t\tconst hora = fechaDesde.getUTCHours();\r\n\t\t\tconst minutos = fechaDesde.getUTCMinutes();\r\n\r\n\t\t\tfd = anio.toString().padStart(4, '0') + '-' +\r\n\t\t\tmes.toString().padStart(2, '0') + '-' +\r\n\t\t\tdia.toString().padStart(2, '0') + ' ' +\r\n\t\t\thora.toString().padStart(2, '0') + ':' +\r\n\t\t\tminutos.toString().padStart(2, '0');\r\n\r\n\t\t\t// fd = fechaDesde.toISOString();\r\n\r\n\t\t}\r\n\t\tlet fh = '';\r\n\t\tif (fechaHasta) {\r\n\r\n\t\t\tconst mes = fechaHasta.getUTCMonth() + 1;\r\n\t\t\tconst dia = fechaHasta.getUTCDate();\r\n\t\t\tconst anio = fechaHasta.getUTCFullYear();\r\n\t\t\tconst hora = fechaHasta.getUTCHours();\r\n\t\t\tconst minutos = fechaHasta.getUTCMinutes();\r\n\r\n\t\t\t// fh = dia + '/' + mes + '/' + anio;\r\n\t\t\tfh = anio.toString().padStart(4, '0') + '-' +\r\n\t\t\tmes.toString().padStart(2, '0') + '-' +\r\n\t\t\tdia.toString().padStart(2, '0') + ' ' +\r\n\t\t\thora.toString().padStart(2, '0') + ':' +\r\n\t\t\tminutos.toString().padStart(2, '0')\r\n\t\t\t;\r\n\r\n\t\t\t// fh = fechaHasta.toISOString();\r\n\t\t}\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tContenidos: idsContenidos,\r\n\t\t\tFechaDesde: fd,\r\n\t\t\tFechaHasta: fh\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsStats + 'ObtenerCoincidenciasLocalizacion', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n}\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/web-service-service/servicios-stats.ts","import { Http, Headers } from '@angular/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport 'rxjs/add/operator/map';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ResponseContentType } from '@angular/http';\r\nimport { environment } from '../../../environments/environment';\r\nimport * as Q from 'q';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Foto } from '../../domain/Foto';\r\nimport * as allSettled from 'promise-all-settled';\r\n\r\n/*\r\n Generated class for the ServiciosWebServiceProvider provider.\r\n\r\n See https://angular.io/guide/dependency-injection for more info on providers\r\n and Angular DI.\r\n*/\r\n@Injectable()\r\nexport class ServiciosWebServiceProvider {\r\n\r\n\tconstructor(public http: Http, private sanitizer: DomSanitizer) {\r\n\t\tconsole.log('Hello ServiciosWebServiceProvider Provider');\r\n\t}\r\n\tgetLogoPath(subFolder: string): Observable {\r\n\t\tconst folderPath = `assets/layout/images/${subFolder.toLocaleUpperCase()}`;\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'blob');\r\n\t\theaders.append('observe', 'response');\r\n\t\treturn this.http\r\n\t\t .get(`${folderPath}/ITSN.png`, { headers: headers }).map(response => {\r\n\t\t\treturn folderPath + \"/ITSN.png\";\r\n\t\t });\r\n\t\t /*.pipe(\r\n\t\t\tmap(response => {\r\n\t\t\t return folderPath + \"/ITSN.png\";\r\n\t\t\t}),\r\n\t\t\tcatchError(error => {\r\n\t\t\t\treturn \"assets/layout/images/ITSN.png\";\r\n\t\t\t})\r\n\t\t );*/\r\n\t }\r\n\r\n\t/* ** Usuario ** */\r\n\twsLogin(entidad, user, pass) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\tconst body = {\r\n\t\t\tuser: user,\r\n\t\t\tpass: pass,\r\n\t\t\tentidad: entidad\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'Login', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\r\n\twsNewToken(token) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'NewToken', { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsNewTokenAnonimo(){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'NewTokenAnonimo', { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsCrearUsuario(token, nombre, login, pass, email, idPerfil, idEspacio) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tconst body = {\r\n nombre: nombre,\r\n login: login,\r\n pass: pass,\r\n\t\t\temail: email,\r\n idPerfil: idPerfil,\r\n idEspacio: idEspacio,\r\n };\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'CrearUsuario', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsUpdateUsuario(token, nombre, login, pass, email, idPerfil, idEspacio, Activo) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tconst body = {\r\n nombre: nombre,\r\n login: login,\r\n pass: pass,\r\n\t\t\temail: email,\r\n idPerfil: idPerfil,\r\n\t\t\tidEspacio: idEspacio,\r\n\t\t\tactivo: Activo\r\n };\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'UpdateUsuario', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\t/* ** Ubicacion ** */\r\n\twsObtenerUbicacion(token, latitud, longitud, balizas, ssids, idNivel) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tLatitud: latitud,\r\n\t\t\tLongitud: longitud,\r\n\t\t\tBalizas: balizas,\r\n\t\t\tSSIDs: ssids,\r\n\t\t\tIdNivel: idNivel\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'ObtenerUbicacion', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsObtenerXYFromLL(token, latitud, longitud, idEspacio, idAla) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tLatitud: latitud,\r\n\t\t\tLongitud: longitud,\r\n\t\t\tIdEspacio: idEspacio,\r\n\t\t\tIdAla: idAla\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'ObtenerXYFromLL', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsObtenerLLFromXY(token, x, y, idEspacio, idAla) {\r\n\t\tconst headers = new Headers();\r\n\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tIdEspacio: idEspacio,\r\n\t\t\tIdAla: idAla\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'ObtenerLLFromXY', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsBorrarRelacionTipologiaNoLocalizable(token, idContenido, idEspacio){\r\n\t\t// http://10.8.0.17:8888/api/DesasociarTodosUsuariosDelContenido?idContenido=b86a6fd0-74db-43f2-b1cf-798d74f76977&idEspacio=36a6c6fc-0f6f-e811-a82e-005056025d6f\r\n\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'DesasociarTodosUsuariosDelContenido' + '?idContenido=' + idContenido + '&idEspacio=' + idEspacio, { headers: headers }).map(res => res.json());\r\n\r\n\t}\r\n\tObtenerFavoritos(token,idEspacio){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerFavoritos' + '?idEspacio=' + idEspacio, { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\t/* ** Calculo Ruta ** */\r\n\twsCalcularRuta(token, idEspacio, idNodoOrigen, idNodoDestino, idPerfilMovilidad) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tidEspacio: idEspacio,\r\n\t\t\tidNodoOrigen: idNodoOrigen,\r\n\t\t\tidNodoDestino: idNodoDestino,\r\n\t\t\tidPerfilMovilidad: idPerfilMovilidad\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'CalcularRuta', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\t/* ** Envio Push ** */\r\n\twsEnviarPush(token: string, idEntidad: string, idEspacio: string, idAviso: string, idContenido: string, users: string[], salas: string[], titulo: string, msg: string, cuerpo: string, imagen: string, criteriosEnvio: any[]) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tguidEntidad: idEntidad,\r\n\t\t\tguidContenido: idContenido,\r\n\t\t\tguidAvisoCiudadano: idAviso,\r\n\t\t\tcuerpo: cuerpo,\r\n\t\t\timagen: imagen,\r\n\t\t\tespacio: idEspacio,\r\n\t\t\tsecciones: salas,\r\n\t\t\tusers: users,\r\n\t\t\ttitulo: titulo,\r\n\t\t\tmsg: msg,\r\n\t\t\tcriteriosEnvio: criteriosEnvio\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'EnviarPush', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsGetEstimacionDestinatarios(token: string, idEntidad: string, idEspacio: string, users: string[], salas: string[], titulo: string, msg: string, criteriosEnvio: any[]) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tguidEntidad: idEntidad,\r\n\t\t\tespacio: idEspacio,\r\n\t\t\tsecciones: salas,\r\n\t\t\tusers: users,\r\n\t\t\ttitulo: titulo,\r\n\t\t\tmsg: msg,\r\n\t\t\tcriteriosEnvio: criteriosEnvio\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'GetEstimacionDestinatarios', JSON.stringify(body), { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\t/* ** GEOCALIBRACION_ALA ** */\r\n\twsGetGeocalibracionAlasEspacio(token: string, idEspacio: string) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'obtenerGeocalibracionAlasEspacio' + '?idEspacio=' + idEspacio, { headers: headers }).map(res => res.json());\r\n\r\n\t}\r\n\r\n\t/* ** Recordar Password ** */\r\n\twsRecordarPassword (entidad: string, user: string) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\tconst body = {\r\n\t\t\tentidad: entidad,\r\n\t\t\tlogin: user\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'RecordarPassword', JSON.stringify(body), { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\twsConfirmarPassword(token: string, entidad: string, user: string, newPass: string, newPassConfirm: string)\r\n\t{\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tentidad: entidad,\r\n\t\t\tlogin: user,\r\n\t\t\tnewPassword: newPass,\r\n\t\t\tnewPassConfirm: newPassConfirm\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'ConfirmarPassword', JSON.stringify(body), { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\t/* ** Migrar BBDD ** */\r\n\twsMigrarBD(token, idEntidad?) {\r\n\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tif (!idEntidad) {\r\n\t\t\treturn this.http.get(environment.ubimapsDiagnostico + 'MigrarBD', { headers: headers }).map(res => res.json());\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn this.http.get(environment.ubimapsDiagnostico + 'MigrarBD' + '?idEntidad=' + idEntidad, { headers: headers }).map(res => res.json());\r\n\t\t}\r\n\t}\r\n\r\n\twsMigrarBBDD(){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\treturn this.http.get(environment.ubimapsDiagnostico + 'MigrarBBDD', { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\tRepararIdiomas(token, idEntidad?){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tif (idEntidad) {\r\n\t\t\treturn this.http.get(environment.ubimapsDiagnostico + 'RepararIdiomas' , { headers: headers }).map(res => res.json());\r\n\t\t}\r\n\t}\r\n\r\n\t/* ** Buscar Contenidos ** */\r\n\twsValidarIdAlternativoContenidos(token: string, idEspacio, idAlternativo){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ValidarIdAlternativoContenidos' + '?idEspacio=' + idEspacio + '&idAlternativo=' + idAlternativo, { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsBuscarContenidos(token: string, idEspacio, idIdioma, Titulo, Estado, Desde, Hasta, Codigo, Tipologia, AsignadoA, first, size, orderBy, order, excluidos, activos)\r\n\t{\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tidIdioma: idIdioma,\r\n\t\t\tidEspacio: idEspacio,\r\n\t\t\tTitulo: Titulo,\r\n\t\t\tEstado: Estado,\r\n\t\t\tDesde: Desde,\r\n\t\t\tHasta: Hasta,\r\n\t\t\tCodigo: Codigo,\r\n\t\t\tTipologia: Tipologia,\r\n\t\t\tAsignadoA: AsignadoA,\r\n\t\t\tExcluidos: excluidos,\r\n\t\t\tActivos: activos,\r\n\t\t\tfiltro: {\r\n\t\t\t\tfirst: first, // 0\r\n\t\t\t\tsize: size, // 10\r\n\t\t\t\torderBy: orderBy,\r\n\t\t\t\torder: order // 'DESC'\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'BuscarContenidos', JSON.stringify(body), { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\twsBuscarContenidosExportar(token: string, idEspacio, idIdioma, Titulo, Estado, Desde, Hasta, Codigo, Tipologia, AsignadoA, first, size, orderBy, order, excluidos)\r\n\t{\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\tconst body = {\r\n\t\t\tidIdioma: idIdioma,\r\n\t\t\tidEspacio: idEspacio,\r\n\t\t\tTitulo: Titulo,\r\n\t\t\tEstado: Estado,\r\n\t\t\tDesde: Desde,\r\n\t\t\tHasta: Hasta,\r\n\t\t\tCodigo: Codigo,\r\n\t\t\tTipologia: Tipologia,\r\n\t\t\tAsignadoA: AsignadoA,\r\n\t\t\tExcluidos: excluidos,\r\n\t\t\tfiltro: {\r\n\t\t\t\tfirst: first, // 0\r\n\t\t\t\tsize: size, // 10\r\n\t\t\t\torderBy: orderBy,\r\n\t\t\t\torder: order // 'DESC'\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'BuscarContenidosExportar', JSON.stringify(body), { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\r\n\twsObtenerUrlDescargaEverpaths(idEntidad: any, idQR: any) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerUrlDescargaEverpaths' + '?idEntidad=' + idEntidad + '&idQR=' + idQR, { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsObtenerRespuestas(token: string, idEspacio, idIdioma){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerRespuestas' + '?idEspacio=' + idEspacio + '&idIdioma=' + idIdioma, { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsObtenerQRInfoVisorAR(idEntidad: any, idQR: any) {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerQRInfoVisorAR' + '?idEntidad=' + idEntidad + '&idQR=' + idQR, { headers: headers }).map(res => res.json());\r\n\t}\r\n\r\n\twsObtenerContenidoVisorExterno(idEntidad: any, idContenido: any): any {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\tconsole.log(environment.ubimapsAPI + 'ObtenerContenidoVisorExterno' + '?idEntidad=' + idEntidad + '&idContenido=' + idContenido);\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerContenidoVisorExterno' + '?idEntidad=' + idEntidad + '&idContenido=' + idContenido, { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\twsObtenerMetasContenidoVisorExterno(idEntidad: any, idContenido: any): any {\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\r\n\t\tconsole.log(environment.ubimapsAPI + 'ObtenerMetasContenidoVisorExterno' + '?idEntidad=' + idEntidad + '&idContenido=' + idContenido);\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'ObtenerMetasContenidoVisorExterno' + '?idEntidad=' + idEntidad + '&idContenido=' + idContenido, { headers: headers })\r\n\t\t.map(res =>\r\n\t\t\tres.json()\r\n\t\t);\r\n\t}\r\n\r\n\t/* ** Informacion Espacio ** */\r\n\twsGetTramosCortados(token: string, idEspacio){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'getTramosCortados' + '?idEspacio=' + idEspacio, { headers: headers }).map(res => res.json());\r\n\r\n\t}\r\n/*\r\n\tgetBeaconsEspacio(token: string, nivelBateria: number, idEspacio){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'getBeaconsEspacio' + '?idEspacio=' + idEspacio, { headers: headers }).map(res => res.json());\r\n\t}\r\n*/\r\n\r\n\t/* ** Subida FOTO ** */\r\n\twsSubidaFoto(token, entidad, idContenido, fichero, nombreArchivo, idFoto = null) {\r\n\t\tconst headers = new Headers();\r\n\t\t// headers.append('Content-Type', fichero.type);\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tconst formData: FormData = new FormData();\r\n\t\tformData.append('Content-Type', fichero.type);\r\n\t\tif (idFoto){\r\n\t\t\tformData.append('idFoto', idFoto);\r\n\t\t}\r\n\t\tformData.append(entidad, idContenido);\r\n\t\tformData.append('data', fichero, nombreArchivo);\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'Upload', formData, { headers: headers })\r\n\t\t.map( function(res){\r\n\r\n\t\t\treturn res.json();\r\n\r\n\t\t});\r\n\t}\r\n\r\n\twsActualizarFotoConDetalle(token, entidad, idContenido, fichero, nombreArchivo, idFoto){\r\n\t\t// UpdateFotoWithFotoDetalle\r\n\t\tconst headers = new Headers();\r\n\t\t// headers.append('Content-Type', fichero.type);\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\t\tconst formData: FormData = new FormData();\r\n\t\tformData.append('Content-Type', fichero.type);\r\n\t\tformData.append(entidad, idContenido);\r\n\t\tformData.append('idFoto', idFoto);\r\n\t\tformData.append('data', fichero, nombreArchivo);\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'UpdateFotoWithFotoDetalle', formData, { headers: headers })\r\n\t\t.map( function(res){\r\n\r\n\t\t\treturn res.json();\r\n\r\n\t\t});\r\n\t}\r\n\r\n\twsActualizarFotosCarrusel(token, idContenido, fotos: Foto[], nombreArchivo){\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Content-Type', 'application/json');\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\r\n\r\n\t\tconst body = {\r\n\t\t\tidContenido: idContenido,\r\n\t\t\tFotosCarrusel: fotos.map( (f) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tidContenido: f.IdContenido,\r\n\t\t\t\t\tidFoto: f.Id,\r\n\t\t\t\t\tUrlFotoExt: f.UrlFotoExt,\r\n\t\t\t\t\tUrlFotoExt_detalle: f.UrlFotoExt_detalle,\r\n\t\t\t\t\tIdFotoExt: f.IdFotoExt,\r\n\t\t\t\t\tIdFotoExt_detalle: f.IdFotoExt_detalle,\r\n\t\t\t\t\tTipo: f.Tipo,\r\n\t\t\t\t\tOrden: f.Orden,\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\treturn this.http.post(environment.ubimapsAPI + 'UpdateFotosCarrusel', JSON.stringify(body), { headers: headers })\r\n\t\t.map( function(res){\r\n\r\n\t\t\treturn res.json();\r\n\r\n\t\t});\r\n\t}\r\n\r\n\twsBorrarFotoConDetalle(token, entidad, idContenido, fichero, nombreArchivo){\r\n\t\tconsole.log(\"servicios web para\");\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Authorization', 'Bearer ' + token);\r\n\t\treturn this.http.get(environment.ubimapsAPI + 'DeleteFotoDetalle' + '?idContenido=' + idContenido, { headers: headers }).map(res => res.json());\r\n\r\n\t}\r\n\r\n\t/* ** Subida FICHERO a CMS ** */\r\n\tpublic subirFicheroCMS(fichero, that?, user = environment.CMS_user_1, token = environment.CMS_token){\r\n\t\tthat = that !== undefined ? that : this;\r\n\r\n\t\tconsole.log('subirFicheroCMS fichero = ' + fichero);\r\n\t\tconst headers = new Headers();\r\n\t\theaders.append('Accept', 'application/json');\r\n\r\n\t\tif ( user + '' !== '' ) {\r\n\t\t\theaders.append('Bearer', token);\r\n\t\t\theaders.append('Access-Control-Allow-Origin', '*');\r\n\t\t}\r\n\r\n\t\tconst formData: FormData = new FormData();\r\n\t\tformData.append('data', fichero);\r\n\r\n\t\treturn that.http.post(environment.urlCMS, formData, { headers: headers })\r\n\t\t.map(res => {\r\n\t\t\tconst resp = res.json();\r\n\r\n\t\t\tconsole.log('RESPUESTA = ' + JSON.stringify(resp));\r\n\t\t\t// return Constantes.urlCMS + '/' + resp.docs[0].id;\r\n\r\n\t\t\tif (!resp.docs[0].externalURL) {\r\n\t\t\t\treturn environment.urlCMS + '/' + resp.docs[0].id;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn resp.docs[0].externalURL;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic subirFotosCMS(ficheroList: Foto[], user = environment.CMS_user_1, token = environment.CMS_token): Promise{\r\n\t\tconst fotosResp = [];\r\n\t\tif (ficheroList && ficheroList.length > 0) {\r\n\t\t\treturn this.subidaFicherosCMS(ficheroList, undefined, user, token)\r\n\t\t\t.then(function(respuestas) {\r\n\t\t\t\tconsole.log(respuestas);\r\n\t\t\t\trespuestas.forEach(element => {\r\n\t\t\t\t\tconst resp = element.json();\r\n\t\t\t\t\tconsole.log('RESPUESTA = ' + JSON.stringify(resp));\r\n\t\t\t\t\tconst fotoAux = new Foto();\r\n\r\n\t\t\t\t\tlet UUID = null;\r\n\t\t\t\t\tif(resp.docs[0].id){\r\n\t\t\t\t\t\tUUID = resp.docs[0].id;\r\n\t\t\t\t\t\tlet matches = resp.docs[0].id.match(/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/g);\r\n\t\t\t\t\t\tif (matches && matches.length > 0) {\r\n\t\t\t\t\t\t\tUUID = matches[0];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!resp.docs[0].externalURL) {\r\n\t\t\t\t\t\tfotoAux.IdFotoExt = UUID;\r\n\t\t\t\t\t\tfotoAux.UrlFotoExt = environment.urlCMS + '/' + resp.docs[0].id;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tfotoAux.IdFotoExt = UUID;\r\n\t\t\t\t\t\tfotoAux.UrlFotoExt = resp.docs[0].externalURL;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfotosResp.push(fotoAux);\r\n\t\t\t\t});\r\n\t\t\t\treturn fotosResp;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(fotosResp);\r\n\t\t}\r\n\t}\r\n\r\n\tsubirFicherosFromHTML(html){\r\n\t\tconst files = this.filesFromHTML(html);\r\n\t\treturn this.subidaFicherosCMS(files)\r\n\t\t.then(function (urls) {\r\n\t\t\tconsole.log('FICHEROS SUBIDOS: ');\r\n\t\t\tconsole.log(urls);\r\n\t\t\treturn urls;\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\tconsole.error('FICHEROS SUBIDOS ERROR: ' + error);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subidaFicherosCMS(ficheroList, that?, user = environment.CMS_user_1, token = environment.CMS_token){\r\n\t\tthat = that !== undefined ? that : this;\r\n\r\n\t\tconst promises: any[] = [];\r\n\r\n\t\tficheroList.forEach(fichero => {\r\n\t\t\tconst headers = new Headers();\r\n\t\t\theaders.append('Accept', 'application/json');\r\n\r\n\t\t\tif ( user + '' !== '' ) {\r\n\t\t\t\theaders.append('Bearer', token);\r\n\t\t\t\theaders.append('Access-Control-Allow-Origin', '*');\r\n\t\t\t}\r\n\r\n\t\t\tconst formData: FormData = new FormData();\r\n\t\t\tformData.append('data', fichero);\r\n\t\t\tpromises.push(that.http.post(environment.urlCMS, formData, { headers: headers }).toPromise());\r\n\t\t});\r\n\t\treturn Promise.all(promises);\r\n\t}\r\n\r\n\t/* ** Subida Base64 a CMS ** */\r\n\tpublic subirBase64CMS(Base64, nombreArchivo, type) {\r\n\t\t// const blob: Blob = this.dataURItoBlob(Base64, type);\r\n\t\t// this.blobToFile(blob, nombreArchivo + '.' + type);\r\n\t\tconst file: File = this.base64ToFileSync(Base64, nombreArchivo, type);\r\n\t\treturn this.subirFicheroCMS(file);\r\n\t}\r\n\r\n\r\n/* ** Gestion Imagen ** */\r\n\r\n\tgetImgBase64FromHTML(html: string){\r\n\t\tconst regex = /]+src=\"data:image\\/(.*?);base64,(.*?)\"[^\\>]*>/g;\r\n\t\tlet m;\r\n\t\tconst b64s = [];\r\n\t\twhile ( m = regex.exec( html ) ) {\r\n\t\t\tconst b64 = m[2] ;\r\n\t\t\tb64s.push(b64);\r\n\t\t}\r\n\t\treturn b64s;\r\n\t}\r\n\r\n\tgetImgSrcFromHTML(html: string){\r\n\t\tconst regex = /]+src=\"data:image\\/(.*?);base64,(.*?)\"[^\\>]*>/g;\r\n\t\tlet m;\r\n\t\tconst srcs = [];\r\n\t\twhile ( m = regex.exec( html ) ) {\r\n\t\t\tconst src = 'data:image/' + m[1] + ';base64,' + m[2] ;\r\n\t\t\tsrcs.push(src);\r\n\t\t}\r\n\t\treturn srcs;\r\n\t}\r\n\r\n\t// HTML a Files\r\n\tfilesFromHTML(html: string): File[]{\r\n\t\t// https://www.regextester.com/103676\r\n\t\tconst regex = /]+src=\"data:image\\/(.*?);base64,(.*?)\"[^\\>]*>/g;\r\n\t\tlet m;\r\n\t\tconst urls = [];\r\n\t\tconst tipos = [];\r\n\t\tconst files: File[] = [];\r\n\t\twhile ( m = regex.exec( html ) ) {\r\n\t\t\tconst tipo = 'image/' + m[1];\r\n\t\t\tconst b64 = m[2] ;\r\n\t\t\tconst nombreArchivo = Math.floor(Date.now() / 1000) + '';\r\n\t\t\tconst file: File = this.base64ToFileSync(b64, nombreArchivo, tipo);\r\n\t\t\tfiles.push(file);\r\n\t\t}\r\n\t\treturn files;\r\n\t}\r\n\r\n\r\n\t// Fichero a Base64\r\n\timageTobase64(file) {\r\n\t\tconst that = this;\r\n\t\tlet src = window.URL.createObjectURL(file);\r\n\t\t// Create a FileReader\r\n\t\tconst reader = new FileReader();\r\n\t\t// Add an event listener to deal with the file when the reader is complete\r\n\t\treader.addEventListener('load', (event: any) => {\r\n\t\t\t// Get the event.target.result from the reader (base64 of the image)\r\n\t\t\tsrc = event.target.result;\r\n\t\t\t// Push the img src (base64 string) into our array that we display in our html template\r\n\t\t\t// that.uploadedFilesAla.push(src);\r\n\t\t\tthis.onBase64Generated(src);\r\n\t\t}, false);\r\n\r\n\t\treturn reader.readAsDataURL(file);\r\n\t}\r\n\tonBase64Generated(img) {\r\n\t\tconsole.warn('Implementar: onBase64Generated');\r\n\t}\r\n\r\n\t// Base64 a Fichero\r\n\tbase64ToFile(base64, nombre, mimeType?){\r\n\t\tconst url = base64;\r\n\t\treturn fetch(url)\r\n\t\t.then(res => res.blob())\r\n\t\t.then(blob => {\r\n\t\t\tif (!mimeType) {\r\n\t\t\t\t// mimeType = 'image/jpeg';\r\n\t\t\t\tmimeType = blob.type;\r\n\t\t\t}\r\n\t\t\tconst file: any = new File([blob], nombre, {type: mimeType});\r\n\r\n\t\t\treturn file;\r\n\t\t});\r\n\t}\r\n\r\n\tbase64ToFileSync(base64, nombre, mimeType?){\r\n\t\tconst blob: Blob = this.dataURItoBlob(base64, mimeType);\r\n\t\tconst file: File = this.blobToFile(blob, nombre + '.' + mimeType);\r\n\t\treturn file;\r\n\t}\r\n\r\n\t// Base64 a Blob\r\n\tdataURItoBlob(base64, mimeString) {\r\n\t\t// convert base64/URLEncoded data component to raw binary data held in a string\r\n\t\tconst byteString = atob(base64);\r\n\t\t// write the bytes of the string to a typed array\r\n\t\tconst ia = new Uint8Array(byteString.length);\r\n\t\tfor (let i = 0; i < byteString.length; i++) {\r\n\t\t\tia[i] = byteString.charCodeAt(i);\r\n\t\t}\r\n\t\treturn new Blob([ia], {type: mimeString});\r\n\t}\r\n\r\n\t// Blob a Fichero\r\n\tblobToFile = (theBlob: Blob, fileName: string): File => {\r\n\t\tconst b: any = theBlob;\r\n\t\t// A Blob() is almost a File() - it's just missing the two properties below which we will add\r\n\t\tb.lastModifiedDate = new Date();\r\n\t\tb.name = fileName;\r\n\t\t// Cast to a File() type\r\n\t\treturn theBlob;\r\n\t}\r\n\r\n\t/* ** DESCARGA FICHERO LOCAL ** */\r\n\tdownloadFile(urlBase, fileName) {\r\n\t\treturn this.http\r\n\t\t.get(urlBase, {\r\n\t\tresponseType: ResponseContentType.Blob // ,\r\n\t\t// search: // query string if have\r\n\t\t})\r\n\t\t.map(res => {\r\n\t\treturn {\r\n\t\t\tfilename: fileName,\r\n\t\t\tdata: res.blob()\r\n\t\t};\r\n\t\t})\r\n\t\t.subscribe(res => {\r\n\t\t\tconsole.log('start download:', res);\r\n\t\t\tconst url = window.URL.createObjectURL(res.data);\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\tdocument.body.appendChild(a);\r\n\t\t\ta.setAttribute('style', 'display: none');\r\n\t\t\ta.href = url;\r\n\t\t\ta.download = res.filename;\r\n\t\t\ta.click();\r\n\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\ta.remove(); // remove the element\r\n\t\t}, error => {\r\n\t\t\tconsole.log('download error:', JSON.stringify(error));\r\n\t\t}, () => {\r\n\t\t\tconsole.log('Completed file download.');\r\n\t\t});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/providers/web-service-service/servicios-web-service.ts","\r\nimport { Injectable } from '@angular/core';\r\nimport { Contenido } from '../domain/Contenido';\r\nimport { Idioma } from '../domain/Idioma';\r\nimport { HistoricoLocalizacionContenido } from '../domain/HistoricoLocalizacionContenido';\r\nimport { CoincidenciasLocalizacionContenidos } from '../domain/CoincidenciasLocalizacionContenidos';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Observer } from 'rxjs/Observer';\r\nimport { Encuesta } from '../domain/Encuesta';\r\n\r\nexport class HojaXLS {\r\n columnas: any [];\r\n filas: any[];\r\n\r\n constructor() {\r\n this.filas = [];\r\n this.columnas = [];\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class Exportar {\r\n\r\n /**\r\n * Exporta xls\r\n * @param filas\r\n */\r\n public exportarXLS(hojaXLS: HojaXLS, nombreFichero: string) {\r\n try {\r\n this.generarXLS(hojaXLS, nombreFichero);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de encuestas \r\n * @param encuestas\r\n * @returns lista con objetos encuestas que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaEncuestas(encuestas: Encuesta[]): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const encuestasProcesadas = [];\r\n\r\n\r\n encuestas.forEach(element => {\r\n let fecha = new Date(element.fecha);\r\n const encuesta = {\r\n\t\t\t\t'Nombre': element.nombreEncuesta,\r\n 'Pregunta': element.formulacionPregunta,\r\n\t\t\t\t'Respuesta': element.formulacionRespuesta,\r\n 'TipoPregunta': element.tipoPregunta,\r\n 'Fecha': fecha.getFullYear() + '-' + ((fecha.getMonth() + 1)) + '-' + fecha.getDate() + ' ' +fecha.getHours() + ':' + fecha.getMinutes()+ ':' + fecha.getSeconds()\r\n\r\n };\r\n encuestasProcesadas.push(encuesta);\r\n });\r\n hoja.filas = encuestasProcesadas;\r\n hoja.columnas = [ 'Nombre','Pregunta','Respuesta','Tipo Pregunta','Fecha'];\r\n return hoja;\r\n }\r\n \r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de Localizacion en tiempo real\r\n * @param localizaciones\r\n * @returns lista con objetos informes que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaLocalizaciones(localizaciones: Contenido[]): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const localizacionesProcesadas = [];\r\n\r\n localizaciones.forEach(element => {\r\n const contenido = {\r\n\t\t\t\t'Elemento': element.Titulo,\r\n 'Descripcion': element.Descripcion,\r\n\t\t\t\t'Tipologia': element.Tipo,\r\n 'UltimaLocalizacion': this.formatearFecha(element.FechaUltimaLocalizacion),\r\n 'Localizacion': element.Localizacion\r\n //'FechaAlta': element.FechaAlta ? element.FechaAlta : '',\r\n\t\t\t\t//'FechaBaja': element.FechaBaja ? element.FechaBaja : '',\r\n\t\t\t\t// 'expirado': element.expirado,\r\n\r\n };\r\n localizacionesProcesadas.push(contenido);\r\n });\r\n hoja.filas = localizacionesProcesadas;\r\n hoja.columnas = [ 'Elemento','Descripción','Tipología','UltimaLocalizacion','Localizacion'];\r\n return hoja;\r\n }\r\n\r\n /**\r\n * Método para formatear fechas antes de exportar el contenido del informe\r\n */\r\n public formatearFecha(fecha){\r\n\r\n let fechaFormateada =\r\n (\"00\" + fecha.getUTCDate()).slice(-2) + \"/\" +\r\n (\"00\" + (fecha.getUTCMonth() + 1)).slice(-2) + \"/\" +\r\n fecha.getUTCFullYear() + \" \" +\r\n (\"00\" + fecha.getHours()).slice(-2) + \":\" +\r\n (\"00\" + fecha.getMinutes()).slice(-2);\r\n \r\n return fechaFormateada\r\n\r\n }\r\n\r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de Historico\r\n * @param historicos\r\n * @returns lista con objetos informes que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaLocahistoricos(historicos: HistoricoLocalizacionContenido[]): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const historicosProcesadas = [];\r\n historicos.forEach(element => {\r\n const HistoricoLocalizacionContenido = {\r\n 'Elemento': element.Elemento,\r\n 'descripcion': element.Descripcion,\r\n 'tipologia': element.Tipologias,\r\n 'FechaDesde': this.formatearFecha(element.FechaDesde),\r\n 'FechaHasta': this.formatearFecha(element.FechaHasta),\r\n 'Ala': element.Ala,\r\n 'Nivel': element.Nivel,\r\n 'Seccion': element.Seccion\r\n \r\n };\r\n historicosProcesadas.push(HistoricoLocalizacionContenido);\r\n });\r\n hoja.filas = historicosProcesadas;\r\n \r\n hoja.columnas = [ 'Elemento','Descripción','Tipología','FechaDesde','FechaHasta','Ala','Nivel','Seccion'];\r\n return hoja;\r\n }\r\n\r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de coincidencias\r\n * @param coincidencias\r\n * @returns lista con objetos informes que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaLocacoincidencias(coincidencias: CoincidenciasLocalizacionContenidos[]): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const coincidenciasProcesadas = [];\r\n\r\n coincidencias.forEach(element => {\r\n const coincidenciasLocalizacionContenidos = {\r\n 'Elemento1': element.Titulo_1,\r\n 'Elemento2': element.Titulo_2,\r\n 'Duracion': element.tiempo_coincidencia + ' minutos',\r\n 'FechaDesde' : this.formatearFecha(element.desde_max),\r\n 'FechaHasta': this.formatearFecha(element.hasta_min),\r\n 'Localizacion': element.Localizacion\r\n\r\n };\r\n coincidenciasProcesadas.push(coincidenciasLocalizacionContenidos);\r\n });\r\n hoja.filas = coincidenciasProcesadas;\r\n hoja.columnas = [ 'Elemento1', 'Elemento2', 'Duracion', 'FechaDesde' ,'FechaHasta' , 'Localizacion'];\r\n return hoja;\r\n }\r\n\r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de contenidos\r\n * @param contenidos\r\n * @returns lista con objetos contenido que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaContenidos(contenidos: Contenido[], idiomaSeleccionado: Idioma): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const contenidosProcesados = [];\r\n\r\n contenidos.forEach(element => {\r\n\r\n\t\t\tlet asignaciones = '';\r\n\t\t\telement.ElementoAsignado.forEach(elemento => {\r\n\t\t\t\tif (elemento.Tipo === 'SECCION') {\r\n\t\t\t\t\tasignaciones = asignaciones + ', ' + elemento.ENTIDAD.SECCION.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre;\r\n\t\t\t\t}\r\n\t\t\t\tif (elemento.Tipo === 'ALA') {\r\n\t\t\t\t\tasignaciones = asignaciones + ', ' + elemento.ENTIDAD.ALA.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre;\r\n\t\t\t\t}\r\n\t\t\t\tif (elemento.Tipo === 'NODO') {\r\n\t\t\t\t\tasignaciones = asignaciones + ', ' + elemento.ENTIDAD.NODO.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre;\r\n\t\t\t\t}\r\n\t\t\t\tif (elemento.Tipo === 'ESPACIO') {\r\n\t\t\t\t\tasignaciones = asignaciones + ', ' + elemento.ENTIDAD.ESPACIO.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n const contenido = {\r\n 'imagen': element.Imagen,\r\n\t\t\t\t'titulo': element.ENTIDAD.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre,\r\n\t\t\t\t'label': element.ENTIDAD.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).NombreCorto,\r\n\t\t\t\t'codigo': element.IdAlternativo,\r\n\t\t\t\t'tipologia': element.TIPOLOGIA_CONTENIDO.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Nombre,\r\n\t\t\t\t'descripcion': element.ENTIDAD.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).Descripcion,\r\n\t\t\t\t'detalle': element.ENTIDAD.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).htmlVisualizableDetalle,\r\n\t\t\t\t'AudioTexto': element.ENTIDAD.IDIOMAS.find( x => x.IdIdioma === idiomaSeleccionado.ENTIDAD.Id).AudioTexto,\r\n 'FechaAlta': element.FechaAlta ? element.FechaAlta : '',\r\n\t\t\t\t'FechaBaja': element.FechaBaja ? element.FechaBaja : '',\r\n\t\t\t\t// 'expirado': element.expirado,\r\n\t\t\t\t'asignado': asignaciones,\r\n\t\t\t\t'ala': element.ALA_PLANO.Nomobre,\r\n\t\t\t\t'xy': element.X + ', ' + element.Y,\r\n\t\t\t\t'latLon': element.Latitud + ', ' + element.Longitud\r\n };\r\n contenidosProcesados.push(contenido);\r\n });\r\n hoja.filas = contenidosProcesados;\r\n hoja.columnas = ['Imagen', 'Título', 'Texto en Plano', 'Código', 'Tipología', 'Descripción', 'Html Detalle', 'Audioguía', 'Alta', 'Baja', 'Asignado a:', 'Situado en:', 'Coordenadas Plano', 'Coordenadas GPS'];\r\n return hoja;\r\n }\r\n\r\n /**\r\n * Metodo que genera la hoja para la impresion del excel apartir de una lista de contenidosExportar del ws \r\n * @param contenidos\r\n * @returns lista con objetos contenido que solo tienen los campos que van a ser impresos en el excel\r\n */\r\n public generarHojaContenidosExportar(contenidosExportar: any[]): HojaXLS {\r\n const hoja: HojaXLS = new HojaXLS();\r\n const contenidosProcesados = [];\r\n\r\n contenidosExportar.forEach(element => {\r\n\r\n let asignaciones = '';\r\n\t\t\telement.Asignado.forEach(elemento => {\r\n\t\t\t\tasignaciones = asignaciones + ', ' + elemento;\r\n\t\t\t});\r\n\r\n const contenido = {\r\n 'imagen': element.Imagen,\r\n\t\t\t\t'titulo': element.Titulo,\r\n\t\t\t\t'label': element.NombreCorto,\r\n\t\t\t\t'codigo': element.IdAlternativo,\r\n\t\t\t\t'tipologia': element.Tipologia,\r\n\t\t\t\t'descripcion': element.Descripcion,\r\n\t\t\t\t'detalle': element.htmlVisualizableDetalle,\r\n\t\t\t\t'AudioTexto': element.AudioTexto,\r\n 'FechaAlta': element.FechaAlta ? element.FechaAlta : '',\r\n\t\t\t\t'FechaBaja': element.FechaBaja ? element.FechaBaja : '',\r\n\t\t\t\t// 'expirado': element.expirado,\r\n\t\t\t\t'asignado': element.Asignado,\r\n\t\t\t\t'ala': element.Situado,\r\n\t\t\t\t'xy': element.X + ', ' + element.Y,\r\n\t\t\t\t'latLon': element.Latitud + ', ' + element.Longitud\r\n };\r\n contenidosProcesados.push(contenido);\r\n });\r\n hoja.filas = contenidosProcesados;\r\n hoja.columnas = ['Imagen', 'Título', 'Texto en Plano', 'Código', 'Tipología', 'Descripción', 'Html Detalle', 'Audioguía', 'Alta', 'Baja', 'Asignado a:', 'Situado en:', 'Coordenadas Plano', 'Coordenadas GPS'];\r\n return hoja;\r\n }\r\n\r\n \r\n /**\r\n * Metodo privado que genera el excel\r\n * @param hojaXLS\r\n */\r\n private generarXLS(hojaXLS: HojaXLS, nombreFichero: string) {\r\n let i = 0;\r\n \r\n if (!nombreFichero || nombreFichero === '') {\r\n nombreFichero = 'Hoja.xlsx';\r\n }\r\n if (!hojaXLS.filas || hojaXLS.filas.length === 0) {\r\n console.error('Lista de filas vacia');\r\n } else{\r\n\t\t\tconst objetoMuestra = hojaXLS.filas[0];\r\n let query = 'SELECT ';\r\n Object.keys(objetoMuestra).forEach(function(key, index) {\r\n let columna = key;\r\n try {\r\n columna = hojaXLS.columnas[i].header;\r\n if (!columna) {\r\n columna = key;\r\n }\r\n } catch (error) {\r\n columna = key;\r\n }\r\n\r\n query += key + ' as ' + '[' + columna + '], ' ;\r\n i += 1;\r\n });\r\n\r\n query = query.substring(0, query.length - 2);\r\n query += \" INTO XLSX ('\" + nombreFichero + \".xlsx',{headers:true}) FROM ?\";\r\n alasql(query,[hojaXLS.filas]);\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/service/exportar.service.ts","String.prototype.normalizar = normalizar;\r\n\r\ninterface String {\r\n normalizar: typeof normalizar;\r\n}\r\n\r\nfunction normalizar() {\r\n let salida = this;\r\n salida = salida\r\n .normalize('NFD')\r\n .replace(/([^n\\u0300-\\u036f]|n(?!\\u0303(?![\\u0300-\\u036f])))[\\u0300-\\u036f]+/gi, '$1')\r\n .normalize();\r\n return salida;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/string-prototypes.ts","module.exports = \"\\r\\n\\r\\n \\r\\n\\t\\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      {{'Beacons.editarbaliza' | translate}}
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n\\t\\r\\n\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{\\\"Beacons.beacons\\\" | translate }}

      \\r\\n\\r\\n \\r\\n \\r\\n {{\\\"Beacons.listaBalizas\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n {{'Beacons.BateriaHeader' | translate}} ≤ {{nivelBateriaFilter}}\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field] }} %\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field] }}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{rowData[col.field].Nombre}}\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field] | date: this.translate.instant('General.fermatofechaSinHorapipe') }}\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field] | date: this.translate.instant('General.fermatofechaSinHorapipe') }}\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field] | date: this.translate.instant('General.fermatofechaSinHorapipe') }}\\r\\n
      \\r\\n
      \\r\\n {{ this.getDate(rowData[col.field]) | date: this.translate.instant('General.fermatofechapipe')}}\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n {{ ele.Nombre }}\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.html\n// module id = ../../../../../src/app/views/Beacons/Beacons.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* IdHardware */\\n/* Descripcion */\\n/* Bateria */\\n/* Potencia */\\n/* Fecha Instalacion */\\n/* Fecha Alta */\\n/* Fecha Baja */\\n/* Fecha Lectura */\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.scss\n// module id = ../../../../../src/app/views/Beacons/Beacons.component.scss\n// module chunks = main","import { IdiomaService } from './../../providers/idioma/idioma.service';\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DiagnosticoService } from '../../providers/diagnostico/diagnostico.service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { TranslateService } from 'ng2-translate/src/translate.service';\r\nimport { Predicate } from 'breeze-client';\r\nimport { BalizaFormulario } from '../../domain/BalizaFormulario';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { AppComponent } from '../../app.component';\r\n\r\n@Component({\r\n templateUrl: './Beacons.component.html',\r\n styles: [`\r\n .cars-datalist ul {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n @media (max-width:640px) {\r\n .cars-datalist .text-column {\r\n text-align: center;\r\n }\r\n }\r\n `],\r\n styleUrls: ['./Beacons.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class BeaconsComponent implements OnInit {\r\n\r\n\tpublic displayDialog: boolean = true;\r\n\r\n\tspinner: HTMLElement;\r\n\tbalizas: any[] = [];\r\n\tbalizasFiltradas: any[] = [];\r\n\tidHardwareBalizas: any[] = [];\r\n\r\n\tcols_balizas: any[] = [];\r\n\r\n\ttimeout: any;\r\n\tnivelBateriaFilter: number;\r\n\r\n\tidiomaCalendario: IdiomaCalendario ;\r\n\r\n\tfechaInstalacion_DesdeFilter: Date;\r\n\tfechaInstalacion_HastaFilter: Date;\r\n\r\n\tfechaAlta_DesdeFilter: Date;\r\n\tfechaAlta_HastaFilter: Date;\r\n\r\n\tfechaBaja_DesdeFilter: Date;\r\n\tfechaBaja_HastaFilter: Date;\r\n\r\n\tsecciones_filter: string;\r\n\tbateria_filter: string;\r\n\r\n\ttimestampLecturaBateria_DesdeFilter: Date;\r\n\ttimestampLecturaBateria_HastaFilter: Date;\r\n\r\n\tinitOrder: string;\r\n\r\n\tpublic tipologiasBaliza = [];\r\n\tpublic tipologiasBalizaSeleccionada = this.tipologiasBaliza[0];\r\n\ttipologia_filter: any;\r\n\r\n\tdisplayDialogBaliza: boolean = false;\r\n\tbalizaSeleccionada: BalizaFormulario = new BalizaFormulario();\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tpublic DIAG: DiagnosticoService,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tpublic router: Router,\r\n\t\tprivate route: ActivatedRoute) {\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Beacons.beacons')\r\n\t\t\t}\r\n\t\t]);\r\n\t\tthis.cols_balizas = [\r\n\t\t\t{ field: 'IdHardware', header: this.translate.instant('Beacons.IdHardwareHeader'), visible: true },\r\n\t\t\t{ field: 'DescInstalacion', header: this.translate.instant('Beacons.DescripcionHeader'), visible: true },\r\n\t\t\t{ field: 'TIPOLOGIA_BALIZA', header: this.translate.instant('Beacons.tipologia'), visible: true }, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TipologiaNombre', header: '', visible: false, width: '0%' },\r\n\t\t\t{ field: 'NivelBateria', header: this.translate.instant('Beacons.BateriaHeader'), visible: true },\r\n\t\t\t// { field: 'potenciaTx', header: this.translate.instant('Beacons.PotenciaHeader'), visible: true },\r\n\t\t\t{ field: 'FechaInstalacion', header: this.translate.instant('Beacons.InstalacionHeader'), visible: true },\r\n\t\t\t{ field: 'FechaAlta', header: this.translate.instant('Formularios.fechaalta'), visible: true },\r\n\t\t\t{ field: 'FechaBaja', header: this.translate.instant('Formularios.fechabaja'), visible: true },\r\n\t\t\t{ field: 'TimestampLecturaBateria', header: this.translate.instant('Beacons.UltimaHeader'), visible: true },\r\n\t\t\t{ field: 'SECCIONES', header: this.translate.instant('Beacons.SeccionesHeader'), visible: true }\r\n\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.obtenerBalizas();\r\n\t\tthis.obtenerBalizasTotales();\r\n\r\n\t\tthis.route.queryParams\r\n\t\t\t.subscribe(params => {\r\n\t\t\t\tthis.initOrder = params['order'];\r\n\t\t\t});\r\n\t}\r\n\r\n\tobtenerBalizas() {\r\n\t\tconst that = this;\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\t// const where = new Predicate ('NODOS', 'any', 'NODO.SECCION.ALA.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\t// const where = new Predicate ('ALA_PLANO.NIVEL.ESPACIO.Id', '==', idEspacio);\r\n\t\tconst where = new Predicate ('EspacioPertenencia', '==', idEspacio);\r\n\t\tconst includes = 'NODOS.NODO.SECCION.ALA.NIVEL.ESPACIO, ALA_PLANO.NIVEL.ESPACIO, TIPOLOGIA_BALIZA';\r\n\t\treturn this.entityManager.getBALIZA(where, includes)\r\n\t\t.then(function(BALIZAs){\r\n\t\t\tthat.balizas = [];\r\n\t\t\tBALIZAs.forEach(element => {\r\n\t\t\t\t\tconst baliza = new BalizaFormulario().fromENTIDAD(element);\r\n\t\t\t\t\tthat.balizas.push(baliza);\r\n\t\t\t\t});\r\n\t\t\tthat.balizasFiltradas = that.balizas;\r\n\t\t\t\t\r\n\t\t\treturn that.obtenerTIPOLOGIA_BALIZA();\r\n\t\t})\r\n\t\t.then(function(tipologias){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerTIPOLOGIA_BALIZA() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\treturn entityManager.getTIPOLOGIA_BALIZA(undefined, undefined)\r\n\t\t\t.then(function (entidades) {\r\n\t\t\t\tthat.tipologiasBaliza = entidades;\r\n\r\n\t\t\t\tthat.tipologiasBaliza = entidades;\r\n\t\t\t\tif (that.tipologiasBaliza && that.tipologiasBaliza.length > 0) {\r\n\t\t\t\t\tthat.tipologiasBaliza.sort((one: any, two: any) => {\r\n\t\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst tipologia_todas = {\r\n\t\t\t\t\tNombre: that.translate.instant('Contenidos.estadoTodos')\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthat.tipologiasBaliza.unshift(tipologia_todas);\r\n\t\t\t});\r\n\t}\r\n\r\n\tobtenerBalizasTotales() {\r\n\t\tconst that = this;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\treturn this.entityManager.getBALIZA()\r\n\t\t.then(function(BALIZAs){\r\n\r\n\t\t\tBALIZAs.forEach(element => {\r\n\t\t\t\t\tconst baliza = new BalizaFormulario().fromENTIDAD(element);\r\n\t\t\t\t\tthat.idHardwareBalizas.push(baliza.IdHardware);\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t});\r\n\t}\r\n\r\n\tgetDate(timestamp){\r\n\t\tlet fecha = undefined;\r\n\t\tif (timestamp){\r\n\t\t\tconst anio = timestamp.slice(0, 4);\r\n\t\t\tconst mes = timestamp.slice(4, 6) - 1;\r\n\t\t\tconst dia = timestamp.slice(6, 8);\r\n\t\t\tconst hora = timestamp.slice(8, 10);\r\n\t\t\tconst min = timestamp.slice(10, 12);\r\n\r\n\t\t\tfecha = new Date(anio, mes, dia, hora, min);\r\n\t\t}\r\n\r\n\t\treturn fecha;\r\n\t}\r\n\r\n\tonTipologiaChange(event, dt) {\r\n\t\tthis.filtrarTabla(dt, event, 'TIPOLOGIA_BALIZA', 'equals');\r\n\t}\r\n\r\n\tonNivelbateriaChange(event, dt) {\r\n\t\tthis.filtrarTabla(dt, event, 'NivelBateria', 'le');\r\n\t}\r\n\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif(event){\r\n\t\t\t\tevent.setHours(23,59,59,0);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif(event){\r\n\t\t\t\tevent.setHours(0,0,0,0);\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.log(event)\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tfecha.setHours(23,59,59,0);\r\n\t\t}\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tfecha.setHours(0,0,0,0);\r\n\t\t}\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\tonSeccionChange(dt, event, columna, tipo){\r\n\t\t// Centralizamos el filtrado\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\r\n\t\tconst that = this;\r\n\t\tthis.balizasFiltradas = this.balizas;\r\n\r\n\t\t// Filtro nivel Bateria\r\n\t\tif (columna === 'NivelBateria') {\r\n\t\t\tthis.bateria_filter = event.value;\r\n\t\t\tif (tipo === 'le') {\r\n\t\t\t\tdt.filter(event.value + 1, columna, 'lt');\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tdt.filter(event.value, columna, tipo);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Filtro Tipologia\r\n\t\tif (columna === 'TIPOLOGIA_BALIZA') {\r\n\t\t\tif (event.value.Nombre !== this.translate.instant('Contenidos.estadoTodos') ) {\r\n\t\t\t\tthis.tipologia_filter = event.value;\r\n\t\t\t\tdt.filter(event.value.Nombre, 'TipologiaNombre', tipo);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tdt.filter(event.value.Nombre, 'TipologiaNombre', 'notEquals');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'FechaInstalacion') {\r\n\t\t\t\tthis.fechaInstalacion_DesdeFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaAlta') {\r\n\t\t\t\tthis.fechaAlta_DesdeFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaBaja') {\r\n\t\t\t\tthis.fechaBaja_DesdeFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'TimestampLecturaBateria') {\r\n\t\t\t\tthis.timestampLecturaBateria_DesdeFilter = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'FechaInstalacion') {\r\n\t\t\t\tthis.fechaInstalacion_HastaFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaAlta') {\r\n\t\t\t\tthis.fechaAlta_HastaFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'FechaBaja') {\r\n\t\t\t\tthis.fechaBaja_HastaFilter = event;\r\n\t\t\t}\r\n\t\t\tif (columna === 'TimestampLecturaBateria') {\r\n\t\t\t\tthis.timestampLecturaBateria_HastaFilter = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.log(that.fechaInstalacion_DesdeFilter)\r\n\t\tconsole.log(that.fechaInstalacion_HastaFilter)\r\n\t\t// Aplicamos filtro FechaInstalacion\r\n\t\tthis.balizasFiltradas = this.balizasFiltradas.filter(function (bal) {\r\n\t\t\tconsole.log(bal)\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.fechaInstalacion_DesdeFilter === undefined || that.fechaInstalacion_DesdeFilter === null) &&\r\n\t\t\t\t(that.fechaInstalacion_HastaFilter === undefined || that.fechaInstalacion_HastaFilter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.fechaInstalacion_DesdeFilter !== undefined && that.fechaInstalacion_DesdeFilter !== null ) {\r\n\t\t\t\tflagDesde = that.fechaInstalacion_DesdeFilter < bal.FechaInstalacion;\r\n\t\t\t}\r\n\t\t\tif (that.fechaInstalacion_HastaFilter !== undefined && that.fechaInstalacion_HastaFilter !== null) {\r\n\t\t\t\tflagHasta = that.fechaInstalacion_HastaFilter > bal.FechaInstalacion;\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaAlta\r\n\t\tthis.balizasFiltradas = this.balizasFiltradas.filter(function (bal) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.fechaAlta_DesdeFilter === undefined || that.fechaAlta_DesdeFilter === null) &&\r\n\t\t\t\t(that.fechaAlta_HastaFilter === undefined || that.fechaAlta_HastaFilter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.fechaAlta_DesdeFilter !== undefined && that.fechaAlta_DesdeFilter !== null ) {\r\n\t\t\t\tflagDesde = that.fechaAlta_DesdeFilter < bal.FechaAlta;\r\n\t\t\t}\r\n\t\t\tif (that.fechaAlta_HastaFilter !== undefined && that.fechaAlta_HastaFilter !== null) {\r\n\t\t\t\tflagHasta = that.fechaAlta_HastaFilter > bal.FechaAlta;\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro FechaBaja\r\n\t\tthis.balizasFiltradas = this.balizasFiltradas.filter(function (bal) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.fechaBaja_DesdeFilter === undefined || that.fechaBaja_DesdeFilter === null) &&\r\n\t\t\t\t(that.fechaBaja_HastaFilter === undefined || that.fechaBaja_HastaFilter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.fechaBaja_DesdeFilter !== undefined && that.fechaBaja_DesdeFilter !== null ) {\r\n\t\t\t\tflagDesde = that.fechaBaja_DesdeFilter < bal.FechaBaja;\r\n\t\t\t}\r\n\t\t\tif (that.fechaBaja_HastaFilter !== undefined && that.fechaBaja_HastaFilter !== null) {\r\n\t\t\t\tflagHasta = that.fechaBaja_HastaFilter > bal.FechaBaja;\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\t// Aplicamos filtro TimestampLecturaBateria\r\n\t\tthis.balizasFiltradas = this.balizasFiltradas.filter(function (bal) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.timestampLecturaBateria_DesdeFilter === undefined || that.timestampLecturaBateria_DesdeFilter === null) &&\r\n\t\t\t\t(that.timestampLecturaBateria_HastaFilter === undefined || that.timestampLecturaBateria_HastaFilter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.timestampLecturaBateria_DesdeFilter !== undefined && that.timestampLecturaBateria_DesdeFilter !== null ) {\r\n\t\t\t\tif (bal.TimestampLecturaBateria) {\r\n\t\t\t\t\tflagDesde = that.timestampLecturaBateria_DesdeFilter < that.idiomaService.timastampToDate(bal.TimestampLecturaBateria);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (that.timestampLecturaBateria_HastaFilter !== undefined && that.timestampLecturaBateria_HastaFilter !== null) {\r\n\t\t\t\tif (bal.TimestampLecturaBateria) {\r\n\t\t\t\t\tflagHasta = that.timestampLecturaBateria_HastaFilter > that.idiomaService.timastampToDate(bal.TimestampLecturaBateria);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\t\tthis.balizasFiltradas = this.balizasFiltradas.filter(function (bal) {\r\n\t\t\tif ((that.secciones_filter === undefined)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.secciones_filter !== undefined && that.secciones_filter !== null ) {\r\n\r\n\t\t\t\tconst encontrado = bal.SECCIONES.find( x => x.Nombre.includes(that.secciones_filter));\r\n\t\t\t\tif (encontrado) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tonBalizaSelect(bal){\r\n\t\tconsole.log(this.balizaSeleccionada);\r\n\t\tthis.balizaSeleccionada.FechaLecturaBateria = this.getDate(this.balizaSeleccionada.TimestampLecturaBateria)\r\n\t\tthis.displayDialogBaliza = !this.displayDialogBaliza;\r\n\t}\r\n\r\n\t// FORMULARIO BALIZA\r\n\r\n\tonBeaconGuardado(event){\r\n\t\tconsole.log(event)\r\n\t\tconst result = event.result;\r\n\t\tif (result === true) {\r\n\t\t\tthis.onFormularioBalizaCerrado(undefined);\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.contenidoguardadook'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.contenidoguardadoerror'));\r\n\t\t}\r\n\t}\r\n\r\n\tonBeaconEliminado(event){\r\n\t\tconst result = event.result;\r\n\t\tconst balizaFormulario: BalizaFormulario = event.element;\r\n\t\tif (result === true) {\r\n\r\n\t\t\tconst that = this;\r\n\t\t\tthis.obtenerBalizas()\r\n\t\t\t.then(() => {\r\n\t\t\t\tthat.onFormularioBalizaCerrado(undefined);\r\n\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mapas.balizaeliminadook'));\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.balizaeliminadoerror'));\r\n\t\t}\r\n\t}\r\n\r\n\tonFormularioBalizaAbierto (evento){\r\n\t}\r\n\r\n\tonFormularioBalizaCerrado(event){\r\n\r\n\t\tconsole.log('onFormularioBalizaCerrado');\r\n\r\n\t\tthis.desmarcarBalizas();\r\n\r\n\t\tif (this.displayDialogBaliza) { // Descartado\r\n\t\t\tif (this.balizaSeleccionada.ENTIDAD) {\r\n\t\t\t\t// TODO: ver si tenemos que restaurar algun dato tras cerrar sin guardar\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.displayDialogBaliza = false;\r\n\t}\r\n\r\n\tdesmarcarBalizas() {\r\n\t\tconsole.log('Method not implemented.');\r\n\t\tlet dummySelectedRow = Object.assign([], this.balizaSeleccionada);\r\n dummySelectedRow.splice(0, 1);\r\n this.balizaSeleccionada = dummySelectedRow;\r\n\t}\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Beacons/Beacons.component.ts","module.exports = \"
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{urlModeloSeleccionada}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\t\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{urlModeloSeleccionada}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{urlPlanoSeleccionada}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Diagnostico

      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Reparación

      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Migración

      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Resultado

      \\r\\n
      \\r\\n ...\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.html\n// module id = ../../../../../src/app/views/BreezeTest/BreezeTest.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.scss\n// module id = ../../../../../src/app/views/BreezeTest/BreezeTest.component.scss\n// module chunks = main","import { entidadesModuleRoutes } from './../../modules/entidades.module';\r\nimport { AppComponent } from './../../app.component';\r\nimport {Component, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport { DiagnosticoService } from '../../providers/diagnostico/diagnostico.service';\r\nimport { allSettled } from 'q';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosStatsProvider } from '../../providers/web-service-service/servicios-stats';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n templateUrl: './BreezeTest.component.html',\r\n styles: [`\r\n .cars-datalist ul {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n @media (max-width:640px) {\r\n .cars-datalist .text-column {\r\n text-align: center;\r\n }\r\n }\r\n `],\r\n styleUrls: ['./BreezeTest.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class BreezeTestComponent implements OnInit {\r\n\tspinner: HTMLElement;\r\n\r\n\tselectorImagenModelo: any;\r\n\tmodeloSeleccionada: any;\r\n\turlModeloSeleccionada: string;\r\n\r\n\tselectorImagenPlano: any;\r\n\tplanoSeleccionada: any;\r\n\turlPlanoSeleccionada: string;\r\n\tselectorImagen: any;\r\n\tImagenSeleccionada: any;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tpublic DIAG: DiagnosticoService,\r\n\t\tpublic authenticationService: AuthenticationService,\r\n\t\tpublic entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic STAT: ServiciosStatsProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService\r\n\t) {\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('MenuLateral.Diagnostico') }\r\n\t\t]);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t}\r\n\r\n\r\n/* CONEXIONES_NODO */\r\n\tcomprobarConexiones(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.DIAG.pintarDiagnosticoCONEXIONES_NODOs()\r\n\t\t.then(function (){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n/* MIGRAR BASES de DATOS */\r\n\tmigrarEstadisticas(){\r\n\t\tconst idEntidad = this.authenticationService.getIdEntidad();\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tthis.STAT.migrarBDStat(token, idEntidad);\r\n\t}\r\n\r\n\tmigrarBD_IT_EVERPATHS(){\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.sws.wsMigrarBD(token).toPromise()\r\n\t\t.then(function(Initialized){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.limpiar('BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, 'BD_IT', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, Initialized, 'BreezeBody');\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t\tthis.appComponent.showWarn('mensaje', 'Migrar BD_IT automaticamente, Proximamente ...');\r\n\t}\r\n\r\n\tmigrarBBDD_EVERPATHS(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\treturn this.sws.wsMigrarBBDD().toPromise()\r\n\t\t.then(function (Initialized){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.limpiar('BreezeBody');\r\n\r\n\t\t\tInitialized.lista.forEach(element => {\r\n\t\t\t\tthat.DIAG.escribir(1, 'BASE DE DATOS: ' + element, 'BreezeBody');\r\n\t\t\t});\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\tmigrarBD_EVERPATHS(){\r\n\t\tconst that = this;\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tconst idEntidad = this.authenticationService.getIdEntidad();\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\treturn this.sws.wsMigrarBD(token, idEntidad).toPromise()\r\n\t\t.then(function (Initialized) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.limpiar('BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, 'BASE DE DATOS: ' + idEntidad, 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, Initialized, 'BreezeBody');\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\r\n/* CONTENIDO */\r\n\tcomprobarContenidos(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\treturn this.DIAG.pintarDiagnosticoCONTENIDOs()\r\n\t\t.then(function (){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\trepararContenidos(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.DIAG.repararContenidos()\r\n\t\t.then(function (){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tgeoposicionarContenidos(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tlet contenidosPosicionar;\r\n\t\tconst promises: any[] = [];\r\n\t\tthis.entityManager.getCONTENIDO()\r\n\t\t.then(function (contenidos){\r\n\t\t\tcontenidosPosicionar = contenidos;\r\n\t\t\tfor (let index = 0; index < contenidos.length; index++) {\r\n\t\t\t\tconst cont = contenidos[index];\r\n\t\t\t\tpromises.push(\r\n\t\t\t\t\tthat.sws.wsObtenerLLFromXY(token, cont.X, cont.Y, cont.EspacioPertenencia, cont.IdAlaPlano).toPromise()\r\n\t\t\t\t\t.then(function(LL){\r\n\t\t\t\t\t\tcont.Latitud = LL.Latitud;\r\n\t\t\t\t\t\tcont.Longitud = LL.Longitud;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function(e){\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\t\tconst codigo = e.status;\r\n\t\t\t\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\tthat.DIAG.limpiar('BreezeBody');\r\n\t\t\tcontenidosPosicionar.forEach(element => {\r\n\t\t\t\tthat.DIAG.escribir(1, 'Contenido: ' + element.Titulo, 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'X: ' + element.X , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Y: ' + element.Y , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Latitud: ' + element.Latitud , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Longitud: ' + element.Longitud , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t});\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\tgeoposicionarNoodos(){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tlet nodoosPosicionar;\r\n\t\tconst promises: any[] = [];\r\n\t\tconst idEspacioo = this.authenticationService.getIdEspacio();\r\n\t\tthis.entityManager.getNODO(undefined, 'SECCION.ALA.NIVEL.ESPACIO')\r\n\t\t.then(function (noodos){\r\n\t\t\tnodoosPosicionar = noodos;\r\n\t\t\tfor (let index = 0; index < noodos.length; index++) {\r\n\t\t\t\tconst noodo = noodos[index];\r\n\t\t\t\tpromises.push(\r\n\t\t\t\t\tthat.sws.wsObtenerLLFromXY(token, noodo.X, noodo.Y, idEspacioo, noodo.SECCION.ALA.Id).toPromise()\r\n\t\t\t\t\t.then(function(LL){\r\n\t\t\t\t\t\tnoodo.Latitud = LL.Latitud;\r\n\t\t\t\t\t\tnoodo.Longitud = LL.Longitud;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function(e){\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t\t\t\tconst codigo = e.status;\r\n\t\t\t\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\tthat.DIAG.limpiar('BreezeBody');\r\n\t\t\tnodoosPosicionar.forEach(element => {\r\n\t\t\t\tthat.DIAG.escribir(1, 'Nodos: ' + element.Nombre, 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'X: ' + element.X , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Y: ' + element.Y , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Latitud: ' + element.Latitud , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, 'Longitud: ' + element.Longitud , 'BreezeBody');\r\n\t\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\t});\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\trepararIdiomas(){\r\n\t\tconst that = this;\r\n\t\tconst token = this.authenticationService.getToken();\r\n\t\tconst idEntidad = this.authenticationService.getIdEntidad();\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\treturn this.sws.RepararIdiomas(token, idEntidad).toPromise()\r\n\t\t.then(function(res){\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = res.msg;\r\n\t\t\tthat.DIAG.escribir(0, ' -- Respuesta: ' + codigo, 'BreezeBody');\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tthat.DIAG.escribir(1, '.', 'BreezeBody');\r\n\t\t\tconst codigo = e.status;\r\n\t\t\tthat.DIAG.escribir(0, ' -- CODIGO ERROR: ' + codigo, 'BreezeBody');\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/* ** Metodos de GroupForm ** */\r\n\tonFileSelectModelo($event, fileUploadComponentAla, selector) {\r\n\t\tif (selector === 'modelo3d') {\r\n\t\t\tconst that = this;\r\n\t\t\tthis.selectorImagenModelo = fileUploadComponentAla;\r\n\t\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\t\tthis.modeloSeleccionada = $event.files[0];\r\n\t\t\tthis.subirModelo3d(this.modeloSeleccionada)\r\n\t\t\t.then(function(urlImagen) {\r\n\t\t\t\tthat.urlModeloSeleccionada = urlImagen;\r\n\t\t\t\tconsole.log(\"URL_MODELO: \" + that.urlModeloSeleccionada);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (selector === 'plano') {\r\n\t\t\tconst that = this;\r\n\t\t\tthis.selectorImagenPlano = fileUploadComponentAla;\r\n\t\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\t\tthis.planoSeleccionada = $event.files[0];\r\n\t\t\tthis.subirSvgPlano(this.planoSeleccionada)\r\n\t\t\t.then(function(urlImagen) {\r\n\t\t\t\tthat.urlPlanoSeleccionada = urlImagen;\r\n\t\t\t\tconsole.log(\"PLANO: \" + that.urlPlanoSeleccionada);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (selector === 'imagen') {\r\n\t\t\tconst that = this;\r\n\t\t\tthis.selectorImagen = fileUploadComponentAla;\r\n\t\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\t\tthis.ImagenSeleccionada = $event.files[0];\r\n\t\t\tthis.subirFotosCMS(this.ImagenSeleccionada);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic subirModelo3d(ModeloSeleccionada) {\r\n\t\tif (ModeloSeleccionada) {\r\n\t\t\treturn this.sws.subirFicheroCMS(ModeloSeleccionada, undefined, environment.CMS_3d_model_user_1, environment.CMS_3d_model_token).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\tpublic subirSvgPlano(plano) {\r\n\t\tif (plano) {\r\n\t\t\treturn this.sws.subirFicheroCMS(plano, undefined, environment.CMS_user_1, environment.CMS_token).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\r\n\tpublic subirFotosCMS(fotoSeleccionada) {\r\n\t\tif (fotoSeleccionada) {\r\n\t\t\treturn this.sws.subirFotosCMS([fotoSeleccionada])\r\n\t\t\t.then(function(resp) {\r\n\t\t\t\tconsole.log(resp);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve('done');\r\n\t\t}\r\n\t}\r\n\r\n\t/* PRUEBAS IMAGEN Y BASE64\r\n\tsubirBase64(b64, nombre, tipo) {\r\n\t\tif (!b64) {\r\n\t\t\tb64 = \"//48AD8AeABtAGwAIAB2AGUAcgBzAGkAbwBuAD0AIgAxAC4AMAAiACAAZQBuAGMAbwBkAGkAbgBnAD0AIgBVAFQARgAtADEANgAiAD8APgANAAoAPAAhAEQATwBDAFQAWQBQAEUAIABzAHYAZwAgAFAAVQBCAEwASQBDACAAIgAtAC8ALwBXADMAQwAvAC8ARABUAEQAIABTAFYARwAgADEALgAxAC8ALwBFAE4AIgAgACIAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcAMwAuAG8AcgBnAC8ARwByAGEAcABoAGkAYwBzAC8AUwBWAEcALwAxAC4AMQAvAEQAVABEAC8AcwB2AGcAMQAxAC4AZAB0AGQAIgA+AA0ACgA8ACEALQAtACAAQwByAGUAYQB0AG8AcgA6ACAAQwBvAHIAZQBsAEQAUgBBAFcAIABYADcAIAAtAC0APgANAAoAPABzAHYAZwAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcAMwAuAG8AcgBnAC8AMgAwADAAMAAvAHMAdgBnACIAIAB4AG0AbAA6AHMAcABhAGMAZQA9ACIAcAByAGUAcwBlAHIAdgBlACIAIAB3AGkAZAB0AGgAPQAiADMANQBwAHgAIgAgAGgAZQBpAGcAaAB0AD0AIgAzADUAcAB4ACIAIAB2AGUAcgBzAGkAbwBuAD0AIgAxAC4AMQAiACAAcwB0AHkAbABlAD0AIgBzAGgAYQBwAGUALQByAGUAbgBkAGUAcgBpAG4AZwA6AGcAZQBvAG0AZQB0AHIAaQBjAFAAcgBlAGMAaQBzAGkAbwBuADsAIAB0AGUAeAB0AC0AcgBlAG4AZABlAHIAaQBuAGcAOgBnAGUAbwBtAGUAdAByAGkAYwBQAHIAZQBjAGkAcwBpAG8AbgA7ACAAaQBtAGEAZwBlAC0AcgBlAG4AZABlAHIAaQBuAGcAOgBvAHAAdABpAG0AaQB6AGUAUQB1AGEAbABpAHQAeQA7ACAAZgBpAGwAbAAtAHIAdQBsAGUAOgBlAHYAZQBuAG8AZABkADsAIABjAGwAaQBwAC0AcgB1AGwAZQA6AGUAdgBlAG4AbwBkAGQAIgANAAoAdgBpAGUAdwBCAG8AeAA9ACIAMAAgADAAIAAzADUAMAAwADAAIAAzADUAMAAwADAAIgANAAoAIAB4AG0AbABuAHMAOgB4AGwAaQBuAGsAPQAiAGgAdAB0AHAAOgAvAC8AdwB3AHcALgB3ADMALgBvAHIAZwAvADEAOQA5ADkALwB4AGwAaQBuAGsAIgA+AA0ACgAgADwAZABlAGYAcwA+AA0ACgAgACAAPABzAHQAeQBsAGUAIAB0AHkAcABlAD0AIgB0AGUAeAB0AC8AYwBzAHMAIgA+AA0ACgAgACAAIAA8ACEAWwBDAEQAQQBUAEEAWwANAAoAIAAgACAAIAAuAGYAaQBsADAAIAB7AGYAaQBsAGwAOgBuAG8AbgBlAH0ADQAKACAAIAAgACAALgBmAGkAbAAxACAAewBmAGkAbABsADoAIwBGAEYANgBFADAAMAB9AA0ACgAgACAAIAAgAC4AZgBpAGwAMgAgAHsAZgBpAGwAbAA6AHcAaABpAHQAZQB9AA0ACgAgACAAIABdAF0APgANAAoAIAAgADwALwBzAHQAeQBsAGUAPgANAAoAIAA8AC8AZABlAGYAcwA+AA0ACgAgADwAZwAgAGkAZAA9ACIAQwBhAHAAYQBfAHgAMAAwADIAMABfADEAIgA+AA0ACgAgACAAPABtAGUAdABhAGQAYQB0AGEAIABpAGQAPQAiAEMAbwByAGUAbABDAG8AcgBwAEkARABfADAAQwBvAHIAZQBsAC0ATABhAHkAZQByACIALwA+AA0ACgAgACAAPAByAGUAYwB0ACAAYwBsAGEAcwBzAD0AIgBmAGkAbAAwACIAIAB3AGkAZAB0AGgAPQAiADMANQAwADAAMAAiACAAaABlAGkAZwBoAHQAPQAiADMANQAwADAAMAAiAC8APgANAAoAIAAgADwAcABhAHQAaAAgAGMAbABhAHMAcwA9ACIAZgBpAGwAMQAiACAAZAA9ACIATQAzADIAOAA4ADAAIAAzADIAOAA4ADAAbAAtADEANQAzADgAMAAgADAAYwAtADgANAA5ADUALAAwACAALQAxADUAMwA4ADAALAAtADYAOAA4ADUAIAAtADEANQAzADgAMAAsAC0AMQA1ADMAOAAwACAAMAAsAC0AOAA0ADkANAAgADYAOAA4ADUALAAtADEANQAzADgAMAAgADEANQAzADgAMAAsAC0AMQA1ADMAOAAwACAAOAA0ADkANAAsADAAIAAxADUAMwA4ADAALAA2ADgAOAA1ACAAMQA1ADMAOAAwACwAMQA1ADMAOAAwAGwAMAAgADEANQAzADgAMAB6ACIALwA+AA0ACgAgACAAPABwAGEAdABoACAAYwBsAGEAcwBzAD0AIgBmAGkAbAAyACIAIABkAD0AIgBNADMANAA4ADgAMAAgADMANAA4ADgAMABsADAAIAAtADEANwAzADgAMABjADAALAAtADkANQA5ADkAIAAtADcANwA4ADIALAAtADEANwAzADcAOQAgAC0AMQA3ADMAOAAwACwALQAxADcAMwA3ADkAIAAtADkANQA5ADgALAAwACAALQAxADcAMwA4ADAALAA3ADcAOAAxACAALQAxADcAMwA4ADAALAAxADcAMwA3ADkAIAAwACwAOQA1ADkAOAAgADcANwA4ADIALAAxADcAMwA4ADAAIAAxADcAMwA4ADAALAAxADcAMwA4ADAAbAAxADcAMwA4ADAAIAAwAHoAbQAtADIAMAAwADAAIAAtADIAMAAwADAAbAAtADEANQAzADgAMAAgADAAYwAtADgANAA5ADUALAAwACAALQAxADUAMwA4ADAALAAtADYAOAA4ADUAIAAtADEANQAzADgAMAAsAC0AMQA1ADMAOAAwACAAMAAsAC0AOAA0ADkANAAgADYAOAA4ADUALAAtADEANQAzADgAMAAgADEANQAzADgAMAAsAC0AMQA1ADMAOAAwACAAOAA0ADkANAAsADAAIAAxADUAMwA4ADAALAA2ADgAOAA1ACAAMQA1ADMAOAAwACwAMQA1ADMAOAAwAGwAMAAgADEANQAzADgAMAB6ACIALwA+AA0ACgAgACAAPABwAGEAdABoACAAYwBsAGEAcwBzAD0AIgBmAGkAbAAyACIAIABkAD0AIgBNADEANAA3ADkAOAAgADEAMwA5ADEAMgBjADQAMQA3ACwAMAAgADcANQA1ACwAMwAzADgAIAA3ADUANQAsADcANQA1ACAAMAAsADQAMQA3ACAALQAzADMAOAAsADcANQA1ACAALQA3ADUANQAsADcANQA1ACAALQA0ADEANwAsADAAIAAtADcANQA2ACwALQAzADMAOAAgAC0ANwA1ADYALAAtADcANQA1ACAAMAAsAC0ANAAxADcAIAAzADMAOQAsAC0ANwA1ADUAIAA3ADUANgAsAC0ANwA1ADUAegBtAC0ANAA2ADQANwAgAC0ANQAxADIANgBsADcAMAA3ADMAIAAwACAAMAAgADEAMQA2ADYAMQAgAC0ANwA5ADQANQAgADAAIAAwACAALQAxADAANwA5ADAAYwAwACwALQA0ADcAOQAgADMAOQAyACwALQA4ADcAMQAgADgANwAyACwALQA4ADcAMQB6AG0ANwA2ADIANQAgADAAbAA3ADAANwAzACAAMABjADQAOAAwACwAMAAgADgANwAyACwAMwA5ADIAIAA4ADcAMgAsADgANwAxAGwAMAAgADEAMAA3ADkAMAAgAC0ANwA5ADQANQAgADAAIAAwACAALQAxADEANgA2ADEAegBtADcAOQA0ADUAIAAxADIAMgAxADMAbAAwACAAMgAyADgANQAgAC0AMQA2ADQANAAyACAAMAAgADAAIAAtADIAMgA4ADUAIAAxADYANAA0ADIAIAAwAHoAbQAwACAAMgA4ADMANwBsADAAIAAxADUAMAA3AGMAMAAsADQAOAAwACAALQAzADkAMgAsADgANwAxACAALQA4ADcAMgAsADgANwAxAGwALQAxADQANgA5ADgAIAAwAGMALQA0ADgAMAAsADAAIAAtADgANwAyACwALQAzADkAMQAgAC0AOAA3ADIALAAtADgANwAxAGwAMAAgAC0AMQA1ADAANwAgADEANgA0ADQAMgAgADAAegBtAC0AOQAxADIAOAAgADYANwA4AGwAMQA4ADEANQAgADAAYwAxADMANgAsADAAIAAyADQANwAsADEAMQAxACAAMgA0ADcALAAyADQANwBsADAAIAA0ADMANQBjADAALAAxADMANgAgAC0AMQAxADEALAAyADQANwAgAC0AMgA0ADcALAAyADQANwBsAC0AMQA4ADEANQAgADAAYwAtADEAMwA3ACwAMAAgAC0AMgA0ADgALAAtADEAMQAxACAALQAyADQAOAAsAC0AMgA0ADcAbAAwACAALQA0ADMANQBjADAALAAtADEAMwA2ACAAMQAxADEALAAtADIANAA3ACAAMgA0ADgALAAtADIANAA3AHoAbQAwACAALQAyADgAMwA4AGwAMQA4ADEANQAgADAAYwAxADMANgAsADAAIAAyADQANwAsADEAMQAyACAAMgA0ADcALAAyADQAOABsADAAIAA0ADMANQBjADAALAAxADMANgAgAC0AMQAxADEALAAyADQANwAgAC0AMgA0ADcALAAyADQANwBsAC0AMQA4ADEANQAgADAAYwAtADEAMwA3ACwAMAAgAC0AMgA0ADgALAAtADEAMQAxACAALQAyADQAOAAsAC0AMgA0ADcAbAAwACAALQA0ADMANQBjADAALAAtADEAMwA2ACAAMQAxADEALAAtADIANAA4ACAAMgA0ADgALAAtADIANAA4AHoAbQAzADYAMAA5ACAALQA3ADcANgA0AGMALQA0ADEANwAsADAAIAAtADcANQA1ACwAMwAzADgAIAAtADcANQA1ACwANwA1ADUAIAAwACwANAAxADcAIAAzADMAOAAsADcANQA1ACAANwA1ADUALAA3ADUANQAgADQAMQA3ACwAMAAgADcANQA2ACwALQAzADMAOAAgADcANQA2ACwALQA3ADUANQAgADAALAAtADQAMQA3ACAALQAzADMAOQAsAC0ANwA1ADUAIAAtADcANQA2ACwALQA3ADUANQB6ACIALwA+AA0ACgAgADwALwBnAD4ADQAKADwALwBzAHYAZwA+AA0ACgA=\";\r\n\t\t}\r\n\t\tif (!nombre) {\r\n\t\t\tnombre = 'test.svg';\r\n\t\t}\r\n\t\tif (!tipo) {\r\n\t\t\ttipo = 'image/svg+xml';\r\n\t\t}\r\n\t\treturn this.sws.subirBase64CMS(b64, nombre, tipo).toPromise();\r\n\t}\r\n\r\n\tparsearImagesHTML(){\r\n\t\t// https://www.regextester.com/103676\r\n\t\tconst html = '

      Recepcion Insur

      Amarillo

      Azul

      Rojo


      ';\r\n\t\tconst regex = /]+src=\"data:image\\/(.*?);base64,(.*?)\"[^\\>]*>/g;\r\n\t\tlet m;\r\n\t\tconst urls = [];\r\n\t\tconst tipos = [];\r\n\t\twhile ( m = regex.exec( html ) ) {\r\n\t\t\ttipos.push(m[1]);\r\n\t\t\turls.push( m[2] );\r\n\t\t}\r\n\t\tfor (let index = 0; index < urls.length; index++) {\r\n\t\t\tconst url = urls[index];\r\n\t\t\tconst tipo = 'image/' + tipos[index];\r\n\t\t\tthis.subirBase64(url, Math.floor(Date.now() / 1000) + '', tipo)\r\n\t\t\t.then(urlImagen => {\r\n\t\t\t\tconsole.log('URL_IMAGEN = ' + urlImagen);\r\n\t\t\t\tthis.DIAG.escribir(1, 'Imagen: ', 'BreezeBody');\r\n\t\t\t\tthis.DIAG.escribir(1, '-------------------------------------------', 'BreezeBody');\r\n\t\t\t\tthis.DIAG.escribir(1, 'url: ' + urlImagen , 'BreezeBody');\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn urls;\r\n\t}\r\n\r\n\tsubirFicherosFromHTML(){\r\n\t\tconst html = '

      Recepcion Insur

      Amarillo

      Azul

      Rojo


      ';\r\n\t\tconst files = this.sws.filesFromHTML(html);\r\n\t\tthis.sws.subidaFicherosCMS(files)\r\n\t\t.then(function (msg) {\r\n\t\t\tconsole.log('FICHEROS SUBIDOS: ');\r\n\t\t\tconsole.log(msg);\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\tconsole.error('FICHEROS SUBIDOS: ');\r\n\t\t});\r\n\t}\r\n\t*/\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/BreezeTest/BreezeTest.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      {{\\\"Dashboard.VisitasActuales\\\" | translate}}\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.Visitas_hoy? listaResumen.Visitas_hoy.valor : 0}}\\r\\n {{listaResumen.Visitas_hoy? listaResumen.Visitas_hoy.simbolo : ''}}\\r\\n
      \\r\\n
      {{\\\"Dashboard.Visitas_hoy\\\" | translate}}
      \\r\\n
      {{listaResumen.Visitas_hoy? listaResumen.Visitas_hoy.rango : ''}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.Visitas_esta_semana? listaResumen.Visitas_esta_semana.valor : 0}}\\r\\n {{listaResumen.Visitas_esta_semana? listaResumen.Visitas_esta_semana.simbolo : ''}}\\r\\n
      \\r\\n
      {{\\\"Dashboard.Visitas_esta_semana\\\" | translate}}
      \\r\\n
      {{listaResumen.Visitas_esta_semana? listaResumen.Visitas_esta_semana.rango : ''}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.Visitas_este_mes? listaResumen.Visitas_este_mes.valor : 0}}\\r\\n {{listaResumen.Visitas_este_mes? listaResumen.Visitas_este_mes.simbolo : ''}}\\r\\n
      \\r\\n
      {{\\\"Dashboard.Visitas_este_mes\\\" | translate}}
      \\r\\n
      {{listaResumen.Visitas_este_mes? listaResumen.Visitas_este_mes.rango : '' }}
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      {{\\\"Dashboard.VisitasAcumuladas\\\" | translate}}\\r\\n \\r\\n
      \\r\\n cloud_download\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.Contenido\\\" | translate}}\\r\\n
      \\r\\n cloud_download\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n crop_square\\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.areaEspacio\\\" | translate}}
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.Area_espacio ? listaResumen.Area_espacio.valor : 0}} m²\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n bluetooth\\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.beaconsTotales\\\" | translate}}
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.numBeacons? listaResumen.numBeacons.valor : 0}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n bluetooth\\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.beaconsPocaBat\\\" | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.beaconPocaBateria? listaResumen.beaconPocaBateria.valor : 0}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n bluetooth\\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.beaconsNoLoc\\\" | translate}}
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.beaconTiempoSinVer? listaResumen.beaconTiempoSinVer.valor : 0}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.numRutas\\\" | translate}}
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.numRutas? listaResumen.numRutas.valor : 0}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{\\\"Dashboard.tramoscortados\\\" | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{listaResumen.tramoscortados? listaResumen.tramoscortados.valor : 0}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.html\n// module id = ../../../../../src/app/views/Dashboard/dashboard.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".overview-box-indicadores {\\n background-color: #eb6c42; }\\n\\n.overview-box-count-sup {\\n font-size: 30px; }\\n\\n.overview-box-count-inf {\\n font-size: 45px;\\n padding: 5px; }\\n\\n.verticalLine {\\n border-left: 2px solid #999;\\n border-right: 2px solid #999; }\\n\\n.verticalLineLeft {\\n border-left: 2px solid #999; }\\n\\n/* .custom .ui-dialog-content {\\r\\n height: 1200px !important;\\r\\n} */\\n\\n.cajaBox {\\n padding: 0px;\\n background-color: white;\\n margin: 15px; }\\n\\n.cajaBoxPantallaCompleta {\\n padding: 0px;\\n background-color: white;\\n margin: 15px;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0; }\\n\\n.contenedorDasboardsPantallaCompleta {\\n z-index: 100000000000;\\n /*height: calc(100vh);*/\\n min-height: 100%;\\n width: calc(100vw);\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: white; }\\n\\n.headerBoxVerde {\\n background-color: #a9e53b !important; }\\n\\n.headerBoxNaranja {\\n background-color: #e6ac30 !important; }\\n\\n.headerBoxGris {\\n background-color: #555 !important; }\\n\\n.cuerpoBox {\\n background-color: #ffffff;\\n color: #333;\\n height: 0px; }\\n\\n.iconBox {\\n border-radius: 50%;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px;\\n background-color: #fff; }\\n\\n.iconBoxDialog {\\n border-radius: 50%;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -30px;\\n background-color: #fff; }\\n\\n.iconCloseBoxDialog {\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n margin: 0 auto;\\n margin-top: -20px; }\\n\\n.headerBoxGrisMaximizado {\\n background-color: #555 !important;\\n height: 24px; }\\n\\n.cuerpoTitle {\\n font-size: 25px; }\\n\\n.cuerpoTitle2 {\\n font-size: 15px;\\n font-weight: bold;\\n margin-left: 5px;\\n margin-right: 5px; }\\n\\n.cuerpoTitleSub {\\n font-size: 15px;\\n background-color: #999;\\n color: #fff;\\n font-weight: bold;\\n margin-top: 10px; }\\n\\n.cuerpoTitleSub2 {\\n margin-top: 5px; }\\n\\n.blockBox {\\n padding: 10px; }\\n\\n.blockBox2 {\\n padding: 0px; }\\n\\n.simboloBox {\\n font-size: 18px; }\\n\\n.chartVisitas {\\n position: relative;\\n height: 100px;\\n width: 50%;\\n padding: 5px; }\\n\\n.linea {\\n border-bottom: 1px solid #ccc;\\n font-size: 15px; }\\n\\n.lineaSup {\\n margin-bottom: 1px; }\\n\\n.txNum {\\n float: right; }\\n\\n.txTit {\\n float: left;\\n text-align: left; }\\n\\n.txTit2 {\\n margin-left: 20px;\\n text-align: left; }\\n\\n.txPer {\\n float: right;\\n font-size: 10px; }\\n\\n.cleanPadding {\\n padding-bottom: 0px; }\\n\\n.lineaPrimera {\\n font-weight: bold; }\\n\\n.descargaIcon {\\n cursor: pointer;\\n float: left;\\n padding: 10px;\\n position: absolute; }\\n\\n.infoTit {\\n float: right;\\n margin-right: 10px;\\n font-size: 15px;\\n cursor: pointer; }\\n\\n.iticon-px24 {\\n font-size: 24px; }\\n\\n.infoDownload {\\n color: #999; }\\n\\n.infoDownload:hover {\\n color: #000; }\\n\\n.contenidoNav {\\n background-color: #fff; }\\n\\n.contenidoNav:hover {\\n background-color: rgba(0, 0, 0, 0.2); }\\n\\n.pantallaCompleta {\\n width: 100vW;\\n height: 1200px !important; }\\n\\n.dialogMapaMaximizado {\\n z-index: 100000000000;\\n /*height: calc(100vh);*/\\n min-height: 100%;\\n width: calc(100vw);\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: white; }\\n\\n.iconCloseDialog {\\n font-size: 24px;\\n cursor: pointer;\\n color: #999;\\n margin-top: 14px;\\n margin-left: 14px; }\\n\\n.iconCloseDialog:hover {\\n color: #000; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.scss\n// module id = ../../../../../src/app/views/Dashboard/dashboard.component.scss\n// module chunks = main","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { ServiciosStatsProvider } from '../../providers/web-service-service/servicios-stats';\r\nimport { CeldaContenido } from '../../domain/CeldaContenido';\r\nimport { BalizaFormulario_lite } from '../../domain/BalizaFormulario_lite';\r\nimport { FotoBlob } from '../../domain/FotoBlob';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/primeng';\r\nimport { Angular5Csv } from 'angular5-csv/dist/Angular5-csv';\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\n\r\nimport {\r\n\tConstantes\r\n} from '../../domain/constantes';\r\nimport { AppComponent } from '../../app.component';\r\nimport { environment } from '../../../environments/environment';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\n\r\nconst VISITAUSUARIOS = 1;\r\nconst BUSCACONTENIDO = 2;\r\n\r\nconst BEACONBATERIAMIN:Number = 20;\r\nconst BEACONMINDAYS = 30;\r\n\r\nconst CACHE_DESF_SEC = 120;\r\n\r\n@Component({\r\n\ttemplateUrl: './dashboard.component.html',\r\n\tstyleUrls: ['./dashboard.component.scss'],\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n\tpublic EXPIRADO = 0;\r\n\tpublic PROXIMO = 1;\r\n\tpublic EXPIRA = 2;\r\n\tpublic ACTIVO = 3;\r\n\tlistaContenidosFavoritos: {\r\n\t\tlista: undefined[],\r\n\t\tmsg: '',\r\n\t\tres: 0\r\n\t};\r\n\tlistaContenidos: any[] = [];\r\n\tlistaRutas: any[] = [];\r\n\tlistaNoticias: any[] = [];\r\n\tlistaUbicaciones: any[] = [];\r\n\r\n\tlistaContenidosCaducar: any[] = [];\r\n\r\n\tlistaCeldaContenidos: CeldaContenido[] = [];\r\n\tlistaFotosContenidos: FotoBlob[] = [];\r\n\tlistaFotosContenidosURL: any[] = [];\r\n\r\n\tlistaFotosRutasURL: any[] = [];\r\n\tlistaImagesGaleriaRutasURL: any[] = [];\r\n\tlistaFotosNoticias: FotoBlob[] = [];\r\n\tlistaImagesGaleriaNoticias: any[] = [];\r\n\r\n\tlistaResumen: any = {\r\n\t};\r\n\r\n\timages: any[];\r\n\tlistaVisitasDiarias: any[] = [];\r\n\tchartDataMensual: any = [];\r\n\tchartDataMensualLast: any = [];\r\n\tchartDataAnual: any;\r\n\tchartMensaje: string;\r\n\thotMapMes: string;\r\n\tcontenidosIndicadores: any;\r\n\tcontenidosIndicadoresFavoritos: any;\r\n\tcars: any;\r\n\tsecciones: any = {};\r\n\r\n\tvisitasSeccion: any[];\r\n\tvisitasNodo: any[];\r\n\r\n\ttodosContenidosFiltrados: any[] = [];\r\n\r\n\tnumeroTramosCortados: number;\r\n\r\n\tmsgs: Message[] = [];\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\r\n\tmapaPantallaCompletaVisible:boolean = false;\r\n\r\n\tpuntos = [];\r\n\tradius=250;\r\n\topacity=0.5;\r\n\tscale = 0.1;\r\n\tuseOpacity=true;\r\n\r\n\tnumAla = 0; // Ala seleccionada\r\n numTipo = 0; // Tipo preview ala seleccionado\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tpublic statsService: ServiciosStatsProvider,\r\n\t\tpublic router: Router,\r\n\t\tprivate cd: ChangeDetectorRef\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Dashboard.dashboard') }\r\n\t\t]);\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\t//this.puntos = this.generarPuntosEjemplo();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\tconst that = this;\r\n\t\tthis.listaContenidos = [];\r\n\t\tthis.listaFotosContenidos = [];\r\n\t\tthis.listaContenidosCaducar = [];\r\n\t\tthis.listaCeldaContenidos = [];\r\n\t\tthis.listaRutas = [];\r\n\r\n\t\tthis.images = [];\r\n\r\n\t\tthis.numeroTramosCortados = 0;\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.cargarEntidades()\r\n\t\t.then(function () {\r\n\t\t\t// that.listaContenidosCaducar = that.obtenerProximosCaducar(that.listaContenidos);\r\n\r\n\t\t\tconst hoy = new Date();\r\n \tconst inicio = new Date(hoy.getFullYear(), hoy.getMonth(), 1, hoy.getHours(), hoy.getMinutes());\r\n \tconst fin = new Date(hoy.getFullYear(), hoy.getMonth() + 1, 0, hoy.getHours(), hoy.getMinutes());\r\n\r\n\t\t\t/*that.cargarIndicadoresContenidos({\r\n\t\t\t\tinicio: inicio,\r\n\t\t\t\tfin: fin\r\n\t\t\t});*/\r\n\r\n\t\t\tthat.cargarIndicadores();\r\n\t\t\tthat.obtenerChartData();\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\t//(document.querySelector('#dialogMapaMaximizado .ui-dialog-content') as HTMLElement).style.height = '900px';\r\n\t\tthis.cd.detectChanges();\r\n\t}\r\n\r\n\tcalculaTimeCache(){\r\n\t\tconst fec = new Date();\r\n\t\tconst timestamp = fec.getTime() - (fec.getTime() % (CACHE_DESF_SEC * 1000));\r\n\r\n\r\n\t\treturn timestamp;\r\n\t}\r\n\r\n\taddResumen(_clave, _valor, _rango = ''){\r\n\t\tlet _simbolo = '';\r\n\t\tif (_valor > 1000 ){\r\n\t\t\t_valor = Math.floor(_valor / 1000);\r\n\t\t\t_simbolo = 'k';\r\n\t\t}\r\n\t\tif (_valor > 1000 ){\r\n\t\t\t_valor = Math.floor(_valor / 1000);\r\n\t\t\t_simbolo = 'm';\r\n\t\t}\r\n\r\n\t\tthis.listaResumen[_clave] = {\r\n\t\t\tclave: _clave,\r\n\t\t\tvalor: _valor,\r\n\t\t\tsimbolo: _simbolo,\r\n\t\t\trango: _rango\r\n\t\t};\r\n\r\n\t}\r\n\r\n\tcubo_Total_MesYear(listaTotal) {\r\n\t\tconst colores = ['#FFC107'];\r\n\t}\r\n\r\n\tcubo_Total_Diames(listaTotal) {\r\n\t\tconst _coloresT = ['#FFC107', '#a9e53b', '#C107FF' ];\r\n\t\tconst colores = {};\r\n\t\tconst datos = {};\r\n\t\tlet _tits = [];\r\n\t\tfor (const _n in listaTotal) {\r\n\r\n\t\t\tconst _lista = listaTotal[_n];\r\n\t\t\tconst _tit = _lista.Year + '' + _lista.Mes;\r\n\t\t\tif (!datos[_tit]) {\r\n\t\t\t\tdatos[_tit] = [];\r\n\t\t\t\t_tits.push(_tit);\r\n\t\t\t}\r\n\r\n\t\t\tdatos[_tit].push(_lista);\r\n\t\t}\r\n\r\n\t\t_tits = _tits.sort();\r\n\t\tfor (const i in _tits){\r\n\t\t\tconst _serie = _tits[i];\r\n\t\t\tif (_coloresT[i]){\r\n\t\t\t\tcolores[_serie] = _coloresT[i];\r\n\t\t\t}else{\r\n\t\t\t\tcolores[_serie] = _coloresT[_coloresT.length - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst _labels = [];\r\n\t\tfor (let _i = 1; _i <= 31; _i++){\r\n\t\t\tif ( _i === 1 || (_i % 5 === 0 && _i !== 30) || _i === 31){\r\n\t\t\t\t_labels.push(_i);\r\n\t\t\t}else{\r\n\t\t\t\t_labels.push('');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst _datasets = [];\r\n\r\n\t\tconst totales = {};\r\n\t\tconst iniciales = {};\r\n\r\n\r\n\t\tfor (const _serie in datos) {\r\n\r\n\t\t\tif (!totales[_serie]){\r\n\t\t\t\ttotales[_serie] = 0;\r\n\t\t\t\tiniciales[_serie] = 0;\r\n\t\t\t}\r\n\r\n\t\t\tconst valores_filas = [];\r\n\t\t\tlet _ultimo = 0;\r\n\t\t\tfor (const _fila in datos[_serie]) {\r\n\t\t\t\tconst _dia = datos[_serie][_fila].Dia;\r\n\r\n\t\t\t\tfor (let _k = _ultimo; _k < _dia ; _k++) {\r\n\t\t\t\t\tvalores_filas[_k - 1] = (totales[_serie]);\r\n\t\t\t\t}\r\n\t\t\t\t_ultimo = _dia;\r\n\r\n\t\t\t\tif (iniciales[_serie] === 0){\r\n\t\t\t\t\t// iniciales[_serie] = datos[_serie][_fila].Total;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// totales[_serie] += datos[_serie][_fila].Total - iniciales[_serie];\r\n\t\t\t\ttotales[_serie] += 1 - iniciales[_serie];\r\n\r\n\t\t\t\tvalores_filas[_dia - 1] = (totales[_serie]);\r\n\t\t\t}\r\n\t\t\t_datasets.push({\r\n\t\t\t\tlabel: this.statsService.MESES[_serie],\r\n\t\t\t\tfill: false,\r\n\t\t\t\tborderColor: colores[_serie],\r\n\t\t\t\tdata: valores_filas\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\t// console.log(_datasets);\r\n\r\n\t\tthis.chartDataMensual = {\r\n\t\t\tlabels: _labels,\r\n\t\t\tdatasets: _datasets\r\n\t\t};\r\n\t\tlet fecha = new Date();\r\n\t\tlet dia = fecha.getDate();\r\n\r\n\t\tlet diasMesAnterior = 999;\r\n\r\n\t\tif(fecha.getMonth() !== 0){\r\n\t\t\tdiasMesAnterior = new Date(fecha.getFullYear(), fecha.getMonth(), 0).getDate();\r\n\t\t}else{\r\n\t\t\tdiasMesAnterior = new Date(fecha.getFullYear() - 1, 12, 0).getDate();\r\n\t\t}\r\n\r\n\r\n\t\t_datasets.forEach(element => {\r\n\t\t\tif(element.borderColor === '#a9e53b'){\r\n\t\t\t\tlet valor = element.data[element.data.length - 1]\r\n\t\t\t\twhile(element.data.length < dia){\r\n\t\t\t\t\telement.data.push(valor)\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tlet valor = element.data[element.data.length - 1]\r\n\t\t\t\twhile(element.data.length < diasMesAnterior){\r\n\t\t\t\t\telement.data.push(valor)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tconsole.log(this.chartDataMensual);\r\n\r\n\t\tthis.chartMensaje = 'Visitas mensuales';\r\n\t}\r\n\r\n\tobtenerChartData() {\r\n\t\tconst timeCache = this.calculaTimeCache();\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\r\n\t\tconst ahora = new Date();\r\n\r\n\t\tconst mesAnterior = new Date();\r\n\t\tmesAnterior.setDate(1);\r\n\t\tmesAnterior.setMonth(mesAnterior.getMonth() - 1);\r\n\r\n\r\n\t\tconst fInicio = this.statsService.fechaToCubefec(mesAnterior);\r\n\t\tconst fFin = this.statsService.fechaToCubefec(ahora);\r\n\t\tconst rangoF = fInicio.fecha + ',' + fFin.fecha;\r\n\r\n\r\n\t\tconst filtro = {\r\n\t\t\tGroup: 'Mes,Dia,Usuario',\r\n\t\t\tOrder: 'Dia',\r\n\t\t\tRangeFecha: rangoF,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASH1_B_' + rangoF + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tconst that = this;\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro, function (res) {\r\n\t\t\tthat.listaVisitasDiarias = res.lista;\r\n\t\t\tthat.cubo_Total_Diames(res.lista);\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\tgetDayMonthText(_date: Date){\r\n\t\tconst dia = _date.getDate();\r\n\t\tconst _numMes = _date.getMonth() + 1;\r\n\r\n\t\tconst mes = this.translate.instant('Graficas.MesRed' + (_numMes));\r\n\r\n\t\treturn dia + ' ' + mes;\r\n\t}\r\n/*\r\n\tcargarIndicadoresContenidos(dateRange){\r\n\t\tconsole.log(dateRange);\r\n\t\tconst _contenidos = this.listaContenidos;\r\n\t\tif (!_contenidos){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.contenidosIndicadores = {};\r\n\r\n\t\tthis.contenidosIndicadores.total = _contenidos.length;\r\n\r\n\t\tconst ahora = new Date();\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst that = this;\r\n\t\tconst timeCache = this.calculaTimeCache();\r\n\r\n\r\n\t\tconst horaFin = ahora.getHours() * 100 + ahora.getMinutes();\r\n\t\tlet horaIni = horaFin;\r\n\r\n\t\tconst fInicio = this.statsService.fechaToCubefec(dateRange.inicio);\r\n\t\tconst fFin = this.statsService.fechaToCubefec(dateRange.fin) ;\r\n\t\tconst rangoF = fInicio.fecha + ',' + fFin.fecha;\r\n\r\n\t\tlet group = 'Contenido_id';\r\n\t\tif (dateRange.lastMinutes != null){\r\n\t\t\tgroup += ',Hora';\r\n\t\t\thoraIni -= dateRange.lastMinutes;\r\n\r\n\t\t}\r\n\r\n\t\tconst filtroContenido = {\r\n\t\t\tGroup: group,\r\n\t\t\tRangeFecha: rangoF,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASHCONT_D_' + idEspacio + rangoF + timeCache,\r\n\t\t\ttipo: BUSCACONTENIDO,\r\n\t\t\tOrder: 'Total DESC',\r\n\t\t};\r\n\r\n\t\tconst todosContenidosById = {};\r\n\t\t_contenidos.forEach(element => {\r\n\t\t\ttodosContenidosById[element.Id] = element;\r\n\t\t});\r\n\r\n\t\t// console.log(todosContenidosById);\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtroContenido, function (res) {\r\n\t\t\tif (!res.lista){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t// console.log(res);\r\n\t\t\tconst total = res.lista.length;\r\n\t\t\tlet max = 7;\r\n\t\t\tconst contenidosFiltrados = [];\r\n\t\t\tthat.todosContenidosFiltrados = [];\r\n\t\t\tlet COUNT = 0;\r\n\t\t\tfor ( const i in res.lista){\r\n\t\t\t\tif (! res.lista[i] || ! res.lista[i].Contenido){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tconst _contenido = todosContenidosById[res.lista[i].Contenido];\r\n\t\t\t\tif (!_contenido){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (dateRange.lastMinutes != null){\r\n\t\t\t\t\tconst _hora = parseInt(res.lista[i].Hora, 0);\r\n\t\t\t\t\tif (!(horaIni <= _hora && _hora <= horaFin)){\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// console.log(res.lista[i]);\r\n\r\n\t\t\t\t_contenido.Total = res.lista[i].Total;\r\n\t\t\t\tCOUNT += _contenido.Total ;\r\n\r\n\t\t\t\t// console.log(_contenido);\r\n\r\n\t\t\t\tmax--;\r\n\t\t\t\tif ( max >= 0){\r\n\t\t\t\t\tcontenidosFiltrados.push(_contenido);\r\n\t\t\t\t}\r\n\t\t\t\tthat.todosContenidosFiltrados.push(res.lista[i]);\r\n\t\t\t}\r\n\t\t\t// console.log(contenidosFiltrados);\r\n\r\n\t\t\tlet _n = 0;\r\n\t\t\tcontenidosFiltrados.forEach(element => {\r\n\t\t\t\telement.percent = Math.floor(element.Total * 10000 / COUNT) / 100;\r\n\t\t\t\telement.num = _n + 1;\r\n\t\t\t\telement.class = '';\r\n\t\t\t\tif ( _n === 0){\r\n\t\t\t\t\telement.class = 'lineaPrimera';\r\n\t\t\t\t}\r\n\t\t\t\t_n++;\r\n\t\t\t});\r\n\r\n\t\t\tthat.contenidosIndicadores.lista = contenidosFiltrados;\r\n\r\n\t\t});\r\n\r\n\r\n\r\n\t}\r\n\thayContenidos(): boolean{\r\n\t\tif(this.contenidosIndicadores && this.contenidosIndicadores.lista && this.contenidosIndicadores.lista.length === 0){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\tonChangeRangeContents(dateRange){\r\n\t\tthis.cargarIndicadoresContenidos(dateRange);\r\n\r\n\t}\r\n*/\r\n\r\n\tonChangeRangeHotMap(dateRange){\r\n\t\t// console.log(\"----------- EJECUTADO onChangeRangeHotMap\");\r\n\t\t// console.log(dateRange);\r\n\r\n\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst timeCache = this.calculaTimeCache();\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst that = this;\r\n\r\n\t\tconst ahora = new Date();\r\n\t\tconst horaFin = ahora.getHours() * 100 + ahora.getMinutes();\r\n\t\tlet horaIni = horaFin;\r\n\r\n\t\tconst fInicio = this.statsService.fechaToCubefec(dateRange.inicio);\r\n\t\tconst fFin = this.statsService.fechaToCubefec(dateRange.fin) ;\r\n\t\tconst rangoF = fInicio.fecha + ',' + fFin.fecha;\r\n\r\n\t\t//let group = 'Seccion,Usuario,Fecha';\r\n\t\tlet group = 'Nodo,Usuario,Fecha';\r\n\t\tif (dateRange.lastMinutes != null){\r\n\t\t\tgroup += ',Hora';\r\n\t\t\thoraIni -= dateRange.lastMinutes;\r\n\t\t}\r\n\r\n\r\n\r\n\t\tconst filtro = {\r\n\t\t\tGroup: group,\r\n\t\t\tRangeFecha: rangoF,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tOrder: 'Nodo',\r\n\t\t\tcache: 'CUBEDASH1_RV_' + rangoF + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\r\n\r\n\r\n\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro, function (res) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tif (dateRange.lastMinutes != null){\r\n\t\t\t\tconst _finLista = [];\r\n\t\t\t\tfor (const _i in res.lista){\r\n\t\t\t\t\tconst _reg = res.lista[_i];\r\n\t\t\t\t\tconst _hora = parseInt(_reg.Hora, 0);\r\n\t\t\t\t\tif (horaIni <= _hora && _hora <= horaFin){\r\n\t\t\t\t\t\t_finLista.push(_reg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tres.lista = _finLista;\r\n\t\t\t}\r\n\r\n\t\t\tconst agrupa = function(xs, key) {\r\n\t\t\t\treturn xs.reduce(function(rv, x) {\r\n\t\t\t\t (rv[x[key]] = rv[x[key]] || []).push(x);\r\n\t\t\t\t return rv;\r\n\t\t\t\t}, {});\r\n\t\t\t };\r\n\r\n\t\t\tconst _nuevaLista = agrupa(res.lista, 'Seccion');\r\n\r\n\t\t\tconst _nuevaLista2 = [];\r\n\t\t\tfor (const _i in _nuevaLista){\r\n\t\t\t\tconst total = _nuevaLista[_i].length;\r\n\t\t\t\tif (total === 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_nuevaLista[_i][0].Total = total;\r\n\t\t\t\t_nuevaLista2.push(_nuevaLista[_i][0]);\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthat.visitasSeccion = _nuevaLista2;\r\n\r\n\t\t\tconsole.log(\"visitasSeccion: \", that.visitasSeccion);\r\n\r\n\t\t\t//TODO: Añadido 27/02/2020: Vamos a hacer una consulta por Nodos:\r\n\t\t\tconst _nuevaListaNodos = agrupa(res.lista, 'Nodo');\r\n\r\n\t\t\tconst _nuevaLista2Nodos = [];\r\n\t\t\tfor (const _i in _nuevaListaNodos){\r\n\t\t\t\tconst total = _nuevaListaNodos[_i].length;\r\n\t\t\t\tif (total === 0){\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_nuevaListaNodos[_i][0].Total = total;\r\n\t\t\t\t_nuevaLista2Nodos.push(_nuevaListaNodos[_i][0]);\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthat.visitasNodo = _nuevaLista2Nodos;\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n\r\n\r\n\t// Cargar visitas de hoy, semana y mes\r\n\tcargarIndicadores() {\r\n\t\tconst timeCache = this.calculaTimeCache();\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst that = this;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\tconst ahora = new Date();\r\n\r\n\t\tthis.hotMapMes = 'Mes' + (ahora.getMonth() + 1 );\r\n\r\n\t\tlet area = this.authService.getAreaEspacio();\r\n\t\tconsole.log(area)\r\n\t\tif(area !== \"undefined\"){\r\n\r\n\t\t\tthat.listaResumen[\"Area_espacio\"] = {\r\n\t\t\t\tclave: \"Area_espacio\",\r\n\t\t\t\tvalor: area,\r\n\t\t\t\tsimbolo: \"m\",\r\n\t\t\t\trango: \"\"\r\n\t\t\t};\r\n\t\t}\r\n\r\n\r\n\t\tconst filtro = {\r\n\t\t\tGroup: 'Mes,Dia,Usuario',\r\n\t\t\tYear: ahora.getFullYear(),\r\n\t\t\tMes: ahora.getMonth() + 1 ,\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASH2' + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tconst rango1 = this.translate.instant('Graficas.Mes' + filtro.Mes) ;\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro, function (res) {\r\n\t\t\tconst total = res.lista.length;\r\n\t\t\t/*\r\n\t\t\tif (res.lista && res.lista.length > 0){\r\n\t\t\t\ttotal = res.lista[0].Total;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\tthat.addResumen('Visitas_este_mes', total, rango1);\r\n\t\t});\r\n\r\n\t\tconst filtro2 = {\r\n\t\t\tGroup: 'Year,Usuario',\r\n\t\t\tRangeFecha: this.statsService.getWeekRange(new Date(), false),\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASH3' + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tconst rang: any = this.statsService.getWeekRange(new Date(), true);\r\n\r\n\t\tconst rango2 = this.getDayMonthText(rang.monday) + ' - ' + this.getDayMonthText(rang.sunday);\r\n\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro2, function (res) {\r\n\t\t\tconst total = res.lista.length;\r\n\t\t\t/*\r\n\t\t\tif (res.lista && res.lista.length > 0){\r\n\t\t\t\ttotal = res.lista[0].Total;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\tthat.addResumen('Visitas_esta_semana', total, rango2);\r\n\t\t});\r\n\r\n\t\tconst filtro3 = {\r\n\t\t\tGroup: 'Dia,Usuario',\r\n\t\t\tYear: ahora.getFullYear(),\r\n\t\t\tMes: ahora.getMonth() + 1,\r\n\t\t\tDia: ahora.getDate(),\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tcache: 'CUBEDASH4' + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tconst rango3 = this.getDayMonthText(ahora);\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro3, function (res) {\r\n\t\t\tconst total = res.lista.length;\r\n\t\t\tthat.addResumen( 'Visitas_hoy', total, rango3);\r\n\t\t});\r\n\r\n\r\n\r\n\t\tconst hoy = new Date();\r\n const inicio = new Date(hoy.getFullYear(), hoy.getMonth(), 1, hoy.getHours(), hoy.getMinutes());\r\n const fin = new Date(hoy.getFullYear(), hoy.getMonth() + 1, 0, hoy.getHours(), hoy.getMinutes());\r\n\r\n\t\tthis.onChangeRangeHotMap({\r\n\t\t\tinicio: inicio,\r\n\t\t\tfin: fin\r\n\t\t});\r\n\r\n\r\n\t\tconst filtro5 = {\r\n\t\t\tGroup: 'Mes,Dia,Usuario',\r\n\t\t\tRangeFecha: this.statsService.getLastMonthsRange(6),\r\n\t\t\tEspacio: idEspacio,\r\n\t\t\tOrder: 'fecha DESC',\r\n\t\t\tcache: 'CUBEDASH6_E_' + idEspacio + timeCache,\r\n\t\t\ttipo: VISITAUSUARIOS\r\n\t\t};\r\n\r\n\t\tthis.statsService.statsVisitaCuenta(token, filtro5, function (res) {\r\n\r\n\r\n const mesesReales = [];\r\n const fecha = new Date();\r\n const mesActual = fecha.getMonth() + 1;\r\n let obj = {Mes: mesActual, Total: 0}\r\n mesesReales.push(obj)\r\n let actual = mesActual;\r\n for (let index = 1; index < 6; index++) {\r\n\r\n let mes = actual - 1;\r\n if(mes === 0){\r\n mes = 12;\r\n }\r\n let obj = {Mes: mes, Total: 0}\r\n mesesReales.push(obj)\r\n if(mes === 12){\r\n actual = 12;\r\n }else{\r\n actual--;\r\n }\r\n\r\n\r\n }\r\n if(res.lista.length > 0){\r\n res.lista.forEach(element => {\r\n let mesElement = mesesReales.find(m => m.Mes === +element.Mes);\r\n\t\t\t\t\tif (!mesElement) {\r\n\t\t\t\t\t\tconsole.log(\"No mesElement para: \", element)\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tmesElement.Mes = +element.Mes\r\n\t\t\t\t\t\tmesElement.Total++;\r\n\t\t\t\t\t}\r\n });\r\n }\r\n\r\n that.chartDataMensualLast = mesesReales;\r\n\r\n });\r\n\r\n\t\t\r\n\r\n\t\t\t/*\r\n\t\t\tif (!res.lista){\r\n\t\t\t\tthat.chartDataMensualLast = [];\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst prelista = {};\r\n\t\t\tconst prelista2 = {};\r\n\r\n\t\t\tres.lista.forEach(element => {\r\n\t\t\t\tif (!prelista[element.Fecha]){\r\n\t\t\t\t\tprelista[element.Fecha] = element;\r\n\t\t\t\t\tprelista[element.Fecha].Total = 0;\r\n\t\t\t\t}\r\n\t\t\t\tprelista[element.Fecha].Total++;\r\n\t\t\t});\r\n\r\n\r\n\r\n\t\t\tfor (const i in prelista){\r\n\t\t\t\tconst _lista2 = prelista[i];\r\n\t\t\t\tif (!prelista2[_lista2.Mes]){\r\n\t\t\t\t\tprelista2[_lista2.Mes] = _lista2;\r\n\t\t\t\t\tprelista2[_lista2.Mes].Total = _lista2.Total;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tprelista2[_lista2.Mes].Total += _lista2.Total;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\tconst _l2: any = Object.values(prelista2);\r\n\r\n\t\t\tconsole.log(_l2)\r\n\r\n\t\t\tconst listado = _l2.sort(function(a, b){\r\n\t\t\t\tif (a.Fecha > b.Fecha){\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (a.Fecha < b.Fecha){\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn 0;\r\n\r\n\t\t\t});\r\n\r\n\r\n\r\n\t\t\tthat.chartDataMensualLast = listado;\r\n\r\n\r\n\t\t});\r\n\t\t*/\r\n\t}\r\n\r\n\tcontenidoSeleccionado(contenido) {\r\n\r\n\t}\r\n\r\n\tdescargaAcumulados(event){\r\n\t\tconsole.log(this.listaVisitasDiarias);\r\n\r\n\t\tconst datos = [];\r\n\t\tthis.listaVisitasDiarias.forEach(elem => {\r\n\r\n\t\t\tdatos.push({\r\n\t\t\t\tFecha: elem.Dia + '/' + elem.Mes + '/' + elem.Year ,\r\n\t\t\t\tTotal: elem.Total\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst csv = new Angular5Csv(datos, 'Visitas_diarias', {\r\n\t\t\theaders: ['Fecha', 'Total' ],\r\n\t\t\tfieldSeparator: \"#\"\r\n\t\t});\r\n\t}\r\n\r\n\tdescargaHotMap(event){\r\n\r\n\t\tconst Suma = this.visitasSeccion.reduce((a, b) => ({Total: a.Total + b.Total}));\r\n\t\tconst datos = [];\r\n\t\tthis.visitasSeccion.forEach(elem => {\r\n\t\t\tdatos.push({\r\n\t\t\t\tNombre: this.secciones[elem.Seccion] ? this.secciones[elem.Seccion].nombre : '',\r\n\t\t\t\tTotal: elem.Total,\r\n\t\t\t\tPercentage: Math.floor(10000 * elem.Total / Suma.Total) / 100\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst csv = new Angular5Csv(datos, 'Zonas_mas_visitadas', {\r\n\t\t\theaders: ['Zona', 'Total', 'Porcentaje'],\r\n\t\t\tfieldSeparator: \"#\"\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tmaximizarHotMap(event) {\r\n\t\t//this.mapaPantallaCompletaVisible = true;\r\n\t\t// console.log(\"----------- VALOR DE event en maximizarHotMap\");\r\n\t\tthis.numAla = event.numAla;\r\n \tthis.numTipo = event.numTipo;\r\n\r\n\t\t// console.log(event);\r\n\r\n\t\t//FIXME: Modificado: 06/04/2020:\r\n\t\tif (this.mapaPantallaCompletaVisible) {\r\n\t\t\tthis.mapaPantallaCompletaVisible = false;\r\n\t\t} else {\r\n\t\t\tthis.mapaPantallaCompletaVisible = true;\r\n\t\t}\r\n\t}\r\n\r\n\tcerrarHotMapMaximizado() {\r\n\t\tthis.mapaPantallaCompletaVisible = false;\r\n\t}\r\n\r\n\tdescargaContenidos(event){\r\n\t\tconst _contenidos = {};\r\n\t\tthis.listaContenidos.forEach(elem => {\r\n\t\t\t_contenidos[elem.Id] = {\r\n\t\t\t\tNombre: elem.Titulo\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst Suma = this.todosContenidosFiltrados.reduce((a, b) => ({Total: a.Total + b.Total}));\r\n\t\tconst datos = [];\r\n\t\tthis.todosContenidosFiltrados.forEach(elem => {\r\n\t\t\tdatos.push({\r\n\t\t\t\tNombre: _contenidos[elem.Contenido] ? _contenidos[elem.Contenido].Nombre : '',\r\n\t\t\t\t/*\r\n\t\t\t\tDia: elem.Dia,\r\n\t\t\t\tHora: elem.HoraFull,\r\n\t\t\t\tMes: elem.Mes,\r\n\t\t\t\tYear: elem.Year,\r\n\t\t\t\t*/\r\n\t\t\t\tSeccion: this.secciones[elem.Seccion] ? this.secciones[elem.Seccion].nombre : '',\r\n\t\t\t\tTotal: elem.Total,\r\n\t\t\t\tPercentage: Math.floor(10000 * elem.Total / Suma.Total) / 100\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst csv = new Angular5Csv(datos, 'Contenidos', {\r\n\t\t\theaders: ['Nombre', 'Seccion', 'Total', 'Percentage'],\r\n\t\t\tfieldSeparator: \"#\"\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tobtenerProximosCaducar(contenidos) {\r\n\t\tconst caducar = contenidos.filter(x => this.dayDiff(x.FechaBaja, new Date()) < Constantes.DIAS_PROXIMOS_EXPIRAR);\r\n\t\treturn caducar;\r\n\t}\r\n\r\n\tdayDiff(firstDate: Date, secondDate: Date) {\r\n\t\tconst date2 = secondDate;\r\n\t\tconst date1 = firstDate;\r\n\t\tif (date2 !== undefined && date2 !== null && date1 !== undefined && date1 !== null) {\r\n\t\t\tconst timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n\t\t\tconst diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n\t\t\treturn diffDays;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn 999;\r\n\t\t}\r\n\t}\r\n\r\n\tonShowHotMap(){\r\n\t\t//(document.querySelector('#dialogMapaMaximizado .ui-dialog-content') as HTMLElement).style.height = '900px';\r\n\r\n\t\t/* var el = document.querySelector('#dialogMapaMaximizado .ui-dialog-content');\r\n\t\tthis.css(el, { height: '900px', offsetHeight: '900px', cssText:'height: 900px;' });\r\n\t\tvar el2 = document.querySelector('#dialogMapaMaximizado .ui-dialog-content'); */\r\n\t}\r\n\tcss(el, styles) {\r\n\t\tfor (var property in styles)\r\n\t\t\tel.style[property] = styles[property];\r\n\t}\r\n\r\n\tonCloseHotMap(){\r\n\r\n\t}\r\n\r\n\tcargarEntidades(): Promise {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.obtenerCONTENIDO()\r\n\t\t\t.then(function (flag) {\r\n\t\t\t\treturn that.obtenerRUTA_SUGERIDA();\r\n\t\t\t})\r\n\t\t\t.then(function (flag) {\r\n\t\t\t\treturn that.obtenerTramosCortados();\r\n\t\t\t})\r\n\t\t\t.then(function (flag) {\r\n\t\t\t\treturn that.obtenerValoresBalizas();\r\n\t\t\t})\r\n\t\t\t.then(function (flag) {\r\n\t\t\t\treturn flag;\r\n\t\t\t})\r\n\t\t\t.catch(function (e) {\r\n\t\t\t\tthis.appComponent.showError(e.message);\r\n\t\t\t\tconst codigo = e.status;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tobtenerCONTENIDO(): Promise {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\tconst token = that.authService.getToken();\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = undefined;\r\n\t\tconst includes = undefined;\r\n\t\treturn entityManager.getCONTENIDO(predicado, includes)\r\n\t\t\t.then(function (contenidos) {\r\n\t\t\t\tthat.listaContenidos = contenidos;\r\n\t\t\t\treturn that.sws.ObtenerFavoritos(token ,idEspacio).toPromise()\r\n\t\t\t})\r\n\t\t\t.then(favoritos =>{\r\n\t\t\t\tthat.listaContenidosFavoritos = favoritos;\r\n\t\t\t})\r\n\t\t\t.catch(function (e) {\r\n\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tobtenerRUTA_SUGERIDA(): Promise {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('idEspacio', '==', idEspacio);\r\n\t\tconst includes = 'FOTOS';\r\n\r\n\t\treturn entityManager.getRUTA(predicado, includes)\r\n\t\t\t.then(function (rutas) {\r\n\t\t\t\tthat.listaRutas = rutas;\r\n\r\n\r\n\t\t\t\trutas.forEach(element => {\r\n\t\t\t\t\tlet oFoto;\r\n\t\t\t\t\tconst token = that.authService.getToken();\r\n\t\t\t\t\tlet image;\r\n\r\n\t\t\t\t\tif (element.FOTOS.length > 0) {\r\n\t\t\t\t\t\tconst ultima = element.FOTOS.length - 1;\r\n\t\t\t\t\t\tif (ultima >= 0) {\r\n\t\t\t\t\t\t\toFoto = element.FOTOS[ultima];\r\n\t\t\t\t\t\t\tif (oFoto.UrlFotoExt) {\r\n\t\t\t\t\t\t\t\timage = oFoto.UrlFotoExt;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\timage = environment.urlBaseFotos + oFoto.IdFotoExt;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\timage = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthat.listaFotosRutasURL.push({\r\n\t\t\t\t\t\t\tid: oFoto.Id,\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.addResumen( 'numRutas', rutas.length);\r\n\r\n\t\t\t})\r\n\t\t\t.catch(function (e) {\r\n\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tonLoadSecciones(secciones){\r\n\t\t// console.log(\"------------------- EJECUTANDO onLoadSecciones\");\r\n\t\tthis.secciones = secciones;\r\n\t}\r\n\r\n\r\n\tobtenerTramosCortados() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tconst includes = undefined;\r\n\t\tconst token = this.authService.getToken();\r\n\t\t// const includes = 'NodoOrigen.SECCION.ALA.NIVEL';\r\n\t\t// return entityManager.getTramosCortados(predicado, includes)\r\n\t\treturn this.sws.wsGetTramosCortados(token, idEspacio).toPromise()\r\n\t\t.then(function (tramos) {\r\n\t\t\tthat.numeroTramosCortados = tramos.length / 2;\r\n\r\n\t\t\tthat.addResumen( 'tramoscortados', tramos.length / 2);\r\n\t\t\t//that.addResumen( 'metrosCuadrados', tramos.length / 2);\r\n\r\n\t\t\t\r\n\t\t\treturn tramos;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerValoresBalizas() {\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.entityManager.getBalizasEspacio()\r\n\t\t.then(function(BALIZAs){\r\n\t\t\tthat.addResumen( 'numBeacons', BALIZAs.length );\r\n\r\n\t\t\tconst _balizasBateria = [];\r\n\t\t\tconst _balizasPerdidas = [];\r\n\t\t\tconst ahora = new Date();\r\n\t\t\tlet pocaBateria = 0;\r\n\t\t\tlet tiempoSinVer = 0;\r\n\t\t\tBALIZAs.forEach(element => {\r\n\t\t\t \tconst baliza = new BalizaFormulario_lite().fromENTIDAD(element);\r\n\t\t\t\tlet fecha;\r\n\t\t\t\tif (baliza.TimestampLecturaBateria) {\r\n\t\t\t\t\tconst year = parseInt(baliza.TimestampLecturaBateria.substr(0, 4), 0);\r\n\t\t\t\t\tconst month = parseInt(baliza.TimestampLecturaBateria.substr(4, 2), 0);\r\n\t\t\t\t\tconst day = parseInt(baliza.TimestampLecturaBateria.substr(6, 2), 0);\r\n\t\t\t\t\tfecha = new Date();\r\n\t\t\t\t\tfecha.setFullYear(year);\r\n\t\t\t\t\tfecha.setMonth(month - 1);\r\n\t\t\t\t\tfecha.setDate(day + BEACONMINDAYS);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (baliza.NivelBateria < BEACONBATERIAMIN){\r\n\t\t\t\t\tpocaBateria++;\r\n\t\t\t\t\t_balizasBateria.push(baliza);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (fecha === undefined || fecha < ahora ){\r\n\t\t\t\t\ttiempoSinVer ++;\r\n\t\t\t\t\t_balizasPerdidas.push(baliza);\r\n\t\t\t\t}\r\n\r\n\t\t\t });\r\n\r\n\t\t\tthat.addResumen( 'beaconPocaBateria', pocaBateria);\r\n\t\t\tthat.addResumen( 'beaconTiempoSinVer', tiempoSinVer);\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\t/* Navegar a: */\r\n\r\n\r\n\tnavegarRutaSugerida(){\r\n\t\tthis.router.navigate(['/rutas-sugeridas']);\r\n\t}\r\n\r\n\tnavegarPlanos(){\r\n\t\tthis.router.navigate(['/mapas']);\r\n\t}\r\n\r\n\tnavegarBeacons(order){\r\n\t\tthis.router.navigate(['/balizas'], { queryParams: { order: order }});\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({ severity: 'error', detail: mensaje });\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({ severity: 'success', detail: mensaje });\r\n\t}\r\n\r\n\trandonValue(){\r\n\t\tvar val = Math.floor(Math.random() * 100);\r\n\t\treturn val;\r\n\t }\r\n\r\n\tgenerarPuntosEjemplo(){\r\n\t\t// now generate some random data\r\n\t\tvar points = [];\r\n\r\n\t\t// Entrada\r\n\t\tvar val = this.randonValue();\r\n\t\tvar point = {\r\n\t\t x: 1768,\r\n\t\t y: 1758,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\t\t// Tienda\r\n\t\tval = this.randonValue();\r\n\t\tpoint = {\r\n\t\t x: 1651,\r\n\t\t y: 1718,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\t\t// Punto Informacion\r\n\t\tval = this.randonValue();\r\n\t\tpoint = {\r\n\t\t x: 1935,\r\n\t\t y: 1796,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\r\n\t\t// Claustro 1-1\r\n\t\tval = this.randonValue();\r\n\t\tpoint = {\r\n\t\t x: 1799,\r\n\t\t y: 1580,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\t\t// Claustro 1-1-4\r\n\t\tval = this.randonValue();\r\n\t\tpoint = {\r\n\t\t x: 1799,\r\n\t\t y: 1404,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\t\t// Claustro 1-4\r\n\t\tval = this.randonValue();\r\n\t\tpoint = {\r\n\t\t x: 1828,\r\n\t\t y: 1161,\r\n\t\t value: val\r\n\t\t};\r\n\t\tpoints.push(point);\r\n\r\n\t\treturn points;\r\n\t }\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Dashboard/dashboard.component.ts","module.exports = \"
      \\r\\n {{texto_mostrar}} \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/DescargaApp/DescargaApp.component.html\n// module id = ../../../../../src/app/views/DescargaApp/DescargaApp.component.html\n// module chunks = main","import { Component, OnInit } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\n\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UrlDescargaApp } from '../../domain/UrlDescargaApp';\r\n\r\n@Component({\r\n\ttemplateUrl: './DescargaApp.component.html'\r\n})\r\n\r\nexport class DescargaAppComponent implements OnInit {\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tidEntidad: string;\r\n\tidQR: string;\r\n\ttexto_mostrar = 'Redirigiendo a la pagina de descarga ...'\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate route: ActivatedRoute, )\r\n\t{\r\n\t\tconsole.log('*** DescargaAppComponent ***');\r\n\t\t\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\tthis.route.queryParams\r\n\t\t.subscribe(params => {\r\n\t\t\tthis.idEntidad = params['idEntidad'];\r\n\t\t\tthis.idQR = params['idQR'];\r\n\r\n\t\t\tthis.redirigir();\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n\tngOnInit() {\r\n\r\n\t}\r\n\r\n\tredirigir() {\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.sws.wsObtenerUrlDescargaEverpaths(this.idEntidad, this.idQR).toPromise()\r\n\t\t.then(function (data) {\r\n\r\n\t\t\tif ((data.res === 1)) {\r\n\r\n\t\t\t\tconst urlDescarga = new UrlDescargaApp(data.urlDescargaApp);\r\n\t\t\t\tif (that.esIOS()){\r\n\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\t\t\twindow.location.href = urlDescarga.Url_ios;\r\n\t\t\t\t}\r\n\t\t\t\telse if (that.esAndroid()){\r\n\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\r\n\t\t\t\t\twindow.location.href = urlDescarga.Url_android;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\tthat.texto_mostrar = 'ERROR: DISPOSITIVO NO SOTORTADO';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.texto_mostrar = 'ERROR: EXCEPCION';\r\n\t\t});\r\n\t}\r\n\r\n\tprivate esIOS(){\r\n\t\tconst ua = navigator.userAgent;\r\n\t\tif (/iPhone|iPad|iPod/i.test(ua)){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate esAndroid(){\r\n\t\tconst ua = navigator.userAgent;\r\n\t\tif (/Android/i.test(ua)){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/DescargaApp/DescargaApp.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{\\\"Encuestas.Encuestas\\\" | translate }}

      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{\\\"Encuestas.listaEncuestas\\\" | translate }}\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n {{ rowData[col.field] }} \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n {{ rowData[col.field] | date: this.translate.instant('General.fermatofechaSinHorapipe') }}\\r\\n
      \\r\\n\\r\\n
      \\r\\n grade \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.html\n// module id = ../../../../../src/app/views/Encuestas/Encuestas.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* IdHardware */\\n/* Descripcion */\\n/* Bateria */\\n/* Potencia */\\n/* Fecha Instalacion */\\n/* Fecha Alta */\\n/* Fecha Baja */\\n/* Fecha Lectura */\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.scss\n// module id = ../../../../../src/app/views/Encuestas/Encuestas.component.scss\n// module chunks = main","import { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DiagnosticoService } from '../../providers/diagnostico/diagnostico.service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { TranslateService } from 'ng2-translate/src/translate.service';\r\nimport { Predicate } from 'breeze-client';\r\nimport { BalizaFormulario } from '../../domain/BalizaFormulario';\r\nimport { Encuesta } from '../../domain/Encuesta';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { AppComponent } from '../../app.component';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { Exportar } from '../../service/exportar.service';\r\nimport { Permisos, PermisosService } from '../../providers/authentication/permisos.service';\r\n\r\n@Component({\r\n templateUrl: './Encuestas.component.html',\r\n styles: [`\r\n .cars-datalist ul {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n @media (max-width:640px) {\r\n .cars-datalist .text-column {\r\n text-align: center;\r\n }\r\n }\r\n `],\r\n styleUrls: ['./Encuestas.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [Exportar]\r\n})\r\n\r\nexport class EncuestasComponent implements OnInit {\r\n\r\n\tpublic displayDialog: boolean = true;\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tspinner: HTMLElement;\r\n\r\n\tcols_balizas: any[] = [];\r\n\r\n\tencuestas: any[] = [];\r\n\tencuestasFiltradas: any[] = [];\r\n\r\n\tcols_encuestas: any[] = [];\r\n\r\n\r\n\tidiomaCalendario: IdiomaCalendario ;\r\n\r\n\tfecha_DesdeFilter: Date;\r\n\tfecha_HastaFilter: Date;\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\r\n\r\n\tdisplayDialogEncuesta: boolean = false;\r\n\tencuestaSeleccionada: Encuesta = new Encuesta();\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tpublic DIAG: DiagnosticoService,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tpublic router: Router,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate exportador: Exportar) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Encuestas.Encuestas')\r\n\t\t\t}\r\n\t\t]);\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t\tthis.cols_encuestas = [\r\n\t\t\t{ field: 'nombreEncuesta', header: this.translate.instant('Encuestas.NombreEncuesta'), visible: true },\r\n\t\t\t{ field: 'formulacionPregunta', header: this.translate.instant('Encuestas.Pregunta'), visible: true },\r\n\t\t\t{ field: 'formulacionRespuesta', header: this.translate.instant('Encuestas.Respuesta'), visible: true }, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'fecha', header: this.translate.instant('Encuestas.Fecha'), visible: true },\r\n\t\t\t{ field: 'usuario', header: this.translate.instant('Encuestas.Usuario'), visible: true },\r\n\t\t\t{ field: 'tipoPregunta', header: this.translate.instant('Encuestas.Tipo'), visible: false },\r\n\t\t\t\r\n\r\n\t\t];\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\tthat.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\treturn that.obtenerRespuestas();\r\n\r\n\t\t}).then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\r\n\r\n\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\t\t/* IDIOMA */\r\n\t\tonIdiomaChange($event) {\r\n\r\n\t\t\t// Cambiamos el idioma seleccionado\r\n\t\t\tlet idioma;\r\n\t\t\tif ($event === undefined) {\r\n\t\t\t\tidioma = this.idiomaSeleccionado ? this.idiomaSeleccionado : this.idiomaService.getIdiomaDefecto(this.idiomas);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tidioma = $event.value;\r\n\t\t\t}\r\n\t\t\tif (!idioma) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.idiomaSeleccionado = idioma;\r\n\t\r\n\r\n\t\r\n\t\t\tthis.obtenerRespuestas();\r\n\t\r\n\t\t\r\n\t\t}\r\n\r\n\t\texportarEncuestas(){\r\n\t\t\t// this.loadContenido(true);\r\n\t\t\tthis.loadEncuestasExportar();\r\n\t\t}\r\n\r\n\t\tloadEncuestasExportar() {\r\n\r\n\t\t\tconst that = this;\r\n\t\r\n\t\t\t// Mostramos Spinner\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaEncuestas(that.encuestasFiltradas), 'Encuestas');\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t}\r\n\r\n\t\r\n\tobtenerRespuestas(){\r\n\t\tconst that = this;\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\tconst token = that.authService.getToken();\r\n\r\n\t\treturn that.sws.wsObtenerRespuestas(token, idEspacio, that.idiomaSeleccionado.ENTIDAD.Id).toPromise()\r\n\t\t.then(function (respuestas) {\r\n\t\t\trespuestas = respuestas.lista;\r\n\t\t\tthat.encuestas = [];\r\n\t\t\trespuestas.forEach(element => {\r\n\t\t\t\t\tconst encuesta = new Encuesta().fromENTIDAD(element);\r\n\t\t\t\t\tthat.encuestas.push(encuesta);\r\n\t\t\t\t});\r\n\t\t\tthat.encuestasFiltradas = that.encuestas;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\t\r\n\r\n\r\n\t}\r\n\r\n\r\n\tonTipologiaChange(event, dt) {\r\n\t\tthis.filtrarTabla(dt, event, 'TIPOLOGIA_BALIZA', 'equals');\r\n\t}\r\n\r\n\tonNivelbateriaChange(event, dt) {\r\n\t\tthis.filtrarTabla(dt, event, 'NivelBateria', 'le');\r\n\t}\r\n\r\n\tonFechaChange(dt, event, columna, tipo) {\r\n\t\t// Centralizamos el filtrado\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif(event){\r\n\t\t\t\tevent.setHours(23,59,59,0);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif(event){\r\n\t\t\t\tevent.setHours(0,0,0,0);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.filtrarTabla(dt, event, columna, tipo);\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tfecha.setHours(23,59,59,0);\r\n\t\t}\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tfecha.setHours(0,0,0,0);\r\n\t\t}\r\n\t\tthis.onFechaChange(dt, fecha, columna, tipo);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\tcounter(i: number) {\r\n\t\treturn new Array(i);\r\n\t}\r\n\r\n\tfiltrarTabla(dt, event, columna, tipo){\r\n\r\n\t\tconst that = this;\r\n\t\tthis.encuestasFiltradas = this.encuestas;\r\n\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'fecha') {\r\n\t\t\t\tthis.fecha_DesdeFilter = event;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'fecha') {\r\n\t\t\t\tthis.fecha_HastaFilter = event;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// Aplicamos filtro Fecha\r\n\t\tthis.encuestasFiltradas = this.encuestasFiltradas.filter(function (bal) {\r\n\t\t\tconsole.log(bal)\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.fecha_DesdeFilter === undefined || that.fecha_DesdeFilter === null) &&\r\n\t\t\t\t(that.fecha_HastaFilter === undefined || that.fecha_HastaFilter === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.fecha_DesdeFilter !== undefined && that.fecha_DesdeFilter !== null ) {\r\n\t\t\t\tflagDesde = that.fecha_DesdeFilter < new Date(bal.fecha);\r\n\t\t\t}\r\n\t\t\tif (that.fecha_HastaFilter !== undefined && that.fecha_HastaFilter !== null) {\r\n\t\t\t\tflagHasta = that.fecha_HastaFilter > new Date(bal.fecha);\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\r\n\r\n\r\n\t}\r\n\r\n\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Encuestas/Encuestas.component.ts","module.exports = \"
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{\\\"Entidades.perfilesmovilidadciudadana\\\" | translate }}

      \\r\\n \\r\\n \\r\\n \\r\\n {{\\\"Entidades.listaperfiles\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{rowData['ENTIDAD'][col.field]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{\\\"Entidades.tipologiascontenidos\\\" | translate }}

      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{\\\"Entidades.listatipologiascontenidos\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{col.header}}\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      {{rowData['ENTIDAD'][col.field]}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{\\\"Entidades.tipologiassecciones\\\" | translate }}

      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{\\\"Entidades.listatipologiassecciones\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{col.header}}\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n {{ (rowData['ENTIDAD'][col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      {{rowData['ENTIDAD'][col.field]}}
      \\r\\n
      {{rowData['ENTIDAD'][col.field]}}
      \\r\\n
      {{rowData['ENTIDAD'][col.field]}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n

      {{'Entidades.permisosUsuarios' | translate }}

      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{'Entidades.listaperfilusuarios' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n {{ rowData[col.field] | date:this.translate.instant('General.fermatofechapipe') }}\\r\\n
      \\r\\n
      \\r\\n {{ (rowData[col.field] === true ? \\\"Boolean.true\\\" : \\\"Boolean.false\\\" ) | translate }}\\r\\n
      \\r\\n
      \\r\\n {{ rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.html\n// module id = ../../../../../src/app/views/Entidades/entidades.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.scss\n// module id = ../../../../../src/app/views/Entidades/entidades.component.scss\n// module chunks = main","import { AuthenticationService } from './../../providers/authentication/authentication.service';\r\nimport { TipologiaContenidoFormulario, AnchorPoint, TipoLocalizacion } from './../../domain/TipologiaContenidoFormulario';\r\nimport { PerfilFormulario } from './../../domain/PerfilFormulario';\r\nimport { Component, OnInit, ViewEncapsulation, OnDestroy, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\n\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message, MenuItem } from 'primeng/primeng';\r\nimport { allSettled } from 'q';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { Predicate } from 'breeze-client';\r\n\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { UsuarioFormulario } from '../../domain/UsuarioFormulario';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { Permisos, PermisosService } from '../../providers/authentication/permisos.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { TipologiaSeccionFormulario } from './../../domain/TipologiaSeccionFormulario';\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './entidades.component.html',\r\n\tstyleUrls: ['./entidades.component.scss'],\r\n\tencapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class EntidadesComponent implements OnInit, OnDestroy {\r\n\r\n\t@ViewChild('dt_tipologias') dt_tipologias;\r\n\t@ViewChild('dt_tipologias_seccion') dt_tipologias_seccion;\r\n\t@ViewChild('dt_perfil') dt_perfil;\r\n\t@ViewChild('dt_usuarios') dt_usuarios;\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tdisplayDialog: boolean;\r\n\tmsgs: Message[] = [];\r\n\r\n\t// Perfiles de Movilidad\r\n\tperfilesMovilidad: any[] = [];\r\n\tperfilSeleccionado: PerfilFormulario = new PerfilFormulario(); // = {Id: '', Nomobre: '', PesoMAximo: '', ENTIDAD: {}};\r\n\tedicion: boolean = false;\r\n\tcols_perfil: any[] = [];\r\n\r\n\t// tipologias contenido\r\n\ttipologiaSeleccionada: TipologiaContenidoFormulario; // {Id: '', Nombre: '', Tipo: '', Buscable: false, VisibilidadPorDefecto: true, IconoRepresentacion: '', ENTIDAD: {}};\r\n\ttipologiasContenido: any[] = [];\r\n\tcols_tipologias: any[] = [];\r\n\tnombresTipologias: any[] = [];\r\n\r\n\t// tipologias seccion\r\n\ttipologiaSeccionSeleccionada: TipologiaSeccionFormulario; \r\n\ttipologiasSeccion: any[] = [];\r\n\tcols_tipologias_secciones: any[] = [];\r\n\tnombresTipologiasSecciones: any[] = [];\r\n\r\n\t// perfiles de usuario (Permisos)\r\n\tusuarioSeleccionado: UsuarioFormulario = new UsuarioFormulario();\r\n\tusuarios: any[] = [];\r\n\tusuariosFiltrados: any[] = [];\r\n\tcols_usuario: any[] = [];\r\n\tfechaAlta_DesdeFiltes: Date;\r\n\tfechaAlta_HastaFiltes: Date;\r\n\r\n\t/* ** p-dialog ** */\r\n\tpublic visibleFormularioTipologia = false;\r\n\tpublic visibleFormularioPerfil = false;\r\n\tpublic visibleFormularioUsuario = false;\r\n\tpublic visibleFormularioTipologiaSeccion = false;\r\n\r\n\t/* ** p-tabMenu ** */\r\n\tpublic tabMenuItems: MenuItem[];\r\n\tpublic activeItem: MenuItem;\r\n\tpublic hidePerfiles = false;\r\n\tpublic hideTipologiaContenido = false;\r\n\tpublic hidePermisosUsuarios = false;\r\n\tpublic hideTipologiaSeccion = false;\r\n\r\n\t/* ** IDIOMAS ** */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario ;\r\n\r\n\t/* Filtros Tabla */\r\n\tvaloresTrueFalse: any;\r\n\tvaloresPerfilUsuario: any;\r\n\tmsgs_form_tipologia: any[];\r\n\tmsgs_form_tipologia_seccion: any[];\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\tconstructor(\r\n\r\n\t\tprivate sws: ServiciosWebServiceProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tpublic authenticationService: AuthenticationService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService) {\r\n\t\tthis.tipologiaSeleccionada = new TipologiaContenidoFormulario(this.translate);\r\n\t\tthis.tipologiaSeccionSeleccionada = new TipologiaSeccionFormulario(this.translate);\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{\r\n\r\n\t\t\t\tlabel: this.translate.instant('Entidades.configuracion')}\r\n\t\t\t]);\r\n\r\n\t\tthis.tabMenuItems = [\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Entidades.perfilesmovilidad'),\r\n\t\t\t\ticon: 'iticon-tab-perfil-movilidad ',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabPerfilesSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Entidades.tipologiassecciones'),\r\n\t\t\t\ticon: 'iticon-tab-seccion',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabTipologiaSeccionSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Entidades.tipologiascontenidos'),\r\n\t\t\t\ticon: 'iticon-tab-tipologia-contenido',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabTipologiaContenidoSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Entidades.permisosUsuarios'),\r\n\t\t\t\ticon: 'iticon-tab-settings',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabPermisosUsuariosSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tthis.cols_tipologias = [\r\n\t\t\t{ field: 'IconoRepresentacion', header: this.translate.instant('Entidades.icono') },\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Entidades.nombre') },\r\n\t\t\t{ field: 'Buscable', header: this.translate.instant('Entidades.buscable') },\r\n\t\t\t{ field: 'VisibleEnMapa', header: this.translate.instant('Entidades.visibleEnMapa') },\r\n\t\t\t{ field: 'UbicarAnonimos', header: this.translate.instant('Entidades.UbicarAnonimos')},\r\n\t\t\t{ field: 'PantallaPrincipal', header: this.translate.instant('Entidades.PantallaPrincipal')},\r\n\t\t\t{ field: 'MostrableEnDirectorioDeContenidos', header: this.translate.instant('Entidades.visibleEnDirectorio') },\r\n\t\t\t{ field: 'VisibilidadListaCOntenidosSeccion', header: this.translate.instant('Entidades.VisibilidadListaCOntenidosSeccion') },\r\n\r\n\t\t\t{ field: 'VisibilidadIconoMapa', header: this.translate.instant('Entidades.visibleIcono') },\r\n\t\t\t{ field: 'VisibilidadLabelMapa', header: this.translate.instant('Entidades.visibleLabel') },\r\n\r\n\t\t\t{ field: 'VisibilidadPorDefecto', header: this.translate.instant('Entidades.visibilidad') }\r\n\r\n\t\t];\r\n\r\n\t\tthis.cols_tipologias_secciones = [\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Entidades.nombre') },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('Entidades.descripcion') },\r\n\t\t\t{ field: 'IdAlternativo', header: this.translate.instant('Formularios.IdAlternativo') },\r\n\t\t\t{ field: 'Activa', header: this.translate.instant('Entidades.activa') }\r\n\r\n\r\n\r\n\r\n\t\t];\r\n\r\n\t\tthis.cols_perfil = [\r\n\t\t\t{ field: 'Nomobre', header: this.translate.instant('Entidades.nombre') }\r\n\t\t\t// ,{ field: 'PesoMAximo', header: this.translate.instant('Entidades.pesomaximo') }\r\n\t\t];\r\n\r\n\t\tthis.cols_usuario = [\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Entidades.nombre') },\r\n\t\t\t{ field: 'Login', header: this.translate.instant('Formularios.Login') },\r\n\t\t\t{ field: 'FechaAlta', header: this.translate.instant('Formularios.fechaalta') },\r\n\t\t\t{ field: 'NombreTipo', header: this.translate.instant('Formularios.perfil') },\r\n\t\t\t{ field: 'Activo', header: this.translate.instant('General.activo') }\r\n\t\t];\r\n\r\n\t\tthis.valoresTrueFalse = [{label: this.translate.instant('Boolean.true'), value: true}, {label: this.translate.instant('Boolean.false'), value: false}];\r\n\t\tthis.valoresPerfilUsuario = [\r\n\t\t\t{label: 'SUPER ADMINISTRADOR', value: 'SUPER ADMINISTRADOR'},\r\n\t\t\t{label: 'CIUDADANO', value: 'CIUDADANO'},\r\n\t\t\t{label: 'GESTOR ESPACIOS', value: 'GESTOR ESPACIOS'},\r\n\t\t\t{label: 'GESTOR CONTENIDO', value: 'GESTOR CONTENIDO'},\r\n\t\t\t{label: 'SOLO NOTIFICACIONES', value: 'SOLO NOTIFICACIONES'}\r\n\t\t];\r\n\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function(idiomasENTIDAD: any ){\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t\treturn that.entityManager.getPERFIL();\r\n\t\t})\r\n\t\t.then(function(res){\r\n\t\t\tconsole.log('***** PERFILES');\r\n\t\t\tthat.valoresPerfilUsuario = [];\r\n\r\n\t\t\tres.forEach(perfil => {\r\n\t\t\t\tconst opcion = {label: perfil.Nombre, value: perfil.Nombre};\r\n\t\t\t\tthat.valoresPerfilUsuario.push(opcion);\r\n\t\t\t\t// perfil.Tipo;\r\n\t\t\t\t// perfil.Nombre;\r\n\t\t\t});\r\n\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO(new Predicate('VisibilidadListaContenidosWeb', '==', 1))\r\n\t\t})\r\n\t\t.then((e) => {\r\n\r\n\t\t\te.forEach(element => {\r\n\t\t\t\tconst tipologiaFormulario = new TipologiaContenidoFormulario(that.translate, element);\r\n\t\t\t\tthat.tipologiasContenido.push(tipologiaFormulario);\r\n\t\t\t\tlet nombreIdTipologia = {nombre: tipologiaFormulario.Nombre, id: tipologiaFormulario.Id }\r\n\t\t\t\tthat.nombresTipologias.push(nombreIdTipologia)\r\n\t\t\t});\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_SECCION()\r\n\t\t})\r\n\t\t.then((s) => {\r\n\r\n\t\t\ts.forEach(element => {\r\n\t\t\t\tconst tipologiaSeccionFormulario = new TipologiaSeccionFormulario(that.translate, element);\r\n\t\t\t\tthat.tipologiasSeccion.push(tipologiaSeccionFormulario);\r\n\t\t\t\tlet nombreIdTipologiaSeccion = {nombre: tipologiaSeccionFormulario.Nombre, id: tipologiaSeccionFormulario.Id }\r\n\t\t\t\tthat.nombresTipologiasSecciones.push(nombreIdTipologiaSeccion)\r\n\t\t\t});\r\n\t\t\treturn that.tipologiasSeccion;\r\n\t\t});\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\t}\r\n\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\treturn that.obtenerPERFIL_MOVILIDAD_CIUDADANO()\r\n\t\t.then(function(){\r\n\t\t\treturn that.obtenerUSUARIOS();\r\n\t\t})\r\n\t\t.then(function(usuarios){\r\n\t\t\tthat.usuariosFiltrados = usuarios;\r\n\t\t\tthat.tabPerfilesSeleccionada(event);\r\n\t\t\tthat.dt_tipologias.reset();\r\n\t\t\tthat.dt_tipologias_seccion.reset();\r\n\t\t\tthat.dt_usuarios.reset();\r\n\t\t\tthat.dt_perfil.reset();\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n\tdt_usuarios_filter($event_target_value, col_field, equals){\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authenticationService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tobtenerPERFIL_MOVILIDAD_CIUDADANO(){\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\tconst includes = 'IDIOMAS';\r\n\t\tconst idEspacio = that.authenticationService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tthat.perfilesMovilidad = [];\r\n\r\n\t\treturn entityManager.getPERFIL_MOVILIDAD_CIUDADANO(predicado, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY PERFILES');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('PERFILES CARGADOS CORRECTAMENTE = ' + entidades.length);\r\n\t\t\t\tentidades.forEach(perfil => {\r\n\t\t\t\t\tconst perfilFormulario = new PerfilFormulario(perfil); // {Id: '', Nomobre: '', PesoMAximo: '', ENTIDAD: {}};\r\n\t\t\t\t\tthat.perfilesMovilidad.push(perfilFormulario);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerUSUARIOS(){\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\t\tconst includes = 'ESPACIOS, PERFIL, PERFIL.FUNCIONALIDADES';\r\n\r\n\t\tthat.usuarios = [];\r\n\t\tconst idEspacio = that.authenticationService.getIdEspacio();\r\n\t\tconst where = new Predicate('PERFIL.Tipo', '!=', Constantes.CIUDADANO);\r\n\t\treturn entityManager.getUSUARIObyIdEspacio(idEspacio, includes, where)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY PERFIL usuario');\r\n\t\t\t\treturn that.usuarios;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('USUARIO CARGADOS CORRECTAMENTE = ' + entidades.length);\r\n\t\t\t\tconst loginUsuarioActual = that.authenticationService.getLastUser().toLowerCase().normalizar();\r\n\t\t\t\t// const usuariosFijos = entidades.filter( x => x.PERFIL.Tipo !== Constantes.CIUDADANO);\r\n\t\t\t\tconst usuarioActual = entidades.filter( x => x.Login.toLowerCase().normalizar() === loginUsuarioActual)[0];\r\n\r\n\t\t\t\tif (usuarioActual.PERFIL.Tipo === Constantes.ADMINISTRADOR_ENTIDAD\r\n\t\t\t\t\t|| usuarioActual.PERFIL.Tipo === Constantes.GESTOR_ESPACIOS\r\n\t\t\t\t\t|| usuarioActual.PERFIL.Tipo === Constantes.SUPER_ADMINISTRADOR\r\n\t\t\t\t) {\r\n\t\t\t\t\tentidades.forEach(usuario => {\r\n\t\t\t\t\t\tconst usuarioFormulario = new UsuarioFormulario(usuario);\r\n\t\t\t\t\t\tthat.usuarios.push(usuarioFormulario);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst usuarioFormulario = new UsuarioFormulario(usuarioActual);\r\n\t\t\t\t\tthat.usuarios.push(usuarioFormulario);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn that.usuarios;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n// Selectores Pestañas\r\n\tprotected ocultarTabs() {\r\n\t\tthis.hidePerfiles = true;\r\n\t\tthis.hideTipologiaContenido = true;\r\n\t\tthis.hidePermisosUsuarios = true;\r\n\t\tthis.hideTipologiaSeccion = true;\r\n\t}\r\n\r\n\ttabPerfilesSeleccionada(event){\r\n\t\tthis.activeItem = this.tabMenuItems[0];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hidePerfiles = false;\r\n\t}\r\n\r\n\ttabTipologiaSeccionSeleccionada(event){\r\n\t\tthis.activeItem = this.tabMenuItems[1];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideTipologiaSeccion = false;\r\n\t}\r\n\r\n\ttabTipologiaContenidoSeleccionada(event){\r\n\t\tthis.activeItem = this.tabMenuItems[2];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideTipologiaContenido = false;\r\n\t}\r\n\r\n\r\n\ttabPermisosUsuariosSeleccionada(event){\r\n\t\tthis.activeItem = this.tabMenuItems[3];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hidePermisosUsuarios = false;\r\n\t}\r\n\r\n// Tabla Perfiles\r\n\tonPerfilSelect($event){\r\n\t\tthis.visibleFormularioPerfil = true;\r\n\t\tthis.perfilSeleccionado.Idiomas = this.idiomaService.getMapPerfilmovilidadIdiomas(this.perfilSeleccionado.ENTIDAD.IDIOMAS);\r\n\r\n\t\tthis.perfilSeleccionado.Nomobre = this.perfilSeleccionado.ENTIDAD.Nomobre;\r\n\t\tthis.perfilSeleccionado.PesoMAximo = this.perfilSeleccionado.ENTIDAD.PesoMAximo;\r\n\r\n\t\tthis.edicion = true;\r\n\t}\r\n\r\n\tshowFormulario(){\r\n\t\tthis.perfilSeleccionado = new PerfilFormulario(); // {Id: '', Nomobre: '', PesoMAximo: '', ENTIDAD: {}};\r\n\t\tthis.perfilSeleccionado.Idiomas = this.idiomaService.newMapPerfilmovilidadIdiomas(this.idiomas);\r\n\t\tthis.visibleFormularioPerfil = true;\r\n\t\tthis.edicion = false;\r\n\t}\r\n\r\n// Tabla tipologias\r\n\tonTipologiaSelect($event){\r\n\t\tthis.visibleFormularioTipologia = true;\r\n\t\tthis.tipologiaSeleccionada.Idiomas = this.idiomaService.getMapTipologiaContenidoIdiomas(this.tipologiaSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\tthis.tipologiaSeleccionada.Nombre = this.tipologiaSeleccionada.ENTIDAD.Nombre;\r\n\t\tthis.tipologiaSeleccionada.Buscable = this.tipologiaSeleccionada.ENTIDAD.Buscable;\r\n\t\tthis.tipologiaSeleccionada.VisibilidadPorDefecto = this.tipologiaSeleccionada.ENTIDAD.VisibilidadPorDefecto;\r\n\t\tthis.tipologiaSeleccionada.VisibleEnMapa = this.tipologiaSeleccionada.ENTIDAD.VisibleEnMapa;\r\n\t\tthis.tipologiaSeleccionada.UbicarAnonimos = this.tipologiaSeleccionada.ENTIDAD.UbicarAnonimos;\r\n\t\tthis.tipologiaSeleccionada.PantallaPrincipal = this.tipologiaSeleccionada.ENTIDAD.PantallaPrincipal;\r\n\t\tthis.tipologiaSeleccionada.VisibilidadIconoMapa = this.tipologiaSeleccionada.ENTIDAD.VisibilidadIconoMapa;\r\n\t\tthis.tipologiaSeleccionada.VisibilidadLabelMapa = this.tipologiaSeleccionada.ENTIDAD.VisibilidadLabelMapa;\r\n\t\tthis.tipologiaSeleccionada.MostrableEnDirectorioDeContenidos = this.tipologiaSeleccionada.ENTIDAD.MostrableEnDirectorioDeContenidos;\r\n\t\tthis.tipologiaSeleccionada.IconoRepresentacion = this.tipologiaSeleccionada.ENTIDAD.IconoRepresentacion;\r\n\t\tthis.tipologiaSeleccionada.anchorPoint = new AnchorPoint(this.tipologiaSeleccionada.ENTIDAD.AnchorPoint);\r\n\t\tthis.tipologiaSeleccionada.TipoUbicacion = new TipoLocalizacion(this.translate, this.tipologiaSeleccionada.ENTIDAD.TipoUbicacion);\r\n\t\tthis.tipologiaSeleccionada.Activa = this.tipologiaSeleccionada.ENTIDAD.Activa;\r\n\r\n\t\tthis.edicion = true;\r\n\t}\r\n\r\n\t// Tabla tipologias\r\n\tonTipologiaSeccionSelect($event){\r\n\t\tconsole.log($event);\r\n\t\tconsole.log(this.tipologiaSeccionSeleccionada);\r\n\t\tthis.visibleFormularioTipologiaSeccion = true;\r\n\t\tthis.tipologiaSeccionSeleccionada.Idiomas = this.idiomaService.getMapTipologiaContenidoIdiomas(this.tipologiaSeccionSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\tthis.tipologiaSeccionSeleccionada.Nombre = this.tipologiaSeccionSeleccionada.ENTIDAD.Nombre;\r\n\t\tthis.tipologiaSeccionSeleccionada.Descripcion = this.tipologiaSeccionSeleccionada.ENTIDAD.Descripcion;\r\n\t\tthis.tipologiaSeccionSeleccionada.IdAlternativo = this.tipologiaSeccionSeleccionada.ENTIDAD.IdAlternativo;\r\n\t\tthis.tipologiaSeccionSeleccionada.Activa = this.tipologiaSeccionSeleccionada.ENTIDAD.Activa;\r\n\t\tthis.tipologiaSeccionSeleccionada.IconoRepresentacion = this.tipologiaSeccionSeleccionada.ENTIDAD.IconoRepresentacion;\r\n\t\tthis.tipologiaSeccionSeleccionada.anchorPoint = new AnchorPoint(this.tipologiaSeccionSeleccionada.ENTIDAD.AnchorPoint);\r\n\t\tthis.tipologiaSeccionSeleccionada.Tipo = this.tipologiaSeccionSeleccionada.ENTIDAD.Tipo;\r\n\t\t\r\n\r\n\t\tthis.edicion = true;\r\n\t}\r\n\r\n\tshowFormularioTipologia(){\r\n\t\tthis.tipologiaSeleccionada = new TipologiaContenidoFormulario(this.translate); // {Id: '', Nombre: '', Tipo: '', Buscable: false, VisibilidadPorDefecto: true, IconoRepresentacion: '', ENTIDAD: {}};\r\n\t\tthis.tipologiaSeleccionada.Idiomas = this.idiomaService.newMapTipologiaContenidoIdiomas(this.idiomas);\r\n\t\tthis.visibleFormularioTipologia = true;\r\n\t\tthis.edicion = false;\r\n\t\tthis.msgs_form_tipologia = [];\r\n\t}\r\n\r\n\tshowFormularioTipologiaSeccion(){\r\n\t\tthis.tipologiaSeccionSeleccionada = new TipologiaSeccionFormulario(this.translate); // {Id: '', Nombre: '', Tipo: '', Buscable: false, VisibilidadPorDefecto: true, IconoRepresentacion: '', ENTIDAD: {}};\r\n\t\tthis.tipologiaSeccionSeleccionada.Idiomas = this.idiomaService.newMapTipologiaSeccionIdiomas(this.idiomas);\r\n\t\tthis.visibleFormularioTipologiaSeccion = true;\r\n\t\tthis.edicion = false;\r\n\t\tthis.msgs_form_tipologia_seccion = [];\r\n\t}\r\n\r\n// Tabla Usuarios\r\n\tonUsuarioSelect($event){\r\n\t\tthis.visibleFormularioUsuario = true;\r\n\r\n\t\tthis.usuarioSeleccionado.Nombre = this.usuarioSeleccionado.ENTIDAD.Nombre;\r\n\t\tthis.usuarioSeleccionado.Login = this.usuarioSeleccionado.ENTIDAD.Login;\r\n\t\tthis.usuarioSeleccionado.Email = this.usuarioSeleccionado.ENTIDAD.Email;\r\n\t\tthis.usuarioSeleccionado.Email = this.usuarioSeleccionado.ENTIDAD.Email;\r\n\r\n\t\tthis.edicion = true;\r\n\t}\r\n\r\n\tshowFormularioUsuario(){\r\n\t\tthis.usuarioSeleccionado = new UsuarioFormulario();\r\n\t\tthis.visibleFormularioUsuario = true;\r\n\t\tthis.edicion = false;\r\n\t}\r\n\r\n\tonFechaFilterchanged(event, columna, tipo){\r\n\r\n\t\t// Preparamos los valores de los filtros\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tif (columna === 'FechaInstalacion') {\r\n\t\t\t\tthis.fechaAlta_DesdeFiltes = event;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tif (columna === 'FechaInstalacion') {\r\n\t\t\t\tthis.fechaAlta_HastaFiltes = event;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst that = this;\r\n\t\tthis.usuariosFiltrados = this.usuarios;\r\n\r\n\t\t\t// Aplicamos filtro FechaAlta\r\n\t\tthis.usuariosFiltrados = this.usuariosFiltrados.filter(function (bal) {\r\n\t\t\tlet flagDesde = true;\r\n\t\t\tlet flagHasta = true;\r\n\t\t\tif ((that.fechaAlta_DesdeFiltes === undefined || that.fechaAlta_DesdeFiltes === null) &&\r\n\t\t\t\t(that.fechaAlta_HastaFiltes === undefined || that.fechaAlta_HastaFiltes === null)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif (that.fechaAlta_DesdeFiltes !== undefined && that.fechaAlta_DesdeFiltes !== null ) {\r\n\t\t\t\tflagDesde = that.fechaAlta_DesdeFiltes < bal.FechaAlta;\r\n\t\t\t}\r\n\t\t\tif (that.fechaAlta_HastaFiltes !== undefined && that.fechaAlta_HastaFiltes !== null) {\r\n\t\t\t\tflagHasta = that.fechaAlta_HastaFiltes > bal.FechaAlta;\r\n\t\t\t}\r\n\t\t\treturn flagDesde && flagHasta;\r\n\t\t});\r\n\t}\r\n\r\n\r\n// Formulario Usuario\r\n\r\n\tonFormularioUsuarioShow(){\r\n\r\n\t}\r\n\tonFormularioUsuarioCerrado($event){\r\n\t\tthis.usuarioSeleccionado = new UsuarioFormulario();\r\n\r\n\t}\r\n\r\n\tonElementoUsuarioGuardado($event){\r\n\t\tconst that = this;\r\n\t\tif ($event) {\r\n\t\t\tthis.usuarios = [];\r\n\t\t\tthis.obtenerUSUARIOS()\r\n\t\t\t.then(function(usuarios){\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.usuariosFiltrados = usuarios;\r\n\t\t\t\tthat.visibleFormularioUsuario = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tonElementoUsuarioEliminado($event){\r\n\r\n\t}\r\n\r\n\tonFormularioUsuarioValidation($event){\r\n\r\n\t}\r\n\r\n// Formulario Perfiles\r\n\tonFormularioPerfilShow(){\r\n\r\n\t}\r\n\r\n\tonElementoPerfilEliminado($event){\r\n\r\n\t}\r\n\r\n\tonFormularioValidation($event){\r\n\r\n\t}\r\n\r\n\tonFormularioPerfilCerrado(event) {\r\n\t\tthis.perfilSeleccionado = new PerfilFormulario();\r\n\t}\r\n\r\n\tonElementoPerfilGuardado(perfilFormulario){\r\n\t\tconst that = this;\r\n\t\tif (!this.edicion) {\r\n\t\t\tthis.perfilesMovilidad.push(perfilFormulario);\r\n\r\n\t\t\tthis.asignarPesoAConexiones(perfilFormulario)\r\n\t\t\t.then(function(msg){\r\n\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\t\tthat.visibleFormularioPerfil = false;\r\n\t\t\t\tconsole.log('Perfil guardado Correctamente: ' + msg);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\tthis.visibleFormularioPerfil = false;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic asignarPesoAConexiones(perfilFormulario) {\r\n\r\n\t\t// PREPARAMOS LA SUBIDA DE LAS FOTOS\r\n\t\tconst that = this;\r\n\t\tconst includes = 'CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\t\tlet nodosTodos;\r\n\t\tconst conexiones = [];\r\n\t\treturn this.obtenerNODOs()\r\n\t\t.then(function(nodos){\r\n\r\n\t\t\tnodosTodos = nodos;\r\n\t\t\tnodosTodos.forEach(nodo => {\r\n\t\t\t\tnodo.CONEXIONS_NODOS_ORIGEN.forEach(conexion => {\r\n\t\t\t\t\tconexiones.push(conexion);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\treturn that.crearPesos(conexiones);\r\n\r\n\t\t})\r\n\t\t.then(function(pesos){\r\n\r\n\t\t\tif (pesos) {\r\n\t\t\t\tfor (let index = 0; index < pesos.length; index++) {\r\n\t\t\t\t\tconst peso = pesos[index].value;\r\n\t\t\t\t\tconst conexion = conexiones[index];\r\n\t\t\t\t\tpeso.PerfilMovilidad = perfilFormulario.ENTIDAD;\r\n\t\t\t\t\tpeso.ConexionNodo = conexion;\r\n\t\t\t\t\tpeso.Peso = Constantes.PESO;\r\n\t\t\t\t}\r\n\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t}\r\n\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tcrearPesos(conexiones){\r\n\t\tif (conexiones == null || conexiones.length < 1) {\r\n\t\t\tconsole.log('NO HAY NODOS');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconst promises: any[] = [];\r\n\r\n\t\t\tconexiones.forEach(ENTIDAD => {\r\n\t\t\t\tpromises.push(this.entityManager.newPESO_CONEXION());\r\n\t\t\t});\r\n\t\t\treturn allSettled(promises);\r\n\t\t}\r\n\t}\r\n\r\n\tobtenerNODOs() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\t// const includes = 'SECCIONS, SECCIONS.NODOS, SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO';\r\n\t\t// let includes = 'SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\t\tconst includes = 'CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\r\n\t\treturn entityManager.getNODO(undefined, includes);\r\n\t}\r\n\r\n// Formulario Tipologia\r\n\tonFormularioTipologiaShow(){\r\n\t\tthis.msgs_form_tipologia = [];\r\n\t}\r\n\t// Formulario Tipologia Sección\r\n\tonFormularioTipologiaSeccionShow(){\r\n\t\tthis.msgs_form_tipologia_seccion = [];\r\n\t}\r\n\r\n\tonFormularioTipologiaCerrado($event){\r\n\t\tthis.tipologiaSeleccionada = new TipologiaContenidoFormulario(this.translate);\r\n\t\tthis.visibleFormularioTipologia = false;\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t}\r\n\r\n\tonFormularioTipologiaSeccionCerrado($event){\r\n\t\tthis.tipologiaSeccionSeleccionada = new TipologiaSeccionFormulario(this.translate);\r\n\t\tthis.visibleFormularioTipologiaSeccion = false;\r\n\r\n\t\tthis.idiomaSeleccionado = this.idiomaDefecto;\r\n\t}\r\n\r\n\tonElementoTipologiaGuardado(tipologiaContenidoFormulario){\r\n\r\n\t\tif (!this.edicion) {\r\n\t\t\tthis.tipologiasContenido.push(tipologiaContenidoFormulario);\r\n\t\t\tlet nombreIdTipologia = {nombre: tipologiaContenidoFormulario.Nombre, id: tipologiaContenidoFormulario.Id}\r\n\t\t\tthis.nombresTipologias.push(nombreIdTipologia)\r\n\t\t}\r\n\r\n\t\tconst idTipologia = tipologiaContenidoFormulario.ENTIDAD.Id;\r\n\t\tconst perfil = this.tipologiasContenido.find(x => x.ENTIDAD.Id === idTipologia);\r\n\t\tlet nombreIdTipologia = {nombre: tipologiaContenidoFormulario.Nombre, id: tipologiaContenidoFormulario.Id}\r\n\t\tthis.nombresTipologias.push(nombreIdTipologia)\r\n\r\n\r\n\r\n\t\tthis.visibleFormularioTipologia = false;\r\n\r\n\r\n\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoTipologiaEliminado($event){\r\n\t\tconst that = this;\r\n\t\tif ($event) {\r\n\t\t\tthis.usuarios = [];\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO(new Predicate('VisibilidadListaContenidosWeb', '==', 1))\r\n\t\t\t.then((e) => {\r\n\t\t\t\treturn that.tipologiasContenido = e;\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.visibleFormularioTipologia = false;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonFormularioTipologiaValidation($event){\r\n\r\n\t}\r\n\tonElementoTipologiaSeccionGuardado(tipologiaSeccionFormulario){\r\n\r\n\t\tif (!this.edicion) {\r\n\t\t\tthis.tipologiasSeccion.push(tipologiaSeccionFormulario);\r\n\t\t\tlet nombreIdTipologiaSeccion = {nombre: tipologiaSeccionFormulario.Nombre, id: tipologiaSeccionFormulario.Id}\r\n\t\t\tthis.nombresTipologiasSecciones.push(nombreIdTipologiaSeccion)\r\n\t\t}\r\n\r\n\t\tconst idTipologiaSeccion = tipologiaSeccionFormulario.ENTIDAD.Id;\r\n\t\tconst perfil = this.tipologiasSeccion.find(x => x.ENTIDAD.Id === idTipologiaSeccion);\r\n\t\tlet nombreIdTipologiaSeccion = {nombre: tipologiaSeccionFormulario.Nombre, id: tipologiaSeccionFormulario.Id}\r\n\t\tthis.nombresTipologiasSecciones.push(nombreIdTipologiaSeccion)\r\n\r\n\r\n\r\n\t\tthis.visibleFormularioTipologiaSeccion = false;\r\n\r\n\r\n\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoTipologiaSeccionEliminado($event){\r\n\t\tconst that = this;\r\n\t\tif ($event) {\r\n\t\t\tthis.tipologiasSeccion = [];\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_SECCION()\r\n\t\t\t.then((e) => {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.visibleFormularioTipologiaSeccion = false;\r\n\t\t\t\treturn that.tipologiasSeccion = e;\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonFormularioTipologiaSeccionValidation($event){\r\n\r\n\t}\r\n\r\n\tdownloadFile(fileName) {\r\n\t\tif (fileName === 'Guia_de_Refencia_de_estilos.pdf') {\r\n\t\t\treturn this.sws.downloadFile(Constantes.Guia_de_Refencia_de_estilos_tipotolia, fileName);\r\n\t\t}\r\n\t\tif (fileName === 'tipologia-plantilla.svg') {\r\n\t\t\treturn this.sws.downloadFile(Constantes.Tipologia_Plantilla, fileName);\r\n\t\t}\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Entidades/entidades.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n

      {{infoInforme}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      0\\\" class=\\\"ui-g-2\\\">\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
       
      \\r\\n
       
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.html\n// module id = ../../../../../src/app/views/Informes/Informes.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\n color: gray; }\\n\\n/*label {\\r\\n color: rgb(255, 1, 1);\\r\\n}*/\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.scss\n// module id = ../../../../../src/app/views/Informes/Informes.component.scss\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy, ViewChild, Input } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message, SelectItem } from 'primeng/primeng';\r\nimport { Tablita } from '../../domain/Tablita';\r\nimport { InformesService } from '../../providers/informes/informes.service';\r\nimport { Contenido } from '../../domain/Contenido';\r\nimport { HistoricoLocalizacionContenido } from '../../domain/HistoricoLocalizacionContenido';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { CoincidenciasLocalizacionContenidos } from '../../domain/CoincidenciasLocalizacionContenidos';\r\nimport { Observable, Subscription } from '../../../../node_modules/rxjs';\r\nimport { timer } from '../../../../node_modules/rxjs/observable/timer';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Exportar } from '../../service/exportar.service';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { nodeValue } from '@angular/core/src/view';\r\n/*\r\nimport * as jsPDF from 'jspdf'\r\nimport Canvg from 'canvg';\r\n//import * as svg2pdf from 'svg2pdf.js';\r\nimport html2canvas from 'html2canvas';\r\nimport * as html2pdf from 'html2pdf.js';\r\n*/\r\n\r\n\r\nimport { environment } from '../../../environments/environment';\r\nimport { ok } from 'assert';\r\nimport { SeccionFormulario } from '../../domain/SeccionFormulario';\r\nconst FILTRO_INI = JSON.stringify({\r\n\twhere: {\r\n\t\tTitulo: '',\r\n\t\tDescripcion: '',\r\n\t\tTipo: '',\r\n\t\tPermaneceDesde: '',\r\n\t\tFechaAlta: '',\r\n\t\tFechaBaja: '',\r\n\t\tSeccion: ''\r\n\t},\r\n\torder: 'Titulo DESC',\r\n\ttop: 10,\r\n\tpage: 0,\r\n\ttotal: 0\r\n});\r\n\r\n@Component({\r\n\ttemplateUrl: './Informes.component.html',\r\n\tstyleUrls: ['./Informes.component.scss'],\r\n providers: [ConfirmationService, Exportar]\r\n})\r\nexport class InformesComponent implements OnInit, OnDestroy {\r\n\tfechaInicioAutoRefrescoTablaTiempoReal = new Date();\r\n\tsegundos = new Date();\r\n\tfechaAutoRefrescoTablaTiempoReal = new Date();\r\n\r\n\tfechaInicioAutoRefrescoToken = new Date();\r\n\tfechaAutoRefrescoToken = new Date();\r\n\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\r\n autorefrescoChecked: boolean = false;\r\n\r\n\tpublic informesList: Contenido[] = [];\r\n\tpublic historicosList: HistoricoLocalizacionContenido[];\r\n\tpublic historicoSeccionesList: HistoricoLocalizacionContenido[];\r\n\tpublic historicoTipologiaSeccionesList: HistoricoLocalizacionContenido[];\r\n\tpublic TablitaList: Contenido[];\r\n\tpublic coincidenciasList: CoincidenciasLocalizacionContenidos[];\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n public tipologias_contenido_seleccionadas: any[] = [];\r\n\tpublic tipologias_seccion_seleccionadas: any[] = [];\r\n\tpublic contenidos_seleccionados: any[];\r\n\tpublic secciones_seleccionados: any[];\r\n\r\n\r\n\tpublic tipo_informe_seleccionado;\r\n\tpublic time_selected;\r\n\tpublic TimeCoincidencia_selected;\r\n\tpublic time_last_to_show_selected;\r\n\tpublic time_ubication;\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\tpublic startHourDefault;\r\n\tpublic finHourDefault;\r\n\tpublic op_desde;\r\n\tpublic op_hasta;\r\n\r\n\r\n public opcionesSelectorTipoInforme: SelectItem[] = [];\r\n\tpublic opcionesTimeSelector: SelectItem[] = [];\r\n\tpublic opcionesTimeCoincidenciaSelector: SelectItem[] = [];\r\n\tpublic opcionesTimeLastToShowSelector: SelectItem[] = [];\r\n\tpublic opcionesTiempoUbicacionSelector: SelectItem[] = [];\r\n public opcionesSelectorTipologia: SelectItem[] = [];\r\n\tpublic opcionesSelectorTipologiaSeccion: SelectItem[] = [];\r\n public opcionesSelectorContenido: Contenido[] = [];\r\n\tpublic opcionesSelectorSeccion: SelectItem[] = [];\r\n\tpublic auxOpcionesSelectorSeccion: SelectItem[] = [];\r\n\tpublic opcionesContenidos: Contenido[] = [];\r\n\tocultarAutorefrescar: boolean = true;\r\n\tocultarTimeAutorefrescar: boolean = true;\r\n\tocultarTimeCoincidencia: boolean = true;\r\n\tocultarDesdeHasta: boolean = true;\r\n\tocultarfiltrar: boolean = true;\r\n\tduracionUbicacion: boolean = false;\r\n\tplanoVisible: boolean = true;\r\n\ttablitaVisible: boolean = true;\r\n\tOcultarExportar: boolean = true;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\r\n\t// Visibilidad de Secciones\r\n\tocultarVistaLocalizacionActual: boolean = true;\r\n\tocultarVistaHistoricos: boolean = true;\r\n\tocultarVistaSecciones: boolean = true;\r\n\tocultarVistaOcupacion: boolean = true;\r\n\tocultarVistaCoincidencias: boolean = true;\r\n\tocultarVistaTipologiaSecciones: boolean = true;\r\n\t// InformeSeleccionada\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\tmenuTipologiaContenidoError: boolean;\r\n\tmenuTipoInformeError: boolean;\r\n\tmenuContenidoError: boolean;\r\n\tfDesdeError: boolean;\r\n\tfHastaError: boolean;\r\n\tNoHayInfoError1: boolean;\r\n\tNoHayInfoError2: boolean;\r\n\tNoHayInfoError3: boolean;\r\n\tmaxRows: boolean;\r\n\tminRows: boolean;\r\n\ttiempoMinimoCoincidenciaError: boolean;\r\n\r\n\r\n\r\n\tprivate subscriptionRenovarTablaTiempoReal: Subscription;\r\n\tprivate subscriptionRenovarToken: Subscription;\r\n\r\n\tTIEMPO_AUTOREFRESCO_TOKEN = 300; // 5 minutos\r\n\tTIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL = 60; // 1 minuto\r\n\teveryMin: Observable < number > = timer(0, this.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL * 1000);\r\n\t// every15: Observable < number > = timer(0, this.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL * 1000);\r\n\t// everyhour: Observable < number > = timer(0, this.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL * 1000);\r\n\r\n\tVISTA_LOCALIZACION_TIEMPO_REAL = 0;\r\n\tVISTA_HISTORICOS_LOCALIZACION = 1;\r\n\tVISTA_HISTORICOS_SECCION = 2;\r\n\tVISTA_COINCIDENCIAS_UBICACION = 3;\r\n\tVISTA_OCUPACION = 4;\r\n\tVISTA_HISTORICOS_TIPOLOGIA_SECCION = 5;\r\n\r\n\r\n\t// variables Exportar\r\n\tpublic filtro = JSON.parse(FILTRO_INI);\r\n\t@ViewChild('pg_contenidos') pg_contenidos;\r\n\ttriggerPageChange: boolean = true;\r\n\tidiomaSeleccionado: Idioma;\r\n\ttipologiasMostrar: any[];\r\n\ttipologiasSeccionesMostrar: any[];\r\n\tcontenidosMostrar: SelectItem[] = [];\r\n\tocultarMostrarSecciones: boolean = true;\r\n\tmostrarSecciones: boolean = true;\r\n\tinfoInforme: string = '';\r\n\tpositionDialogInfoInformeY: number;\r\n\tpositionDialogInfoInformeX: number;\r\n\r\n\tdialogDescripcionInforme: boolean = false;\r\n\tconstructor(\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate informeService: InformesService,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate exportador: Exportar\r\n\t) {\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Informes.Informes') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** InformesComponent ***');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n this.spinner.style.display = 'none';\r\n\r\n\t\tthis.informesList = [];\r\n\t\tthis.historicosList = [];\r\n\t\tthis.TablitaList = [];\r\n\t\tthis.coincidenciasList = [];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.filtro = this.authService.getFiltroContenido();\r\n\r\n\t\tthis.startHourDefault = new Date();\r\n\t\tthis.startHourDefault.setHours(0, 0, 0, 0);\r\n\t\tthis.finHourDefault = new Date();\r\n\t\tthis.finHourDefault.setHours(23, 59, 59, 999);\r\n\t\tthis.time_ubication = 0;\r\n\r\n\r\n }\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\r\n\t\tthat.opcionesSelectorTipoInforme = [\r\n\t\t\t{\r\n value: 0,\r\n label: this.translate.instant('Informes.localizacion') // 'Localización en tiempo real'\r\n },\r\n {\r\n value: 1,\r\n label: this.translate.instant('Informes.historico') // 'Histórico de ubicaciones'\r\n },\r\n\t\t\t{\r\n value: 2,\r\n label: this.translate.instant('Informes.seccion') // 'Histórico de Secciones'\r\n },\r\n\t\t\t{\r\n value: 5,\r\n label: this.translate.instant('Informes.tipologiaseccion') // 'Ocupación'\r\n },\r\n {\r\n value: 3,\r\n label: this.translate.instant('Informes.coincidencia') // 'Coincidencias de ubicación'\r\n },\r\n {\r\n value: 4,\r\n label: this.translate.instant('Informes.ocupacion') // 'Ocupación'\r\n }\r\n\t\t];\r\n\r\n\t\tconst _filtroSaved = this.authService.getFiltroContenido();\r\n\r\n\t\tif (_filtroSaved){\r\n\t\t\tthis.filtro = _filtroSaved;\r\n\t\t}\r\n\t\tthis.route.queryParams\r\n\t\t.subscribe(params => {\r\n\t\t\tconst _elemento = params['elemento'];\r\n\t\t\tthat.filtro = JSON.parse(FILTRO_INI);\r\n\r\n\t\t\tif (_elemento){\r\n\t\t\t\tthat.filtro.where.Titulo = _elemento;\r\n\t\t\t}\r\n\t\t});\r\n\t\t// this.tipo_informe_seleccionado = [];\r\n\t\tthis.tipologias_contenido_seleccionadas = [];\r\n\t\tthis.tipologias_seccion_seleccionadas = [];\r\n\t\tthis.contenidos_seleccionados = [];\r\n\t\tthis.secciones_seleccionados = \t[];\r\n\r\n\t\tthis.informeService.obtenerTipologias()\r\n\t\t.then(function(tipologias){\r\n\t\t\tthat.opcionesSelectorTipologia = tipologias;\r\n\t\t\tthat.opcionesSelectorTipologia.sort((one: any, two: any) => {\r\n\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t});\r\n\t\t\tthat.refrescarContenidosTipologiasSeleccionadas(undefined);\r\n\t\t\tconsole.log(that.opcionesSelectorTipologia)\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_SECCION()\r\n\t\t})\r\n\t\t.then(function(tipologiasSecciones){\r\n\t\t\ttipologiasSecciones = tipologiasSecciones.filter(o => o.Activa === true);\r\n\t\t\tthat.opcionesSelectorTipologiaSeccion = tipologiasSecciones;\r\n\t\t\tif(that.opcionesSelectorTipologiaSeccion.length < 1){\r\n\t\t\t\tthat.opcionesSelectorTipoInforme = that.opcionesSelectorTipoInforme.filter(o => o.value !== 5);\r\n\t\t\t}\r\n\t\t\t//that.opcionesSelectorSeccion = that.opcionesSelectorSeccion.filter( (a:any) => a.Nombre !== null && a.Nombre !== 'Default')\r\n\t\t\tthat.opcionesSelectorTipologiaSeccion.sort((one: any, two: any) => {\r\n\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t});\r\n\t\t\tconsole.log(that.opcionesSelectorTipologiaSeccion)\r\n\t\t\treturn that.informeService.obtenerSecciones()\r\n\t\t})\r\n\t\t.then(function(secciones){\r\n\t\t\tconsole.log(secciones)\r\n\t\t\tthat.opcionesSelectorSeccion = secciones;\r\n\t\t\tthat.opcionesSelectorSeccion = that.opcionesSelectorSeccion.filter( (a:any) => a.Nombre !== null && a.Nombre !== 'Default')\r\n\t\t\tthat.opcionesSelectorSeccion.sort((one: any, two: any) => {\r\n\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t});\r\n\t\t\tthat.auxOpcionesSelectorSeccion = that.opcionesSelectorSeccion;\r\n\t\t});\r\n\r\n\r\n\t\tthis.opcionesTimeSelector = [\r\n\t\t\t{\r\n\t\t\t\tvalue: 0,\r\n\t\t\t\tlabel: this.translate.instant('Informes.Desactivado')// 'Desactivado'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 1,\r\n\t\t\t\tlabel: this.translate.instant('Informes.minuto_1')// '1 minuto'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 2,\r\n\t\t\t\tlabel: this.translate.instant('Informes.minuto_15')// '15 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 3,\r\n\t\t\t\tlabel: this.translate.instant('Informes.hora_1')// '1 hora'\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tthis.opcionesTimeCoincidenciaSelector = [\r\n\t\t\t{\r\n\t\t\t\tvalue: 0,\r\n\t\t\t\tlabel: this.translate.instant('Informes.mas_minuto_1')// '1 minuto'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 1,\r\n\t\t\t\tlabel: this.translate.instant('Informes.mas_minuto_15')// '15 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 2,\r\n\t\t\t\tlabel: this.translate.instant('Informes.mas_hora_1')// '1 hora'\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tthis.opcionesTimeLastToShowSelector = [\r\n\t\t\t{\r\n\t\t\t\tvalue: 0,\r\n\t\t\t\tlabel: 'hace más de ' + this.translate.instant('Informes.minuto_1')// '1 minuto'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 1,\r\n\t\t\t\tlabel: 'hace más de ' + this.translate.instant('Informes.minuto_15')// '15 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 2,\r\n\t\t\t\tlabel: 'hace más de ' + this.translate.instant('Informes.hora_1')// '1 hora'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 3,\r\n\t\t\t\tlabel: 'hace más de ' + this.translate.instant('Informes.hora_2')// '1 hora'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 4,\r\n\t\t\t\tlabel: 'hace más de ' + this.translate.instant('Informes.hora_24')// '24 hora'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 5,\r\n\t\t\t\tlabel: this.translate.instant('Informes.sin_limit')// 'sin limite de tiempo'\r\n\t\t\t},\r\n\t\t];\r\n\t\tthis.opcionesTiempoUbicacionSelector = [\r\n\t\t\t{\r\n\t\t\t\tvalue: 0,\r\n\t\t\t\tlabel: this.translate.instant('Informes.sin_limit')// 'sin limite de tiempo'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 10,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.10_min')// '10 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 20,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.20_min')// '20 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 30,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.30_min')// '30 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 40,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.40_min')// '40 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 50,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.50_min')// '50 minutos'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvalue: 60,\r\n\t\t\t\tlabel: 'es menor a ' + this.translate.instant('Informes.60_min')// '60 minutos'\r\n\t\t\t},\r\n\t\t];\r\n\t\t\r\n\r\n\t\tthis.TimeCoincidencia_selected = 0;\r\n\t\tthis.tipo_informe_seleccionado = this.VISTA_LOCALIZACION_TIEMPO_REAL;\r\n\r\n\t\tthis.time_last_to_show_selected = 1;\r\n\t\tthis.menuTipoInformeChange('Vista por defecto: Informe Localizacion Tiempo Real');\r\n\t\tif (this.autorefrescoChecked){\r\n\t\t\tthis.timeRefreshChanged('Time to refresh by default');\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\t\tthis.activarAutorefreshToken();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.desactivarAutorefreshToken();\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tactivarAutorefreshTablaTiempoReal(){\r\n\t\tconst that = this;\r\n\t\tthis.fechaInicioAutoRefrescoTablaTiempoReal = new Date();\r\n\t\tthis.everyMin = timer(0, this.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL * 1000);\r\n\t\tthis.subscriptionRenovarTablaTiempoReal = this.everyMin\r\n\t\t.subscribe((seconds) => {\r\n\t\t\tif (that.autorefrescoChecked) {\r\n\t\t\t\tthat.fechaAutoRefrescoTablaTiempoReal = new Date(that.fechaInicioAutoRefrescoTablaTiempoReal.getTime());\r\n\t\t\t\tthat.fechaAutoRefrescoTablaTiempoReal.setSeconds(that.fechaInicioAutoRefrescoTablaTiempoReal.getSeconds() + seconds * this.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL);\r\n\t\t\t\tthat.refrescarTablaTiempoReal(undefined);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tdesactivarAutorefreshTablaTiempoReal(){\r\n\t\tif (this.subscriptionRenovarTablaTiempoReal) {\r\n\t\t\tthis.subscriptionRenovarTablaTiempoReal.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tactivarAutorefreshToken(){\r\n\t\tconst that = this;\r\n\t\tthis.fechaInicioAutoRefrescoToken = new Date();\r\n\t\tthis.everyMin = timer(0, this.TIEMPO_AUTOREFRESCO_TOKEN * 1000);\r\n\t\tthis.subscriptionRenovarToken = this.everyMin\r\n\t\t.subscribe((seconds) => {\r\n\t\t\tif (that.autorefrescoChecked) {\r\n\t\t\t\tthat.fechaAutoRefrescoToken = new Date(that.fechaInicioAutoRefrescoToken.getTime());\r\n\t\t\t\tthat.fechaAutoRefrescoToken.setSeconds(that.fechaInicioAutoRefrescoToken.getSeconds() + seconds * this.TIEMPO_AUTOREFRESCO_TOKEN);\r\n\t\t\t\tthat.authService.NewToken();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tdesactivarAutorefreshToken(){\r\n\t\tif (this.subscriptionRenovarToken) {\r\n\t\t\tthis.subscriptionRenovarToken.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tinputChanged(event, value) {\r\n\t\tconst that = this;\r\n\t\tif (value === 'menuTipoInformeChange') {\r\n\t\t\tthis.tipo_informe_seleccionado = event.value;\r\n\t\t\tthis.menuTipoInformeChange(event);\r\n\t\t}\r\n\t\tif (value === 'menuSeccionChange') {\r\n\t\t\tthis.secciones_seleccionados = event.value;\r\n\t\t\tthis.menuSeccionChange(event);\r\n\t\t}\r\n\t\tif (value === 'menuTipologiaSeccionChange') {\r\n\t\t\tthis.tipologias_seccion_seleccionadas = event.value;\r\n\t\t\tthis.menuTipologiaSeccionChange(event);\r\n\t\t}\r\n\t\tif (value === 'menuTipologiaContenidoChange') {\r\n\t\t\tthis.tipologias_contenido_seleccionadas = event.value;\r\n\t\t\tthis.menuTipologiaContenidoChange(event);\r\n\t\t}\r\n\t\tif (value === 'menuContenidoChange') {\r\n\t\t\tthis.contenidos_seleccionados = event.value;\r\n\t\t\tthis.menuContenidoChange(event);\r\n\t\t}\r\n\t\tif (value === 'fecha_desde') {\r\n\t\t\tthis.inputFechaChanged(event);\r\n\t\t}\r\n\t\tif (value === 'fecha_hasta') {\r\n\t\t\tthis.inputFechaChanged(event);\r\n\t\t}\r\n\t\tif (value === 'TimeRefreshChange'){\r\n\t\t\tthis.time_selected = event.value;\r\n\t\t\tthis.timeRefreshChanged(event);\r\n\t\t}\r\n\t\tif (value === 'TimeCoincidenciaChange'){\r\n\t\t\tthis.TimeCoincidencia_selected = event.value;\r\n\t\t\tthis.TimeCoincidenciaChanged(event);\r\n\t\t}\r\n\r\n\t\tif (value === 'TimeLastToShowChange'){\r\n\t\t\tthis.time_last_to_show_selected = event.value;\r\n\t\t\tthis.timeLastToShowChanged(event);\r\n\r\n\t\t}\r\n\t\tif(value === 'duractionUbicationChange'){\r\n\t\t\tthis.time_ubication = event.value;\r\n\t\t}\r\n\r\n\t\tthis.validar();\r\n\t}\r\n\t//modificar y descomentar para que salte el error cuando no haya info en las tablas\r\n\r\n\tvalidar2(): boolean{\r\n\t\tlet p9Error = this.informesList.length === 0 && this.validar();\r\n\t\tlet p10Error = this.historicosList.length === 0 && this.validar();\r\n\t\tlet p11Error = this.coincidenciasList.length === 0 && this.validar();\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\t\t\tif(p9Error){\r\n\r\n\t\t\t\tthis.NoHayInfoError1 = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.NoHayInfoError1 = false;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_LOCALIZACION || this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_SECCION || this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_TIPOLOGIA_SECCION){\r\n\t\t\tif(p10Error){\r\n\r\n\t\t\t\tthis.NoHayInfoError2 = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.NoHayInfoError2 = false;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_COINCIDENCIAS_UBICACION){\r\n\t\t\tif(p11Error){\r\n\r\n\t\t\t\tthis.NoHayInfoError3 = true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.NoHayInfoError3 = false;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn !p9Error || !p10Error || !p11Error;\r\n\r\n\t}\r\n\tvalidar(): boolean {\r\n\t\t// Validacion\r\n\t\tconst p1Error = this.tipo_informe_seleccionado === undefined || this.tipo_informe_seleccionado === null;\r\n\t\tconst p2Error = this.tipologias_contenido_seleccionadas === null || this.tipologias_contenido_seleccionadas === undefined || this.tipologias_contenido_seleccionadas.length === 0;\r\n\t\tlet p3Error = this.contenidos_seleccionados === null || this.contenidos_seleccionados === undefined || this.contenidos_seleccionados.length === 0; // this.espacioSeleccionado.FechaAlta === undefined || this.espacioSeleccionado.FechaAlta === null;\r\n\t\tlet p4Error = this.opcion_desde_selected === undefined || this.opcion_desde_selected === null; // this.contenidos_seleccionados.fDesdeError.toString() === '' || this.fDesdeError === undefined || this.fDesdeError === null;\r\n\t\tlet p5Error = this.opcion_hasta_selected === undefined || this.opcion_hasta_selected === null; // this.rutaSeleccionada.FechaBaja === '' || this.rutaSeleccionada.FechaBaja === undefined || this.rutaSeleccionada.FechaBaja === null\r\n\t\t// let p6Error = this.contenidos_seleccionados.length >= 11;\r\n\t\tlet p6Error = false;\r\n\t\tlet p7Error = this.contenidos_seleccionados.length < 2;\r\n\t\tlet p8Error = false;\r\n\r\n\t\t// const p8Error = this.time_selected === undefined || this.time_selected === null;\r\n\t\t/*\r\n\t\tVISTA_LOCALIZACION_TIEMPO_REAL = 0;\r\n\t\tVISTA_HISTORICOS_LOCALIZACION = 1;\r\n\t\tVISTA_COINCIDENCIAS_UBICACION = 2;\r\n\t\tVISTA_OCUPACION = 3;\r\n\t\t*/\r\n\t\t// VISTA_LOCALIZACION_TIEMPO_REAL no usa Fechas mi minimo 2 contenidos\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\t\t\tp4Error = false;\r\n\t\t\tp5Error = false;\r\n\t\t\tp7Error = false;\r\n\t\t\tif (this.tipologias_contenido_seleccionadas.find( t => t.Tipo === 'CIUDADANO' )){\r\n\t\t\t\tp3Error = false;\r\n\t\t\t\tp6Error = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// VISTA_HISTORICOS_LOCALIZACION y VISTA_HISTORICOS_SECCION no usa minimo 2 contenidos\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_LOCALIZACION || this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_SECCION || this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_TIPOLOGIA_SECCION){\r\n\t\t\tp7Error = false;\r\n\r\n\t\t\tp6Error = this.contenidos_seleccionados.length > 4;\r\n\t\t}\r\n\t\t// VISTA_COINCIDENCIAS_UBICACION vamos a permitir pintar coincidencias de uno con todos los demas\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_COINCIDENCIAS_UBICACION){\r\n\t\t\tp7Error = false;\r\n\t\t\tp8Error = this.TimeCoincidencia_selected !== undefined ? true : false;\r\n\t\t}\r\n\r\n\t\tif (p1Error) {\r\n\t\t\tthis.menuTipoInformeError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.menuTipoInformeError = false;\r\n\t\t}\r\n\r\n\t\tif (p2Error) {\r\n\t\t\tthis.menuTipologiaContenidoError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.menuTipologiaContenidoError = false;\r\n\t\t}\r\n\r\n\t\tif (p3Error) {\r\n\t\t\tthis.menuContenidoError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.menuContenidoError = false;\r\n\t\t}\r\n\r\n\t\tif (p4Error) {\r\n\t\t\tthis.fDesdeError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.fDesdeError = false;\r\n\t\t}\r\n\r\n\t\tif (p5Error) {\r\n\t\t\tthis.fHastaError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.fHastaError = false;\r\n\t\t\tthis.inputFechaChanged(event);\r\n\t\t}\r\n\t\tif (p6Error) {\r\n\t\t\tthis.maxRows = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.maxRows = false;\r\n\t\t}\r\n\t\tif (p7Error) {\r\n\t\t\tthis.minRows = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.minRows = false;\r\n\t\t}\r\n\r\n\t\tif (p8Error){\r\n\t\t\tthis.tiempoMinimoCoincidenciaError = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.tiempoMinimoCoincidenciaError = false;\r\n\t\t}\r\n\r\n\r\n\t\treturn !p1Error && !p2Error && !p3Error && !p4Error && !p5Error && !p6Error && !p7Error;\r\n\t}\r\n\r\n menuTipoInformeChange(event){\r\n console.log( '*** INFORME HA CAMBIADO');\r\n\t\tthis.informesList = [];\r\n\t\tthis.historicosList = [];\r\n\t\tthis.TablitaList = [];\r\n\t\tthis.coincidenciasList = [];\r\n\t\tthis.tipologias_contenido_seleccionadas = [];\r\n\t\tthis.contenidos_seleccionados = [];\r\n\t\tthis.secciones_seleccionados = [];\r\n\t\tthis.tipologias_seccion_seleccionadas = [];\r\n\t\tthis.time_ubication = 0;\r\n\t\tthis.opcion_desde_selected = undefined;\r\n\t\tthis.opcion_hasta_selected = undefined;\r\n\r\n\r\n\t\t// this.tipo_informe_seleccionado = event.value;\r\n\t\tthis.refrescarTablasVisibles();\r\n }\r\n\r\n\ttimeRefreshChanged(event){\r\n\t\tconsole.log( '*** TIME TO REFRESH CHANGED');\r\n\r\n\t\tif (this.time_selected === 0){\r\n\t\t\tthis.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL = 0; // Desactivado\r\n\t\t\tthis.desactivarAutorefreshTablaTiempoReal();\r\n\t\t\tthis.desactivarAutorefreshToken();\r\n\t\t}\r\n\t\telse if (this.time_selected === 1){\r\n\t\t\tthis.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL = 60; // 1 minuto\r\n\t\t\tthis.desactivarAutorefreshTablaTiempoReal();\r\n\t\t\tthis.desactivarAutorefreshToken();\r\n\t\t}\r\n\t\telse if (this.time_selected === 2){\r\n\t\t\tthis.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL = 900; // 15 minutos\r\n\t\t\tthis.desactivarAutorefreshTablaTiempoReal();\r\n\t\t\tthis.desactivarAutorefreshToken();\r\n\t\t}\r\n\t\telse if (this.time_selected === 3){\r\n\t\t\tthis.TIEMPO_AUTOREFRESCO_TABLA_TIEMPO_REAL = 3600; // 1 hora\r\n\t\t\tthis.desactivarAutorefreshTablaTiempoReal();\r\n\t\t\tthis.desactivarAutorefreshToken();\r\n\t\t}\r\n\r\n\t\tthis.activarAutorefreshTablaTiempoReal();\r\n\t\tthis.activarAutorefreshToken();\r\n\t}\r\n\r\n\tTimeCoincidenciaChanged(event) {\r\n\t}\r\n\r\n\ttimeLastToShowChanged(event){\r\n\t}\r\n menuTipologiaContenidoChange(event){\r\n\t\tthis.refrescarContenidosTipologiasSeleccionadas(event);\r\n\t}\r\n\tmenuTipologiaSeccionChange(event){\r\n\t\tthis.refrescarSeccionesTipologiasSeleccionadas(event);\r\n\t}\r\n\tmenuSeccionChange(event){\r\n\t}\r\n\r\n\tmenuContenidoChange(event){\r\n\t}\r\n\r\n\tinputFechaChanged(event){\r\n\t}\r\n\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'Desde') {\r\n\t\t\tthis.opcion_desde_selected = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'Hasta') {\r\n\t\t\tthis.opcion_hasta_selected = fecha;\r\n\t\t}\r\n\r\n\t\tthis.inputChanged(undefined,columna);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n\r\n\trefrescarContenidosTipologiasSeleccionadas(event){\r\n\t\tconst that = this;\r\n\t\tconst esSeleccionMultiple = event ? event.value.length > 1 : false;\r\n\t\tlet EsCiudadano = false;\r\n\r\n\t\tif (esSeleccionMultiple) {\r\n\r\n\t\t\t// Miro a ver si habia varios seleccionados y ahora selecciono CIUDADANO\r\n\t\t\tEsCiudadano = event && event.itemValue ? event.itemValue.Tipo === 'CIUDADANO' : false;\r\n\r\n\t\t\t// Como no seleccionamos ciudadano la desmarcamos\r\n\t\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL) {\r\n\t\t\t\tif (EsCiudadano) {\r\n\t\t\t\t\tthis.tipologias_contenido_seleccionadas = this.tipologias_contenido_seleccionadas.filter(t => t.Tipo === 'CIUDADANO');\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.tipologias_contenido_seleccionadas = this.tipologias_contenido_seleccionadas.filter(t => t.Tipo !== 'CIUDADANO');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tEsCiudadano = event && event.itemValue ? event.itemValue.Tipo === 'CIUDADANO' : false;\r\n\t\t}\r\n\r\n\t\t// Si hay, elimino las seleccionadas y meto unicamente las de CIUDADANO\r\n\t\tif (EsCiudadano && this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\r\n\t\t\tthis.tipologias_contenido_seleccionadas = this.tipologias_contenido_seleccionadas.filter(t => t.Id === event.itemValue.Id);\r\n\t\t\tconst listaIdsTipologias = this.tipologias_contenido_seleccionadas.map(tipologia => {\r\n\t\t\t\t\treturn tipologia.Id;\r\n\t\t\t\t});\r\n\r\n\t\t\t// SELECCIONADO TODO Y DESHABILITADO\r\n\t\t\tthis.informeService.obtenerContenidosByTipologiad(listaIdsTipologias, undefined)\r\n\t\t\t.then(function(contenidosTipologias){\r\n\t\t\t\tthat.opcionesSelectorContenido = contenidosTipologias;\r\n\t\t\t\tthat.opcionesSelectorContenido.sort((one: any, two: any) => {\r\n\t\t\t\t\tvar textA = one.label.toUpperCase();\r\n\t\t\t\t\tvar textB = two.label.toUpperCase();\r\n\t\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t\t});\r\n\t\t\t\tthat.contenidos_seleccionados = [];\r\n\t\t\t\tthat.opcionesSelectorContenido.forEach(contenidoTipologia => {\r\n\t\t\t\tthat.contenidos_seleccionados.push(contenidoTipologia.Id);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\telse{\r\n\t\t\t// Como no seleccionamos ciudadano la desmarcamos\r\n\t\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL) {\r\n\t\t\t\tthis.tipologias_contenido_seleccionadas = this.tipologias_contenido_seleccionadas.filter(t => t.Tipo !== 'CIUDADANO');\r\n\t\t\t}\r\n\r\n\t\t\tconst listaIdsTipologias = this.tipologias_contenido_seleccionadas.map(tipologia => {\r\n\t\t\t\treturn tipologia.Id;\r\n\t\t\t});\r\n\r\n\t\t\tthis.informeService.obtenerContenidosByTipologiad(listaIdsTipologias, undefined)\r\n\t\t\t.then(function(contenidosTipologias){\r\n\t\t\t\tthat.opcionesSelectorContenido = contenidosTipologias;\r\n\t\t\t\tthat.opcionesSelectorContenido.sort((one: any, two: any) => {\r\n\t\t\t\t\tvar textA = one.label.toUpperCase();\r\n\t\t\t\t\tvar textB = two.label.toUpperCase();\r\n\t\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t\t});\r\n\t\t\t\t// Quitar de la lista contenidos_seleccionados todos los contenidos de una tipologia que no este el la lista tipologias_contenido_seleccionadas\r\n\t\t\t\tconst contenidos_seleccionados_aux = [];\r\n\t\t\t\tthat.opcionesSelectorContenido.forEach(contenidoTipologia => {\r\n\t\t\t\t\tconst seleccionado = that.contenidos_seleccionados.find( c => c === contenidoTipologia.Elemento);\r\n\t\t\t\t\tif (seleccionado) {\r\n\t\t\t\t\t\tcontenidos_seleccionados_aux.push(contenidoTipologia.Id);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthat.contenidos_seleccionados = contenidos_seleccionados_aux;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trefrescarSeccionesTipologiasSeleccionadas(event){\r\n\t\tconst that = this;\r\n\t\tconst listaIdsTipologias = this.tipologias_seccion_seleccionadas.map(tipologia => {\r\n\t\t\treturn tipologia.Id;\r\n\t\t});\r\n\t\tthat.opcionesSelectorSeccion = that.auxOpcionesSelectorSeccion;\r\n\t\tif(listaIdsTipologias.length > 0){\r\n\t\t\tlet array = [];\r\n\t\t\tthat.opcionesSelectorSeccion.forEach(seccion => {\r\n\t\t\t\tlet entidadSeccion = new SeccionFormulario().fromENTIDAD(seccion);\r\n\t\t\t\t\r\n\t\t\t\tif(entidadSeccion.TIPOLOGIAS_SECCION && entidadSeccion.TIPOLOGIAS_SECCION.length > 0){\r\n\t\t\t\t\tconsole.log(entidadSeccion)\r\n\t\t\t\t\tentidadSeccion.TIPOLOGIAS_SECCION.forEach(Tipologias => {\r\n\t\t\t\t\t\tif(listaIdsTipologias.find( t => t === Tipologias.Id)){\r\n\t\t\t\t\t\t\tif(!array.find(s => s === seccion)){\r\n\t\t\t\t\t\t\t\tarray.push(seccion);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tarray.sort((one: any, two: any) => {\r\n\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t});\r\n\t\t\tthat.opcionesSelectorSeccion = array;\r\n\t\t}else{\r\n\r\n\t\t\tthat.opcionesSelectorSeccion = that.auxOpcionesSelectorSeccion;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\t}\r\n\r\n\r\n\trefrescarTablaTiempoReal(cont, sec?){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tlet listaSecciones;\r\n\t\tlet listaIdsContenidos = this.contenidos_seleccionados.map(contenido => {\r\n\t\t\treturn contenido;\r\n\t\t});\r\n\t\tlet TIEMPO_MOSTRAR = 0;\r\n\t\tif (this.time_last_to_show_selected === 0){\r\n\t\t\tTIEMPO_MOSTRAR = 1; // 1 minuto\r\n\t\t}\r\n\t\telse if (this.time_last_to_show_selected === 1){\r\n\t\t\tTIEMPO_MOSTRAR = 15; // 15 minutos\r\n\t\t}\r\n\t\telse if (this.time_last_to_show_selected === 2){\r\n\t\t\tTIEMPO_MOSTRAR = 60; // 1 hora\r\n\t\t}\r\n\t\telse if (this.time_last_to_show_selected === 3){\r\n\t\t\tTIEMPO_MOSTRAR = 120; // 2 hora\r\n\t\t}\r\n\t\telse if (this.time_last_to_show_selected === 4){\r\n\t\t\tTIEMPO_MOSTRAR = 60 * 24; // Un dia\r\n\t\t}\r\n\t\telse if (this.time_last_to_show_selected === 5){\r\n\t\t\tTIEMPO_MOSTRAR = 0; // Sin limite de tiempo\r\n\t\t}\r\n\t\tif(this.secciones_seleccionados){\r\n\t\t\tlistaSecciones = this.secciones_seleccionados.map(seccion => {\r\n\t\t\t\treturn seccion.Nombre;\r\n\t\t\t});\r\n\t\t}\r\n\t\tlet idsTipologia = [];\r\n\t\tif (this.tipologias_contenido_seleccionadas) {\r\n\t\t\tidsTipologia = this.tipologias_contenido_seleccionadas.map(tipo => {\r\n\t\t\t\treturn tipo.Id;\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.informeService.obtenerLocalizacionTiempoReal_3(listaIdsContenidos, TIEMPO_MOSTRAR , undefined, listaSecciones, idsTipologia)\r\n\t\t.then(function(informes: Contenido[]){\r\n\t\t\tinformes = informes.filter(h => h.Ala !== undefined)\r\n\t\t\tinformes = informes.filter(h => h.Nivel !== undefined)\r\n\t\t\tthat.informesList = informes;\r\n\t\t\tthat.tipologiasMostrar = that.tipologias_contenido_seleccionadas;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarNoHayResusltado();\r\n\t\t});\r\n\t}\r\n\r\n\trefrescarTablaHistoricos(cont){\r\n\t\tconst that = this;\r\n\t\tlet listaSecciones;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst listaIdsHistoricos = this.contenidos_seleccionados.map(historico => {\r\n\t\t\treturn historico;\r\n\t\t});\r\n\t\tif(this.secciones_seleccionados){\r\n\t\t\tlistaSecciones = this.secciones_seleccionados.map(seccion => {\r\n\t\t\t\treturn seccion.Nombre;\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.informeService.obtenerHistoricoLocalizacionesContenidos(cont, this.opcion_desde_selected, this.opcion_hasta_selected, this.time_ubication, undefined, listaSecciones)\r\n\t\t.then(function(Historicos: HistoricoLocalizacionContenido[]){\r\n\t\t\t// Orden por defecto de la tabla -> elemento - fechaDesde - fechaHasta\r\n\t\t\tHistoricos = Historicos.filter(h => h.Ala !== undefined)\r\n\t\t\tHistoricos = Historicos.filter(h => h.Nivel !== undefined)\r\n\t\t\tthat.historicosList = Historicos;\r\n\t\t\tthat.tipologiasMostrar = that.tipologias_contenido_seleccionadas;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarNoHayResusltado();\r\n\t\t});\r\n\t}\r\n\r\n\trefrescarTablaHistoricosSeccion(cont){\r\n\t\tconst that = this;\r\n\t\tlet listaSecciones;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tif(this.secciones_seleccionados){\r\n\t\t\tlistaSecciones = this.secciones_seleccionados.map(seccion => {\r\n\t\t\t\treturn seccion.Nombre;\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.informeService.obtenerHistoricoLocalizacionesContenidos(cont, this.opcion_desde_selected, this.opcion_hasta_selected, this.time_ubication, undefined, listaSecciones)\r\n\t\t.then(function(Historicos: HistoricoLocalizacionContenido[]){\r\n\t\t\t// Orden por defecto de la tabla -> elemento - fechaDesde - fechaHasta\r\n\t\t\tHistoricos = Historicos.filter(h => h.Ala !== undefined)\r\n\t\t\tHistoricos = Historicos.filter(h => h.Nivel !== undefined)\r\n\t\t\tthat.historicosList = Historicos;\r\n\t\t\tthat.tipologiasMostrar = that.tipologias_contenido_seleccionadas;\r\n\t\t\tthat.contenidosMostrar = [];\r\n\t\t\tthat.contenidos_seleccionados.forEach(contenido => {\r\n\t\t\t\tconst seleccionado = that.opcionesSelectorContenido.find(o => contenido === o.Id);\r\n\t\t\t\tif(seleccionado){\r\n\t\t\t\t\tlet obj = {value: seleccionado.Id, label: seleccionado.Elemento}\r\n\t\t\t\t\tthat.contenidosMostrar.push(obj)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarNoHayResusltado();\r\n\t\t});\r\n\t}\r\n\r\n\trefrescarTablaHistoricosTipologiaSeccion(cont){\r\n\t\tconst that = this;\r\n\t\tlet listaTipologias;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tif(that.tipologias_seccion_seleccionadas){\r\n\t\t\tlistaTipologias = this.tipologias_seccion_seleccionadas.map(tipo => {\r\n\t\t\t\treturn tipo.Nombre;\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.informeService.obtenerHistoricoLocalizacionesContenidos(cont, this.opcion_desde_selected, this.opcion_hasta_selected, this.time_ubication, undefined, undefined, listaTipologias)\r\n\t\t.then(function(Historicos: HistoricoLocalizacionContenido[]){\r\n\t\t\t// Orden por defecto de la tabla -> elemento - fechaDesde - fechaHasta\r\n\t\t\tHistoricos = Historicos.filter(h => h.Ala !== undefined)\r\n\t\t\tHistoricos = Historicos.filter(h => h.Nivel !== undefined)\r\n\t\t\tthat.historicosList = Historicos;\r\n\t\t\tthat.tipologiasSeccionesMostrar = [];\r\n\t\t\tthat.historicosList.forEach(elemento => {\r\n\t\t\t\tif(elemento.SeccionFormulario.TIPOLOGIAS_SECCION && elemento.SeccionFormulario.TIPOLOGIAS_SECCION.length > 0){\r\n\t\t\t\t\tlet existeTipologia = that.tipologiasSeccionesMostrar.find(t => t.Id === elemento.SeccionFormulario.TIPOLOGIAS_SECCION[0].Id)\r\n\t\t\t\t\tif(!existeTipologia){\r\n\t\t\t\t\t\tthat.tipologiasSeccionesMostrar.push(elemento.SeccionFormulario.TIPOLOGIAS_SECCION[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthat.tipologiasSeccionesMostrar.sort((one: any, two: any) => {\r\n\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t});\r\n\t\t\tthat.tipologiasMostrar = that.tipologias_contenido_seleccionadas;\r\n\t\t\tthat.contenidosMostrar = [];\r\n\t\t\t\r\n\t\t\tthat.contenidos_seleccionados.forEach(contenido => {\r\n\t\t\t\tconst seleccionado = that.opcionesSelectorContenido.find(o => contenido === o.Id);\r\n\t\t\t\tif(seleccionado){\r\n\t\t\t\t\tlet obj = {value: seleccionado.Id, label: seleccionado.Elemento}\r\n\t\t\t\t\tthat.contenidosMostrar.push(obj)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconsole.log(that.contenidosMostrar)\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarNoHayResusltado();\r\n\t\t});\r\n\t}\r\n\r\n\trefrescarTablaCoincidencias(cont){\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst listaIdsCoincidencias = this.contenidos_seleccionados.map(coincidencia => {\r\n\t\t\treturn coincidencia;\r\n\t\t});\r\n\t\tthis.informeService.obtenerCoincidenciasLocalizacionContenidos(cont, this.opcion_desde_selected, this.opcion_hasta_selected)\r\n\t\t.then(function(Coincidencias: CoincidenciasLocalizacionContenidos[]){\r\n\t\t\tCoincidencias = Coincidencias.filter(h => h.Ala !== undefined)\r\n\t\t\tCoincidencias = Coincidencias.filter(h => h.Nivel !== undefined)\r\n\t\t\tthat.coincidenciasList = that.filtrarConincidenciasPorTiempoCoincidencia(Coincidencias);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarNoHayResusltado();\r\n\t\t});\r\n\t}\r\n\r\n\tfiltrarConincidenciasPorTiempoCoincidencia(Coincidencias: CoincidenciasLocalizacionContenidos[]): CoincidenciasLocalizacionContenidos[]{\r\n\r\n\t\tconst aux = [];\r\n\t\tlet TIEMPO_MINIMO = 0;\r\n\t\tif (this.TimeCoincidencia_selected === 0){\r\n\t\t\tTIEMPO_MINIMO = 1; // 1 minuto\r\n\t\t}\r\n\t\telse if (this.TimeCoincidencia_selected === 1){\r\n\t\t\tTIEMPO_MINIMO = 15; // 15 minutos\r\n\t\t}\r\n\t\telse if (this.TimeCoincidencia_selected === 2){\r\n\t\t\tTIEMPO_MINIMO = 60; // 1 hora\r\n\t\t}\r\n\r\n\t\tCoincidencias.forEach(element => {\r\n\t\t\tif (element.tiempo_coincidencia > TIEMPO_MINIMO) {\r\n\t\t\t\taux.push(element);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn aux;\r\n\t}\r\n\r\n\tmostrarNoHayResusltado(){\r\n\t\tconst ok = this.validar2();\r\n\t\tlet mensaje_error = '';\r\n\t\tif (!ok) {\r\n\r\n\t\t\tif (this.NoHayInfoError1) {\r\n\t\t\t\tmensaje_error = this.translate.instant('Informes.NoHayInfoError');\r\n\t\t\t}\r\n\t\t\telse if (this.NoHayInfoError2) {\r\n\t\t\t\tmensaje_error = this.translate.instant('Informes.NoHayInfoError');\r\n\t\t\t}\r\n\t\t\telse if (this.NoHayInfoError3) {\r\n\t\t\t\tmensaje_error = this.translate.instant('Informes.NoHayInfoError');\r\n\t\t\t}\r\n\r\n\t\t\tthis.showInfo(mensaje_error);\r\n\r\n\t\t}\r\n\r\n\t\treturn ok;\r\n\t}\r\n\r\n\trefrescarTablasVisibles(){\r\n\t\tthis.desactivarAutorefreshTablaTiempoReal();\r\n\t\tthis.desactivarAutorefreshToken();\r\n\t\t//this.authService.NewToken(); //añadido en subscription para auto renovar\r\n\t\t// TIEMPO REAL\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\t\t\tthis.ocultarAutorefrescar = false;\r\n\t\t\tthis.ocultarTimeAutorefrescar = false;\r\n\t\t\tthis.ocultarTimeCoincidencia = true;\r\n\t\t\tthis.ocultarDesdeHasta = true;\r\n\t\t\tthis.ocultarfiltrar = false;\r\n\t\t\tthis.OcultarExportar = false;\r\n\t\t\tthis.duracionUbicacion = false;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = false;\r\n\t\t\tthis.ocultarVistaHistoricos = true;\r\n\t\t\tthis.ocultarVistaSecciones = true;\r\n\t\t\tthis.ocultarVistaOcupacion = true;\r\n\t\t\tthis.ocultarVistaCoincidencias = true;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = true;\r\n\t\t\tthis.tablitaVisible = false;\r\n\t\t\tthis.ocultarMostrarSecciones = true;\r\n\r\n\r\n\t\t\tthis.activarAutorefreshTablaTiempoReal();\r\n\t\t\tthis.activarAutorefreshToken();\r\n\r\n\t\t\tthis.refrescarTablaTiempoReal(this.contenidos_seleccionados, this.secciones_seleccionados);\r\n\r\n\r\n\t\t}\r\n\t\t// HISTORICOS\r\n\t\telse if (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_LOCALIZACION){\r\n\t\t\tthis.ocultarAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeCoincidencia = true;\r\n\t\t\tthis.ocultarDesdeHasta = false;\r\n\t\t\tthis.ocultarfiltrar = false;\r\n\t\t\tthis.OcultarExportar = false;\r\n\t\t\tthis.duracionUbicacion = true;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = true;\r\n\t\t\tthis.ocultarVistaHistoricos = false;\r\n\t\t\tthis.ocultarVistaSecciones = true;\r\n\t\t\tthis.ocultarVistaOcupacion = true;\r\n\t\t\tthis.ocultarVistaCoincidencias = true;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = true;\r\n\t\t\tthis.tablitaVisible = true;\r\n\t\t\tthis.ocultarMostrarSecciones = false;\r\n\r\n\t\t\tthis.refrescarTablaHistoricos(this.contenidos_seleccionados);\r\n\t\t}\r\n\t\t// HISTORICOS POR SECCION\r\n\t\telse if (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_SECCION ){\r\n\t\t\tthis.ocultarAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeCoincidencia = true;\r\n\t\t\tthis.ocultarDesdeHasta = false;\r\n\t\t\tthis.ocultarfiltrar = false;\r\n\t\t\tthis.OcultarExportar = false;\r\n\t\t\tthis.duracionUbicacion = true;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = true;\r\n\t\t\tthis.ocultarVistaHistoricos = true;\r\n\t\t\tthis.ocultarVistaSecciones = false;\r\n\t\t\tthis.ocultarVistaOcupacion = true;\r\n\t\t\tthis.ocultarVistaCoincidencias = true;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = true;\r\n\t\t\tthis.tablitaVisible = true;\r\n\t\t\tthis.ocultarMostrarSecciones = false;\r\n\r\n\t\t\tthis.refrescarTablaHistoricosSeccion(this.contenidos_seleccionados);\r\n\t\t}\r\n\t\t// COINCIDENCIAS\r\n\t\telse if (this.tipo_informe_seleccionado === this.VISTA_COINCIDENCIAS_UBICACION ){\r\n\t\t\tthis.ocultarAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeCoincidencia = false;\r\n\t\t\tthis.ocultarDesdeHasta = false;\r\n\t\t\tthis.ocultarfiltrar = false;\r\n\t\t\tthis.OcultarExportar = false;\r\n\t\t\tthis.duracionUbicacion = false;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = true;\r\n\t\t\tthis.ocultarVistaHistoricos = true;\r\n\t\t\tthis.ocultarVistaSecciones = true;\r\n\t\t\tthis.ocultarVistaOcupacion = true;\r\n\t\t\tthis.ocultarVistaCoincidencias = false;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = true;\r\n\t\t\tthis.ocultarMostrarSecciones = true;\r\n\r\n\t\t\tthis.refrescarTablaCoincidencias(this.contenidos_seleccionados);\r\n\t\t}\r\n\t\t// OCUPACION\r\n\t\telse if (this.tipo_informe_seleccionado === this.VISTA_OCUPACION ){\r\n\t\t\tthis.ocultarAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeCoincidencia = true;\r\n\t\t\tthis.ocultarDesdeHasta = true;\r\n\t\t\tthis.ocultarfiltrar = true;\r\n\t\t\tthis.OcultarExportar = true;\r\n\t\t\tthis.duracionUbicacion = false;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = true;\r\n\t\t\tthis.ocultarVistaHistoricos = true;\r\n\t\t\tthis.ocultarVistaSecciones = true;\r\n\t\t\tthis.ocultarVistaOcupacion = false;\r\n\t\t\tthis.ocultarVistaCoincidencias = true;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = true;\r\n\t\t\tthis.ocultarMostrarSecciones = true;\r\n\r\n\t\t}// HISTORICOS POR TIPOLOGIA DE SECCION\r\n\t\telse if (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_TIPOLOGIA_SECCION ){\r\n\t\t\tthis.ocultarAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeAutorefrescar = true;\r\n\t\t\tthis.ocultarTimeCoincidencia = true;\r\n\t\t\tthis.ocultarDesdeHasta = false;\r\n\t\t\tthis.ocultarfiltrar = false;\r\n\t\t\tthis.OcultarExportar = false;\r\n\t\t\tthis.duracionUbicacion = true;\r\n\r\n\t\t\tthis.ocultarVistaLocalizacionActual = true;\r\n\t\t\tthis.ocultarVistaHistoricos = true;\r\n\t\t\tthis.ocultarVistaSecciones = true;\r\n\t\t\tthis.ocultarVistaOcupacion = true;\r\n\t\t\tthis.ocultarVistaCoincidencias = true;\r\n\t\t\tthis.ocultarVistaTipologiaSecciones = false;\r\n\t\t\tthis.tablitaVisible = true;\r\n\t\t\tthis.ocultarMostrarSecciones = false;\r\n\r\n\t\t\tthis.refrescarTablaHistoricosTipologiaSeccion(this.contenidos_seleccionados);\r\n\t\t}\r\n\r\n\t}\r\n\tTipologiaCiudadanoSeleccionado(){\r\n\r\n\t\tconst esCiudadano = this.tipologias_contenido_seleccionadas.find( t => t.Tipo === 'CIUDADANO' );\r\n\t\tif (esCiudadano && this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n setScale(contenedorPlano, anchoMapa) {\r\n return (contenedorPlano.offsetWidth - 30) / anchoMapa;\r\n\t}\r\n\r\n\tfiltrar(event){\r\n\t\tconsole.log(event);\r\n\t\tconst that = this;\r\n\t\tconst mensaje_error = '';\r\n\t\tif (this.mostrarResusltadoValidacion()) {\r\n\t\t\tthis.refrescarTablasVisibles();\r\n\t\t\tthat.fechaAutoRefrescoTablaTiempoReal = new Date(that.fechaInicioAutoRefrescoTablaTiempoReal.getTime());\r\n\t\t\tthat.fechaAutoRefrescoTablaTiempoReal.setSeconds(that.fechaInicioAutoRefrescoTablaTiempoReal.getSeconds());\r\n\t\t}\r\n\t}\r\n\tmostrarResusltadoValidacion(){\r\n\t\tconst ok = this.validar();\r\n\t\tlet mensaje_error = '';\r\n\t\tif (!ok) {\r\n\r\n\t\t\t// Tipo Informe\r\n\t\t\tif (this.menuTipoInformeError){\r\n\t\t\t\tmensaje_error += \tthis.translate.instant('Informes.menuTipoInformeError');\r\n\t\t\t}\r\n\r\n\t\t\t// Tipo Contenido\r\n\t\t\tif (this.menuTipologiaContenidoError){\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.menuTipologiaContenidoError');\r\n\t\t\t}\r\n\r\n\t\t\t// Contenidos\r\n\t\t\tif (this.minRows){\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.minRows');\r\n\t\t\t}\r\n\t\t\tif (this.maxRows){\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.maxRows');\r\n\t\t\t}\r\n\t\t\tif (!this.minRows && this.menuContenidoError) {\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.menuContenidoError');\r\n\t\t\t}\r\n\r\n\t\t\t// Fechas\r\n\t\t\tif (this.fDesdeError){\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.fDesdeError');\r\n\t\t\t}\r\n\t\t\tif (this.fHastaError){\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.fHastaError');\r\n\t\t\t}\r\n\r\n\t\t\t// Coincidencia\r\n\t\t\tif (this.tiempoMinimoCoincidenciaError) {\r\n\t\t\t\tmensaje_error += this.translate.instant('Informes.tiempoMinimoCoincidenciaError');\r\n\t\t\t}\r\n\r\n\t\t\tthis.showError(mensaje_error);\r\n\r\n\t\t}\r\n\t\treturn ok;\r\n\t}\r\n /****** AUX ********/\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic setHistoricosLocalStorage(hist) {\r\n\t\tconst getCircularReplacer = () => {\r\n\t\t\tconst seen = new WeakSet();\r\n\t\t\treturn (key, value) => {\r\n\t\t\t if (typeof value === \"object\" && value !== null) {\r\n\t\t\t\tif (seen.has(value)) {\r\n\t\t\t\t return;\r\n\t\t\t\t}\r\n\t\t\t\tseen.add(value);\r\n\t\t\t }\r\n\t\t\t return value;\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tconst cadenaHistoricos = JSON.stringify(hist, getCircularReplacer());\r\n\r\n\t\tlocalStorage.setItem('historicos', cadenaHistoricos);\r\n\t}\r\n\r\n\texportarPlano(){\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_LOCALIZACION ){\r\n\t\t\twindow.print();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconsole.log('TODO: Exportar svg');\r\n\t\t}\r\n\t}\r\n\texportarContenido(){\r\n\t\t// this.loadContenido(true);\r\n\t\tthis.loadContenidoExportar();\r\n\t}\r\n\tloadContenidoExportar() {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst columnas = [];\r\n\r\n\t\tconst first = 0;\r\n\t\tconst size = 1000000000000;\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\t// Según la vista en la que se está de la pestaña informes\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_LOCALIZACION_TIEMPO_REAL){\r\n\t\t\tconsole.log('Se va a exportar documento en VISTA_LOCALIZACION_TIEMPO_REAL');\r\n\r\n\t\t\tconst excluidos = new Array();\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaLocalizaciones(that.informesList), 'Localizacion');\r\n\t\t\tthat.triggerPageChange = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_LOCALIZACION){\r\n\t\t\tconsole.log('Se va a exportar documento en VISTA_HISTORICOS_LOCALIZACION');\r\n\r\n\t\t\tconst excluidos = new Array();\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaLocahistoricos(that.historicosList), 'historicos');\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_SECCION){\r\n\t\t\tconsole.log('Se va a exportar documento en VISTA_HISTORICOS_SECCION');\r\n\r\n\t\t\tconst excluidos = new Array();\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaLocahistoricos(that.historicoSeccionesList), 'historicoSecciones');\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_COINCIDENCIAS_UBICACION){\r\n\t\t\tconsole.log('Se va a exportar documento en VISTA_COINCIDENCIAS_UBICACION');\r\n\r\n\t\t\tconst excluidos = new Array();\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaLocacoincidencias(that.coincidenciasList), 'coincidencias');\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t}\r\n\t\tif (this.tipo_informe_seleccionado === this.VISTA_HISTORICOS_TIPOLOGIA_SECCION){\r\n\t\t\tconsole.log('Se va a exportar documento en VISTA_HISTORICOS_SECCION');\r\n\r\n\t\t\tconst excluidos = new Array();\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaLocahistoricos(that.historicoTipologiaSeccionesList), 'historicoTipologiaSecciones');\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\texportarContenidoAgrupadoSecciones(datos){\r\n\t\tthis.historicoSeccionesList = datos;\r\n\t}\r\n\texportarContenidoAgrupadoTipologiaSecciones(datos){\r\n\t\tthis.historicoTipologiaSeccionesList = datos;\r\n\t}\r\n\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\tprotected showInfo = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'info', detail: mensaje});\r\n\t}\r\n\r\n\tdescripcionInforme(event){\r\n\t\tconsole.log(event)\r\n\t\tconsole.log(this.tipo_informe_seleccionado)\r\n\t\tthis.positionDialogInfoInformeX = event.x;\r\n\t\tthis.positionDialogInfoInformeY = event.y;\r\n\t\tthis.dialogDescripcionInforme = true;\r\n\t\tif(this.tipo_informe_seleccionado === 0){\r\n\t\t\tthis.infoInforme=\"Descripción Informe Localización Tiempo Real\"\r\n\t\t}else if(this.tipo_informe_seleccionado === 1){\r\n\t\t\tthis.infoInforme=\"Descripción Informe Histórico por Ubicaciones\"\r\n\t\t}else if(this.tipo_informe_seleccionado === 2){\r\n\t\t\tthis.infoInforme=\"Descripción Informe Histórico por Secciones\"\r\n\t\t}else if(this.tipo_informe_seleccionado === 3){\r\n\t\t\tthis.infoInforme=\"Descripción Informe Coincidencias Ubicación\"\r\n\t\t}else if(this.tipo_informe_seleccionado === 4){\r\n\t\t\tthis.infoInforme=\"Descripción Informe Ocupación\"\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Informes/Informes.component.ts","module.exports = \"\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{ titulo_logo | translate }}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n 0\\\" [(ngModel)]=\\\"model.entidad\\\" type=\\\"text\\\" autocomplete=\\\"on\\\" class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\" pInputText required>\\r\\n \\r\\n
      {{ 'Login.entidaderror' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n 0\\\" [(ngModel)]=\\\"model.user\\\" type=\\\"text\\\" autocomplete=\\\"on\\\" class=\\\"ui-inputtext ui-corner-all ui-state-default ui-widget\\\" pInputText required>\\r\\n \\r\\n
      {{ 'Login.usuarioerror' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{ 'Login.passerror' | translate }}
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{ 'Login.RecuperacionCuenta' | translate }}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\\"\\\"\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{ 'Login.enlaceVerificacion' | translate }}

      \\r\\n

      {{ 'Login.mensajeEnvioCorreo' | translate }} {{model.user}} {{'Login.paraLaEntidad' | translate }} {{model.entidad}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{ 'Login.RecuperacionCuenta' | translate }}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{ 'Login.nuevaContrasenia' | translate }}

      \\r\\n

      {{ 'Login.mensajeNuevaContrasenia' | translate }} {{model.user}} {{'Login.paraLaEntidad' | translate }} {{model.entidad}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{ 'Login.passerror' | translate }}
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{ 'Login.passerror' | translate }}
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{ 'Login.RecuperacionCuenta' | translate }}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{ 'Login.correoEnviado' | translate }}

      \\r\\n

      {{ 'Login.mensajeCorreoEnviado' | translate }} {{model.user}} {{'Login.paraLaEntidad' | translate }} {{model.entidad}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n

      v.{{version}}

      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Login/Login.component.html\n// module id = ../../../../../src/app/views/Login/Login.component.html\n// module chunks = main","import { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { NgIf } from '@angular/common';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { LoginDTO } from '../../domain/dto/loginDto';\r\n\r\nimport { GrowlModule, Message } from 'primeng/primeng';\r\n// Necesario para mostrar mensajes con esta plantilla\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FormControlName } from '@angular/forms';\r\n\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { getToken } from '../../app.module';\r\nimport { AppComponent } from '../../app.component';\r\n\r\n// Probar cuando venga Pablo de vacaciones, si se activa resolveJsonModule en tsconfig peta la compilacion aot como le pasaba a appciudadano\r\n// import * as packageJson from '../../../../package.json';\r\nimport { Constantes } from '../../domain/constantes';\r\n\r\n@Component({\r\n\ttemplateUrl: './Login.component.html'\r\n})\r\n\r\nexport class LoginComponent implements OnInit {\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tlogado: boolean;\r\n\r\n\tshowLogin: boolean = false;\r\n\tshowRecuperarPassword: boolean = false;\r\n\tshowNewPassword: boolean = false;\r\n\tcorreoEnviado: boolean = false;\r\n\r\n\ttoken: string;\r\n\tmodel: LoginDTO;\r\n\r\n\tmsgs: Message[] = [];\r\n\r\n\tloading: boolean;\r\n\r\n\tcolor: string;\r\n\tmode: string;\r\n\r\n\tformLogin: FormGroup;\r\n\tformNewPass: FormGroup;\r\n\r\n\tnewPass: string = '';\r\n\tnewPassConfirm: string = '';\r\n\r\n\tversion: string = '1.4.0.10'; // packageJson.version;\r\n\tlogo: string;\r\n\ttitulo_logo: string;\r\n\trecuperacion: string;\r\n\tentidadParam: string;\r\n\tloginParam: string;\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tpublic translate: TranslateService,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate router: Router,\r\n\t\tprivate route: ActivatedRoute, )\r\n\t{\r\n\t\tconsole.log('*** LoginComponent ***');\r\n\t\tthis.loading = false;\r\n\t\tthis.color = 'primary';\r\n\t\tthis.mode = 'indeterminate';\r\n\t\tthis.model = new LoginDTO();\r\n\t\tthis.model.entidad = '';\r\n\t\tthis.model.user = '';\r\n\t\tthis.model.password = '';\r\n\t\tthis.logo = Constantes.LOGO;\r\n\t\tthis.titulo_logo = Constantes.TITULO_LOGO;\r\n\t\tthis.recuperacion = \"0\";\r\n\t\tthis.entidadParam = '';\r\n\t\tthis.loginParam = '';\r\n\r\n\t\tthis.formLogin = new FormGroup({\r\n\t\t\t'entidad': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t]),\r\n\t\t\t'user': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t]),\r\n\t\t\t'pass': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t])\r\n\t\t});\r\n\r\n\t\tthis.formNewPass = new FormGroup({\r\n\t\t\t'newPass': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t]),\r\n\t\t\t'newPassConfirm': new FormControl('', [\r\n\t\t\t\tValidators.required,\r\n\t\t\t\tValidators.minLength(3)\r\n\t\t\t])\r\n\t\t});\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\tthis.showLogin = true;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = false;\r\n\t\tthis.correoEnviado = false;\r\n\t\tthis.logo = Constantes.LOGO;\r\n\t\tthis.route.params\r\n\t\t.subscribe(params => {\r\n\t\t\tthis.token = params['id'];\r\n\t\t\tthis.recuperacion = params['recuperacion'];\r\n\t\t\tthis.entidadParam = params['entidad'];\r\n\t\t\tthis.loginParam = params['login'];\r\n\r\n\t\t\t// si vienen ambas variables, se le setean directamente\r\n\t\t\tif(this.entidadParam && this.loginParam){\r\n\t\t\t\tthis.model.entidad = this.entidadParam;\r\n\t\t\t\tthis.model.user = this.loginParam;\r\n\t\t\t}\r\n\t\t\tif (this.token) {\r\n\t\t\t\tthis.showLogin = false;\r\n\t\t\t\tthis.showRecuperarPassword = false;\r\n\t\t\t\tthis.showNewPassword = true;\r\n\t\t\t\tthis.correoEnviado = false;\r\n\t\t\t}\r\n\t\t\telse if(this.recuperacion === \"1\" && this.entidadParam && this.loginParam){\r\n\t\t\t\tthis.showLogin = false;\r\n\t\t\t\tthis.showRecuperarPassword = true;\r\n\t\t\t\tthis.showNewPassword = false;\r\n\t\t\t\tthis.correoEnviado = false;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif (this.authService.isAuthenticated()){\r\n\t\t\t\t\tthis.showLogin = false;\r\n\t\t\t\t\tthis.showRecuperarPassword = false;\r\n\t\t\t\t\tthis.showNewPassword = false;\r\n\t\t\t\t\tthis.correoEnviado = false;\r\n\t\t\t\t\tthis.router.navigate(['/espacios']);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconst that = this;\r\n\t\t\t\t\tconst token = that.authService.getToken();\r\n\t\t\t\t\tconst sesionCaducada = that.authService.estaTokenExpirado();\r\n\r\n\t\t\t\t\tif (token && sesionCaducada) {\r\n\t\t\t\t\t\tthat.delay(100)\r\n\t\t\t\t\t\t.then(function(){\r\n\t\t\t\t\t\t\tthat.appComponent.showError('Su sesión ha caducado.');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthat.showLogin = true;\r\n\t\t\t\t\tthat.showRecuperarPassword = false;\r\n\t\t\t\t\tthat.showNewPassword = false;\r\n\t\t\t\t\tthat.correoEnviado = false;\r\n\r\n\t\t\t\t\tconst tipo_logo = params['logo'];\r\n\t\t\t\t\tif (tipo_logo === '1') {\r\n\t\t\t\t\t\t//Constantes.LOGO = '../assets/layout/images/ITSN.png';\r\n\t\t\t\t\t\tthat.logo = Constantes.LOGO;\r\n\t\t\t\t\t\tthat.titulo_logo = Constantes.TITULO_LOGO;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (tipo_logo === '2') {\r\n\t\t\t\t\t\tConstantes.LOGO = '../assets/layout/images/ITSN2.png';\r\n\t\t\t\t\t\tthat.logo = Constantes.LOGO;\r\n\t\t\t\t\t\tthat.titulo_logo = 'Login.navegacioninteriores2';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Si no es ni uno ni dos dejo el logo que ya se habia seteado o el que estubiera por defecto\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tasync delay(ms: number) {\r\n\t\treturn new Promise( resolve => setTimeout(resolve, ms) );\r\n\t}\r\n\r\n\tloginApp() {\r\n\t\t// console.log('LOGIN !!!');\r\n\t\tconst that = this;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.loading = true;\r\n\t\t// this.recuperacion,\r\n\t\tthis.authService.login(this.model.entidad, this.model.user, this.model.password)\r\n\t\t.then(function (data) {\r\n\t\t\tthat.loading = false;\r\n\t\t\tconsole.log(data);\r\n\t\t\tif ((data.res === 1) && (data.lista.length > 0)) {\r\n\t\t\t\t// that.model.entidad = '';\r\n\t\t\t\t// that.model.user = '';\r\n\t\t\t\t// that.model.password = '';\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t// that.spinner.style.display = 'none';\r\n\t\t\t\tthat.router.navigate(['/espacios']);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.model.error = data.msg;\r\n\t\t\t\tif(data.res === -75){ // Contraseña caducada\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTRASENIA_CADUCADA'));\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_LOGIN'));\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function (error) {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.model.error = error;\r\n\t\t\tthat.appComponent.showError(error);\r\n\t\t});\r\n\t}\r\n\r\n\tcancelarRecureparPassword(){\r\n\t\tthis.showLogin = true;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = false;\r\n\t\tthis.correoEnviado = false;\r\n\t}\r\n\r\n\tmostrarRecureparPassword(){\r\n\t\tif (this.model.entidad.length > 0 && this.model.user.length > 0) {\r\n\t\t\tthis.showLogin = false;\r\n\t\t\tthis.showRecuperarPassword = true;\r\n\t\t\tthis.showNewPassword = false;\r\n\t\t\tthis.correoEnviado = false;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesEmergentes.MENSAJE_ERROR_PASSWORD_RECUPERAR_NO_USER'));\r\n\t\t}\r\n\t}\r\n\r\n\tmostrarNewPassword(){\r\n\t\tthis.showLogin = false;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = true;\r\n\t\tthis.correoEnviado = false;\r\n\t}\r\n\r\n\tocultarNewPassword(){\r\n\t\tthis.showLogin = true;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = false;\r\n\t\tthis.correoEnviado = false;\r\n\t}\r\n\r\n\tmostrarCorreoEnviado(){\r\n\t\tthis.showLogin = false;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = false;\r\n\t\tthis.correoEnviado = true;\r\n\t}\r\n\r\n\tocultarCorreoEnviado(){\r\n\t\tthis.showLogin = true;\r\n\t\tthis.showRecuperarPassword = false;\r\n\t\tthis.showNewPassword = false;\r\n\t\tthis.correoEnviado = false;\r\n\t}\r\n\r\n\tenviarEmailPassword(){\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tthis.sws.wsRecordarPassword(this.model.entidad, this.model.user).toPromise()\r\n\t\t.then(function (data) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.mostrarCorreoEnviado();\r\n\t\t\treturn data;\r\n\t\t})\r\n\t\t.catch(e => {\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesEmergentes.MENSAJE_ERROR_NO_POSIBLE_PASSWORD_RECUPERAR'));\r\n\t\t\tthrow e;\r\n\t\t});\r\n\t}\r\n\r\n\tconfirmarPassword(){\r\n\t\tconst that = this;\r\n\t\tif (this.newPass === this.newPassConfirm) {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tthis.sws.wsConfirmarPassword(this.token, this.model.entidad, this.model.user, this.newPass, this.newPassConfirm).toPromise()\r\n\t\t\t.then(function (data) {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.mostrarCorreoEnviado();\r\n\t\t\t\treturn data;\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\tthis.spinner.style.display = 'none';\r\n\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesEmergentes.MENSAJE_ERROR_NO_POSIBLE_PASSWORD_CONFIRMAR'));\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t\tthrow e;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesEmergentes.MENSAJE_ERROR_NO_POSIBLE_PASSWORD_CONFIRMAR_DIFERENTES'));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Login/Login.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n

      {{'Mensajes.mensajes' | translate}}

      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n {{\\\"Mensajes.totalMensajes\\\" | translate}} {{filtro.total}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n {{ tipoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ tipoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n {{ tipoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ tipoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n {{mensaje[col.field] | date: this.translate.instant('General.fermatofechapipe') }}\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{mensaje[col.field] | date: this.translate.instant('General.fermatofechapipe') }}\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{mensaje[col.field] | date:this.translate.instant('General.fermatofechapipe') }}\\r\\n
      \\r\\n\\r\\n \\r\\n
      0\\\">\\r\\n
      \\r\\n \\r\\n

      {{seccion.Nombre}}

      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      0\\\" class=\\\"grupo-0-asignado-flex\\\">\\r\\n
      \\r\\n \\r\\n

      ({{nodo.X}},{{nodo.Y}})

      \\r\\n
      \\r\\n

      ({{mensaje.alaPertenencia}})

      \\r\\n
      \\r\\n\\r\\n \\r\\n
      0\\\" class=\\\"grupo-0-asignado-flex \\\">\\r\\n
      \\r\\n \\r\\n

      {{espacio.Nombre}}

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{getMensajesTipos(mensaje[col.field]).label |translate}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{getMensajesAcciones(mensaje[col.field]).label |translate}}\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{mensaje[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.html\n// module id = ../../../../../src/app/views/Mensajes/Mensajes.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n/* Tabla mensajes enviados */\\n/deep/ body .mensaje-cabecera {\\n background-color: #757575 !important;\\n color: white !important; }\\n/deep/ body .mensaje-cabecera:hover {\\n background-color: #757575 !important;\\n color: white !important; }\\n/deep/ body .mensaje-cabecera > p-sorticon > span {\\n color: white !important; }\\n/*\\r\\n/deep/ body .mensaje-cabecera:nth-child(4) {\\r\\n width: 120px;\\r\\n}\\r\\n\\r\\n/deep/ body .mensaje-cabecera:nth-child(5) {\\r\\n width: 120px;\\r\\n}\\r\\n\\r\\n/deep/ body .mensaje-cabecera:last-child {\\r\\n max-width: 144px;\\r\\n}\\r\\n*/\\n.mensaje-destino-wrap {\\n display: -webkit-box !important;\\n display: -ms-flexbox !important;\\n display: flex !important;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n border-bottom: solid 1px lightgrey; }\\n/* Dropdown pequeño */\\n/deep/ body .mensaje-cabecera-dropdown > div {\\n width: 90px !important; }\\n/* Destino */\\nbody .mensaje-secciones-cabecera:last-child {\\n width: 150px; }\\nbody .mensaje-cell > td:first-child > div {\\n /*\\r\\n\\twhite-space: nowrap;\\r\\n overflow: hidden;\\r\\n\\ttext-overflow: ellipsis;\\r\\n\\t*/ }\\n/* Tabla secciones en mensajes*/\\nbody .mensaje-salas-cabecera {\\n background-color: #757575 !important;\\n color: white !important; }\\nbody .mensaje-salas-cabecera .ui-chkbox-box {\\n border: 2px solid white !important;\\n color: white !important; }\\nbody .mensaje-salas-cabecera:hover {\\n background-color: #757575 !important;\\n color: white !important; }\\nbody .mensaje-salas-cabecera > p-sorticon > span {\\n color: white !important; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.scss\n// module id = ../../../../../src/app/views/Mensajes/Mensajes.component.scss\n// module chunks = main","import { ComponentesModule } from './../../modules/componentes.module';\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/primeng';\r\n\r\nimport { Predicate } from 'breeze-client';\r\n\r\n\r\nimport { IdiomaCalendario } from './../../domain/IdiomaCalendatio';\r\nimport { PermisosService } from '../../providers/authentication/permisos.service';\r\nimport { AppModule } from '../../app.module';\r\nimport { AppComponent } from '../../app.component';\r\nimport { Router } from '@angular/router';\r\nimport { mergeNsAndName } from '@angular/compiler';\r\nimport { AvisoCiudadanoFormulario } from '../../domain/AvisoCiudadanoFormulario';\r\n\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { allSettled } from 'q';\r\n// import { GeoposicionarComponent } from '../../modules/componentes.module';\r\n\r\n// Necesario para mostrar mensajes con esta plantilla\r\n\r\n@Component({\r\n\ttemplateUrl: './Mensajes.component.html',\r\n\tstyleUrls: ['./Mensajes.component.scss'],\r\n\tproviders: [ConfirmationService]\r\n})\r\n\r\nexport class MensajesComponent implements OnInit, OnDestroy {\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tpublic msgs= [];\r\n\tpublic notificacionSeleccionada: AvisoCiudadanoFormulario = new AvisoCiudadanoFormulario();\r\n\tpublic secciones: any[] = [];\r\n\tpublic seccionesSeleccionadas: any[] = [];\r\n\tpublic mensajes = [];\r\n\tpublic mensajesFiltrados = [];\r\n\r\n\tpublic enviarSeccionesSeleccionadas: Boolean = false;\r\n\tpublic enviarVisitantesActuales: Boolean = true;\r\n\r\n\tpublic colsEspacio = [];\r\n\tpublic colsMensaje = [];\r\n\tpublic colSecciones = [];\r\n\r\n\tpublic valoresEsParaVisitantesActuales = [];\r\n\r\n\tpublic inputContenido = '';\r\n\tpublic inputTitulo = '';\r\n\r\n\tpublic isValid = true;\r\n\tpublic tituloError = false;\r\n\tpublic contenidoError = false;\r\n\r\n\tprivate idEspacio;\r\n\r\n\tpublic filtro = {\r\n\t\twhere: {\r\n\t\t\tTitulo: '',\r\n\t\t\tDesde: '',\r\n\t\t\tHasta: '',\r\n\t\t\tFechaFinDesde: '',\r\n\t\t\tFechaFinHasta:'',\r\n\t\t\tFechaInicioDesde: '',\r\n\t\t\tFechaInicioHasta:'',\r\n\t\t\tContenido: '',\r\n\t\t\tContAsociado: '',\r\n\t\t\tEsParaVisitantesActuales: undefined,\r\n\t\t\tTipo: undefined,\r\n\t\t\tAccionDesencadenante: undefined,\r\n\t\t\tTiempoReenvioMinutos: undefined\r\n\t\t},\r\n\t\torder: 'FechaCreacion desc',\r\n\t\ttop: 10,\r\n\t\tpage: 0,\r\n\t\ttotal: 0\r\n\t};\r\n\r\n\tpublic AccionDesencadenante = [\r\n\t\t{\r\n\t\t\ttipo: 'TODOS',\r\n\t\t\tvalue: -1,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoTodos'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ENTRAR',\r\n\t\t\tvalue: Constantes.ENVIAR_AL_ENTRAR,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.alentrar')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'SALIR',\r\n\t\t\tvalue: Constantes.ENVIAR_AL_SALIR,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.alsalir')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ESTAN_AHORA',\r\n\t\t\tvalue: Constantes.ESTAN_AHORA,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.estanahora')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'VISITADO_ALGUNA_VEZ',\r\n\t\t\tvalue: Constantes.VISITADO_ALGUNA_VEZ,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.hanvisitado')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPLORADO_ALGUNA_VEZ',\r\n\t\t\tvalue: Constantes.EXPLORADO_ALGUNA_VEZ,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.hanestado')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'TIENEN_LA_APP',\r\n\t\t\tvalue: Constantes.TIENEN_LA_APP,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.tienenapp')\r\n\t\t}\r\n\r\n\t];\r\n\r\n\r\n\tpublic AccionDesencadenanteMod = this.AccionDesencadenante[0];\r\n\r\n\tpublic Tipos = [\r\n\t\t{\r\n\t\t\ttipo: 'TODOS',\r\n\t\t\tvalue: -1,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoTodos'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'NOTIFICACION_INSTANTANEA',\r\n\t\t\tvalue: Constantes.NOTIFICACION_INSTANTANEA,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.puntual')\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'NOTIFICACION_PROGRAMADA',\r\n\t\t\tvalue: Constantes.NOTIFICACION_PROGRAMADA,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: this.translate.instant('Mensajes.programado')\r\n\t\t}\r\n\t];\r\n\r\n\t// 0.- Instantanea, 1.- Programada\r\n\tstatic readonly NOTIFICACION_INSTANTANEA = 0;\r\n\tstatic readonly NOTIFICACION_PROGRAMADA = 1;\r\n\r\n\t// Tipos Programados 0.- Entrando, 1.- Saliendo\r\n\tstatic readonly ENVIAR_AL_ENTRAR = 0;\r\n\tstatic readonly ENVIAR_AL_SALIR = 1;\r\n\r\n\t// Tipos Instantaneos\r\n\tstatic readonly ESTAN_AHORA = 2;\r\n\tstatic readonly VISITADO_ALGUNA_VEZ = 3;\r\n\tstatic readonly EXPLORADO_ALGUNA_VEZ = 4;\r\n\tstatic readonly TIENEN_LA_APP = 5;\r\n\r\n\r\n\r\n\tpublic TiposMod = this.Tipos[0];\r\n\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\tpermisos: Permisos;\r\n\tmsgPushNoProvisionado = [];\r\n\tespacioSeleccionado: any;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Mensajes.mensajes') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** MensajesComponent ***');\r\n\t\tthis.mensajes = [];\r\n\t\tthis.colsMensaje = [\r\n\t\t\t{ field: 'Titulo', header: this.translate.instant('Mensajes.titulo') },\r\n\t\t\t{ field: 'FechaInicio', header: this.translate.instant('Mensajes.fechainicio') },\r\n\t\t\t{ field: 'FechaFin', header: this.translate.instant('Mensajes.fechafin')},\r\n\t\t\t{ field: 'Tipo', header: this.translate.instant('Mensajes.envio') },\r\n\t\t\t{ field: 'AccionDesencadenante', header: this.translate.instant('Mensajes.evento') },\r\n\t\t\t{ field: 'destino', header: this.translate.instant('Mensajes.destino') },\r\n\t\t\t{ field: 'numeroEnvios', header: this.translate.instant('Mensajes.destinatarios') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.colSecciones = [\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Mensajes.nombre') }\r\n\t\t];\r\n\r\n\t\tthis.valoresEsParaVisitantesActuales = [{label: 'Verdadero', value: true}, {label: 'Falso', value: false}];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\tthis.comprobarPermisos();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tonPageChange(evento) {\r\n\t\tconsole.log(evento);\r\n\t\tthis.filtro.page = evento.page;\r\n\t\tthis.loadMensajes();\r\n\t}\r\n\r\n\r\n\tonSort(evento) {\r\n\t\tconsole.log(evento);\r\n\r\n\t\tif(evento.field !== 'numeroEnvios' && evento.field !== 'destino' && evento.field !== 'MostrarEdicion'){\r\n\t\t\tlet field = evento.field;\r\n\t\t\tif (field === 'contenidoAsociado') {\r\n\t\t\t\tfield = 'CONTENID.Titulo';\r\n\t\t\t}\r\n\r\n\t\t\tconst sentido = evento.order > 0 ? 'ASC' : 'DESC';\r\n\t\t\tconst actual = field + ' ' + sentido;\r\n\t\t\tif (actual !== this.filtro.order) {\r\n\t\t\t\tthis.filtro.order = actual;\r\n\t\t\t\tthis.loadMensajes();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tonRowSelected(event){\r\n\t\tconsole.log('clicked');\r\n\t}\r\n\r\n\tgetMensajesAcciones(_val) {\r\n\t\tfor (const i in this.AccionDesencadenante) {\r\n\t\t\tif (this.AccionDesencadenante[i].value === _val) {\r\n\t\t\t\treturn this.AccionDesencadenante[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tgetMensajesTipos(_val) {\r\n\t\tfor (const i in this.Tipos) {\r\n\t\t\tif (this.Tipos[i].value === _val) {\r\n\t\t\t\treturn this.Tipos[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tgetWhere() {\r\n\t\tconst _titulo = this.filtro.where.Titulo;\r\n\t\tconst _contenido = this.filtro.where.Contenido;\r\n\t\tlet _contAsociado = this.filtro.where.ContAsociado;\r\n\t\tconst _esParaVisitantesActuales = this.filtro.where.EsParaVisitantesActuales;\r\n\t\tconst _desde = this.filtro.where.Desde;\r\n\r\n\t\tconst _Tipo = this.filtro.where.Tipo;\r\n\t\tconst _AccionDesencadenante = this.filtro.where.AccionDesencadenante;\r\n\r\n/*\t\t\tFechaFinDesde: '',\r\n\t\t\tFechaFinHasta:'',\r\n\t\t\tFechaInicioDesde: '',\r\n\t\t\tFechaInicioHasta:'',\r\n\r\n*/\r\n\t\t// Fecha Inicio\r\n\t\tconst _InicioDesde = this.filtro.where.FechaInicioDesde;\r\n\t\tlet _fInicioDesde = new Date('1900-01-01');\r\n\t\tif (_InicioDesde !== ''){\r\n\t\t\t_fInicioDesde = new Date(_InicioDesde);\r\n\t\t}\r\n\t\tconst where_fInicioDesde = new Predicate('FechaInicio', '>=', _fInicioDesde).or('FechaInicio', '==', null)\r\n\r\n\t\tconst _InicioHasta = this.filtro.where.FechaInicioHasta;\r\n\t\tlet _fInicioHasta = new Date('2100-01-01');\r\n\t\tif (_InicioHasta !== ''){\r\n\t\t\t_fInicioHasta = new Date(_InicioHasta);\r\n\t\t}\r\n\t\tconst where_fInicioHasta = new Predicate('FechaInicio', '<=', _fInicioHasta).or('FechaInicio', '==', null)\r\n\r\n\t\t// Fecha Fin\r\n\t\tconst _FinDesde = this.filtro.where.FechaFinDesde;\r\n\t\tlet _fFinDesde = new Date('1900-01-01');\r\n\t\tif (_FinDesde !== ''){\r\n\t\t\t_fFinDesde = new Date(_FinDesde);\r\n\t\t}\r\n\t\tconst where_fFinDesde = new Predicate('FechaFin', '>=', _fFinDesde).or('FechaFin', '==', null)\r\n\r\n\t\tconst _FinHasta = this.filtro.where.FechaFinHasta;\r\n\t\tlet _fFinHasta = new Date('2100-01-01');\r\n\t\tif (_FinHasta !== ''){\r\n\t\t\t_fFinHasta = new Date(_FinHasta);\r\n\t\t}\r\n\t\tconst where_fFinHasta = new Predicate('FechaFin', '<=', _fFinHasta).or('FechaFin', '==', null)\r\n\r\n\t\tlet _predBool = new Predicate();\r\n\t\tif (_esParaVisitantesActuales === undefined){\r\n\r\n\t\t\t_predBool = new Predicate('EsParaVisitantesActuales', '==', 0)\r\n\t\t\t\t.or('EsParaVisitantesActuales', '==', 1);\r\n\t\t}else{\r\n\t\t\t_predBool = new Predicate('EsParaVisitantesActuales', '==', _esParaVisitantesActuales);\r\n\t\t}\r\n\r\n\t\tlet where = new Predicate('IdEspacio', '==', this.idEspacio)\r\n\t\t\t.and('Titulo', 'contains', _titulo)\r\n\t\t\t.and('Contenido', 'contains', _contenido)\r\n\t\t\t.and(_predBool)\r\n\t\t\t.and(where_fInicioDesde)\r\n\t\t\t.and(where_fInicioHasta)\r\n\t\t\t.and(where_fFinDesde)\r\n\t\t\t.and(where_fFinHasta);\r\n\r\n\t\tif(_Tipo === 1 || _Tipo === 0){\r\n\t\t\twhere = where.and('Tipo', '==', _Tipo);\r\n\t\t}\r\n\t\tif(_AccionDesencadenante === 0 || _AccionDesencadenante === 1 || _AccionDesencadenante === 2 || _AccionDesencadenante === 3 || _AccionDesencadenante === 4 || _AccionDesencadenante === 5 ){\r\n\t\t\twhere = where.and('AccionDesencadenante', '==', _AccionDesencadenante);\r\n\t\t}\r\n\r\n\t\t_contAsociado = _contAsociado.replace(' ', '')\r\n\r\n\t\tif (_contAsociado !== null && _contAsociado !== undefined && _contAsociado !== ''){\r\n\t\t\tif (_contAsociado.replace(/\\s/g, '').length) {\r\n\t\t\t\t//si no esta formado solo por espacios vacios\r\n\t\t\t\twhere = where.and('CONTENID.Titulo', 'contains', _contAsociado);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn where;\r\n\t}\r\n\r\n\r\n\tfilterTipos(filter) {\r\n\t\tthis.filtro.where.Tipo = filter.value;\r\n\t\tthis.loadMensajes();\r\n\t}\r\n\r\n\tfilterAccionDesencadenante(filter) {\r\n\t\tthis.filtro.where.AccionDesencadenante = filter.value;\r\n\t\tthis.loadMensajes();\r\n\t}\r\n\r\n\tloadMensajes(){\r\n\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst that = this;\r\n\r\n\t\tconst where = this.getWhere();\r\n\t\tconst order = this.filtro.order;\r\n\t\tconst top = this.filtro.top;\r\n\t\tconst page = this.filtro.page;\r\n\r\n\t\tconst expands = 'SECCIONES.SECCION, CONTENID, FOTO, NODOS.NODO.SECCION.ALA, ESPACIOS.ESPACIO, ENVIOS';\r\n\r\n\t\treturn this.entityManager.getAVISOOrdenado(where, order, top, page, expands)\r\n\t\t.then(function (datos: any){\r\n\r\n\t\t\tif (!datos || !datos.entidades){\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthat.filtro.total = datos.total;\r\n\r\n\t\t\tlet mensajesList = new Array();\r\n\r\n\t\t\tdatos.entidades.forEach(mens => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst oMensaje = new AvisoCiudadanoFormulario().fromENTIDAD(mens);\r\n\t\t\t\t\tmensajesList.push(oMensaje);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_MENSAJES_CARGAR'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (mensajesList !== undefined) {\r\n\t\t\t\tthat.mensajes = mensajesList;\r\n\t\t\t\tthat.mensajesFiltrados = that.mensajes;\r\n\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.idEspacio = this.authService.getIdEspacio();\r\n\r\n\t\tthis.loadMensajes();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\taddNuevoMensaje(){\r\n\t\tthis.router.navigate(['/mensajes/nuevo', { es: 'nuevo' }]);\r\n\t}\r\n\r\n\t/* Validar */\r\n\tinputChanged(value) {\r\n\r\n\t\tconst p1Error = this.inputTitulo === '' || this.inputTitulo === undefined;\r\n\t\tconst p2Error = this.inputContenido === '' || this.inputContenido === undefined;\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.contenidoError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.contenidoError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar titulo\r\n\t\telse if (value === 'titulo'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar contenido\r\n\t\telse if (value === 'contenido'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.contenidoError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.contenidoError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\t\tconst p1 = this.tituloError;\r\n\t\tconst p2 = this.contenidoError;\r\n\r\n\t\tif (p1 || p2) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tmostrarEditar(aviso) {\r\n\t\t\tthis.notificacionSeleccionada = aviso;\r\n\t\t\tthis.notificacionSeleccionada.MostrarEdicion = true;\r\n\t}\r\n\r\n\tmostrarPrevisualizar(mensaje){\r\n\t\treturn !(mensaje.MostrarEdicion && (mensaje.FechaFin === null || mensaje.FechaFin === undefined || mensaje.FechaFin > new Date()));\r\n\t}\r\n\r\n\tocultarEditar(aviso) {\r\n\t\taviso.MostrarEdicion = false;\r\n\t}\r\n\r\n\teditarNotificacion(event){\r\n\t\tconsole.log('editarNotificacion');\r\n\t\tthis.router.navigate(['/mensajes/nuevo', { id: event.Id, es: 'edicion'}]);\r\n\t}\r\n\r\n\teliminarNotificacion(aviso){\r\n\t\tconst that = this;\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.notificacionSeleccionada = aviso;\r\n\r\n\t\t\t\tif (aviso.numeroDestinatarios > 0) {\r\n\t\t\t\t\taviso.ENTIDAD.FechaFin = new Date();\r\n\t\t\t\t\tthat.entityManager.saveChanges()\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mensajes.mensajeenviadook'));\r\n\t\t\t\t\t\treturn that.loadMensajes();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tconsole.log('eliminarNotificacion');\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\t\t\tthis.entityManager.deleteAVISO(aviso.ENTIDAD)\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mensajes.mensajeenviadook'));\r\n\t\t\t\t\t\treturn that.loadMensajes();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tconsole.log('eliminarNotificacion');\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcopiarNotificacion(mensaje){\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\t/////////\r\n\t\tthat.router.navigate(['/mensajes/nuevo', { id: mensaje.Id, es: 'copia' }]);\r\n\t\t////////\r\n/*\r\n\t\tthis.entityManager.getEspacioById(idEspacio, 'NIVELS.ALAS.SECCIONS.NODOS')\r\n\t\t.then(function (espacio: any){\r\n\t\t\tthat.espacioSeleccionado = espacio;\r\n\t\t\treturn that.entityManager.newAVISO_CIUDADANO();\r\n\t\t})\r\n\t\t.then( function (AVISO_CIUDADANO): any {\r\n\t\t\tAVISO_CIUDADANO.Titulo = mensaje.Titulo;\r\n\t\t\tAVISO_CIUDADANO.Cuerpo = mensaje.Cuerpo;\r\n\t\t\tAVISO_CIUDADANO.FechaCreacion = new Date().getTime();\r\n\t\t\tAVISO_CIUDADANO.TiempoReenvioMinutos = mensaje.repetir ? mensaje.TiempoReenvioMinutos : null;\r\n\t\t\tAVISO_CIUDADANO.Contenido = mensaje.Contenido + ' (copia)';\r\n\t\t\tAVISO_CIUDADANO.FechaInicio = new Date().getTime();\r\n\r\n\t\t\tAVISO_CIUDADANO.EsParaVisitantesActuales = mensaje.EsParaVisitantesActuales;\r\n\t\t\tAVISO_CIUDADANO.numeroDestinatarios = 0;\r\n\r\n\t\t\tAVISO_CIUDADANO.X = mensaje.X;\r\n\t\t\tAVISO_CIUDADANO.Y = mensaje.Y;\r\n\t\t\tAVISO_CIUDADANO.Latitud = mensaje.Latitud;\r\n\t\t\tAVISO_CIUDADANO.Longitud = mensaje.Longitud;\r\n\r\n\t\t\tAVISO_CIUDADANO.IdEspacio = that.espacioSeleccionado.Id;\r\n\t\t\tAVISO_CIUDADANO.ESPACIO = that.espacioSeleccionado;\r\n\r\n\t\t\tAVISO_CIUDADANO.Tipo = mensaje.Tipo;\r\n\t\t\tAVISO_CIUDADANO.AccionDesencadenante = mensaje.AccionDesencadenante; // 0.- Entrando, 1.- Saliendo\r\n\r\n\t\t\tAVISO_CIUDADANO.CONTENID = mensaje.CONTENID;\r\n\t\t\tAVISO_CIUDADANO.IdContenido = mensaje.IdContenido;\r\n\r\n\t\t\tmensaje.ENTIDAD = AVISO_CIUDADANO;\r\n\r\n\t\t\treturn that.clonarRelaciones(mensaje, AVISO_CIUDADANO);\r\n\t\t})\r\n\t\t.then(function (datos): Q.PromiseState[] {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (resp) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.router.navigate(['/mensajes/nuevo', { id: mensaje.ENTIDAD.Id, es: 'copia' }]);\r\n\t\t\tconsole.log('copiarNotificacion');\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t\t*/\r\n\t}\r\n\r\n\tclonarRelaciones(mensajeOriginal, mensajeClonado){\r\n\t\tconst that = this;\r\n\t\tconst promises: any[] = [];\r\n\t\tconst listaSeleccionados = [];\r\n\t\t// Creamos las Nuevas Relaciones\r\n\t\tif (mensajeOriginal.NODOS) {\r\n\t\t\tmensajeOriginal.NODOS.forEach(element => {\r\n\t\t\t\tlistaSeleccionados.push(element);\r\n\t\t\t\tpromises.push(this.entityManager.newNODO_has_AVISO());\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (mensajeOriginal.ESPACIOS) {\r\n\t\t\tmensajeOriginal.ESPACIOS.forEach(element => {\r\n\t\t\t\tlistaSeleccionados.push(element);\r\n\t\t\t\tpromises.push(this.entityManager.newESPACIO_has_AVISO());\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (mensajeOriginal.SECCIONES) {\r\n\t\t\tmensajeOriginal.SECCIONES.forEach(element => {\r\n\t\t\t\tlistaSeleccionados.push(element);\r\n\t\t\t\tpromises.push(this.entityManager.newSECCION_has_AVISO());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (mensajeOriginal.FOTO) {\r\n\t\t\tmensajeOriginal.FOTO.forEach(element => {\r\n\t\t\t\tlistaSeleccionados.push(element);\r\n\t\t\t\tpromises.push(this.entityManager.newFOTO());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// resolvemos todos los promises del array\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function (datos) {\r\n\t\t\tfor (let index = 0; index < datos.length; index++) {\r\n\t\t\t\tconst seleccionado = listaSeleccionados[index];\r\n\t\t\t\tconst element = datos[index].value;\r\n\t\t\t\tif (element.constructor.name.indexOf('ESPACIO_has_AVISO') >= 0) {\r\n\t\t\t\t\telement.IdAvisoCiudadano = mensajeClonado.Id;\r\n\t\t\t\t\telement.IdEspacio = seleccionado.IdEspacio;\r\n\t\t\t\t} else if (element.constructor.name.indexOf('SECCION_has_AVISO') >= 0) {\r\n\t\t\t\t\telement.IdAvisoCiudadano = mensajeClonado.Id;\r\n\t\t\t\t\telement.IdSeccion = seleccionado.IdSeccion;\r\n\t\t\t\t} else if (element.constructor.name.indexOf('NODO_has_AVISO') >= 0) {\r\n\t\t\t\t\telement.IdAvisoCiudadano = mensajeClonado.Id;\r\n\t\t\t\t\telement.IdNodo = seleccionado.IdNodo;\r\n\t\t\t\t} else if (element.constructor.name.indexOf('FOTO') >= 0) {\r\n\t\t\t\t\telement.IdAvisoCiudadano = mensajeClonado.Id;\r\n\t\t\t\t\telement.IdFotoExt = seleccionado.IdFotoExt;\r\n\t\t\t\t\telement.UrlFotoExt = seleccionado.UrlFotoExt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn datos;\r\n\t\t});\r\n\t}\r\n\r\n\tpreviewNotificacion(event){\r\n\t\tconsole.log('editarNotificacion');\r\n\t\tthis.router.navigate(['/mensajes/nuevo', { id: event.Id, es: 'preview' }]);\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (columna === 'Desde') {\r\n\t\t\tthis.filtro.where.Desde = fecha;\r\n\t\t}\r\n\t\tif (columna === 'Hasta') {\r\n\t\t\tthis.filtro.where.Hasta = fecha;\r\n\t\t}\r\n\t\tif (columna === 'FechaInicioDesde') {\r\n\t\t\tthis.filtro.where.FechaInicioDesde = fecha;\r\n\t\t}\r\n\t\tif (columna === 'FechaInicioHasta') {\r\n\t\t\tthis.filtro.where.FechaInicioHasta = fecha;\r\n\t\t}\r\n\t\tif (columna === 'FechaFinDesde') {\r\n\t\t\tthis.filtro.where.FechaFinDesde = fecha;\r\n\t\t}\r\n\t\tif (columna === 'FechaFinHasta') {\r\n\t\t\tthis.filtro.where.FechaFinHasta = fecha;\r\n\t\t}\r\n\t\tthis.loadMensajes();\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/Mensajes.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/MensajesParent.component.html\n// module id = ../../../../../src/app/views/Mensajes/MensajesParent.component.html\n// module chunks = main","import { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\ttemplateUrl: './MensajesParent.component.html'\r\n})\r\n\r\nexport class MensajesParentComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tconsole.log('*** MensajesParentComponent ***');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/MensajesParent.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n {{'RutasSugeridas.listanodos' | translate}}\\r\\n\\r\\n
      \\r\\n {{'RutasSugeridas.contenidos' | translate}}: {{filtro.total}}\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n {{ getContenidoEstado(rowData[col.field]).label |translate }}\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field].Nombre}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{'Mensajes.nuevomensaje' | translate}}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"AvisoSeleccionado.Titulo\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t(ngModelChange)=\\\"inputChanged('titulo')\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t[class.input-requerido]=\\\"tituloError\\\" >\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"AvisoSeleccionado.Contenido\\\"\\r\\n\\t\\t\\t\\t\\t\\t(ngModelChange)=\\\"inputChanged('contenido')\\\"\\r\\n\\t\\t\\t\\t\\t\\t[class.input-requerido]=\\\"contenidoError\\\" >\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n\\t\\t\\t\\t
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n

      {{ 'Contenidos.foto' | translate }}

      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n

      {{ 'Mensajes.cuerpo' | translate }}

      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{'Mensajes.mensajecontenidoasignado' | translate}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n

      {{'Mensajes.tipoenvio' | translate}}

      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      {{'Mensajes.puntualporseccion' | translate}}

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.criterioenvio' | translate}}: \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n

      \\r\\n
      \\r\\n \\r\\n \\r\\n {{'Mensajes.seccionesSeleccionadas' | translate}}\\r\\n
      \\r\\n {{'Mensajes.totalSecciones' | translate}}: {{listaSecciones.length}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData[col.field]}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\\"{{'Mensajes.programadoporespacio' | translate}}\\\"

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.criterioenvio' | translate}}: \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.repetir' | translate}}: \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.noenviarantesde' | translate}}: \\r\\n \\r\\n {{'Mensajes.minutos' | translate}}.\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\\"{{'Mensajes.programadoporseccion' | translate}}\\\"

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.criterioenvio' | translate}}: \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.repetir' | translate}}: \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.noenviarantesde' | translate}}: \\r\\n \\r\\n {{'Mensajes.minutos' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n

      \\r\\n
      \\r\\n \\r\\n \\r\\n {{'Mensajes.seccionesSeleccionadas' | translate}}\\r\\n
      \\r\\n {{'Mensajes.totalSecciones' | translate}}: {{listaSecciones.length}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rowData[col.field]}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      \\\"{{'Mensajes.programadoporubicacion' | translate}}\\\"

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.criterioenvio' | translate}}: \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.repetir' | translate}}: \\r\\n \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.noenviarantesde' | translate}}\\r\\n \\r\\n {{'Mensajes.minutos' | translate}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n

      {{'Mensajes.puntualporespacio' | translate}}

      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{'Mensajes.criterioenvio' | translate}}: \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n

      {{'Mensajes.estadisticastitle' | translate}}

      \\r\\n

      {{'Mensajes.enviosaprox' | translate}}: {{AvisoSeleccionado.numeroEnvios}}

      \\r\\n

      {{'Mensajes.enviosrealizados' | translate}}: {{AvisoSeleccionado.numeroDestinatarios}}

      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.html\n// module id = ../../../../../src/app/views/Mensajes/nuevo/nuevo.mensaje.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* Dropdown Tipo envio */\\n/deep/ body .tipo-envio-dropdown > div {\\n width: inherit !important; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.scss\n// module id = ../../../../../src/app/views/Mensajes/nuevo/nuevo.mensaje.component.scss\n// module chunks = main","import { IdiomaCalendario } from '../../../domain/IdiomaCalendatio';\r\nimport { IdiomaService } from '../../../providers/idioma/idioma.service';\r\nimport { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { Message, MenuItem } from 'primeng/primeng';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { Contenido } from '../../../domain/Contenido';\r\nimport { BreadcrumbService } from '../../../breadcrumb.service';\r\nimport { Idioma } from '../../../domain/Idioma';\r\nimport {TranslateService} from 'ng2-translate';\r\nimport { CropperSettings } from 'ngx-img-cropper';\r\nimport { Constantes } from '../../../domain/constantes';\r\nimport { PermisosService, Permisos } from '../../../providers/authentication/permisos.service';\r\nimport { Predicate } from 'breeze-client';\r\nimport { AppComponent } from '../../../app.component';\r\nimport { EspacioFormulario } from '../../../domain/EspacioFormulario';\r\nimport { PlanoComponent, SeccionPlano } from 'interiores-mapa';\r\nimport { NotificacionPlano } from 'interiores-mapa/dist/notificacionPlano';\r\n\r\nimport { SeccionFormulario } from '../../../domain/SeccionFormulario';\r\nimport { AlaFormulario } from '../../../domain/AlaFormulario';\r\nimport { NodoFormulario } from '../../../domain/NodoFormulario';\r\nimport { AvisoCiudadanoFormulario } from '../../../domain/AvisoCiudadanoFormulario';\r\n\r\nconst FILTRO_INI = JSON.stringify({\r\n\twhere: {\r\n\t\tTitulo: '',\r\n\t\testado: 4,\r\n\t\t// expirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\tDesde: '',\r\n\t\tHasta: '',\r\n\t\tElementoAsignado: '',\r\n\t\tIdAlternativo: '',\r\n\t\tTipologia: ''\r\n\t},\r\n\torder: 'Titulo DESC',\r\n\ttop: 10,\r\n\tpage: 0,\r\n\ttotal: 0\r\n});\r\n// Necesario para mostrar mensajes con esta plantilla\r\n@Component({\r\n\ttemplateUrl: './nuevo.mensaje.component.html',\r\n\tstyleUrls: ['./nuevo.mensaje.component.scss'],\r\n\tproviders: [ConfirmationService]\r\n\t// , declarations: [ImageCropperComponent]\r\n})\r\n\r\nexport class NuevoMensajeComponent implements OnInit, OnDestroy {\r\n\t@ViewChild('dt_no_asignados') dt_no_asignados;\r\n\t@ViewChild('pg_no_asignados') pg_no_asignados;\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tblockUIPlano: HTMLElement;\r\n\r\n\tpublic msgs= [];\r\n\tpublic msgPosicionar = [];\r\n\tpublic msgPushNoProvisionado = [];\r\n\tpublic msgAvisoContenido = [];\r\n\tpublic msgFoto: Message[] = [];\r\n\r\n\tpublic esNuevo = false;\r\n\tpublic esEdicion = false;\r\n\tpublic esCopia = false;\r\n\tpublic esPreview = false;\r\n\r\n\tpublic espacioSeleccionado: EspacioFormulario = new EspacioFormulario();\r\n\tpublic alaSeleccionada;\r\n\tpublic nodoSeleccionado;\r\n\r\n\tpublic listaEntidades = [];\r\n\tpublic listaNodos: NodoFormulario[] = [];\r\n\tpublic listaAlas: AlaFormulario[] = [];\r\n\tpublic listaSecciones: SeccionFormulario[] = [];\r\n\r\n\t// columnas tabla\r\n\tpublic colSecciones = [];\r\n\tpublic colsAsignados: any[] = [];\r\n\tpublic colsTodos: any[] = [];\r\n\r\n\r\n/* AVISO */\r\n\tpublic AvisoSeleccionado: AvisoCiudadanoFormulario = new AvisoCiudadanoFormulario();\r\n\tpublic criteriosEnvio = []; // Siempre true\r\n// ---\r\n\r\n// Validacion\r\n\tpublic isValid = true;\r\n\tpublic tituloError = false;\r\n\tpublic contenidoError = false;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\tpublic accionError = false;\r\n// ---\r\n\r\n/* FOTO */\r\n\t@ViewChild('cropper') cropper;\r\n\timagenSeleccionada: any;\r\n\tcropperSettings: CropperSettings;\r\n\timageCropperVisible = false;\r\n\tdata: any;\r\n\t// cropper: ImageCropperComponent;\r\n\tpermisos: Permisos;\r\n// --\r\n\r\n/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n// ---\r\n\r\n/* Opciones Ennvio */\r\n\tlistaOpcionesEnvio = [\r\n\t\t{ index: 4, Nombre: this.translate.instant('Mensajes.puntualporespacio')},\r\n\t\t{ index: 0, Nombre: this.translate.instant('Mensajes.puntualporseccion')},\r\n\t\t{ index: 1, Nombre: this.translate.instant('Mensajes.programadoporespacio')},\r\n\t\t{ index: 2, Nombre: this.translate.instant('Mensajes.programadoporseccion')},\r\n\t\t{ index: 3, Nombre: this.translate.instant('Mensajes.programadoporubicacion')}\r\n\t];\r\n\topcionEnvioSeleccionada = this.listaOpcionesEnvio[0];\r\n// ---\r\n\r\n/* MAPA */\r\n\t@ViewChild('planoPosicion') planoPosicion: PlanoComponent;\r\n\tpathPlano: String;\r\n\tzoomLevels: Number[];\r\n\tzoomCenterCoords: Number[];\r\n\r\n\tsectionsPlano: Array;\r\n\tmapSectionsPlano: Map;\r\n\r\n\tavisosPlano: Array;\r\n\tmapAvisosPlano: Map;\r\n\r\n\tseccionDefecto: SeccionFormulario;\r\n\tpublic seccionClicada: SeccionFormulario;\r\n\r\n\tpublic offset_x_icono_contenido = -30;\r\n\tpublic offset_y_icono_contenido = -30;\r\n\r\n// ---\r\n\r\n\r\n// Contenido asociado\r\n\tcontenidosTodos: Contenido[] = [];\r\n\tcontenidosFiltrados: Contenido[] = [];\r\n\tpublic contenidoSeleccionado: Contenido[] = [];\r\n\tpublic displayDialog: boolean = false;\r\n\tpublic filtro = JSON.parse(FILTRO_INI);\r\n\r\n\tpublic tipologiasContenido = [\t\t{\r\n\t\ttipo: 'TODOS',\r\n\t\tvalue: 'TODOS',\r\n\t\tclases: [],\r\n\t\tlabel: 'Todos'\r\n\t}];\r\n\tpublic tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\r\n\ttriggerPageChange: boolean = true;\r\n\tpublic ContenidoEstado = [\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoActivo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoProximo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoExpirado'\r\n\t\t}\r\n\t];\r\n\tpublic ContenidoEstadoMod = this.ContenidoEstado[0];\r\n\tidEditar: any;\r\n// ---\r\n\r\n// PESTAÑAS\r\n\tpublic tabMenuItems: MenuItem[];\r\n\tpublic activeItem: MenuItem;\r\n\r\n\thideMensaje = false;\r\n\thideTipo = true;\r\n\thideEstadisticas= true;\r\n// ---\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate router: Router,\r\n\t\tprivate route: ActivatedRoute\r\n\r\n\t) {\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\tthis.blockUIPlano = document.getElementsByClassName('blockPosicionarNotificacion')[0] as HTMLElement;\r\n\t\tif (this.blockUIPlano) {\r\n\t\t\tthis.blockUIPlano.style.display = 'inherit';\r\n\t\t}\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Mensajes.mensajes'), routerLink: ['/mensajes'] },\r\n\t\t\t{ label: this.translate.instant('Mensajes.detalle') }\r\n\t\t]);\r\n\r\n\t\tconsole.log('*** MensajesComponent ***');\r\n\t\tthis.colsAsignados = [\r\n\t\t\t{ field: 'Drag', header: '' },\r\n\t\t\t{ field: 'Imagen', header: this.translate.instant('RutasSugeridas.imagen') },\r\n\t\t\t{ field: 'Titulo', header: this.translate.instant('RutasSugeridas.nombre') },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('RutasSugeridas.descripcion') },\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('RutasSugeridas.Seccion') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.colsTodos = [\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen')}, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')}, // clases: ['th-tipo-corto2'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TIPOLOGIA_CONTENIDO', fieldSort: 'Tipologia', header: this.translate.instant('Contenidos.tipologia')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'MostrarEdicion', fieldSort: '', header: '' }\r\n\t\t];\r\n\r\n\r\n\t\tthis.data = {};\r\n\r\n\t\tthis.colSecciones = [\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Mensajes.nombre') },\r\n\t\t\t{ field: 'nivelSeccion', header: this.translate.instant('Mensajes.nivel') }\r\n\t\t];\r\n\r\n\t\tthis.filtro.where.expirado = new Predicate('FechaAlta', '>=', '1900-01-01');\r\n\t\tthis.cropperSettings = new CropperSettings();\r\n\t\tthis.cropperSettings.width = 400;\r\n\t\tthis.cropperSettings.height = 400;\r\n\t\tthis.cropperSettings.croppedWidth = 400;\r\n\t\tthis.cropperSettings.croppedHeight = 400;\r\n\t\tthis.cropperSettings.canvasWidth = 400;\r\n\t\tthis.cropperSettings.canvasHeight = 400;\r\n\t\tthis.cropperSettings.noFileInput = true;\r\n\t\tthis.cropperSettings.fileType = \"image/webp\";\r\n\t\tthis.cropperSettings.minWithRelativeToResolution = true;\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.msgAvisoContenido = [];\r\n\r\n\t\tthis.msgAvisoContenido.push({severity: 'info', detail: this.translate.instant('Mensajes.avisoasignarcontenido')});\r\n\r\n\t\tthis.tabMenuItems = [\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Mensajes.nuevomensaje'),\r\n\t\t\t\ticon: 'iticon-tab-editar',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabMensajeSeleccionada();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Mensajes.tipodenotificacion'),\r\n\t\t\t\ticon: 'iticon-tab-nodo',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabTipoSeleccionada();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Mensajes.estadisticas'),\r\n\t\t\t\ticon: 'iticon-tab-dashboard',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabWebEstadisticasSeleccionada();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tthis.activeItem = this.tabMenuItems[0];\r\n\r\n\r\n\t\tthis.comprobarPermisos();\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n// CARGA\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\r\n\t\tthis.route.params\r\n\t\t\t.subscribe(params => {\r\n\r\n\t\t\t\tthis.idEditar = params['id'];\r\n\t\t\t\tconst stringValue = params['es'];\r\n\r\n\t\t\t\tif(stringValue === 'nuevo'){\r\n\t\t\t\t\tthis.esNuevo = true;\r\n\t\t\t\t\tthis.esEdicion = false;\r\n\t\t\t\t\tthis.esCopia = false;\r\n\t\t\t\t\tthis.esPreview = false;\r\n\t\t\t\t}\r\n\t\t\t\tif(stringValue === 'edicion'){\r\n\t\t\t\t\tthis.esNuevo = false;\r\n\t\t\t\t\tthis.esEdicion = true;\r\n\t\t\t\t\tthis.esCopia = false;\r\n\t\t\t\t\tthis.esPreview = false;\r\n\t\t\t\t}\r\n\t\t\t\tif(stringValue === 'copia'){\r\n\t\t\t\t\tthis.esNuevo = false;\r\n\t\t\t\t\tthis.esEdicion = false;\r\n\t\t\t\t\tthis.esCopia = true;\r\n\t\t\t\t\tthis.esPreview = false;\r\n\t\t\t\t}\r\n\t\t\t\tif(stringValue === 'preview'){\r\n\t\t\t\t\tthis.esNuevo = false;\r\n\t\t\t\t\tthis.esEdicion = false;\r\n\t\t\t\t\tthis.esCopia = false;\r\n\t\t\t\t\tthis.esPreview = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// this.esEdicion = esEditable && (this.idEditar === undefined ? false : true) // Es una edicion si recibimos un id editable, sino es nuevo o previsualizacion\r\n\r\n\t\t\t});\r\n\r\n\t\tthis.listaNodos = [];\r\n\t\tthis.listaAlas = [];\r\n\t\tthis.listaSecciones = [];\r\n\r\n\t\tthis.loadSecciones();\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\t// ASIGNADOS\r\n\t\t\tlet value = '';\r\n\t\t\tlet matchMode = '';\r\n\t\t\tif (that.dt_no_asignados.filters && that.dt_no_asignados.filters.global) {\r\n\t\t\t\tvalue = that.dt_no_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = that.dt_no_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthat.dt_no_asignados.reset();\r\n\r\n\t\t\tif (that.dt_no_asignados.filters && that.dt_no_asignados.filters.global) {\r\n\t\t\t\tthat.dt_no_asignados.filterGlobal(value, matchMode);\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO();\r\n\t\t})\r\n\t\t.then(function (e) {\r\n\t\t\tthat.tipologiasContenido = e;\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.loadMensaje(that.idEditar);\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function (err) {\r\n\t\t\tconsole.log('Error cargarDatos: ' + err);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tloadSecciones(){\r\n\t\tconst that = this;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tthis.entityManager.getEspacioById(idEspacio, 'NIVELS.ALAS.SECCIONS.NODOS')\r\n\t\t.then(function (espacio: any){\r\n\r\n\t\t\tif (espacio !== undefined) {\r\n\r\n\t\t\t\tthat.espacioSeleccionado = new EspacioFormulario(espacio);\r\n\t\t\t\tthat.listaAlas = [];\r\n\t\t\t\tespacio.NIVELS.forEach(nivel => {\r\n\t\t\t\t\tnivel.ALAS.forEach(a => {\r\n\r\n\t\t\t\t\t\tconst ala = new AlaFormulario(a);\r\n\t\t\t\t\t\tthat.listaAlas.push(ala);\r\n\t\t\t\t\t\tthat.listaEntidades.push(ala);\r\n\r\n\t\t\t\t\t\tala.ENTIDAD.SECCIONS.forEach( s => {\r\n\r\n\t\t\t\t\t\t\tif (s.Nombre !== 'Default') {\r\n\t\t\t\t\t\t\t\tconsole.log(s)\r\n\t\t\t\t\t\t\t\ts.nivelSeccion = s.ALA.NIVEL.NivelVertical;\r\n\r\n\t\t\t\t\t\t\t\tconst seccion = new SeccionFormulario().fromENTIDAD(s);\r\n\t\t\t\t\t\t\t\tseccion.nivelSeccion = s.ALA.NIVEL.NivelVertical;\r\n\t\t\t\t\t\t\t\tthat.listaSecciones.push(seccion);\r\n\t\t\t\t\t\t\t\tthat.listaEntidades.push(seccion);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ts.NODOS.forEach( n => {\r\n\t\t\t\t\t\t\t\tconst nodo = new NodoFormulario().fromENTIDAD(n);\r\n\t\t\t\t\t\t\t\tthat.listaNodos.push(nodo);\r\n\t\t\t\t\t\t\t\tthat.listaEntidades.push(nodo);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tthat.seleccionarAlaPresionado(that.listaAlas[0]);\r\n\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tthat.listaSecciones.sort((a, b) => a.Nombre.localeCompare(b.Nombre));\r\n\t\t\t\tthat.AvisoSeleccionado.secciones = that.listaSecciones;\r\n\t\t\t}\r\n\r\n\t\t\treturn that.entityManager.getEntidadById(espacio.IdEntidad);\r\n\t\t})\r\n\t\t.then(function (entidad: any){\r\n\r\n\t\t\tif (!entidad.EntidadSIC || !entidad.PasswordSIC || !entidad.UrlSIC || !entidad.UserSIC){\r\n\t\t\t\tthat.msgPushNoProvisionado.push({severity: 'warn', detail: that.translate.instant('Mensajes.pushnoconfigurado')});\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tloadMensaje(idEditar){\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst that = this;\r\n\t\tconst expands = 'SECCIONES.SECCION, CONTENID.FOTOS, FOTO, NODOS.NODO, ESPACIOS.ESPACIO';\r\n\t\tconst predicado = new Predicate('Id', '==', idEditar);\r\n\r\n\t\treturn this.entityManager.getAVISO_CIUDADANO(predicado, expands)\r\n\t\t.then(function (datos: any[]){\r\n\r\n\t\t\tif (!datos){\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdatos.forEach(mens => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tthat.AvisoSeleccionado = new AvisoCiudadanoFormulario().fromENTIDAD(mens);\r\n\r\n\t\t\t\t\tif (that.esCopia){\r\n\t\t\t\t\t\tthat.AvisoSeleccionado.Contenido = that.AvisoSeleccionado.Contenido + that.translate.instant('Mensajes.copia');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Inmediata a Sección o Espacio\r\n\t\t\t\t\tif ( mens.Tipo === 0) {\r\n\t\t\t\t\t\tif (that.AvisoSeleccionado.secciones.length > 0){\r\n\t\t\t\t\t\t\tthat.opcionEnvioSeleccionada = that.listaOpcionesEnvio.find( o => o.index === 0); // SECCION\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tthat.opcionEnvioSeleccionada = that.listaOpcionesEnvio.find( o => o.index === 4); // ESPACIO\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Programada a Espacio\r\n\t\t\t\t\tif (that.AvisoSeleccionado.espacios.length > 0 && mens.Tipo === 1) {\r\n\t\t\t\t\t\tthat.opcionEnvioSeleccionada = that.listaOpcionesEnvio.find( o => o.index === 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Programada a Sección\r\n\t\t\t\t\tif (that.AvisoSeleccionado.secciones.length > 0 && mens.Tipo === 1) {\r\n\t\t\t\t\t\tthat.opcionEnvioSeleccionada = that.listaOpcionesEnvio.find( o => o.index === 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Programada a Ubicación\r\n\t\t\t\t\tif (that.AvisoSeleccionado.nodos.length > 0 && mens.Tipo === 1) {\r\n\t\t\t\t\t\tthat.opcionEnvioSeleccionada = that.listaOpcionesEnvio.find( o => o.index === 3);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (mens.CONTENID) {\r\n\t\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(mens.CONTENID);\r\n\t\t\t\t\t\tthat.contenidoSeleccionado = [contenido];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_MENSAJES_CARGAR'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t}\r\n// ---\r\n\r\n\r\n//#region -- TAB_MENU --\r\ntabMensajeSeleccionada() {\r\n\r\n\tthis.msgPosicionar = [];\r\n\tthis.activeItem = this.tabMenuItems[0];\r\n\r\n\tthis.ocultarTabs();\r\n\tthis.hideMensaje = false;\r\n\r\n\tif (this.blockUI) {\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n}\r\n\r\ntabTipoSeleccionada(): any {\r\n\tthis.msgPosicionar = [];\r\n\tthis.activeItem = this.tabMenuItems[1];\r\n\tthis.msgPosicionar.push({severity: 'info', detail: this.translate.instant('Mensajes.avisoPosicionar')}); // this.translate.instant('MensajesEmergentes.MENSAJE_AVISO_SELECCIONE_NODO')\r\n\r\n\tthis.ocultarTabs();\r\n\tthis.hideTipo = false;\r\n\r\n\tif (this.blockUI) {\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n}\r\n\r\ntabWebEstadisticasSeleccionada() {\r\n\tthis.msgPosicionar = [];\r\n\tthis.activeItem = this.tabMenuItems[2];\r\n\r\n\tthis.ocultarTabs();\r\n\tthis.hideEstadisticas = false;\r\n\r\n\tif (this.blockUI) {\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n}\r\n\r\nprotected ocultarTabs() {\r\n\tthis.hideMensaje = true;\r\n\tthis.hideTipo = true;\r\n\tthis.hideEstadisticas= true;\r\n}\r\n\r\n//#endregion\r\n\r\n\r\n// FORMULARIO\r\n\t/* Validar */\r\n\tinputChanged(value) {\r\n\r\n\t\tconst p1Error = this.AvisoSeleccionado.Titulo === '' || this.AvisoSeleccionado.Titulo === undefined;\r\n\t\tconst p2Error = this.AvisoSeleccionado.Contenido === '' || this.AvisoSeleccionado.Contenido === undefined;\r\n\t\tconst p3Error = this.AvisoSeleccionado.FechaInicio === undefined || this.AvisoSeleccionado.FechaInicio === null || this.AvisoSeleccionado.FechaInicio.toString() === '';\r\n\t\tconst p4Error = false;\r\n\r\n\t\tlet cont = 0;\r\n\t\tif (this.AvisoSeleccionado.alEntrar){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tif (this.AvisoSeleccionado.alSalir){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tif (this.AvisoSeleccionado.estan){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tif (this.AvisoSeleccionado.visitaron){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tif (this.AvisoSeleccionado.exploraron){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tif (this.AvisoSeleccionado.tienenApp){\r\n\t\t\tcont = cont + 1;\r\n\t\t}\r\n\t\tconst p5Error = cont !== 1;\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.contenidoError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.contenidoError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p5Error) {\r\n\t\t\t\tthis.accionError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.accionError = false;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// validacion al editar titulo\r\n\t\telse if (value === 'titulo'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar contenido\r\n\t\telse if (value === 'contenido'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.contenidoError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.contenidoError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(value === 'fecha_alta'){\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(value === 'fecha_baja'){\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if ( value === 'ent' || value === 'sal' || value === 'estan' || value === 'visitaron' || value === 'exploraron' || value === 'tienenApp'){\r\n\t\t\tif (p5Error) {\r\n\t\t\t\tthis.accionError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.accionError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\r\n\t\tconst p1 = this.tituloError;\r\n\t\tconst p2 = this.contenidoError;\r\n\t\tconst p3 = this.opcionEnvioSeleccionada.index !== 0 && this.opcionEnvioSeleccionada.index !== 4 && this.fAltaError;\r\n\t\tconst p4 = this.opcionEnvioSeleccionada.index !== 0 && this.opcionEnvioSeleccionada.index !== 4 && this.fBajaError;\r\n\t\tconst p5 = this.opcionEnvioSeleccionada.index !== 0 && this.opcionEnvioSeleccionada.index !== 4 && this.accionError;\r\n\r\n\t\tif (p1 || p2 || p3 || p4 || p5) {\r\n\t\t\tthis.isValid = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tonTabChange(event) {\r\n\t\tconsole.log('Index: ' + event.index);\r\n\t\tconsole.log('Index: ' + event.Nombre);\r\n\r\n\t\tif (event.index === 0) {\r\n\t\t\tthis.AvisoSeleccionado.estan = true;\r\n\t\t\tthis.AvisoSeleccionado.alEntrar = false;\r\n\t\t\tthis.AvisoSeleccionado.alSalir = false;\r\n\t\t\tthis.AvisoSeleccionado.visitaron = false;\r\n\t\t\tthis.AvisoSeleccionado.exploraron = false;\r\n\t\t\tthis.AvisoSeleccionado.tienenApp = false;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.AvisoSeleccionado.estan = false;\r\n\t\t\tthis.AvisoSeleccionado.alEntrar = false;\r\n\t\t\tthis.AvisoSeleccionado.alSalir = false;\r\n\t\t\tthis.AvisoSeleccionado.visitaron = false;\r\n\t\t\tthis.AvisoSeleccionado.exploraron = false;\r\n\t\t\tthis.AvisoSeleccionado.tienenApp = false;\r\n\t\t}\r\n\r\n\t\t// Cuando no esta la pestaña de seleccionar blockUIPlano es undefined\r\n\t\tthis.blockUIPlano = document.getElementsByClassName('blockPosicionarNotificacion')[0] as HTMLElement;\r\n\t\tif (this.blockUIPlano) {\r\n\t\t\tthis.blockUIPlano.style.display = 'inherit';\r\n\t\t}\r\n\r\n }\r\n\r\n\tdisableCriterio(CriterioMarcado){\r\n\r\n\t\tif ( !(this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.exploraron || this.AvisoSeleccionado.tienenApp)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'estan') {\r\n\t\t\treturn (this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.exploraron || this.AvisoSeleccionado.tienenApp);\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'ent') {\r\n\t\t\treturn (this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.exploraron || this.AvisoSeleccionado.tienenApp);\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'sal') {\r\n\t\t\treturn (this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.exploraron || this.AvisoSeleccionado.tienenApp);\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'visitaron') {\r\n\t\t\treturn (this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.exploraron || this.AvisoSeleccionado.tienenApp);\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'exploraron') {\r\n\t\t\treturn (this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.tienenApp);\r\n\t\t}\r\n\t\tif (CriterioMarcado === 'tienenApp') {\r\n\t\t\treturn (this.AvisoSeleccionado.estan || this.AvisoSeleccionado.alEntrar || this.AvisoSeleccionado.alSalir || this.AvisoSeleccionado.visitaron || this.AvisoSeleccionado.exploraron);\r\n\t\t}\r\n\t}\r\n\r\n\tenviarMensaje(){\r\n\t\tif (this.validar()){\r\n\t\t\tif (this.opcionEnvioSeleccionada.index === 0 ) {\r\n\t\t\t\tthis.enviarMensajeInstantaneo();\r\n\t\t\t}\r\n\t\t\telse if (this.opcionEnvioSeleccionada.index === 1) {\r\n\t\t\t\tthis.enviarMensajeProgramado();\r\n\t\t\t}\r\n\t\t\telse if (this.opcionEnvioSeleccionada.index === 2) {\r\n\t\t\t\tthis.enviarMensajeProgramado();\r\n\t\t\t}\r\n\t\t\telse if (this.opcionEnvioSeleccionada.index === 3) {\r\n\t\t\t\tthis.enviarMensajeProgramado();\r\n\t\t\t}\r\n\t\t\telse if (this.opcionEnvioSeleccionada.index === 4 ) {\r\n\t\t\t\tthis.enviarMensajeInstantaneo();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\t}\r\n\r\n\t// Envia push inmediatamente el servicio web es el que se encarga de crear el aviso_ciudadano o de editarlo y ademas crea los aviso_ciudadano_envio\r\n\tenviarMensajeInstantaneo (){\r\n\t\tconst that = this;\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst idEspacio = this.espacioSeleccionado.ENTIDAD.Id;\r\n\t\tconst idEntidad = this.espacioSeleccionado.ENTIDAD.IdEntidad;\r\n\t\tlet idContenido = '';\r\n\r\n\t\tif (this.contenidoSeleccionado.length > 0){\r\n\t\t\tidContenido = this.contenidoSeleccionado[0].IdContenido;\r\n\t\t}\r\n\r\n\t\tlet salas = [];\r\n\t\tthis.criteriosEnvio = [];\r\n\t\tif (this.opcionEnvioSeleccionada.index === 0) {\r\n\r\n\t\t\tthis.AvisoSeleccionado.secciones.forEach(seccion => {\r\n\t\t\t\tsalas.push(seccion.Id);\r\n\t\t\t});\r\n\t\t\tthis.criteriosEnvio.push(Constantes.ESTAN_AHORA);\r\n\t\t}\r\n\t\tif (this.opcionEnvioSeleccionada.index === 4) {\r\n\t\t\tif (this.AvisoSeleccionado.estan) {\r\n\t\t\t\tthis.criteriosEnvio.push(Constantes.ESTAN_AHORA);\r\n\t\t\t}\r\n\t\t\tif (this.AvisoSeleccionado.visitaron) {\r\n\t\t\t\tthis.criteriosEnvio.push(Constantes.VISITADO_ALGUNA_VEZ);\r\n\t\t\t}\r\n\t\t\tif (this.AvisoSeleccionado.exploraron) {\r\n\t\t\t\tthis.criteriosEnvio.push(Constantes.EXPLORADO_ALGUNA_VEZ);\r\n\t\t\t}\r\n\t\t\tif (this.AvisoSeleccionado.tienenApp) {\r\n\t\t\t\tthis.criteriosEnvio.push(Constantes.TIENEN_LA_APP);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.sws.wsGetEstimacionDestinatarios(token, idEntidad, idEspacio, [], salas, this.AvisoSeleccionado.Titulo, this.AvisoSeleccionado.Contenido, this.criteriosEnvio).toPromise()\r\n\t\t.then(function(res){\r\n\t\t\tthat.confirmationService.confirm({\r\n\t\t\t\tmessage: that.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ENVIO_MENSAJE') + res.lista.length + that.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ENVIO_MENSAJE_2'),\r\n\t\t\t\taccept: () => {\r\n\t\t\t\t\t// llamar a servicio web envio push\r\n\t\t\t\t\t// SendPush()\r\n\t\t\t\t\tif (that.validar()){\r\n\t\t\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\r\n\t\t\t\t\t\t// Si estamos copiando un aviso mandamos el idAvisoFormulario vacio para que el sw cree el nuevo aviso_ciudadano\r\n\t\t\t\t\t\tlet idAvisoFormulario = null;\r\n\t\t\t\t\t\tif (that.esCopia || that.esNuevo){\r\n\t\t\t\t\t\t\tidAvisoFormulario = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tidAvisoFormulario = that.AvisoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthat.sws.wsEnviarPush(token, idEntidad, idEspacio, idAvisoFormulario, idContenido, [], salas, that.AvisoSeleccionado.Titulo, that.AvisoSeleccionado.Contenido, that.AvisoSeleccionado.Cuerpo, that.imagenSeleccionada, that.criteriosEnvio).toPromise()\r\n\t\t\t\t\t\t.then(function(resp){\r\n\r\n\t\t\t\t\t\t\tif (resp.res === 1){\r\n\t\t\t\t\t\t\t\tif (resp.msg !== '' && resp.msg !== null && resp.msg !== undefined){\r\n\t\t\t\t\t\t\t\t\treturn that.subirFotos(resp.msg);\r\n\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tconsole.log('Error wsEnviarPush: ' + resp );\r\n\t\t\t\t\t\t\t\tif (resp.res === -90) {\r\n\t\t\t\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('Mensajes.nodestinatarios'));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('Mensajes.mensajeenviadoNOok'));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function(resp){\r\n\t\t\t\t\t\t\tif (resp !== 0){\r\n\t\t\t\t\t\t\t\tthat.AvisoSeleccionado.ENTIDAD.FechaFin = new Date().getTime();\r\n\t\t\t\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\treturn resp;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (resp){\r\n\t\t\t\t\t\t\tif (resp !== 0){\r\n\t\t\t\t\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mensajes.mensajeenviadook'));\r\n\t\t\t\t\t\t\t\treturn that.router.navigate(['/mensajes']);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function(){\r\n\t\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\treject: () => {\r\n\t\t\t\t\tconsole.log('Cancelado el Envío de Mensaje.');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tenviarMensajeProgramado(){\r\n\r\n\t\tif (this.esEdicion){\r\n\t\t\tthis.editarAviso();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.crearNuevoAviso();\r\n\t\t}\r\n\t}\r\n\r\n\tmostrarEnviar(){\r\n\t\treturn this.esNuevo || this.esEdicion || this.esCopia;\r\n\t}\r\n\r\n\r\n\t// Crea una entrada en AVISO_CIUDADANO (que disparara un envio push en el momento de la localizacion segun algunos criterios)\r\n\tcrearNuevoAviso(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.newAVISO_CIUDADANO()\r\n\t\t.then(function(AVISO_CIUDADANO){\r\n\t\t\t// ENTIDAD.Id = that.AvisoSeleccionado.Id;\r\n\t\t\tAVISO_CIUDADANO.Titulo = that.AvisoSeleccionado.Titulo;\r\n\t\t\tAVISO_CIUDADANO.Cuerpo = that.AvisoSeleccionado.Cuerpo;\r\n\t\t\tAVISO_CIUDADANO.FechaCreacion = new Date().getTime();\r\n\t\t\tAVISO_CIUDADANO.TiempoReenvioMinutos = that.AvisoSeleccionado.repetir ? that.AvisoSeleccionado.TiempoReenvioMinutos : null;\r\n\t\t\tAVISO_CIUDADANO.Contenido = that.AvisoSeleccionado.Contenido;\r\n\t\t\tAVISO_CIUDADANO.FechaInicio = that.AvisoSeleccionado.FechaInicio;\r\n\t\t\tAVISO_CIUDADANO.FechaFin = that.AvisoSeleccionado.FechaFin;\r\n\t\t\tAVISO_CIUDADANO.EsParaVisitantesActuales = that.AvisoSeleccionado.EsParaVisitantesActuales;\r\n\t\t\tAVISO_CIUDADANO.numeroDestinatarios = that.AvisoSeleccionado.numeroDestinatarios;\r\n\r\n\t\t\tAVISO_CIUDADANO.X = that.AvisoSeleccionado.X;\r\n\t\t\tAVISO_CIUDADANO.Y = that.AvisoSeleccionado.Y;\r\n\t\t\tAVISO_CIUDADANO.Latitud = that.AvisoSeleccionado.Latitud;\r\n\t\t\tAVISO_CIUDADANO.Longitud = that.AvisoSeleccionado.Longitud;\r\n\r\n\t\t\tAVISO_CIUDADANO.IdEspacio = that.espacioSeleccionado.Id;\r\n\t\t\tAVISO_CIUDADANO.ESPACIO = that.espacioSeleccionado.ENTIDAD;\r\n\r\n\t\t\tAVISO_CIUDADANO.Tipo = Constantes.NOTIFICACION_PROGRAMADA;\r\n\t\t\tAVISO_CIUDADANO.AccionDesencadenante = that.AvisoSeleccionado.alEntrar ? Constantes.ENVIAR_AL_ENTRAR : ( that.AvisoSeleccionado.alSalir ? Constantes.ENVIAR_AL_SALIR : Constantes.ENVIAR_AL_ENTRAR); // 0.- Entrando, 1.- Saliendo\r\n\r\n\t\t\tthat.AvisoSeleccionado.Id = AVISO_CIUDADANO.Id;\r\n\t\t\tthat.AvisoSeleccionado.FechaCreacion = AVISO_CIUDADANO.FechaCreacion;\r\n\t\t\tthat.AvisoSeleccionado.ENTIDAD = AVISO_CIUDADANO;\r\n\r\n\t\t\treturn that.crearRelaciones();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos(that.AvisoSeleccionado.Id);\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mensajes.mensajeenviadook'));\r\n\t\t\tthat.router.navigate(['/mensajes']);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\teditarAviso(){\r\n\t\tconst that = this;\r\n\t\t// ENTIDAD.Id = that.AvisoSeleccionado.Id;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Titulo = that.AvisoSeleccionado.Titulo;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Cuerpo = that.AvisoSeleccionado.Cuerpo;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.FechaCreacion = new Date().getTime();\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.TiempoReenvioMinutos = that.AvisoSeleccionado.repetir ? that.AvisoSeleccionado.TiempoReenvioMinutos : null;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Contenido = that.AvisoSeleccionado.Contenido;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.FechaInicio = that.AvisoSeleccionado.FechaInicio;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.FechaFin = that.AvisoSeleccionado.FechaFin;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.EsParaVisitantesActuales = that.AvisoSeleccionado.EsParaVisitantesActuales;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.numeroDestinatarios = that.AvisoSeleccionado.numeroDestinatarios;\r\n\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.X = that.AvisoSeleccionado.X;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Y = that.AvisoSeleccionado.Y;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Latitud = that.AvisoSeleccionado.Latitud;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Longitud = that.AvisoSeleccionado.Longitud;\r\n\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.IdEspacio = that.espacioSeleccionado.Id;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.ESPACIO = that.espacioSeleccionado.ENTIDAD;\r\n\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.Tipo = Constantes.NOTIFICACION_PROGRAMADA;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.AccionDesencadenante = that.AvisoSeleccionado.alEntrar ? Constantes.ENVIAR_AL_ENTRAR : ( that.AvisoSeleccionado.alSalir ? Constantes.ENVIAR_AL_SALIR : Constantes.ENVIAR_AL_ENTRAR); // 0.- Entrando, 1.- Saliendo\r\n\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.CONTENID = that.contenidoSeleccionado[0] ? that.contenidoSeleccionado[0].ENTIDAD : that.AvisoSeleccionado.ENTIDAD.CONTENID;\r\n\t\tthat.AvisoSeleccionado.ENTIDAD.IdContenido = that.contenidoSeleccionado[0] ? that.contenidoSeleccionado[0].ENTIDAD.Id : that.AvisoSeleccionado.ENTIDAD.IdContenido;\r\n\r\n\t\treturn that.crearRelaciones()\r\n\t\t.then(function () {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos(that.AvisoSeleccionado.Id);\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mensajes.mensajeenviadook'));\r\n\t\t\tthat.router.navigate(['/mensajes']);\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tcrearRelaciones() {\r\n\t\tconst that = this;\r\n\t\tconst promises: any[] = [];\r\n\r\n\t\t// Para la edicion Eliminamos las Relaciones Actuales\r\n\t\tthis.eliminarRelaciones();\r\n\r\n\t\t// Creamos las Nuevas Relaciones\r\n\t\t/*\r\n\t\t{ index: 4, Nombre: 'Puntual por Espacio'},\r\n\t\t{ index: 0, Nombre: 'Puntual por Sección'},\r\n\t\t{ index: 1, Nombre: 'Programado por Espacio'},\r\n\t\t{ index: 2, Nombre: 'Programado por Sección'},\r\n\t\t{ index: 3, Nombre: 'Programado por Ubicación'}\r\n\t\t*/\r\n\t\tconst listaSeleccionados = [];\r\n\t\tif (this.opcionEnvioSeleccionada.index === 1) {\r\n\t\t\tpromises.push(this.entityManager.newESPACIO_has_AVISO());\r\n\t\t\tlistaSeleccionados.push(that.espacioSeleccionado);\r\n\t\t}\r\n\t\telse if (this.opcionEnvioSeleccionada.index === 2) {\r\n\t\t\tthat.AvisoSeleccionado.secciones.forEach(element => {\r\n\t\t\t\tpromises.push(this.entityManager.newSECCION_has_AVISO());\r\n\t\t\t\tlistaSeleccionados.push(element);\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if (this.opcionEnvioSeleccionada.index === 3) {\r\n\t\t\tpromises.push(this.entityManager.newNODO_has_AVISO());\r\n\t\t\tlistaSeleccionados.push(that.AvisoSeleccionado.nodos[0]);\r\n\t\t}\r\n\t\t// resolvemos todos los promises del array\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function (datos) {\r\n\t\t\tif (datos.length === listaSeleccionados.length) {\r\n\t\t\t\tfor (let index = 0; index < listaSeleccionados.length; index++) {\r\n\t\t\t\t\tconst seleccionado = listaSeleccionados[index];\r\n\t\t\t\t\tconst element = datos[index].result;\r\n\r\n\t\t\t\t\tif (element.constructor.name.indexOf('ESPACIO_has_AVISO') >= 0) {\r\n\t\t\t\t\t\telement.AVISO_CIUDADANO = that.AvisoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdAvisoCiudadano = that.AvisoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.ESPACIO = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdEspacio = seleccionado.ENTIDAD.Id;\r\n\r\n\t\t\t\t\t} else if (element.constructor.name.indexOf('SECCION_has_AVISO') >= 0) {\r\n\t\t\t\t\t\telement.AVISO_CIUDADANO = that.AvisoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdAvisoCiudadano = that.AvisoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.SECCION = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdSeccion = seleccionado.ENTIDAD.Id;\r\n\r\n\t\t\t\t\t} else if (element.constructor.name.indexOf('NODO_has_AVISO') >= 0) {\r\n\t\t\t\t\t\telement.AVISO_CIUDADANO = that.AvisoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdAvisoCiudadano = that.AvisoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.NODO = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdNodo = seleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn datos;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.appComponent.showError(that.translate.instant('Contenidos.errorcreandocontenidos'));\r\n\t\t\t\tconsole.log('Error - No se crearon correctamente todas las relaciones de Contenido con las entidades');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\teliminarRelaciones(){\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.AvisoSeleccionado.ENTIDAD.NODOS);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con NODOS: ' + error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.AvisoSeleccionado.ENTIDAD.ESPACIOS);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con ESPACIOS: ' + error);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.AvisoSeleccionado.ENTIDAD.SECCIONES);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con SECCIONES: ' + error);\r\n\t\t}\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_CANCELAR'),\r\n accept: () => {\r\n\t\t\t\tthis.router.navigate(['/mensajes']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Cancelado de Contenido.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\tvolver(){\r\n\t\tthis.router.navigate(['/mensajes']);\r\n\t}\r\n// ---\r\n\r\n\r\n/* TABLA ASIGNACION CONTENIDO */\r\n\tonInputSearchChange(){\r\n\t\tconst _where = this.filtro.where;\r\n\t\tthis.filtro = JSON.parse(FILTRO_INI);\r\n\t\tthis.filtro.where = _where;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterTipologia(TIPOLOGIA_CONTENIDO){\r\n\t\tconst valorFiltrado = TIPOLOGIA_CONTENIDO.Nombre;\r\n\r\n\t\tthis.filtro.where.Tipologia = valorFiltrado;\r\n\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterEstado(filter) {\r\n\t\tthis.filtro.where.estado = filter.value;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\r\n\tgetContenidoEstado(_val) {\r\n\t\tfor (const i in this.ContenidoEstado) {\r\n\t\t\tif (this.ContenidoEstado[i].value === _val) {\r\n\t\t\t\treturn this.ContenidoEstado[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tonPageChange(evento) {\r\n\t\tconsole.log(evento);\r\n\t\tthis.filtro.page = evento.page;\r\n\t\tif (this.triggerPageChange){\r\n\t\t\tthis.cargarContenidos();\r\n\t\t}else{\r\n\t\t\tthis.triggerPageChange = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonSort(evento) {\r\n\t\tconsole.log(evento);\r\n\r\n\t\tlet field = evento.field;\r\n\t\tif (field === 'expirado') {\r\n\t\t\tfield = 'Estado';\r\n\t\t\t// \tfield = 'FechaBaja';\r\n\r\n\t\t}\r\n\r\n\t\tconst sentido = evento.order > 0 ? 'ASC' : 'DESC';\r\n\r\n\t\tconst actual = field + ' ' + sentido;\r\n\t\tif (actual !== this.filtro.order) {\r\n\t\t\tthis.filtro.order = actual;\r\n\t\t\tthis.cargarContenidos();\r\n\t\t}\r\n\t}\r\n\r\n\tasignarContenido(rowData) {\r\n\r\n\t\t// Asignamos contenidos\r\n\t\tconst idContenido = rowData.ENTIDAD.Id ? rowData.ENTIDAD.Id : rowData.Id;\r\n\r\n\t\tthis.contenidosTodos = this.contenidosTodos.filter(obj => obj.ENTIDAD.Id !== idContenido);\r\n\t\tthis.contenidoSeleccionado = new Array();\r\n\t\tthis.contenidoSeleccionado.push(rowData);\r\n\r\n\t\tlet filtroNoAsignados;;\r\n\r\n\r\n\t\tif (this.dt_no_asignados.filters) {\r\n\t\t\tfiltroNoAsignados = this.dt_no_asignados.filters;\r\n\t\t}\r\n\r\n\t\tif (filtroNoAsignados !== undefined){\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\t\t\tthis.dt_no_asignados.filters = filtroNoAsignados;\r\n\t\t\tthis.dt_no_asignados.filter();\r\n\t\t}else{\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\t\t}\r\n\r\n\r\n\t\tthis.filtro.total = this.contenidosTodos.length;\r\n\r\n\t\tif (this.contenidosTodos.length === 0 && this.filtro.page > 0)\r\n\t\t{\r\n\t\t\tthis.filtro.page--;\r\n\r\n\t\t\tthis.pg_no_asignados.paginatorState.page = this.filtro.page;\r\n\t\t\tthis.pg_no_asignados.paginatorState.totalRecords = this.filtro.total;\r\n\r\n\t\t\tthis.pg_no_asignados.changePage(this.filtro.page);\r\n\t\t}\r\n\r\n\t\tthis.displayDialog = false;\r\n\t}\r\n\r\n\tdesasignarContenido(rowData) {\r\n\t\tthis.contenidosTodos.push(rowData);\r\n\t\tthis.contenidoSeleccionado = new Array();\r\n\r\n\r\n\t\t\t// ASIGNADOS\r\n\t\t\tlet value = '';\r\n\t\t\tlet matchMode = '';\r\n\t\t\tif (this.dt_no_asignados.filters && this.dt_no_asignados.filters.global) {\r\n\t\t\t\tvalue = this.dt_no_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = this.dt_no_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\r\n\t\t\t// if (this.dt_no_asignados.filters && this.dt_no_asignados.filters.global) {\r\n\t\t\tthis.dt_no_asignados.filterGlobal(value, matchMode);\r\n\t\t\t// }\r\n\r\n\t\t\t// NO ASIGNADOS\r\n\t\t\tvalue = '';\r\n\t\t\tmatchMode = '';\r\n\t\t\t// }\r\n\t}\r\n\r\n\tmostrarEditar(rowdata) {\r\n\t\trowdata.MostrarEdicion = true;\r\n\t}\r\n\r\n\tocultarEditar(rowdata) {\r\n\t\trowdata.MostrarEdicion = false;\r\n\t}\r\n\r\n\tmostrarAsignarContenido(){\r\n\t\tthis.cargarContenidos();\r\n\t\tthis.displayDialog = true;\r\n\t}\r\n\r\n\tcargarContenidos() {\r\n\t\tconst that = this;\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst columnas = [];\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idIdioma = this.idiomaSeleccionado.ENTIDAD.Id;\r\n\t\tconst idEspacio = this.espacioSeleccionado.Id;\r\n\t\tconst _elementoAsignado = this.filtro.where['ElementoAsignado'];\r\n\t\tconst _titulo = this.filtro.where['Titulo'];\r\n\t\tconst _idAlternativo = this.filtro.where['IdAlternativo'];\r\n\r\n\t\tlet _tipologia = '';\r\n\t\tif (this.filtro.where.Tipologia && this.translate.instant('Contenidos.estadoTodos') !== this.filtro.where.Tipologia.toString()) {\r\n\t\t\t_tipologia = this.filtro.where['Tipologia'];\r\n\t\t}\r\n\t\tlet size = 10;\r\n\t\tlet first = this.filtro.page * size;\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst _estado = this.filtro.where.estado;\r\n\t\tconst Desde = this.filtro.Desde;\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\tlet ids = [];\r\n\r\n\t\tlet excluidos = new Array();\r\n\t\tthat.contenidosTodos = new Array();\r\n\r\n\r\n\t\tlet Activos = false;\r\n\t\tif (that.permisos.Gestion_Activos === 2) {\r\n\t\t\tActivos = true;\r\n\t\t}\r\n\r\n\r\n\t\t// this.entityManager.getCONTENIDOOrdenado(where, order, top, page, includes, columnas )\r\n\t\tthis.sws.wsBuscarContenidos(token, idEspacio, idIdioma, _titulo, _estado, Desde, Hasta, _idAlternativo, _tipologia, _elementoAsignado, first, size, orderBy, order, excluidos, Activos).toPromise()\r\n\t\t.then(function(resp){\r\n\t\t\tids = resp.lista;\r\n\r\n\t\t\tthat.filtro.total = resp.total;\r\n\t\t\tlet includes = 'FOTOS, ';\r\n\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ALAS.ALA.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO.SECCION, ';\r\n\t\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO.IDIOMAS';\r\n\r\n\t\t\treturn that.entityManager.getContenidosById(ids, includes, columnas);\r\n\t\t})\r\n\t\t.then(function (data) {\r\n\t\t\tthat.contenidosTodos = [];\r\n\t\t\tthat.contenidosFiltrados = [];\r\n\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata = data.sort(function(a, b){\r\n\t\t\t\treturn ids.indexOf(a.Id) - ids.indexOf(b.Id);\r\n\t\t\t});\r\n\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthat.contenidosFiltrados.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.contenidosFiltrados.forEach(elemento => {\r\n\t\t\t\tif (elemento.Imagen === undefined) {\r\n\t\t\t\t\telemento.Imagen = that.authService.getFotoBlobPorDefecto();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst conts = that.contenidosFiltrados.find( c => c.Id === that.AvisoSeleccionado.ENTIDAD.IdContenido);\r\n\t\t\tif(conts){\r\n\t\t\t\tthat.contenidoSeleccionado = [conts];\r\n\t\t\t\tthat.contenidosFiltrados.filter( c => c.Id !== that.AvisoSeleccionado.ENTIDAD.IdContenido);\r\n\t\t\t}\r\n\r\n\t\t\tthat.contenidosFiltrados.forEach((contenidoFormulario: Contenido) => {\r\n\t\t\t\tconst contenido = new Contenido().fromENTIDAD(contenidoFormulario.ENTIDAD);\r\n\t\t\t\tthat.contenidosTodos.push(contenido);\r\n\t\t\t});\r\n\r\n\t\t\tthat.dt_no_asignados.reset();\r\n\r\n\t\t\t// Traducimos Contenidos al idioma seleccionado\r\n\t\t\tthat.contenidosFiltrados = that.idiomaService.traducirContenidos(that.contenidosFiltrados, that.idiomaSeleccionado);\r\n\t\t\tthat.triggerPageChange = false;\r\n\r\n\t\t\tthat.pg_no_asignados.paginatorState.page = that.filtro.page;\r\n\t\t\tthat.pg_no_asignados.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\tthat.pg_no_asignados.changePage(that.filtro.page);\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n// ------\r\n\r\n// FOTO\r\n\t/* imagen */\r\n \tonFileSelect($event) {\r\n\t \tthis.msgFoto = [];\r\n\t \tthis.imagenSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect(){\r\n\t \tthis.imagenSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t \tthis.onRemoveSelect();\r\n\t}\r\n\r\n\tpublic subirFotos(idMensaje){\r\n\t \t// PREPARAMOS LA SUBIDA DE LAS FOTOS\r\n\t \tconst promises: any[] = [];\r\n\t \tconst that = this;\r\n\r\n\t \tif (that.imagenSeleccionada !== undefined && idMensaje !== undefined && idMensaje !== null && idMensaje !== '') {\r\n\t\t\t promises.push(that.enviarFoto('IdAvisoCiudadano', idMensaje, that.imagenSeleccionada));\r\n\t\t}\r\n\r\n\t \treturn allSettled(promises);\r\n\t}\r\n\r\n\tpublic onTextChange($event): void {\r\n\t\tthis.AvisoSeleccionado.Cuerpo = $event.htmlValue;\r\n\t\tconsole.log(this.AvisoSeleccionado.Cuerpo);\r\n\t}\r\n\r\n\tenviarFoto(entidad, idEntidad, imagen, idFoto = null) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsSubidaFoto(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n\t/* Image Cropper */\r\n\tfileChangeListener($event) {\r\n\t \tthis.imageCropperVisible = true;\r\n\t \tconst image: any = new Image();\r\n\t \tconst file: File = $event.target.files[0];\r\n\t \tconst nombre = file.name;\r\n\t \tconst tipo = file.type;\r\n\t \tconst myReader: FileReader = new FileReader();\r\n\t \tconst that = this;\r\n\t \tmyReader.onloadend = function (loadEvent: any) {\r\n\t \t\timage.src = loadEvent.target.result;\r\n\t \t\tthat.cropper.setImage(image);\r\n\t \t\tthat.sws.base64ToFile(image.src, nombre, tipo)\r\n\t \t\t.then(function(fotoFile){\r\n\t \t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t \t\t});\r\n\t \t};\r\n\t \tmyReader.readAsDataURL(file);\r\n\t}\r\n\r\n\tasignarFotoCropp(){\r\n\t \tconst that = this;\r\n\t \tthis.sws.base64ToFile(this.data.image, that.imagenSeleccionada.name)\r\n\t \t.then(function(fotoFile){\r\n\t \t\tthat.imagenSeleccionada = fotoFile;\r\n \t\tthat.imageCropperVisible = false;\r\n\t \t});\r\n\t}\r\n// ------\r\n\r\n\r\n//#region -- PLANO --\r\n\r\nbloquearMapa(){\r\n\tthis.msgPosicionar = [];\r\n\tthis.blockUIPlano = document.getElementsByClassName('blockPosicionarNotificacion')[0] as HTMLElement;\r\n\tthis.blockUIPlano.style.display = 'inherit';\r\n\tthis.msgPosicionar.push({severity: 'info', detail: this.translate.instant('Contenidos.avisoDesbloquear')}); // this.translate.instant('MensajesEmergentes.MENSAJE_AVISO_SELECCIONE_NODO')\r\n}\r\n\r\ndesBloquearMapa(){\r\n\tthis.msgPosicionar = [];\r\n\tthis.blockUIPlano = document.getElementsByClassName('blockPosicionarNotificacion')[0] as HTMLElement;\r\n\tthis.blockUIPlano.style.display = 'none';\r\n\tthis.msgPosicionar.push({severity: 'info', detail: this.translate.instant('Contenidos.avisoPosicionar')}); // this.translate.instant('MensajesEmergentes.MENSAJE_AVISO_SELECCIONE_NODO')\r\n}\r\n\r\nmapaBloqueadoClick(){\r\n\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.MAPA_BLOQUEADO'));\r\n}\r\n\r\n\tmostrarSeleccionarAla(ala) {\r\n\t\tala.seleccionarVisible = true;\r\n\t}\r\n\r\n\tocultarSeleccionarAla(ala) {\r\n\t\tala.seleccionarVisible = false;\r\n\t}\r\n\r\n\tseleccionarAla(ala: AlaFormulario) {\r\n\t\tthis.seleccionarAlaPresionado(ala);\r\n\t}\r\n\r\n\tseleccionarAlaPresionado(ala: AlaFormulario) {\r\n\t\tthis.alaSeleccionada = ala;\r\n\t\tthis.pathPlano = this.alaSeleccionada.RutaImagen;\r\n\t}\r\n\r\n\t/* PLANO */\r\n\tpublic onSVGLoaded() {\r\n\t\tthis.zoomLevels = [Constantes.ZOOM_MINIMO, Constantes.ZOOM_MAXIMO];\r\n\r\n\t\tlet avisoPlano: NotificacionPlano;\r\n\r\n\t\tif (this.esEdicion ){\r\n\t\t\tif (!this.AvisoSeleccionado.ENTIDAD.X) { this.AvisoSeleccionado.ENTIDAD.X = Constantes.X_COORDENADA; }\r\n\t\t\tif (!this.AvisoSeleccionado.ENTIDAD.Y) { this.AvisoSeleccionado.ENTIDAD.Y = Constantes.Y_COORDENADA; }\r\n\t\t\tavisoPlano = new NotificacionPlano(this.AvisoSeleccionado.ENTIDAD.Id, this.AvisoSeleccionado.ENTIDAD.Nombre, this.AvisoSeleccionado.ENTIDAD.X, this.AvisoSeleccionado.ENTIDAD.Y, '', null, this.alaSeleccionada.IconoContenidoScale);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (!this.AvisoSeleccionado.X) { this.AvisoSeleccionado.X = Constantes.X_COORDENADA; }\r\n\t\t\tif (!this.AvisoSeleccionado.Y) { this.AvisoSeleccionado.Y = Constantes.Y_COORDENADA; }\r\n\t\t\tavisoPlano = new NotificacionPlano('IdProbisional', this.AvisoSeleccionado.Titulo, this.AvisoSeleccionado.X, this.AvisoSeleccionado.Y, '', null, this.alaSeleccionada.IconoContenidoScale);\r\n\t\t}\r\n\r\n\t\tavisoPlano.setSimbolo('assets/itsoft/IconosSVG/email.svg');\r\n\t\tavisoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\tavisoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\tavisoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\tavisoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\tavisoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\tavisoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\tavisoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\tavisoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\r\n\t\tavisoPlano.setIconAlign('center-center');\r\n\r\n\t\tthis.avisosPlano = [avisoPlano];\r\n\r\n\t\tthis.pintarSecciones();\r\n\t}\r\n\r\n\tpublic onSVGClicked() {\r\n\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.NO_SECCION_CLICK'));\r\n\t}\r\n\r\n\tpublic onSeccionClicked($event){\r\n\t\tif (this.mostrarEnviar()) {\r\n\t\t\t// Asignamos el aviso al nodo mas cercano al click realizado\r\n\t\t\tconst asignado = this.asignarNodoMasCescano($event.id, $event.mp[0], $event.mp[1]);\r\n\t\t\tif ( asignado ){\r\n\t\t\t\tconsole.log('onSeccionClicked');\r\n\t\t\t\tthis.posicionarAviso($event);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.NO_NODO_CERCA'));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonNotificationClicked($event){\r\n\t\tif (!this.mostrarEnviar()) {\r\n\t\t\tthis.router.navigate(['/mapas/editar', { id: this.alaSeleccionada.Id }]);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic asignarNodoMasCescano(idSeccion, x, y){\r\n\t\tconsole.log('---------------------------------');\r\n\t\tlet seccion;\r\n\t\tlet nodos = [];\r\n\r\n\t\tif (idSeccion === '') {\r\n\t\t\tseccion = this.seccionDefecto;\r\n\t\t\tnodos = seccion.NODOS;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tseccion = this.mapSectionsPlano.get(idSeccion);\r\n\t\t\tnodos = seccion.ENTIDAD.NODOS;\r\n\t\t}\r\n\r\n\t\t// d = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )\r\n\t\tlet distanciaMinima = Constantes.MAX_PESO;\r\n\t\tlet nodoMasCercano;\r\n\t\tnodos.forEach(nodo => {\r\n\t\t\tconst x1 = nodo.X;\r\n\t\t\tconst y1 = nodo.Y;\r\n\t\t\tconst x2 = x;\r\n\t\t\tconst y2 = y;\r\n\r\n\t\t\tconst d = Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) );\r\n\t\t\tconsole.log('--- Distancia a: ' + nodo.Nombre + ' = ' + d);\r\n\r\n\t\t\t// Utilizamos valores negativos para no tener que utilizar MaxValue para la inicializacion de distanciaMinima\r\n\t\t\tif (d < distanciaMinima) {\r\n\t\t\t\tdistanciaMinima = d;\r\n\t\t\t\tnodoMasCercano = nodo;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (!nodoMasCercano) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst idNodoMasCercano = nodoMasCercano.Id;\r\n\r\n\t\tconst nodoFormularioMasCercano = this.listaEntidades.filter(obj => obj.Id === idNodoMasCercano)[0];\r\n\r\n\t\t// Ya estaba asignado a ese nodo\r\n\t\tif (!nodoFormularioMasCercano) {\r\n\t\t\tconsole.log('--- No NODO mas cercza');\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.nodoSeleccionado = nodoFormularioMasCercano;\r\n\r\n\t\t\tthis.AvisoSeleccionado.nodos = [this.nodoSeleccionado];\r\n\t\t\tthis.AvisoSeleccionado.X = this.nodoSeleccionado.X;\r\n\t\t\tthis.AvisoSeleccionado.Y = this.nodoSeleccionado.Y;\r\n\t\t\tthis.AvisoSeleccionado.Latitud = this.nodoSeleccionado.Latitud;\r\n\t\t\tthis.AvisoSeleccionado.Longitud = this.nodoSeleccionado.Longitud;\r\n\r\n\t\t\tconsole.log('--- NODO mas cerca: ' + nodoMasCercano.Nombre);\r\n\t\t\tconsole.log('---------------------------------');\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tposicionarAviso(event){\r\n\t\tif (this.esEdicion ){\r\n\t\t\tthis.AvisoSeleccionado.ENTIDAD.X = event.mp[0]; // + this.offset_x_icono_contenido;\r\n\t\t\tthis.AvisoSeleccionado.ENTIDAD.Y = event.mp[1]; // + this.offset_y_icono_contenido;\r\n\r\n\t\t\tthis.avisosPlano[0].setX(this.AvisoSeleccionado.ENTIDAD.X);\r\n\t\t\tthis.avisosPlano[0].setY(this.AvisoSeleccionado.ENTIDAD.Y);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.AvisoSeleccionado.X = event.mp[0]; // + this.offset_x_icono_contenido;\r\n\t\t\tthis.AvisoSeleccionado.Y = event.mp[1]; // + this.offset_y_icono_contenido;\r\n\r\n\t\t\tthis.avisosPlano[0].setX(this.AvisoSeleccionado.X);\r\n\t\t\tthis.avisosPlano[0].setY(this.AvisoSeleccionado.Y);\r\n\t\t}\r\n\r\n\t\tthis.avisosPlano[0].setSimbolo('assets/itsoft/IconosSVG/email.svg');\r\n\t\tthis.avisosPlano[0].symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\tthis.avisosPlano[0].symbolFill = Constantes.contenidoSymbolFill;\r\n\t\tthis.avisosPlano[0].symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\tthis.avisosPlano[0].symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\tthis.avisosPlano[0].sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\tthis.avisosPlano[0].sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\tthis.avisosPlano[0].setIconHeight(Constantes.contenidoIconHeight);\r\n\t\tthis.avisosPlano[0].setIconWidth(Constantes.contenidoIconWidth);\r\n\t\tthis.avisosPlano[0].setIconAlign('center-center');\r\n\r\n\t\tthis.avisosPlano = [this.avisosPlano[0]];\r\n\t}\r\n\r\n\tpintarSecciones(){\r\n\t\tconst secciones = new Array();\r\n\t\tthis.mapSectionsPlano = new Map();\r\n\r\n\t\tthis.alaSeleccionada.ENTIDAD.SECCIONS.forEach(seccion => {\r\n\t\t\tif (!this.seccionDefecto || !seccion.CoordenadasPoligono) {\r\n\t\t\t\tthis.seccionDefecto = seccion;\r\n\t\t\t}\r\n\r\n\t\t\tconst seccionCoordenadasPoligono: Array> = (!seccion.CoordenadasPoligono ? null : JSON.parse(seccion.CoordenadasPoligono));\r\n\r\n\t\t\tconst seccionPlano = new SeccionPlano(seccion.Id, seccion.Nombre, seccionCoordenadasPoligono, seccion.ALA.PuntosSeccionScale , seccion.ALA.AristaSeccionScale);\r\n\t\t\tseccionPlano.ENTIDAD = seccion;\r\n\t\t\tseccionPlano.fill = seccion.Color;\r\n\t\t\tseccionPlano.stroke = seccion.Color;\r\n\t\t\tseccionPlano.strokeWidth = Constantes.seccionStrokeWidth;\r\n\t\t\tseccionPlano.hoverFill = seccion.Color;\r\n\t\t\tseccionPlano.hoverStroke = seccion.Color;\r\n\t\t\tsecciones.push(seccionPlano);\r\n\t\t\tthis.mapSectionsPlano.set(seccion.Id, seccionPlano);\r\n\r\n\t\t});\r\n\r\n\t\tthis.sectionsPlano = secciones;\r\n\t\tconsole.log('sections... ' + this.sectionsPlano.length);\r\n\r\n\t\t// Cuando no esta la pestaña de seleccionar blockUIPlano es undefined\r\n\t\tthis.blockUIPlano = document.getElementsByClassName('blockPosicionarNotificacion')[0] as HTMLElement;\r\n\t\tif (this.blockUIPlano && this.blockUIPlano.style.display === '') {\r\n\t\t\tthis.blockUIPlano.style.display = 'inherit';\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic alaSeleccionadaChange($event){\r\n\t\tthis.alaSeleccionada = $event.value;\r\n\t\tthis.seleccionarAla(this.alaSeleccionada);\r\n\t}\r\n\r\n//#endregion\r\n\r\n\r\n// Alertas Emergentes\r\nprotected showError = (mensaje) => {\r\n\tthis.msgs = [];\r\n\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n}\r\n\r\nprotected showSuccess = (mensaje) => {\r\n\tthis.msgs = [];\r\n\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n}\r\n// ---\r\n\r\n\r\nonFechaAceptar(dt, calendar, columna, tipo) {\r\n\tconsole.log(calendar);\r\n\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\tif (columna === 'fecha_alta') {\r\n\t\tthis.AvisoSeleccionado.FechaInicio = fecha;\r\n\t}\r\n\tif (columna === 'fecha_baja') {\r\n\t\tthis.AvisoSeleccionado.FechaFin = fecha;\r\n\t}\r\n\r\n\tthis.inputChanged(columna);\r\n\tcalendar.overlayVisible=false;\r\n}\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Mensajes/nuevo/nuevo.mensaje.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{\\\"Noticias.noticias\\\" | translate}}

      \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n
        \\r\\n\\r\\n
        \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/Noticias.component.html\n// module id = ../../../../../src/app/views/Noticias/Noticias.component.html\n// module chunks = main","\r\nimport { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { NgIf } from '@angular/common';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { Noticia } from './../../domain/Noticia';\r\nimport { GrowlModule, Message } from 'primeng/primeng';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { Router } from '@angular/router';\r\nimport { Constantes } from './../../domain/constantes';\r\nimport { isUndefined } from 'util';\r\nimport {TranslatePipe, TranslateService, LangChangeEvent} from 'ng2-translate';\r\nimport { AppComponent } from '../../app.component';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './Noticias.component.html',\r\n providers: [ConfirmationService]\r\n})\r\n\r\nexport class NoticiasComponent implements OnInit, OnDestroy {\r\n\r\n\tpublic EXPIRADO = 0;\r\n\tpublic PROXIMO = 1;\r\n\tpublic EXPIRA = 2;\r\n\tpublic ACTIVO = 3;\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tpublic msgs = [];\r\n\tpublic noticias: Noticia[] = [];\r\n\r\n\tpublic cols;\r\n\r\n\tpublic espacioSeleccionado: EspacioFormulario = new EspacioFormulario();\r\n\tpublic noticiaSeleccionado: Noticia = new Noticia();\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate router: Router,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate translate: TranslateService\r\n\t) {\r\n\t\tconsole.log('*** NoticiasComponent ***');\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Noticias.noticias') }\r\n\t\t]);\r\n\t\tthis.cols = [\r\n\t\t\t{ field: 'Imagen', header: this.translate.instant('Noticias.imagen') },\r\n\t\t\t{ field: 'Titulo', header: this.translate.instant('Noticias.titulo') },\r\n\t\t\t{ field: 'TextoContenido', header: this.translate.instant('Noticias.contenido') },\r\n\t\t\t{ field: 'ExpiracionMensaje', header: this.translate.instant('Noticias.estado') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tthis.entityManager.getEspacioConNoticiasById(idEspacio)\r\n\t\t.then(function (espacio: any) {\r\n\r\n\t\t\tif (espacio !== undefined) {\r\n\t\t\t\tthat.espacioSeleccionado.Nombre = espacio.Nombre;\r\n\t\t\t\tthat.espacioSeleccionado.Descripcion = espacio.Descripcion;\r\n\t\t\t\tthat.espacioSeleccionado.ENTIDAD = espacio;\r\n\r\n\t\t\t\treturn that.prepararNoticiasCell(that.espacioSeleccionado.ENTIDAD.NOTICIAS);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tconsole.log('*** prepararNoticiasCell OK ***');\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.appComponent.showError(e);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\taddNuevaNoticia() {\r\n\t\tthis.router.navigate(['/noticias/nueva', {}]);\r\n\t}\r\n\r\n\teditarNoticia(elemento: any) {\r\n\t\tthis.router.navigate(['/noticias/nueva', { id: this.noticiaSeleccionado.ENTIDAD.Id }]);\r\n\t}\r\n\r\n\teliminarNoticia(elemento: any) {\r\n\t\tconst that = this;\r\n\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.entityManager.deleteNOTICIA(elemento.ENTIDAD);\r\n\t\t\t\tthis.entityManager.saveChanges()\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t\tthat.noticias = that.noticias.filter((val, i) => val.ENTIDAD.Id !== elemento.ENTIDAD.Id);\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tmostrarEditar(noticia) {\r\n\t\tthis.noticiaSeleccionado = noticia;\r\n\t\tthis.noticiaSeleccionado.MostrarEdicion = true;\r\n\t}\r\n\r\n\tocultarEditar(noticia) {\r\n\r\n\t\tnoticia.MostrarEdicion = false;\r\n\t}\r\n\r\n\tprepararNoticiasCell(noticias): Noticia[] {\r\n\t\tconst that = this;\r\n\t\tthis.noticias = [];\r\n\t\tconst promises: any[] = [];\r\n\t\tconst token = that.authService.getToken();\r\n\r\n\t\tnoticias.forEach(not => {\r\n\r\n\t\t\tconst noticia = new Noticia(not);\r\n\r\n\t\t\tnoticia.Imagen = this.authService.getFotoPorDefecto();\r\n\t\t\t// FOTOS\r\n\t\t\tconst ultima = noticia.ENTIDAD.FOTOS.length - 1;\r\n\t\t\tif (ultima >= 0) {\r\n\t\t\t\tif (noticia.ENTIDAD.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\tnoticia.Imagen = noticia.ENTIDAD.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tnoticia.Imagen = environment.urlBaseFotos + noticia.ENTIDAD.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tnoticia.Imagen = this.authService.getFotoPorDefecto();\r\n\t\t\t}\r\n\r\n\r\n\t\t\tthat.noticias.push(noticia);\r\n\t\t});\r\n\r\n\t\treturn that.noticias;\r\n\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/Noticias.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/NoticiasParent.component.html\n// module id = ../../../../../src/app/views/Noticias/NoticiasParent.component.html\n// module chunks = main","\r\nimport { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\ttemplateUrl: './NoticiasParent.component.html'\r\n})\r\n\r\nexport class NoticiasParentComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tconsole.log('*** NoticiasParentComponent ***');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/NoticiasParent.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t

      Nueva Noticia

      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{item.value.ENTIDAD.Codigo}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
      {{idioma.value.title}}
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t[class.input-requerido]=\\\"tituloError\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\tpInputText>\\r\\n\\t\\t\\t\\t\\t\\t
      {{'Noticias.campoobligatorio' | translate}}
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\tpInputText\\r\\n\\t\\t\\t\\t\\t\\t\\tid=\\\"Descripcion\\\" >\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{'Noticias.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{'Noticias.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/nuevo/nueva.noticia.component.html\n// module id = ../../../../../src/app/views/Noticias/nuevo/nueva.noticia.component.html\n// module chunks = main","import { IdiomaService } from './../../../providers/idioma/idioma.service';\r\nimport { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { Message } from 'primeng/primeng';\r\nimport { Noticia, NoticiaIdiomaFormulario } from '../../../domain/Noticia';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { FileUpload } from 'primeng/primeng';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../../breadcrumb.service';\r\nimport { Idioma } from '../../../domain/Idioma';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { IdiomaCalendario } from '../../../domain/IdiomaCalendatio';\r\nimport { ImageCropperComponent, CropperSettings } from 'ngx-img-cropper';\r\nimport { Constantes } from '../../../domain/constantes';\r\nimport { AppComponent } from '../../../app.component';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './nueva.noticia.component.html',\r\n providers: [ConfirmationService]\r\n})\r\n\r\nexport class NuevaNoticiaComponent implements OnInit, OnDestroy {\r\n\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\tmsgFoto: Message[] = [];\r\n\tnoticiaSeleccionada: Noticia = new Noticia();\r\n\tidNoticia: string = null;\r\n\tedicion: boolean;\r\n\tselectorImagen: FileUpload;\r\n\timagenSeleccionada: any;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tpublic isValid = true;\r\n\tpublic tituloError = false;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\tpublic imagenError = false;\r\n\r\n\t\t/* IMAGE CROPPER*/\r\n\t\tdata: any;\r\n\t\tcropperSettings: CropperSettings;\r\n\t\timageCropperVisible = false;\r\n\r\n\t\t@ViewChild('cropper', undefined)\r\n\t\tcropper: ImageCropperComponent;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService\r\n\t) {\r\n\t\tthis.cropperSettings = new CropperSettings();\r\n\t\tthis.cropperSettings.width = 450;\r\n\t\tthis.cropperSettings.height = 100;\r\n\t\tthis.cropperSettings.croppedWidth = 450;\r\n\t\tthis.cropperSettings.croppedHeight = 100;\r\n\t\tthis.cropperSettings.canvasWidth = 450;\r\n\t\tthis.cropperSettings.canvasHeight = 300;\r\n\t\tthis.cropperSettings.noFileInput = true;\r\n\t\tthis.cropperSettings.fileType = \"image/webp\";\r\n\t\tthis.cropperSettings.minWithRelativeToResolution = true;\r\n\r\n\t\tthis.data = {};\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Noticias.noticias'), routerLink: ['/noticias'] },\r\n\t\t\t{ label: this.translate.instant('Noticias.nuevanoticia') }\r\n\t\t]);\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\r\n\t\tthis.route.params\r\n\t\t.subscribe(params => {\r\n\t\t\tthis.idNoticia = params['id'];\r\n\t\t});\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconsole.log('*** NoticiasNuevaComponent ngOnInit ***');\r\n\t\tconst that = this;\r\n\t\tif (this.idNoticia !== null && this.idNoticia !== '' && this.idNoticia !== undefined) {\r\n\t\t\tconsole.log('*** idNoticia NOT NULL ***');\r\n\t\t\tlet includes = 'FOTOS, ';\r\n\t\t\tincludes = includes + 'IDIOMAS';\r\n\r\n\t\t\tthis.edicion = true;\r\n\t\t\tthis.entityManager.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t\treturn that.entityManager.getNoticiaById(that.idNoticia, includes);\r\n\t\t\t})\r\n\t\t\t.then(function(noticias: any){\r\n\r\n\t\t\t\tconst noticia = noticias[0];\r\n\r\n\t\t\t\tthat.noticiaSeleccionada.Idiomas = that.idiomaService.getMapNoticiaIdiomas(noticia.IDIOMAS);\r\n\r\n\t\t\t\tthat.noticiaSeleccionada.Titulo = noticia.Titulo;\r\n\t\t\t\tthat.noticiaSeleccionada.TextoContenido = noticia.TextoContenido;\r\n\t\t\t\tthat.noticiaSeleccionada.FechaAlta = noticia.FechaAlta;\r\n\t\t\t\tthat.noticiaSeleccionada.FechaBaja = noticia.FechaBaja;\r\n\t\t\t\tthat.noticiaSeleccionada.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\tthat.noticiaSeleccionada.ENTIDAD = noticia;\r\n\r\n\t\t\t\t// FOTOS\r\n\t\t\t\tnoticia.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\tconst ultima = noticia.ENTIDAD.FOTOS.length - 1;\r\n\t\t\t\tif (ultima >= 0) {\r\n\t\t\t\t\tif (noticia.ENTIDAD.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\t\tnoticia.Imagen = noticia.ENTIDAD.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tnoticia.Imagen = environment.urlBaseFotos + noticia.ENTIDAD.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnoticia.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconsole.log('*** idNoticia NULL ***');\r\n\r\n\t\t\tthis.entityManager.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t\tthat.noticiaSeleccionada.Idiomas = that.idiomaService.newMapNoticiaIdiomas(that.idiomas);\r\n\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.edicion = false;\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\t/* FileUpload */\r\n\tonFileSelect($event, fileUploadComponent) {\r\n\t\tthis.msgFoto = [];\r\n\t\tthis.imagenSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect($event?, fileUploadComponent?){\r\n\t\tthis.imagenSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* Validar */\r\n\tinputChanged(value) {\r\n\r\n\t\tconsole.log('Implementar: Comprobar todas las noticias del mapNoticiaIdioma');\r\n\t\tconst p1Error = this.noticiaSeleccionada.Titulo === '' || this.noticiaSeleccionada.Titulo === undefined;\r\n\t\tconst p2Error = this.noticiaSeleccionada.FechaAlta === '' || this.noticiaSeleccionada.FechaAlta === undefined || this.noticiaSeleccionada.FechaAlta === null;\r\n\t\tconst p3Error = false; // this.noticiaSeleccionada.FechaBaja === '' || this.noticiaSeleccionada.FechaBaja === undefined || this.noticiaSeleccionada.FechaBaja === null;\r\n\t\tconst p4Error = this.noticiaSeleccionada.Imagen === undefined && this.imagenSeleccionada === undefined;\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.imagenError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.imagenError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar titulo\r\n\t\telse if (value === 'titulo'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_alta\r\n\t\telse if (value === 'fecha_alta'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_baja\r\n\t\telse if (value === 'fecha_baja'){\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst noticiaIdioma = this.noticiaSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tnoticiaIdioma.Titulo = this.noticiaSeleccionada.Titulo;\r\n\t\tnoticiaIdioma.TextoContenido = this.noticiaSeleccionada.TextoContenido;\r\n\t\tthis.noticiaSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, noticiaIdioma);\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.edicion;\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\t\tconst p1 = this.tituloError;\r\n\t\tconst p2 = this.fAltaError;\r\n\t\tconst p3 = this.fBajaError;\r\n\t\tconst p4 = this.imagenError;\r\n\r\n\t\tif (p1 || p2 || p3 || p4) {\r\n\t\t\tthis.isValid = false;\r\n\t\t\tif (p4) {\r\n\t\t\t\tif (this.imagenError) {\r\n\t\t\t\t\tthis.msgFoto.push({severity: 'error', summary: this.translate.instant('Noticias.imagenobligatoria'), detail: this.translate.instant('Noticias.debeelegirimagen')});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_CANCELAR'),\r\n accept: () => {\r\n\t\t\t\tthis.router.navigate(['/noticias']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Cancelado de Noticia.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\tpublic guardar(): any {\r\n\r\n\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR'),\r\n accept: () => {\r\n\t\t\t\tif (this.validar()) {\r\n\t\t\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\t\t\tthis.guardarNuevo();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.guardarEdicion();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Guardado de Contenido.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\tpublic guardarNuevo() {\r\n\t\tconst that = this;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\treturn this.entityManager.newNOTICIA()\r\n\t\t.then(function (oNoticia) {\r\n\r\n\t\t\toNoticia.IDIOMAS.forEach(NOTICIA_IDIOMA => {\r\n\t\t\t\tconst aux = that.noticiaSeleccionada.Idiomas.get(NOTICIA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tNOTICIA_IDIOMA.Nombre = aux.Titulo;\r\n\t\t\t\tNOTICIA_IDIOMA.Descripcion = aux.TextoContenido;\r\n\t\t\t});\r\n\r\n\t\t\tconst espacioIdioma = that.noticiaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.noticiaSeleccionada.Titulo = espacioIdioma.Titulo ? espacioIdioma.Titulo : '';\r\n\t\t\tthat.noticiaSeleccionada.TextoContenido = espacioIdioma.TextoContenido ? espacioIdioma.TextoContenido : '';\r\n\r\n\t\t\toNoticia.IdEspacio = that.authService.getIdEspacio();\r\n\t\t\toNoticia.Titulo = that.noticiaSeleccionada.Titulo;\r\n\t\t\toNoticia.TextoContenido = that.noticiaSeleccionada.TextoContenido;\r\n\t\t\toNoticia.FechaAlta = that.noticiaSeleccionada.FechaAlta;\r\n\t\t\toNoticia.FechaBaja = that.noticiaSeleccionada.FechaBaja;\r\n\r\n\t\t\tthat.noticiaSeleccionada.ENTIDAD = oNoticia;\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess('OK');\r\n\t\t\tthat.router.navigate(['/noticias']);\r\n\t\t\treturn 'OK';\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic guardarEdicion() {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\tthis.guardarMultiIdioma()\r\n\t\t.then(function (){\r\n\t\t\tconst espacioIdioma = that.noticiaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.noticiaSeleccionada.Titulo = espacioIdioma.Titulo ? espacioIdioma.Titulo : '';\r\n\t\t\tthat.noticiaSeleccionada.TextoContenido = espacioIdioma.TextoContenido ? espacioIdioma.TextoContenido : '';\r\n\r\n\t\t\tthis.noticiaSeleccionada.ENTIDAD.Titulo = that.noticiaSeleccionada.Titulo;\r\n\t\t\tthis.noticiaSeleccionada.ENTIDAD.TextoContenido = that.noticiaSeleccionada.TextoContenido;\r\n\t\t\tthis.noticiaSeleccionada.ENTIDAD.FechaAlta = that.noticiaSeleccionada.FechaAlta;\r\n\t\t\tthis.noticiaSeleccionada.ENTIDAD.FechaBaja = that.noticiaSeleccionada.FechaBaja;\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (){\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess('OK');\r\n\t\t\tthat.router.navigate(['/noticias']);\r\n\t\t\treturn 'OK';\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.noticiaSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newNOTICIA_IDIOMA(this.noticiaSeleccionada)\r\n\t\t.then(function(NOTICIA_IDIOMAs){\r\n\r\n\t\t\tNOTICIA_IDIOMAs.forEach(NOTICIA_IDIOMA => {\r\n\t\t\t\tconst aux = that.noticiaSeleccionada.Idiomas.get(NOTICIA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tNOTICIA_IDIOMA.Nombre = aux.Titulo;\r\n\t\t\t\t\tNOTICIA_IDIOMA.Descripcion = aux.TextoContenido;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tpublic subirFotos(){\r\n\t\t// PREPARAMOS LA SUBIDA DE LAS FOTOS\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\r\n\t\tif (that.imagenSeleccionada !== undefined) {\r\n\t\t\t/*\r\n\t\t\tthis.noticiaSeleccionada.ENTIDAD.FOTOS.forEach(foto => {\r\n\t\t\t\tthis.entityManager.deleteEntity(foto);\r\n\t\t\t});\r\n\r\n\t\t\tpromises.push(that.enviarFoto('IdNoticia', that.noticiaSeleccionada.ENTIDAD.Id, that.imagenSeleccionada));\r\n\t\t\t*/\r\n\r\n\t\t\tlet idFoto = null;\r\n\t\t\tif (that.noticiaSeleccionada.ENTIDAD && that.noticiaSeleccionada.ENTIDAD.FOTOS) {\r\n\t\t\t\tconst ultima = that.noticiaSeleccionada.ENTIDAD.FOTOS.length - 1;\r\n\t\t\t\tconst fotoUpdate = that.noticiaSeleccionada.ENTIDAD.FOTOS[ultima];\r\n\t\t\t\tidFoto = fotoUpdate ? fotoUpdate.Id : null;\r\n\t\t\t}\r\n\t\t\tpromises.push(that.enviarFoto('IdNoticia', that.noticiaSeleccionada.ENTIDAD.Id, that.imagenSeleccionada, idFoto));\r\n\t\t}\r\n\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\tenviarFoto(entidad, idEntidad, imagen, idFoto = null) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsSubidaFoto(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic eliminar() {\r\n\t\tconst that = this;\r\n\t\tthis.eliminarSeleccionado()\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess('OK');\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic eliminarSeleccionado() {\r\n\t\tconst that = this;\r\n\t\tif (this.noticiaSeleccionada !== undefined) {\r\n\t\t\tthis.entityManager.deleteEntity(this.noticiaSeleccionada);\r\n\t\t\treturn this.entityManager.saveChanges();\r\n\t\t}\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet noticiaIdioma = this.noticiaSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!noticiaIdioma) {\r\n\r\n\t\t\tnoticiaIdioma = new NoticiaIdiomaFormulario();\r\n\r\n\t\t\tthis.noticiaSeleccionada.Idiomas.set(idioma.value, noticiaIdioma);\r\n\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.noticiaSeleccionada.Titulo = noticiaIdioma.Titulo;\r\n\t\tthis.noticiaSeleccionada.TextoContenido = noticiaIdioma.TextoContenido;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\t/* Image Cropper */\r\n\tfileChangeListener($event) {\r\n\t\tthis.imageCropperVisible = true;\r\n\t\tconst image: any = new Image();\r\n\t\tconst file: File = $event.target.files[0];\r\n\t\tconst nombre = file.name;\r\n\t\tconst tipo = file.type;\r\n\t\tconst myReader: FileReader = new FileReader();\r\n\t\tconst that = this;\r\n\t\tmyReader.onloadend = function (loadEvent: any) {\r\n\t\t\timage.src = loadEvent.target.result;\r\n\t\t\tthat.cropper.setImage(image);\r\n\t\t\tthat.sws.base64ToFile(image.src, nombre, tipo)\r\n\t\t\t.then(function(fotoFile){\r\n\t\t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\t\t});\r\n\t\t};\r\n\t\tmyReader.readAsDataURL(file);\r\n\t}\r\n\r\n\tasignarFotoCropp($event){\r\n\t\tconst that = this;\r\n\t\tthis.sws.base64ToFile(this.data.image, that.imagenSeleccionada.name)\r\n\t\t.then(function(fotoFile){\r\n\t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\t\tthat.imageCropperVisible = false;\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/Noticias/nuevo/nueva.noticia.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n Ordenar Rutas Sugeridas\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n {{'RutasSugeridas.rutas' | translate}}: {{rutasSugeridas.length}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field].length}}\\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n

      {{'RutasSugeridas.rutassugeridas' | translate}}

      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n {{'RutasSugeridas.rutas' | translate}}: {{rutasSugeridas.length}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{ rutaEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ rutaEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n
        \\r\\n {{getMensajesExpirados(rowData[col.field]).label | translate}}\\r\\n
        \\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n {{rowData[col.field].length}}\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n {{previewDescripcion(rowData[col.field])}}\\r\\n
        \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridas.component.html\n// module id = ../../../../../src/app/views/RutasSugeridas/RutasSugeridas.component.html\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\nimport { RutaSugerida } from './../../domain/RutaSugerida';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { AppComponent } from '../../app.component';\r\nimport { environment } from '../../../environments/environment';\r\nimport { nodeValue } from '@angular/core/src/view';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { NuevaRutaSugeridaComponent } from './nuevo/nueva.rutaSugerida.component';\r\nimport { Contenido } from '../../domain/Contenido';\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './RutasSugeridas.component.html',\r\n providers: [ConfirmationService]\r\n})\r\nexport class RutasSugeridasComponent implements OnInit, OnDestroy {\r\n\t@ViewChild('dt') dt_rutas;\r\n\t@ViewChild('dt_destacados') dt_rutas_destacadas;\r\n\t@ViewChild('NuevaRutaSugeridaComponent') hijo;\r\n\t\r\n\r\n\tpublic Estado = [\r\n\t\t{\r\n\t\t\ttipo: 'TODOS',\r\n\t\t\tvalue: 4,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'RutasSugeridas.estadoTodos'\r\n\t\t},\r\n\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'RutasSugeridas.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all', 'ui-messages-success'],\r\n\t\t\tlabel: 'RutasSugeridas.estadoActivo'\r\n\t\t},\r\n\t\t\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'RutasSugeridas.estadoProximo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'RutasSugeridas.estadoExpirado'\r\n\t\t}\r\n\t];\r\n\r\n\r\n\t//public mensajesExpiradosMod = this.mensajesExpirados[2];\r\n\t//public Estado = [];\r\n\tpublic EstadoMod = this.Estado[2];\r\n\t\r\n\t\r\n\tpublic msgs = [];\r\n\tpublic rutasSugeridas: RutaSugerida[] = [];\r\n\trutasSugeridasDestacar: RutaSugerida[] = [];\r\n\r\n\tpublic cols;\r\n\tpublic cols_destacar;\r\n\r\n\r\n\tspinner: HTMLElement;\r\n\r\n\tpublic espacioSeleccionado: EspacioFormulario = new EspacioFormulario();\r\n\tpublic rutaSugeridaSeleccionado: RutaSugerida = new RutaSugerida();\r\n\tprivate nuevaRutaSugeridaComponent: NuevaRutaSugeridaComponent;\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\tdisplayDialogPrioridadDestacar: boolean;\r\n\trutaselec: any;\r\n\r\n\tpermiteContenidos: boolean;\r\n\r\n\t\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService\r\n\t\t\r\n\t) {\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('RutasSugeridas.rutassugeridas') }\r\n\t\t]);\r\n\t\t/*this.nuevaRutaSugeridaComponent.currentMenu\r\n\t\t.subscribe(menu => {\r\n\t\t\tthis.rutaselec = menu;\r\n\t\t});*/\r\n\t\tconsole.log('*** RutaSugeridasComponent ***');\r\n\r\n\t\tthis.cols = [\r\n\t\t\t{ field: 'Imagen', header: this.translate.instant('RutasSugeridas.imagen') },\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('RutasSugeridas.nombre') },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('RutasSugeridas.descripcion') },\r\n\t\t\t{ field: 'expirado', header: this.translate.instant('RutasSugeridas.estado') },\r\n\t\t\t{ field: 'RutaHasContenidos', header: this.translate.instant('RutasSugeridas.nodosasignados') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.cols_destacar = [\r\n\t\t\t{ field: 'Drag', header: '' },\r\n\t\t\t{ field: 'Imagen', header: this.translate.instant('RutasSugeridas.imagen') },\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('RutasSugeridas.nombre') },\r\n\t\t\t//{ field: 'Descripcion', header: this.translate.instant('RutasSugeridas.descripcion') },\r\n\t\t\t{ field: 'expirado', header: this.translate.instant('RutasSugeridas.estado')},\r\n\t\t\t{ field: 'RutaHasContenidos', header: this.translate.instant('RutasSugeridas.nodosasignados')},\r\n\t\t\t{ field: 'Destacado', header: '' },\r\n\t\t];\r\n\t\t\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tthis.entityManager.getEspacioById(idEspacio, 'RUTAS_SUGERIDA.FOTOS, RUTAS_SUGERIDA.RUTA_has_CONTENIDOS')\r\n\t\t.then(function (espacio: any) {\r\n\t\t\tconsole.log(espacio);\r\n\t\t\tif (espacio !== undefined) {\r\n\t\t\t\tthat.espacioSeleccionado.Nombre = espacio.Nombre;\r\n\t\t\t\tthat.espacioSeleccionado.Descripcion = espacio.Descripcion;\r\n\t\t\t\tthat.espacioSeleccionado.ENTIDAD = espacio;\r\n\t\t\t\tconst rutas = that.espacioSeleccionado.ENTIDAD.RUTAS_SUGERIDA;\r\n\t\t\t\r\n\t\t\t\treturn that.prepararRutaSugeridasCell(rutas);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tconsole.log('*** prepararRutaSugeridasCell OK ***');\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.appComponent.showError(e);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\t\r\n\tonRowReorder(event){\r\n\t\tconsole.log('-- Rutas Reordenadas.');\r\n\t\tconsole.log(event);\r\n\t\t//this.rutasSugeridasDestacar = this.moveArrayItemToNewIndex(this.rutasSugeridasDestacar, event.dragIndex, event.dropIndex);\r\n\t\t//this.rutasSugeridas = this.moveArrayItemToNewIndex(this.rutasSugeridas, event.dragIndex, event.dropIndex);\r\n\r\n\t}\r\n\r\n\r\n\tmoveArrayItemToNewIndex(arr, old_index, new_index) {\r\n\t\tif (new_index >= arr.length) {\r\n\t\t\tlet k = new_index - arr.length + 1;\r\n\t\t\twhile (k--) {\r\n\t\t\t\tarr.push(undefined);\r\n\t\t\t}\r\n\t\t}\r\n\t\tarr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\r\n\t\treturn arr; \r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\taddNuevaRutaSugerida() {\r\n\t\tthis.router.navigate(['/rutas-sugeridas/nueva', {}]);\r\n\t}\r\n\r\n\teditarRutaSugerida(elemento: any) {\r\n\t\tif(this.rutaSugeridaSeleccionado.FechaBaja !== null){\r\n\t\t\tthis.permiteContenidos = true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.permiteContenidos = false;\r\n\t\t}\r\n\t\tthis.router.navigate(['/rutas-sugeridas/editar', { id: this.rutaSugeridaSeleccionado.ENTIDAD.Id }]);\r\n\t}\r\n\r\n\tgetMensajesExpirados(_val) {\r\n\t\tfor (const i in this.Estado) {\r\n\t\t\tif (this.Estado[i].value === _val) {\r\n\t\t\t\treturn this.Estado[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tfilterEstado(event,col){\r\n\t\tconsole.log(event.value)\r\n\t\tconsole.log(col)\r\n\t\tconsole.log(\"Se va a filtrar por estado\");\r\n\t\tconsole.log(this.dt_rutas)\r\n\t\tif(event.value.value !== 4){\r\n\t\t\tthis.dt_rutas.filter(event.value.value, col.field, 'equals');\r\n\t\t}else{\r\n\t\t\tthis.dt_rutas.reset();\r\n\t\t}\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t//this.filtro.where.ExpiracionMensaje = event.value;\r\n\t\t//this.filtro.page = 0;\r\n\t\t//this.guardarfiltrado();\r\n\t\t//this.loadContenido();\r\n\t}\r\n\r\n\r\n\teliminarRutaSugerida(elemento: any) {\r\n\t\tconst that = this;\r\n\t\tthis.authService.setRutaSugerida(elemento.Id);\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\t\r\n\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\t\t\r\n\t\t\t\treturn that.entityManager.deleteRUTA(elemento.ENTIDAD)\r\n\t\t\t\t\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t\tthat.rutasSugeridas = that.rutasSugeridas.filter((val, i) => val.ENTIDAD.Id !== elemento.ENTIDAD.Id);\r\n\t\t\t\t\treturn that.dt_rutas.reset();\r\n\t\t\t\t})\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t\t\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t}\r\n\r\n\tmostrarEditar(rutaSugerida) {\r\n\t\tif (this.permisos.RutaSugerida_editar_ruta !== 0){\r\n\t\t\tthis.rutaSugeridaSeleccionado = rutaSugerida;\r\n\t\t\tthis.rutaSugeridaSeleccionado.MostrarEdicion = true;\r\n\t\t}\r\n\t}\r\n\r\n\tocultarEditar(rutaSugerida) {\r\n\t\tif (this.permisos.RutaSugerida_editar_ruta !== 0){\r\n\t\t\trutaSugerida.MostrarEdicion = false;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tprepararRutaSugeridasCell(RUTAS_SUGERIDAS): any[] {\r\n\t\tconst that = this;\r\n\t\tthis.rutasSugeridas = [];\r\n\t\tthis.rutasSugeridasDestacar = [];\r\n\t\tconst promises: any[] = [];\r\n\t\t// const token = that.authService.getToken();\r\n\r\n\t\tRUTAS_SUGERIDAS = RUTAS_SUGERIDAS.sort( (one: RutaSugerida, two: RutaSugerida) => {\r\n\t\t\treturn one.Prioridad > two.Prioridad ? 1 : -1;\r\n\t\t});\r\n\r\n\t\tRUTAS_SUGERIDAS.forEach(RUTA_SUGERIDA => {\r\n\t\t\tconst rutaSugerida = new RutaSugerida(RUTA_SUGERIDA);\r\n\t\t\tconst ultima = rutaSugerida.ENTIDAD.FOTOS.length - 1;\r\n\t\t\tif (ultima >= 0) {\r\n\t\t\t\tif (rutaSugerida.ENTIDAD.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\trutaSugerida.Imagen = rutaSugerida.ENTIDAD.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\trutaSugerida.Imagen = environment.urlBaseFotos + rutaSugerida.ENTIDAD.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trutaSugerida.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t}\r\n\r\n\t\t\tthat.rutasSugeridas.push(rutaSugerida);\r\n\t\t\r\n\t\t\tif (rutaSugerida && rutaSugerida.PrioridadDestacado !== 0) {\r\n\t\t\t\tthat.rutasSugeridasDestacar.push(rutaSugerida);\r\n\t\t\t\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\tconsole.log(that.rutasSugeridas)\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\t//función para solo mostrar los primeros 50 caracteres del campo descrpción en la tabla de Rutas Sugeridas\r\n\tpreviewDescripcion(descripcion){\r\n\t\treturn descripcion.substring(0,49) + '...';\r\n\t}\r\n\t\r\n\t//#region DESTACADOS\r\n\tmostrarFormularioPrioridadDestacar(elementoAsociado){\r\n\t\t\r\n\t\tthis.displayDialogPrioridadDestacar = true;\r\n\t}\r\n\r\n\tocultarFormularioPrioridadDestacar(){\r\n\t\t\r\n\t\tthis.displayDialogPrioridadDestacar = false;\r\n\t}\r\n\r\n\tonMostrarFormularioPrioridadDestacar(evento){\r\n\t\t\r\n\t\t//this.dt_rutas_destacadas.filter(\"Activo\", this.cols_destacar[3].field);\r\n\t\t//this.dt_rutas.filter(\"Activo\", this.cols_destacar[3].field);\r\n\t\t\r\n\t}\r\n\r\n\tonOcultarFormularioPrioridadDestacar(event){\r\n\t\t\r\n\t}\r\n\r\n\tguardarDestacados(){\r\n\r\n\t\tlet i = 1;\r\n\t\tconst Destacar_aux = [];\r\n\r\n\t\tthis.rutasSugeridas.forEach(ruta => {\r\n\t\t\tconst destacado = this.rutasSugeridasDestacar.filter( x => x.Id === ruta.Id)[0];\r\n\t\t\tif (destacado !== undefined) {\r\n\r\n\t\t\t\truta.PrioridadDestacado = i;\r\n\t\t\t\truta.Prioridad = i;\r\n\r\n\t\t\t\truta.ENTIDAD.PrioridadDestacado = i;\r\n\t\t\t\truta.ENTIDAD.Prioridad = i;\r\n\r\n\t\t\t\tDestacar_aux.push(ruta);\r\n\t\t\t\ti = i + 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ti = Destacar_aux.length + 1;\r\n\t\tthis.rutasSugeridas.forEach(ruta => {\r\n\t\t\tconst destacado = Destacar_aux.filter( x => x.Id === ruta.Id)[0];\r\n\r\n\t\t\t// No es destacado\r\n\t\t\tif (destacado === undefined) {\r\n\t\t\t\truta.PrioridadDestacado = 0;\r\n\t\t\t\truta.Prioridad = i;\r\n\r\n\t\t\t\truta.ENTIDAD.PrioridadDestacado = 0;\r\n\t\t\t\truta.ENTIDAD.Prioridad = i;\r\n\r\n\t\t\t\ti = i + 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t\r\n\t\tthis.entityManager.saveChanges();\r\n\r\n\t\tthis.ocultarFormularioPrioridadDestacar();\r\n\t\t\r\n\t}\r\n\r\n\tcancelarDestacados(){\r\n\t\tconst RUTAS = this.rutasSugeridas.map( x => x.ENTIDAD );\r\n\r\n\t\tthis.prepararRutaSugeridasCell(RUTAS);\r\n\t\t\r\n\t\tthis.ocultarFormularioPrioridadDestacar();\r\n\t\t\r\n\t\r\n\t}\r\n\t//#endregion\r\n\r\n\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridas.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridasParent.component.html\n// module id = ../../../../../src/app/views/RutasSugeridas/RutasSugeridasParent.component.html\n// module chunks = main","import { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\ttemplateUrl: './RutasSugeridasParent.component.html'\r\n})\r\n\r\nexport class RutasSugeridasParentComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tconsole.log('*** RutasSugeridasParentComponent ***');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/RutasSugeridasParent.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n {{'RutasSugeridas.listanodos' | translate}}\\r\\n
      \\r\\n \\r\\n {{'RutasSugeridas.contenidos' | translate}}: {{filtro.total}}\\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n {{getMensajesExpirados(rowData[col.field]).label |translate}}\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field].Nombre}}\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{'RutasSugeridas.nuevaruta' | translate}}

      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t[(ngModel)]=\\\"this.rutaSeleccionada.Nombre\\\"\\r\\n\\t\\t\\t\\t\\t(ngModelChange)=\\\"inputChanged('nombre')\\\"\\r\\n\\t\\t\\t\\t\\t[class.input-requerido]=\\\"nombreError\\\" pInputText>\\r\\n\\t\\t\\t\\t\\t
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t[(ngModel)]=\\\"this.rutaSeleccionada.Descripcion\\\"\\r\\n\\t\\t\\t\\t\\t\\tpInputText>\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n
      {{'Formularios.campoobligatorio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n

      {{ 'Contenidos.foto' | translate }}

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n {{'RutasSugeridas.listanodosAsignados' | translate}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n {{'RutasSugeridas.contenidos' | translate}}: {{this.rutaSeleccionada.Contenidos.length}}\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n {{rowData[col.field]}}\\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n {{rowData[col.field] | date:this.translate.instant('General.fermatofechapipe')}}\\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n {{rowData[col.field] | date:this.translate.instant('General.fermatofechapipe')}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/nuevo/nueva.rutaSugerida.component.html\n// module id = ../../../../../src/app/views/RutasSugeridas/nuevo/nueva.rutaSugerida.component.html\n// module chunks = main","import { IdiomaCalendario } from '../../../domain/IdiomaCalendatio';\r\nimport { IdiomaService } from '../../../providers/idioma/idioma.service';\r\nimport { Component, OnInit, OnDestroy, ViewChild, EventEmitter, Output, Input } from '@angular/core';\r\nimport { ServiciosWebServiceProvider } from '../../../providers/web-service-service/servicios-web-service';\r\nimport { AuthenticationService } from '../../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { Message } from 'primeng/primeng';\r\nimport { RutaSugerida, RutaSugeridaIdiomaFormulario } from '../../../domain/RutaSugerida';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { Contenido } from '../../../domain/Contenido';\r\nimport { BreadcrumbService } from '../../../breadcrumb.service';\r\nimport { Idioma } from '../../../domain/Idioma';\r\nimport {TranslateService} from 'ng2-translate';\r\nimport { ImageCropperComponent, CropperSettings } from 'ngx-img-cropper';\r\nimport { Constantes } from '../../../domain/constantes';\r\nimport { PermisosService, Permisos } from '../../../providers/authentication/permisos.service';\r\nimport { Predicate } from 'breeze-client';\r\nimport { AppComponent } from '../../../app.component';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\nimport { Console } from 'console';\r\n\r\n\r\nconst FILTRO_INI = JSON.stringify({\r\n\twhere: {\r\n\t\tTitulo: '',\r\n\t\testado: 4,\r\n\t\t// expirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\tDesde: '',\r\n\t\tHasta: '',\r\n\t\tElementoAsignado: '',\r\n\t\tIdAlternativo: '',\r\n\t\tTipologia: ''\r\n\t},\r\n\torder: 'Titulo DESC',\r\n\ttop: 10,\r\n\tpage: 0,\r\n\ttotal: 0\r\n});\r\n// Necesario para mostrar mensajes con esta plantilla\r\n@Component({\r\n\ttemplateUrl: './nueva.rutaSugerida.component.html',\r\n\tproviders: [ConfirmationService],\r\n\tselector: 'child-component',\r\n\t// , declarations: [ImageCropperComponent]\r\n})\r\n\r\nexport class NuevaRutaSugeridaComponent implements OnInit, OnDestroy {\r\n\r\n\t@ViewChild('dt_asignados') dt_asignados;\r\n\t@ViewChild('dt_no_asignados') dt_no_asignados;\r\n\t@ViewChild('pg_no_asignados') pg_no_asignados;\r\n\r\n\r\n\r\n\tspinner: HTMLElement;\r\n\tedicion: boolean;\r\n\tmsgsContenidos: Message[] = [];\r\n\tmsgs: Message[] = [];\r\n\tmsgFoto: Message[] = [];\r\n\tmsgAsignarContenido: Message[] = [];\r\n\tidRuta: string = null;\r\n\ttriggerPageChange: boolean = true;\r\n\r\n\tpublic filtro = JSON.parse(FILTRO_INI);\r\n\r\n\timagenSeleccionada: any;\r\n\trutaSeleccionada: RutaSugerida = new RutaSugerida();\r\n\r\n\tcontenidosTodos: Contenido[] = [];\r\n\tcontenidosFiltrados: Contenido[] = [];\r\n\tcontenidoSeleccionado: any;\r\n\tpublic opcion_desde_selected;\r\n\tpublic opcion_hasta_selected;\r\n\t/* Validacion */\r\n\tpublic isValid = true;\r\n\tpublic nombreError = false;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\tpublic imagenError = false;\r\n\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tmapRutaIdioma: Map; // Mapa con la misma noticia pero en distintos idiomas.\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\t/* COLUMNAS TABLAS */\r\n\tcolsTodos: any[] = [];\r\n\tcolsAsignados: any[] = [];\r\n\r\n\tpublic displayDialog: boolean = false;\r\n\tpublic apareceBoton: boolean = false;\r\n\r\n\r\n\t/* IMAGE CROPPER*/\r\n\tdata: any;\r\n\tcropperSettings: CropperSettings;\r\n\timageCropperVisible = false;\r\n\r\n\t@ViewChild('cropper', undefined)\r\n\tcropper: ImageCropperComponent;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\t@Input() permiteContenidos: boolean = false;\r\n\t@Input() visible: boolean = true;\r\n\tpublic mensajesExpirados: any = [\r\n\t\t{\r\n\t\t \ttipo: 'TODOS',\r\n\t\t \tvalue: 4,\r\n\t\t \tclases: [],\r\n\t\t \tlabel: 'Contenidos.estadoTodos'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoActivo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoProximo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoExpirado'\r\n\t\t}\r\n\r\n\t];\r\n\r\n\tpublic mensajesExpiradosMod = this.mensajesExpirados[0];\r\n\tpublic tipologiasContenido = [\t\t{\r\n\t\ttipo: 'TODOS',\r\n\t\tvalue: 'TODOS',\r\n\t\tclases: [],\r\n\t\tlabel: 'Todos'\r\n\t}];\r\n\tpublic tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\tfechaAlta_DesdeFiltes: any;\r\n\tfechaAlta_HastaFiltes: any;\r\n\r\n\t/*menuLateralModel: any = [];\r\n\r\n\tprivate menuSource = new BehaviorSubject(this.menuLateralModel);\r\n\tcurrentMenu = this.menuSource.asObservable();\r\n\r\n\tchangeRuta(ruta){\r\n\t\tthis.menuSource.next(ruta);\r\n\t}*/\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService\r\n\r\n\t) {\r\n\r\n\t\tthis.filtro = this.authService.getFiltroContenido();\r\n\t\tthis.filtro.where.expirado = new Predicate('FechaAlta', '>=', '1900-01-01');\r\n\r\n\t\tthis.cropperSettings = new CropperSettings();\r\n\t\tthis.cropperSettings.width = 400;\r\n\t\tthis.cropperSettings.height = 400;\r\n\t\tthis.cropperSettings.croppedWidth = 400;\r\n\t\tthis.cropperSettings.croppedHeight = 400;\r\n\t\tthis.cropperSettings.canvasWidth = 400;\r\n\t\tthis.cropperSettings.canvasHeight = 400;\r\n\t\tthis.cropperSettings.noFileInput = true;\r\n\t\tthis.cropperSettings.fileType = \"image/webp\";\r\n\t\tthis.cropperSettings.minWithRelativeToResolution = true;\r\n\r\n\t\tthis.data = {};\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('RutasSugeridas.rutassugeridas'), routerLink: ['/rutas-sugeridas'] },\r\n\t\t\t{ label: this.translate.instant('RutasSugeridas.detalle') }\r\n\t\t]);\r\n\r\n\t\tthis.route.params\r\n\t\t.subscribe(params => {\r\n\t\t\tthis.idRuta = params['id'];\r\n\t\t});\r\n\r\n\t\tthis.colsAsignados = [\r\n\t\t\t{ field: 'Drag', header: '' },\r\n\t\t\t{ field: 'Imagen', header: this.translate.instant('RutasSugeridas.imagen') },\r\n\t\t\t{ field: 'Titulo', header: this.translate.instant('RutasSugeridas.nombre') },\r\n\t\t\t{ field: 'Descripcion', header: this.translate.instant('RutasSugeridas.descripcion') },\r\n\t\t\t{ field:'FechaAlta', header:this.translate.instant('Formularios.fechaalta')},\r\n\t\t\t{ field:'FechaBaja', header:this.translate.instant('Formularios.fechabaja')},\r\n\t\t\t{ field: 'Seccion', header: this.translate.instant('RutasSugeridas.Seccion') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.colsTodos = [\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen')}, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')}, // clases: ['th-tipo-corto2'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TIPOLOGIA_CONTENIDO', fieldSort: 'Tipologia', header: this.translate.instant('Contenidos.tipologia')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'MostrarEdicion', fieldSort: '', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.rutaSeleccionada = new RutaSugerida();\r\n\t\tthis.mapRutaIdioma = new Map();\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\tgetMensajesExpirados(_val) {\r\n\t\tfor (const i in this.mensajesExpirados) {\r\n\t\t\tif (this.mensajesExpirados[i].value === _val) {\r\n\t\t\t\treturn this.mensajesExpirados[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst _filtroSaved = this.authService.getFiltroContenido();\r\n\r\n\t\tif (_filtroSaved){\r\n\t\t\tthis.filtro = _filtroSaved;\r\n\t\t}\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.rutaSeleccionada.Idiomas = that.idiomaService.newMapRutaSugeridaIdiomas(that.idiomas);\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\treturn that.cargarContenidos();\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\tconsole.log('cargarDatos ok');\r\n\r\n\t\t\tif (that.idRuta !== null && that.idRuta !== '' && that.idRuta !== undefined) {\r\n\t\t\t\tthat.edicion = true;\r\n\t\t\t\treturn that.cargarRuta();\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.then(function(){\r\n\r\n\t\t\tif (that.rutaSeleccionada.ENTIDAD) {\r\n\t\t\t\tthat.rutaSeleccionada.Idiomas = that.idiomaService.getMapRutaSugeridaIdiomas(that.rutaSeleccionada.ENTIDAD.IDIOMAS);\r\n\t\t\t}\r\n\t\t\tif(that.rutaSeleccionada.FechaBaja !== null && that.rutaSeleccionada.FechaBaja !== \"\"){\r\n\t\t\t\tthat.permiteContenidos = true;\r\n\t\t\t\tthat.apareceBoton = false;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthat.permiteContenidos = false;\r\n\t\t\t\tthat.apareceBoton = false;\r\n\t\t\t}\r\n\t\t\t// ASIGNADOS\r\n\t\t\tlet value = '';\r\n\t\t\tlet matchMode = '';\r\n\t\t\tif (that.dt_no_asignados.filters && that.dt_no_asignados.filters.global) {\r\n\t\t\t\tvalue = that.dt_no_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = that.dt_no_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthat.dt_no_asignados.reset();\r\n\r\n\t\t\tif (that.dt_no_asignados.filters && that.dt_no_asignados.filters.global) {\r\n\t\t\t\tthat.dt_no_asignados.filterGlobal(value, matchMode);\r\n\t\t\t}\r\n\r\n\t\t\t// NO ASIGNADOS\r\n\t\t\tif (that.dt_asignados.filters && that.dt_asignados.filters.global) {\r\n\t\t\t\tvalue = that.dt_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = that.dt_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthat.dt_asignados.reset();\r\n\r\n\t\t\tif (that.dt_asignados.filters.global && that.dt_asignados.filters.global.value) {\r\n\t\t\t\tthat.dt_asignados.filterGlobal(value, matchMode);\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO();\r\n\t\t})\r\n\t\t.then(function (e) {\r\n\t\t\tthat.tipologiasContenido = e;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function (err) {\r\n\t\t\tconsole.log('Error cargarDatos: ' + err);\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n/* TABLA ASIGNACION CONTENIDO */\r\n\tonInputSearchChange(){\r\n\t\tconst _where = this.filtro.where;\r\n\t\tthis.filtro = JSON.parse(FILTRO_INI);\r\n\t\tthis.filtro.where = _where;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterTipologia(TIPOLOGIA_CONTENIDO){\r\n\t\tconst valorFiltrado = TIPOLOGIA_CONTENIDO.Nombre;\r\n\r\n\t\tthis.filtro.where.Tipologia = valorFiltrado;\r\n\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\tfilterEstado(filter) {\r\n\t\tthis.filtro.where.estado = filter.value;\r\n\t\tthis.cargarContenidos();\r\n\t}\r\n\r\n\r\n\tonSort(evento) {\r\n\t\tconsole.log(evento);\r\n\r\n\t\tlet field = evento.field;\r\n\t\tif (field === 'expirado') {\r\n\t\t\tfield = 'Estado';\r\n\t\t\t// \tfield = 'FechaBaja';\r\n\r\n\t\t}\r\n\r\n\t\tconst sentido = evento.order > 0 ? 'ASC' : 'DESC';\r\n\r\n\t\tconst actual = field + ' ' + sentido;\r\n\t\tif (actual !== this.filtro.order) {\r\n\t\t\tthis.filtro.order = actual;\r\n\t\t\tthis.cargarContenidos();\r\n\t\t}\r\n\t}\r\n\r\n\tcargarContenidos(exportar?: boolean) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst columnas = [];\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idIdioma = this.idiomaSeleccionado.ENTIDAD.Id;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst _elementoAsignado = this.filtro.where['ElementoAsignado'];\r\n\t\tconst _titulo = this.filtro.where['Titulo'];\r\n\t\tconst _idAlternativo = this.filtro.where['IdAlternativo'];\r\n\r\n\t\tlet _tipologia = '';\r\n\t\tif (this.filtro.where.Tipologia && this.translate.instant('Contenidos.estadoTodos') !== this.filtro.where.Tipologia.toString()) {\r\n\t\t\t_tipologia = this.filtro.where['Tipologia'];\r\n\t\t}\r\n\t\tlet size = 10;\r\n\t\tlet first = this.filtro.page * size;\r\n\r\n\t\tif (exportar) {\r\n\t\t\tfirst = 0;\r\n\t\t\tsize = 1000000000000;\r\n\t\t}\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst _estado = this.filtro.where.estado;\r\n\t\tconst Desde = this.filtro.Desde;\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\tlet ids = [];\r\n\t\tconst excluidos = this.rutaSeleccionada.Contenidos.map(c => c.IdContenido);\r\n\t\tlet Activos = false;\r\n\t\tif (that.permisos.Gestion_Activos === 2) {\r\n\t\t\tActivos = true;\r\n\t\t}\r\n\r\n\t\treturn this.sws.wsBuscarContenidos(token, idEspacio, idIdioma, _titulo, _estado, Desde, Hasta, _idAlternativo, _tipologia, _elementoAsignado, first, size, orderBy, order, excluidos, Activos).toPromise()\r\n\t\t.then(function(resp){\r\n\t\t\tids = resp.lista;\r\n\t\t\tthat.filtro.total = resp.total;\r\n\t\t\tlet includes = 'FOTOS, ';\r\n\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ALAS.ALA.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO.IDIOMAS';\r\n\r\n\t\t\treturn that.entityManager.getContenidosById(ids, includes, columnas);\r\n\t\t})\r\n\t\t.then(function (data) {\r\n\t\t\tthat.contenidosTodos = [];\r\n\t\t\tthat.contenidosFiltrados = [];\r\n\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata = data.sort(function(a, b){\r\n\t\t\t\treturn ids.indexOf(a.Id) - ids.indexOf(b.Id);\r\n\t\t\t});\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthat.contenidosTodos.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.contenidosFiltrados = that.contenidosTodos;\r\n\t\t\tthat.dt_no_asignados.reset();\r\n\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\r\n\t\t\t// Traducimos Contenidos al idioma seleccionado\r\n\t\t\tthat.contenidosTodos = that.idiomaService.traducirContenidos(that.contenidosTodos, that.idiomaSeleccionado);\r\n\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.triggerPageChange = false;\r\n\r\n\t\t\tthat.pg_no_asignados.paginatorState.page = that.filtro.page;\r\n\t\t\tthat.pg_no_asignados.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\tthat.pg_no_asignados.changePage(that.filtro.page);\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n\tonPageChange(evento) {\r\n\t\tconsole.log(evento);\r\n\t\tthis.filtro.page = evento.page;\r\n\t\tif (this.triggerPageChange){\r\n\t\t\tthis.cargarContenidos();\r\n\t\t}else{\r\n\t\t\tthis.triggerPageChange = true;\r\n\t\t}\r\n\t}\r\n\r\n/* ******* */\r\n\tcargarRuta() {\r\n\t\tconst that = this;\r\n\t\tlet includes = 'RUTA_has_CONTENIDOS, RUTA_has_CONTENIDOS.CONTENIDO.NODODS.NODO.SECCION, ';\r\n\t\tincludes = includes + 'FOTOS, ';\r\n\t\tincludes = includes + 'IDIOMAS';\r\n\t\tconst promises: any[] = [];\r\n\r\n\t\tlet ultima;\r\n\r\n\t\treturn this.entityManager.getRutaById(this.idRuta, includes)\r\n\t\t.then(function (ruta: any) {\r\n\t\t\tthat.rutaSeleccionada.Nombre = ruta.nombre;\r\n\t\t\tthat.rutaSeleccionada.Descripcion = ruta.descripcion;\r\n\t\t\tthat.rutaSeleccionada.FechaAlta = ruta.fecha_alta;\r\n\t\t\tthat.rutaSeleccionada.FechaBaja = ruta.fecha_baja;\r\n\t\t\tthat.rutaSeleccionada.PermiteRuta = ruta.PermiteRuta;\r\n\t\t\tthat.rutaSeleccionada.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\tthat.rutaSeleccionada.ENTIDAD = ruta;\r\n\r\n\t\t\tconst RUTA_has_CONTENIDOSsortedArray: any[] = that.rutaSeleccionada.ENTIDAD.RUTA_has_CONTENIDOS.sort((n1, n2) => {\r\n\t\t\t\tif (n1.Orden > n2.Orden) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (n1.Orden < n2.Orden) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn 0;\r\n\t\t\t});\r\n\r\n\t\t\tconsole.log(RUTA_has_CONTENIDOSsortedArray);\r\n\r\n\t\t\tRUTA_has_CONTENIDOSsortedArray.forEach(ruta_has_contenido => {\r\n\t\t\t\tconst contenido = new Contenido().fromENTIDAD(ruta_has_contenido.CONTENIDO);\r\n\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t}\r\n\t\t\t\tthat.asignarContenido(contenido);\r\n\t\t\t});\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tultima = that.rutaSeleccionada.ENTIDAD.FOTOS.length - 1;\r\n\r\n\t\t\tif (ultima >= 0) {\r\n\t\t\t\tif (that.rutaSeleccionada.ENTIDAD.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\tthat.rutaSeleccionada.Imagen = that.rutaSeleccionada.ENTIDAD.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthat.rutaSeleccionada.Imagen = environment.urlBaseFotos + that.rutaSeleccionada.ENTIDAD.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.rutaSeleccionada.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\t/* DropDown */\r\n\tonIdiomaChange($event){\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tlet rutaSugeridaIdioma = this.rutaSeleccionada.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!rutaSugeridaIdioma) {\r\n\t\t\trutaSugeridaIdioma = new RutaSugeridaIdiomaFormulario();\r\n\t\t\tthis.rutaSeleccionada.Idiomas.set(idioma.value, rutaSugeridaIdioma);\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de espacioFormulario con los valores del idioma seleccionado\r\n\t\tthis.rutaSeleccionada.Nombre = rutaSugeridaIdioma.Nombre;\r\n\t\tthis.rutaSeleccionada.Descripcion = rutaSugeridaIdioma.Descripcion;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\t/* ************************************************************************** */\r\n\t/* COMUN FORMULARIO */\r\n\t/* ************************************************************************** */\r\n\r\n\t/* Validar */\r\n\tinputChanged(value) {\r\n\t\tif(value === 'fecha_baja'){\r\n\t\t\tif(this.rutaSeleccionada.FechaBaja !== null){\r\n\t\t\t\tthis.permiteContenidos = true;\r\n\t\t\t\tthis.apareceBoton = false;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tthis.permiteContenidos = false;\r\n\t\t\t\tthis.apareceBoton = false;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tconst p1Error = this.rutaSeleccionada.Nombre === '' || this.rutaSeleccionada.Nombre === undefined;\r\n\t\tconst p2Error = this.rutaSeleccionada.FechaAlta === '' || this.rutaSeleccionada.FechaAlta === undefined || this.rutaSeleccionada.FechaAlta === null;\r\n\t\tconst p3Error = false; // this.rutaSeleccionada.FechaBaja === '' || this.rutaSeleccionada.FechaBaja === undefined || this.rutaSeleccionada.FechaBaja === null\r\n\t\tconst p4Error = false; // this.rutaSeleccionada.Imagen === undefined && this.imagenSeleccionada === undefined;\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.nombreError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.nombreError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.imagenError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.imagenError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar titulo\r\n\t\telse if (value === 'nombre'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.nombreError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.nombreError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_alta\r\n\t\telse if (value === 'fecha_alta'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_baja\r\n\t\telse if (value === 'fecha_baja'){\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cojemos la traduccion del espacio al idioma seleccionado\r\n\t\tconst rutaSugeridaIdioma = this.rutaSeleccionada.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\t\tif(rutaSugeridaIdioma !== undefined){\r\n\t\t\t\t// Guardamos los posibles cambios del idioma\r\n\t\t\t\trutaSugeridaIdioma.Nombre = this.rutaSeleccionada.Nombre;\r\n\t\t\t\trutaSugeridaIdioma.Descripcion = this.rutaSeleccionada.Descripcion;\r\n\t\t\t\tthis.rutaSeleccionada.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, rutaSugeridaIdioma);\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\tpublic validar(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\t\tconst p1 = this.nombreError;\r\n\t\tconst p2 = this.fAltaError;\r\n\t\tconst p3 = false; // this.fBajaError;\r\n\t\tconst p4 = this.imagenError;\r\n\r\n\t\tif (p1 || p2 || p3) {\r\n\t\t\tthis.isValid = false;\r\n\t\t\tif (p4) {\r\n\t\t\t\tif (this.imagenError) {\r\n\t\t\t\t\tthis.msgFoto.push({severity: 'error', summary: this.translate.instant('RutasSugeridas.imagenobligatoria'), detail: this.translate.instant('RutasSugeridas.elegirimagen')});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tpublic esEdicion(): boolean {\r\n\t\treturn this.edicion;\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_CANCELAR'),\r\n accept: () => {\r\n\t\t\t\tthis.router.navigate(['/rutas-sugeridas']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Cancelado de Ruta Sugerida.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\tvolver(){\r\n\t\tthis.router.navigate(['/rutas-sugeridas']);\r\n\t}\r\n\tpublic guardar(): any {\r\n\t\tif(this.rutaSeleccionada.FechaBaja === ''){\r\n\t\t\tthis.apareceBoton = false;\r\n\t\t\tthis.permiteContenidos =false\r\n\t\t\tthis.guardarSinBajaContenidos();\r\n\t\t}\r\n\t\telse if(this.rutaSeleccionada.FechaBaja !== null){\r\n\t\t\tif(this.apareceBoton === false){\r\n\t\t\t\t//this.apareceBoton = true;\r\n\t\t\t\tthis.guardarConBotonBajaContenidos();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t//this.apareceBoton = true;\r\n\t\t\t\tthis.desactivarRutaSugeridaConContenidos();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.apareceBoton = false;\r\n\t\t\tthis.permiteContenidos === false\r\n\t\t\tthis.guardarSinBajaContenidos();\r\n\t\t}\r\n\t}\r\n\tpublic guardarConBotonBajaContenidos(): any{\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR_CONTENIDOS'),\r\n accept: () => {\r\n\t\t\t\tif (this.validar()) {\r\n\t\t\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\t\t\tthis.guardarBD(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.guardarBD(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Guardado de Contenido.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\tpublic guardarSinBajaContenidos(): any {\r\n\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR'),\r\n accept: () => {\r\n\t\t\t\tif (this.validar()) {\r\n\t\t\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\t\t\tthis.guardarBD(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.guardarBD(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Guardado de Contenido.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\tdesactivarRutaSugeridaConContenidos(){\r\n\t\tconsole.log('desactivarRutaSugeridaConContenidos.');\r\n\t\tif (this.validar()) {\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tif (!this.esEdicion()) {\r\n\t\t\t\tthis.guardarBD_CONTENIDOS(true);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.guardarBD_CONTENIDOS(false);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t}\r\n\r\n\t}\r\n\tprivate setRutaSugerida(RUTA_SUGERIDA){\r\n\t\tconst that = this;\r\n\t\tconst promises: any[] = [];\r\n\t\tthis.rutaSeleccionada.ENTIDAD = RUTA_SUGERIDA;\r\n\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function(){\r\n\r\n\t\t\tconst espacioIdioma = that.rutaSeleccionada.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.rutaSeleccionada.Nombre = espacioIdioma.Nombre ? espacioIdioma.Nombre : '';\r\n\t\t\tthat.rutaSeleccionada.Descripcion = espacioIdioma.Descripcion ? espacioIdioma.Descripcion : '';\r\n\r\n\t\t\tRUTA_SUGERIDA.idEspacio = that.authService.getIdEspacio();\r\n\t\t\tRUTA_SUGERIDA.nombre = that.rutaSeleccionada.Nombre;\r\n\t\t\tRUTA_SUGERIDA.descripcion = that.rutaSeleccionada.Descripcion;\r\n\t\t\tRUTA_SUGERIDA.fecha_alta = that.rutaSeleccionada.FechaAlta;\r\n\t\t\tRUTA_SUGERIDA.fecha_baja = that.rutaSeleccionada.FechaBaja;\r\n\t\t\tRUTA_SUGERIDA.PermiteRuta = that.rutaSeleccionada.PermiteRuta;\r\n\t\t\tthat.rutaSeleccionada.ENTIDAD = RUTA_SUGERIDA;\r\n\r\n\t\t\tif (that.rutaSeleccionada.Contenidos.length > 0) {\r\n\t\t\t\tthat.rutaSeleccionada.Contenidos.forEach(() => {\r\n\t\t\t\t\tpromises.push(that.entityManager.newRUTA_has_CONTENIDO());\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn allSettled(promises);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.deleteEntityArray(this.rutaSeleccionada.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newRUTA_SUGERIDA_IDIOMA(this.rutaSeleccionada.ENTIDAD)\r\n\t\t.then(function(RUTA_SUGERIDA_IDIOMAs){\r\n\r\n\t\t\tRUTA_SUGERIDA_IDIOMAs.forEach(RUTA_SUGERIDA_IDIOMA => {\r\n\t\t\t\tconst aux = that.rutaSeleccionada.Idiomas.get(RUTA_SUGERIDA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tRUTA_SUGERIDA_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tRUTA_SUGERIDA_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t}\r\n\tguardarBD_CONTENIDOS(nuevo?){\r\n\t\tconst that = this;\r\n\t\tlet promises: any[] = [];\r\n\r\n\t\tlet rutaProm;\r\n\r\n\t\tif (nuevo){\r\n\t\t\tconst rutaSug = this.entityManager.newRUTA_SUGERIDA();\r\n\t\t\trutaProm = rutaSug.then(this.setRutaSugerida.bind(this));\r\n\t\t}else{\r\n\t\t\tif(this.rutaSeleccionada.Contenidos.length !== 0){\r\n\t\t\t\tthis.rutaSeleccionada.ENTIDAD.RUTA_has_CONTENIDOS.forEach(c =>{\r\n\t\t\t\t\t//console.log(\"formato fecha baja contenido\",c.FechaBaja);\r\n\t\t\t\t\t//console.log(\"formato fecha baja de la ruta\",this.rutaSeleccionada.FechaBaja);\r\n\r\n\t\t\t\t\tif(c.CONTENIDO.FechaBaja === null){\r\n\t\t\t\t\t\tc.CONTENIDO.FechaBaja = this.rutaSeleccionada.FechaBaja;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet fechaauxDayRuta = new Date(this.rutaSeleccionada.FechaBaja).getDate();\r\n\t\t\t\t\tlet fechaauxDayContenido = c.CONTENIDO.FechaBaja.getDate();\r\n\r\n\t\t\t\t\tlet fechaauxMonthRuta = new Date(this.rutaSeleccionada.FechaBaja).getMonth();\r\n\t\t\t\t\tlet fechaauxMonthContenido = c.CONTENIDO.FechaBaja.getMonth();\r\n\r\n\t\t\t\t\tlet fechaauxYearRuta = new Date(this.rutaSeleccionada.FechaBaja).getFullYear();\r\n\t\t\t\t\tlet fechaauxyearContenido = c.CONTENIDO.FechaBaja.getFullYear();\r\n\r\n\t\t\t\t\tif( fechaauxyearContenido > fechaauxYearRuta){\r\n\t\t\t\t\t\tc.CONTENIDO.FechaBaja = this.rutaSeleccionada.FechaBaja;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(fechaauxyearContenido === fechaauxYearRuta){\r\n\t\t\t\t\t\tif(fechaauxMonthContenido > fechaauxMonthRuta){\r\n\t\t\t\t\t\t\tc.CONTENIDO.FechaBaja = this.rutaSeleccionada.FechaBaja;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(fechaauxMonthContenido === fechaauxMonthRuta && fechaauxDayContenido > fechaauxDayRuta){\r\n\t\t\t\t\t\t\tc.CONTENIDO.FechaBaja = this.rutaSeleccionada.FechaBaja;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\trutaProm = this.setRutaSugerida(this.rutaSeleccionada.ENTIDAD);\r\n\t\t\t\tthis.entityManager.deleteEntityArray(this.rutaSeleccionada.ENTIDAD.RUTA_has_CONTENIDOS);\r\n\t\t\t}\r\n\t\t\t//rutaProm = this.setRutaSugerida(this.rutaSeleccionada.ENTIDAD);\r\n\t\t\t//this.entityManager.deleteEntityArray(this.rutaSeleccionada.ENTIDAD.RUTA_has_CONTENIDOS);\r\n\t\t}\r\n\r\n\t\trutaProm.then(function (RUTA_has_CONTENIDOS) {\r\n\r\n\t\t\tfor (let index = 0; index < RUTA_has_CONTENIDOS.length; index++) {\r\n\t\t\t\tconst ruta_has_contenido = RUTA_has_CONTENIDOS[index].result;\r\n\r\n\t\t\t\truta_has_contenido.IdContenido = that.rutaSeleccionada.Contenidos[index].ENTIDAD.Id;\r\n\t\t\t\truta_has_contenido.IdRutaSugerida = that.rutaSeleccionada.ENTIDAD.Id;\r\n\t\t\t\truta_has_contenido.Orden = index;\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\tpromises = [];\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tthat.appComponent.showSuccess(that.translate.instant('RutasSugeridas.rutaguardadook'));\r\n\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\tthat.router.navigate(['/rutas-sugeridas']);\r\n\t\t\treturn that.translate.instant('RutasSugeridas.rutaguardadook');\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tguardarBD(nuevo?){\r\n\t\tconst that = this;\r\n\t\tlet promises: any[] = [];\r\n\r\n\t\tlet rutaProm;\r\n\r\n\t\tif (nuevo){\r\n\t\t\tconst rutaSug = this.entityManager.newRUTA_SUGERIDA();\r\n\t\t\trutaProm = rutaSug.then(this.setRutaSugerida.bind(this));\r\n\t\t}else{\r\n\t\t\trutaProm = this.setRutaSugerida(this.rutaSeleccionada.ENTIDAD);\r\n\t\t\tthis.entityManager.deleteEntityArray(this.rutaSeleccionada.ENTIDAD.RUTA_has_CONTENIDOS);\r\n\t\t}\r\n\t\tconsole.log(this.rutaSeleccionada);\r\n\t\tif(that.rutaSeleccionada.Contenidos.length > 99){\r\n\t\t\tthat.msgs.push({severity: 'error', summary: 'Error', detail: that.translate.instant('RutasSugeridas.limiteContenidoGuardar')});\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t}else{\r\n\t\t\trutaProm.then(function (RUTA_has_CONTENIDOS) {\r\n\t\t\t\t\tfor (let index = 0; index < RUTA_has_CONTENIDOS.length; index++) {\r\n\t\t\t\t\t\tconst ruta_has_contenido = RUTA_has_CONTENIDOS[index].result;\r\n\t\t\r\n\t\t\t\t\t\truta_has_contenido.IdContenido = that.rutaSeleccionada.Contenidos[index].ENTIDAD.Id;\r\n\t\t\t\t\t\truta_has_contenido.IdRutaSugerida = that.rutaSeleccionada.ENTIDAD.Id;\r\n\t\t\t\t\t\truta_has_contenido.Orden = index;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\tpromises = [];\r\n\t\t\t\t\treturn that.entityManager.saveChanges();\r\n\t\r\n\t\t\t})\r\n\t\t\t.then(function () {\r\n\t\t\t\treturn that.subirFotos();\r\n\t\t\t})\r\n\t\t\t.then(function () {\r\n\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('RutasSugeridas.rutaguardadook'));\r\n\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\t\tthat.router.navigate(['/rutas-sugeridas']);\r\n\t\t\t\treturn that.translate.instant('RutasSugeridas.rutaguardadook');\r\n\t\t\t})\r\n\t\t\t.catch(function (e) {\r\n\t\t\t\tconsole.log(e);\r\n\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/* ASIGNACIONES CONTENIDOS */\r\n\tasignarContenido(rowData) {\r\n\t\t// Asignamos contenidos\r\n\t\tconst idContenido = rowData.ENTIDAD.Id ? rowData.ENTIDAD.Id : rowData.Id;\r\n\t\tif(this.rutaSeleccionada.Contenidos.length >= 99){\r\n\t\t\tthis.msgs.push({severity: 'error', summary: this.translate.instant('RutasSugeridas.limiteContenidoGuardar')});\r\n\t\t}else{\r\n\t\t\tthis.rutaSeleccionada.Contenidos.push(rowData);\r\n\t\t\tthis.contenidosFiltrados = this.contenidosFiltrados.filter(obj => obj.ENTIDAD.Id !== idContenido);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tdesasignarContenido(rowData) {\r\n\r\n\t\t// Asignamos contenidos\r\n\t\tthis.contenidosTodos.push(rowData);\r\n\t\tconst idContenido = rowData.ENTIDAD.Id ? rowData.ENTIDAD.Id : rowData.Id;\r\n\t\tthis.rutaSeleccionada.Contenidos = this.rutaSeleccionada.Contenidos.filter(obj => obj.ENTIDAD.Id !== idContenido);\r\n\r\n\t\t// Reasignamos orden\r\n\t\tfor (let index = 0; index < this.rutaSeleccionada.Contenidos.length; index++) {\r\n\t\t\tconst element = this.rutaSeleccionada.Contenidos[index];\r\n\t\t\telement.Orden = index;\r\n\t\t}\r\n\r\n\t\t\t// ASIGNADOS\r\n\t\t\tlet value = '';\r\n\t\t\tlet matchMode = '';\r\n\t\t\tif (this.dt_no_asignados.filters && this.dt_no_asignados.filters.global) {\r\n\t\t\t\tvalue = this.dt_no_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = this.dt_no_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dt_no_asignados.reset();\r\n\r\n\t\t\t// if (this.dt_no_asignados.filters && this.dt_no_asignados.filters.global) {\r\n\t\t\tthis.dt_no_asignados.filterGlobal(value, matchMode);\r\n\t\t\t// }\r\n\r\n\t\t\t// NO ASIGNADOS\r\n\t\t\tvalue = '';\r\n\t\t\tmatchMode = '';\r\n\t\t\tif (this.dt_asignados.filters && this.dt_asignados.filters.global) {\r\n\t\t\t\tvalue = this.dt_asignados.filters.global.value;\r\n\t\t\t\tmatchMode = this.dt_asignados.filters.global.matchMode;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dt_asignados.reset();\r\n\r\n\t\t\t// if (this.dt_asignados.filters.global && this.dt_asignados.filters.global.value) {\r\n\t\t\tthis.dt_asignados.filterGlobal(value, matchMode);\r\n\t\t\t// }\r\n\t}\r\n\r\n\tdownContenido(rowData, i){\r\n\t\tthis.rutaSeleccionada.Contenidos.splice(i, 1);\r\n\t\tthis.rutaSeleccionada.Contenidos.splice( i + 1 , 0, rowData);\r\n\t}\r\n\r\n\tupContenido(rowData, i){\r\n\t\tthis.rutaSeleccionada.Contenidos.splice(i, 1);\r\n\t\tthis.rutaSeleccionada.Contenidos.splice( i - 1 , 0, rowData);\r\n\t}\r\n\r\n\tmostrarEditar(contenido) {\r\n\t\tthis.contenidoSeleccionado = contenido;\r\n\t\tcontenido.MostrarEdicion = true;\r\n\t}\r\n\r\n\tocultarEditar(nodo) {\r\n\t\t// this.nodoSeleccionado = undefined;\r\n\t\tnodo.MostrarEdicion = false;\r\n\t}\r\n\r\n\tmostrarAsignarContenido(){\r\n\t\tthis.cargarContenidos();\r\n\t\tthis.displayDialog = true;\r\n\t}\r\n\r\n\r\n\t/* imagen */\r\n\tonFileSelect($event) {\r\n\t\tthis.msgFoto = [];\r\n\t\tthis.imagenSeleccionada = $event.files[0];\r\n\t}\r\n\r\n\tonRemoveSelect(){\r\n\t\tthis.imagenSeleccionada = undefined;\r\n\t}\r\n\r\n\teliminarUploadedFiles() {\r\n\t\tthis.onRemoveSelect();\r\n\t}\r\n\r\n\tpublic subirFotos(){\r\n\t\t// PREPARAMOS LA SUBIDA DE LAS FOTOS\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\r\n\t\tif (that.imagenSeleccionada !== undefined) {\r\n\t\t\t/*\r\n\t\t\tconst ultima = that.rutaSeleccionada.ENTIDAD.FOTOS.length - 1;\r\n\t\t\tif (ultima >= 0) {\r\n\t\t\t\tthis.entityManager.deleteEntity(that.rutaSeleccionada.ENTIDAD.FOTOS[ultima]);\r\n\t\t\t}\r\n\r\n\t\t\tpromises.push(that.enviarFoto('IdRutaSugerida', that.rutaSeleccionada.ENTIDAD.Id, that.imagenSeleccionada));\r\n\t\t\t*/\r\n\r\n\t\t\tlet idFoto = null;\r\n\t\t\tif (that.rutaSeleccionada.ENTIDAD && that.rutaSeleccionada.ENTIDAD.FOTOS) {\r\n\t\t\t\tconst ultima = that.rutaSeleccionada.ENTIDAD.FOTOS.length - 1;\r\n\t\t\t\tconst fotoUpdate = that.rutaSeleccionada.ENTIDAD.FOTOS[ultima];\r\n\t\t\t\tidFoto = fotoUpdate ? fotoUpdate.Id : null;\r\n\t\t\t}\r\n\t\t\tpromises.push(that.enviarFoto('IdRutaSugerida', that.rutaSeleccionada.ENTIDAD.Id, that.imagenSeleccionada, idFoto));\r\n\t\t}\r\n\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\tenviarFoto(entidad, idEntidad, imagen, idFoto = null) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsSubidaFoto(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/* Image Cropper */\r\n\tfileChangeListener($event) {\r\n\t\tthis.imageCropperVisible = true;\r\n\t\tconst image: any = new Image();\r\n\t\tconst file: File = $event.target.files[0];\r\n\t\tconst nombre = file.name;\r\n\t\tconst tipo = file.type;\r\n\t\tconst myReader: FileReader = new FileReader();\r\n\t\tconst that = this;\r\n\t\tmyReader.onloadend = function (loadEvent: any) {\r\n\t\t\timage.src = loadEvent.target.result;\r\n\t\t\tthat.cropper.setImage(image);\r\n\t\t\tthat.sws.base64ToFile(image.src, nombre, tipo)\r\n\t\t\t.then(function(fotoFile){\r\n\t\t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\t\t});\r\n\t\t};\r\n\t\tmyReader.readAsDataURL(file);\r\n\t}\r\n\r\n\tasignarFotoCropp($event){\r\n\t\tconst that = this;\r\n\t\tthis.sws.base64ToFile(this.data.image, that.imagenSeleccionada.name)\r\n\t\t.then(function(fotoFile){\r\n\t\t\tthat.imagenSeleccionada = fotoFile;\r\n\t\t\tthat.imageCropperVisible = false;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tmiFiltro(value, field, filtro){\r\n\t\tconsole.log(value);\r\n\t\tconsole.log(field);\r\n\t\tconsole.log(filtro);\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (columna === 'fecha_alta') {\r\n\t\t\tthis.rutaSeleccionada.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (columna === 'fecha_baja') {\r\n\t\t\tthis.rutaSeleccionada.FechaBaja = fecha;\r\n\t\t}\r\n\t\tif (columna === 'FechaAlta' && tipo === 'fechaAlta_DesdeFiltes') {\r\n\t\t\tthis.fechaAlta_DesdeFiltes = fecha;\r\n\t\t\tdt.filter(fecha, columna, 'gt')\r\n\r\n\t\t}\r\n\t\tif (columna === 'FechaBaja' && tipo === 'fechaAlta_HastaFiltes') {\r\n\t\t\tthis.fechaAlta_HastaFiltes = fecha;\r\n\t\t\tdt.filter(fecha, columna, 'gt')\r\n\t\t}\r\n\r\n\r\n\t\tthis.inputChanged(columna);\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/RutasSugeridas/nuevo/nueva.rutaSugerida.component.ts","module.exports = \"
      \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n

      {{'SelectorEspacios.seleccionespacio' | translate}}

      \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n
      {{espacio.Nombre}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      {{'SelectorEspacios.crearespacio' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.html\n// module id = ../../../../../src/app/views/SelectorEspacios/SelectorEspacio.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.scss\n// module id = ../../../../../src/app/views/SelectorEspacios/SelectorEspacio.component.scss\n// module chunks = main","import { IdiomaService } from './../../providers/idioma/idioma.service';\r\nimport { Component, OnInit, OnDestroy, NgZone } from '@angular/core';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport { Message } from 'primeng/primeng';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { EspacioFormulario } from '../../domain/EspacioFormulario';\r\n\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { AppComponent } from '../../app.component';\r\nimport { PermisosService, Permisos } from '../../providers/authentication/permisos.service';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { Entidad } from '../../domain/Entidad';\r\nimport { UsuarioFormulario } from '../../domain/UsuarioFormulario';\r\n\r\n\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './SelectorEspacio.component.html',\r\n\tstyleUrls: ['./SelectorEspacio.component.scss']\r\n})\r\n\r\nexport class SelectorEspacioComponent implements OnInit, OnDestroy {\r\n\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\r\n\tmsgs: Message[] = [];\r\n\tMENSAJE_NO_ESPACIOS = '';\r\n\tpublic entidad: any = { ESPACIOS: [] };\r\n\tpublic listaEspacios = [];\r\n\tpublic crearVisible = false;\r\n\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\tprivate formValido;\r\n\r\n\t/* ** @INPUTS de FormularioEspacio ** */\r\n\tpublic edicion: boolean;\r\n\tpublic espacioSeleccionado: EspacioFormulario = new EspacioFormulario();\r\n\tpublic limpiarImagen = false;\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tpublic visible: boolean;\r\n\r\n\tprivate ruta_inicial = '/espacios';\r\n\tpublic permisos: Permisos = new Permisos();\r\n\tprivate usuario;\r\n\t\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate zone: NgZone,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\t\r\n\t) {\r\n\t\tconst that = this;\r\n\t\tthis.MENSAJE_NO_ESPACIOS = this.translate.instant('SelectorEspacios.sinespacios');\r\n\t\t// Inicializamos Spinner\r\n\t\tthat.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t]);\r\n\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function(idiomasENTIDAD: any ){\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\t\t});\r\n\r\n\t }\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.appComponent.ocultarMenuLateral();\r\n\r\n\t\tthis.espacioSeleccionado = new EspacioFormulario();\r\n\r\n\t\tthis.obtenerENTIDAD()\r\n\t\t.then(function () {\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.permisosService.getRutaPaginaInicio(that.usuario.Id);\r\n\t\t})\r\n\t\t.then(function(_ruta){\r\n\t\t\tif (_ruta && _ruta.length > 0) {\r\n\t\t\t\tthat.ruta_inicial = _ruta[0];\r\n\t\t\t\tconsole.log(that.ruta_inicial)\r\n\t\t\t}\r\n\r\n\t\t\tthat.mostrarCrear();\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.appComponent.showError(e);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\r\n\t\tthis.appComponent.mostrarMenuLateral();\r\n\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos(that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst userId = that.authService.getIdUsuario();\r\n\t\treturn that.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(permisos){\r\n\t\t\tthat.permisos = permisos;\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerUSUARIO(){\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tlet includes = 'ESPACIOS, PERFIL, PERFIL.FUNCIONALIDADES, ';\r\n\t\tincludes = includes + 'ESPACIOS.ESPACIO.IDIOMAS.IDIOMA, ';\r\n\r\n\t\tincludes = includes + 'ESPACIOS.ESPACIO.FOTOS';\r\n\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst predicado = new Predicate('Id', '==', userId);\r\n\t\tconst promises: any[] = [];\r\n\r\n\t\treturn entityManager.getUSUARIO(predicado, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY usuario');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('USUARIO CARGADO CORRECTAMENTE');\r\n\t\t\t\tthat.usuario = entidades[0];\r\n\r\n\t\t\t\tthat.listaEspacios = [];\r\n\t\t\t\tthat.usuario.ESPACIOS.forEach(usuarioEspacio => {\r\n\t\t\t\t\tif (usuarioEspacio.ESPACIO !== null) {\r\n\t\t\t\t\t\tconst espacio = new EspacioFormulario(usuarioEspacio.ESPACIO);\r\n\t\t\t\t\t\tif (espacio.Imagen === null || espacio.Imagen === undefined || espacio.Imagen === ''){\r\n\t\t\t\t\t\t\tespacio.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthat.listaEspacios.push(espacio);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tconsole.log(that.listaEspacios)\r\n\r\n\t\t\t\tif (that.listaEspacios && that.listaEspacios.length > 0) {\r\n\t\t\t\t\tthat.listaEspacios.sort( (one: EspacioFormulario, two: EspacioFormulario) => {\r\n\t\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (fotosBlob) {\r\n\t\t\tfotosBlob.forEach(blob => {\r\n\t\t\t\tconst espacio = that.listaEspacios.find(x => x.Id === blob.result.oFoto.IdEspacio);\r\n\t\t\t\tespacio.Imagen = blob.result.blob;\r\n\t\t\t});\r\n\t\t\treturn that.entidad;\r\n\t\t})\r\n\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Funciones preparacion Vista ** */\r\n\tobtenerENTIDAD() {\r\n\t\tconst that = this;\r\n\t\tconst idEntidad = this.authService.getIdEntidad();\r\n\t\treturn this.entityManager.getEntidadById(idEntidad, undefined)\r\n\t\t.then(function (entidad) {\r\n\t\t\tthat.entidad = entidad;\r\n\t\t\treturn that.obtenerUSUARIO();\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerESPACIOS() {\r\n\t\tconst that = this;\r\n\r\n\t\tlet includes = 'IDIOMAS.IDIOMA, ';\r\n\t\tincludes = includes + 'NIVELS.ALAS.SECCIONS.NODOS.CONTENIDOS, ';\r\n\t\tincludes = includes + 'RUTAS_SUGERIDA, ';\r\n\t\tincludes = includes + 'NOTICIAS, ';\r\n\t\tincludes = includes + 'CONTENIDOS, ';\r\n\t\tincludes = includes + 'FOTOS';\r\n\r\n\t\treturn this.entityManager.getESPACIO(undefined , includes)\r\n\t\t.then(function (espacios) {\r\n\t\t\tconsole.log(espacios)\r\n\t\t\tthat.listaEspacios = [];\r\n\t\t\tespacios.forEach( elemento => {\r\n\t\t\t\tconst espacio = new EspacioFormulario(elemento);\r\n\t\t\t\tif (espacio.Imagen === null || espacio.Imagen === undefined || espacio.Imagen === ''){\r\n\t\t\t\t\tespacio.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t}\r\n\t\t\t\tthat.listaEspacios.push(espacio);\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\r\n\t\t\tif (that.listaEspacios && that.listaEspacios.length > 0) {\r\n\t\t\t\tthat.listaEspacios.sort( (one: EspacioFormulario, two: EspacioFormulario) => {\r\n\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn that.entidad;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tmostrarCrear() {\r\n\t\tthis.crearVisible = false;\r\n\t\tif (this.permisos.Selector_Espacio_add_espacio === 2) {\r\n\t\t\t// const rol = this.authService.getRole();\r\n\t\t\t// if (rol === Constantes.ADMINISTRADOR_ENTIDAD) {\r\n\t\t\tthis.crearVisible = true;\r\n\t\t\t// }\r\n\t\t\t// else{\r\n\t\t\t// this.crearVisible = false;\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\r\n\t/* ** Acciones ** */\r\n\tselecionarEspacioPresionado(espacio) {\r\n\t\tconst that = this;\r\n\t\tthis.authService.setIdEspacio(espacio.Id);\r\n\t\tthis.authService.setAreaEspacio(espacio.Area);\r\n\r\n\t\tthis.permisosService.construirMenu()\r\n\t\t.then(function(res){\r\n\t\t\tthat.zone.run(() => that.router.navigateByUrl(that.ruta_inicial));\r\n\t\t\tthat.authService.setFotoPorDefecto(espacio.Imagen);\r\n\t\t});\r\n\t}\r\n\r\n\tanadirEspacioPresionado() {\r\n\t\tconst espacios = this.entidad.ESPACIOS;\r\n\t\tif (this.entidad.Licencias > espacios.length) {\r\n\t\t\tthis.espacioSeleccionado = new EspacioFormulario();\r\n\t\t\tthis.espacioSeleccionado.Idiomas = this.idiomaService.newMapEspacioIdiomas(this.idiomas);\r\n\t\t\tthis.edicion = false;\r\n\t\t\tthis.visible = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('SelectorEspacios.sinlicencias'));\r\n\t\t\tconsole.log('No quedan Licencias.');\r\n\t\t}\r\n\t}\r\n\r\n\teditarEspacioPresionado(espacio) {\r\n\t\tthis.espacioSeleccionado = espacio;\r\n\t\tthis.edicion = true;\r\n\t\tthis.visible = true;\r\n\t}\r\n\r\n\tonShowFormularioEspacio(){\r\n\t\tconsole.log('onShowFormularioEspacio');\r\n\t\tthis.limpiarImagen = true;\r\n\r\n\t\t// Truco para limpiar la foto seleccionada\r\n\t\t/*const selectorImagen = (document.getElementById('selectorImagen').getElementsByClassName('ui-button')[3]);\r\n\t\tif (selectorImagen !== undefined){\r\n\t\t\t(document.getElementById('selectorImagen').getElementsByClassName('ui-button')[3]).click();\r\n\t\t}\r\n\t\t*/\r\n\r\n\t}\r\n\r\n\tonCloseFormularioEspacio(){\r\n\t\tconsole.log('onCloseFormularioEspacio');\r\n\t\tconst esp = new EspacioFormulario(this.espacioSeleccionado.ENTIDAD);\r\n\r\n\t\tlet itemIndex = this.listaEspacios.findIndex(item => item.Id === esp.Id);\r\n\t\tthis.listaEspacios[itemIndex] = esp;\r\n\r\n\t\tthis.espacioSeleccionado = Object.assign([], esp);\r\n\t}\r\n\r\n\t/* *** @Outlets de Formulario Espacio *** */\r\n\tonElementoEspacioGuardado($event) {\r\n\r\n\t\tif (!this.edicion) {\r\n\t\t\tthis.listaEspacios.push($event.ENTIDAD);\r\n\t\t}\r\n\r\n\t\tconst idEspacio = $event.ENTIDAD.Id;\r\n\t\tconst espacio = this.entidad.ESPACIOS.find(x => x.Id === idEspacio);\r\n\r\n\t\tif ($event.Imagen) {\r\n\t\t\tespacio.Imagen = $event.Imagen;\r\n\t\t}\r\n\t\tconst that = this;\r\n\t\tthis.obtenerESPACIOS()\r\n\t\t.then(function(){\r\n\t\t\tthat.visible = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.appComponent.showSuccess(that.translate.instant('SelectorEspacios.espacioguardadook'));\r\n\t\t});\r\n\t}\r\n\r\n\tonElementoEspacioEliminado($event) {\r\n\t\tif ($event !== undefined) {\r\n\t\t\tthis.listaEspacios = this.listaEspacios.filter(x => x.Id !== $event.ENTIDAD.Id);\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('SelectorEspacios.espacioeliminadook'));\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.appComponent.showError(this.translate.instant('SelectorEspacios.espacioeliminadoerror'));\r\n\t\t}\r\n\t\tthis.visible = false;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoError($evento) {\r\n\t\tthis.appComponent.showError($evento);\r\n\t}\r\n\r\n\tonFormularioValidation($evento) {\r\n\t\tthis.formValido = $evento;\r\n\t}\r\n\r\n\r\n\t/* *** Mouse ScrollOver *** */\r\n\tmostrarEditar(espacio) {\r\n\t\t// Muestra u Oculta el boton editar al pasar el raton por encima del elemento\r\n\t\tespacio.editarVisible = true;\r\n\t}\r\n\r\n\tocultarEditar(espacio) {\r\n\t\t// Muestra u Oculta el boton editar al pasar el raton por encima del elemento\r\n\t\tespacio.editarVisible = false;\r\n\t}\r\n\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/SelectorEspacios/SelectorEspacio.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/ContenidosParent.component.html\n// module id = ../../../../../src/app/views/contenidos/ContenidosParent.component.html\n// module chunks = main","import { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\ttemplateUrl: './ContenidosParent.component.html'\r\n})\r\n\r\nexport class ContenidosParentComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tconsole.log('*** ContenidosParentComponent ***');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/ContenidosParent.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n {{'RutasSugeridas.contenidos' | translate}}: {{contenidosSeleccionados.length}}\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n {{getMensajesExpirados(rowData[col.field]).label |translate}}\\r\\n
        \\r\\n
        \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n

      {{\\\"Contenidos.contenidos\\\" | translate}}

      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n {{\\\"Contenidos.contenidos\\\" | translate}} {{filtro?.total}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n\\r\\n
        {{ele.Nombre}}
        \\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n
        \\r\\n\\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n {{rowData[col.field].Nombre}}\\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n {{getMensajesExpirados(rowData[col.field]).label |translate}}\\r\\n
        \\r\\n
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n {{'Contenidos.Alta' | translate}}:{{rowData.FechaAlta | date: 'dd-MM-yyyy' }}\\r\\n
        \\r\\n
        \\r\\n {{'Contenidos.Baja' | translate}}:{{rowData.FechaBaja | date: 'dd-MM-yyyy' }}\\r\\n
        \\r\\n\\r\\n\\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n

      {{\\\"Contenidos.contenidos\\\" | translate}}

      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\r\\n {{\\\"Contenidos.contenidos\\\" | translate}} {{filtro?.total}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n {{ contenidoEstado.label | translate }}\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n\\r\\n \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n
        \\r\\n \\r\\n
        \\r\\n\\r\\n
        {{ele.Nombre}}
        \\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n
        \\r\\n\\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n\\r\\n
        \\r\\n \\r\\n {{rowData[col.field].Nombre}}\\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n {{getMensajesExpirados(rowData[col.field]).label |translate}}\\r\\n
        \\r\\n
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n {{'Contenidos.Alta' | translate}}:{{rowData.FechaAlta | date: 'dd-MM-yyyy' }}\\r\\n
        \\r\\n
        \\r\\n {{'Contenidos.Baja' | translate}}:{{rowData.FechaBaja | date: 'dd-MM-yyyy' }}\\r\\n
        \\r\\n\\r\\n\\r\\n\\r\\n
        \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n
        \\r\\n {{rowData[col.field]}}\\r\\n
        \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.html\n// module id = ../../../../../src/app/views/contenidos/contenidos.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".th-tipo-corto1 {\\n width: 55px; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.scss\n// module id = ../../../../../src/app/views/contenidos/contenidos.component.scss\n// module chunks = main","import { Component, OnInit, ViewEncapsulation, OnDestroy, ViewChild, ViewChildren } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params, NavigationStart, NavigationEnd } from '@angular/router';\r\n\r\nimport { Message } from 'primeng/primeng';\r\nimport { ConfirmationService } from 'primeng/api';\r\n\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Contenido } from '../../domain/Contenido';\r\n\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\n\r\nimport * as allSettled from 'promise-all-settled';\r\n\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\n\r\nimport { Permisos, PermisosService } from '../../providers/authentication/permisos.service';\r\nimport { AppComponent } from '../../app.component';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { Exportar } from '../../service/exportar.service';\r\nimport { SortableColumn } from 'primeng/table';\r\n\r\n// import { GeoposicionarComponent } from '../../modules/componentes.module';\r\nimport * as XLSX from 'xlsx';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { Constantes } from '../../domain/constantes';\r\n\r\nconst FILTRO_INI = JSON.stringify({\r\n\twhere: {\r\n\t\tTitulo: '',\r\n\t\testado: 3, // ACTIVO\r\n\t\t// expirado: new Predicate('FechaAlta', '>=', '1900-01-01'),\r\n\t\tDesde: '',\r\n\t\tHasta: '',\r\n\t\tElementoAsignado: '',\r\n\t\tIdAlternativo: '',\r\n\t\tTipologia: '',\r\n\t\tActivos: false\r\n\t},\r\n\torder: 'Titulo DESC',\r\n\ttop: 10,\r\n\tpage: 0,\r\n\ttotal: 0\r\n});\r\nlet _where;\r\n\r\n\r\n\r\n@Component({\r\n\ttemplateUrl: './contenidos.component.html',\r\n\tstyles: [`\r\n .cars-datalist ul {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n @media (max-width:640px) {\r\n .cars-datalist .text-column {\r\n text-align: center;\r\n }\r\n }\r\n `],\r\n\tstyleUrls: ['./contenidos.component.scss'],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\tproviders: [ConfirmationService, Exportar]\r\n})\r\n\r\nexport class ContenidosComponent implements OnInit, OnDestroy {\r\n\r\n\t@ViewChild('dt_contenidos') dt_contenidos;\r\n\t@ViewChild('dt_destacados') dt_destacados;\r\n\t@ViewChild('pg_contenidos') pg_contenidos;\r\n\t@ViewChild('dd_tipologia') dd_tipologia;\r\n\r\n\tpublic EXPIRADO = 0;\r\n\t// public PROXIMO = 1;\r\n\tpublic EXPIRA = 2;\r\n\tpublic ACTIVO = 3;\r\n\tpublic TODOS = 4;\r\n\tpublic PROXIMOACT = 5;\r\n\r\n\tpublic filtro;\r\n\t// JSON.parse(FILTRO_INI);\r\n\r\n\r\n\r\n\tprivate clasesMensajesExpirados = ['ui-messages-error ui-corner-all', 'ui-messages-warning ui-corner-all', '', 'ui-messages-success ui-corner-all'];\r\n\r\n\tpublic tipologiasContenido = [];\r\n\tpublic tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\r\n\tpublic mensajesExpirados = [\r\n\t\t{\r\n\t\t\ttipo: 'TODOS',\r\n\t\t\tvalue: 4,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoTodos'\r\n\t\t},\r\n\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all', 'ui-messages-success'],\r\n\t\t\tlabel: 'Contenidos.estadoActivo'\r\n\t\t},\r\n\t\t/*\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoProximo'\r\n\t\t},*/\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoExpirado'\r\n\t\t}\r\n\t];\r\n\r\n\tpublic mensajesExpiradosMod = this.mensajesExpirados[2];\r\n\r\n\tpublic idSeleccionado;\r\n\tpublic tipoSeleccionado;\r\n\r\n\tpublic displayDialogPrioridadDestacar = false;\r\n\tpublic contenidosSeleccionados = [];\r\n\r\n\tpublic contenidosDestacar = [];\r\n\tpublic contenidosDestacarFiltrados = [];\r\n\r\n\tpublic seccionSeleccionada;\r\n\tpublic alaSeleccionada;\r\n\tpublic espacioSeleccionado;\r\n\r\n\r\n\tmsgs: Message[];\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\r\n\tpublic selectedNode: Contenido;\r\n\tpublic contenidos: Contenido[] = [];\r\n\tpublic contenidosFiltrados: Contenido[] = [];\r\n\tpublic cols: any[];\r\n\tpublic cols_destacar: any[];\r\n\tpublic cols_imprimir: any[];\r\n\tpublic permisos: Permisos = new Permisos();\r\n\tdisableTipologia: boolean = false;\r\n\ttriggerPageChange: boolean = true;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\thayTipologias: boolean;\r\n\r\n\tcsvContent;\r\n\toContenidoErroneos = [];\r\n\toCamposErroneos = [];\r\n\tdisplayDialogBidi: Boolean;\r\n\tcontenidoSeleccionado: Contenido;\r\n\tcsvRecords: any[] = [];\r\n\tarrayBuffer: any;\r\n\tfile: File;\r\n\tfilelist: any[];\r\n\tidTipologiaParam: any = '';\r\n\tcargandoContenidos = false;\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate exportador: Exportar\r\n\t) {\r\n\r\n\t\tthis.cols = [\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen')}, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')}, // clases: ['th-tipo-corto2'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TIPOLOGIA_CONTENIDO', fieldSort: 'Tipologia', header: this.translate.instant('Contenidos.tipologia')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'ElementoAsignado', fieldSort: '', header: this.translate.instant('Contenidos.elementosasignados')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'MostrarEdicion', fieldSort: '', header: '' }\r\n\t\t];\r\n\t\tthis.cols_imprimir = [\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')}, // clases: ['th-tipo-corto2'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'TIPOLOGIA_CONTENIDO', fieldSort: 'Tipologia', header: this.translate.instant('Contenidos.tipologia')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'ElementoAsignado', fieldSort: '', header: this.translate.instant('Contenidos.elementosasignados')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'MostrarEdicion', fieldSort: '', header: this.translate.instant('Contenidos.tituloBotonQR') }\r\n\t\t];\r\n\t\tthis.cols_destacar = [\r\n\t\t\t{ field: 'Drag', header: '' },\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen')}, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')} // clases: ['th-tipo-corto2'] }\r\n\t\t];\r\n\r\n\t\t// this.filtro = this.authService.getFiltroContenido();\r\n\t\tthis.filtro = this.authService.getFiltroContenido();\r\n\t\t// this.filtro = this.authService.setFiltro(this.filtro);\r\n\t\t// this.filtro.where.expirado = new Predicate('FechaAlta', '>=', '1900-01-01');\r\n\r\n\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Contenidos.contenidos') }\r\n\t\t]);\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\r\n\t\tconst _filtroSaved = this.authService.getFiltroContenido();\r\n\t\t// Contenido();\r\n\r\n\t\tif (_filtroSaved){\r\n\t\t\tthis.filtro = _filtroSaved;\r\n\t\t}\r\n\r\n\t\tthis.route.queryParams\r\n\t\t.subscribe(params => {\r\n\r\n\t\t\tthat.entityManager.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO();\r\n\r\n\t\t\t})\r\n\t\t\t.then(function(tipologias){\r\n\t\t\t\tconst aux = [{ Nombre: that.translate.instant('Contenidos.estadoTodos') }];\r\n\t\t\t\tif (tipologias) {\r\n\t\t\t\t\tthat.tipologiasContenido = aux.concat(tipologias);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst _filtroSaved = that.authService.getFiltroContenido();\r\n\t\t\t\tthat.route.params\r\n\t\t\t\t.subscribe( params => {\r\n\r\n\t\t\t\t\tthat.hayTipologias = tipologias !== undefined && tipologias.length > 1;\r\n\r\n\t\t\t\t\tthat.idTipologiaParam = params['idTipologia'];\r\n\t\t\t\t\tif (that.idTipologiaParam === undefined && _filtroSaved.where.Tipologia === undefined){\r\n\t\t\t\t\t\tthat.tipologiasContenidoSeleccionada = that.tipologiasContenido.find(x => x.Nombre === _filtroSaved.where.Tipologia);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(that.idTipologiaParam === undefined && _filtroSaved.where.Tipologia !== undefined){\r\n\t\t\t\t\t\tthat.tipologiasContenidoSeleccionada = that.tipologiasContenido.find(x => x.Nombre === _filtroSaved.where.Tipologia);\r\n\t\t\t\t\t\tthat.filtro.where.Tipologia = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(that.idTipologiaParam === that.translate.instant('MenuLateral.Todos')){\r\n\t\t\t\t\t\tthat.tipologiasContenidoSeleccionada = that.tipologiasContenido.find(x => x.Nombre === that.idTipologiaParam);\r\n\t\t\t\t\t\tthat.filtro.where.Tipologia = that.idTipologiaParam;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthat.tipologiasContenidoSeleccionada = that.tipologiasContenido.find(x => x.Id === that.idTipologiaParam );\r\n\t\t\t\t\t\tthat.filtro.where.Tipologia = that.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.idTipologiaParam === that.translate.instant('MenuLateral.Todos') || that.idTipologiaParam === undefined){\r\n\t\t\t\t\t\tthat.disableTipologia = false;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tthat.disableTipologia = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthat.onInputSearchChange(!that.cargandoContenidos);\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t\t// return that.loadContenido();\r\n\t\t\t})\r\n\t\t\t.then(function(estado){\r\n\t\t\t\t/*that.hayTipologias = tipologias !== undefined && tipologias.length > 1;*/\r\n\t\t\t\tthat.mensajesExpiradosMod = that.mensajesExpirados.find(x => x.value + '' === that.filtro.where.estado);\r\n\t\t\t\t// return that.loadContenido();\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\tthat.onIdiomaChange({value: that.idiomaSeleccionado});\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tonPageChange(evento) {\r\n\t\tconsole.log(evento);\r\n\r\n\t\tthis.filtro.page = evento.page;\r\n\t\tif (this.disableTipologia === true){\r\n\t\t\tthis.filtro.where.Tipologia = this.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t}\r\n\t\tif (this.triggerPageChange){\r\n\r\n\t\t\tthis.loadContenido();\r\n\t\t\t// this.guardarfiltrado();\r\n\t\t}else{\r\n\t\t\tthis.triggerPageChange = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonInputSearchChange(load = true){\r\n\t\t_where = this.filtro.where;\r\n\t\tif (this.disableTipologia === true){\r\n\t\t\tthis.filtro.where.Tipologia = this.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t}\r\n\t\tif (load) {\r\n\t\t\tthis.loadContenido();\r\n\t\t}\r\n\t\tthis.guardarfiltrado();\r\n\t}\r\n\tguardarfiltrado(){\r\n\t\tthis.authService.setFiltroContenido(this.filtro);\r\n\t}\r\n\tclearFilter(){\r\n\t\tconsole.log('Se va a limpiar el filtro');\r\n\t\tthis.authService.resetFiltroContenido();\r\n\t\tthis.filtro = this.authService.getFiltroContenido();\r\n\t\tthis.mensajesExpiradosMod = this.mensajesExpirados[2];\r\n\t\tif (this.disableTipologia === false){\r\n\t\t\tthis.tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\t\t}\r\n\r\n\t\tthis.loadContenido();\r\n\t}\r\n\r\n\tonSort(evento) {\r\n\t\tconsole.log(evento);\r\n\t\tlet field = evento.field;\r\n\t\tif (field === 'expirado') {\r\n\t\t\tfield = 'Estado';\r\n\t\t\t// \tfield = 'FechaBaja';\r\n\r\n\t\t}\r\n\t\tconst sentido = evento.order > 0 ? 'ASC' : 'DESC';\r\n\t\tconst actual = field + ' ' + sentido;\r\n\t\tif (actual !== this.filtro.order) {\r\n\t\t\tthis.filtro.order = actual;\r\n\t\t\tthis.loadContenido();\r\n\t\t}\r\n\t}\r\n\r\n\tloadContenido(exportar?: boolean) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tif (this.cargandoContenidos) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.cargandoContenidos = true;\r\n\r\n\t\tconst columnas = [];\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst _elementoAsignado = this.filtro.where['ElementoAsignado'];\r\n\t\tconst _titulo = this.filtro.where['Titulo'];\r\n\t\tconst _idAlternativo = this.filtro.where['IdAlternativo'];\r\n\t\tlet _tipologia;\r\n\r\n\t\tif(this.idTipologiaParam === undefined && this.tipologiasContenidoSeleccionada === undefined){\r\n\t\t\t_tipologia = '';\r\n\t\t}else if(this.idTipologiaParam === undefined && this.tipologiasContenidoSeleccionada !== undefined && this.tipologiasContenidoSeleccionada.Nombre !== that.translate.instant('MenuLateral.Todos')){\r\n\r\n\t\t\t_tipologia = this.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t}else if(this.idTipologiaParam === undefined && this.tipologiasContenidoSeleccionada.Nombre === that.translate.instant('MenuLateral.Todos')){\r\n\t\t\t_tipologia = '';\r\n\t\t}else if(this.idTipologiaParam === that.translate.instant('MenuLateral.Todos') && this.tipologiasContenidoSeleccionada.Nombre === that.translate.instant('MenuLateral.Todos')){\r\n\t\t\t_tipologia = '';\r\n\t\t}else{\r\n\t\t\t_tipologia = this.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t}\r\n\r\n\t\tif (this.filtro.where.Tipologia === that.translate.instant('MenuLateral.Todos') || this.filtro.where.Tipologia === that.translate.instant('MenuLateral.Todos')){\r\n\t\t\tthis.disableTipologia = false;\r\n\t\t}\r\n\r\n\r\n\t\tlet size = 10;\r\n\t\tlet first = this.filtro.page * size;\r\n\r\n\t\tif (exportar) {\r\n\t\t\tfirst = 0;\r\n\t\t\tsize = 1000000000000;\r\n\t\t}\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst _estado = this.filtro.where.estado;\r\n\t\tconst Desde = this.filtro.Desde;\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\tlet ids = [];\r\n\t\tconst excluidos = new Array();\r\n\r\n\t\tthat.comprobarPermisos()\r\n\t\t.then(() => {\r\n\t\t\tconst idIdioma = this.idiomaSeleccionado.ENTIDAD.Id;\r\n\t\t\t// that.tipologiasContenidoSeleccionada = this.tipologiasContenido[0];\r\n\t\t\tif (that.permisos.Gestion_Activos === 2) {\r\n\t\t\t\tthis.filtro.Activos = true;\r\n\t\t\t\tthis.authService.setFiltroContenido(this.filtro);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.sws.wsBuscarContenidos(token, idEspacio, idIdioma, _titulo, _estado, Desde, Hasta, _idAlternativo, _tipologia, _elementoAsignado, first, size, orderBy, order, excluidos, this.filtro.Activos).toPromise()\r\n\t\t})\r\n\t\t.then(function(resp){\r\n\r\n\t\t\tids = resp.lista;\r\n\r\n\t\t\tthat.filtro.total = resp.total;\r\n\r\n\t\t\tlet includes = 'FOTOS, ';\r\n\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ALAS.ALA.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION.IDIOMAS, ';\r\n\t\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO.IDIOMAS';\r\n\r\n\t\t\treturn that.entityManager.getContenidosById(ids, includes, columnas);\r\n\t\t})\r\n\t\t.then(function (data) {\r\n\t\t\tthat.contenidos = [];\r\n\t\t\tthat.contenidosFiltrados = [];\r\n\r\n\t\t\tids.forEach(id => {\r\n\t\t\t\tconsole.log(id);\r\n\t\t\t});\r\n\t\t\t// Ordenamos los contenidos segun el orsen en el que obtubimos los id ya que el breeze no nos devuelve los contenidos en el orden de los Ids\r\n\t\t\tdata = data.sort(function(a, b){\r\n\t\t\t\treturn ids.indexOf(a.Id) - ids.indexOf(b.Id);\r\n\t\t\t});\r\n\t\t\tdata.forEach(cont => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont);\r\n\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\tcontenido.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthat.contenidos.push(contenido);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ex) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_CARGAR'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.contenidosFiltrados = that.contenidos.filter( c => c.TIPOLOGIA_CONTENIDO.VisibilidadListaContenidosWeb);\r\n\t\t\tthat.dt_contenidos.reset();\r\n\t\t\tthat.dt_destacados.reset();\r\n\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.then(function () {\r\n\r\n\t\t\t// Traducimos Contenidos al idioma seleccionado\r\n\t\t\tthat.contenidos = that.idiomaService.traducirContenidos(that.contenidos, that.idiomaSeleccionado);\r\n\r\n\t\t\tif (exportar){\r\n\t\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaContenidos(that.contenidos, that.idiomaSeleccionado), 'Contenidos');\r\n\t\t\t}\r\n\r\n\t\t\t// Ocultamos Spinner\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\r\n\t\t\tthat.pg_contenidos.paginatorState.page = that.filtro.page;\r\n\t\t\tthat.pg_contenidos.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\tthat.pg_contenidos.changePage(that.filtro.page);\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tthat.cargandoContenidos = false\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tloadContenidoExportar() {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst columnas = [];\r\n\t\tconst token = this.authService.getToken();\r\n\r\n\t\tconst idIdioma = this.idiomaSeleccionado.ENTIDAD.Id;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst _elementoAsignado = this.filtro.where['ElementoAsignado'];\r\n\t\tconst _titulo = this.filtro.where['Titulo'];\r\n\t\tconst _idAlternativo = this.filtro.where['IdAlternativo'];\r\n\t\tlet _tipologia;\r\n\r\n\t\tconst aux = that.translate.instant('Contenidos.estadoTodos');\r\n\t\tif (this.tipologiasContenidoSeleccionada && this.tipologiasContenidoSeleccionada.Nombre !== aux){\r\n\t\t\t _tipologia = this.tipologiasContenidoSeleccionada.Nombre;\r\n\t\t}\r\n\r\n\t\t/*if (this.filtro.where.Tipologia && this.translate.instant('Contenidos.estadoTodos') !== this.filtro.where.Tipologia.toString()) {\r\n\t\t\t_tipologia = this.filtro.where['Tipologia'];\r\n\t\t}*/\r\n\r\n\t\tconst first = 0;\r\n\t\tconst size = 1000000000000;\r\n\r\n\r\n\t\tconst orderBy = this.filtro.order.split(' ')[0];\r\n\t\tconst order = this.filtro.order.split(' ')[1];\r\n\r\n\t\tconst _estado = this.filtro.where.estado;\r\n\t\tconst Desde = this.filtro.Desde;\r\n\t\tconst Hasta = this.filtro.Hasta;\r\n\r\n\t\tconst ids = [];\r\n\r\n\t\tconst excluidos = new Array();\r\n\r\n\t\tthis.sws.wsBuscarContenidosExportar(token, idEspacio, idIdioma, _titulo, _estado, Desde, Hasta, _idAlternativo, _tipologia, _elementoAsignado, first, size, orderBy, order, excluidos).toPromise()\r\n\t\t.then(function (data) {\r\n\t\t\tthat.contenidos = data;\r\n\r\n\t\t\tthat.exportador.exportarXLS(that.exportador.generarHojaContenidosExportar(that.contenidos), 'Contenidos');\r\n\r\n\t\t\tthat.triggerPageChange = false;\r\n\r\n\t\t\tthat.pg_contenidos.paginatorState.page = that.filtro.page;\r\n\t\t\tthat.pg_contenidos.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\tthat.pg_contenidos.changePage(that.filtro.page);\r\n\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n\tdate2String(_date: Date) {\r\n\t\tif (!_date){\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tconst _d = _date.getDate();\r\n\t\tconst _m = _date.getMonth() + 1;\r\n\t\tconst _y = _date.getFullYear();\r\n\r\n\t\tlet _fd = '' + _d;\r\n\t\tlet _fm = '' + _m;\r\n\t\tconst _fy = '' + _y;\r\n\r\n\t\tif (_d < 10) {\r\n\t\t\t_fd = '0' + _d;\r\n\t\t}\r\n\r\n\t\tif (_m < 10) {\r\n\t\t\t_fm = '0' + _m;\r\n\t\t}\r\n\r\n\t\treturn _fd + '/' + _fm + '/' + _fy;\r\n\r\n\t}\r\n\r\n\taddNuevoContenido() {\r\n\t\tif (this.hayTipologias) {\r\n\t\t\tthis.router.navigate(['/contenidos/nuevo']); // , { id: undefined, entidad: undefined }]);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('Contenidos.avisonotipologia'));\r\n\t\t}\r\n\t}\r\n\r\n\tmostrarEditar(contenido: Contenido) {\r\n\t\tthis.selectedNode = contenido;\r\n\t\tthis.idSeleccionado = contenido.ENTIDAD.Id;\r\n\t\tthis.tipoSeleccionado = contenido.ENTIDAD.constructor.name.split('_', 2)[0];\r\n\t\tcontenido.MostrarEdicion = true;\r\n\t}\r\n\r\n\tocultarEditar(contenido: Contenido) {\r\n\t\tthis.selectedNode = undefined;\r\n\t\tthis.idSeleccionado = undefined;\r\n\t\tcontenido.MostrarEdicion = false;\r\n\t}\r\n\r\n\teditarContenido(): boolean {\r\n\t\tlet ok = false;\r\n\t\tthis.router.navigate(['/contenidos/editar', { id: this.idSeleccionado, entidad: this.tipoSeleccionado }]);\r\n\t\tok = true;\r\n\t\tthis.onInputSearchChange();\r\n\t\tthis.filtro.where = _where;\r\n\t\tconst filtrado = this.loadContenido();\r\n\t\treturn ok;\r\n\t}\r\n\r\n\tmostrarBidi(contenido: Contenido){\r\n\t\tconsole.log('Se va a mostrar Bidi como pop-up');\r\n\t\tthis.contenidoSeleccionado = contenido;\r\n\t\t// this.blockUI = document.getElementsByClassName('contenido-tabla')[0] as HTMLElement;\r\n\t\tthis.displayDialogBidi = true;\r\n\r\n\t}\r\n\tocultarBidi(){\r\n\t\tthis.contenidoSeleccionado = null;\r\n\t\tthis.displayDialogBidi = false;\r\n\t}\r\n\teliminarContenido(contenido: Contenido) {\r\n\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tconst that = this;\r\n\t\t\t\t// Mostramos Spinner\r\n\t\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\t\tthis.entityManager.deleteCONTENIDO(contenido.ENTIDAD)\r\n\t\t\t\t// this.entityManager.saveChanges()\r\n\t\t\t\t.then(function (resp) {\r\n\r\n\t\t\t\t\tif (resp === false){\r\n\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_CONTENIDOS_BORRAR'));\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthat.contenidos = that.contenidos.filter((val, i) => val.ENTIDAD.Id !== contenido.ENTIDAD.Id);\r\n\t\t\t\t\tthat.filtro.total--;\r\n\r\n\t\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('MensajesConfirmacion.MENSAJE_SUCCES'));\r\n\r\n\t\t\t\t\tif (that.contenidos.length === 0 && that.filtro.page > 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthat.filtro.page--;\r\n\r\n\t\t\t\t\t\tthat.pg_contenidos.paginatorState.page = that.filtro.page;\r\n\t\t\t\t\t\tthat.pg_contenidos.paginatorState.totalRecords = that.filtro.total;\r\n\r\n\t\t\t\t\t\tthat.pg_contenidos.changePage(that.filtro.page);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn that.loadContenido();\r\n\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\t// Mostramos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t// Mostramos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesEmergentes.MENSAJE_ERROR_ELIMINAR_CONTENIDO'));\r\n\t\t\t\t\tconsole.log(e.status);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* FILTROS DE BUSQUEDA */\r\n\tprivate filtra(filter, value, col) {\r\n\t\tif (filter === undefined || filter === null || filter.trim() === '') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (value === undefined || value === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst filterValue = filter.toString().toLowerCase().normalizar();\r\n\r\n\t\tconst tipo = typeof value[col];\r\n\r\n\t\tif (tipo === 'string') {\r\n\t\t\treturn value[col].toLowerCase().normalizar().indexOf(filterValue) !== -1;\r\n\t\t}\r\n\r\n\t\tconst elementos = value[col].filter(function (elem) {\r\n\t\t\treturn (elem.Nombre.toString().normalizar().toLowerCase().indexOf(filterValue) !== -1) || (elem.Tipo.toString().normalizar().toLowerCase().indexOf(filterValue) !== -1);\r\n\t\t});\r\n\r\n\t\treturn elementos.length > 0;\r\n\t}\r\n\r\n\tfiltraConjunto(filter, lista, op) {\r\n\t\tconst that = this;\r\n\r\n\t\tthis.contenidosFiltrados = this.contenidos.filter(function (value) {\r\n\t\t\tfor (const i in lista) {\r\n\t\t\t\tif (that.filtra(filter, value, lista[i])) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tfilterGenerico(filter, col, op) {\r\n\t\tconst that = this;\r\n\t\tthis.loadContenido();\r\n\t}\r\n\r\n\tcalculaBreezeDate(diff){\r\n\t\tconst now = new Date();\r\n\t\tnow.setDate(now.getDate() + diff);\r\n\r\n\t\treturn now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate();\r\n\t}\r\n\r\n\tfilterEstado(filter) {\r\n\t\tthis.filtro.where.estado = filter.value;\r\n\t\tthis.filtro.page = 0;\r\n\t\tthis.guardarfiltrado();\r\n\t\tthis.loadContenido();\r\n\t}\r\n\r\n\tfilterTipologia(TIPOLOGIA_CONTENIDO){\r\n\t\tconst valorFiltrado = TIPOLOGIA_CONTENIDO.Nombre;\r\n\r\n\t\tthis.filtro.where.Tipologia = valorFiltrado;\r\n\t\tthis.filtro.page = 0;\r\n\t\tthis.guardarfiltrado();\r\n\t\tthis.loadContenido();\r\n\t}\r\n\tgetMensajesExpirados(_val) {\r\n\t\t//console.log(_val)\r\n\t\tfor (const i in this.mensajesExpirados) {\r\n\t\t\tif (this.mensajesExpirados[i].value === _val) {\r\n\t\t\t\treturn this.mensajesExpirados[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n/* ******** PRIORIDAD DESTACADA ******** */\r\n\tmostrarContenidosSeccion(rowData){\r\n\t\tconsole.log('Editar: ' + rowData.Nombre);\r\n\t\trowData.MostrarEdicion = true;\r\n\t\tif (rowData.Tipo === 'SECCION') {\r\n\t\t\tthis.seccionSeleccionada = rowData.ENTIDAD.SECCION;\r\n\t\t}\r\n\t\tif (rowData.Tipo === 'ALA') {\r\n\t\t\tthis.alaSeleccionada = rowData.ENTIDAD.ALA;\r\n\t\t}\r\n\t\tif (rowData.Tipo === 'ESPACIO') {\r\n\t\t\tthis.espacioSeleccionado = rowData.ENTIDAD.ESPACIO;\r\n\t\t}\r\n\t}\r\n\r\n\tocultarContenidosSeccion(rowData){\r\n\t\tconsole.log('Dejar: ' + rowData.Nombre);\r\n\t\trowData.MostrarEdicion = false;\r\n\t\t// this.seccionSeleccionada = {};\r\n\t}\r\n\r\n\tmostrarFormularioPrioridadDestacar(elementoAsociado){\r\n\t\tconst that = this;\r\n\r\n\t\tthis.alaSeleccionada = undefined;\r\n\t\tthis.seccionSeleccionada = undefined;\r\n\t\tthis.espacioSeleccionado = undefined;\r\n\r\n\t\tif (elementoAsociado.Tipo === 'SECCION') {\r\n\t\t\t// Mostramos Spinner\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t\tthis.seccionSeleccionada = elementoAsociado.ENTIDAD.SECCION;\r\n\r\n\t\t\tthis.contenidosSeleccionados = [];\r\n\t\t\tthis.contenidosDestacar = [];\r\n\r\n\t\t\tconst includes = 'CONTENIDOS.CONTENIDO';\r\n\r\n\t\t\tconst predicado = new Predicate('Id', '==', this.seccionSeleccionada.Id);\r\n\r\n\t\t\tthis.entityManager.getSECCION(predicado, includes)\r\n\t\t\t.then(function(secciones){\r\n\t\t\t\tif (secciones) {\r\n\r\n\t\t\t\t\tthat.seccionSeleccionada = secciones[0];\r\n\t\t\t\t\tthat.seccionSeleccionada.CONTENIDOS.forEach(content => {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t// const contenidoForm = new Contenido(content);\r\n\t\t\t\t\t\t\tconst contenidoForm = new Contenido().fromENTIDAD(content.CONTENIDO);\r\n\r\n\t\t\t\t\t\t\tif (contenidoForm.Imagen === null || contenidoForm.Imagen === undefined || contenidoForm.Imagen === ''){\r\n\t\t\t\t\t\t\t\tcontenidoForm.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst seccion_has_contenido = contenidoForm.ENTIDAD.SECCIONES.filter(x => x.IdSeccion === that.seccionSeleccionada.Id)[0];\r\n\r\n\t\t\t\t\t\t\tif (seccion_has_contenido && seccion_has_contenido.PrioridadDestacado !== 0) {\r\n\t\t\t\t\t\t\t\tthat.contenidosDestacar.push(contenidoForm);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthat.contenidosSeleccionados.push(contenidoForm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t\t\tthat.appComponent.showError(ex);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthat.contenidosSeleccionados.sort( (one: any, two: any) => {\r\n\t\t\t\t\t\tconst seccion_has_contenido_1 = one.ENTIDAD.SECCIONES.filter(x => x.IdSeccion === that.seccionSeleccionada.Id)[0];\r\n\t\t\t\t\t\tconst seccion_has_contenido_2 = two.ENTIDAD.SECCIONES.filter(x => x.IdSeccion === that.seccionSeleccionada.Id)[0];\r\n\r\n\t\t\t\t\t\treturn seccion_has_contenido_1.Prioridad > seccion_has_contenido_2.Prioridad ? 1 : -1;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthat.displayDialogPrioridadDestacar = true;\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (elementoAsociado.Tipo === 'ALA') {\r\n\t\t\t// Mostramos Spinner\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\tthis.alaSeleccionada = elementoAsociado.ENTIDAD.ALA;\r\n\r\n\t\t\tthis.contenidosSeleccionados = [];\r\n\t\t\tthis.contenidosDestacar = [];\r\n\t\t\tconst includes = 'CONTENIDOS.CONTENIDO';\r\n\r\n\t\t\tconst predicado = new Predicate('Id', '==', this.alaSeleccionada.Id);\r\n\r\n\t\t\tthis.entityManager.getALA(predicado, includes)\r\n\t\t\t.then(function(ala){\r\n\t\t\t\tthat.alaSeleccionada = ala[0];\r\n\t\t\t\tthat.alaSeleccionada.CONTENIDOS.forEach(content => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\t// const contenidoForm = new Contenido(content);\r\n\t\t\t\t\t\tconst contenidoForm = new Contenido().fromENTIDAD(content.CONTENIDO);\r\n\t\t\t\t\t\tif (contenidoForm.Imagen === null || contenidoForm.Imagen === undefined || contenidoForm.Imagen === ''){\r\n\t\t\t\t\t\t\tcontenidoForm.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconst ala_has_contenido = contenidoForm.ENTIDAD.ALAS.filter(x => x.IdAla === that.alaSeleccionada.Id)[0];\r\n\r\n\t\t\t\t\t\tif (ala_has_contenido && ala_has_contenido.PrioridadDestacado !== 0) {\r\n\t\t\t\t\t\t\tthat.contenidosDestacar.push(contenidoForm);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthat.contenidosSeleccionados.push(contenidoForm);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t\tthat.appComponent.showError(ex);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t\tthat.contenidosSeleccionados.sort( (one: any, two: any) => {\r\n\t\t\t\t\tconst ala_has_contenido_1 = one.ENTIDAD.ALAS.filter(x => x.IdAla === that.alaSeleccionada.Id)[0];\r\n\t\t\t\t\tconst ala_has_contenido_2 = two.ENTIDAD.ALAS.filter(x => x.IdAla === that.alaSeleccionada.Id)[0];\r\n\r\n\t\t\t\t\treturn ala_has_contenido_1.Prioridad > ala_has_contenido_2.Prioridad ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t\tthat.displayDialogPrioridadDestacar = true;\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (elementoAsociado.Tipo === 'ESPACIO') {\r\n\t\t\t// Mostramos Spinner\r\n\t\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\t\tthis.espacioSeleccionado = elementoAsociado.ENTIDAD.ESPACIO;\r\n\r\n\t\t\tthis.contenidosSeleccionados = [];\r\n\t\t\tthis.contenidosDestacar = [];\r\n\t\t\tconst includes = 'CONTENIDOS.CONTENIDO';\r\n\r\n\t\t\tconst predicado = new Predicate('Id', '==', this.espacioSeleccionado.Id);\r\n\r\n\t\t\tthis.entityManager.getESPACIO(predicado, includes)\r\n\t\t\t.then(function(espacio){\r\n\t\t\t\tthat.espacioSeleccionado = espacio[0];\r\n\t\t\t\tthat.espacioSeleccionado.CONTENIDOS.forEach(content => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst contenidoForm = new Contenido().fromENTIDAD(content.CONTENIDO);\r\n\t\t\t\t\t\tif (contenidoForm.Imagen === null || contenidoForm.Imagen === undefined || contenidoForm.Imagen === ''){\r\n\t\t\t\t\t\t\tcontenidoForm.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst espacio_has_contenido = contenidoForm.ENTIDAD.ESPACIOS.filter(x => x.IdEspacio === that.espacioSeleccionado.Id)[0];\r\n\r\n\t\t\t\t\t\tif (espacio_has_contenido && espacio_has_contenido.PrioridadDestacado !== 0) {\r\n\t\t\t\t\t\t\tthat.contenidosDestacar.push(contenidoForm);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthat.contenidosSeleccionados.push(contenidoForm);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcatch (ex) {\r\n\t\t\t\t\t\tthat.appComponent.showError(ex);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t\tthat.contenidosSeleccionados.sort( (one: any, two: any) => {\r\n\t\t\t\t\tconst espacio_has_contenido_1 = one.ENTIDAD.ESPACIOS.filter(x => x.IdEspacio === that.espacioSeleccionado.Id)[0];\r\n\t\t\t\t\tconst espacio_has_contenido_2 = two.ENTIDAD.ESPACIOS.filter(x => x.IdEspacio === that.espacioSeleccionado.Id)[0];\r\n\r\n\t\t\t\t\treturn espacio_has_contenido_1.Prioridad > espacio_has_contenido_2.Prioridad ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t\tthat.displayDialogPrioridadDestacar = true;\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tocultarFormularioPrioridadDestacar(){\r\n\t\tthis.displayDialogPrioridadDestacar = false;\r\n\r\n\r\n\t}\r\n\r\n\tonMostrarFormularioPrioridadDestacar($event){\r\n\r\n\t\tconsole.log('ELEMENTO A EDITAR');\r\n\r\n\t}\r\n\r\n\tonOcultarFormularioPrioridadDestacar($event){\r\n\r\n\t}\r\n\r\n\tguardarDestacados(){\r\n\t\t// this.contenidosSeleccionados\r\n\r\n\t\tif (this.seccionSeleccionada) {\r\n\t\t\tlet i = 1;\r\n\t\t\tconst Destacar_aux = [];\r\n\t\t\tconst ContenidosSeleccionados_aux = [];\r\n\r\n\t\t\t// this.contenidosDestacar\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst destacado = this.contenidosDestacar.filter( x => x.Id === contenido.Id)[0];\r\n\t\t\t\tif (destacado !== undefined) {\r\n\t\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.SECCIONES.filter( x => x.IdSeccion === this.seccionSeleccionada.Id)[0];\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = i;\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\t\tDestacar_aux.push(contenido);\r\n\t\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\ti = Destacar_aux.length + 1;\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.SECCIONES.filter( x => x.IdSeccion === this.seccionSeleccionada.Id)[0];\r\n\t\t\t\tconst destacado = Destacar_aux.filter( x => x.Id === contenido.Id)[0];\r\n\r\n\t\t\t\t// No es destacado\r\n\t\t\t\tif (destacado === undefined) {\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = 0;\r\n\t\t\t\t\tContenidosSeleccionados_aux.push(contenido);\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.alaSeleccionada){\r\n\r\n\r\n\t\t\tlet i = 1;\r\n\t\t\tconst Destacar_aux = [];\r\n\t\t\tconst ContenidosSeleccionados_aux = [];\r\n\r\n\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst destacado = this.contenidosDestacar.filter( x => x.Id === contenido.Id)[0];\r\n\t\t\t\tif (destacado !== undefined) {\r\n\t\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.ALAS.filter( x => x.IdAla === this.alaSeleccionada.Id)[0];\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = i;\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\t\tDestacar_aux.push(contenido);\r\n\t\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\ti = Destacar_aux.length + 1;\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.ALAS.filter( x => x.IdAla === this.alaSeleccionada.Id)[0];\r\n\t\t\t\tconst destacado = Destacar_aux.filter( x => x.Id === contenido.Id)[0];\r\n\r\n\t\t\t\t// No es destacado\r\n\t\t\t\tif (destacado === undefined) {\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = 0;\r\n\t\t\t\t\tContenidosSeleccionados_aux.push(contenido);\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.espacioSeleccionado){\r\n\r\n\r\n\t\t\tlet i = 1;\r\n\t\t\tconst Destacar_aux = [];\r\n\t\t\tconst ContenidosSeleccionados_aux = [];\r\n\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst destacado = this.contenidosDestacar.filter( x => x.Id === contenido.Id)[0];\r\n\t\t\t\tif (destacado !== undefined) {\r\n\t\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.ESPACIOS.filter( x => x.IdEspacio === this.espacioSeleccionado.Id)[0];\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = i;\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\t\tDestacar_aux.push(contenido);\r\n\t\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\ti = Destacar_aux.length + 1;\r\n\t\t\tthis.contenidosSeleccionados.forEach(contenido => {\r\n\t\t\t\tconst xxxxxx_has_contenido = contenido.ENTIDAD.ESPACIOS.filter( x => x.IdEspacio === this.espacioSeleccionado.Id)[0];\r\n\t\t\t\tconst destacado = Destacar_aux.filter( x => x.Id === contenido.Id)[0];\r\n\r\n\t\t\t\t// No es destacado\r\n\t\t\t\tif (destacado === undefined) {\r\n\t\t\t\t\txxxxxx_has_contenido.PrioridadDestacado = 0;\r\n\t\t\t\t\tContenidosSeleccionados_aux.push(contenido);\r\n\t\t\t\t\txxxxxx_has_contenido.Prioridad = i;\r\n\t\t\t\ti = i + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\t\tthis.entityManager.saveChanges();\r\n\r\n\t\tthis.ocultarFormularioPrioridadDestacar();\r\n\r\n\t}\r\n\r\n\tcancelarDestacados(){\r\n\t\tthis.ocultarFormularioPrioridadDestacar();\r\n\r\n\t}\r\n\r\n\r\n\t/* IDIOMA */\r\n\tonIdiomaChange($event) {\r\n\r\n\t\t// Cambiamos el idioma seleccionado\r\n\t\tlet idioma;\r\n\t\tif ($event === undefined) {\r\n\t\t\tidioma = this.idiomaSeleccionado ? this.idiomaSeleccionado : this.idiomaService.getIdiomaDefecto(this.idiomas);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tidioma = $event.value;\r\n\t\t}\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Aplicamos el filtro sobre los contenidos en el nuevo idioma\r\n\t\tif (this.tipologiasContenidoSeleccionada) {\r\n\t\t\tthis.tipoSeleccionado = this.idiomaService.traducirTipologiaContenido(this.tipologiasContenidoSeleccionada, this.idiomaSeleccionado);\r\n\t\t}\r\n\t\tconst tipologiasContenido_aux = this.idiomaService.traducirTipologiasContenido(this.tipologiasContenido, this.idiomaSeleccionado);\r\n\t\tthis.tipologiasContenido = tipologiasContenido_aux;\r\n\t\tthis.tipologiasContenido = Object.assign([], this.tipologiasContenido);\r\n\r\n\t\tif (this.tipoSeleccionado) {\r\n\t\t\tthis.filtro.where.Tipologia = this.tipoSeleccionado.Nombre;\r\n\t\t}\r\n\r\n\t\tthis.loadContenido();\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n\r\n\r\n\texportarContenido(){\r\n\t\tthis.loadContenidoExportar();\r\n\t}\r\n\r\n\tonFileSelectContenidos(event, fileUploadComponent) {\r\n\t\tthis.file = event.files[0];\r\n\t\tconst fileReader = new FileReader();\r\n\t\tfileReader.readAsArrayBuffer(this.file);\r\n\t\tfileReader.onload = (e) => {\r\n\t\t\tthis.arrayBuffer = fileReader.result;\r\n\t\t\tconst data = new Uint8Array(this.arrayBuffer);\r\n\t\t\tconst arr = new Array();\r\n\t\t\tfor ( let i = 0; i !== data.length; ++i) {\r\n\t\t\t\tarr[i] = String.fromCharCode(data[i]);\r\n\t\t\t}\r\n\t\t\tconst bstr = arr.join('');\r\n\t\t\tconst workbook = XLSX.read(bstr, {type: 'binary'});\r\n\t\t\tconst first_sheet_name = workbook.SheetNames[0];\r\n\t\t\tconst worksheet = workbook.Sheets[first_sheet_name];\r\n\t\t\tif (this.checkImportFile(worksheet)) {\r\n\t\t\t\tconsole.log(XLSX.utils.sheet_to_json(worksheet, {raw: true}));\r\n\t\t\t\tconst arraylist = XLSX.utils.sheet_to_json(worksheet, {raw: true});\r\n\t\t\t\tthis.csvContent = arraylist;\r\n\t\t\t\tthis.preguntarImportar(fileUploadComponent);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.csvContent = [];\r\n\t\t\t\tfileUploadComponent.clear();\r\n\t\t\t\tthis.appComponent.showError(this.translate.instant('Contenidos.FicheroNoValido'));\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tcheckImportFile(arg0: any): boolean {\r\n\r\n\t\tif (arg0.A1.v !== 'Título')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.B1.v !== 'Texto en Plano')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.C1.v !== 'Código')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.D1.v !== 'Tipología')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.E1.v !== 'Descripción')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.F1.v !== 'Html Detalle')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.G1.v !== 'Audioguía')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.H1.v !== 'Alta')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.I1.v !== 'Baja')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.J1.v !== 'Asignado a:')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.K1.v !== 'Situado en:')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.L1.v !== 'Coordenadas Plano')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (arg0.M1.v !== 'Coordenadas GPS')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t/*\r\n\t\tif (arg0.N1.v !== 'Idioma')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpreguntarImportar(fileUploadComponent){\r\n\t\tconst that = this;\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_IMPORTACION'),\r\n\t\t\taccept: () => {\r\n\t\t\t\tfileUploadComponent.clear();\r\n\t\t\t\tthat.importarContenido();\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tfileUploadComponent.clear();\r\n\t\t\t\tconsole.log('Cancelado la Importacion de Contenido.');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\timportarContenido(){\r\n\t\tconsole.log('Importar: ');\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tconst listCONTENIDOS = [];\r\n\r\n\t\tthis.csvContent.forEach(element => {\r\n\t\t\tpromises.push(that.entityManager.newCONTENIDO());\r\n\t\t});\r\n\r\n\t\tlet errors = 0;\r\n\t\tlet mensaje;\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function(CONTENIDOS){\r\n\t\t\t// Título;Texto en Plano;Código;Tipología;Descripción;Html Detalle;Audioguía;Alta;Baja;Codigo de Seccion\r\n\r\n\t\t\tfor (let index = 0; index < CONTENIDOS.length; index++) {\r\n\t\t\t\tlet oContenido;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\toContenido = CONTENIDOS[index].result;\r\n\t\t\t\t\tif (that.csvContent[index]['Título'] !== ''){\r\n\t\t\t\t\t\toContenido.Titulo = that.csvContent[index]['Título'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.Titulo = that.csvContent[index]['Título'];\r\n\t\t\t\t\t\tmensaje = 'El Título de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.csvContent[index]['Descripción'] !== ''){\r\n\t\t\t\t\t\toContenido.Descripcion = that.csvContent[index]['Descripción'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.Descripcion = that.csvContent[index]['Descripción'];\r\n\t\t\t\t\t\tmensaje = 'La Descripción de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (that.csvContent[index]['Alta'] !== '' ){\r\n\t\t\t\t\t\toContenido.FechaAlta = that.csvContent[index]['Alta'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.FechaAlta = that.csvContent[index]['Alta'];\r\n\t\t\t\t\t\tmensaje = 'Las fechas de la fila ' + index + ' están sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.csvContent[index]['Baja'] !== ''){\r\n\t\t\t\t\t\toContenido.FechaBaja = that.csvContent[index]['Baja'];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.csvContent[index]['Código'] !== ''){\r\n\t\t\t\t\t\toContenido.IdAlternativo = that.csvContent[index]['Código'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.IdAlternativo = that.csvContent[index]['Código'];\r\n\t\t\t\t\t\tmensaje = 'El Código de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (that.csvContent[index]['Html Detalle'] !== ''){\r\n\t\t\t\t\t\toContenido.htmlVisualizableDetalle = that.csvContent[index]['Html Detalle'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.htmlVisualizableDetalle = that.csvContent[index]['Html Detalle'];\r\n\t\t\t\t\t\tmensaje = 'El Html Detalle de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (that.csvContent[index]['Audioguía'] !== ''){\r\n\t\t\t\t\t\toContenido.AudioTexto = that.csvContent[index]['Audioguía'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.AudioTexto = that.csvContent[index]['Audioguía'];\r\n\t\t\t\t\t\tmensaje = 'El Audioguía de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (that.csvContent[index]['Texto en Plano'] !== ''){\r\n\t\t\t\t\t\toContenido.NombreCorto = that.csvContent[index]['Texto en Plano'];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\terrors++;\r\n\t\t\t\t\t\toContenido.NombreCorto = that.csvContent[index]['Texto en Plano'];\r\n\t\t\t\t\t\tmensaje = 'El Texto en Plano de la fila ' + index + ' está sin rellenar';\r\n\t\t\t\t\t\tthat.oCamposErroneos.push(mensaje);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toContenido.EspacioPertenencia = idEspacio;\r\n\t\t\t\t\tlet coord_plano;\r\n\t\t\t\t\tlet coord_gps;\r\n\t\t\t\t\tif (that.csvContent[index]['Coordenadas Plano'] !== ''){\r\n\t\t\t\t\t\t coord_plano = that.csvContent[index]['Coordenadas Plano'];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.csvContent[index]['Coordenadas GPS'] !== ''){\r\n\t\t\t\t\t\tcoord_gps = that.csvContent[index]['Coordenadas GPS'];\r\n\t\t\t\t \t}\r\n\r\n\t\t\t\t\tcoord_plano = coord_plano.split(',');\r\n\t\t\t\t\tcoord_gps = coord_gps.split(',');\r\n\r\n\t\t\t\t\tif (coord_plano && coord_plano.length === 2) {\r\n\t\t\t\t\t\toContenido.X = Number(coord_plano[0]);\r\n\t\t\t\t\t\toContenido.Y = Number(coord_plano[1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\toContenido.X = 0;\r\n\t\t\t\t\t\toContenido.Y = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (coord_gps && coord_gps.length === 2) {\r\n\t\t\t\t\t\toContenido.Latitud = Number(coord_gps[0]);\r\n\t\t\t\t\t\toContenido.Longitud = Number(coord_gps[1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\toContenido.Latitud = 0;\r\n\t\t\t\t\t\toContenido.Longitud = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toContenido.TIPOLOGIA_CONTENIDO = that.tipologiasContenido.find(t => t.IDIOMAS && t.IDIOMAS.find( i => i.Nombre === that.csvContent[index]['Tipología']));\r\n\t\t\t\t\toContenido.IDIOMAS.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\t\t\t\tCONTENIDO_IDIOMA.Nombre = oContenido.Titulo;\r\n\t\t\t\t\t\tCONTENIDO_IDIOMA.Descripcion = oContenido.Descripcion;\r\n\t\t\t\t\t\tCONTENIDO_IDIOMA.htmlVisualizableDetalle = oContenido.htmlVisualizableDetalle;\r\n\t\t\t\t\t\tCONTENIDO_IDIOMA.AudioTexto = oContenido.AudioTexto;\r\n\t\t\t\t\t\tCONTENIDO_IDIOMA.NombreCorto = oContenido.NombreCorto;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tlistCONTENIDOS.push(oContenido);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tthat.oContenidoErroneos.push(oContenido);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn that.obtenerALAS();\r\n\t\t})\r\n\t\t.then(function (alas) {\r\n\t\t\treturn that.crearRelaciones(listCONTENIDOS, alas);\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(res){\r\n\t\t\t// Ocultar Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tif (errors > 0) {\r\n\t\t\t\tif (errors === that.csvContent.length ) {\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('Contenidos.errorinsertarcontenidos') + errors );\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthat.appComponent.showWarn(that.translate.instant('Contenidos.errorinsertarcontenidos') + errors );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('MensajesConfirmacion.MENSAJE_SUCCES'));\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\r\n\t\t\tlet contenidos = '';\r\n\t\t\tthat.oContenidoErroneos.forEach(element => {\r\n\t\t\t\tcontenidos = contenidos + '

      ' + element.Titulo + '

      ';\r\n\t\t\t});\r\n\t\t\t// Ocultar Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\tthat.appComponent.showError(that.translate.instant('Contenidos.errorinsertarcontenidos') + contenidos);\r\n\t\t\tconsole.log(err);\r\n\t\t});\r\n\r\n\t}\r\n\tdownloadFile(fileName) {\r\n\t\tif (fileName === 'Plantilla_Importar_Contenido.xlsx') {\r\n\t\t\treturn this.sws.downloadFile(Constantes.Guia_de_Refencia_de_exportacion, fileName);\r\n\t\t}\r\n\t}\r\n\tImprimir(){\r\n\t\tconsole.log('Se va a imprimir');\r\n\t\twindow.print();\r\n\t}\r\n\tcrearRelaciones(listaContenidos, alas) {\r\n\t\tconst that = this;\r\n\t\tconst CONTENIDOS = listaContenidos;\r\n\t\tlet promises: any[] = [];\r\n\t\tconst ALAS = alas;\r\n\t\tlet ala;\r\n\t\tlet seccion;\r\n\r\n\t\tCONTENIDOS.forEach(element => {\r\n\t\t\tpromises.push(this.entityManager.newSECCION_has_CONTENIDO());\r\n\t\t});\r\n\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function (listSECCION_has_CONTENIDO) {\r\n\r\n\t\t\tfor (let index = 0; index < CONTENIDOS.length; index++) {\r\n\r\n\t\t\t\tlet oContenido;\r\n\t\t\t\ttry{\r\n\t\t\t\t\toContenido = CONTENIDOS[index];\r\n\t\t\t\t\tconst lineaContenido = that.csvContent.find( c => c['Código'] === oContenido.IdAlternativo);\r\n\r\n\t\t\t\t\tala = ALAS.find(a => a.SECCIONS.find( s => s.IDIOMAS.find( i => i.Nombre === lineaContenido['Asignado a:'])));\r\n\t\t\t\t\tseccion = ala.SECCIONS.find( s => s.IDIOMAS.find( i => i.Nombre === lineaContenido['Asignado a:']));\r\n\r\n\t\t\t\t\tconst SECCION_has_CONTENIDO = listSECCION_has_CONTENIDO[index].result;\r\n\r\n\t\t\t\t\toContenido.IdAlaPlano = ala.Id;\r\n\t\t\t\t\tSECCION_has_CONTENIDO.IdContenido = oContenido.Id;\r\n\t\t\t\t\tSECCION_has_CONTENIDO.IdSeccion = seccion.Id;\r\n\t\t\t\t\tSECCION_has_CONTENIDO.Prioridad = seccion.CONTENIDOS.length;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (error) {\r\n\t\t\t\t\tthat.oContenidoErroneos.push(oContenido);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tpromises = [];\r\n\t\t\tCONTENIDOS.forEach(CONTENIDO => {\r\n\t\t\t\tpromises.push(that.entityManager.newNODO_has_CONTENIDO());\r\n\t\t\t});\r\n\r\n\t\t\treturn allSettled(promises);\r\n\t\t})\r\n\t\t.then(function (listaNODO_has_CONTENIDO) {\r\n\t\t\tfor (let index = 0; index < CONTENIDOS.length; index++) {\r\n\t\t\t\tlet oContenido;\r\n\t\t\t\ttry{\r\n\t\t\t\t\toContenido = CONTENIDOS[index];\r\n\t\t\t\t\tconst NODO_has_CONTENIDO = listaNODO_has_CONTENIDO[index].result;\r\n\r\n\t\t\t\t\tNODO_has_CONTENIDO.IdContenido = oContenido.Id;\r\n\t\t\t\t\tNODO_has_CONTENIDO.IdNodo = seccion.NODOS[0].Id;\r\n\r\n\t\t\t\t\tif (oContenido.X === 0 && oContenido.Y === 0) {\r\n\t\t\t\t\t\toContenido.X = seccion.NODOS[0].X;\r\n\t\t\t\t\t\toContenido.Y = seccion.NODOS[0].Y;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (oContenido.Latitud === 0 && oContenido.Y === 0) {\r\n\t\t\t\t\t\toContenido.Latitud = seccion.NODOS[0].Latitud;\r\n\t\t\t\t\t\toContenido.Longitud = seccion.NODOS[0].Longitud;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tcatch (error) {\r\n\t\t\t\t\tthat.oContenidoErroneos.push(oContenido);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn CONTENIDOS;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerALAS() {\r\n\t\tconst includes = 'SECCIONS.NODOS, IDIOMAS, SECCIONS.IDIOMAS';\r\n\t\treturn this.entityManager.getALA(undefined, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY ALAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn entidades;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\r\n\tonRemoveSelectContenidos($event) {\r\n\t\tconsole.log('onRemoveSelect $event: ' + $event);\r\n\t\tconsole.log($event);\r\n\t\t// this.imagenSeleccionada = undefined;\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/contenidos.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n

      \\r\\n {{ 'Contenidos.audioguia' | translate }}\\r\\n

      \\r\\n \\r\\n \\r\\n \\r\\n

      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n {{item.value.ENTIDAD.Codigo}}\\r\\n \\r\\n \\r\\n
      \\r\\n
      {{idioma.value.title}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t pInputText>\\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t type=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t type=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t 0\\\" type=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n
      {{ 'Contenidos.obligatorio' | translate }}
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n\\r\\n
      0\\\">\\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ubicadoen' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      {{nodo.ENTIDAD.SECCION.Nombre}}
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ubicadoen' | translate }}
      \\r\\n
      {{'Contenidos.sinubicacion' | translate}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n

      \\r\\n {{ 'Contenidos.foto' | translate }}\\r\\n

      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{ 'Contenidos.miniatura_imagen' | translate }}

      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      {{ 'Contenidos.detalle_imagen' | translate }}

      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n

      {{ 'Contenidos.qr_titulo' | translate }} *

      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n Guarde los cambios para poder ver el codigo QR.\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n * Escanear el codigo QR Activo desde la pantalla de configuracion de la app movil para poder vincular este contenido como activo localizable al movil del usuario.\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n

      \\r\\n {{ 'Contenidos.detalle' | translate }}

      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

      \\r\\n {{rowData[col.field]}}\\r\\n

      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ubicadoen' | translate }}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      {{nodo.ENTIDAD.SECCION.Nombre}}
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      {{entidad.Nombre}}
      \\r\\n
      {{entidad.Nomobre}}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t 0\\\" type=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t 0\\\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"text\\\" pInputText style=\\\"width: 100%\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ubicadoen' | translate }}
      \\r\\n
      \\r\\n {{ \\\"[\\\" + this.modeloSeleccionado.Latitud_topLeft + \\\", \\\" +this.modeloSeleccionado.Longitud_topLeft + \\\"]\\\"}}
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n

      \\r\\n {{ 'Contenidos.modelo3d' | translate }} IOS\\r\\n

      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ModeloNombreFichero' | translate }}:
      \\r\\n
      {{ this.modeloSeleccionado.NombreFichero }}
      \\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.urlModelo' | translate }}:
      \\r\\n
      {{ this.modeloSeleccionado.UrlExt_ios }}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n \\r\\n
      \\r\\n

      \\r\\n {{ 'Contenidos.modelo3d' | translate }} ANDROID\\r\\n

      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.ModeloNombreFichero' | translate }}:
      \\r\\n
      {{ this.modeloSeleccionado.NombreFichero }}
      \\r\\n
      \\r\\n
      \\r\\n
      {{ 'Contenidos.urlModelo' | translate }}:
      \\r\\n
      {{ this.modeloSeleccionado.UrlExt_android }}
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{ 'Contenidos.Instrucciones' | translate }}\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n * Escanear el codigo QR Activo desde la pantalla de configuracion de la app movil para poder vincular este contenido como activo localizable al movil del usuario.\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n Guarde los cambios para poder ver el codigo QR.\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.html\n// module id = ../../../../../src/app/views/contenidos/nuevo/nuevo.contenido.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".thumbnail-contenido {\\n min-height: 100px;\\n height: 100px;\\n max-height: 100px;\\n min-width: 100px;\\n width: 100px;\\n max-width: 100px;\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-position: center center;\\n padding: 0; }\\n\\n.test-class > img {\\n width: 200px; }\\n\\n/* Dropdown seleccion ala */\\n\\n/deep/ body .posicionar-contenido-dropdown > div {\\n width: inherit !important; }\\n\\n/deep/ body .tipologia-contenido-dropdown {\\n padding: inherit !important; }\\n\\nbody .ui-button.btn-enlace-web, body .ui-datepicker-buttonpane > button.btn-enlace-web {\\n background-color: #C62828;\\n min-height: 75px;\\n height: 75px;\\n max-height: 75px;\\n min-width: 350px;\\n width: 350px;\\n max-width: 350px;\\n background-image: url(\\\"/assets/contenido/imagenesPrueba/las_lanzas.jpg\\\");\\n background-repeat: no-repeat;\\n background-size: cover;\\n /* to specify dimensions explicitly */\\n background-position: center center;\\n padding: 0; }\\n\\nbody .ui-button.btn-enlace-web:enabled:not(:focus):hover, body .ui-datepicker-buttonpane > button.btn-enlace-web:enabled:not(:focus):hover {\\n background-color: #37474F; }\\n\\nbody .ui-button.btn-enlace-web:focus, body .ui-datepicker-buttonpane > button.btn-enlace-web:focus {\\n outline: 0 none;\\n background-color: #7b96a3; }\\n\\nbody .ui-button.btn-enlace-web span, body .ui-datepicker-buttonpane > button.btn-enlace-web span {\\n background-color: rgba(0, 0, 0, 0.5);\\n width: 100%;\\n height: 100%;\\n line-height: 75px; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.scss\n// module id = ../../../../../src/app/views/contenidos/nuevo/nuevo.contenido.component.scss\n// module chunks = main","import { IdiomaCalendario } from './../../../domain/IdiomaCalendatio';\r\nimport { Component, OnInit, OnDestroy, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser'\r\n\r\nimport { Message, MenuItem } from 'primeng/primeng';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { TranslateService} from 'ng2-translate';\r\nimport { BreadcrumbService } from '../../../breadcrumb.service';\r\nimport { AuthenticationService } from '../../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../../../providers/web-service-service/servicios-web-service';\r\nimport { ScrollToService } from '@nicky-lenaers/ngx-scroll-to';\r\nimport { Contenido, ContenidoIdiomaFormulario } from './../../../domain/Contenido';\r\nimport { WebExterna } from './../../../domain/WebExterna';\r\nimport { Foto } from './../../../domain/Foto';\r\n\r\nimport * as allSettled from 'promise-all-settled';\r\n\r\nimport { SeccionPlano } from 'interiores-mapa';\r\nimport { ContenidoPlano } from 'interiores-mapa';\r\nimport { Predicate } from 'breeze-client';\r\nimport { Idioma } from '../../../domain/Idioma';\r\nimport { IdiomaService } from '../../../providers/idioma/idioma.service';\r\nimport { ImageCropperComponent, CropperSettings } from 'ngx-img-cropper';\r\nimport { Constantes } from '../../../domain/constantes';\r\n\r\nimport {PlanoComponent} from 'interiores-mapa';\r\nimport { NodoFormulario } from '../../../domain/NodoFormulario';\r\nimport { SeccionFormulario } from '../../../domain/SeccionFormulario';\r\nimport { AlaFormulario } from './../../../domain/AlaFormulario';\r\nimport { EspacioFormulario } from './../../../domain/EspacioFormulario';\r\nimport { Permisos, PermisosService } from '../../../providers/authentication/permisos.service';\r\nimport { AppComponent } from '../../../app.component';\r\nimport { environment } from '../../../../environments/environment';\r\nimport {Modelo3D} from '../../../domain/Modelo3D';\r\n\r\nimport Speech from 'speak-tts';\r\n\r\nimport {QRCodeComponent } from 'angularx-qrcode';\r\nimport { TipoLocalizacion } from '../../../domain/TipologiaContenidoFormulario';\r\nimport { ServiciosStatsProvider } from '../../../providers/web-service-service/servicios-stats';\r\nimport { InformesService } from '../../../providers/informes/informes.service';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { CKEditor4 } from 'ckeditor4-angular/ckeditor';\r\nimport { IfObservable } from 'rxjs/observable/IfObservable';\r\n\r\n@Component({\r\n\tselector: 'app-hero-form-reactive',\r\n\ttemplateUrl: './nuevo.contenido.component.html',\r\n\tstyleUrls: ['./nuevo.contenido.component.scss'],\r\n\tencapsulation: ViewEncapsulation.None,\r\n providers: [ConfirmationService, ScrollToService]\r\n\r\n})\r\n\r\nexport class NuevoContenidoComponent implements OnInit, OnDestroy {\r\n\r\n\tpublic esEdicion = false;\r\n\tpublic edicionWeb = false;\r\n\r\n\tpublic msgPosicionar = [];\r\n\r\n\tpublic hideContenido = false;\r\n\tpublic hideAudioguia = false;\r\n\tpublic hideWebExterna = false;\r\n\tpublic hideAsociarElemento = false;\r\n\tpublic hidePosicionarElemento = false;\r\n\tpublic hideModelo3d = false;\r\n\r\n\t// Control de descarga por pastañas\r\n\tpublic posicionarElementoDescargado = false;\r\n\tpublic asociarElementoDescargado = false;\r\n\tpublic websDesargadas = false;\r\n\r\n\tpublic activeAcordeonIndex = 0;\r\n\r\n\tpublic tabMenuItems: MenuItem[];\r\n\tpublic activeItem: MenuItem;\r\n\r\n\tpublic displayDialogWebExterna: boolean;\r\n\t// IDpublic displayDialogPrioridadDestacar = false;\r\n\r\n\tpublic columnasTablaWebExternas: any[];\r\n\tpublic tipologiasContenido: any[] = [];\r\n\r\n\tpublic contenidoSeleccionado: Contenido = new Contenido();\r\n\tpublic WebExternaSeleccionada: WebExterna;\r\n\r\n\t// Selector Drag&Drop\r\n\tpublic listaNodos: NodoFormulario[] = [];\r\n\tpublic listaEspacios: EspacioFormulario[] = [];\r\n\tpublic listaAlas: AlaFormulario[] = [];\r\n\tpublic listaSecciones: SeccionFormulario[] = [];\r\n\r\n\tpublic listaEntidades: any[] = []; // Lista de Todas las entidades que hemos Obtenido en esta pagina\r\n\tpublic listaEntidadesDestacar: any[] = []; // Lista de entidades asignables al contenido que aun no han sido asignadas\r\n\tpublic listaSeleccionados: any[] = []; // Lista de entidades asignadas al contenido\r\n\tpublic listaNodosSeleccionados: NodoFormulario[] = []; // Lista de nodos asignados (SOLO SE PERMITE UNO), para alimentar formmularioposicionarContenido\r\n\tlistaRelacionesEliminadas: any[] = []; // lista donde almacenaremos las relaciones eliminadas a la hora de guardar para poder recuperar las prioridades\r\n\r\n\t// Parametros Route para contenido a editar\r\n\tpublic idEditar;\r\n\tpublic tipoEntidadEditar;\r\n\r\n\t// Validacion\r\n\tpublic confirmacionVisible = false;\r\n\tpublic operacion = '';\r\n\tpublic msgsValidacion: Message[] = [];\r\n\r\n\tpublic isValid = true;\r\n\tpublic tituloError = false;\r\n\tpublic fAltaError = false;\r\n\tpublic fBajaError = false;\r\n\tpublic imagenError = false;\r\n\r\n\tpublic contenidosSeleccionados = [];\r\n\r\n\tpublic contenidosDestacar = [];\r\n\t// Mensajes\r\n\tmsgs: Message[] = [];\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tpublic cols_destacar: any[];\r\n\t// Calendario\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\tcontenido: any;\r\n\r\n\tpublic mensajesExpirados = [\r\n\t\t{\r\n\t\t\ttipo: 'TODOS',\r\n\t\t\tvalue: 4,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoTodos'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMOACT',\r\n\t\t\tvalue: 5,\r\n\t\t\tclases: [],\r\n\t\t\tlabel: 'Contenidos.estadoProximoAct'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'ACTIVO',\r\n\t\t\tvalue: 3,\r\n\t\t\tclases: ['ui-message', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoActivo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'PROXIMO',\r\n\t\t\tvalue: 1,\r\n\t\t\tclases: ['ui-message', 'ui-messages-warning', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoProximo'\r\n\t\t},\r\n\t\t{\r\n\t\t\ttipo: 'EXPIRADO',\r\n\t\t\tvalue: 0,\r\n\t\t\tclases: ['ui-message', 'ui-messages-error', 'ui-corner-all'],\r\n\t\t\tlabel: 'Contenidos.estadoExpirado'\r\n\t\t}\r\n\t];\r\n\t/* MAPA */\r\n\t@ViewChild('planoPosicion') planoPosicion: PlanoComponent;\r\n\tpathPlano: String;\r\n\tzoomLevels: Number[];\r\n\tzoomCenterCoords: Number[];\r\n\tsections: Array = [];\r\n\tmapSections: Map;\r\n\tcontents: Array = [];\r\n\tmapContents: Map;\r\n\r\n\tidAla: string;\r\n\t// alaSeleccionada: AlaFormulario;\r\n\tseccionDefecto: SeccionFormulario;\r\n\tpublic seccionClicada: SeccionFormulario;\r\n\r\n\tpublic seccionSeleccionada;\r\n\tpublic espacioSeleccionado;\r\n\tpublic alaSeleccionada;\r\n\r\n\tdisplayDialogPosicion = false;\r\n\r\n\tpublic offset_x_icono_contenido = -30;\r\n\tpublic offset_y_icono_contenido = -30;\r\n\r\n\t/* IDIOMA */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\t/* IMAGE CROPPER*/\r\n\tdata: any;\r\n\tcropperSettings: CropperSettings;\r\n\timageCropperVisible = false;\r\n\t@ViewChild('cropper', undefined) cropper: ImageCropperComponent;\r\n\r\n\t/* MODELO 3D */\r\n\r\n\tmodeloSeleccionado: Modelo3D = new Modelo3D();\r\n\r\n\tselectorImagenModelo_ios: any;\r\n\tficheroModeloSeleccionado_ios: any;\r\n\turlModeloSeleccionado_ios: string = undefined;\r\n\r\n\tselectorImagenModelo_android: any;\r\n\tficheroModeloSeleccionado_android: any;\r\n\turlModeloSeleccionado_android: string = undefined;\r\n\r\n\tpublic permisos: Permisos = new Permisos();\r\n\r\n\tpublic speech;\r\n\r\n\t//direccion nueva imagen detalle seleccionada\r\n\tpublic srcNuevaImagenDetalle: string;\r\n\r\n\t// QR\r\n\tvalueQR = '';\r\n\r\n\t//ckeditor config\r\n\tpublic ckEditorConfig: any = {\r\n\t\textraPlugins:\r\n\t\t \"dialogui,dialog,a11yhelp,about,basicstyles,bidi,blockquote,clipboard,\" +\r\n\t\t \"button,panelbutton,panel,floatpanel,colorbutton,colordialog,menu,\" +\r\n\t\t \"contextmenu,dialogadvtab,div,elementspath,enterkey,entities,popup,\" +\r\n\t\t \"filebrowser,find,fakeobjects,floatingspace,listblock,richcombo,\" +\r\n\t\t \"font,format,horizontalrule,htmlwriter,indent,\" +\r\n\t\t \"indentblock,indentlist,justify,link,list,liststyle,magicline,\" +\r\n\t\t \"maximize,newpage,pagebreak,pastefromword,pastetext,preview,print,\" +\r\n\t\t \"removeformat,resize,save,menubutton,scayt,selectall,showblocks,\" +\r\n\t\t \"showborders,smiley,sourcearea,specialchar,stylescombo,tab,table,\" +\r\n\t\t \"tabletools,templates,toolbar,undo,wsc,wysiwygarea,easyimage\",\r\n\t\tremovePlugins: \"image\",\r\n\t\teasyimage_toolbar: [ 'EasyImageAlignLeft', 'EasyImageAlignCenter', 'EasyImageAlignRight' ]\r\n\t\t\r\n\r\n\t };\r\n\r\n\tpublic fotosCarrusel: Foto[] = []\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate informesService: InformesService,\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate router: Router,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tprivate swsStats: ServiciosStatsProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tpublic translate: TranslateService,\r\n\t\tprivate idiomaService: IdiomaService,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate sanitizer: DomSanitizer\r\n\t) {\r\n\t\tthis.valueQR = 'Techiediaries';\r\n\r\n\t\tthis.cropperSettings = new CropperSettings();\r\n\t\tthis.cropperSettings.width = 400;\r\n\t\tthis.cropperSettings.height = 400;\r\n\t\tthis.cropperSettings.croppedWidth = 400;\r\n\t\tthis.cropperSettings.croppedHeight = 400;\r\n\t\tthis.cropperSettings.canvasWidth = 400;\r\n\t\tthis.cropperSettings.canvasHeight = 400;\r\n\t\tthis.cropperSettings.noFileInput = true;\r\n\t\tthis.cropperSettings.fileType = \"image/webp\";\r\n\t\tthis.cropperSettings.minWithRelativeToResolution = true;\r\n\r\n\t\tthis.data = {};\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Contenidos.contenidos'), routerLink: ['/contenidos'] },\r\n\t\t\t{ label: this.translate.instant('Contenidos.nuevocontenido') }\r\n\t\t]);\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\r\n\r\n\t\tthis.speech = new Speech(); // will throw an exception if not browser supported\r\n\r\n\t\tif (this.speech.hasBrowserSupport()) { // returns a boolean\r\n\t\t\tconsole.log('speech synthesis supported');\r\n\t\t\tthis.speech.init().then((data) => {\r\n\t\t\t\t// The \"data\" object contains the list of available voices and the voice synthesis params\r\n\t\t\t\tconsole.log('Speech is ready, voices are available', data);\r\n\t\t\t}).catch(e => {\r\n\t\t\t\tconsole.error('An error occured while initializing : ', e);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n//#region -- INIT --\r\n\tformContenido: FormGroup;\r\n\r\n\tngOnInit() {\r\n\t\twindow.scroll(0, 0);\r\n\t\tconsole.log('Carga nuevo contenido');\r\n\t\tthis.listaNodos = [];\r\n\t\tthis.listaEspacios = [];\r\n\t\tthis.listaAlas = [];\r\n\t\tthis.listaSecciones = [];\r\n\t\tthis.listaEntidades = [];\r\n\t\tthis.listaSeleccionados = [];\r\n\t\tthis.listaNodosSeleccionados = [];\r\n\t\tthis.listaEntidadesDestacar = [];\r\n\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.route.params\r\n\t\t\t.subscribe(params => {\r\n\t\t\t\tthis.idEditar = params['id'];\r\n\t\t\t\tthis.tipoEntidadEditar = params['entidad'];\r\n\t\t\t});\r\n\r\n\t\tthis.tabMenuItems = [\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Contenidos.edicioncontenido'),\r\n\t\t\t\ticon: 'iticon-tab-editar',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabContenidoSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Contenidos.audioguia'),\r\n\t\t\t\ticon: 'iticon-tab-audioguia',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabAudioguiaSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Contenidos.enlacesexternos'),\r\n\t\t\t\ticon: 'iticon-tab-enlaces-externos',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabWebExternasSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Contenidos.posicionarenmapa'),\r\n\t\t\t\ticon: 'iticon-tab-ubicacion-contenido-en-mapa ',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabPosicionarSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this.translate.instant('Contenidos.destacarContenidoEn'),\r\n\t\t\t\ticon: 'iticon-tab-asignacion-contenido ',\r\n\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\tthis.tabAsociarSeleccionada(event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t];\r\n\r\n\t\t// Columnas Taba WebExternas\r\n\t\tthis.columnasTablaWebExternas = [\r\n\t\t\t{ field: 'Nombre', header: this.translate.instant('Contenidos.titulo') },\r\n\t\t\t{ field: 'Url', header: this.translate.instant('Contenidos.url') },\r\n\t\t\t{ field: 'MostrarEdicion', header: '' }\r\n\t\t];\r\n\r\n\t\tthis.cols_destacar = [\r\n\t\t\t{ field: 'Drag', header: '' },\r\n\t\t\t{ field: 'Imagen', fieldSort: '', header: this.translate.instant('Contenidos.imagen')}, // clases: ['th-tipo-corto1']},\r\n\t\t\t{ field: 'Titulo', fieldSort: 'Titulo', header: this.translate.instant('Contenidos.titulo')}, // clases: ['th-tipo-normal'] },\r\n\t\t\t{ field: 'IdAlternativo', fieldSort: 'IdAlternativo', header: this.translate.instant('Contenidos.idAlternativo')}, // clases: ['th-tipo-medio'] },\r\n\t\t\t{ field: 'expirado', fieldSort: 'expirado', header: this.translate.instant('Contenidos.estado')} // clases: ['th-tipo-corto2'] }\r\n\t\t];\r\n\r\n\t\tthis.tabContenidoSeleccionada(null);\r\n\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function (idiomasENTIDAD: any) {\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.permisosService.obtenerTIPOLOGIA_CONTENIDO();\r\n\t\t})\r\n\t\t.then(function (e) {\r\n\t\t\tthat.tipologiasContenido = e;\r\n\t\t\tlet tipologiasActivas = that.tipologiasContenido.filter(t => t.Activa === true);\r\n\t\t\tthat.tipologiasContenido = tipologiasActivas;\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t})\r\n\t\t.then(function (ok) {\r\n\t\t\tconsole.log('--- CARGA PANTALLA OK ---');\r\n\t\t\tconst includes = 'IDIOMAS';\r\n\t\t\tconst where = undefined;\r\n\t\t\treturn that.prepararEdicionContenido(that.tipoEntidadEditar, that.idEditar);\r\n\t\t})\r\n\t\t.catch(function (err) {\r\n\t\t\tconsole.log('--- CARGA PANTALLA ERROR ---');\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tnuevoCarrusel(carrusel){\r\n\t\tthis.fotosCarrusel = carrusel;\r\n\t\tlet idsCarrousel = Array.from(this.fotosCarrusel, x => x.Id);\r\n\t\t\r\n\t\tif(this.contenidoSeleccionado.ENTIDAD && this.contenidoSeleccionado.ENTIDAD.FOTOS && this.contenidoSeleccionado.ENTIDAD.FOTOS.length > 0){\r\n\t\t\tthis.contenidoSeleccionado.ENTIDAD.FOTOS.forEach(f => {\r\n\t\t\t\tif(f.Tipo == 1){\r\n\t\t\t\t\tlet foto = idsCarrousel.find(x => x == f.Id)\r\n\t\t\t\t\tif(foto === undefined){\r\n\t\t\t\t\t\tthis.entityManager.deleteEntity(f);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\r\n\t\t}\r\n\t}\r\n\tfechaUbicado(): any{\r\n\t\tif(this.contenidoSeleccionado.FechaUltimaLocalizacion){\r\n\t\t\treturn this.contenidoSeleccionado.FechaUltimaLocalizacion\r\n\t\t}else{\r\n\t\t\treturn this.translate.instant('Contenidos.noUbicado');\r\n\t\t}\r\n\t}\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\r\n\t\t\tif (that.permisos && that.permisos.Contenido_modelo_3d === 2) {\r\n\t\t\t\tthat.tabMenuItems.push({\r\n\t\t\t\t\tlabel: that.translate.instant('Contenidos.modelo3d'),\r\n\t\t\t\t\ticon: 'iticon-ITSN-rev19 ',\r\n\t\t\t\t\tcommand: (event: any) => {\r\n\t\t\t\t\t\tthat.tabModelo3dSeleccionada(event);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\tprepararEdicionContenido(Tipo, Id) {\r\n\t\tconst that = this;\r\n\r\n\r\n\r\n\t\tif (Tipo === 'CONTENIDO') {\r\n\t\t\t/*\r\n\t\t\tlet includes = 'ALAS.ALA.CONTENIDOS.CONTENIDO, ';\r\n\t\t\tincludes = includes + 'ALAS.ALA.NIVEL, ';\r\n\t\t\tincludes = includes + 'ESPACIOS.ESPACIO.CONTENIDOS.CONTENIDO, ';\r\n\t\t\tincludes = includes + 'FOTOS, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO.CONTENIDOS.CONTENIDO, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO.TIPOLOGIA_NODO, ';\r\n\t\t\tincludes = includes + 'ALA_PLANO, ';\r\n\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION.CONTENIDOS';\r\n\t\t\t*/\r\n\r\n\t\t\tlet includes = '';\r\n\t\t\tincludes = includes + 'FOTOS, ';\r\n\t\t\tincludes = includes + 'NODODS.NODO.SECCION, ';\r\n\t\t\tincludes = includes + 'IDIOMAS, ';\r\n\t\t\tincludes = includes + 'SECCIONES.SECCION, ';\r\n\t\t\tincludes = includes + 'TIPOLOGIA_CONTENIDO, ';\r\n\t\t\tincludes = includes + 'ALA_PLANO, ';\r\n\t\t\tincludes = includes + 'MODELO_3D, ';\r\n\t\t\t//includes = includes + 'CONTENIDOS, ';\r\n\t\t\tincludes = includes + 'POSICION_ACTUAL_CONTENIDOS, ';\r\n\t\t\tincludes = includes + 'POSICION_ULTIMA_CONTENIDOS';\r\n\r\n\t\t\tthis.entityManager.getContenidoById(Id, includes)\r\n\t\t\t.then(function (contenido) {\r\n\t\t\t\tif (contenido && contenido.length > 0) {\r\n\t\t\t\t\tlet IDsContenido = [];\r\n\t\t\t\t\tcontenido.forEach(c => c.SECCIONES.forEach(s => {\r\n\t\t\t\t\t\tIDsContenido.push(s.IdContenido);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t\t// Seteamos el objeto contenidoSeleccionado con los valores del contenido de base de datos\r\n\t\t\t\t\tconst CONTENIDO = contenido[0];\r\n\t\t\t\t\tthat.contenidoSeleccionado = new Contenido().fromENTIDAD(CONTENIDO);\r\n\t\t\t\t\tthat.modeloSeleccionado = new Modelo3D().fromENTIDAD(CONTENIDO.MODELO_3D);\r\n\t\t\t\t\tthat.esEdicion = true;\r\n\t\t\t\t\t//TIPOLOGIAS\r\n\t\t\t\t\tif(that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO){\r\n\r\n\t\t\t \t\t\t\tlet tipologiasActivas = that.tipologiasContenido.filter(t => t.Activa === true);\r\n\t\t\t \t\t\t\tthat.tipologiasContenido = tipologiasActivas;\r\n\t\t\t\t\t\t\tif(that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO !== undefined){\r\n\r\n\t\t\t \t\t\t\t\tif(that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO.Activa !== true){\r\n\t\t\t \t\t\t\t\t\ttipologiasActivas.push(that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO)\r\n\t\t\t \t\t\t\t\t\tthat.tipologiasContenido = tipologiasActivas;\r\n\r\n\t\t\t \t\t\t\t\t}else{\r\n\t\t\t \t\t\t\t\t\tthat.tipologiasContenido = tipologiasActivas;\r\n\r\n\t\t\t \t\t\t\t\t}\r\n\t\t\t \t\t\t\t}else{\r\n\t\t\t \t\t\t\t\tthat.tipologiasContenido = tipologiasActivas;\r\n\t\t\t \t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (that.contenidoSeleccionado.WebsExternas.length > 0) {\r\n\t\t\t\t\t\tthat.websDesargadas = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.contenidoSeleccionado.ALA_PLANO) {\r\n\t\t\t\t\t\tthat.alaSeleccionada = new AlaFormulario(that.contenidoSeleccionado.ALA_PLANO);\r\n\t\t\t\t\t\tthat.seleccionarAla(that.alaSeleccionada);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// ALAS\r\n\t\t\t\t\tif (that.contenidoSeleccionado.ENTIDAD.ALAS) {\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.ENTIDAD.ALAS.forEach(element => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst ala = new AlaFormulario(element.ALA);\r\n\t\t\t\t\t\t\t\tif (ala) {\r\n\t\t\t\t\t\t\t\t\tthat.listaSeleccionados.push(ala);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.error('ERROR: error al leer un ALA: ' + e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// NODOS\r\n\t\t\t\t\tif (that.contenidoSeleccionado.ENTIDAD.NODODS) {\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.ENTIDAD.NODODS.forEach(element => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst nodo = new NodoFormulario().fromENTIDAD(element.NODO);\r\n\t\t\t\t\t\t\t\tif (nodo) {\r\n\t\t\t\t\t\t\t\t\tthat.listaSeleccionados.push(nodo);\r\n\t\t\t\t\t\t\t\t\tthat.listaNodosSeleccionados.push(nodo);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.error('ERROR: error al leer un NODO');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// ESPACIOS\r\n\t\t\t\t\tif (that.contenidoSeleccionado.ENTIDAD.ESPACIOS) {\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.ENTIDAD.ESPACIOS.forEach(element => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst espacio = new EspacioFormulario(element.ESPACIO);\r\n\t\t\t\t\t\t\t\tif (espacio) {\r\n\t\t\t\t\t\t\t\t\tthat.listaSeleccionados.push(espacio);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.error('ERROR: error al leer un ESPACIO');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// SECCIONES\r\n\t\t\t\t\tif (that.contenidoSeleccionado.ENTIDAD.SECCIONES !== undefined && that.contenidoSeleccionado.ENTIDAD.SECCIONES.length > 0) {\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.ENTIDAD.SECCIONES.forEach(element => {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tconst seccion = new SeccionFormulario().fromENTIDAD(element.SECCION);\r\n\t\t\t\t\t\t\t\tif (seccion) {\r\n\t\t\t\t\t\t\t\t\tthat.listaSeleccionados.push(seccion);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.error('ERROR: error al leer un SECCION');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//FOTOS Carrousel\r\n\t\t\t\t\tif(that.contenidoSeleccionado.fotosCarrusel !== undefined && that.contenidoSeleccionado.fotosCarrusel.length > 0){\r\n\t\t\t\t\t\tthat.fotosCarrusel = that.contenidoSeleccionado.fotosCarrusel;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// POSICIONES\r\n\t\t\t\t\tif(that.contenidoSeleccionado.POSICION_ACTUAL_CONTENIDOS.length >0){\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.FechaUltimaLocalizacion = that.contenidoSeleccionado.POSICION_ACTUAL_CONTENIDOS[0].FechaUbicacion;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse if(that.contenidoSeleccionado.POSICION_ULTIMA_CONTENIDOS.length >0){\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.FechaUltimaLocalizacion = that.contenidoSeleccionado.POSICION_ULTIMA_CONTENIDOS[0].FechaUbicacion;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tconst token = that.authService.getToken();\r\n\r\n\t\t\t\t\t\treturn that.swsStats.getUltimoHistoricoLocalizacionesContenidos(token, IDsContenido).toPromise()\r\n\t\t\t\t\t\t.then(function(ultimosHistoricos){\r\n\t\t\t\t\t\t\tconst ultimo = ultimosHistoricos.lista[0];\r\n\t\t\t\t\t\t\tif (ultimo) {\r\n\t\t\t\t\t\t\t\tlet hasta = new Date(ultimo.FechaHasta);\r\n\t\t\t\t\t\t\t\t//new Date(Date.UTC(ultimo.FechaHasta.getFullYear() , ultimo.FechaHasta.getMonth() , ultimo.FechaHasta.getDate() , ultimo.FechaHasta.getHours() , ultimo.FechaHasta.getMinutes() , ultimo.FechaHasta.getSeconds()));\r\n\t\t\t\t\t\t\t\tthat.contenidoSeleccionado.FechaUltimaLocalizacion = hasta;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Eliminados las Entidades ya asignadas de la lsita de seleccionables\r\n\t\t\t\t\tthat.listaSeleccionados.forEach(element => {\r\n\t\t\t\t\t\tthat.listaEntidadesDestacar = that.listaEntidadesDestacar.filter( x => x.Id !== element.Id);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (that.contenidoSeleccionado.Imagen === null || that.contenidoSeleccionado.Imagen === undefined || that.contenidoSeleccionado.Imagen === ''){\r\n\t\t\t\t\t\tthat.contenidoSeleccionado.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthat.contenidoSeleccionado = new Contenido();\r\n\t\t\t\t\tthat.contenidoSeleccionado.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\tthat.contenidoSeleccionado.TIPOLOGIA_CONTENIDO = that.tipologiasContenido[0];\r\n\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t})\r\n\t\t\t.catch(function (err){\r\n\t\t\t\tconsole.log('prepararEdicionContenido: ' + err.status);\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.appComponent.showError(err.toString());\r\n\t\t\t});\r\n\r\n\t\t} else {\r\n\t\t\tthat.contenidoSeleccionado = new Contenido();\r\n\t\t\tthat.contenidoSeleccionado.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\tthat.contenidoSeleccionado.TIPOLOGIA_CONTENIDO = that.tipologiasContenido[0];\r\n\t\t\tthat.contenidoSeleccionado.Idiomas = that.idiomaService.newMapContenidoIdiomas(that.idiomas);\r\n\r\n\t\t\t// that.contenidoSeleccionado.ALA_PLANO = that.listaAlas[0];\r\n\t\t\tthat.contenidoSeleccionado.X = Constantes.X_COORDENADA; // 155;\r\n\t\t\tthat.contenidoSeleccionado.Y = Constantes.Y_COORDENADA; // 256;\r\n\t\t\tthat.esEdicion = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\timagenEsNull(ImagenDetalle: string){\r\n\t\treturn ImagenDetalle.indexOf('0000000-0000-0000-0000-000000000000') > 0;\r\n\t}\r\n//#endregion\r\n\r\n//#region -- ASIGNAR --\r\n\tonMoveToSource($event){\r\n\t\tconsole.log('onMoveToSource');\r\n\t\tconsole.log($event);\r\n\t}\r\n\r\n\tonMoveToTarget($event){\r\n\t\tconsole.log('onMoveToTarget');\r\n\t\tconsole.log($event);\r\n\t}\r\n\r\n\tesSeccionContenidoAsignado($event){\r\n\t\tlet visibleEnTabla = false;\r\n\t\tif ($event && $event.TIPO === 'SECCION') {\r\n\t\t\tconst nodoSeccion = this.listaNodosSeleccionados.filter( x => x.IdSeccion === $event.Id)[0];\r\n\t\t\tif (nodoSeccion) {\r\n\t\t\t\tvisibleEnTabla = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn visibleEnTabla;\r\n\t}\r\n//#endregion\r\n\r\n//#region -- TAB_MENU --\r\n\ttabContenidoSeleccionada(event: any) {\r\n\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.activeItem = this.tabMenuItems[0];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideContenido = false;\r\n\t\tthis.displayDialogPosicion = false;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\r\n\t}\r\n\r\n\ttabAudioguiaSeleccionada(arg0: any): any {\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.activeItem = this.tabMenuItems[1];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideAudioguia = false;\r\n\t\tthis.displayDialogPosicion = false;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\ttabModelo3dSeleccionada(arg0: any): any {\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.activeItem = this.tabMenuItems[5];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideModelo3d = false;\r\n\t\tthis.displayDialogPosicion = false;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\ttabWebExternasSeleccionada(event: any) {\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.activeItem = this.tabMenuItems[2];\r\n\r\n\t\tthis.ocultarTabs();\r\n\t\tthis.hideWebExterna = false;\r\n\t\tthis.displayDialogPosicion = false;\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.style.display = 'none';\r\n\t\t}\r\n\t\tconst that = this;\r\n\t\tif (!this.websDesargadas && this.contenidoSeleccionado.ENTIDAD) {\r\n\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\tthis.entityManager.getCONTENIDO_WEB_EXTERNAbyCONTENIDO(this.contenidoSeleccionado.ENTIDAD.Id, 'FOTOS, IDIOMAS')\r\n\t\t\t.then(function (webs) {\r\n\t\t\t\tthat.websDesargadas = true;\r\n\t\t\t\tconst promises: any[] = [];\r\n\t\t\t\twebs.forEach(element => {\r\n\r\n\t\t\t\t\tconst webExterna = new WebExterna();\r\n\t\t\t\t\twebExterna.Nombre = element.Texto;\r\n\t\t\t\t\twebExterna.Url = element.url;\r\n\t\t\t\t\twebExterna.IdWebExterna = element.Id;\r\n\t\t\t\t\twebExterna.ENTIDAD = element;\r\n\t\t\t\t\twebExterna.Idiomas = that.idiomaService.getMapContenidoWebExternaIdiomas(element.IDIOMAS);\r\n\t\t\t\t\tthat.contenidoSeleccionado.WebsExternas.push(webExterna);\r\n\r\n\t\t\t\t\telement.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t// FOTOS\r\n\t\t\t\t\tconst ultima = element.FOTOS.length - 1;\r\n\t\t\t\t\tif (ultima >= 0) {\r\n\t\t\t\t\t\tif (element.FOTOS[ultima] && element.FOTOS[ultima].UrlFotoExt) {\r\n\t\t\t\t\t\t\telement.Imagen = element.FOTOS[ultima].UrlFotoExt;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (element.FOTOS[ultima] && element.FOTOS[ultima].IdFotoExt){\r\n\t\t\t\t\t\t\telement.Imagen = environment.urlBaseFotos + element.FOTOS[ultima].IdFotoExt;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\telement.Imagen = that.authService.getFotoPorDefecto();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\ttabAsociarSeleccionada(event) {\r\n\r\n\t\tconst that = this;\r\n\t\tif (this.asociarElementoDescargado || this.posicionarElementoDescargado) {\r\n\t\t\tthat.activeItem = that.tabMenuItems[4];\r\n\t\t\tthat.ocultarTabs();\r\n\t\t\tthat.hideAsociarElemento = false;\r\n\t\t\tthat.msgPosicionar = [];\r\n\t\t\tthat.displayDialogPosicion = false;\r\n\t\t\tif (that.blockUI) {\r\n\t\t\t\tthat.blockUI.style.display = 'none';\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthat.spinner.style.display = 'inherit';\r\n\r\n\t\treturn this.obtenerEntyties()\r\n\t\t.then(function(){\r\n\t\t\tthat.activeItem = that.tabMenuItems[4];\r\n\t\t\tthat.ocultarTabs();\r\n\t\t\tthat.hideAsociarElemento = false;\r\n\t\t\tthat.msgPosicionar = [];\r\n\t\t\tthat.displayDialogPosicion = false;\r\n\t\t\tif (that.blockUI) {\r\n\t\t\t\tthat.blockUI.style.display = 'none';\r\n\t\t\t}\r\n\t\t\tthat.asociarElementoDescargado = true;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\ttabPosicionarSeleccionada(event) {\r\n\r\n\t\tconst that = this;\r\n\r\n\t\tif (this.asociarElementoDescargado || this.posicionarElementoDescargado) {\r\n\t\t\tthat.activeItem = that.tabMenuItems[3];\r\n\t\t\tthat.ocultarTabs();\r\n\t\t\tthat.hidePosicionarElemento = false;\r\n\t\t\tthat.displayDialogPosicion = true;\r\n\r\n\t\t\tthat.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\t\tif (that.blockUI) {\r\n\t\t\t\tthat.msgPosicionar = [];\r\n\t\t\t\tthat.blockUI.style.display = 'inherit';\r\n\t\t\t\tthat.msgPosicionar.push({severity: 'info', detail: that.translate.instant('Contenidos.avisoDesbloquear') + that.contenidoSeleccionado.Titulo});\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthat.spinner.style.display = 'inherit';\r\n\r\n\t\treturn this.obtenerEntyties()\r\n\t\t.then(function(){\r\n\t\t\tthat.activeItem = that.tabMenuItems[3];\r\n\t\t\tthat.ocultarTabs();\r\n\t\t\tthat.hidePosicionarElemento = false;\r\n\t\t\tthat.displayDialogPosicion = true;\r\n\r\n\t\t\tthat.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\t\tif (that.blockUI) {\r\n\t\t\t\tthat.msgPosicionar = [];\r\n\t\t\t\tthat.blockUI.style.display = 'inherit';\r\n\t\t\t\tthat.msgPosicionar.push({severity: 'info', detail: that.translate.instant('Contenidos.avisoDesbloquear') + that.contenidoSeleccionado.Titulo});\r\n\t\t\t}\r\n\r\n\t\t\tthat.posicionarElementoDescargado = true;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t})\r\n\t\t.catch(function(){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\r\n\tprotected ocultarTabs() {\r\n\t\tthis.hideContenido = true;\r\n\t\tthis.hideWebExterna = true;\r\n\t\tthis.hideAsociarElemento = true;\r\n\t\tthis.hidePosicionarElemento = true;\r\n\t\tthis.hideAudioguia = true;\r\n\t\tthis.hideModelo3d = true;\r\n\t\tthis.displayDialogPosicion = false;\r\n\t}\r\n\r\n//#endregion\r\n\r\n//#region -- CARGAR DATOS --\r\n\r\n\tobtenerEntyties(){\r\n\t\tconst includes = 'IDIOMAS';\r\n\t\tconst where = undefined;\r\n\t\tconst that = this;\r\n\t\tconst promises = [];\r\n\t\tpromises.push(this.obtenerESPACIO(where, includes));\r\n\t\tpromises.push(this.obtenerALA());\r\n\t\tpromises.push(this.obtenerNODO(where, includes));\r\n\t\tpromises.push(this.obtenerSECCION(where, includes));\r\n\t\tthat.spinner.style.display = 'inherit';\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\tobtenerNODO(where, includes) {\r\n\t\tconst that = this;\r\n\t\t// includes = includes + ', SECCION, CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\t\tincludes = includes + ', SECCION, CONTENIDOS';\r\n\t\treturn that.entityManager.getNODO(where, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tthat.listaNodos = [];\r\n\t\t\tentidades.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : -1);\r\n\t\t\tentidades.forEach(element => {\r\n\t\t\t\tconst nodo = new NodoFormulario().fromENTIDAD(element);\r\n\t\t\t\tthat.listaEntidades.push(nodo);\r\n\t\t\t\tthat.listaNodos.push(nodo);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerALA() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\t// let includes = 'SECCIONS, SECCIONS.NODOS.IDIOMAS, SECCIONS.IDIOMAS';\r\n\t\tlet includes = 'SECCIONS, SECCIONS.NODOS';\r\n\r\n\t\tincludes = includes + ', NIVEL';\r\n\t\treturn entityManager.getALA(undefined, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY ALAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.listaAlas = [];\r\n\r\n\t\t\t\t//entidades.sort((a, b) => (a.Nomobre > b.Nomobre) ? 1 : -1);\r\n\t\t\t\tentidades.sort( function(a, b) {\r\n\t\t\t\t\t\tif ( a.NIVEL.NivelVertical === b.NIVEL.NivelVertical) {\r\n\t\t\t\t\t\t return a.Nomobre.localeCompare(b.Nomobre) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn a.NIVEL.NivelVertical - b.NIVEL.NivelVertical;\r\n\t\t\t\t\t });\r\n\t\t\t\tentidades.forEach(element => {\r\n\t\t\t\t\tconst ala = new AlaFormulario(element);\r\n\t\t\t\t\tthat.listaEntidades.push(ala);\r\n\t\t\t\t\tthat.listaEntidadesDestacar.push(ala);\r\n\t\t\t\t\tthat.listaAlas.push(ala);\r\n\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerESPACIO(where, includes) {\r\n\t\tconst that = this;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\twhere = new Predicate('Id', '==', idEspacio);\r\n\t\treturn that.entityManager.getESPACIO(where, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tthat.listaEspacios = [];\r\n\t\t\tentidades.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : -1);\r\n\t\t\tentidades.forEach(element => {\r\n\t\t\t\tconst espacio = new EspacioFormulario(element);\r\n\t\t\t\tthat.listaEntidades.push(espacio);\r\n\t\t\t\tthat.listaEntidadesDestacar.push(espacio);\r\n\t\t\t\tthat.listaEspacios.push(espacio);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerSECCION(where, includes) {\r\n\t\tconst that = this;\r\n\t\treturn that.entityManager.getSECCION(where, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tthat.listaSecciones = [];\r\n\t\t\tentidades.sort((a, b) => (a.Nombre > b.Nombre) ? 1 : -1);\r\n\t\t\tentidades.forEach(element => {\r\n\t\t\t\tconst seccion = new SeccionFormulario().fromENTIDAD(element);\r\n\t\t\t\tthat.listaEntidades.push(seccion);\r\n\t\t\t\tthat.listaEntidadesDestacar.push(seccion);\r\n\t\t\t\tthat.listaSecciones.push(seccion);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n//#endregion\r\n\r\n//#region -- GUARDAR CONTENIDO --\r\n\r\n\tonSubmit() {\r\n\t\tconst a = 1;\r\n\t\tthis.guardarContenido();\r\n\t}\r\n\r\n\tvalidateAllFormFields(formGroup: FormGroup) { // {1}\r\n\t\tObject.keys(formGroup.controls).forEach(field => { // {2}\r\n\t\t\tconst control = formGroup.get(field); // {3}\r\n\t\t\tif (control instanceof FormControl) { // {4}\r\n\t\t\t\tcontrol.markAsDirty();\r\n\t\t\t\tcontrol.markAsTouched({ onlySelf: true });\r\n\t\t\t} else if (control instanceof FormGroup) { // {5}\r\n\t\t\t\tthis.validateAllFormFields(control); // {6}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tguardar(){\r\n\t\tconst that = this;\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_MODIFICAR'),\r\n\t\t\taccept: () => {\r\n\r\n\t\t\t\t// Mostramos Spinner\r\n\t\t\t\tthis.spinner.style.display = 'inherit';\r\n\t\t\t\treturn this.guardarContenido()\r\n\t\t\t\t.then(function(resp){\r\n\t\t\t\t\tconsole.log(resp)\r\n\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\t// that.spinner.style.display = 'none';\r\n\t\t\t\t\tif ( resp ){\r\n\t\t\t\t\t\tthat.appComponent.showSuccess( that.translate.instant('MensajesConfirmacion.MENSAJE_SUCCES'));\r\n\t\t\t\t\t\t//this.srcNuevaImagenDetalle = '';\r\n\t\t\t\t\t\tthat.router.navigate(['/contenidos']);\r\n\t\t\t\t\t\tconsole.log(resp)\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function(e){\r\n\t\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Guardado de Contenido.');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t}\r\n\r\n\tcancelar(){\r\n\t\tthis.confirmationService.confirm({\r\n message: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_CANCELAR'),\r\n accept: () => {\r\n\t\t\t\tthis.router.navigate(['/contenidos']);\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tconsole.log('Cancelado el Cancelado de Contenido.');\r\n\t\t\t}\r\n });\r\n\t}\r\n\r\n\tvolver(){\r\n\t\tthis.router.navigate(['/contenidos']);\r\n\t}\r\n\r\n\tguardarContenido() {\r\n\t\tif (this.validarFormularioContenido()) {\r\n\r\n\t\t\tconst that = this;\r\n\t\t\tconst token = that.authService.getToken();\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\t\tif(this.contenidoSeleccionado.IdAlternativo === \"\" || this.contenidoSeleccionado.IdAlternativo === null){\r\n\t\t\t\tif (!that.esEdicion) {\r\n\t\t\t\t\treturn that.guardarNuevoContenido();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn that.guardarEdicionContenido();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\treturn this.sws.wsValidarIdAlternativoContenidos(token, idEspacio, this.contenidoSeleccionado.IdAlternativo).toPromise()\r\n\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t// TODO: resp.existe y no pertenece al this.contenidoSeleccionado (this.contenidoSeleccionado.Id o esta en res.lista)\r\n\t\t\t\t\tif (resp.res > 0 ) {\r\n\t\t\t\t\t\tif (!that.esEdicion) {\r\n\t\t\t\t\t\t\tif (!resp.existe) {\r\n\t\t\t\t\t\t\t\treturn that.guardarNuevoContenido();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t// TODO: Avisar que ya existe\r\n\t\t\t\t\t\t\t\tconsole.log(resp);\r\n\t\t\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_IDALTERNATIVO_REPETIDO'));\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (!resp.existe || (resp.existe && resp.lista.indexOf( that.contenidoSeleccionado.Id ) >= 0 )) {\r\n\t\t\t\t\t\t\t\treturn that.guardarEdicionContenido();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t// TODO: Avisar que ya existe\r\n\t\t\t\t\t\t\t\tconsole.log(resp);\r\n\t\t\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_IDALTERNATIVO_REPETIDO'));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\t// TODO: hubo un error al validar el contenido\r\n\t\t\t\t\t\tconsole.log(resp);\r\n\t\t\t\t\t\tthat.appComponent.showError(that.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_IDALTERNATIVO_REPETIDO'));\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\treturn Promise.resolve(false);\r\n\t\t}\r\n\t}\r\n\r\n\tvalidarIdAlternativ(){\r\n\r\n\t}\r\n\r\n\t/* Validar */\r\n\tinputChanged(value) {\r\n\r\n\t\tconst p1Error = this.contenidoSeleccionado.Titulo === '' || this.contenidoSeleccionado.Titulo === undefined;\r\n\t\tconst p2Error = this.contenidoSeleccionado.FechaAlta == null || this.contenidoSeleccionado.FechaAlta === undefined;\r\n\t\tconst p3Error = false; // this.contenidoSeleccionado.FechaBaja === '' || this.contenidoSeleccionado.FechaBaja === undefined || this.contenidoSeleccionado.FechaBaja === null;\r\n\t\tconst p4Error = this.contenidoSeleccionado.Imagen === undefined && this.contenidoSeleccionado === undefined;\r\n\r\n\t\t// Validacion al guardar\r\n\t\tif (value === 'obligatorio'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (p4Error) {\r\n\t\t\t\tthis.imagenError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.imagenError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar titulo\r\n\t\telse if (value === 'titulo'){\r\n\t\t\tif (p1Error) {\r\n\t\t\t\tthis.tituloError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tituloError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_alta\r\n\t\telse if (value === 'fecha_alta'){\r\n\t\t\tif (p2Error) {\r\n\t\t\t\tthis.fAltaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fAltaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// validacion al editar fecha_baja\r\n\t\telse if (value === 'fecha_baja'){\r\n\t\t\tif (p3Error) {\r\n\t\t\t\tthis.fBajaError = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.fBajaError = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// Cojemos la traduccion del contenido al idioma seleccionado\r\n\t\t\tconst contenidoIdioma = this.contenidoSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t\t// Guardamos los posibles cambios del idioma\r\n\t\t\tcontenidoIdioma.Nombre = this.contenidoSeleccionado.Titulo;\r\n\t\t\tcontenidoIdioma.Descripcion = this.contenidoSeleccionado.Descripcion;\r\n\t\t\tcontenidoIdioma.htmlVisualizableDetalle = this.contenidoSeleccionado.HtmlDetalle;\r\n\t\t\tcontenidoIdioma.AudioTexto = this.contenidoSeleccionado.AudioTexto;\r\n\t\t\tcontenidoIdioma.NombreCorto = this.contenidoSeleccionado.NombreCorto;\r\n\t\t} catch (error) {\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic validarFormularioContenido(): boolean {\r\n\t\tthis.inputChanged('obligatorio');\r\n\r\n\t\tconst p1 = this.tituloError;\r\n\t\tconst p2 = this.fAltaError;\r\n\t\tconst p3 = this.fBajaError;\r\n\t\tconst p4 = this.imagenError;\r\n\t\tconst p5 = this.listaSeleccionados.length <= 0;\r\n\t\tconst p6 = this.listaNodosSeleccionados.length <= 0 || this.contenidoSeleccionado.ALA_PLANO === null;\r\n\r\n\t\tif (p1 || p2 || p3 || p4 || p5 || p6) {\r\n\t\t\tthis.isValid = false;\r\n\t\t\tif (p4) {\r\n\t\t\t\tif (this.imagenError) {\r\n\t\t\t\t\tthis.msgs.push({severity: 'error', summary: 'Imagen obligatoria', detail: this.translate.instant('Contenidos.imagenobligatorialabel')});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (p5) {\r\n\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_NO_ASIGNADO'));\r\n\t\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_NO_ASIGNADO'));\r\n\t\t\t}\r\n\t\t\tif (p6){\r\n\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_NODO_NO_ASIGNADO'));\r\n\t\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_CONTENIDO_NODO_NO_ASIGNADO'));\r\n\t\t\t}\r\n\r\n\t\t\telse {\r\n\t\t\t\tthis.appComponent.showError(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\t\tconsole.log(this.translate.instant('MensajesConfirmacion.MENSAJE_FORMULARIO_NO_VALIDO'));\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.isValid = true;\r\n\t\t}\r\n\r\n\t\treturn this.isValid;\r\n\t}\r\n\r\n\tguardarEdicionContenido() {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.guardarMultiIdioma()\r\n\t\t.then(function(){\r\n\t\t\treturn that.createOrUpdateWebs();\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.crearRelaciones(that.listaSeleccionados);\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\treturn that.actualizarFotosConDetalle(datos);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn that.subirFotosCarrousel();\r\n\t\t})\r\n\t\t.then(function(datos){\r\n\t\t\tconsole.log(datos)\r\n\t\t\treturn that.actualizarFotosCarrousel(datos);\r\n\t\t})\r\n\t\t.then(function (resp) {\r\n\t\t\t//that.contenidoSeleccionado.ENTIDAD.FOTOS = that.contenidoSeleccionado.ENTIDAD.FOTOS.filter( f => resp.lista.find(fc => fc.Id == f.Id));\r\n\r\n\t\t\tconsole.log(\"MODELO_3D chack Nombre: \" + that.modeloSeleccionado.Nombre);\r\n\t\t\tconsole.log(\"MODELO_3D chack Descripcion: \" + that.modeloSeleccionado.Descripcion);\r\n\t\t\tconsole.log(\"MODELO_3D chack Fecha Alta: \" + that.modeloSeleccionado.FechaAlta);\r\n\t\t\tconsole.log(\"MODELO_3D chack ios: \" + that.urlModeloSeleccionado_ios);\r\n\t\t\tconsole.log(\"MODELO_3D chack android: \" + that.urlModeloSeleccionado_android);\r\n\t\t\t// Solo creo una entrada de MODELO_3D en Base de datos si se ha rellenado algun campo de la parte de formulario MODELO_3D\r\n\t\t\tif (that.modeloSeleccionado.Nombre !== '' || that.modeloSeleccionado.Descripcion !== '' || that.urlModeloSeleccionado_ios !== undefined || that.urlModeloSeleccionado_android !== undefined) {\r\n\t\t\t\treturn that.guardarModelo();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tconst token = that.authService.getToken();\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\tconst idAla = that.contenidoSeleccionado.ALA_PLANO.Id;\r\n\r\n\t\t\treturn that.sws.wsObtenerLLFromXY(token, that.contenidoSeleccionado.X, that.contenidoSeleccionado.Y, idEspacio, idAla).toPromise();\r\n\t\t})\r\n\t\t.then(function (ll) {\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Latitud = ll.Latitud;\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Longitud = ll.Longitud;\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(){\r\n\r\n\t\t\t// Comprobar si Tipologia seleccionada es TipoUbicacion = Constantes.TIPO_LOCALIZACION_ACTIVOS.DIRECTA\r\n\t\t\t// Si no es localizable ELIMINAMOS TODAS LAS RELACIONES USUARIO_has_CONTENIDO_has_BALIZA con idContenido == that.contenidoSeleccionado.Id\r\n\t\t\t// Sino Return true;\r\n\t\t\tconst token = that.authService.getToken();\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\tconst tipologia = that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO;\r\n\r\n\t\t\tif (tipologia !== undefined && tipologia !== null) {\r\n\t\t\t\tif (tipologia.TipoUbicacion === 'ESTATICO' || tipologia.TipoUbicacion === null){\r\n\t\t\t\t\treturn that.sws.wsBorrarRelacionTipologiaNoLocalizable(token, that.contenidoSeleccionado.Id, idEspacio).toPromise();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t})\r\n\t\t.then(function () {\r\n\t\t\tconsole.log('Guardada Edicion contenido.');\r\n\t\t\tthat.appComponent.showSuccess(that.translate.instant('Contenidos.guardaredicioncontenido'));\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.entityManager.RejectChanges();\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tguardarMultiIdioma(){\r\n\t\tconst that = this;\r\n\r\n\t\t// Seteamos los Campos por defecto con el valor del Idioma por defecto\r\n\t\tconst contenidoIdioma = that.contenidoSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\tthis.contenidoSeleccionado.Titulo = contenidoIdioma ? contenidoIdioma.Nombre : '';\r\n\t\tthis.contenidoSeleccionado.Descripcion = contenidoIdioma ? contenidoIdioma.Descripcion : '';\r\n\t\tthis.contenidoSeleccionado.HtmlDetalle = contenidoIdioma ? contenidoIdioma.htmlVisualizableDetalle : '';\r\n\t\tthis.contenidoSeleccionado.AudioTexto = contenidoIdioma ? contenidoIdioma.AudioTexto : '';\r\n\t\tthis.contenidoSeleccionado.NombreCorto = contenidoIdioma ? contenidoIdioma.NombreCorto : '';\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.Titulo = this.contenidoSeleccionado.Titulo;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.Descripcion = this.contenidoSeleccionado.Descripcion;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.FechaAlta = this.contenidoSeleccionado.FechaAlta;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.FechaBaja = this.contenidoSeleccionado.FechaBaja;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.htmlVisualizableDetalle = this.contenidoSeleccionado.HtmlDetalle;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.TIPOLOGIA_CONTENIDO = this.contenidoSeleccionado.TIPOLOGIA_CONTENIDO;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.AudioTexto = this.contenidoSeleccionado.AudioTexto;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.NombreCorto = this.contenidoSeleccionado.NombreCorto;\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.IdAlternativo = this.contenidoSeleccionado.IdAlternativo;\r\n\r\n\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.IDIOMAS);\r\n\r\n\t\treturn this.entityManager.newCONTENIDO_IDIOMA(this.contenidoSeleccionado.ENTIDAD)\r\n\t\t.then(function(CONTENIDO_IDIOMAs){\r\n\r\n\t\t\tCONTENIDO_IDIOMAs.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\t\t// if (CONTENIDO_IDIOMA.constructor.name.indexOf('CONTENIDO_IDIOMA') >= 0) {\r\n\t\t\t\tconst aux = that.contenidoSeleccionado.Idiomas.get(CONTENIDO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tCONTENIDO_IDIOMA.Nombre = aux.Nombre ? aux.Nombre : '';\r\n\t\t\t\t\tCONTENIDO_IDIOMA.Descripcion = aux.Descripcion ? aux.Descripcion : '';\r\n\t\t\t\t\tCONTENIDO_IDIOMA.htmlVisualizableDetalle = aux.htmlVisualizableDetalle ? aux.htmlVisualizableDetalle : '';\r\n\t\t\t\t\tCONTENIDO_IDIOMA.AudioTexto = aux.AudioTexto ? aux.AudioTexto : '';\r\n\t\t\t\t\tCONTENIDO_IDIOMA.NombreCorto = aux.NombreCorto ? aux.NombreCorto : '';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn that.guardarDescripcionSinFoto(that.contenidoSeleccionado.ENTIDAD);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic subirFotos() {\r\n\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\r\n\t\tif (that.contenidoSeleccionado.nuevaImagenSeleccionada) {\r\n\t\t\t/*\r\n\t\t\tif (that.contenidoSeleccionado.ENTIDAD && that.contenidoSeleccionado.ENTIDAD.FOTOS) {\r\n\t\t\t\tthat.entityManager.deleteEntityArray(that.contenidoSeleccionado.ENTIDAD.FOTOS);\r\n\t\t\t}\r\n\t\t\t*/\r\n\r\n\t\t\tlet idFoto = null;\r\n\t\t\tif (that.contenidoSeleccionado.ENTIDAD && that.contenidoSeleccionado.ENTIDAD.FOTOS) {\r\n\t\t\t\tconst ultima = that.contenidoSeleccionado.ENTIDAD.FOTOS.length - 1;\r\n\t\t\t\tconst fotoUpdate = that.contenidoSeleccionado.ENTIDAD.FOTOS[ultima];\r\n\t\t\t\tidFoto = fotoUpdate ? fotoUpdate.Id : null;\r\n\t\t\t}\r\n\t\t\tpromises.push(that.enviarFoto('IdContenido', that.contenidoSeleccionado.ENTIDAD.Id, that.contenidoSeleccionado.nuevaImagenSeleccionada, idFoto));\r\n\t\t}\r\n\r\n\t\treturn allSettled(promises);\r\n\t}\r\n\r\n\tpublic actualizarFotosConDetalle(data){\r\n\t\t\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet idFoto = null;\r\n\t\tlet includes = 'FOTOS';\r\n\t\tlet Id = that.contenidoSeleccionado.ENTIDAD.Id;\r\n\t\tconsole.log(that.contenidoSeleccionado)\r\n\t\tthis.entityManager.getContenidoById(Id, includes)\r\n\t\t.then(function (contenido) {\r\n\t\t\tif (contenido && contenido.length > 0) {\r\n\t\t\t\tconst fotoUpdate = contenido[0].FOTOS.find(f => f.Tipo === Constantes.TIPO_FOTO.PRINCIPAL)\r\n\t\t\t\tidFoto = fotoUpdate ? fotoUpdate.Id : null;\r\n\r\n\t\t\t\tif (that.contenidoSeleccionado.nuevaImagenDetalleSeleccionada) {\r\n\t\t\t\t\tpromises.push(that.actualizarFotoDetalle('IdContenido', that.contenidoSeleccionado.ENTIDAD.Id, that.contenidoSeleccionado.nuevaImagenDetalleSeleccionada, idFoto));\r\n\t\t\t\t}\r\n\t\t\t\tif (that.contenidoSeleccionado.borrarImagenDetalleSeleccionada) {\r\n\t\t\t\t\tpromises.push(that.borrarFotoDetalle('IdContenido', that.contenidoSeleccionado.ENTIDAD.Id, that.contenidoSeleccionado.borrarImagenDetalleSeleccionada));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function (err){\r\n\t\t\tconsole.log('errorFotoDetalle: ' + err.status);\r\n\t\t\tthat.appComponent.showError(err.toString());\r\n\t\t});\r\n\r\n\t\treturn allSettled(promises);\r\n\r\n\r\n\t}\r\n\r\n\tpublic subirFotosCarrousel(){\r\n\r\n\t\tconst that = this;\r\n\t\tif(that.fotosCarrusel && that.fotosCarrusel.length > 0){\r\n\t\t\tlet auxArrayFotosSubir = that.fotosCarrusel.filter(foto => foto.Id === 'undefined');\r\n\t\t\tif(auxArrayFotosSubir.length > 0){\r\n\t\t\t\tlet ficherosSubir = [];\r\n\t\t\t\tauxArrayFotosSubir.forEach(element =>{\r\n\t\t\t\t\tficherosSubir.push(element.File);\r\n\t\t\t\t})\r\n\t\t\t\treturn this.sws.subirFotosCMS(ficherosSubir);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\t}\r\n\tpublic actualizarFotosCarrousel(nuevasFotos){\r\n\r\n\t\tnuevasFotos = typeof nuevasFotos === 'undefined' ? [] : nuevasFotos;\r\n\t\tconsole.log(nuevasFotos)\r\n\t\tif(nuevasFotos.length > 0){\r\n\r\n\t\t\tfor (let i = 0; i < nuevasFotos.length; i++) {\r\n\t\t\t\tlet index = this.fotosCarrusel.findIndex(f => f.Id === 'undefined');\r\n\t\t\t\tthis.fotosCarrusel[index].UrlFotoExt = nuevasFotos[i].UrlFotoExt;\r\n\t\t\t\tthis.fotosCarrusel[index].UrlFotoExt_detalle = nuevasFotos[i].UrlFotoExt;\r\n\t\t\t\tthis.fotosCarrusel[index].IdFotoExt = nuevasFotos[i].IdFotoExt;\r\n\t\t\t\tthis.fotosCarrusel[index].IdFotoExt_detalle = nuevasFotos[i].IdFotoExt;\r\n\t\t\t\tthis.fotosCarrusel[index].Id = null;\r\n\t\t\t\tthis.fotosCarrusel[index].IdContenido = this.contenidoSeleccionado.ENTIDAD.Id;\r\n\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tconsole.log(this.fotosCarrusel);\r\n\r\n\t\tconst token = this.authService.getToken();\r\n\t\treturn this.sws.wsActualizarFotosCarrusel(token, this.contenidoSeleccionado.ENTIDAD.Id, this.fotosCarrusel, '').toPromise();\r\n\t}\r\n\tbotonBorrarFotoDetallePresionado(){\r\n\t\tconsole.log(this.contenidoSeleccionado.ImagenDetalle);\r\n\t\tthis. contenidoSeleccionado.borrarImagenDetalleSeleccionada = true;\r\n\t\tif(this.contenidoSeleccionado.nuevaImagenDetalleSeleccionada){\r\n\t\t\tthis.contenidoSeleccionado.nuevaImagenDetalleSeleccionada = null;\r\n\t\t}\r\n\t\telse if(this.contenidoSeleccionado.ImagenDetalle && !this.contenidoSeleccionado.nuevaImagenDetalleSeleccionada){\r\n\t\t\tthis.contenidoSeleccionado.ImagenDetalle = null;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis. contenidoSeleccionado.borrarImagenDetalleSeleccionada = false;\r\n\t\t}\r\n\t}\r\n\tguardarMultiIdiomaWebs(){\r\n\t\tconst that = this;\r\n\r\n\t\tthat.contenidoSeleccionado.WebsExternas.forEach(webExterna => {\r\n\t\t\t// Si webExterna no tiene ENTIDAD es que es Nueva por lo que la creamos\r\n\t\t\tif (webExterna.ENTIDAD) {\r\n\t\t\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.IDIOMAS);\r\n\t\t\t\tthis.entityManager.newCONTENIDO_WEB_EXTERNA_IDIOMA(this.contenidoSeleccionado.ENTIDAD)\r\n\t\t\t\t.then(function(CONTENIDO_IDIOMAs){\r\n\r\n\t\t\t\t\tCONTENIDO_IDIOMAs.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\t\t\t\tconst aux = webExterna.Idiomas.get(CONTENIDO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\t\t\tif (aux) {\r\n\t\t\t\t\t\t\tCONTENIDO_IDIOMA.Texto = aux.Texto;\r\n\t\t\t\t\t\t\tCONTENIDO_IDIOMA.Codigo = aux.Codigo;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\teliminarRelaciones(){\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.ALAS.forEach(ENTIDAD => {\r\n\t\t\tthis.listaRelacionesEliminadas.push(ENTIDAD);\r\n\t\t});\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.ALAS);\r\n\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con ala: ' + error);\r\n\t\t}\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.ESPACIOS.forEach(ENTIDAD => {\r\n\t\t\tthis.listaRelacionesEliminadas.push(ENTIDAD);\r\n\t\t});\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.ESPACIOS);\r\n\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con ala: ' + error);\r\n\t\t}\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.SECCIONES.forEach(ENTIDAD => {\r\n\t\t\tthis.listaRelacionesEliminadas.push(ENTIDAD);\r\n\t\t});\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.SECCIONES);\r\n\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con ala: ' + error);\r\n\t\t}\r\n\r\n\t\tthis.contenidoSeleccionado.ENTIDAD.NODODS.forEach(ENTIDAD => {\r\n\t\t\tthis.listaRelacionesEliminadas.push(ENTIDAD);\r\n\t\t});\r\n\t\ttry {\r\n\t\t\tthis.entityManager.deleteEntityArray(this.contenidoSeleccionado.ENTIDAD.NODODS);\r\n\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('ERROR: al borrar relaciones con ala: ' + error);\r\n\t\t}\r\n\t}\r\n\r\n\tcrearRelaciones(listaSeleccionados) {\r\n\t\tconst that = this;\r\n\t\tconst promises: any[] = [];\r\n\r\n\t\t// Eliminamos las Relaciones Actuales\r\n\t\tthis.eliminarRelaciones();\r\n\r\n\t\t// Creamos las Nuevas Relaciones\r\n\t\tlistaSeleccionados.forEach(element => {\r\n\t\t\tif (element.TIPO === 'ESPACIO') {\r\n\t\t\t\tpromises.push(this.entityManager.newESPACIO_has_CONTENIDO());\r\n\t\t\t} else if (element.TIPO === 'ALA') {\r\n\t\t\t\tpromises.push(this.entityManager.newALA_has_CONTENIDO());\r\n\t\t\t} else if (element.TIPO === 'SECCION') {\r\n\t\t\t\tpromises.push(this.entityManager.newSECCION_has_CONTENIDO());\r\n\t\t\t} else if (element.TIPO === 'NODO') {\r\n\t\t\t\tpromises.push(this.entityManager.newNODO_has_CONTENIDO());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// resolvemos todos los promises del array\r\n\t\treturn allSettled(promises)\r\n\t\t.then(function (datos) {\r\n\r\n\t\t\tif (datos.length === that.listaSeleccionados.length) {\r\n\t\t\t\tfor (let index = 0; index < that.listaSeleccionados.length; index++) {\r\n\t\t\t\t\tconst seleccionado = that.listaSeleccionados[index];\r\n\t\t\t\t\tconst element = datos[index].result;\r\n\r\n\t\t\t\t\tif (element.constructor.name.indexOf('ESPACIO_has_CONTENIDO') >= 0) {\r\n\t\t\t\t\t\tconst relacionAntigua = that.listaRelacionesEliminadas.filter( x => x.IdEspacio === seleccionado.ENTIDAD.Id)[0];\r\n\t\t\t\t\t\telement.CONTENIDO = that.contenidoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdContenido = that.contenidoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.ESPACIO = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdEspacio = seleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.Prioridad = relacionAntigua ? relacionAntigua.Prioridad : element.ESPACIO.CONTENIDOS.length;\r\n\t\t\t\t\t\telement.PrioridadDestacado = relacionAntigua ? relacionAntigua.PrioridadDestacado : 0;\r\n\t\t\t\t\t} else if (element.constructor.name.indexOf('ALA_has_CONTENIDO') >= 0) {\r\n\t\t\t\t\t\tconst relacionAntigua = that.listaRelacionesEliminadas.filter( x => x.IdAla === seleccionado.ENTIDAD.Id)[0];\r\n\t\t\t\t\t\telement.CONTENIDO = that.contenidoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdContenido = that.contenidoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.ALA = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdAla = seleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.Prioridad = relacionAntigua ? relacionAntigua.Prioridad : element.ALA.CONTENIDOS.length;\r\n\t\t\t\t\t\telement.PrioridadDestacado = relacionAntigua ? relacionAntigua.PrioridadDestacado : 0;\r\n\t\t\t\t\t} else if (element.constructor.name.indexOf('SECCION_has_CONTENIDO') >= 0) {\r\n\t\t\t\t\t\tconst relacionAntigua = that.listaRelacionesEliminadas.filter( x => x.IdSeccion === seleccionado.ENTIDAD.Id)[0];\r\n\t\t\t\t\t\telement.CONTENIDO = that.contenidoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdContenido = that.contenidoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.SECCION = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdSeccion = seleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.Prioridad = relacionAntigua ? relacionAntigua.Prioridad : element.SECCION.CONTENIDOS.length;\r\n\t\t\t\t\t\telement.PrioridadDestacado = relacionAntigua ? relacionAntigua.PrioridadDestacado : 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (element.constructor.name.indexOf('NODO_has_CONTENIDO') >= 0) {\r\n\t\t\t\t\t\telement.CONTENIDO = that.contenidoSeleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdContenido = that.contenidoSeleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t\telement.NODO = seleccionado.ENTIDAD;\r\n\t\t\t\t\t\telement.IdNodo = seleccionado.ENTIDAD.Id;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn datos;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.appComponent.showError(that.translate.instant('Contenidos.errorcreandocontenidos'));\r\n\t\t\t\tconsole.log('Error - No se crearon correctamente todas las relaciones de Contenido con las entidades');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tguardarNuevoContenido() {\r\n\t\tconsole.log('aqui');\r\n\t\tconst that = this;\r\n\r\n\t\t// Creamos nuevo contenido\r\n\t\treturn this.entityManager.newCONTENIDO()\r\n\t\t.then(function (oCONTENIDO) {\r\n\r\n\t\t\tconst contenidoIdioma = that.contenidoSeleccionado.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\tthat.contenidoSeleccionado.Titulo = contenidoIdioma.Nombre ? contenidoIdioma.Nombre : '';\r\n\t\t\tthat.contenidoSeleccionado.Descripcion = contenidoIdioma.Descripcion ? contenidoIdioma.Descripcion : '';\r\n\t\t\tthat.contenidoSeleccionado.HtmlDetalle = contenidoIdioma.htmlVisualizableDetalle ? contenidoIdioma.htmlVisualizableDetalle : '';\r\n\t\t\tthat.contenidoSeleccionado.AudioTexto = contenidoIdioma.AudioTexto ? contenidoIdioma.AudioTexto : '';\r\n\t\t\tthat.contenidoSeleccionado.NombreCorto = contenidoIdioma.NombreCorto ? contenidoIdioma.NombreCorto : '';\r\n\r\n\t\t\toCONTENIDO.Titulo = that.contenidoSeleccionado.Titulo;\r\n\t\t\toCONTENIDO.Descripcion = that.contenidoSeleccionado.Descripcion;\r\n\t\t\toCONTENIDO.htmlVisualizableDetalle = that.contenidoSeleccionado.HtmlDetalle;\r\n\t\t\toCONTENIDO.FechaAlta = that.contenidoSeleccionado.FechaAlta;\r\n\t\t\toCONTENIDO.FechaBaja = that.contenidoSeleccionado.FechaBaja;\r\n\t\t\toCONTENIDO.EspacioPertenencia = that.authService.getIdEspacio();\r\n\t\t\toCONTENIDO.ALA_PLANO = that.contenidoSeleccionado.ALA_PLANO.ENTIDAD;\r\n\t\t\toCONTENIDO.X = that.contenidoSeleccionado.X;\r\n\t\t\toCONTENIDO.Y = that.contenidoSeleccionado.Y;\r\n\t\t\toCONTENIDO.AudioTexto = that.contenidoSeleccionado.AudioTexto;\r\n\t\t\toCONTENIDO.IdAlternativo = that.contenidoSeleccionado.IdAlternativo;\r\n\t\t\toCONTENIDO.NombreCorto = that.contenidoSeleccionado.NombreCorto;\r\n\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD = oCONTENIDO;\r\n\r\n\t\t\tlet tipologia = that.contenidoSeleccionado.TIPOLOGIA_CONTENIDO;\r\n\r\n\t\t\tif ((tipologia === undefined || tipologia === null) && that.tipologiasContenido.length > 0) {\r\n\t\t\t\ttipologia = that.tipologiasContenido[0];\r\n\t\t\t}\r\n\r\n\t\t\toCONTENIDO.TIPOLOGIA_CONTENIDO = tipologia;\r\n\r\n\t\t\toCONTENIDO.IDIOMAS.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\t\tconst aux = that.contenidoSeleccionado.Idiomas.get(CONTENIDO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tCONTENIDO_IDIOMA.Nombre = aux.Nombre;\r\n\t\t\t\t\tCONTENIDO_IDIOMA.Descripcion = aux.Descripcion;\r\n\t\t\t\t\tCONTENIDO_IDIOMA.htmlVisualizableDetalle = aux.htmlVisualizableDetalle;\r\n\t\t\t\t\tCONTENIDO_IDIOMA.AudioTexto = aux.AudioTexto;\r\n\t\t\t\t\tCONTENIDO_IDIOMA.NombreCorto = aux.NombreCorto;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn that.crearRelaciones(that.listaSeleccionados);\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\tconst token = that.authService.getToken();\r\n\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\tconst idAla = that.contenidoSeleccionado.ALA_PLANO.Id;\r\n\r\n\t\t\treturn that.sws.wsObtenerLLFromXY(token, that.contenidoSeleccionado.X, that.contenidoSeleccionado.Y, idEspacio, idAla).toPromise();\r\n\t\t})\r\n\t\t.then(function (ll) {\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Latitud = ll.Latitud;\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.Longitud = ll.Longitud;\r\n\r\n\t\t\treturn that.guardarDescripcionSinFoto(that.contenidoSeleccionado.ENTIDAD);\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\treturn that.subirFotos();\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\tconsole.log('aqui')\r\n\t\t\treturn that.actualizarFotosConDetalle(datos);\r\n\t\t})\r\n\t\t.then(function(){\r\n\t\t\treturn that.subirFotosCarrousel();\r\n\t\t})\r\n\t\t.then(function(datos){\r\n\t\t\tconsole.log(datos)\r\n\t\t\treturn that.actualizarFotosCarrousel(datos);\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\treturn that.guardarModelo();\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\tconsole.log('FOTO ok');\r\n\t\t\treturn that.createOrUpdateWebs();\r\n\t\t})\r\n\t\t.then(function (datos) {\r\n\t\t\tconsole.log('WEBS ok');\r\n\t\t\treturn true;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\t// Guarda las descripciones en todos los idiomas sustituyendo el base64 de als imagenes por enlaces de descarga\r\n\tguardarDescripcionSinFoto(CONTENIDO: any){\r\n\t\tconst promises: any[] = [];\r\n\t\tconst that = this;\r\n\t\tlet IDIOMAS;\r\n\r\n\t\tIDIOMAS = CONTENIDO.IDIOMAS;\r\n\t\tCONTENIDO.IDIOMAS.forEach(CONTENIDO_IDIOMA => {\r\n\t\t\tpromises.push(that.sws.subirFicherosFromHTML(CONTENIDO_IDIOMA.htmlVisualizableDetalle));\r\n\t\t});\r\n\r\n\t\treturn allSettled(promises)\r\n\t\t.then((urls) => {\r\n\t\t\t// urls trae un array por idioma, en el mismo orden que se generola llamada\r\n\t\t\tfor (let index = 0; index < CONTENIDO.IDIOMAS.length; index++) {\r\n\r\n\t\t\t\tconst CONTENIDO_IDIOMA = CONTENIDO.IDIOMAS[index];\r\n\t\t\t\tconst fotosUrl = urls[index].result;\r\n\t\t\t\tlet htmlDetalleSinImagenes = CONTENIDO_IDIOMA.htmlVisualizableDetalle ;\r\n\t\t\t\t// Cogemos las fotos de este idioma\r\n\t\t\t\tconst arraySRCs =\tthat.sws.getImgSrcFromHTML(CONTENIDO_IDIOMA.htmlVisualizableDetalle);\r\n\t\t\t\t// TODO: reemplazar los base64 de CONTENIDO_IDIOMA.htmlVisualizableDetalle por los enlaces en urls y meterlo en htmlDetalleSinImagenes\r\n\t\t\t\tfor (let index2 = 0; index2 < arraySRCs.length; index2++) {\r\n\t\t\t\t\tconst src = arraySRCs[index2];\r\n\t\t\t\t\tconst fotourl = fotosUrl[index2];\r\n\t\t\t\t\thtmlDetalleSinImagenes = htmlDetalleSinImagenes.toString().replace(src, fotourl);\r\n\t\t\t\t}\r\n\t\t\t\tCONTENIDO_IDIOMA.htmlVisualizableDetalle = htmlDetalleSinImagenes;\r\n\t\t\t\tCONTENIDO_IDIOMA.Nombre = CONTENIDO_IDIOMA.Nombre ? CONTENIDO_IDIOMA.Nombre : '';\r\n\r\n\t\t\t\t// Si es el idioma por defecto tambien cambiamos en CONTENIDO\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tif (that.idiomaDefecto.ENTIDAD.Id === CONTENIDO_IDIOMA.IdIdioma) {\r\n\t\t\t\t\tCONTENIDO.htmlVisualizableDetalle = htmlDetalleSinImagenes;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn CONTENIDO.IDIOMAS;\r\n\t\t}).catch((err) => {\r\n\t\t\tconsole.log(err);\r\n\t\t});\r\n\t}\r\n\r\n\tenviarFoto(entidad, idEntidad, imagen, idFoto = null) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsSubidaFoto(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n\tactualizarFotoDetalle(entidad, idEntidad, imagen, idFoto) {\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif (imagen !== undefined) {\r\n\t\t\treturn this.sws.wsActualizarFotoConDetalle(token, entidad, idEntidad, imagen, imagen.name, idFoto).toPromise();\r\n\t\t}\r\n\r\n\t}\r\n\tborrarFotoDetalle(entidad, idEntidad, imagen){\r\n\t\tconsole.log(\"se va a eliminar la foto detalle\");\r\n\t\tconst token = this.authService.getToken();\r\n\t\tif(imagen !== undefined){\r\n\t\t\treturn this.sws.wsBorrarFotoConDetalle(token, entidad, idEntidad, imagen, imagen.name).toPromise();\r\n\t\t}\r\n\t}\r\n\r\n//#endregion\r\n\r\n//#region -- WEBS EXTERNAS --\r\n\r\ncreateOrUpdateWebs() {\r\n\tconst that = this;\r\n\tconst promisesWebs: any[] = [];\r\n\r\n\tthat.contenidoSeleccionado.WebsExternas.forEach(webExterna => {\r\n\t\t// Si webExterna no tiene ENTIDAD es que es Nueva por lo que la creamos\r\n\t\tif (!webExterna.ENTIDAD) {\r\n\t\t\tpromisesWebs.push(that.entityManager.newCONTENIDO_WEB_EXTERNA());\r\n\t\t}\r\n\t});\r\n\r\n\treturn allSettled(promisesWebs) // resolvemos todos los promises del array para crear nuevas webs\r\n\t.then(function (contenido_web_externas) {\r\n\t\tconst promisesWebsIdioma: any[] = [];\r\n\t\t// webExterna.ENTIDAD == [] si no hay webs nuevas\r\n\t\tfor (let index = 0; index < that.contenidoSeleccionado.WebsExternas.length; index++) {\r\n\t\t\tconst webExterna = that.contenidoSeleccionado.WebsExternas[index];\r\n\r\n\t\t\t// Si webExterna.ENTIDAD == undefined -> hay webs nuevas, por lo contenido_web_externas traera las nuevas webs y las setearemos\r\n\t\t\tif (!webExterna.ENTIDAD) {\r\n\t\t\t\tconst result = contenido_web_externas.shift();\r\n\t\t\t\twebExterna.ENTIDAD = result.result;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\twebExterna.ENTIDAD.IdWebExterna = webExterna.IdWebExterna;\r\n\t\t\t}\r\n\r\n\t\t\twebExterna.ENTIDAD.Texto = webExterna.Nombre;\r\n\t\t\twebExterna.ENTIDAD.url = webExterna.Url;\r\n\r\n\t\t\t// Texto en cada Idioma\r\n\t\t\tconsole.log(webExterna)\r\n\t\t\twebExterna.ENTIDAD.IDIOMAS.forEach(CONTENIDO_WEB_EXTERNA_IDIOMA => {\r\n\t\t\t\tconsole.log(CONTENIDO_WEB_EXTERNA_IDIOMA)\r\n\t\t\t\tconst aux = webExterna.Idiomas.get(CONTENIDO_WEB_EXTERNA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif(aux !== undefined){\r\n\t\t\t\t\tCONTENIDO_WEB_EXTERNA_IDIOMA.Texto = aux.Texto;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tCONTENIDO_WEB_EXTERNA_IDIOMA.Texto = webExterna.Nombre;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t});\r\n\r\n\t\t\t// Texto por defecto\r\n\t\t\tconst contenidoWebExternaIdioma = webExterna.Idiomas.get(that.idiomaDefecto.ENTIDAD.Codigo);\r\n\t\t\twebExterna.Nombre = contenidoWebExternaIdioma.Texto ? contenidoWebExternaIdioma.Texto : '';\r\n\t\t\twebExterna.ENTIDAD.Nombre = webExterna.Nombre;\r\n\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.CONTENIDO_WEB_EXTERNAS.push(webExterna.ENTIDAD);\r\n\r\n\t\t\tthat.entityManager.deleteEntityArray(webExterna.ENTIDAD.IDIOMAS);\r\n\t\t\tpromisesWebsIdioma.push(that.entityManager.newCONTENIDO_WEB_EXTERNA_IDIOMA(webExterna.ENTIDAD));\r\n\t\t}\r\n\t\treturn allSettled(promisesWebsIdioma);\r\n\t})\r\n\t.then(function(CONTENIDO_IDIOMAs){\r\n\t\tfor (let index = 0; index < that.contenidoSeleccionado.WebsExternas.length; index++) {\r\n\t\t\tconst webExterna = that.contenidoSeleccionado.WebsExternas[index];\r\n\t\t\tconst result = CONTENIDO_IDIOMAs.shift();\r\n\t\t\tconst CONTENIDO_WEB_EXTERNA_IDIOMAS = result.result;\r\n\r\n\t\t\tCONTENIDO_WEB_EXTERNA_IDIOMAS.forEach(CONTENIDO_WEB_EXTERNA_IDIOMA => {\r\n\t\t\t\tconst aux = webExterna.Idiomas.get(CONTENIDO_WEB_EXTERNA_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\tif (aux) {\r\n\t\t\t\t\tCONTENIDO_WEB_EXTERNA_IDIOMA.Texto = aux.Texto;\r\n\t\t\t\t\tCONTENIDO_WEB_EXTERNA_IDIOMA.Codigo = aux.Codigo;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t})\r\n\t.then(function(msg){\r\n\t\treturn that.entityManager.saveChanges();\r\n\t})\r\n\t.then(function(msg){\r\n\t\treturn that.contenidoSeleccionado.WebsExternas;\r\n\t})\r\n\t.catch(function(err){\r\n\t\tthrow err;\r\n\t});\r\n}\r\n\r\nnewWebExternaPresionado() {\r\n\tthis.edicionWeb = false;\r\n\tthis.WebExternaSeleccionada = new WebExterna();\r\n\tthis.WebExternaSeleccionada.Idiomas = this.idiomaService.newMapContenidoWebExternaIdiomas(this.idiomas);\r\n\tthis.confirmacionVisible = false;\r\n\tthis.displayDialogWebExterna = true;\r\n}\r\n\r\neditarContenidoWebExterna(web) {\r\n\tthis.edicionWeb = true;\r\n\tconsole.log('WEB SELECCIONADA: ' + web.Nombre);\r\n\tthis.WebExternaSeleccionada = web;\r\n\r\n\tthis.confirmacionVisible = false;\r\n\tthis.displayDialogWebExterna = true;\r\n}\r\n\r\neliminarContenidoWebExterna(webSeleccionada) {\r\n\tif (webSeleccionada.ENTIDAD) {\r\n\t\tthis.contenidoSeleccionado.WebsExternas = this.contenidoSeleccionado.WebsExternas.filter( x => !x.ENTIDAD || (x.ENTIDAD.Id !== webSeleccionada.ENTIDAD.Id) );\r\n\t\tthis.entityManager.deleteCONTENIDO_WEB_EXTERNA(webSeleccionada.ENTIDAD);\r\n\t}\r\n\telse{\r\n\t\tthis.contenidoSeleccionado.WebsExternas = this.contenidoSeleccionado.WebsExternas.filter( x => x.IdWebExterna !== webSeleccionada.IdWebExterna);\r\n\t}\r\n\r\n\tthis.displayDialogWebExterna = false;\r\n}\r\n\r\nmostrarBotonEditarWebExterna(web) {\r\n\tweb.MostrarEdicion = true;\r\n}\r\n\r\nocultarBotonEditarWebExterna(web) {\r\n\tweb.MostrarEdicion = false;\r\n}\r\n\r\nonWebExternaGuardado($event){\r\n\tconsole.log('WEB SELECCIONADA: ' + $event.Nombre);\r\n\tthis.WebExternaSeleccionada = $event;\r\n\tthis.guardarContenidoWebExterna();\r\n}\r\n\r\nonWebExternaError($event){\r\n\tconsole.log('WEB SELECCIONADA: ' + $event.Nombre);\r\n}\r\n\r\nonWebExternaEliminado($event){\r\n\tconsole.log('WEB SELECCIONADA: ' + $event.Nombre);\r\n\tthis.eliminarContenidoWebExterna($event);\r\n}\r\n\r\nguardarContenidoWebExterna() {\r\n\r\n\tif (this.edicionWeb === false) {\r\n\t\tthis.contenidoSeleccionado.WebsExternas.push(this.WebExternaSeleccionada);\r\n\t}\r\n\tthis.displayDialogWebExterna = false;\r\n}\r\n\r\n//#endregion\r\n\r\n//#region -- PLANO --\r\n\tmostrarSeleccionarAla(ala) {\r\n\t\tala.seleccionarVisible = true;\r\n\t}\r\n\r\n\tocultarSeleccionarAla(ala) {\r\n\t\tala.seleccionarVisible = false;\r\n\t}\r\n\r\n\tseleccionarAla(ala: AlaFormulario) {\r\n\t\tthis.seleccionarAlaPresionado(ala);\r\n\t}\r\n\r\n\tbloquearMapa(){\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'inherit';\r\n\t\tthis.msgPosicionar.push({severity: 'info', detail: this.translate.instant('Contenidos.avisoDesbloquear')}); // this.translate.instant('MensajesEmergentes.MENSAJE_AVISO_SELECCIONE_NODO')\r\n\t}\r\n\r\n\tdesBloquearMapa(){\r\n\t\tthis.msgPosicionar = [];\r\n\t\tthis.blockUI = document.getElementsByClassName('blockPosicionarContenido')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t\tthis.msgPosicionar.push({severity: 'info', detail: this.translate.instant('Contenidos.avisoPosicionar')}); // this.translate.instant('MensajesEmergentes.MENSAJE_AVISO_SELECCIONE_NODO')\r\n\t}\r\n\r\n\tmapaBloqueadoClick(){\r\n\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.MAPA_BLOQUEADO'));\r\n\t}\r\n\r\n\tseleccionarAlaPresionado(ala: AlaFormulario) {\r\n\t\tthis.alaSeleccionada = ala;\r\n\t\tthis.pathPlano = this.alaSeleccionada.RutaImagen;\r\n\t\tthis.onTabClose(undefined);\r\n\t}\r\n\r\n\t/* PLANO */\r\n\tpublic onSVGLoaded(event) {\r\n\t\tthis.zoomLevels = [Constantes.ZOOM_MINIMO, Constantes.ZOOM_MAXIMO];\r\n\r\n\t\tlet contenidoPlano: ContenidoPlano;\r\n\r\n\t\tif (this.esEdicion ){\r\n\t\t\tif (!this.contenidoSeleccionado.ENTIDAD.X) { this.contenidoSeleccionado.ENTIDAD.X = Constantes.X_COORDENADA; }\r\n\t\t\tif (!this.contenidoSeleccionado.ENTIDAD.Y) { this.contenidoSeleccionado.ENTIDAD.Y = Constantes.Y_COORDENADA; }\r\n\t\t\tcontenidoPlano = new ContenidoPlano(this.contenidoSeleccionado.ENTIDAD.Id, this.contenidoSeleccionado.ENTIDAD.Nombre, this.contenidoSeleccionado.ENTIDAD.X, this.contenidoSeleccionado.ENTIDAD.Y, '', null, this.alaSeleccionada.IconoContenidoScale);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (!this.contenidoSeleccionado.X) { this.contenidoSeleccionado.X = Constantes.X_COORDENADA; }\r\n\t\t\tif (!this.contenidoSeleccionado.Y) { this.contenidoSeleccionado.Y = Constantes.Y_COORDENADA; }\r\n\t\t\tcontenidoPlano = new ContenidoPlano('IdProbisional', this.contenidoSeleccionado.Titulo, this.contenidoSeleccionado.X, this.contenidoSeleccionado.Y, '', null, this.alaSeleccionada.IconoContenidoScale);\r\n\t\t}\r\n\r\n\t\tlet tipologia = this.contenidoSeleccionado.ENTIDAD ? this.contenidoSeleccionado.ENTIDAD.TIPOLOGIA_CONTENIDO : this.contenidoSeleccionado.TIPOLOGIA_CONTENIDO;\r\n\r\n\t\tif ((tipologia === undefined || tipologia === null) && this.tipologiasContenido.length > 0) {\r\n\t\t\ttipologia = this.tipologiasContenido[0];\r\n\t\t}\r\n\r\n\t\tcontenidoPlano.setSimbolo(tipologia.IconoRepresentacion);\r\n\t\tcontenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\tcontenidoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\tcontenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\tcontenidoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\tcontenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\tcontenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\tcontenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\tcontenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\r\n\t\tcontenidoPlano.setIconAlign(tipologia.AnchorPoint);\r\n\r\n\t\tif (this.contenidoSeleccionado.ALA_PLANO && this.alaSeleccionada.Id === this.contenidoSeleccionado.ALA_PLANO.Id) {\r\n\t\t\tthis.contents = [contenidoPlano];\r\n\t\t}\r\n\r\n\t\tthis.pintarSecciones();\r\n\t}\r\n\r\n\tpublic onSVGClicked($event) {\r\n\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.NO_SECCION_CLICK'));\r\n\t}\r\n\r\n\tpublic onSeccionClicked($event){\r\n\r\n\t\t// Asignamos el contenido al nodo mas cercano al click realizado\r\n\t\tconst asignado = this.asignarNodoMasCescano($event.id, $event.mp[0], $event.mp[1]);\r\n\t\tif ( asignado ){\r\n\t\t\tconsole.log('onSeccionClicked');\r\n\t\t\tthis.contenidoSeleccionado.ALA_PLANO = this.alaSeleccionada;\r\n\t\t\tthis.posicionarContenido($event);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.appComponent.showWarn('mensaje', this.translate.instant('MensajesConfirmacion.NO_NODO_CERCA'));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic asignarNodoMasCescano(idSeccion, x, y){\r\n\t\tconsole.log('---------------------------------');\r\n\t\tlet seccion;\r\n\t\tlet nodos = [];\r\n\r\n\t\tif (idSeccion === '') {\r\n\t\t\tseccion = this.seccionDefecto;\r\n\t\t\tnodos = seccion.NODOS;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tseccion = this.mapSections.get(idSeccion);\r\n\t\t\tnodos = seccion.ENTIDAD.NODOS;\r\n\t\t}\r\n\r\n\t\t// d = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )\r\n\t\tlet distanciaMinima = Constantes.MAX_PESO;\r\n\t\tlet nodoMasCercano;\r\n\t\tnodos.forEach(nodo => {\r\n\t\t\tconst x1 = nodo.X;\r\n\t\t\tconst y1 = nodo.Y;\r\n\t\t\tconst x2 = x;\r\n\t\t\tconst y2 = y;\r\n\r\n\t\t\tconst d = Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) );\r\n\t\t\tconsole.log('--- Distancia a: ' + nodo.Nombre + ' = ' + d);\r\n\r\n\t\t\t// Utilizamos valores negativos para no tener que utilizar MaxValue para la inicializacion de distanciaMinima\r\n\t\t\tif (d < distanciaMinima) {\r\n\t\t\t\tdistanciaMinima = d;\r\n\t\t\t\tnodoMasCercano = nodo;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (!nodoMasCercano) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst idNodoMasCercano = nodoMasCercano.Id;\r\n\r\n\t\tconst entidadNodoMasCercano = this.listaEntidades.filter(obj => obj.Id === idNodoMasCercano)[0];\r\n\t\tthis.seccionClicada = seccion.ENTIDAD;\r\n\r\n\t\t// Ya estaba asignado a ese nodo\r\n\t\tif (!entidadNodoMasCercano) {\r\n\t\t\tconsole.log('--- No cambia NODO mas cercza');\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\t// SOLO SE PERMITE ASIGNAR UN UNICO NODO AL CONTENIDO\r\n\t\t\t// NODO\r\n\t\t\t// Quito Los nodos antes asignados de la lista Target\r\n\t\t\tconst nodosDeseleccionados = this.listaSeleccionados.filter(obj => obj.TIPO === 'NODO');\r\n\t\t\tif (nodosDeseleccionados) {\r\n\t\t\t\t// Quito la Seccion de ese nodo de las entidades seleccionadas\r\n\t\t\t\tnodosDeseleccionados.forEach(element => {\r\n\t\t\t\t\tconst seccionDeseleccionada = this.listaSeleccionados.filter(obj => obj.Id === element.ENTIDAD.SECCION.Id)[0];\r\n\t\t\t\t\tif (seccionDeseleccionada) {\r\n\t\t\t\t\t\tthis.listaEntidadesDestacar.push(seccionDeseleccionada);\r\n\t\t\t\t\t\tthis.listaSeleccionados = this.listaSeleccionados.filter(obj => obj.Id !== seccionDeseleccionada.Id);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.listaSeleccionados = this.listaSeleccionados.filter(obj => obj.TIPO !== 'NODO');\r\n\t\t\t\tthis.listaNodosSeleccionados = this.listaNodosSeleccionados.filter(obj => obj.TIPO !== 'NODO');\r\n\r\n\t\t\t\t// Asigno el nuevo nodo seleccionado\r\n\t\t\t\tif (entidadNodoMasCercano) {\r\n\t\t\t\t\tthis.listaSeleccionados.push(entidadNodoMasCercano);\r\n\t\t\t\t\tthis.listaNodosSeleccionados.push(entidadNodoMasCercano);\r\n\r\n\t\t\t\t\t// Asigno Seccion del nuevo Nodo Seleccionado\r\n\t\t\t\t\tconst seccionNodo = this.listaEntidades.filter(obj => obj.Id === entidadNodoMasCercano.ENTIDAD.SECCION.Id)[0];\r\n\t\t\t\t\tif (seccionNodo) {\r\n\t\t\t\t\t\tthis.listaSeleccionados.push(seccionNodo);\r\n\t\t\t\t\t\tthis.listaEntidadesDestacar = this.listaEntidadesDestacar.filter(obj => obj.Id !== seccionNodo.Id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tconsole.log('--- NODO mas cerca: ' + nodoMasCercano.Nombre);\r\n\t\t\tconsole.log('---------------------------------');\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tposicionarContenido(event){\r\n\r\n\t\tif (this.contents.length === 0){\r\n\r\n\t\t\tthis.contents.push(this.contenidoSeleccionado.CONTENIDO_PLANO);\r\n\t\t\tthis.contents = Object.assign([], this.contents);\r\n\t\t}\r\n\r\n\t\tif (this.esEdicion ){\r\n\t\t\tthis.contenidoSeleccionado.ENTIDAD.X = event.mp[0]; // + this.offset_x_icono_contenido;\r\n\t\t\tthis.contenidoSeleccionado.ENTIDAD.Y = event.mp[1]; // + this.offset_y_icono_contenido;\r\n\r\n\t\t\tthis.contents[0].setX(this.contenidoSeleccionado.ENTIDAD.X);\r\n\t\t\tthis.contents[0].setY(this.contenidoSeleccionado.ENTIDAD.Y);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.contenidoSeleccionado.X = event.mp[0]; // + this.offset_x_icono_contenido;\r\n\t\t\tthis.contenidoSeleccionado.Y = event.mp[1]; // + this.offset_y_icono_contenido;\r\n\r\n\t\t\tthis.contents[0].setX(this.contenidoSeleccionado.X);\r\n\t\t\tthis.contents[0].setY(this.contenidoSeleccionado.Y);\r\n\t\t}\r\n\r\n\t\tlet tipologia = this.contenidoSeleccionado.ENTIDAD ? this.contenidoSeleccionado.ENTIDAD.TIPOLOGIA_CONTENIDO : this.contenidoSeleccionado.TIPOLOGIA_CONTENIDO;\r\n\t\tif ((tipologia === undefined || tipologia === null) && this.tipologiasContenido.length > 0) {\r\n\t\t\ttipologia = this.tipologiasContenido[0];\r\n\t\t}\r\n\t\tthis.contents[0].setSimbolo(tipologia.IconoRepresentacion);\r\n\t\tthis.contents[0].symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\tthis.contents[0].symbolFill = Constantes.contenidoSymbolFill;\r\n\t\tthis.contents[0].symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\tthis.contents[0].symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\tthis.contents[0].sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\tthis.contents[0].sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\tthis.contents[0].setIconHeight(Constantes.contenidoIconHeight);\r\n\t\tthis.contents[0].setIconWidth(Constantes.contenidoIconWidth);\r\n\t\tthis.contents[0].setIconAlign(tipologia.AnchorPoint);\r\n\r\n\r\n\t\tthis.contents = [this.contents[0]];\r\n\t}\r\n\r\n\tonTabClose($event){\r\n\t\tthis.activeAcordeonIndex = 1;\r\n\t}\r\n\r\n\tonTabOpen($event){\r\n\t\tthis.activeAcordeonIndex = 0;\r\n\t}\r\n\r\n\r\n\tpintarSecciones(){\r\n\t\tconst secciones = new Array();\r\n\t\tthis.mapSections = new Map();\r\n\r\n\t\tthis.alaSeleccionada.ENTIDAD.SECCIONS.forEach(seccion => {\r\n\t\t\tif (!this.seccionDefecto || !seccion.CoordenadasPoligono) {\r\n\t\t\t\tthis.seccionDefecto = seccion;\r\n\t\t\t}\r\n\r\n\t\t\tconst seccionCoordenadasPoligono: Array> = (!seccion.CoordenadasPoligono ? null : JSON.parse(seccion.CoordenadasPoligono));\r\n\r\n\t\t\tconst seccionPlano = new SeccionPlano(seccion.Id, seccion.Nombre, seccionCoordenadasPoligono, seccion.ALA.PuntosSeccionScale , seccion.ALA.AristaSeccionScale);\r\n\t\t\tseccionPlano.ENTIDAD = seccion;\r\n\t\t\tseccionPlano.fill = seccion.Color;\r\n\t\t\tseccionPlano.stroke = seccion.Color;\r\n\t\t\tseccionPlano.strokeWidth = Constantes.seccionStrokeWidth;\r\n\t\t\tseccionPlano.hoverFill = seccion.Color;\r\n\t\t\tseccionPlano.hoverStroke = seccion.Color;\r\n\t\t\tsecciones.push(seccionPlano);\r\n\t\t\tthis.mapSections.set(seccion.Id, seccionPlano);\r\n\r\n\t\t});\r\n\r\n\t\tthis.filtrarSectionsBaja(secciones);\r\n\t\t// this.sections = secciones;\r\n\t\tconsole.log('sections... ' + this.sections.length);\r\n\t}\r\n\r\n\tfiltrarSectionsBaja(secciones){\r\n\t\tconst fechaVisualizacion = Date.now();\r\n\t\tthis.sections = new Array();\r\n\t\tsecciones.forEach((value: SeccionPlano, key: String) => {\r\n\t\t\tconsole.log(key, value);\r\n\t\t\tconst seccionPlano: SeccionPlano = value;\r\n\t\t\tif (seccionPlano.ENTIDAD.FechaBaja === null || seccionPlano.ENTIDAD.FechaBaja > fechaVisualizacion ){\r\n\t\t\t\tif (seccionPlano.ENTIDAD.FechaAlta !== null && seccionPlano.ENTIDAD.FechaAlta <= fechaVisualizacion ){\r\n\t\t\t\t\tthis.sections.push(seccionPlano);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.sections = this.sections;\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\t}\r\n\r\n\tpublic alaSeleccionadaChange($event){\r\n\t\tthis.alaSeleccionada = $event.value;\r\n\t\tthis.seleccionarAla(this.alaSeleccionada);\r\n\t}\r\n\r\n//#endregion\r\n\r\n//#region -- IDIOMA --\r\npublic onTextChange(event: CKEditor4.EventInfo): void {\r\n\r\n\t this.contenidoSeleccionado.Source = 'user'\r\n\t this.contenidoSeleccionado.HtmlDetalle = event.editor.getData();\r\n\r\n\r\n\t// // Cojemos la traduccion del contenido al idioma seleccionado\r\n\t const contenidoIdioma = this.contenidoSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t// // Guardamos los posibles cambios del idioma\r\n\t contenidoIdioma.htmlVisualizableDetalle = this.contenidoSeleccionado.HtmlDetalle;\r\n\r\n\t this.contenidoSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, contenidoIdioma);\r\n}\r\n\r\n\r\n\r\n\tonAudioTextChange($event){\r\n\t\tconsole.log($event);\r\n\t\tconsole.log(this.contenidoSeleccionado.AudioTexto);\r\n\r\n\t\tthis.contenidoSeleccionado.AudioTexto = $event.textValue;\r\n\r\n\t\t// Cojemos la traduccion del contenido al idioma seleccionado\r\n\t\tconst contenidoIdioma = this.contenidoSeleccionado.Idiomas.get(this.idiomaSeleccionado.ENTIDAD.Codigo);\r\n\r\n\t\t// Guardamos los posibles cambios del idioma\r\n\t\tcontenidoIdioma.AudioTexto = this.contenidoSeleccionado.AudioTexto;\r\n\r\n\t\tthis.contenidoSeleccionado.Idiomas.set(this.idiomaSeleccionado.ENTIDAD.Codigo, contenidoIdioma);\r\n\t}\r\n\r\n/* *********************\r\n\tplaySpeech(){\r\n\t\tthis.speech.speak({\r\n\t\t\ttext: this.contenidoSeleccionado.AudioTexto,\r\n\t\t}).then(() => {\r\n\t\t\tconsole.log('Success !');\r\n\t\t}).catch(e => {\r\n\t\t\tconsole.error('An error occurred :', e);\r\n\t\t});\r\n\t}\r\n\r\n\tpauseSpeech(){\r\n\t\treturn this.speech.pause({\r\n\t\t\ttext: this.contenidoSeleccionado.AudioTexto,\r\n\t\t}).then(() => {\r\n\t\t\tconsole.log('Success !');\r\n\t\t}).catch(e => {\r\n\t\t\tconsole.error('An error occurred :', e);\r\n\t\t});\r\n\t}\r\n\r\n\tresumeSpeech(){\r\n\t\treturn this.speech.resume({\r\n\t\t\ttext: this.contenidoSeleccionado.AudioTexto,\r\n\t\t}).then(() => {\r\n\t\t\tconsole.log('Success !');\r\n\t\t}).catch(e => {\r\n\t\t\tconsole.error('An error occurred :', e);\r\n\t\t});\r\n\t}\r\n\r\n\tstopSpeech(){\r\n\t\treturn this.speech.cancel({\r\n\t\t\ttext: this.contenidoSeleccionado.AudioTexto,\r\n\t\t}).then(() => {\r\n\t\t\tconsole.log('Success !');\r\n\t\t}).catch(e => {\r\n\t\t\tconsole.error('An error occurred :', e);\r\n\t\t});\r\n\t}\r\n************************* */\r\n\r\n\tonIdiomaChange($event) {\r\n\t\tconst idioma = $event.value;\r\n\t\tif (!idioma) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.idiomaSeleccionado = idioma;\r\n\r\n\t\t// Cojemos la traduccion del contenido al idioma seleccionado\r\n\t\tlet contenidoIdioma = this.contenidoSeleccionado.Idiomas.get(idioma.value);\r\n\r\n\t\t// Si no existe la creamos\r\n\t\tif (!contenidoIdioma) {\r\n\t\t\tcontenidoIdioma = new ContenidoIdiomaFormulario();\r\n\t\t\tthis.contenidoSeleccionado.Idiomas.set(idioma.value, contenidoIdioma);\r\n\t\t}\r\n\r\n\t\t// Seteamos los valores de contenidoFormulario con los valores del idioma seleccionado\r\n\t\tthis.contenidoSeleccionado.Titulo = contenidoIdioma.Nombre;\r\n\t\tthis.contenidoSeleccionado.Descripcion = contenidoIdioma.Descripcion;\r\n\t\tthis.contenidoSeleccionado.HtmlDetalle = contenidoIdioma.htmlVisualizableDetalle;\r\n\t\tthis.contenidoSeleccionado.AudioTexto = contenidoIdioma.AudioTexto;\r\n\t\tthis.contenidoSeleccionado.NombreCorto = contenidoIdioma.NombreCorto;\r\n\r\n\t\tconsole.log('Cambiar Titulo y descripcion a la del idioma: ' + idioma.value + '(' + idioma.title + ')');\r\n\t}\r\n\r\n//#endregion\r\n\r\n//#region -- IMAGEN --\r\n\t// -- Image Cropper --\r\n\tfileChangeListener($event) {\r\n\t\tthis.imageCropperVisible = true;\r\n\t\tconst image: any = new Image();\r\n\t\tconst file: File = $event.target.files[0];\r\n\t\tconst nombre = file.name;\r\n\t\tconst tipo = file.type;\r\n\t\tconst myReader: FileReader = new FileReader();\r\n\t\tconst that = this;\r\n\t\tmyReader.onloadend = function (loadEvent: any) {\r\n\t\t\timage.src = loadEvent.target.result;\r\n\t\t\tthat.cropper.setImage(image);\r\n\t\t\tthat.sws.base64ToFile(image.src, nombre, tipo)\r\n\t\t\t.then(function(fotoFile){\r\n\t\t\t\tthat.contenidoSeleccionado.nuevaImagenSeleccionada = fotoFile;\r\n\t\t\t});\r\n\t\t};\r\n\t\tmyReader.readAsDataURL(file);\r\n\t}\r\n\r\n\tonImageDetelleHandler(event){\r\n\t\tconst that = this;\r\n\r\n\t\tconst file: File = event.target.files[0];\r\n\t\tconsole.log(file);\r\n\t\tthis.contenidoSeleccionado.nuevaImagenDetalleSeleccionada = file;\r\n\t\tif (FileReader && file) {\r\n\t\t\tconst fr = new FileReader();\r\n\t\t\tfr.onload = e => {\r\n\t\t\t\tthis.srcNuevaImagenDetalle = e.target.result\r\n\r\n\t\t\t};\r\n\t\t\tfr.readAsDataURL(file);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tasignarFotoCropp($event){\r\n\t\tconst that = this;\r\n\t\tthis.sws.base64ToFile(this.data.image, that.contenidoSeleccionado.nuevaImagenSeleccionada.name)\r\n\t\t.then(function(fotoFile){\r\n\t\t\tthat.contenidoSeleccionado.nuevaImagenSeleccionada = fotoFile;\r\n\t\t\tthat.imageCropperVisible = false;\r\n\t\t});\r\n\t}\r\n\r\n\tgetMensajesExpirados(_val) {\r\n\t\tfor (const i in this.mensajesExpirados) {\r\n\t\t\tif (this.mensajesExpirados[i].value === _val) {\r\n\t\t\t\treturn this.mensajesExpirados[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tonMostrarFormularioPrioridadDestacar($event){\r\n\r\n\t\tconsole.log('ELEMENTO A EDITAR');\r\n\r\n\t}\r\n\r\n\tonOcultarFormularioPrioridadDestacar($event){\r\n\r\n\t}\r\n\r\n\tgetImagenDetallePreview(){\r\n\t\tif (this.contenidoSeleccionado.nuevaImagenDetalleSeleccionada) {\r\n\t\t\treturn this.contenidoSeleccionado.nuevaImagenDetalleSeleccionada;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.contenidoSeleccionado.ImagenDetalle;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tmostrarBotonImagenDetalle(){\r\n\r\n\t\tconst op1 = (this.contenidoSeleccionado.Imagen !== \"assets/itsoft/images/no-contenidos-p.png\" && this.contenidoSeleccionado.Imagen !== undefined) || (this.data.image !== \"assets/itsoft/images/no-contenidos-p.png\" && this.data.image !== undefined);\r\n\t\treturn op1;\r\n\r\n\t}\r\n\r\n\r\n//#endregion\r\n\r\n//#region -- MODELO_3D\r\n\t/* ** Metodos de GroupForm ** */\r\n\tonFileSelectModelo_ios($event, fileUploadComponent) {\r\n\r\n\t\tthis.selectorImagenModelo_ios = fileUploadComponent;\r\n\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\tthis.ficheroModeloSeleccionado_ios = $event.files[0];\r\n\r\n\t\tthis.modeloSeleccionado.NombreFichero = $event.files[0].name;\r\n\t}\r\n\r\n\tonFileSelectModelo_android($event, fileUploadComponent) {\r\n\r\n\t\tthis.selectorImagenModelo_android = fileUploadComponent;\r\n\t\tconsole.log('$event.files[0] = ' + $event.files[0]);\r\n\t\tthis.ficheroModeloSeleccionado_android = $event.files[0];\r\n\r\n\t\tthis.modeloSeleccionado.NombreFichero = $event.files[0].name;\r\n\t}\r\n\r\n\tonRemoveSelectModelo_ios($event?, fileUploadComponent?) {\r\n\t\tthis.ficheroModeloSeleccionado_ios = undefined;\r\n\t}\r\n\r\n\tonRemoveSelectModelo_android($event?, fileUploadComponent?) {\r\n\t\tthis.ficheroModeloSeleccionado_android = undefined;\r\n\t}\r\n\r\n\tpublic subirModelo_android() {\r\n\t\tif (this.ficheroModeloSeleccionado_android) {\r\n\t\t\treturn this.sws.subirFicheroCMS(this.ficheroModeloSeleccionado_android, undefined, environment.CMS_3d_model_user_1, environment.CMS_3d_model_token).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(this.modeloSeleccionado.UrlExt_android);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic subirModelo_ios() {\r\n\t\tif (this.ficheroModeloSeleccionado_ios) {\r\n\t\t\treturn this.sws.subirFicheroCMS(this.ficheroModeloSeleccionado_ios, undefined, environment.CMS_3d_model_user_1, environment.CMS_3d_model_token).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(this.modeloSeleccionado.UrlExt_ios);\r\n\t\t}\r\n\t}\r\n\r\n\tguardarModelo(){\r\n\t\tconst that = this;\r\n\t\treturn this.subirModelo_android()\r\n\t\t.then(function(urlModelo){\r\n\t\t\tthat.urlModeloSeleccionado_android = urlModelo;\r\n\t\t\treturn that.subirModelo_ios();\r\n\t\t})\r\n\t\t.then(function(urlModelo) {\r\n\t\t\tthat.urlModeloSeleccionado_ios = urlModelo;\r\n\r\n\t\t\tif (that.contenidoSeleccionado.ENTIDAD.MODELO_3D) {\r\n\t\t\t\treturn that.entityManager.deleteMODELO_3D(that.contenidoSeleccionado.ENTIDAD.MODELO_3D)\r\n\t\t\t\t.then(function(resp){\r\n\r\n\t\t\t\t\treturn that.entityManager.newMODELO_3D();\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn that.entityManager.newMODELO_3D();\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t\t.then(function(MODELO_3D) {\r\n\r\n\t\t\tMODELO_3D.Nombre = that.modeloSeleccionado.Nombre;\r\n\t\t\tMODELO_3D.Descripcion = that.modeloSeleccionado.Descripcion ? that.modeloSeleccionado.Descripcion : '' ;\r\n\t\t\tMODELO_3D.FechaAlta = that.modeloSeleccionado.FechaAlta;\r\n\r\n\t\t\tMODELO_3D.UrlExt_ios = that.urlModeloSeleccionado_ios;\r\n\t\t\tMODELO_3D.IdExt_ios = that.urlModeloSeleccionado_ios.split('/')[that.urlModeloSeleccionado_ios.split('/').length - 1];\r\n\r\n\t\t\tMODELO_3D.IdExt_android = that.urlModeloSeleccionado_android.split('/')[that.urlModeloSeleccionado_android.split('/').length - 1];\r\n\t\t\tMODELO_3D.UrlExt_android = that.urlModeloSeleccionado_android;\r\n\r\n\t\t\tMODELO_3D.NombreFichero = that.modeloSeleccionado.NombreFichero;\r\n\t\t\tMODELO_3D.FechaActualizacionFichero = that.modeloSeleccionado.FechaActualizacionFichero;\r\n\r\n\t\t\tMODELO_3D.GeocalibracionActiva = that.modeloSeleccionado.GeocalibracionActiva;\r\n\t\t\tMODELO_3D.Metros_Aparicion = that.modeloSeleccionado.Metros_Aparicion;\r\n\t\t\tMODELO_3D.Orientacion = that.modeloSeleccionado.Orientacion;\r\n\t\t\tMODELO_3D.Latitud_topLeft = that.modeloSeleccionado.Latitud_topLeft;\r\n\t\t\tMODELO_3D.Longitud_topLeft = that.modeloSeleccionado.Longitud_topLeft;\r\n\t\t\tMODELO_3D.Latitud_topRight = that.modeloSeleccionado.Latitud_topRight;\r\n\t\t\tMODELO_3D.Longitud_topRight = that.modeloSeleccionado.Longitud_topRight;\r\n\t\t\tMODELO_3D.Latitud_bottomRight = that.modeloSeleccionado.Latitud_bottomRight;\r\n\t\t\tMODELO_3D.Longitud_bottomRight = that.modeloSeleccionado.Longitud_bottomRight;\r\n\t\t\tMODELO_3D.Latitud_bottomLeft = that.modeloSeleccionado.Latitud_bottomLeft;\r\n\t\t\tMODELO_3D.Longitud_bottomLeft = that.modeloSeleccionado.Longitud_bottomLeft;\r\n\t\t\tMODELO_3D.width = that.modeloSeleccionado.width;\r\n\t\t\tMODELO_3D.height = that.modeloSeleccionado.height;\r\n\r\n\t\t\tthat.modeloSeleccionado.Id = MODELO_3D.Id;\r\n\t\t\tthat.modeloSeleccionado.ENTIDAD = MODELO_3D;\r\n\r\n\t\t\tthat.contenidoSeleccionado.ENTIDAD.IdModelo3D = MODELO_3D.Id;\r\n\r\n\t\t\treturn that.entityManager.saveChanges();\r\n\t\t})\r\n\t\t.then(function(resp) {\r\n\t\t\tconsole.log(resp);\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tconsole.log(err);\r\n\t\t});\r\n\t}\r\n\r\n\tposicionarModelo(){\r\n\t\tthis.appComponent.showError('No Implementado!');\r\n\t}\r\n\r\n//#endregion\r\n\r\n\texportarContenido(){\r\n\t\twindow.print();\r\n\t}\r\n\r\n\t// No se usa pero lo dejo por si acaso\r\n\texportarQR_SVG(){\r\n\t\tdocument.getElementsByClassName('view')[0].attributes[3].value = '0';\r\n\r\n\t\tconst ambos = document.getElementById('contenedor_impresion2');\r\n\t\tlet ambosString = new XMLSerializer().serializeToString(ambos);\r\n\t\tconst regex2 = /assets/g;\r\n\t\tambosString = ambosString.replace(regex2, environment.urlPublicacionFija + '/assets/');\r\n\r\n\t\tdocument.getElementsByClassName('view')[0].attributes[3].value = '0';\r\n\t\tconst url2 = window.URL.createObjectURL(new Blob([ambosString], {type: 'text/plain'}));\r\n\r\n\t\t// Exportar svg\r\n\t\treturn this.sws.downloadFile(url2, 'SVG_HISTORICOS.svg');\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'FechaAlta') {\r\n\t\t\tthis.contenidoSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'FechaBaja') {\r\n\t\t\tthis.contenidoSeleccionado.FechaBaja = fecha;\r\n\t\t}\r\n\t\tif (tipo === 'fAltaModelo') {\r\n\t\t\tthis.modeloSeleccionado.FechaAlta = fecha;\r\n\t\t}\r\n\t\tcalendar.overlayVisible=false;\r\n\t}\r\n\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/contenidos/nuevo/nuevo.contenido.component.ts","module.exports = \"\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/MapasParent.component.html\n// module id = ../../../../../src/app/views/mapas/MapasParent.component.html\n// module chunks = main","\r\n\r\nimport { Component, Directive, OnInit, ViewEncapsulation, OnDestroy, Inject, forwardRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n\ttemplateUrl: './MapasParent.component.html'\r\n})\r\n\r\nexport class MapasParentComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t) {\r\n\t\tconsole.log('*** MapasParentComponent ***');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/MapasParent.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
      \\r\\n

      {{'Mapas.titulo' | translate}}

      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n {{nivel.Nombre}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      {{ala.Nomobre}}
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      {{'Mapas.crearplano' | translate}}
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.html\n// module id = ../../../../../src/app/views/mapas/SelectorMapas.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.scss\n// module id = ../../../../../src/app/views/mapas/SelectorMapas.component.scss\n// module chunks = main","import { PermisosService, Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Message } from 'primeng/primeng';\r\nimport { ConfirmationService } from 'primeng/primeng';\r\n\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\n\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\n\r\nimport { AlaFormulario } from '../../domain/AlaFormulario';\r\nimport { NivelFormulario } from '../../domain/NivelFormulario';\r\nimport { Constantes } from './../../domain/constantes';\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { AppComponent } from '../../app.component';\r\n\r\n@Component({\r\n\tselector: 'app-selector',\r\n\ttemplateUrl: './SelectorMapas.component.html',\r\n\tstyleUrls: ['./SelectorMapas.component.scss'],\r\n\tproviders: [ConfirmationService]\r\n})\r\n\r\nexport class SelectorMapasComponent implements OnInit, OnDestroy {\r\n\r\n\tlistaNiveles: any[] = [];\r\n\tspinner: HTMLElement;\r\n\tmsgs: Message[] = [];\r\n\tuploadedFilesAla = [];\r\n\timagenAlaSeleccionada: any;\r\n\tselectorImagenAla: any;\r\n\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\r\n\t/* ** @INPUTS de Formulario ** */\r\n\talaSeleccionada: AlaFormulario = new AlaFormulario();\r\n\tnivelSeleccionado: NivelFormulario = new NivelFormulario();\r\n\tedicionAla: boolean;\r\n\tedicionNivel: boolean;\r\n\r\n\t/* ** @INPUTS de p-dialog ** */\r\n\tformAlaVisible: boolean;\r\n\tformNivelVisible: boolean;\r\n\r\n\tASC = 1;\r\n\tDESC = -1;\r\n\r\n\t/* Permisos */\r\n\tpermisos: Permisos = new Permisos();\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\tprivate router: Router,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate permisosService: PermisosService\r\n\t)\r\n\t{\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Mapas.mapas') }\r\n\t\t]);\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\r\n\t\tconst that = this;\r\n\t\tthis.entityManager.getIDIOMA()\r\n\t\t.then(function(idiomasENTIDAD: any ){\r\n\r\n\t\t\tthat.idiomas = [];\r\n\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthat.idiomaDefecto = idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\treturn that.comprobarPermisos();\r\n\t\t});\r\n\t}\r\n\r\n /* ** Funciones preparacion Vista ** */\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\t// Mostramos Spinner\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\tthis.cargarEntidades()\r\n\t\t.then(function () {\r\n\t\t\t// Ocultamos Spinner\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\tconsole.log('*** prepararRutaSugeridasCell OK ***');\r\n\t\t})\r\n\t\t.catch(function(){\r\n\t\t\tconsole.log('*** Error: ngOnInit ***');\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManager.RejectChanges();\r\n\t}\r\n\r\n\tcomprobarPermisos() {\r\n\t\tconst userId = this.authService.getIdUsuario();\r\n\t\tconst that = this;\r\n\t\treturn this.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(perm: Permisos){\r\n\t\t\tthat.permisos = perm;\r\n\t\t});\r\n\t}\r\n\r\n\tcargarEntidades(): Promise < any > {\r\n\t\tconst that = this;\r\n\r\n\t\treturn this.obtenerNIVEL()\r\n\t\t.then(function(niveles) {\r\n\t\t\tconsole.log(niveles)\r\n\t\t\tniveles.forEach(nivel => {\r\n\t\t\t\tfor (let index = 0; index < nivel.ALAS.length; index++) {\r\n\t\t\t\t\tif (index === nivel.ALAS.length - 1) {\r\n\t\t\t\t\t\tconst ala = nivel.ALAS[index];\r\n\t\t\t\t\t\tala.esLaUltima = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn niveles;\r\n\t\t})\r\n\t\t.catch(function (e) {\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerNIVEL() {\r\n\t\tconst that = this;\r\n\t\tconst entityManager = that.entityManager;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\tlet includes = 'ESPACIO, ';\r\n\t\tincludes = includes + 'ALAS.SECCIONS, ';\r\n\t\tincludes = includes + 'ALAS.IDIOMAS, ';\r\n\t\tincludes = includes + 'IDIOMAS';\r\n\r\n\t\treturn entityManager.getNIVEL(predicado, includes)\r\n\t\t.then(function(niveles){\r\n\r\n\t\t\tthat.listaNiveles = niveles;\r\n\t\t\tthat.ordenarListaNiveles(that.ASC);\r\n\r\n\t\t\treturn niveles;\r\n\t\t})\r\n\t\t.catch(function(e){\r\n\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Acciones ALAS ** */\r\n\tcrearAlaPresionado(nivel, event) {\r\n\t\tconsole.log(this.imagenAlaSeleccionada);\r\n\t\tthis.alaSeleccionada = new AlaFormulario();\r\n\t\tthis.nivelSeleccionado = nivel;\r\n\t\tthis.alaSeleccionada.Idiomas = this.idiomaService.newMapAlaIdiomas(this.idiomas);\r\n\t\tthis.edicionAla = false;\r\n\t\tthis.formAlaVisible = true;\r\n\t\tconsole.log(this.imagenAlaSeleccionada);\r\n\t}\r\n\r\n\teditarAla(ala) {\r\n\t\t// this.alaSeleccionada = ala;\r\n\t\tconsole.log('ala = ' + ala);\r\n\t\tconsole.log('ala.ENTIDAD = ' + ala.ENTIDAD);\r\n\t\tthis.router.navigate(['/mapas/editar', { id: ala.Id }]);\r\n\t}\r\n\r\n\teditarAlaPresionado(alaENTIDAD) {\r\n\t\tthis.alaSeleccionada = new AlaFormulario(alaENTIDAD);\r\n\t\t// this.alaSeleccionada.Idiomas = this.idiomaService.getMapAlaIdiomas(alaENTIDAD.IDIOMAS);\r\n\t\t// this.alaSeleccionada.ENTIDAD = alaENTIDAD;\r\n\t\t// this.alaSeleccionada.Nomobre = alaENTIDAD.Nomobre;\r\n\t\t// this.alaSeleccionada.Descripcion = alaENTIDAD.Descripcion;\r\n\r\n\t\t// this.imagenAlaSeleccionada = undefined;\r\n\t\t// this.alaSeleccionada.Imagen = 'assets/itsoft/images/mini-plano.png';\r\n\r\n\t\tthis.edicionAla = true;\r\n\t\tthis.formAlaVisible = true;\r\n\t}\r\n\r\n\t/* ** Acciones NIVELES ** */\r\n\tcrearNivelPresionado() {\r\n\t\tthis.nivelSeleccionado = new NivelFormulario();\r\n\t\tthis.nivelSeleccionado.Idiomas = this.idiomaService.newMapNivelIdiomas(this.idiomas);\r\n\t\tthis.edicionNivel = false;\r\n\t\tthis.formNivelVisible = true;\r\n\t}\r\n\r\n\teditarNivelPresionado(nivel) {\r\n\t\tthis.nivelSeleccionado = nivel;\r\n\t\tthis.nivelSeleccionado.Idiomas = this.idiomaService.getMapNivelIdiomas(nivel.IDIOMAS);\r\n\t\tthis.edicionNivel = true;\r\n\t\tthis.formNivelVisible = true;\r\n\t}\r\n\r\n\teliminarNivelPresionado(nivel) {\r\n\t\tconst that = this;\r\n\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\tmessage: this.translate.instant('MensajesConfirmacion.MENSAJE_CONFIRMACION_ELIMINAR'),\r\n\t\t\theader: this.translate.instant('MensajesConfirmacion.MENSAJE_CABECERA_CONFIRMACION'),\r\n\t\t\ticon: 'fa fa-question-circle',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\r\n\t\t\t\tthis.nivelSeleccionado = nivel;\r\n\t\t\t\treturn this.entityManager.deleteNIVEL(this.nivelSeleccionado)\r\n\t\t\t\t// return this.entityManager.saveChanges()\r\n\t\t\t\t.then(function() {\r\n\t\t\t\t\tthat.listaNiveles = that.listaNiveles.filter((val, i) => val.Id !== nivel.Id);\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function(e) {\r\n\t\t\t\t\tthat.appComponent.showError(e.message);\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/* ** Gestion Mensajes ** */\r\n\tprotected showError = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'error', detail: mensaje});\r\n\t}\r\n\r\n\tprotected showSuccess = (mensaje) => {\r\n\t\tthis.msgs = [];\r\n\t\tthis.msgs.push({severity: 'success', detail: mensaje});\r\n\t}\r\n\r\n\r\n\t/* *** @Outlets de Formulario Ala *** */\r\n\tonElementoAlaGuardado($event){\r\n\t\tconsole.log('onElementoGuardado');\r\n\t\tthis.formAlaVisible = false;\r\n\t\tthis.appComponent.showSuccess(this.translate.instant('elementoGuardadoCorrectamente'));\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoAlaEliminado($event){\r\n\t\tthis.formAlaVisible = false;\r\n\t\tthis.appComponent.showSuccess(this.translate.instant('elementoEliminadoCorrectamente'));\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\t/* *** @Outlets de Formulario Nivel *** */\r\n\tonElementoNivelGuardado($event){\r\n\t\tif (!this.edicionNivel) {\r\n\t\t\tthis.listaNiveles.push($event);\r\n\t\t}\r\n\t\tthis.ordenarListaNiveles(this.ASC);\r\n\r\n\t\tthis.formNivelVisible = false;\r\n\t\tthis.appComponent.showSuccess(this.translate.instant('elementoGuardadoCorrectamente'));\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoNivelEliminado($event){\r\n\t\tthis.ordenarListaNiveles(this.ASC);\r\n\t\tthis.formNivelVisible = false;\r\n\t\tthis.appComponent.showSuccess(this.translate.instant('elementoEliminadoCorrectamente'));\r\n\t\tthis.spinner.style.display = 'none';\r\n\t}\r\n\r\n\tonElementoError($evento) {\r\n\t\tthis.appComponent.showError($evento);\r\n\t}\r\n\r\n\tmostrarEditar(ala) {\r\n\t\t// Muestra u Oculta el boton editar al pasar el raton por encima del elemento\r\n\t\tala.editarVisible = true;\r\n\t}\r\n\r\n\tocultarEditar(ala) {\r\n\t\t// Muestra u Oculta el boton editar al pasar el raton por encima del elemento\r\n\t\tala.editarVisible = false;\r\n\t}\r\n\r\n\tdownloadFile(fileName) {\r\n\t\tif (fileName === 'Guia_de_Refencia_de_estilos.pdf') {\r\n\t\t\treturn this.sws.downloadFile(Constantes.Guia_de_Refencia_de_estilos, fileName);\r\n\t\t}\r\n\t}\r\n\r\n\tordenarListaNiveles(order){\r\n\t\tthis.listaNiveles.sort( (one: any, two: any) => {\r\n\t\t\t// Ordenamos descendente\r\n\t\t\treturn one.NivelVertical > two.NivelVertical ? 1 * order : -1 * order;\r\n\t\t});\r\n\t}\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/SelectorMapas.component.ts","module.exports = \"
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n
      \\r\\n\\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n {{this.alaSeleccionada?.NIVEL.Nombre + \\\"-\\\" + this.alaSeleccionada?.Nomobre}}\\r\\n \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Mapas.editar' | translate}} {{this.nodoEdicion.Nombre}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Contenidos.posicionar' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Beacons.editarbaliza' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Mapas.editarconexion' | translate}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Mapas.editar' | translate}} {{this.seccionEdicion.Nombre}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n
      \\r\\n \\r\\n
      {{'Mapas.crearSeccion' | translate}} {{this.seccionEdicion.Nombre}}
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
      \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.html\n// module id = ../../../../../src/app/views/mapas/mapas.component.html\n// module chunks = main","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".inner {\\n position: absolute;\\n width: 5px;\\n height: 5px;\\n top: 50%;\\n left: 50%;\\n background-color: #00c; }\\n\\n.mapasMenuItems {\\n position: absolute;\\n padding: 15px; }\\n\\n.mapasMenuItems > .ui-slidemenu {\\n height: 320px; }\\n\\n.ui-menuitem > a > span {\\n color: #757575; }\\n\\n.mapasMenuItemsHeader {\\n padding-bottom: 0px;\\n font-size: 0.8em;\\n text-transform: uppercase;\\n text-align: center; }\\n\\n.mapasMenuItemsHeader > a > span {\\n color: #757575; }\\n\\n.mapasMenuItemsFooter {\\n padding-top: 0px; }\\n\\n.mapasMenuItemsSeparator {\\n padding-left: 10px;\\n padding-right: 10px; }\\n\\n.menu-segment {\\n opacity: 0.4;\\n fill: #4679bd; }\\n\\n.menu-segment:hover {\\n opacity: 0.6;\\n fill: #5689cd; }\\n\\n.menu-icon {\\n pointer-events: none; }\\n\\n.menu-visibilidad > div {\\n height: 313px; }\\n\\n.menu-visibilidad > div > div {\\n height: 100% !important; }\\n\\n.menu-visibilidad > div > div > div {\\n height: 100% !important; }\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.scss\n// module id = ../../../../../src/app/views/mapas/mapas.component.scss\n// module chunks = main","import { Permisos } from './../../providers/authentication/permisos.service';\r\nimport { Component, OnInit, ViewEncapsulation, OnDestroy, ViewChild } from '@angular/core';\r\nimport { BreadcrumbService } from '../../breadcrumb.service';\r\nimport { Compass } from '../../domain/compass';\r\nimport { SeccionPlano, ContenidoPlano, PlanoComponent } from 'interiores-mapa';\r\nimport { ConexionPlano } from 'interiores-mapa';\r\nimport { NodoPlano } from 'interiores-mapa';\r\nimport { AuthenticationService } from '../../providers/authentication/authentication.service';\r\nimport { EntityManagerProvider } from '../../providers/entity-manager-provider/entity-manager-provider';\r\nimport { ServiciosWebServiceProvider } from '../../providers/web-service-service/servicios-web-service';\r\nimport { TranslateService } from 'ng2-translate';\r\nimport { Message } from 'primeng/primeng';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ConexionFormulario } from '../../domain/ConexionFormulario';\r\nimport { NodoFormulario } from '../../domain/NodoFormulario';\r\nimport { SeccionFormulario } from '../../domain/SeccionFormulario';\r\nimport { Contenido } from '../../domain/Contenido';\r\nimport * as d3RadialMenu from 'd3-radial-menu';\r\nimport * as allSettled from 'promise-all-settled';\r\nimport {\r\n\tPredicate\r\n} from 'breeze-client';\r\nimport { Idioma } from '../../domain/Idioma';\r\nimport { IdiomaService } from '../../providers/idioma/idioma.service';\r\nimport { AlaFormulario } from '../../domain/AlaFormulario';\r\nimport { Constantes } from '../../domain/constantes';\r\nimport { zoom_coordenadasPlano } from 'interiores-mapa/dist/zoom_coordenadasPlano';\r\nimport { zoomCenterCoordsPlano } from 'interiores-mapa/dist/zoomCenterCoordsPlano';\r\nimport { PermisosService } from '../../providers/authentication/permisos.service';\r\nimport * as Q from 'q';\r\nimport { AppComponent } from '../../app.component';\r\nimport { BalizaFormulario } from '../../domain/BalizaFormulario';\r\nimport { BeaconPlano } from 'interiores-mapa/dist/beaconPlano';\r\nimport { IdiomaCalendario } from '../../domain/IdiomaCalendatio';\r\nimport { NotificacionPlano } from 'interiores-mapa/dist/notificacionPlano';\r\nimport { AvisoCiudadanoFormulario } from '../../domain/AvisoCiudadanoFormulario';\r\nimport { Router } from '@angular/router';\r\nimport { Planta, VerticalManager } from '../../domain/Vertical';\r\n\r\nconst D3SCALEMENU = 1;\r\nconst D3ICONSIZEMENU = 64;\r\nconst D3RADIUSMENU = 40;\r\nconst D3THICKNESSMENU = 70;\r\n@Component({\r\n\ttemplateUrl: './mapas.component.html',\r\n\tstyleUrls: ['./mapas.component.scss'],\r\n\tencapsulation: ViewEncapsulation.None\r\n})\r\nexport class MapasComponent implements OnInit, OnDestroy {\r\n\tspinner: HTMLElement;\r\n\tblockUI: HTMLElement;\r\n\tmovible: boolean;\r\n\tpathPlano: String;\r\n\tcurrentZoomLevel: number = 1;\r\n\tzoomLevels: Number[];\r\n\tzoomCenterCoords: Number[];\r\n\tzoomCenterTransitionDuration: number;\r\n\tzoom_coordenadas: zoom_coordenadasPlano;\r\n\tverticalManager: VerticalManager;\r\n\tsections: Array; // Alimenta al componente Plano, son las secciones que se mostraran\r\n\tmapSections: Map; // Coleccion con todos los Secciones\r\n\tseccionEdicion: SeccionFormulario = new SeccionFormulario();\r\n\r\n\tnodes: Array; // Alimenta al componente Plano, son los nodos que se mostraran\r\n\tmapNodes: Map; // Coleccion con todos los Nodos\r\n\tnodoEdicion: NodoFormulario = new NodoFormulario();\r\n\r\n\tlinks: Array; // Alimenta al componente Plano, son las conexiones que se mostraran\r\n\tmapLinks: Map; // Coleccion con todos los Conexiones\r\n\tconexionEdicion: ConexionFormulario = new ConexionFormulario();\r\n\r\n\tbeacons: Array; // Alimenta al componente Plano, son las balizas que se mostraran\r\n\tmapBeacons: Map; // Coleccion con todos los Balizas\r\n\tbalizaEdicion: BalizaFormulario = new BalizaFormulario();\r\n\r\n\tcontents: Array = []; // Alimenta al componente Plano, son los contenidos que se mostraran\r\n\tmapContents: Map; // Coleccion con todos los Contenidos\r\n\tcontenidosFormulario: Contenido[] = [];\r\n\tcontenidoEdicion: Contenido = new Contenido();\r\n\r\n\tnotifications: Array = []; // Alimenta al componente Plano, son las Notificaciones que se mostraran\r\n\tmapNotifications: Map; // Coleccion con todos las Notificaciones\r\n\tnotificacionEdicion: AvisoCiudadanoFormulario = new AvisoCiudadanoFormulario();\r\n\r\n\r\n\tseccionDefecto: any;\r\n\ttipologiaDefecto: any;\r\n\tperfilesMovilidadDefecto: any;\r\n\r\n\tcolorSeleccionado: any = '#00000';\r\n\tcursorPointer: string = '';\r\n\tconexionEdicionVuelta: ConexionFormulario = new ConexionFormulario();\r\n\ttramoNodoOrigen: NodoPlano;\r\n\ttramoNodoDestino: NodoPlano;\r\n\tidAla: string;\r\n\talaSeleccionada: any;\r\n\tmapaZoom = 1;\r\n\ttipologias: any[] = [];\r\n\tperfilesMovilidad: any[] = [];\r\n\tidHardwareBalizas: any[] = [];\r\n\t// listaNiveles: any[] = [];\r\n\tmsgs: Message[] = [];\r\n\testadoEdicion: string = '';\r\n\tsubEstadoEdicion: string = '';\r\n\tbackLabel: string = '';\r\n\tpathSvgPlano: string;\r\n\thammer: any;\r\n\t@ViewChild('plano') plano: PlanoComponent;\r\n\tcompass: Compass;\r\n\tmpClick: any = null;\r\n\tdisplayDialogNuevaSeccion = false;\r\n\tdisplayDialogEditarSeccion = false;\r\n\tapareceBoton = false;\r\n\tdisplayDialogNuevoNodo = false;\r\n\tdisplayDialogEditarNodo = false;\r\n\tdisplayDialogNuevaConexion = false;\r\n\tdisplayDialogEditarConexion = false;\r\n\tdisplayDialogContenido = false;\r\n\tdisplayDialogCrearSeccion = false;\r\n\tdisplayDialogBaliza = false;\r\n\r\n\tformularioNodoMaximizado = true;\r\n\tformularioSeccionMaximizado = true;\r\n\tformularioConexionMaximizado = true;\r\n\tdisplayDialogAla = false;\r\n\tmapasMenuItems: MenuItem[] = [];\r\n\t// edicionMenuItems: MenuItem[] = [];\r\n\tmapasMenuVisibilidad: MenuItem[] = [];\r\n\tmostrarNodos: boolean;\r\n\tmostrarSecciones: boolean;\r\n\tmostrarTramos: boolean;\r\n\tmostrarContenidos: boolean;\r\n\tmostrarBalizas: boolean;\r\n\tmostrarNotificaciones: boolean;\r\n\r\n\tsectionsOpacity: number = 1;\r\n\tnodesOpacity: number = 1;\r\n\tlinksOpacity: number = 1;\r\n\tcontentsOpacity: number = 1;\r\n\tbeaconsOpacity: number = 1;\r\n\tnotificationsOpacity: number = 1;\r\n\r\n\topacidad: number = 1;\r\n\r\n\t// nivelSeleccionado: any;\r\n\talasPortal: AlaFormulario[] = [];\r\n\tuploadedFilesAla = [];\r\n\timagenAlaSeleccionada: any;\r\n\tselectorImagenAla: any;\r\n\tformAla: FormGroup;\r\n\t// radialMenu: D3RadialMenu;\r\n\t/* ** IDIOMAS ** */\r\n\tidiomas;\r\n\tidiomaSeleccionado: Idioma;\r\n\tidiomaDefecto: Idioma;\r\n\tidiomaCalendario: IdiomaCalendario;\r\n\r\n\t/* ** PERMISOS ** */\r\n\tpermisos: Permisos = new Permisos();\r\n\r\n\t// Almacena los estados de las capas para poder ocultarlas y restaurarlas en las ediciones\r\n\tprivate elementosOcultadosNoEdicionOrigen = {};\r\n\tzoomAndCenterCoords = new zoomCenterCoordsPlano(0, 0, 0, 0, 1, [0, 0]);\r\n\tprotected section_segment_menu: any = null;\r\n\tprotected section_conector_menu: any = null;\r\n\tprotected link_segment_menu: any = null;\r\n\tprotected link_conector_menu: any = null;\r\n\tprotected node_menu: any = null;\r\n\r\n\t// Para asociar Balizas a nodos\r\n\tbalizaAsociarSeleccionada: BalizaFormulario = new BalizaFormulario();\r\n\tbalizasResaltar: BeaconPlano[] = []; // Usado para resaltar un conjunto de balizas y controlar cuales estan resaltadas y cuales no.\r\n\tfechaVisualizacion: Date = new Date();\r\n\ttipologiasBaliza: any[];\r\n\talaSeleccionada2: any;\r\n\tnivelSeleccionado: any;\r\n\r\n\t//tipologias seccion\r\n\topcionesSelectorTipologia: any[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate appComponent: AppComponent,\r\n\t\tprivate breadcrumbService: BreadcrumbService,\r\n\t\t// private eventService: EventService,\r\n\t\tprivate entityManagerProvider: EntityManagerProvider,\r\n\t\tpublic sws: ServiciosWebServiceProvider,\r\n\t\tpublic authService: AuthenticationService,\r\n\t\tprivate route: ActivatedRoute,\r\n\t\tpublic idiomaService: IdiomaService,\r\n\t\tprivate translate: TranslateService,\r\n\t\tprivate router: Router,\r\n\t\tprivate permisosService: PermisosService,\r\n\t\tprivate entityManager: EntityManagerProvider,\r\n\t) {\r\n\t\tthis.movible = false;\r\n\t\tthis.backLabel = this.translate.instant('Mapas.atras');\r\n\t\tthis.breadcrumbService.setItems([\r\n\t\t\t{ label: this.translate.instant('Mapas.mapas'), routerLink: ['/mapas'] },\r\n\t\t\t{ label: this.translate.instant('Mapas.plano') }\r\n\t\t]);\r\n\t\tthis.route.params.subscribe(params => {\r\n\t\t});\r\n\t\t// Inicializamos Spinner\r\n\t\tthis.spinner = document.getElementsByClassName('spinner-container')[0] as HTMLElement;\r\n\t\tthis.spinner.style.display = 'none';\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\tngOnInit() {\r\n\t\tconst that = this;\r\n\t\twindow.scroll(0, 0);\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\r\n\t\tthis.fechaVisualizacion = new Date();\r\n\r\n\t\tthis.idiomaCalendario = new IdiomaCalendario();\r\n\t\tthis.idiomaCalendario.firstDayOfWeek = 1;\r\n\t\tthis.idiomaCalendario.dayNames = this.translate.instant('Calendario.dayNames');\r\n\t\tthis.idiomaCalendario.dayNamesShort = this.translate.instant('Calendario.dayNamesShort');\r\n\t\tthis.idiomaCalendario.dayNamesMin = this.translate.instant('Calendario.dayNamesMin');\r\n\t\tthis.idiomaCalendario.monthNames = this.translate.instant('Calendario.monthNames');\r\n\t\tthis.idiomaCalendario.monthNamesShort = this.translate.instant('Calendario.monthNamesShort');\r\n\t\tthis.idiomaCalendario.today = this.translate.instant('Calendario.today');\r\n\t\tthis.idiomaCalendario.clear = this.translate.instant('Calendario.clear');\r\n\r\n\t\tthis.route.params.subscribe((params: Params) => {\r\n\t\t\tthis.idAla = params['id'];\r\n\t\t\tconsole.log('this.alaId = ' + this.idAla);\r\n\t\t\tthis.entityManagerProvider.getIDIOMA()\r\n\t\t\t.then(function (idiomasENTIDAD: any) {\r\n\t\t\t\tthat.idiomas = [];\r\n\t\t\t\tidiomasENTIDAD.forEach(idioma => {\r\n\t\t\t\t\tif(idioma.Visible === true){\r\n\t\t\t\t\tthat.idiomas.push(new Idioma(idioma));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthat.idiomaDefecto = that.idiomaService.getIdiomaDefecto(that.idiomas);\r\n\t\t\t\tthat.idiomaSeleccionado = that.idiomaDefecto;\r\n\r\n\t\t\t\treturn that.comprobarPermisos(that);\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.obtenerALA(that.idAla, that);\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.obtenerBalizasTotales();\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.obtenerTIPOLOGIAS(that);\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.obtenerPERFIL_MOVILIDAD_CIUDADANO(that);\r\n\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.entityManagerProvider.getTIPOLOGIA_BALIZA();\r\n\t\t\t})\r\n\t\t\t.then(function(tipos){\r\n\t\t\t\tthat.tipologiasBaliza = tipos;\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\treturn that.permisosService.obtenerTIPOLOGIA_SECCION();\r\n\t\t\t})\r\n\t\t\t.then(function(tipologias){\r\n\t\t\t\tconsole.log(tipologias)\r\n\t\t\t\tthat.opcionesSelectorTipologia = tipologias;\r\n\t\t\t\tthat.opcionesSelectorTipologia = that.opcionesSelectorTipologia.filter(o => o.Activa === true);\r\n\t\t\t\tconsole.log(that.opcionesSelectorTipologia)\r\n\t\t\t\tthat.opcionesSelectorTipologia.sort((one: any, two: any) => {\r\n\t\t\t\t\tvar textA = one.Nombre.toUpperCase();\r\n\t\t\t\t\tvar textB = two.Nombre.toUpperCase();\r\n\t\t\t\t\treturn textA.localeCompare(textB);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.inicializarMenu();\r\n\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t})\r\n\t\t\t.catch(function(){\r\n\t\t\t\t// Ocultamos Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tngOnDestroy(): void {\r\n\t\tthis.entityManagerProvider.RejectChanges();\r\n\t}\r\n\tmostrarNombre(){\r\n\t\tconst that = this;\r\n\t\treturn this.alaSeleccionada.NIVEL.Nombre + \"-\" + this.alaSeleccionada.Nomobre;\r\n\t}\r\n\tcomprobarPermisos(that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst userId = that.authService.getIdUsuario();\r\n\t\treturn that.permisosService.getPermisosUsuario(userId)\r\n\t\t.then(function(permisos){\r\n\t\t\tthat.permisos = permisos;\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerBalizasTotales() {\r\n\t\tconst that = this;\r\n\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\r\n\t\treturn this.entityManager.getBALIZA()\r\n\t\t.then(function(BALIZAs){\r\n\r\n\t\t\tBALIZAs.forEach(element => {\r\n\t\t\t\t\tconst baliza = new BalizaFormulario().fromENTIDAD(element);\r\n\t\t\t\t\tthat.idHardwareBalizas.push(baliza.IdHardware);\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t});\r\n\t}\r\n\r\n\tinicializarMenu() {\r\n\t\tthis.mapasMenuVisibilidad = [];\r\n\t\tthis.mapasMenuItems = [];\r\n\r\n\t\t// Menu Visibilidades\r\n\t\tif (this.permisos.Mapa_plano_nodo !== 0){\r\n\t\t\tthis.mapasMenuVisibilidad.push( { label: this.translate.instant('Mapas.nodoscapa'), id: 'NODOS', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } } );\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_seccion !== 0){\r\n\t\t\tthis.mapasMenuVisibilidad.push( { label: this.translate.instant('Mapas.seccionescapa'), id: 'SECCIONES', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } });\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_conexion !== 0) {\r\n\t\t\tthis.mapasMenuVisibilidad.push( \t{ label: this.translate.instant('Mapas.tramoscapa'), id: 'TRAMOS', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } });\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_contenido !== 0) {\r\n\t\t\tthis.mapasMenuVisibilidad.push({ label: this.translate.instant('Mapas.contenidoscapa'), id: 'CONTENIDOS', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } });\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_balizas !== 0) {\r\n\t\t\tthis.mapasMenuVisibilidad.push({ label: this.translate.instant('Mapas.balizascapa'), id: 'BALIZAS', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } });\r\n\t\t}\r\n\t\tif (this.permisos.Mensajes_ver_mensaje !== 0) {\r\n\t\t\tthis.mapasMenuVisibilidad.push({ label: this.translate.instant('Mapas.notificacionescapa'), id: 'NOTIFICACIONES', icon: 'iticon-tab-mostrar iticon-px32', command: (event: any) => { this.menuVisibilidadCommand(event); } });\r\n\t\t}\r\n\r\n\r\n\t\t// Menu Crear/Editar\r\n\t\tthis.mapasMenuItems.push({\r\n\t\t\tlabel: this.translate.instant('Mapas.elementos'),\r\n\t\t\tdisabled: true,\r\n\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t});\r\n\t\tthis.mapasMenuItems.push({\r\n\t\t\tseparator: true\r\n\t\t});\r\n\r\n\t\tif (this.permisos.Mapa_plano_nodo !== 0){\r\n\r\n\t\t\tif (this.permisos.Mapa_plano_nodo_formulario === 2) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.nodos'),\r\n\t\t\t\t\ticon: 'iticon-nodo iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.nodos'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'NODO_SELEC', icon: 'iticon-nodo-sel iticon-px32', command: (event: any) => { this.menucommand(event); } },\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.crear'), id: 'NODO_CREAR', icon: 'iticon-nodo-crear iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if (this.permisos.Mapa_plano_nodo_formulario === 1) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.nodos'),\r\n\t\t\t\t\ticon: 'iticon-nodo iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.nodos'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'NODO_SELEC', icon: 'iticon-nodo-sel iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t// Nada\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_seccion !== 0){\r\n\r\n\t\t\tif (this.permisos.Mapa_plano_seccion_formulario === 2) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.secciones'),\r\n\t\t\t\t\ticon: 'iticon-seccion iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.secciones'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'SECCION_SELEC', icon: 'iticon-seccion-sel iticon-px32', command: (event: any) => { this.menucommand(event); } },\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.crear'), id: 'SECCION_CREAR', icon: 'iticon-seccion-crear iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if (this.permisos.Mapa_plano_seccion_formulario === 1) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.secciones'),\r\n\t\t\t\t\ticon: 'iticon-seccion iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.secciones'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'SECCION_SELEC', icon: 'iticon-seccion-sel iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t// Nada\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_conexion !== 0){\r\n\r\n\r\n\t\t\tif (this.permisos.Mapa_plano_conexion_formulario === 2) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.tramos'),\r\n\t\t\t\t\ticon: 'iticon-tramo iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.tramos'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'TRAMO_SELEC', icon: 'iticon-tramo-sel iticon-px32', command: (event: any) => { this.menucommand(event); } },\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.crear'), id: 'TRAMO_CREAR', icon: 'iticon-tramo-crear iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if (this.permisos.Mapa_plano_conexion_formulario === 1) {\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.tramos'),\r\n\t\t\t\t\ticon: 'iticon-tramo iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.tramos'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'TRAMO_SELEC', icon: 'iticon-tramo-sel iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t// Nada\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tif (this.permisos.Mapa_plano_balizas !== 0){\r\n\t\t\tif (this.permisos.Mapa_plano_baliza_formulario === 2) {\r\n\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.beacons'),\r\n\t\t\t\t\ticon: 'iticon-nodo-baliza iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.beacons'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'BALIZA_SELEC', icon: 'iticon-ficha-baliza-sel iticon-px32', command: (event: any) => { this.menucommand(event); } },\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.crear'), id: 'BALIZA_CREAR', icon: 'iticon-ficha-baliza-crear iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if (this.permisos.Mapa_plano_baliza_formulario === 1) {\r\n\r\n\t\t\t\tthis.mapasMenuItems.push({\r\n\t\t\t\t\tlabel: this.translate.instant('Mapas.beacons'),\r\n\t\t\t\t\ticon: 'iticon-nodo-baliza iticon-px32',\r\n\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader',\r\n\t\t\t\t\titems: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tlabel: this.translate.instant('Mapas.beacons'),\r\n\t\t\t\t\t\t\tdisabled: true,\r\n\t\t\t\t\t\t\tstyleClass: 'mapasMenuItemsHeader'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tseparator: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ label: this.translate.instant('Mapas.editar'), id: 'BALIZA_SELEC', icon: 'iticon-ficha-baliza-sel iticon-px32', command: (event: any) => { this.menucommand(event); } }\r\n\t\t\t\t\t]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t// Nada\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tobtenerAVISO_CIUDADANO(that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\treturn entityManager.getAVISO_CIUDADANO(undefined, 'NODOS')\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY AVISO_CIUDADANO');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('NOTIFICACIONES CARGADAS CORRECTAMENTE = ' + entidades.length);\r\n\t\t\t\tthat.notificaciones = entidades;\r\n\r\n\t\t\t\tentidades.forEach(AVISO_CIUDADANO => {\r\n\t\t\t\t\tif (AVISO_CIUDADANO.NODOS.length > 0) {\r\n\t\t\t\t\t\t// NOTIFICACION\r\n\t\t\t\t\t\tconst avisoPlano = new NotificacionPlano(AVISO_CIUDADANO.Id, AVISO_CIUDADANO.Titulo, AVISO_CIUDADANO.X, AVISO_CIUDADANO.Y, 'assets/itsoft/IconosSVG/email.svg', null, that.nodes[0].getIconScale());\r\n\t\t\t\t\t\tavisoPlano.setX(AVISO_CIUDADANO.X);\r\n\t\t\t\t\t\tavisoPlano.setY(AVISO_CIUDADANO.Y);\r\n\r\n\t\t\t\t\t\tavisoPlano.setSimbolo('assets/itsoft/IconosSVG/email.svg');\r\n\t\t\t\t\t\tavisoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\t\t\tavisoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\t\t\tavisoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\t\t\tavisoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\t\t\t\t\tavisoPlano.sectionHoverFill = Constantes.nodoSectionHoverFill_SELECT;\r\n\t\t\t\t\t\tavisoPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke_SELECT;\r\n\t\t\t\t\t\tavisoPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\t\t\tavisoPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\r\n\t\t\t\t\t\tavisoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\t\t\tavisoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\t\t\tavisoPlano.setIconAlign('center-center');\r\n\r\n\t\t\t\t\t\tavisoPlano.ENTIDAD = AVISO_CIUDADANO;\r\n\t\t\t\t\t\tthat.notifications.push(avisoPlano);\r\n\t\t\t\t\t\tthat.mapBeacons.set(AVISO_CIUDADANO.Id, avisoPlano);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn that.notifications;\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerTIPOLOGIAS(that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\tconst includes = '';\r\n\t\tthat.tipologias = [];\r\n\t\tthat.tipologiaDefecto = null;\r\n\t\treturn entityManager.getTIPOLOGIA_NODO()\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY TIPOLOGIAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('TIPOLOGIAS CARGADAS CORRECTAMENTE = ' + entidades.length);\r\n\t\t\t\tthat.tipologias = entidades;\r\n\t\t\t\tif (that.tipologias && that.tipologias.length > 0) {\r\n\t\t\t\t\tthat.tipologias.sort( (one: any, two: any) => {\r\n\t\t\t\t\t\treturn one.Nombre > two.Nombre ? 1 : -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthat.tipologiaDefecto = that.tipologias[0];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerALA(id: String, that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\r\n\t\tif (!that.verticalManager) {\r\n\t\t\tthat.verticalManager = new VerticalManager();\r\n\t\t\t}\r\n\r\n\t\tlet includes = 'SECCIONS.IDIOMAS, SECCIONS.NODOS.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.IDIOMAS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.FOTOS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.SECCIONES';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.BALIZAS.BALIZA';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.AVISOS.AVISO_CIUDADANO';\r\n\t\tincludes = includes + ', BALIZAS_SITUADAS_EN_ALA';\r\n\t\tincludes = includes + ', NIVEL';\r\n\r\n\t\treturn entityManager.getALA(undefined, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY ALAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.alasPortal = [];\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tentidades.forEach(ala => {\r\n\r\n\t\t\t\t\tconst aux = new AlaFormulario(ala);\r\n\t\t\t\t\tthat.alasPortal.push(aux);\r\n\t\t\t\t\tif (ala.Id === id ){\r\n\t\t\t\t\t\tthat.alaSeleccionada = entidades[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti += 1;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.alasPortal.sort( function(a, b) {\r\n\t\t\t\t\tif ( a.ENTIDAD.NIVEL.NivelVertical === b.ENTIDAD.NIVEL.NivelVertical) {\r\n\t\t\t\t\t\treturn a.Nomobre.localeCompare(b.Nomobre) ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn a.ENTIDAD.NIVEL.NivelVertical - b.ENTIDAD.NIVEL.NivelVertical;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconsole.log('ALA CARGADA CORRECTAMENTE = ' + that.alaSeleccionada.Nomobre);\r\n\t\t\t\treturn that.cargarPlano();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerALALazy(id: String, that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\r\n\t\tif (!that.verticalManager) {\r\n\t\t\tthat.verticalManager = new VerticalManager();\r\n\t\t\t}\r\n\r\n\t\tlet includes = 'SECCIONS.IDIOMAS, SECCIONS.NODOS.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.IDIOMAS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.TIPOLOGIA_CONTENIDO';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.FOTOS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONTENIDOS.CONTENIDO.SECCIONES';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.BALIZAS.BALIZA';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.AVISOS.AVISO_CIUDADANO';\r\n\t\tincludes = includes + ', BALIZAS_SITUADAS_EN_ALA';\r\n\t\tincludes = includes + ', NIVEL';\r\n\r\n\t\treturn entityManager.getALA(undefined, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY ALAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.alasPortal = [];\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tentidades.forEach(ala => {\r\n\r\n\t\t\t\t\tconst aux = new AlaFormulario(ala);\r\n\t\t\t\t\tthat.alasPortal.push(aux);\r\n\t\t\t\t\tif (ala.Id === id ){\r\n\t\t\t\t\t\tthat.alaSeleccionada = entidades[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti += 1;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthat.alasPortal.sort( function(a, b) {\r\n\t\t\t\t\tif ( a.ENTIDAD.NIVEL.NivelVertical === b.ENTIDAD.NIVEL.NivelVertical) {\r\n\t\t\t\t\t\treturn a.Nomobre.localeCompare(b.Nomobre) ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn a.ENTIDAD.NIVEL.NivelVertical - b.ENTIDAD.NIVEL.NivelVertical;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconsole.log('ALA CARGADA CORRECTAMENTE = ' + that.alaSeleccionada.Nomobre);\r\n\t\t\t\treturn that.cargarPlano();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\r\n\tobtenerPERFIL_MOVILIDAD_CIUDADANO(that?) {\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\t\tthat.perfilesMovilidad = [];\r\n\t\tthat.perfilesMovilidadDefecto = null;\r\n\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\tconst predicado = new Predicate('IdEspacio', '==', idEspacio);\r\n\t\treturn entityManager.getPERFIL_MOVILIDAD_CIUDADANO(predicado, undefined)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY PERFILES');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('PERFILES CARGADOS CORRECTAMENTE = ' + entidades.length);\r\n\t\t\t\tthat.perfilesMovilidad = entidades;\r\n\t\t\t\tif (that.perfilesMovilidad && that.perfilesMovilidad.length > 0) {\r\n\t\t\t\t\tthat.perfilesMovilidadDefecto = that.perfilesMovilidad[0];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\treturn err;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tpublic onSVGLoaded(event) {\r\n\t\tconsole.log('onSVGLoaded');\r\n\t\tconsole.log(event);\r\n\t\tconst that = this;\r\n\t\tconst secciones = new Array();\r\n\t\tconst nodos = new Array();\r\n\t\tconst conexiones = new Array();\r\n\t\tconst contenidos = new Array();\r\n\t\tconst balizas = new Array();\r\n\t\tthis.mapSections = new Map();\r\n\t\tthis.mapNodes = new Map();\r\n\t\tthis.mapLinks = new Map();\r\n\t\tthis.mapContents = new Map();\r\n\t\tthis.mapBeacons = new Map();\r\n\t\tthis.mapNotifications = new Map();\r\n\r\n\t\t// SECCIONES\r\n\t\tthis.alaSeleccionada.SECCIONS.forEach(seccion => {\r\n\t\t\tif (!this.seccionDefecto || !seccion.CoordenadasPoligono) {\r\n\t\t\t\tthis.seccionDefecto = seccion;\r\n\t\t\t}\r\n\t\t\tconst seccionCoordenadasPoligono: Array> = (!seccion.CoordenadasPoligono ? null : JSON.parse(seccion.CoordenadasPoligono));\r\n\t\t\tconst seccionPlano = new SeccionPlano(seccion.Id, seccion.Nombre, seccionCoordenadasPoligono, seccion.ALA.PuntosSeccionScale , seccion.ALA.AristaSeccionScale);\r\n\t\t\tseccionPlano.ENTIDAD = seccion;\r\n\t\t\tseccionPlano.ENTIDAD.Color = seccionPlano.ENTIDAD.Color ? seccionPlano.ENTIDAD.Color : 'rgba(0,0,0,1)';\r\n\t\t\tconst arrayColor = seccionPlano.ENTIDAD.Color.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3]};\r\n\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + objetoColor.a + ')';\r\n\t\t\t// Relleno Seccion\r\n\t\t\tseccionPlano.fill = seccionPlano.ENTIDAD.Color;\t\t// Reposo\r\n\t\t\tseccionPlano.hoverFill = seccionHoverColor;\t// Hover\r\n\t\t\t// Arista Seccion\r\n\t\t\tseccionPlano.stroke = seccionPlano.ENTIDAD.Color;\t\t\t\t\t// Reposo\r\n\t\t\tseccionPlano.hoverStroke = Constantes.seccionHoverStroke;\t// Hover\r\n\t\t\t// Ancho\r\n\t\t\tseccionPlano.strokeWidth = Constantes.seccionStrokeWidth;\r\n\r\n\t\t\tthis.mapSections.set(seccion.Id, seccionPlano);\r\n\r\n\t\t\t// NODOS\r\n\t\t\tseccion.NODOS.forEach(nodo => {\r\n\t\t\t\t// const icono = 'assets/planos/iconos/' + 'wifi.png';\r\n\t\t\t\tif (this.permisos.Mapa_plano_nodo !== 0) {\r\n\t\t\t\t\tlet icono = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-de-paso.svg';\r\n\t\t\t\t\tif (nodo.TIPOLOGIA_NODO) {\r\n\t\t\t\t\t\tif ( nodo.TIPOLOGIA_NODO) {\r\n\t\t\t\t\t\t\ticono = nodo.TIPOLOGIA_NODO.IconoRepresentacion;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tconsole.log('1.- NO TIPOLOGIA NODO');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst nodoCoordenadasPoligono: Array> = (!nodo.CoordenadaPoligono ? null : JSON.parse(nodo.CoordenadaPoligono));\r\n\t\t\t\t\tconst nodoPlano = new NodoPlano(nodo.Id, nodo.Nombre, nodo.X, nodo.Y, icono, nodoCoordenadasPoligono, nodo.SECCION.ALA.IconoNodoScale);\r\n\t\t\t\t\tnodoPlano.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\t\tnodoPlano.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\t\tnodoPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\t\tnodoPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\t\tnodoPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\t\tnodoPlano.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\t\tnodoPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\t\tnodoPlano.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\t\tnodoPlano.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\t\tnodoPlano.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\t\tnodoPlano.setNorotate(false);\r\n\t\t\t\t\t// nodoPlano.setRotation(90);\r\n\t\t\t\t\tnodoPlano.ENTIDAD = nodo;\r\n\r\n\t\t\t\t\tnodos.push(nodoPlano);\r\n\t\t\t\t\tthis.mapNodes.set(nodo.Id, nodoPlano);\r\n\t\t\t\t}\r\n\t\t\t\t// CONEXIONES\r\n\t\t\t\tif (this.permisos.Mapa_plano_conexion !== 0) {\r\n\t\t\t\t\t// CONEXION ORIGEN\r\n\t\t\t\t\tnodo.CONEXIONS_NODOS_ORIGEN.forEach(conexion => {\r\n\t\t\t\t\t\tif (!this.mapLinks.has(conexion.Id)) {\r\n\t\t\t\t\t\t\tconst coordenadasCamino: Array> = (!conexion.CoordenadasCamino ? null : JSON.parse(conexion.CoordenadasCamino));\r\n\t\t\t\t\t\t\tconst conexionPlano = new ConexionPlano(conexion.Id, coordenadasCamino, conexion.IdNodoOrigen, conexion.IdNodoDestino, seccion.ALA.PuntosConexionScale , seccion.ALA.ConexionScale);\r\n\t\t\t\t\t\t\tconexionPlano.ENTIDAD = conexion;\r\n\t\t\t\t\t\t\tif (conexion.CortadoTemporalmente){\r\n\t\t\t\t\t\t\t\t// conexionPlano.fill = Constantes.conexionFill_CORTADO;\r\n\t\t\t\t\t\t\t\tconexionPlano.stroke = Constantes.conexionStroke_CORTADO;\r\n\t\t\t\t\t\t\t\tconexionPlano.strokeWidth = Constantes.conexionStrokeWidth_CORTADO;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t// conexionPlano.fill = Constantes.conexionFill;\r\n\t\t\t\t\t\t\t\tconexionPlano.stroke = Constantes.conexionStroke;\r\n\t\t\t\t\t\t\t\tconexionPlano.strokeWidth = Constantes.conexionStrokeWidth;\r\n\t\t\t\t\t\t\t\tconexionPlano.lineHoverStroke = Constantes.conexionsymbolHoverStroke;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconexiones.push(conexionPlano);\r\n\t\t\t\t\t\t\tthis.mapLinks.set(conexion.Id, conexionPlano);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// CONEXION DESTINO\r\n\t\t\t\t\tnodo.CONEXIONS_NODOS_DESTINO.forEach(conexion => {\r\n\t\t\t\t\t\tif (!this.mapLinks.has(conexion.Id)) {\r\n\t\t\t\t\t\t\tconst coordenadasCamino: Array> = (!conexion.CoordenadasCamino ? null : JSON.parse(conexion.CoordenadasCamino));\r\n\t\t\t\t\t\t\tconst conexionPlano = new ConexionPlano(conexion.Id, coordenadasCamino, conexion.IdNodoOrigen, conexion.IdNodoDestino, conexion.NodoOrigen.SECCION.ALA.PuntosConexionScale, conexion.NodoOrigen.SECCION.ALA.ConexionScale);\r\n\t\t\t\t\t\t\tconexionPlano.ENTIDAD = conexion;\r\n\t\t\t\t\t\t\tif (conexion.CortadoTemporalmente){\r\n\t\t\t\t\t\t\t\t// conexionPlano.fill = Constantes.conexionFill_CORTADO;\r\n\t\t\t\t\t\t\t\tconexionPlano.stroke = Constantes.conexionStroke_CORTADO;\r\n\t\t\t\t\t\t\t\tconexionPlano.strokeWidth = Constantes.conexionStrokeWidth_CORTADO;\r\n\t\t\t\t\t\t\t\tconexionPlano.lineHoverStroke = Constantes.conexionsymbolHoverStroke_CORTADO;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t// conexionPlano.fill = Constantes.conexionFill;\r\n\t\t\t\t\t\t\t\tconexionPlano.stroke = Constantes.conexionStroke;\r\n\t\t\t\t\t\t\t\tconexionPlano.strokeWidth = Constantes.conexionStrokeWidth;\r\n\t\t\t\t\t\t\t\tconexionPlano.lineHoverStroke = Constantes.conexionsymbolHoverStroke;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconexiones.push(conexionPlano);\r\n\t\t\t\t\t\t\tthis.mapLinks.set(conexion.Id, conexionPlano);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// CONTENIDOS\r\n\t\t\t\tif (this.permisos.Mapa_plano_contenido !== 0 ) {\r\n\t\t\t\t\tconst promises: any[] = [];\r\n\t\t\t\t\tconst token = this.authService.getToken();\r\n\t\t\t\t\tnodo.CONTENIDOS.forEach(cont => {\r\n\t\t\t\t\t\tconst contenido = new Contenido().fromENTIDAD(cont.CONTENIDO);\r\n\t\t\t\t\t\tif (contenido.Titulo === '') {\r\n\t\t\t\t\t\t\tconsole.log('CONTENIDO VACIO id nodo_has_contenido = ' + cont.Id);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconst contenidoPlano =\tthis.setContenidoPlano(contenido);\r\n\t\t\t\t\t\tif (contenido.Imagen === null || contenido.Imagen === undefined || contenido.Imagen === ''){\r\n\t\t\t\t\t\t\tcontenido.Imagen = this.authService.getFotoPorDefecto();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.mapContents.set(contenido.Id, contenidoPlano);\r\n\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// NOTIFICACION\r\n\t\t\t\tnodo.AVISOS.forEach(NODO_has_AVISO => {\r\n\t\t\t\t\tconst AVISO_CIUDADANO = NODO_has_AVISO.AVISO_CIUDADANO;\r\n\t\t\t\t\tif (AVISO_CIUDADANO.NODOS.length > 0) {\r\n\t\t\t\t\t\tconst avisoPlano = new NotificacionPlano(AVISO_CIUDADANO.Id, AVISO_CIUDADANO.Titulo, AVISO_CIUDADANO.X, AVISO_CIUDADANO.Y, 'assets/itsoft/IconosSVG/email.svg', null, nodos[0].getIconScale());\r\n\t\t\t\t\t\tavisoPlano.setX(AVISO_CIUDADANO.X);\r\n\t\t\t\t\t\tavisoPlano.setY(AVISO_CIUDADANO.Y);\r\n\r\n\t\t\t\t\t\tavisoPlano.setSimbolo('assets/itsoft/IconosSVG/email.svg');\r\n\t\t\t\t\t\tavisoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\t\t\tavisoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\t\t\tavisoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\t\t\tavisoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\r\n\t\t\t\t\t\tavisoPlano.sectionHoverFill = Constantes.nodoSectionHoverFill_SELECT;\r\n\t\t\t\t\t\tavisoPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke_SELECT;\r\n\t\t\t\t\t\tavisoPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\t\t\tavisoPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\r\n\t\t\t\t\t\tavisoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\t\t\tavisoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\t\t\tavisoPlano.setIconAlign('center-center');\r\n\r\n\t\t\t\t\t\tavisoPlano.ENTIDAD = AVISO_CIUDADANO;\r\n\t\t\t\t\t\tthis.notifications.push(avisoPlano);\r\n\t\t\t\t\t\tthis.mapNotifications.set(AVISO_CIUDADANO.Id, avisoPlano);\r\n\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t\tconexiones.forEach(conexionPlano => {\r\n\t\t\tconst nodoOrigen: NodoPlano = this.mapNodes.get(conexionPlano.getIdNodoOrigen());\r\n\t\t\tconst nodoDestino: NodoPlano = this.mapNodes.get(conexionPlano.getIdNodoDestino());\r\n\t\t\tconexionPlano.setNodoOrigen(nodoOrigen);\r\n\t\t\tif (nodoOrigen !== undefined) {\r\n\t\t\t\tnodoOrigen.conexiones.push(conexionPlano);\r\n\t\t\t}\r\n\t\t\tconexionPlano.setNodoDestino(nodoDestino);\r\n\t\t\tif (nodoDestino !== undefined) {\r\n\t\t\t\tnodoDestino.conexiones.push(conexionPlano);\r\n\t\t\t}\r\n\t\t});\r\n\t\tnodos.forEach(nodoPlano => {\r\n\t\t\tnodoPlano.refreshRutasConexionesBackup();\r\n\t\t});\r\n\r\n\t\tif (this.permisos.Mapa_plano_balizas !== 0){\r\n\t\t\tthis.alaSeleccionada.BALIZAS_SITUADAS_EN_ALA.forEach(beacon => {\r\n\t\t\t\t// BEACONS\r\n\t\t\t\tlet icono;\r\n\t\t\t\tif(beacon.TIPOLOGIA_BALIZA.esBeacon){\r\n\t\t\t\t\ticono = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-baliza.svg';\r\n\t\t\t\t}\r\n\t\t\t\tif(beacon.TIPOLOGIA_BALIZA.esSniffer){\r\n\t\t\t\t\ticono = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-snifer.svg';\r\n\t\t\t\t}\r\n\t\t\t\tif(beacon.TIPOLOGIA_BALIZA.esTag){\r\n\t\t\t\t\ticono = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-tag.svg';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst nodoPlano: NodoPlano = this.mapNodes.values().next().value;\r\n\t\t\t\tconst beaconPlano = new BeaconPlano(beacon.Id, beacon.IdHardware, beacon.X, beacon.Y, icono, null, nodoPlano.getIconScale());\r\n\t\t\t\tbeaconPlano.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\tbeaconPlano.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\tbeaconPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\tbeaconPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\tbeaconPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\tbeaconPlano.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\tbeaconPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\tbeaconPlano.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\tbeaconPlano.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\tbeaconPlano.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\tbeaconPlano.setNorotate(false);\r\n\r\n\t\t\t\tbeaconPlano.ENTIDAD = beacon;\r\n\t\t\t\tthis.mapBeacons.set(beacon.Id, beaconPlano);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.mostrarNodos = true;\r\n\t\tthis.mostrarSecciones = true;\r\n\t\tthis.mostrarTramos = true;\r\n\t\tthis.mostrarContenidos = true;\r\n\t\tthis.mostrarBalizas = true;\r\n\t\tthis.mostrarNotificaciones = true;\r\n\r\n\t\tthis.asignarSections();\r\n\t\tthis.asignarContents();\r\n\t\tthis.asignarBeacons();\r\n\t\tthis.asignarLinks(conexiones);\r\n\t\tthis.asignarNodes(nodos);\r\n\t\t// this.asignarAvisos(this.notifications);\r\n\t\tthis.asignarNotificaciones();\r\n\t}\r\n\tpublic onNodeMoved(event) {\r\n\t\t// console.log('onNodeMoved');\r\n\t\tconst nodoPlano = this.mapNodes.get(event.id);\r\n\t\tthis.nodoEdicion.X = this.nodoEdicion.NODO_PLANO.getX();\r\n\t\tthis.nodoEdicion.Y = this.nodoEdicion.NODO_PLANO.getY();\r\n\t\t// this.nodoEdicion.X = event.x; // nodoPlano.getX();\r\n\t\t// this.nodoEdicion.Y = event.y; // nodoPlano.getY();\r\n\t\t// console.log(this.nodoEdicion.X + ' , ' + this.nodoEdicion.Y);\r\n\t\t// Calcular la nueva seccion...\r\n\t\tlet seccionDetectada = this.seccionDefecto;\r\n\t\tthis.sections.forEach((seccionPlano: SeccionPlano) => {\r\n\t\t\tif (seccionPlano.getCoordenadasPoligono()) {\r\n\t\t\t\tif (this.pointInPolygon([this.nodoEdicion.X as number, this.nodoEdicion.Y as number], seccionPlano.getCoordenadasPoligono())) {\r\n\t\t\t\t\tseccionDetectada = seccionPlano.ENTIDAD;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.nodoEdicion.IdSeccion = seccionDetectada.Id;\r\n\t\tthis.nodoEdicion.NombreSeccion = seccionDetectada.Nombre;\r\n\t}\r\n\tpublic onSVGClicked(event) {\r\n\t\tconst that = this;\r\n\t\tlet nodoGuardado: any = null;\r\n\t\tlet balizaGuardada: any = null;\r\n\t\tthis.comprobarConversionCoordenadas(event);\r\n\t\tif(that.displayDialogContenido){\r\n\t\t\tthat.displayDialogContenido = false;\r\n\t\t}\r\n\t\tif ((this.permisos.Mapa_plano_nodo === 2 && this.permisos.Mapa_plano_nodo_formulario !== 0) && (this.estadoEdicion === 'NODO_CREAR')) {\r\n\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\treturn this.entityManagerProvider.newNodo()\r\n\t\t\t.then(function(oNodo) {\r\n\t\t\t\toNodo.IdEntidad = that.authService.getIdEntidad();\r\n\t\t\t\toNodo.IDIOMAS.forEach(NODO_IDIOMA => {\r\n\t\t\t\t\tconst aux = that.nodoEdicion.Idiomas.get(NODO_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\t\tNODO_IDIOMA.Nombre = that.translate.instant('Mapas.nuevonodo');\r\n\t\t\t\t\tNODO_IDIOMA.Descripcion = '';\r\n\t\t\t\t\tif (NODO_IDIOMA.IDIOMA.Default) {\r\n\t\t\t\t\t\toNodo.Nombre = NODO_IDIOMA.Nombre ? NODO_IDIOMA.Nombre : '';\r\n\t\t\t\t\t\toNodo.Descripcion = NODO_IDIOMA.Descripcion ? NODO_IDIOMA.Descripcion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\toNodo.X = event.mp[0];\r\n\t\t\t\toNodo.Y = event.mp[1];\r\n\t\t\t\tif (that.mapSections.get(event.id)) {\r\n\t\t\t\t\toNodo.IdSeccion = that.mapSections.get(event.id).getId();\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\toNodo.IdSeccion = that.seccionDefecto.Id;\r\n\t\t\t\t}\r\n\t\t\t\toNodo.IdTipologia = that.tipologiaDefecto.Id;\r\n\t\t\t\tnodoGuardado = oNodo;\r\n\t\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t\t})\r\n\t\t\t.then(function(msg) {\r\n\t\t\t\tconst oNodo = nodoGuardado;\r\n\t\t\t\tlet icono = 'assets/planos/iconos/' + 'wifi.png';\r\n\t\t\t\tif ( oNodo.TIPOLOGIA_NODO) {\r\n\t\t\t\t\ticono = oNodo.TIPOLOGIA_NODO.IconoRepresentacion;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconsole.log('2.- NO TIPOLOGIA NODO');\r\n\t\t\t\t}\r\n\t\t\t\tconst nodoCoordenadasPoligono: number[][] = (!oNodo.CoordenadasPoligono ? null : JSON.parse(oNodo.CoordenadasPoligono));\r\n\t\t\t\tconst nodoPlano = new NodoPlano(oNodo.Id, oNodo.Nombre, oNodo.X, oNodo.Y, icono, nodoCoordenadasPoligono, oNodo.SECCION.ALA.IconoNodoScale);\r\n\t\t\t\tnodoPlano.setNorotate(false);\r\n\t\t\t\t// nodoPlano.setRotation(90);\r\n\t\t\t\tnodoPlano.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\tnodoPlano.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\tnodoPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\tnodoPlano.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\tnodoPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\tnodoPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\tnodoPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\tnodoPlano.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\tnodoPlano.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\tnodoPlano.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\tnodoPlano.ENTIDAD = oNodo;\r\n\t\t\t\tthat.estadoEdicion = 'NODO_SELEC';\r\n\t\t\t\tthat.displayDialogEditarNodo = true;\r\n\t\t\t\tthat.msgs = [];\r\n\t\t\t\tthat.nodoEdicion = new NodoFormulario().fromNodoPlano(nodoPlano);\r\n\t\t\t\tthat.nodoEdicion.Idiomas = that.idiomaService.newMapNodoIdiomas(this.idiomas);\r\n\t\t\t\treturn that.nodoEdicion;\r\n\t\t\t})\r\n\t\t\t.then(function(){\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t})\r\n\t\t\t.catch(function(e) {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tconsole.log('Excepcion creando nodo = ' + e.toString());\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t}\r\n\t\telse if ((this.permisos.Mapa_plano_seccion === 2 && this.permisos.Mapa_plano_seccion_formulario !== 0) && (this.estadoEdicion === 'SECCION_CREAR')) {\r\n\t\t\tif (!this.seccionEdicion || !this.seccionEdicion.SECCION_PLANO || !this.seccionEdicion.SECCION_PLANO.getCoordenadasPoligono()) {\r\n\t\t\t\tconst coordenadasIniciales = [ [event.mp[0], event.mp[1]] , [event.mp[0], event.mp[1]] ];\r\n\t\t\t\tconst seccionPlano = new SeccionPlano('', 'Nueva Sección', coordenadasIniciales, 1, 1);\r\n\t\t\t\tseccionPlano.setMostrarConectores(true);\r\n\t\t\t\tthis.displayDialogCrearSeccion = true;\r\n\t\t\t\tthis.seccionEdicion = new SeccionFormulario(this.idAla).fromSeccionPlano(seccionPlano);\r\n\t\t\t\tthis.seccionEdicion.Nombre = seccionPlano.getNombre() as string;\r\n\t\t\t\tlet colorSECCION;\r\n\t\t\t\tif (seccionPlano.ENTIDAD) {\r\n\t\t\t\t\tseccionPlano.ENTIDAD.Color = seccionPlano.ENTIDAD.Color ? seccionPlano.ENTIDAD.Color : 'rgba(64,255,0,0.3)';\r\n\t\t\t\t\tcolorSECCION = seccionPlano.ENTIDAD.Color;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tcolorSECCION = 'rgba(64,255,0,0.3)';\r\n\t\t\t\t}\r\n\t\t\t\tconst arrayColor = colorSECCION.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3]};\r\n\t\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + objetoColor.a + ')';\r\n\t\t\t\t// Relleno Seccion\r\n\t\t\t\tseccionPlano.fill = colorSECCION;\t// Reposo\r\n\t\t\t\tseccionPlano.hoverFill = seccionHoverColor;\t// Hover\r\n\t\t\t\t// Arista Seccion\r\n\t\t\t\tseccionPlano.stroke = colorSECCION;\t\t// Reposo\r\n\t\t\t\tseccionPlano.hoverStroke = Constantes.seccionHoverStroke;\t// Hover\r\n\t\t\t\t// Ancho\r\n\t\t\t\tseccionPlano.strokeWidth = Constantes.seccionStrokeWidth;\r\n\t\t\t\tthis.sections.push(seccionPlano);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst coordenadas = this.seccionEdicion.SECCION_PLANO.getCoordenadasPoligono();\r\n\t\t\t\tcoordenadas.splice(coordenadas.length - 1, 0, event.mp);\r\n\t\t\t\tthis.seccionEdicion.SECCION_PLANO.setCoordenadasPoligono(coordenadas);\r\n\t\t\t}\r\n\t\t\tthis.asignarSections(this.sections);\r\n\t\t}\r\n\t\telse if ((this.permisos.Mapa_plano_nodo === 2 && this.permisos.Mapa_plano_nodo_formulario !== 0) && (this.estadoEdicion === 'BALIZA_CREAR')) {\r\n\t\t\t\tthat.spinner.style.display = 'inherit';\r\n\t\t\t\treturn this.entityManagerProvider.newBALIZA()\r\n\t\t\t\t.then(function(oBaliza) {\r\n\r\n\t\t\t\t\tconst idEspacio = that.authService.getIdEspacio();\r\n\t\t\t\t\toBaliza.EspacioPertenencia = idEspacio;\r\n\t\t\t\t\tconst tipoBeacon = that.tipologiasBaliza.find( t => t.esBeacon);\r\n\t\t\t\t\toBaliza.IdTipologia = tipoBeacon.Id;\r\n\t\t\t\t\toBaliza.IdAlaPlano = that.idAla;\r\n\t\t\t\t\toBaliza.X = event.mp[0];\r\n\t\t\t\t\toBaliza.Y = event.mp[1];\r\n\t\t\t\t\toBaliza.FechaAlta = new Date();\r\n\t\t\t\t\toBaliza.FechaBaja = new Date();\r\n\t\t\t\t\toBaliza.FechaBaja = (d => d.setFullYear(d.getFullYear() + 50))(new Date);\r\n\t\t\t\t\toBaliza.TimestampLecturaBateria = (d => d.setFullYear(d.getFullYear() + 1))(new Date(0));\r\n\r\n\t\t\t\t\tbalizaGuardada = oBaliza;\r\n\r\n\t\t\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(msg) {\r\n\r\n\r\n\t\t\t\t\tconst icono = 'assets/itsoft/IconosSVG/SVG/' + 'nodo-baliza.svg';\r\n\t\t\t\t\tconst beacon = balizaGuardada;\r\n\r\n\t\t\t\t\tconst nodoPlano: NodoPlano = that.mapNodes.values().next().value;\r\n\r\n\t\t\t\t\tconst beaconPlano = new BeaconPlano(beacon.Id, beacon.IdHardware, beacon.X, beacon.Y, icono, null, nodoPlano.getIconScale());\r\n\t\t\t\t\tbeaconPlano.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\t\tbeaconPlano.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\t\tbeaconPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\t\tbeaconPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\t\tbeaconPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\t\tbeaconPlano.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\t\tbeaconPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\t\tbeaconPlano.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\t\tbeaconPlano.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\t\tbeaconPlano.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\t\tbeaconPlano.setNorotate(false);\r\n\r\n\t\t\t\t\tbeaconPlano.ENTIDAD = beacon;\r\n\t\t\t\t\tthat.mapBeacons.set(beacon.Id, beaconPlano);\r\n\r\n\t\t\t\t\tthat.estadoEdicion = 'BEACON_SELEC';\r\n\t\t\t\t\tthat.displayDialogBaliza = true;\r\n\t\t\t\t\tthat.msgs = [];\r\n\t\t\t\t\tthat.balizaEdicion = new BalizaFormulario().fromBeaconPlano(beaconPlano);\r\n\r\n\t\t\t\t\tthat.beacons.push(beaconPlano);\r\n\r\n\t\t\t\t\tthis.asignarBeacons(this.beacons);\r\n\r\n\t\t\t\t\treturn that.balizaEdicion;\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function(e) {\r\n\t\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\t\tconsole.log('Excepcion creando nodo = ' + e.toString());\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.todosHide();\r\n\t\t}\r\n\t}\r\n\tpublic onSeccionCreada(event){\r\n\t\tconst that = this;\r\n\t\tif (!event){\r\n\t\t\tthis.displayDialogCrearSeccion = false;\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.seccionEdicion.SECCION_PLANO.getCoordenadasPoligono().length < 4){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.displayDialogCrearSeccion = false;\r\n\t\tthis.crearSeccion(event)\r\n\t\t.then(function(){\r\n\t\t\tthat.spinner.style.display = 'none';\r\n\t\t});\r\n\t}\r\n\tpublic onSectionDblClicked(event) {\r\n\r\n\t}\r\n\tpublic onEyedropperSelected(eyedropperSelected){\r\n\t\tif (eyedropperSelected){\r\n\t\t\tthis.cursorPointer = 'copy';\r\n\t\t}else{\r\n\t\t\tconst that = this;\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tthat.cursorPointer = '';\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}\r\n\tpublic crearSeccion(event){\r\n\t\tconst that = this;\r\n\t\tconst seccionInicial: any = this.seccionEdicion;\r\n\t\tlet seccionGuardada: any = null;\r\n\t\tif (this.estadoEdicion === 'SECCION_CREAR') {\r\n\r\n\t\t\tif (this.seccionEdicion && this.seccionEdicion.SECCION_PLANO && this.seccionEdicion.SECCION_PLANO.getCoordenadasPoligono()) {\r\n\t\t\t\treturn this.entityManagerProvider.newSECCION()\r\n\t\t\t\t.then(function(oSeccion) {\r\n\t\t\t\t\toSeccion.IdAla = seccionInicial.IdAla;\r\n\t\t\t\t\t// oSeccion.Nombre = that.seccionEdicion.Nombre;\r\n\t\t\t\t\t// oSeccion.Descripcion = that.seccionEdicion.Descripcion;\r\n\t\t\t\t\toSeccion.IDIOMAS.forEach(SECCION_IDIOMA => {\r\n\t\t\t\t\t\t// const aux = that.seccionEdicion.Idiomas.get(SECCION_IDIOMA.IDIOMA.Codigo);\r\n\t\t\t\t\t\tSECCION_IDIOMA.Nombre = that.translate.instant('Mapas.nuevaSeccion');\r\n\t\t\t\t\t\tSECCION_IDIOMA.Descripcion = '';\r\n\t\t\t\t\t\tif (SECCION_IDIOMA.IDIOMA.Default) {\r\n\t\t\t\t\t\t\toSeccion.Nombre = SECCION_IDIOMA.Nombre ? SECCION_IDIOMA.Nombre : '';\r\n\t\t\t\t\t\t\toSeccion.Descripcion = SECCION_IDIOMA.Descripcion ? SECCION_IDIOMA.Descripcion : '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\toSeccion.FechaAlta = new Date();\r\n\t\t\t\t\toSeccion.CoordenadasPoligono = JSON.stringify(seccionInicial.SECCION_PLANO.getCoordenadasPoligono());\r\n\t\t\t\t\tseccionGuardada = oSeccion;\r\n\t\t\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(msg) {\r\n\t\t\t\t\tthat.seccionEdicion = seccionInicial;\r\n\t\t\t\t\tconst oSeccion = seccionGuardada;\r\n\t\t\t\t\tconst seccionPlano = new SeccionPlano(oSeccion.Id, oSeccion.Nombre, JSON.parse(oSeccion.CoordenadasPoligono), oSeccion.ALA.PuntosSeccionScale , oSeccion.ALA.AristaSeccionScale);\r\n\t\t\t\t\tseccionPlano.ENTIDAD = oSeccion;\r\n\t\t\t\t\tthat.estadoEdicion = 'SECCION_SELEC';\r\n\t\t\t\t\tthat.displayDialogEditarSeccion = true;\r\n\t\t\t\t\t/*if(that.seccionEdicion.FechaBaja){\r\n\t\t\t\t\t\tthat.apareceBoton = true;\r\n\t\t\t\t\t}*/\r\n\t\t\t\t\tthat.msgs = [];\r\n\t\t\t\t\tthat.mapSections.set(oSeccion.Id, seccionPlano);\r\n\t\t\t\t\tthat.seccionEdicion = new SeccionFormulario().fromSeccionPlano(seccionPlano); // event.id;\r\n\t\t\t\t\tthat.seccionEdicion.SECCION_PLANO.setMostrarConectores(true);\r\n\t\t\t\t\t// that.seccionEdicion.Idiomas = that.idiomaService.newMapSeccionIdiomas(that.idiomas);\r\n\t\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mapas.seccioncreadaok'));\r\n\t\t\t\t\tthat.reasignarNodosSeccion(that.seccionEdicion);\r\n\t\t\t\t\tthat.reasignarContenidosSeccion(that.seccionEdicion);\r\n\t\t\t\t\tthat.limpiarSeccionesFantasma();\r\n\t\t\t\t\tthat.sections.push(seccionPlano);\r\n\t\t\t\t\t// that.onSVGLoaded(null);\r\n\t\t\t\t\treturn msg;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function(e) {\r\n\t\t\t\t\tthat.tramoNodoOrigen = null;\r\n\t\t\t\t\tthat.tramoNodoDestino = null;\r\n\t\t\t\t\tthat.estadoEdicion = '';\r\n\t\t\t\t\tthat.appComponent.showError(that.translate.instant('Mapas.seccioncreadaerror') + e.toString());\r\n\t\t\t\t\tconsole.log('Exception: ' + e.toString());\r\n\t\t\t\t\t// that.appComponent.showError(e);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tlimpiarSeccionesFantasma(){\r\n\t\t// Eliminar del plano seccion con id: 'UUID-'\r\n\t\tconst elem = document.getElementById('UUID-');\r\n\t\tif (elem !== null && elem !== undefined) {\r\n\t\t\telem.parentNode.removeChild(elem);\r\n\t\t}\r\n\t\t// Eliminar del array de secciones que se pintaran en el plano las secciones con id==''\r\n\t\tthis.sections = this.sections.filter( x => x.getId() !== '');\r\n\t\tif\t(this.estadoEdicion === ''){\r\n\t\t\tthis.desOcultarElementosEnNoEdicion();\r\n\t\t}\r\n\t}\r\n\tprotected pointInPolygon(point: number[], polygon: number[][]): boolean {\r\n let inside = false;\r\n const x = point[0], y = point[1];\r\n\t\tfor (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\r\n\t\t\tconst xi = polygon[i][0], yi = polygon[i][1], xj = polygon[j][0], yj = polygon[j][1];\r\n\t\t\tconst intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\r\n\t\t\tif (intersect) { inside = !inside; }\r\n\t\t}\r\n return inside;\r\n\t}\r\n\tprotected calcIsInsideThickLineSegment(line1, line2, pnt, lineThickness): boolean {\r\n\t\tconst L2 = (((line2.x - line1.x) * (line2.x - line1.x)) + ((line2.y - line1.y) * (line2.y - line1.y)));\r\n\t\tif (L2 === 0) { return false; }\r\n\t\tconst r = (((pnt.x - line1.x) * (line2.x - line1.x)) + ((pnt.y - line1.y) * (line2.y - line1.y))) / L2;\r\n\t\tif (r < 0) {\r\n\t\t return (Math.sqrt(((line1.x - pnt.x) * (line1.x - pnt.x)) + ((line1.y - pnt.y) * (line1.y - pnt.y))) <= lineThickness);\r\n\t\t} else if ((0 <= r) && (r <= 1)) {\r\n\t\t const s = (((line1.y - pnt.y) * (line2.x - line1.x)) - ((line1.x - pnt.x) * (line2.y - line1.y))) / L2;\r\n\t\t return (Math.abs(s) * Math.sqrt(L2) <= lineThickness);\r\n\t\t} else {\r\n\t\t return (Math.sqrt(((line2.x - pnt.x) * (line2.x - pnt.x)) + ((line2.y - pnt.y) * (line2.y - pnt.y))) <= lineThickness);\r\n\t\t}\r\n\t}\r\n\tprotected obtenerIndiceSegmento(mp: number[], coordenadas: number[][]): number {\r\n\t\tlet indice = -1;\r\n\t\tconsole.log('coordenadas ' + coordenadas.length);\r\n\t\tfor (let i = 0; i < coordenadas.length - 1; i++) {\r\n\t\t\tconst la: any = { x: coordenadas[i][0], y: coordenadas[i][1] };\r\n\t\t\tconst t: any = { x: mp[0], y: mp[1] };\r\n\t\t\tconst lb: any = { x: coordenadas[i + 1][0], y: coordenadas[i + 1][1] };\r\n\t\t\tif (this.calcIsInsideThickLineSegment(la, lb, t, 20)) {\r\n\t\t\t\tindice = i;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn indice;\r\n\t}\r\n\tprivate reajusteCoordenadas(_coord){\r\n\t\tif (_coord.length < 4){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( _coord[0][0] !== _coord[_coord.length - 1 ][0] ||\r\n\t\t\t_coord[0][1] !== _coord[_coord.length - 1 ][1]\r\n\t\t){\r\n\t\t\t_coord[_coord.length - 1 ][0] = _coord[0][0];\r\n\t\t\t_coord[_coord.length - 1 ][1] = _coord[0][1];\r\n\t\t}\r\n\t\tthis.seccionEdicion.SECCION_PLANO.setCoordenadasPoligono(_coord);\r\n\t\tlet asignado = false;\r\n\t\tfor (const _k in this.sections){\r\n\t\t\tif (this.sections[_k].getId() === this.seccionEdicion.SECCION_PLANO.getId()){\r\n\t\t\t\tasignado = true;\r\n\t\t\t\tthis.sections[_k] = this.seccionEdicion.SECCION_PLANO;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif\t(!asignado){\r\n\t\t\tthis.sections.push(this.seccionEdicion.SECCION_PLANO);\r\n\t\t}\r\n\r\n\t\tthis.asignarSections(this.sections);\r\n\r\n\t\tconsole.log(this.sections);\r\n\t\tconsole.log(this.seccionEdicion.SECCION_PLANO);\r\n\t}\r\n\t// TODO DCANETE: Revisar menu radial\r\n\tprotected abrirMenuConectorSeccion(mp: number[], g: any, idx: number) {\r\n\t\tconst menu_entries = [\r\n\t\t\t{ icon : 'assets/planos/fa/raw-svg/regular/trash-alt.svg', action: 'delete' }\r\n\t\t];\r\n\t\tconst that = this;\r\n\t\tthis.todosHide();\r\n\r\n\t\tconst seccion: SeccionPlano = that.seccionEdicion.SECCION_PLANO;\r\n\t\tconst coordenadas: number[][] = seccion.getCoordenadasPoligono();\r\n\t\t// console.log(coordenadas[idx]);\r\n\t\tmp[0] = coordenadas[idx][0] * this.mapaZoom;\r\n\t\tmp[1] = coordenadas[idx][1] * this.mapaZoom;\r\n\t\tthis.mpClick = [mp[0], mp[1]];\r\n\r\n\t\t// mp[0] *= this.mapaZoom;\r\n\t\t// mp[1] *= this.mapaZoom;\r\n\t\tthis.section_conector_menu = d3RadialMenu.d3RadialMenu()\r\n\t\t.scale(D3SCALEMENU).radius(D3RADIUSMENU).thickness(D3THICKNESSMENU).iconSize(D3ICONSIZEMENU)\r\n\t\t.entries(menu_entries)\r\n\t\t.on('click', function(action, menu) {\r\n\t\t\tif (action === 'delete') {\r\n\t\t\t\tif (idx >= 0 && coordenadas.length > idx && coordenadas.length > 4) {\r\n\t\t\t\t\tcoordenadas.splice(idx, 1);\r\n\t\t\t\t\tthat.reajusteCoordenadas(coordenadas);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthat.appComponent.showInfo(that.translate.instant('Mapas.errorPocosNodosBorrar'));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.showMenu(g, mp, this.seccionEdicion.SECCION_PLANO);\r\n\t}\r\n\tprotected abrirMenuSeccion(seccionPlano: SeccionPlano, mp: number[], g: any) {\r\n\t\tconst section_entries = [\r\n\t\t\t// { icon : 'assets/planos/fa/raw-svg/regular/edit.svg', action: 'edit' },\r\n\t\t\t// { icon : 'assets/planos/fa/raw-svg/regular/trash-alt.svg', action: 'delete' },\r\n\t\t\t{ icon : 'assets/planos/fa/raw-svg/solid/code-branch.svg', action: 'divide' }\r\n\t\t];\r\n\t\tconst that = this;\r\n\t\tthis.todosHide();\r\n\r\n\t\tif (\r\n\t\t\t!this.seccionEdicion ||\r\n\t\t\t!this.seccionEdicion.SECCION_PLANO ||\r\n\t\t\tseccionPlano.getId() !== this.seccionEdicion.SECCION_PLANO.getId() ){\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmp[0] *= this.mapaZoom;\r\n\t\tmp[1] *= this.mapaZoom;\r\n\t\tconst _zoom_click = this.mapaZoom;\r\n\r\n\t\tthis.section_segment_menu = d3RadialMenu.d3RadialMenu()\r\n\t\t\t.scale(D3SCALEMENU).radius(D3RADIUSMENU).thickness(D3THICKNESSMENU).iconSize(D3ICONSIZEMENU)\r\n\t\t\t.entries(section_entries)\r\n\t\t\t.on('click', function(action, menu) {\r\n\t\t\t\tif (action === 'divide') {\r\n\t\t\t\t\tconst _mp = [ mp[0] / _zoom_click , mp[1] / _zoom_click ];\r\n\t\t\t\t\tconst seccion: SeccionPlano = menu.data();\r\n\t\t\t\t\tconst coordenadas: number[][] = seccion.getCoordenadasPoligono();\r\n\t\t\t\t\tconst indice = that.obtenerIndiceSegmento(_mp, coordenadas);\r\n\t\t\t\t\t// console.log('indice = ' + indice);\r\n\t\t\t\t\tif (typeof(indice) !== 'undefined' && indice != null && indice >= 0) {\r\n\t\t\t\t\t\tcoordenadas.splice(indice + 1, 0, _mp);\r\n\r\n\t\t\t\t\t\tthat.reajusteCoordenadas(coordenadas);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.showMenu(g, mp, seccionPlano);\r\n\r\n\t}\r\n\tpublic onZoomChanged(_zoom){\r\n\t\tif (this.section_segment_menu){\r\n\t\t\tconst _mpTest = [this.mpClick[0] * _zoom, this.mpClick[1] * _zoom];\r\n\t\t\tthis.section_segment_menu.setOffset(_mpTest);\r\n\t\t\tthis.section_segment_menu.redraw(this.section_segment_menu.entries);\r\n\t\t}\r\n\t\tif (this.section_conector_menu){\r\n\t\t\tconst _mpTest = [this.mpClick[0] * _zoom, this.mpClick[1] * _zoom];\r\n\t\t\tthis.section_conector_menu.setOffset(_mpTest);\r\n\t\t\tthis.section_conector_menu.redraw(this.section_conector_menu.entries);\r\n\t\t}\r\n\t\tif (this.link_segment_menu){\r\n\t\t\tconst _mpTest = [this.mpClick[0] * _zoom, this.mpClick[1] * _zoom];\r\n\t\t\tthis.link_segment_menu.setOffset(_mpTest);\r\n\t\t\tthis.link_segment_menu.redraw(this.link_segment_menu.entries);\r\n\t\t}\r\n\t\tthis.mapaZoom = _zoom;\r\n\t}\r\n\ttodosHide(){\r\n\t\tif (this.section_segment_menu){\r\n\t\t\tthis.section_segment_menu.hide();\r\n\t\t\tthis.section_segment_menu = null;\r\n\t\t}\r\n\t\tif (this.section_conector_menu){\r\n\t\t\tthis.section_conector_menu.hide();\r\n\t\t\tthis.section_conector_menu = null;\r\n\t\t}\r\n\t\tif (this.link_segment_menu) {\r\n\t\t\tthis.link_segment_menu.hide();\r\n\t\t\tthis.link_segment_menu = null;\r\n\t\t}\r\n\t}\r\n\tpublic onSectionConectorClicked(event){\r\n\r\n\t\tthis.todosHide();\r\n\t\tthis.abrirMenuConectorSeccion(event.mp, event.g_noZoom, event.idx);\r\n\t}\r\n\tpublic onSectionClicked(event) {\r\n\t\tthis.mpClick = [event.mp[0] , event.mp[1]];\r\n\t\tthis.todosHide();\r\n\t\tthis.limpiarSeccionesFantasma();\r\n\t\tif ((this.permisos.Mapa_plano_seccion !== 0 && this.permisos.Mapa_plano_seccion_formulario !== 0) && (this.estadoEdicion === 'SECCION_SELEC' || this.estadoEdicion === '') && (!this.seccionEdicion || !this.seccionEdicion.Id)) {\r\n\t\t\tthis.estadoEdicion = 'SECCION_SELEC';\r\n\t\t\tconst seccionPlano = this.mapSections.get(event.id);\r\n\t\t\tthis.resaltarSeccionSeleccionado(event.id);\r\n\t\t\tconsole.log('seccionPlano ' + seccionPlano);\r\n\t\t\tconst seccionFormulario: SeccionFormulario = new SeccionFormulario(this.idAla).fromSeccionPlano(seccionPlano);\r\n\t\t\tseccionFormulario.SECCION_PLANO.setMostrarConectores(true);\r\n\t\t\tif (seccionFormulario.FechaBaja !== null){\r\n\t\t\t\tthis.apareceBoton = true;\r\n\t\t\t}\r\n\t\t\tthis.seccionEdicion = seccionFormulario;\r\n\t\t\tthis.displayDialogEditarSeccion = true;\r\n\r\n\t\t\tthis.msgs = [];\r\n\t\t\tthis.seccionEdicion.Idiomas = this.idiomaService.getMapSeccionIdiomas(this.seccionEdicion.ENTIDAD.IDIOMAS);\r\n\t\t\tconsole.log('seccionEdicion ' + this.seccionEdicion);\r\n\t\t\tthis.ocultarElementosEnNoEdicion(['mostrarSecciones']);\r\n\t\t}\r\n\t\telse if ((this.permisos.Mapa_plano_seccion !== 0 && this.permisos.Mapa_plano_seccion_formulario !== 0) && this.estadoEdicion === 'SECCION_SELEC' && this.seccionEdicion !== undefined) {\r\n\t\t\t// this.seccionEdicion.Idiomas = this.idiomaService.getMapSeccionIdiomas(this.seccionEdicion.ENTIDAD.IDIOMAS);\r\n\t\t\tconst seccionPlano = this.mapSections.get(event.id);\r\n\t\t\tthis.colorSeleccionado = '#00000';\r\n\t\t\tthis.colorSeleccionado = seccionPlano.fill;\r\n\t\t\tconsole.log(event);\r\n\t\t\tthis.abrirMenuSeccion(seccionPlano, event.mp, event.g_noZoom);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.onSVGClicked(event);\r\n\t\t}\r\n\t}\r\n\tpublic onNodeClicked(event) {\r\n\t\tconst nodoPlano = this.mapNodes.get(event.id);\r\n\r\n\t\tif (this.permisos.Mapa_plano_nodo === 2 && this.permisos.Mapa_plano_nodo_formulario !== 0){\r\n\t\t\t// Si estamos seleccionando un nodo como destino de una conexion portal limitamos que no se pueda conectar un nodo consigomismo\r\n\t\t\t/*\r\n\t\t\tif ((this.estadoEdicion === 'NODO_SELEC' || this.estadoEdicion === '') &&\r\n\t\t\t\t\t(this.nodoEdicion && this.nodoEdicion.Id ) &&\r\n\t\t\t\t\t(this.nodoEdicion.Id !== nodoPlano.ENTIDAD.Id)\r\n\t\t\t\t){\r\n\t\t\t\t\t*/\r\n\t\t\tif (this.estadoEdicion === 'PORTAL_CREAR') {\r\n\t\t\t\tthis.tramoNodoOrigen = this.nodoEdicion.NODO_PLANO;\r\n\t\t\t\tthis.tramoNodoDestino = this.mapNodes.get(event.id);\r\n\r\n\t\t\t\tconst nodoDestino: NodoFormulario = new NodoFormulario().fromNodoPlano(nodoPlano);\r\n\t\t\t\tconst nodoOrigen: NodoFormulario = this.nodoEdicion;\r\n\r\n\t\t\t\tif (!nodoDestino.ENTIDAD.EsPortal) {\r\n\t\t\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.noPortal'));\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconsole.log('--- Creando Conexion entre: ');\r\n\t\t\t\t\tconsole.log('-------- Origen: ' + nodoOrigen.Nombre);\r\n\t\t\t\t\tconsole.log('-------- Destino: ' + nodoDestino.Nombre);\r\n\t\t\t\t\tconst esPortal = true;\r\n\t\t\t\t\tthis.crearConexionNodo(nodoPlano, esPortal)\r\n\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.nodoSeleccionado'));\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\tif ( \t(this.estadoEdicion === 'NODO_SELEC' || this.estadoEdicion === '')\r\n\t\t\t\t&& (!this.nodoEdicion || !this.nodoEdicion.Id))\r\n\t\t\t{\r\n\r\n\t\t\t\tthis.estadoEdicion = 'NODO_SELEC';\r\n\t\t\t\tthis.resaltarNodoSeleccionado(event.id);\r\n\t\t\t\t// const nodoPlano = this.mapNodes.get(event.id);\r\n\t\t\t\tnodoPlano.refreshRutasConexionesBackup();\r\n\t\t\t\tconsole.log('nodoPlano ' + nodoPlano);\r\n\t\t\t\tthis.nodoEdicion = new NodoFormulario().fromNodoPlano(nodoPlano); // event.id;\r\n\t\t\t\tthis.nodoEdicion.ENTIDAD.EsPortal = this.nodoEdicion.ENTIDAD.EsPortal;\r\n\t\t\t\tthis.nodoEdicion.ENTIDAD.EsEntrada = this.nodoEdicion.ENTIDAD.EsEntrada;\r\n\t\t\t\tthis.displayDialogEditarNodo = true;\r\n\r\n\t\t\t\tthis.balizasResaltar = this.nodoEdicion.balizas.map( x => this.beacons.find(y => y.getId() === x.Id));\r\n\t\t\t\tthis.resaltarBalizasSeleccionadas();\r\n\r\n\t\t\t\tthis.msgs = [];\r\n\t\t\t\tthis.nodoEdicion.Idiomas = this.idiomaService.getMapNodoIdiomas(this.nodoEdicion.ENTIDAD.IDIOMAS);\r\n\t\t\t}\r\n\t\t\telse if (this.estadoEdicion === 'TRAMO_CREAR' && (!this.tramoNodoOrigen)) {\r\n\t\t\t\tthis.tramoNodoOrigen = nodoPlano;\r\n\t\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.seleccionenodoconectar'));\r\n\t\t\t}\r\n\t\t\telse if (this.estadoEdicion === 'TRAMO_CREAR' && (this.tramoNodoOrigen)) {\r\n\t\t\t\tconst esPortal = false;\r\n\t\t\t\tthis.crearConexionNodo(nodoPlano, esPortal);\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.log('PRE');\r\n\t}\r\n\tpublic onBeaconClicked(event){\r\n\t\tconsole.log('onBeaconClicked ' + event);\r\n\t\tconsole.log('event.id ' + event.id);\r\n\t\tif (this.permisos.Mapa_plano_balizas === 2 && this.permisos.Mapa_plano_baliza_formulario !== 0){\r\n\t\t\tconst beaconPlano = this.mapBeacons.get(event.id);\r\n\t\t\tconsole.log('ESTADO EDICION: ' + this.estadoEdicion );\r\n\t\t\tif (this.estadoEdicion === '') {\r\n\r\n\t\t\t\tconst encontrado = this.balizasResaltar.find( x => x.getId() === event.id);\r\n\t\t\t\tif (!encontrado) {\r\n\t\t\t\t\tthis.balizasResaltar.push(beaconPlano);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.balizasResaltar = this.balizasResaltar.filter( x => x.getId() !== event.id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.resaltarBalizasSeleccionadas();\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// Si estamos seleccionando una Baliza como destino de una conexion portal limitamos que no se pueda conectar un nodo consigomismo\r\n\t\t\tif ( (this.estadoEdicion === 'BALIZA_SELEC' || this.estadoEdicion === '')\r\n\t\t\t\t&& (!this.balizaEdicion || !this.balizaEdicion.Id)){\r\n\t\t\t\tthis.estadoEdicion = 'BALIZA_SELEC';\r\n\t\t\t\t// this.resaltarContenidoSeleccionado(event.id);\r\n\t\t\t\tconsole.log('beaconPlano ' + beaconPlano);\r\n\t\t\t\tthis.balizaEdicion = new BalizaFormulario().fromBeaconPlano(beaconPlano); // new Contenido(contenidoPlano); // event.id;\r\n\t\t\t\tthis.displayDialogBaliza = true;\r\n\t\t\t\tthis.msgs = [];\r\n\t\t\t}\r\n\t\t\tif (this.estadoEdicion === 'NODO_SELEC') {\r\n\t\t\t\tthis.balizaAsociarSeleccionada = new BalizaFormulario().fromBeaconPlano(beaconPlano);\r\n\r\n\t\t\t\tconst encontrado = this.balizasResaltar.find( x => x.getId() === event.id);\r\n\t\t\t\tif (!encontrado) {\r\n\t\t\t\t\tthis.balizasResaltar.push(beaconPlano);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tthis.balizasResaltar = this.balizasResaltar.filter( x => x.getId() !== event.id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.resaltarBalizasSeleccionadas();\r\n\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconsole.log('Ya estamos editando la posicion de un contenido');\r\n\t\t\t}\r\n\t\t\tconsole.log('POST BALIZA_SELEC');\r\n\t\t}\r\n\t}\r\n\tonBeaconMoved(event){\r\n\r\n\t\tconsole.log('onBeaconMoved');\r\n\t\tconsole.log('---------------------------------');\r\n\t\tconst beaconPlano = this.mapBeacons.get(event.id);\r\n\t\tconst click_X = this.balizaEdicion.BALIZA_PLANO.getX();\r\n\t\tconst click_Y = this.balizaEdicion.BALIZA_PLANO.getY();\r\n\t\tconsole.log(this.balizaEdicion.X + ' , ' + this.balizaEdicion.Y);\r\n\r\n\t\tthis.balizaEdicion.X = click_X;\r\n\t\tthis.balizaEdicion.Y = click_Y;\r\n\t}\r\n\tonBeaconGuardado(event){\r\n\t\tconsole.log(event)\r\n\t\tconst result = event.result;\r\n\t\tif (result === true) {\r\n\t\t\tconsole.log('TRUE')\r\n\t\t\tthis.displayDialogContenido = false;\r\n\t\t\tthis.onFormularioBalizaCerrado(undefined);\r\n\t\t\tthis.reasignarContenidos();\r\n\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.balizaguardadook'));\r\n\t\t\t//this.onSVGLoaded(event);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tconsole.log('aqui')\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.balizaguardadoerror'));\r\n\t\t\tthis.onFormularioBalizaCerrado(undefined);\r\n\t\t}\r\n\t}\r\n\tonBeaconEliminado(event){\r\n\t\tconst result = event.result;\r\n\t\tconst balizaFormulario: BalizaFormulario = event.element;\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapBeacons && this.mapBeacons.has(balizaFormulario.Id)) {\r\n\t\t\t\t// Lo añado si no estaba para que el componente plano detecte cambios en los nodos\r\n\t\t\t\tthis.mapBeacons.set(balizaFormulario.Id, balizaFormulario.BALIZA_PLANO);\r\n\t\t\t\tthis.mapBeacons.get(balizaFormulario.Id).setEliminado(true);\r\n\t\t\t\tthis.mapBeacons.delete(balizaFormulario.Id);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarNodo = false;\r\n\t\t\tthis.onFormularioBalizaCerrado(undefined);\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.balizaeliminadook'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.balizaeliminadoerror'));\r\n\t\t}\r\n\t}\r\n\tpublic onFormularioBalizaAbierto (evento){\r\n\t}\r\n\tpublic onFormularioBalizaCerrado(event){\r\n\r\n\t\tconsole.log('onFormularioBalizaCerrado');\r\n\r\n\t\tthis.balizasResaltar = [];\r\n\t\tthis.desmarcarBalizas();\r\n\r\n\t\tif (this.displayDialogBaliza) { // Descartado\r\n\t\t\tif (this.balizaEdicion.ENTIDAD) {\r\n\t\t\t\tthis.balizaEdicion.BALIZA_PLANO.setX(this.balizaEdicion.ENTIDAD.X);\r\n\t\t\t\tthis.balizaEdicion.BALIZA_PLANO.setY(this.balizaEdicion.ENTIDAD.Y);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.displayDialogBaliza = false;\r\n\t\tthis.balizaEdicion = new BalizaFormulario();\r\n\t\tthis.estadoEdicion = '';\r\n\t}\r\n\r\n\tonNotificationClicked($event){\r\n\t\tconsole.log('**** onNotificationClicked');\r\n\t\tthis.router.navigate(['/mensajes/nuevo', { id: $event.id }]);\r\n\t}\r\n\r\n\tonNotificationMoved($event){\r\n\t\tconsole.log('**** onNotificationMoved');\r\n\t}\r\n\r\n\r\n\tpublic onContentClicked(event) {\r\n\r\n\t\tconsole.log('onContentClicked ' + event);\r\n\t\tconsole.log('event.id ' + event.id);\r\n\t\tif (this.permisos.Mapa_plano_contenido === 2 && this.permisos.Mapa_plano_contenido_formulario !== 0){\r\n\t\t\tconst contenidoPlano = this.mapContents.get(event.id);\r\n\t\t\t// this.nodoEdicion = new NodoFormulario(nodoPlano);\r\n\t\t\t// this.zoomCenterCoords = [contenidoPlano.getX(), contenidoPlano.getY()];\r\n\t\t\tconsole.log('ESTADO EDICION: ' + this.estadoEdicion );\r\n\t\t\t// Si estamos seleccionando un nodo como destino de una conexion portal limitamos que no se pueda conectar un nodo consigomismo\r\n\t\t\tlet mismoContenido = false;\r\n\t\t\tif ( this.estadoEdicion === 'CONTENIDO_SELEC'){\r\n\t\t\t\tconsole.log('Ya estamos editando la posicion de un contenido');\r\n\t\t\t\tmismoContenido = (event.id === this.contenidoEdicion.Id);\r\n\t\t\t\tif(!mismoContenido){\r\n\t\t\t\t\tthis.onFormularioContenidoCerrado(event)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( this.estadoEdicion === ''){\r\n\t\t\t\tlet formContenido = () => {\r\n\t\t\t\t\tthis.estadoEdicion = 'CONTENIDO_SELEC';\r\n\t\t\t\t\tthis.resaltarContenidoSeleccionado(event.id);\r\n\t\t\t\t\tconsole.log('contenidoPlano ' + contenidoPlano);\r\n\t\t\t\t\tconst imagen = this.contenidosFormulario.find( x => x.ENTIDAD.Id === event.id).Imagen;\r\n\t\t\t\t\tconsole.log(imagen)\r\n\t\t\t\t\tthis.contenidoEdicion = new Contenido().fromNodoPlano(contenidoPlano); // new Contenido(contenidoPlano); // event.id;\r\n\t\t\t\t\tthis.contenidoEdicion.Imagen = imagen;\r\n\t\t\t\t\tthis.displayDialogContenido = true;\r\n\t\t\t\t\tthis.msgs = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!mismoContenido) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tformContenido();\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tformContenido();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconsole.log('POST CONTENIDO_SELEC');\r\n\t\t}\r\n\t}\r\n\tpublic onContentMoved(event) {\r\n\t\tlet seccionDetectada;\r\n\t\tlet nodosSeccionDetectada;\r\n\t\tlet distanciaMinima = Constantes.MAX_PESO;\r\n\t\tlet nodoMasCercano;\r\n\t\tconsole.log('onContentMoved');\r\n\t\tconsole.log('---------------------------------');\r\n\t\tconst contentPlano = this.mapContents.get(event.id);\r\n\t\tconst click_X = this.contenidoEdicion.CONTENIDO_PLANO.getX();\r\n\t\tconst click_Y = this.contenidoEdicion.CONTENIDO_PLANO.getY();\r\n\t\tconsole.log(this.contenidoEdicion.X + ' , ' + this.contenidoEdicion.Y);\r\n\t\t// Calcular la nueva seccion...\r\n\t\tseccionDetectada = this.seccionDefecto;\r\n\t\tthis.sections.forEach((seccionPlano: SeccionPlano) => {\r\n\t\t\tif (seccionPlano.getCoordenadasPoligono()) {\r\n\t\t\t\tif (this.pointInPolygon([click_X as number, click_Y as number], seccionPlano.getCoordenadasPoligono())) {\r\n\t\t\t\t\tseccionDetectada = seccionPlano.ENTIDAD;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tnodosSeccionDetectada = seccionDetectada ? seccionDetectada.NODOS : [];\r\n\t\tif (!nodosSeccionDetectada || nodosSeccionDetectada.length === 0) {\r\n\t\t\tthis.contenidoEdicion.CONTENIDO_PLANO.setX(this.contenidoEdicion.X);\r\n\t\t\tthis.contenidoEdicion.CONTENIDO_PLANO.setY(this.contenidoEdicion.Y);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis.contenidoEdicion.X = click_X;\r\n\t\tthis.contenidoEdicion.Y = click_Y;\r\n\t\t// d = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )\r\n\t\tnodosSeccionDetectada.forEach(nodo => {\r\n\t\t\tconst x1 = nodo.X;\r\n\t\t\tconst y1 = nodo.Y;\r\n\t\t\tconst x2 = this.contenidoEdicion.X;\r\n\t\t\tconst y2 = this.contenidoEdicion.Y;\r\n\t\t\tconst d = Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) );\r\n\t\t\tconsole.log('--- Distancia a: ' + nodo.Nombre + ' = ' + d);\r\n\t\t\tif (d < distanciaMinima) {\r\n\t\t\t\tdistanciaMinima = d;\r\n\t\t\t\tnodoMasCercano = nodo;\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log('Seccion Seleccionada: ' + seccionDetectada.Nombre);\r\n\t\tconsole.log('Nodo mas Cercano: ' + nodoMasCercano.Nombre);\r\n\t}\r\n\tpublic onContentGuardado(event) {\r\n\t\tconst result = event.result;\r\n\t\tif (result === true) {\r\n\t\t\tthis.displayDialogContenido = false;\r\n\t\t\tthis.onFormularioContenidoCerrado(undefined);\r\n\t\t\tthis.reasignarContenidos();\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.contenidoguardadook'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.contenidoguardadoerror'));\r\n\t\t}\r\n\t}\r\n\tonFormularioContenidoAbierto(event){\r\n\t}\r\n\tpublic onFormularioContenidoCerrado(event) {\r\n\t\tconsole.log('onFormularioContenidoCerrado');\r\n\t\tthis.resaltarContenidoSeleccionado();\r\n\t\tif (this.displayDialogContenido === true) { // Descartado\r\n\t\t\tif (this.contenidoEdicion.ENTIDAD) {\r\n\t\t\t\tthis.contenidoEdicion.CONTENIDO_PLANO.setX(this.contenidoEdicion.ENTIDAD.X);\r\n\t\t\t\tthis.contenidoEdicion.CONTENIDO_PLANO.setY(this.contenidoEdicion.ENTIDAD.Y);\r\n\t\t\t\tif (this.contenidoEdicion.ENTIDAD.TIPOLOGIA_NODO) {\r\n\t\t\t\t\tif ( this.contenidoEdicion.ENTIDAD.TIPOLOGIA_NODO.TIPOLOGIA_NODO) {\r\n\t\t\t\t\t\tthis.contenidoEdicion.CONTENIDO_PLANO.setSimbolo(this.contenidoEdicion.ENTIDAD.TIPOLOGIA_NODO.IconoRepresentacion);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tconsole.log('3.- NO TIPOLOGIA NODO');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconsole.log('TODO: Implementar desacer asignaciones Seccion y Nodo');\r\n\t\t}\r\n\t\tthis.displayDialogContenido = false;\r\n\t\tthis.contenidoEdicion = new Contenido();\r\n\t\tthis.estadoEdicion = '';\r\n\t}\r\n\r\n\r\n\tpublic onNodoPortalCrearPressed($event){\r\n\t\tthis.estadoEdicion = 'PORTAL_CREAR';\r\n\t}\r\n\r\n\tpublic onNodoPortalCancelPressed($event){\r\n\t\tthis.estadoEdicion = 'NODO_SELEC';\r\n\t}\r\n\r\n\tonConexionPortalSeleccionada(item){\r\n\t\tconst conexionFormulario: ConexionFormulario = new ConexionFormulario().fromENTIDAD(item);\r\n\t\tthis.conexionEdicion = conexionFormulario;\r\n\t\tthis.displayDialogEditarConexion = true;\r\n\t\tthis.msgs = [];\r\n\r\n\t\tconst conexiones_desde_nodo_destino = item.NodoDestino.CONEXIONS_NODOS_ORIGEN;\r\n\t\tconst conexionAux = conexiones_desde_nodo_destino.filter(x => x.IdNodoDestino === item.NodoOrigen.Id)[0];\r\n\t\tthis.conexionEdicionVuelta = new ConexionFormulario().fromENTIDAD(conexionAux);\r\n\r\n\t\tconst auxOrigen = new NodoPlano(item.NodoOrigen.Id, item.NodoOrigen.Nombre, item.NodoOrigen.X, item.NodoOrigen.Y, '', null, 1);\r\n\t\tconst auxDestino = new NodoPlano(item.NodoDestino.Id, item.NodoDestino.Nombre, item.NodoDestino.X, item.NodoDestino.Y, '', null, 1);\r\n\r\n\t\tthis.conexionEdicion.NODO_PLANO_ORIGEN = auxOrigen;\r\n\t\tthis.conexionEdicion.NODO_PLANO_DESTINO = auxDestino;\r\n\r\n\t\tthis.conexionEdicion.Idiomas = this.idiomaService.getMapConexionNodoIdiomas(this.conexionEdicion.ENTIDAD.IDIOMAS);\r\n\t\tthis.conexionEdicionVuelta.Idiomas = this.idiomaService.getMapConexionNodoIdiomas(this.conexionEdicionVuelta.ENTIDAD.IDIOMAS);\r\n\t\tconst a = 1;\r\n\t}\r\n\r\n\tprotected abrirMenuConexion(conexionPlano: ConexionPlano, mp: number[], g: any) {\r\n\t\tconst link_entries = [\r\n\t\t\t{ icon : 'assets/planos/fa/raw-svg/solid/code-branch.svg', action: 'divide' }\r\n\t\t];\r\n\t\tconst that = this;\r\n\t\tthis.todosHide();\r\n\r\n\t\tmp[0] *= this.mapaZoom;\r\n\t\tmp[1] *= this.mapaZoom;\r\n\t\tconst _zoom_click = this.mapaZoom;\r\n\t\tthis.link_segment_menu = d3RadialMenu.d3RadialMenu()\r\n\t\t\t.scale(D3SCALEMENU).radius(D3RADIUSMENU).thickness(D3THICKNESSMENU).iconSize(D3ICONSIZEMENU)\r\n\t\t\t.entries(link_entries)\r\n\t\t\t.on('click', function(action, menu) {\r\n\t\t\t\tif (action === 'divide') {\r\n\t\t\t\t\t// console.log(\"divide \" + menu.data().id);\r\n\t\t\t\t\tconst _mp = [ mp[0] / _zoom_click , mp[1] / _zoom_click ];\r\n\t\t\t\t\tconst coordenadas: number[][] = conexionPlano.getRuta();\r\n\t\t\t\t\tconst indice = that.obtenerIndiceSegmento(_mp, coordenadas);\r\n\t\t\t\t\tconsole.log('indice = ' + indice);\r\n\t\t\t\t\tif (typeof(indice) !== 'undefined' && indice != null && indice >= 0) {\r\n\t\t\t\t\t\tcoordenadas.splice(indice + 1, 0, _mp);\r\n\t\t\t\t\t\tthat.conexionEdicion.CONEXION_PLANO.setRuta(conexionPlano.getRuta());\r\n\r\n\t\t\t\t\t\tthat.asignarLinks(that.links);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.showMenu(g, mp, conexionPlano);\r\n\t}\r\n\tpublic onLinkClicked(event) {\r\n\t\tconsole.log('onLinkClicked ' + event);\r\n\t\tconsole.log('event.id ' + event.id);\r\n\t\tthis.mpClick = [event.mp[0] , event.mp[1]];\r\n\t\tif (this.permisos.Mapa_plano_conexion !== 0 && this.permisos.Mapa_plano_conexion_formulario !== 0){\r\n\t\t\tif ((this.estadoEdicion === 'TRAMO_SELEC' || this.estadoEdicion === '') && (this.conexionEdicion === undefined || !this.conexionEdicion.Id)) {\r\n\t\t\t\tthis.estadoEdicion = 'TRAMO_SELEC';\r\n\t\t\t\tthis.resaltarConexionSeleccionada(event.id);\r\n\t\t\t\tconst conexionPlano = this.mapLinks.get(event.id);\r\n\t\t\t\tconst conexionFormulario: ConexionFormulario = new ConexionFormulario().fromConexionPlano(\r\n\t\t\t\t\tconexionPlano,\r\n\t\t\t\t\tthis.mapNodes.get(conexionPlano.getIdNodoOrigen()),\r\n\t\t\t\t\tthis.mapNodes.get(conexionPlano.getIdNodoDestino())\r\n\t\t\t\t);\r\n\t\t\t\tconexionFormulario.CONEXION_PLANO.setMostrarConectores(true);\r\n\t\t\t\tthis.conexionEdicion = conexionFormulario;\r\n\t\t\t\tthis.displayDialogEditarConexion = true;\r\n\t\t\t\tthis.msgs = [];\r\n\t\t\t\tconst nodo_destino = this.mapNodes.get(conexionPlano.getIdNodoDestino());\r\n\t\t\t\tconst nodo_origen = this.mapNodes.get(conexionPlano.getIdNodoOrigen());\r\n\r\n\t\t\t\tconst conexiones_desde_nodo_destino = nodo_destino.ENTIDAD.CONEXIONS_NODOS_ORIGEN;\r\n\t\t\t\tconst conexionAux1 = conexiones_desde_nodo_destino.filter(x => x.IdNodoDestino === nodo_origen.getId());\r\n\t\t\t\t\tconsole.log(conexionPlano)\r\n\t\t\t\t\tconsole.log(conexionAux1)\r\n\t\t\t\tlet conexionvueltaId: String = '';\r\n\t\t\t\tconexionAux1.forEach(element => {\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet conexion = this.mapLinks.get(element.Id);\r\n\r\n\t\t\t\t\tlet arrayRutas = [];\r\n\t\t\t\t\tlet arrayRutasIda = conexionPlano.getRuta();\r\n\t\t\t\t\tlet arrayRutasInvertidas = [...arrayRutasIda].reverse();\r\n\r\n\t\t\t\t\tif(conexion.getRuta() === null){\r\n\t\t\t\t\t\tlet array = [];\r\n\t\t\t\t\t\tconexion.setRuta(array);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(conexion.getIdNodoOrigen() === conexionPlano.getIdNodoDestino() && conexion.getIdNodoDestino() === conexionPlano.getIdNodoOrigen() && conexion.getRuta().length === 0){\r\n\r\n\t\t\t\t\t\tconexion.setRuta(arrayRutasInvertidas);\r\n\t\t\t\t\t\tarrayRutas = conexion.getRuta();\r\n\t\t\t\t\t}else{\r\n\r\n\t\t\t\t\t\tarrayRutas = conexion.getRuta();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tarrayRutasInvertidas = [...arrayRutas].reverse();\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet isEqual = JSON.stringify(arrayRutasInvertidas) === JSON.stringify(arrayRutasIda);\r\n\t\t\t\t\tconsole.log(isEqual);\r\n\t\t\t\t\t if(isEqual){\r\n\t\t\t\t\t conexionvueltaId = conexion.getId();\r\n\t\t\t\t\t }\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\t//const conexionAux = conexiones_desde_nodo_destino.filter(x => x.IdNodoDestino === nodo_origen.getId())[0];\r\n\t\t\t\tconst conexionVueltaPlano = this.mapLinks.get(conexionvueltaId);\r\n\t\t\t\tconsole.log(conexionVueltaPlano)\r\n\t\t\t\tthis.conexionEdicionVuelta = new ConexionFormulario().fromConexionPlano(\r\n\t\t\t\t\tconexionVueltaPlano,\r\n\t\t\t\t\tconexionVueltaPlano.nodoOrigen,\r\n\t\t\t\t\tconexionVueltaPlano.nodoDestino\r\n\t\t\t\t);\r\n\t\t\t\tthis.conexionEdicion.Idiomas = this.idiomaService.getMapConexionNodoIdiomas(this.conexionEdicion.ENTIDAD.IDIOMAS);\r\n\t\t\t\tthis.conexionEdicionVuelta.Idiomas = this.idiomaService.getMapConexionNodoIdiomas(this.conexionEdicionVuelta.ENTIDAD.IDIOMAS);\r\n\t\t\t\tconst a = 1;\r\n\t\t\t}\r\n\t\t\telse if (this.estadoEdicion === 'TRAMO_SELEC' && this.conexionEdicion !== undefined) {\r\n\t\t\t\t// Solo dejamos agregar puntos si pincho sobre la conexion que esta seleccionada.\r\n\t\t\t\tif (event.id === this.conexionEdicion.Id) {\r\n\t\t\t\t\tconst conexionPlano = this.mapLinks.get(event.id);\r\n\t\t\t\t\tthis.abrirMenuConexion(conexionPlano, event.mp, event.g_noZoom);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tcargarPlano() {\r\n\t\tthis.zoomLevels = [this.alaSeleccionada.zoomMinimo, this.alaSeleccionada.zoomMaximo];\r\n\t\tthis.currentZoomLevel = 1;\r\n\r\n\t\tthis.pathSvgPlano = this.alaSeleccionada.RutaImagen;\r\n\t\tthis.pathPlano = this.alaSeleccionada.RutaImagen;\r\n\r\n\t\tthis.compass = new Compass(100, 100, 0);\r\n\t\tconsole.log('this.alaSeleccionada.RutaImagen = ' + this.alaSeleccionada.RutaImagen);\r\n\t}\r\n\t// CallBacks Formulario nodo\r\n\tonFormularioNodoAbierto($event){\r\n\t\tconsole.log('onFormularioNodoAbierto: No hace NADA');\r\n\t}\r\n\tpublic onFormularioNodoCerrado(event) {\r\n\t\tconsole.log('onFormularioNodoCerrado');\r\n\t\tthis.resaltarNodoSeleccionado();\r\n\t\tif (this.displayDialogEditarNodo === true) { // Descartado\r\n\t\t\tif (this.nodoEdicion.ENTIDAD) {\r\n\t\t\t\tthis.nodoEdicion.NODO_PLANO.setX(this.nodoEdicion.ENTIDAD.X);\r\n\t\t\t\tthis.nodoEdicion.NODO_PLANO.setY(this.nodoEdicion.ENTIDAD.Y);\r\n\t\t\t\tif (this.mapNodes) {\r\n\t\t\t\t\tthis.mapNodes.set(this.nodoEdicion.Id, this.nodoEdicion.NODO_PLANO);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.nodoEdicion.ENTIDAD.TIPOLOGIA_NODO) {\r\n\t\t\t\t\tif (this.nodoEdicion.ENTIDAD.TIPOLOGIA_NODO) {\r\n\t\t\t\t\t\tthis.nodoEdicion.NODO_PLANO.setSimbolo(this.nodoEdicion.ENTIDAD.TIPOLOGIA_NODO.IconoRepresentacion);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tconsole.log('4.- NO TIPOLOGIA NODO');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.nodoEdicion.NODO_PLANO.conexiones.forEach(conexion => {\r\n\t\t\t\tconst ruta: number[][] = this.nodoEdicion.NODO_PLANO.rutasconexiones_backup.get(conexion.getId());\r\n\t\t\t\tconexion.setRuta(ruta);\r\n\t\t\t});\r\n\r\n\t\t\tthis.asignarNodes(this.nodes);\r\n\t\t\tthis.asignarLinks(this.links);\r\n\t\t}\r\n\r\n\t\tthis.balizasResaltar = [];\r\n\t\tthis.desmarcarBalizas();\r\n\r\n\t\tthis.displayDialogEditarNodo = false;\r\n\t\tthis.nodoEdicion = new NodoFormulario();\r\n\t\tthis.estadoEdicion = '';\r\n\t\tthis.blockUI = document.getElementsByClassName('blockUI')[0] as HTMLElement;\r\n\t\tthis.blockUI.style.display = 'none';\r\n\t}\r\n\tpublic onNodoGuardado(event) {\r\n\t\tconst result = event.result;\r\n\t\tconst nodoFormulario: NodoFormulario = event.element;\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapNodes) {\r\n\t\t\t\tthis.mapNodes.set(nodoFormulario.Id, nodoFormulario.NODO_PLANO);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarNodo = false;\r\n\t\t\tthis.onFormularioNodoCerrado(undefined);\r\n\t\t\tthis.reasignarContenidos();\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.nodoguardadook'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.nodoguardadoerror'));\r\n\t\t}\r\n\t}\r\n\tpublic onNodoEliminado(event) {\r\n\t\tconst result = event.result;\r\n\t\tconst nodoFormulario: NodoFormulario = event.element;\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapNodes && this.mapNodes.has(nodoFormulario.Id)) {\r\n\t\t\t\t// Lo añado si no estaba para que el componente plano detecte cambios en los nodos\r\n\t\t\t\tthis.mapNodes.set(nodoFormulario.Id, nodoFormulario.NODO_PLANO);\r\n\t\t\t\tthis.mapNodes.get(nodoFormulario.Id).setEliminado(true);\r\n\t\t\t\tthis.mapNodes.delete(nodoFormulario.Id);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarNodo = false;\r\n\t\t\tthis.onFormularioNodoCerrado(undefined);\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.nodoeliminadook'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.nodoeliminadoerror'));\r\n\t\t}\r\n\t}\r\n\tpublic onNodoValidation(event) {\r\n\t}\r\n\r\n\tpublic onBalizaValidation(event) {\r\n\t}\r\n\t// CallBacks Formulario conexion\r\n\tpublic onFormularioConexionCerrado(event) {\r\n\t\tconsole.log('onFormularioConexionCerrado');\r\n\t\tthis.resaltarConexionSeleccionada();\r\n\t\tif (this.conexionEdicion && this.conexionEdicion.CONEXION_PLANO) {\r\n\t\t\tthis.conexionEdicion.CONEXION_PLANO.setMostrarConectores(false);\r\n\t\t}\r\n\t\tif (this.displayDialogEditarConexion === true) { // Descartado\r\n\t\t\tif (this.conexionEdicion.CONEXION_PLANO.ENTIDAD) {\r\n\t\t\t\tthis.conexionEdicion.CONEXION_PLANO.setRuta(JSON.parse(this.conexionEdicion.CONEXION_PLANO.ENTIDAD.CoordenadasCamino));\r\n\t\t\t}\r\n\t\t\tthis.asignarLinks(this.links);\r\n\t\t}\r\n\t\tthis.displayDialogEditarConexion = false;\r\n\t\tthis.conexionEdicion = new ConexionFormulario();\r\n\t\tthis.conexionEdicionVuelta = new ConexionFormulario();\r\n\t\tthis.asignarLinks(this.links);\r\n\t\tif (!this.displayDialogEditarNodo) {\r\n\t\t\tthis.nodoEdicion = new NodoFormulario();\r\n\t\t\tthis.estadoEdicion = '';\r\n\t\t}\r\n\r\n\t}\r\n\tpublic onConexionGuardada(event) {\r\n\t\tconst result = event.result;\r\n\t\tconst conexionFormulario: ConexionFormulario = event.element[0];\r\n\t\tconst conexionFormularioVuelta: ConexionFormulario = event.element[1];\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapLinks) {\r\n\t\t\t\tthis.mapLinks.set(conexionFormulario.Id, conexionFormulario.CONEXION_PLANO);\r\n\t\t\t\tthis.mapLinks.set(conexionFormularioVuelta.Id, conexionFormularioVuelta.CONEXION_PLANO);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarConexion = false;\r\n\t\t\tthis.onFormularioContenidoCerrado(undefined); // Se llama a onFormularioNodoCerrado\r\n\t\t\tthis.reasignarContenidos();\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.conexionguardadaok'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.conexionguardadaerror'));\r\n\t\t}\r\n\t}\r\n\tpublic onConexionEliminada(event) {\r\n\t\tconsole.log(event)\r\n\t\tconst result = event.result;\r\n\t\t//console.log(result)\r\n\r\n\t\t const conexionFormulario: ConexionFormulario = event.element[0];\r\n\t\t const conexionFormularioVuelta: ConexionFormulario = event.element[1];\r\n\t\t if (result === true) {\r\n\t\t\tif (this.mapLinks && this.mapLinks.has(conexionFormulario.Id)) {\r\n\t\t\t\tthis.mapLinks.get(conexionFormulario.Id).setEliminado(true);\r\n\t\t\t\tthis.mapLinks.delete(conexionFormulario.Id);\r\n\t\t\t}\r\n\t\t\tif (this.mapLinks && this.mapLinks.has(conexionFormularioVuelta.Id)) {\r\n\t\t\t\tthis.mapLinks.get(conexionFormularioVuelta.Id).setEliminado(true);\r\n\t\t\t\tthis.mapLinks.delete(conexionFormularioVuelta.Id);\r\n\t\t\t}\r\n\r\n\t\t \t// Eliminarlas del Nodo y refrescar el nodoFormulario que se esta editando\r\n\t\t \tif (this.displayDialogEditarNodo) {\r\n\t\t\t\tconsole.log('aqui')\r\n\t\t \t\tif (this.nodoEdicion) {\r\n\t\t \t\t\tconst nodoAux = this.mapNodes.get(this.nodoEdicion.Id);\r\n\t\t \t\t\tnodoAux.conexiones = nodoAux.conexiones.filter( c => c.getId() !== conexionFormulario.Id && c.getId() !== conexionFormularioVuelta.Id);\r\n\t\t \t\t\tthis.nodoEdicion = new NodoFormulario().fromNodoPlano(nodoAux);\r\n\t\t \t\t}\r\n\t\t \t}\r\n\r\n\t\t \tthis.displayDialogEditarConexion = false;\r\n\t\t \tthis.onFormularioConexionCerrado(undefined); // Se llama a onFormularioNodoCerrado\r\n\t\t \tthis.spinner.style.display = 'none';\r\n\t\t \tthis.appComponent.showSuccess(this.translate.instant('Mapas.conexioneliminadaok'));\r\n\t\t }\r\n\t\t else {\r\n\t\t \tthis.spinner.style.display = 'none';\r\n\t\t \tthis.appComponent.showError(this.translate.instant('Mapas.conexioneliminadaerror'));\r\n\t\t }\r\n\t}\r\n\tpublic onConexionValidation(event) {\r\n\t}\r\n\t// CallBacks Formulario SECCION\r\n\tpublic onFormularioSeccionCerrado(event) {\r\n\t\tconsole.log('onFormularioSeccionCerrado');\r\n\t\tthis.resaltarSeccionSeleccionado();\r\n\t\tif (this.seccionEdicion && this.seccionEdicion.SECCION_PLANO) {\r\n\t\t\tthis.seccionEdicion.SECCION_PLANO.setMostrarConectores(false);\r\n\t\t}\r\n\t\tif (this.displayDialogEditarSeccion === true) { // Descartado\r\n\t\t\tif (this.seccionEdicion.SECCION_PLANO.ENTIDAD) {\r\n\t\t\t\tthis.seccionEdicion.SECCION_PLANO.setCoordenadasPoligono(JSON.parse(this.seccionEdicion.SECCION_PLANO.ENTIDAD.CoordenadasPoligono));\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.asignarSections(this.sections);\r\n\t\tthis.displayDialogEditarSeccion = false;\r\n\t\t/*if(this.seccionEdicion.FechaBaja !== null){\r\n\t\t\tthis.apareceBoton = true;\r\n\t\t}*/\r\n\t\tthis.seccionEdicion = new SeccionFormulario();\r\n\t\tthis.estadoEdicion = '';\r\n\t\tthis.colorSeleccionado = '#00000';\r\n\t\tthis.limpiarSeccionesFantasma();\r\n\t}\r\n\tpublic onSeccionGuardada(event) {\r\n\t\tconsole.log(event)\r\n\t\tconst result = event.result;\r\n\t\tconst seccionFormulario: SeccionFormulario = event.element;\r\n\r\n\t\tthis.reasignarNodosSeccion(seccionFormulario);\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapSections) {\r\n\t\t\t\tthis.mapSections.delete(seccionFormulario.Id);\r\n\t\t\t\tthis.mapSections.set(seccionFormulario.Id, seccionFormulario.SECCION_PLANO);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarSeccion = false; // Se llamara a onFormularioNodoCerrado\r\n\t\t\t/*this.apareceBoton = false;*/\r\n\t\t\tthis.reasignarContenidos();\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.seccionguardadaok'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.seccionguardadaerror'));\r\n\t\t}\r\n\t\tthis.limpiarSeccionesFantasma();\r\n\t}\r\n\tpublic onSeccionEliminada(event) {\r\n\t\tconst result = event.result;\r\n\t\tconst seccionFormulario: SeccionFormulario = event.element;\r\n\t\tif (result === true) {\r\n\t\t\tif (this.mapSections && this.mapSections.has(seccionFormulario.Id)) {\r\n\t\t\t\tthis.mapSections.get(seccionFormulario.Id).setEliminado(true);\r\n\t\t\t\tthis.mapSections.delete(seccionFormulario.Id);\r\n\t\t\t\tconst seccionPlano = this.sections.find(x => x.getId() === seccionFormulario.Id);\r\n\t\t\t\tconst index = this.sections.indexOf(seccionPlano);\r\n\t\t\t\tthis.sections.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tthis.displayDialogEditarSeccion = false; // Se llamara a onFormularioNodoCerrado\r\n\t\t\t// this.apareceBoton = false;\r\n\t\t\tthis.appComponent.showSuccess(this.translate.instant('Mapas.seccioneliminadaok'));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.seccioneliminadaerror'));\r\n\t\t}\r\n\t\tthis.spinner.style.display = 'none';\r\n\t\tthis.limpiarSeccionesFantasma();\r\n\t}\r\n\tpublic onSeccionValidation(event) {\r\n\t}\r\n\tprivate salvarElementosNoEdicionEstados(){\r\n\t\tconst _elems = ['mostrarNodos', 'mostrarContenidos', 'mostrarSecciones', 'mostrarTramos'];\r\n\t\tthis.elementosOcultadosNoEdicionOrigen = {};\r\n\t\tfor (const _i in _elems){\r\n\t\t\tconst _elem = _elems[_i];\r\n\t\t\tthis.elementosOcultadosNoEdicionOrigen[_elem] = this[_elem];\r\n\t\t}\r\n\t}\r\n\tocultarElementosEnNoEdicion(_excludes){\r\n\t\tthis.salvarElementosNoEdicionEstados();\r\n\r\n\t\tfor (const _elem in this.elementosOcultadosNoEdicionOrigen){\r\n\t\t\tif (_excludes.indexOf(_elem) >= 0){\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tthis[_elem] = false;\r\n\t\t}\r\n\t}\r\n\tdesOcultarElementosEnNoEdicion(){\r\n\t\tfor (const _elem in this.elementosOcultadosNoEdicionOrigen){\r\n\t\t\tthis[_elem] = this.elementosOcultadosNoEdicionOrigen[_elem];\r\n\t\t}\r\n\t}\r\n\t/**/\r\n\tmenucommand(comando) {\r\n\t\t// this.notificationsService.notify('info', 'some component', 'SELECCIONADO');\r\n\t\t// this.notificationsService.notify('info', 'Mapa', JSON.stringify(comando));\r\n\t\tthis.estadoEdicion = comando.item.id;\r\n\t\tthis.subEstadoEdicion = 'INICIAL';\r\n\t\tthis.tramoNodoOrigen = null;\r\n\t\tthis.tramoNodoDestino = null;\r\n\t\tif (comando.item.id === 'SECCION_SELEC') {\r\n\t\t\tthis.ocultarElementosEnNoEdicion(['mostrarSecciones']);\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.elijaseccion'));\r\n\t\t}\r\n\t\telse if (comando.item.id === 'SECCION_CREAR') {\r\n\t\t\tthis.ocultarElementosEnNoEdicion(['mostrarSecciones']);\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.dibujeseccion'));\r\n\t\t}\r\n\t\telse if (comando.item.id === 'NODO_SELEC') {\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.elijanodoeditar'));\r\n\t\t\tthis.movible = true;\r\n\t\t\tconsole.log('this.movible = ' + this.movible);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'NODO_CREAR') {\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.colocarnodo'));\r\n\t\t\t// this.notificationsService.notify('info', 'Nuevo Nodo', 'Haga click en el plano en la ubicación donde colocar el nuevo nodo');\r\n\t\t}\r\n\t\telse if (comando.item.id === 'TRAMO_SELEC') {\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.seleccionetramoeditar'));\r\n\t\t}\r\n\t\telse if (comando.item.id === 'TRAMO_CREAR') {\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.seleccioneprimernodoconectar'));\r\n\t\t}\r\n\t\telse if (comando.item.id === 'BALIZA_SELEC') {\r\n\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.seleccionebalizaeditar'));\r\n\t\t}\r\n\t\telse if (comando.item.id === 'BALIZA_CREAR') {\r\n\t\t\t// TODO: SI NO HAY CONTENIDOS AVISAR\r\n\t\t\tif (this.mapNodes.size === 0) {\r\n\t\t\t\tthis.appComponent.showAlert('warn', this.translate.instant('Mapas.imposibleColocarbaliza'));\r\n\t\t\t\tthis.estadoEdicion = '';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.appComponent.showInfo(this.translate.instant('Mapas.colocarbaliza'));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\testanTodosEliminados(array){\r\n\t\tarray.forEach(element => {\r\n\t\t\tif (!element.eliminado) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n\tdescartarNodo() {\r\n\t\tthis.nodoEdicion = new NodoFormulario();\r\n\t\tthis.estadoEdicion = '';\r\n\t}\r\n\tguardarNodo() {\r\n\t\tconst that = this;\r\n\t\tthis.crearNodo()\r\n\t\t\t.then(function (oNODO) {\r\n\t\t\t\tthat.displayDialogNuevoNodo = false;\r\n\t\t\t\tconsole.log('guardarNodo RESOLVED');\r\n\t\t\t\t// \tif (oNODO == null) {\r\n\t\t\t\t/*\r\n\t\t\t\t\tif (oNODO != null) {\r\n\t\t\t\t\t\tthat.appComponent.showError('Error al guardar el nodo');\r\n\t\t\t\t\t\tthat.notificationsService.notify('error', 'Edición de nodo', 'Error al guardar el nodo');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t*/\r\n\t\t\t\tconst icono = 'wifi.png';\r\n\t\t\t\t// that.plano.odo(that.mpClick[0], that.mpClick[1], 'assets/planos/iconos/' + icono);\r\n\t\t\t\t// that.notificationsService.notify('info', 'Edición de nodo', 'Nodo creado');\r\n\t\t\t\tthat.appComponent.showSuccess(this.translate.instant('Mapas.nodocreado'));\r\n\t\t\t\tthat.estadoEdicion = '';\r\n\t\t\t\t/*\r\n\t\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t});\r\n\t}\r\n\tcrearNodo(): Promise {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tconst that = this;\r\n\t\t\treturn this.entityManagerProvider.newNodo()\r\n\t\t\t\t.then(function (oNODO) {\r\n\t\t\t\t\tresolve(oNODO);\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\tthis.displayDialogNuevoNodo = false;\r\n\t\t\t\t\tresolve(null);\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\tcrearConexionNodo(nodoPlano, esPortal = false){\r\n\t\tconst that = this;\r\n\t\tconst pesosConexionIda = [];\r\n\t\tconst pesosConexionVuelta = [];\r\n\t\tlet promises: any[] = [];\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\r\n\t\tthis.spinner.style.display = 'inherit';\r\n\t\t// const nodoPlano = this.mapNodes.get(event.id);\r\n\t\tthis.tramoNodoDestino = nodoPlano;\r\n\t\tif ((this.tramoNodoDestino.ENTIDAD.Id === this.tramoNodoOrigen.ENTIDAD.Id)) {\r\n\t\t\tthis.appComponent.showError(this.translate.instant('Mapas.nodoOrigenDestinoIguales'));\r\n\t\t\tthis.spinner.style.display = 'none';\r\n\t\t}\r\n\t\telse{\r\n\t\t\tfor (let index = 0; index < that.perfilesMovilidad.length; index++) {\r\n\t\t\t\tpromises.push(this.entityManagerProvider.newPESO_CONEXION());\r\n\t\t\t}\r\n\r\n\t\t\treturn allSettled(promises)\r\n\t\t\t.then(function(pesosIda){\r\n\t\t\t\tfor (let index = 0; index < pesosIda.length; index++) {\r\n\t\t\t\t\tconst element = pesosIda[index].result;\r\n\t\t\t\t\telement.Peso = Constantes.PESO;\r\n\t\t\t\t\telement.PerfilMovilidad = that.perfilesMovilidad[index];\r\n\t\t\t\t\tpesosConexionIda.push(element);\r\n\t\t\t\t}\r\n\t\t\t\tpromises = [];\r\n\r\n\t\t\t\tfor (let index = 0; index < that.perfilesMovilidad.length; index++) {\r\n\t\t\t\t\tpromises.push(that.entityManagerProvider.newPESO_CONEXION());\r\n\t\t\t\t}\r\n\t\t\t\treturn allSettled(promises);\r\n\t\t\t})\r\n\t\t\t.then(function(pesosVuelta){\r\n\t\t\t\tfor (let index = 0; index < pesosVuelta.length; index++) {\r\n\t\t\t\t\tconst element = pesosVuelta[index].result;\r\n\t\t\t\t\telement.Peso = Constantes.PESO;\r\n\t\t\t\t\telement.PerfilMovilidad = that.perfilesMovilidad[index];\r\n\t\t\t\t\tpesosConexionVuelta.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn that.entityManagerProvider.newCONEXION_NODOS();\r\n\t\t\t})\r\n\t\t\t.then(function(oConexionNodos) {\r\n\t\t\t\toConexionNodos.IdEntidad = that.authService.getIdEntidad();\r\n\t\t\t\t// Indicaciones por idioma Conexion de Ida\r\n\t\t\t\toConexionNodos.IDIOMAS.forEach(CONEXION_NODOS_IDIOMA => {\r\n\t\t\t\t\tCONEXION_NODOS_IDIOMA.Indicacion = that.translate.instant('Mapas.sinindicaciones');\r\n\t\t\t\t\tif (CONEXION_NODOS_IDIOMA.IDIOMA.Default) {\r\n\t\t\t\t\t\toConexionNodos.Indicacion = CONEXION_NODOS_IDIOMA.Indicacion ? CONEXION_NODOS_IDIOMA.Indicacion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (esPortal) {\r\n\t\t\t\t\toConexionNodos.CoordenadasCamino = '[]';\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\toConexionNodos.CoordenadasCamino = JSON.stringify([ [that.tramoNodoOrigen.getX(), that.tramoNodoOrigen.getY()], [that.tramoNodoDestino.getX(), that.tramoNodoDestino.getY()] ]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\toConexionNodos.IdNodoOrigen = that.tramoNodoOrigen.getId();\r\n\t\t\t\toConexionNodos.IdNodoDestino = that.tramoNodoDestino.getId();\r\n\t\t\t\toConexionNodos.CortadoTemporalmente = false;\r\n\t\t\t\tpesosConexionIda.forEach(elemento => {\r\n\t\t\t\t\toConexionNodos.PESO_CONEXIONS.push(elemento);\r\n\t\t\t\t});\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\t.then(function(b) {\r\n\t\t\t\treturn that.entityManagerProvider.newCONEXION_NODOS();\r\n\t\t\t})\r\n\t\t\t.then(function(oConexionNodos) {\r\n\t\t\t\toConexionNodos.IdEntidad = that.authService.getIdEntidad();\r\n\t\t\t\t// Indicaciones por idioma Conexion de Vuelta\r\n\t\t\t\toConexionNodos.IDIOMAS.forEach(CONEXION_NODOS_IDIOMA => {\r\n\t\t\t\t\tCONEXION_NODOS_IDIOMA.Indicacion = that.translate.instant('Mapas.sinindicaciones');\r\n\t\t\t\t\tif (CONEXION_NODOS_IDIOMA.IDIOMA.Default) {\r\n\t\t\t\t\t\toConexionNodos.Indicacion = CONEXION_NODOS_IDIOMA.Indicacion ? CONEXION_NODOS_IDIOMA.Indicacion : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t//oConexionNodos.CoordenadasCamino = null;\r\n\t\t\t\tif (esPortal) {\r\n\t\t\t\t\toConexionNodos.CoordenadasCamino = '[]';\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\toConexionNodos.CoordenadasCamino = JSON.stringify([[that.tramoNodoDestino.getX(), that.tramoNodoDestino.getY()], [that.tramoNodoOrigen.getX(), that.tramoNodoOrigen.getY()]]);\r\n\t\t\t\t}\r\n\t\t\t\t// A la conexion de vuelta no le asignamos ruta grafica\r\n\t\t\t\toConexionNodos.IdNodoOrigen = that.tramoNodoDestino.getId();\r\n\t\t\t\toConexionNodos.IdNodoDestino = that.tramoNodoOrigen.getId();\r\n\t\t\t\toConexionNodos.CortadoTemporalmente = false;\r\n\t\t\t\tpesosConexionVuelta.forEach(elemento => {\r\n\t\t\t\t\toConexionNodos.PESO_CONEXIONS.push(elemento);\r\n\t\t\t\t});\r\n\t\t\t\treturn that.entityManagerProvider.saveChanges();\r\n\t\t\t})\r\n\t\t\t.then(function(msg) {\r\n\r\n\t\t\t\tconst aux_1 = msg.entities.filter(x => x.constructor.name.split('__UBIMAPS', 2)[0] === 'CONEXION_NODOS')[0]; // msg.entities[msg.entities.length - 1];\r\n\t\t\t\tconst aux_2 = msg.entities.filter(x => x.constructor.name.split('__UBIMAPS', 2)[0] === 'CONEXION_NODOS')[1]; //\r\n\t\t\t\tconsole.log(aux_1)\r\n\t\t\t\tconsole.log(aux_2)\r\n\t\t\t\t// Conexion Ida\r\n\t\t\t\tconst conexion_ida = aux_1;\r\n\t\t\t\tconsole.log(conexion_ida)\r\n\t\t\t\tconst coordenadasCamino: Array> = (!conexion_ida.CoordenadasCamino ? null : JSON.parse(conexion_ida.CoordenadasCamino));\r\n\t\t\t\tconst conexionPlano = new ConexionPlano(conexion_ida.Id, coordenadasCamino, conexion_ida.IdNodoOrigen, conexion_ida.IdNodoDestino, conexion_ida.NodoOrigen.SECCION.ALA.PuntosConexionScale, conexion_ida.NodoOrigen.SECCION.ALA.ConexionScale);\r\n\t\t\t\tconexionPlano.ENTIDAD = conexion_ida;\r\n\t\t\t\t// Conexion Vuelta\r\n\t\t\t\tconst conexion_vuelta = aux_2;\r\n\t\t\t\tconsole.log(conexion_vuelta)\r\n\t\t\t\tconst coordenadasCaminoVuelta: Array> = (!conexion_vuelta.CoordenadasCamino ? null : JSON.parse(conexion_vuelta.CoordenadasCamino));\r\n\t\t\t\tconst conexionPlanoVuelta = new ConexionPlano(conexion_vuelta.Id, coordenadasCaminoVuelta, conexion_vuelta.IdNodoOrigen, conexion_vuelta.IdNodoDestino, conexion_vuelta.NodoOrigen.SECCION.ALA.PuntosConexionScale, conexion_vuelta.NodoOrigen.SECCION.ALA.ConexionScale);\r\n\t\t\t\tconexionPlanoVuelta.ENTIDAD = conexion_vuelta;\r\n\r\n\t\t\t\t// Pintar nueva conexion en plano\r\n\t\t\t\tthat.links.push(conexionPlano);\r\n\t\t\t\t//that.links.push(conexionPlanoVuelta);\r\n\t\t\t\tthat.asignarLinks(that.links);\r\n\t\t\t\tthat.mapLinks.set(conexion_ida.Id, conexionPlano);\r\n\r\n\t\t\t\t// Preparar Formulario Para Edicion\r\n\r\n\t\t\t\tthat.estadoEdicion = 'TRAMO_SELEC';\r\n\t\t\t\tthat.displayDialogEditarConexion = true;\r\n\t\t\t\tthat.msgs = [];\r\n\r\n\t\t\t\tlet nodo_destino;\r\n\t\t\t\tlet nodo_origen;\r\n\t\t\t\tif (esPortal) {\r\n\t\t\t\t\tnodo_destino = that.tramoNodoDestino;\r\n\t\t\t\t\tnodo_origen = that.tramoNodoOrigen;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tnodo_destino = that.mapNodes.get(conexionPlano.getIdNodoDestino());\r\n\t\t\t\t\tnodo_origen = that.mapNodes.get(conexionPlano.getIdNodoOrigen());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthat.conexionEdicion = new ConexionFormulario().fromConexionPlano(\r\n\t\t\t\t\tconexionPlano,\r\n\t\t\t\t\tnodo_origen,\r\n\t\t\t\t\tnodo_destino\r\n\t\t\t\t);\r\n\t\t\t\tthat.conexionEdicionVuelta = new ConexionFormulario().fromConexionPlano(\r\n\t\t\t\t\tconexionPlanoVuelta,\r\n\t\t\t\t\tconexionPlanoVuelta.nodoOrigen,\r\n\t\t\t\t\tconexionPlanoVuelta.nodoDestino\r\n\t\t\t\t);\r\n\r\n\t\t\t\tnodo_origen.conexiones.push(conexionPlano);\r\n\t\t\t\tnodo_origen.conexiones.push(conexionPlanoVuelta);\r\n\t\t\t\tnodo_destino.conexiones.push(conexionPlano);\r\n\t\t\t\tnodo_destino.conexiones.push(conexionPlanoVuelta);\r\n\t\t\t\tthat.mapNodes.set(nodo_origen.getId(), nodo_origen);\r\n\t\t\t\tthat.mapNodes.set(nodo_destino.getId(), nodo_destino);\r\n\t\t\t\tthat.conexionEdicion.CONEXION_PLANO.setMostrarConectores(true);\r\n\t\t\t\tthat.resaltarConexionSeleccionada(that.conexionEdicion.Id);\r\n\r\n\t\t\t\tthat.nodoEdicion = new NodoFormulario().fromNodoPlano(nodo_origen);\r\n\r\n\t\t\t\t// Ocultar Spinner\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\r\n\t\t\t\tthat.tramoNodoOrigen = null;\r\n\t\t\t\tthat.tramoNodoDestino = null;\r\n\t\t\t\t// that.estadoEdicion = '';\r\n\t\t\t\tthat.appComponent.showSuccess(that.translate.instant('Mapas.nuevaconexionok'));\r\n\t\t\t\treturn msg;\r\n\t\t\t})\r\n\t\t\t.catch(function(e) {\r\n\t\t\t\tthat.spinner.style.display = 'none';\r\n\t\t\t\tthat.tramoNodoOrigen = null;\r\n\t\t\t\tthat.tramoNodoDestino = null;\r\n\t\t\t\tthat.estadoEdicion = '';\r\n\t\t\t\tthat.appComponent.showError(that.translate.instant('Mapas.nuevaconexionerror') + e.toString());\r\n\t\t\t\tconsole.log('Exception: ' + e.toString());\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsetTransparenciaCapa(transparencias: { secciones: number, nodos: number, conexiones: number, contenidos: number, Balizas: number, Notificaciones: number}){\r\n\t\t// { secciones: 1, nodos: 1, conexiones: 1, contenidos: 1, Balizas: 1}\r\n\r\n\t\tthis.sectionsOpacity = transparencias.secciones;\r\n\t\tthis.nodesOpacity = transparencias.nodos;\r\n\t\tthis.linksOpacity = transparencias.conexiones;\r\n\t\tthis.contentsOpacity = transparencias.contenidos;\r\n\t\tthis.beaconsOpacity = transparencias.Balizas;\r\n\t\tthis.notificationsOpacity = transparencias.Notificaciones;\r\n\r\n\t\t// TODO: Quitar cuando meta el Opacidad de beacons en el componente plano\r\n\t\t// this.mostrarBalizas = this.beaconsOpacity === 1 ? true : false;\r\n\r\n\t}\r\n\r\n\tready(error, plano, compass, svg) {\r\n\t\t/*\r\n\t\tsvg.on('click', function(d) {\r\n\t\t const mp_click = D3.mouse(plano.g.node());\r\n\t\t const scale = plano.zoom._scale;\r\n\t\t console.log('CLICK PIXELS = ' + mp_click);\r\n\t\t console.log('CLICK LL = ' + plano.projection.invert(mp_click));\r\n\t\t});\r\n\t\t*/\r\n\t\t// // // // // // // /\r\n\t\tplano.recalcular_referencia();\r\n\t\tplano.crear_proyeccion();\r\n\t\tcompass.create(svg);\r\n\t\tcompass.rotate(-plano.rotation);\r\n\t\tplano.habilitar_zoom([0.1, 30], function (ev) {\r\n\t\t\tcompass.rotate(plano.manual_rotation + -plano.rotation);\r\n\t\t});\r\n\t\t// mthat.plano.habilitar_rotacion();\r\n\t\t// // // // // // // //\r\n\t\tlet pp = 0;\r\n\t\tconst gc = plano.g.append('g');\r\n\t\tgc.selectAll('.puntos')\r\n\t\t\t.data(plano.referencia.geojson.features)\r\n\t\t\t.enter()\r\n\t\t\t.append('path')\r\n\t\t\t.attr('class', function (d) { return 'puntos ' + 'manz-' + d.id; })\r\n\t\t\t.attr('d', plano.path)\r\n\t\t\t.style('fill', function (d) { pp++; return pp === 1 ? 'red' : 'red'; });\r\n\t\t// // // // // /\r\n\t\tthis.alaSeleccionada.SECCIONS.array.forEach(seccion => {\r\n\t\t\tseccion.NODOS.array.forEach(nodo => {\r\n\t\t\t\tconst icono = 'wifi.png';\r\n\t\t\t\t// this.plano.odo(nodo.X, nodo.Y, 'assets/planos/iconos/' + icono);\r\n\t\t\t\t// plano.append_circle(gc, nodo.X, nodo.Y, 'orange');\r\n\t\t\t});\r\n\t\t});\r\n\t\t/*\r\n\t\tplano.append_circle_ll(gc, -6.278026914722838, 36.509577494026765, 'orange');\r\n\t\tplano.append_circle_ll(gc, -6.2779188, 36.5097578, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.2779670, 36.5084507, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.2776212, 36.5082182, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.2785418, 36.5095343, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.2771698, 36.5086732, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.278466, 36.509346, 'green');\r\n\t\tplano.append_circle_ll(gc, -6.277311, 36.508348, 'green');\r\n\t\t*/\r\n\t\tconsole.log('PROJECTED = ' + plano.projection([-6.278026914722838, 36.509577494026765]));\r\n\t\tplano.append_circle_ll(gc, plano.referencia.p_0.longitud, plano.referencia.p_0.latitud + 0.0001, 'blue');\r\n\t\tplano.append_circle_ll(gc, plano.referencia.p_0.longitud, plano.referencia.p_0.latitud + 0.0002, 'blue');\r\n\t\tplano.autoajustar_zoom();\r\n\t\treturn;\r\n\t}\r\n\tresaltarConexionSeleccionada(id?){\r\n\t\tthis.opacidad = 1;\r\n\t\tif (id){\r\n\t\t\tthis.opacidad = 0.2;\r\n\t\t\t// Desmarcamos todas las conexiones\r\n\t\t\tthis.mapLinks.forEach((value: ConexionPlano, key: string) => {\r\n\t\t\t\tif (value.ENTIDAD && value.ENTIDAD.CortadoTemporalmente){\r\n\t\t\t\t\t// value.fill = Constantes.conexionFill_CORTADO;\r\n\t\t\t\t\tvalue.stroke = Constantes.conexionStroke_CORTADO;\r\n\t\t\t\t\tvalue.strokeWidth = Constantes.conexionStrokeWidth_CORTADO;\r\n\t\t\t\t\tvalue.lineHoverStroke = Constantes.conexionsymbolHoverStroke_CORTADO;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t// value.fill = Constantes.conexionFill;\r\n\t\t\t\t\tvalue.stroke = Constantes.conexionStroke;\r\n\t\t\t\t\tvalue.strokeWidth = Constantes.conexionStrokeWidth;\r\n\t\t\t\t\tvalue.lineHoverStroke = Constantes.conexionsymbolHoverStroke;\r\n\t\t\t\t}\r\n\t\t\t\tthis.mapLinks.set(key, value);\r\n\t\t\t});\r\n\t\t\t// Marcamos la nueva Conexion seleccionada\r\n\t\t\tconst conexionP = this.mapLinks.get(id);\r\n\t\t\t// conexionP.fill = Constantes.conexionFill_SELECT;\r\n\t\t\tconexionP.stroke = Constantes.conexionStroke_SELECT;\r\n\t\t\tconexionP.strokeWidth = Constantes.conexionStrokeWidth_SELECT;\r\n\t\t\tconexionP.lineHoverStroke = Constantes.conexionsymbolHoverStroke_SELECT;\r\n\t\t\tthis.mapLinks.set(id, conexionP);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Desmarcamos todas las conexiones\r\n\t\t\tthis.mapLinks.forEach((value: ConexionPlano, key: string) => {\r\n\t\t\t\tif (value.ENTIDAD && value.ENTIDAD.CortadoTemporalmente){\r\n\t\t\t\t\t// value.fill = Constantes.conexionFill_CORTADO;\r\n\t\t\t\t\tvalue.stroke = Constantes.conexionStroke_CORTADO;\r\n\t\t\t\t\tvalue.strokeWidth = Constantes.conexionStrokeWidth_CORTADO;\r\n\t\t\t\t\tvalue.lineHoverStroke = Constantes.conexionsymbolHoverStroke_CORTADO;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t// value.fill = Constantes.conexionFill;\r\n\t\t\t\t\tvalue.stroke = Constantes.conexionStroke;\r\n\t\t\t\t\tvalue.strokeWidth = Constantes.conexionStrokeWidth;\r\n\t\t\t\t\tvalue.lineHoverStroke = Constantes.conexionsymbolHoverStroke;\r\n\t\t\t\t}\r\n\t\t\t\tthis.mapLinks.set(key, value);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setTransparenciaCapa({ secciones: this.opacidad, nodos: this.opacidad, conexiones: 1, contenidos: this.opacidad, Balizas: this.opacidad, Notificaciones: this.opacidad});\r\n\t}\r\n\tresaltarNodoSeleccionado(id?){\r\n\t\tthis.opacidad = 1;\r\n\t\tif (id){\r\n\t\t\tthis.opacidad = 0.2;\r\n\t\t\t// Desmarcamos todos los Nodos\r\n\t\t\tthis.mapNodes.forEach((value: NodoPlano, key: string) => {\r\n\t\t\t\tvalue.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\tvalue.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\tvalue.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\tvalue.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\tvalue.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\tvalue.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\tvalue.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\tvalue.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\tvalue.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\tvalue.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\tthis.mapNodes.set(key, value);\r\n\t\t\t});\r\n\t\t\t// Marcamos el nuevo Nodo seleccionada\r\n\t\t\tconst nodoPlano = this.mapNodes.get(id);\r\n\t\t\tnodoPlano.symbolStroke = Constantes.nodoSymbolStroke_SELECT;\r\n\t\t\tnodoPlano.symbolFill = Constantes.nodoSymbolFill_SELECT;\r\n\t\t\tnodoPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth_SELECT;\r\n\t\t\tnodoPlano.sectionHoverFill = Constantes.nodoSectionHoverFill_SELECT;\r\n\t\t\tnodoPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke_SELECT;\r\n\t\t\tnodoPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\tnodoPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\tnodoPlano.symbolSize = Constantes.nodoSymbolSize_SELECT;\r\n\t\t\tnodoPlano.setIconHeight(Constantes.nodoIconHeight_SELECT);\r\n\t\t\tnodoPlano.setIconWidth(Constantes.nodoIconWidth_SELECT);\r\n\t\t\tthis.mapNodes.set(id, nodoPlano);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Desmarcamos todos los Nodos\r\n\t\t\tthis.mapNodes.forEach((value: NodoPlano, key: string) => {\r\n\t\t\t\tvalue.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\t\tvalue.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\t\tvalue.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\t\tvalue.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\t\tvalue.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\t\tvalue.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\t\tvalue.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\t\tvalue.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\t\tvalue.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\t\tvalue.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\t\tthis.mapNodes.set(key, value);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setTransparenciaCapa({ secciones: this.opacidad, nodos: 1, conexiones: this.opacidad, contenidos: this.opacidad, Balizas: 1, Notificaciones: this.opacidad});\r\n\t}\r\n\tdesmarcarBalizas(){\r\n\t\tconsole.log('Desmarcamos todas las Balizas');\r\n\t\tconst auxArray = [];\r\n\t\tthis.mapBeacons.forEach((value: BeaconPlano, key: string) => {\r\n\t\t\tvalue.symbolStroke = Constantes.nodoSymbolStroke;\r\n\t\t\tvalue.symbolFill = Constantes.nodoSymbolFill;\r\n\t\t\tvalue.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth;\r\n\t\t\tvalue.sectionHoverFill = Constantes.nodoSectionHoverFill;\r\n\t\t\tvalue.sectionHoverStroke = Constantes.nodoSectionHoverStroke;\r\n\t\t\tvalue.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\t\tvalue.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\t\tvalue.symbolSize = Constantes.nodoSymbolSize;\r\n\t\t\tvalue.setIconHeight(Constantes.nodoIconHeight);\r\n\t\t\tvalue.setIconWidth(Constantes.nodoIconWidth);\r\n\t\t\tthis.mapBeacons.set(key, value);\r\n\t\t\tauxArray.push(value);\r\n\t\t});\r\n\r\n\t\tthis.asignarBeacons(auxArray);\r\n\t\tthis.setTransparenciaCapa({ secciones: 1, nodos: 1, conexiones: 1, contenidos: 1, Balizas: 1, Notificaciones: this.opacidad});\r\n\t}\r\n\tresaltarBalizasSeleccionadas(){\r\n\r\n\t\t// Desmarcamos todas las balizas\r\n\t\tthis.desmarcarBalizas();\r\n\r\n\t\t// Marcamos las Balizas a Resaltar\r\n\t\tthis.balizasResaltar.forEach(element => {\r\n\t\t\tthis.resaltarBaliza(element.getId());\r\n\t\t});\r\n\t}\r\n\tresaltarBaliza(id){\r\n\t\tthis.opacidad = 0.2;\r\n\t\tconsole.log('Marcamos la Baliza: ' + id);\r\n\t\tconst beaconPlano = this.mapBeacons.get(id);\r\n\t\tbeaconPlano.symbolStroke = Constantes.nodoSymbolStroke_SELECT;\r\n\t\tbeaconPlano.symbolFill = Constantes.nodoSymbolFill_SELECT;\r\n\t\tbeaconPlano.symbolStrokeWidth = Constantes.nodoSymbolStrokeWidth_SELECT;\r\n\t\tbeaconPlano.sectionHoverFill = Constantes.nodoSectionHoverFill_SELECT;\r\n\t\tbeaconPlano.sectionHoverStroke = Constantes.nodoSectionHoverStroke_SELECT;\r\n\t\tbeaconPlano.symbolHoverFill = Constantes.nodosymbolHoverFill;\r\n\t\tbeaconPlano.symbolHoverStroke = Constantes.nodosymbolHoverStroke;\r\n\t\tbeaconPlano.symbolSize = Constantes.nodoSymbolSize_SELECT;\r\n\t\tbeaconPlano.setIconHeight(Constantes.nodoIconHeight_SELECT);\r\n\t\tbeaconPlano.setIconWidth(Constantes.nodoIconWidth_SELECT);\r\n\t\tthis.mapBeacons.set(id, beaconPlano);\r\n\r\n\t\tthis.setTransparenciaCapa({ secciones: this.opacidad, nodos: 1, conexiones: this.opacidad, contenidos: this.opacidad, Balizas: 1, Notificaciones: this.opacidad});\r\n\r\n\t\tconst auxArray = [];\r\n\t\tthis.mapBeacons.forEach((value: BeaconPlano, key: string) => {\r\n\t\t\tauxArray.push(value);\r\n\t\t});\r\n\r\n\t\tthis.asignarBeacons(auxArray);\r\n\t}\r\n\tresaltarSeccionSeleccionado(id?){\r\n\t\tthis.opacidad = 1;\r\n\t\tif (id){\r\n\t\t\tthis.opacidad = 0.2;\r\n\t\t\t// Desmarcamos todas las seccionPlano\r\n\t\t\tthis.mapSections.forEach((value: SeccionPlano, key: string) => {\r\n\t\t\t\tconst arrayColor = value.ENTIDAD.Color.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3]};\r\n\t\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + objetoColor.a + ')';\r\n\t\t\t\t// Relleno Seccion\r\n\t\t\t\tvalue.fill = value.ENTIDAD.Color;\t\t// Reposo\r\n\t\t\t\tvalue.hoverFill = seccionHoverColor;\t// Hover\r\n\t\t\t\t// Arista Seccion\r\n\t\t\t\tvalue.stroke = value.ENTIDAD.Color;\t\t\t\t\t// Reposo\r\n\t\t\t\tvalue.hoverStroke = Constantes.seccionHoverStroke;\t// Hover\r\n\t\t\t\t// Ancho\r\n\t\t\t\tvalue.strokeWidth = Constantes.seccionStrokeWidth;\r\n\t\t\t\tthis.mapSections.set(key, value);\r\n\t\t\t});\r\n\t\t\t// Marcamos la seccionPlano seleccionada\r\n\t\t\tconst seccionPlano = this.mapSections.get(id);\r\n\t\t\tseccionPlano.stroke = Constantes.seccionStroke_SELECT;\r\n\t\t\tseccionPlano.fill = Constantes.seccionFill_SELECT;\r\n\t\t\tseccionPlano.strokeWidth = Constantes.seccionStrokeWidth_SELECT;\r\n\t\t\tseccionPlano.hoverFill = Constantes.seccionHoverFill;\r\n\t\t\tseccionPlano.hoverStroke = Constantes.seccionHoverStroke;\r\n\t\t\tthis.mapSections.set(id, seccionPlano);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Desmarcamos todas las conexiones\r\n\t\t\tthis.mapSections.forEach((value: SeccionPlano, key: string) => {\r\n\t\t\t\t// Si no tiene color le seteamos uno gris por defecto\r\n\t\t\t\tif (value.ENTIDAD.Color === null) {\r\n\t\t\t\t\tvalue.ENTIDAD.Color = 'rgba(255, 255, 255, 0.5)';\r\n\t\t\t\t}\r\n\t\t\t\tconst arrayColor = value.ENTIDAD.Color.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColor = {r: arrayColor[0], g: arrayColor[1], b: arrayColor[2], a: arrayColor[3]};\r\n\t\t\t\tconst arrayColorHover = Constantes.seccionHoverFill.split('rgba(')[1].split(')')[0].split(',');\r\n\t\t\t\tconst objetoColorHover = {r: arrayColorHover[0], g: arrayColorHover[1], b: arrayColorHover[2], a: arrayColorHover[3]};\r\n\t\t\t\t// Creamos el color hover de la seccion con el alfa del color de la seccion en reposo\r\n\t\t\t\tconst seccionHoverColor = 'rgba(' + objetoColorHover.r + ',' + objetoColorHover.g + ',' + objetoColorHover.b + ',' + objetoColor.a + ')';\r\n\t\t\t\t// Relleno Seccion\r\n\t\t\t\tvalue.fill = value.ENTIDAD.Color;\t\t// Reposo\r\n\t\t\t\tvalue.hoverFill = seccionHoverColor;\t// Hover\r\n\t\t\t\t// Arista Seccion\r\n\t\t\t\tvalue.stroke = value.ENTIDAD.Color;\t\t\t\t\t// Reposo\r\n\t\t\t\tvalue.hoverStroke = Constantes.seccionHoverStroke;\t// Hover\r\n\t\t\t\t// Ancho\r\n\t\t\t\tvalue.strokeWidth = Constantes.seccionStrokeWidth;\r\n\r\n\t\t\t\tthis.mapSections.set(key, value);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.setTransparenciaCapa({ secciones: 1, nodos: this.opacidad, conexiones: this.opacidad, contenidos: this.opacidad, Balizas: this.opacidad, Notificaciones: this.opacidad});\r\n\r\n\t}\r\n\tresaltarContenidoSeleccionado(id?){\r\n\t\tthis.opacidad = 1;\r\n\t\tif (id){\r\n\t\t\tthis.opacidad = 0.2;\r\n\t\t\t// Desmarcamos todos los Contenidos\r\n\t\t\tthis.mapContents.forEach((value: ContenidoPlano, key: string) => {\r\n\t\t\t\tif (value.ENTIDAD.TIPOLOGIA_CONTENIDO.VisibilidadIconoMapa) {\r\n\t\t\t\t\tvalue.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\t\tvalue.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\t\tvalue.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\t\tvalue.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\t\tvalue.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\t\tvalue.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\t\tvalue.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\t\tvalue.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\t\tvalue.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\t\tvalue.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\t\tthis.mapContents.set(key, value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// Marcamos el nuevo Contenido seleccionad0\r\n\t\t\tconst contenidoPlano = this.mapContents.get(id);\r\n\t\t\tif (contenidoPlano.ENTIDAD.TIPOLOGIA_CONTENIDO.VisibilidadIconoMapa) {\r\n\t\t\t\tcontenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke_SELECT;\r\n\t\t\t\tcontenidoPlano.symbolFill = Constantes.contenidoSymbolFill_SELECT;\r\n\t\t\t\tcontenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth_SELECT;\r\n\t\t\t\tcontenidoPlano.symbolSize = Constantes.contenidoSymbolSize_SELECT;\r\n\t\t\t\tcontenidoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\tcontenidoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\tcontenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill_SELECT;\r\n\t\t\t\tcontenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke_SELECT;\r\n\t\t\t\tcontenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\tcontenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\tthis.mapContents.set(id, contenidoPlano);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Desmarcamos todos los Contenidos\r\n\t\t\tthis.mapContents.forEach((value: ContenidoPlano, key: string) => {\r\n\t\t\t\tif (value.ENTIDAD.TIPOLOGIA_CONTENIDO.VisibilidadIconoMapa) {\r\n\t\t\t\t\tvalue.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\t\tvalue.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\t\tvalue.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\t\tvalue.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\t\tvalue.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\t\tvalue.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\t\tvalue.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\t\tvalue.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\t\tvalue.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\t\tvalue.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\t\tthis.mapContents.set(key, value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.setTransparenciaCapa({ secciones: this.opacidad, nodos: this.opacidad, conexiones: this.opacidad, contenidos: 1, Balizas: this.opacidad, Notificaciones: this.opacidad});\r\n\t}\r\n\r\n\t/* ** Visibilidad Capas ** */\r\n\tmenuVisibilidadCommand(comando) {\r\n\t\tconsole.log(comando)\r\n\t\tif (comando.item.id === 'SECCIONES') {\r\n\t\t\tthis.mostrarSecciones = !this.mostrarSecciones;\r\n\t\t\tif (!this.mostrarSecciones) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarSecciones: ' + this.mostrarSecciones);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'NODOS') {\r\n\t\t\tthis.mostrarNodos = !this.mostrarNodos;\r\n\t\t\tif (!this.mostrarNodos) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarNodos: ' + this.mostrarNodos);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'TRAMOS') {\r\n\t\t\tthis.mostrarTramos = !this.mostrarTramos;\r\n\t\t\tif (!this.mostrarTramos) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarTramos: ' + this.mostrarTramos);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'CONTENIDOS') {\r\n\t\t\tthis.mostrarContenidos = !this.mostrarContenidos;\r\n\t\t\tif (!this.mostrarContenidos) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarContenidos: ' + this.mostrarContenidos);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'BALIZAS') {\r\n\t\t\tthis.mostrarBalizas = !this.mostrarBalizas;\r\n\t\t\tif (!this.mostrarBalizas) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarBalizas: ' + this.mostrarBalizas);\r\n\t\t}\r\n\t\telse if (comando.item.id === 'NOTIFICACIONES'){\r\n\t\t\tthis.mostrarNotificaciones = !this.mostrarNotificaciones;\r\n\t\t\tif (!this.mostrarNotificaciones) {\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-ocultar iticon-px32';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcomando.item.icon = 'iticon-tab-mostrar iticon-px32';\r\n\t\t\t}\r\n\t\t\tconsole.log('mostrarNotificaciones: ' + this.mostrarNotificaciones);\r\n\t\t}\r\n\t}\r\n\r\n\t/* ** MINIMIZAR FORMULARIOS ** */\r\n\tminimizarNodo($event, Formulario){\r\n\t\tconsole.log(Formulario);\r\n\t\tconsole.log($event);\r\n\t\tthis.formularioNodoMaximizado = !this.formularioNodoMaximizado;\r\n\t}\r\n\tminimizarSeccion($event, Formulario){\r\n\t\tconsole.log(Formulario);\r\n\t\tconsole.log($event);\r\n\t\tthis.formularioSeccionMaximizado = !this.formularioSeccionMaximizado;\r\n\t}\r\n\tminimizarConexion($event, Formulario){\r\n\t\tconsole.log(Formulario);\r\n\t\tconsole.log($event);\r\n\t\tthis.formularioConexionMaximizado = !this.formularioConexionMaximizado;\r\n\t}\r\n\r\n\t/* Plano Nodo Portal */\r\n\tonAlaPortalChange($event){\r\n\t\tconsole.log('*** Planoha cambiado a ' + $event.Nomobre + ' ***');\r\n\t\tthis.alaSeleccionada = $event.ENTIDAD;\r\n\t\tthis.cargarPlano();\r\n\t}\r\n\r\n\t/* ***** RECALCULAR ASIGNACION de Nodos a Secciones Modificadas ***** */\r\n\tpublic reasignarNodo(Nodo: any) {\r\n\t\tlet seccionDetectada;\r\n\t\t// const contentPlano = this.mapContents.get(contenido.id);\r\n\t\tconsole.log(Nodo.X + ' , ' + Nodo.Y);\r\n\t\t// Calcular la nueva seccion...\r\n\t\tseccionDetectada = this.seccionDefecto;\r\n\t\tthis.sections.forEach((seccionPlano: SeccionPlano) => {\r\n\t\t\tif (seccionPlano.getCoordenadasPoligono()) {\r\n\t\t\t\tif (this.pointInPolygon([Nodo.X as number, Nodo.Y as number], seccionPlano.getCoordenadasPoligono())) {\r\n\t\t\t\t\tseccionDetectada = seccionPlano.ENTIDAD;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tNodo.IdSeccion = seccionDetectada.Id;\r\n\t\tNodo.NombreSeccion = seccionDetectada.Nombre;\r\n\t\tNodo.IdSeccion = seccionDetectada.Id;\r\n\t\treturn this.entityManagerProvider.saveChanges();\r\n\t}\r\n\r\n\tpublic reasignarNodosSeccion(seccionFormulario: SeccionFormulario){\r\n\t\tthis.contenidosFormulario.forEach(contenido => {\r\n\t\t\tthis.isContenidoEnSeccion(contenido, seccionFormulario);\r\n\t\t});\r\n\t\tconst nodosSeccionAntesEditar: NodoFormulario[] = [];\r\n\t\tconst nodosQuitadosSeccionTrasEdita: NodoFormulario[] = [];\r\n\t\tconst nodosPermanecenSeccionTrasEditar: NodoFormulario[] = [];\r\n\t\tconst nodosEnSeccionTrasEditar: NodoFormulario[] = [];\r\n\t\tconst nodosNuevosSeccionTrasEditar: NodoFormulario[] = [];\r\n\t\tseccionFormulario.ENTIDAD.NODOS.forEach((value: any) => {\r\n\t\t\tconst nodo = new NodoFormulario().fromENTIDAD(value);\r\n\t\t\tnodosSeccionAntesEditar.push(nodo);\r\n\t\t\tconst esta = this.isNodoEnSeccion(nodo, seccionFormulario);\r\n\t\t\tif (!esta) {\r\n\t\t\t\tnodosQuitadosSeccionTrasEdita.push(nodo);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tnodosPermanecenSeccionTrasEditar.push(nodo);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.mapNodes.forEach((value: NodoPlano, key: string) => {\r\n\t\t\tconst nodo = new NodoFormulario().fromNodoPlano(value);\r\n\t\t\tconst esta = this.isNodoEnSeccion(nodo, seccionFormulario);\r\n\t\t\tif (esta) {\r\n\t\t\t\tnodosEnSeccionTrasEditar.push(nodo);\r\n\t\t\t}\r\n\t\t});\r\n\t\tnodosEnSeccionTrasEditar.forEach(nodo => {\r\n\t\t\tconst encontrado = nodosSeccionAntesEditar.find( x => x.ENTIDAD.Id === nodo.ENTIDAD.Id);\r\n\t\t\tif (!encontrado) {\r\n\t\t\t\tnodosNuevosSeccionTrasEditar.push(nodo);\r\n\t\t\t}\r\n\t\t});\r\n\t\tconsole.log('NODOS Eliminados');\r\n\t\tnodosQuitadosSeccionTrasEdita.forEach(nodo => {\r\n\t\t\tconsole.log('NODO: ' + nodo.Nombre + ' Esta dentro de: ' + seccionFormulario.Nombre);\r\n\t\t\t// Si se ha sacado un nodo de la seccion lo asignamos a la seccion por defecto\r\n\t\t\tnodo.ENTIDAD.IdSeccion = this.seccionDefecto.Id;\r\n\t\t});\r\n\r\n\t\tconsole.log('NODOS Añadidos');\r\n\t\tnodosNuevosSeccionTrasEditar.forEach(nodo => {\r\n\t\t\tconsole.log('NODO: ' + nodo.Nombre + ' Esta dentro de: ' + seccionFormulario.Nombre);\r\n\t\t\t// Agregamos los nuevos nodos a la seccion si estaban asignados a la seccion default\r\n\t\t\tif (nodo.ENTIDAD.IdSeccion = this.seccionDefecto.Id) {\r\n\t\t\t\tnodo.ENTIDAD.IdSeccion = this.mapSections.get(seccionFormulario.ENTIDAD.Id).getId();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.entityManagerProvider.saveChanges()\r\n\t\t.then(function(msg){\r\n\t\t\tconsole.log(msg);\r\n\t\t})\r\n\t\t.catch(function(msg){\r\n\t\t\tconsole.log(msg);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic reasignarContenidosSeccion(seccionFormulario: SeccionFormulario){\r\n\t\tconsole.log('TODO: reasignarContenidosSeccion()');\r\n\t\t// this.contenidosFormulario.forEach(contenido => {\r\n\t\t// \tthis.isContenidoEnSeccion(contenido, seccionFormulario);\r\n\t\t// });\r\n\t}\r\n\r\n\tpublic isContenidoEnSeccion(contenido: Contenido, seccion: SeccionFormulario): boolean{\r\n\t\tconst inside = require('point-in-polygon');\r\n\t\tconst polygon = JSON.parse(seccion.ENTIDAD.CoordenadasPoligono);\r\n\t\tconst dentro = inside([ contenido.X, contenido.Y ], polygon);\r\n\t\t// if (dentro) { console.log('CONTENIDO: ' + contenido.Titulo + ' Esta dentro de: ' + seccion.Nombre); }\r\n\t\treturn dentro;\r\n\t}\r\n\tpublic isNodoEnSeccion(nodo: NodoFormulario, seccion: SeccionFormulario): boolean{\r\n\t\tconst inside = require('point-in-polygon');\r\n\t\tconst polygon = JSON.parse(seccion.ENTIDAD.CoordenadasPoligono);\r\n\t\tconst dentro = inside([ nodo.X, nodo.Y ], polygon);\r\n\t\t// if (dentro) { console.log('NODO: ' + nodo.Nombre + ' Esta dentro de: ' + seccion.Nombre); }\r\n\t\treturn dentro;\r\n\t}\r\n\t/* ***** RECALCULAR ASIGNACION DE CONTENIDO ***** */\r\n\tpublic reasignarContenidos() {\r\n\t\tconsole.log('***** RECALCULAR ASIGNACION DE CONTENIDO ***** ');\r\n\t\tthis.contents.forEach(contenido => {\r\n\t\t\tthis.reasignarContenido(contenido);\r\n\t\t});\r\n\t\tthis.entityManagerProvider.saveChanges();\r\n\t}\r\n\tpublic reasignarContenido(contenido) {\r\n\t\tconsole.log('');\r\n\t\tconsole.log('Contenido: ' + contenido.nombre);\r\n\t\tconsole.log('---------------------------------');\r\n\t\tconst click_X = contenido.getX();\r\n\t\tconst click_Y = contenido.getY();\r\n\t\tconst seccionDetectada = this.detectarSeccion(contenido);\r\n\t\tconst nodosSeccionDetectada = seccionDetectada ? seccionDetectada.NODOS : [];\r\n\t\tconst nodoMasCercano = this.detectarNodoCercano(contenido, nodosSeccionDetectada);\r\n\t\tif (seccionDetectada && nodoMasCercano) {\r\n\t\t\tconsole.log('Seccion Seleccionada: ' + seccionDetectada.Nombre);\r\n\t\t\tif (contenido.ENTIDAD.SECCIONES.length > 0) {\r\n\t\t\t\t// Cogemos la seccion que fue asignada al posicionar el contenido por medio del nodo\r\n\t\t\t\tconst nodoAntiguo = contenido.ENTIDAD.NODODS[0].NODO;\r\n\t\t\t\tconst seccionAntigua = nodoAntiguo.SECCION;\r\n\t\t\t\t// Filtrar de las secciones asignadas al contenido la seccionAntigua y cambio la seccion\r\n\t\t\t\tconst seccion_aux = contenido.ENTIDAD.SECCIONES.filter( s => s.IdSeccion === seccionAntigua.Id)[0];\r\n\t\t\t\tif (seccion_aux) {\r\n\t\t\t\t\tseccion_aux.SECCION = seccionDetectada;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t// Si no existia relacion con la seccion anterior asumimos que la numero 0 es la asignada por posicionamiento\r\n\t\t\t\t\tcontenido.ENTIDAD.SECCIONES[0].SECCION = seccionDetectada;\r\n\t\t\t\t}\r\n\t\t\t\t// contenido.ENTIDAD.SECCIONES[0].SECCION = seccionDetectada;\r\n\t\t\t\tconsole.log('Nodo mas Cercano: ' + nodoMasCercano.Nombre);\r\n\t\t\t\tif (contenido.ENTIDAD.NODODS.length > 0) {\r\n\t\t\t\t\tcontenido.ENTIDAD.NODODS[0].NODO = nodoMasCercano;\r\n\t\t\t\t\tcontenido.X = click_X;\r\n\t\t\t\t\tcontenido.Y = click_Y;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tconsole.log('NODO no Asignado -> Contenido: ' + contenido.nombre);\r\n\t\t\t\t\tthis.crearRelacionNodo_has_Contenido(contenido, nodoMasCercano)\r\n\t\t\t\t\t.then(function(NODO_has_CONTENIDO){\r\n\t\t\t\t\t\tcontenido.X = click_X;\r\n\t\t\t\t\t\tcontenido.Y = click_Y;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconsole.log('SECCION Seccion_hasContenido -> Contenido: ' + contenido.nombre);\r\n\t\t\t\tconst that = this;\r\n\t\t\t\tthis.crearRelacionSeccion_has_Contenido(contenido, seccionDetectada)\r\n\t\t\t\t.then(function(SECCION_has_CONTENIDO){\r\n\t\t\t\t\treturn that.crearRelacionNodo_has_Contenido(contenido, nodoMasCercano);\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(NODO_has_CONTENIDO){\r\n\t\t\t\t\tcontenido.X = click_X;\r\n\t\t\t\t\tcontenido.Y = click_Y;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (!seccionDetectada) {\r\n\t\t\t\tconsole.error('No seccionDetectada -> Contenido: ' + contenido.nombre);\r\n\t\t\t}\r\n\t\t\tif (!nodoMasCercano) {\r\n\t\t\t\tconsole.error('No nodoMasCercano -> Contenido: ' + contenido.nombre);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdetectarSeccion(contenido){\r\n\t\tlet seccionDetectada;\r\n\t\tconst click_X = contenido.getX();\r\n\t\tconst click_Y = contenido.getY();\r\n\t\tconsole.log(contenido.X + ' , ' + contenido.Y);\r\n\t\t// Calcular la nueva seccion...\r\n\t\tseccionDetectada = this.seccionDefecto;\r\n\t\tthis.sections.forEach((seccionPlano: SeccionPlano) => {\r\n\t\t\tif (seccionPlano.getCoordenadasPoligono()) {\r\n\t\t\t\tif (this.pointInPolygon([click_X as number, click_Y as number], seccionPlano.getCoordenadasPoligono())) {\r\n\t\t\t\t\tseccionDetectada = seccionPlano.ENTIDAD;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn seccionDetectada;\r\n\t}\r\n\tdetectarNodoCercano(contenido, nodosSeccionDetectada){\r\n\t\tlet nodoMasCercano;\r\n\t\tlet distanciaMinima = Constantes.MAX_PESO;\r\n\t\t// d = sqrt( (x2 - x1)^2 + (y2 - y1)^2 )\r\n\t\tnodosSeccionDetectada.forEach(nodo => {\r\n\t\t\tconst x1 = nodo.X;\r\n\t\t\tconst y1 = nodo.Y;\r\n\t\t\tconst x2 = contenido.getX();\r\n\t\t\tconst y2 = contenido.getY();\r\n\t\t\tconst d = Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) );\r\n\t\t\tconsole.log('--- Distancia a: ' + nodo.Nombre + ' = ' + d);\r\n\t\t\tif (d < distanciaMinima) {\r\n\t\t\t\tdistanciaMinima = d;\r\n\t\t\t\tnodoMasCercano = nodo;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn nodoMasCercano;\r\n\t}\r\n\tcrearRelacionSeccion_has_Contenido(contenido, seccionDetectada){\r\n\t\tconst that = this;\r\n\t\treturn this.entityManagerProvider.newSECCION_has_CONTENIDO()\r\n\t\t.then(function(SECCION_has_CONTENIDO){\r\n\t\t\tconst element = SECCION_has_CONTENIDO;\r\n\t\t\telement.CONTENIDO = contenido.ENTIDAD;\r\n\t\t\telement.IdContenido = contenido.ENTIDAD.Id;\r\n\t\t\telement.SECCION = seccionDetectada;\r\n\t\t\telement.IdSeccion = seccionDetectada.Id;\r\n\t\t\telement.Prioridad = 0;\r\n\t\t\telement.PrioridadDestacado = 0;\r\n\t\t\treturn element;\r\n\t\t});\r\n\t}\r\n\tcrearRelacionNodo_has_Contenido(contenido, nodoMasCercano){\r\n\t\tconst that = this;\r\n\t\treturn this.entityManagerProvider.newNODO_has_CONTENIDO()\r\n\t\t.then(function(NODO_has_CONTENIDO){\r\n\t\t\tconst element = NODO_has_CONTENIDO;\r\n\t\t\telement.CONTENIDO = contenido.ENTIDAD;\r\n\t\t\telement.IdContenido = contenido.ENTIDAD.Id;\r\n\t\t\telement.NODO = nodoMasCercano;\r\n\t\t\telement.IdNodo = nodoMasCercano.Id;\r\n\t\t\treturn element;\r\n\t\t});\r\n\t}\r\n\t/* Inicializadores Elementos PLano */\r\n\tsetContenidoPlano(contenido){\r\n\t\ttry {\r\n\t\t\tlet contenidoPlano;\r\n\t\t\t\r\n\t\t\tif (contenido.TIPOLOGIA_CONTENIDO) {\r\n\t\t\t\tif(contenido.ALA_PLANO){\r\n\t\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, contenido.TIPOLOGIA_CONTENIDO.IconoRepresentacion, [], contenido.ALA_PLANO.IconoContenidoScale);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, contenido.TIPOLOGIA_CONTENIDO.IconoRepresentacion, [], 1);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tconst icono = 'assets/planos/iconos/' + 'wifi.png';\r\n\t\t\t\tif(contenido.ALA_PLANO){\r\n\t\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, icono, [], contenido.ALA_PLANO.IconoContenidoScale);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tcontenidoPlano = new ContenidoPlano(contenido.IdContenido, contenido.Titulo, contenido.X, contenido.Y, icono, [], 1);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconsole.log('5.- NO TIPOLOGIA NODO');\r\n\t\t\t}\r\n\t\t\tcontenidoPlano.ENTIDAD = contenido.ENTIDAD;\r\n\t\t\t// Ancho maximo Limitado\r\n\t\t\t// Nº Lineas maximo\r\n\t\t\t// Elipsis\r\n\t\t\t// hover\r\n\t\t\tif (contenido.TIPOLOGIA_CONTENIDO.VisibilidadIconoMapa) {\r\n\t\t\t\tcontenidoPlano.symbolStroke = Constantes.contenidoSymbolStroke;\r\n\t\t\t\tcontenidoPlano.symbolFill = Constantes.contenidoSymbolFill;\r\n\t\t\t\tcontenidoPlano.symbolStrokeWidth = Constantes.contenidoSymbolStrokeWidth;\r\n\t\t\t\tcontenidoPlano.symbolSize = Constantes.contenidoSymbolSize;\r\n\t\t\t\tcontenidoPlano.symbolHoverFill = Constantes.contenidosymbolHoverFill;\r\n\t\t\t\tcontenidoPlano.symbolHoverStroke = Constantes.contenidosymbolHoverStroke;\r\n\t\t\t\tcontenidoPlano.sectionHoverFill = Constantes.contenidoSectionHoverFill;\r\n\t\t\t\tcontenidoPlano.sectionHoverStroke = Constantes.contenidoSectionHoverStroke;\r\n\t\t\t\tcontenidoPlano.setIconHeight(Constantes.contenidoIconHeight);\r\n\t\t\t\tcontenidoPlano.setIconWidth(Constantes.contenidoIconWidth);\r\n\t\t\t\tcontenidoPlano.setIconAlign(contenido.TIPOLOGIA_CONTENIDO.AnchorPoint);\r\n\t\t\t\t// Posicionamos label\r\n\t\t\t\tconst alineacion = contenido.TIPOLOGIA_CONTENIDO.AnchorPoint;\r\n\t\t\t\tconst width = parseInt(Constantes.contenidoIconWidth, 0);\r\n\t\t\t\tif (alineacion === 'top-left') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + width);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(30);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'top-center') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + (width / 2));\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(30);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'top-right') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(30);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'center-left') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + width);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-15);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'center-center') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + (width / 2));\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-15);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'center-right') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-15);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'bottom-left') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + width);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-30);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'bottom-center') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10 + (width / 2));\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-30);\r\n\t\t\t\t}\r\n\t\t\t\telse if (alineacion === 'bottom-right') {\r\n\t\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextLeft);\r\n\t\t\t\t\tcontenidoPlano.setLabelXoffset(10);\r\n\t\t\t\t\tcontenidoPlano.setLabelYoffset(-30);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcontenidoPlano.symbolStroke = '';\r\n\t\t\t\tcontenidoPlano.symbolFill = '';\r\n\t\t\t\tcontenidoPlano.symbolStrokeWidth = '';\r\n\t\t\t\tcontenidoPlano.symbolSize = 0;\r\n\t\t\t\tcontenidoPlano.symbolHoverFill = '';\r\n\t\t\t\tcontenidoPlano.symbolHoverStroke = '';\r\n\t\t\t\tcontenidoPlano.sectionHoverFill = '';\r\n\t\t\t\tcontenidoPlano.sectionHoverStroke = '';\r\n\t\t\t\tcontenidoPlano.setIconHeight('');\r\n\t\t\t\tcontenidoPlano.setIconWidth('');\r\n\t\t\t\tcontenidoPlano.setIconAlign('');\r\n\t\t\t\t// Posicionamos label\r\n\t\t\t\tcontenidoPlano.setLabelTextAnchor(Constantes.labelTextMiddle);\r\n\t\t\t\tcontenidoPlano.setLabelXoffset(0);\r\n\t\t\t\tcontenidoPlano.setLabelYoffset(0);\r\n\t\t\t}\r\n\t\t\tif (contenido.TIPOLOGIA_CONTENIDO.VisibilidadLabelMapa) {\r\n\t\t\t\tcontenidoPlano.setLabel(contenido.NombreCorto); // Label desde BD\r\n\t\t\t\tcontenidoPlano.setLabelColor(Constantes.labelColor);\r\n\t\t\t\tcontenidoPlano.setLabelFontFamily(Constantes.labelFontFamily);\r\n\t\t\t\tcontenidoPlano.setLabelFontSize(Constantes.labelFontSize);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tcontenidoPlano.setLabel(''); // Label desde BD\r\n\t\t\t\tcontenidoPlano.setLabelColor('');\r\n\t\t\t\tcontenidoPlano.setLabelFontFamily('');\r\n\t\t\t\tcontenidoPlano.setLabelFontSize('');\r\n\t\t\t}\r\n\t\t\treturn contenidoPlano;\r\n\t\t}\r\n\t\tcatch (ex) {\r\n\t\t\tthis.appComponent.showError(ex);\r\n\t\t}\r\n\t}\r\n\tcomprobarConversionCoordenadas(event: any): any {\r\n\t\tconst that = this;\r\n\t\tconst idEspacio = this.authService.getIdEspacio();\r\n\t\tconst token = this.authService.getToken();\r\n\t\tconst idAla = this.alaSeleccionada.Id;\r\n\t\tlet X = event.mp[0];\r\n\t\tlet Y = event.mp[1];\r\n\t\tlet Latitud = 0;\r\n\t\tlet Longitud = 0;\r\n\t\tthis.sws.wsObtenerLLFromXY(token, X, Y, idEspacio, idAla).toPromise()\r\n\t\t.then(function(resp){\r\n\t\t\tLatitud = resp.Latitud;\r\n\t\t\tLongitud = resp.Longitud;\r\n\t\t\treturn that.sws.wsObtenerXYFromLL(token, Latitud, Longitud, idEspacio, idAla).toPromise();\r\n\t\t})\r\n\t\t.then(function(resp){\r\n\t\t\tX = resp.x;\r\n\t\t\tY = resp.y;\r\n\t\t\tconsole.log('--- Coordenadas LL: ' + Latitud + ',' + Longitud);\r\n\t\t\tconsole.log('--- Coordenadas XY: ' + X + ',' + Y);\r\n\t\t})\r\n\t\t;\r\n\t}\r\n\tRotarDerecha(rot){\r\n\t\tthis.nodes.forEach(element => {\r\n\t\t\tconst rotacion = element.getRotation();\r\n\t\t\telement.setRotation(rotacion + rot);\r\n\t\t});\r\n\t\tthis.asignarNodes(this.nodes);\r\n\t}\r\n\tRotarIzquierda(rot){\r\n\t\tthis.nodes.forEach(element => {\r\n\t\t\tconst rotacion = element.getRotation();\r\n\t\t\telement.setRotation(rotacion - rot);\r\n\t\t});\r\n\t\tthis.asignarNodes(this.nodes);\r\n\t}\r\n\r\n\tinputFechaChanged(){\r\n\t\tthis.asignarSections();\r\n\t\tthis.asignarContents();\r\n\t\tthis.asignarBeacons();\r\n\t\tthis.asignarLinks(this.links);\r\n\t\tthis.asignarNodes(this.nodes);\r\n\t\tthis.asignarNotificaciones();\r\n\t}\r\n\r\n\t// ASIGNARCIONES INPUTS PLANO\r\n\tasignarSections(arraySeccionesPlano?: Array){\r\n\t\tlet secciones = new Array();\r\n\t\tif (!arraySeccionesPlano){\r\n\t\t\tthis.mapSections.forEach((value: SeccionPlano, key: String) => {\r\n\t\t\t\t//console.log(key, value);\r\n\t\t\t\tconst seccionPlano: SeccionPlano = value;\r\n\t\t\t\tif (seccionPlano.ENTIDAD.FechaBaja === null || seccionPlano.ENTIDAD.FechaBaja > this.fechaVisualizacion ){\r\n\t\t\t\t\tif (seccionPlano.ENTIDAD.FechaAlta !== null && seccionPlano.ENTIDAD.FechaAlta <= this.fechaVisualizacion ){\r\n\t\t\t\t\t\tsecciones.push(seccionPlano);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tsecciones = arraySeccionesPlano;\r\n\t\t}\r\n\r\n\t\tthis.sections = secciones;\r\n\t\tthis.sections = Object.assign([], this.sections);\r\n\t}\r\n\r\n\tasignarContents(arrayContenidosPlano?: Array){\r\n\t\tlet contenidos = new Array();\r\n\t\tif (!arrayContenidosPlano){\r\n\t\t\tthis.contenidosFormulario = [];\r\n\r\n\t\t\tthis.mapContents.forEach((value: ContenidoPlano, key: String) => {\r\n\t\t\t\t// console.log(key, value);\r\n\t\t\t\tconst contenido: ContenidoPlano = value;\r\n\t\t\t\tif (!contenido) {\r\n\t\t\t\t\tconsole.log(\"**** id sin contenido: \", key);\r\n\t\t\t\t}\r\n\t\t\t\tif (contenido && contenido.ENTIDAD && (contenido.ENTIDAD.FechaBaja === null || contenido.ENTIDAD.FechaBaja > this.fechaVisualizacion) ){\r\n\t\t\t\t\tif (contenido.ENTIDAD.FechaAlta !== null && contenido.ENTIDAD.FechaAlta <= this.fechaVisualizacion ){\r\n\t\t\t\t\t\tcontenidos.push(contenido);\r\n\t\t\t\t\t\tconst contenidoForm = new Contenido().fromENTIDAD(contenido.ENTIDAD);\r\n\t\t\t\t\t\tthis.contenidosFormulario.push(contenidoForm);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tcontenidos = arrayContenidosPlano;\r\n\t\t}\r\n\t\tthis.contents = contenidos;\r\n\t\tthis.contents = Object.assign([], this.contents);\r\n\t}\r\n\r\n\r\n\tasignarBeacons(arrayBalizasPlano?: Array){\r\n\t\tlet balizas = new Array();\r\n\t\tif (!arrayBalizasPlano){\r\n\t\t\tthis.mapBeacons.forEach((value: BeaconPlano, key: String) => {\r\n\t\t\t\t//console.log(key, value);\r\n\t\t\t\tconst baliza: BeaconPlano = value;\r\n\t\t\t\tif (baliza.ENTIDAD.FechaBaja === null || baliza.ENTIDAD.FechaBaja > this.fechaVisualizacion ){\r\n\t\t\t\t\tif (baliza.ENTIDAD.FechaAlta !== null && baliza.ENTIDAD.FechaAlta <= this.fechaVisualizacion ){\r\n\t\t\t\t\t\tbalizas.push(baliza);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tbalizas = arrayBalizasPlano;\r\n\t\t}\r\n\r\n\t\tthis.beacons = balizas;\r\n\t\tthis.beacons = Object.assign([], this.beacons);\r\n\t}\r\n\r\n\tasignarLinks(conexiones){\r\n\r\n\t\tthis.links = conexiones;\r\n\t\tthis.links = Object.assign([], this.links);\r\n\t}\r\n\r\n\tasignarNodes(nodos){\r\n\t\tthis.nodes = nodos;\r\n\t\tthis.nodes = Object.assign([], this.nodes);\r\n\t}\r\n\r\n\tasignarNotificaciones(arrayNotificacionesPlano?){\r\n\t\tlet notificaciones = new Array();\r\n\t\tif (!arrayNotificacionesPlano){\r\n\t\t\tthis.mapNotifications.forEach((value: NotificacionPlano, key: String) => {\r\n\t\t\t\tconsole.log(key, value);\r\n\t\t\t\tconst notificacion: NotificacionPlano = value;\r\n\t\t\t\tif (notificacion.ENTIDAD.FechaFin === null || notificacion.ENTIDAD.FechaFin > this.fechaVisualizacion ){\r\n\t\t\t\t\tif (notificacion.ENTIDAD.FechaInicio !== null && notificacion.ENTIDAD.FechaInicio <= this.fechaVisualizacion ){\r\n\t\t\t\t\t\tnotificaciones.push(notificacion);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tnotificaciones = arrayNotificacionesPlano;\r\n\t\t}\r\n\r\n\t\tthis.notifications = notificaciones;\r\n\t\tthis.notifications = Object.assign([], this.notifications);\r\n\t}\r\n\r\n\tonFechaAceptar(dt, calendar, columna, tipo) {\r\n\t\tconsole.log(calendar);\r\n\t\tconst fecha = calendar.value ? calendar.value : new Date();\r\n\t\tif (tipo === 'fechaVisualizacion') {\r\n\t\t\tthis.fechaVisualizacion = fecha;\r\n\t\t}\r\n\r\n\t\tthis.inputFechaChanged();\r\n\t\tcalendar.overlayVisible=false;\r\n\r\n\t}\r\n\r\n\t/*\r\n\tasignarAvisos(avisos){\r\n\t\tthis.notifications = avisos;\r\n\t\tthis.notifications = Object.assign([], this.notifications);\r\n\t}\r\n\r\n\tobtenerAlasPortal(that?){\r\n\r\n\t\tthat = this !== undefined ? this : that;\r\n\t\tconst entityManager = that.entityManagerProvider;\r\n\r\n\t\tlet includes = 'SECCIONS.IDIOMAS, SECCIONS.NODOS.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.IDIOMAS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.IDIOMAS';\r\n\t\tincludes = includes + ', SECCIONS.NODOS.CONEXIONS_NODOS_ORIGEN.PESO_CONEXIONS, SECCIONS.NODOS.CONEXIONS_NODOS_DESTINO.PESO_CONEXIONS';\r\n\r\n\t\treturn entityManager.getALA(undefined, includes)\r\n\t\t.then(function (entidades) {\r\n\t\t\tif (entidades == null || entidades.length < 1) {\r\n\t\t\t\tconsole.log('NO HAY ALAS');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthat.alasPortal = [];\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tentidades.forEach(ala => {\r\n\t\t\t\t\tconst aux = new AlaFormulario(ala);\r\n\t\t\t\t\t// Añadimos todas las alas que no sean la seleccionada ya que esta ya esta en el array\r\n\t\t\t\t\tif (ala.Id !== that.alaSeleccionada.id ){\r\n\t\t\t\t\t\tthat.alasPortal.push(aux);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti += 1;\r\n\t\t\t\t});\r\n\t\t\t\tconsole.log('ALA CARGADA CORRECTAMENTE = ' + that.alaSeleccionada.Nomobre);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(function(err){\r\n\t\t\tthrow err;\r\n\t\t});\r\n\t}\r\n\t*/\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/app/views/mapas/mapas.component.ts","export const environment = {\r\n\tproduction: true,\r\n\tenvironmentName: 'develop',\r\n\tapiUrl: 'https://everpaths.quartdepoblet.es',\r\n\r\n\turlCMS: 'https://everpaths.quartdepoblet.es/filerepo/api',\r\n\r\n\tCMS_user_1: 'everpaths.',\r\n\tCMS_user_2: 'everpaths:',\r\n\tCMS_sub_token: '457b174c-6441-4f09-be25-6bb1e3b33919',\r\n\tCMS_token: 'everpaths:457b174c-6441-4f09-be25-6bb1e3b33919',\r\n\turlBaseFotos: 'everpaths:/everpaths.',\r\n\t\r\n\tCMS_3d_model_user_1: 'everpaths.',\r\n\tCMS_3d_model_user_2: 'everpaths:',\r\n\tCMS_3d_model_sub_token: '457b174c-6441-4f09-be25-6bb1e3b33919',\r\n\tCMS_3d_model_token: 'everpaths:457b174c-6441-4f09-be25-6bb1e3b33919',\r\n\turlBaseModelo: 'everpaths:/everpaths.',\r\n\r\n\r\n\turlServicioBreeze: 'https://everpaths.quartdepoblet.es/breeze/Ubimaps',\r\n\tubimapsAPI: 'https://everpaths.quartdepoblet.es/api/',\r\n\tubimapsDiagnostico: 'https://everpaths.quartdepoblet.es/diagnostico/',\r\n\tubimapsStats: 'https://everpaths.quartdepoblet.es/stats/',\r\n\r\n\t//Personalizaciones parte fija Espacios Cultura\r\n logo: 'assets/layout/images/ITSN.png',\r\n tituloLogo: 'Login.navegacioninteriores',\r\n title: 'Quart de Poblet',\r\n icon: 'favicon.ico',\r\n colorTopBar: '#3A4651',\r\n logoTopBar: 'assets/itsoft/images/ITSNavigation-liso.png',\r\n\r\n\turlPublicacionFija: 'http://localhost:4200'\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/environments/environment.ts","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n// import { MainModuleNgFactory } from \"../../../compiled/src/main/client/main.module.ngfactory\";\r\n\r\n// if (environment.production) {\r\n\t// enableProdMode();\r\n// }\r\n\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n\t.catch(err => console.log(err));\r\n\r\n\r\n// platformBrowser().bootstrapModuleFactory(MainModuleNgFactory).\r\n// \t.catch(err => console.log(err));\r\n\n\n\n// WEBPACK FOOTER //\n// C:/Users/adri9/Escritorio/admin-everpath/src/main.ts","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// fs (ignored)\n// module id = 0\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// crypto (ignored)\n// module id = 2\n// module chunks = main","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// stream (ignored)\n// module id = 3\n// module chunks = main"],"sourceRoot":"webpack:///"}