{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/app.component.html","webpack:///src/app/sicap/comun/componentes/alert/alert.component.html","webpack:///src/app/sicap/comun/componentes/confirm/confirm.component.html","webpack:///src/app/sicap/comun/modulos/internal-server/internal-server.component.html","webpack:///src/app/sicap/comun/modulos/login/login.component.html","webpack:///src/app/sicap/comun/modulos/not-found/not-found.component.html","webpack:///src/app/sicap/mapa/componentes/control-layers/control-layers.component.html","webpack:///src/app/sicap/mapa/componentes/copy-features/copy-features.component.html","webpack:///src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.html","webpack:///src/app/sicap/mapa/componentes/layer-table/layer-table.component.html","webpack:///src/app/sicap/mapa/componentes/measure/measure.component.html","webpack:///src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.html","webpack:///src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.html","webpack:///src/app/sicap/mapa/componentes/select-features/select-features.component.html","webpack:///src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.html","webpack:///src/app/sicap/planos/componentes/details-user/details-user.component.html","webpack:///src/app/sicap/planos/componentes/dwelling/dwelling.component.html","webpack:///src/app/sicap/planos/componentes/history/history.component.html","webpack:///src/app/sicap/planos/componentes/measure/measure.component.html","webpack:///src/app/sicap/planos/componentes/rejection/rejection.component.html","webpack:///src/app/sicap/planos/componentes/status/status.component.html","webpack:///src/app/sicap/planos/modulos/equipamiento/equipamiento.component.html","webpack:///src/app/sicap/planos/modulos/home/home.component.html","webpack:///src/app/sicap/planos/modulos/individual/individual.component.html","webpack:///src/app/sicap/planos/modulos/load-map/load-map.component.html","webpack:///src/app/sicap/planos/modulos/managment/managment.component.html","webpack:///src/app/sicap/planos/modulos/oferta/oferta.component.html","webpack:///src/app/sicap/planos/modulos/orderv/orderv.component.html","webpack:///src/app/sicap/planos/modulos/settings/settings.component.html","webpack:///node_modules/tslib/tslib.es6.js","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.css","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/sicap/comun/SpanishPaginator.ts","webpack:///src/app/sicap/comun/componentes/alert/alert.component.css","webpack:///src/app/sicap/comun/componentes/alert/alert.component.ts","webpack:///src/app/sicap/comun/componentes/componenteComun.module.ts","webpack:///src/app/sicap/comun/componentes/confirm/confirm-data.ts","webpack:///src/app/sicap/comun/componentes/confirm/confirm.component.css","webpack:///src/app/sicap/comun/componentes/confirm/confirm.component.ts","webpack:///src/app/sicap/comun/comun.module.ts","webpack:///src/app/sicap/comun/datos/auth-interceptor.ts","webpack:///src/app/sicap/comun/datos/auth.guard.ts","webpack:///src/app/sicap/comun/datos/auth.service.ts","webpack:///src/app/sicap/comun/datos/error-handler.service.ts","webpack:///src/app/sicap/comun/datos/home.guard.ts","webpack:///src/app/sicap/comun/datos/modal.service.ts","webpack:///src/app/sicap/comun/datos/notification.service.ts","webpack:///src/app/sicap/comun/modelo/config.http.ts","webpack:///src/app/sicap/comun/modulos/internal-server/internal-server.component.css","webpack:///src/app/sicap/comun/modulos/internal-server/internal-server.component.ts","webpack:///src/app/sicap/comun/modulos/login/login.component.css","webpack:///src/app/sicap/comun/modulos/login/login.component.ts","webpack:///src/app/sicap/comun/modulos/not-found/not-found.component.css","webpack:///src/app/sicap/comun/modulos/not-found/not-found.component.ts","webpack:///src/app/sicap/mapa/componentes/componentes.module.ts","webpack:///src/app/sicap/mapa/componentes/control-layers/control-layers.component.css","webpack:///src/app/sicap/mapa/componentes/control-layers/control-layers.component.ts","webpack:///src/app/sicap/mapa/componentes/copy-features/copy-features.component.css","webpack:///src/app/sicap/mapa/componentes/copy-features/copy-features.component.ts","webpack:///src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.css","webpack:///src/app/sicap/mapa/componentes/info-statistics/info-statistics.component.ts","webpack:///src/app/sicap/mapa/componentes/layer-table/layer-table.component.css","webpack:///src/app/sicap/mapa/componentes/layer-table/layer-table.component.ts","webpack:///src/app/sicap/mapa/componentes/measure/measure.component.css","webpack:///src/app/sicap/mapa/componentes/measure/measure.component.ts","webpack:///src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.css","webpack:///src/app/sicap/mapa/componentes/rejection-ov/rejection-ov.component.ts","webpack:///src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.css","webpack:///src/app/sicap/mapa/componentes/result-valid-cuv/result-valid-cuv.component.ts","webpack:///src/app/sicap/mapa/componentes/select-features/select-features.component.css","webpack:///src/app/sicap/mapa/componentes/select-features/select-features.component.ts","webpack:///src/app/sicap/mapa/componentes/utils/Statistic.map.ts","webpack:///src/app/sicap/mapa/componentes/utils/Tools.map.ts","webpack:///src/app/sicap/mapa/datos/control.service.ts","webpack:///src/app/sicap/mapa/datos/map.service.ts","webpack:///src/app/sicap/mapa/mapa.module.ts","webpack:///src/app/sicap/mapa/modelo/DeclaredLayer.ts","webpack:///src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.css","webpack:///src/app/sicap/mapa/modulo/map-canvas/map-canvas.component.ts","webpack:///src/app/sicap/planos/componentes/componentes.module.ts","webpack:///src/app/sicap/planos/componentes/details-user/details-user.component.css","webpack:///src/app/sicap/planos/componentes/details-user/details-user.component.ts","webpack:///src/app/sicap/planos/componentes/dwelling/dwelling.component.css","webpack:///src/app/sicap/planos/componentes/dwelling/dwelling.component.ts","webpack:///src/app/sicap/planos/componentes/history/history.component.css","webpack:///src/app/sicap/planos/componentes/history/history.component.ts","webpack:///src/app/sicap/planos/componentes/measure/measure.component.css","webpack:///src/app/sicap/planos/componentes/measure/measure.component.ts","webpack:///src/app/sicap/planos/componentes/rejection/rejection.component.css","webpack:///src/app/sicap/planos/componentes/rejection/rejection.component.ts","webpack:///src/app/sicap/planos/componentes/status/status.component.css","webpack:///src/app/sicap/planos/componentes/status/status.component.ts","webpack:///src/app/sicap/planos/datos/Oindividual.service.ts","webpack:///src/app/sicap/planos/datos/catalog.service.ts","webpack:///src/app/sicap/planos/datos/equipamiento.service.ts","webpack:///src/app/sicap/planos/datos/load-map.service.ts","webpack:///src/app/sicap/planos/datos/managment.service.ts","webpack:///src/app/sicap/planos/datos/oferta.service.ts","webpack:///src/app/sicap/planos/datos/orderv.service.ts","webpack:///src/app/sicap/planos/modulos/equipamiento/ds-scene.ts","webpack:///src/app/sicap/planos/modulos/equipamiento/equipamiento.component.css","webpack:///src/app/sicap/planos/modulos/equipamiento/equipamiento.component.ts","webpack:///src/app/sicap/planos/modulos/home/home.component.css","webpack:///src/app/sicap/planos/modulos/home/home.component.ts","webpack:///src/app/sicap/planos/modulos/individual/datasource-offer.ts","webpack:///src/app/sicap/planos/modulos/individual/individual.component.css","webpack:///src/app/sicap/planos/modulos/individual/individual.component.ts","webpack:///src/app/sicap/planos/modulos/load-map/load-map.component.css","webpack:///src/app/sicap/planos/modulos/load-map/load-map.component.ts","webpack:///src/app/sicap/planos/modulos/managment/datasource-user.ts","webpack:///src/app/sicap/planos/modulos/managment/managment.component.css","webpack:///src/app/sicap/planos/modulos/managment/managment.component.ts","webpack:///src/app/sicap/planos/modulos/oferta/datasource-oferta.ts","webpack:///src/app/sicap/planos/modulos/oferta/oferta.component.css","webpack:///src/app/sicap/planos/modulos/oferta/oferta.component.ts","webpack:///src/app/sicap/planos/modulos/orderv/datasource-scene.ts","webpack:///src/app/sicap/planos/modulos/orderv/orderv.component.css","webpack:///src/app/sicap/planos/modulos/orderv/orderv.component.ts","webpack:///src/app/sicap/planos/modulos/settings/settings.component.css","webpack:///src/app/sicap/planos/modulos/settings/settings.component.ts","webpack:///src/app/sicap/planos/planos.module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///fs (ignored)","webpack:///crypto (ignored)","webpack:///stream (ignored)"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","value","step","next","rejected","result","done","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__exportStar","m","__values","o","__read","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","settle","fulfill","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","__importDefault","routes","path","redirectTo","pathMatch","component","canActivate","canLoad","children","loadChildren","PlanosModule","AppRoutingModule","imports","forRoot","AppComponent","title","selector","template","AppModule","declarations","providers","bootstrap","schemas","spanishRangeLabel","page","pageSize","Math","max","startIndex","endIndex","min","getSpanishPaginatorIntl","paginatorIntl","itemsPerPageLabel","nextPageLabel","previousPageLabel","getRangeLabel","AlertComponent","dialogRef","data","alertType","DONE","INFO","WARNING","ERROR","close","ComponenteComunModule","entryComponents","ConfirmData","content","confirmButtonLabel","closeButtonLabel","ConfirmComponent","ComunModule","level","logLevel","serverLogLevel","disableConsoleLogging","provide","useClass","useValue","AuthInterceptor","authService","router","logger","request","token","localStorage","getItem","clone","setHeaders","Authorization","handle","pipe","err","status","removeItem","navigate","message","statusText","httpInterceptorProviders","multi","AuthGuard","isLoggedIn","providedIn","AuthService","http","API","LOGIN","LOGOUT","REFRESH","JWT_TOKEN","REFRESH_TOKEN","CURRENT_USER","currentUserSubject","JSON","parse","currentUser","asObservable","user","params","set","btoa","username","password","get","doLoginUser","model","post","getRefreshToken","doLogoutUser","getJwtToken","tokens","storeJwtToken","jwt","storeProfile","loggedUser","storeTokens","removeTokens","setItem","profile","accessToken","stringify","refreshToken","helper","decodedToken","decodeToken","expirationDate","getTokenExpirationDate","isExpired","isTokenExpired","expired","currentUserValue","undefined","exp","Date","current","getTime","clear","ErrorHandlerService","errorMessage","handle500Error","handle404Error","handleOtherError","createErrorMessage","HomeGuard","checkSession","getProfile","ModalService","dialog","open","width","openAlert","callBackFunction","afterClosed","subscribe","NotificationService","snackBar","type","duration","panelClass","horizontalPosition","verticalPosition","url","apiUrl","main","load","map","login","api","Section","MainLayer","AlertType","AlertData","InternalServerComponent","LoginComponent","formBuilder","notify","errorMessages","$loginLoading","messageError","year","getFullYear","loginForm","group","required","setTimeout","console","log","controls","NotFoundComponent","ComponentesModule","ControlLayersComponent","control","matIconRegistry","sanitizer","checklistSelectionOLy","_transformer","node","expandable","name","nkey","wms","layer","view","getLevel","treeControl","treeFlattener","dsOficialLayers","hasChild","addSvgIcon","bypassSecurityTrustResourceUrl","currentValue","projectContent","project","createControlLayer","dlayer","currentPlano","order","infoExtra","role","info","declaredLayers","listLayers","layers","forEach","parent","newgeneral","allLayers","newChildren","newLayers","child","createWMS","L","find","filter","tblkey","layerFind","geojson","geometryType","features","geometry","defaultStyle","setStyle","styles","_group","tblname","substring","createGeoJSON","copied","verify","verificar","infoGroupLayer","featureGroup","l","checkDeclaredCartography","options","addTo","remove","show","center","dataNodes","descendants","getDescendants","select","expand","includes","toggleLayer","centerDeclaredCartography","descAllSelected","every","isSelected","some","descendantsAllSelected","toggle","deselect","_layers","checkAllParentsSelection","selected","getParentNode","checkRootNodeSelection","nodeSelected","currentLevel","currentNode","getBounds","_northEast","fitBounds","setCoordDeclaredCarto","color","getColorDeclared","getSymbologyDeclared","setParamsWFS","action","hasBackdrop","closeOnNavigation","position","bottom","left","encapsulation","None","CopyFeaturesComponent","modalService","mapService","messageCopy","disablePanel","dwelling","other","equipment","vial","waiting$","reviewMessage","disable","text","list","validCuvsMessage","isEqm","EQM","CONSTRUCCION","nocopied","selectedObjects","sendDwelling","getFeaturesID","element","openWarningModal","hideTool","tool","sendCartography","total","listSelectedId","item","valueArray","values","featureSelected","feature","ids","elements","copyCartography","num","response","setCopiedLayer","loadDuplicate","noCopied","openErrorModal","listIds","copyDwelling","typeInitial","layerCopied","n_selected","styleError","errorStyle","reviewCUVxOrderNumber","res","checked","InfoStatisticsComponent","statistic","summary","uRole","uRoleKey","LayerTableComponent","service","activeSave","selectedTable","save","selectRowTable","filterTable","tableSelectData","tableSelectColumns","tableSelectColumnsToDisplay","contentTable","splice","slice","unshift","customSelectFeature","addRow","properties","uid","hovered","sort","x","filterValue","trim","toLowerCase","matSort","row","MeasureComponent","measureControl","_startMeasure","document","getElementById","innerHTML","RejectionOvComponent","toolSelected","resultDelete","initFormReject","rejectForm","rejectionDetail","controlName","invalid","touched","errorName","hasError","valuesForm","valid","openConfirm","answer","rejectedOrderNumber","openDoneModal","ResultValidCUVComponent","resultValid","disableSendGIS","isLoadingSubject","loading$","MODULE_NO_CUVS","validCUVS","sendValidationGIS","modalTitle","validCUVxOrderNumber","totconstruccion","totvivienda","nocuvs","duplicados","nivel","existen","msg","sendVerificationGIS","SelectFeaturesComponent","dataSelected","messageCopy1","otherindv","eqmindiv","vialindiv","resultLayerCopy","selectedTool","normalUser","operatorSIG","KMltemplate","DOMParser","parseFromString","checkCUVS","resultSelection","validColumn","eventSelect","stool","selectFeature","count","clickLayer","u","getSelectedTool","lasso","initPanel","customProject","initComponentLasso","idStatus","on","event","selectedFeatures","setSelectedLayers","resetSelectedState","resetSelectedLayer","intersection","changeTool","n_elements","checkSelected","addEventListener","customSelectRowTable","selectedRow","currentLayer","flyTo","getLatLng","animate","zoom","enabled","enable","openInfoModal","kml","LL","fillKML","downloadKml","filename","createElement","setAttribute","encodeURIComponent","XMLSerializer","serializeToString","style","display","appendChild","click","removeChild","setOptions","intersect","polygon","PolylineOptions","selectedfeatures","updateCount","removeEventListener","arrData","smb","eqm","rvl","objDeclared","objOut","temporal","copy","exist","tmp","getMessage","btnDisable","nogis","gis","getStage","ov","stage","dcreated","isLoadingStatistic","PROXY_API_URL","WMS","getHeaderColumns","nameColumns","headColumns","getSelectedValues","selectedValues","initBaseMaps","base","basemaps","tileLayer","layerwms","transparent","format","uppercase","srs","CRS","EPSG4326","crs","maxZoom","geoJSONLayer","_map","openPopup","latlng","closePopup","onEachFeatures","popupContent","bindPopup","paramsGeo","onEachFeature","pointToLayer","circleMarker","geoJSON","radius","radio","fillColor","fillcolor","weight","opacity","fillOpacity","mainUrl","layerName","server","defaultParameters","version","height","parameters","Util","extend","getParamString","isDeclaredLayer","declared","xmlDocument","xmlPlacemark","xmlSimpleField","head","xmlSimpleData","coordinates","propertie","h","getElementsByTagName","objLayer","ControlService","subjectHideTool","hidedTool","rowTable","customDeclared","coordinatesDeclaredCarto","customSelectedIdGeoproj","plane","MapService","cartography","settings","validation","rejection","accepted","verified","validCUV","sendverification","reviewCUV","clearSession","error500","orderNumber","section","object","generateHeaders","rejectDetail","headers","MapaModule","INIT","plano","panel","tools","sendSIG","nokGIS","okGIS","verifyGIS","MapResponse","SelectedTool","Marker","icon","iconRetinaUrl","iconUrl","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowSize","MapCanvasComponent","activeRoute","indexMenu","isSecondLoadingSubject","secondLoading$","contentProject","visibleTool","loadMap","disableSelected","expandedSelected","expandedTask","showCopyPanel","initControl","setProject","setPlano","snapshot","setSettings","initHideTool","getSettings","getSetting","KEY","schemaLayers","iniComponentsMap","estatus","sname","psid","createdFormat","getCartography","loadStatistics","activeModule","scaleControl","scale","updateWhenIdle","addControl","tileX","tileY","tileZ","attributionControl","addAttribution","iniMeasureTool","Control","Measure","primaryLengthUnit","primaryAreaUnit","activeColor","completedColor","decPoint","thousandsSep","hidecontrol","getElementsByClassName","validCartography","itemSummary","notes","numNotifications","infoDialog","route","OFERTA","logout","success","closeAll","setView","LatLng","coordDeclaredCarto","showStatistics","acceptedOrderNumber","verifiedPlano","setSelectedTool","index","ORDER","DetailsUserComponent","mService","hide","disableClose","userForm","typeu","nameusr","email","minLength","patchValue","update","closeDialog","DwellingComponent","HistoryComponent","history","isEmpty","ordenumber","oindService","searchService","ELEMENT_DATA","isLoading","dataSubject","notData","foundData","columnSnIds","columnScene","fieldMeasure","field","selectedMeaseureField","setTableStructure","getDistance","identity","setDataMeasure","dataSource","paginator","filterPredicate","dataStr","firstPage","filteredData","columns","cid","property","visibleTo","animations","minHeight","RejectionComponent","orderService","eqmService","rejectionForm","orderVerif","disabled","numbertel","reasons","maxLength","sendNotifyRejection","StatusComponent","statusForm","statusId","comments","updateSceneStatus","typeMsg","OindividualService","Individual","Distancia","istatus","sortOrder","sortField","pageNumber","toString","CatalogService","typeUser","offer","oferta","EquipamientoService","getScenes","assignOperator","sendNotification","downloadMap","itypeMap","onlyNews","orderVerify","opGIS","put","formRejection","observe","responseType","openFileForDownload","content_type","x_filename","blob","Blob","LoadMapService","upload","validateOV","idstatus","UPLOAD_URL","ManagmentService","users","userstatus","validOV","measure","sendxml","reload","reloadEqm","itypeu","fieldSort","OfertaService","distanceOV","istate","icity","OrdervService","getModuleUrl","DsScene","SceneSubject","loadingSubject","sortDirection","pageIndex","searchScene","results","collectionViewer","complete","EquipamientoComponent","errorHandler","catalog","selectionChange","statesControl","citiesControl","isActive","isActive$","onChange","onTouched","exportTable","timeSpan","toISOString","prefix","uName","fileName","targetTableElm","wb","table_to_book","sheet","actived","initTable","messageTextSearch","getCatalogs","getCatalogsEqm","statusList","gisOperatorList","input","nativeElement","disconnect","reset","idStatusSelected","idTypeMapSelected","direction","active","getHistory","eid","loadScenePage","checkDownloadFile","downloadFile","distanceAttrs","Number","emit","matSelect","fn","pattern","test","replace","columnSceneAll","sortChange","HomeComponent","pagesAll","link","usertype","valueState","isExpanded","today","pages","state","routerState","DatasourceOffer","oindividualService","OfferSubject","iTypeu","search","IndividualComponent","searchOffer","getCatalogOffer","listOfferType","loadOfferPage","idOTypeSelected","writeValue","cuv","LoadMapComponent","loadService","_formBuilder","selectedStepIndex","linearStep","numberOrder","disableSelect","tutorialLink","acceptedSubject","accepted$","isActiveEqm","isActiveEqm$","isActiveOf","isActiveOf$","MODULE","MODULE_GENERAL","isEditable","MAXIMO","validOrderNumber","selectedTypeMap","wrongOrder","emptyid","paramOrder","validateOrderForm","orderCtrl","modulo","setValidators","validateZipForm","zipCtrl","nameZip","activedEqm","activedOf","initZIP","uploadZip","allowedMimeType","authToken","maxFileSize","method","onWhenAddingFileFailed","msgNoFile","novalid","onAfterAddingFile","file","withCredentials","onCompleteItem","resp","msgDetails","details","msn","msgValidation","texts","msgLoadedTemporal","teid","msgError","form","validateVerifyOrder","orderv","getSizeFile","size","toFixed","parseFloat","additionalParameter","uploadAll","displayDefaultIndicatorType","DatasourceUser","userService","UsersSubject","findUsers","ManagmentComponent","getTypeUser","typeUserList","columnSort","loadUsersPage","loadUsers","idTypeUserSelected","typelist","dialogupRef","updateStatus","columnObject","columnId","propertyName","columnIds","DatasourceScene","OfertaComponent","getCatalogOferta","listStates","listAllCities","idoferta","getDwelling","listCities","fidedo","OrdervComponent","getCatalogOrder","SettingsComponent","optionSnack","validateVOForm","ordernum","existsZIPForm","existsZIP2Form","validOVToMeasure","sendXML","reloadZIP","reloadZIPEqm","forChild","environment","production","WARN","OFF","bootstrapModule"],"mappings":"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","file":"main-es5.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}","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 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","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) */"]}
${item}:${feature.properties[item]}