{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/sicap/comun/componentes/alert/alert.component.html","./src/app/sicap/comun/componentes/confirm/confirm.component.html","./src/app/sicap/comun/modulos/internal-server/internal-server.component.html","./src/app/sicap/comun/modulos/login/login.component.html","./src/app/sicap/comun/modulos/not-found/not-found.component.html","./src/app/sicap/mapa/componentes/control-layers/control-layers.component.html","./src/app/sicap/mapa/componentes/copy-features/copy-features.component.html","./src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.html","./src/app/sicap/mapa/componentes/layer-table/layer-table.component.html","./src/app/sicap/mapa/componentes/measure/measure.component.html","./src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.html","./src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.html","./src/app/sicap/mapa/componentes/select-features/select-features.component.html","./src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.html","./src/app/sicap/planos/componentes/details-user/details-user.component.html","./src/app/sicap/planos/componentes/dwelling/dwelling.component.html","./src/app/sicap/planos/componentes/history/history.component.html","./src/app/sicap/planos/componentes/measure/measure.component.html","./src/app/sicap/planos/componentes/rejection/rejection.component.html","./src/app/sicap/planos/componentes/status/status.component.html","./src/app/sicap/planos/modulos/equipamiento/equipamiento.component.html","./src/app/sicap/planos/modulos/home/home.component.html","./src/app/sicap/planos/modulos/individual/individual.component.html","./src/app/sicap/planos/modulos/load-map/load-map.component.html","./src/app/sicap/planos/modulos/managment/managment.component.html","./src/app/sicap/planos/modulos/oferta/oferta.component.html","./src/app/sicap/planos/modulos/orderv/orderv.component.html","./src/app/sicap/planos/modulos/settings/settings.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/sicap/comun/SpanishPaginator.ts","./src/app/sicap/comun/componentes/alert/alert.component.css","./src/app/sicap/comun/componentes/alert/alert.component.ts","./src/app/sicap/comun/componentes/componenteComun.module.ts","./src/app/sicap/comun/componentes/confirm/confirm-data.ts","./src/app/sicap/comun/componentes/confirm/confirm.component.css","./src/app/sicap/comun/componentes/confirm/confirm.component.ts","./src/app/sicap/comun/comun.module.ts","./src/app/sicap/comun/datos/auth-interceptor.ts","./src/app/sicap/comun/datos/auth.guard.ts","./src/app/sicap/comun/datos/auth.service.ts","./src/app/sicap/comun/datos/error-handler.service.ts","./src/app/sicap/comun/datos/home.guard.ts","./src/app/sicap/comun/datos/modal.service.ts","./src/app/sicap/comun/datos/notification.service.ts","./src/app/sicap/comun/modelo/config.http.ts","./src/app/sicap/comun/modulos/internal-server/internal-server.component.css","./src/app/sicap/comun/modulos/internal-server/internal-server.component.ts","./src/app/sicap/comun/modulos/login/login.component.css","./src/app/sicap/comun/modulos/login/login.component.ts","./src/app/sicap/comun/modulos/not-found/not-found.component.css","./src/app/sicap/comun/modulos/not-found/not-found.component.ts","./src/app/sicap/mapa/componentes/componentes.module.ts","./src/app/sicap/mapa/componentes/control-layers/control-layers.component.css","./src/app/sicap/mapa/componentes/control-layers/control-layers.component.ts","./src/app/sicap/mapa/componentes/copy-features/copy-features.component.css","./src/app/sicap/mapa/componentes/copy-features/copy-features.component.ts","./src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.css","./src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.ts","./src/app/sicap/mapa/componentes/layer-table/layer-table.component.css","./src/app/sicap/mapa/componentes/layer-table/layer-table.component.ts","./src/app/sicap/mapa/componentes/measure/measure.component.css","./src/app/sicap/mapa/componentes/measure/measure.component.ts","./src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.css","./src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.ts","./src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.css","./src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.ts","./src/app/sicap/mapa/componentes/select-features/select-features.component.css","./src/app/sicap/mapa/componentes/select-features/select-features.component.ts","./src/app/sicap/mapa/componentes/utils/Statistic.map.ts","./src/app/sicap/mapa/componentes/utils/Tools.map.ts","./src/app/sicap/mapa/datos/control.service.ts","./src/app/sicap/mapa/datos/index.ts","./src/app/sicap/mapa/datos/map.service.ts","./src/app/sicap/mapa/mapa.module.ts","./src/app/sicap/mapa/modelo/DeclaredLayer.ts","./src/app/sicap/mapa/modelo/index.ts","./src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.css","./src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.ts","./src/app/sicap/planos/componentes/componentes.module.ts","./src/app/sicap/planos/componentes/details-user/details-user.component.css","./src/app/sicap/planos/componentes/details-user/details-user.component.ts","./src/app/sicap/planos/componentes/dwelling/dwelling.component.css","./src/app/sicap/planos/componentes/dwelling/dwelling.component.ts","./src/app/sicap/planos/componentes/history/history.component.css","./src/app/sicap/planos/componentes/history/history.component.ts","./src/app/sicap/planos/componentes/measure/measure.component.css","./src/app/sicap/planos/componentes/measure/measure.component.ts","./src/app/sicap/planos/componentes/rejection/rejection.component.css","./src/app/sicap/planos/componentes/rejection/rejection.component.ts","./src/app/sicap/planos/componentes/status/status.component.css","./src/app/sicap/planos/componentes/status/status.component.ts","./src/app/sicap/planos/datos/Oindividual.service.ts","./src/app/sicap/planos/datos/catalog.service.ts","./src/app/sicap/planos/datos/equipamiento.service.ts","./src/app/sicap/planos/datos/index.ts","./src/app/sicap/planos/datos/load-map.service.ts","./src/app/sicap/planos/datos/managment.service.ts","./src/app/sicap/planos/datos/oferta.service.ts","./src/app/sicap/planos/datos/orderv.service.ts","./src/app/sicap/planos/modulos/equipamiento/ds-scene.ts","./src/app/sicap/planos/modulos/equipamiento/equipamiento.component.css","./src/app/sicap/planos/modulos/equipamiento/equipamiento.component.ts","./src/app/sicap/planos/modulos/home/home.component.css","./src/app/sicap/planos/modulos/home/home.component.ts","./src/app/sicap/planos/modulos/individual/datasource-offer.ts","./src/app/sicap/planos/modulos/individual/individual.component.css","./src/app/sicap/planos/modulos/individual/individual.component.ts","./src/app/sicap/planos/modulos/load-map/load-map.component.css","./src/app/sicap/planos/modulos/load-map/load-map.component.ts","./src/app/sicap/planos/modulos/managment/datasource-user.ts","./src/app/sicap/planos/modulos/managment/managment.component.css","./src/app/sicap/planos/modulos/managment/managment.component.ts","./src/app/sicap/planos/modulos/oferta/datasource-oferta.ts","./src/app/sicap/planos/modulos/oferta/oferta.component.css","./src/app/sicap/planos/modulos/oferta/oferta.component.ts","./src/app/sicap/planos/modulos/orderv/datasource-scene.ts","./src/app/sicap/planos/modulos/orderv/orderv.component.css","./src/app/sicap/planos/modulos/orderv/orderv.component.ts","./src/app/sicap/planos/modulos/settings/settings.component.css","./src/app/sicap/planos/modulos/settings/settings.component.ts","./src/app/sicap/planos/planos.module.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","export default \"\\r\\n\";","export default \"
\\r\\n
\\r\\n {{data.title}}\\r\\n
\\r\\n
\\r\\n {{ getAlertIcon() }}\\r\\n {{ data.content }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"

\\r\\n {{data.title}}

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

\\r\\n {{ data.content }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n 500\\r\\n
\\r\\n
\\r\\n

Error interno del servidor

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

Esto no debería estar pasando! Disculpas

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n \\r\\n Sistema de carga de planos\\r\\n \\r\\n Iniciar sesión\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n Nombre de usuario es necesario\\r\\n
\\r\\n
\\r\\n El correo electrónico es necesario\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n lock\\r\\n \\r\\n \\r\\n
\\r\\n La tamaño mínimo es de 6 caracteres.\\r\\n
\\r\\n
\\r\\n La contraseña es necesaria.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ messageError }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n © Derechos reservados RUV {{year}}   |   Contáctenos: 800 0077 788 o al correo electrónico:\\r\\n soporte@ruv.org.mx\\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n

Esta página no está disponible

\\r\\n

404

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{node.name}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"{{node.name}}\\\"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{node.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Se copiaron {{info.copiado}} viviendas de {{info.total}}.
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
TABLACOPIADO|TOTALDUPLICADO
{{info.tblname}} {{info.copiado}} | {{info.total}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n Estadísticas del plano {{currentPlano.num}} \\r\\n \\r\\n
\\r\\n
\\r\\n

Estatus: {{currentPlano.status}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Sembrado: {{currentPlano.idStatus == 4 && summary.smb.temporal || summary.smb.copy}} de {{summary.smb.total}} Equipamiento: {{currentPlano.idStatus == 4 && summary.eqm.temporal || summary.eqm.copy}} de {{summary.eqm.total}}Vialidad: {{currentPlano.idStatus == 4 && summary.rvl.temporal || summary.rvl.copy}} de {{summary.rvl.total}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CapaCargadoExisteCopiado
{{item.tblname}}{{item.tmp}}{{ item.main == 0 && item.exist || 0}}{{item.main}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CapaTotal
{{item.tblname}}{{item.main}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
    \\r\\n
  1. {{text}}
  2. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n Tabla :: {{title}} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{i+1}}\\r\\n {{column}} {{ element[column] }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Total:{{selectedTable.n_elements}}, Filtrados: {{tableSelectData.filteredData.length}}, Seleccionados:{{selectedTable.n_selected}}

\\r\\n
\\r\\n
\";","export default \"\\r\\n Medición\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n No cumple SIG\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{rejectionDetail.value?.length || 0}}/1000\\r\\n Correo electronico es requerido.\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Eliminados\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
TABLAELIMINADO
{{info.tabla}} {{info.eliminado}}
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n Enviar a revisión SIG\\r\\n \\r\\n \\r\\n

Espere a que se validen las cuvs del plano

\\r\\n

Resultado de validación de cuvs

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
En sembrado{{resultValid.totconstruccion}}
En sistema RUV{{resultValid.totvivienda}}
No existen en RUV\\r\\n
{{resultValid.nocuvs}}
\\r\\n
Duplicados\\r\\n
{{resultValid.duplicados}}
\\r\\n
Nivel diferente a RUV\\r\\n
{{resultValid.nivel}}
\\r\\n
Las CUVS existen con otra orden\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{found.orden}} - {{found.cuv}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\r\\n \\r\\n \\r\\n Selecciona una capa\\r\\n \\r\\n None\\r\\n \\r\\n {{infoLayer.name}}\\r\\n \\r\\n \\r\\n {{dataSelected.n_selected}} elementos seleccionados de\\r\\n {{dataSelected.n_elements}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{page.name}}\\r\\n \\r\\n {{page.n_selected}} | {{page.n_elements}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{page.name}}\\r\\n \\r\\n {{page.n_elements}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Capas\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ currentUser.uRoleKey=='V'?'Verificar':'Seleccionar'}}\\r\\n \\r\\n \\r\\n Cartografía declarada\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Tareas\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n {{data.action==2?'Editar usuario':'Nuevo usuario'}} \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Estatus\\r\\n \\r\\n Activo\\r\\n Inactivo\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Tipo de usuario\\r\\n \\r\\n {{typeul.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Nombre es requerido.\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Correo electrónico es requerido.\\r\\n Escriba un correo electrónico valido.\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Contraseña es requerida.\\r\\n \\r\\n El tamaño minimo es de 8 caracteres.\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n Viviendas\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{dwl.cuv}}\\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n Historial de {{title}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{texths.estatus.sname}}\\r\\n \\r\\n {{texths.autor}}\\r\\n \\r\\n
{{texths.updatedFormat}}\\r\\n \\r\\n \\r\\n \\r\\n {{texths.details}}\\r\\n \\r\\n \\r\\n \\r\\n {{texths.details}}\\r\\n \\r\\n \\r\\n {{texths.details}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Información no disponible por el momento.\\r\\n \\r\\n\\r\\n
\";","export default \"
\\r\\n Medición de {{data.identity}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Total de cuv's \\r\\n {{ foundData }} / {{ELEMENT_DATA.length}}\\r\\n \\r\\n \\r\\n Filtro por campo de distancia\\r\\n \\r\\n {{field.key == null? field.title: field.key +' - ' + field.title}}\\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
{{ col.title }} {{ col.action == false ? element['cuv'] : '' }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{field.key == null? '':field.key}}{{field.title}} \\r\\n {{(element.distancia == undefined ? element[field.property] : element.distancia[field.property]) }}\\r\\n
\\r\\n
\\r\\n \\r\\n No disponible.\\r\\n \\r\\n
\\r\\n


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

En proceso de medición

\\r\\n
\\r\\n
\";","export default \"
\\r\\n Solicitud de Rechazo\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Nombre es requerido.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Número de teléfono es requerido.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Correo electrónico es requerido.\\r\\n Escriba un correo electrónico valido.\\r\\n \\r\\n \\r\\n \\r\\n Motivo de solicitud de rechazo es requerido.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n Editar estatus \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{data.title }} :{{data.identity }} \\r\\n
\\r\\n \\r\\n Estatus\\r\\n \\r\\n {{element.sname}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n\\r\\n \\r\\n {{currentUser.uRoleKey == 'V' && 'Consulta de equipamientos ' || 'Consulta de historial de equipamientos'}}\\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{statusl.sname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Mostrar pendientes\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\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.title }} \\r\\n {{ element[col.property]}} {{( col.action == false ? element[col.property] : '' )}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{gisop.nameusr}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n cloud_download\\r\\n \\r\\n\\r\\n \\r\\n No disponible.\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n lock_open\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{page?.icon}}{{ page?.name }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{page?.icon}}\\r\\n

{{ page?.name }}

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Copyright RUV - Registro Único de Vivienda © {{ year }}    \\r\\n \\r\\n     Contáctenos: 800 0077 788 o al correo electrónico: soporte@ruv.org.mx\\r\\n\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n Consultar oferta individual\\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{lsoffertype.toname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\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.title }} \\r\\n {{( col.action == false ) && element[col.property] || (col.property =='tipoOfertum' && element[col.property].toname || '' ) }}\\r\\n {{element[col.property]}}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Orden de Verificación\\r\\n Oferta\\r\\n Equipamiento\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{f.modulo.value == MODULE.ORDEN?'La orden de verificación es requerida.': (f.modulo.value == MODULE.OFERTA?'La oferta es requerida.':'Es necesario el dato.') }}\\r\\n \\r\\n \\r\\n Longitud máxima de 11\\r\\n \\r\\n \\r\\n Longitud máxima de 8\\r\\n \\r\\n \\r\\n
{{msgValidation.text}}
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

El archivo \\\"{{msgNoFile.text}}\\\" que intenta subir no tiene un formato válido. Para mayor información revise Manual de elaboración del plano SICAP

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{'El plano ' + numberOrder + ((accepted$ | async) ? ' CUMPLE ' : ' NO CUMPLE ') +'con los requisitos iniciales:'}}\\r\\n
\\r\\n \\r\\n

Detalles:

\\r\\n \\r\\n error\\r\\n

Problema

\\r\\n

{{msgError.text}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Informe sobre la validación del 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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CapaObjetosCategoríaUbicaciónCUV's
{{item.tblname}}{{item.total}} {{item.total != 0 && item.cateqex != null && item.cateqex || ''}}{{item.total != 0 && item.ubicado || ''}} {{item.total != 0 && item.totvivinda != null && item.totconstrucciones != null && item.totconstrucciones +' /'+ item.totvivinda || ''}}
\\r\\n\\r\\n 0\\\" class=\\\"warning\\\">\\r\\n

Detalles

\\r\\n \\r\\n error\\r\\n

{{msg.name}}

\\r\\n

{{msg.text}}

\\r\\n
\\r\\n
\\r\\n
0\\\" style=\\\"font-size: 0.9em;\\\">\\r\\n

{{ MODULE_GENERAL.includes( f.modulo.value ) ?'*':'**'}} Obligatorio, razón por la cual no se acepta el plano.

\\r\\n

** Opcional, el proceso continuará sin el recurso.

\\r\\n

***Algún elemento de la capa esta fuera de la ubicación establecida en la orden de verificación

\\r\\n

***Los elementos estan dentro de la República Mexicana.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n A revisión\\r\\n \\r\\n \\r\\n
\\r\\n

Para poder enviar tu plano a revisión deberas dar clic en la opción \\\"Enviar a verificación SIG\\\" dentro de la previsualización.

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CapaTotal
{{item.tblname}}{{item.copiado}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n check_circle\\r\\n \\r\\n \\r\\n archive\\r\\n \\r\\n \\r\\n layers\\r\\n \\r\\n\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n Usuarios\\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{typeul.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\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.title }} \\r\\n {{ col.propertyName =='estatus' && (element[col.propertyName]==true && 'Activo' || 'Inactivo') || (col.propertyName =='tipoUsuario' && (element[col.propertyName].name) || (element[col.propertyName])) }}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n\\r\\n \\r\\n {{currentUser.uRoleKey == 'V' && 'Consulta de OVs' || 'Consulta de historial'}}\\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{statusl.sname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{lsedo.ename | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{lscity.cname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Mostrar pendientes\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\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.title }} \\r\\n {{element[col.property]}} {{( col.action == false ) && element[col.property] || '' }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n {{element[col.property]}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{gisop.nameusr}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n cloud_download\\r\\n \\r\\n\\r\\n \\r\\n No disponible.\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n\\r\\n \\r\\n {{currentUser.uRoleKey == 'V' && 'Consulta de OVs' || 'Consulta de historial'}}\\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{statusl.sname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{lsedo.ename | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n --Seleccione--\\r\\n \\r\\n {{lscity.cname | uppercase}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Mostrar pendientes\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\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.title }} \\r\\n {{element[col.property]}} {{( col.action == false ) && element[col.property] || '' }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n {{element[col.property]}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{gisop.nameusr}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n cloud_download\\r\\n \\r\\n\\r\\n \\r\\n No disponible.\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Medir\\r\\n \\r\\n \\r\\n El total de viviendas debe ser menor a 60\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n La orden de verificación es requerida.\\r\\n \\r\\n \\r\\n Longitud máxima de 11\\r\\n \\r\\n \\r\\n Solo números.\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Cargar ZIP Orden de verificación\\r\\n \\r\\n \\r\\n Subir el archivo zip que no se cargó correctamente\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n close\\r\\n \\r\\n La orden de verificación es requerida.\\r\\n \\r\\n \\r\\n Longitud máxima de 11\\r\\n \\r\\n \\r\\n Solo números.\\r\\n \\r\\n \\r\\n
{{message.text}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Cargar ZIP de otros planos\\r\\n \\r\\n \\r\\n Subir el archivo zip que no se cargó correctamente\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n close\\r\\n \\r\\n La orden de verificación es requerida.\\r\\n \\r\\n \\r\\n Longitud máxima de 8\\r\\n \\r\\n \\r\\n Solo números.\\r\\n \\r\\n \\r\\n
{{message.text}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from './sicap/comun/datos/auth.guard';\r\nimport { HomeGuard } from './sicap/comun/datos/home.guard';\r\nimport { InternalServerComponent } from './sicap/comun/modulos/internal-server/internal-server.component';\r\nimport { LoginComponent } from './sicap/comun/modulos/login/login.component';\r\nimport { NotFoundComponent } from './sicap/comun/modulos/not-found/not-found.component';\r\nimport { MapCanvasComponent } from './sicap/mapa/modulo/map-canvas/map-canvas.component';\r\nimport { HomeComponent } from './sicap/planos/modulos/home/home.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'login', pathMatch: 'full' },\r\n {\r\n path: 'login', component: LoginComponent, canActivate: [AuthGuard]\r\n },\r\n {\r\n path: 'plano', component: HomeComponent, canActivate: [HomeGuard], canLoad: [HomeGuard],\r\n children: [\r\n { path: '', loadChildren: () => import('./sicap/planos/planos.module').then(mod => mod.PlanosModule) }\r\n ]\r\n },\r\n //{ path: 'oferta/mapa/:orderverif', component: MapCanvasComponent, canActivate: [HomeGuard], canLoad: [HomeGuard], },\r\n { path: 'plano/mapa/:module/:id', component: MapCanvasComponent, canActivate: [HomeGuard], canLoad: [HomeGuard], },\r\n { path: '404', component: NotFoundComponent },\r\n { path: '500', component: InternalServerComponent },\r\n { path: '**', redirectTo: '/404', pathMatch: 'full' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\";","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n title = 'ruv-client-sicap';\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { MapaModule } from './sicap/mapa/mapa.module';\r\nimport { PlanosModule } from './sicap/planos/planos.module';\r\nimport { httpInterceptorProviders } from './sicap/comun/datos/auth-interceptor';\r\nimport { ComunModule } from './sicap/comun/comun.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n FlexLayoutModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ComunModule,\r\n MapaModule,\r\n PlanosModule,\r\n MatDialogModule,\r\n /* MatCardModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n MatFormFieldModule, \r\n MatProgressBarModule,\r\n MatDividerModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatError*/\r\n ComunModule\r\n ],\r\n providers: [httpInterceptorProviders],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppModule { }\r\n","//import { MatPaginatorIntl } from '@angular/material';\r\n\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\n\r\nconst spanishRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length == 0 || pageSize == 0) { return `0 de ${length}`; }\r\n \r\n length = Math.max(length, 0);\r\n\r\n const startIndex = page * pageSize;\r\n\r\n // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n const endIndex = startIndex < length ?\r\n Math.min(startIndex + pageSize, length) :\r\n startIndex + pageSize;\r\n\r\n return `${startIndex + 1} - ${endIndex} de ${length}`;\r\n}\r\n\r\n\r\nexport function getSpanishPaginatorIntl() {\r\n const paginatorIntl = new MatPaginatorIntl();\r\n \r\n paginatorIntl.itemsPerPageLabel = 'Elementos por página:';\r\n paginatorIntl.nextPageLabel = 'Siguiente';\r\n paginatorIntl.previousPageLabel = 'Anterior';\r\n paginatorIntl.getRangeLabel = spanishRangeLabel;\r\n \r\n return paginatorIntl;\r\n}","export default \"/*** Notificaciones ***/\\r\\n\\r\\n.alert-info {\\r\\n color: #0c5460;\\r\\n /*background-color: #d1ecf1;\\r\\n border-color: #bee5eb;*/\\r\\n}\\r\\n\\r\\n.alert-done {\\r\\n color: #155724;\\r\\n /*background-color: #d4edda;\\r\\n border-color: #c3e6cb;*/\\r\\n}\\r\\n\\r\\n.alert-warning {\\r\\n color: #856404;\\r\\n /*background-color: #fff3cd;\\r\\n border-color: #ffeeba;*/\\r\\n}\\r\\n\\r\\n.alert-error {\\r\\n color: #721c24;\\r\\n /* background-color: #f8d7da;\\r\\n border-color: #f5c6cb;*/\\r\\n}\\r\\n\\r\\n.modal-title {\\r\\n color: #575757;\\r\\n font-size: 22px !important;\\r\\n font-weight: bold !important;\\r\\n}\\r\\n\\r\\n.modal-content p {\\r\\n font-size: 18px !important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvY29tdW4vY29tcG9uZW50ZXMvYWxlcnQvYWxlcnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7O0FBRXZCO0lBQ0ksY0FBYztJQUNkOzJCQUN1QjtBQUMzQjs7QUFFQTtJQUNJLGNBQWM7SUFDZDsyQkFDdUI7QUFDM0I7O0FBRUE7SUFDSSxjQUFjO0lBQ2Q7MkJBQ3VCO0FBQzNCOztBQUVBO0lBQ0ksY0FBYztJQUNkOzJCQUN1QjtBQUMzQjs7QUFFQTtJQUNJLGNBQWM7SUFDZCwwQkFBMEI7SUFDMUIsNEJBQTRCO0FBQ2hDOztBQUVBO0lBQ0ksMEJBQTBCO0FBQzlCIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvY29tdW4vY29tcG9uZW50ZXMvYWxlcnQvYWxlcnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiogTm90aWZpY2FjaW9uZXMgKioqL1xyXG5cclxuLmFsZXJ0LWluZm8ge1xyXG4gICAgY29sb3I6ICMwYzU0NjA7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICNkMWVjZjE7XHJcbiAgICBib3JkZXItY29sb3I6ICNiZWU1ZWI7Ki9cclxufVxyXG5cclxuLmFsZXJ0LWRvbmUge1xyXG4gICAgY29sb3I6ICMxNTU3MjQ7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICNkNGVkZGE7XHJcbiAgICBib3JkZXItY29sb3I6ICNjM2U2Y2I7Ki9cclxufVxyXG5cclxuLmFsZXJ0LXdhcm5pbmcge1xyXG4gICAgY29sb3I6ICM4NTY0MDQ7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICNmZmYzY2Q7XHJcbiAgICBib3JkZXItY29sb3I6ICNmZmVlYmE7Ki9cclxufVxyXG5cclxuLmFsZXJ0LWVycm9yIHtcclxuICAgIGNvbG9yOiAjNzIxYzI0O1xyXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcclxuICAgIGJvcmRlci1jb2xvcjogI2Y1YzZjYjsqL1xyXG59XHJcblxyXG4ubW9kYWwtdGl0bGUge1xyXG4gICAgY29sb3I6ICM1NzU3NTc7XHJcbiAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250ZW50IHAge1xyXG4gICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XHJcbn0iXX0= */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AlertData, AlertType } from '../../modelo/config.http';\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.css']\r\n})\r\nexport class AlertComponent {\r\n \r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: AlertData\r\n ) { }\r\n\r\n getAlertIcon() {\r\n switch (this.data.alertType) {\r\n case AlertType.DONE:\r\n return 'done';\r\n case AlertType.INFO:\r\n return 'info';\r\n case AlertType.WARNING:\r\n return 'warning';\r\n case AlertType.ERROR:\r\n return 'error';\r\n }\r\n }\r\n\r\n public cancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n public confirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { LoggerModule } from 'ngx-logger';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';\r\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatError, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AlertComponent } from './alert/alert.component';\r\nimport { ConfirmComponent } from './confirm/confirm.component';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\n\r\n@NgModule({\r\n declarations: [AlertComponent, ConfirmComponent],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n MatDialogModule, // <--- Aquí\r\n BrowserAnimationsModule, // <--- Aquí\r\n MatButtonModule, // <--- Aquí\r\n MatDividerModule,\r\n MatIconModule,\r\n MatSnackBarModule,\r\n ],\r\n entryComponents: [ConfirmComponent, AlertComponent],\r\n providers: [ ],\r\n})\r\nexport class ComponenteComunModule { }\r\n","export class ConfirmData {\r\n title: string;\r\n content: string;\r\n confirmButtonLabel: string;\r\n closeButtonLabel: string;\r\n \r\n constructor(data?) {\r\n if (data) {\r\n this.title = data.title;\r\n this.content = data.content;\r\n this.confirmButtonLabel = data.confirmButtonLabel;\r\n this.closeButtonLabel = data.closeButtonLabel;\r\n }\r\n }\r\n}\r\n","export default \".modal-title {\\r\\n color: #575757;\\r\\n font-size: 22px !important;\\r\\n font-weight: bold !important;\\r\\n}\\r\\n\\r\\n.modal-content p {\\r\\n font-size: 18px !important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvY29tdW4vY29tcG9uZW50ZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxjQUFjO0lBQ2QsMEJBQTBCO0lBQzFCLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLDBCQUEwQjtBQUM5QiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL2NvbXVuL2NvbXBvbmVudGVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsLXRpdGxlIHtcclxuICAgIGNvbG9yOiAjNTc1NzU3O1xyXG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubW9kYWwtY29udGVudCBwIHtcclxuICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG59Il19 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmData } from './confirm-data';\r\n\r\n@Component({\r\n selector: 'app-confirm',\r\n templateUrl: './confirm.component.html',\r\n styleUrls: ['./confirm.component.css']\r\n})\r\nexport class ConfirmComponent {\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmData\r\n ) { }\r\n\r\n public cancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n public confirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { LoggerModule } from 'ngx-logger';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';\r\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { getSpanishPaginatorIntl } from './SpanishPaginator';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatError, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { LoginComponent } from './modulos/login/login.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InternalServerComponent } from './modulos/internal-server/internal-server.component';\r\nimport { NotFoundComponent } from './modulos/not-found/not-found.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ComponenteComunModule } from './componentes/componenteComun.module';\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, InternalServerComponent, NotFoundComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n LoggerModule.forRoot({\r\n level: environment.logLevel,\r\n serverLogLevel : environment.serverLogLevel,\r\n disableConsoleLogging:false\r\n }), \r\n MatDialogModule,\r\n MatCardModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n MatFormFieldModule, \r\n MatProgressBarModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ComponenteComunModule\r\n ],\r\n providers: [\r\n {provide: ErrorStateMatcher, useClass: ShowOnDirtyErrorStateMatcher},\r\n { provide: MatPaginatorIntl, useValue: getSpanishPaginatorIntl() },\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} }\r\n ],\r\n \r\n})\r\nexport class ComunModule { }\r\n","import { HTTP_INTERCEPTORS, HttpErrorResponse, HttpEvent } from '@angular/common/http';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { switchMap, filter, take, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable, BehaviorSubject } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(public authService: AuthService, private router: Router, private logger: NGXLogger) { }\r\n\r\n /**\r\n * Intercepta las peticiones y añade el token \r\n * @param request peticion\r\n * @param next \r\n */\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add authorization header with jwt token if available\r\n let token: any = localStorage.getItem('JWT_TOKEN');\r\n if (token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n //return next.handle(request);\r\n return next.handle(request).pipe(catchError(err => {\r\n if (err.status === 401) {\r\n // auto logout if 401 response returned from api\r\n localStorage.removeItem('JWT_TOKEN');\r\n localStorage.removeItem('REFRESH_TOKEN');\r\n localStorage.removeItem('CURRENT_USER');\r\n this.router.navigate(['/']);\r\n }\r\n\r\n const error = err || err.error.message || err.statusText;\r\n return throwError(error);\r\n }))\r\n }\r\n}\r\n\r\n/**\r\n * Añade el proveedor del interseptor\r\n */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }\r\n];\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private authService: AuthService, private router: Router){}\r\n \r\n /**\r\n * Dirige a la pagina principal\r\n */\r\n canActivate() {\r\n if (this.authService.isLoggedIn()) {\r\n this.router.navigate(['/plano']);\r\n }\r\n return !this.authService.isLoggedIn();\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { of, Observable, BehaviorSubject } from 'rxjs';\r\nimport { catchError, mapTo, tap, filter, map } from 'rxjs/operators';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { JwtResponse, Profile } from '../../planos/modelo/jwt';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n private API = {\r\n LOGIN: \"/api/login\",\r\n LOGOUT: \"/api/logout\",\r\n REFRESH: \"/api/refresh\"\r\n }\r\n\r\n private loggedUser: string;\r\n public message: any;\r\n private readonly JWT_TOKEN = 'JWT_TOKEN';\r\n private readonly REFRESH_TOKEN = 'REFRESH_TOKEN';\r\n private readonly CURRENT_USER = 'CURRENT_USER';\r\n public currentUserSubject: BehaviorSubject;\r\n public currentUser: Observable;\r\n\r\n constructor(private http: HttpClient) {\r\n this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem(this.CURRENT_USER)));\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Obtener datos de usuario\r\n */\r\n public get currentUserValue(): Profile {\r\n return this.currentUserSubject.value;\r\n }\r\n\r\n /**\r\n * Servicio para validar si existe usuario y crea una sesión \r\n * @param user datos para iniciar sesión\r\n */\r\n public login(user: { username: string, password: string }): Observable {\r\n let params = new HttpParams().set('username', btoa(user.username))\r\n .set('password', btoa(user.password));\r\n return this.http.get(`${this.API.LOGIN}`, {params})\r\n .pipe(map(result => {\r\n if (result.code == 200) {\r\n this.doLoginUser(user.username, result);\r\n }\r\n return result;\r\n }), catchError(error => {\r\n return of({ code: 500, model: null, message: 'No se puede comunicar con el servidor. Por favor, inténtelo de nuevo más tarde.' });\r\n }));\r\n }\r\n\r\n /**\r\n * Servicio que permite eliminar la sesión actual\r\n */\r\n public logout() {\r\n return this.http.post(`${this.API.LOGOUT}`, {\r\n 'refreshToken': this.getRefreshToken()\r\n }).pipe(\r\n tap(() => this.doLogoutUser()),\r\n mapTo(true),\r\n catchError(error => {\r\n return of(false);\r\n }));\r\n }\r\n\r\n /**\r\n * Valida que el token se la sesión este activa\r\n */\r\n public isLoggedIn() {\r\n return !!this.getJwtToken();\r\n }\r\n\r\n\r\n\r\n /**\r\n * Obtiene actualización de token cuando este expirá\r\n */\r\n public refreshToken() {\r\n return this.http.post(`${this.API.REFRESH}`, { 'refreshToken': this.getRefreshToken() })\r\n .pipe(tap((tokens: JwtResponse) => {\r\n this.storeJwtToken(tokens.model.jwt);\r\n this.storeProfile(tokens.model.jwt);\r\n }));\r\n }\r\n\r\n /**\r\n * Obtiene el token almacenado\r\n */\r\n public getJwtToken() {\r\n return localStorage.getItem(this.JWT_TOKEN);\r\n }\r\n\r\n /**\r\n * Almacena los datos de usuario y el token que se obtuvo en el servicio de login\r\n * @param username \r\n * @param tokens \r\n */\r\n private doLoginUser(username: string, tokens: JwtResponse) {\r\n this.message = \"\";\r\n this.loggedUser = username;\r\n this.storeTokens(tokens);\r\n }\r\n\r\n /**\r\n * Elimina datos almacenados del token y usuario\r\n */\r\n public doLogoutUser() {\r\n this.loggedUser = null;\r\n this.removeTokens();\r\n this.currentUserSubject.next(null);\r\n }\r\n\r\n /**\r\n * Obtiene el token que fue actualizado\r\n */\r\n private getRefreshToken() {\r\n return localStorage.getItem(this.REFRESH_TOKEN);\r\n }\r\n\r\n /**\r\n * Almacena el token en un localstorage\r\n * @param jwt token\r\n */\r\n private storeJwtToken(jwt: string) {\r\n localStorage.setItem(this.JWT_TOKEN, jwt);\r\n }\r\n\r\n /**\r\n * Almancena los datos de token y de usauario en un localstorage\r\n * @param tokens \r\n */\r\n private storeTokens(tokens: JwtResponse) {\r\n let profile = this.storeProfile(tokens.model.accessToken);;\r\n localStorage.setItem(this.CURRENT_USER, JSON.stringify(profile));\r\n\r\n localStorage.setItem(this.JWT_TOKEN, tokens.model.accessToken);\r\n localStorage.setItem(this.REFRESH_TOKEN, tokens.model.refreshToken);\r\n }\r\n\r\n /**\r\n * Elimina elementos del localstorage\r\n */\r\n private removeTokens() {\r\n localStorage.removeItem(this.CURRENT_USER);\r\n localStorage.removeItem(this.JWT_TOKEN);\r\n localStorage.removeItem(this.REFRESH_TOKEN);\r\n }\r\n\r\n /**\r\n * Decodifica el token para obtener los datos de perfil de usuario que inicio sesión\r\n * @param token clave de la sesión\r\n */\r\n private storeProfile(token: string): Profile {\r\n const helper = new JwtHelperService();\r\n const decodedToken = helper.decodeToken(token);\r\n let profile = decodedToken as Profile;\r\n const expirationDate = helper.getTokenExpirationDate(token);\r\n const isExpired = helper.isTokenExpired(token);\r\n this.currentUserSubject.next(profile);\r\n return profile;\r\n }\r\n\r\n public getProfile() {\r\n return !!localStorage.getItem(this.CURRENT_USER);\r\n }\r\n\r\n public checkSession() {\r\n let expired:boolean = true; //Cargar siempre; \r\n if (this.currentUserValue !== undefined && this.currentUserValue !== null){\r\n let exp = new Date (this.currentUserValue.exp);\r\n let current = new Date(); \r\n expired = !(exp.getTime() > current.getTime());\r\n }\r\n if (expired){\r\n localStorage.clear();\r\n this.currentUserSubject.next(null);\r\n \r\n } \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorHandlerService {\r\n\r\n public errorMessage: string = '';\r\n \r\n constructor(private router: Router) { }\r\n \r\n public handleError(error: HttpErrorResponse){\r\n if(error.status === 500){\r\n this.handle500Error(error);\r\n }\r\n else if(error.status === 404){\r\n this.handle404Error(error)\r\n }\r\n else{\r\n this.handleOtherError(error);\r\n }\r\n }\r\n \r\n private handle500Error(error: HttpErrorResponse){\r\n this.createErrorMessage(error);\r\n this.router.navigate(['/500']);\r\n }\r\n \r\n private handle404Error(error: HttpErrorResponse){\r\n this.createErrorMessage(error);\r\n this.router.navigate(['/404']);\r\n }\r\n \r\n private handleOtherError(error: HttpErrorResponse){\r\n this.createErrorMessage(error);\r\n //TODO: this will be fixed later;\r\n }\r\n \r\n private createErrorMessage(error: HttpErrorResponse){\r\n this.errorMessage = error.error ? error.error : error.statusText;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomeGuard implements CanActivate, CanLoad {\r\n constructor (private authService:AuthService, private router:Router){}\r\n \r\n canActivate(){\r\n return this.canLoad();\r\n }\r\n\r\n canLoad() {\r\n this.authService.checkSession();\r\n // If the user is not logged in we'll send them back to the home page\r\n if (!this.authService.getProfile()) {\r\n this.router.navigate(['/']);\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AlertComponent } from '../componentes/alert/alert.component';\r\nimport { ConfirmData } from '../componentes/confirm/confirm-data';\r\nimport { ConfirmComponent } from '../componentes/confirm/confirm.component';\r\nimport { AlertData, AlertType } from '../modelo/config.http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n constructor(\r\n public dialog: MatDialog\r\n ) { }\r\n\r\n getAlertTitle(alertType: AlertType) {\r\n switch (alertType) {\r\n case AlertType.DONE:\r\n return 'Correcto';\r\n case AlertType.INFO:\r\n return 'Información';\r\n case AlertType.WARNING:\r\n return 'Advertencia';\r\n case AlertType.ERROR:\r\n return 'Error';\r\n }\r\n }\r\n\r\n openAlert(title:string, message: string, alertType: AlertType) {\r\n const dialogRef = this.dialog.open(AlertComponent, {\r\n width: '400px',\r\n data: new AlertData({\r\n title,\r\n content: message,\r\n closeButtonLabel: 'Cerrar',\r\n alertType: alertType\r\n })\r\n });\r\n }\r\n\r\n openDoneModal(title, message: string) {\r\n this.openAlert(title, message, AlertType.DONE);\r\n }\r\n \r\n openInfoModal(title, message: string) {\r\n this.openAlert(title, message, AlertType.INFO);\r\n }\r\n\r\n openWarningModal(title, message: string) {\r\n this.openAlert(title, message, AlertType.WARNING);\r\n }\r\n\r\n openErrorModal(title, message: string) {\r\n this.openAlert(title, message, AlertType.ERROR);\r\n }\r\n\r\n openConfirm(title:string, message: string, callBackFunction: Function) {\r\n const dialogRef = this.dialog.open(ConfirmComponent, {\r\n width: '400px',\r\n data: new ConfirmData({\r\n title: `Confirmar: ${title}`,\r\n content: message,\r\n confirmButtonLabel: 'Aceptar',\r\n closeButtonLabel: 'Cancelar'\r\n })\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => callBackFunction(result));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(public snackBar:MatSnackBar) { }\r\n\r\n show(message:string, type?:string, duration?:any){\r\n this.snackBar.open(message, '',{\r\n duration:duration?duration:2000,\r\n panelClass:[type],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n })\r\n }\r\n}\r\n","export const url = {\r\n apiUrl: 'http://localhost:8080',\r\n main: \"/plano/orden\",\r\n load: \"/plano/cargar\",\r\n //map:\"/oferta/revisar/\",\r\n map:\"/plano/mapa/\",\r\n login: \"/login\",\r\n api: { }\r\n\r\n};\r\n\r\nexport enum Section{\r\n ORDER = 'ov',\r\n EQM = 'eq',\r\n OFERTA = 'of'\r\n}\r\n\r\nexport enum MainLayer{\r\n CONSTRUCCION='sconstrucciones'\r\n}\r\n\r\nexport enum AlertType {\r\n DONE, INFO, WARNING, ERROR\r\n }\r\n\r\n export class AlertData {\r\n title: string;\r\n content: string;\r\n alertType: AlertType;\r\n closeButtonLabel: string;\r\n \r\n constructor(data?) {\r\n if (data) {\r\n this.title = data.title;\r\n this.content = data.content;\r\n this.alertType = data.alertType;\r\n this.closeButtonLabel = data.closeButtonLabel;\r\n }\r\n }\r\n}","export default \".container{\\r\\n height: 100vh;\\r\\n}\\r\\n.internal-msg{\\r\\n color:#ffa000;\\r\\n}\\r\\n.internal{\\r\\n font-size: 6em;\\r\\n color:#fff;\\r\\n align-content: center;\\r\\n}\\r\\n.internal-submsg{\\r\\n color: #79C814;\\r\\n}\\r\\n.internal-card{\\r\\n background: rgb(60, 60, 60);\\r\\n}\\r\\n.content-center-text{\\r\\n text-align: center;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvY29tdW4vbW9kdWxvcy9pbnRlcm5hbC1zZXJ2ZXIvaW50ZXJuYWwtc2VydmVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxjQUFjO0lBQ2QsVUFBVTtJQUNWLHFCQUFxQjtBQUN6QjtBQUNBO0lBQ0ksY0FBYztBQUNsQjtBQUNBO0lBQ0ksMkJBQTJCO0FBQy9CO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9jb211bi9tb2R1bG9zL2ludGVybmFsLXNlcnZlci9pbnRlcm5hbC1zZXJ2ZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXJ7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG59XHJcbi5pbnRlcm5hbC1tc2d7XHJcbiAgICBjb2xvcjojZmZhMDAwO1xyXG59XHJcbi5pbnRlcm5hbHtcclxuICAgIGZvbnQtc2l6ZTogNmVtO1xyXG4gICAgY29sb3I6I2ZmZjtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG4uaW50ZXJuYWwtc3VibXNne1xyXG4gICAgY29sb3I6ICM3OUM4MTQ7XHJcbn1cclxuLmludGVybmFsLWNhcmR7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjAsIDYwLCA2MCk7XHJcbn1cclxuLmNvbnRlbnQtY2VudGVyLXRleHR7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn0iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { url } from '../../modelo/config.http';\r\n\r\n@Component({\r\n selector: 'app-internal-server',\r\n templateUrl: './internal-server.component.html',\r\n styleUrls: ['./internal-server.component.css']\r\n})\r\nexport class InternalServerComponent implements OnInit {\r\n\r\n constructor(private router:Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n redirectToIndex(){\r\n this.router.navigate([`${url.main}`]);\r\n }\r\n}\r\n","export default \".u-derechos {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 14px;\\r\\n line-height: 1.42857143;\\r\\n color: white;\\r\\n margin-top: -45px;\\r\\n display: block;\\r\\n position: relative;\\r\\n bottom: 0;\\r\\n text-align: center;\\r\\n width: 100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvY29tdW4vbW9kdWxvcy9sb2dpbi9sb2dpbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksMkRBQTJEO0lBQzNELGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsV0FBVztBQUNmIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvY29tdW4vbW9kdWxvcy9sb2dpbi9sb2dpbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnUtZGVyZWNob3Mge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgbWFyZ2luLXRvcDogLTQ1cHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59Il19 */\";","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../datos/auth.service';\r\nimport { NotificationService } from '../../datos/notification.service';\r\nimport { url } from '../../modelo/config.http';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n public loginForm: FormGroup;\r\n public errorMessages: string = \"\";\r\n public $loginLoading:Boolean= false;\r\n public messageError:string=\"\";\r\n public year = new Date().getFullYear();\r\n\r\n constructor(private authService: AuthService, private formBuilder: FormBuilder,\r\n private router: Router, public notify: NotificationService) { }\r\n\r\n ngOnInit() {\r\n this.loginForm = this.formBuilder.group({\r\n username: new FormControl('', [Validators.required]),\r\n password: new FormControl('', [Validators.required])\r\n });\r\n }\r\n get f() { return this.loginForm.controls; }\r\n\r\n /**\r\n * Tipo de usuario, desarrollador o revisor \r\n * @param event Evento de cambio del radio\r\n */\r\n\r\n /**\r\n * Envia los datos de inicio de sesión\r\n */\r\n login(e?:any) {\r\n this.$loginLoading = true;\r\n this.authService.login({username:this.f.username.value, password:this.f.password.value}).subscribe(result=>{\r\n this.$loginLoading = false;\r\n if (result.code == 200){\r\n this.router.navigate([`${url.main}`]);\r\n }else{ \r\n this.messageError = result.message;\r\n setTimeout(()=>{ this.messageError=\"\"; }, 5000); \r\n }\r\n })\r\n }\r\n goLogin(e:any){\r\n console.log(e.target.value);\r\n }\r\n}\r\n","export default \".container{\\r\\n height: 100vh;\\r\\n}\\r\\nh1{\\r\\n color:#ffa000;\\r\\n}\\r\\nh2{\\r\\n font-size: 6em;\\r\\n color:#fff;\\r\\n align-content: center;\\r\\n}\\r\\n.nofound-card{\\r\\n background: rgb(60, 60, 60);\\r\\n text-align: center;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvY29tdW4vbW9kdWxvcy9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxhQUFhO0FBQ2pCO0FBQ0E7SUFDSSxjQUFjO0lBQ2QsVUFBVTtJQUNWLHFCQUFxQjtBQUN6QjtBQUNBO0lBQ0ksMkJBQTJCO0lBQzNCLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL2NvbXVuL21vZHVsb3Mvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lcntcclxuICAgIGhlaWdodDogMTAwdmg7XHJcbn1cclxuaDF7XHJcbiAgICBjb2xvcjojZmZhMDAwO1xyXG59XHJcbmgye1xyXG4gICAgZm9udC1zaXplOiA2ZW07XHJcbiAgICBjb2xvcjojZmZmO1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG59XHJcbi5ub2ZvdW5kLWNhcmR7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjAsIDYwLCA2MCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn0iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { url } from '../../modelo/config.http';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.css']\r\n})\r\nexport class NotFoundComponent implements OnInit {\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n redirectToHome(){\r\n this.router.navigate([`${url.main}`]);\r\n }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { LayerTableComponent } from './layer-table/layer-table.component';\r\nimport { ControlLayersComponent } from './control-layers/control-layers.component';\r\nimport { RejectionOvComponent } from './rejection-ov/rejection-ov.component';\r\nimport { SelectFeaturesComponent } from './select-features/select-features.component';\r\nimport { ResultValidCUVComponent } from './result-valid-cuv/result-valid-cuv.component';\r\nimport { MeasureComponent } from './measure/measure.component';\r\nimport { ControlService } from '../datos/control.service';\r\nimport { InfoStatisticsComponent } from './info-statistics/info-statistics.component';\r\nimport { CopyFeaturesComponent } from './copy-features/copy-features.component';\r\nimport { ComunModule } from '../../comun/comun.module';\r\n//\r\n// Form Controls\r\n//\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\n//\r\n// Navigation\r\n//\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n//\r\n// Layout\r\n//\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//\r\n// Buttons & Indicators\r\n//\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\n//\r\n// Popups & Modals\r\n//\r\n\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n//\r\n// Data Table\r\n//\r\n\r\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\n\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { getSpanishPaginatorIntl } from '../../comun/SpanishPaginator';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n\r\n@NgModule({\r\n declarations: [ \r\n LayerTableComponent, \r\n ControlLayersComponent, \r\n RejectionOvComponent, \r\n SelectFeaturesComponent, \r\n ResultValidCUVComponent, \r\n MeasureComponent, InfoStatisticsComponent, CopyFeaturesComponent],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n FlexLayoutModule,\r\n ComunModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n //MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n //MatSliderModule,\r\n //MatSlideToggleModule,\r\n\r\n //MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n\r\n MatCardModule,\r\n //MatDividerModule,\r\n MatExpansionModule,\r\n //MatGridListModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatTreeModule,\r\n\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n //MatBadgeModule,\r\n //MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n\r\n //MatBottomSheetModule,\r\n MatDialogModule,\r\n MatSnackBarModule,\r\n MatTooltipModule,\r\n\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule,\r\n \r\n DragDropModule,\r\n FlexLayoutModule,\r\n\r\n //A11yModule,\r\n //ClipboardModule,\r\n //PortalModule,\r\n ScrollingModule,\r\n MatToolbarModule,\r\n //CdkStepperModule,\r\n //CdkTableModule,\r\n //CdkTreeModule,\r\n //MatNativeDateModule\r\n\r\n \r\n ],\r\n entryComponents: [InfoStatisticsComponent, LayerTableComponent],\r\n exports:[ControlLayersComponent,LayerTableComponent,\r\n RejectionOvComponent, \r\n SelectFeaturesComponent, \r\n ResultValidCUVComponent, \r\n MeasureComponent,CopyFeaturesComponent],\r\n providers:[ ControlService,\r\n { provide: MatPaginatorIntl, useValue: getSpanishPaginatorIntl() },\r\n { provide: MAT_DATE_LOCALE, useValue: 'es-ES' },\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} } ],\r\n schemas:[NO_ERRORS_SCHEMA,CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ComponentesModule { }\r\n","export default \".mat-icon-button {\\r\\n padding: 0;\\r\\n min-width: 0;\\r\\n width: 28px !important;\\r\\n height: 28px !important;\\r\\n flex-shrink: 0;\\r\\n line-height: 28px !important;\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.panel-expansion,\\r\\n.panel-expansion:hover {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n.panel-expansion .mat-expansion-panel {\\r\\n box-shadow: none;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.panel-expansion>.mat-expansion-panel-header {\\r\\n height: 28px !important;\\r\\n padding: 0 5px;\\r\\n background: transparent;\\r\\n font-size: 10px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9jb250cm9sLWxheWVycy9jb250cm9sLWxheWVycy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksVUFBVTtJQUNWLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCw0QkFBNEI7SUFDNUIsa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLHVCQUF1QjtBQUMzQjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIsY0FBYztJQUNkLHVCQUF1QjtJQUN2QixlQUFlO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9jb250cm9sLWxheWVycy9jb250cm9sLWxheWVycy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1pY29uLWJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgd2lkdGg6IDI4cHggIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG4ucGFuZWwtZXhwYW5zaW9uLFxyXG4ucGFuZWwtZXhwYW5zaW9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4ucGFuZWwtZXhwYW5zaW9uIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4ucGFuZWwtZXhwYW5zaW9uPi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XHJcbiAgICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbn0iXX0= */\";","import { Component, OnInit, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree';\r\nimport ToolsMap from '../utils/Tools.map';\r\nimport { ControlService } from '../../datos/control.service';\r\nimport { LayerTableComponent } from '../layer-table/layer-table.component';\r\nimport { LayerFlatNode, LayerNode, Plano, ProjectContent } from '../../modelo';\r\n\r\n@Component({\r\n selector: 'app-control-layers',\r\n templateUrl: './control-layers.component.html',\r\n styleUrls: ['./control-layers.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ControlLayersComponent implements OnChanges {\r\n @Input() content = null;\r\n public listLayers;\r\n private projectContent: ProjectContent;\r\n private infoExtra:any;\r\n public currentPlano: Plano;\r\n checklistSelectionOLy = new SelectionModel(true /* multiple */);\r\n \r\n private _transformer = (node: LayerNode, level: number) => {\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n nkey: node.wms,\r\n layer: node.layer,\r\n view: node.view,\r\n level: level,\r\n };\r\n }\r\n getLevel = (node: LayerFlatNode) => node.level;\r\n treeControl = new FlatTreeControl(node => node.level, node => node.expandable);\r\n treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);\r\n dsOficialLayers = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n hasChild = (_: number, node: LayerFlatNode) => node.expandable;\r\n\r\n constructor(private control: ControlService, public dialog: MatDialog,\r\n private readonly matIconRegistry: MatIconRegistry,\r\n private readonly sanitizer: DomSanitizer) {\r\n this.matIconRegistry.addSvgIcon('point', this.sanitizer.bypassSecurityTrustResourceUrl(\"/assets/img/map/point.svg\"));\r\n this.matIconRegistry.addSvgIcon('rectangle', this.sanitizer.bypassSecurityTrustResourceUrl(\"/assets/img/map/rectangle.svg\"));\r\n this.matIconRegistry.addSvgIcon('line', this.sanitizer.bypassSecurityTrustResourceUrl(\"/assets/img/map/line.svg\"));\r\n }\r\n\r\n ngOnChanges(e) {\r\n let current = e.content.currentValue;\r\n if (current == null) return;\r\n this.projectContent = current.project;\r\n this.createControlLayer(current.dlayer);\r\n this.currentPlano = current.order;\r\n this.infoExtra = {role:current.role, info:current.info};\r\n }\r\n\r\n /**\r\n * Crea el control de capas dependiendo del perfil\r\n * @param declaredLayers Lista de capas\r\n */\r\n private createControlLayer(declaredLayers) {\r\n if (this.projectContent == undefined) return;\r\n let listLayers = JSON.parse(JSON.stringify(this.projectContent.layers));\r\n this.dsOficialLayers.data = [];\r\n\r\n listLayers.forEach(parent => {\r\n let newgeneral: LayerNode[] = [];\r\n let allLayers: any[] = [];\r\n parent.children.forEach(parent => {\r\n \r\n let newChildren: LayerNode[] = [];\r\n let newLayers: any[] = [];\r\n parent.children.forEach(child => {\r\n\r\n if (child.wms.indexOf(\":\") != -1) {\r\n child.view = false;\r\n child.layer = ToolsMap.createWMS(this.control.L, this.projectContent.url, child);\r\n newChildren.push(child);\r\n newLayers.push(child.layer);\r\n allLayers.push(child.layer);\r\n } else {\r\n if (declaredLayers.length > 0) {\r\n let find = declaredLayers.filter(e => e.tblkey == child.wms);\r\n let layerFind = find[0]\r\n if (layerFind !== undefined) {\r\n let geojson = layerFind.geojson;\r\n let geometryType = geojson.features[0].geometry.type;\r\n let defaultStyle = ToolsMap.setStyle(layerFind.styles, geometryType);\r\n\r\n let _group = layerFind.tblname;\r\n _group = _group.substring(0, 3);\r\n\r\n child.layer = ToolsMap.createGeoJSON(this.control.L, geometryType, geojson.features, defaultStyle, child.name, child.wms, _group, layerFind.tblname)\r\n newChildren.push(child);\r\n child.copied = (layerFind.main > 0);\r\n child.verify = layerFind.verificar;\r\n\r\n this.control.infoGroupLayer.push(child);\r\n\r\n newLayers.push(child.layer)\r\n allLayers.push(child.layer);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (newChildren.length > 0) {\r\n parent.children = newChildren;\r\n parent.layer = this.control.L.featureGroup(newLayers, { title: parent.name })\r\n if (newChildren.length != 0) newgeneral.push(parent);\r\n }\r\n })\r\n\r\n if (newgeneral.length > 0) {\r\n parent.children = newgeneral;\r\n parent.layer = this.control.L.featureGroup(allLayers, { title: parent.name })\r\n }\r\n });\r\n\r\n this.dsOficialLayers.data = listLayers.filter(l => l.layer !== undefined);\r\n this.control.listLayers = listLayers;\r\n this.checkDeclaredCartography();\r\n }\r\n\r\n /**\r\n * Metodo que sirve para prender y apagar las capas geojson\r\n * @param wms \r\n */\r\n toggleLayer(wms, view) {\r\n if (wms == null) return;\r\n if (view == null) {\r\n view = !wms.options.view;\r\n }\r\n wms.options.view = view;\r\n if (view) {\r\n wms.addTo(this.control.map);\r\n } else {\r\n wms.remove(this.control.map);\r\n }\r\n }\r\n\r\n /* * * * * * * * * * CONTROL DE CAPAS (TREE) * * * * * * * * * * */\r\n /** Seleccionar las capas declaradas por el desarrollador*/\r\n checkDeclaredCartography() {\r\n let show = false, center = false;\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].name == 'Cartografía declarada') {\r\n const descendants = this.treeControl.getDescendants(this.treeControl.dataNodes[i]);\r\n this.checklistSelectionOLy.select(...descendants);\r\n this.treeControl.expand(this.treeControl.dataNodes[i]);\r\n }\r\n if (this.treeControl.dataNodes[i].layer != null && this.treeControl.dataNodes[i].nkey != undefined) {\r\n if(ToolsMap.declaredLayers.includes(this.treeControl.dataNodes[i].nkey)){\r\n //if (this.treeControl.dataNodes[i].nkey.indexOf(':') == -1) {\r\n this.toggleLayer(this.treeControl.dataNodes[i].layer, true);\r\n center = true;\r\n }\r\n }\r\n }\r\n if (center) { this.centerDeclaredCartography(); }\r\n }\r\n\r\n /** Si se seleccionan todos los descendientes del nodo. */\r\n descendantsAllSelected(node: LayerFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelectionOLy.isSelected(child)\r\n );\r\n return descAllSelected;\r\n }\r\n\r\n /**Si parte de los descendientes están seleccionados */\r\n descendantsPartiallySelected(node: LayerFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelectionOLy.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /**Seleccionar/ deseleccionar todo los nodos descendinetes */\r\n todoItemSelectionToggle(node: LayerFlatNode): void {\r\n this.checklistSelectionOLy.toggle(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n this.checklistSelectionOLy.isSelected(node)\r\n ? this.checklistSelectionOLy.select(...descendants)\r\n : this.checklistSelectionOLy.deselect(...descendants);\r\n\r\n // Forzar la actualización del padre\r\n descendants.every(child =>\r\n this.checklistSelectionOLy.isSelected(child)\r\n );\r\n\r\n let show = this.checklistSelectionOLy.isSelected(node)\r\n\r\n if (node.layer != null) {\r\n this.toggleLayer(node.layer, show);\r\n let layers = node.layer._layers;\r\n for (let j in layers) {\r\n this.toggleLayer(layers[j], show);\r\n }\r\n }\r\n }\r\n\r\n /**Toggle una selección de elementos de tareas de hijos. Verifica a todos los padres para ver si cambiaron */\r\n todoLeafItemSelectionToggle(node: LayerFlatNode): void {\r\n this.checklistSelectionOLy.toggle(node);\r\n this.checkAllParentsSelection(node);\r\n let selected = node.layer;\r\n let show = this.checklistSelectionOLy.isSelected(node);\r\n this.toggleLayer(selected, show)\r\n }\r\n\r\n /*Revisa a los padress si el nodo hijo es seleccionado o deseleccionado */\r\n checkAllParentsSelection(node: LayerFlatNode): void {\r\n let parent: LayerFlatNode | null = this.getParentNode(node);\r\n while (parent) {\r\n this.checkRootNodeSelection(parent);\r\n parent = this.getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Revisa el estado del nodo raiz y lo cambia si es necesario */\r\n checkRootNodeSelection(node: LayerFlatNode): void {\r\n const nodeSelected = this.checklistSelectionOLy.isSelected(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelectionOLy.isSelected(child)\r\n );\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelectionOLy.deselect(node);\r\n } else if (!nodeSelected && descAllSelected) {\r\n this.checklistSelectionOLy.select(node);\r\n }\r\n }\r\n\r\n /* Obtiene el nodo padre de un nodo */\r\n getParentNode(node: LayerFlatNode): LayerFlatNode | null {\r\n const currentLevel = this.getLevel(node);\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Centrar a la catografía declarada\r\n */\r\n centerDeclaredCartography() {\r\n let center = this.treeControl.dataNodes.filter(n => n.name == \"Cartografía declarada\");\r\n if (center[0].layer.getBounds()._northEast != undefined) {\r\n this.control.map.fitBounds(center[0].layer.getBounds());\r\n this.control.setCoordDeclaredCarto(center[0].layer.getBounds())\r\n }\r\n }\r\n\r\n /**\r\n * Obtener color de la capa declarada\r\n * @param node capa\r\n */\r\n getColor(node) {\r\n let color = ToolsMap.getColorDeclared(node.layer);//(node.layer.options.type != undefined ? ToolsMap.getColorDeclared(node.layer) : \"\");\r\n return color;\r\n }\r\n\r\n /**\r\n * Recupera la leyenda del wms o la simbologia de la capa declarada\r\n * @param node \r\n */\r\n getLegend(node) {\r\n let url = \"\";\r\n url = ToolsMap.declaredLayers.includes(node.nkey)?ToolsMap.getSymbologyDeclared(node.layer) : ToolsMap.setParamsWFS(this.control.L, this.projectContent.url, node.nkey);\r\n //url = (node.layer.options.type != undefined ? ToolsMap.getSymbologyDeclared(node.layer) : ToolsMap.setParamsWFS(this.control.L, this.projectContent.url, node.nkey));\r\n return url;\r\n }\r\n\r\n /**\r\n * Abrir tabla de atributos de la capa seleccionada\r\n * @param node \r\n */\r\n openTable(node) {\r\n if (node.layer == null) return;\r\n const dialogRef = this.dialog.open(LayerTableComponent, {\r\n data: { action: 'read', name: node.name, layer: node.layer },\r\n hasBackdrop: false,\r\n closeOnNavigation: true,\r\n panelClass: \"sicap-dialog-container\",\r\n position: { bottom: '0%', left: '20%' }\r\n });\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL21hcGEvY29tcG9uZW50ZXMvY29weS1mZWF0dXJlcy9jb3B5LWZlYXR1cmVzLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Input, OnChanges } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport ToolsMap from '../utils/Tools.map';\r\nimport { CartographyPanel, GeneralMessages, MessagesPanel, StyleLayer } from '../../modelo';\r\nimport { ControlService, MapService } from '../../datos';\r\nimport { ModalService } from 'src/app/sicap/comun/datos/modal.service';\r\nimport { MainLayer, Section } from '../../../comun/modelo/config.http';\r\nimport { INIT } from '../../modelo/DeclaredLayer';\r\n\r\n@Component({\r\n selector: 'app-copy-features',\r\n templateUrl: './copy-features.component.html',\r\n styleUrls: ['./copy-features.component.css']\r\n})\r\nexport class CopyFeaturesComponent implements OnInit {\r\n @Input() currentPlano;\r\n public messageCopy:MessagesPanel = INIT.message();\r\n public disablePanel: CartographyPanel = { dwelling: false, other: true, equipment: true, vial: true }\r\n public waiting$ = false;\r\n public reviewMessage: GeneralMessages = { disable: false, text: null, class: null, list: [] };\r\n public validCuvsMessage: GeneralMessages = { disable: false, text: null, class: null };\r\n public isEqm = false;\r\n\r\n constructor(private control: ControlService, public modalService: ModalService,\r\n private mapService: MapService, public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.control.infoGroupLayer.length > 0) {\r\n switch (this.currentPlano.module){ \r\n case Section.EQM:\r\n this.isEqm = true;\r\n let isSelected = this.control.infoGroupLayer.filter(e => e.layer.selected == true);\r\n this.disablePanel.other = !(isSelected.length > 0); \r\n break;\r\n default:\r\n let copied = this.control.infoGroupLayer.filter(l => l.copied == true && l.wms == MainLayer.CONSTRUCCION);\r\n let nocopied = this.control.infoGroupLayer.filter(l => l.copied == false && l.wms != MainLayer.CONSTRUCCION);\r\n if (copied.length > 0) {\r\n this.disablePanel.dwelling = true;\r\n this.disablePanel.other = nocopied.length > 0 ? false : true; \r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n /** Validar sembrado temporal vs public y muestra mensaje*/\r\n copyCartography(type) {\r\n this.waiting$ = true;\r\n let selectedObjects = null;\r\n switch (type) {\r\n case 'smb_construcciones':\r\n this.sendDwelling(type, '');\r\n break;\r\n case '':\r\n selectedObjects = this.getFeaturesID();\r\n if (selectedObjects.element == null) {\r\n this.modalService.openWarningModal(\"Copiar\", \"No hay elementos seleccionados\");\r\n } else {\r\n this.control.hideTool({tool:'acceptedOrder',action:true});\r\n //this.control.hideTool('acceptedOrder');\r\n this.sendCartography(selectedObjects.element);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Regresa los identificadores de los elementos seleccionados\r\n */\r\n private getFeaturesID(): any {\r\n let selectedObjects = { total: 0, selected: 0, element: null };\r\n\r\n let listSelectedId = [];\r\n selectedObjects.total = this.control.infoGroupLayer.filter(e => e.wms != MainLayer.CONSTRUCCION).length;\r\n selectedObjects.selected = this.control.infoGroupLayer.filter(e => e.layer.selected == true && e.wms != MainLayer.CONSTRUCCION).length;\r\n\r\n if (selectedObjects.selected > 0) {\r\n this.control.infoGroupLayer.forEach(item => {\r\n var copied = item.copied != undefined ? item.copied : false;\r\n if (!copied && item.wms != MainLayer.CONSTRUCCION && item.layer.options.view == true) {\r\n const valueArray = Object.values(item.layer._layers);\r\n let featureSelected = [];\r\n valueArray.forEach((v: any) => {\r\n if (v.selected == true) featureSelected.push(v.feature.id);\r\n });\r\n listSelectedId.push({ key: item.layer.options.tblname, ids: featureSelected });\r\n }\r\n })\r\n selectedObjects.element = listSelectedId;\r\n };\r\n return selectedObjects;\r\n }\r\n\r\n /**\r\n * enviar datos para copiarlos a capas publicas \r\n * @param elements \r\n */\r\n private sendCartography(elements: any[]) {\r\n this.mapService.copyCartography(this.currentPlano.num, JSON.stringify(elements), this.currentPlano.module).subscribe(response => {\r\n this.waiting$ = false;\r\n if (response.code == 200) {\r\n elements.forEach(l => this.setCopiedLayer(l.key) );\r\n this.messageCopy.other = this.loadDuplicate(response.model);\r\n //var mandatory = this.control.infoGroupLayer.filter(l=> l.copied == false && l.layer.options.group.indexOf('smb') != -1);\r\n var noCopied = this.control.infoGroupLayer.filter(l => l.copied == false && l.layer.options.group.indexOf('smb') == -1);\r\n if (response.message == ''){ \r\n this.disablePanel.other = noCopied.length > 0 ? false : true; \r\n }else{\r\n this.modalService.openErrorModal(\"Copiar\", response.message);\r\n } \r\n } else {\r\n this.modalService.openErrorModal(\"Copiar\", response.message);\r\n this.control.hideTool({tool:'acceptedOrder',action:false});\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Envía la información para ser almacenada en la base de datos\r\n * @param type tipo de cartografía ({nombre de la tabla}, sembrado, equipamientos, vialidad)\r\n * @param listIds lista de identificadores seleccionados \r\n */\r\n private sendDwelling(type, listIds?) {\r\n this.mapService.copyDwelling(this.currentPlano.num, type, listIds, this.currentPlano.module)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { this.waiting$ = false; /*this.loadStatistics();*/ })\r\n )\r\n .subscribe(response => {\r\n this.waiting$ = false;\r\n if (response == null) return;\r\n if (response['code'] == 200) {\r\n this.setCopiedLayer(type);\r\n this.disablePanel.dwelling = true;\r\n this.disablePanel.other = false;\r\n this.messageCopy.dwelling = response['model'];\r\n \r\n } else {\r\n this.modalService.openErrorModal(\"Copiar smb_contrucciones\", response['message'])\r\n }\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Actualizar array de capas copiadas\r\n * @param typeInitial \r\n */\r\n setCopiedLayer(typeInitial: string) {\r\n let layerCopied = this.control.infoGroupLayer.filter(l => l.layer.options.tblname == typeInitial);\r\n layerCopied.forEach(l => {\r\n l.copied = true;\r\n l.layer.setStyle(l.layer.options.defaultStyle)\r\n l.layer.selected = false;\r\n l.n_selected = 0;\r\n })\r\n }\r\n\r\n /**\r\n * Asignación de capa en leaflet de los duplicados\r\n * @param data Resultado de la capa almacenada\r\n */\r\n loadDuplicate(data): any[] {\r\n data.forEach(e => {\r\n let geojson = e.geojson;\r\n if (geojson.features != 'null' && geojson.features != null) {\r\n let geometryType = geojson.features[0].geometry.type;\r\n let styleError: StyleLayer = ToolsMap.errorStyle;\r\n let defaultStyle = ToolsMap.setStyle(styleError, geometryType);\r\n e.layer = ToolsMap.createGeoJSON(this.control.L, geometryType, geojson.features, defaultStyle, \"\", \"d\" + e.tblkey, 'error', '')\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n /**\r\n * Revisar discponibilidad de cuvs\r\n */\r\n reviewCuvs() {\r\n this.mapService.reviewCUVxOrderNumber(this.currentPlano.num).subscribe(res => {\r\n if (res.code == 200) {\r\n this.reviewMessage.text = res.message;\r\n this.reviewMessage.class = 'succes';\r\n this.reviewMessage.list = [];\r\n this.reviewMessage.disable = true;\r\n this.disablePanel.dwelling = !(res.code == 200)\r\n } else if (res.code == 409) {\r\n this.reviewMessage.text = res.model['review'] != null ? 'Las cuvs ya existen en RUV' : '';\r\n this.reviewMessage.class = res.model['review'] != null ? 'warning' : 'succes';\r\n this.reviewMessage.list = res.model['review'] != null ? res.model['review'] : [];\r\n this.validCuvsMessage.text = res.model['valid'] != null ? res.model['valid'] : null;\r\n this.validCuvsMessage.class = res.model['valid'] != null ? 'warning' : 'succes';\r\n } else {\r\n this.modalService.openErrorModal(\"Revisar CUV's\", res.message);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Metodo que sirve para prender y apagar las capas geojson\r\n * @param wms \r\n */\r\n toggleLayer(wms, view) {\r\n if (wms == null) return;\r\n if (view == null) {\r\n view = !wms.options.view;\r\n }\r\n wms.options.view = view;\r\n if (view) {\r\n wms.addTo(this.control.map);\r\n } else {\r\n wms.remove(this.control.map);\r\n }\r\n }\r\n\r\n /**\r\n * Activar y desactivar capa de errores\r\n * @param e \r\n * @param info \r\n */\r\n changeCopyLayer(e, info) {\r\n this.toggleLayer(info.layer, e.checked);\r\n }\r\n\r\n}\r\n","export default \".mat-list-item {\\r\\n height: 18px;\\r\\n}\\r\\n\\r\\n.msg-info {\\r\\n font-size: 12px;\\r\\n text-align: justify;\\r\\n word-break: break-all;\\r\\n}\\r\\n\\r\\n.content-info {\\r\\n font-size: 12px;\\r\\n height: 400px;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif !important;\\r\\n}\\r\\n\\r\\n.title {\\r\\n font-weight: bold;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9pbmZvLXN0YXRpc3RpY3MvaW5mby1zdGF0aXN0aWNzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsYUFBYTtJQUNiLHNFQUFzRTtBQUMxRTs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixlQUFlO0FBQ25COztBQUVBO0lBQ0ksV0FBVztJQUNYLDhCQUE4QjtBQUNsQyIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL21hcGEvY29tcG9uZW50ZXMvaW5mby1zdGF0aXN0aWNzL2luZm8tc3RhdGlzdGljcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1saXN0LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG59XHJcblxyXG4ubXNnLWluZm8ge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuLmNvbnRlbnQtaW5mbyB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBoZWlnaHQ6IDQwMHB4O1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGl0bGUge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbn1cclxuXHJcbi5oZWFkLXRpdGxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiKDIyOSwgMjI5LCAyMjkpO1xyXG59Il19 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DataDialog, Plano } from '../../modelo/DeclaredLayer';\r\n\r\n\r\n@Component({\r\n selector: 'app-info-statistics',\r\n templateUrl: './info-statistics.component.html',\r\n styleUrls: ['./info-statistics.component.css']\r\n})\r\nexport class InfoStatisticsComponent implements OnInit {\r\n public currentPlano : Plano;\r\n public summary : any;\r\n public statistic: any;\r\n public uRole:string;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) private data:DataDialog) { \r\n }\r\n\r\n ngOnInit() {\r\n this.currentPlano = this.data.item.order;\r\n this.statistic = this.data.item.statistic;\r\n this.summary= this.data.item.summary;\r\n this.uRole = this.data.item.uRoleKey;\r\n }\r\n\r\n}\r\n","export default \".table-select table {\\r\\n width: 100%;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif !important;\\r\\n}\\r\\n\\r\\n.table-select td {\\r\\n padding: 4px;\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.table-select th {\\r\\n background: #337ab7;\\r\\n padding: 5px;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.table-select tr {\\r\\n height: 0;\\r\\n}\\r\\n\\r\\ntr.table-select-events:hover {\\r\\n background: #eee;\\r\\n}\\r\\n\\r\\ntr.table-select-events:active {\\r\\n background: #f5da71;\\r\\n}\\r\\n\\r\\n.mat-row.hovered {\\r\\n background: #eee;\\r\\n}\\r\\n\\r\\n.mat-row.highlighted {\\r\\n background: #f5da71;\\r\\n}\\r\\n\\r\\n.mat-form-field {\\r\\n font-size: 12px;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\nbutton {\\r\\n width: 90px;\\r\\n height: 36px;\\r\\n font-weight: 100;\\r\\n}\\r\\n\\r\\n.mat-dialog-actions {\\r\\n padding: 0 0 2px 0;\\r\\n margin-bottom: -12px;\\r\\n font-size: 11px;\\r\\n}\\r\\n\\r\\n.pointer {\\r\\n cursor: pointer;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9sYXllci10YWJsZS9sYXllci10YWJsZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksV0FBVztJQUNYLHNFQUFzRTtBQUMxRTs7QUFFQTtJQUNJLFlBQVk7SUFDWixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFdBQVc7QUFDZjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGVBQWU7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9tYXBhL2NvbXBvbmVudGVzL2xheWVyLXRhYmxlL2xheWVyLXRhYmxlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGFibGUtc2VsZWN0IHRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGFibGUtc2VsZWN0IHRkIHtcclxuICAgIHBhZGRpbmc6IDRweDtcclxuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xyXG59XHJcblxyXG4udGFibGUtc2VsZWN0IHRoIHtcclxuICAgIGJhY2tncm91bmQ6ICMzMzdhYjc7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnRhYmxlLXNlbGVjdCB0ciB7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbnRyLnRhYmxlLXNlbGVjdC1ldmVudHM6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogI2VlZTtcclxufVxyXG5cclxudHIudGFibGUtc2VsZWN0LWV2ZW50czphY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZDogI2Y1ZGE3MTtcclxufVxyXG5cclxuLm1hdC1yb3cuaG92ZXJlZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG59XHJcblxyXG4ubWF0LXJvdy5oaWdobGlnaHRlZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjVkYTcxO1xyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGQge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbmJ1dHRvbiB7XHJcbiAgICB3aWR0aDogOTBweDtcclxuICAgIGhlaWdodDogMzZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbn1cclxuXHJcbi5tYXQtZGlhbG9nLWFjdGlvbnMge1xyXG4gICAgcGFkZGluZzogMCAwIDJweCAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTEycHg7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbn1cclxuXHJcbi5wb2ludGVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufSJdfQ== */\";","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Sort, MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ControlService } from '../../datos/control.service';\r\nimport { MapService } from '../../datos/map.service';\r\n\r\n@Component({\r\n selector: 'app-layer-table',\r\n templateUrl: './layer-table.component.html',\r\n styleUrls: ['./layer-table.component.css']\r\n})\r\nexport class LayerTableComponent implements OnInit {\r\n @ViewChild(MatSort) sort: MatSort;\r\n public tableSelectData;\r\n public tableSelectColumns: string[];\r\n public tableSelectColumnsToDisplay: string[];\r\n public title: string = '';\r\n public selectedTable: any;\r\n public filterTable: FormControl;\r\n public activeSave= false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) private data,\r\n private control: ControlService, private service:MapService) {\r\n this.selectedTable = this.data;\r\n this.activeSave = data.save != undefined ? data.save:false;\r\n }\r\n\r\n /**\r\n * Enviar a padre lo que se esta seleccionando \r\n * @param item \r\n */\r\n onClicked(item) {\r\n this.control.selectRowTable(item);\r\n }\r\n\r\n /**\r\n * Crear tabla y crear atributos para identificar los seleccionados de los no\r\n */\r\n ngOnInit() {\r\n this.filterTable = new FormControl('');\r\n this.tableSelectData = new MatTableDataSource();\r\n this.tableSelectColumns = [];\r\n this.tableSelectColumnsToDisplay = [];\r\n this.title = this.data.name;\r\n this.tableSelectData.data = this.contentTable();\r\n this.tableSelectColumns = Object.keys(this.tableSelectData.data[0]);\r\n this.tableSelectColumns.splice(this.tableSelectColumns.indexOf('uid'), 1);\r\n this.tableSelectColumns.splice(this.tableSelectColumns.indexOf('hovered'), 1);\r\n this.tableSelectColumns.splice(this.tableSelectColumns.indexOf('selected'), 1);\r\n this.tableSelectColumns.splice(this.tableSelectColumns.indexOf('wms'), 1);\r\n this.tableSelectColumns.splice(this.tableSelectColumns.indexOf('revisionnu'), 1);\r\n\r\n this.tableSelectColumnsToDisplay = this.tableSelectColumns.slice();\r\n this.tableSelectColumnsToDisplay.unshift('position')\r\n this.control.customSelectFeature.subscribe(feature => {\r\n if (feature == null) return;\r\n this.tableSelectData.data = this.contentTable();\r\n })\r\n }\r\n\r\n /**\r\n * Llenar tabla\r\n */\r\n contentTable(): any[] {\r\n var content = []\r\n const addRow = (l) => {\r\n l.feature.properties.uid = l.feature.id;\r\n l.feature.properties.selected = l.selected;\r\n l.feature.properties.hovered = false;\r\n l.feature.properties.wms = this.data.wms\r\n content.push(l.feature.properties);\r\n }\r\n Object.values(this.data.layer._layers).forEach(layer => {\r\n addRow(layer);\r\n });\r\n content.sort(x => x.selected ? -1 : 1)\r\n return content;\r\n }\r\n\r\n /**\r\n * Aplicar filtro a tabla\r\n * @param filterValue \r\n */\r\n applyFilter(filterValue: string) {\r\n this.tableSelectData.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n /**\r\n * Ordenar datos\r\n * @param sort \r\n */\r\n sortData(sort: Sort) {\r\n const matSort = this.tableSelectData.sort;\r\n matSort.sort(sort);\r\n this.tableSelectData.sort = matSort.sort(sort);\r\n }\r\n\r\n /**\r\n * Seleccionar al hacer clic en el registro\r\n * @param row \r\n */\r\n onRowClicked(row) {\r\n row.selected = !row.selected;\r\n this.control.selectRowTable(row);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.tableSelectData.sort = this.sort;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL21hcGEvY29tcG9uZW50ZXMvbWVhc3VyZS9tZWFzdXJlLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { ControlService } from '../../datos/control.service';\r\n\r\n@Component({\r\n selector: 'app-measure',\r\n templateUrl: './measure.component.html',\r\n styleUrls: ['./measure.component.css']\r\n})\r\nexport class MeasureComponent implements OnInit {\r\n\r\n constructor(private control: ControlService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * Metodo para activar herramienta de medición.\r\n */\r\n startMeasure() {\r\n this.control.measureControl._startMeasure();\r\n document.getElementById('distanceValue').innerHTML = \"\";\r\n }\r\n\r\n}\r\n","export default \".nocumple-full-width {\\r\\n width: 100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9yZWplY3Rpb24tb3YvcmVqZWN0aW9uLW92LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxXQUFXO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9tYXBhL2NvbXBvbmVudGVzL3JlamVjdGlvbi1vdi9yZWplY3Rpb24tb3YuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ub2N1bXBsZS1mdWxsLXdpZHRoIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59Il19 */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { MapService } from '../../datos/map.service';\r\nimport { ControlService } from '../../datos/control.service';\r\nimport { ModalService } from 'src/app/sicap/comun/datos/modal.service';\r\n\r\n@Component({\r\n selector: 'app-rejection-ov',\r\n templateUrl: './rejection-ov.component.html',\r\n styleUrls: ['./rejection-ov.component.css']\r\n})\r\nexport class RejectionOvComponent implements OnInit {\r\n @Input() currentPlano: any;\r\n public rejectForm: FormGroup;\r\n public toolSelected: string = \"rejectedOrder\";\r\n public resultDelete: any[] = [];\r\n\r\n constructor(private mapService: MapService, private control: ControlService,\r\n public modalService: ModalService) { }\r\n\r\n ngOnInit() {\r\n this.initFormReject()\r\n }\r\n\r\n /**\r\n * Inicializar formulario de rechazo\r\n */\r\n private initFormReject(): void {\r\n this.rejectForm = new FormGroup({\r\n rejectionDetail: new FormControl('', [Validators.required])\r\n });\r\n }\r\n\r\n /**\r\n * Revisa si el control es valido\r\n * @param controlName Nombre del elemento del formulario de rechazo\r\n */\r\n validateControl(controlName: string) {\r\n if (this.rejectForm.controls[controlName].invalid && this.rejectForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n /**\r\n * Si el control no es valido, se activa el mensaje de error\r\n * @param controlName \r\n * @param errorName \r\n */\r\n hasError(controlName: string, errorName: string) {\r\n if (this.rejectForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n /* * * * * * * * * * NO CUMPLE SIG * * * * * * * * * * */\r\n /**\r\n * Si se confirma que el cambio de estatus (a NO CUMPLE SIG ) es correcto se llama al servicio que realizara el cambio\r\n * @param valuesForm Detalle de rechazo\r\n */\r\n rejectionOrderNumber(valuesForm) {\r\n if (this.rejectForm.valid) {\r\n this.modalService.openConfirm('No cumple SIG', `Confirmando cambiar el estatus del plano a NO Cumple SIG. ¿Desea continuar?`, (answer: boolean) => {\r\n if (answer) {\r\n this.mapService.rejectedOrderNumber(this.currentPlano.num, valuesForm.rejectionDetail, this.currentPlano.module).subscribe(res => {\r\n if (res.code == 200) {\r\n this.toolSelected = \"resultReject\";\r\n //this.control.hideTool('resultReject');\r\n this.control.hideTool({ tool: 'resultReject', action: false });\r\n this.modalService.openDoneModal('No cumple SIG', res.message)\r\n this.resultDelete = res.model;\r\n } else {\r\n this.modalService.openErrorModal('No cumple SIG', res.message)\r\n }\r\n }, (error) => {\r\n console.error(\"validateOrderVerify\", error)\r\n });\r\n return true;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL21hcGEvY29tcG9uZW50ZXMvcmVzdWx0LXZhbGlkLWN1di9yZXN1bHQtdmFsaWQtY3V2LmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, of } from 'rxjs';\r\nimport { finalize, catchError } from 'rxjs/operators';\r\nimport { ModalService } from 'src/app/sicap/comun/datos/modal.service';\r\nimport { MapService, ControlService } from '../../datos';\r\nimport { Section } from '../../../comun/modelo/config.http';\r\n\r\n\r\n@Component({\r\n selector: 'app-result-valid-cuv',\r\n templateUrl: './result-valid-cuv.component.html',\r\n styleUrls: ['./result-valid-cuv.component.css']\r\n})\r\nexport class ResultValidCUVComponent implements OnInit, OnDestroy {\r\n @Input() currentPlano;\r\n public resultValid: any = { show: false };\r\n public disableSendGIS: boolean = true;\r\n private isLoadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.isLoadingSubject.asObservable();\r\n public MODULE_NO_CUVS :string = 'eq'\r\n\r\n constructor(private mapService: MapService, private control: ControlService,\r\n public modalService: ModalService,) { }\r\n\r\n ngOnInit() {\r\n this.validCUVS();\r\n }\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n /**\r\n * Revalidación de CUVs si las cuvs del desarrollador son igual que las de Sistema RUV, se habilita el botón para enviar a Verificación\r\n */\r\n validCUVS() {\r\n\r\n if (this.currentPlano.module == Section.EQM) {\r\n this.sendValidationGIS()\r\n return;\r\n }\r\n let modalTitle = 'Validación SIG'\r\n\r\n this.isLoadingSubject.next(true);\r\n this.modalService.openConfirm(modalTitle, `Se revalidarán las CUVs del sembrado. ¿Desea continuar?`, (answer: boolean) => {\r\n if (answer) {\r\n this.mapService.validCUVxOrderNumber(this.currentPlano.num, this.currentPlano.module).pipe(catchError(() => of()),\r\n finalize(() => { this.isLoadingSubject.next(false); })).subscribe(response => {\r\n if (response['code'] == 200) {\r\n this.resultValid = response['model'][0];\r\n this.resultValid.show = true;\r\n if (this.resultValid.totconstruccion > 0 && this.resultValid.totvivienda > 0 &&\r\n this.resultValid.nocuvs == null && this.resultValid.duplicados == null\r\n && this.resultValid.nivel == null && this.resultValid.existen.dwelling == null) {\r\n this.disableSendGIS = false;\r\n this.resultValid.class = 'succes';\r\n } else {\r\n this.resultValid.class = 'warning';\r\n }\r\n } else {\r\n this.modalService.openErrorModal(modalTitle, response['message'])\r\n }\r\n });\r\n return true;\r\n } else {\r\n this.isLoadingSubject.next(false);\r\n this.control.hideTool({ tool: 'sendSIG', action: true })\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Se envia a Validación SIG\r\n */\r\n sendValidationGIS() {\r\n this.isLoadingSubject.next(true);\r\n let msg = 'plano de sembrado',\r\n modalTitle = 'Enviar a revisión SIG';\r\n if (this.currentPlano.module == Section.EQM) {\r\n msg = 'plano de equipamiento';\r\n }\r\n\r\n this.modalService.openConfirm(modalTitle, `Su ${msg} se enviará a revisión SIG. ¿Desea continuar?`, (answer: boolean) => {\r\n if (answer) {\r\n this.mapService.sendVerificationGIS(this.currentPlano.num, this.currentPlano.module).pipe(\r\n catchError(() => of()),\r\n finalize(() => { this.isLoadingSubject.next(false); })).subscribe(response => {\r\n if (response['code'] == 200) {\r\n this.disableSendGIS = true;\r\n this.control.hideTool({ tool: 'SendSIG', action: false })\r\n //this.control.hideTool('sendSIG')\r\n this.modalService.openDoneModal(modalTitle, response['message'])\r\n } else {\r\n this.modalService.openErrorModal(modalTitle, response['message'])\r\n this.control.hideTool({ tool: 'sendSIG', action: true })\r\n }\r\n });\r\n return true;\r\n } else {\r\n this.isLoadingSubject.next(false);\r\n this.control.hideTool({ tool: 'sendSIG', action: true })\r\n }\r\n });\r\n }\r\n}\r\n","export default \".mat-action-row {\\r\\n padding: 4px 8px 8px 4px !important;\\r\\n}\\r\\n\\r\\n.mat-icon-button {\\r\\n padding: 0;\\r\\n min-width: 0;\\r\\n width: 28px !important;\\r\\n height: 28px !important;\\r\\n flex-shrink: 0;\\r\\n line-height: 28px !important;\\r\\n border-radius: 50%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9jb21wb25lbnRlcy9zZWxlY3QtZmVhdHVyZXMvc2VsZWN0LWZlYXR1cmVzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxtQ0FBbUM7QUFDdkM7O0FBRUE7SUFDSSxVQUFVO0lBQ1YsWUFBWTtJQUNaLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsY0FBYztJQUNkLDRCQUE0QjtJQUM1QixrQkFBa0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9tYXBhL2NvbXBvbmVudGVzL3NlbGVjdC1mZWF0dXJlcy9zZWxlY3QtZmVhdHVyZXMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtYWN0aW9uLXJvdyB7XHJcbiAgICBwYWRkaW5nOiA0cHggOHB4IDhweCA0cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hdC1pY29uLWJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgd2lkdGg6IDI4cHggIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59Il19 */\";","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport ToolsMap from '../utils/Tools.map';\r\nimport { ControlService } from '../../datos';\r\nimport { LayerTableComponent } from '../layer-table/layer-table.component';\r\nimport { Profile } from 'src/app/sicap/planos/modelo/jwt';\r\nimport { ModalService } from 'src/app/sicap/comun/datos/modal.service';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { DataLayer, INIT } from '../../modelo';\r\nimport { MainLayer } from 'src/app/sicap/comun/modelo/config.http';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-select-features',\r\n templateUrl: './select-features.component.html',\r\n styleUrls: ['./select-features.component.css']\r\n})\r\nexport class SelectFeaturesComponent {\r\n @Input() currentPlano;\r\n public infoGroupLayer = [];\r\n public dataSelected: DataLayer = INIT.data(); //{ name: '', layer: null, n_elements: 0, n_selected: 0, color: \"\" };\r\n public lasso: any;\r\n public messageCopy1 = { dwelling: null, other: null, equipment: null, vial: null, otherindv: [], eqmindiv: [], vialindiv: [] };\r\n public disable = { dwelling: true, other: true, equipment: true, vial: true }\r\n public waiting$ = false;\r\n public resultLayerCopy: boolean = false;\r\n public selectedTool = '';\r\n public normalUser: boolean = true;\r\n public operatorSIG: boolean = false;\r\n private KMltemplate = new DOMParser().parseFromString('', \"application/xml\");\r\n public reviewMessage: any = { disable: false, text: null, class: null, list: [] };\r\n public validCuvsMessage: any = { disable: false, text: null, class: null };\r\n public checkCUVS: boolean = false;\r\n public currentUser: Profile;\r\n public resultSelection: boolean = false;\r\n private validColumn: string[] = ['dautorizacion', 'darea_donacion', 'existe', 'operando', 'es_cct'];\r\n\r\n constructor(@Inject(ControlService) private control: ControlService, public modalService: ModalService,\r\n private authService: AuthService, public dialog: MatDialog) {\r\n this.authService.currentUserSubject.subscribe(u => {\r\n if (u == null) return;\r\n this.currentUser = u;\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.control.getSelectedTool.subscribe(tool => {\r\n this.infoGroupLayer = this.control.infoGroupLayer;\r\n if (tool == 'selectTool') {\r\n this.selectedTool = 'selectTool';\r\n } else {\r\n if (this.lasso != undefined)\r\n this.lasso.disable();\r\n }\r\n this.initPanel();\r\n\r\n })\r\n this.selectRowTable();\r\n this.control.customProject.subscribe(r => {\r\n if (r == null && this.control.map == null) return;\r\n this.lasso = this.initComponentLasso(this.control.map);\r\n });\r\n }\r\n\r\n /**\r\n * Inicializar panel de tareas\r\n */\r\n initPanel() {\r\n if (this.currentUser.uRoleKey == 'O' && this.currentPlano.idStatus == 4) {\r\n this.operatorSIG = true;\r\n this.normalUser = false;\r\n } else if (this.currentUser.uRoleKey == \"D\" && (this.currentPlano.idStatus == 1 || this.currentPlano == 2)) {\r\n this.operatorSIG = false;\r\n this.normalUser = true;\r\n } else if (this.currentUser.uRoleKey == 'V' && this.currentPlano.idStatus == 7) {\r\n this.normalUser = false;\r\n this.operatorSIG = false;\r\n }\r\n }\r\n\r\n /**\r\n * Se inician la herramienta de selección por lasso\r\n */\r\n initComponentLasso(map: any) {\r\n if (map == null) return;\r\n const lasso = this.control.L.lasso(map);\r\n if (this.currentUser.uRoleKey == 'O' && this.currentPlano.idStatus == 4) {\r\n map.on('lasso.finished', event => {\r\n this.selectedFeatures(event.layers);\r\n });\r\n } else {\r\n map.on('lasso.finished', event => {\r\n this.setSelectedLayers(event.layers);\r\n });\r\n }\r\n map.on('lasso.enabled', () => { //Reestablece el estilo de los objetos seleccionados.\r\n this.resetSelectedState();\r\n });\r\n return lasso;\r\n }\r\n\r\n\r\n\r\n /**\r\n * Reestablece el estilo de los objetos seleccionados.\r\n */\r\n resetSelectedState() {\r\n if (this.dataSelected.layer == null) return;\r\n ToolsMap.resetSelectedLayer(this.dataSelected.layer);\r\n this.count();\r\n }\r\n\r\n /**\r\n * Cambia el estilo de los objetos seleccionados\r\n * @param feature objetos espaciales de la capa activa para selección\r\n */\r\n setSelectedLayers(feature) {\r\n if (this.dataSelected.layer != null) {\r\n this.dataSelected.layer.selected = true;\r\n const valueArray = Object.values(this.dataSelected.layer._layers);\r\n\r\n var intersection = valueArray.filter(e => feature.indexOf(e) > -1 );\r\n feature.forEach(item => {\r\n if (valueArray.indexOf(item) > -1) {\r\n item.setStyle(ToolsMap.setStyle(null, 'selected'))\r\n item.selected = true;\r\n }\r\n });\r\n this.control.selectFeature(1);\r\n this.count();\r\n }\r\n }\r\n\r\n /**\r\n * Función que se ejecutará cada que se selccione un poligono al hacer clic sobre el objeto\r\n */\r\n eventSelect = (e) => {\r\n if (this.control.map.options.stool != 'selectTool') return;\r\n\r\n if (e.layer.selected == true) {\r\n e.layer.setStyle(e.layer.options.defaultStyle);\r\n e.layer.selected = false;\r\n } else {\r\n e.layer.setStyle(ToolsMap.setStyle(null, 'selected'));\r\n e.layer.selected = true;\r\n }\r\n this.control.selectFeature(1);\r\n this.count();\r\n }\r\n\r\n /**\r\n * Se reestablecen las variables y si la capa es valida se activa la selección\r\n * @param e Capa seleccionada\r\n */\r\n iniPaneInfoSelect(e) {\r\n if (e == undefined) return;\r\n\r\n if (e.layer == null || e.layer == undefined) {\r\n this.control.changeTool('');\r\n this.dataSelected.name = '';\r\n this.dataSelected.layer = null;\r\n this.dataSelected.n_elements = 0;\r\n this.dataSelected.n_selected = 0;\r\n return;\r\n }\r\n this.selectedTool = 'selectTool';\r\n this.control.changeTool('selectTool');\r\n this.control.map.fitBounds(e.layer.getBounds());\r\n this.dataSelected.name = e.name;\r\n this.dataSelected.layer = e.layer;\r\n const valueArray = Object.values(e.layer._layers);\r\n this.dataSelected.n_elements = valueArray.length;\r\n const checkSelected = (l) => { return l.selected; }\r\n this.dataSelected.n_selected = valueArray.filter(checkSelected).length;\r\n e.layer.addEventListener('click', this.eventSelect);\r\n this.checkCUVS = (this.currentUser.uRoleKey == 'O' && this.currentPlano.idStatus == 4 && e.name == 'Construcciones');\r\n }\r\n\r\n /**\r\n * Seleccionar registro de tabla\r\n */\r\n private selectRowTable() {\r\n this.control.customSelectRowTable.subscribe(selectedRow => {\r\n if (selectedRow == undefined) return;\r\n let currentLayer = null;\r\n if (this.currentUser.uRoleKey == \"O\" || this.currentUser.uRoleKey == \"V\") {\r\n currentLayer = this.infoGroupLayer.find(l => l.wms == selectedRow.wms);\r\n } else {\r\n currentLayer = this.dataSelected;\r\n }\r\n if (currentLayer.layer == null) return;\r\n const valueArray = Object.values(currentLayer.layer._layers);\r\n valueArray.forEach((item: any) => {\r\n if (item.feature.id == selectedRow.uid) {\r\n item.feature.properties.selected = selectedRow.selected;\r\n item.feature.selected = selectedRow.selected;\r\n if (selectedRow.selected == true) {\r\n item.setStyle(ToolsMap.setStyle(null, 'selected'));\r\n item.selected = true;\r\n if (item.feature.geometry.type == \"Point\") {\r\n this.control.map.flyTo(item.getLatLng(), 17, {\r\n animate: true,\r\n duration: 2,\r\n zoom: {\r\n animate: true\r\n }\r\n });\r\n } else {\r\n this.control.map.fitBounds(item.getBounds());\r\n }\r\n\r\n } else {\r\n item.setStyle(currentLayer.layer.options.defaultStyle);\r\n item.selected = false;\r\n }\r\n }\r\n });\r\n this.count();\r\n\r\n })\r\n }\r\n\r\n /**\r\n * Se activa o desactiva la herramienta se selección por lasso\r\n */\r\n toggleLasso() {\r\n if (this.dataSelected.layer == null) return;\r\n if (this.lasso.enabled()) {\r\n this.lasso.disable();\r\n } else {\r\n this.lasso.enable();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Abre un dialogo con las propiedades de la capa seleccionada\r\n */\r\n openTable(): void {\r\n\r\n if (this.selectedTool != 'selectTool') return;\r\n if (this.dataSelected.layer == null) return;\r\n\r\n const dialogRef = this.dialog.open(LayerTableComponent, {\r\n data: this.dataSelected,\r\n hasBackdrop: false,\r\n closeOnNavigation: true,\r\n panelClass: \"sicap-dialog-container\", //\"custom-dialog-container\",\r\n position: { bottom: '0%', left: '20%' }\r\n });\r\n\r\n }\r\n /**\r\n * Activar los checks\r\n */\r\n switchValidate(value) {\r\n this.infoGroupLayer.forEach(currentLayer => {\r\n if (currentLayer.verify == 1) {\r\n const valueArray = Object.values(currentLayer.layer._layers);\r\n valueArray.forEach((item: any) => {\r\n Object.keys(item.feature.properties).forEach(p => {\r\n this.validColumn.forEach(c => {\r\n if (c == p) {\r\n item.feature.properties[p] = value;\r\n }\r\n })\r\n })\r\n });\r\n currentLayer.n_elements = valueArray.length;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Cambian los elementos seleccionados por aquellos no seleccionados\r\n */\r\n switchSelection() {\r\n if (this.dataSelected.layer == null) return;\r\n\r\n this.dataSelected.n_selected = 0;\r\n const valueArray = Object.values(this.dataSelected.layer._layers);\r\n valueArray.forEach((item: any) => {\r\n\r\n if (item.selected == true) {\r\n item.setStyle(this.dataSelected.layer.options.defaultStyle);\r\n item.selected = false;\r\n } else {\r\n item.setStyle(ToolsMap.setStyle(null, 'selected'));\r\n item.selected = true;\r\n }\r\n });\r\n this.control.selectFeature(1);\r\n this.count();\r\n }\r\n\r\n /**\r\n * Se genera y descarga un archivo KML con los objetos seleccionados.\r\n */\r\n exportDataKml(item?: any): void {\r\n let currentLayer = null;\r\n if (this.currentUser.uRoleKey == \"O\") {\r\n currentLayer = item;\r\n } else {\r\n currentLayer = this.dataSelected;\r\n }\r\n\r\n if (currentLayer.layer != null) {\r\n if (currentLayer.n_selected == 0) {\r\n this.modalService.openInfoModal(\"Exportar KML\", \"Sin elementos seleccionados\");\r\n return;\r\n }\r\n } else { return; };\r\n if (this.selectedTool != 'selectTool') return;\r\n var kml = this.KMltemplate;\r\n let LL = this.control.L;\r\n kml = ToolsMap.fillKML(kml, currentLayer.layer, currentLayer.name);\r\n\r\n const downloadKml = (kml, filename): void => {\r\n var element = document.createElement('a');\r\n element.setAttribute('href', 'data:text/kml;charset=utf-8,' + encodeURIComponent(new XMLSerializer().serializeToString(kml)));\r\n element.setAttribute('download', filename + '.kml');\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n element.click();\r\n document.body.removeChild(element);\r\n }\r\n downloadKml(kml, currentLayer.name);\r\n }\r\n\r\n /**\r\n * Limpia los espacios de elementos seleccionados.\r\n */\r\n clearSelection() {\r\n if (this.dataSelected.layer == null) return;\r\n this.resetSelectedState();\r\n this.count();\r\n this.control.selectFeature(1);\r\n if (this.selectedTool != 'selectTool') return;\r\n }\r\n\r\n\r\n\r\n /**\r\n * Se activa o desactiva la herramienta se selección por lasso (intersecta)\r\n */\r\n toggleLassoIntersect() {\r\n if (this.lasso.enabled()) {\r\n this.lasso.disable();\r\n } else {\r\n this.lasso.setOptions({ intersect: true });\r\n this.lasso.enable();\r\n }\r\n }\r\n\r\n /**\r\n * Activa herramienta de selección por lasso (contiene)\r\n */\r\n toggleLassoContain() {\r\n if (this.lasso.enabled()) {\r\n this.lasso.disable();\r\n } else {\r\n this.lasso.setOptions({ polygon: this.control.L.PolylineOptions, intersect: false });\r\n this.lasso.enable();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Cambia el estilo de los objetos seleccionados\r\n * @param feature objetos espaciales de la capa activa para selección\r\n */\r\n selectedFeatures(feature) {\r\n this.infoGroupLayer.forEach(currentLayer => {\r\n currentLayer.n_selected = 0;\r\n const valueArray = Object.values(currentLayer.layer._layers);\r\n currentLayer.n_elements = valueArray.length;\r\n if (currentLayer.wms != MainLayer.CONSTRUCCION) {\r\n let copied = currentLayer.copied != undefined ? currentLayer.copied : false;\r\n if (currentLayer.layer.options.view == true && !copied) {\r\n const selectedfeatures = feature.filter(f => f.options.tblkey == currentLayer.wms);\r\n\r\n var intersection = valueArray.filter(e => selectedfeatures.indexOf(e) > -1 );\r\n\r\n selectedfeatures.forEach(item => {\r\n if (valueArray.indexOf(item) > -1) {\r\n item.setStyle(ToolsMap.setStyle(null, 'selected'))\r\n item.selected = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n this.control.selectFeature(1);\r\n this.count();\r\n this.resultSelection = true;\r\n\r\n }\r\n\r\n /**\r\n * Cambian los elementos seleccionados por aquellos no seleccionados\r\n */\r\n switchSelectionALL() {\r\n this.infoGroupLayer.forEach(currentLayer => {\r\n const valueArray = Object.values(currentLayer.layer._layers);\r\n if (currentLayer.wms != MainLayer.CONSTRUCCION) {\r\n let copied = currentLayer.copied != undefined ? currentLayer.copied : false;\r\n if (currentLayer.layer.options.view == true && !copied) {\r\n valueArray.forEach((item: any) => {\r\n if (item.selected == true) {\r\n item.setStyle(currentLayer.layer.options.defaultStyle);\r\n item.selected = false;\r\n } else {\r\n item.setStyle(ToolsMap.setStyle(null, 'selected'));\r\n item.selected = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n this.count();\r\n this.resultSelection = true;\r\n }\r\n\r\n /**\r\n * Limpiar selección\r\n */\r\n clearAll() {\r\n this.infoGroupLayer.forEach(currentLayer => {\r\n ToolsMap.resetSelectedLayer(currentLayer.layer);\r\n currentLayer.n_selected = 0;\r\n });\r\n this.resultSelection = false;\r\n }\r\n\r\n /**\r\n * Contar elementos (seleccionados, totales)\r\n */\r\n count() {\r\n let updateCount = (current) => {\r\n const valueArray = Object.values(current.layer._layers);\r\n if (current.layer.options.view == true) {\r\n var count = valueArray.filter((item: any) => item.selected == true);\r\n current.n_selected = count.length;\r\n current.n_elements = valueArray.length;\r\n current.layer.selected = count.length > 0 ? true : false;\r\n }\r\n };\r\n\r\n if (this.currentUser.uRoleKey == \"O\" || this.currentUser.uRoleKey == \"V\") {\r\n this.infoGroupLayer.forEach(currentLayer => { updateCount(currentLayer) });\r\n } else {\r\n updateCount(this.dataSelected);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Abre un dialogo con las propiedades de la capa seleccionada\r\n */\r\n openAttributesTable(item): void {\r\n item.order = this.currentPlano;\r\n item.order.role = this.currentUser.uRoleKey;\r\n const dialogRef = this.dialog.open(LayerTableComponent, {\r\n data: item,\r\n hasBackdrop: false,\r\n closeOnNavigation: true,\r\n panelClass: \"sicap-dialog-container\",\r\n position: { bottom: '0%', left: '20%' }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Se reestablecen las variables y si la capa es valida se activa la selección\r\n * @param e Capa seleccionada\r\n */\r\n selectSingle(e, item) {\r\n if (!e) {\r\n item.layer.removeEventListener('click', this.clickLayer);\r\n return;\r\n }\r\n this.control.map.fitBounds(item.layer.getBounds());\r\n item.layer.addEventListener('click', this.clickLayer);\r\n this.control.changeTool('selectTool');\r\n this.control.map.options.stool = 'selectTool';\r\n }\r\n\r\n /**\r\n * Función que se ejecutará cada que se selccione un poligono al hacer clic sobre el objeto\r\n */\r\n clickLayer = (e) => {\r\n if (this.control.map.options.stool != 'selectTool') return;\r\n if (e.layer.selected == true) {\r\n e.layer.setStyle(e.layer.options.defaultStyle);\r\n e.layer.selected = false;\r\n } else {\r\n e.layer.setStyle(ToolsMap.setStyle(null, 'selected'));\r\n e.layer.selected = true;\r\n }\r\n this.count();\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","export default{\r\n count:(arrData:any[] ) => {\r\n let summary:any= {smb:null, eqm:null,rvl:null};\r\n Object.keys(summary).forEach(f =>{\r\n var objDeclared = arrData.filter(e=>e.tblname.includes(f)); //e.tblname.indexOf(f) != -1\r\n var objOut = {total: objDeclared.length ,temporal:0, copy:0, exist:0}\r\n objDeclared.forEach(o=>{\r\n if (o.tmp > 0)objOut.temporal++;\r\n if (o.main > 0)objOut.copy++;\r\n if (o.exist > 0)objOut.exist++;\r\n });\r\n summary[f] = objOut;\r\n });\r\n \r\n return summary;\r\n },\r\n getMessage:( idStatus:number , data :any , btnDisable:any)=>{\r\n let message:string[]=[], tool:any={copy:null, nogis:null, gis:null}\r\n if (idStatus == 4) {\r\n tool = {copy:true, nogis:true, gis:false};\r\n\r\n if (data.smb.temporal > 0 && data.smb.temporal < data.smb.total && data.smb.copy == 0) {\r\n message.push(\"El archivo contiene un número de capas menor al mínimo requerido.\");\r\n tool.copy = false;\r\n\r\n }\r\n if (btnDisable.dwelling) {\r\n if (data.smb.copy > 0 && data.smb.copy < data.smb.temporal) {\r\n message.push(\"NO se ha escrito el número mínimo de capas a la Base de datos. Regrese al módulo Copiar elementos\");\r\n btnDisable.other = false;\r\n }\r\n }\r\n if (btnDisable.dwelling && btnDisable.other) {\r\n if (data.eqm.temporal > 0 && data.eqm.temporal != data.eqm.exist && data.eqm.copy == 0) {\r\n btnDisable.equipment = false;\r\n message.push(\"Falta copiar equipamiento\");\r\n }\r\n }\r\n\r\n if (btnDisable.dwelling && btnDisable.other && btnDisable.equipment) {\r\n if (data.rvl.temporal > 0 && data.rvl.temporal != data.rvl.exist && data.rvl.copy == 0) {\r\n btnDisable.vial == false;\r\n message.push(\"Falta copiar Read Vial\");\r\n }\r\n }\r\n \r\n if (btnDisable.dwelling && btnDisable.other && data.smb.copy != 0) {\r\n tool.gis = true;\r\n tool.nogis = true;\r\n tool.copy = false;\r\n } \r\n }\r\n\r\n return {btnDisable, message, tool};\r\n },\r\n getStage: (ov:any) =>{\r\n let stage = '';\r\n if ([4,1,2].includes(ov.idStatus)){ //if (ov.idStatus == 4 || ov.idStatus == 1 || ov.idStatus == 2) {\r\n stage = \"T\";\r\n } else if ([5,7].includes(ov.idStatus)){ //ov.idStatus == 5 || ov.idStatus == 7) {\r\n stage = \"P\";\r\n }\r\n if (stage == '' && new Date(ov.dcreated) < new Date() ){\r\n stage = 'P' ;\r\n }\r\n return stage;\r\n },\r\n isLoadingStatistic:(uRoleKey, idStatus)=>{\r\n let load=false;\r\n if (['O','D'].includes(uRoleKey)){ //(uRoleKey == 'O' || uRoleKey == 'D'){\r\n if (![1,2,7].includes(idStatus)){ //(idStatus != 1 && idStatus != 2 && idStatus != 7){\r\n load= true;\r\n }\r\n }\r\n return load;\r\n }\r\n}","import { StyleLayer } from '../../modelo/DeclaredLayer';\r\nimport { LayerNode, LayerBase } from '../../modelo/LayerNode';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nconst PROXY_API_URL = {\r\n WMS: `/api/wms`,\r\n}\r\n\r\nconst getHeaderColumns = (layer) => {\r\n var tableSelectData = new MatTableDataSource(), nameColumns = [], headColumns = [];\r\n Object.values(layer._layers).forEach((layer: any) => tableSelectData.data.push(layer.feature.properties));\r\n nameColumns = Object.keys(tableSelectData.data[0]);\r\n\r\n nameColumns.forEach(name => {\r\n var type;\r\n tableSelectData.data.find((i) => {\r\n type = typeof i[name];\r\n return i[name] != null;\r\n });\r\n if (type == \"object\") type = \"string\";\r\n if (type == \"number\") type = \"float\";\r\n headColumns.push({ name, type });\r\n });\r\n return headColumns\r\n};\r\n\r\nconst getSelectedValues = (layer) => {\r\n var selectedValues = [];\r\n Object.values(layer._layers).forEach((l: any) => { if (l.selected) { selectedValues.push(l.feature); } });\r\n return selectedValues;\r\n}\r\n\r\nexport default {\r\n initBaseMaps: (L, base: LayerBase[]) => { //Metodo para inicializar los mapas base\r\n let basemaps: any[] = [];\r\n base.forEach(base => basemaps.push(L.tileLayer(base.url, base)));\r\n return basemaps;\r\n },\r\n createWMS: (L, url: string, child: LayerNode) => { //Crear capas wms\r\n\r\n let layerwms = L.tileLayer.wms(PROXY_API_URL.WMS, {\r\n url,\r\n layers: child.wms,\r\n transparent: true,\r\n format: 'image/png',\r\n title: child.name,\r\n view: false,\r\n uppercase: true,\r\n srs: L.CRS.EPSG4326,\r\n crs: L.CRS.EPSG4326,\r\n maxZoom: 22\r\n });\r\n return layerwms;\r\n },\r\n createGeoJSON: (L, geometryType: string, features: any[], styles: any, title: string, key: string, _group: string, name: string) => {\r\n //Crear capas geojson con el estilo especificado\r\n\r\n let geoJSONLayer: any;\r\n const selectFeature = (e) => {\r\n let layer = e.target;\r\n if (layer._map.options.stool == 'infoTool') {\r\n layer.openPopup(e.latlng)\r\n } else {\r\n layer.closePopup();\r\n }\r\n }\r\n\r\n //Función para mostrar la información asociada al objeto seleccionado/donde se hizo clic\r\n let onEachFeatures = (feature, layer) => {\r\n var popupContent = `${layer.options.title}
`;\r\n popupContent += ''\r\n for (let item in feature.properties) {\r\n popupContent += feature.properties[item] != null ? `` : \"\";\r\n }\r\n layer.bindPopup(popupContent).closePopup();\r\n layer.on({ click: selectFeature });\r\n }\r\n\r\n let paramsGeo: any = {\r\n onEachFeature: onEachFeatures,\r\n defaultStyle: styles,\r\n view: false,\r\n tblkey: key,\r\n tblname: name,\r\n title: title,\r\n group: _group,\r\n };\r\n\r\n if (geometryType == \"Point\") {\r\n styles.title = title;\r\n paramsGeo.pointToLayer = (feature, latlng) => L.circleMarker(latlng, styles);\r\n paramsGeo.type = \"POINT\";\r\n } else {\r\n paramsGeo.style = styles;\r\n paramsGeo.type = geometryType;\r\n }\r\n geoJSONLayer = L.geoJSON(features, paramsGeo);\r\n\r\n return geoJSONLayer;\r\n },\r\n setStyle: (style: StyleLayer, type: string) => { //Establece el orden del estilo\r\n let selected: any;\r\n switch (type) {\r\n case 'Point':\r\n selected = {\r\n radius: style.radio,\r\n fillColor: style.fillcolor,\r\n color: style.color,\r\n weight: style.weight,\r\n opacity: style.opacity,\r\n fillOpacity: style.fillOpacity\r\n }\r\n break;\r\n case 'MultiLineString':\r\n selected = {\r\n color: style.fillcolor,\r\n weight: style.weight,\r\n opacity: style.opacity\r\n }\r\n break;\r\n case 'MultiPolygon':\r\n selected = {\r\n fillColor: style.fillcolor,\r\n color: style.color,\r\n weight: style.weight,\r\n opacity: style.opacity,\r\n fillOpacity: style.fillOpacity\r\n }\r\n break;\r\n case 'selected':\r\n selected = {\r\n fillColor: \"#f1c40f\",\r\n color: \"#edbe00\",\r\n weight: 3,\r\n opacity: 1,\r\n fillOpacity: 1\r\n }\r\n break;\r\n case 'saved':\r\n selected = {\r\n fillColor: \"#036bfc\",\r\n color: \"#036bfc\",\r\n weight: 2,\r\n opacity: 1,\r\n fillOpacity: 0.7\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return selected\r\n },\r\n setParamsWFS: (L, mainUrl: string, layerName: string) => {\r\n let server = mainUrl = mainUrl != '' ? mainUrl : PROXY_API_URL.WMS;\r\n let defaultParameters = {\r\n service: 'wms',\r\n request: 'GetLegendGraphic',\r\n version: '1.0.0',\r\n format: 'image/png',\r\n width: '20',\r\n height: '20',\r\n layer: layerName\r\n };\r\n let parameters = L.Util.extend(defaultParameters);\r\n let url = server + L.Util.getParamString(parameters);\r\n return url;\r\n },\r\n getColorDeclared: (layer: any) => {\r\n let color = '';\r\n switch (layer.options.type) {\r\n case 'POINT': color = layer.options.defaultStyle.fillColor; break;\r\n case 'MultiPolygon': color = layer.options.style.fillColor; break;\r\n case 'MultiLineString': color = layer.options.style.color; break;\r\n }\r\n return color;\r\n },\r\n getSymbologyDeclared: (layer: any) => {\r\n let url = \"\";\r\n switch (layer.options.type) {\r\n case 'POINT': url = 'point'; break;\r\n case 'MultiPolygon': url = 'rectangle'; break;\r\n case 'MultiLineString': url = 'line'; break;\r\n }\r\n return url;\r\n },\r\n isDeclaredLayer: (layerName: string) => {\r\n let declared = ['smanzanas', 'slotes', 'sbanquetas', 'sconstrucciones', 'esalud', 'eguarderia', 'epreescolar', 'eprimaria', 'esecundaria',\r\n 'etransporte', 'ecanchas', 'ecomun', 'eciclovia', 'eestac', 'edvos', 'emercado', 'eabasto', 'einfant', 'eviaimp', 'eviasec', 'tabasto', 'tsalud', 'tedvos', 'tprimaria', 'tsecundaria']\r\n return declared.includes(layerName);\r\n },\r\n fillKML: (kml, layer, name) => {\r\n var xmlDocument = '\\n', xmlPlacemark = '', xmlSimpleField = '';\r\n\r\n getHeaderColumns(layer).forEach(head => {\r\n xmlSimpleField += `\\t\\t\\t\\n`;\r\n });\r\n\r\n getSelectedValues(layer).forEach(e => {\r\n var xmlSimpleData = \"\", coordinates = \"\";\r\n Object.keys(e.properties).forEach(propertie => {\r\n xmlSimpleData += `\\t\\t\\t\\t\\t\\t${e.properties[propertie]}\\n`;\r\n });\r\n let type = e.geometry.type;\r\n\r\n if (type === \"Point\") {\r\n coordinates += `\\t\\t\\t\\t\\t\\t\\t\\t\\t${e.geometry.coordinates[0]},${e.geometry.coordinates[1]}\\n`;\r\n } else {\r\n e.geometry.coordinates.forEach(i => {\r\n i.forEach(h => {\r\n if (type === \"MultiPolygon\") {\r\n h.forEach(j => {\r\n coordinates += `\\t\\t\\t\\t\\t\\t\\t\\t\\t${j[0]},${j[1]}\\n`;\r\n });\r\n } else if (type === \"MultiLineString\") {\r\n coordinates += `\\t\\t\\t\\t\\t\\t\\t\\t\\t${h[0]},${h[1]}\\n`;\r\n }\r\n });\r\n });\r\n }\r\n\r\n xmlPlacemark += '\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += xmlSimpleData;\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n\r\n if (type === \"MultiPolygon\") {\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += coordinates;\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n\r\n } else if (type === \"MultiLineString\") {\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += coordinates;\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n } else if (type === \"Point\") {\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += coordinates;\r\n xmlPlacemark += '\\t\\t\\t\\t\\t\\t\\t\\t\\n';\r\n xmlPlacemark += '\\t\\t\\t\\t\\n';\r\n }\r\n xmlPlacemark += '\\t\\t\\t\\n';\r\n });\r\n\r\n xmlDocument += '\\t\\n';\r\n xmlDocument += `\\t\\t\\n`;\r\n xmlDocument += xmlSimpleField;\r\n xmlDocument += '\\t\\t\\n';\r\n xmlDocument += '\\t\\t\\n';\r\n xmlDocument += `\\t\\t\\t${name}\\n`;\r\n xmlDocument += xmlPlacemark;\r\n xmlDocument += '\\t\\t\\n';\r\n xmlDocument += '\\t\\n';\r\n kml.getElementsByTagName(\"kml\")[0].innerHTML = xmlDocument;\r\n return kml;\r\n\r\n },\r\n resetSelectedLayer: (objLayer: any) => {\r\n const valueArray = Object.values(objLayer._layers);\r\n valueArray.forEach((item: any) => {\r\n item.setStyle(objLayer.options.defaultStyle);\r\n item.selected = false;\r\n });\r\n },\r\n errorStyle: { radio: 6, fillcolor: '#eb4034', color: '#eb4034', weight: 2, opacity: 1, fillOpacity: 0.7 },\r\n declaredLayers:['smanzanas', 'slotes', 'sbanquetas', 'sconstrucciones', 'esalud', 'eguarderia', 'epreescolar', 'eprimaria', 'esecundaria',\r\n 'etransporte', 'ecanchas', 'ecomun', 'eciclovia', 'eestac', 'edvos', 'emercado', 'eabasto', 'einfant', 'eviaimp', 'eviasec', 'tabasto', 'tsalud', 'tedvos', 'tprimaria', 'tsecundaria'],\r\n \r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ProjectContent, SessionProject } from '../modelo';\r\nimport { DeclaredLayer, SelectedTool } from '../modelo/DeclaredLayer';\r\n\r\n@Injectable()\r\nexport class ControlService{\r\n public L:any;\r\n public map:any;\r\n public measureControl:any;\r\n public listLayers:any[];\r\n public infoGroupLayer:any[] = [];\r\n constructor() {}\r\n\r\n private subjectHideTool = new BehaviorSubject(null);\r\n public hidedTool = this.subjectHideTool.asObservable();\r\n public hideTool(tool: SelectedTool) {\r\n this.subjectHideTool.next(tool);\r\n }\r\n\r\n private selectedTool = new BehaviorSubject('');\r\n public getSelectedTool = this.selectedTool.asObservable();\r\n public changeTool(tool: string) {\r\n this.selectedTool.next(tool);\r\n }\r\n\r\n private feature = new BehaviorSubject(null);\r\n public customSelectFeature = this.feature.asObservable();\r\n public selectFeature(selected: any) {\r\n this.feature.next(selected);\r\n }\r\n\r\n private rowTable = new BehaviorSubject(null);\r\n public customSelectRowTable= this.rowTable.asObservable();\r\n public selectRowTable(selected: any) {\r\n this.rowTable.next(selected);\r\n }\r\n\r\n\r\n private project = new BehaviorSubject(null);\r\n public customProject = this.project.asObservable();\r\n public setProject(project: ProjectContent ) {\r\n this.project.next(project);\r\n }\r\n\r\n private declared = new BehaviorSubject(null);\r\n public customDeclared = this.declared.asObservable();\r\n public setPlano(plane: DeclaredLayer[] ) {\r\n this.declared.next(plane);\r\n }\r\n\r\n private coordinatesDeclaredCarto= new BehaviorSubject(null);\r\n public customSelectedIdGeoproj = this.coordinatesDeclaredCarto.asObservable();\r\n public setCoordDeclaredCarto(id: any){\r\n this.coordinatesDeclaredCarto.next(id);\r\n }\r\n public get coordDeclaredCarto(): any {\r\n return this.coordinatesDeclaredCarto.value;\r\n }\r\n \r\n}","export * from './control.service';\r\nexport * from './map.service'","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { DeclaredLayer, MapResponse } from '../modelo/DeclaredLayer';\r\nimport { map, catchError } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapService {\r\n\r\n private API = {\r\n cartography: \"/api/plano\",\r\n settings: \"/api/plano/complemento\",\r\n validation: \"/api/plano/validacion\",\r\n copy: \"/api/plano/copiar\",\r\n rejection: \"/api/plano/rechazar\",\r\n accepted: \"/api/plano/aceptar\",\r\n verified:'/api/plano/verificado',\r\n validCUV: \"/api/plano/validar-cuv\",\r\n sendverification: \"/api/plano/enviar-verificacion\",\r\n reviewCUV: \"api/plano/revisar-cuv\",\r\n clearSession: '/api/plano/limpiar-sesion',\r\n };\r\n\r\n public readonly error500: MapResponse = { code: 500, model: null, message: 'No se puede comunicar con el servidor. Por favor, inténtelo de nuevo más tarde.' };\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Recuperar configuración del perfil\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public getSettings(orderNumber: string, module:string): Observable {\r\n return this.http.get(this.API.settings, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('module', module)\r\n }).pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Validar cartografia (cuv's)\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public validCartography(orderNumber: string, module:string): Observable {\r\n return this.http.get(this.API.validation, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('module', module)\r\n }).pipe(\r\n map(res => {\r\n return res['model']\r\n }), catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener plano de la sección disponible\r\n * @param orderNumber número de orden de verificación\r\n * @param section sección temporal o público\r\n */\r\n public getCartography(orderNumber: string, section: string, module:string): Observable {\r\n return this.http.get(this.API.cartography, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('section', section)\r\n .set('module', module)\r\n }).pipe(\r\n map(res => {\r\n return res['model']\r\n }),\r\n catchError(error => {\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Copiar capas de temporal a público\r\n * @param orderNumber número de orden de verificación\r\n * @param elements lista de capas y ids\r\n */\r\n public copyCartography(orderNumber: string, elements: string, module:string): Observable {\r\n let object = JSON.stringify({ 'orderVerify': orderNumber, element: elements, 'module':module })\r\n return this.http.post(this.API.copy, object, this.generateHeaders())\r\n .pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Copiar viviendas\r\n * @param orderNumber número de orden de verificación\r\n * @param type nombre de capa\r\n * @param listIds lista de id's que se van a copiar\r\n */\r\n public copyDwelling(orderNumber: string, type: string, listIds?: string, module?:string): Observable {\r\n return this.http.get(this.API.copy, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('type', type)\r\n .set('ids', listIds)\r\n .set('module',module)\r\n }).pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Rechazar plano\r\n * @param orderNumber número de orden de verificación\r\n * @param rejectDetail detalle de rechazo\r\n */\r\n public rejectedOrderNumber(orderNumber: string, rejectDetail: string, module:string): Observable {\r\n return this.http.post(`${this.API.rejection}`, { 'orderVerify': orderNumber, 'rejectDetail': rejectDetail, 'module':module }, this.generateHeaders())\r\n .pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Aceptar plano\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public acceptedOrderNumber(orderNumber: string, module:string): Observable {\r\n return this.http.get(this.API.accepted, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('module', module )\r\n }).pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n public verifiedPlano(orderNumber: string, module:string): Observable {\r\n return this.http.post(`${this.API.verified}`, { 'orderVerify': orderNumber,'module':module }, this.generateHeaders()).pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Validar Cuvs de la orden\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public validCUVxOrderNumber(orderNumber: string, module:string): Observable {\r\n return this.http.get(this.API.validCUV, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n .set('module',module)\r\n }).pipe(\r\n map(res => {\r\n return res;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Enviar a verificación SIG\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public sendVerificationGIS(orderNumber: string, module:string): Observable {\r\n return this.http.post(`${this.API.sendverification}`, { 'orderVerify': orderNumber,'module':module }, this.generateHeaders()).pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Revisar Cuvs de una orden\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public reviewCUVxOrderNumber(orderNumber: string): Observable {\r\n return this.http.get(this.API.reviewCUV, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderNumber)\r\n }).pipe(\r\n map(res => {\r\n return res;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Limpiar sesión del operador SIG\r\n * @param orderNumber número de orden de verificación\r\n */\r\n public clearSession(orderNumber: string, module:string): Observable {\r\n return this.http.post(`${this.API.clearSession}`, JSON.stringify({ 'orderVerify': orderNumber,'module':module }), this.generateHeaders())\r\n .pipe(\r\n map(res => {\r\n return res as MapResponse;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatError, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MapCanvasComponent } from './modulo/map-canvas/map-canvas.component';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { ControlService } from './datos/control.service';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { ComponentesModule } from '../mapa/componentes/componentes.module';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { ComunModule } from '../comun/comun.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [MapCanvasComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ComponentesModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n MatDialogModule,\r\n MatCardModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n MatFormFieldModule,\r\n MatProgressBarModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n MatButtonToggleModule,\r\n MatExpansionModule,\r\n MatTreeModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n MatToolbarModule,\r\n MatTabsModule,\r\n MatBadgeModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule,\r\n ScrollingModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatRadioModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n ComunModule\r\n ],\r\n providers: [],\r\n schemas: [NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class MapaModule { }","export interface Plano {\r\n num: string; \r\n idStatus: number; \r\n status: string;\r\n module:string;\r\n dcreated:any;\r\n}\r\n\r\nexport interface DataLayer{\r\n name: string; layer: any; n_elements: number, n_selected: number, color: string; \r\n} \r\n\r\nexport interface CartographyPanel{\r\n dwelling: boolean; other: boolean; equipment: boolean; vial: boolean; \r\n}\r\n\r\nexport interface PrincipalTools{\r\n copy: boolean; select: boolean; statistic: boolean; sendSIG: boolean; validCUV: boolean; reviewCUV: boolean; nokGIS: boolean; okGIS: boolean; verifyGIS: boolean;\r\n}\r\n\r\nexport const INIT = {\r\n plano:()=>{ return JSON.parse( JSON.stringify( {num: null, idStatus: null, status: null, module:null, dcreated: null })); },\r\n panel:()=>{ return JSON.parse( JSON.stringify( { dwelling: true, other: true, equipment: true, vial: true })); },\r\n tools:()=>{ return JSON.parse( JSON.stringify( { copy: false, select: false, statistic: false, sendSIG: false, validCUV: false, reviewCUV: false, nokGIS: false, okGIS: false, verifyGIS:false })); },\r\n message:()=>{return JSON.parse(JSON.stringify( { dwelling: null, other: null, equipment: null, vial: null, otherindv: [], eqmindiv: [], vialindiv: [] }))},\r\n data:()=>{return JSON.parse(JSON.stringify({ name: '', layer: null, n_elements: 0, n_selected: 0, color: \"\" }))}\r\n}\r\n\r\nexport interface GeneralMessages {\r\n disable: boolean;\r\n text: string; \r\n class: string; \r\n list?: any[]\r\n}\r\n\r\nexport interface MessagesPanel{\r\n dwelling: any, other: any, equipment: any, vial: any, otherindv: any[], eqmindiv: any[], vialindiv: any[]\r\n}\r\n\r\n/**\r\n * Capas Declaradas.\r\n */\r\nexport interface DeclaredLayer {\r\n tblname: string;\r\n tblkey: string;\r\n geojson: any;\r\n styles: StyleLayer;\r\n temp?: Number;\r\n main?: Number;\r\n}\r\n\r\n/**\r\n * Elementos de estilo\r\n */\r\nexport interface StyleLayer {\r\n fillcolor: string; color: string, weight: Number; opacity: Number; fillOpacity: Number; radio: Number;\r\n}\r\n\r\n/**\r\n * Configuración del proyecto (mapas base y wms)\r\n */\r\nexport interface Settings {\r\n key: string;\r\n data: any;\r\n}\r\n\r\n/**\r\n * Respuesta de los servicios de base de datos\r\n */\r\nexport interface ResponseMap {\r\n success: Boolean;\r\n msg: string;\r\n list: string;\r\n details: string;\r\n}\r\n\r\nexport interface DataDialog{\r\n action:string;\r\n item:any;\r\n}\r\n\r\nexport interface Summary{\r\n smb: TotalDeclared;\r\n eqm: TotalDeclared;\r\n rvl: TotalDeclared;\r\n tool?:Tool;\r\n message?: string[];\r\n}\r\n\r\nexport interface TotalDeclared{\r\n total:number;\r\n exist:number;\r\n temporal:number;\r\n copy:number;\r\n}\r\n\r\nexport interface Tool{\r\n copy:boolean;\r\n nogis:boolean;\r\n gis:boolean;\r\n dwelling:boolean;\r\n}\r\n\r\nexport class MapResponse {\r\n code:number;\r\n model:any;\r\n message:string;\r\n}\r\n\r\nexport class SelectedTool{\r\n tool:string;\r\n action:boolean;\r\n}","export * from './DeclaredLayer';\r\nexport * from './LayerNode'","export default \"#map {\\r\\n height: 95vh;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.mat-sidenav-container {\\r\\n background-color: lightskyblue;\\r\\n height: 95vh !important;\\r\\n min-height: 95vh !important;\\r\\n min-width: 100px !important;\\r\\n}\\r\\n\\r\\n.toolbar-map {\\r\\n height: 5vh !important;\\r\\n min-height: 35px !important;\\r\\n background: rgb(229, 229, 229);\\r\\n background: linear-gradient(360deg, rgba(195, 195, 195, 1) 10%, rgba(229, 229, 229, 1) 100%);\\r\\n color: black;\\r\\n border-bottom: 1px solid #aaaaaa;\\r\\n}\\r\\n\\r\\n.nav-icon-active {\\r\\n padding-right: 5px;\\r\\n color: #555;\\r\\n}\\r\\n\\r\\n.nav-icon-okgis {\\r\\n padding-right: 5px;\\r\\n color: #7AC143;\\r\\n}\\r\\n\\r\\n.nav-icon-okgis {\\r\\n padding-right: 5px;\\r\\n color: #7AC143;\\r\\n}\\r\\n\\r\\n.nav-icon-nokgis {\\r\\n padding-right: 5px;\\r\\n color: #f00 !important;\\r\\n}\\r\\n\\r\\n.nav-icon-verifyGIS {\\r\\n padding-right: 5px;\\r\\n color: #1BA4EC;\\r\\n}\\r\\n\\r\\n.nav-spacer {\\r\\n flex: 1 1 auto;\\r\\n}\\r\\n\\r\\n.logoicon {\\r\\n height: 37px;\\r\\n width: 40px;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n.logoruv {\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.ex-sidenav {\\r\\n display: flex;\\r\\n width: 330px;\\r\\n position: absolute;\\r\\n background: transparent;\\r\\n background: rgba(255, 255, 255, 0.8);\\r\\n background: linear-gradient(0deg, rgba(255, 255, 255, 0.8) 70%, rgba(255, 255, 255, 1) 100%);\\r\\n border: none;\\r\\n}\\r\\n\\r\\n/* Styles for tab labels */\\r\\n\\r\\n.mat-tab-label {\\r\\n min-width: 50px !important;\\r\\n min-height: 30px !important;\\r\\n padding: 3px 15px;\\r\\n background-color: #E0E8ED;\\r\\n color: #555555;\\r\\n height: 28px !important;\\r\\n font-weight: 100;\\r\\n}\\r\\n\\r\\n/* Styles for the active tab label */\\r\\n\\r\\n.mat-tab-label.mat-tab-label-active {\\r\\n min-width: 50px !important;\\r\\n min-height: 30px !important;\\r\\n padding: 3px 15px;\\r\\n background-color: #1BA4EC;\\r\\n color: #FFFFFF;\\r\\n height: 28px !important;\\r\\n font-weight: 100;\\r\\n}\\r\\n\\r\\n.bntAction {\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.bntAction-active {\\r\\n font-size: 0.7rem;\\r\\n color: #555;\\r\\n}\\r\\n\\r\\n.actions-carto {\\r\\n font-size: 20px;\\r\\n width: 20px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvbWFwYS9tb2R1bG8vbWFwLWNhbnZhcy9tYXAtY2FudmFzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0lBQ1osV0FBVztBQUNmOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLHVCQUF1QjtJQUN2QiwyQkFBMkI7SUFDM0IsMkJBQTJCO0FBQy9COztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsNEZBQTRGO0lBQzVGLFlBQVk7SUFDWixnQ0FBZ0M7QUFDcEM7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsV0FBVztBQUNmOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osV0FBVztJQUNYLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixXQUFXO0lBQ1gsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLG9DQUFvQztJQUNwQyw0RkFBNEY7SUFDNUYsWUFBWTtBQUNoQjs7QUFHQSwwQkFBMEI7O0FBRTFCO0lBQ0ksMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixpQkFBaUI7SUFDakIseUJBQXlCO0lBQ3pCLGNBQWM7SUFDZCx1QkFBdUI7SUFDdkIsZ0JBQWdCO0FBQ3BCOztBQUdBLG9DQUFvQzs7QUFFcEM7SUFDSSwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsY0FBYztJQUNkLHVCQUF1QjtJQUN2QixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsV0FBVztBQUNmOztBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7QUFDZiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL21hcGEvbW9kdWxvL21hcC1jYW52YXMvbWFwLWNhbnZhcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI21hcCB7XHJcbiAgICBoZWlnaHQ6IDk1dmg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm1hdC1zaWRlbmF2LWNvbnRhaW5lciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHNreWJsdWU7XHJcbiAgICBoZWlnaHQ6IDk1dmggIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDk1dmggIWltcG9ydGFudDtcclxuICAgIG1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRvb2xiYXItbWFwIHtcclxuICAgIGhlaWdodDogNXZoICFpbXBvcnRhbnQ7XHJcbiAgICBtaW4taGVpZ2h0OiAzNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjI5LCAyMjksIDIyOSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzYwZGVnLCByZ2JhKDE5NSwgMTk1LCAxOTUsIDEpIDEwJSwgcmdiYSgyMjksIDIyOSwgMjI5LCAxKSAxMDAlKTtcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhYWFhO1xyXG59XHJcblxyXG4ubmF2LWljb24tYWN0aXZlIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIGNvbG9yOiAjNTU1O1xyXG59XHJcblxyXG4ubmF2LWljb24tb2tnaXMge1xyXG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgY29sb3I6ICM3QUMxNDM7XHJcbn1cclxuXHJcbi5uYXYtaWNvbi1va2dpcyB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICBjb2xvcjogIzdBQzE0MztcclxufVxyXG5cclxuLm5hdi1pY29uLW5va2dpcyB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICBjb2xvcjogI2YwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubmF2LWljb24tdmVyaWZ5R0lTIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIGNvbG9yOiAjMUJBNEVDO1xyXG59XHJcblxyXG4ubmF2LXNwYWNlciB7XHJcbiAgICBmbGV4OiAxIDEgYXV0bztcclxufVxyXG5cclxuLmxvZ29pY29uIHtcclxuICAgIGhlaWdodDogMzdweDtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmxvZ29ydXYge1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5leC1zaWRlbmF2IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB3aWR0aDogMzMwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgNzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDEwMCUpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG5cclxuLyogU3R5bGVzIGZvciB0YWIgbGFiZWxzICovXHJcblxyXG4ubWF0LXRhYi1sYWJlbCB7XHJcbiAgICBtaW4td2lkdGg6IDUwcHggIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDMwcHggIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDNweCAxNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0UwRThFRDtcclxuICAgIGNvbG9yOiAjNTU1NTU1O1xyXG4gICAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXdlaWdodDogMTAwO1xyXG59XHJcblxyXG5cclxuLyogU3R5bGVzIGZvciB0aGUgYWN0aXZlIHRhYiBsYWJlbCAqL1xyXG5cclxuLm1hdC10YWItbGFiZWwubWF0LXRhYi1sYWJlbC1hY3RpdmUge1xyXG4gICAgbWluLXdpZHRoOiA1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtaW4taGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAzcHggMTVweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxQkE0RUM7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcclxufVxyXG5cclxuLmJudEFjdGlvbiB7XHJcbiAgICBmb250LXNpemU6IDAuN3JlbTtcclxufVxyXG5cclxuLmJudEFjdGlvbi1hY3RpdmUge1xyXG4gICAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgICBjb2xvcjogIzU1NTtcclxufVxyXG5cclxuLmFjdGlvbnMtY2FydG8ge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbn0iXX0= */\";","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, of } from 'rxjs';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport ToolsMap from '../../componentes/utils/Tools.map';\r\nimport StatisticMap from '../../componentes/utils/Statistic.map';\r\nimport { InfoStatisticsComponent } from '../../componentes/info-statistics/info-statistics.component';\r\nimport { CartographyPanel, DataDialog, Plano, Settings, Summary } from '../../modelo';\r\nimport { ControlService, MapService } from '../../datos';\r\nimport { Profile } from 'src/app/sicap/planos/modelo/jwt';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { ModalService } from 'src/app/sicap/comun/datos/modal.service';\r\nimport { Section } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { PrincipalTools, INIT } from '../../modelo/DeclaredLayer';\r\n\r\ndeclare let L;\r\n\r\n// Assign the imported image assets before you do anything with Leaflet.\r\nL.Marker.prototype.options.icon = L.icon({\r\n iconRetinaUrl: './assets/img/map/place.png',\r\n iconUrl: './assets/img/map/place.png',\r\n //shadowUrl: './assets/img/map/place.png',\r\n iconSize: [25, 41],\r\n iconAnchor: [12, 41],\r\n popupAnchor: [1, -34],\r\n tooltipAnchor: [16, -28],\r\n shadowSize: [41, 41],\r\n});\r\n\r\n@Component({\r\n selector: 'app-map-canvas',\r\n templateUrl: './map-canvas.component.html',\r\n styleUrls: ['./map-canvas.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MapCanvasComponent implements OnInit {\r\n private map: any;\r\n public currentUser: Profile;\r\n public currentPlano: Plano = INIT.plano(); //{ num: null, idStatus: null, status: null, module:null, dcreated: null };\r\n public selectedTool: string;\r\n public indexMenu: number = 0;\r\n private isLoadingSubject = new BehaviorSubject(true);\r\n public loading$ = this.isLoadingSubject.asObservable();\r\n private isSecondLoadingSubject = new BehaviorSubject(true);\r\n public secondLoading$ = this.isLoadingSubject.asObservable();\r\n public contentProject: any = null;\r\n //public dataSelected = { name: '', layer: null, n_elements: 0, n_selected: 0, color: \"\" };\r\n\r\n private infoDialog: DataDialog;\r\n public disablePanel: CartographyPanel = INIT.panel(); //{ dwelling: true, other: true, equipment: true, vial: true };\r\n public visibleTool : PrincipalTools = INIT.tools() //{ copy: false, select: false, statistic: false, sendSIG: false, validCUV: false, reviewCUV: false, nokGIS: false, okGIS: false, verifyGIS:false }\r\n public numNotifications: string;\r\n public waiting$: boolean = false;\r\n public resultValidCuvs: any;\r\n private loadMap = true;\r\n public disableSelected: boolean = true;\r\n public expandedSelected: boolean = false;\r\n public expandedTask: boolean = true;\r\n public showCopyPanel: boolean = false;\r\n public clearSession: boolean = false;\r\n\r\n constructor(private authService: AuthService, private mapService: MapService, \r\n private control: ControlService, public modalService: ModalService, \r\n private router: Router, public dialog: MatDialog, \r\n private activeRoute: ActivatedRoute) {\r\n\r\n this.authService.currentUser.subscribe(user => {\r\n if (user == undefined || user == null) {\r\n this.router.navigate(['/login']);\r\n } else {\r\n this.currentUser = user;\r\n }\r\n });\r\n this.initControl();\r\n }\r\n\r\n /**\r\n * Inicializar controles\r\n */\r\n initControl() {\r\n this.control.L = L;\r\n this.control.map = null;\r\n this.control.listLayers = [];\r\n this.control.infoGroupLayer = [];\r\n this.control.changeTool('')\r\n this.control.setProject(null)\r\n this.control.setPlano(null)\r\n }\r\n\r\n ngOnInit() {\r\n this.currentPlano.num = this.activeRoute.snapshot.params['orderverif'] || this.activeRoute.snapshot.params['id'];\r\n this.currentPlano.module = this.activeRoute.snapshot.params['module'];\r\n this.setSettings();\r\n this.initHideTool();\r\n }\r\n\r\n /**\r\n * Recuperar lista de capas y estadisticas del perfil\r\n */\r\n private setSettings() {\r\n this.mapService.getSettings(this.currentPlano.num, this.currentPlano.module).subscribe(response => {\r\n if (response.code != 200) {\r\n this.modalService.openWarningModal(\"Mapa\", response.message)\r\n return\r\n };\r\n\r\n const getSetting = (KEY: string) => response.model['list'].filter(item => item.key == KEY);\r\n\r\n let base: Settings[] = getSetting('BASE_MAP');\r\n let schemaLayers = this.currentUser.uRoleKey == 'O' ? 'PROJECT_WMS_OSIG' : 'PROJECT_WMS'\r\n let content: Settings[] = getSetting(schemaLayers);\r\n this.control.setProject(content[0].data);\r\n\r\n if (this.loadMap) {\r\n this.map = this.iniComponentsMap(base[0].data);\r\n this.loadMap = false;\r\n }\r\n\r\n\r\n let status = response.model['scene'];\r\n this.currentPlano.status = status.estatus.sname;\r\n this.currentPlano.idStatus = status.estatus.psid;\r\n this.currentPlano.dcreated = status.createdFormat;\r\n \r\n let stage = StatisticMap.getStage(this.currentPlano);\r\n\r\n if (stage == \"\") {\r\n this.modalService.openInfoModal(\"Plano\", 'El estatus del plano no es válido para mostrar el plano.');\r\n this.isLoadingSubject.next(false);\r\n this.isSecondLoadingSubject.next(false);\r\n return;\r\n }\r\n\r\n\r\n this.mapService.getCartography(this.currentPlano.num, stage, this.currentPlano.module).pipe(\r\n catchError(() => of([])),\r\n finalize(() => { this.isLoadingSubject.next(false); })).subscribe(dlayer => {\r\n if (dlayer == null) return;\r\n if (dlayer.length == 0) {\r\n this.visibleTool.copy = false;\r\n this.visibleTool.nokGIS = false;\r\n this.visibleTool.select = false;\r\n this.visibleTool.sendSIG = false;\r\n this.visibleTool.verifyGIS =false;\r\n }\r\n if (dlayer == null && dlayer.length == 0) return;\r\n this.control.setPlano(dlayer)\r\n this.contentProject = { order: this.currentPlano, project: content[0].data, dlayer: dlayer, role:this.currentUser.uRoleKey};\r\n\r\n });\r\n\r\n if (StatisticMap.isLoadingStatistic(this.currentUser.uRoleKey, this.currentPlano.idStatus)) {\r\n this.loadStatistics(stage);\r\n }\r\n\r\n let activeModule = 'ok'\r\n /*this.currentPlano.module == Section.ORDER ?'ok':'nok';\r\n\r\n if (this.currentPlano.module == Section.EQM){\r\n if (this.currentUser.section != undefined){\r\n activeModule = (this.currentUser.section.indexOf(Section.EQM) != -1?'ok':'nok')\r\n }\r\n }*/\r\n if (this.currentUser.uRoleKey == 'O'){\r\n if(this.currentPlano.idStatus == 5 && activeModule == 'ok'){\r\n this.visibleTool.verifyGIS = false;\r\n }else if (this.currentPlano.idStatus == 4 && activeModule == 'ok'){\r\n this.visibleTool.copy = true;\r\n this.visibleTool.nokGIS = true;\r\n }\r\n }\r\n\r\n this.visibleTool.select = true;\r\n this.visibleTool.sendSIG = (this.currentUser.uRoleKey == 'D' && this.currentPlano.idStatus == 1 && activeModule == 'ok'? true : false);\r\n\r\n })\r\n }\r\n\r\n /**\r\n * Metodo que inicializa los componentes principales el mapa\r\n * No requietre parametros\r\n */\r\n private iniComponentsMap(base) {\r\n const map = L.map('map', {\r\n center: [23.586825, -102.124213889],\r\n zoom: 5,\r\n maxZoom: 22\r\n });\r\n\r\n const scaleControl = L.control.scale({ updateWhenIdle: true });\r\n \r\n map.addControl(L.control.basemaps({\r\n basemaps: ToolsMap.initBaseMaps(L, base), //this.initBaseMaps(base),\r\n position: \"bottomleft\",\r\n tileX: 0, // tile X coordinate\r\n tileY: 0, // tile Y coordinate\r\n tileZ: 1 // tile zoom level\r\n }));\r\n map.attributionControl.addAttribution('Registro Único de Vivienda');\r\n scaleControl.addTo(map);\r\n this.iniMeasureTool(map);\r\n this.control.map = map;\r\n return map;\r\n }\r\n\r\n\r\n /**\r\n * Metodo inicializa la herramienta de medición \r\n */\r\n private iniMeasureTool(map: any) {\r\n this.control.measureControl = new L.Control.Measure({\r\n position: 'topleft', // topright\r\n primaryLengthUnit: 'meters', // feet, meters, miles, kilometers\r\n //secondaryLengthUnit: 'miles',\r\n primaryAreaUnit: 'sqmeters', // acres, hectares, sqfeet, sqmeters, sqmiles\r\n //secondaryAreaUnit: undefined,\r\n activeColor: '#40739e',\r\n completedColor: '#353b48',\r\n decPoint: '.', // separador decimal\r\n thousandsSep: ',', // separador de miles\r\n });\r\n\r\n this.control.measureControl.addTo(map);\r\n\r\n const hidecontrol = (c) => { c.style.display = 'none'; }\r\n hidecontrol(document.getElementsByClassName(\"leaflet-control-measure\")[0]);\r\n /*\r\n const writeResults = (results) => {\r\n console.log(results);\r\n document.getElementById('distanceValue').innerHTML = results.areaDisplay + \"\\n
\" + results.lengthDisplay + \"\";\r\n }\r\n map.on('measurefinish', (ev)=> { writeResults(ev); });*/\r\n }\r\n\r\n /**\r\n * Consulta información general de los elementos existentes en temporal y público\r\n * y se obtienen datos generales.\r\n */\r\n private loadStatistics(stage: string) {\r\n\r\n this.isSecondLoadingSubject.next(true);\r\n this.mapService.validCartography(this.currentPlano.num, this.currentPlano.module).subscribe(response => {\r\n this.isSecondLoadingSubject.next(false);\r\n if (response == null) return;\r\n\r\n let itemSummary = { summary: null, statistic: response, order: this.currentPlano, uRoleKey: this.currentUser.uRoleKey }\r\n let summary: Summary = StatisticMap.count(response);\r\n\r\n if (this.currentPlano.idStatus == 4 && this.currentUser.uRoleKey == 'O') {\r\n \r\n if (this.currentPlano.module != Section.EQM){// Entra Orden de verificacion y Oferta\r\n let dwelling = response.find(item => item.tblname == 'smb_construcciones');\r\n this.disablePanel.dwelling = (dwelling.main > 0);\r\n }\r\n\r\n\r\n let { btnDisable, message, tool } = StatisticMap.getMessage(this.currentPlano.idStatus, summary, this.disablePanel);\r\n this.disablePanel = btnDisable;\r\n summary.message = message;\r\n summary.tool = tool;\r\n\r\n let notes = summary.message.length == 0 ? '' : summary.message.length;\r\n this.numNotifications = notes as string;\r\n this.visibleTool.okGIS = summary.tool.gis;\r\n this.clearSession = true;\r\n }\r\n\r\n itemSummary.summary = summary;\r\n this.infoDialog = { action: 'info', item: itemSummary };\r\n this.visibleTool.statistic = true;\r\n\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Regresa a la bandeja de pendientes y búsqueda\r\n * No requietre parametros\r\n */\r\n backToMain() {\r\n //let route = this.currentPlano.module == Section.EQM ? `/oferta/equipamiento`:`/oferta/orden`;\r\n let route = '';\r\n switch (this.currentPlano.module) {\r\n case Section.EQM: route = `/plano/equipamiento`; break;\r\n case Section.OFERTA: route = `/plano/oferta`; break;\r\n default:\r\n route = `/plano/orden`;\r\n }\r\n \r\n if (this.clearSession) {\r\n this.mapService.clearSession(this.currentPlano.num, this.currentPlano.module).subscribe(response => {\r\n this.router.navigate([route]);\r\n });\r\n } else {\r\n this.router.navigate([route]);\r\n }\r\n }\r\n\r\n /**\r\n * Cerrar sesión\r\n */\r\n logout() {\r\n this.authService.logout().subscribe(success => {\r\n if (success) {\r\n this.dialog.closeAll();\r\n this.router.navigate([`/login`]);\r\n }\r\n }, (error) => {\r\n console.error('LOGOUT', error);\r\n });\r\n }\r\n\r\n /**\r\n * Centrar a la República Mexicana \r\n */\r\n centerMexico() {\r\n this.map.setView(new L.LatLng(23.586825, -102.124213889), 5);\r\n }\r\n\r\n /**\r\n * Centrar a la catografía declarada\r\n */\r\n centerDeclaredCartography() {\r\n if (this.control.coordDeclaredCarto != null) {\r\n this.map.fitBounds(this.control.coordDeclaredCarto);\r\n }\r\n }\r\n\r\n /**\r\n * Habilitar herramienta\r\n * @param tool herramienta\r\n */\r\n setSelectedTool(tool: string) {\r\n this.map.options.stool = tool;\r\n this.selectedTool = tool;\r\n this.control.changeTool(tool);\r\n switch (tool) {\r\n case '':\r\n this.indexMenu = 0;\r\n break;\r\n case 'measureTool':\r\n this.indexMenu = 1;\r\n break;\r\n case 'infoTool':\r\n break;\r\n case 'statisticTool':\r\n this.showStatistics();\r\n break;\r\n case 'selectTool':\r\n this.disableSelected = false;\r\n this.expandedSelected = true;\r\n break;\r\n case 'sendSIG':\r\n this.expandedTask = true;\r\n break;\r\n case 'rejectedOrder':\r\n this.expandedTask = true;\r\n break;\r\n case 'reviewCUV':\r\n break;\r\n case 'copyTool':\r\n this.expandedTask = true;\r\n //this.showCopyPanel = true;\r\n break;\r\n case 'acceptedOrder':\r\n this.acceptedOrderNumber();\r\n break;\r\n case 'verifiedPlano':\r\n this.verifiedPlano();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Muestra un dialogo con la información general de la orden de verificación\r\n */\r\n public showStatistics() {\r\n const dialogRef = this.dialog.open(InfoStatisticsComponent, {\r\n width: \"40%\",\r\n data: this.infoDialog,\r\n panelClass: \"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.setSelectedTool('')\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Cambio de pestaña\r\n * @param e \r\n */\r\n changeTabMenu(e) {\r\n this.indexMenu = e.index;\r\n }\r\n\r\n\r\n /* * * * * * * * * * CUMPLE SIG * * * * * * * * * * */\r\n /**\r\n * Si se confirma que el cambio de estatus (a CUMPLE SIG )es correcto se llama al servicio que realizara el cambio\r\n */\r\n acceptedOrderNumber() {\r\n this.modalService.openConfirm('Cumple SIG', `Se realizara el cambio de estatus del plano a Cumple SIG. ¿Desea continuar?`, (answer: boolean) => {\r\n if (answer) {\r\n this.mapService.acceptedOrderNumber(this.currentPlano.num, this.currentPlano.module).subscribe(res => {\r\n this.setSelectedTool('');\r\n if (res.code == 200) {\r\n this.modalService.openDoneModal('Cumple SIG', res.message);\r\n this.setSelectedTool('');\r\n this.visibleTool.nokGIS = false;\r\n this.visibleTool.okGIS = false;\r\n //this.showCopyPanel = false;\r\n this.clearSession = false;\r\n this.setSettings();\r\n\r\n if(this.currentPlano.module != Section.ORDER){\r\n this.visibleTool.verifyGIS = false;\r\n }\r\n\r\n } else {\r\n this.modalService.openErrorModal('Cumple SIG', res.message)\r\n }\r\n }, (error) => {\r\n this.modalService.openErrorModal('Cumple SIG', \"Error mietras se realizaba el cambio de estatus\");\r\n });\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n verifiedPlano() {\r\n this.modalService.openConfirm('Validado', `Se realizara el cambio de estatus del plano a Validado. ¿Desea continuar?`, (answer: boolean) => {\r\n if (answer) {\r\n this.mapService.verifiedPlano(this.currentPlano.num, this.currentPlano.module).subscribe(res => {\r\n this.setSelectedTool('');\r\n if (res.code == 200) {\r\n this.modalService.openDoneModal('Validado', res.message);\r\n this.setSelectedTool('');\r\n this.visibleTool.nokGIS = false;\r\n this.visibleTool.okGIS = false;\r\n //this.showCopyPanel = false;\r\n this.clearSession = false;\r\n this.setSettings();\r\n } else {\r\n this.modalService.openErrorModal('Validado', res.message)\r\n }\r\n }, (error) => {\r\n this.modalService.openErrorModal('Validado', \"Error mietras se realizaba el cambio de estatus\");\r\n });\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n /**\r\n * Ocultar herramientas\r\n */\r\n initHideTool() {\r\n this.control.hidedTool.subscribe(t => {\r\n if (t == null) return;\r\n switch (t.tool) {\r\n case 'sendSIG':\r\n \r\n if (t.action){\r\n this.selectedTool='';\r\n this.expandedTask = false;\r\n this.visibleTool.sendSIG = t.action\r\n }else{\r\n this.visibleTool.sendSIG = t.action; \r\n }\r\n \r\n break;\r\n case 'acceptedOrder':\r\n this.visibleTool.okGIS = t.action; //true;\r\n break;\r\n case 'resultReject':\r\n this.visibleTool.copy = t.action; //false;\r\n this.visibleTool.nokGIS = t.action; //false;\r\n this.visibleTool.okGIS = t.action; //false;\r\n break;\r\n }\r\n })\r\n }\r\n\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { DetailsUserComponent } from './details-user/details-user.component';\r\nimport { DwellingComponent } from './dwelling/dwelling.component';\r\nimport { HistoryComponent } from './history/history.component';\r\nimport { MeasureComponent } from './measure/measure.component';\r\nimport { RejectionComponent } from './rejection/rejection.component';\r\nimport { StatusComponent } from './status/status.component';\r\n\r\n//\r\n// Form Controls\r\n//\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\n//\r\n// Navigation\r\n//\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n//\r\n// Layout\r\n//\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//\r\n// Buttons & Indicators\r\n//\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\n//\r\n// Popups & Modals\r\n//\r\n\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n//\r\n// Data Table\r\n//\r\n\r\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { getSpanishPaginatorIntl } from '../../comun/SpanishPaginator';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [DetailsUserComponent, DwellingComponent, HistoryComponent,\r\n MeasureComponent, RejectionComponent, StatusComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n\r\n MatCardModule,\r\n MatExpansionModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatTreeModule,\r\n\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n\r\n MatDialogModule,\r\n MatSnackBarModule,\r\n MatTooltipModule,\r\n\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule,\r\n \r\n DragDropModule,\r\n FlexLayoutModule,\r\n ScrollingModule,\r\n MatToolbarModule,\r\n ],\r\n entryComponents: [DetailsUserComponent, DwellingComponent, HistoryComponent, \r\n MeasureComponent, RejectionComponent, StatusComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [ { provide: MatPaginatorIntl, useValue: getSpanishPaginatorIntl() },\r\n { provide: MAT_DATE_LOCALE, useValue: 'es-ES' },\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} }]\r\n})\r\nexport class ComponentesModule { }\r\n","export default \".head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n width: 100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL2RldGFpbHMtdXNlci9kZXRhaWxzLXVzZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFdBQVc7SUFDWCw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxXQUFXO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9wbGFub3MvY29tcG9uZW50ZXMvZGV0YWlscy11c2VyL2RldGFpbHMtdXNlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhlYWQtdGl0bGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjI5LCAyMjksIDIyOSk7XHJcbn1cclxuXHJcbm1hdC1mb3JtLWZpZWxkIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59Il19 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DialogData, JsonResponse, TypeUser } from '../../modelo';\r\nimport { ManagmentService } from '../../datos';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-details-user',\r\n templateUrl: './details-user.component.html',\r\n styleUrls: ['./details-user.component.css']\r\n})\r\n/**\r\n * Detalles del usuario\r\n */\r\nexport class DetailsUserComponent implements OnInit {\r\n public userForm: FormGroup;\r\n public typeUserList: TypeUser[];\r\n hide = true;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private mService: ManagmentService,\r\n private notify: NotificationService, private logger: NGXLogger) {\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.userForm = new FormGroup({\r\n typeu: new FormControl('', [Validators.required]),\r\n nameusr: new FormControl('', [Validators.required]),\r\n email: new FormControl('', [Validators.required, Validators.email]),\r\n password: new FormControl('', [Validators.required, Validators.minLength(8)]),\r\n estatus: new FormControl('', [Validators.required]),\r\n uid: new FormControl('')\r\n });\r\n if (this.data.action == 2) {\r\n this.userForm.patchValue(this.data.user);\r\n this.userForm.controls['typeu'].disable();\r\n }\r\n }\r\n\r\n /**\r\n * Validar los controles del form\r\n * @param controlName Nombre del control\r\n */\r\n public validateControl(controlName: string) {\r\n if (this.userForm.controls[controlName].invalid && this.userForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Asignar el mensaje de error al control\r\n * @param controlName Nombre dle control\r\n * @param errorName Mensaje de error\r\n */\r\n public hasError(controlName: string, errorName: string) {\r\n if (this.userForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Cerrar el dialogo\r\n */\r\n public closeDialog(type?: number): void {\r\n this.dialogRef.close(type !== undefined ? type : 0);\r\n }\r\n\r\n /**\r\n * Guardar datos de usuario\r\n * @param values \r\n */\r\n public save(values) {\r\n switch (this.data.action) {\r\n case 2: //Editar\r\n this.mService.update(values.uid, values).subscribe((res: JsonResponse) => {\r\n this.notify.show(res.message, res.code == 200 ? 'succes' : 'error', 4000)\r\n if (res.code == 200) this.closeDialog(1);\r\n }, (error) => {\r\n this.logger.error(\"editUser\", error)\r\n });\r\n break;\r\n case 1: //Nuevo\r\n this.mService.create(values).subscribe((res: JsonResponse) => {\r\n this.notify.show(res.message, res.code == 200 ? 'succes' : 'error', 4000)\r\n if (res.code == 200) this.closeDialog(1);\r\n }, (error) => {\r\n this.logger.error(\"newUser\", error)\r\n });\r\n break;\r\n }\r\n }\r\n}\r\n","export default \".mat-list .mat-list-item.left .mat-list-item-content {\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL2R3ZWxsaW5nL2R3ZWxsaW5nLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsOEJBQThCO0FBQ2xDIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL2R3ZWxsaW5nL2R3ZWxsaW5nLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0ubGVmdCAubWF0LWxpc3QtaXRlbS1jb250ZW50IHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uaGVhZC10aXRsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyMjksIDIyOSwgMjI5KTtcclxufSJdfQ== */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DialogData } from '../../modelo';\r\n\r\n@Component({\r\n selector: 'app-dwelling',\r\n templateUrl: './dwelling.component.html',\r\n styleUrls: ['./dwelling.component.css']\r\n})\r\n\r\n/**\r\n * Vivienda\r\n */\r\nexport class DwellingComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * Cerrar dialogo\r\n */\r\n public closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","export default \".mat-dialog-content {\\r\\n font-family: 'Fira Sans Extra Condensed', 'Nunito', sans-serif;\\r\\n font-size: 0.8em;\\r\\n}\\r\\n\\r\\n.history-details {\\r\\n text-align: justify;\\r\\n font-size: 0.8em;\\r\\n}\\r\\n\\r\\n.head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n\\r\\n.tabla-history tr td {\\r\\n text-align: center;\\r\\n justify-content: center;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL2hpc3RvcnkvaGlzdG9yeS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksOERBQThEO0lBQzlELGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLHVCQUF1QjtBQUMzQiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9jb21wb25lbnRlcy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtZGlhbG9nLWNvbnRlbnQge1xyXG4gICAgZm9udC1mYW1pbHk6ICdGaXJhIFNhbnMgRXh0cmEgQ29uZGVuc2VkJywgJ051bml0bycsIHNhbnMtc2VyaWY7XHJcbiAgICBmb250LXNpemU6IDAuOGVtO1xyXG59XHJcblxyXG4uaGlzdG9yeS1kZXRhaWxzIHtcclxuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgICBmb250LXNpemU6IDAuOGVtO1xyXG59XHJcblxyXG4uaGVhZC10aXRsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyMjksIDIyOSwgMjI5KTtcclxufVxyXG5cclxuLnRhYmxhLWhpc3RvcnkgdHIgdGQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn0iXX0= */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { HistoryData } from '../../modelo';\r\nimport { Profile } from '../../modelo/jwt';\r\n\r\n@Component({\r\n selector: 'app-history',\r\n templateUrl: './history.component.html',\r\n styleUrls: ['./history.component.css']\r\n})\r\n/**\r\n * Muestra el historial de la Orden de verificación\r\n */\r\nexport class HistoryComponent implements OnInit {\r\n public currentUser: Profile;\r\n public isEmpty: boolean = false;\r\n public title: string = '';\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public history: HistoryData,\r\n private authService: AuthService) {\r\n this.currentUser = this.authService.currentUserValue;\r\n }\r\n\r\n /**\r\n * Fn Inicio del componente\r\n */\r\n ngOnInit() {\r\n let list = this.history.list as String[];\r\n this.isEmpty = (list.length != 0);\r\n if (this.history.action == 1) this.title = this.history.ordenumber;\r\n }\r\n\r\n /**\r\n * Cerrar dialogo\r\n */\r\n public closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","export default \".head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n\\r\\n.table-measure th {\\r\\n background-color: teal;\\r\\n text-align: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.table-measure-detail tr {\\r\\n height: 10px;\\r\\n}\\r\\n\\r\\n.mat-row:nth-child(even) {\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n.mat-row:nth-child(odd) {\\r\\n background-color: #ccc;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL21lYXN1cmUvbWVhc3VyZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksV0FBVztJQUNYLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9jb21wb25lbnRlcy9tZWFzdXJlL21lYXN1cmUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oZWFkLXRpdGxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiKDIyOSwgMjI5LCAyMjkpO1xyXG59XHJcblxyXG4udGFibGUtbWVhc3VyZSB0aCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0ZWFsO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi50YWJsZS1tZWFzdXJlLWRldGFpbCB0ciB7XHJcbiAgICBoZWlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5tYXQtcm93Om50aC1jaGlsZChldmVuKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ubWF0LXJvdzpudGgtY2hpbGQob2RkKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xyXG59Il19 */\";","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Distance, Attributes, DialogData } from '../../modelo';\r\nimport { OrdervService, OindividualService } from '../../datos';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-measure',\r\n templateUrl: './measure.component.html',\r\n styleUrls: ['./measure.component.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\n/**\r\n * Muestra las distancias por CUV\r\n */\r\nexport class MeasureComponent implements OnInit {\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n public ELEMENT_DATA: Distance[] = [];\r\n public fieldMeasure: Attributes[];\r\n public selectedMeaseureField: Attributes[];\r\n public dataSource: MatTableDataSource;\r\n private isLoadingSubject = new BehaviorSubject(true);\r\n public isLoading = this.isLoadingSubject.asObservable();\r\n private dataSubject = new BehaviorSubject(false);\r\n public notData = this.dataSubject.asObservable();\r\n public foundData: number = 0;\r\n public columnSnIds: any[] = [];\r\n public columnScene: any[] = [];\r\n public MODULE_NO_CUVS:string='eq';\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private oindService: OindividualService,\r\n private searchService: OrdervService) { }\r\n\r\n ngOnInit() {\r\n this.fieldMeasure = this.data.field;\r\n this.selectedMeaseureField = JSON.parse(JSON.stringify(this.data.field));\r\n this.setTableStructure()\r\n if (this.data.dialog == 'VIV') {\r\n this.oindService.getDistance(this.data.identity).subscribe(res => this.setDataMeasure(res));\r\n } else {\r\n this.searchService.getDistance(this.data.identity).subscribe(res => this.setDataMeasure(res));\r\n }\r\n }\r\n\r\n /**\r\n * Cargar datos de distancias\r\n * @param result \r\n */\r\n private setDataMeasure(result) {\r\n if (result.code == 200) {\r\n this.ELEMENT_DATA = result.model['list'];\r\n this.dataSource = new MatTableDataSource(this.ELEMENT_DATA);\r\n this.dataSource.paginator = this.paginator;\r\n this.isLoadingSubject.next(false);\r\n this.dataSource.filterPredicate = (data: any, filter) => {\r\n const dataStr = JSON.stringify(data).toLowerCase();\r\n return dataStr.indexOf(filter) != -1;\r\n }\r\n } else {\r\n this.dataSubject.next(true);\r\n }\r\n }\r\n\r\n /**\r\n * Filtrar los datos del arreglo.\r\n * @param filterValue \r\n */\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n this.foundData = this.dataSource.filteredData.length;\r\n }\r\n\r\n /**\r\n * Estructura de la tabla\r\n */\r\n private setTableStructure() {\r\n let columns = [\r\n { id: 1, cid: 'cuv', property: 'cuv', title: \"CUV\", visibleTo: [], action: false, order: false },\r\n { id: 3, cid: 'distancia', property: 'distancia', title: \"DISTANCIA\", visibleTo: [], action: true, order: false },\r\n ];\r\n\r\n this.columnScene = columns.filter(data => { return data.visibleTo.indexOf(this.data.dialog) != -1 || data.visibleTo.length == 0; }\r\n );\r\n this.columnSnIds = this.columnScene.map(c => c.cid);\r\n }\r\n\r\n /**\r\n * Filtrar por campo de distancia\r\n * @param e campo o campos de distancia\r\n */\r\n filterByDistanceField(e: any) {\r\n if (e.length == 0) {\r\n this.selectedMeaseureField = JSON.parse(JSON.stringify(this.fieldMeasure));\r\n } else {\r\n this.selectedMeaseureField = e;\r\n }\r\n }\r\n\r\n}","export default \".head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n width: 100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL3JlamVjdGlvbi9yZWplY3Rpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFdBQVc7SUFDWCw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxXQUFXO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9wbGFub3MvY29tcG9uZW50ZXMvcmVqZWN0aW9uL3JlamVjdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhlYWQtdGl0bGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjI5LCAyMjksIDIyOSk7XHJcbn1cclxuXHJcbm1hdC1mb3JtLWZpZWxkIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59Il19 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\nimport { OrdervService } from '../../datos';\r\nimport { DialogData, JsonResponse } from '../../modelo';\r\nimport { EquipamientoService } from '../../datos/equipamiento.service';\r\nimport { Section } from 'src/app/sicap/comun/modelo/config.http';\r\n\r\n\r\n@Component({\r\n selector: 'app-rejection',\r\n templateUrl: './rejection.component.html',\r\n styleUrls: ['./rejection.component.css']\r\n})\r\n/**\r\n * Formato de solicitud de rechazo del plano\r\n */\r\nexport class RejectionComponent implements OnInit {\r\n public rejectionForm: FormGroup;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private orderService: OrdervService, private eqmService: EquipamientoService, private logger: NGXLogger,\r\n private notify: NotificationService) {\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.rejectionForm = new FormGroup({\r\n orderVerif: new FormControl({ value: this.data.identity, disabled: true }, [Validators.required]),\r\n name: new FormControl('', [Validators.required]),\r\n numbertel: new FormControl('', [Validators.required]),\r\n email: new FormControl('', [Validators.required, Validators.email]),\r\n reasons: new FormControl('', [Validators.required, Validators.maxLength(500)]),\r\n module: new FormControl(this.data.module)\r\n });\r\n }\r\n\r\n /**\r\n * Validar los controles del form\r\n * @param controlName Nombre del control\r\n */\r\n public validateControl(controlName: string) {\r\n if (this.rejectionForm.controls[controlName].invalid && this.rejectionForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Asignacion del mensaje al control\r\n * @param controlName Nombre del control\r\n * @param errorName mensaje\r\n */\r\n public hasError(controlName: string, errorName: string) {\r\n if (this.rejectionForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Enviar notificación de rechazo por el desarrollador\r\n * @param values razón de rechazo\r\n */\r\n public send(values) {\r\n values.orderVerif = this.data.identity;\r\n this.orderService.sendNotifyRejection(values)\r\n .subscribe((res: JsonResponse) => {\r\n this.notify.show(res.message, (res.code == 200 ? 'succes' : 'error'), 2000)\r\n if (res.code == 200) {\r\n this.dialogRef.close(1);\r\n }\r\n }, (error) => {\r\n this.logger.error(\"RejectionForm\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Cerrar dialogo\r\n */\r\n closeDialog(): void {\r\n this.dialogRef.close(0);\r\n }\r\n}\r\n","export default \".head-title {\\r\\n width: 100%;\\r\\n background: rgb(229, 229, 229);\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL2NvbXBvbmVudGVzL3N0YXR1cy9zdGF0dXMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFdBQVc7SUFDWCw4QkFBOEI7QUFDbEMiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9wbGFub3MvY29tcG9uZW50ZXMvc3RhdHVzL3N0YXR1cy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmhlYWQtdGl0bGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjI5LCAyMjksIDIyOSk7XHJcbn0iXX0= */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\nimport { OrdervService } from '../../datos';\r\nimport { DialogData, JsonResponse, Status } from '../../modelo';\r\nimport { EquipamientoService } from '../../datos/equipamiento.service';\r\nimport { Section } from '../../../comun/modelo/config.http';\r\n\r\n@Component({\r\n selector: 'app-status',\r\n templateUrl: './status.component.html',\r\n styleUrls: ['./status.component.css']\r\n})\r\n/**\r\n * Cambio de estatus\r\n */\r\nexport class StatusComponent implements OnInit {\r\n public statusForm: FormGroup;\r\n public typeUserList: Status[];\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private searchService: OrdervService, private logger: NGXLogger,\r\n private eqmService: EquipamientoService,\r\n private notify: NotificationService,) {\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.statusForm = new FormGroup({\r\n statusId: new FormControl('', [Validators.required]),\r\n comments: new FormControl('', [Validators.required])\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Validar los controles del form\r\n * @param controlName Nombre del control\r\n */\r\n public validateControl(controlName: string) {\r\n if (this.statusForm.controls[controlName].invalid && this.statusForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Asignacion del mensaje al control\r\n * @param controlName Nombre dle control\r\n * @param errorName Mensaje\r\n */\r\n public hasError(controlName: string, errorName: string) {\r\n if (this.statusForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Guardar la actualización de estatus\r\n * @param values razón de cambio de estatus\r\n */\r\n public save(values) {\r\n this.searchService.updateSceneStatus(this.data.identity, values, this.data.module)\r\n .subscribe((res: JsonResponse) => {\r\n let typeMsg = res.code == 200 ? 'succes' : 'error';\r\n this.notify.show(res.message, typeMsg, 4000)\r\n if (res.code == 200) this.dialogRef.close(1);\r\n }, (error) => {\r\n this.logger.error(\"Edit Status\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Cerrar dialogo\r\n */\r\n closeDialog(): void {\r\n this.dialogRef.close(0);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Distance, JsonResponse, OfferDTO } from '../modelo';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OindividualService {\r\n private API = {\r\n Individual: '/api/oindividual/buscar',\r\n Distancia: '/api/oindividual/distancia',\r\n }\r\n public readonly error500 = { code: 500, model: null, message: 'No se puede comunicar con el servidor. Por favor, inténtelo de nuevo más tarde.' };\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * \r\n * @param filter CUV\r\n * @param istatus identificador de estatus\r\n * @param sortOrder dirección al ordenar\r\n * @param sortField campo al ordenar\r\n * @param pageNumber pagina\r\n * @param pageSize numero de registros por pagina\r\n */\r\n public search(filter = '', istatus = -1, sortOrder = 'asc', sortField = 'dtRecepcn', pageNumber = 0, pageSize = 10): Observable {\r\n let params = {\r\n 'filter': filter,\r\n 'type': istatus.toString(),\r\n 'sortOrder': sortOrder,\r\n 'sortField': sortField,\r\n 'pageNumber': pageNumber.toString(),\r\n 'pageSize': pageSize.toString()\r\n };\r\n return this.http.post(`${this.API.Individual}`, JSON.stringify(params), this.generateHeaders()).pipe(\r\n map(res => {\r\n return res['model'];\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener los datos de distancia por OV o VIVIENDA\r\n * @param type \r\n * @param identity \r\n */\r\n public getDistance(identity: any): Observable {\r\n let params = {\r\n 'orderVerif': identity,\r\n 'cuv': identity\r\n };\r\n return this.http.post(`${this.API.Distancia}`, params, this.generateHeaders()).pipe(\r\n map(res => {\r\n return res;\r\n }),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatalogService {\r\n public total_users: number;\r\n public API = {\r\n typeUser: '/api/catalogo/tipo-usuario',\r\n eqm: '/api/catalogo/equipamiento',\r\n order: '/api/catalogo/orden',\r\n offer: '/api/catalogo/oindividual',\r\n oferta: '/api/catalogo/oferta',\r\n };\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Obtener la lista de tipos de usaurios\r\n */\r\n public getTypeUser(): Observable {\r\n return this.http.get(`${this.API.typeUser}`).pipe(\r\n map(res => { if (res['model'] != null) { return res['model'][\"list\"] } else { return [] } }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Catálogos para modulo de equipamiento\r\n */\r\n public getCatalogsEqm(): Observable {\r\n return this.http.get(`${this.API.eqm}`).pipe(\r\n map(res => { if (res['model'] != null) { return res['model'] } else { return null } }),\r\n catchError(error => { return of(null); })\r\n );\r\n }\r\n\r\n /**\r\n * Catálogos para modulos de Orden de Verificación\r\n */\r\n public getCatalogOrder(): Observable {\r\n return this.http.get(`${this.API.order}`).pipe(\r\n map(res => { if (res['model'] != null) { return res['model'] } else { return null } }),\r\n catchError(error => { return of(null); })\r\n );\r\n }\r\n\r\n /**\r\n * Catálogos para modulo de oferta\r\n */\r\n public getCatalogOffer(): Observable {\r\n return this.http.get(`${this.API.offer}`, {\r\n params: new HttpParams()\r\n .set('type', 'VIV')\r\n }).pipe(\r\n map(res => { if (res['model'] != null) { return res['model'] } else { return [] } }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Catálogos para modulos de Orden de Verificación\r\n */\r\n public getCatalogOferta(): Observable {\r\n return this.http.get(`${this.API.oferta}`).pipe(\r\n map(res => { if (res['model'] != null) { return res['model'] } else { return null } }),\r\n catchError(error => { return of(null); })\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\nimport { Scene, Status, Rejection, JsonResponse } from '../modelo';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EquipamientoService {\r\n private API = {\r\n getScenes: '/api/equipamiento/buscar',\r\n history: '/api/equipamiento/historial',\r\n assignOperator: '/api/equipamiento/asignar-operador/',\r\n updateSceneStatus: '/api/equipamiento/cambiar-estatus/', \r\n sendNotification: \"/api/plano/notificacion\",\r\n downloadMap: \"/api/equipamiento/descargar\"\r\n };\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Se obtiene los registros que cumplan con los filtros establecidos por el usuario\r\n * @param filter desarrollador | OV\r\n * @param istatus identificador del estatus\r\n * @param istate identificador del estado\r\n * @param icity identificador de la ciudad\r\n * @param onlyNews solo pendientes\r\n * @param sortOrder Dirección de orden de datos\r\n * @param sortField Campo a ordenar\r\n * @param pageNumber pagina\r\n * @param pageSize numero de registros por pagina\r\n */\r\n public searchScene(filter = '', istatus = -1,itypeMap = -1, onlyNews = 1, sortOrder = 'desc', sortField = 'lastupdateformat', pageNumber = 0, pageSize = 10): Observable {\r\n return this.http.post(this.API.getScenes, {\r\n filter,\r\n 'status': istatus,\r\n 'typeMap': itypeMap,\r\n onlyNews,\r\n sortOrder,\r\n sortField,\r\n pageNumber,\r\n pageSize,\r\n }, this.generateHeaders()).pipe(\r\n map(res => {\r\n if (res['model'] != null) { return res['model'] } else { return [] }\r\n }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener el historial de la OV\r\n * @param id Orden de verificación\r\n */\r\n public getHistory(id: string) {\r\n return this.http.get(`${this.API.history}`, {\r\n params: new HttpParams()\r\n .set('id', id)\r\n }).pipe(\r\n map(res => res['model'][\"list\"]),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Asignar operador sig a OV\r\n * @param orderVerify Orden de verificación\r\n * @param opGIS identificador del operador SIG\r\n */\r\n public assignOperator(orderVerify:string, opGIS:string) {\r\n return this.http.put(`${this.API.assignOperator}${orderVerify}`, { operatorSIG: opGIS }, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Actualizar el estatus de la OV\r\n * @param orderVerify Orden de verificación\r\n * @param status identificador de estatus\r\n */\r\n public updateSceneStatus(orderVerify: number, status: Status) {\r\n return this.http.put(`${this.API.updateSceneStatus}${orderVerify}`, status, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Enviar solicitud de rechazo a correo electrónico de SICAP\r\n * @param formRejection \r\n */\r\n public sendNotifyRejection(formRejection: Rejection) {\r\n return this.http.post(`${this.API.sendNotification}`, formRejection, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n\r\n public checkDownloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerif)\r\n .set('check', '1')\r\n }).pipe(\r\n map(res => {\r\n return res as JsonResponse;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano\r\n */\r\n public downloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n headers: new HttpHeaders().set('Accept', 'application/octet-stream'),\r\n observe: 'response',\r\n responseType: 'blob',\r\n params: new HttpParams().set('orderVerify', orderVerif).set('check', '0')\r\n }).subscribe(\r\n (data) => { this.openFileForDownload(data); },\r\n (error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Definir el tipo de archivo\r\n * @param data \r\n */\r\n public openFileForDownload(data: HttpResponse) {\r\n let content_type = data.headers.get('Content-type');\r\n let x_filename = data.headers.get('name-downaload');\r\n let blob = new Blob([data.body], { type: content_type });\r\n saveAs(blob, x_filename);\r\n }\r\n}\r\n","export * from './load-map.service';\r\nexport * from './managment.service';\r\nexport * from './Oindividual.service';\r\nexport * from './orderv.service';\r\nexport * from './catalog.service';\r\nexport * from './oferta.service';","import { Injectable, APP_ID } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadMapService {\r\n\r\n private readonly API = {\r\n upload: '/api/cargar/plano',\r\n validateOV: '/api/cargar/validar-orden',\r\n idstatus: '/api/cargar/estatus'\r\n };\r\n\r\n public readonly error500 = { code: 500, model: null, message: 'No se puede comunicar con el servidor. Por favor, inténtelo de nuevo más tarde.' };\r\n public readonly UPLOAD_URL = this.API.upload;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Validar el estatus de la orden de verificación\r\n * @param params orden de verificación\r\n */\r\n public validateVerifyOrder(params) {\r\n return this.http.post(`${this.API.validateOV}`, JSON.stringify(params), this.generateHeaders()).pipe(\r\n map(res => {console.log(\"1>>\",res); return res}),\r\n catchError(error => {\r\n return of(this.error500);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener estatus de la Orden de Verificacion\r\n * @param orderVerify orden de verificación\r\n */\r\n public getStatusId(orderVerify: string) {\r\n return this.http.get(`${this.API.idstatus}`, { params: new HttpParams().set('orderv', orderVerify) }).pipe(\r\n map(res => res[\"list\"])\r\n );\r\n }\r\n\r\n /**\r\n * Generar encabezado para envios por el método post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { User, UserDTO } from '../modelo/user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ManagmentService {\r\n public total_users: number;\r\n constructor(private http: HttpClient) { }\r\n private readonly API: any = {\r\n users: \"/api/interno\",\r\n userstatus: \"/api/interno/estatus\",\r\n validOV: \"/api/interno/validar/\",\r\n measure: \"/api/interno/medir\",\r\n sendxml: \"/api/interno/enviar\",\r\n reload: \"/api/interno/recargar/\",\r\n reloadEqm: \"/api/interno/planos/recargar/\"\r\n }\r\n /**\r\n * Obtener datos de usuario\r\n * @param id \r\n */\r\n public getUser(id: number) {\r\n return this.http.get(`${this.API.users}${id}`);\r\n }\r\n\r\n /**\r\n * Crear usuario\r\n * @param body datos de usuario\r\n */\r\n public create(body: User) {\r\n return this.http.post(`${this.API.users}`, body, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Actualizar usuario\r\n * @param id identificador de usuario\r\n * @param body datos de usuario\r\n */\r\n public update(id: number, body: User) {\r\n return this.http.put(`${this.API.users}/${id}`, body, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Eliminar usuario\r\n * @param id identificador de usuario\r\n */\r\n public delete(id: number) {\r\n return this.http.delete(`${this.API.users}${id}`);\r\n }\r\n\r\n /**\r\n * Actualizar estatus usuario\r\n * @param id identificador de usuario\r\n * @param body estatus\r\n */\r\n public updateStatus(id: number, status: boolean) {\r\n return this.http.put(`${this.API.userstatus}/${id}`, { status }, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Buscar usuarios\r\n * @param filter nombre de usuario\r\n * @param itypeu tipo de usuario\r\n * @param sortOrder dirección al ordenar\r\n * @param fieldSort campo al ordenar\r\n * @param pageNumber pagina\r\n * @param pageSize numero de registros por pagina\r\n */\r\n public findUsers(filter = '', itypeu = -1, sortOrder = 'asc', fieldSort = 'uid', pageNumber = 0, pageSize = 5): Observable {\r\n return this.http.get(this.API.users, {\r\n params: new HttpParams()\r\n .set('filter', filter)\r\n .set('type', itypeu.toString())\r\n .set('sortOrder', sortOrder)\r\n .set('fieldSort', fieldSort)\r\n .set('pageNumber', pageNumber.toString())\r\n .set('pageSize', pageSize.toString())\r\n }).pipe(\r\n map(res => {\r\n return res[\"model\"];\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener datos de usuario\r\n * @param id \r\n */\r\n public validOVToMeasure(order: number) {\r\n return this.http.get(`${this.API.validOV}${order}`);\r\n }\r\n\r\n /**\r\n * Crear usuario\r\n * @param body datos de usuario\r\n */\r\n public measure(order: number) {\r\n return this.http.post(`${this.API.measure}`, JSON.stringify({ 'orderVerify': order }), this.generateHeaders()).\r\n pipe(\r\n map((data) => {\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Ocurrio algo inesperado!');\r\n })\r\n )\r\n }\r\n\r\n /**\r\n * Crear usuario\r\n * @param body datos de usuario\r\n */\r\n public sendXML(order: number) {\r\n return this.http.post(`${this.API.sendxml}`, JSON.stringify({ 'orderVerify': order }), this.generateHeaders())\r\n .pipe(\r\n map((data) => {\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Ocurrio algo inesperado!');\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Crear usuario\r\n * @param body datos de usuario\r\n */\r\n public reloadZIP(order: number) {\r\n return this.http.post(`${this.API.reload}`, JSON.stringify({ 'orderVerify': order }), this.generateHeaders())\r\n .pipe(\r\n map((data) => {\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Ocurrio algo inesperado!');\r\n })\r\n );\r\n }\r\n\r\n public reloadZIPEqm(order: number) {\r\n return this.http.post(`${this.API.reloadEqm}`, JSON.stringify({ 'order': order }), this.generateHeaders())\r\n .pipe(\r\n map((data) => {\r\n return data;\r\n }), catchError(error => {\r\n return throwError('Ocurrio algo inesperado!');\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\nimport { Scene, Status, Rejection, JsonResponse } from '../modelo';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfertaService {\r\n private API = {\r\n getScenes: '/api/oferta/buscar',\r\n dwelling: '/api/oferta/vivienda',\r\n history: '/api/oferta/historial',\r\n assignOperator: '/api/oferta/asignar-operador/',\r\n updateSceneStatus: '/api/oferta/cambiar-estatus/',\r\n distanceOV: '/api/oferta/distancia',\r\n sendNotification: \"/api/plano/notificacion\",\r\n downloadMap: \"/api/oferta/descargar\"\r\n };\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Se obtiene los registros que cumplan con los filtros establecidos por el usuario\r\n * @param filter desarrollador | OV\r\n * @param istatus identificador del estatus\r\n * @param istate identificador del estado\r\n * @param icity identificador de la ciudad\r\n * @param onlyNews solo pendientes\r\n * @param sortOrder Dirección de orden de datos\r\n * @param sortField Campo a ordenar\r\n * @param pageNumber pagina\r\n * @param pageSize numero de registros por pagina\r\n */\r\n public searchScene(filter = '', istatus = -1, istate = -1, icity = -1, onlyNews = 1, sortOrder = 'desc', sortField = 'lastupdateformat', pageNumber = 0, pageSize = 10): Observable {\r\n return this.http.post(this.API.getScenes, {\r\n filter,\r\n 'status': istatus,\r\n 'state': istate,\r\n 'city': icity,\r\n onlyNews,\r\n sortOrder,\r\n sortField,\r\n pageNumber,\r\n pageSize,\r\n }, this.generateHeaders()).pipe(\r\n map(res => {\r\n if (res['model'] != null) { return res['model'] } else { return [] }\r\n }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener la lista de viviendas por OV\r\n * @param orderVerify Orden de verificación\r\n */\r\n public getDwelling(orderVerify: string): Observable {\r\n return this.http.get(this.API.dwelling, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerify)\r\n }).pipe(\r\n map(res => {\r\n return res['list']\r\n }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener el historial de la OV\r\n * @param orderVerify Orden de verificación\r\n */\r\n public getHistory(orderVerify: string) {\r\n return this.http.get(`${this.API.history}`, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerify)\r\n }).pipe(\r\n map(res => res['model'][\"list\"]),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Asignar operador sig a OV\r\n * @param orderVerify Orden de verificación\r\n * @param opGIS identificador del operador SIG\r\n */\r\n public assignOperator(orderVerify, opGIS) {\r\n return this.http.put(`${this.API.assignOperator}${orderVerify}`, { operatorSIG: opGIS }, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Actualizar el estatus de la OV\r\n * @param orderVerify Orden de verificación\r\n * @param status identificador de estatus\r\n */\r\n public updateSceneStatus(orderVerify: number, status: Status) {\r\n return this.http.put(`${this.API.updateSceneStatus}${orderVerify}`, status, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Enviar solicitud de rechazo a correo electrónico de SICAP\r\n * @param formRejection \r\n */\r\n public sendNotifyRejection(formRejection: Rejection) {\r\n return this.http.post(`${this.API.sendNotification}`, formRejection, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Obtener los datos de distancia por OV o VIVIENDA\r\n * @param type \r\n * @param identity \r\n */\r\n public getDistance(identity: any): Observable {\r\n let params = {\r\n 'orderVerif': identity,\r\n 'cuv': identity\r\n };\r\n return this.http.post(`${this.API.distanceOV}`, params, this.generateHeaders()).pipe(\r\n map(res => { return res; }),\r\n catchError(error => { return of({ code: 500, model: null, message: \"Ocurrio algo innesperado\" }); })\r\n );\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n\r\n public checkDownloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerif)\r\n .set('check', '1')\r\n }).pipe(\r\n map(res => {\r\n return res as JsonResponse;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano\r\n */\r\n public downloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n headers: new HttpHeaders().set('Accept', 'application/octet-stream'),\r\n observe: 'response',\r\n responseType: 'blob',\r\n params: new HttpParams().set('orderVerify', orderVerif).set('check', '0')\r\n }).subscribe(\r\n (data) => { this.openFileForDownload(data); },\r\n (error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Definir el tipo de archivo\r\n * @param data \r\n */\r\n public openFileForDownload(data: HttpResponse) {\r\n let content_type = data.headers.get('Content-type');\r\n let x_filename = data.headers.get('name-downaload');\r\n let blob = new Blob([data.body], { type: content_type });\r\n saveAs(blob, x_filename);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\nimport { Scene, Status, Rejection, JsonResponse } from '../modelo';\r\nimport { Section } from '../../comun/modelo/config.http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrdervService {\r\n private API = {\r\n getScenes: '/api/orden/buscar',\r\n dwelling: '/api/orden/vivienda',\r\n history: '/api/orden/historial',\r\n assignOperator: '/api/orden/asignar-operador/',\r\n updateSceneStatus: '/api/orden/cambiar-estatus/',\r\n distanceOV: '/api/orden/distancia',\r\n sendNotification: \"/api/plano/notificacion\",\r\n downloadMap: \"/api/orden/descargar\"\r\n };\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * Se obtiene los registros que cumplan con los filtros establecidos por el usuario\r\n * @param filter desarrollador | OV\r\n * @param istatus identificador del estatus\r\n * @param istate identificador del estado\r\n * @param icity identificador de la ciudad\r\n * @param onlyNews solo pendientes\r\n * @param sortOrder Dirección de orden de datos\r\n * @param sortField Campo a ordenar\r\n * @param pageNumber pagina\r\n * @param pageSize numero de registros por pagina\r\n */\r\n public searchScene(filter = '', istatus = -1, istate = -1, icity = -1, onlyNews = 1, sortOrder = 'desc', sortField = 'lastupdateformat', pageNumber = 0, pageSize = 10): Observable {\r\n return this.http.post(this.API.getScenes, {\r\n filter,\r\n 'status': istatus,\r\n 'state': istate,\r\n 'city': icity,\r\n onlyNews,\r\n sortOrder,\r\n sortField,\r\n pageNumber,\r\n pageSize,\r\n }, this.generateHeaders()).pipe(\r\n map(res => {\r\n if (res['model'] != null) { return res['model'] } else { return [] }\r\n }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener la lista de viviendas por OV\r\n * @param orderVerify Orden de verificación\r\n */\r\n public getDwelling(orderVerify: string): Observable {\r\n return this.http.get(this.API.dwelling, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerify)\r\n }).pipe(\r\n map(res => {\r\n return res['list']\r\n }),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n /**\r\n * Obtener el historial de la OV\r\n * @param orderVerify Orden de verificación\r\n */\r\n public getHistory(orderVerify: string) {\r\n return this.http.get(`${this.API.history}`, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerify)\r\n }).pipe(\r\n map(res => res['model'][\"list\"]),\r\n catchError(error => { return of([]); })\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Asignar operador sig a OV\r\n * @param orderVerify Orden de verificación\r\n * @param opGIS identificador del operador SIG\r\n */\r\n public assignOperator(orderVerify, opGIS) {\r\n return this.http.put(`${this.API.assignOperator}${orderVerify}`, { operatorSIG: opGIS }, this.generateHeaders());\r\n }\r\n\r\n private getModuleUrl(m) {\r\n let url = '';\r\n switch (m) {\r\n case Section.OFERTA: url = 'oferta';\r\n break;\r\n case Section.EQM: url = 'equipamiento';\r\n break;\r\n default:\r\n url = 'orden';\r\n }\r\n return url;\r\n }\r\n /**\r\n * Actualizar el estatus de la OV\r\n * @param orderVerify Orden de verificación\r\n * @param status identificador de estatus\r\n */\r\n public updateSceneStatus(orderVerify: string, status: Status, module:string) {\r\n ///api/orden/cambiar-estatus/\r\n return this.http.put(`/api/${this.getModuleUrl(module)}/cambiar-estatus/${orderVerify}`, status, this.generateHeaders());\r\n //return this.http.put(`${this.API.updateSceneStatus}${orderVerify}`, status, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Enviar solicitud de rechazo a correo electrónico de SICAP\r\n * @param formRejection \r\n */\r\n public sendNotifyRejection(formRejection: Rejection) {\r\n return this.http.post(`${this.API.sendNotification}`, formRejection, this.generateHeaders());\r\n }\r\n\r\n /**\r\n * Obtener los datos de distancia por OV o VIVIENDA\r\n * @param type \r\n * @param identity \r\n */\r\n public getDistance(identity: any): Observable {\r\n let params = {\r\n 'orderVerif': identity,\r\n 'cuv': identity\r\n };\r\n return this.http.post(`${this.API.distanceOV}`, params, this.generateHeaders()).pipe(\r\n map(res => { return res; }),\r\n catchError(error => { return of({ code: 500, model: null, message: \"Ocurrio algo innesperado\" }); })\r\n );\r\n }\r\n\r\n /**\r\n * Encabezado mapa metodos post\r\n */\r\n private generateHeaders() {\r\n return {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n }\r\n }\r\n\r\n public checkDownloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n params: new HttpParams()\r\n .set('orderVerify', orderVerif)\r\n .set('check', '1')\r\n }).pipe(\r\n map(res => {\r\n return res as JsonResponse;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano\r\n */\r\n public downloadFile(orderVerif) {\r\n return this.http.get(`${this.API.downloadMap}`, {\r\n headers: new HttpHeaders().set('Accept', 'application/octet-stream'),\r\n observe: 'response',\r\n responseType: 'blob',\r\n params: new HttpParams().set('orderVerify', orderVerif).set('check', '0')\r\n }).subscribe(\r\n (data) => { this.openFileForDownload(data); },\r\n (error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Definir el tipo de archivo\r\n * @param data \r\n */\r\n public openFileForDownload(data: HttpResponse) {\r\n let content_type = data.headers.get('Content-type');\r\n let x_filename = data.headers.get('name-downaload');\r\n let blob = new Blob([data.body], { type: content_type });\r\n saveAs(blob, x_filename);\r\n }\r\n}\r\n","import { DataSource, CollectionViewer } from '@angular/cdk/collections';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { Scene } from '../../modelo';\r\nimport { EquipamientoService } from '../../datos/equipamiento.service';\r\n\r\nexport class DsScene implements DataSource {\r\n\r\n private SceneSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.loadingSubject.asObservable();\r\n public results: number;\r\n\r\n constructor(private searchService: EquipamientoService) { }\r\n\r\n /**\r\n * Asignacion de datos de las OV al datasource\r\n * @param filter desarrollador o OV\r\n * @param istatus id de estatus\r\n * @param istate id del estado\r\n * @param icity id del municipio\r\n * @param onlyNews solo nuevos\r\n * @param sortDirection dirección para ordenar los datos\r\n * @param sortField campo para ordenar\r\n * @param pageIndex pagina\r\n * @param pageSize numero de registros por pagina \r\n */\r\n searchScene(filter: string, istatus: number, itypeMap: number, onlyNews: number, sortDirection: string, sortField: string, pageIndex: number, pageSize: number) {\r\n this.loadingSubject.next(true);\r\n this.searchService.searchScene(filter, istatus,itypeMap, onlyNews, sortDirection, sortField, pageIndex, pageSize)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(result => { \r\n if (result['list'] != undefined){\r\n this.SceneSubject.next(result['list']); \r\n this.results = result['total']\r\n }else{\r\n this.SceneSubject.next(null); \r\n this.results = 0\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Conectar\r\n * @param collectionViewer \r\n */\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.SceneSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Desconectar\r\n * @param collectionViewer \r\n */\r\n disconnect(): void {\r\n this.SceneSubject.next(null);\r\n this.results =0; \r\n this.loadingSubject.complete();\r\n }\r\n\r\n}","export default \".mat-card-title {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.table-comun th {\\r\\n background: #ffa040;\\r\\n}\\r\\n\\r\\n.iconbutton {\\r\\n color: #337ab7;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n line-height: 20px;\\r\\n}\\r\\n\\r\\n.icon-small {\\r\\n width: 1.3rem;\\r\\n height: 1.3rem;\\r\\n font-size: 1.3rem;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton:hover {\\r\\n color: #555\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvZXF1aXBhbWllbnRvL2VxdWlwYW1pZW50by5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0k7QUFDSiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9tb2R1bG9zL2VxdWlwYW1pZW50by9lcXVpcGFtaWVudG8uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtY2FyZC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4udGFibGUtY29tdW4gdGgge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmYTA0MDtcclxufVxyXG5cclxuLmljb25idXR0b24ge1xyXG4gICAgY29sb3I6ICMzMzdhYjc7XHJcbn1cclxuXHJcbi5tYXQtaWNvbi1idXR0b24uaWNvbmJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uaWNvbi1zbWFsbCB7XHJcbiAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxufVxyXG5cclxuLm1hdC1pY29uLWJ1dHRvbi5pY29uYnV0dG9uOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjNTU1XHJcbn0iXX0= */\";","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { tap } from 'rxjs/operators';\r\nimport { BehaviorSubject, merge } from 'rxjs';\r\nimport { Section, url } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { HistoryComponent } from '../../componentes/history/history.component';\r\nimport { MeasureComponent } from '../../componentes/measure/measure.component';\r\nimport { RejectionComponent } from '../../componentes/rejection/rejection.component';\r\nimport { StatusComponent } from '../../componentes/status/status.component';\r\nimport { Attributes, City, GISOperator, JsonResponse, State, Status } from '../../modelo';\r\nimport * as XLSX from \"xlsx\";\r\nimport { DatasourceScene } from '../orderv/datasource-scene';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Profile } from '../../modelo/jwt';\r\nimport { FormControl } from '@angular/forms';\r\nimport { CatalogService, OrdervService } from '../../datos';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\nimport { ErrorHandlerService } from 'src/app/sicap/comun/datos/error-handler.service';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { EquipamientoService } from '../../datos/equipamiento.service';\r\nimport { DsScene } from './ds-scene';\r\n\r\n@Component({\r\n selector: 'app-equipamiento',\r\n templateUrl: './equipamiento.component.html',\r\n styleUrls: ['./equipamiento.component.css']\r\n})\r\nexport class EquipamientoComponent implements OnInit {\r\n @ViewChild(MatSelect) matSelect: MatSelect;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('textSearch') input: ElementRef;\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n public dataSource: DsScene;\r\n public columnScene = [];\r\n public columnSnIds: any[] = [];\r\n public statusList: Status[];\r\n public typeList: Status[];\r\n public gisOperatorList: GISOperator[];\r\n public listStates: State[];\r\n public listAllCities: City[];\r\n public listCities: City[];\r\n\r\n private idStatusSelected: number; \r\n private idTypeMapSelected: number;\r\n private icity: number;\r\n private onlyNews: number; \r\n public checked: boolean = true;\r\n public currentUser: Profile;\r\n\r\n public distanceAttrs: Attributes[];\r\n public messageTextSearch: string;\r\n public errorMessage: string = '';\r\n public statesControl = new FormControl('');\r\n public citiesControl = new FormControl('');\r\n private isActive = new BehaviorSubject(true);\r\n public isActive$ = this.isActive.asObservable();\r\n\r\n constructor(private searchService: EquipamientoService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private notify: NotificationService,\r\n private errorHandler: ErrorHandlerService,\r\n private authService: AuthService,\r\n private catalog: CatalogService,\r\n private logger: NGXLogger) {\r\n this.authService.currentUserSubject.subscribe(user => {\r\n if (user != null) {\r\n this.currentUser = user;\r\n let actived = false;\r\n if (this.currentUser.section != undefined){\r\n actived = (this.currentUser.section.indexOf(Section.EQM) != -1)\r\n }\r\n\r\n this.isActive.next(actived)\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initTable();\r\n this.messageTextSearch = \"Buscar por desarrollador\";// (this.currentUser.uRoleKey == 'C' ? 'Buscar por orden de verificación u operador' : 'Buscar por orden de verificación o desarrollador');\r\n this.dataSource = new DsScene(this.searchService);\r\n this.dataSource.searchScene('', -1,-1, 1, 'desc', 'lastupdateformat', 0, 10);\r\n this.getCatalogs();\r\n }\r\n\r\n /**\r\n * Obtener catálogos\r\n */\r\n private getCatalogs() {\r\n //this.catalog.getOperators().subscribe(res => { this.gisOperatorList = res; }, (error) => { this.errorHandler.handleError(error); this.errorMessage = this.errorHandler.errorMessage; });\r\n this.catalog.getCatalogsEqm().subscribe(res => { this.statusList = res['status']; this.gisOperatorList = res['operator']; }, (error) => { this.logger.error(\"Status\", error) });\r\n }\r\n\r\n /**\r\n * Limpiar elementos de busqueda\r\n */\r\n clear() {\r\n this.input.nativeElement.value = '';\r\n this.dataSource.disconnect();\r\n this.statesControl.reset();\r\n this.citiesControl.reset();\r\n }\r\n\r\n /**\r\n * Actualizar los datos de filtro del data source\r\n */\r\n loadScenePage() {\r\n this.dataSource.searchScene(\r\n this.input.nativeElement.value,\r\n this.idStatusSelected,\r\n this.idTypeMapSelected,\r\n this.onlyNews,\r\n this.sort.direction,\r\n this.sort.active,\r\n this.paginator.pageIndex,\r\n this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Mostrar el dialogo de historial de la OV\r\n * @param item \r\n */\r\n showHistory(item): void {\r\n this.searchService.getHistory(item.eid)\r\n .subscribe(res => {\r\n if (res == null) return;\r\n if (res.length != 0) {\r\n const dialogRef = this.dialog.open(HistoryComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data: { action: 1, ordenumber: item.orderVerif, list: res },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n } else {\r\n this.notify.show(\"Información no disponible por el momento.\", 'info', 2000)\r\n }\r\n }, (error) => {\r\n this.logger.error(\"History\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Llama al dialogo con el formato para editar estatus\r\n * @param item datos de la OV\r\n */\r\n editStatus(item): void {\r\n const dialogRef = this.dialog.open(StatusComponent, {\r\n width: '300px',\r\n data: { action: 1, item, list: this.statusList , module:Section.EQM, title:'No de Plano',identity:item.eid },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Formato de rechazo de solicitud\r\n * @param item datos de la OV\r\n */\r\n showRejectionForm(item): void {\r\n const dialogRef = this.dialog.open(RejectionComponent, {\r\n width: '350px',\r\n data: { action: 1, identity: item.eid, module: Section.EQM, title:'Plano' },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano ------Por ahora no se utiliza------------\r\n * @param item datos de la OV\r\n */\r\n downloadPlane(item) {\r\n this.searchService.checkDownloadFile(item.orderVerif).subscribe((res: JsonResponse) => {\r\n if (res.code != 200) {\r\n this.notify.show(res.message, 'info', 2000);\r\n } else {\r\n this.searchService.downloadFile(item.orderVerif);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Visualizador de mapa\r\n * @param item datos de la OV\r\n */\r\n showMap(item) {\r\n this.router.navigate([`${url.map}${Section.EQM}/${item.eid}`]);\r\n }\r\n\r\n /**\r\n * Deshabilitar mapa\r\n * @param item \r\n */\r\n setDisableMap(item): boolean{\r\n let disabled = true; \r\n if (this.currentUser.uRoleKey != \"T\") {\r\n if (item.psid == 1) {\r\n disabled = (this.currentUser.uRoleKey == \"O\"?true:false);\r\n }\r\n else if (item.psid == 8 || item.psid == 6 || item.psid == 3) {\r\n disabled = true;\r\n }\r\n else {\r\n disabled = ((this.currentUser.uRoleKey == \"O\" && (item.psid == 2 || item.psid == 1)) ? true: false);\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Dialogo que muestra las CUVs de la OV con sus mediciones.\r\n * @param item \r\n */\r\n showMeasurement(item): void {\r\n\r\n const dialogRef = this.dialog.open(MeasureComponent, {\r\n width: '890px',\r\n height: '700px',\r\n data: { action: 2, dialog: \"OV\", identity: item.eid, field: this.distanceAttrs },\r\n panelClass:\"sicap-dialog-container\", //\"measure-dialog-container\",\r\n });\r\n }\r\n \r\n /**\r\n * Checkbox de pendientes\r\n * @param value valor del checkbox\r\n */\r\n changeValue(event) {\r\n this.checked = event.checked;\r\n this.onlyNews = Number(event.checked);\r\n this.loadScenePage();\r\n }\r\n\r\n /**\r\n * Se recupera el id del estatus y se recarga el datasource\r\n * @param event opción seleccionda\r\n */\r\n selectionChanged(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idStatusSelected = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n\r\n /**\r\n * Se recupera el id del estatus y se recarga el datasource\r\n * @param event opción seleccionda\r\n */\r\n selectionChangedType(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idTypeMapSelected = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n /**\r\n * Cambiar el operador asignado\r\n * @param item elementos de la OV\r\n * @param event opción seleccionada de la lista de Operadores\r\n */\r\n changeOperator(item, event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.searchService.assignOperator(item.eid, event.value)\r\n .subscribe((res: JsonResponse) => {\r\n if (res.code == 200) {\r\n this.notify.show(res.message, 'succes', 2000)\r\n this.onChange(event.value);\r\n this.onTouched();\r\n } else {\r\n this.notify.show(res.message, 'error', 2000);\r\n }\r\n }, (error) => {\r\n this.logger.error(\"Operator\", error)\r\n });\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Enlace a la pagina de \"Cargar plano\"\r\n * @param item elementos de la OV\r\n */\r\n linkToLoad(item) {\r\n this.router.navigate([`${url.load}/${item.eid}`]);\r\n }\r\n\r\n /**\r\n * Habilitar link para cargar ZIP\r\n * @param item \r\n */\r\n isLoad(item){\r\n let disabled = false;\r\n if (this.currentUser.uRoleKey == \"D\") {\r\n if (item.psid != 3 && item.psid != 5 && item.psid != 7) {\r\n disabled = true;\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Permitir solo letras y números\r\n * @param event \r\n */\r\n public inputValidator(event: any) {\r\n const pattern = /^[a-zñA-ZÑ0-9]*$/; \r\n if (!pattern.test(event.target.value)) {\r\n event.target.value = event.target.value.replace(/[^a-zñA-ZÑ0-9]/g, \"\");\r\n }\r\n }\r\n\r\n /**\r\n * Inicializar tabla\r\n */\r\n private initTable() {\r\n let columnSceneAll = [\r\n // { id: 1, cid: 'orderVerif', property: 'orderVerif', title: \"Orden de Verificación\", visibleTo: [], action: true, order: true },\r\n { id: 1, cid: 'eid', property: 'eid', title: \"Plano\", visibleTo: [], action: true, order: true },\r\n { id: 2, cid: 'name', property: 'name', title: \"Nombre\", visibleTo: [], action: false, order: true },\r\n { id: 3, cid: 'sname', property: 'sname', title: \"Estatus\", visibleTo: [], action: false, order: true },\r\n //{ id: 3, cid: 'typemap', property: 'typemap', title: \"Tipo de plano\", visibleTo: [], action: false, order: true },\r\n { id: 4, cid: 'editstatus', property: 'psid', title: \"\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 5, cid: 'notirejection', property: 'sname', title: \"\", visibleTo: ['D'], action: true, order: true },\r\n { id: 6, cid: 'fullname', property: 'fullname', title: \"Desarrollador\", visibleTo: ['C', 'O', 'P', 'T', 'S', 'U'], action: false, order: false },\r\n { id: 7, cid: 'createdFormat', property: 'createdformat', title: \"Fecha de Carga\", visibleTo: [], action: false, order: true },\r\n { id: 8, cid: 'lastupdateformat', property: 'lastupdateformat', title: \"Fecha de estatus\", visibleTo: [], action: false, order: false },\r\n { id: 9, cid: 'assign', property: 'uid', title: \"Asignar a\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 10, cid: 'map', property: 'map', title: \"Mapa\", visibleTo: [\"A\", \"V\", \"O\", \"D\", \"P\", \"S\", \"G\"], action: true, order: true },\r\n { id: 11, cid: 'load', property: 'load', title: \"Recargar\", visibleTo: ['D'], action: true, order: true },\r\n { id: 12, cid: 'download', property: 'download', title: \"Descargar\", visibleTo: ['O', 'C', 'U'], action: true, order: true },\r\n ];\r\n this.columnSnIds = columnSceneAll.map(c => c.cid);\r\n\r\n this.columnScene = columnSceneAll.filter(data => { return data.visibleTo.indexOf(this.currentUser.uRoleKey) != -1 || data.visibleTo.length == 0; }\r\n );\r\n this.columnSnIds = this.columnScene.map(c => c.cid);\r\n }\r\n\r\n /**\r\n * Exportar tabla\r\n */\r\n public exportTable = (): void => {\r\n let timeSpan = new Date().toISOString();\r\n let prefix = this.currentUser.uName || \"asignaciones\";\r\n let fileName = `${prefix}-${timeSpan}`;\r\n let targetTableElm = document.getElementById(\"tableAsignado\");\r\n let wb = XLSX.utils.table_to_book(targetTableElm, { sheet: prefix });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n merge(this.sort.sortChange, this.paginator.page)\r\n .pipe(\r\n tap(() => { this.loadScenePage(); })\r\n )\r\n .subscribe();\r\n }\r\n\r\n\r\n\r\n}\r\n","export default \".container-full {\\r\\n height: 100vh;\\r\\n}\\r\\n\\r\\n.nav-icon {\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.current-user {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif !important;\\r\\n font-size: 0.7em;\\r\\n}\\r\\n\\r\\n.mat-toolbar-row {\\r\\n background: rgb(255, 255, 255);\\r\\n height: 50px;\\r\\n}\\r\\n\\r\\n.sub-menu {\\r\\n background: rgb(248, 248, 248);\\r\\n /*#d5d8d9;*/\\r\\n height: 35px;\\r\\n justify-content: center;\\r\\n border-top: 1px solid #d5d8d9;\\r\\n}\\r\\n\\r\\n/*\\r\\n.sub-menu .mat-button-toggle-group {\\r\\n background-color: #E0E8ED !important;\\r\\n color: #555555 !important;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle-checked {\\r\\n background-color: #1BA4EC !important;\\r\\n color: #FFFFFF !important;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle-button:hover {\\r\\n background-color: #168ECE;\\r\\n color: #FFFFFF;\\r\\n}*/\\r\\n\\r\\n.logo {\\r\\n height: 55px;\\r\\n width: 155px;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n.logo-icon {\\r\\n height: 55px;\\r\\n width: 55px;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n.nav-spacer {\\r\\n flex: 1 1 auto;\\r\\n}\\r\\n\\r\\n.nav-spacer-submenu {\\r\\n flex: auto 1 1;\\r\\n}\\r\\n\\r\\n.page-footer {\\r\\n padding: 0.5rem;\\r\\n background: #77787B;\\r\\n color: #FFF;\\r\\n font-size: .85em;\\r\\n overflow-x: hidden;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.logofooter {\\r\\n height: 20px;\\r\\n width: 20px;\\r\\n}\\r\\n\\r\\n.mat-sidenav-content {\\r\\n width: 100%;\\r\\n height: calc(100vh - 100px);\\r\\n background: #E6E6E6;\\r\\n}\\r\\n\\r\\n.mat-toolbar,\\r\\n.mat-toolbar-multiple-rows {\\r\\n background: #F8F8F8;\\r\\n color: rgba(0, 0, 0, .87);\\r\\n font-size: 1em;\\r\\n}\\r\\n\\r\\n.mat-button-toggle {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif !important;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.sidenav-container {\\r\\n position: absolute;\\r\\n top: 85px;\\r\\n bottom: 41px;\\r\\n left: 0;\\r\\n right: 0;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.sidenav-container-sm {\\r\\n position: absolute;\\r\\n top: 50px;\\r\\n bottom: 41px;\\r\\n left: 0;\\r\\n right: 0;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.gradient-color mat-nav-list mat-list-item mat-icon {\\r\\n color: #555;\\r\\n}\\r\\n\\r\\n.normal-color {\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.admin-footer {\\r\\n width: 100%;\\r\\n color: #676a6c;\\r\\n border-top: 1px solid #d7d7d7;\\r\\n background: #f5f5f5;\\r\\n position: fixed;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n padding: 0.5rem;\\r\\n font-size: .85em;\\r\\n overflow-x: hidden;\\r\\n text-align: center;\\r\\n height: 41px;\\r\\n}\\r\\n\\r\\n.admin-footer img {\\r\\n height: 20px;\\r\\n width: 20px;\\r\\n}\\r\\n\\r\\n.pull-right {\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.admin-footer1 {\\r\\n background: none repeat scroll 0 0 #d5d5d5;\\r\\n border-top: 1px solid #e7eaec;\\r\\n /* bottom: 0; */\\r\\n left: 0;\\r\\n padding: 10px 20px;\\r\\n /*position: absolute;*/\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.mat-list-item.active {\\r\\n color: #337ab7;\\r\\n}\\r\\n\\r\\n.mat-list-item,\\r\\n.mat-list-text {\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle-group {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle {\\r\\n border-radius: 3px 3px 0 0 !important;\\r\\n margin-top: 0px !important;\\r\\n padding: 0 5px !important;\\r\\n z-index: 3 !important;\\r\\n background-color: #E0E8ED;\\r\\n color: #555555;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle:hover {\\r\\n background-color: #168ECE !important;\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle-checked {\\r\\n background-color: #1BA4EC !important;\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.sub-menu .mat-button-toggle-input {\\r\\n background-color: none !important;\\r\\n padding-left: 32px !important;\\r\\n}\\r\\n\\r\\n.footer {\\r\\n background: #fff;\\r\\n color: #676a6c;\\r\\n border-top: 1px solid #e7eaec;\\r\\n font-family: \\\"open sans\\\", \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 13px;\\r\\n padding: 10px 20px;\\r\\n position: fixed;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvaG9tZS9ob21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksc0VBQXNFO0lBQ3RFLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDhCQUE4QjtJQUM5QixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksOEJBQThCO0lBQzlCLFdBQVc7SUFDWCxZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLDZCQUE2QjtBQUNqQzs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTs7QUFFRjtJQUNJLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLFdBQVc7SUFDWCxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLFdBQVc7QUFDZjs7QUFFQTtJQUNJLFdBQVc7SUFDWCwyQkFBMkI7SUFDM0IsbUJBQW1CO0FBQ3ZCOztBQUVBOztJQUVJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLHNFQUFzRTtJQUN0RSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxZQUFZO0lBQ1osT0FBTztJQUNQLFFBQVE7SUFDUixpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsU0FBUztJQUNULFlBQVk7SUFDWixPQUFPO0lBQ1AsUUFBUTtJQUNSLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxjQUFjO0lBQ2QsNkJBQTZCO0lBQzdCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsU0FBUztJQUNULE9BQU87SUFDUCxRQUFRO0lBQ1IsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osV0FBVztBQUNmOztBQUVBO0lBQ0ksUUFBUTtBQUNaOztBQUVBO0lBQ0ksMENBQTBDO0lBQzFDLDZCQUE2QjtJQUM3QixlQUFlO0lBQ2YsT0FBTztJQUNQLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsUUFBUTtBQUNaOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTs7SUFFSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0kscUNBQXFDO0lBQ3JDLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIscUJBQXFCO0lBQ3JCLHlCQUF5QjtJQUN6QixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksb0NBQW9DO0lBQ3BDLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLG9DQUFvQztJQUNwQyxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQ0FBaUM7SUFDakMsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCw2QkFBNkI7SUFDN0Isd0VBQXdFO0lBQ3hFLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsZUFBZTtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9tb2R1bG9zL2hvbWUvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lci1mdWxsIHtcclxuICAgIGhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcbi5uYXYtaWNvbiB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5jdXJyZW50LXVzZXIge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAwLjdlbTtcclxufVxyXG5cclxuLm1hdC10b29sYmFyLXJvdyB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbn1cclxuXHJcbi5zdWItbWVudSB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjQ4LCAyNDgsIDI0OCk7XHJcbiAgICAvKiNkNWQ4ZDk7Ki9cclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ4ZDk7XHJcbn1cclxuXHJcblxyXG4vKlxyXG4uc3ViLW1lbnUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFMEU4RUQgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjNTU1NTU1ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zdWItbWVudSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUJBNEVDICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3ViLW1lbnUgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTY4RUNFO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbn0qL1xyXG5cclxuLmxvZ28ge1xyXG4gICAgaGVpZ2h0OiA1NXB4O1xyXG4gICAgd2lkdGg6IDE1NXB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmxvZ28taWNvbiB7XHJcbiAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICB3aWR0aDogNTVweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5uYXYtc3BhY2VyIHtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG59XHJcblxyXG4ubmF2LXNwYWNlci1zdWJtZW51IHtcclxuICAgIGZsZXg6IGF1dG8gMSAxO1xyXG59XHJcblxyXG4ucGFnZS1mb290ZXIge1xyXG4gICAgcGFkZGluZzogMC41cmVtO1xyXG4gICAgYmFja2dyb3VuZDogIzc3Nzg3QjtcclxuICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgZm9udC1zaXplOiAuODVlbTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmxvZ29mb290ZXIge1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbn1cclxuXHJcbi5tYXQtc2lkZW5hdi1jb250ZW50IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xyXG4gICAgYmFja2dyb3VuZDogI0U2RTZFNjtcclxufVxyXG5cclxuLm1hdC10b29sYmFyLFxyXG4ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRjhGOEY4O1xyXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjg3KTtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG59XHJcblxyXG4ubWF0LWJ1dHRvbi10b2dnbGUge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG4uc2lkZW5hdi1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA4NXB4O1xyXG4gICAgYm90dG9tOiA0MXB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcbi5zaWRlbmF2LWNvbnRhaW5lci1zbSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwcHg7XHJcbiAgICBib3R0b206IDQxcHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxufVxyXG5cclxuLmdyYWRpZW50LWNvbG9yIG1hdC1uYXYtbGlzdCBtYXQtbGlzdC1pdGVtIG1hdC1pY29uIHtcclxuICAgIGNvbG9yOiAjNTU1O1xyXG59XHJcblxyXG4ubm9ybWFsLWNvbG9yIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5hZG1pbi1mb290ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjb2xvcjogIzY3NmE2YztcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDdkN2Q3O1xyXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHBhZGRpbmc6IDAuNXJlbTtcclxuICAgIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6IDQxcHg7XHJcbn1cclxuXHJcbi5hZG1pbi1mb290ZXIgaW1nIHtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG59XHJcblxyXG4ucHVsbC1yaWdodCB7XHJcbiAgICByaWdodDogMDtcclxufVxyXG5cclxuLmFkbWluLWZvb3RlcjEge1xyXG4gICAgYmFja2dyb3VuZDogbm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjZDVkNWQ1O1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlN2VhZWM7XHJcbiAgICAvKiBib3R0b206IDA7ICovXHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgLypwb3NpdGlvbjogYWJzb2x1dGU7Ki9cclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4ubWF0LWxpc3QtaXRlbS5hY3RpdmUge1xyXG4gICAgY29sb3I6ICMzMzdhYjc7XHJcbn1cclxuXHJcbi5tYXQtbGlzdC1pdGVtLFxyXG4ubWF0LWxpc3QtdGV4dCB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuXHJcbi5zdWItbWVudSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLnN1Yi1tZW51IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xyXG4gICAgei1pbmRleDogMyAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0UwRThFRDtcclxuICAgIGNvbG9yOiAjNTU1NTU1O1xyXG59XHJcblxyXG4uc3ViLW1lbnUgLm1hdC1idXR0b24tdG9nZ2xlOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjhFQ0UgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zdWItbWVudSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUJBNEVDICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3ViLW1lbnUgLm1hdC1idXR0b24tdG9nZ2xlLWlucHV0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctbGVmdDogMzJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9vdGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBjb2xvcjogIzY3NmE2YztcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTdlYWVjO1xyXG4gICAgZm9udC1mYW1pbHk6IFwib3BlbiBzYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, RouterState, RouterStateSnapshot, NavigationEnd } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { url } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { Page } from '../../modelo';\r\nimport { Profile } from '../../modelo/jwt';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n //Paginas\r\n public pagesAll: Page[] = [\r\n { id: \"settings\", name: 'Configuración', link: 'configurar', icon: 'perm_data_setting', usertype: [\"A\", \"G\"] },\r\n { id: \"admin\", name: 'Administración', link: 'administrar', icon: 'account_box', usertype: [\"A\", \"G\"]},\r\n { id: \"individual\", name: 'Oferta Individual', link: 'ofindividual', icon: 'home', usertype: [\"C\", \"U\", \"P\", \"S\", \"A\", \"G\"] },\r\n { id: \"load\", name: 'Carga de plano', link: 'cargar/0', icon: 'cloud_upload', usertype: [\"D\"] },\r\n { id: \"search\", name: 'Orden de Verificación', link: 'orden', icon: 'search', usertype: [] },\r\n { id: \"equipamiento\", name: 'Equipamientos', link: 'equipamiento', icon: 'search', usertype: [] },\r\n { id: \"oferta\", name: 'Oferta', link: 'oferta', icon: 'search', usertype: [] },\r\n ]\r\n public pages: Page[];\r\n public currentUser: Profile;\r\n public valueState: string = \"\";\r\n public isExpanded = true;\r\n public today: Date = new Date();\r\n public year = new Date().getFullYear();\r\n\r\n constructor(private authService: AuthService, private router: Router,\r\n private activeRoute: ActivatedRoute,private logger: NGXLogger) {\r\n this.currentUser = this.authService.currentUserValue;\r\n this.authService.currentUser.subscribe(user => {\r\n if (user == undefined || user == null) {\r\n this.router.navigate(['/login']);\r\n } else {\r\n this.currentUser = user;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.pages = this.pagesAll.filter(data => data.usertype.indexOf(this.currentUser.uRoleKey) != -1 || data.usertype.length == 0 );\r\n this.activeRoute.url.subscribe(u => {\r\n const state: RouterState = this.router.routerState;\r\n this.valueState = state.snapshot.url;\r\n if (this.valueState.indexOf(\"cargar\") != -1) {\r\n this.valueState = \"cargar/1\"\r\n }\r\n this.valueState = this.valueState.replace(\"/plano/\", \"\");\r\n })\r\n }\r\n\r\n /**\r\n * Cerrar sesión\r\n */\r\n logout() {\r\n this.authService.logout()\r\n .subscribe(success => {\r\n if (success) {\r\n this.router.navigate([`${url.login}`]);\r\n }\r\n }, (error) => {\r\n this.logger.error('logout', error)\r\n });\r\n }\r\n\r\n /**\r\n * Cambio de pagina\r\n * @param value \r\n */\r\n onChangeLink(value) {\r\n let page = `plano/${value}`;\r\n\r\n if (page.indexOf(\"cargar\") != -1) {\r\n const state: RouterState = this.router.routerState;\r\n const snapshot: RouterStateSnapshot = state.snapshot;\r\n if (snapshot.url.indexOf(\"cargar\") != -1)\r\n page = `${snapshot.url}`;\r\n }\r\n this.router.navigate([page]);\r\n }\r\n}","import { DataSource, CollectionViewer } from '@angular/cdk/collections';\r\nimport { BehaviorSubject, of, Observable } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { Offer } from '../../modelo';\r\nimport { OindividualService } from '../../datos';\r\n\r\nexport class DatasourceOffer implements DataSource {\r\n\r\n private OfferSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.loadingSubject.asObservable();\r\n public total: number;\r\n\r\n constructor(private oindividualService: OindividualService) { }\r\n /**\r\n * Se cargan los datos de Oferta individual en el datasource\r\n * @param filter se espera una CUV\r\n * @param iTypeu tipo de cuv\r\n * @param sortDirection dirección para ordenar los datos\r\n * @param sortField campo para ordenar los datos\r\n * @param pageIndex pagina\r\n * @param pageSize tamaño por pagina\r\n */\r\n searchOffer(filter: string, iTypeu: number, sortDirection: string, sortField: string, pageIndex: number, pageSize: number) {\r\n this.loadingSubject.next(true);\r\n this.oindividualService.search(filter, iTypeu, sortDirection, sortField, pageIndex, pageSize)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(offer => {\r\n this.OfferSubject.next(offer['list']);\r\n this.total = offer['total'];\r\n });\r\n }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.OfferSubject.asObservable();\r\n }\r\n\r\n disconnect(): void {\r\n this.OfferSubject.next(null);\r\n this.total=0;\r\n this.loadingSubject.complete();\r\n }\r\n}\r\n","export default \".spinner-container {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n position: fixed;\\r\\n}\\r\\n\\r\\n.spinner-container mat-spinner {\\r\\n margin: 130px auto 0 auto;\\r\\n}\\r\\n\\r\\n.table-comun th {\\r\\n background: #FBC16E;\\r\\n}\\r\\n\\r\\n.mat-card-title {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\ntable {\\r\\n width: 100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvaW5kaXZpZHVhbC9pbmRpdmlkdWFsLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0lBQ1osV0FBVztJQUNYLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksV0FBVztBQUNmIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvaW5kaXZpZHVhbC9pbmRpdmlkdWFsLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3Bpbm5lci1jb250YWluZXIge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbn1cclxuXHJcbi5zcGlubmVyLWNvbnRhaW5lciBtYXQtc3Bpbm5lciB7XHJcbiAgICBtYXJnaW46IDEzMHB4IGF1dG8gMCBhdXRvO1xyXG59XHJcblxyXG4udGFibGUtY29tdW4gdGgge1xyXG4gICAgYmFja2dyb3VuZDogI0ZCQzE2RTtcclxufVxyXG5cclxuLm1hdC1jYXJkLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbnRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59Il19 */\";","import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelectChange, MatSelect } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { OfferType, Attributes } from '../../modelo';\r\nimport { OindividualService, CatalogService } from '../../datos';\r\nimport { DatasourceOffer } from './datasource-offer';\r\nimport { MeasureComponent } from '../../componentes/measure/measure.component';\r\n/**\r\n * Vivienda individual\r\n */\r\n@Component({\r\n selector: 'app-individual',\r\n templateUrl: './individual.component.html',\r\n styleUrls: ['./individual.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class IndividualComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('textSearch') input: ElementRef;\r\n @ViewChild(MatSelect) matSelect: MatSelect;\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n\r\n public dataSource: DatasourceOffer;\r\n public columnScene: any[];\r\n public columnSnIds: any[];\r\n private idOTypeSelected: number;\r\n public listOfferType: OfferType[];\r\n public results: number;\r\n public distanceAttrs: Attributes[];\r\n\r\n constructor(private oindividualService: OindividualService,\r\n private catalog: CatalogService,\r\n public dialog: MatDialog,\r\n private logger: NGXLogger) { }\r\n\r\n\r\n ngOnInit() {\r\n this.initTable();\r\n this.dataSource = new DatasourceOffer(this.oindividualService);\r\n this.dataSource.searchOffer('', -1, 'asc', 'dtRecepcn', 0, 10);\r\n this.catalog.getCatalogOffer().subscribe(res=>{\r\n this.listOfferType = res['type'];\r\n this.distanceAttrs = res['distance'];\r\n this.results = this.dataSource.total;\r\n }, (error) => {\r\n this.logger.error(\"oferta\", error)\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Se cargan los datos de oferta de vivienda despues de cargar la ventana\r\n */\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n merge(this.sort.sortChange, this.paginator.page)\r\n .pipe(\r\n tap(() => {\r\n this.loadOfferPage();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n /**\r\n * Se establecen los parámetros en el data source\r\n */\r\n public loadOfferPage() {\r\n this.dataSource.searchOffer(\r\n this.input.nativeElement.value,\r\n this.idOTypeSelected,\r\n this.sort.direction,\r\n this.sort.active,\r\n this.paginator.pageIndex,\r\n this.paginator.pageSize);\r\n\r\n }\r\n\r\n /**\r\n * Limpiar elementos\r\n */\r\n public clear() {\r\n this.input.nativeElement.value = '';\r\n this.dataSource.disconnect();\r\n this.matSelect.writeValue(null);\r\n }\r\n\r\n\r\n /**\r\n * Se recupera le tipo de cuv y se recarga el data source\r\n * @param event envento de cambio\r\n */\r\n public selectionChanged(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idOTypeSelected = event.value;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n /**\r\n * Muestra la lista de mediciones por CUV seleccionada\r\n * @param item registro de tabla de oferta individual\r\n */\r\n public showMeasure(item): void {\r\n const dialogRef = this.dialog.open(MeasureComponent, {\r\n width: '50%',\r\n data: { action: 2, dialog: \"VIV\", identity: item.cuv, field: this.distanceAttrs },\r\n panelClass: \"sicap-dialog-container\",\r\n });\r\n }\r\n\r\n private initTable(){\r\n this.columnScene = [\r\n { id: 1, cid: 'cuv', property: 'cuv', title: \"CUV\", action: true },\r\n { id: 2, cid: 'lat', property: 'lat', title: \"Latitud\", action: false },\r\n { id: 3, cid: 'lon', property: 'lon', title: \"Longitud\", action: false },\r\n { id: 4, cid: 'toname', property: 'tipoOfertum', title: \"Tipo\", action: true },\r\n { id: 5, cid: 'dtRecepcn', property: 'dtreception', title: \"Fecha de recepción\", action: false }\r\n ];\r\n this.columnSnIds = this.columnScene.map(c => c.cid);\r\n }\r\n\r\n}\r\n","export default \"[type=\\\"file\\\"] {\\r\\n height: 0;\\r\\n overflow: hidden;\\r\\n width: 0;\\r\\n}\\r\\n\\r\\n.list-info .mat-list-item {\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.label-upload {\\r\\n border: 1px solid #979faf;\\r\\n width: 100%;\\r\\n border-radius: 5px;\\r\\n padding-left: 5px;\\r\\n}\\r\\n\\r\\n.file-icon {\\r\\n color: #A5ACBA;\\r\\n}\\r\\n\\r\\n.mat-step-text-label {\\r\\n font-size: 11px !important;\\r\\n}\\r\\n\\r\\n.mat-stepper-label-position-bottom .mat-horizontal-stepper-header {\\r\\n font-size: 10px !important;\\r\\n padding: 18px 24px !important;\\r\\n}\\r\\n\\r\\n.mat-step-header .mat-step-icon {\\r\\n background-color: #f5f5f5 !important;\\r\\n}\\r\\n\\r\\n.mat-step-header .mat-step-icon-selected,\\r\\n.mat-step-header .mat-step-icon-state-done,\\r\\n.mat-step-header .mat-step-icon-state-edit {\\r\\n background-color: #555555 !important;\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.mat-radio-button~.mat-radio-button {\\r\\n margin-left: 20px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvbG9hZC1tYXAvbG9hZC1tYXAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsUUFBUTtBQUNaOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksb0NBQW9DO0FBQ3hDOztBQUVBOzs7SUFHSSxvQ0FBb0M7SUFDcEMsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvbG9hZC1tYXAvbG9hZC1tYXAuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgd2lkdGg6IDA7XHJcbn1cclxuXHJcbi5saXN0LWluZm8gLm1hdC1saXN0LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4ubGFiZWwtdXBsb2FkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5NzlmYWY7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4uZmlsZS1pY29uIHtcclxuICAgIGNvbG9yOiAjQTVBQ0JBO1xyXG59XHJcblxyXG4ubWF0LXN0ZXAtdGV4dC1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIge1xyXG4gICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAxOHB4IDI0cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXHJcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcclxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU1NTUgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtcmFkaW8tYnV0dG9ufi5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG59Il19 */\";","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, ValidatorFn, ValidationErrors } from '@angular/forms';\r\nimport { FileUploader } from 'ng2-file-upload';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LoadMapService } from '../../datos/load-map.service';\r\nimport { JsonResponse, UploadMessage } from '../../modelo';\r\nimport { url } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { Profile } from '../../modelo/jwt';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { Section } from '../../../comun/modelo/config.http';\r\n\r\n\r\ndeclare let alertify: any;\r\n/**\r\n * Cargar Plano\r\n */\r\n@Component({\r\n selector: 'app-load-map2',\r\n templateUrl: './load-map.component.html',\r\n styleUrls: ['./load-map.component.css'],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LoadMapComponent implements OnInit {\r\n\r\n public selectedStepIndex = 0;\r\n public linearStep = true;\r\n public validateOrderForm: FormGroup;\r\n public validateZipForm: FormGroup;\r\n public uploadZip: FileUploader;\r\n public currentUser: Profile;\r\n public numberOrder: Number = 0;\r\n public disableSelect: boolean = true;\r\n public tutorialLink: string = \"https://ruvcursos.blob.core.windows.net/cursosicap/INSUMOS_SICAP_CAPACITACIONES_2020.zip\";\r\n private isLoadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.isLoadingSubject.asObservable();\r\n\r\n private acceptedSubject = new BehaviorSubject(false);\r\n public accepted$ = this.acceptedSubject.asObservable();\r\n public msgNoFile: UploadMessage;\r\n public msgValidation: UploadMessage;\r\n public msgError: UploadMessage;\r\n public msgDetails: UploadMessage;\r\n public msgLoadedTemporal: UploadMessage;\r\n //public ovEquipamiento:string='00000000000'\r\n private isActiveEqm = new BehaviorSubject(true);\r\n public isActiveEqm$ = this.isActiveEqm.asObservable();\r\n private isActiveOf = new BehaviorSubject(true);\r\n public isActiveOf$ = this.isActiveOf.asObservable();\r\n //public MODULE_ORDEN: string = Section.ORDER;\r\n public MODULE :any = {ORDER:Section.ORDER, OFERTA: Section.OFERTA, EQM:Section.EQM}\r\n public MODULE_GENERAL :string[]=[Section.OFERTA,Section.ORDER]\r\n isEditable = false;\r\n public MAXIMO:number=11;\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService,\r\n private loadService: LoadMapService,\r\n private activeRoute: ActivatedRoute,\r\n private logger: NGXLogger,\r\n private _formBuilder: FormBuilder\r\n ) {\r\n this.currentUser = this.authService.currentUserValue;\r\n }\r\n\r\n ngOnInit() {\r\n let paramOrder: string = this.activeRoute.snapshot.params['orderverif'];\r\n this.validateOrderForm = this._formBuilder.group({\r\n orderCtrl: ['', [Validators.required]],\r\n modulo: [Section.ORDER, [Validators.required]]\r\n });\r\n this.validateOrderForm.setValidators([this.validOrderNumber]);\r\n this.validateZipForm = this._formBuilder.group({\r\n zipCtrl: ['', Validators.required],\r\n nameZip: { value: 'Archivo comprimido (*.zip)', disabled: true }\r\n });\r\n\r\n if (paramOrder != '1' && paramOrder != '0') {\r\n this.numberOrder = new Number(paramOrder);\r\n this.validateOrderForm.patchValue({ orderCtrl: paramOrder });\r\n }\r\n\r\n let activedEqm = false;\r\n let activedOf = false;\r\n if (this.currentUser.section != undefined) {\r\n activedEqm = (this.currentUser.section.indexOf(Section.EQM) != -1)\r\n activedOf = (this.currentUser.section.indexOf(Section.OFERTA) != -1)\r\n }\r\n\r\n this.isActiveEqm.next(activedEqm);\r\n this.isActiveOf.next(activedOf);\r\n\r\n this.initZIP()\r\n this.clear();\r\n }\r\n\r\n private validOrderNumber: ValidatorFn = (control: FormGroup): ValidationErrors | null => {\r\n const orderNumber = control.get(\"orderCtrl\");\r\n const selectedTypeMap = control.get(\"modulo\");\r\n let error = null;\r\n\r\n if (selectedTypeMap.value != '' && orderNumber.value != null) {\r\n if (selectedTypeMap.value == Section.ORDER && orderNumber.value.length < 11) {\r\n error = { wrongOrder: true };\r\n } else if (selectedTypeMap.value == Section.OFERTA && orderNumber.value.length < 8) {\r\n error = { wrongOrder: true };\r\n } else if (selectedTypeMap.value == Section.EQM && orderNumber.value.length >= 8) {\r\n error = { emptyid: true };\r\n }\r\n }\r\n\r\n return error;\r\n }\r\n\r\n /**\r\n * Inicializar control de carga de archivo ZIP\r\n */\r\n public initZIP() {\r\n\r\n this.uploadZip = new FileUploader({\r\n url: this.loadService.UPLOAD_URL, allowedMimeType: ['application/zip', 'application/octet-stream', 'application/x-zip-compressed', 'multipart/x-zip'], //will be loaded only zip files\r\n authToken: `Bearer ${this.authService.getJwtToken()}`,\r\n maxFileSize: 5 * 1024 * 1024, method: 'POST'\r\n });\r\n\r\n this.uploadZip.onWhenAddingFileFailed = (item) => {\r\n this.msgNoFile = { text: item.name, show: true, novalid: true };\r\n\r\n }\r\n this.uploadZip.onAfterAddingFile = (file) => {\r\n file.withCredentials = false;\r\n this.msgNoFile = { text: \"\", show: false, novalid: false };\r\n\r\n };\r\n this.uploadZip.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\r\n if (response == null || response == undefined) return;\r\n let resp = JSON.parse(response);\r\n this.isLoadingSubject.next(false);\r\n this.selectedStepIndex = 2;\r\n\r\n //mensajes de validación\r\n if (resp.code == 200 || resp.code == 409) {\r\n let result = resp.model;\r\n this.acceptedSubject.next(result.list.accepted);\r\n this.msgDetails = { text: result.list.details };\r\n let msn = (typeof result.list.valid == 'string' ? result.list.valid : result.list.valid);\r\n this.msgValidation = { texts: result.list.valid, text: msn };\r\n\r\n this.msgLoadedTemporal = { text: result.list.temporal, show: (result.list.temporal !== null) };\r\n this.numberOrder = result.list.teid;\r\n } else {\r\n this.msgError = { text: resp.message, show: true };\r\n }\r\n\r\n };\r\n }\r\n\r\n /**\r\n * manda a validación el control de formulario que llegue como parámetro\r\n * @param controlName \r\n */\r\n public validateControl(controlName: string) {\r\n if (this.validateOrderForm.controls[controlName].invalid && this.validateOrderForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Verifica si hay un error en el control que llega com parametro de acuerdo con sus condiciones establecidas\r\n * @param controlName \r\n * @param errorName \r\n */\r\n public hasError(controlName: string, errorName: string) {\r\n if (this.validateOrderForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Vaida la orden de verificación de acuerdo con el servicio\r\n * @param form \r\n */\r\n public validateOrderVerify() {\r\n let form = this.validateOrderForm.value;\r\n if (form.modulo == 'eq' || form.modulo == 'td') {\r\n this.numberOrder = form.orderCtrl;\r\n this.selectedStepIndex = 1;\r\n this.disableSelect = false;\r\n } else {\r\n if (form.orderCtrl == 0) {\r\n this.numberOrder = 0;\r\n this.disableSelect = true;\r\n this.msgValidation = { show: true, text: \"Dato incorrecto\", type: 'error' };\r\n this.selectedStepIndex = 0;\r\n return;\r\n }\r\n this.isLoadingSubject.next(true);\r\n this.loadService.validateVerifyOrder({ orderv: form.orderCtrl, user: this.currentUser.uName, module: form.modulo })\r\n .subscribe((res: JsonResponse) => {\r\n this.isLoadingSubject.next(false);\r\n // Guardar orden de verificación en variable y continar\r\n if (res.code == 200) {\r\n this.numberOrder = form.orderCtrl;\r\n this.selectedStepIndex = 1;\r\n this.disableSelect = false;\r\n } else { // Notificar si ha ocurrido algún error al validar\r\n this.numberOrder = 0;\r\n this.disableSelect = true;\r\n let msn = typeof res.message === 'string' ? [res.message] : res.message;\r\n this.msgValidation = { show: true, text: msn, type: 'error' };\r\n this.selectedStepIndex = 0;\r\n }\r\n }, (error) => {\r\n this.logger.error(\"validateOrderVerify\", error)\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Evento ejecutado cada que se selecciona o cambia un archivo del formulario zipForm\r\n * @param file \r\n */\r\n public onZipSelected(file) {\r\n if (file && file.length) { // Ver información del archivo\r\n const getSizeFile = (file) => {\r\n var value = (file.size / 1048576).toFixed(3);\r\n if (parseFloat(value) < 0.001) {\r\n return file.size + ' Bytes';\r\n } else {\r\n return value + ' Megabytes';\r\n }\r\n }\r\n this.validateZipForm.patchValue({ nameZip: file[0].name + ' (' + getSizeFile(file[0]) + ')' })\r\n }\r\n }\r\n\r\n /**\r\n * Se adjuntan parámetros al subir archivo\r\n */\r\n public uploadFile() {\r\n //let orv = this.numberOrder != 0 && this.validateOrderForm.controls.typeMap.value == Section.ORDER?1:0;\r\n //let eqm = this.validateOrderForm.controls.typeMap.value=='eqm' || this.validateOrderForm.controls.typeMap.value == 'td' ? 1: 0; \r\n let plane = 0;\r\n let section = this.validateOrderForm.controls.modulo.value;\r\n\r\n if (this.numberOrder != 0 && (section == Section.ORDER || section == Section.OFERTA)) {\r\n plane = 1;\r\n } else if (this.numberOrder >= 0 && section == Section.EQM) {\r\n plane = 1;\r\n }\r\n\r\n if (plane == 1) {\r\n this.isLoadingSubject.next(true);\r\n this.uploadZip.options.additionalParameter = {\r\n orderv: this.numberOrder,\r\n user: this.currentUser.uName,\r\n module: this.validateOrderForm.controls.modulo.value\r\n };\r\n this.uploadZip.uploadAll();\r\n }\r\n }\r\n\r\n /**\r\n * Link a la vista del mapa\r\n */\r\n public showMap() {\r\n let section = this.validateOrderForm.controls.modulo.value;\r\n this.router.navigate([`${url.map}${section}/${this.numberOrder}`]);\r\n }\r\n\r\n /**\r\n * Cambiar el step\r\n */\r\n public changeStep() {\r\n if (this.selectedStepIndex === 1) {\r\n this.clear();\r\n }\r\n }\r\n\r\n /**\r\n * Limpiar formularios y variables de mensaje\r\n * @param reset resetear formularios\r\n */\r\n public clear(reset = false) {\r\n\r\n if (reset) {\r\n this.validateOrderForm.patchValue({ orderCtrl: this.numberOrder, modulo: '' });\r\n this.validateZipForm.patchValue({ nameZip: 'Archivo comprimido (*.zip)', zipCtrl: '' });\r\n this.disableSelect = true;\r\n this.selectedStepIndex = 0;\r\n }\r\n\r\n this.msgNoFile = { text: null, show: false, novalid: true };\r\n this.msgValidation = { text: null, show: false, type: 'error' };\r\n this.msgError = { text: null, show: false };\r\n this.msgDetails = { text: null, show: false };\r\n this.msgLoadedTemporal = { text: null, show: false };\r\n }\r\n\r\n /**\r\n * Permitir solo numeros\r\n * @param event valor de entrada\r\n */\r\n public isNumeric(event: any) {\r\n let pattern = /^[0-9]\\d*$/;\r\n if (!pattern.test(event.target.value)) {\r\n event.target.value = event.target.value.replace(/[^0-9]/g, \"\");\r\n }\r\n }\r\n\r\n public getPlaceholder(modulo: string) {\r\n let title = \"Número de Plano\"\r\n switch (modulo) {\r\n case Section.ORDER: title = 'Orden de Verificación'; break;\r\n case Section.OFERTA: title = 'Oferta'; break;\r\n }\r\n return title;\r\n }\r\n\r\n /**\r\n * Formulario\r\n */\r\n get f() { return this.validateOrderForm.controls; }\r\n\r\n public checkTypeMap(e) {\r\n this.msgValidation.show = false;\r\n switch (e.value) {\r\n case Section.ORDER: this.MAXIMO=11; this.validateOrderForm.patchValue({ orderCtrl: this.numberOrder }); break;\r\n case Section.EQM:\r\n this.MAXIMO =20;\r\n if (this.numberOrder == null) this.numberOrder = 0;\r\n this.validateOrderForm.patchValue({ orderCtrl: this.numberOrder.toString() });\r\n break;\r\n case Section.OFERTA:\r\n if (this.numberOrder.toString().length == 8) {\r\n this.validateOrderForm.patchValue({ orderCtrl: this.numberOrder.toString() });\r\n }\r\n this.MAXIMO = 8;\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","import { DataSource, CollectionViewer } from '@angular/cdk/collections';\r\nimport { BehaviorSubject, of, Observable } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { User } from '../../modelo';\r\nimport { ManagmentService } from '../../datos';\r\n\r\nexport class DatasourceUser implements DataSource {\r\n\r\n private UsersSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.loadingSubject.asObservable();\r\n public total: number;\r\n\r\n constructor(private userService: ManagmentService) { }\r\n\r\n /**\r\n * \r\n * @param filter Nombre del usuario\r\n * @param iTypeu identificador del tipo de usaurio\r\n * @param sortDirection dirección para ordenar los datos\r\n * @param fieldSort campo para ordenar los datos\r\n * @param pageIndex pagina\r\n * @param pageSize tamaño por pagina\r\n */\r\n loadUsers(filter: string, iTypeu: number, sortDirection: string,fieldSort:string, pageIndex: number, pageSize: number) {\r\n this.loadingSubject.next(true);\r\n this.userService.findUsers(filter, iTypeu, sortDirection,fieldSort, pageIndex, pageSize)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(users => { \r\n this.UsersSubject.next(users['list']);\r\n this.total = users['total']; \r\n });\r\n }\r\n /**Conectar */\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.UsersSubject.asObservable();\r\n }\r\n /**Desconectar */\r\n disconnect(): void {\r\n this.UsersSubject.next(null);\r\n this.total =0; \r\n this.loadingSubject.complete();\r\n }\r\n}\r\n","export default \".managment-content {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\n.spinner-container {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n position: fixed;\\r\\n}\\r\\n\\r\\n.spinner-container mat-spinner {\\r\\n margin: 130px auto 0 auto;\\r\\n}\\r\\n\\r\\ntable {\\r\\n width: 100%;\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.table-comun th {\\r\\n background: #77AADB;\\r\\n}\\r\\n\\r\\n.iconbutton {\\r\\n color: #337ab7;\\r\\n}\\r\\n\\r\\n.iconbutton:hover {\\r\\n color: #555\\r\\n}\\r\\n\\r\\n.mat-card-title {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3MvbWFuYWdtZW50L21hbmFnbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksMkRBQTJEO0FBQy9EOztBQUVBO0lBQ0ksWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0FBQ25COztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0k7QUFDSjs7QUFFQTtJQUNJLGNBQWM7SUFDZCxpQkFBaUI7QUFDckIiLCJmaWxlIjoic3JjL2FwcC9zaWNhcC9wbGFub3MvbW9kdWxvcy9tYW5hZ21lbnQvbWFuYWdtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFuYWdtZW50LWNvbnRlbnQge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLnNwaW5uZXItY29udGFpbmVyIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcblxyXG4uc3Bpbm5lci1jb250YWluZXIgbWF0LXNwaW5uZXIge1xyXG4gICAgbWFyZ2luOiAxMzBweCBhdXRvIDAgYXV0bztcclxufVxyXG5cclxudGFibGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLnRhYmxlLWNvbXVuIHRoIHtcclxuICAgIGJhY2tncm91bmQ6ICM3N0FBREI7XHJcbn1cclxuXHJcbi5pY29uYnV0dG9uIHtcclxuICAgIGNvbG9yOiAjMzM3YWI3O1xyXG59XHJcblxyXG4uaWNvbmJ1dHRvbjpob3ZlciB7XHJcbiAgICBjb2xvcjogIzU1NVxyXG59XHJcblxyXG4ubWF0LWNhcmQtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufSJdfQ== */\";","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { MatSelectChange, MatSelect } from '@angular/material/select';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DatasourceUser } from './datasource-user';\r\nimport { CatalogService, ManagmentService } from '../../datos';\r\nimport { DetailsUserComponent } from '../../componentes/details-user/details-user.component';\r\nimport { JsonResponse, TypeUser } from '../../modelo';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\n/**\r\n * Administrador de Usuarios\r\n */\r\n@Component({\r\n selector: 'app-managment',\r\n templateUrl: './managment.component.html',\r\n styleUrls: ['./managment.component.css']\r\n})\r\nexport class ManagmentComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('input') input: ElementRef;\r\n @ViewChild(MatSelect) matSelect: MatSelect;\r\n @ViewChild('status') status;\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n public dataSource: DatasourceUser;\r\n public typeUserList: TypeUser[];\r\n private idTypeUserSelected: number;\r\n private columnSort: string;\r\n public columnObject: any[]; \r\n public columnIds:any[];\r\n\r\n constructor(private mService: ManagmentService,\r\n private notify: NotificationService,\r\n private dialog: MatDialog,\r\n private catalog: CatalogService,\r\n private logger: NGXLogger) {\r\n }\r\n\r\n ngOnInit() {\r\n this.dataSource = new DatasourceUser(this.mService);\r\n this.catalog.getTypeUser()\r\n .subscribe(res => {\r\n this.typeUserList = res;\r\n }, (error) => { \r\n this.logger.error(\"init\", error)\r\n });\r\n this.initTable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n merge(this.sort.sortChange, this.paginator.page)\r\n .pipe(\r\n tap(() => {\r\n this.columnSort = this.sort.active;\r\n this.loadUsersPage()\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n /**\r\n * Cargar data source con los filtros\r\n */\r\n public loadUsersPage() {\r\n this.dataSource.loadUsers(\r\n this.input.nativeElement.value,\r\n this.idTypeUserSelected,\r\n this.sort.direction,\r\n this.columnSort,\r\n this.paginator.pageIndex,\r\n this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Limpiar tabla\r\n */\r\n public clear() {\r\n this.input.nativeElement.value = '';\r\n this.dataSource.disconnect();\r\n this.matSelect.writeValue(null);\r\n }\r\n\r\n /**\r\n * Abre el dialogo para añadir un nuevo usuario y lo guarda al llamar a servicio\r\n */\r\n public addUser(): void {\r\n const dialogRef = this.dialog.open(DetailsUserComponent, {\r\n width: '350px',\r\n data: { action: 1, user: null, typelist: this.typeUserList },\r\n panelClass: \"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadUsersPage();\r\n }\r\n });\r\n }\r\n /**\r\n * Llama al dialogo para editar los datos del usuario, al finalizar se envia al servicio de salvar cambios\r\n * @param item datos de usuario\r\n */\r\n public editUser(item): void {\r\n const dialogupRef = this.dialog.open(DetailsUserComponent, {\r\n width: '350px',\r\n data: {action: 2, user: item, typelist: this.typeUserList},\r\n panelClass: \"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogupRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadUsersPage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Activar y desactivar usuario\r\n * @param item usuario\r\n */\r\n public change(item) {\r\n this.mService.updateStatus(item.uid, !item.estatus)\r\n .subscribe((res: JsonResponse) => {\r\n this.notify.show(res.message, res.code == 200 ? 'succes' : 'error', 4000)\r\n if (res.code == 200) {\r\n this.loadUsersPage();\r\n }\r\n }, (error) => {\r\n this.logger.error(\"editUser\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Se recupera el tipo de usuario y se actualiza el data source\r\n * @param event \r\n */\r\n public selectionChanged(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idTypeUserSelected = event.value;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Inicializar tabla\r\n */\r\n private initTable(){\r\n this.columnObject = [\r\n { columnId: 'uid', propertyName: 'uid', title: \"#\", action: false },\r\n { columnId: 'tipoUsuario', propertyName: 'tipoUsuario', title: \"Rol\", action: false },\r\n { columnId: 'nameusr', propertyName: 'nameusr', title: \"Usuario\", action: false },\r\n { columnId: 'email', propertyName: 'email', title: \"Correo\", action: false },\r\n { columnId: 'estatus', propertyName: 'estatus', title: \"Estatus\", action: true },\r\n { columnId: 'actions', propertyName: 'actions', title: \"Editar\", action: true }\r\n ];\r\n \r\n this.columnIds = this.columnObject.map(c => c.columnId);\r\n }\r\n}\r\n\r\n\r\n","import { DataSource, CollectionViewer } from '@angular/cdk/collections';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { OfertaService } from '../../datos';\r\nimport { Scene } from '../../modelo';\r\n\r\n\r\nexport class DatasourceScene implements DataSource {\r\n\r\n private SceneSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.loadingSubject.asObservable();\r\n public results: number;\r\n\r\n constructor(private searchService: OfertaService) { }\r\n\r\n /**\r\n * Asignacion de datos de las OV al datasource\r\n * @param filter desarrollador o OV\r\n * @param istatus id de estatus\r\n * @param istate id del estado\r\n * @param icity id del municipio\r\n * @param onlyNews solo nuevos\r\n * @param sortDirection dirección para ordenar los datos\r\n * @param sortField campo para ordenar\r\n * @param pageIndex pagina\r\n * @param pageSize numero de registros por pagina \r\n */\r\n searchScene(filter: string, istatus: number, istate:number, icity:number, onlyNews: number, sortDirection: string, sortField: string, pageIndex: number, pageSize: number) {\r\n this.loadingSubject.next(true);\r\n this.searchService.searchScene(filter, istatus,istate, icity, onlyNews, sortDirection, sortField, pageIndex, pageSize)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(result => { \r\n if (result['list'] != undefined){\r\n this.SceneSubject.next(result['list']); \r\n this.results = result['total']\r\n }else{\r\n this.SceneSubject.next(null); \r\n this.results = 0\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Conectar\r\n * @param collectionViewer \r\n */\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.SceneSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Desconectar\r\n * @param collectionViewer \r\n */\r\n disconnect(): void {\r\n this.SceneSubject.next(null);\r\n this.results =0; \r\n this.loadingSubject.complete();\r\n }\r\n\r\n}","export default \".mat-card-title {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.table-comun th {\\r\\n background: #8DBF43;\\r\\n}\\r\\n\\r\\n.iconbutton {\\r\\n color: #337ab7;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n line-height: 20px;\\r\\n}\\r\\n\\r\\n.icon-small {\\r\\n width: 1.3rem;\\r\\n height: 1.3rem;\\r\\n font-size: 1.3rem;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton:hover {\\r\\n color: #555\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3Mvb2ZlcnRhL29mZXJ0YS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0k7QUFDSiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9tb2R1bG9zL29mZXJ0YS9vZmVydGEuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtY2FyZC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4udGFibGUtY29tdW4gdGgge1xyXG4gICAgYmFja2dyb3VuZDogIzhEQkY0MztcclxufVxyXG5cclxuLmljb25idXR0b24ge1xyXG4gICAgY29sb3I6ICMzMzdhYjc7XHJcbn1cclxuXHJcbi5tYXQtaWNvbi1idXR0b24uaWNvbmJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uaWNvbi1zbWFsbCB7XHJcbiAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxufVxyXG5cclxuLm1hdC1pY29uLWJ1dHRvbi5pY29uYnV0dG9uOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjNTU1XHJcbn0iXX0= */\";","import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { merge } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Status, GISOperator, State, City, Attributes, Rejection, JsonResponse } from '../../modelo'\r\nimport { OfertaService} from '../../datos';\r\nimport { CatalogService } from '../../datos/catalog.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport { DatasourceScene } from './datasource-oferta';\r\nimport { HistoryComponent } from '../../componentes/history/history.component';\r\nimport { StatusComponent } from '../../componentes/status/status.component';\r\nimport { RejectionComponent } from '../../componentes/rejection/rejection.component';\r\nimport { DwellingComponent } from '../../componentes/dwelling/dwelling.component';\r\nimport { MeasureComponent } from '../../componentes/measure/measure.component';\r\nimport { FormControl } from '@angular/forms';\r\nimport * as XLSX from \"xlsx\";\r\nimport { Profile } from '../../modelo/jwt';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\nimport { ErrorHandlerService } from 'src/app/sicap/comun/datos/error-handler.service';\r\nimport { url } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { Section } from '../../../comun/modelo/config.http';\r\n\r\n\r\n@Component({\r\n selector: 'app-oferta',\r\n templateUrl: './oferta.component.html',\r\n styleUrls: ['./oferta.component.css']\r\n})\r\nexport class OfertaComponent implements OnInit {\r\n @ViewChild(MatSelect) matSelect: MatSelect;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('textSearch') input: ElementRef;\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n public dataSource: DatasourceScene;\r\n public columnScene = [];\r\n public columnSnIds: any[] = [];\r\n public statusList: Status[];\r\n public gisOperatorList: GISOperator[];\r\n public listStates: State[];\r\n public listAllCities: City[];\r\n public listCities: City[];\r\n\r\n private idStatusSelected: number;\r\n private istate: number;\r\n private icity: number;\r\n private onlyNews: number; \r\n public checked: boolean = true;\r\n public currentUser: Profile;\r\n\r\n public distanceAttrs: Attributes[];\r\n public messageTextSearch: string;\r\n public errorMessage: string = '';\r\n public statesControl = new FormControl('');\r\n public citiesControl = new FormControl('');\r\n\r\n constructor(private searchService: OfertaService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private notify: NotificationService,\r\n private errorHandler: ErrorHandlerService,\r\n private authService: AuthService,\r\n private catalog: CatalogService,\r\n private logger: NGXLogger) {\r\n this.authService.currentUserSubject.subscribe(user => {\r\n if (user != null) this.currentUser = user;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initTable();\r\n this.messageTextSearch = (this.currentUser.uRoleKey == 'C' ? 'Buscar por oferta u operador' : 'Buscar por oferta o desarrollador');\r\n this.dataSource = new DatasourceScene(this.searchService);\r\n this.dataSource.searchScene('', -1, -1, -1, 1, 'desc', 'lastupdateformat', 0, 10);\r\n this.getCatalogs();\r\n }\r\n\r\n /**\r\n * Obtener catálogos\r\n */\r\n private getCatalogs() {\r\n this.catalog.getCatalogOferta().subscribe(res=>{\r\n this.distanceAttrs = res['distance'];\r\n this.gisOperatorList = res['operator'];\r\n this.statusList = res['status'];\r\n this.listStates = res['states'];\r\n this.listAllCities = res['cities'];\r\n })\r\n }\r\n\r\n /**\r\n * Limpiar elementos de busqueda\r\n */\r\n clear() {\r\n this.input.nativeElement.value = '';\r\n this.dataSource.disconnect();\r\n this.statesControl.reset();\r\n this.citiesControl.reset();\r\n }\r\n\r\n /**\r\n * Actualizar los datos de filtro del data source\r\n */\r\n loadScenePage() {\r\n this.dataSource.searchScene(\r\n this.input.nativeElement.value,\r\n this.idStatusSelected,\r\n this.istate,\r\n this.icity,\r\n this.onlyNews,\r\n this.sort.direction,\r\n this.sort.active,\r\n this.paginator.pageIndex,\r\n this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Mostrar el dialogo de historial de la OV\r\n * @param item \r\n */\r\n showHistory(item): void {\r\n this.searchService.getHistory(item.idoferta)\r\n .subscribe(res => {\r\n if (res == null) return;\r\n if (res.length != 0) {\r\n const dialogRef = this.dialog.open(HistoryComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data: { action: 1, ordenumber: item.idoferta, list: res },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n } else {\r\n this.notify.show(\"Información no disponible por el momento.\", 'info', 2000)\r\n }\r\n }, (error) => {\r\n this.logger.error(\"History\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Llama al dialogo con el formato para editar estatus\r\n * @param item datos de la OV\r\n */\r\n editStatus(item): void {\r\n const dialogRef = this.dialog.open(StatusComponent, {\r\n width: '300px',\r\n data: { action: 1, item, list: this.statusList, module: Section.OFERTA, title: 'Oferta',identity:item.idoferta },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Formato de rechazo de solicitud\r\n * @param item datos de la OV\r\n */\r\n showRejectionForm(item): void {\r\n const dialogRef = this.dialog.open(RejectionComponent, {\r\n width: '350px',\r\n data: { action: 1, identity: item.idoferta, module:Section.OFERTA, title:'Oferta' },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dialogo que muestra la lista de CUVS de la OV seleccionada\r\n * @param item datos de la OV\r\n */\r\n showDwellling(item): void { //'50150652001'\r\n this.searchService.getDwelling(item.idoferta)\r\n .subscribe(res => {\r\n const dialogRef = this.dialog.open(DwellingComponent, {\r\n width: '300px',\r\n height: '500px',\r\n data: { action: 1, list: res },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n }, (error) => {\r\n this.logger.error(\"Dwelling\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano ------Por ahora no se utiliza------------\r\n * @param item datos de la OV\r\n */\r\n downloadPlane(item) {\r\n this.searchService.checkDownloadFile(item.idoferta).subscribe((res: JsonResponse) => {\r\n if (res.code != 200) {\r\n this.notify.show(res.message, 'info', 2000);\r\n } else {\r\n this.searchService.downloadFile(item.idoferta);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Visualizador de mapa\r\n * @param item datos de la OV\r\n */\r\n showMap(item) {\r\n this.router.navigate([`${url.map}${Section.OFERTA}/${item.idoferta}`]);\r\n }\r\n\r\n /**\r\n * Deshabilitar mapa\r\n * @param item \r\n */\r\n setDisableMap(item): boolean{\r\n let disabled = true; \r\n if (this.currentUser.uRoleKey != \"T\") {\r\n if (item.psid == 1) {\r\n disabled = (this.currentUser.uRoleKey == \"O\"?true:false);\r\n }\r\n else if ([3,6,8].includes(item.psid)){ //(item.psid == 8 || item.psid == 6 || item.psid == 3) {\r\n disabled = true;\r\n }\r\n else {\r\n disabled = (this.currentUser.uRoleKey == 'O' && ([1,2].includes(item.psid)))\r\n //disabled = ((this.currentUser.uRoleKey == \"O\" && (item.psid == 2 || item.psid == 1)) ? true: false);\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Dialogo que muestra las CUVs de la OV con sus mediciones.\r\n * @param item \r\n */\r\n showMeasurement(item): void {\r\n const dialogRef = this.dialog.open(MeasureComponent, {\r\n width: '890px',\r\n height: '700px',\r\n data: { action: 2, dialog: \"OV\", identity: item.idoferta, field: this.distanceAttrs },\r\n panelClass:\"sicap-dialog-container\", //\"measure-dialog-container\",\r\n });\r\n }\r\n \r\n /**\r\n * Checkbox de pendientes\r\n * @param value valor del checkbox\r\n */\r\n changeValue(event) {\r\n this.checked = event.checked;\r\n this.onlyNews = Number(event.checked);\r\n this.loadScenePage();\r\n }\r\n\r\n /**\r\n * Se recupera el id del estatus y se recarga el datasource\r\n * @param event opción seleccionda\r\n */\r\n selectionChanged(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idStatusSelected = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n /**\r\n * Cambiar el operador asignado\r\n * @param item elementos de la OV\r\n * @param event opción seleccionada de la lista de Operadores\r\n */\r\n changeOperator(item, event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.searchService.assignOperator(item.idoferta, event.value)\r\n .subscribe((res: JsonResponse) => {\r\n if (res.code == 200) {\r\n this.notify.show(res.message, 'succes', 2000)\r\n this.onChange(event.value);\r\n this.onTouched();\r\n } else {\r\n this.notify.show(res.message, 'error', 2000);\r\n }\r\n }, (error) => {\r\n this.logger.error(\"Operator\", error)\r\n });\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Enlace a la pagina de \"Cargar plano\"\r\n * @param item elementos de la OV\r\n */\r\n linkToLoad(item) {\r\n this.router.navigate([`${url.load}/${item.idoferta}`]);\r\n }\r\n\r\n /**\r\n * Habilitar link para cargar ZIP\r\n * @param item \r\n */\r\n isLoad(item){\r\n let disabled = false;\r\n if (this.currentUser.uRoleKey == \"D\") {\r\n if (item.psid != 3 && item.psid != 5 && item.psid != 7) {\r\n disabled = true;\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Se recupera el id de estados y se recarga el datasource\r\n * @param event opción seleccionada de estados\r\n */\r\n changedState(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n let istate = event.value;\r\n this.listCities = this.listAllCities.filter(data => { return data.fidedo === istate }\r\n );\r\n this.istate = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n /**\r\n * Se recupera el id del municipio y se recarga el datasource\r\n * @param event opción seleccionada de municipios\r\n */\r\n changedCity(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.icity = event.value;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n }\r\n\r\n /**\r\n * Permitir solo letras y números\r\n * @param event \r\n */\r\n public inputValidator(event: any) {\r\n const pattern = /^[a-zñA-ZÑ0-9]*$/; \r\n if (!pattern.test(event.target.value)) {\r\n event.target.value = event.target.value.replace(/[^a-zñA-ZÑ0-9]/g, \"\");\r\n }\r\n }\r\n\r\n /**\r\n * Inicializar tabla\r\n */\r\n private initTable() {\r\n let columnSceneAll = [\r\n { id: 1, cid: 'idoferta', property: 'idoferta', title: \"Oferta\", visibleTo: [], action: true, order: true },\r\n { id: 2, cid: 'sname', property: 'sname', title: \"Estatus\", visibleTo: [], action: false, order: true },\r\n { id: 3, cid: 'editstatus', property: 'psid', title: \"\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 3, cid: 'notirejection', property: 'sname', title: \"\", visibleTo: ['D'], action: true, order: true },\r\n { id: 4, cid: 'ename', property: 'ename', title: \"Estado\", visibleTo: [], action: false, order: true },\r\n { id: 5, cid: 'cname', property: 'cname', title: \"Municipio\", visibleTo: [], action: false, order: true },\r\n { id: 6, cid: 'fname', property: 'fname', title: \"Nombre del Frente\", visibleTo: [], action: false, order: false },\r\n { id: 7, cid: 'linkdwelling', property: 'nvivplace', title: \"Viviendas\", visibleTo: ['P', 'T', 'S'], action: true, order: true },\r\n { id: 7, cid: 'nvivplace', property: 'nvivplace', title: \"Viviendas\", visibleTo: [\"A\", \"V\", \"C\", \"O\", \"D\", \"U\", \"G\"], action: false, order: true },\r\n { id: 8, cid: 'fullname', property: 'fullname', title: \"Desarrollador\", visibleTo: ['C', 'O', 'P', 'T', 'S', 'U'], action: false, order: false },\r\n { id: 9, cid: 'createdFormat', property: 'createdformat', title: \"Fecha de Carga\", visibleTo: [], action: false, order: true },\r\n { id: 10, cid: 'lastupdateformat', property: 'lastupdateformat', title: \"Fecha de estatus\", visibleTo: [], action: false, order: false },\r\n { id: 11, cid: 'assign', property: 'uid', title: \"Asignar a\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 2, cid: 'map', property: 'map', title: \"Mapa\", visibleTo: [\"A\", \"V\", \"O\", \"D\", \"P\", \"S\", \"G\"], action: true, order: true },\r\n { id: 12, cid: 'load', property: 'load', title: \"Recargar\", visibleTo: ['D'], action: true, order: true },\r\n // { id: 13, cid: 'measure', property: 'measure', title: \"Medición\", visibleTo: [\"O\", \"C\", \"P\", \"T\", \"S\", \"U\", \"G\"], action: true, order: true },\r\n //{ id: 14, cid: 'editmeasure', property: 'measure', title: \"Editar medición\", visibleTo: [\"S\", \"U\"], action: true, order: true },\r\n { id: 15, cid: 'download', property: 'download', title: \"Descargar\", visibleTo: ['O', 'C', 'U'], action: true, order: true },\r\n ];\r\n this.columnSnIds = columnSceneAll.map(c => c.cid);\r\n\r\n this.columnScene = columnSceneAll.filter(data => { return data.visibleTo.indexOf(this.currentUser.uRoleKey) != -1 || data.visibleTo.length == 0; }\r\n );\r\n this.columnSnIds = this.columnScene.map(c => c.cid);\r\n }\r\n\r\n /**\r\n * Exportar tabla\r\n */\r\n public exportTable = (): void => {\r\n let timeSpan = new Date().toISOString();\r\n let prefix = this.currentUser.uName || \"asignaciones\";\r\n let fileName = `${prefix}-${timeSpan}`;\r\n let targetTableElm = document.getElementById(\"tableAsignado\");\r\n let wb = XLSX.utils.table_to_book(targetTableElm, { sheet: prefix });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n merge(this.sort.sortChange, this.paginator.page)\r\n .pipe(\r\n tap(() => { this.loadScenePage(); })\r\n )\r\n .subscribe();\r\n }\r\n\r\n}\r\n","import { DataSource, CollectionViewer } from '@angular/cdk/collections';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { OrdervService } from '../../datos';\r\nimport { Scene } from '../../modelo';\r\n\r\n\r\nexport class DatasourceScene implements DataSource {\r\n\r\n private SceneSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.loadingSubject.asObservable();\r\n public results: number;\r\n\r\n constructor(private searchService: OrdervService) { }\r\n\r\n /**\r\n * Asignacion de datos de las OV al datasource\r\n * @param filter desarrollador o OV\r\n * @param istatus id de estatus\r\n * @param istate id del estado\r\n * @param icity id del municipio\r\n * @param onlyNews solo nuevos\r\n * @param sortDirection dirección para ordenar los datos\r\n * @param sortField campo para ordenar\r\n * @param pageIndex pagina\r\n * @param pageSize numero de registros por pagina \r\n */\r\n searchScene(filter: string, istatus: number, istate:number, icity:number, onlyNews: number, sortDirection: string, sortField: string, pageIndex: number, pageSize: number) {\r\n this.loadingSubject.next(true);\r\n this.searchService.searchScene(filter, istatus,istate, icity, onlyNews, sortDirection, sortField, pageIndex, pageSize)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(result => { \r\n if (result['list'] != undefined){\r\n this.SceneSubject.next(result['list']); \r\n this.results = result['total']\r\n }else{\r\n this.SceneSubject.next(null); \r\n this.results = 0\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Conectar\r\n * @param collectionViewer \r\n */\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.SceneSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Desconectar\r\n * @param collectionViewer \r\n */\r\n disconnect(): void {\r\n this.SceneSubject.next(null);\r\n this.results =0; \r\n this.loadingSubject.complete();\r\n }\r\n\r\n}","export default \".mat-card-title {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.table-comun th {\\r\\n background: #8DBF43;\\r\\n}\\r\\n\\r\\n.iconbutton {\\r\\n color: #337ab7;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n line-height: 20px;\\r\\n}\\r\\n\\r\\n.icon-small {\\r\\n width: 1.3rem;\\r\\n height: 1.3rem;\\r\\n font-size: 1.3rem;\\r\\n}\\r\\n\\r\\n.mat-icon-button.iconbutton:hover {\\r\\n color: #555\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3Mvb3JkZXJ2L29yZGVydi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksY0FBYztJQUNkLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0k7QUFDSiIsImZpbGUiOiJzcmMvYXBwL3NpY2FwL3BsYW5vcy9tb2R1bG9zL29yZGVydi9vcmRlcnYuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtY2FyZC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4udGFibGUtY29tdW4gdGgge1xyXG4gICAgYmFja2dyb3VuZDogIzhEQkY0MztcclxufVxyXG5cclxuLmljb25idXR0b24ge1xyXG4gICAgY29sb3I6ICMzMzdhYjc7XHJcbn1cclxuXHJcbi5tYXQtaWNvbi1idXR0b24uaWNvbmJ1dHRvbiB7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4uaWNvbi1zbWFsbCB7XHJcbiAgICB3aWR0aDogMS4zcmVtO1xyXG4gICAgaGVpZ2h0OiAxLjNyZW07XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxufVxyXG5cclxuLm1hdC1pY29uLWJ1dHRvbi5pY29uYnV0dG9uOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjNTU1XHJcbn0iXX0= */\";","import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { merge } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Status, GISOperator, State, City, Attributes, Rejection, JsonResponse } from '../../modelo'\r\nimport { OrdervService} from '../../datos';\r\nimport { CatalogService } from '../../datos/catalog.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport { DatasourceScene } from './datasource-scene';\r\nimport { HistoryComponent } from '../../componentes/history/history.component';\r\nimport { StatusComponent } from '../../componentes/status/status.component';\r\nimport { RejectionComponent } from '../../componentes/rejection/rejection.component';\r\nimport { DwellingComponent } from '../../componentes/dwelling/dwelling.component';\r\nimport { MeasureComponent } from '../../componentes/measure/measure.component';\r\nimport { FormControl } from '@angular/forms';\r\nimport * as XLSX from \"xlsx\";\r\nimport { Profile } from '../../modelo/jwt';\r\nimport { NotificationService } from 'src/app/sicap/comun/datos/notification.service';\r\nimport { ErrorHandlerService } from 'src/app/sicap/comun/datos/error-handler.service';\r\nimport { url } from 'src/app/sicap/comun/modelo/config.http';\r\nimport { AuthService } from 'src/app/sicap/comun/datos/auth.service';\r\nimport { Section } from '../../../comun/modelo/config.http';\r\n\r\n/**\r\n * Búsqueda de oferta de vivienda\r\n */\r\n@Component({\r\n selector: 'app-orderv',\r\n templateUrl: './orderv.component.html',\r\n styleUrls: ['./orderv.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OrdervComponent implements OnInit {\r\n @ViewChild(MatSelect) matSelect: MatSelect;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild('textSearch') input: ElementRef;\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n public dataSource: DatasourceScene;\r\n public columnScene = [];\r\n public columnSnIds: any[] = [];\r\n public statusList: Status[];\r\n public gisOperatorList: GISOperator[];\r\n public listStates: State[];\r\n public listAllCities: City[];\r\n public listCities: City[];\r\n\r\n private idStatusSelected: number;\r\n private istate: number;\r\n private icity: number;\r\n private onlyNews: number; \r\n public checked: boolean = true;\r\n public currentUser: Profile;\r\n\r\n public distanceAttrs: Attributes[];\r\n public messageTextSearch: string;\r\n public errorMessage: string = '';\r\n public statesControl = new FormControl('');\r\n public citiesControl = new FormControl('');\r\n\r\n constructor(private searchService: OrdervService,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private notify: NotificationService,\r\n private errorHandler: ErrorHandlerService,\r\n private authService: AuthService,\r\n private catalog: CatalogService,\r\n private logger: NGXLogger) {\r\n this.authService.currentUserSubject.subscribe(user => {\r\n if (user != null) this.currentUser = user;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initTable();\r\n this.messageTextSearch = (this.currentUser.uRoleKey == 'C' ? 'Buscar por orden de verificación u operador' : 'Buscar por orden de verificación o desarrollador');\r\n this.dataSource = new DatasourceScene(this.searchService);\r\n this.dataSource.searchScene('', -1, -1, -1, 1, 'desc', 'lastupdateformat', 0, 10);\r\n this.getCatalogs();\r\n }\r\n\r\n /**\r\n * Obtener catálogos\r\n */\r\n private getCatalogs() {\r\n this.catalog.getCatalogOrder().subscribe(res=>{\r\n this.distanceAttrs = res['distance'];\r\n this.gisOperatorList = res['operator'];\r\n this.statusList = res['status'];\r\n this.listStates = res['states'];\r\n this.listAllCities = res['cities'];\r\n })\r\n }\r\n\r\n /**\r\n * Limpiar elementos de busqueda\r\n */\r\n clear() {\r\n this.input.nativeElement.value = '';\r\n this.dataSource.disconnect();\r\n this.statesControl.reset();\r\n this.citiesControl.reset();\r\n }\r\n\r\n /**\r\n * Actualizar los datos de filtro del data source\r\n */\r\n loadScenePage() {\r\n this.dataSource.searchScene(\r\n this.input.nativeElement.value,\r\n this.idStatusSelected,\r\n this.istate,\r\n this.icity,\r\n this.onlyNews,\r\n this.sort.direction,\r\n this.sort.active,\r\n this.paginator.pageIndex,\r\n this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Mostrar el dialogo de historial de la OV\r\n * @param item \r\n */\r\n showHistory(item): void {\r\n this.searchService.getHistory(item.orderVerif)\r\n .subscribe(res => {\r\n if (res == null) return;\r\n if (res.length != 0) {\r\n const dialogRef = this.dialog.open(HistoryComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data: { action: 1, ordenumber: item.orderVerif, list: res },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n } else {\r\n this.notify.show(\"Información no disponible por el momento.\", 'info', 2000)\r\n }\r\n }, (error) => {\r\n this.logger.error(\"History\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Llama al dialogo con el formato para editar estatus\r\n * @param item datos de la OV\r\n */\r\n editStatus(item): void {\r\n const dialogRef = this.dialog.open(StatusComponent, {\r\n width: '300px',\r\n data: { action: 1, item, list: this.statusList, module: Section.ORDER, title:'Orden de Verificación', identity:item.orderVerif },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Formato de rechazo de solicitud\r\n * @param item datos de la OV\r\n */\r\n showRejectionForm(item): void {\r\n const dialogRef = this.dialog.open(RejectionComponent, {\r\n width: '350px',\r\n data: { action: 1, identity: item.orderVerif, module:Section.ORDER, title:'Orden de verificación'},\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == 1) {\r\n this.loadScenePage();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dialogo que muestra la lista de CUVS de la OV seleccionada\r\n * @param item datos de la OV\r\n */\r\n showDwellling(item): void { //'50150652001'\r\n this.searchService.getDwelling(item.orderVerif)\r\n .subscribe(res => {\r\n const dialogRef = this.dialog.open(DwellingComponent, {\r\n width: '300px',\r\n height: '500px',\r\n data: { action: 1, list: res },\r\n panelClass:\"sicap-dialog-container\", //\"general-dialog-container\",\r\n });\r\n }, (error) => {\r\n this.logger.error(\"Dwelling\", error)\r\n });\r\n }\r\n\r\n /**\r\n * Descargar archivo de plano ------Por ahora no se utiliza------------\r\n * @param item datos de la OV\r\n */\r\n downloadPlane(item) {\r\n this.searchService.checkDownloadFile(item.orderVerif).subscribe((res: JsonResponse) => {\r\n if (res.code != 200) {\r\n this.notify.show(res.message, 'info', 2000);\r\n } else {\r\n this.searchService.downloadFile(item.orderVerif);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Visualizador de mapa\r\n * @param item datos de la OV\r\n */\r\n showMap(item) {\r\n this.router.navigate([`${url.map}${Section.ORDER}/${item.orderVerif}`]);\r\n }\r\n\r\n /**\r\n * Deshabilitar mapa\r\n * @param item \r\n */\r\n setDisableMap(item): boolean{\r\n let disabled = true; \r\n if (this.currentUser.uRoleKey != \"T\") {\r\n if (item.psid == 1) {\r\n disabled = (this.currentUser.uRoleKey == \"O\"?true:false);\r\n }else if ([3,6,8].includes(item.psid)){ //(item.psid == 8 || item.psid == 6 || item.psid == 3) {\r\n disabled = true;\r\n }else {\r\n disabled =(this.currentUser.uRoleKey==\"O\" && ([1,2].includes( item.psid ))); //((this.currentUser.uRoleKey == \"O\" && (item.psid == 2 || item.psid == 1)) ? true: false);\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Dialogo que muestra las CUVs de la OV con sus mediciones.\r\n * @param item \r\n */\r\n showMeasurement(item): void {\r\n const dialogRef = this.dialog.open(MeasureComponent, {\r\n width: '890px',\r\n height: '700px',\r\n data: { action: 2, dialog: \"OV\", identity: item.orderVerif, field: this.distanceAttrs },\r\n panelClass:\"sicap-dialog-container\", //\"measure-dialog-container\",\r\n });\r\n }\r\n \r\n /**\r\n * Checkbox de pendientes\r\n * @param value valor del checkbox\r\n */\r\n changeValue(event) {\r\n this.checked = event.checked;\r\n this.onlyNews = Number(event.checked);\r\n this.loadScenePage();\r\n }\r\n\r\n /**\r\n * Se recupera el id del estatus y se recarga el datasource\r\n * @param event opción seleccionda\r\n */\r\n selectionChanged(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.idStatusSelected = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n /**\r\n * Cambiar el operador asignado\r\n * @param item elementos de la OV\r\n * @param event opción seleccionada de la lista de Operadores\r\n */\r\n changeOperator(item, event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.searchService.assignOperator(item.orderVerif, event.value)\r\n .subscribe((res: JsonResponse) => {\r\n if (res.code == 200) {\r\n this.notify.show(res.message, 'succes', 2000)\r\n this.onChange(event.value);\r\n this.onTouched();\r\n } else {\r\n this.notify.show(res.message, 'error', 2000);\r\n }\r\n }, (error) => {\r\n this.logger.error(\"Operator\", error)\r\n });\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Enlace a la pagina de \"Cargar plano\"\r\n * @param item elementos de la OV\r\n */\r\n linkToLoad(item) {\r\n this.router.navigate([`${url.load}/${item.orderVerif}`]);\r\n }\r\n\r\n /**\r\n * Habilitar link para cargar ZIP\r\n * @param item \r\n */\r\n isLoad(item){\r\n let disabled = false;\r\n if (this.currentUser.uRoleKey == \"D\") {\r\n if(![3,5,7].includes(item.psid)){ //(item.psid != 3 && item.psid != 5 && item.psid != 7) {\r\n disabled = true;\r\n }\r\n }\r\n return disabled;\r\n }\r\n\r\n /**\r\n * Se recupera el id de estados y se recarga el datasource\r\n * @param event opción seleccionada de estados\r\n */\r\n changedState(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n let istate = event.value;\r\n this.listCities = this.listAllCities.filter(data => { return data.fidedo === istate }\r\n );\r\n this.istate = event.value;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n }\r\n\r\n /**\r\n * Se recupera el id del municipio y se recarga el datasource\r\n * @param event opción seleccionada de municipios\r\n */\r\n changedCity(event: MatSelectChange) {\r\n this.selectionChange.emit(new MatSelectChange(this.matSelect, event.value));\r\n this.icity = event.value;\r\n this.onChange(event.value);\r\n this.onTouched();\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 0;\r\n }\r\n\r\n /**\r\n * Permitir solo letras y números\r\n * @param event \r\n */\r\n public inputValidator(event: any) {\r\n const pattern = /^[a-zñA-ZÑ0-9]*$/; \r\n if (!pattern.test(event.target.value)) {\r\n event.target.value = event.target.value.replace(/[^a-zñA-ZÑ0-9]/g, \"\");\r\n }\r\n }\r\n\r\n /**\r\n * Inicializar tabla\r\n */\r\n private initTable() {\r\n let columnSceneAll = [\r\n { id: 1, cid: 'orderVerif', property: 'orderVerif', title: \"Orden de Verificación\", visibleTo: [], action: true, order: true },\r\n { id: 2, cid: 'sname', property: 'sname', title: \"Estatus\", visibleTo: [], action: false, order: true },\r\n { id: 3, cid: 'editstatus', property: 'psid', title: \"\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 3, cid: 'notirejection', property: 'sname', title: \"\", visibleTo: ['D'], action: true, order: true },\r\n { id: 4, cid: 'ename', property: 'ename', title: \"Estado\", visibleTo: [], action: false, order: true },\r\n { id: 5, cid: 'cname', property: 'cname', title: \"Municipio\", visibleTo: [], action: false, order: true },\r\n { id: 6, cid: 'fname', property: 'fname', title: \"Nombre del Frente\", visibleTo: [], action: false, order: false },\r\n { id: 7, cid: 'linkdwelling', property: 'nvivplace', title: \"Viviendas\", visibleTo: ['P', 'T', 'S'], action: true, order: true },\r\n { id: 7, cid: 'nvivplace', property: 'nvivplace', title: \"Viviendas\", visibleTo: [\"A\", \"V\", \"C\", \"O\", \"D\", \"U\", \"G\"], action: false, order: true },\r\n { id: 8, cid: 'fullname', property: 'fullname', title: \"Desarrollador\", visibleTo: ['C', 'O', 'P', 'T', 'S', 'U'], action: false, order: false },\r\n { id: 9, cid: 'createdFormat', property: 'createdformat', title: \"Fecha de Carga\", visibleTo: [], action: false, order: true },\r\n { id: 10, cid: 'lastupdateformat', property: 'lastupdateformat', title: \"Fecha de estatus\", visibleTo: [], action: false, order: false },\r\n { id: 11, cid: 'assign', property: 'uid', title: \"Asignar a\", visibleTo: ['C', 'U'], action: true, order: true },\r\n { id: 2, cid: 'map', property: 'map', title: \"Mapa\", visibleTo: [\"A\", \"V\", \"O\", \"D\", \"P\", \"S\", \"G\"], action: true, order: true },\r\n { id: 12, cid: 'load', property: 'load', title: \"Recargar\", visibleTo: ['D'], action: true, order: true },\r\n { id: 13, cid: 'measure', property: 'measure', title: \"Medición\", visibleTo: [\"O\", \"C\", \"P\", \"T\", \"S\", \"U\", \"G\"], action: true, order: true },\r\n { id: 14, cid: 'editmeasure', property: 'measure', title: \"Editar medición\", visibleTo: [\"S\", \"U\"], action: true, order: true },\r\n { id: 15, cid: 'download', property: 'download', title: \"Descargar\", visibleTo: ['O', 'C', 'U'], action: true, order: true },\r\n ];\r\n this.columnSnIds = columnSceneAll.map(c => c.cid);\r\n\r\n this.columnScene = columnSceneAll.filter(data => { return data.visibleTo.indexOf(this.currentUser.uRoleKey) != -1 || data.visibleTo.length == 0; }\r\n );\r\n this.columnSnIds = this.columnScene.map(c => c.cid);\r\n }\r\n\r\n /**\r\n * Exportar tabla\r\n */\r\n public exportTable = (): void => {\r\n let timeSpan = new Date().toISOString();\r\n let prefix = this.currentUser.uName || \"asignaciones\";\r\n let fileName = `${prefix}-${timeSpan}`;\r\n let targetTableElm = document.getElementById(\"tableAsignado\");\r\n let wb = XLSX.utils.table_to_book(targetTableElm, { sheet: prefix });\r\n XLSX.writeFile(wb, `${fileName}.xlsx`);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n merge(this.sort.sortChange, this.paginator.page)\r\n .pipe(\r\n tap(() => { this.loadScenePage(); })\r\n )\r\n .subscribe();\r\n }\r\n\r\n\r\n}\r\n","export default \".managment-content {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\n.managment-card .mat-card-title {\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n.title-settings {\\r\\n font-size: 1em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.mat-expansion-panel-header {\\r\\n font-size: 12px !important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3Mvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJEQUEyRDtBQUMvRDs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksMEJBQTBCO0FBQzlCIiwiZmlsZSI6InNyYy9hcHAvc2ljYXAvcGxhbm9zL21vZHVsb3Mvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYW5hZ21lbnQtY29udGVudCB7XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4ubWFuYWdtZW50LWNhcmQgLm1hdC1jYXJkLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxufVxyXG5cclxuLnRpdGxlLXNldHRpbmdzIHtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XHJcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcclxufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { ManagmentService } from '../../datos';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css']\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n public validateVOForm: FormGroup;\r\n public existsZIPForm: FormGroup;\r\n public existsZIP2Form: FormGroup;\r\n public sendxml: boolean = true;\r\n public measure: boolean = true;\r\n public message: any = { text: null, class: null };\r\n private isLoadingSubject = new BehaviorSubject(false);\r\n public loading$ = this.isLoadingSubject.asObservable();\r\n private optionSnack: any = {\r\n duration: 5000,\r\n panelClass: ['succes'],\r\n horizontalPosition: 'right',\r\n verticalPosition: 'top',\r\n }\r\n\r\n constructor(private mService: ManagmentService, private _formBuilder: FormBuilder,\r\n private notify: MatSnackBar,) { }\r\n\r\n ngOnInit() {\r\n this.validateVOForm = this._formBuilder.group({\r\n ordernum: new FormControl('', [Validators.required, Validators.maxLength(11), Validators.pattern(\"[0-9]+\")])\r\n });\r\n this.existsZIPForm = this._formBuilder.group({\r\n ordernum: new FormControl('', [Validators.required, Validators.maxLength(11), Validators.pattern(\"[0-9]+\")])\r\n });\r\n this.existsZIP2Form = this._formBuilder.group({\r\n order: new FormControl('', [Validators.required, Validators.maxLength(8), Validators.pattern(\"[0-9]+\")])\r\n });\r\n }\r\n\r\n /**\r\n * Validar que orden este lista para medición\r\n * @param values orden de verificación\r\n */\r\n valid(values) {\r\n this.isLoadingSubject.next(true)\r\n this.mService.validOVToMeasure(values.ordernum).subscribe(response => {\r\n this.isLoadingSubject.next(false)\r\n if (response == null) return;\r\n if (response['code'] == 200) {\r\n this.sendxml = response['model']['send'];\r\n this.measure = response['model']['measure'];\r\n this.optionSnack.panelClass = ['succes'];\r\n\r\n } else if (response['code'] == 409) {\r\n this.optionSnack.panelClass = ['warning'];\r\n } else {\r\n this.optionSnack.panelClass = ['error'];\r\n }\r\n this.notify.open(response['message'], 'x', this.optionSnack);\r\n\r\n })\r\n }\r\n\r\n /**\r\n * Activar proceso de medición\r\n */\r\n startMeasure() {\r\n this.isLoadingSubject.next(true)\r\n this.mService.measure(this.validateVOForm.value.ordernum).subscribe(response => {\r\n this.isLoadingSubject.next(false);\r\n\r\n if (response['code'] == 200) {\r\n this.optionSnack.panelClass = ['succes'];\r\n this.sendxml = false;\r\n this.measure = true;\r\n } else {\r\n this.optionSnack.panelClass = ['warning'];\r\n this.clear()\r\n }\r\n this.notify.open(response['message'], 'x', this.optionSnack);\r\n });\r\n }\r\n\r\n /**\r\n * Enviar medición\r\n */\r\n send() {\r\n this.isLoadingSubject.next(true)\r\n this.mService.sendXML(this.validateVOForm.value.ordernum).subscribe(response => {\r\n this.isLoadingSubject.next(false)\r\n if (response['code'] == 200) {\r\n this.optionSnack.panelClass = ['succes'];\r\n this.sendxml = false;\r\n this.measure = true;\r\n } else {\r\n this.optionSnack.panelClass = ['warning'];\r\n this.clear()\r\n }\r\n this.notify.open(response['message'], 'x', this.optionSnack);\r\n });\r\n }\r\n\r\n /**\r\n * Limpiar formulario de medición\r\n */\r\n clear() {\r\n this.validateVOForm.reset();\r\n this.sendxml = true;\r\n this.measure = true;\r\n this.message.text = '';\r\n this.message.class = ''\r\n }\r\n\r\n /**\r\n * manda a validación el control de formulario que llegue como parámetro\r\n * @param controlName \r\n */\r\n public validateControl(controlName: string) {\r\n if (this.validateVOForm.controls[controlName].invalid && this.validateVOForm.controls[controlName].touched)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Verifica si hay un error en el control que llega com parametro de acuerdo con sus condiciones establecidas\r\n * @param controlName \r\n * @param errorName \r\n */\r\n public hasError(controlName: string, errorName: string) {\r\n if (this.validateVOForm.controls[controlName].hasError(errorName))\r\n return true;\r\n return false;\r\n }\r\n\r\n\r\n /********** RECARGAR ZIP *********** */\r\n get f() { return this.existsZIPForm.controls; }\r\n get fp() { return this.existsZIP2Form.controls; }\r\n\r\n /**\r\n * Limpiar formulario de cargar zip\r\n */\r\n public clearForm() {\r\n this.existsZIPForm.reset();\r\n this.existsZIP2Form.reset();\r\n this.sendxml = true;\r\n this.measure = true;\r\n this.message.text = '';\r\n this.message.class = ''\r\n }\r\n\r\n /**\r\n * Recargar zip\r\n * @param values \r\n */\r\n public reload(values) {\r\n this.isLoadingSubject.next(true)\r\n this.mService.reloadZIP(values.ordernum).subscribe(response => {\r\n this.isLoadingSubject.next(false);\r\n if (response['code'] == 200) {\r\n this.optionSnack.panelClass = ['succes'];\r\n this.message.text = response['model'];\r\n } else if (response['code'] == 409) {\r\n this.optionSnack.panelClass = ['warning'];\r\n this.message.text = response['model'];\r\n } else {\r\n this.optionSnack.panelClass = ['error'];\r\n }\r\n this.notify.open(response['message'], 'x', this.optionSnack);\r\n });\r\n }\r\n\r\n public reloadEqm(values) {\r\n this.isLoadingSubject.next(true)\r\n this.mService.reloadZIPEqm(values.order).subscribe(response => {\r\n this.isLoadingSubject.next(false);\r\n if (response['code'] == 200) {\r\n this.optionSnack.panelClass = ['succes'];\r\n this.message.text = response['model'];\r\n } else if (response['code'] == 409) {\r\n this.optionSnack.panelClass = ['warning'];\r\n this.message.text = response['model'];\r\n } else {\r\n this.optionSnack.panelClass = ['error'];\r\n }\r\n this.notify.open(response['message'], 'x', this.optionSnack);\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IndividualComponent } from './modulos/individual/individual.component';\r\nimport { LoadMapComponent } from './modulos/load-map/load-map.component';\r\nimport { ManagmentComponent } from './modulos/managment/managment.component';\r\nimport { HomeComponent } from './modulos/home/home.component';\r\nimport { OrdervComponent } from './modulos/orderv/orderv.component';\r\nimport { SettingsComponent } from './modulos/settings/settings.component';\r\nimport { ComponentesModule } from './componentes/componentes.module';\r\n\r\n//\r\n// Form Controls\r\n//\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\n//\r\n// Navigation\r\n//\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n//\r\n// Layout\r\n//\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//\r\n// Buttons & Indicators\r\n//\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\n//\r\n// Popups & Modals\r\n//\r\n\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n//\r\n// Data Table\r\n//\r\n\r\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport { getSpanishPaginatorIntl } from '../comun/SpanishPaginator';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { EquipamientoComponent } from './modulos/equipamiento/equipamiento.component';\r\nimport { OfertaComponent } from './modulos/oferta/oferta.component';\r\n\r\n@NgModule({\r\n declarations: [IndividualComponent, ManagmentComponent, OrdervComponent, LoadMapComponent, SettingsComponent, HomeComponent, EquipamientoComponent, OfertaComponent],\r\n imports: [\r\n CommonModule, \r\n HttpClientModule, \r\n FileUploadModule,\r\n FlexLayoutModule, \r\n ReactiveFormsModule, \r\n RouterModule.forChild([\r\n { path: '', redirectTo: 'orden', pathMatch: 'full' },\r\n {path: 'ofindividual', component: IndividualComponent},\r\n {path: 'administrar', component: ManagmentComponent },\r\n {path: 'configurar', component: SettingsComponent },\r\n {path: 'orden', component: OrdervComponent},\r\n {path: 'cargar/:orderverif', component: LoadMapComponent},\r\n {path: 'equipamiento', component: EquipamientoComponent},\r\n {path: 'oferta', component: OfertaComponent},\r\n ]),\r\n ComponentesModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n //MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n //MatSliderModule,\r\n //MatSlideToggleModule,\r\n\r\n //MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n\r\n MatCardModule,\r\n //MatDividerModule,\r\n MatExpansionModule,\r\n //MatGridListModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatTreeModule,\r\n\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n //MatBadgeModule,\r\n //MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n\r\n //MatBottomSheetModule,\r\n MatDialogModule,\r\n MatSnackBarModule,\r\n MatTooltipModule,\r\n\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule,\r\n \r\n //DragDropModule,\r\n FlexLayoutModule,\r\n\r\n //A11yModule,\r\n //ClipboardModule,\r\n //PortalModule,\r\n ScrollingModule,\r\n MatToolbarModule,\r\n //CdkStepperModule,\r\n //CdkTableModule,\r\n //CdkTreeModule,\r\n //MatNativeDateModule\r\n\r\n\r\n \r\n\r\n ],\r\n providers: [ { provide: MatPaginatorIntl, useValue: getSpanishPaginatorIntl() },\r\n { provide: MAT_DATE_LOCALE, useValue: 'es-ES' },\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n { provide: MatDialogRef, useValue: {} }]\r\n})\r\nexport class PlanosModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\nimport { NgxLoggerLevel } from 'ngx-logger';\r\nexport const environment = {\r\n production: false,\r\n logLevel: NgxLoggerLevel.WARN,\r\n serverLogLevel: NgxLoggerLevel.OFF\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(error => console.error(error));\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}
${item}:${feature.properties[item]}