{"version":3,"sources":["services/UserService.js","components/filters/index.js","components/history/index.js","components/exams/Graph.js","components/exams/Status.js","models/UserAuth.js","services/AuthenticationService.js","services/ExamsService.js","assets/img/ico-partner-lab.svg","components/AppBar.js","components/layout/HeaderLayout.js","components/layout/LeftSideLayout.js","components/layout/ContentLayout.js","components/layout/index.js","components/Dialog.js","components/Labs.js","components/LeftSideBar.js","pages/HomeView.js","components/Login.js","pages/LoginView.js","App.js","index.js","handlers/axios.js","services/APIService.js","assets/img/PIN-NTS/PIN-CARD-NTO.png","assets/img/PIN-NTS/PIN-GENERAL-CARD.png","constants.js","assets/img/dna.svg","components/LoadDNA.js","util/utils.js","routes/historyRoutes.js","assets/img/test-tube-right.gif","assets/img/test-tube-left.gif","animations/mapAnimations.js","assets/img/mats-right.gif","assets/img/mats-left.gif","assets/img/mats-external.gif","assets/img/mats-bottom.gif","assets/img/packages.gif","assets/img/mats-generic-map.gif","assets/img/test-tubes-generic-map.gif","assets/img/packages-generic.gif","components/Map.js","assets/video/Hermes_pardini_Introv4.mp4","assets/video/generic-map.mp4","assets/img/PIN-NTS/pin-card-registered.png","components/exams/index.js","components/exams/List.js"],"names":["UserService","user","authenticationService","retrieveUserDataFromLocalStorage","this","getUserData","userType","relatedClients","clientID","clientId","type","name","clientName","getClientNameFromRelated","getUserClients","currentClientId","getClientId","Object","keys","length","clientIndex","hasOwnProperty","call","client","code","token","myPardiniSession","Filters","props","state","hasFilter","filters","JSON","parse","stringify","examString","setExamFn","setExam","bind","a","checkStateFilters","addEventListeners","loadExamsAutocomplete","resetExamFilter","removeEventListeners","document","querySelectorAll","forEach","e","value","closest","classList","add","addEventListener","remove","global","removeEventListener","indexOf","getElementById","checked","input","exams","examsType","setState","Awesomplete","text","FILTER_CONTAINS","match","ITEM","before","list","filter","item","replace","bool","disabled","searchIndex","f","patientInput","dateEnd","end","begin","dateBegin","checkFilters","id","push","index","splice","valueByTyping","valueBySelecting","Exam","includes","clearedFilters","clearNonValidExamsFilter","setExamOption","examOption","isExamOptionSet","checkIfExamOptionIsSet","showDialogErrorMessage","examFilterHtmlElement","join","parentElement","contains","examFilters","split","splittedExamFilters","clearExamFilter","userIncompleteTyping","splittedExamFilter","trim","array","FILTERS_COMPLETE","OrderId","ProductionUnitName","PatientName","URGENCY","Urgency","element","Array","className","STAGE_SHORT","onClick","clearFilter","PRODUCTION_UNIT_ALIAS","labelDataFilter","mountDateFilter","STATUS_ID","CADASTRADO","RECEBIDO","RECOLHIDO","clearField","c","title","errorMessage","dialog","message","show","confirmation","sendEvent","field","querySelector","_flatpickr","clear","moment","format","isSameOrAfter","submit","close","userService","getUserType","style","marginTop","htmlFor","onChange","setPatient","currentTarget","setOrder","options","allowInput","locale","Portuguese","dateFormat","setDateBegin","setDateEnd","setPriority","setSituation","class","for","mapFilters","verifyFilters","Component","History","examHistory","loading","exam","hasPendencies","startGettingHistoryData","stopGettingData","examsService","stopGettingDataFrom","startGettingDataFrom","updateExamHistory","FETCH_INTERVAL","map","phase","pendency","sampleRecall","productionUnit","examName","mnMat","mnExa","year","orderDate","orderId","examId","patientName","examDescription","getResult","result","url","window","URL","createObjectURL","Blob","downloadLink","createElement","fileName","href","download","click","stageName","toggle","panel","nextElementSibling","display","data","boxShadow","dateHourAction","STAGE_ICONS","toUpperCase","userAction","descriptionAction","whiteSpace","fullDetail","note","marginBottom","backListExam","width","urgency","sampleStored","discardedSample","eventStage","stopPropagation","getExamResult","fontWeight","orderAlphaNumeric","aliasProdUnit","rescheduled","estimatedResultDate","overflow","pendencies","openAccordion","dateHour","marginRight","listStyleType","padding","paddingTop","reason","height","backgroundSize","child","renderDialogBody","Graph","graphData","chart","config","datasets","backgroundColor","labels","legend","responsive","plugins","render","precision","overlap","fontSize","fontStyle","fontColor","fontFamily","tooltips","bodyFontFamily","bodyFontColor","bodyFontSize","bodyFontStyle","xPadding","yPadding","displayColors","cornerRadius","caretSize","cutoutPercentage","elements","arc","borderWidth","Chart","getContext","Status","hasGraph","substring","examTextStyle","margin","arrayLeft","arrayRight","counter","status","filterBy","onMouseOver","onMouseOut","STAGE_COLOR_CODE","border","processName","response","values","colors","label","statusArray","sort","b","createDataArray","columns","mapObject","maxWidth","marginLeft","flex","withRouter","UserAuth","userId","userName","authkeyType","tokenExpirationDate","USER_TYPES","AuthenticationService","userAuth","password","console","error","userLoginRequest","apiRequest","requestClientToken","clientAuth","setAuthorizationDataOnLocalStorage","renew","contextRoot","siglaUsuario","tokenExpirationInMinutes","stopGettingAllData","logOut","localStorage","removeItem","session","setItem","request","authData","Promise","resolve","reject","parsedDate","parseDate","Date","verifyLocalStorage","setTimeout","getItem","checkIfTokenExpired","expirationDate","now","ExamsService","runningFunctionsReference","_instance","setUserAuthorizationDataOnRequest","examsTypes","orderBy","limit","page","lastId","orderIdIndex","getExamFilterIndex","undefined","isAlphanumericOrderId","getOrderIdFromAlphanumericCode","AggregatedData","statistics","buildStatus","events","examEvents","removeHistoryDuplicatedStatus","examsStatus","buildedExamsStatus","responseType","headers","functionName","parameters","callback","every","recurrentReference","setInterval","functionReference","referenceIndex","clearInterval","functionReferences","functionIndex","prodUnit","descEventStage","clientState","qtyEventStage","eventLocation","codePardiniStore","namePardiniStore","stateStore","homeState","statusHistory","haveHistory","newHistory","alphanumeric","orderIdAlphaNumeric","base36ToDecimal","filterName","findIndex","_g","_defs","_excluded","_extends","assign","target","i","arguments","source","key","prototype","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgIcoPartnerLab","_ref","svgRef","titleId","fill","xmlns","ref","clipPath","d","x1","y1","x2","y2","gradientUnits","stopColor","offset","ForwardRef","AppBar","clientList","menuOpen","userData","getClientName","preventDefault","setEmbeddedFromLocalStorage","logout","history","info","setUserClient","currentUser","getCurrentUserClient","menu","alterClient","active","getElementsByClassName","closeDropDown","flexDirection","justifyContent","minHeight","textAlign","role","openDropDown","right","top","minWidth","toggleAlterLab","endSession","location","MY_PARDINI_URL","renderDropBox","checkForMyPardiniSession","backToMyPardini","changeMenu","HeaderLayout","getEmbedded","children","LeftSideLayout","ContentLayout","Layout","params","useParams","query","useLocation","isEmbedded","styleMain","styleApp","gridRow","react","cloneElement","header","leftSide","content","Dialog","visible","styles","backgroundHeader","widthModal","heightModal","previousProps","background","setStyles","closeInternal","closeModal","deny","Labs","isLoading","unitsList","unitsStatus","unit","PRODUCTION_UNIT_FEDERATIONS","renderUnits","LeftSideBar","hasExams","isFilterScreenOpen","checkHasExams","detail","statusFiltered","filterStatus","currentProductionUnit","updateFilterScreenStatus","HomeView","stageUnitDistributionByStage","showDialogFn","showDialog","startListingEvents","startGettingStatusData","stopListingEvents","logUserOut","closeAllDropDown","setCurrentProductionUnit","updateStatus","buildStageUnitDistributionByStage","update","statusIndex","statusUnit","stageIndex","stageCount","event","dialogData","ignoreElement","dataset","rel","crossOrigin","Map","defaultCloseDialog","Login","userTypeName","login","isUserAuthenticated","nextLoginPhase","items","showPasswordFn","showPassword","getQuery","checkForExternalLogin","checkIfUserAuthenticated","queryName","URLSearchParams","search","get","toLowerCase","authentication","isAuthenticated","showErrorMessage","externalToken","checkIfTokenValidOnRemote","registerSession","inputPassword","focus","getString","alert","ctrl","btDefaultStyle","position","paddingLeft","to","FOLDER_HOMOL","toggleList","maxHeight","toggleClientType","alignItems","setClient","toggleUserType","attLogin","attPassword","LoginView","App","PrivateRoute","rest","searchUrl","externalLogin","pathname","exact","path","ReactDOM","axios","create","baseURL","API_URL","method","route","authkey","AUTH_KEY","authPass","AUTH_PASS","post","normalizeJSON","apiErrorHandler","shouldNormalizeJSON","isPDF","byteLength","MAIN_MAP","MAIN_ID","ZAPT_API_KEY","PRODUCTION_UNIT_CATEGORY","STAGES_CATEGORY","STATES_CATEGORY","process","PRODUCTION_UNIT_NAMES","HP","NTHNO","NTHCE","NTOGO","SOLUCAO","NTOSP","NTARJ","NTADLE","NTBH","NTO","PRODUCTION_UNIT_HAS_MAP","STAGE_COLORS","STAGE_COLORS_UPPERCASE","UNIT_IMG_CARD","unitNTOCard","unitGeneralCard","_circle","_circle2","_circle3","_circle4","_circle5","_circle6","_circle7","_circle8","_circle9","_circle10","_circle11","_circle12","_circle13","_circle14","_circle15","_circle16","_circle17","_circle18","_circle19","_circle20","SvgDna","viewBox","preserveAspectRatio","cx","cy","r","attributeName","dur","repeatCount","keyTimes","keySplines","calcMode","LoadDNA","eventName","CustomEvent","dispatchEvent","filterPois","pois","mapId","categoryId","reducedMapId","fullId","getFloorIdByPlaceId","poi","floor","filterPoiByName","poiName","transformCoordinatesToLeaflet","coords","x","imageObj","getCoordinateDirection","lngOrigin","lngDestination","calculateCurvePointControl","pInitial","pFinal","radius","flip","auxPoint","offsetX","offsetY","y","phi","Math","asin","h","cos","pointerX","pointerY","calculateCurvePoints","accuracy","tFator","t","pointers","pMiddle","bx","ax","by","ay","addPaddingInMap","paddings","L","paddingRightFactor","paddingLeftFactor","left","paddingTopFactor","paddingBottomFactor","bottom","getSize","_size","_sizeChanged","Point","_container","clientWidth","clientHeight","clone","json","correctJson","date","tempDate","month","day","hour","minutes","seconds","setYear","parseInt","setMonth","setDate","setHours","setMinutes","setSeconds","getTime","RegExp","test","HISTORY_ROUTES","HISTORY_ROUTES_FLAT","HISTORY_ROUTES_GENERIC","HISTORY_ROUTES_FLAT_GENERIC","MAP_ANIMATIONS","matsRight","gifPath","matsLeft","matsExternal","matsBottom","testTubeRight","testTubeLeft","packages","GENERIC","mats","testTubes","serialize","fn","args","contextChangeRequestPool","then","catch","changeContextHandler","isStageHighlightOn","handleMapView","setExams","highlightStageFn","setExamHistory","loadFirstMap","videoIsPlaying","videoVisible","videoPath","flatMapId","flatMapExternalId","mapExternalId","placeId","mapSelectedType","currentMapId","mainMapId","mainMapExternalId","mainFlatMapId","isMapInitialized","examOnHighlight","windowWidth","innerWidth","fullLegend","containerHeight","innerHeight","zaptMapAPI","markers","logisticRoutes","mapBounds","isOnUnitCardOver","clearLogisticLabelsFn","clearLogisticLabels","renderLegendFn","renderLegend","highlightStage","startListeningEvents","stopListeningEvents","highlightExam","resetMapZoom","highlightUnitFn","highlightUnit","zapt","off","requestChangeContext","setMapContainer","externalMapId","currentExternalMapId","initializeMap","checkIfIsDefaultProductionUnitMap","on","mainExternalId","checkIfIsFlatMapId","flatMatId","Data","getMapId","setMapId","updateLimitMapBounds","ZaptMapAPI","getPlaceId","mapParams","mapContainerId","disableShowInterestPopUponClick","disableCache","showPins","disablePopUpDynamicPin","initialize","animations","animationKey","animation","imageOverlay","addTo","resetZoom","isDefaultProductionUnit","examsDistribution","getExamsDistribution","handleExamHistoryMapView","clearMapView","handleProductionUnitExamDistributionMapView","handleMainMapView","loadMap","loadProductionUnits","lastStage","loadCollectedMarkers","TOTAL","invalidateSize","loadRegisteredMarker","addAnimationsInMap","loadHistoryOnMap","stage","unitName","unitKey","stageKey","isExamsInOneUnit","hasSingleStatus","checkForSingleStatus","checkOnlyRegisteredOrCollected","videoMapNTO","videoGeneric","loadExamGroupings","loadProductionUnitsSearch","clearMarkers","isHistory","isFederation","shift","getPois","poisCategory","productionUnitPois","stages","total","marker","latLng","icon","divIcon","html","imageCardRegistered","replaceAll","iconAnchor","iconSize","setZIndexOffset","featureGroup","totalUnit","stageElement","cursor","originalEvent","removeLayer","group","isDefaultProductionUnitMap","maxZoom","flyToBounds","getBounds","_map","statusData","focusOnMarkers","isValidProductionUnitMap","checkIfIsProductionUnitHasMap","productionUnitPoi","isProductionUnitPoiWithMap","examsList","renderCardUnit","focusOnTheMap","isHighlight","unitProduction","statePois","getClientState","statePoi","polygon","color","fillOpacity","weight","interactive","hasProductionUnitExams","BR","routeInfo","origin","destinations","statesPois","unitPois","unitPoiIndex","productionUnitExam","loadLogisticRoutes","getZoom","layer","dragging","routeComponents","originPath","destination","transportType","destinationPath","direction","lng","routePath","lat","polyline","dashArray","dashOffset","centerRoute","calcCenterRoute","round","pathRoute","abs","statusName","theProductionUnit","unitMarker","setOpacity","setZoom","notAllowed","hasStatus","stagesPois","stagePoi","buildStagesPois","examsCountByStage","countExamsByStage","occurrences","indexes","checkDuplicateOccurrences","lastHistoryStage","markerStyle","lastOccurrence","order","numOccurrences","traceHistoryRoute","stageUnitDistribution","totalExams","units","stageDate","productionUnitAliases","routes","mountHistoryRoute","leafletRoute","routePendency","paths","pathLabel","concat","fator","SouthWest","getSouthWest","SouthEast","getSouthEast","NorthEast","getNorthEast","NorthWest","getNorthWest","eachLayer","_marker","_parts","_zoom","stagePois","buildedStagePois","stagePoiIndex","examsCount","zoom","mapLayer","_url","_image","currentZoom","changeZoom","splittedMapId","sizeContainer","center","containerPointToLatLng","onresize","autoPlay","muted","zIndex","onPlay","onEnded","src","visibility","toggleTopView","ORDER_DATE","Exams","listEnd","listOrder","listPage","hasFilterSearch","renderFilterScreen","paginationIds","filtersSearch","searchValue","renderHistory","loadingExams","isShowingHistory","recurrentGetReference","inputSearchRef","React","createRef","startGettingExamsData","updateListEnd","applyStageProductionUnitFilterOnFilterOrSearch","updateExams","Ids","isValidProductionUnit","applyStageProductionUnitFilterOnSearch","applyStageProductionUnitFilter","isOrderId","isNaN","EventStage","ExamDescription","hasExamList","updateSearch","getQuerySearch","pop","filterIndex","current","clearAllFilters","filtersExt","filterType","showExams","getTypes","closeFilters","applyFilters","addStatusFilter","clearSearch","autoComplete","handleChangeInputSearch","onFocus","toggleLabel","onBlur","toggleOrderby","getExamHistory","changePage","List","renderList","highLightEnable","exame","gridTemplateRows","exameName","gridColumn"],"mappings":"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","file":"static/js/main.c8402628.chunk.js","sourcesContent":["import authenticationService from \"./AuthenticationService\";\r\n\r\nclass UserService {\r\n\r\n getUserData() {\r\n let user = authenticationService.retrieveUserDataFromLocalStorage();\r\n if (user) {\r\n return user;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getUserType() {\r\n let user = this.getUserData();\r\n if (user) {\r\n return user.userType;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getUserClients() {\r\n let user = this.getUserData();\r\n if (user) {\r\n return user.relatedClients;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getCurrentUserClient() {\r\n let user = this.getUserData();\r\n if (user) {\r\n return {\r\n clientID: user.clientId,\r\n type: user.userType,\r\n name: user.clientName,\r\n };\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getClientName() {\r\n let user = this.getUserData();\r\n\r\n let clientName = user.clientName || this.getClientNameFromRelated() || null;\r\n\r\n return clientName;\r\n }\r\n\r\n getClientId() {\r\n let user = this.getUserData();\r\n if (user && user.clientId) {\r\n return user.clientId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getClientNameFromRelated() {\r\n let relatedClients = this.getUserClients();\r\n let currentClientId = this.getClientId();\r\n\r\n if (relatedClients && Object.keys(relatedClients).length > 0) {\r\n for (const clientIndex in relatedClients) {\r\n if (Object.hasOwnProperty.call(relatedClients, clientIndex)) {\r\n const client = relatedClients[clientIndex];\r\n if (client.code == currentClientId) {\r\n return client.name;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getUserToken() {\r\n let user = authenticationService.retrieveUserDataFromLocalStorage();\r\n if (user && user.token) {\r\n return user.token;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n checkForMyPardiniSession(){\r\n let user = authenticationService.retrieveUserDataFromLocalStorage();\r\n if (user && user.myPardiniSession) {\r\n return true;\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default new UserService();\r\n","import React, {Component} from \"react\";\r\nimport { searchIndex, sendEvent } from \"../../util/utils\";\r\nimport Flatpickr from 'react-flatpickr';\r\nimport { Portuguese } from \"flatpickr/dist/l10n/pt\";\r\nimport \"flatpickr/dist/themes/airbnb.css\";\r\nimport Awesomplete from 'awesomplete';\r\nimport {PRODUCTION_UNIT_ALIAS, STAGE_SHORT} from '../../constants';\r\nimport moment from \"moment\";\r\nimport userService from \"../../services/UserService\";\r\n\r\nclass Filters extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hasFilter: this.props.hasFilter,\r\n filters: JSON.parse(JSON.stringify(this.props.filters)),\r\n examString: \"\",\r\n };\r\n this.setExamFn = this.setExam.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.checkStateFilters();\r\n this.addEventListeners();\r\n this.loadExamsAutocomplete();\r\n this.resetExamFilter('');\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n document.querySelectorAll(\".label-inside .form-control\").forEach((e) => {\r\n if (e.value) e.closest(\".label-inside\").classList.add(\"filled\");\r\n e.addEventListener(\"focusin\", () =>\r\n e.closest(\".label-inside\").classList.add(\"focus\", \"filled\")\r\n );\r\n e.addEventListener(\"focusout\", () => {\r\n if (!e.value) e.closest(\".label-inside\").classList.remove(\"filled\");\r\n e.closest(\".label-inside\").classList.remove(\"focus\");\r\n });\r\n });\r\n\r\n global.addEventListener(\r\n \"awesomplete-selectcomplete\",\r\n this.setExamFn\r\n );\r\n }\r\n\r\n removeEventListeners() {\r\n document.querySelectorAll(\".label-inside .form-control\").forEach((e) => {\r\n if (e.value) e.closest(\".label-inside\").classList.add(\"filled\");\r\n e.removeEventListener(\"focusin\", () =>\r\n e.closest(\".label-inside\").classList.add(\"focus\", \"filled\")\r\n );\r\n e.removeEventListener(\"focusout\", () => {\r\n if (!e.value) e.closest(\".label-inside\").classList.remove(\"filled\");\r\n e.closest(\".label-inside\").classList.remove(\"focus\");\r\n });\r\n });\r\n\r\n global.removeEventListener(\r\n \"awesomplete-selectcomplete\",\r\n this.setExamFn\r\n );\r\n }\r\n\r\n checkStateFilters() {\r\n if (this.state.filters[\"EventStage\"]) {\r\n if (this.state.filters[\"EventStage\"].indexOf(\"RECEBIDO\") != -1) {\r\n document.getElementById(\"situacaoRecebidos\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].indexOf(\"EM PROCESSAMENTO\") != -1) {\r\n document.getElementById(\"situacaoProcessando\").checked = true;\r\n }\r\n if (\r\n this.state.filters[\"EventStage\"].indexOf(\"EM ANÁLISE TÉCNICA\") != -1\r\n ) {\r\n document.getElementById(\"situacaoConferência\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].indexOf(\"RECOLHIDO\") != -1) {\r\n document.getElementById(\"situacaoRecolhido\").checked = true;\r\n }\r\n if (\r\n this.state.filters[\"EventStage\"].indexOf(\"RESULTADO LIBERADO\") != -1\r\n ) {\r\n document.getElementById(\"situacaoConcluidos\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].indexOf(\"CADASTRADO\") != -1) {\r\n document.getElementById(\"situacaoCadastrado\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].indexOf(\"RECOLETA\") != -1) {\r\n document.getElementById(\"situacaoRecoleta\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].indexOf(\"PENDÊNCIA TÉCNICA\") != -1) {\r\n document.getElementById(\"situacaoPendente\").checked = true;\r\n }\r\n if (this.state.filters[\"EventStage\"].length === 8) {\r\n document.getElementById(\"situacaoTodos\").checked = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n }\r\n }\r\n }\r\n\r\n async loadExamsAutocomplete() {\r\n let input = document.getElementById(\"inputExame\");\r\n let examsType = await this.props.exams();\r\n\r\n this.setState({ examsType });\r\n\r\n new Awesomplete(input, {\r\n list: await this.props.exams(),\r\n filter: function (text, input) {\r\n return Awesomplete.FILTER_CONTAINS(text, input.match(/[^,]*$/)[0]);\r\n },\r\n item: function (text, input) {\r\n return Awesomplete.ITEM(text, input.match(/[^,]*$/)[0]);\r\n },\r\n replace: function (text) {\r\n var before = this.input.value.match(/^.+,\\s*|/)[0];\r\n this.input.value = before + text + \",\";\r\n },\r\n });\r\n }\r\n\r\n setPatient(value) {\r\n this.state.filters[\"PatientName\"] = value;\r\n let bool = false;\r\n if (value !== \"\" && value != null) {\r\n this.state.hasFilter = true;\r\n document.getElementById(\"inputPedido\").disabled = true;\r\n } else {\r\n document.getElementById(\"inputPedido\").disabled = false;\r\n delete this.state.filters[\"PatientName\"];\r\n searchIndex.filter((f) => {\r\n if (\r\n this.state.filters[f] !== null ||\r\n (this.state.filters[f] === [] && f.length > 0)\r\n ) {\r\n bool = true;\r\n }\r\n });\r\n this.state.hasFilter = bool;\r\n }\r\n this.setState(this.state);\r\n }\r\n setOrder(value) {\r\n this.state.filters[\"OrderId\"] = value;\r\n\r\n let patientInput = document.getElementById(\"inputPaciente\");\r\n let bool = false;\r\n if (value !== \"\" && value != null) {\r\n this.state.hasFilter = true;\r\n if(patientInput){\r\n patientInput.disabled = true;\r\n }\r\n } else {\r\n if(patientInput){\r\n patientInput.disabled = false;\r\n }\r\n delete this.state.filters[\"OrderId\"];\r\n searchIndex.filter((f) => {\r\n if (\r\n this.state.filters[f] !== null ||\r\n (this.state.filters[f] === [] && f.length > 0)\r\n ) {\r\n bool = true;\r\n }\r\n });\r\n this.state.hasFilter = bool;\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n setDateBegin() {\r\n let value = document.getElementById(\"inputDateStart\").value;\r\n let bool = false;\r\n if (value !== \"\" && value != null) {\r\n let dateEnd = this.state.filters[\"EstimatedResultDate\"]?.end ? this.state.filters[\"EstimatedResultDate\"][\"end\"] : null\r\n this.state.filters[\"EstimatedResultDate\"] = {begin: value, end: dateEnd};\r\n if(dateEnd) this.state.hasFilter = true;\r\n } else {\r\n delete this.state.filters[\"EstimatedResultDate\"]['begin'];\r\n searchIndex.filter((f) => {\r\n if (\r\n this.state.filters[f] !== null ||\r\n (this.state.filters[f] === [] && f.length > 0)\r\n ) {\r\n bool = true;\r\n }\r\n });\r\n this.state.hasFilter = bool;\r\n }\r\n this.setState(this.state);\r\n }\r\n setDateEnd() {\r\n let value = document.getElementById(\"inputDateEnd\").value;\r\n let bool = false;\r\n if (value !== \"\" && value != null) {\r\n let dateBegin = this.state.filters[\"EstimatedResultDate\"]?.begin ? this.state.filters[\"EstimatedResultDate\"][\"begin\"] : null\r\n this.state.filters[\"EstimatedResultDate\"] = {begin: dateBegin, end: value};\r\n if(dateBegin) this.state.hasFilter = true;\r\n } else {\r\n delete this.state.filters[\"EstimatedResultDate\"]['end'];\r\n searchIndex.filter((f) => {\r\n if (\r\n this.state.filters[f] !== null ||\r\n (this.state.filters[f] === [] && f.length > 0)\r\n ) {\r\n bool = true;\r\n }\r\n });\r\n this.state.hasFilter = bool;\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n setPriority() {\r\n if (document.getElementById(\"prioridadeUrgentes\").checked === true) {\r\n this.state.hasFilter = true;\r\n this.state.filters[\"Urgency\"] = \"Urgencias\";\r\n } else {\r\n delete this.state.filters[\"Urgency\"];\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n\r\n this.setState(this.state);\r\n }\r\n\r\n setSituation(id) {\r\n if (id === 0) {\r\n if (document.getElementById(\"situacaoTodos\").checked === true) {\r\n this.state.filters[\"EventStage\"] = [\r\n \"RECEBIDO\",\r\n \"CADASTRADO\",\r\n \"EM PROCESSAMENTO\",\r\n \"EM ANÁLISE TÉCNICA\",\r\n \"RESULTADO LIBERADO\",\r\n \"RECOLHIDO\",\r\n \"RECOLETA\",\r\n \"PENDÊNCIA TÉCNICA\"\r\n ];\r\n\r\n document.getElementById(\"situacaoRecebidos\").checked = true;\r\n document.getElementById(\"situacaoProcessando\").checked = true;\r\n document.getElementById(\"situacaoConferência\").checked = true;\r\n document.getElementById(\"situacaoRecolhido\").checked = true;\r\n document.getElementById(\"situacaoConcluidos\").checked = true;\r\n document.getElementById(\"situacaoCadastrado\").checked = true;\r\n document.getElementById(\"situacaoPendente\").checked = true;\r\n document.getElementById(\"situacaoRecoleta\").checked = true;\r\n this.state.hasFilter = true;\r\n } else {\r\n this.state.filters[\"EventStage\"] = [];\r\n document.getElementById(\"situacaoRecebidos\").checked = false;\r\n document.getElementById(\"situacaoProcessando\").checked = false;\r\n document.getElementById(\"situacaoConferência\").checked = false;\r\n document.getElementById(\"situacaoRecolhido\").checked = false;\r\n document.getElementById(\"situacaoConcluidos\").checked = false;\r\n document.getElementById(\"situacaoCadastrado\").checked = false;\r\n document.getElementById(\"situacaoPendente\").checked = false;\r\n document.getElementById(\"situacaoRecoleta\").checked = false;\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 1) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoRecebidos\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"RECEBIDO\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index = this.state.filters[\"EventStage\"].indexOf(\"RECEBIDO\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 2) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoProcessando\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"EM PROCESSAMENTO\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index =\r\n this.state.filters[\"EventStage\"].indexOf(\"EM PROCESSAMENTO\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 3) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoConferência\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"EM ANÁLISE TÉCNICA\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index =\r\n this.state.filters[\"EventStage\"].indexOf(\"EM ANÁLISE TÉCNICA\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 4) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoConcluidos\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"RESULTADO LIBERADO\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index =\r\n this.state.filters[\"EventStage\"].indexOf(\"RESULTADO LIBERADO\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 5) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoRecolhido\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"RECOLHIDO\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index = this.state.filters[\"EventStage\"].indexOf(\"RECOLHIDO\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 6) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoCadastrado\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"CADASTRADO\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index = this.state.filters[\"EventStage\"].indexOf(\"CADASTRADO\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n } else if (id === 7){\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoPendente\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"PENDÊNCIA TÉCNICA\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index = this.state.filters[\"EventStage\"].indexOf(\"PENDÊNCIA TÉCNICA\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n }else if (id === 8){\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n if (document.getElementById(\"situacaoRecoleta\").checked === true) {\r\n this.state.filters[\"EventStage\"].push(\"RECOLETA\");\r\n this.state.hasFilter = true;\r\n } else {\r\n document.getElementById(\"situacaoTodos\").checked = false;\r\n let index = this.state.filters[\"EventStage\"].indexOf(\"RECOLETA\");\r\n this.state.filters[\"EventStage\"].splice(index, 1);\r\n if (this.state.filters[\"EventStage\"].length === 0) {\r\n delete this.state.filters[\"EventStage\"];\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n }\r\n }\r\n this.setState(this.state);\r\n }\r\n\r\n setExam(value) {\r\n let valueByTyping = value && !value.text && value;\r\n let valueBySelecting = value && value.text && value.text.value;\r\n\r\n if ((valueByTyping || valueByTyping === \"\") && valueByTyping !== null) {\r\n if (valueByTyping === \"\") {\r\n delete this.state.filters.Exam;\r\n this.setState(this.state);\r\n this.setState({ examString: value });\r\n } else if (valueByTyping && valueByTyping.includes(\",\")) {\r\n let clearedFilters = this.clearNonValidExamsFilter(valueByTyping);\r\n this.resetExamFilter(clearedFilters || \"\");\r\n } else {\r\n this.setState({ examString: value });\r\n }\r\n }\r\n\r\n if (valueBySelecting) {\r\n this.setExamOption(value.text.value);\r\n }\r\n this.setState({ hasFilter: this.checkFilters() });\r\n }\r\n\r\n setExamOption(examOption) {\r\n let isExamOptionSet = this.checkIfExamOptionIsSet(examOption);\r\n let isExamFilterOnLimit =\r\n this.state.filters &&\r\n this.state.filters.Exam && \r\n this.state.filters.Exam.length === 5;\r\n if (isExamFilterOnLimit) {\r\n this.showDialogErrorMessage(\r\n \"Filtro não permitido\",\r\n \"Apenas 5 tipos de exames são permitidos por consulta.\"\r\n );\r\n this.resetExamFilter();\r\n } else if (!isExamOptionSet) {\r\n if (this.state.filters.Exam && this.state.filters.Exam.length !== null) {\r\n this.state.filters.Exam.push(examOption);\r\n this.setState(this.state);\r\n } else {\r\n this.state.filters.Exam = [];\r\n this.state.filters.Exam.push(examOption);\r\n this.setState(this.state);\r\n }\r\n this.resetExamFilter();\r\n } else {\r\n this.resetExamFilter();\r\n }\r\n }\r\n\r\n resetExamFilter(value) {\r\n let examFilterHtmlElement = document.getElementById(\"inputExame\");\r\n\r\n if (examFilterHtmlElement) {\r\n value =\r\n value ||\r\n (this.state.filters.Exam && this.state.filters.Exam.length !== 0\r\n ? this.state.filters.Exam.join(\",\") + \",\"\r\n : \"\");\r\n }\r\n this.setState({ examString: value });\r\n examFilterHtmlElement.value = value;\r\n if(value){\r\n examFilterHtmlElement &&\r\n examFilterHtmlElement.parentElement && \r\n examFilterHtmlElement.parentElement.classList.add('filled')\r\n }\r\n }\r\n\r\n resetLocalFilters() {}\r\n\r\n checkIfExamOptionIsSet(examOption) {\r\n if (\r\n this.state.filters.Exam &&\r\n this.state.filters.Exam.length &&\r\n this.state.filters.Exam.length > 0\r\n ) {\r\n if (this.state.filters.Exam.contains(examOption)) {\r\n return true;\r\n }\r\n return false;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n clearNonValidExamsFilter(examFilters) {\r\n if (examFilters && examFilters.split) {\r\n let splittedExamFilters = examFilters.split(\",\");\r\n let clearExamFilter = [];\r\n let userIncompleteTyping = null;\r\n\r\n for (let splittedExamFilter of splittedExamFilters) {\r\n if (\r\n this.state.examsType &&\r\n this.state.examsType.contains &&\r\n this.state.examsType.contains(splittedExamFilter)\r\n ) {\r\n clearExamFilter.push(splittedExamFilter);\r\n }\r\n }\r\n\r\n clearExamFilter.length === 0\r\n ? delete this.state.filters.Exam\r\n : (this.state.filters.Exam = clearExamFilter);\r\n this.setState(this.state);\r\n\r\n if (splittedExamFilters && splittedExamFilters.length > 0) {\r\n userIncompleteTyping = !this.state.examsType.contains(\r\n splittedExamFilters[splittedExamFilters.length - 1]\r\n )\r\n ? splittedExamFilters[splittedExamFilters.length - 1]\r\n : \"\";\r\n }\r\n\r\n return clearExamFilter.length === 0\r\n ? \"\"\r\n : clearExamFilter.join() + \",\" + userIncompleteTyping.trim();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n mountDateFilter(){\r\n if(this.state.filters['EstimatedResultDate']?.begin && this.state.filters['EstimatedResultDate']?.end){\r\n return `De ${this.state.filters['EstimatedResultDate']['begin']} Até ${this.state.filters['EstimatedResultDate']['end']}`;\r\n }\r\n return false;\r\n }\r\n\r\n mapFilters(array) {\r\n const FILTERS_COMPLETE = {\r\n OrderId: \"Pedido: \",\r\n ProductionUnitName: \"Unidade: \",\r\n PatientName: \"Paciente: \"\r\n };\r\n const URGENCY = {\r\n Urgency: \"Urgentes\",\r\n };\r\n let filters = [];\r\n array.forEach((element) => {\r\n if (this.state.filters[element] != null) {\r\n if (this.state.filters[element] instanceof Array) {\r\n this.state.filters[element].forEach((value) => {\r\n filters.push(\r\n
\r\n {STAGE_SHORT[value] || value}\r\n {\r\n this.clearFilter(element, value);\r\n }}\r\n >\r\n x\r\n
\r\n \r\n );\r\n });\r\n } else if(element !== 'EstimatedResultDate'){\r\n filters.push(\r\n
\r\n {\r\n this.state.filters[element] && FILTERS_COMPLETE[element] &&\r\n PRODUCTION_UNIT_ALIAS[this.state.filters[element]] ?\r\n FILTERS_COMPLETE[element] + PRODUCTION_UNIT_ALIAS[this.state.filters[element]] : \r\n FILTERS_COMPLETE[element]\r\n ? FILTERS_COMPLETE[element] + this.state.filters[element]\r\n : URGENCY[element] || this.state.filters[element]\r\n }\r\n {\r\n this.clearFilter(element);\r\n }}\r\n >\r\n x\r\n
\r\n \r\n );\r\n }else{\r\n let labelDataFilter = this.mountDateFilter();\r\n if(labelDataFilter){\r\n filters.push(\r\n
\r\n {labelDataFilter}\r\n
this.clearFilter(element)}\r\n >x
\r\n
\r\n )\r\n }\r\n }\r\n }\r\n });\r\n return filters;\r\n }\r\n\r\n clearFilter(element, value = null) {\r\n const STATUS_ID = {\r\n CADASTRADO: \"situacaoCadastrado\",\r\n \"EM ANÁLISE TÉCNICA\": \"situacaoConferência\",\r\n \"EM PROCESSAMENTO\": \"situacaoProcessando\",\r\n RECEBIDO: \"situacaoRecebidos\",\r\n RECOLHIDO: \"situacaoRecolhido\",\r\n \"RESULTADO LIBERADO\": \"situacaoConcluidos\",\r\n \"PENDÊNCIA TÉCNICA\": \"situacaoPendente\",\r\n \"RECOLETA\": 'situacaoRecoleta'\r\n };\r\n\r\n if (value) {\r\n let array = this.state.filters[element];\r\n let index = array.indexOf(value);\r\n array.splice(index, 1);\r\n if (array.length === 0) {\r\n delete this.state.filters[element];\r\n } else {\r\n this.state.filters[element] = array;\r\n }\r\n if (element === \"EventStage\") {\r\n document.getElementById(STATUS_ID[value]).checked = false;\r\n }\r\n } else {\r\n let filters = this.state.filters;\r\n delete filters[element];\r\n this.clearField(element);\r\n this.state.filters = filters;\r\n }\r\n this.state.hasFilter = this.checkFilters();\r\n this.setState(this.state);\r\n this.resetExamFilter();\r\n }\r\n\r\n checkFilters() {\r\n let hasFilter = false;\r\n if (this.state.filters) {\r\n for (let c = 0; c < searchIndex.length; c++) {\r\n hasFilter =\r\n (this.state.filters[searchIndex[c]] != null &&\r\n !(this.state.filters[searchIndex[c]] instanceof Array)) ||\r\n (this.state.filters[searchIndex[c]] instanceof Array &&\r\n this.state.filters[searchIndex[c]].length > 0);\r\n if (hasFilter) {\r\n c = searchIndex.length;\r\n }\r\n }\r\n }\r\n return hasFilter;\r\n }\r\n\r\n showDialogErrorMessage(title, errorMessage) {\r\n if (title && errorMessage) {\r\n let dialog = {\r\n type: \"Error\",\r\n title: title,\r\n message: errorMessage,\r\n show: true,\r\n confirmation: () => {\r\n sendEvent(\"show-dialog\", { show: false });\r\n },\r\n };\r\n sendEvent(\"show-dialog\", dialog);\r\n }\r\n }\r\n clearField(field) {\r\n const FIELDS = {\r\n PatientName: \"inputPaciente\",\r\n OrderId: \"inputPedido\",\r\n Exam: \"inputExame\",\r\n };\r\n\r\n if (field === \"Urgency\") {\r\n document.getElementById(\"prioridadeUrgentes\").checked = false;\r\n } else if (!field.includes(\"Date\")) {\r\n document.getElementById(FIELDS[field]).value = null;\r\n } else if (field === \"EstimatedResultDateBegin\") {\r\n const fp = document.querySelector(\"#inputDateStart\")._flatpickr;\r\n fp.clear();\r\n document\r\n .querySelector(\"#inputDateStart\")\r\n .closest(\".label-inside\")\r\n .classList.remove(\"filled\");\r\n document\r\n .querySelector(\"#inputDateStart\")\r\n .closest(\".label-inside\")\r\n .classList.remove(\"focus\");\r\n } else if (field === \"EstimatedResultDateEnd\") {\r\n const fp = document.querySelector(\"#inputDateEnd\")._flatpickr;\r\n fp.clear();\r\n document\r\n .querySelector(\"#inputDateEnd\")\r\n .closest(\".label-inside\")\r\n .classList.remove(\"filled\");\r\n document\r\n .querySelector(\"#inputDateEnd\")\r\n .closest(\".label-inside\")\r\n .classList.remove(\"focus\");\r\n }\r\n }\r\n\r\n verifyFilters() {\r\n if (\r\n this.state.filters[\"EstimatedResultDate\"] &&\r\n this.state.filters[\"EstimatedResultDate\"]?.begin &&\r\n this.state.filters[\"EstimatedResultDate\"]?.end\r\n ) {\r\n if (\r\n moment(\r\n moment(\r\n this.state.filters[\"EstimatedResultDate\"]?.end,\r\n \"DD/MM/YY\"\r\n ).format(\"YYYY-MM-DD\")\r\n ).isSameOrAfter(\r\n moment(\r\n moment(\r\n this.state.filters[\"EstimatedResultDate\"]?.begin,\r\n \"DD/MM/YY\"\r\n ).format(\"YYYY-MM-DD\")\r\n )\r\n )\r\n ) {\r\n this.props.submit(this.state.filters, this.state.hasFilter);\r\n } else {\r\n this.showDialogErrorMessage(\r\n \"Erro na Filtragem\",\r\n \"A data de início não pode ser maior que a data de fim\"\r\n );\r\n }\r\n } else if (\r\n this.state.filters[\"EstimatedResultDate\"]?.begin ||\r\n this.state.filters[\"EstimatedResultDate\"]?.end\r\n ) {\r\n this.showDialogErrorMessage(\r\n \"Erro na Filtragem\",\r\n \"Ambas as datas devem ser preenchidas\"\r\n );\r\n } else {\r\n this.props.submit(this.state.filters, this.state.hasFilter);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {\r\n this.props.close();\r\n }}\r\n >\r\n x\r\n \r\n
\r\n {userService.getUserType() !== \"PSC\" ? (\r\n \r\n \r\n Paciente\r\n \r\n {\r\n this.setPatient(e.currentTarget.value);\r\n }}\r\n />\r\n
\r\n ) : null}\r\n
\r\n \r\n Pedido\r\n \r\n {\r\n this.setOrder(e.currentTarget.value);\r\n }}\r\n />\r\n
\r\n
\r\n \r\n {\r\n this.setExam(e.currentTarget.value);\r\n }}\r\n />\r\n
\r\n \r\n
\r\n

Previsão de resultado

\r\n
\r\n
\r\n
\r\n \r\n De\r\n \r\n {\r\n this.setDateBegin(value);\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n Até\r\n \r\n {\r\n this.setDateEnd(value);\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Prioridades

\r\n
\r\n
\r\n
\r\n {\r\n this.setPriority(1);\r\n }}\r\n />\r\n \r\n Urgentes\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Situação

\r\n
\r\n {\r\n this.setSituation(0);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(6);\r\n }}\r\n />\r\n \r\n Cadastrado\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(1);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(5);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(2);\r\n }}\r\n />\r\n \r\n Em Processamento\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(3);\r\n }}\r\n />\r\n \r\n Análise Técnica\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(4);\r\n }}\r\n />\r\n \r\n Liberado\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(7);\r\n }}\r\n />\r\n \r\n Pendente\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setSituation(8);\r\n }}\r\n />\r\n \r\n Recoleta\r\n \r\n
\r\n
\r\n
\r\n
\r\n {this.state.hasFilter ? (\r\n
{this.mapFilters(searchIndex)}
\r\n ) : null}\r\n\r\n {\r\n this.resetExamFilter();\r\n this.verifyFilters();\r\n }}\r\n >\r\n Buscar\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Filters;\r\n","import React, { Component } from \"react\";\r\nimport examsService from \"../../services/ExamsService\";\r\nimport LoadDNA from \"../LoadDNA\";\r\nimport {\r\n FETCH_INTERVAL,\r\n STAGE_COLOR_CODE,\r\n STAGE_ICONS,\r\n STAGE_SHORT,\r\n} from \"../../constants\";\r\nimport { sendEvent } from \"../../util/utils\";\r\nimport moment from \"moment\";\r\nimport UserService from \"../../services/UserService\";\r\n\r\nclass History extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n examHistory: {},\r\n loading: true,\r\n exam: null,\r\n hasPendencies: false,\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n this.setState({ loading: true });\r\n await this.startGettingHistoryData(this.props.exam);\r\n this.setState({ loading: false });\r\n sendEvent(\"reset-map-zoom\");\r\n }\r\n\r\n componentWillUnmount() {\r\n this.stopGettingData();\r\n }\r\n\r\n stopGettingData() {\r\n examsService.stopGettingDataFrom(\"getHistory\");\r\n }\r\n\r\n async startGettingHistoryData(exam) {\r\n examsService.stopGettingDataFrom(\"getHistory\");\r\n this.setState({\r\n exam: exam,\r\n });\r\n\r\n await examsService.startGettingDataFrom(\r\n \"getHistory\",\r\n exam,\r\n this.updateExamHistory.bind(this),\r\n FETCH_INTERVAL\r\n );\r\n }\r\n\r\n updateExamHistory(examHistory) {\r\n this.setState({\r\n examHistory: examHistory,\r\n });\r\n examHistory && examHistory.map(phase =>{\r\n if((phase.pendency && phase.pendency.length > 0) ||\r\n (phase.sampleRecall && phase.sampleRecall.length > 0)\r\n ){\r\n this.setState({hasPendencies: true});\r\n }\r\n })\r\n sendEvent(\"draw-history\", {\r\n examHistory: examHistory,\r\n productionUnit: this.state.exam?.productionUnit,\r\n examName: `${this.state.exam?.mnMat}|${this.state.exam?.mnExa}`,\r\n });\r\n }\r\n\r\n async getExamResult(exam) {\r\n let year = exam && exam.orderDate.split(\"-\");\r\n year = year && year.length > 0 && year[0];\r\n\r\n if (\r\n exam &&\r\n exam.orderId &&\r\n exam.examId &&\r\n year &&\r\n exam.patientName &&\r\n exam.examDescription\r\n ) {\r\n let result = await examsService.getResult(\r\n exam.orderId,\r\n exam.examId,\r\n year\r\n );\r\n\r\n if (result) {\r\n const url = window.URL.createObjectURL(new Blob([result]));\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = `${exam.patientName} - ${exam.examDescription}.pdf`;\r\n\r\n downloadLink.href = url;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n }\r\n }\r\n }\r\n\r\n openAccordion(stageName){\r\n let element = document.getElementById(stageName);\r\n if(element){\r\n element.classList.toggle('active');\r\n let panel = element && element.nextElementSibling;\r\n \r\n if(panel && panel.style){\r\n if (panel.style.display === 'none' || !panel.style.display) {\r\n panel.style.display = 'block';\r\n } else {\r\n panel.style.display = 'none';\r\n }\r\n }\r\n }\r\n }\r\n\r\n renderDialogBody(data,stageName){\r\n if(data){\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Data/Hora\r\n
\r\n
\r\n {moment(data.dateHourAction).format(\"DD/MM/YYYY HH:mm\") || '-'}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Situação\r\n
\r\n
\r\n {STAGE_SHORT[stageName.toUpperCase()]}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Requerido\r\n
\r\n
\r\n {data.userAction || '-'}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Descrição\r\n
\r\n
\r\n {data.descriptionAction || '-'}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Detalhes\r\n
\r\n
\r\n {data.fullDetail || '-'}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Observações\r\n
\r\n
\r\n {data.note || '-'}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n render() {\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n this.props.backListExam()}\r\n >\r\n Voltar\r\n
\r\n
\r\n \r\n {this.state.loading ? (\r\n \r\n ) : (\r\n
\r\n
\r\n
\r\n \r\n {this.props.exam.examDescription}\r\n
\r\n {this.props.exam.urgency && !this.props.exam.urgency !== \"\" ? (\r\n
Urgente
\r\n ) : null}\r\n {this.props.exam.sampleStored.toUpperCase()==\"SIM\" ? (\r\n
Armazenado
\r\n ):(\r\n <>\r\n {this.props.exam.discardedSample !== \"\" && (\r\n
Descartado
\r\n )}\r\n \r\n )}\r\n {this.props.exam.eventStage === \"Resultado Liberado\" && (\r\n {\r\n e.stopPropagation();\r\n this.getExamResult(this.props.exam);\r\n }}\r\n >\r\n Download\r\n
\r\n )}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Pedido
\r\n \r\n {`${this.props.exam.orderId} (${this.props.exam.orderAlphaNumeric})`}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Paciente
\r\n
\r\n {this.props.exam.patientName}\r\n
\r\n
\r\n \r\n \r\n
\r\n {UserService.getUserType() !== \"PSC\" ? (\r\n
\r\n
\r\n
Unidade
\r\n
\r\n {this.props.exam.aliasProdUnit}\r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
Previsão
\r\n
\r\n {this.props.exam.estimatedResultDate\r\n ? moment(this.props.exam.estimatedResultDate).format(\r\n \"DD/MM/YY HH:mm\"\r\n )\r\n : \"Pendente\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Situação
\r\n \r\n {STAGE_SHORT[this.props.exam.eventStage.toUpperCase()]}\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n {this.state.examHistory &&\r\n this.state.examHistory.map((phase, index) => {\r\n let pendencies = phase.pendency || phase.sampleRecall || null;\r\n return <>\r\n 0) ?\r\n `accordion exam-info-step exam-info-step-status-${\r\n STAGE_ICONS[phase.stageName.toUpperCase()]}`:\r\n `exam-info-step exam-info-step-status-${\r\n STAGE_ICONS[phase.stageName.toUpperCase()]}`\r\n }\r\n onClick={pendencies ? ()=> this.openAccordion(phase.stageName): ()=>{}}\r\n id={phase.stageName}\r\n >\r\n
\r\n
\r\n \r\n {(index+1)+\" - \"+STAGE_SHORT[phase.stageName.toUpperCase()]}\r\n \r\n
\r\n
\r\n {!phase.dateHour ? (\r\n \r\n Pendente\r\n \r\n ) : (\r\n \r\n {moment(phase.dateHour).format(\"DD/MM/YYYY HH:mm\")}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {pendencies ? \r\n
\r\n
    \r\n {pendencies.map((pendency)=>(\r\n
    \r\n
    \r\n
    \r\n \r\n {pendency.reason}\r\n \r\n
    \r\n
    \r\n \r\n {moment(pendency.dateHourAction).format(\"DD/MM/YYYY HH:mm\")}\r\n \r\n
    \r\n
    \r\n sendEvent('show-dialog', {\r\n title: pendency.reason,\r\n child: this.renderDialogBody(pendency, phase.stageName), \r\n show: true,\r\n confirmation: () => {\r\n sendEvent(\"show-dialog\", { show: false });\r\n },\r\n })}\r\n >\r\n \r\n
    \r\n ))}\r\n
\r\n
\r\n :null\r\n }\r\n \r\n })}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default History;\r\n","import {Component} from \"react\";\r\nimport Chart from 'chart.js';\r\nimport 'chartjs-plugin-labels';\r\n\r\nclass Graph extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { \r\n array: this.props.graphData,\r\n chart: null,\r\n }\r\n this.config = {\r\n type: 'doughnut',\r\n data: {\r\n datasets: [{\r\n data: this.state.array[1],\r\n backgroundColor: this.state.array[2],\r\n }],\r\n labels: this.state.array[0]\r\n },\r\n options: {\r\n legend: { display: false },\r\n responsive: true,\r\n plugins: {\r\n \r\n labels:{\r\n render: 'percentage',\r\n precision: 0,\r\n overlap: false,\r\n fontSize: 13,\r\n fontStyle: 600,\r\n fontColor: '#fff',\r\n fontFamily: 'Titillium Web'\r\n },\r\n },\r\n tooltips: {\r\n backgroundColor: 'rgba(84, 87, 114,.95)',\r\n bodyFontFamily: 'Titillium Web',\r\n bodyFontColor: '#fff',\r\n bodyFontSize: 14,\r\n bodyFontStyle: 400,\r\n xPadding: 12,\r\n yPadding: 12,\r\n displayColors: false,\r\n cornerRadius: 6,\r\n caretSize: 6\r\n },\r\n cutoutPercentage: 50,\r\n elements: {\r\n arc: {\r\n borderWidth: 0\r\n }\r\n },\r\n }\r\n };\r\n }\r\n\r\n componentDidMount(){\r\n let chart = new Chart(document.getElementById('myChart').getContext('2d'), this.config);\r\n this.setState({chart: chart});\r\n }\r\n\r\n render() { \r\n \r\n return ( \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n \r\nexport default Graph;","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\nimport Graph from \"./Graph\";\r\nimport {STAGE_SHORT, STAGE_COLOR_CODE, STAGE_ICONS } from \"../../constants\";\r\nimport { sendEvent } from \"../../util/utils\";\r\n\r\nclass Status extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hasGraph: true,\r\n };\r\n }\r\n \r\n processName(name) {\r\n if (name.length > 17) {\r\n return name.substring(0, 16) + \"...\";\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n mapObject() {\r\n const examStyle = {\r\n backgroundImage: \"none\",\r\n };\r\n\r\n const examTextStyle = {\r\n margin: \"0 0 0 0\",\r\n };\r\n\r\n let array = [],\r\n arrayLeft = [],\r\n arrayRight = [];\r\n\r\n let counter = 0;\r\n\r\n if (this.state.hasGraph && this.props.status) {\r\n Object.keys(this.props.status).forEach((index) => {\r\n if (STAGE_SHORT[index]) {\r\n if (counter % 2 == 0) {\r\n arrayLeft.push(\r\n {\r\n this.props.filterBy(e.currentTarget.value)\r\n }\r\n }\r\n onMouseOver={()=> sendEvent(\"highlight-stage\",index)}\r\n onMouseOut={()=> sendEvent(\"reset-markers\",index)}\r\n style={\r\n (examStyle,\r\n examTextStyle,\r\n { backgroundColor: STAGE_COLOR_CODE[index] || STAGE_COLOR_CODE['Default'], border: 'none' })\r\n }\r\n >\r\n {this.processName(STAGE_SHORT[index] || \"\")}\r\n {this.props && this.props.status && this.props.status[index]}\r\n \r\n );\r\n } else {\r\n arrayRight.push(\r\n {\r\n this.props.filterBy(e.currentTarget.value)\r\n }\r\n }\r\n onMouseOver={()=> sendEvent(\"highlight-stage\",index)}\r\n onMouseOut={()=> sendEvent(\"reset-markers\",index)}\r\n style={\r\n (examStyle,\r\n examTextStyle,\r\n { backgroundColor: STAGE_COLOR_CODE[index] || STAGE_COLOR_CODE['Default'], border: 'none' })\r\n }\r\n >\r\n {this.processName(STAGE_SHORT[index] || \"\")}\r\n {this.props.status[index]}\r\n \r\n );\r\n }\r\n\r\n counter++;\r\n }\r\n });\r\n array.push(arrayLeft);\r\n array.push(arrayRight);\r\n } else if (this.props.status) {\r\n Object.keys(this.props.status).forEach((index) => {\r\n if (index !== \"TOTAL\") {\r\n array.push(\r\n
\r\n {\r\n this.props.filterBy(e.currentTarget.value)\r\n }\r\n }\r\n onMouseOver={()=> sendEvent(\"highlight-stage\",index)}\r\n onMouseOut={()=> sendEvent(\"reset-markers\",index)}\r\n style={\r\n (examStyle, { backgroundColor: STAGE_COLOR_CODE[index] || STAGE_COLOR_CODE['Default'], border: 'none' })\r\n }\r\n >\r\n
\r\n

\r\n {this.processName(STAGE_SHORT[index] || \"\")}\r\n

\r\n \r\n {this.props.status[index]}\r\n \r\n \r\n
\r\n );\r\n counter++;\r\n }\r\n });\r\n }\r\n return array;\r\n }\r\n\r\n createDataArray() {\r\n let response = [],\r\n values = [],\r\n colors = [],\r\n label = [];\r\n\r\n let statusArray = []\r\n Object.keys(this.props.status).forEach((index) => {\r\n if(index !== 'TOTAL'){\r\n statusArray.push([index, this.props.status[index]])\r\n }\r\n });\r\n \r\n statusArray = statusArray.sort((a,b)=> {\r\n if(a[1]b[1]){\r\n return 1\r\n }\r\n return 0;\r\n })\r\n\r\n statusArray.forEach((element) => {\r\n label.push(STAGE_SHORT[element[0]])\r\n values.push(element[1])\r\n colors.push(STAGE_COLOR_CODE[element[0]]);\r\n });\r\n\r\n response.push(label);\r\n response.push(values);\r\n response.push(colors);\r\n return response;\r\n }\r\n\r\n render() {\r\n let graphData = [];\r\n let arrayLeft = [],\r\n arrayRight = [];\r\n\r\n if (this.state.hasGraph) {\r\n graphData = this.createDataArray();\r\n let columns = this.mapObject();\r\n arrayLeft = columns[0];\r\n arrayRight = columns[1];\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {this.state.hasGraph ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n {arrayLeft}\r\n
\r\n
\r\n {arrayRight}\r\n
\r\n \r\n ) : (\r\n this.mapObject()\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Status);\r\n","class UserAuth {\r\n\r\n constructor(userId, userType, userName, authkeyType, token, tokenExpirationDate, clientName, clientId) {\r\n this.userId = userId;\r\n this.userType = userType;\r\n this.userName = userName;\r\n this.authkeyType = authkeyType;\r\n this.token = token;\r\n this.tokenExpirationDate = tokenExpirationDate;\r\n this.clientName = clientName;\r\n this.clientId = clientId;\r\n }\r\n}\r\n\r\nexport default UserAuth;","import { parseDate } from \"../util/utils\";\r\nimport UserAuth from \"./../models/UserAuth\";\r\nimport { apiRequest } from \"./APIService\";\r\nimport examsService from \"./ExamsService\";\r\n\r\nconst USER_TYPES = [\"L2L\", \"HOSP\", \"PSC\"];\r\n\r\nclass AuthenticationService {\r\n constructor() {\r\n this.userAuth = null;\r\n \r\n }\r\n\r\n async login(userId, password, userType) {\r\n try {\r\n if (userId != null && password != null && userType != null) {\r\n if (USER_TYPES.indexOf(userType) <= -1) {\r\n console.error(\r\n `Wrong user type: ${userType}, valid types: ${USER_TYPES}`\r\n );\r\n\r\n return {\r\n status: false,\r\n };\r\n } else {\r\n let userLoginRequest = {\r\n userId: userId,\r\n password: password,\r\n userType: userType,\r\n };\r\n\r\n let userAuth = await apiRequest(\"POST\", \"/Autenticar\", userLoginRequest);\r\n\r\n if (userAuth) {\r\n this.userAuth = userAuth;\r\n }\r\n\r\n if (\r\n userAuth &&\r\n userAuth.relatedClients &&\r\n userAuth.relatedClients.length &&\r\n userAuth.relatedClients.length == 1\r\n ) {\r\n let clientAuth = await this.requestClientToken(\r\n userAuth.relatedClients[0].code\r\n );\r\n\r\n if (clientAuth) {\r\n userAuth = clientAuth;\r\n } else {\r\n return {\r\n status: false,\r\n };\r\n }\r\n }\r\n\r\n if (\r\n userAuth &&\r\n userAuth.relatedClients &&\r\n userAuth.relatedClients.length &&\r\n userAuth.relatedClients.length > 1\r\n ) {\r\n return {\r\n status: true,\r\n relatedClients: userAuth.relatedClients,\r\n };\r\n }\r\n\r\n if (userAuth) {\r\n await this.setAuthorizationDataOnLocalStorage(userAuth);\r\n this.userAuth = null;\r\n return {\r\n status: true,\r\n relatedClients: null,\r\n };\r\n }\r\n\r\n return {\r\n status: false,\r\n };\r\n }\r\n } else {\r\n console.error(\r\n \"Missing or invalid required login parameter: user, password or type\"\r\n );\r\n return {\r\n status: false,\r\n };\r\n }\r\n } catch (error) {\r\n console.error(\"Authentication error:\", error.message);\r\n return {\r\n status: false,\r\n };\r\n }\r\n }\r\n\r\n async requestClientToken(clientId) {\r\n try {\r\n let userAuth = this.userAuth || this.retrieveUserDataFromLocalStorage();\r\n\r\n if (userAuth) {\r\n userAuth.clientId = clientId;\r\n userAuth.renew = 1;\r\n userAuth.contextRoot = \"\";\r\n userAuth.siglaUsuario = \"\";\r\n }\r\n\r\n let clientAuth = await apiRequest(\"POST\", \"/SelecionarCodigoLc\", userAuth);\r\n\r\n if (clientAuth) {\r\n userAuth.token = clientAuth.token;\r\n userAuth.tokenExpirationDate = clientAuth.tokenExpirationDate;\r\n userAuth.tokenExpirationInMinutes = clientAuth.tokenExpirationInMinutes;\r\n userAuth.clientId = clientAuth.clientId;\r\n userAuth.clientName = clientAuth.clientName;\r\n } else {\r\n this.userAuth = null;\r\n return this.userAuth;\r\n }\r\n\r\n return userAuth;\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to request client token: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n async logout() {\r\n try {\r\n let userAuth = this.retrieveUserDataFromLocalStorage();\r\n \r\n if (userAuth && userAuth.token) {\r\n examsService.stopGettingAllData();\r\n let logOut = await apiRequest(\"POST\", \"/InvalidarToken\", { token: userAuth.token });\r\n\r\n if(!logOut || logOut.status == 200 ){\r\n localStorage.removeItem(\"userAuth\");\r\n return true;\r\n } else {\r\n localStorage.removeItem(\"userAuth\");\r\n }\r\n }\r\n return null;\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to log user out: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n endSession(){\r\n localStorage.removeItem(\"userAuth\");\r\n }\r\n\r\n registerSession(session){\r\n try {\r\n let userAuth = this.retrieveUserDataFromLocalStorage();\r\n\r\n if (userAuth) {\r\n userAuth[`${session}Session`] = true;\r\n }\r\n\r\n localStorage.setItem(\"userAuth\", JSON.stringify(userAuth));\r\n\r\n return true;\r\n\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to register my pardini call: ${error.message}`\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n setUserAuthorizationDataOnRequest(request) {\r\n try {\r\n let userAuth = this.retrieveUserDataFromLocalStorage();\r\n\r\n if (!userAuth) {\r\n return null;\r\n }\r\n\r\n if (typeof request === \"object\") {\r\n request = { ...request, ...userAuth };\r\n\r\n return request;\r\n } else {\r\n return null;\r\n }\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to save authorization data: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n async setAuthorizationDataOnLocalStorage(authData) {\r\n new Promise((resolve, reject) => {\r\n if (authData) {\r\n let parsedDate = parseDate(authData.tokenExpirationDate);\r\n \r\n let userAuth = new UserAuth(\r\n authData.userId,\r\n authData.userType,\r\n authData.userName,\r\n authData.authkeyType,\r\n authData.token,\r\n parsedDate || Date.parse(authData.tokenExpirationDate)\r\n );\r\n\r\n if (authData.relatedClients) {\r\n userAuth.relatedClients = authData.relatedClients;\r\n userAuth.clientId = authData.clientId;\r\n userAuth.clientName = authData.clientName;\r\n }\r\n\r\n if (authData.myPardiniSession) {\r\n userAuth.myPardiniSession = authData.myPardiniSession;\r\n }\r\n \r\n localStorage.setItem(\"userAuth\", JSON.stringify(userAuth));\r\n\r\n const verifyLocalStorage = () => {\r\n setTimeout(() => {\r\n if (localStorage.getItem(\"userAuth\")) {\r\n return resolve();\r\n } else {\r\n verifyLocalStorage();\r\n }\r\n }, 100);\r\n };\r\n\r\n verifyLocalStorage();\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n async setUserClient(clientId, clientName) {\r\n try {\r\n let userAuth = this.userAuth || this.retrieveUserDataFromLocalStorage();\r\n let myPardiniSession = userAuth && userAuth.myPardiniSession;\r\n\r\n if (userAuth && clientId != null && clientName != null) {\r\n let clientAuth = await this.requestClientToken(clientId);\r\n\r\n if (clientAuth) {\r\n userAuth = clientAuth;\r\n\r\n if(myPardiniSession){\r\n userAuth.myPardiniSession = myPardiniSession;\r\n }\r\n\r\n await this.setAuthorizationDataOnLocalStorage(userAuth);\r\n\r\n this.userAuth = null;\r\n\r\n return {\r\n status: true,\r\n relatedClients: null,\r\n };\r\n } else {\r\n return {\r\n status: false,\r\n };\r\n }\r\n } else {\r\n return {\r\n status: false,\r\n };\r\n }\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to select user client: ${error.message}`\r\n );\r\n return {\r\n status: false,\r\n };\r\n }\r\n }\r\n\r\n checkIfUserAuthenticated() {\r\n try {\r\n let userAuth = localStorage.getItem(\"userAuth\");\r\n\r\n userAuth = userAuth ? JSON.parse(userAuth) : false;\r\n\r\n if (\r\n !(\r\n userAuth &&\r\n userAuth.tokenExpirationDate &&\r\n !this.checkIfTokenExpired(userAuth.tokenExpirationDate)\r\n )\r\n ) {\r\n return null;\r\n }\r\n return true;\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to check user authentication: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n retrieveUserDataFromLocalStorage() {\r\n try {\r\n let userAuth = localStorage.getItem(\"userAuth\");\r\n\r\n userAuth = userAuth ? JSON.parse(userAuth) : false;\r\n\r\n if (userAuth) {\r\n return userAuth;\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to retrieve user data: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n checkIfTokenExpired(expirationDate) {\r\n return !expirationDate || Date.now() >= expirationDate;\r\n }\r\n\r\n async checkIfTokenValidOnRemote(token) {\r\n try {\r\n if (token) {\r\n let userAuth = await apiRequest(\"POST\", \"/ConfirmarToken\", { token });\r\n\r\n if (userAuth) {\r\n await this.setAuthorizationDataOnLocalStorage(userAuth);\r\n return true;\r\n }\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error(\r\n `Error when trying to check token on remote: ${error.message}`\r\n );\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default new AuthenticationService();","import authenticationService from \"./AuthenticationService\";\r\nimport { apiRequest } from \"./APIService\";\r\nimport { isAlphanumericOrderId } from \"../util/utils\";\r\n\r\nclass ExamsService {\r\n constructor() {\r\n this.runningFunctionsReference = {};\r\n if (!ExamsService._instance) {\r\n ExamsService._instance = this;\r\n }\r\n return ExamsService._instance;\r\n }\r\n\r\n async getTypes() {\r\n try {\r\n let request = {};\r\n\r\n request =\r\n authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\"POST\", \"/ListarTipoExame\", request);\r\n\r\n if (response && response.exams) {\r\n let examsTypes = response.exams;\r\n\r\n return examsTypes.map(\r\n (item) => `${item.exam} : ${item.examDescription}`\r\n );\r\n } else {\r\n return null;\r\n }\r\n } catch (error) {\r\n console.error(`Error when trying to get exam types: ${error.message}`);\r\n return null;\r\n }\r\n }\r\n\r\n async get({ orderBy, filterBy, limit = 20, page = 1, lastId = null }) {\r\n try {\r\n let request = {\r\n orderBy,\r\n filterBy,\r\n page,\r\n limit,\r\n lastId,\r\n };\r\n\r\n let orderIdIndex = this.getExamFilterIndex(filterBy, \"OrderId\");\r\n \r\n if (\r\n orderIdIndex !== -1 &&\r\n orderIdIndex !== null &&\r\n orderIdIndex !== undefined &&\r\n isAlphanumericOrderId(filterBy[orderIdIndex].OrderId)\r\n ) {\r\n let orderId = await this.getOrderIdFromAlphanumericCode(\r\n filterBy[orderIdIndex].OrderId\r\n );\r\n\r\n orderId && (filterBy[orderIdIndex].OrderId = orderId);\r\n }\r\n\r\n request =\r\n authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\"POST\", \"/ConsultarExame\", request);\r\n\r\n if (response && response.exams) {\r\n let exams = response;\r\n\r\n if (response.AggregatedData) {\r\n let statistics = this.buildStatus(response.AggregatedData);\r\n delete response.AggregatedData;\r\n response.statistics = statistics;\r\n }\r\n\r\n return exams;\r\n } else {\r\n return [];\r\n }\r\n } catch (error) {\r\n console.error(`Error when trying to get exams: ${error.message}`);\r\n return null;\r\n }\r\n }\r\n\r\n async getHistory({ examId, orderId }) {\r\n try {\r\n if (examId && orderId) {\r\n let request = { examId, orderId };\r\n\r\n request =\r\n authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\r\n \"POST\",\r\n \"/ListarHistoricoExame\",\r\n request\r\n );\r\n\r\n if (response && response.events) {\r\n let examEvents = response.events;\r\n\r\n examEvents = this.removeHistoryDuplicatedStatus(examEvents);\r\n\r\n return examEvents;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n } catch (error) {\r\n console.error(`Error when trying to get exam history: ${error.message}`);\r\n return null;\r\n }\r\n }\r\n\r\n async getStatus() {\r\n try {\r\n let request = {};\r\n\r\n request =\r\n authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\"POST\", \"/SituacaoExameCliente\", request);\r\n\r\n if (response && response.data) {\r\n let examsStatus = response.data;\r\n\r\n let buildedExamsStatus = this.buildStatus(examsStatus);\r\n\r\n return buildedExamsStatus;\r\n } else {\r\n return null;\r\n }\r\n } catch (error) {\r\n console.error(`Error when trying to get exam status: ${error.message}`);\r\n return null;\r\n }\r\n }\r\n\r\n async getResult(orderId, examId, year){\r\n try {\r\n let request = {};\r\n\r\n if(orderId && examId && year){\r\n request = {orderId,examId, year};\r\n\r\n request =\r\n authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\"POST\", \"/GetResultadoExamePedido\", request, {\r\n responseType: 'arraybuffer',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/pdf'\r\n }\r\n });\r\n\r\n if (response){ \r\n return response;\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n } catch (error) {\r\n console.error(`Error when trying to get the result: ${error.message}`);\r\n return null;\r\n }\r\n\r\n }\r\n\r\n async startGettingDataFrom(\r\n functionName = \"\",\r\n parameters = {},\r\n callback = () => {},\r\n every = 10000\r\n ) {\r\n let recurrentReference = setInterval(async () => {\r\n let result = await this[functionName]({ ...parameters });\r\n callback(result);\r\n }, every);\r\n\r\n if (!this.runningFunctionsReference[functionName]) {\r\n this.runningFunctionsReference[functionName] = {};\r\n }\r\n\r\n this.runningFunctionsReference[functionName][recurrentReference] =\r\n recurrentReference;\r\n\r\n let result = await this[functionName]({ ...parameters });\r\n\r\n if(\r\n this.runningFunctionsReference && \r\n this.runningFunctionsReference[functionName] &&\r\n this.runningFunctionsReference[functionName][recurrentReference]\r\n ){\r\n callback(result);\r\n }\r\n\r\n return recurrentReference;\r\n }\r\n\r\n stopGettingDataFrom(functionName, functionReference) {\r\n if (functionName && !functionReference) {\r\n if (\r\n this.runningFunctionsReference[functionName] &&\r\n Object.keys(\r\n this.runningFunctionsReference[functionName]\r\n ).length > 0\r\n ) {\r\n let functionReferences = Object.keys(\r\n this.runningFunctionsReference[functionName]\r\n );\r\n\r\n for (const referenceIndex of functionReferences) {\r\n clearInterval(\r\n this.runningFunctionsReference[functionName][referenceIndex]\r\n );\r\n delete this.runningFunctionsReference[functionName][referenceIndex];\r\n }\r\n }\r\n }\r\n\r\n if (functionName && functionReference) {\r\n if (\r\n this.runningFunctionsReference[functionName] &&\r\n this.runningFunctionsReference[functionName][functionReference]\r\n ) {\r\n clearInterval(\r\n this.runningFunctionsReference[functionName][functionReference]\r\n );\r\n delete this.runningFunctionsReference[functionName][functionReference];\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n stopGettingAllData() {\r\n if (\r\n this.runningFunctionsReference &&\r\n Object.keys(this.runningFunctionsReference).length > 0\r\n ) {\r\n for (const functionReference in this.runningFunctionsReference) {\r\n let functionReferences = Object.keys(\r\n this.runningFunctionsReference[functionReference]\r\n );\r\n\r\n if(functionReferences && functionReferences.length>0){\r\n for (const functionIndex of functionReferences) {\r\n clearInterval(\r\n this.runningFunctionsReference[functionReference][functionIndex]\r\n );\r\n delete this.runningFunctionsReference[functionReference][functionIndex];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n buildStatus(examsStatus) {\r\n let buildedExamsStatus = {};\r\n\r\n for (const status of examsStatus) {\r\n if (status && status.prodUnit) {\r\n if (!buildedExamsStatus[status.prodUnit]) {\r\n buildedExamsStatus[status.prodUnit] = {};\r\n buildedExamsStatus[status.prodUnit][\"TOTAL\"] = 0;\r\n buildedExamsStatus[status.prodUnit][\"aliasProdUnit\"] = status.aliasProdUnit;\r\n }\r\n if (!buildedExamsStatus[\"BR\"]) {\r\n buildedExamsStatus[\"BR\"] = {};\r\n buildedExamsStatus[\"BR\"][\"TOTAL\"] = 0;\r\n }\r\n if (\r\n buildedExamsStatus[\"BR\"] &&\r\n !buildedExamsStatus[\"BR\"][status.descEventStage]\r\n ) {\r\n buildedExamsStatus[\"BR\"][status.descEventStage] = 0;\r\n }\r\n\r\n if(status.clientState){\r\n buildedExamsStatus[\"BR\"][\"clientState\"]= status.clientState;\r\n }\r\n \r\n buildedExamsStatus[\"BR\"][status.descEventStage] += status.qtyEventStage;\r\n buildedExamsStatus[status.prodUnit][status.descEventStage] =\r\n status.qtyEventStage;\r\n\r\n \r\n buildedExamsStatus[\"BR\"][\"TOTAL\"] += status.qtyEventStage;\r\n buildedExamsStatus[status.prodUnit][\"TOTAL\"] += status.qtyEventStage;\r\n\r\n if(status.descEventStage === \"CADASTRADO\" || status.descEventStage === \"RECOLHIDO\"){\r\n buildedExamsStatus[status.prodUnit][`${status.descEventStage}-LOCATION`] = {};\r\n let eventLocation = buildedExamsStatus[status.prodUnit][`${status.descEventStage}-LOCATION`];\r\n\r\n if(status.codePardiniStore){\r\n eventLocation[\"codePardiniStore\"]= status.codePardiniStore;\r\n }\r\n if(status.namePardiniStore){\r\n eventLocation[\"namePardiniStore\"]= status.namePardiniStore;\r\n }\r\n if(status.stateStore){\r\n eventLocation[\"stateStore\"]= status.stateStore;\r\n }\r\n if(status.clientState){\r\n eventLocation[\"clientState\"]= status.clientState;\r\n }\r\n if(status.homeState){\r\n eventLocation[\"homeState\"]= status.homeState;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return buildedExamsStatus;\r\n }\r\n\r\n removeHistoryDuplicatedStatus(statusHistory) {\r\n let haveHistory = [];\r\n let newHistory = [];\r\n\r\n if (statusHistory) {\r\n for (const status of statusHistory) {\r\n if (status.stageName && haveHistory.indexOf(status.stageName) === -1) {\r\n haveHistory.push(status.stageName);\r\n newHistory.push(status);\r\n }\r\n }\r\n }\r\n return newHistory;\r\n }\r\n\r\n async getOrderIdFromAlphanumericCode(alphanumeric){\r\n\r\n if(alphanumeric!==null && alphanumeric!==undefined){\r\n\r\n let request = {orderIdAlphaNumeric: alphanumeric.toUpperCase()};\r\n\r\n request = authenticationService.setUserAuthorizationDataOnRequest(request);\r\n\r\n let response = await apiRequest(\"POST\", \"/ConverterBase36ToDecimal\", request);\r\n\r\n if (\r\n response &&\r\n response.base36ToDecimal &&\r\n response.base36ToDecimal.length &&\r\n response.base36ToDecimal[0].orderId &&\r\n response.base36ToDecimal[0].orderId !== \"\"\r\n ) {\r\n return response.base36ToDecimal[0].orderId ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n getExamFilterIndex(filters, filterName){\r\n if(filters && filters.length && filters.length > 0 && filterName){\r\n return filters.findIndex((filter)=> filter[filterName]);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static getInstance() {\r\n return this._instance;\r\n }\r\n}\r\n\r\nexport default new ExamsService();\r\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcoPartnerLab(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 44,\n height: 44,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.7005 9.0692L22.9005.196a2.1998 2.1998 0 00-1.801 0l-19.8 8.8733A2.2 2.2 0 000 11.0742v30.7266c0 1.2151.985 2.2 2.2 2.2h39.6c1.215 0 2.2-.9849 2.2-2.2V11.0742a2.2 2.2 0 00-1.2995-2.005zM6.6 42.5342v-9.5334h1.4667v9.5334H6.6zm0-14.8654a.9346.9346 0 01.173-.5434l1.0421-1.4579h6.3698l1.0413 1.4571a.9336.9336 0 01-.7583 1.4762H7.5321a.9327.9327 0 01-.9321-.932zm3.6667-5.9026v-1.9654h1.4666v1.9654a1.4618 1.4618 0 00.2736.8521l1.1308 1.5825H8.8623l1.1316-1.5832a1.4627 1.4627 0 00.2728-.8514zm-2.7346 8.3013h31.3346a.7334.7334 0 010 1.4667H5.1333a.7334.7334 0 010-1.4667h2.3988zM22 20.301v-1.9668h1.4667v1.9316a1.4915 1.4915 0 00.8382 1.3581 3.6243 3.6243 0 011.3493 1.1103h-5.8491a3.6057 3.6057 0 011.3758-1.1184A1.4461 1.4461 0 0022 20.301zm-2.8439 3.8998h7.1603a3.5845 3.5845 0 01-1.2738 3.5794 3.7113 3.7113 0 01-3.102.7385 3.649 3.649 0 01-2.7962-2.8138 3.7584 3.7584 0 01.0117-1.5041zm8.7106.7334a5.11 5.11 0 00-.3029-1.6984.838.838 0 00-.0315-.0844 5.236 5.236 0 00-2.599-2.8856v-1.9316a.7335.7335 0 000-1.4667h-1.4666v-2.2c0-.81.6566-1.4667 1.4666-1.4667h.8683a2.1737 2.1737 0 00-.1349.7334c0 1.215.9849 2.2 2.2 2.2 1.215 0 2.2-.985 2.2-2.2a2.1763 2.1763 0 00-.135-.7334H30.8c.81 0 1.4667.6567 1.4667 1.4667v6.6H30.8c-.81 0-1.4667.6566-1.4667 1.4667v5.8666h-3.0162a5.1067 5.1067 0 001.5496-3.6666zm.7333-11a.7334.7334 0 11-1.4667-.0001.7334.7334 0 011.4667.0001zm2.2 12.4666h4.4v2.2h-4.4v-2.2zm4.4-1.4666h-4.4v-2.2h4.9273a4.4939 4.4939 0 00-.5273 2.2zm-.7333 8.0666v9.5334H9.5333v-9.5334h24.9334zm1.4666 9.5334v-9.5334H37.4v9.5334h-1.4667zm6.6-.7334a.7334.7334 0 01-.7333.7334h-2.9333v-9.5334c1.215 0 2.2-.9849 2.2-2.2 0-1.215-.985-2.2-2.2-2.2h-2.2v-3.6666a2.9152 2.9152 0 01.5016-1.7395 1.2138 1.2138 0 00-.982-1.9272h-2.453v-6.6c0-1.62-1.3133-2.9333-2.9333-2.9333h-5.8667c-1.62 0-2.9333 1.3133-2.9333 2.9333v2.2h-1.4667a.7334.7334 0 000 1.4667h.0081l.022 1.9514a5.0692 5.0692 0 00-2.6114 2.8299.6898.6898 0 00-.0638.1577 5.2064 5.2064 0 00-.1811 2.7221 5.072 5.072 0 001.4329 2.6055h-2.4618a2.4017 2.4017 0 00-.2581-2.3276L13.2 21.7662v-1.9654a.7333.7333 0 100-1.4666H8.8a.7333.7333 0 100 1.4666v1.9654L5.5792 26.274a2.4023 2.4023 0 00-.2574 2.3268h-.1885c-1.215 0-2.2.985-2.2 2.2 0 1.2151.985 2.2 2.2 2.2v9.5334H2.2a.7334.7334 0 01-.7333-.7334V11.0742a.7333.7333 0 01.4334-.6703l19.8-8.8733a.7332.7332 0 01.5998 0l19.8 8.8733a.733.733 0 01.4334.6703v30.7266z\",\n fill: \"url(#paint0_linear)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 0,\n y1: 22.002,\n x2: 44,\n y2: 22.002,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0909C9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FF1FFF\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h44v44H0z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcoPartnerLab);\nexport default __webpack_public_path__ + \"static/media/ico-partner-lab.58b5b6d6.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\r\n\r\nimport authenticationService from \"../services/AuthenticationService\";\r\nimport userService from \"../services/UserService\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport AuthenticationService from \"../services/AuthenticationService\";\r\nimport { ReactComponent as PartnerLab } from \"../assets/img/ico-partner-lab.svg\";\r\nimport { setEmbeddedFromLocalStorage } from \"../util/utils\";\r\nimport { MY_PARDINI_URL } from \"../constants\";\r\nclass AppBar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n user: null,\r\n client: null,\r\n clientList: [],\r\n menuOpen: false,\r\n loading: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let userData = userService.getUserData();\r\n if (userData) {\r\n let user = {\r\n name: userData.userName ? userData.userName : null,\r\n };\r\n\r\n let client = {\r\n name: userService.getClientName() || null,\r\n type: userService.getUserType() || null,\r\n };\r\n this.setState({ user, client });\r\n }\r\n\r\n if (userData.relatedClients) {\r\n this.setState({\r\n clientList: userData.relatedClients,\r\n });\r\n }\r\n }\r\n async logOut(e) {\r\n e.preventDefault();\r\n setEmbeddedFromLocalStorage(false);\r\n this.setState({ loading: true });\r\n let logOut = await authenticationService.logout();\r\n this.setState({ loading: false });\r\n if (logOut) {\r\n this.props.history.replace(\"/login\");\r\n console.info(\"user log out.\");\r\n } else {\r\n console.error(\"Failed to log user out: Server denied.\");\r\n }\r\n }\r\n\r\n async alterClient(client) {\r\n if (userService.getClientId() === client.code) {\r\n console.error(\r\n \"Failed to switch Clients: The requested client is already the selected one.\"\r\n );\r\n return false;\r\n }\r\n\r\n const auth = await AuthenticationService.setUserClient(\r\n client.code,\r\n client.name\r\n );\r\n\r\n if (!auth.status) {\r\n console.error(\"Failed to switch Clients: Server denied.\");\r\n return false;\r\n }\r\n\r\n const currentUser = userService.getCurrentUserClient();\r\n\r\n this.setState({\r\n client: currentUser,\r\n });\r\n\r\n this.props.history.replace(\"/\");\r\n\r\n return true;\r\n }\r\n\r\n closeDropDown() {\r\n let menu = document.querySelector(\".dropdown-menu\");\r\n if (menu.classList.contains(\"user-type-menu\")) {\r\n menu.classList.remove(\"user-type-menu\");\r\n }\r\n }\r\n\r\n openDropDown() {\r\n let menu = document.querySelector(\"#dropdown-menu-labs\");\r\n if (!menu.classList.contains(\"user-type-menu\")) {\r\n menu.classList.add(\"user-type-menu\");\r\n }\r\n }\r\n\r\n async toggleAlterLab(client) {\r\n let alterResult = await this.alterClient(client);\r\n\r\n if (!alterResult) {\r\n let active = document.getElementById(client.code);\r\n\r\n let menu = document.getElementById(\"dropdown-menu-labs\");\r\n let options = menu.getElementsByClassName(\"dropdown-item\");\r\n\r\n for (var c = 0; c < options.length; c++) {\r\n if (options[c].classList.contains(\"active\")) {\r\n options[c].classList.remove(\"active\");\r\n }\r\n }\r\n\r\n active.classList.add(\"active\");\r\n }\r\n this.closeDropDown();\r\n }\r\n\r\n renderDropBox() {\r\n const styleDropbox = {\r\n margin: \"0\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n minHeight: \"50px\",\r\n textAlign: \"end\",\r\n backgroundColor: \"transparent\",\r\n };\r\n\r\n return (\r\n
\r\n this.openDropDown()}\r\n >\r\n \r\n {this.state.client.type === \"L2L\" ? \"Laboratório\" : \"Hospital\"}{\" \"}\r\n Conveniado\r\n \r\n

\r\n {this.state.client && this.state.client.name}\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n {this.state.clientList.map((client) => (\r\n
  • \r\n this.toggleAlterLab(client)}\r\n >\r\n

    {client && client.name}

    \r\n \r\n
  • \r\n ))}\r\n \r\n \r\n );\r\n }\r\n\r\n changeMenu() {\r\n this.setState({\r\n menuOpen: !this.state.menuOpen,\r\n });\r\n }\r\n\r\n backToMyPardini(){\r\n authenticationService.endSession();\r\n window.location.href = MY_PARDINI_URL;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.state.loading ?
    : null}\r\n
    \r\n Enterprise Digital . Pardini Customer Experience\r\n
    \r\n
    \r\n
    Hermes Pardini
    \r\n {this.state.clientList.length > 1 ? (\r\n this.renderDropBox()\r\n ) : this.state.client &&\r\n this.state.client.type &&\r\n this.state.client.type !== \"PSC\" ? (\r\n
    \r\n \r\n {this.state.client.type === \"L2L\" ? \"Laboratório\" : \"Hospital\"}{\" \"}\r\n Conveniado\r\n \r\n

    \r\n {this.state.client && this.state.client.name}\r\n

    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n {this.state.user && this.state.user.name}\r\n \r\n
    \r\n
    \r\n
    \r\n {userService.checkForMyPardiniSession() ?\r\n (
    this.backToMyPardini()}\r\n >\r\n Voltar ao MyPardini\r\n
    ): null}\r\n {\r\n this.logOut(e);\r\n }}\r\n >\r\n Sair\r\n
    \r\n
    \r\n
    \r\n {\r\n this.changeMenu();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(AppBar);\r\n","import { getEmbedded } from \"../../util/utils\";\r\n\r\nconst HeaderLayout = (props) => {\r\n const isEmbedded = getEmbedded();\r\n if(isEmbedded){\r\n return null;\r\n }\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default HeaderLayout;\r\n","const LeftSideLayout = (props) => {\r\n\r\n return (\r\n <>\r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport default LeftSideLayout;","const ContentLayout = (props) => {\r\n return (\r\n
    \r\n \r\n {props.children}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ContentLayout;\r\n","import HeaderLayout from \"./HeaderLayout\";\r\nimport LeftSideLayout from \"./LeftSideLayout\";\r\nimport ContentLayout from \"./ContentLayout\";\r\nimport react from \"react\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\nimport { getEmbedded } from \"../../util/utils\";\r\n\r\nconst Layout = (props) => {\r\n let params = useParams();\r\n let query = useLocation();\r\n\r\n const isEmbedded = getEmbedded();\r\n let styleMain = {};\r\n let styleApp = {};\r\n if (isEmbedded) {\r\n styleMain = { gridRow: \"1 /span 2\" };\r\n styleApp = { paddingTop: \"0\" };\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {react.cloneElement(props.header, { params: params, query: query })}\r\n \r\n \r\n \r\n {react.cloneElement(props.leftSide, { params: params })}\r\n \r\n \r\n {react.cloneElement(props.content, { params: params })}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Layout;\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\n\r\nclass Dialog extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n visible: false,\r\n };\r\n\r\n this.styles = { backgroundHeader: {}, widthModal: {}, heightModal: {} };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n visible: this.props.show || false,\r\n });\r\n }\r\n\r\n componentDidUpdate(previousProps) {\r\n if (previousProps.show !== this.props.show) {\r\n this.setState({\r\n visible: this.props.show || false,\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n setStyles(styles) {\r\n this.styles = { backgroundHeader: {}, widthModal: {}, heightModal: {} };\r\n switch (this.props.type) {\r\n case \"Error\":\r\n this.styles.backgroundHeader = {\r\n background: \"linear-gradient(90deg, #f16464 0%, #e23c3c 100%)\",\r\n };\r\n this.styles.widthModal = { width: \"20rem\" };\r\n break;\r\n case \"Info\":\r\n this.styles.widthModal = { width: \"20rem\" };\r\n break;\r\n case \"Video\":\r\n this.styles.widthModal = { width: \"45rem\" };\r\n break;\r\n default:\r\n this.styles.widthModal = {};\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.setStyles()}\r\n \r\n
    \r\n
    \r\n
    {this.props.title}
    \r\n {\r\n if (this.props.closeInternal) {\r\n this.props.closeInternal();\r\n } else {\r\n this.closeModal();\r\n }\r\n }}\r\n >\r\n
    \r\n {this.props.message ?\r\n
    \r\n

    {this.props.message}

    \r\n
    : null\r\n }\r\n\r\n {this.props.child ?\r\n this.props.child\r\n :\r\n null}\r\n \r\n {this.props.type !== \"Video\" ? (\r\n
    \r\n {this.props.deny ? (\r\n {\r\n this.props.deny();\r\n }}\r\n >\r\n Cancelar\r\n \r\n ) : null}\r\n\r\n {\r\n typeof this.props.confirmation === 'function'\r\n ? this.props.confirmation()\r\n : this.closeModal();\r\n }}\r\n >\r\n OK\r\n \r\n
    \r\n ) : null}\r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Dialog);\r\n","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\nimport { sendEvent} from '../util/utils'\r\nimport {PRODUCTION_UNIT_FEDERATIONS} from '../constants';\r\nclass Labs extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n };\r\n }\r\n\r\n\trenderUnits(){\r\n\t\tlet unitsList = []\r\n\t\tif(this.props.unitsStatus){\r\n\t\t\tObject.keys(this.props.unitsStatus).forEach(index => {\r\n\t\t\t\tlet unit = this.props.unitsStatus[index]\r\n\t\t\t\tunitsList.push((\r\n\t\t\t\t\t\t
  • sendEvent(\"apply-production-unit-filter\", {productionUnit: index})}\r\n\t\t\t\t\t\tonMouseOver={()=> sendEvent('highlight-unit',[index, false])}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{unit.aliasProdUnit}\r\n\t\t\t\t\t\t\t\t ({PRODUCTION_UNIT_FEDERATIONS[unit.aliasProdUnit]})\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{unit['TOTAL']}\r\n\t\t\t\t\t\t
  • \r\n\t\t\t\t))\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn unitsList;\r\n\t}\r\n\r\n render() {\r\n\t\tthis.renderUnits();\r\n return (\r\n\t\t\t<>\r\n\t\t\t\t
    \r\n\t\t\t\t\t

    Exames por unidades

    \r\n\t\t\t\t
    \r\n\t\t\t\t
      sendEvent('highlight-unit',[])} >\r\n\t\t\t\t\t{this.renderUnits()}\r\n\t\t\t\t
    \r\n\t\t\t\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Labs);\r\n","import React ,{ Component } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Labs from \"./Labs\";\r\nimport Exams from './exams'\r\n\r\nclass LeftSideBar extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n hasExams: false,\r\n isFilterScreenOpen: false\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"draw-exams\", this.checkHasExams.bind(this));\r\n }\r\n\r\n componentWillUnmount(){\r\n window.removeEventListener(\"draw-exams\", this.checkHasExams.bind(this))\r\n }\r\n\r\n checkHasExams(e){\r\n if(e.detail === null){\r\n this.setState({hasExams: false});\r\n }else{\r\n this.setState({hasExams: true});\r\n }\r\n }\r\n\r\n updateFilterScreenStatus(status){\r\n this.setState({isFilterScreenOpen: status});\r\n }\r\n\r\n filterStatus(){\r\n let statusFiltered = {};\r\n if(this.props.status){\r\n Object.keys(this.props.status).forEach(index => {\r\n if(index !== 'BR'){\r\n statusFiltered[index] = this.props.status[index];\r\n }\r\n })\r\n }\r\n return statusFiltered;\r\n }\r\n\r\n render(){\r\n this.filterStatus()\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n {!this.state.hasExams && !this.state.isFilterScreenOpen ?\r\n (
    \r\n \r\n
    ): null}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(LeftSideBar)","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\n\r\nimport AppBar from \"../components/AppBar\";\r\nimport Layout from \"../components/layout\";\r\nimport Map from \"../components/Map\";\r\nimport Dialog from \"../components/Dialog\";\r\n\r\nimport { FETCH_INTERVAL } from \"../constants\";\r\nimport examsService from \"../services/ExamsService\";\r\nimport authenticationService from \"../services/AuthenticationService\";\r\nimport LeftSideBar from \"../components/LeftSideBar\";\r\nimport { sendEvent } from \"../util/utils\";\r\n\r\nclass HomeView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n status: null,\r\n exams: null,\r\n filters: [],\r\n dialog: {},\r\n stageUnitDistributionByStage: {},\r\n currentProductionUnit: \"HP\",\r\n loading: false,\r\n };\r\n\r\n this.showDialogFn = this.showDialog.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.startListingEvents();\r\n this.setState({loading: true});\r\n await this.startGettingStatusData();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.stopGettingData();\r\n this.stopListingEvents();\r\n }\r\n\r\n startListingEvents(){\r\n window.addEventListener(\"logUserOut\", this.logUserOut.bind(this));\r\n window.addEventListener(\"show-dialog\", this.showDialogFn);\r\n window.addEventListener(\"click\", this.closeAllDropDown.bind(this));\r\n window.addEventListener(\"setCurrentProductionUnit\", this.setCurrentProductionUnit.bind(this));\r\n }\r\n\r\n stopListingEvents(){\r\n window.removeEventListener(\"show-dialog\", this.showDialogFn);\r\n window.removeEventListener(\"click\", this.closeAllDropDown.bind(this));\r\n window.removeEventListener(\"logUserOut\", this.logUserOut.bind(this));\r\n window.removeEventListener(\"setCurrentProductionUnit\", this.setCurrentProductionUnit.bind(this));\r\n }\r\n\r\n async startGettingStatusData() {\r\n examsService.stopGettingDataFrom(\"getStatus\");\r\n await examsService.startGettingDataFrom(\r\n \"getStatus\",\r\n {},\r\n this.updateStatus.bind(this),\r\n FETCH_INTERVAL\r\n );\r\n }\r\n\r\n updateStatus(status) {\r\n this.setState({ status, loading: false },() =>{\r\n this.buildStageUnitDistributionByStage(status);\r\n sendEvent(\"reset-markers\", {update: true});\r\n }); \r\n }\r\n\r\n stopGettingData() {\r\n examsService.stopGettingDataFrom(\"getStatus\");\r\n }\r\n\r\n buildStageUnitDistributionByStage(status){\r\n if(status){\r\n let stageUnitDistributionByStage = {};\r\n\r\n for (const statusIndex in status) {\r\n if (Object.hasOwnProperty.call(status, statusIndex)) {\r\n const statusUnit = status[statusIndex];\r\n\r\n for (const stageIndex in statusUnit) {\r\n if (Object.hasOwnProperty.call(statusUnit, stageIndex) && statusIndex !== \"BR\") {\r\n const stageCount = statusUnit[stageIndex];\r\n stageUnitDistributionByStage[stageIndex] || (stageUnitDistributionByStage[stageIndex] = {});\r\n stageUnitDistributionByStage[stageIndex][statusIndex] = stageCount;\r\n }\r\n } \r\n }\r\n }\r\n\r\n this.setState({stageUnitDistributionByStage: stageUnitDistributionByStage});\r\n }\r\n }\r\n \r\n setCurrentProductionUnit(event){\r\n if(event && event.detail){\r\n this.setState({currentProductionUnit: event.detail});\r\n }\r\n }\r\n\r\n logUserOut() {\r\n try {\r\n authenticationService.logout();\r\n this.props.history.replace(\"/login\");\r\n } catch (error) {\r\n console.error(`Error when trying to log the user out: ${error.message}`);\r\n }\r\n }\r\n\r\n showDialog(dialogData) {\r\n if (dialogData && dialogData.detail) {\r\n this.setState({\r\n dialog: dialogData.detail,\r\n });\r\n }\r\n }\r\n\r\n defaultCloseDialog() {\r\n this.setState({\r\n dialog: {},\r\n });\r\n }\r\n\r\n closeAllDropDown(e) {\r\n let ignoreElement = null;\r\n\r\n if(e &&\r\n e.target &&\r\n e.target.dataset &&\r\n e.target.dataset.target){\r\n ignoreElement = document.getElementById(e.target.dataset.target);\r\n }\r\n\r\n let clickInside = ignoreElement ? ignoreElement.contains(e.target) : false;\r\n\r\n if (!clickInside) {\r\n let menu = document.getElementsByClassName(\"dropdown-menu\");\r\n for (let c = 0; c < menu.length; c++) {\r\n if (menu[c].classList && menu[c].classList.contains(\"user-type-menu\")) {\r\n menu[c].classList.remove(\"user-type-menu\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n {this.state.loading ?
    : null}\r\n }\r\n leftSide={\r\n \r\n }\r\n content={\r\n \r\n }\r\n />\r\n {\r\n return (\r\n this.state.dialog.confirmation() || this.defaultCloseDialog()\r\n );\r\n }}\r\n closeInternal={() => this.defaultCloseDialog()}\r\n {...this.state.dialog}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(HomeView);\r\n","import {} from \"react-router\";\r\n\r\nimport React, { Component } from \"react\";\r\n\r\nimport authenticationService from \"../services/AuthenticationService\";\r\nimport { withRouter, Redirect } from \"react-router-dom\";\r\nimport { setEmbeddedFromLocalStorage } from \"../util/utils\";\r\nimport { FOLDER_HOMOL } from \"../constants\";\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userType: null,\r\n userTypeName: \"Tipo de Usuário\",\r\n login: null,\r\n password: null,\r\n loading: true,\r\n isUserAuthenticated: false,\r\n relatedClients: [],\r\n clientId: null,\r\n clientName: null,\r\n nextLoginPhase: false,\r\n errorMessage: null,\r\n };\r\n\r\n this.items = [\"Laboratório Conveniado\", \"Pessoa Física\"];\r\n //this.items = [\"Laboratório Conveniado\", \"Pessoa Física\", \"Hospital\"];\r\n this.showPasswordFn = this.showPassword.bind(this);\r\n\r\n window.addEventListener(\"showPassword\", this.showPasswordFn);\r\n }\r\n\r\n async componentDidMount() {\r\n this.getQuery(\"embedded\");\r\n let loading = false;\r\n this.setState({ loading });\r\n await this.checkForExternalLogin();\r\n let isUserAuthenticated = authenticationService.checkIfUserAuthenticated();\r\n this.setState({ isUserAuthenticated });\r\n }\r\n\r\n getQuery(queryName) {\r\n const query = new URLSearchParams(this.props.location.state && this.props.location.state.search);\r\n\r\n if (query.get(queryName)) {\r\n query.get(queryName).toLowerCase() === \"true\"\r\n ? setEmbeddedFromLocalStorage(true)\r\n : setEmbeddedFromLocalStorage(false);\r\n } else {\r\n setEmbeddedFromLocalStorage(false);\r\n }\r\n }\r\n\r\n async login(e) {\r\n e.preventDefault();\r\n\r\n this.setState({ loading: true });\r\n\r\n if (this.state.userType && this.state.login && this.state.password) {\r\n let authentication = await authenticationService.login(\r\n this.state.login,\r\n this.state.password,\r\n this.state.userType\r\n );\r\n this.setState({\r\n errorMessage: \"\"\r\n })\r\n if (\r\n authentication &&\r\n authentication.status &&\r\n authentication.relatedClients\r\n ) {\r\n this.setState({ relatedClients: authentication.relatedClients });\r\n this.setState({ loading: false });\r\n } else if (authentication && authentication.status) {\r\n this.setState({ loading: false, isAuthenticated: true });\r\n\r\n this.props.history.replace(\"/\");\r\n } else {\r\n this.setState({ loading: false });\r\n this.showErrorMessage(\"Login ou senha incorretos.\");\r\n }\r\n } else {\r\n this.setState({ loading: false });\r\n this.showErrorMessage(\"Preencha corretamente todos os campos.\");\r\n }\r\n }\r\n\r\n async checkForExternalLogin() {\r\n const query = new URLSearchParams(this.props.location.state && this.props.location.state.search);\r\n let externalToken = query.get('sessionId');\r\n \r\n if (externalToken) {\r\n this.setState({ loading: true });\r\n let authentication =\r\n await authenticationService.checkIfTokenValidOnRemote(externalToken);\r\n if (!authentication) {\r\n this.showErrorMessage(\"Login ou senha incorretos.\");\r\n authenticationService.endSession();\r\n } else {\r\n authenticationService.registerSession(\"myPardini\");\r\n }\r\n\r\n this.setState({ loading: false });\r\n return true;\r\n }\r\n }\r\n\r\n showPassword() {\r\n let showPassword = document.querySelector(\".show-password\");\r\n let inputPassword = document.getElementById(\"userPassword\");\r\n\r\n if (inputPassword.type === \"password\") {\r\n inputPassword.type = \"text\";\r\n inputPassword.focus();\r\n showPassword.classList.add(\"hide\");\r\n } else {\r\n inputPassword.type = \"password\";\r\n inputPassword.focus();\r\n showPassword.classList.remove(\"hide\");\r\n }\r\n }\r\n\r\n toggleList() {\r\n let menu = document.querySelector(\".type-list\");\r\n if (!menu.classList.contains(\"user-type-menu\")) {\r\n menu.classList.add(\"user-type-menu\");\r\n } else {\r\n menu.classList.remove(\"user-type-menu\");\r\n }\r\n }\r\n\r\n getString(id) {\r\n let tipo = \"\";\r\n if (id === \"L2L\") {\r\n tipo = \"Laboratório Conveniado\";\r\n } else if (id === \"PSC\") {\r\n tipo = \"Pessoa Física\";\r\n } else if (id === \"HOSP\") {\r\n tipo = \"Hospital\";\r\n } else {\r\n tipo = null;\r\n }\r\n return tipo;\r\n }\r\n\r\n toggleUserType(id) {\r\n let options = document.getElementsByClassName(\"dropdown-item\");\r\n\r\n for (var c = 0; c < options.length; c++) {\r\n if (options[c].classList.contains(\"active\")) {\r\n options[c].classList.remove(\"active\");\r\n }\r\n }\r\n\r\n let active = document.getElementById(id);\r\n\r\n active.classList.add(\"active\");\r\n\r\n document.querySelector(\".type-list\").classList.remove(\"user-type-menu\");\r\n this.setState({\r\n userType: id,\r\n userTypeName: this.getString(id),\r\n });\r\n }\r\n toggleClientType(id, name) {\r\n let options = document.getElementsByClassName(\"dropdown-item\");\r\n\r\n for (var c = 0; c < options.length; c++) {\r\n if (options[c].classList.contains(\"active\")) {\r\n options[c].classList.remove(\"active\");\r\n }\r\n }\r\n\r\n let active = document.getElementById(id);\r\n\r\n active.classList.add(\"active\");\r\n\r\n document.querySelector(\".type-list\").classList.remove(\"user-type-menu\");\r\n\r\n this.setState({\r\n clientId: id,\r\n clientName: name,\r\n });\r\n }\r\n\r\n async setClient(e) {\r\n e.preventDefault();\r\n\r\n if (this.state.clientId && this.state.clientName) {\r\n this.setState({ loading: true });\r\n let authentication = await authenticationService.setUserClient(\r\n this.state.clientId,\r\n this.state.clientName\r\n );\r\n\r\n if (authentication && authentication.status) {\r\n this.props.history.push(\"/\");\r\n } else {\r\n alert(\"erro\");\r\n }\r\n } else {\r\n this.showErrorMessage(\"Selecione um laboratório para prosseguir.\");\r\n }\r\n this.setState({ loading: false });\r\n }\r\n\r\n toggleForm(id, ctrl) {\r\n if (ctrl === 0) {\r\n document.getElementById(id).classList.add(\"focus\");\r\n document.getElementById(id).classList.add(\"filled\");\r\n } else if (\r\n ctrl === 1 &&\r\n document.getElementById(id).children[1].value === \"\"\r\n ) {\r\n document.getElementById(id).classList.remove(\"focus\");\r\n document.getElementById(id).classList.remove(\"filled\");\r\n }\r\n }\r\n\r\n attLogin() {\r\n let login = document.getElementById(\"userLogin\").value;\r\n this.setState({ login });\r\n }\r\n attPassword() {\r\n let password = document.getElementById(\"userPassword\").value;\r\n this.setState({ password });\r\n }\r\n\r\n showErrorMessage(message) {\r\n this.setState({ errorMessage: message });\r\n }\r\n\r\n render() {\r\n const ulStyle = {\r\n overflow: \"auto\",\r\n maxHeight: \"150px\",\r\n };\r\n const btDefaultStyle = {\r\n boxShadow: \"none\",\r\n width: \"100%\",\r\n position: \"absolute\",\r\n paddingLeft: \"15%\"\r\n };\r\n\r\n return !this.state.isUserAuthenticated ? (\r\n <>\r\n {this.state.loading ?
    : null}\r\n
    \r\n
    \r\n
    Enterprise Digital
    \r\n {/*
    */}\r\n
    \r\n
    \r\n

    \r\n Login\r\n

    \r\n
    \r\n {!(\r\n this.state.relatedClients &&\r\n this.state.relatedClients.length &&\r\n this.state.relatedClients.length > 0\r\n ) ? (\r\n <>\r\n
    \r\n
    \r\n this.toggleList()}\r\n style={{ padding: \"0 0\" }}\r\n >\r\n
    \r\n
    \r\n \r\n {this.state.userTypeName}\r\n
    \r\n
    \r\n
    \r\n \r\n this.toggleUserType(\"L2L\")}\r\n >\r\n Laboratório Conveniado\r\n \r\n this.toggleUserType(\"PSC\")}\r\n >\r\n Pessoa Física\r\n \r\n {/* this.toggleUserType(\"HOSP\")}\r\n >\r\n Hospital\r\n */}\r\n \r\n
    \r\n
    \r\n \r\n \r\n this.attLogin()}\r\n />\r\n
    \r\n\r\n \r\n \r\n this.attPassword()}\r\n />\r\n this.showPassword()}\r\n >\r\n mostrar/esconder senha\r\n \r\n
    \r\n {this.state.errorMessage ? (\r\n
    \r\n
    {this.state.errorMessage}
    \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n {\r\n this.login(e);\r\n }}\r\n >\r\n Acessar\r\n \r\n \r\n ) : (\r\n <>\r\n
    \r\n
    \r\n this.toggleList()}\r\n style={{ padding: \"0 0\" }}\r\n >\r\n
    \r\n
    \r\n \r\n {this.state.clientName ||\r\n `Selecione o ${this.state.userTypeName}`}\r\n
    \r\n
    \r\n
    \r\n \r\n {this.state.relatedClients.map((user) => (\r\n \r\n this.toggleClientType(user.code, user.name)\r\n }\r\n >\r\n {`${user.code} - ${user.name}`}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.errorMessage ? (\r\n
    \r\n
    {this.state.errorMessage}
    \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n {\r\n this.setClient(e);\r\n }}\r\n >\r\n Concluir\r\n \r\n \r\n )}\r\n \r\n
    Hermes Pardini
    \r\n \r\n \r\n \r\n ) : (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Login);\r\n","import React, { Component } from \"react\";\r\n\r\nimport Login from \"../components/Login\";\r\n\r\nclass LoginView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount(){\r\n window.addEventListener(\"click\", this.closeAllDropDown.bind(this));\r\n }\r\n\r\n componentWillUnmount(){\r\n window.removeEventListener(\"click\", this.closeAllDropDown.bind(this))\r\n }\r\n\r\n closeAllDropDown(e) {\r\n let ignoreElement = null;\r\n\r\n if(e &&\r\n e.target &&\r\n e.target.dataset &&\r\n e.target.dataset.target){\r\n ignoreElement = document.getElementById(e.target.dataset.target);\r\n }\r\n\r\n let clickInside = ignoreElement ? ignoreElement.contains(e.target) : false;\r\n\r\n if (!clickInside) {\r\n let menu = document.getElementsByClassName(\"dropdown-menu\");\r\n for (let c = 0; c < menu.length; c++) {\r\n if (menu[c].classList && menu[c].classList.contains(\"user-type-menu\")) {\r\n menu[c].classList.remove(\"user-type-menu\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LoginView;\r\n","import \"./assets/css/bootstrap.min.css\";\r\nimport \"./assets/css/enterprisedigital.css\";\r\n\r\nimport {\r\n Redirect,\r\n Route,\r\n BrowserRouter as Router,\r\n Switch,\r\n} from \"react-router-dom\";\r\n\r\nimport HomeView from \"./pages/HomeView\";\r\nimport LoginView from \"./pages/LoginView\";\r\nimport {FOLDER_HOMOL} from \"./constants\";\r\nimport React from \"react\";\r\nimport authenticationService from \"./services/AuthenticationService\";\r\n\r\nfunction App() {\r\n function PrivateRoute({ children, ...rest }) {\r\n return (\r\n { \r\n\r\n let searchUrl = props && props.location &&\r\n props.location.search && props.location.search;\r\n let query = searchUrl && new URLSearchParams(searchUrl);\r\n let externalLogin = query && query.get('sessionId');\r\n\r\n return authenticationService.checkIfUserAuthenticated() === true && !externalLogin ? (\r\n children\r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {}\r\n \r\n {}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\n\r\nimport App from \"./App\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","import { API_URL } from \"../constants\";\r\nimport axios from \"axios\";\r\n\r\nexport default axios.create({\r\n baseURL: API_URL \r\n});","import { AUTH_KEY, AUTH_PASS } from \"./../constants\";\r\nimport { normalizeJSON, sendEvent } from \"../util/utils\";\r\nimport axios from \"./../handlers/axios\";\r\n\r\nexport const apiRequest = async function (method, route, data, options){\r\n\r\n try {\r\n let request = null;\r\n let result = null;\r\n \r\n if (data && method && method === \"POST\") {\r\n data.authkey = AUTH_KEY;\r\n data.authPass = AUTH_PASS;\r\n \r\n request = await axios.post(route, data, options || {});\r\n result = request.data;\r\n }\r\n\r\n let normalizeJSON = route === \"/ListarTipoExame\";\r\n\r\n return apiErrorHandler(result, normalizeJSON);\r\n\r\n } catch (error) {\r\n console.error(`Error when trying to request API service ${route}: ${error.message}`);\r\n return null;\r\n }\r\n}\r\n\r\nexport const apiErrorHandler = async function ( response, shouldNormalizeJSON ){\r\n let isPDF = response && response.byteLength;\r\n\r\n if(shouldNormalizeJSON){\r\n response = normalizeJSON(response);\r\n }\r\n\r\n if (response && (response.status || isPDF) ){\r\n if(response.status == \"200\"){\r\n return response;\r\n }\r\n if(isPDF){\r\n return response;\r\n }\r\n if(response.status == \"400\"){\r\n return null;\r\n }\r\n if(response.status == \"401\"){\r\n return logUserOut();\r\n } \r\n if(response.status == \"404\"){\r\n return null;\r\n } \r\n }\r\n console.error(`Unknown API error: ${response && response.status}`);\r\n return null;\r\n}\r\n\r\nexport function logUserOut(){\r\n sendEvent(\"logUserOut\");\r\n\r\n return null;\r\n}","export default __webpack_public_path__ + \"static/media/PIN-CARD-NTO.296e3e7a.png\";","export default __webpack_public_path__ + \"static/media/PIN-GENERAL-CARD.233a1e13.png\";","import unitNTOCard from '../src/assets/img/PIN-NTS/PIN-CARD-NTO.png'\r\nimport unitGeneralCard from '../src/assets/img/PIN-NTS/PIN-GENERAL-CARD.png'\r\n\r\n// Map\r\nexport const MAIN_MAP = \"HP\";\r\nexport const MAIN_ID = \"ED-HP\";\r\nexport const ZAPT_API_KEY = \"28382389-ce59-4723-9df6-f66a9b097abc\";\r\nexport const PRODUCTION_UNIT_CATEGORY = \"5905325415202816\";\r\nexport const STAGES_CATEGORY = \"5762869289811968\";\r\nexport const STATES_CATEGORY = \"4645983062851584\";\r\n\r\n// API\r\n\r\nexport const AUTH_KEY = \"%EDIGITAL\";\r\nexport const AUTH_PASS = \"3nteRD|g!T@l\";\r\nexport const API_URL = process.env.REACT_APP_API_URL;\r\nexport const MY_PARDINI_URL = process.env.REACT_APP_MY_PARDINI_URL;\r\nexport const FETCH_INTERVAL = 60000;\r\n\r\n// Pardini Info\r\n\r\nexport const FOLDER_HOMOL = \"/enterprisedigital\";\r\n\r\nexport const PRODUCTION_UNIT_NAMES = {\r\n HP: \"Hermes Pardini\",\r\n NTHNO: \"Hermes Pardini - NTH - Belém - PA\",\r\n NTHCE: \"Hermes Pardini - NTH - Belém - CE\",\r\n NTOGO: \"Hermes Pardini - NTH - Goiânia - GO\",\r\n SOLUCAO: \"Hermes Pardini - Solução - Itajaí - CE\",\r\n NTOSP: \"Hermes Pardini - NTA - São Paulo - SP\",\r\n NTARJ: \"Hermes Pardini - NTA - Rio de Janeiro - RJ\",\r\n NTADLE: \"Hermes Pardini - NTA-DLE - Rio de Janeiro - RJ\",\r\n NTBH: \"Hermes Pardini - NT - Belo Horizonte - MG\",\r\n NTO: \"Hermes Pardini - NTO - Vespasiano - MG\",\r\n}\r\n\r\nexport const PRODUCTION_UNIT_FEDERATIONS = {\r\n \"NTH-PA\": \"PA\",\r\n \"NTH-CE\": \"CE\",\r\n \"NTA-GO\": \"GO\",\r\n \"NTA-Solução\": 'CE',\r\n \"NTA-SP\": \"SP\",\r\n \"NTA-RJ\": \"RJ\",\r\n \"NTA-DLE\": \"RJ\",\r\n \"NTA-BH\": \"MG\",\r\n \"NTO\": \"MG\",\r\n}\r\n\r\nexport const PRODUCTION_UNIT_ALIAS = {\r\n HP: \"Hermes Pardini\",\r\n NTHNO: \"NTH-PA\",\r\n NTHCE: \"NTH-CE\",\r\n NTOGO: \"NTA-GO\",\r\n SOLUCAO: \"NTA-Solução\",\r\n NTOSP: \"NTA-SP\",\r\n NTARJ: \"NTA-RJ\",\r\n NTADLE: \"NTA-DLE\",\r\n NTBH: \"NTA-BH\",\r\n NTO: \"NTO\",\r\n}\r\n\r\nexport const PRODUCTION_UNIT_HAS_MAP = {\r\n HP: true,\r\n NTHNO: false,\r\n NTHCE: false,\r\n NTOGO: false,\r\n SOLUCAO: false,\r\n NTOSP: false,\r\n NTARJ: false,\r\n NTADLE: false,\r\n NTBH: false,\r\n NTO: true,\r\n}\r\n\r\n// Layout\r\nexport const STAGE_ICONS = {\r\n \"CADASTRADO\": \"cadastrado\",\r\n \"EM ANÁLISE TÉCNICA\": \"conferencia\",\r\n \"EM PROCESSAMENTO\": \"processando\",\r\n \"RECEBIDO\": \"recebido\",\r\n \"RECOLHIDO\": \"recolhido\",\r\n \"RESULTADO LIBERADO\": \"concluido\",\r\n \"RECOLETA\": 'recoleta',\r\n \"PENDÊNCIA TÉCNICA\": \"pendente\",\r\n};\r\n\r\nexport const STAGE_COLORS = {\r\n \"Cadastrado\": \"pin-cadastrado\",\r\n \"Em Análise Técnica\": \"pin-conferencia\",\r\n \"Em Processamento\": \"pin-processando\",\r\n \"Recebido\": \"pin-recebido\",\r\n \"Recolhido\": \"pin-recolhido\",\r\n \"Resultado Liberado\": \"pin-concluido\",\r\n \"Pendência Técnica\": \"pin-pendente\",\r\n \"Recoleta\": \"pin-recoleta\",\r\n}\r\n\r\nexport const STAGE_COLORS_UPPERCASE = {\r\n \"CADASTRADO\": \"pin-cadastrado\",\r\n \"EM ANÁLISE TÉCNICA\": \"pin-conferencia\",\r\n \"EM PROCESSAMENTO\": \"pin-processando\",\r\n \"RECEBIDO\": \"pin-recebido\",\r\n \"RECOLHIDO\": \"pin-recolhido\",\r\n \"RESULTADO LIBERADO\": \"pin-concluido\",\r\n \"PENDÊNCIA TÉCNICA\": \"pin-pendente\",\r\n \"RECOLETA\": \"pin-recoleta\"\r\n}\r\n\r\nexport const STAGE_STATUS = {\r\n \"Cadastro\": \"status-cadastrado\",\r\n \"Em Análise Técnica\": \"pin-conferencia\",\r\n \"Em Processamento\": \"pin-processando\",\r\n \"Recebido\": \"pin-recebido\",\r\n \"Recebido NTO\": \"pin-recolhido\",\r\n \"Resultado Liberado\": \"pin-concluido\",\r\n \"Pendência Técnica\": \"pin-pendente\",\r\n \"Recoleta\": \"pin-recoleta\"\r\n}\r\n\r\nexport const STAGE_SHORT = {\r\n \"CADASTRADO\": \"Cadastrado\",\r\n \"EM ANÁLISE TÉCNICA\": \"Análise Técnica\",\r\n \"EM PROCESSAMENTO\": \"Em Processamento\",\r\n \"RECEBIDO\": \"Recebido\",\r\n \"RECOLHIDO\": \"Recolhido\",\r\n \"RESULTADO LIBERADO\": \"Liberado\",\r\n \"PENDÊNCIA TÉCNICA\": \"Pendente\",\r\n \"RECOLETA\": \"Recoleta\"\r\n}\r\n\r\nexport const STAGE_COLOR_CODE = {\r\n \"CADASTRO\": \"#4DA9FF\",\r\n \"CADASTRADO\": \"#4DA9FF\",\r\n \"EM ANÁLISE TÉCNICA\": \"#72CF46\",\r\n \"EM PROCESSAMENTO\": \"#ff4cff\",\r\n \"RECEBIDO\": \"#5A85FF\",\r\n \"RECOLHIDO\": \"#0030B6\",\r\n \"RESULTADO LIBERADO\": \"#13CACA\",\r\n \"PENDÊNCIA TÉCNICA\": \"#E58148\",\r\n \"RECOLETA\": \"#27D2F8\",\r\n \"Default\": '#545772'\r\n}\r\n\r\nexport const UNIT_IMG_CARD = {\r\n 'NTO': unitNTOCard,\r\n \"NTHNO\": unitGeneralCard,\r\n \"NTHCE\": unitGeneralCard,\r\n \"NTOGO\": unitGeneralCard,\r\n \"SOLUCAO\": unitGeneralCard,\r\n \"NTOSP\": unitGeneralCard,\r\n \"NTARJ\": unitGeneralCard,\r\n \"NTADLE\": unitGeneralCard,\r\n \"NTBH\": unitGeneralCard,\r\n}\r\n","var _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9, _circle10, _circle11, _circle12, _circle13, _circle14, _circle15, _circle16, _circle17, _circle18, _circle19, _circle20;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDna(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.4516,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.5s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"0s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.5s\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.4516,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.5s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.5s\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16.129,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.7s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.2s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.7s\"\n }))), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16.129,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.7s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.2s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.7s\"\n }))), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25.8065,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.9s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.4s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.9s\"\n }))), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25.8065,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.9s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.4s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.9s\"\n }))), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 35.4839,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.1s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.6s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.1s\"\n }))), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 35.4839,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.1s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.6s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.1s\"\n }))), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 45.1613,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.3s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-0.8s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.3s\"\n }))), _circle10 || (_circle10 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 45.1613,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.3s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.8s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.3s\"\n }))), _circle11 || (_circle11 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 54.8387,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.5s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.5s\"\n }))), _circle12 || (_circle12 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 54.8387,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.5s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.5s\"\n }))), _circle13 || (_circle13 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 64.5161,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.7s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.2s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.7s\"\n }))), _circle14 || (_circle14 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 64.5161,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.7s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.2s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.7s\"\n }))), _circle15 || (_circle15 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 74.1935,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.9s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.4s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.9s\"\n }))), _circle16 || (_circle16 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 74.1935,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.9s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.4s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.9s\"\n }))), _circle17 || (_circle17 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 83.871,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.1s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.6s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.1s\"\n }))), _circle18 || (_circle18 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 83.871,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-3.1s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.6s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.1s\"\n }))), _circle19 || (_circle19 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 93.5484,\n cy: 50,\n r: 3,\n fill: \"#4dcfff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.3s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-1.8s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#4dcfff;#3167ff;#4dcfff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.3s\"\n }))), _circle20 || (_circle20 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 93.5484,\n cy: 50,\n r: 3,\n fill: \"#ff1fff\"\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n values: \"2.4000000000000004;3.5999999999999996;2.4000000000000004\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-3.3s\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n keyTimes: \"0;0.5;1\",\n values: \"32;68;32\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.8s\",\n keySplines: \"0.5 0 0.5 1;0.5 0 0.5 1\",\n calcMode: \"spline\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n keyTimes: \"0;0.5;1\",\n values: \"#ff1fff;#8b27ff;#ff1fff\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n begin: \"-2.3s\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDna);\nexport default __webpack_public_path__ + \"static/media/dna.fab2b247.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\r\nimport { withRouter } from \"react-router\";\r\nimport { ReactComponent as DNAIcon } from \"../assets/img/dna.svg\";\r\n\r\nclass LoadDNA extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(LoadDNA);\r\n","export function sendEvent(eventName, data) {\r\n var event = new CustomEvent(eventName, { detail: data });\r\n window.dispatchEvent(event);\r\n\r\n return true;\r\n}\r\nexport const searchIndex = [\r\n 'PatientName', \r\n 'OrderId',\r\n 'Exam',\r\n 'EstimatedResultDate',\r\n 'Urgency',\r\n 'EventStage',\r\n 'ProductionUnitName'\r\n ]\r\n\r\nexport function filterPois(pois, mapId, categoryId) {\r\n if (pois && mapId && Object.keys(pois).length > 0 && categoryId) {\r\n let reducedMapId = getFloorIdByPlaceId(mapId);\r\n for (const index in pois) {\r\n const poi = pois[index];\r\n\r\n if (poi.categoryId != categoryId || poi.floor != reducedMapId) {\r\n delete pois[index];\r\n }\r\n }\r\n return pois;\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nexport function filterPoiByName(pois, poiName){\r\n if(pois && poiName && Object.keys(pois).length > 0){\r\n for(let index in pois){\r\n let poi = pois[index]\r\n if(poi.title === poiName){\r\n return poi;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function getFloorIdByPlaceId(fullId) {\r\n if (!fullId || fullId.indexOf(\"-floor\") < 0) {\r\n return null;\r\n }\r\n return fullId.replace(/.*-floor/g, \"\").replace(/_.*/g, \"\");\r\n}\r\n\r\nexport function getEmbedded() {\r\n const isEmbedded = localStorage.getItem(\"embedded\");\r\n if (isEmbedded === \"true\") {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function setEmbeddedFromLocalStorage(isEmbedded) {\r\n localStorage.setItem(\"embedded\", isEmbedded);\r\n}\r\n\r\nexport function transformCoordinatesToLeaflet(coords){\r\n let x = coords[0];\r\n let y = global.imageObj.height - coords[1];\r\n let result = [y,x];\r\n\r\n if(coords.length>2){\r\n result.push(coords[2]);\r\n } else {\r\n result[2] = 0;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function getCoordinateDirection(lngOrigin, lngDestination){\r\n if(lngOrigin !== null && lngDestination!== null)\r\n {\r\n if(lngOrigin <= lngDestination){\r\n return 'back';\r\n }else{\r\n return 'go';\r\n }\r\n }\r\n}\r\n\r\nfunction calculateCurvePointControl (pInitial, pFinal, radius, flip=false){\r\n\r\n if(flip){\r\n let auxPoint = pFinal;\r\n pFinal = pInitial;\r\n pInitial = auxPoint;\r\n }\r\n\r\n let offsetX = pFinal.x - pInitial.x,\r\n offsetY = pFinal.y - pInitial.y;\r\n\r\n let phi = Math.asin(1/(2*radius));\r\n let h = radius*Math.cos(phi);\r\n\r\n let pointerX = pInitial.x + offsetX/2 - h*(offsetY/1),\r\n pointerY = pInitial.y + offsetY/2 + h*(offsetX/1);\r\n\r\n return {x: pointerX, y: pointerY}\r\n}\r\n\r\nexport function calculateCurvePoints(accuracy = 100, pInitial ,pFinal, radius = 0.6, flip = false){\r\n const tFator = 1 / accuracy;\r\n let t = 0;\r\n let pointers = [];\r\n let pMiddle = calculateCurvePointControl(pInitial, pFinal, radius, flip);\r\n pointers.push([pInitial.x, pInitial.y]);\r\n while (t < 0.998) {\r\n t += tFator;\r\n let bx = 2 * (pMiddle.x - pInitial.x),\r\n ax = pFinal.x - pInitial.x - bx;\r\n\r\n let by = 2 * (pMiddle.y - pInitial.y),\r\n ay = pFinal.y - pInitial.y - by;\r\n \r\n let x = (ax * t**2) + (bx * t) + pInitial.x;\r\n let y = (ay * t**2) + (by * t) + pInitial.y;\r\n\r\n pointers.push([ x, y])\r\n }\r\n pointers.push([pFinal.x, pFinal.y]);\r\n return pointers;\r\n}\r\n\r\nexport function addPaddingInMap(paddings = {}){\r\n if(global.L){\r\n if(paddings){\r\n let paddingRightFactor = paddings.right ? paddings.right/100 : 0;\r\n let paddingLeftFactor = paddings.left ? paddings.left/100 : 0;\r\n let paddingTopFactor = paddings.top ? paddings.top/100 : 0;\r\n let paddingBottomFactor = paddings.bottom ? paddings.bottom/100 : 0;\r\n global.L.Map.prototype.getSize = function getSize() {\r\n if (!this._size || this._sizeChanged) {\r\n this._size = new global.L.Point(\r\n this._container.clientWidth + (this._container.clientWidth * (paddingLeftFactor - paddingRightFactor)) || 0,\r\n this._container.clientHeight + (this._container.clientHeight * (paddingTopFactor - paddingBottomFactor)) || 0);\r\n \r\n this._sizeChanged = false;\r\n }\r\n return this._size.clone();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function normalizeJSON(json){\r\n let jsonString = JSON.stringify(json);\r\n let correctJson = jsonString.replace(/(\\\\r\\\\n|\\\\n|\\\\r|\\\\t|\\\\)/g, \"\");\r\n try {\r\n return JSON.parse(correctJson);\r\n } catch (error) {\r\n correctJson = correctJson.substring(1, correctJson.length - 1);\r\n return JSON.parse(correctJson);\r\n }\r\n}\r\n\r\nexport function parseDate(date){\r\n if(!date) {\r\n return null;\r\n }\r\n let parsedDate = new Date();\r\n let tempDate = date.split(' ');\r\n let year = tempDate[0].split('-')[0];\r\n let month = tempDate[0].split('-')[1];\r\n let day = tempDate[0].split('-')[2];\r\n let hour = tempDate[1].split(':')[0];\r\n let minutes = tempDate[1].split(':')[1];\r\n let seconds = tempDate[1].split(':')[2];\r\n parsedDate.setYear(parseInt(year));\r\n parsedDate.setMonth(parseInt(month));\r\n parsedDate.setDate(parseInt(day));\r\n parsedDate.setHours(parseInt(hour));\r\n parsedDate.setMinutes(parseInt(minutes));\r\n parsedDate.setSeconds(parseInt(seconds));\r\n \r\n return parsedDate.getTime();\r\n}\r\n\r\nexport function isAlphanumericOrderId(value){\r\n if(value && value.length && value.length === 7){\r\n let regexp = new RegExp(/^(?=.*?\\d)(?=.*?[a-zA-Z])[a-zA-Z\\d]+$/);\r\n let isValidAlphanumereciOrderId = regexp.test(value);\r\n\r\n return isValidAlphanumereciOrderId;\r\n } else {\r\n return null;\r\n }\r\n}","export const HISTORY_ROUTES = {\r\n \"Recebido-Em Processamento\": [\r\n [2370,3150],\r\n [2334,3150],\r\n [1758,3156],\r\n [1761,3075],\r\n [1978,3075],\r\n [2117,3067],\r\n [2147,3067],\r\n [2171,3078],\r\n [2258,3078],\r\n [2485,3043],\r\n [2439,2528],\r\n [2436,2419],\r\n [1769,2420],\r\n [1768,2470],\r\n [1730,2470],\r\n [1730,2485],\r\n [1216,2485],\r\n [1284,1993],\r\n [1850,1993],\r\n ],\r\n \"Recebido-Pendência Técnica\":[\r\n [2370,3150],\r\n [2925,3150],\r\n [2890,2940],\r\n [3150,2940],\r\n [3125,2792],\r\n [3160,2792],\r\n ],\r\n \"Recebido-Recoleta\":[\r\n [2370,3150],\r\n [2925,3150],\r\n [2890,2940],\r\n [3150,2940],\r\n [3100,2665],\r\n [3310,2665]\r\n ],\r\n \"Recebido-Em Análise Técnica\":[\r\n [2370,3150],\r\n [2334,3150],\r\n [1758,3156],\r\n [1761,3075],\r\n [1978,3075],\r\n [2117,3067],\r\n [2147,3067],\r\n [2171,3078],\r\n [2258,3078],\r\n [2485,3043],\r\n [2439,2528],\r\n [2436,2419],\r\n [1769,2420],\r\n [1768,2470],\r\n [1730,2470],\r\n [1730,2485],\r\n [1216,2485],\r\n [1346,1507],\r\n [1650,1506],\r\n [1671,1160],\r\n [2090,1160],\r\n [2090,1020],\r\n [2044,1020]\r\n ],\r\n \"Recebido-Resultado Liberado\":[\r\n [2370,3150],\r\n [1755,3151],\r\n [1766,3073],\r\n [1988,3073],\r\n [2107,3066],\r\n [2143,3065],\r\n [2170,3076],\r\n [2258,3077],\r\n [2458,3047],\r\n [2485,3046],\r\n [2439,2537],\r\n [2435,2419],\r\n [1770,2420],\r\n [1768,2486],\r\n [1217,2485],\r\n [1346,1507],\r\n [1650,1506],\r\n [1671,1160],\r\n [2397,1160],\r\n [2383,1020],\r\n [2343,1020],\r\n ],\r\n \r\n \"Em Processamento-Em Análise Técnica\":[\r\n [1850,1993],\r\n [1284,1992],\r\n [1346,1505],\r\n [1650,1505],\r\n [1671,1180],\r\n [2100,1180],\r\n [2100,1020],\r\n [2044,1020]\r\n ],\r\n \"Em Processamento-Pendência Técnica\":[\r\n [1850,1993],\r\n [1955,1993],\r\n [1955,2200],\r\n [2489,2200],\r\n [2502,2354],\r\n [2550,2354],\r\n [2558,2455],\r\n [2638,2454],\r\n [2706,3015],\r\n [2900,3015],\r\n [2890,2940],\r\n [3155,2940],\r\n [3125,2795],\r\n [3125,2792],\r\n [3160,2792],\r\n ],\r\n \"Em Processamento-Recoleta\":[\r\n [1850,1993],\r\n [1955,1993],\r\n [1955,2200],\r\n [2489,2200],\r\n [2502,2354],\r\n [2550,2354],\r\n [2558,2455],\r\n [2638,2454],\r\n [2706,3015],\r\n [2900,3015],\r\n [2890,2940],\r\n [3155,2940],\r\n [3125,2795],\r\n [3100,2665],\r\n [3310,2665],\r\n ],\r\n \"Em Processamento-Resultado Liberado\":[\r\n [1850,1993],\r\n [1284,1992],\r\n [1345,1508],\r\n [1650,1506],\r\n [1671,1160],\r\n [2397,1160],\r\n [2383,1020],\r\n [2343,1020],\r\n ],\r\n\r\n \"Pendência Técnica-Em Processamento\":[\r\n [3160,2792],\r\n [3125,2792],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1955,1993], \r\n [1850,1993],\r\n ],\r\n \"Pendência Técnica-Em Análise Técnica\":[\r\n [3160,2792],\r\n [3125,2792],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1950,1170],\r\n [2100,1170],\r\n [2100,1020],\r\n [2044,1020],\r\n ],\r\n \"Pendência Técnica-Recoleta\":[\r\n [3160,2792],\r\n [3142,2792],\r\n [3120,2685],\r\n [3315,2685],\r\n [3310,2665], \r\n ],\r\n \"Pendência Técnica-Resultado Liberado\":[\r\n [3160,2792],\r\n [3125,2792],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1950,1170],\r\n [2397,1170],\r\n [2383,1020],\r\n [2343,1020],\r\n ],\r\n\r\n \"Recoleta-Pendência Técnica\":[\r\n [3310,2665],\r\n [3315,2685],\r\n [3120,2685],\r\n [3142,2792],\r\n [3160,2792],\r\n ],\r\n \"Recoleta-Em Processamento\":[\r\n [3310,2665],\r\n [3100,2665],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1955,1993], \r\n [1850,1993],\r\n ],\r\n \"Recoleta-Em Análise Técnica\":[\r\n [3310,2665],\r\n [3100,2665],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1950,1170],\r\n [2100,1170],\r\n [2100,1020],\r\n [2044,1020],\r\n ],\r\n \"Recoleta-Resultado Liberado\":[\r\n [3310,2665],\r\n [3100,2665],\r\n [3125,2795],\r\n [3155,2940],\r\n [2890,2940],\r\n [2900,3015],\r\n [2706,3015],\r\n [2638,2454],\r\n [2558,2455],\r\n [2550,2354],\r\n [2502,2354],\r\n [2489,2200],\r\n [1955,2200],\r\n [1950,1170],\r\n [2397,1170],\r\n [2383,1020],\r\n [2343,1020],\r\n ],\r\n\r\n \"Em Análise Técnica-Resultado Liberado\":[\r\n [2044,1020],\r\n [2343,1020],\r\n ],\r\n \"Em Análise Técnica-Pendência Técnica\":[\r\n [2044,1020],\r\n [2100,1020],\r\n [2100,1170],\r\n [1950,1170],\r\n [1955,2200],\r\n [2489,2200],\r\n [2502,2354],\r\n [2550,2354],\r\n [2558,2455],\r\n [2638,2454],\r\n [2706,3015],\r\n [2900,3015],\r\n [2890,2940],\r\n [3155,2940],\r\n [3125,2795],\r\n [3125,2792],\r\n [3160,2792],\r\n ],\r\n \"Em Análise Técnica-Recoleta\":[\r\n [2044,1020],\r\n [2100,1020],\r\n [2100,1170],\r\n [1950,1170],\r\n [1955,2200],\r\n [2489,2200],\r\n [2502,2354],\r\n [2550,2354],\r\n [2558,2455],\r\n [2638,2454],\r\n [2706,3015],\r\n [2900,3015],\r\n [2890,2940],\r\n [3155,2940],\r\n [3125,2795],\r\n [3100,2665],\r\n [3310,2665],\r\n ]\r\n}\r\nexport const HISTORY_ROUTES_FLAT = {\r\n \"Recebido-Em Processamento\": [\r\n [2452,3736],\r\n [1856,3736],\r\n [1856,3655],\r\n [2573,3655],\r\n [2573,2970],\r\n [1848,2970],\r\n [1848,3006],\r\n [1226,3006],\r\n [1226,2341],\r\n [1919,2341],\r\n ],\r\n \"Recebido-Pendência Técnica\":[\r\n [2452,3736],\r\n [3010,3736],\r\n [3010,3500],\r\n [3233,3500],\r\n [3230,3357],\r\n [3322,3357],\r\n ],\r\n \"Recebido-Recoleta\":[\r\n [2452,3736],\r\n [3010,3736],\r\n [3010,3500],\r\n [3233,3500],\r\n [3233,3212],\r\n [3512,3212],\r\n ],\r\n \"Recebido-Em Análise Técnica\":[\r\n [2452,3736],\r\n [1856,3736],\r\n [1856,3655],\r\n [2573,3655],\r\n [2573,2970],\r\n [1848,2970],\r\n [1848,3006],\r\n [1226,3006],\r\n [1226,1548],\r\n [1634,1548],\r\n [1634,880],\r\n [2260,880],\r\n [2260,510],\r\n [2180,510],\r\n ],\r\n \"Recebido-Resultado Liberado\":[\r\n [2452,3736],\r\n [1856,3736],\r\n [1856,3655],\r\n [2573,3655],\r\n [2573,2970],\r\n [1848,2970],\r\n [1848,3006],\r\n [1226,3006],\r\n [1226,1548],\r\n [1634,1548],\r\n [1634,880],\r\n [2702,880],\r\n [2696,512],\r\n [2628,512]\r\n ],\r\n\r\n \"Em Processamento-Em Análise Técnica\":[\r\n [1919,2341],\r\n [1225,2341],\r\n [1225,1545],\r\n [1635,1545],\r\n [1635,880],\r\n [2260,880],\r\n [2260,510],\r\n [2180,510],\r\n ],\r\n \"Em Processamento-Recoleta\":[\r\n [1920,2341],\r\n [2066,2341],\r\n [2066,2646],\r\n [2670,2646],\r\n [2670,2826],\r\n [2737,2826],\r\n [2737,2956],\r\n [2810,2956],\r\n [2810,3610],\r\n [3010,3610],\r\n [3010,3500],\r\n [3233,3500],\r\n [3233,3212],\r\n [3512,3212],\r\n ],\r\n \"Em Processamento-Pendência Técnica\":[\r\n [1920,2341],\r\n [2066,2341],\r\n [2066,2646],\r\n [2670,2646],\r\n [2670,2826],\r\n [2737,2826],\r\n [2737,2956],\r\n [2810,2956],\r\n [2810,3610],\r\n [3010,3610],\r\n [3010,3500],\r\n [3233,3500],\r\n [3233,3357],\r\n [3322,3357],\r\n ],\r\n \"Em Processamento-Resultado Liberado\":[\r\n [1919,2341],\r\n [1226,2341],\r\n [1226,1548],\r\n [1634,1548],\r\n [1634,880],\r\n [2702,880],\r\n [2696,512],\r\n [2628,512]\r\n ],\r\n\r\n \"Pendência Técnica-Em Processamento\":[\r\n [3322,3357],\r\n [3233,3357],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,2341],\r\n [1920,2341],\r\n ],\r\n \"Pendência Técnica-Em Análise Técnica\":[\r\n [3322,3357],\r\n [3233,3357],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,880],\r\n [2280,880],\r\n [2280,510],\r\n [2180,510],\r\n ],\r\n \"Pendência Técnica-Recoleta\":[\r\n [3322,3357],\r\n [3253,3357],\r\n [3253,3230],\r\n [3512,3230],\r\n [3512,3212],\r\n ],\r\n \"Pendência Técnica-Resultado Liberado\":[\r\n [3322,3357],\r\n [3233,3357],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,880],\r\n [2702,880],\r\n [2696,512],\r\n [2628,512]\r\n ],\r\n\r\n \"Recoleta-Em Processamento\":[\r\n [3512,3212],\r\n [3233,3212],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,2341],\r\n [1920,2341],\r\n ],\r\n \"Recoleta-Em Análise Técnica\":[\r\n [3512,3212],\r\n [3233,3212],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,880],\r\n [2280,880],\r\n [2280,510],\r\n [2180,510],\r\n ],\r\n \"Recoleta-Pendência Técnica\":[\r\n [3512,3212],\r\n [3512,3230],\r\n [3253,3230],\r\n [3253,3357],\r\n [3322,3357],\r\n ],\r\n \"Recoleta-Resultado Liberado\":[\r\n [3512,3212],\r\n [3233,3212],\r\n [3233,3500],\r\n [3010,3500],\r\n [3010,3610],\r\n [2810,3610],\r\n [2810,2956],\r\n [2737,2956],\r\n [2737,2826],\r\n [2670,2826],\r\n [2670,2646],\r\n [2066,2646],\r\n [2066,880],\r\n [2702,880],\r\n [2696,512],\r\n [2628,512]\r\n ],\r\n\r\n \"Em Análise Técnica-Resultado Liberado\":[\r\n [2180,510],\r\n [2628,512]\r\n ],\r\n \"Em Análise Técnica-Pendência Técnica\":[\r\n [2180,510],\r\n [2280,510],\r\n [2280,900],\r\n [2066,900],\r\n [2066,2646],\r\n [2670,2646],\r\n [2670,2826],\r\n [2737,2826],\r\n [2737,2956],\r\n [2810,2956],\r\n [2810,3610],\r\n [3010,3610],\r\n [3010,3500],\r\n [3233,3500],\r\n [3233,3357],\r\n [3322,3357],\r\n ],\r\n \"Em Análise Técnica-Recoleta\":[\r\n [2180,510],\r\n [2280,510],\r\n [2280,900],\r\n [2066,900],\r\n [2066,2646],\r\n [2670,2646],\r\n [2670,2826],\r\n [2737,2826],\r\n [2737,2956],\r\n [2810,2956],\r\n [2810,3610],\r\n [3010,3610],\r\n [3010,3500],\r\n [3233,3500],\r\n [3233,3212],\r\n [3512,3212],\r\n ]\r\n}\r\n\r\nexport const HISTORY_ROUTES_GENERIC = {\r\n \"Recebido-Em Processamento\": [\r\n [2343,3484],\r\n [1510,3480],\r\n [1510,3360],\r\n [1830,3360],\r\n [1970,3350],\r\n [2260,3350],\r\n [2570,3330],\r\n [2545,2924],\r\n [2520,2550],\r\n [2520,2380],\r\n [2140,2380],\r\n [2140,2470],\r\n [1340,2470],\r\n [1412,1756],\r\n [1939,1753],\r\n ],\r\n \"Recebido-Recoleta\":[\r\n [2343,3484],\r\n [1510,3480],\r\n [1510,3360],\r\n [1830,3360],\r\n [1970,3350],\r\n [2260,3350],\r\n [2570,3330],\r\n [2546,2924],\r\n [2533,2732],\r\n [2910,2732]\r\n ],\r\n \"Recebido-Pendência Técnica\":[\r\n [2343,3484],\r\n [1510,3480],\r\n [1510,3360],\r\n [1830,3360],\r\n [1970,3350],\r\n [2260,3350],\r\n [2570,3330],\r\n [2546,2924],\r\n [2660,2924]\r\n ],\r\n \"Recebido-Em Análise Técnica\":[\r\n [2343,3484],\r\n [1510,3480],\r\n [1510,3360],\r\n [1830,3360],\r\n [1970,3350],\r\n [2260,3350],\r\n [2570,3330],\r\n [2545,2924],\r\n [2520,2550],\r\n [2520,2380],\r\n [2140,2380],\r\n [2140,2470],\r\n [1340,2470],\r\n [1412,1756],\r\n [1482,1070],\r\n [1905,1070],\r\n [1914,770],\r\n [1810,770]\r\n ],\r\n \"Recebido-Resultado Liberado\":[\r\n [2343,3484],\r\n [1510,3480],\r\n [1510,3360],\r\n [1830,3360],\r\n [1970,3350],\r\n [2260,3350],\r\n [2570,3330],\r\n [2545,2924],\r\n [2520,2550],\r\n [2520,2380],\r\n [2140,2380],\r\n [2140,2470],\r\n [1340,2470],\r\n [1412,1756],\r\n [1482,1070],\r\n [1905,1070],\r\n [1914,770],\r\n [2095,770]\r\n ],\r\n\r\n \"Em Processamento-Em Análise Técnica\":[\r\n [1939,1753],\r\n [1412,1753],\r\n [1482,1070],\r\n [1905,1070],\r\n [1914,770],\r\n [1810,770]\r\n ],\r\n \"Em Processamento-Resultado Liberado\":[\r\n [1939,1753],\r\n [1412,1753],\r\n [1482,1070],\r\n [1905,1070],\r\n [1914,770],\r\n [2095,770]\r\n ],\r\n \"Em Processamento-Recoleta\":[\r\n [1939,1753],\r\n [2325,1753],\r\n [2330,1870],\r\n [2555,1870],\r\n [2600,2735],\r\n [2905,2735],\r\n ],\r\n \"Em Processamento-Pendência Técnica\" :[\r\n [1939,1753],\r\n [2325,1753],\r\n [2330,1870],\r\n [2555,1870],\r\n [2600,2924],\r\n [2660,2924],\r\n ],\r\n\r\n \"Pendência Técnica-Em Processamento\" :[\r\n [2660,2924],\r\n [2600,2924],\r\n [2555,1870],\r\n [2330,1870],\r\n [2325,1753],\r\n [1939,1753],\r\n ],\r\n \"Pendência Técnica-Recoleta\":[\r\n [2660,2924],\r\n [2610,2924],\r\n [2600,2755],\r\n [2910,2755],\r\n [2905,2730], \r\n ],\r\n \"Pendência Técnica-Em Análise Técnica\":[\r\n [2660,2924],\r\n [2600,2924],\r\n [2555,1870],\r\n [2307,1870],\r\n [2263,770],\r\n [1810,770],\r\n ],\r\n \"Pendência Técnica-Resultado Liberado\":[\r\n [2660,2924],\r\n [2600,2924],\r\n [2555,1870],\r\n [2307,1870],\r\n [2263,770],\r\n [2095,770],\r\n ],\r\n\r\n \"Recoleta-Pendência Técnica\":[\r\n [2905,2730],\r\n [2910,2755],\r\n [2600,2755],\r\n [2610,2924],\r\n [2660,2924],\r\n ],\r\n \"Recoleta-Em Processamento\":[\r\n [2905,2735],\r\n [2600,2735],\r\n [2555,1870],\r\n [2330,1870],\r\n [2325,1753],\r\n [1939,1753],\r\n ],\r\n \"Recoleta-Em Análise Técnica\":[\r\n [2905,2735],\r\n [2600,2735],\r\n [2555,1870],\r\n [2307,1870],\r\n [2263,770],\r\n [1810,770],\r\n ],\r\n \"Recoleta-Resultado Liberado\":[\r\n [2905,2735],\r\n [2600,2735],\r\n [2555,1870],\r\n [2307,1870],\r\n [2263,770],\r\n [2095,770],\r\n ],\r\n\r\n \"Em Análise Técnica-Resultado Liberado\":[\r\n [1810,770],\r\n [2095,770]\r\n ], \r\n \"Em Análise Técnica-Pendência Técnica\":[\r\n [1810,770],\r\n [2263,770],\r\n [2307,1870],\r\n [2555,1870],\r\n [2600,2924],\r\n [2660,2924],\r\n ],\r\n \"Em Análise Técnica-Recoleta\":[\r\n [1810,770],\r\n [2263,770],\r\n [2307,1870],\r\n [2555,1870],\r\n [2600,2735],\r\n [2905,2735]\r\n ]\r\n}\r\nexport const HISTORY_ROUTES_FLAT_GENERIC = {\r\n \"Recebido-Em Processamento\": [\r\n [2280,3674],\r\n [1590,3670],\r\n [1590,3575],\r\n [2423,3575],\r\n [2423,2760],\r\n [2090,2760],\r\n [2090,2800],\r\n [1350,2800],\r\n [1350,2010],\r\n [1890,2010],\r\n ],\r\n \"Recebido-Recoleta\":[\r\n [2280,3674],\r\n [1590,3670],\r\n [1590,3575],\r\n [2423,3575],\r\n [2423,3053],\r\n [2766,3053]\r\n ],\r\n \"Recebido-Pendência Técnica\":[\r\n [2280,3674],\r\n [1590,3670],\r\n [1590,3575],\r\n [2423,3575],\r\n [2423,3225],\r\n [2534,3225]\r\n ],\r\n \"Recebido-Em Análise Técnica\":[\r\n [2280,3674],\r\n [1590,3670],\r\n [1590,3575],\r\n [2423,3575],\r\n [2423,2760],\r\n [2090,2760],\r\n [2090,2800],\r\n [1350,2800],\r\n [1350,2010],\r\n [1350,1070],\r\n [1840,1070],\r\n [1840,580],\r\n [1706,580],\r\n ],\r\n \"Recebido-Resultado Liberado\":[\r\n [2280,3674],\r\n [1590,3670],\r\n [1590,3575],\r\n [2423,3575],\r\n [2423,2760],\r\n [2090,2760],\r\n [2090,2800],\r\n [1350,2800],\r\n [1350,2010],\r\n [1350,1070],\r\n [1840,1070],\r\n [1840,580],\r\n [2062,580],\r\n ],\r\n\r\n \"Em Processamento-Em Análise Técnica\":[\r\n [1889,2004],\r\n [1350,2004],\r\n [1350,1070],\r\n [1840,1070],\r\n [1840,580],\r\n [1706,580],\r\n ],\r\n \"Em Processamento-Resultado Liberado\":[\r\n [1889,2004],\r\n [1350,2004],\r\n [1350,1070],\r\n [1840,1070],\r\n [1840,580],\r\n [2062,580],\r\n ],\r\n \"Em Processamento-Pendência Técnica\":[\r\n [1889,2004],\r\n [2255,2004],\r\n [2255,2133],\r\n [2500,2133],\r\n [2500,3225],\r\n [2534,3225],\r\n ],\r\n \"Em Processamento-Recoleta\":[\r\n [1889,2004],\r\n [2255,2004],\r\n [2255,2133],\r\n [2500,2133],\r\n [2500,3053],\r\n [2766,3053],\r\n ],\r\n\r\n \"Pendência Técnica-Em Processamento\":[\r\n [2534,3225],\r\n [2500,3225],\r\n [2500,2133],\r\n [2255,2133],\r\n [2255,2010],\r\n [1889,2010],\r\n ],\r\n \"Pendência Técnica-Em Análise Técnica\":[\r\n [2534,3225],\r\n [2500,3225],\r\n [2500,2133],\r\n [2280,2133],\r\n [2280,580],\r\n [1706,580],\r\n ],\r\n \"Pendência Técnica-Resultado Liberado\":[\r\n [2534,3225],\r\n [2500,3225],\r\n [2500,2133],\r\n [2280,2133],\r\n [2280,580],\r\n [2062,580],\r\n ],\r\n \"Pendência Técnica-Recoleta\":[\r\n [2534,3225],\r\n [2500,3225],\r\n [2500,3070],\r\n [2766,3070],\r\n [2766,3053],\r\n ],\r\n\r\n \"Recoleta-Em Processamento\":[\r\n [2766,3053],\r\n [2500,3053],\r\n [2500,2133],\r\n [2255,2133],\r\n [2255,2010],\r\n [1889,2010],\r\n ],\r\n \"Recoleta-Em Análise Técnica\":[\r\n [2766,3053],\r\n [2500,3053],\r\n [2500,2133],\r\n [2280,2133],\r\n [2280,580],\r\n [1706,580],\r\n ],\r\n \"Recoleta-Resultado Liberado\":[\r\n [2766,3053],\r\n [2500,3053],\r\n [2500,2133],\r\n [2280,2133],\r\n [2280,580],\r\n [2062,580],\r\n ],\r\n \"Recoleta-Pendência Técnica\":[\r\n [2766,3053],\r\n [2766,3070],\r\n [2500,3070],\r\n [2500,3225],\r\n [2534,3225],\r\n ],\r\n\r\n \"Em Análise Técnica-Resultado Liberado\":[\r\n [1706,580],\r\n [2062,580],\r\n ], \r\n \"Em Análise Técnica-Pendência Técnica\":[\r\n [1706,580],\r\n [2280,580],\r\n [2280,2133],\r\n [2500,2133],\r\n [2500,3225],\r\n [2534,3225],\r\n ],\r\n \"Em Análise Técnica-Recoleta\":[\r\n [1706,580],\r\n [2280,580],\r\n [2280,2133],\r\n [2500,2133],\r\n [2500,3053],\r\n [2766,3053],\r\n ],\r\n}","export default __webpack_public_path__ + \"static/media/test-tube-right.218b7cc4.gif\";","export default __webpack_public_path__ + \"static/media/test-tube-left.fd8ba482.gif\";","import testTubeRight from \"../assets/img/test-tube-right.gif\";\r\nimport testTubeLeft from \"../assets/img/test-tube-left.gif\";\r\nimport matsRight from \"../assets/img/mats-right.gif\";\r\nimport matsLeft from '../assets/img/mats-left.gif';\r\nimport matsExternal from '../assets/img/mats-external.gif';\r\nimport matsBottom from \"../assets/img/mats-bottom.gif\";\r\nimport packagesGif from \"../assets/img/packages.gif\";\r\n\r\n//Generic map\r\nimport matsGeneric from '../assets/img/mats-generic-map.gif';\r\nimport testTubeGeneric from '../assets/img/test-tubes-generic-map.gif';\r\nimport packagesGeneric from '../assets/img/packages-generic.gif';\r\n\r\nexport const MAP_ANIMATIONS = {\r\n NTO: {\r\n matsRight:{\r\n gifPath: matsRight,\r\n coords: [\r\n [1334, 2692],\r\n [1672, 2389],\r\n ]\r\n },\r\n matsLeft:{\r\n gifPath: matsLeft,\r\n coords: [\r\n [1468, 1258],\r\n [2020, 917],\r\n ]\r\n },\r\n matsExternal: {\r\n gifPath: matsExternal,\r\n coords: [\r\n [146, 3400],\r\n [914, 1681],\r\n ] \r\n },\r\n matsBottom: {\r\n gifPath: matsBottom,\r\n coords: [\r\n [660, 2547],\r\n [1530, 1722],\r\n ]\r\n },\r\n testTubeRight: {\r\n gifPath: testTubeRight,\r\n coords: [\r\n [619, 3126],\r\n [2816, 1626],\r\n ]\r\n },\r\n testTubeLeft: {\r\n gifPath: testTubeLeft,\r\n coords: [\r\n [1183, 1910],\r\n [2714, 935],\r\n ]\r\n },\r\n packages: {\r\n gifPath: packagesGif,\r\n coords: [\r\n [505, 3010],\r\n [910, 1720],\r\n ]\r\n }\r\n },\r\n GENERIC: {\r\n mats:{\r\n gifPath: matsGeneric,\r\n coords: [\r\n [275, 3189],\r\n [1774, 1489],\r\n ]\r\n },\r\n testTubes:{\r\n gifPath: testTubeGeneric,\r\n coords: [\r\n [525, 914],\r\n [3524, 2613],\r\n ]\r\n },\r\n packages:{\r\n gifPath: packagesGeneric,\r\n coords: [\r\n [296, 3292],\r\n [796, 1492],\r\n ]\r\n },\r\n }\r\n}","export default \"data:image/gif;base64,R0lGODdhLwFTAXcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgAAACwAAAAALwFTAYEAAACHhIlUUWYAAAAC/4SPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNarfcrvcLDovH5LL5jE6r1+y2+w2Py+f0uv2Oz+v3/L7/DxgoOEhYaHiImKi4yNjo+AgZKTlJWWl5iZmpucnZ6fkJGio6SlpqeoqaqrrK2ur6ChsrO0tba3uLm6u7y9vr+wscLDxMXGx8jJysvMzc7PwMHS09TV1tfY2drb3N3e39DR4uPk5ebn6Onq6+zt7u/g4fLz9PX29/j5+vv8/f7/8PMKDAgQQLGjyIMKHChQwbOnwIMaLEiRQrWryIMaPGjf8cO3r8CDKkyJEkS5o8iSmAypUsW7IE6TKmS5Q0NQkQsOBmTpwKdPbkmcCnQKEIiB4wagApAKVK+zEFWhTqUalJqS616tTq051cfxLc6jVsUK1Y+YEd2xWtWDcy26okdDZqWrlr27htC5fs3Kl7q37VW9dv4Kt/+xIeHBdgYsFqG9MdCtgxX8Rl9y0+LJnx44CXO0fm/HlyZsyb2d6NOciz4ctrTqMWpJqy4Zq0a9u+jTu3JdczP/JuqTu48OHEixvf+Pul7+Rvjzt/Dj269OnomDf3aD0A9e3cu3v/Dv5WdpjWw5s/jz69+vXs27t/Dz++/Pn069u/jz+//v38+/tx/w9ggAIOSGCBBh6IYIIKLshggw4+CGGEEk5IYYUWXohhhhpuyGGHHn4IYogijkhiiSaeiGKKKq7IYosuvghjjDLOSGONNt6IY4467shjjz7+CGSQQg5JZJFGHolkkkouyWSTTj4JZZRSTklllVbiUwAAIfkECQoAAAAsOACPALgAOACBAAAAh4SJVFFmAAAAAv+Ej6nL7Q+jnLSmgLPeOgqxfCGoiCWZmNbKtu7BxZyHIqpdH7eeG/sLDAqHo+LJmOoBfsSm80lD4qQ8KvSKvTK3Sq41Cw6/vMdy8itOq6Pmabv6Xsvn8WX3/mXS92vyue7HJ+ggU4gBEQj3t+g26LhgWIiIB0jJ+IgJlehj2eiZCUq0aZfXGXoKNKpqitq6slqK5jo7GVspS5tre8m5q/sLHIwVKSNsDEUcc7zM3Oz8DB0tPU1dbX2Nna29TZ08w93t3QFOXm5+jp6uvs7e7v4OHz8nPi6fS59hr7/P3+//DzCgwIEEC4bBd8jgIIQBFDp8CDGixIkUK1q8KJAhxoMDCAsAACH5BAkKAAAALDgAkAC3ADEAgQAAAFRRZoeEiQAAAAL/TIAJpsm9DnyNKguz3rz7D4YigpFSdV6ps5pZOcbyTNfq20b4PuWwDQzaBMSi8Wjs8VDLm/IpjEplyCoS6mRiWU3u9AsOZ8derZnsEqvXQJjbB++m2fQ66C3Xbedou/+vd1bWh7cHeMhWKMg32MiICCmmSBhn+BOJKTTpGEiZlwlqJUrkaVm52AmqCjAqWoq6+Zi6SisTO4t7e1nL26F7+trXO7zxm2dMnKy8zNzs/AwdLT1NPdJqVZ09dH2l7f0NHi4+Tl5ufo6err7O3q7O3e3uDX8kb3+Pn6+/z9/v/w8woEB99JIMVFawyMGFDBs6fAgxosSJFCtaTJCQ1EVIBBkFFAAAOw==\"","export default \"data:image/gif;base64,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\"","export default __webpack_public_path__ + \"static/media/mats-external.fa9864ec.gif\";","export default \"data:image/gif;base64,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\"","export default __webpack_public_path__ + \"static/media/packages.11c67d87.gif\";","export default __webpack_public_path__ + \"static/media/mats-generic-map.54e143e5.gif\";","export default __webpack_public_path__ + \"static/media/test-tubes-generic-map.d09f7738.gif\";","export default __webpack_public_path__ + \"static/media/packages-generic.712164fb.gif\";","import \"zapt-maps-sdk/dist/css/map.css\";\r\nimport videoMapNTO from \"../assets/video/Hermes_pardini_Introv4.mp4\";\r\nimport videoGeneric from \"../assets/video/generic-map.mp4\";\r\nimport {\r\n MAIN_ID,\r\n MAIN_MAP,\r\n PRODUCTION_UNIT_HAS_MAP,\r\n ZAPT_API_KEY,\r\n PRODUCTION_UNIT_CATEGORY,\r\n PRODUCTION_UNIT_FEDERATIONS,\r\n PRODUCTION_UNIT_ALIAS,\r\n STAGES_CATEGORY,\r\n STAGE_COLORS,\r\n STAGE_SHORT,\r\n STAGE_ICONS,\r\n UNIT_IMG_CARD,\r\n STAGE_COLORS_UPPERCASE,\r\n STAGE_COLOR_CODE,\r\n STATES_CATEGORY,\r\n} from \"../constants\";\r\n\r\nimport { MAP_ANIMATIONS } from \"../animations/mapAnimations\";\r\nimport { HISTORY_ROUTES_GENERIC, HISTORY_ROUTES_FLAT, HISTORY_ROUTES_FLAT_GENERIC, HISTORY_ROUTES } from '../routes/historyRoutes'\r\nimport React, { Component } from \"react\";\r\n\r\nimport ZaptMapAPI from \"zapt-maps-sdk\";\r\nimport { withRouter } from \"react-router\";\r\nimport {\r\n filterPoiByName,\r\n filterPois,\r\n sendEvent,\r\n transformCoordinatesToLeaflet,\r\n getCoordinateDirection,\r\n calculateCurvePoints,\r\n addPaddingInMap,\r\n} from \"../util/utils\";\r\nimport userService from \"../services/UserService\";\r\nimport LoadDNA from \"./LoadDNA\";\r\nimport moment from \"moment\";\r\nimport imageCardRegistered from '../assets/img/PIN-NTS/pin-card-registered.png';\r\nclass Map extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n videoIsPlaying: false,\r\n videoVisible: false,\r\n videoPath: \"\",\r\n loading: true,\r\n mapId: \"\",\r\n flatMapId: \"\",\r\n flatMapExternalId: \"\",\r\n mapExternalId: \"\",\r\n placeId: \"\",\r\n mapSelectedType: \"3D\",\r\n currentMapId: \"\",\r\n mainMapId: \"\",\r\n mainMapExternalId: MAIN_MAP,\r\n mainFlatMapId: \"\",\r\n exams: null,\r\n examHistory: null,\r\n isMapInitialized: false,\r\n examOnHighlight: null,\r\n windowWidth: window.innerWidth,\r\n isStageHighlightOn: false,\r\n fullLegend: false,\r\n };\r\n\r\n this.containerHeight = window.innerHeight;\r\n this.zaptMapAPI = null;\r\n this.markers = {};\r\n this.logisticRoutes = [];\r\n this.mapBounds = [];\r\n this.contextChangeRequestPool = Promise.resolve();\r\n this.isOnUnitCardOver = false;\r\n this.clearLogisticLabelsFn = this.clearLogisticLabels.bind(this);\r\n this.renderLegendFn = this.renderLegend.bind(this);\r\n this.highlightStageFn = this.highlightStage.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.startListeningEvents();\r\n sendEvent(\"load-first-map\");\r\n }\r\n\r\n componentWillUnmount() {\r\n this.stopListeningEvents();\r\n }\r\n\r\n startListeningEvents() {\r\n window.addEventListener(\r\n \"load-first-map\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n window.addEventListener(\"draw-exams\", this.changeContextHandler.bind(this));\r\n window.addEventListener(\r\n \"draw-history\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n window.addEventListener(\"highlight-exam\", this.highlightExam.bind(this));\r\n window.addEventListener(\"reset-map-zoom\", this.resetMapZoom.bind(this));\r\n\r\n this.highlightUnitFn = (event) => {\r\n if (event && event.detail) {\r\n let [productionUnit, focus] = event.detail;\r\n this.highlightUnit(productionUnit, focus);\r\n }\r\n };\r\n\r\n window.addEventListener(\"highlight-unit\", this.highlightUnitFn.bind(this));\r\n window.addEventListener(\"highlight-stage\", this.changeContextHandler.bind(this));\r\n window.addEventListener(\r\n \"reset-markers\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n }\r\n\r\n stopListeningEvents() {\r\n window.removeEventListener(\r\n \"load-first-map\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n window.removeEventListener(\r\n \"draw-exams\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n window.removeEventListener(\r\n \"draw-history\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n window.removeEventListener(\"highlight-exam\", this.highlightExam.bind(this));\r\n window.removeEventListener(\r\n \"highlight-unit\",\r\n this.highlightUnitFn.bind(this)\r\n );\r\n window.removeEventListener(\"reset-map-zoom\", this.resetMapZoom.bind(this));\r\n window.removeEventListener(\r\n \"highlight-stage\",\r\n this.highlightStageFn\r\n );\r\n window.removeEventListener(\r\n \"reset-markers\",\r\n this.changeContextHandler.bind(this)\r\n );\r\n global.zapt && global.zapt.map &&\r\n global.zapt.map.off('move viewreset moveend zoomanim', this.renderLegendFn);\r\n }\r\n\r\n setMapContainer() {\r\n if (document.getElementById(\"header\")) {\r\n this.containerHeight =\r\n window.innerHeight - document.getElementById(\"header\").clientHeight;\r\n } else {\r\n this.containerHeight = window.innerHeight;\r\n }\r\n }\r\n\r\n async loadFirstMap() {\r\n return new Promise(async (resolve, reject) => {\r\n let requestChangeContext = async (resolve) => {\r\n await this.handleMapView();\r\n resolve();\r\n };\r\n this.setMapContainer();\r\n await this.handleMapView();\r\n this.setState(\r\n { isMapInitialized: true },\r\n requestChangeContext.bind(this, resolve)\r\n );\r\n });\r\n }\r\n\r\n serialize = (fn) => {\r\n return (...args) => {\r\n this.contextChangeRequestPool = this.contextChangeRequestPool.then(() =>\r\n fn(...args)\r\n );\r\n this.contextChangeRequestPool.catch((error) => {\r\n console.error(\"Error on serialize function execution: \", error.message);\r\n });\r\n return this.contextChangeRequestPool;\r\n };\r\n };\r\n\r\n changeContextHandler = this.serialize(\r\n (() => {\r\n return async (args) => {\r\n if (args && args.type === \"reset-markers\") {\r\n if (args.detail && args.detail.update) {\r\n !this.state.isStageHighlightOn && (await this.handleMapView(false));\r\n } else {\r\n await this.handleMapView(false);\r\n this.setState({ isStageHighlightOn: false });\r\n }\r\n return;\r\n } else if (args && args.type === \"draw-exams\") {\r\n await this.setExams(args);\r\n return;\r\n } else if(args && args.type === \"highlight-stage\"){\r\n await this.highlightStageFn(args);\r\n return;\r\n }\r\n else if (args && args.type === \"draw-history\") {\r\n await this.setExamHistory(args);\r\n return;\r\n } else if (args && args.type === \"load-first-map\") {\r\n await this.loadFirstMap();\r\n return;\r\n }\r\n };\r\n })()\r\n );\r\n\r\n async loadMap(externalMapId) {\r\n\r\n if (\r\n externalMapId &&\r\n (externalMapId !== this.state.currentExternalMapId)\r\n ) {\r\n this.setState({ loading: true });\r\n await this.initializeMap(externalMapId);\r\n this.setState({\r\n loading: false,\r\n videoVisible: false,\r\n });\r\n } else if (\r\n this.state.mapExternalId !== MAIN_MAP\r\n ) {\r\n this.setState({ loading: true, mapExternalId: MAIN_MAP });\r\n this.state.mapSelectedType === \"FLAT\"\r\n ? await this.initializeMap(`${MAIN_MAP}-FLAT`)\r\n : await this.initializeMap(`${MAIN_MAP}`);\r\n this.setState({ loading: false });\r\n }\r\n \r\n this.checkIfIsDefaultProductionUnitMap() &&\r\n global.zapt.map.on('move viewreset moveend zoomanim', this.renderLegendFn);\r\n return true;\r\n }\r\n\r\n async initializeMap(externalMapId) {\r\n if(this.state.windowWidth <= 820){\r\n addPaddingInMap({left: 0});\r\n }else{\r\n addPaddingInMap({left: 36});\r\n }\r\n if (externalMapId) {\r\n try {\r\n let mainExternalId = externalMapId.replace(\"-FLAT\", \"\");\r\n\r\n if(!PRODUCTION_UNIT_HAS_MAP[mainExternalId]){\r\n if(this.checkIfIsFlatMapId(externalMapId)){\r\n externalMapId = \"GENERIC-FLAT\"\r\n }else{\r\n externalMapId = \"GENERIC\"\r\n }\r\n }\r\n\r\n if (this.zaptMapAPI) {\r\n let mapId = null;\r\n let flatMatId = null;\r\n\r\n if (!this.checkIfIsFlatMapId(externalMapId)) {\r\n mapId = await this.zaptMapAPI.Data.getMapId(\r\n this.state.placeId,\r\n externalMapId\r\n );\r\n\r\n flatMatId = await this.zaptMapAPI.Data.getMapId(\r\n this.state.placeId,\r\n externalMapId + \"-FLAT\"\r\n );\r\n\r\n this.setState({\r\n mapId: mapId,\r\n flatMapId: flatMatId,\r\n currentMapId: mapId,\r\n currentExternalMapId: externalMapId,\r\n flatMapExternalId: externalMapId + \"-FLAT\",\r\n mapExternalId: mainExternalId,\r\n mapSelectedType: \"3D\",\r\n });\r\n\r\n await this.zaptMapAPI.setMapId(mapId);\r\n this.updateLimitMapBounds(30);\r\n } else {\r\n flatMatId = await this.zaptMapAPI.Data.getMapId(\r\n this.state.placeId,\r\n externalMapId\r\n );\r\n\r\n this.setState({\r\n flatMapId: flatMatId,\r\n currentMapId: flatMatId,\r\n currentExternalMapId: externalMapId,\r\n flatMapExternalId: externalMapId,\r\n mapExternalId: mainExternalId,\r\n mapSelectedType: \"FLAT\",\r\n });\r\n\r\n await this.zaptMapAPI.setMapId(flatMatId);\r\n this.updateLimitMapBounds(25);\r\n }\r\n } else {\r\n this.zaptMapAPI = new ZaptMapAPI(ZAPT_API_KEY);\r\n\r\n let placeId = await this.zaptMapAPI.Data.getPlaceId(MAIN_ID);\r\n\r\n if (!placeId) {\r\n return console.error(\r\n \"Error on map initialization: invalid or empty place id.\"\r\n );\r\n }\r\n\r\n this.setState({ placeId: placeId });\r\n\r\n let mapId = await this.zaptMapAPI.Data.getMapId(\r\n placeId,\r\n externalMapId\r\n );\r\n let flatMatId = await this.zaptMapAPI.Data.getMapId(\r\n placeId,\r\n externalMapId + \"-FLAT\"\r\n );\r\n\r\n this.setState({\r\n mapId: mapId,\r\n flatMapId: flatMatId,\r\n currentMapId: mapId,\r\n currentExternalMapId: externalMapId,\r\n flatMapExternalId: externalMapId + \"-FLAT\",\r\n mapSelectedType: \"3D\",\r\n });\r\n\r\n if (externalMapId === MAIN_MAP) {\r\n this.setState({\r\n mainMapId: mapId,\r\n mainFlatMapId: flatMatId,\r\n });\r\n }\r\n\r\n let mapParams = {\r\n mapContainerId: \"zapt-map\",\r\n disableShowInterestPopUponClick: true,\r\n height: this.containerHeight,\r\n disableCache: true,\r\n showPins: false,\r\n disablePopUpDynamicPin: true,\r\n };\r\n\r\n await this.zaptMapAPI.initialize(mapId, mapParams);\r\n }\r\n } catch (error) {\r\n console.error(\"Unexpected Error on map initialization:\", error.message);\r\n }\r\n } else {\r\n console.error(\r\n \"Error on map initialization: invalid or empty external id.\"\r\n );\r\n }\r\n }\r\n\r\n addAnimationsInMap(productionUnit) {\r\n if (\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map &&\r\n this.state.mapSelectedType &&\r\n this.state.mapSelectedType !== \"FLAT\" &&\r\n productionUnit !== \"HP\"\r\n ) {\r\n \r\n let animations = null;\r\n if(PRODUCTION_UNIT_HAS_MAP[productionUnit]){\r\n animations = MAP_ANIMATIONS[productionUnit];\r\n }else{\r\n animations = MAP_ANIMATIONS['GENERIC'];\r\n }\r\n if(animations){\r\n for(let animationKey in animations){\r\n let animation = animations[animationKey];\r\n if(animation.gifPath && animation.coords && animation.coords.length >= 2){\r\n global.L.imageOverlay(animation.gifPath,\r\n animation.coords\r\n ).addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async handleMapView(resetZoom = true) {\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let examsDistribution = this.getExamsDistribution();\r\n\r\n if (this.state.examHistory) {\r\n await this.handleExamHistoryMapView(this.state.examHistory);\r\n } else if (this.state.exams === \"no-results\") {\r\n await this.clearMapView();\r\n } else if (this.state.isMapInitialized && examsDistribution) {\r\n await this.handleProductionUnitExamDistributionMapView(\r\n examsDistribution,\r\n isDefaultProductionUnit\r\n );\r\n } else {\r\n await this.handleMainMapView(resetZoom);\r\n }\r\n }\r\n\r\n async handleMainMapView(resetZoom){\r\n try {\r\n sendEvent(\"setCurrentProductionUnit\", MAIN_MAP);\r\n await this.loadMap();\r\n await this.loadProductionUnits(resetZoom);\r\n\r\n } catch (error) {\r\n console.error(\"Error trying to handle main map view: \", error);\r\n }\r\n }\r\n\r\n async handleExamHistoryMapView(examHistory) {\r\n try {\r\n let lastStage = examHistory &&\r\n examHistory.examHistory &&\r\n examHistory.examHistory[examHistory.examHistory.length -1];\r\n let productionUnit = examHistory.productionUnit\r\n if(lastStage && lastStage.stageName === 'Recolhido'){\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n if(!isDefaultProductionUnit){\r\n await this.handleMainMapView(false);\r\n }\r\n await this.loadCollectedMarkers({[productionUnit]: {TOTAL: 1}}, false, true);\r\n addPaddingInMap({left: 0});\r\n global.zapt && global.zapt.map && global.zapt.map.invalidateSize();\r\n return;\r\n }\r\n if(lastStage &&lastStage.stageName === 'Cadastrado'){\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n if(!isDefaultProductionUnit){\r\n await this.handleMainMapView(false);\r\n }\r\n await this.loadRegisteredMarker({\"BR\": {TOTAL: 1}}, false, true);\r\n addPaddingInMap({left: 0});\r\n global.zapt && global.zapt.map && global.zapt.map.invalidateSize();\r\n return;\r\n }\r\n let mapExternalId = this.state.mapSelectedType === 'FLAT' ? examHistory.productionUnit+'-FLAT' : examHistory.productionUnit;\r\n this.state.mapExternalId !== examHistory.productionUnit &&\r\n sendEvent(\"setCurrentProductionUnit\", examHistory.productionUnit) &&\r\n (await this.loadMap(mapExternalId)) &&\r\n this.addAnimationsInMap(mapExternalId);\r\n \r\n this.loadHistoryOnMap(examHistory);\r\n } catch (error) {\r\n console.error(\"Error trying to handle exam history map view: \", error);\r\n }\r\n }\r\n\r\n getClientState(){\r\n return this.props.status &&\r\n this.props.status['BR'] && \r\n this.props.status['BR'].clientState;\r\n }\r\n\r\n getClientName(stage, unitName){\r\n if(userService.getUserType() === \"PSC\"){\r\n if(this.props.stageUnitDistributionByStage && \r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'] &&\r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName] &&\r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName]['namePardiniStore'])\r\n {\r\n return this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName]['namePardiniStore']\r\n }\r\n }else{\r\n let userName = userService.getClientName();\r\n return userName || \"\";\r\n }\r\n }\r\n\r\n getClientId(stage, unitName){\r\n if(userService.getUserType() === \"PSC\"){\r\n if(this.props.stageUnitDistributionByStage && \r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'] &&\r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName] &&\r\n this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName]['codePardiniStore'])\r\n {\r\n return this.props.stageUnitDistributionByStage[stage+'-LOCATION'][unitName]['codePardiniStore']\r\n }\r\n }else{\r\n let userID = userService.getClientId();\r\n return userID || \"\";\r\n }\r\n }\r\n\r\n checkOnlyRegisteredOrCollected(examsDistribution){\r\n let result = false;\r\n if(examsDistribution){\r\n result = true;\r\n for(let unitKey of Object.keys(examsDistribution)){\r\n for(let stageKey of Object.keys(examsDistribution[unitKey])){\r\n stageKey = stageKey.toUpperCase();\r\n if(stageKey !== \"CADASTRADO\" &&\r\n stageKey !== \"CADASTRADO-LOCATION\" &&\r\n stageKey !== \"RECOLHIDO\" &&\r\n stageKey !== \"RECOLHIDO-LOCATION\" &&\r\n stageKey !== \"TOTAL\" &&\r\n stageKey !== \"ALIASPRODUNIT\" &&\r\n stageKey !== \"CLIENTSTATE\")\r\n {\r\n result = false;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n async handleProductionUnitExamDistributionMapView(\r\n examsDistribution,\r\n isDefaultProductionUnit\r\n ) {\r\n try {\r\n let isExamsInOneUnit =\r\n Object.keys(this.state.exams.statistics).length === 2;\r\n let hasSingleStatus = this.checkForSingleStatus(examsDistribution);\r\n if (isExamsInOneUnit &&\r\n !this.checkOnlyRegisteredOrCollected(examsDistribution))\r\n {\r\n let productionUnit = Object.keys(examsDistribution)[0];\r\n\r\n let videoPath = (productionUnit === \"NTO\") ? videoMapNTO : videoGeneric;\r\n if(\r\n this.state.mapExternalId !== productionUnit && \r\n this.state.mapSelectedType !== 'FLAT'\r\n ){\r\n this.setState({\r\n videoVisible: true,\r\n videoPath: videoPath,\r\n });\r\n }\r\n let mapExternalId = this.state.mapSelectedType === 'FLAT' ? productionUnit+'-FLAT' : productionUnit;\r\n this.state.mapExternalId !== productionUnit &&\r\n sendEvent(\"setCurrentProductionUnit\", productionUnit) &&\r\n (await this.loadMap(mapExternalId)) &&\r\n this.addAnimationsInMap(mapExternalId);\r\n \r\n examsDistribution && (await this.loadExamGroupings(examsDistribution));\r\n \r\n } else if (examsDistribution) {\r\n !isDefaultProductionUnit &&\r\n sendEvent(\"setCurrentProductionUnit\", MAIN_MAP) &&\r\n (await this.loadMap());\r\n if(hasSingleStatus){\r\n switch(hasSingleStatus){\r\n case \"CADASTRADO\":\r\n await this.loadRegisteredMarker(examsDistribution);\r\n break;\r\n case \"RECOLHIDO\":\r\n await this.loadCollectedMarkers(examsDistribution);\r\n break;\r\n default: await this.loadProductionUnitsSearch(examsDistribution);\r\n }\r\n }else{\r\n await this.loadProductionUnitsSearch(examsDistribution);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\r\n \"Error trying to handle exam production unit exam distribution map view: \",\r\n error\r\n );\r\n }\r\n }\r\n\r\n async clearMapView() {\r\n try {\r\n await this.loadMap();\r\n this.clearMarkers();\r\n } catch (error) {\r\n console.error(\"Error trying to clear map view: \", error);\r\n }\r\n }\r\n\r\n async renderCardUnit(unitName, status, isHistory, isFederation, stage=\"\") {\r\n if (unitName && status) {\r\n let clientName = stage && status && this.getClientName(stage, Object.keys(status).shift());\r\n let userType = userService.getUserType();\r\n let pois = await this.zaptMapAPI.getPois();\r\n let poisCategory = isFederation ? STATES_CATEGORY : PRODUCTION_UNIT_CATEGORY;\r\n let productionUnitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n poisCategory\r\n );\r\n let poi = filterPoiByName(productionUnitPois, unitName);\r\n let statusUnit = isFederation ? status[\"BR\"] : status[unitName];\r\n let stages = {};\r\n\r\n Object.keys(STAGE_SHORT).forEach((index) => {\r\n if (!statusUnit[index]) {\r\n stages[index] = 0;\r\n }else{\r\n stages[index] = statusUnit[index];\r\n }\r\n });\r\n let total = statusUnit[\"TOTAL\"];\r\n\r\n if (this.markers[\"unit-card\"]) {\r\n this.markers[\"unit-card\"].remove();\r\n delete this.markers[\"unit-card\"];\r\n }\r\n\r\n this.markers[\"unit-card\"] = global.L.marker(\r\n global.L.latLng(poi.y, poi.x),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n
    \r\n \r\n
    \r\n ${statusUnit.aliasProdUnit ? statusUnit.aliasProdUnit : \r\n userType === \"PSC\" ? \r\n \"HERMES PARDINI \"+clientName:\r\n clientName}\r\n \r\n
    \r\n ${Object.keys(stages).map(\r\n (item) => `\r\n \r\n ${STAGE_SHORT[item]}${\r\n stages[item]\r\n }\r\n
    \r\n `\r\n )}\r\n
    \r\n
    \r\n Total ${total}\r\n
    \r\n \r\n `.replaceAll(\",\", \"\"),\r\n iconAnchor: [0, 0],\r\n iconSize: [240, 300],\r\n }),\r\n }\r\n );\r\n\r\n this.markers[\"unit-card\"].setZIndexOffset(1000);\r\n\r\n this.markers[\"unit-card\"].on(\"mouseover\", () => {\r\n this.isOnUnitCardOver = true;\r\n });\r\n\r\n this.markers[\"unit-card\"].on(\"mouseout\", () => {\r\n this.isOnUnitCardOver = false;\r\n if (this.markers[\"unit-card\"]) {\r\n this.markers[\"unit-card\"].remove();\r\n delete this.markers[\"unit-card\"];\r\n }\r\n this.highlightUnit();\r\n });\r\n\r\n let group = new global.L.featureGroup([this.markers[\"unit-card\"]]);\r\n\r\n group.addTo(global.zapt.map);\r\n\r\n let totalUnit = document.getElementById(`total-${unitName}`);\r\n\r\n if(!isHistory){\r\n Object.keys(stages).forEach((item) => {\r\n if (stages[item]) {\r\n let stageElement = document.getElementById(`option-${item}`);\r\n if (stageElement && stageElement.style) {\r\n stageElement.style.cursor = \"pointer\";\r\n stageElement.addEventListener(\"click\", () => {\r\n sendEvent(\"apply-stage-production-unit-filter\", {\r\n productionUnit: unitName,\r\n stage: item,\r\n });\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (totalUnit) {\r\n totalUnit.style.cursor = \"pointer\";\r\n totalUnit.addEventListener(\"click\", () => {\r\n sendEvent(\"apply-production-unit-filter\", {\r\n productionUnit: unitName,\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeCardUnit(e) {\r\n if (\r\n e &&\r\n e.originalEvent &&\r\n e.originalEvent.target &&\r\n e.originalEvent.target.dataset[\"ignore\"] &&\r\n e.originalEvent.target.dataset[\"ignore\"] === \"true\"\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\r\n this.markers &&\r\n this.markers[\"unit-card\"] &&\r\n this.markers[\"unit-card-route\"]\r\n ) {\r\n global.zapt.map.removeLayer(this.markers[\"unit-card\"]);\r\n global.zapt.map.removeLayer(this.markers[\"unit-card-route\"]);\r\n delete this.markers[\"unit-card\"];\r\n delete this.markers[\"unit-card-route\"];\r\n }\r\n }\r\n\r\n focusOnTheMap(map, group, options = {}) {\r\n let isDefaultProductionUnitMap = this.checkIfIsDefaultProductionUnitMap();\r\n let maxZoom = isDefaultProductionUnitMap ? -0.33 : null;\r\n if(maxZoom != null){\r\n options.maxZoom = maxZoom\r\n }\r\n if (map) {\r\n map.flyToBounds(\r\n group.getBounds(),\r\n options\r\n );\r\n }\r\n }\r\n\r\n async loadProductionUnits(resetZoom) {\r\n resetZoom && this.resetMapZoom();\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData =\r\n this.props.status &&\r\n Object.keys(this.props.status).length > 0 &&\r\n this.props.status;\r\n let hasSingleStatus = this.checkForSingleStatus(statusData);\r\n let focusOnMarkers = [];\r\n\r\n if (isDefaultProductionUnit && isMapInitialized && statusData) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let productionUnitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n PRODUCTION_UNIT_CATEGORY\r\n );\r\n\r\n let isValidProductionUnitMap = this.checkIfIsProductionUnitHasMap();\r\n\r\n if (productionUnitPois) {\r\n this.clearMarkers();\r\n\r\n for (const index in productionUnitPois) {\r\n const productionUnitPoi = productionUnitPois[index];\r\n const isProductionUnitPoiWithMap = this.checkIfIsProductionUnitHasMap(\r\n productionUnitPoi.title\r\n );\r\n\r\n if (!isValidProductionUnitMap) {\r\n continue;\r\n }\r\n\r\n let hasProductionUnitExams =\r\n statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"];\r\n\r\n if (!hasProductionUnitExams) {\r\n continue;\r\n }\r\n\r\n this.markers[productionUnitPoi.title] = global.L.marker(\r\n global.L.latLng([productionUnitPoi.y, productionUnitPoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\r\n statusData[productionUnitPoi.title]?.aliasProdUnit || \"\"\r\n }\r\n ${\r\n (statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"]) ||\r\n \"0\"\r\n }\r\n
    \r\n
    \r\n `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n\r\n this.markers[productionUnitPoi.title].on(\"click\", () => {\r\n sendEvent(\"apply-production-unit-filter\", {\r\n productionUnit: productionUnitPoi.title,\r\n });\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseover\", async () => {\r\n let examsList = (this.state.exams && this.state.exams !== \"no-results\") ?\r\n this.state.exams.statistics :\r\n this.props.status;\r\n await this.renderCardUnit(\r\n productionUnitPoi.title,\r\n examsList,\r\n false,\r\n false,\r\n isProductionUnitPoiWithMap\r\n );\r\n this.highlightUnit(productionUnitPoi.title);\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseout\", () => {\r\n setTimeout(() => {\r\n !this.isOnUnitCardOver && this.markers[\"unit-card\"]?.remove();\r\n !this.isOnUnitCardOver && this.highlightUnit();\r\n }, 10);\r\n });\r\n\r\n this.markers[productionUnitPoi.title].addTo(global.zapt.map);\r\n focusOnMarkers.push(this.markers[productionUnitPoi.title]);\r\n }\r\n\r\n if (resetZoom && focusOnMarkers.length > 0) {\r\n let group = new global.L.featureGroup(focusOnMarkers);\r\n setTimeout(() => {\r\n this.state.exams !== \"no-results\" &&\r\n this.focusOnTheMap(global.zapt.map, group);\r\n }, 1000);\r\n global.zapt.map.flyToBounds(global.zapt.map.getBounds())\r\n }\r\n }\r\n }\r\n }\r\n\r\n async loadProductionUnitsSearch(status) {\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData = status && Object.keys(status).length > 0 && status;\r\n let hasSingleStatus = this.checkForSingleStatus(statusData);\r\n let focusOnMarkers = [];\r\n\r\n if (isMapInitialized && statusData) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let productionUnitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n PRODUCTION_UNIT_CATEGORY\r\n );\r\n\r\n if (productionUnitPois) {\r\n this.clearMarkers();\r\n\r\n for (const index in productionUnitPois) {\r\n const productionUnitPoi = productionUnitPois[index];\r\n const isProductionUnitPoiWithMap = this.checkIfIsProductionUnitHasMap(\r\n productionUnitPoi.title\r\n );\r\n\r\n let hasProductionUnitExams =\r\n statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"];\r\n\r\n if (!hasProductionUnitExams) {\r\n continue;\r\n }\r\n\r\n this.markers[productionUnitPoi.title] = global.L.marker(\r\n global.L.latLng([productionUnitPoi.y, productionUnitPoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\r\n statusData[productionUnitPoi.title]?.aliasProdUnit || \"\"\r\n }\r\n ${\r\n (statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"]) ||\r\n \"0\"\r\n }\r\n
    \r\n
    \r\n
    `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n\r\n this.markers[productionUnitPoi.title].on(\"click\", () => {\r\n sendEvent(\"apply-production-unit-filter\", {\r\n productionUnit: productionUnitPoi.title,\r\n });\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseout\", () => {\r\n setTimeout(() => {\r\n !this.isOnUnitCardOver && this.markers[\"unit-card\"]?.remove();\r\n !this.isOnUnitCardOver && this.highlightUnit();\r\n }, 10);\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseover\", async () => {\r\n let examsList = (this.state.exams && this.state.exams !== \"no-results\") ?\r\n this.state.exams.statistics :\r\n this.props.status;\r\n await this.renderCardUnit(\r\n productionUnitPoi.title,\r\n examsList,\r\n false,\r\n false,\r\n isProductionUnitPoiWithMap\r\n );\r\n this.highlightUnit(productionUnitPoi.title);\r\n });\r\n\r\n this.markers[productionUnitPoi.title].addTo(global.zapt.map);\r\n focusOnMarkers.push(this.markers[productionUnitPoi.title]);\r\n }\r\n\r\n if (focusOnMarkers.length > 0) {\r\n let group = new global.L.featureGroup(focusOnMarkers);\r\n\r\n this.focusOnTheMap(\r\n global.zapt.map, \r\n group, \r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n async loadRegisteredMarker(status, isHighlight = false, isHistory=false) {\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData = status && Object.keys(status).length > 0 && status;\r\n let focusOnMarkers = [];\r\n let userType = userService.getUserType();\r\n let unitProduction = \"\";\r\n for(let unit in statusData){\r\n if(unit !== 'BR'){\r\n unitProduction = unit;\r\n }\r\n }\r\n let clientID = this.getClientId(\"CADASTRADO\", unitProduction);\r\n \r\n if (isMapInitialized && (statusData || isHistory)) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let statePois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n STATES_CATEGORY,\r\n );\r\n\r\n let clientState = this.getClientState();\r\n let statePoi = filterPoiByName(statePois, clientState);\r\n if (statePoi) {\r\n this.clearMarkers();\r\n if(isHistory){\r\n global.L.polygon([[-3360,-14760],[-3360,52140],[28800,52140],[28800,-14760]], {\r\n color: \"black\",\r\n fillOpacity: 0.6,\r\n weight: 0,\r\n interactive: false,\r\n }\r\n ).addTo(global.zapt.map);\r\n }\r\n let hasProductionUnitExams =\r\n statusData[\"BR\"] &&\r\n statusData[\"BR\"][\"TOTAL\"];\r\n\r\n if (!hasProductionUnitExams) {\r\n return;\r\n }\r\n\r\n this.markers[statePoi.title] = global.L.marker(\r\n global.L.latLng([statePoi.y, statePoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\r\n userType === \"PSC\" ? \"HP \"+clientID : \"LC \"+clientID \r\n }\r\n ${\r\n (hasProductionUnitExams) ||\"0\"\r\n }\r\n
    \r\n
    \r\n
    `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n\r\n if(!isHighlight){\r\n this.markers[statePoi.title].on(\"mouseout\", () => {\r\n setTimeout(() => {\r\n !this.isOnUnitCardOver && this.markers[\"unit-card\"]?.remove();\r\n !this.isOnUnitCardOver && this.highlightUnit();\r\n }, 10);\r\n });\r\n \r\n this.markers[statePoi.title].on(\"mouseover\", async () => {\r\n let examsList = (this.state.exams && this.state.exams !== \"no-results\") ?\r\n this.state.exams.statistics :\r\n this.props.status;\r\n await this.renderCardUnit(\r\n statePoi.title,\r\n isHistory ? {BR: {CADASTRADO: 1, TOTAL: 1}, } :examsList,\r\n isHistory,\r\n true,\r\n \"CADASTRADO\"\r\n );\r\n this.highlightUnit(statePoi.title);\r\n });\r\n }\r\n\r\n\r\n this.markers[statePoi.title].addTo(global.zapt.map);\r\n focusOnMarkers.push(this.markers[statePoi.title]);\r\n\r\n if (focusOnMarkers.length > 0) {\r\n let group = new global.L.featureGroup(focusOnMarkers);\r\n\r\n !isHighlight && this.focusOnTheMap(\r\n global.zapt.map,\r\n group\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n async loadCollectedMarkers(status, isHighlight = false,isHistory = false) {\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData = status && Object.keys(status).length > 0 && status;\r\n let routeInfo = {\r\n origin: '',\r\n destinations: [],\r\n };\r\n let clientID = userService.getClientId();\r\n let clientState = this.getClientState();\r\n\r\n if (isMapInitialized && statusData) {\r\n //Load pointer origem\r\n let pois = await this.zaptMapAPI.getPois();\r\n let statesPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n STATES_CATEGORY,\r\n );\r\n let statePoi = filterPoiByName(statesPois, clientState);\r\n if(statePoi){\r\n this.clearMarkers();\r\n if(isHistory){\r\n global.L.polygon([[-3360,-14760],[-3360,52140],[28800,52140],[28800,-14760]], {\r\n color: \"black\",\r\n fillOpacity: 0.6,\r\n weight: 0,\r\n interactive: false,\r\n }\r\n ).addTo(global.zapt.map);\r\n }\r\n routeInfo.origin = statePoi.title;\r\n this.markers[statePoi.title] = global.L.marker(\r\n global.L.latLng([statePoi.y, statePoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\"LC \"+clientID || \"\"}\r\n
    \r\n
    \r\n
    `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n this.markers[statePoi.title].addTo(global.zapt.map);\r\n }\r\n\r\n //load pointes destino\r\n pois = await this.zaptMapAPI.getPois();\r\n let unitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n PRODUCTION_UNIT_CATEGORY,\r\n );\r\n if(unitPois){\r\n for(let unitPoiIndex in unitPois){\r\n let productionUnitPoi = unitPois[unitPoiIndex];\r\n let productionUnitExam = isHighlight ? \r\n statusData[productionUnitPoi.title] :\r\n statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"];\r\n\r\n if(!productionUnitExam){\r\n continue;\r\n }\r\n routeInfo.destinations.push({\r\n title:productionUnitPoi.title,\r\n total: productionUnitExam\r\n });\r\n this.markers[productionUnitPoi.title] = global.L.marker(\r\n global.L.latLng([productionUnitPoi.y, productionUnitPoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${PRODUCTION_UNIT_ALIAS[productionUnitPoi.title] || \"\"}\r\n
    \r\n
    \r\n
    `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n this.markers[productionUnitPoi.title].addTo(global.zapt.map);\r\n }\r\n }\r\n this.logisticRoutes = this.loadLogisticRoutes(routeInfo);\r\n\r\n if (this.logisticRoutes.length > 0) {\r\n let group = new global.L.featureGroup(this.logisticRoutes);\r\n group.addTo(global.zapt.map);\r\n if(global.zapt.map.getZoom() < 0.5){\r\n this.logisticRoutes.forEach(layer => {\r\n layer.dragging && global.zapt.map.removeLayer(layer);\r\n });\r\n }\r\n !isHighlight && this.focusOnTheMap(global.zapt.map,group);\r\n !isHighlight && global.zapt.map.on('zoomend', this.clearLogisticLabelsFn);\r\n this.setState({fullLegend: true});\r\n this.renderLegendFn();\r\n }\r\n }\r\n }\r\n\r\n loadLogisticRoutes(routeInfo){\r\n let routeComponents = [];\r\n if(routeInfo && \r\n routeInfo.origin && \r\n routeInfo.origin !== \"\" && \r\n routeInfo.destinations && \r\n routeInfo.destinations.length > 0)\r\n {\r\n let originPath = this.markers[routeInfo.origin];\r\n for(let destination of routeInfo.destinations){\r\n if(this.markers[destination.title] && originPath){\r\n let aliasProdUnit = PRODUCTION_UNIT_ALIAS[destination.title];\r\n let transportType = \r\n (routeInfo.origin === PRODUCTION_UNIT_FEDERATIONS[aliasProdUnit]) ? 'road': 'air';\r\n let destinationPath = this.markers[destination.title];\r\n let direction = getCoordinateDirection(\r\n destinationPath['_latlng'].lng,\r\n originPath['_latlng'].lng\r\n );\r\n let routePath = (transportType === 'road') ? [destinationPath['_latlng'], originPath['_latlng']] :\r\n calculateCurvePoints(\r\n 50,\r\n {x: destinationPath['_latlng'].lat, y: destinationPath['_latlng'].lng},\r\n {x: originPath['_latlng'].lat, y:originPath['_latlng'].lng},\r\n 0.6,\r\n direction === \"back\",\r\n );\r\n let route = global.L.polyline(routePath,\r\n {\r\n color: \"#0030B6\",\r\n weight: \"3\",\r\n dashArray: \"3, 5\",\r\n dashOffset: \"0\",\r\n }\r\n );\r\n routeComponents.push(route);\r\n\r\n let centerRoute = transportType === 'road' ? this.calcCenterRoute([\r\n this.markers[destination.title]['_latlng'],\r\n originPath['_latlng']\r\n ]): routePath[Math.round(routePath.length/2)+1];\r\n\r\n let label = global.L.marker(\r\n global.L.latLng(centerRoute),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n
    \r\n
    \r\n ${destination.total}\r\n
    \r\n
    `,\r\n iconAnchor: [20, 30],\r\n iconSize: [40, 60],\r\n }),\r\n }\r\n );\r\n routeComponents.push(label);\r\n }\r\n }\r\n }\r\n return routeComponents;\r\n }\r\n calcCenterRoute(pathRoute){\r\n if(pathRoute){\r\n return [\r\n Math.abs((pathRoute[0].lat + pathRoute[1].lat)/2),\r\n Math.abs((pathRoute[0].lng + pathRoute[1].lng)/2)\r\n ]\r\n }\r\n return [];\r\n }\r\n\r\n checkForSingleStatus(status) {\r\n if (status && status[\"BR\"]) {\r\n for (const statusName in status[\"BR\"]) {\r\n if (Object.hasOwnProperty.call(status[\"BR\"], statusName)) {\r\n const statusTotal = status[\"BR\"][statusName];\r\n if (statusTotal === status[\"BR\"].TOTAL && statusName !== \"TOTAL\") {\r\n return statusName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n async loadSingleProductionUnit(status, productionUnit) {\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData = status && Object.keys(status).length > 0 && status;\r\n let hasSingleStatus = this.checkForSingleStatus(statusData);\r\n let focusOnMarkers = [];\r\n\r\n if (isMapInitialized && statusData) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let productionUnitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n PRODUCTION_UNIT_CATEGORY\r\n );\r\n\r\n let theProductionUnit = filterPoiByName(\r\n productionUnitPois,\r\n productionUnit\r\n );\r\n\r\n if (theProductionUnit) {\r\n this.clearMarkers();\r\n\r\n const productionUnitPoi = theProductionUnit;\r\n const isProductionUnitPoiWithMap = this.checkIfIsProductionUnitHasMap(\r\n productionUnitPoi.title\r\n );\r\n\r\n let hasProductionUnitExams =\r\n statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"];\r\n\r\n if (!hasProductionUnitExams) {\r\n return;\r\n }\r\n\r\n this.markers[productionUnit] = global.L.marker(\r\n global.L.latLng([productionUnitPoi.y, productionUnitPoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\r\n statusData[productionUnitPoi.title]?.aliasProdUnit || \"\"\r\n }\r\n ${\r\n (statusData[productionUnitPoi.title] &&\r\n statusData[productionUnitPoi.title][\"TOTAL\"]) ||\r\n \"0\"\r\n }\r\n
    \r\n
    \r\n
    \r\n `,\r\n iconAnchor: [20, 40],\r\n iconSize: [20, 20],\r\n }),\r\n }\r\n );\r\n\r\n this.markers[productionUnitPoi.title].on(\"click\", () => {\r\n sendEvent(\"apply-production-unit-filter\", {\r\n productionUnit: productionUnitPoi.title,\r\n });\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseout\", () => {\r\n setTimeout(() => {\r\n !this.isOnUnitCardOver && this.markers[\"unit-card\"]?.remove();\r\n !this.isOnUnitCardOver && this.highlightUnit();\r\n }, 10);\r\n });\r\n\r\n this.markers[productionUnitPoi.title].on(\"mouseover\", async () => {\r\n let examsList = (this.state.exams && this.state.exams !== \"no-results\") ?\r\n this.state.exams.statistics :\r\n this.props.status;\r\n await this.renderCardUnit(\r\n productionUnitPoi.title,\r\n examsList,\r\n false,\r\n false,\r\n isProductionUnitPoiWithMap\r\n );\r\n this.highlightUnit(productionUnitPoi.title);\r\n });\r\n\r\n this.markers[productionUnit].addTo(global.zapt.map);\r\n focusOnMarkers.push(this.markers[productionUnit]);\r\n\r\n if (focusOnMarkers.length > 0) {\r\n let group = new global.L.featureGroup(focusOnMarkers);\r\n this.focusOnTheMap(global.zapt.map, group);\r\n }\r\n }\r\n }\r\n }\r\n\r\n highlightUnit(productionUnit, focus) {\r\n for (const unitMarker in this.markers) {\r\n if (Object.hasOwnProperty.call(this.markers, unitMarker)) {\r\n try {\r\n const marker = this.markers[unitMarker];\r\n if (!productionUnit) {\r\n marker.setOpacity(1);\r\n } else if (\r\n !(unitMarker === productionUnit) &&\r\n !(\"unit-card\" === unitMarker)\r\n ) {\r\n marker.setOpacity(0.5);\r\n } else {\r\n marker.setOpacity(1);\r\n }\r\n\r\n if (focus) {\r\n let group = new global.L.featureGroup([marker]);\r\n this.focusOnTheMap(global.zapt.map, group);\r\n }\r\n } catch (error) {\r\n console.error(\"Production unit highlight failure\",error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async setExams(event) {\r\n return new Promise((resolve, reject) => {\r\n let exams = event && event.detail;\r\n let requestChangeContext = async (resolve) => {\r\n await this.handleMapView();\r\n resolve();\r\n };\r\n\r\n if (this.state.isMapInitialized) {\r\n this.setState(\r\n { exams: exams },\r\n requestChangeContext.bind(this, resolve)\r\n );\r\n } else if (exams) {\r\n this.setState(\r\n { exams: exams },\r\n requestChangeContext.bind(this, resolve)\r\n );\r\n }\r\n\r\n if (!exams) {\r\n this.setState({ exams: null, videoVisible: false });\r\n }\r\n });\r\n }\r\n\r\n resetMapZoom() {\r\n if (this.zaptMapAPI && this.zaptMapAPI.setZoom && (!this.checkIfIsDefaultProductionUnitMap() && this.state.examHistory)) {\r\n this.zaptMapAPI.setZoom(\r\n this.checkIfIsDefaultProductionUnitMap() ? -1.69 : -2.69\r\n );\r\n this.setState({ examOnHighlight: null });\r\n }\r\n }\r\n\r\n highlightExam(event) {\r\n try {\r\n let exam = event && event.detail;\r\n let notAllowed =\r\n exam &&\r\n (exam.eventStage === \"Recolhido\" || exam.eventStage === \"Cadastrado\");\r\n\r\n if (\r\n exam &&\r\n !notAllowed &&\r\n exam.eventStage &&\r\n this.state.examOnHighlight !== exam.examId &&\r\n !this.state.videoVisible\r\n ) {\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n\r\n if (isDefaultProductionUnit) {\r\n let productionUnit = exam.productionUnit;\r\n\r\n if (this.markers[productionUnit] && global.zapt && global.zapt.map) {\r\n let group = new global.L.featureGroup([\r\n this.markers[productionUnit],\r\n ]);\r\n this.focusOnTheMap(global.zapt.map, group);\r\n }\r\n return;\r\n }\r\n\r\n let eventStage = exam.eventStage.toUpperCase();\r\n\r\n if (this.markers[eventStage] && global.zapt && global.zapt.map) {\r\n let group = new global.L.featureGroup([this.markers[eventStage]]);\r\n\r\n this.focusOnTheMap(global.zapt.map, group);\r\n }\r\n\r\n this.setState({ examOnHighlight: exam.examId });\r\n } else {\r\n this.setState({ examOnHighlight: null });\r\n }\r\n } catch (error) {\r\n console.error(\"Error trying to highlight exam on map: \", error.message);\r\n this.setState({ examOnHighlight: null });\r\n }\r\n }\r\n\r\n async loadExamGroupings(examsDistribution) {\r\n try {\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let hasStatus =\r\n examsDistribution && Object.keys(examsDistribution).length > 0;\r\n\r\n if (!isDefaultProductionUnit && isMapInitialized && hasStatus) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let stagesPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n STAGES_CATEGORY\r\n );\r\n\r\n if (stagesPois) {\r\n this.clearMarkers();\r\n for (const index in stagesPois) {\r\n const stagePoi = stagesPois[index];\r\n if (!STAGE_COLORS[stagePoi.title] || !stagePoi) {\r\n continue;\r\n }\r\n\r\n let hasProductionExams =\r\n examsDistribution[this.state.mapExternalId] &&\r\n examsDistribution[this.state.mapExternalId][\r\n stagePoi.title.toUpperCase()\r\n ];\r\n\r\n if (!hasProductionExams) {\r\n continue;\r\n }\r\n\r\n this.markers[stagePoi.title.toUpperCase()] = global.L.marker(\r\n global.L.latLng([stagePoi.y, stagePoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n
    \r\n
    \r\n ${\r\n (examsDistribution[this.state.mapExternalId] &&\r\n examsDistribution[this.state.mapExternalId][\r\n stagePoi.title.toUpperCase()\r\n ]) ||\r\n \"0\"\r\n }\r\n
    \r\n
    \r\n
    \r\n `,\r\n iconAnchor: [20, 40],\r\n iconSize: [20, 20],\r\n }),\r\n }\r\n );\r\n\r\n this.markers[stagePoi.title.toUpperCase()].on('click', ()=>{\r\n sendEvent(\"apply-stage-production-unit-filter\", { \r\n productionUnit: this.state.mapExternalId,\r\n stage: stagePoi.title.toUpperCase(),\r\n });\r\n });\r\n\r\n this.markers[stagePoi.title.toUpperCase()].addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n return true;\r\n } catch (error) {\r\n console.error(\"Erro trying to load production units: \", error.message);\r\n }\r\n }\r\n\r\n async loadExamsOnMap() {\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let hasExams = this.state.exams && this.state.exams.length !== null;\r\n\r\n if (!isDefaultProductionUnit && isMapInitialized && hasExams) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let stagesPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n STAGES_CATEGORY\r\n );\r\n\r\n stagesPois = this.buildStagesPois(stagesPois);\r\n\r\n let examsCountByStage = this.countExamsByStage(this.state.exams);\r\n\r\n if (stagesPois) {\r\n this.clearMarkers();\r\n\r\n for (const stageIndex in examsCountByStage) {\r\n const stagePoi = stagesPois[stageIndex];\r\n const stageCount = examsCountByStage[stageIndex];\r\n\r\n if (!stagePoi) {\r\n continue;\r\n }\r\n\r\n if (this.markers[stageIndex]) {\r\n this.markers[stageIndex].remove();\r\n }\r\n\r\n this.markers[stageIndex] = global.L.marker(\r\n global.L.latLng([\r\n stagesPois[stageIndex].y,\r\n parseInt(stagesPois[stageIndex].x),\r\n ]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `
    \r\n
    ${\r\n stageCount || \"0\"\r\n }
    \r\n
    \r\n
    `,\r\n iconAnchor: [20, 40],\r\n iconSize: [20, 20],\r\n }),\r\n }\r\n );\r\n this.markers[stageIndex].addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async setExamHistory(event) {\r\n return new Promise((resolve, reject) => {\r\n let requestChangeContext = async (resolve) => {\r\n await this.handleMapView();\r\n resolve();\r\n };\r\n\r\n if (event && event.detail) {\r\n this.setState(\r\n { examHistory: event.detail },\r\n requestChangeContext.bind(this, resolve)\r\n );\r\n } else {\r\n this.setState(\r\n { examHistory: null },\r\n requestChangeContext.bind(this, resolve)\r\n );\r\n }\r\n });\r\n }\r\n\r\n checkDuplicateOccurrences(history){\r\n let occurrences = {};\r\n history.map((stage, index)=>{\r\n let stageName = stage.stageName;\r\n if(occurrences.hasOwnProperty(stageName)){\r\n occurrences[stageName].indexes.push(index);\r\n occurrences[stageName].occurrences += 1;\r\n }else{\r\n occurrences[stageName] = {\r\n indexes:[index],\r\n occurrences: 1\r\n };\r\n }\r\n })\r\n return occurrences;\r\n }\r\n\r\n async loadHistoryOnMap(event) {\r\n try {\r\n let examHistory = event && event.examHistory;\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let occurrences = this.checkDuplicateOccurrences(examHistory);\r\n if (isDefaultProductionUnit) {\r\n let group = new global.L.featureGroup([\r\n this.markers[event && event.productionUnit],\r\n ]);\r\n this.setState({ loading: false });\r\n\r\n this.focusOnTheMap(global.zapt.map, group);\r\n\r\n return;\r\n }\r\n\r\n if (!isDefaultProductionUnit && isMapInitialized && examHistory) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n let lastHistoryStage =\r\n examHistory &&\r\n examHistory.length &&\r\n examHistory[examHistory.length - 1];\r\n\r\n let stagesPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n STAGES_CATEGORY\r\n );\r\n stagesPois = this.buildStagesPois(stagesPois);\r\n\r\n let markers = [];\r\n\r\n examHistory.forEach((item, index) => {\r\n if (stagesPois && stagesPois[item.stageName]) {\r\n let markerStyle = {};\r\n let lastOccurrence = occurrences[item.stageName].indexes.length -1;\r\n if((occurrences[item.stageName].occurrences === 1 || \r\n index === occurrences[item.stageName].indexes[lastOccurrence]))\r\n {\r\n if (index < examHistory.length-1) {\r\n markerStyle[\"icon\"] = global.L.divIcon({\r\n className: \"\",\r\n html: `
    {\r\n return (index+1)+\" - \"+moment(examHistory[index].dateHour).format(\r\n \"DD/MM/YYYY HH:mm\"\r\n )+\"\\n\"\r\n })}\"\r\n >`.replaceAll(',','')+`\r\n
    1 ? 'pin-number-return': \"\"}\"\r\n ${\r\n [\"Recebido\", \"Recoleta\"].includes(item.stageName)\r\n ? \"style=transform:translateX(27%);\"\r\n : [\"Em Processamento\"].includes(item.stageName)\r\n ? \"style=transform:translateX(15%);\"\r\n : \"\"\r\n }\\>\r\n ${`${occurrences[item.stageName].indexes.map((order, index)=>{\r\n let numOccurrences = occurrences[item.stageName].occurrences;\r\n if(index === numOccurrences-1 && numOccurrences > 1){\r\n return \" e \"+(order+1)\r\n }\r\n return \" \"+(order+1)\r\n })}\r\n - ${STAGE_SHORT[item.stageName.toUpperCase()]}` || \"\"}\r\n
    \r\n
    \r\n `.replaceAll(', e', ' e'),\r\n iconAnchor: [0, 20],\r\n iconSize: [20, 20],\r\n });\r\n } else {\r\n markerStyle[\"icon\"] = global.L.divIcon({\r\n className: \"\",\r\n html: `
    {\r\n return (index+1)+\" - \"+moment(examHistory[index].dateHour).format(\r\n \"DD/MM/YYYY HH:mm\"\r\n )+\"\\n\"\r\n })}\"\r\n style=\"top: 13%; \r\n left: 65%; \r\n cursor: default;\">`.replaceAll(',','')+`\r\n
    1 ? 'pin-number-return': \"\"}\" style=\"color: white; background: transparent\">\r\n ${`${occurrences[item.stageName].indexes.map((order, index)=>{\r\n let numOccurrences = occurrences[item.stageName].occurrences;\r\n if(index === numOccurrences-1 && numOccurrences > 1){\r\n return \" e \"+(order+1)\r\n }\r\n return \" \"+(order+1)\r\n })} - ${STAGE_SHORT[item.stageName.toUpperCase()]}` || \"\"}\r\n
    \r\n
    \r\n
    `.replaceAll(', e', ' e'),\r\n iconAnchor: [20, 40],\r\n iconSize: [20, 20],\r\n });\r\n }\r\n markers.push(\r\n global.L.marker(\r\n global.L.latLng([\r\n stagesPois[item.stageName].y,\r\n parseInt(stagesPois[item.stageName].x),\r\n ]),\r\n markerStyle\r\n )\r\n );\r\n }\r\n }\r\n });\r\n\r\n if (markers && markers.length >= 1) {\r\n this.clearMarkers();\r\n markers.forEach((item) => item.addTo(global.zapt.map));\r\n this.traceHistoryRoute(examHistory);\r\n }\r\n addPaddingInMap({left: 0});\r\n global.zapt && global.zapt.map && global.zapt.map.invalidateSize();\r\n }\r\n } catch (error) {\r\n console.error(\r\n \"Error trying to draw exam history on map: \",\r\n error.message\r\n );\r\n }\r\n }\r\n\r\n async highlightStage(stage) {\r\n if(!this.checkIfIsDefaultProductionUnitMap()){\r\n return; \r\n }\r\n let isDefaultProductionUnit = this.checkIfIsDefaultProductionUnitMap();\r\n let isMapInitialized =\r\n this.zaptMapAPI &&\r\n this.zaptMapAPI._map.map &&\r\n global.L &&\r\n global.zapt &&\r\n global.zapt.map;\r\n let statusData =\r\n this.props.stageUnitDistributionByStage &&\r\n Object.keys(this.props.stageUnitDistributionByStage).length > 0 &&\r\n this.props.stageUnitDistributionByStage;\r\n stage = stage && stage.detail && stage.detail.toUpperCase();\r\n if(stage === 'CADASTRADO'){\r\n let stageUnitDistribution =\r\n statusData && stage && statusData[stage] && statusData[stage];\r\n let totalExams = 0;\r\n for(let unitKey in stageUnitDistribution){\r\n totalExams += stageUnitDistribution[unitKey];\r\n }\r\n if(totalExams > 0){\r\n let units = statusData &&\r\n statusData['CADASTRADO'] &&\r\n statusData['CADASTRADO'];\r\n let stageDate = {\r\n BR: {\r\n TOTAL: totalExams,\r\n },\r\n ...units\r\n }\r\n this.setState({ isStageHighlightOn: true });\r\n await this.loadRegisteredMarker(stageDate, true);\r\n }else{\r\n this.clearMarkers();\r\n }\r\n return;\r\n }\r\n\r\n if(stage === 'RECOLHIDO'){\r\n let stageUnitDistribution =\r\n statusData && stage && statusData[stage] && statusData[stage];\r\n let totalExams = 0;\r\n for(let unitKey in stageUnitDistribution){\r\n totalExams += stageUnitDistribution[unitKey];\r\n }\r\n if(totalExams > 0){\r\n this.setState({ isStageHighlightOn: true });\r\n await this.loadCollectedMarkers(stageUnitDistribution, true, false);\r\n }else{\r\n this.clearMarkers();\r\n }\r\n return;\r\n }\r\n let stageUnitDistribution =\r\n statusData && stage && statusData[stage] && statusData[stage];\r\n let productionUnitAliases = statusData && statusData[\"aliasProdUnit\"];\r\n\r\n if (stageUnitDistribution && isMapInitialized && isDefaultProductionUnit) {\r\n let pois = await this.zaptMapAPI.getPois();\r\n\r\n let productionUnitPois = filterPois(\r\n pois,\r\n this.state.currentMapId,\r\n PRODUCTION_UNIT_CATEGORY\r\n );\r\n\r\n let isValidProductionUnitMap = this.checkIfIsProductionUnitHasMap();\r\n\r\n if (productionUnitPois) {\r\n this.clearMarkers();\r\n this.setState({ isStageHighlightOn: true });\r\n for (const index in productionUnitPois) {\r\n const productionUnitPoi = productionUnitPois[index];\r\n\r\n if (!isValidProductionUnitMap) {\r\n continue;\r\n }\r\n\r\n let hasProductionUnitExams =\r\n stageUnitDistribution[productionUnitPoi.title];\r\n\r\n if (!hasProductionUnitExams) {\r\n continue;\r\n }\r\n\r\n this.markers[productionUnitPoi.title] = global.L.marker(\r\n global.L.latLng([productionUnitPoi.y, productionUnitPoi.x]),\r\n {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n \r\n
    \r\n ${\r\n (productionUnitAliases &&\r\n productionUnitAliases[productionUnitPoi.title]) ||\r\n \"\"\r\n }\r\n ${\r\n stageUnitDistribution[productionUnitPoi.title] || \"0\"\r\n }\r\n
    \r\n
    \r\n `,\r\n iconAnchor: [20, 40],\r\n iconSize: [40, 80],\r\n }),\r\n }\r\n );\r\n this.markers[productionUnitPoi.title].addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n }\r\n\r\n traceHistoryRoute(history) {\r\n if (history && history.length > 1) {\r\n let routes = this.mountHistoryRoute(history);\r\n this.markers[\"history-black-window\"] = global.L.polygon(this.mapBounds, {\r\n color: \"black\",\r\n fillOpacity: 0.6,\r\n weight: 0,\r\n interactive: false,\r\n }).addTo(global.zapt.map);\r\n\r\n if (routes.route && routes.route.length > 0) {\r\n let leafletRoute = routes.route.map((item) =>\r\n transformCoordinatesToLeaflet(item)\r\n );\r\n\r\n global.L.polyline(leafletRoute, {\r\n color: \"#51CFFE\",\r\n weight: \"1.5\",\r\n dashArray: \"1.5, 2.5\",\r\n dashOffset: \"0\",\r\n }).addTo(global.zapt.map);\r\n }\r\n\r\n if (routes.routePendency && routes.routePendency.length > 0) {\r\n let leafletRoute = routes.routePendency.map((item) =>\r\n transformCoordinatesToLeaflet(item)\r\n );\r\n\r\n global.L.polyline(leafletRoute, {\r\n color: \"#E58148\",\r\n weight: \"1.5\",\r\n dashArray: \"1.5, 2.5\",\r\n dashOffset: \"0\",\r\n }).addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n\r\n mountHistoryRoute(history) {\r\n let route = [];\r\n let routePendency = []\r\n let paths = [];\r\n if(this.state.mapSelectedType && this.state.mapSelectedType === \"3D\"){\r\n if(this.state.mapExternalId && this.state.mapExternalId === \"NTO\"){\r\n paths = HISTORY_ROUTES;\r\n }else{\r\n paths = HISTORY_ROUTES_GENERIC;\r\n }\r\n }else if(this.state.mapSelectedType === \"FLAT\"){\r\n if(this.state.mapExternalId && this.state.mapExternalId === \"NTO\"){\r\n paths = HISTORY_ROUTES_FLAT\r\n }else{\r\n paths = HISTORY_ROUTES_FLAT_GENERIC\r\n }\r\n }\r\n for (let index = 0; index < history.length; index++) {\r\n let pathLabel = `${history[index].stageName}-${history[index + 1]?.stageName}`\r\n let path = paths[pathLabel];\r\n if (path) {\r\n if(pathLabel.toUpperCase().indexOf('RECOLETA') !== -1 ||\r\n pathLabel.toUpperCase().indexOf('PENDÊNCIA') !== -1)\r\n {\r\n routePendency = routePendency.concat(path)\r\n }else{\r\n route = route.concat(path);\r\n }\r\n }\r\n }\r\n\r\n return {route, routePendency};\r\n }\r\n\r\n updateLimitMapBounds(fator) {\r\n this.mapBounds = [];\r\n if (global.zapt && global.zapt.map) {\r\n const SouthWest = global.zapt.map?.getBounds().getSouthWest();\r\n const SouthEast = global.zapt.map?.getBounds().getSouthEast();\r\n const NorthEast = global.zapt.map?.getBounds().getNorthEast();\r\n const NorthWest = global.zapt.map?.getBounds().getNorthWest();\r\n\r\n this.mapBounds.push([SouthWest.lat * fator, SouthWest.lng * fator]);\r\n this.mapBounds.push([SouthEast.lat * fator, SouthEast.lng * fator]);\r\n this.mapBounds.push([NorthEast.lat * fator, NorthEast.lng * fator]);\r\n this.mapBounds.push([NorthWest.lat * fator, NorthWest.lng * fator]);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n clearMarkers() {\r\n if (global.zapt && global.zapt.map) {\r\n this.markers = {};\r\n this.logisticRoutes = [];\r\n global.zapt.map.eachLayer((layer) => {\r\n if ((layer.dragging && layer.dragging._marker) || layer._parts) {\r\n global.zapt.map.removeLayer(layer);\r\n }\r\n });\r\n this.setState({ fullLegend: false });\r\n global.zapt && global.zapt.map && global.zapt.map.off('zoomend', this.clearLogisticLabelsFn);\r\n this.renderLegendFn();\r\n }\r\n }\r\n\r\n clearLogisticLabels(e){\r\n if(e && e.target && e.target._zoom &&\r\n this.logisticRoutes && this.logisticRoutes.length > 0)\r\n {\r\n if(e.target._zoom <= 0.5){\r\n this.logisticRoutes.forEach(layer => {\r\n layer.dragging && global.zapt.map.removeLayer(layer);\r\n });\r\n }else{\r\n this.logisticRoutes.forEach(layer => {\r\n layer.dragging && layer.addTo(global.zapt.map);\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n\r\n buildStagesPois(stagePois) {\r\n if (stagePois && Object.keys(stagePois).length > 0) {\r\n let buildedStagePois = {};\r\n\r\n for (const stagePoiIndex in stagePois) {\r\n const stagePoi = stagePois[stagePoiIndex];\r\n buildedStagePois[stagePoi.title] = stagePoi;\r\n }\r\n\r\n return buildedStagePois;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n countExamsByStage(exams) {\r\n if (exams) {\r\n let examsCount = {};\r\n\r\n for (const exam of exams) {\r\n !examsCount[exam.eventStage]\r\n ? (examsCount[exam.eventStage] = 1)\r\n : examsCount[exam.eventStage]++;\r\n }\r\n\r\n return examsCount;\r\n }\r\n }\r\n\r\n async toggleTopView() {\r\n this.setState({ loading: true });\r\n if (this.state.mapSelectedType === \"3D\") {\r\n await this.loadMap(this.state.flatMapExternalId);\r\n } else {\r\n await this.loadMap(this.state.mapExternalId);\r\n this.addAnimationsInMap(this.state.mapExternalId);\r\n }\r\n this.handleMapView();\r\n this.setState({ loading: false });\r\n }\r\n\r\n changeZoom(zoom) {\r\n this.zaptMapAPI.setZoom(zoom);\r\n }\r\n\r\n getExamsDistribution() {\r\n return (\r\n this.state.exams && this.state.exams.exams && this.state.exams.statistics\r\n );\r\n }\r\n\r\n getMapLayer() {\r\n let mapLayer = null;\r\n\r\n if (global.zapt && global.zapt.map) {\r\n global.zapt.map.eachLayer((layer) => {\r\n if (layer._url && layer._image) {\r\n mapLayer = layer;\r\n }\r\n });\r\n }\r\n return mapLayer;\r\n }\r\n\r\n setZoom(value) {\r\n if (this.zaptMapAPI) {\r\n let currentZoom =\r\n this.zaptMapAPI.getZoom() != null ? this.zaptMapAPI.getZoom() : 0;\r\n\r\n if (value === \"+\") {\r\n this.changeZoom(currentZoom + 0.5);\r\n } else if (value === \"-\") {\r\n this.changeZoom(currentZoom - 0.5);\r\n }\r\n }\r\n }\r\n\r\n checkIfIsFlatMapId(mapId) {\r\n if (mapId && typeof mapId === \"string\") {\r\n let splittedMapId = mapId.split(\"-\");\r\n\r\n return (\r\n splittedMapId &&\r\n splittedMapId.length &&\r\n splittedMapId[splittedMapId.length - 1] === \"FLAT\"\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n checkIfIsDefaultProductionUnitMap() {\r\n let isMainMapId = this.state.mainMapExternalId === this.state.mapExternalId;\r\n return isMainMapId;\r\n }\r\n\r\n checkIfIsTemporaryMap() {\r\n return (\r\n this.checkIfIsDefaultProductionUnitMap() &&\r\n this.props &&\r\n this.state.mapExternalId !== MAIN_MAP\r\n );\r\n }\r\n\r\n checkIfIsProductionUnitHasMap(productionUnit) {\r\n return PRODUCTION_UNIT_HAS_MAP[productionUnit || this.state.mapExternalId];\r\n }\r\n\r\n renderLegend() {\r\n if (global.zapt && global.zapt.map) {\r\n if (this.checkIfIsDefaultProductionUnitMap()) {\r\n if (this.markers['legend']) {\r\n global.zapt.map.removeLayer(this.markers[\"legend\"]);\r\n delete this.markers['legend'];\r\n }\r\n let sizeContainer = global.zapt.map.getSize();\r\n let x = this.state.examHistory || this.state.windowWidth <= 820 ? sizeContainer.x -10: sizeContainer.x - sizeContainer.x * 0.27;\r\n let center = global.zapt.map.containerPointToLatLng([x, sizeContainer.y]);\r\n let path = [center.lat, center.lng]\r\n this.markers['legend'] = global.L.marker(path, {\r\n icon: global.L.divIcon({\r\n className: \"\",\r\n html: `\r\n
    Legenda\r\n ${this.state.fullLegend ? (\r\n `
    \r\n
    Origem
    \r\n
    Destino
    \r\n
    \r\n A localização de origem e destino é aproximada\r\n
    \r\n
    \r\n O número exato das amostras será aferido ao chegar ao núcleo técnico de destino\r\n
    \r\n
    `\r\n \r\n ):(\r\n `
    \r\n A localização dos laboratórios e núcleos técnicos é aproximada\r\n
    `\r\n )}\r\n
    \r\n `,\r\n iconAnchor: [292, 91],\r\n iconSize: [292, 91],\r\n }),\r\n });\r\n this.markers['legend'].setZIndexOffset(600);\r\n this.markers['legend'].addTo(global.zapt.map);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n window.onresize = () => {\r\n this.setState({\r\n windowWidth: window.innerWidth,\r\n });\r\n };\r\n return (\r\n <>\r\n
    \r\n {this.state.videoVisible || this.state.videoIsPlaying ? (\r\n this.setState({ videoIsPlaying: true })}\r\n onEnded={() => this.setState({ videoIsPlaying: false })}\r\n >\r\n \r\n \r\n ) : null}\r\n {this.state.loading && !this.state.videoVisible ? (\r\n \r\n ) : null}\r\n\r\n \r\n {!this.state.loading ? (\r\n
    \r\n
    \r\n
    \r\n Informações atualizadas em tempo real\r\n
    \r\n
    \r\n this.toggleTopView()}\r\n data-ignore={true}\r\n >\r\n {this.state.mapSelectedType === \"3D\"\r\n ? \"Visão topo\"\r\n : \" Visão 3D\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n event.stopPropagation();\r\n this.setZoom(\"+\");\r\n }}\r\n >\r\n +\r\n
    \r\n {\r\n event.stopPropagation();\r\n this.setZoom(\"-\");\r\n }}\r\n >\r\n -\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Map);\r\n","export default __webpack_public_path__ + \"static/media/Hermes_pardini_Introv4.059357ce.mp4\";","export default __webpack_public_path__ + \"static/media/generic-map.f7d46aca.mp4\";","export default __webpack_public_path__ + \"static/media/pin-card-registered.86635c9d.png\";","import React, { Component } from \"react\";\r\nimport Status from \"./Status\";\r\nimport List from \"./List\";\r\nimport Filters from \"../filters\";\r\nimport examsService from \"../../services/ExamsService\";\r\nimport {\r\n FETCH_INTERVAL, PRODUCTION_UNIT_ALIAS, PRODUCTION_UNIT_NAMES,\r\n} from \"../../constants\";\r\nimport { withRouter } from \"react-router\";\r\nimport ExamsService from \"../../services/ExamsService\";\r\nimport { addPaddingInMap, isAlphanumericOrderId, searchIndex} from \"../../util/utils\";\r\nimport History from \"../history\";\r\nimport LoadDNA from \"./../LoadDNA\";\r\nimport userService from \"../../services/UserService\";\r\nimport { sendEvent } from \"../../util/utils\";\r\nimport moment from \"moment\";\r\nimport {STAGE_SHORT} from '../../constants';\r\n\r\nconst ORDER_DATE = {\r\n \"Mais recentes\": \"ASC\",\r\n \"Mais antigos\": \"DESC\",\r\n \"Mais urgentes\": \"DESC\",\r\n};\r\nclass Exams extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n exams: null,\r\n listEnd: 1,\r\n listOrder: \"Mais recentes\",\r\n listPage: 1,\r\n lastId: null,\r\n hasFilter: false,\r\n hasFilterSearch: false,\r\n renderFilterScreen: false,\r\n paginationIds: [],\r\n filters: {},\r\n filtersSearch: {},\r\n searchValue: \"\",\r\n renderHistory: false,\r\n examHistory: null,\r\n loading: false,\r\n loadingExams: false,\r\n orderBy: null,\r\n isShowingHistory: false,\r\n };\r\n\r\n this.recurrentGetReference = null;\r\n this.inputSearchRef = React.createRef();\r\n }\r\n\r\n async componentDidMount() {\r\n if (userService.getUserType() !== \"L2L\"){\r\n this.setState({ loading: true });\r\n await this.startGettingExamsData(null, this.getQuery(this.state.filters));\r\n this.setState({ loading: false });\r\n this.updateListEnd();\r\n }\r\n this.startListeningEvents();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.stopGettingData();\r\n this.stopListeningEvents();\r\n }\r\n\r\n startListeningEvents() {\r\n window.addEventListener(\"apply-production-unit-filter\", this.applyStageProductionUnitFilterOnFilterOrSearch.bind(this));\r\n window.addEventListener(\"apply-stage-production-unit-filter\", this.applyStageProductionUnitFilterOnFilterOrSearch.bind(this));\r\n }\r\n\r\n stopListeningEvents() {\r\n window.removeEventListener(\"apply-production-unit-filter\", this.applyStageProductionUnitFilterOnFilterOrSearch.bind(this));\r\n window.removeEventListener(\"apply-stage-production-unit-filter\", this.applyStageProductionUnitFilterOnFilterOrSearch.bind(this));\r\n }\r\n\r\n stopGettingData() {\r\n examsService.stopGettingDataFrom(\"get\");\r\n }\r\n\r\n async startGettingExamsData(\r\n orderBy = {},\r\n filterBy = {},\r\n page = 1,\r\n lastId = null\r\n ) {\r\n examsService.stopGettingDataFrom(\"get\");\r\n this.setState({loadingExams: true});\r\n await examsService.startGettingDataFrom(\r\n \"get\",\r\n {\r\n orderBy: orderBy,\r\n filterBy: filterBy,\r\n limit: 20,\r\n page: page,\r\n lastId: lastId,\r\n },\r\n this.updateExams.bind(this),\r\n FETCH_INTERVAL\r\n );\r\n }\r\n\r\n updateExams(exams) {\r\n if (exams && exams.total && !this.state.renderHistory) {\r\n let lastId = exams.lastId;\r\n let Ids = [];\r\n if (this.state.paginationIds.length === 0) {\r\n Ids.push(lastId);\r\n this.setState({ paginationIds: Ids });\r\n }\r\n this.setState({ exams, lastId, loadingExams: false});\r\n sendEvent(\"draw-exams\", exams);\r\n } else if(!this.state.renderHistory && (!this.state.hasFilter && (!this.state.searchValue || this.state.searchValue===\"\"))){\r\n this.setState({ exams: null, loadingExams: false });\r\n sendEvent(\"draw-exams\", exams);\r\n } else if((!exams || !exams.total )&& (this.state.hasFilter || this.state.searchValue)){\r\n this.setState({ exams: null, loadingExams: false });\r\n sendEvent(\"draw-exams\", \"no-results\");\r\n }\r\n }\r\n\r\n async applyStageProductionUnitFilterOnFilterOrSearch(event){\r\n\r\n let productionUnit = event && event.detail && event.detail.productionUnit;\r\n let stage = event && event.detail && event.detail.stage;\r\n let isValidProductionUnit = productionUnit && PRODUCTION_UNIT_NAMES[productionUnit];\r\n let filters = this.state.filtersSearch;\r\n if(this.state.searchValue){\r\n stage && (filters[\"EventStage\"] = [stage]);\r\n isValidProductionUnit && (filters[\"ProductionUnitName\"] = productionUnit);\r\n this.setState({filtersSearch: filters});\r\n this.applyStageProductionUnitFilterOnSearch(productionUnit, stage);\r\n } else{\r\n this.applyStageProductionUnitFilter(productionUnit, stage);\r\n }\r\n }\r\n\r\n async applyStageProductionUnitFilterOnSearch(productionUnit, stage, orderBy = \"orderDate\", order = \"ASC\") {\r\n let userType = userService.getUserType();\r\n let searchValue = this.state.searchValue;\r\n let isOrderId = searchValue.length === 10 && !isNaN(searchValue);\r\n let filters = [];\r\n\r\n if (searchValue) {\r\n if(isOrderId){\r\n filters.push({ OrderId: searchValue });\r\n productionUnit && filters.push({ ProductionUnitName: productionUnit });\r\n stage && filters.push({ EventStage: [stage] });\r\n\r\n await this.startGettingExamsData({ [orderBy]: order }, filters);\r\n } else {\r\n if (userType === \"PSC\") {\r\n filters.push({ ExamDescription: [searchValue] });\r\n productionUnit && filters.push({ ProductionUnitName: productionUnit });\r\n stage && filters.push({ EventStage: [stage] });\r\n\r\n await this.startGettingExamsData({ [orderBy]: order }, filters);\r\n } else {\r\n filters.push({ PatientName: searchValue });\r\n filters.push({ExamDescription: [searchValue]});\r\n productionUnit && filters.push({ ProductionUnitName: productionUnit });\r\n stage && filters.push({ EventStage: [stage] });\r\n\r\n await this.startGettingExamsData({ [orderBy]: order }, filters);\r\n }\r\n }\r\n this.setState({hasFilterSearch: true})\r\n }\r\n this.updateListEnd()\r\n }\r\n\r\n async applyStageProductionUnitFilter(productionUnit, stage){\r\n try { \r\n\r\n let isValidProductionUnit = productionUnit && PRODUCTION_UNIT_NAMES[productionUnit];\r\n\r\n if(isValidProductionUnit || stage){\r\n let filters = this.state.filters;\r\n\r\n !this.state.filters && this.setState({filters: {}});\r\n isValidProductionUnit && (filters[\"ProductionUnitName\"] = productionUnit);\r\n stage && (this.state.filters[\"EventStage\"] = [stage]);\r\n this.setState({filters: filters});\r\n\r\n this.state.hasFilter = true;\r\n this.state.paginationIds = [];\r\n this.state.lastId = null;\r\n this.state.searchValue = '';\r\n this.state.listOrder = 'Mais recentes';\r\n await this.startGettingExamsData({}, this.getQuery(filters));\r\n this.state.listEnd = this.hasExamList() ? this.state.exams.exams.length: 0;\r\n this.setState(this.state);\r\n }\r\n } catch (error) {\r\n console.error(\"Error trying to apply stage production unit filter: \", error.message);\r\n }\r\n }\r\n\r\n closeDropDown() {\r\n let menu = document.querySelector(\".dropdown-menu\");\r\n if (menu.classList.contains(\"user-type-menu\")) {\r\n menu.classList.remove(\"user-type-menu\");\r\n }\r\n }\r\n\r\n openDropDown() {\r\n let menu = document.querySelector(\"#dropdown-menu-filter\");\r\n if (!menu.classList.contains(\"user-type-menu\")) {\r\n menu.classList.add(\"user-type-menu\");\r\n }\r\n }\r\n\r\n async toggleOrderby(id) {\r\n let menu = document.getElementById(\"dropdown-menu-filter\");\r\n let options = menu.getElementsByClassName(\"dropdown-item\");\r\n\r\n for (var c = 0; c < options.length; c++) {\r\n if (options[c].classList.contains(\"active\")) {\r\n options[c].classList.remove(\"active\");\r\n }\r\n }\r\n\r\n let active = document.getElementById(id);\r\n\r\n active.classList.add(\"active\");\r\n\r\n document\r\n .getElementById(\"dropdown-menu-filter\")\r\n .classList.remove(\"user-type-menu\");\r\n\r\n if (id === \"antigos\") {\r\n this.updateSearch(\"orderDate\", \"ASC\");\r\n this.setState({\r\n listOrder: \"Mais \" + id,\r\n paginationIds: [],\r\n lastId: null,\r\n });\r\n } else if (id === \"recentes\") {\r\n this.updateSearch(\"orderDate\", \"DESC\");\r\n this.setState({\r\n listOrder: \"Mais \" + id,\r\n paginationIds: [],\r\n lastId: null,\r\n });\r\n } else if (id === \"urgentes\") {\r\n this.updateSearch(\"urgency\", \"DESC\");\r\n this.setState({\r\n listOrder: \"Mais \" + id,\r\n paginationIds: [],\r\n lastId: null,\r\n });\r\n } else {\r\n console.error(\"Error when trying to apply orderby: invalid option.\");\r\n }\r\n }\r\n\r\n async clearAllFilters() {\r\n this.state.filters = {};\r\n this.state.filtersSearch = {};\r\n this.state.hasFilter = false;\r\n this.state.hasFilterSearch = false;\r\n this.state.paginationIds = [];\r\n this.state.lastId = null;\r\n this.state.listEnd = 1;\r\n this.state.listPage = 1;\r\n this.state.listOrder = 'Mais recentes';\r\n this.setState(this.state);\r\n \r\n if (userService.getUserType() === \"L2L\") {\r\n if(this.state.searchValue === \"\"){\r\n this.stopGettingData();\r\n this.updateExams(null);\r\n }else{\r\n this.updateSearch();\r\n }\r\n } else {\r\n if (this.state.listOrder == \"Mais recentes\") {\r\n await this.startGettingExamsData({ orderDate: \"ASC\" });\r\n } else if (this.state.listOrder == \"Mais antigos\") {\r\n await this.startGettingExamsData({ orderDate: \"DESC\" });\r\n } else if (this.state.listOrder == \"Mais urgentes\") {\r\n await this.startGettingExamsData({ urgency: \"DESC\" });\r\n }\r\n }\r\n this.updateListEnd();\r\n }\r\n\r\n async addStatusFilter(filterName) {\r\n if (!this.state.filters[\"EventStage\"]) {\r\n this.state.filters[\"EventStage\"] = [];\r\n }\r\n this.state.filters[\"EventStage\"].push(filterName);\r\n this.state.hasFilter = true;\r\n this.state.paginationIds = [];\r\n this.state.lastId = null;\r\n this.state.searchValue = '';\r\n this.state.listOrder = 'Mais recentes';\r\n await this.startGettingExamsData({}, this.getQuery(this.state.filters));\r\n this.state.listEnd = this.hasExamList() ? this.state.exams.exams.length: 0;\r\n this.setState(this.state);\r\n }\r\n\r\n async changePage(direction) {\r\n let query = this.state.hasFilter ? \r\n this.getQuery(this.state.filters) : \r\n this.getQuerySearch(this.state.filtersSearch);\r\n\r\n if (direction == \"previous\" && this.state.listPage > 1) {\r\n if(this.hasExamList()){\r\n this.setState({\r\n listEnd: this.state.listEnd - this.state.exams.exams.length,\r\n });\r\n } \r\n if (this.state.paginationIds.length <= 2) {\r\n this.setState({ paginationIds: [] });\r\n await this.startGettingExamsData(\r\n { orderDate: ORDER_DATE[this.state.listOrder] },\r\n query,\r\n this.state.listPage - 1,\r\n null\r\n );\r\n } else {\r\n await this.startGettingExamsData(\r\n {\r\n orderDate: ORDER_DATE[this.state.listOrder],\r\n },\r\n query,\r\n this.state.listPage - 1,\r\n this.state.paginationIds[this.state.paginationIds.length - 2]\r\n );\r\n let array = [...this.state.paginationIds];\r\n array.pop();\r\n this.setState({ paginationIds: array });\r\n }\r\n this.setState({\r\n listPage: this.state.listPage - 1,\r\n });\r\n } else if (\r\n direction == \"next\" &&\r\n this.state.listPage + 1 * 20 < this.state.exams.total\r\n ) {\r\n \r\n let result = await examsService.get({\r\n orderBy: { orderDate: ORDER_DATE[this.state.listOrder] },\r\n filterBy: query,\r\n limit: 20,\r\n page: this.state.listPage + 1,\r\n lastId: this.state.exams.lastId\r\n });\r\n\r\n if(!result || result.length === 0) return;\r\n \r\n this.state.paginationIds.push(this.state.exams.lastId);\r\n\r\n await this.startGettingExamsData(\r\n { orderDate: ORDER_DATE[this.state.listOrder] },\r\n query,\r\n this.state.listPage + 1,\r\n this.state.exams.lastId\r\n );\r\n if(this.hasExamList()){\r\n this.setState({\r\n listPage: this.state.listPage + 1,\r\n listEnd: this.state.listEnd + this.state.exams.exams.length,\r\n });\r\n }\r\n \r\n } else {\r\n console.error(\"ERRO\");\r\n }\r\n }\r\n\r\n toggleLabel(ctrl) {\r\n if (ctrl === 0) {\r\n document.querySelector(\".label-inside\").classList.add(\"filled\");\r\n } else if (\r\n ctrl === 1 &&\r\n document.getElementById(\"inputSearch\").value === \"\"\r\n ) {\r\n document\r\n .querySelector(\".label-inside\")\r\n .classList.remove(\"filled\");\r\n }\r\n }\r\n\r\n getQuery(filters) {\r\n let query = [];\r\n for (const filterIndex in filters) {\r\n if (Object.hasOwnProperty.call(filters, filterIndex)) {\r\n const filter = filters[filterIndex];\r\n if (filterIndex.includes(\"Date\")) {\r\n if(filters[filterIndex]?.begin){\r\n query.push({\r\n 'EstimatedResultDateBegin': moment(filters[filterIndex].begin, \"DD/MM/YY\").format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n });\r\n }\r\n if(filters[filterIndex]?.end){\r\n query.push({\r\n 'EstimatedResultDateEnd': moment(filters[filterIndex].end, \"DD/MM/YY\").format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n });\r\n }\r\n } else {\r\n if (filters[filterIndex] instanceof Array) {\r\n if (filters[filterIndex].length != 0) {\r\n if (filterIndex === \"Exam\") {\r\n let value = filter.map((exam) => exam.split(\":\")[0].trim());\r\n query.push({ [filterIndex]: value });\r\n } else {\r\n query.push({ [filterIndex]: filter });\r\n }\r\n }\r\n } else {\r\n query.push({ [filterIndex]: filter });\r\n }\r\n }\r\n }\r\n }\r\n return query;\r\n }\r\n\r\n getQuerySearch(filters) {\r\n let value = this.inputSearchRef.current\r\n ? this.inputSearchRef.current.value\r\n : this.state.searchValue;\r\n let query = [];\r\n let userType = userService.getUserType();\r\n\r\n for (const filterIndex in filters) {\r\n if (Object.hasOwnProperty.call(filters, filterIndex)) {\r\n const filter = filters[filterIndex];\r\n if (filters[filterIndex] instanceof Array) {\r\n if (filters[filterIndex].length != 0) {\r\n query.push({ [filterIndex]: filter });\r\n }\r\n } else {\r\n query.push({ [filterIndex]: filter });\r\n }\r\n }\r\n }\r\n\r\n if (value !== \"\") {\r\n if (value.length === 10 && !isNaN(value)) {\r\n query.push({ OrderId: value });\r\n } else {\r\n if (userType === \"PSC\") {\r\n query.push({ ExamDescription: [value] })\r\n } else {\r\n query.push({ PatientName: value });\r\n query.push({ ExamDescription: [value] });\r\n }\r\n }\r\n }\r\n\r\n return query;\r\n }\r\n\r\n showDialogErrorMessage(title, errorMessage) {\r\n if (title && errorMessage) {\r\n let dialog = {\r\n type: \"Error\",\r\n title: title,\r\n message: errorMessage,\r\n show: true,\r\n confirmation: () => {\r\n this.setState({ dialog: { show: false } });\r\n },\r\n };\r\n sendEvent(\"show-dialog\", dialog);\r\n }\r\n }\r\n\r\n async applyFilters(filters, hasFilter) {\r\n this.state.renderFilterScreen = false;\r\n this.state.paginationIds = [];\r\n this.state.lastId = null;\r\n this.state.hasFilter = hasFilter;\r\n this.state.filters = filters;\r\n this.state.listOrder = \"Mais recentes\";\r\n this.state.searchValue = \"\";\r\n\r\n if(!hasFilter){\r\n this.setState(this.state);\r\n this.clearAllFilters();\r\n this.props.updateFilterScreenStatus(false);\r\n return;\r\n }\r\n\r\n if (userService.getUserType() === \"L2L\" && !hasFilter) {\r\n this.stopGettingData();\r\n this.updateExams(null);\r\n } else {\r\n await this.startGettingExamsData({}, this.getQuery(filters));\r\n }\r\n\r\n this.state.listEnd = this.hasExamList() ? this.state.exams.exams.length : 0;\r\n this.props.updateFilterScreenStatus(false);\r\n this.setState(this.state);\r\n }\r\n\r\n closeFilters() {\r\n this.setState({ renderFilterScreen: false });\r\n this.props.updateFilterScreenStatus(false);\r\n }\r\n mountDateFilter(){\r\n if(this.state.filters['EstimatedResultDate']?.begin && this.state.filters['EstimatedResultDate']?.end){\r\n return `De ${this.state.filters['EstimatedResultDate']['begin']} Até ${this.state.filters['EstimatedResultDate']['end']}`;\r\n }\r\n return false;\r\n }\r\n\r\n mapFilters(array, filtersExt) {\r\n const FILTERS_COMPLETE ={\r\n 'OrderId': 'Pedido: ',\r\n 'EstimatedResultDateBegin': 'De: ',\r\n 'EstimatedResultDateEnd': 'Até: ',\r\n 'ProductionUnitName': \"Unidade: \"\r\n }\r\n\r\n const URGENCY={\r\n 'Urgency': 'Urgentes'\r\n }\r\n\r\n let filters=[];\r\n array.forEach(element => {\r\n if(filtersExt[element] != null){\r\n if(filtersExt[element] instanceof Array){\r\n filtersExt[element].forEach(value=>{\r\n filters.push(\r\n
    \r\n {STAGE_SHORT[value] || value}\r\n {this.clearFilter(element, value)}}>\r\n x\r\n
    \r\n \r\n );\r\n })\r\n }\r\n else if(element !== 'EstimatedResultDate'){\r\n filters.push(\r\n
    \r\n { \r\n filtersExt[element] && FILTERS_COMPLETE[element] &&\r\n PRODUCTION_UNIT_ALIAS[filtersExt[element]] ?\r\n FILTERS_COMPLETE[element] + PRODUCTION_UNIT_ALIAS[filtersExt[element]] : \r\n FILTERS_COMPLETE[element]\r\n ? FILTERS_COMPLETE[element] + filtersExt[element]\r\n : URGENCY[element] || filtersExt[element]\r\n }\r\n {this.clearFilter(element)}}>\r\n x\r\n
    \r\n \r\n );\r\n }else{\r\n let labelDataFilter = this.mountDateFilter();\r\n if(labelDataFilter){\r\n filters.push(\r\n
    \r\n {labelDataFilter}\r\n
    this.clearFilter(element)}\r\n >x
    \r\n
    \r\n )\r\n }\r\n }\r\n }\r\n\r\n });\r\n return filters;\r\n }\r\n \r\n clearSearch(){\r\n this.state.searchValue = '';\r\n this.state.filtersSearch = {};\r\n this.state.hasFilterSearch = false;\r\n this.setState(this.state, this.updateSearch);\r\n }\r\n\r\n async clearFilter(element, value = null) {\r\n const filterType = this.state.hasFilter ? 'filters' : 'filtersSearch';\r\n if (value) {\r\n let array = this.state[filterType][element];\r\n let index = array.indexOf(value);\r\n array.splice(index, 1);\r\n if (array.length > 0) {\r\n this.state[filterType][element] = array;\r\n } else {\r\n delete this.state[filterType][element];\r\n }\r\n } else {\r\n let filters = this.state[filterType];\r\n delete filters[element];\r\n this.state[filterType] = filters;\r\n }\r\n this.state.paginationIds = [];\r\n this.state.lastId = null;\r\n \r\n this.state.hasFilter = this.checkFilters('filters');\r\n this.state.hasFilterSearch = this.checkFilters('filtersSearch');\r\n this.state.listOrder = 'Mais recentes';\r\n \r\n if(!this.state.hasFilter){\r\n this.state.listPage = 1;\r\n }\r\n this.setState(this.state);\r\n \r\n if (!this.state.hasFilterSearch && !this.state.hasFilter && userService.getUserType() === \"L2L\") {\r\n if(this.state.searchValue === ''){\r\n this.stopGettingData();\r\n this.updateExams(null);\r\n }else{\r\n this.updateSearch();\r\n }\r\n } else {\r\n await this.startGettingExamsData(\r\n {},\r\n this.state.hasFilter ? this.getQuery(this.state.filters) : this.getQuerySearch(this.state.filtersSearch)\r\n );\r\n }\r\n this.updateListEnd();\r\n }\r\n\r\n checkFilters(filterType) {\r\n let hasFilter = false;\r\n for (let c = 0; c < searchIndex.length; c++) {\r\n hasFilter =\r\n (this.state[filterType][searchIndex[c]] != null &&\r\n !(this.state[filterType][searchIndex[c]] instanceof Array)) ||\r\n (this.state[filterType][searchIndex[c]] instanceof Array &&\r\n this.state[filterType][searchIndex[c]].length > 0) && filterType !== 'filtersSearch';\r\n\r\n if (hasFilter) {\r\n c = searchIndex.length[filterType]}\r\n }\r\n return hasFilter;\r\n }\r\n\r\n getExamHistory(exam) {\r\n this.setState({ renderHistory: true, examHistory: exam });\r\n }\r\n\r\n backListExam() {\r\n this.setState({ renderHistory: false });\r\n sendEvent(\"draw-history\", null);\r\n if(window.innerWidth <= 820){\r\n addPaddingInMap({left: 0});\r\n }else{\r\n addPaddingInMap({left: 35});\r\n }\r\n setTimeout(function(){\r\n global.zapt && global.zapt.map && global.zapt.map.invalidateSize()\r\n });\r\n }\r\n\r\n handleChangeInputSearch(){\r\n this.setState({\r\n searchValue: this.inputSearchRef.current.value\r\n },this.updateSearch)\r\n }\r\n\r\n async updateSearch(orderBy = \"orderDate\", order = \"ASC\") {\r\n let value = this.inputSearchRef.current\r\n ? this.inputSearchRef.current.value\r\n : this.state.searchValue;\r\n\r\n let userType = userService.getUserType();\r\n if (value === \"\") {\r\n this.state.hasFilterSearch = false;\r\n this.state.filtersSearch = {};\r\n this.state.listOrder = \"Mais recentes\";\r\n this.setState(this.state);\r\n if (userType === \"L2L\" && !this.state.hasFilter) {\r\n this.stopGettingData();\r\n this.updateExams(null);\r\n } else {\r\n await this.startGettingExamsData(\r\n { [orderBy]: order },\r\n this.getQuery(this.state.filters)\r\n );\r\n }\r\n } else if (value.length === 10 && !isNaN(value)) {\r\n await this.startGettingExamsData({ [orderBy]: order }, [\r\n { OrderId: value },\r\n ]);\r\n } else if(isAlphanumericOrderId(value)){\r\n\r\n let orderId = await examsService.getOrderIdFromAlphanumericCode(value);\r\n\r\n orderId && await this.startGettingExamsData({ [orderBy]: order }, [\r\n { OrderId: orderId },\r\n ]);\r\n } else{ \r\n if (userType === \"PSC\") {\r\n await this.startGettingExamsData({ [orderBy]: order }, [\r\n { ExamDescription: [value] },\r\n ]);\r\n } else {\r\n await this.startGettingExamsData({ [orderBy]: order }, [\r\n { PatientName: value },\r\n { ExamDescription: [value] },\r\n ]);\r\n }\r\n }\r\n\r\n this.updateListEnd()\r\n }\r\n\r\n hasExamList(){\r\n if(this.state.exams && this.state.exams.exams && this.state.exams.exams.length){\r\n return true\r\n }\r\n return false;\r\n }\r\n\r\n updateListEnd(){\r\n if(this.hasExamList()){\r\n this.setState({\r\n listEnd: this.state.exams.exams.length\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const btDefaultStyle = {\r\n marginTop: \"5px\",\r\n marginBottom: \"5px\",\r\n };\r\n\r\n const showExams =\r\n userService.getUserType() === \"PSC\" || this.state.hasFilter;\r\n\r\n return this.state.loading ? (\r\n \r\n ) : (\r\n <>\r\n {!this.state.renderFilterScreen ? (\r\n this.state.renderHistory ? (\r\n \r\n ) : (\r\n <>\r\n
    \r\n

    Exames por situação

    \r\n
    \r\n Total\r\n \r\n {this.state.hasFilter || this.state.hasFilterSearch\r\n ? !this.state.exams\r\n ? 0\r\n : this.state.exams.total\r\n ? this.state.exams.total\r\n : 0\r\n : this.props.status && this.props.status\r\n ? this.props.status.TOTAL\r\n : 0}\r\n \r\n
    \r\n
    \r\n
    \r\n Brasil\r\n \r\n {this.props.currentProductionUnit === \"HP\"\r\n ? \"Todas as unidades\"\r\n : PRODUCTION_UNIT_ALIAS[this.props.currentProductionUnit]}\r\n \r\n
    \r\n {this.props.status &&\r\n this.props.status != null &&\r\n !this.state.hasFilter &&\r\n !this.state.hasFilterSearch ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n
    \r\n {this.state.hasFilter ? (\r\n {\r\n this.setState({ renderFilterScreen: true });\r\n this.props.updateFilterScreenStatus(true);\r\n }}\r\n >\r\n Busca\r\n \r\n ) : null}\r\n
    \r\n
    \r\n {\r\n this.clearAllFilters();\r\n }}\r\n >\r\n Limpar filtros\r\n
    \r\n \r\n \r\n
    \r\n {this.state.searchValue !== \"\"\r\n ? this.mapFilters(searchIndex, this.state.filtersSearch)\r\n : this.mapFilters(searchIndex, this.state.filters)}\r\n
    \r\n \r\n )}\r\n {!this.state.hasFilter || this.state.hasFilterSearch ? (\r\n <>\r\n
    \r\n \r\n {this.state.searchValue !== \"\" ? (\r\n this.clearSearch()}\r\n >\r\n ) : null}\r\n \r\n {\r\n this.handleChangeInputSearch();\r\n }}\r\n onFocus={() => {\r\n this.toggleLabel(0);\r\n }}\r\n onBlur={() => {\r\n this.toggleLabel(1);\r\n }}\r\n />\r\n
    \r\n \r\n \r\n ) : null}\r\n \r\n {this.state.searchValue === \"\" && !this.state.hasFilter ? (\r\n
    \r\n {\r\n this.setState({ renderFilterScreen: true });\r\n this.props.updateFilterScreenStatus(true);\r\n }}\r\n >\r\n Busca Avançada\r\n
    \r\n \r\n ) : null}\r\n {showExams || this.state.hasFilter || this.state.searchValue !== \"\" ? (\r\n <>\r\n \r\n \r\n {\r\n \"* Exames liberados há mais de 15 dias podem não estar disponíveis.\"\r\n }\r\n \r\n \r\n \r\n \r\n {\"* Contate o Customer Service em caso de dúvidas. \"}\r\n \r\n \r\n \r\n ) : null}\r\n {this.state.exams && this.state.exams.exams ? (\r\n <>\r\n
    \r\n \r\n Exibindo{\" \"}\r\n {this.state.listEnd - this.state.exams.exams.length + 1}{\" \"}\r\n a {this.state.listEnd} de {this.state.exams.total || 0}\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n this.openDropDown();\r\n }}\r\n >\r\n {this.state.listOrder}\r\n
    \r\n \r\n
  • \r\n {\r\n this.closeDropDown();\r\n this.toggleOrderby(\"recentes\");\r\n }}\r\n >\r\n Mais recentes\r\n
  • \r\n \r\n
  • \r\n {\r\n this.closeDropDown();\r\n this.toggleOrderby(\"antigos\");\r\n }}\r\n >\r\n Mais antigos\r\n \r\n
  • \r\n
  • \r\n {\r\n this.closeDropDown();\r\n this.toggleOrderby(\"urgentes\");\r\n }}\r\n >\r\n Mais urgentes\r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n {this.state.loadingExams ? (\r\n \r\n ) : null}\r\n {!this.state.loadingExams &&\r\n this.state.exams &&\r\n this.state.exams.exams ? (\r\n <>\r\n \r\n
    \r\n
    \r\n \r\n Exibindo{\" \"}\r\n {this.state.listEnd - this.state.exams.exams.length + 1}{\" \"}\r\n a {this.state.listEnd} de {this.state.exams.total || 0}\r\n \r\n
    \r\n
    \r\n {\r\n this.changePage(\"previous\");\r\n }}\r\n >
    \r\n = this.state.exams.total\r\n ? { visibility: \"hidden\" }\r\n : { visibility: \"visible\" }\r\n }\r\n className=\"bt-default bt-load-plus-20\"\r\n onClick={() => {\r\n this.changePage(\"next\");\r\n }}\r\n >
    \r\n \r\n \r\n \r\n ) : (\r\n
    \r\n {!this.state.loadingExams ? (\r\n Object.keys(this.state.filters).length != 0 ? (\r\n Object.keys(this.state.filters).length > 1 ? (\r\n !this.state.exams || this.state.exams.length === 0 ? (\r\n

    \r\n Não foram encontrados exames para os filtros\r\n selecionados.\r\n

    \r\n ) : null\r\n ) : !this.state.exams || this.state.exams.length === 0 ? (\r\n

    \r\n Não foram encontrados exames para o filtro\r\n selecionado.\r\n

    \r\n ) : null\r\n ) : showExams || this.state.searchValue !== \"\" ? (\r\n

    Nenhum exame foi encontrado.

    \r\n ) : null\r\n ) : null}\r\n
    \r\n )}\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Exams);\r\n","import React, { Component } from \"react\";\r\nimport moment from \"moment\";\r\nimport { withRouter } from \"react-router\";\r\nimport { sendEvent } from \"../../util/utils\";\r\nimport {STAGE_SHORT, STAGE_COLOR_CODE, STAGE_ICONS} from '../../constants';\r\nimport UserService from \"../../services/UserService\";\r\nimport examsService from \"../../services/ExamsService\";\r\n\r\nclass List extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n renderList: true,\r\n windowWidth: window.innerWidth,\r\n };\r\n this.userType= UserService.getUserType()\r\n this.highLightEnable = false;\r\n }\r\n\r\n componentDidMount() {\r\n this.userType = UserService.getUserType();\r\n }\r\n\r\n componentDidUpdate(previousProps) {}\r\n\r\n processName(name) {\r\n if (name.length > 21) {\r\n return name.substring(0, 20) + \"...\";\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n exameName(name) {\r\n if (this.state.windowWidth < 500 && name.length > 50) {\r\n return name.substring(0, 45) + \"...\";\r\n } else if (name.length > 60) {\r\n return name.substring(0, 56) + \"...\";\r\n }\r\n return name;\r\n }\r\n\r\n async getExamResult(exam){\r\n\r\n let year = exam && exam.orderDate.split(\"-\");\r\n year = year && year.length>0 && year[0];\r\n\r\n if(exam && exam.orderId && exam.examId && year && exam.patientName && exam.examDescription){\r\n\r\n let result = await examsService.getResult(exam.orderId, exam.examId, year);\r\n\r\n if(result){\r\n const url = window.URL.createObjectURL(new Blob([result])); \r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = `${exam.patientName} - ${exam.examDescription}.pdf`;\r\n \r\n downloadLink.href = url;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const examTextStyle = {\r\n margin: \"0 0 0 0\",\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n (window.onresize = () => {\r\n this.setState({\r\n windowWidth: window.innerWidth,\r\n });\r\n })\r\n }\r\n {this.state.renderList ? (\r\n <>\r\n {this.props.exams && this.props.exams.map\r\n ? this.props.exams.map((exame) => (\r\n {\r\n if(this.highLightEnable){\r\n sendEvent(\"highlight-exam\", exame);\r\n }\r\n }}\r\n onMouseOut={(e) => {\r\n this.highLightEnable = true;\r\n sendEvent(\"highlight-exam\", null);\r\n }}\r\n onClick={(e) => {\r\n if (e.target.classList.contains(\"tooltip-date\")) {\r\n e.stopPropagation();\r\n return false;\r\n }\r\n this.props.getExamHistory(exame);\r\n }}\r\n >\r\n
    \r\n
    \r\n

    \r\n {this.exameName(exame.examDescription)}\r\n

    \r\n
    \r\n {exame.urgency && !exame.urgency == \"\" && (\r\n
    Urgente
    \r\n )}\r\n {exame.sampleStored.toUpperCase()==\"SIM\" ? (\r\n
    Armazenado
    \r\n ):(\r\n <>\r\n {exame.discardedSample && (\r\n
    Descartado
    \r\n )}\r\n \r\n )}\r\n {exame.eventStage === \"Resultado Liberado\" && (\r\n {\r\n e.stopPropagation();\r\n this.getExamResult(exame);\r\n }}\r\n className=\"exam-report\"\r\n data-bs-toggle=\"tooltip\"\r\n title=\"Baixar resultado do exame\"\r\n >Download
    \r\n )}\r\n \r\n \r\n {this.userType !== 'PSC' ?\r\n (\r\n
    \r\n
    \r\n
    \r\n Paciente\r\n
    \r\n
    \r\n {exame.patientName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Pedido\r\n
    \r\n
    \r\n {`${exame.orderId} (${exame.orderAlphaNumeric})`}\r\n
    \r\n
    \r\n
    \r\n ):null}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Unidade\r\n
    \r\n
    \r\n {exame.aliasProdUnit}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Previsão
    \r\n {!exame.estimatedResultDate ? (\r\n
    \r\n Pendente\r\n
    \r\n ) : (\r\n
    \r\n {this.state.windowWidth < 500 ? (\r\n <>\r\n {moment(exame.estimatedResultDate).format(\r\n \"DD/MM - HH:mm\"\r\n )}\r\n \r\n {moment(exame.estimatedResultDate).format(\r\n \"DD/MM/YYYY - HH:mm\"\r\n )}\r\n \r\n \r\n ) : (\r\n moment(exame.estimatedResultDate).format(\r\n \"DD/MM/YY HH:mm\"\r\n )\r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Situação
    \r\n \r\n {STAGE_SHORT[exame.eventStage.toUpperCase()]}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ))\r\n : null}\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(List);\r\n"],"sourceRoot":""}