{"version":3,"sources":["assets/nopicture.png","assets/5888925dbc2fc2ef3a1860ad.png","assets/yellow-pin.png","context/FilterContext.tsx","context/UserContext.tsx","containers/NeuralNetwork_Tester.tsx","containers/Map.tsx","helpers/numberFormat.js","containers/BaseStats.tsx","containers/UnitStats.tsx","containers/RankingStats.tsx","containers/Filters.tsx","containers/Chart.tsx","containers/App.tsx","reportWebVitals.ts","index.tsx"],"names":["registerLocale","pt","startDateDaysAgo","Date","setDate","getDate","initState","filterData","selectedPort","undefined","selectedCategory","selectedCategorySubtypes","selectedType","selectedStartDate","selectedEndDate","FilterContext","createContext","FilterDispatchContext","props","useState","filterState","setFilterState","Provider","value","children","UserContext","UserDispatchContext","imageURL","setImageURL","recognitionData","setRecognitionData","recognitionLoading","setRecognitionLoading","getBase64Image","img","a","document","createElement","canvas","width","height","setAttribute","getContext","ctx","drawImage","toDataURL","dataURL","replace","style","margin","type","name","onChange","e","event","target","files","URL","createObjectURL","onImageChange","textAlign","id","src","maxHeight","Button","disabled","onClick","getElementById","Promise","resolve","setTimeout","imgBase64","fetch","process","method","headers","body","JSON","stringify","response","json","Spinner","animation","CL","CN","Table","striped","bordered","hover","allResults","sort","b","SpecieConfidence","map","result","fontWeight","SpecieName","DEFAULT_COORDS","lat","lng","sectionType","withDateIntervalFilter","useContext","show","data","modalIssue","setModalIssue","modalDeliveryPoint","setModalDeliveryPoint","issues","setIssues","deliveryPoints","setDeliveryPoints","points","setPoints","bounds","setBounds","zoom","setZoom","mapRef","useRef","mapsRef","useEffect","issue","parentID","TypeParentID","categoryData","find","parseInt","ID","UUID","ReporterName","DateReported","IssueTypeName","IssueID","Name","GPS_LONG","GPS_LAT","Object","keys","deliveryPointKey","DeliveryPointID","DeliveryPointName","IssuesID","useSupercluster","options","radius","maxZoom","clusters","supercluster","geolocationUser","parseByTypeID","parseByPortID","typeData","filter","ParentID","byTypeID","byPortID","isDelivered","startDate","toISOString","split","endDate","results","push","Delivery_GPS_LAT","Delivery_GPS_LONG","current","latLng","LatLng","panTo","init","IssueModal","className","tabIndex","role","aria-labelledby","aria-hidden","data-backdrop","Modal","Header","Title","typeName","charAt","toUpperCase","slice","parentTypeName","Fragment","fontSize","data-dismiss","aria-label","Body","Container","Row","Col","Image","thumbnail","uuid","onError","ev","require","default","fluid","padding","reporterName","date","DeliveryPointModal","deliveredIssues","deliveredIssue","issueData","verticalAlign","ReactDOM","render","window","location","pathname","bootstrapURLKeys","key","defaultCenter","defaultZoom","onGoogleApiLoaded","maps","controls","ControlPosition","TOP_CENTER","controlButtonDiv","loadIssueModal","loadDeliveryPointModal","nw","se","cluster","geometry","coordinates","longitude","latitude","properties","isCluster","pointCount","point_count","Marker","length","color","background","borderRadius","display","justifyContent","alignItems","expansionZoom","Math","min","getClusterExpansionZoom","text","position","left","top","$","modal","number","haveDecimals","formatedStringNumber","toString","round","toFixed","userState","totalIssues","setTotalIssues","totalReporters","setTotalReporters","totalPorts","setTotalPorts","totalFishermans","setFishermans","apikey","Card","numberFormat","countIssues","Subtitle","countBoats","countPorts","countFishermans","setSettings","packages","setPackages","undifferenciated","setUndifferenciated","packages2","setPackages2","undifferenciated2","setUndifferenciated2","settingsRequest","settings","ShowOnlyInitialData","unitCount","vesselRankings","setVesselRankings","portRankings","setPortRankings","vessel","NationalClassification","Vessel","PointsEarned","Barco","Pontos","port","PortClassification","Porto","filterDispatchState","Form","Group","as","controlId","Label","Control","defaultValue","portData","subtypeInputs","createSubTypeInput","selectedParent","newSelectedCategorySubtypes","entries","console","log","input","SubTypesFilter","selected","selectsStart","maxDate","onFocus","readOnly","locale","dateFormat","wrapperClassName","placeholderText","selectsEnd","minDate","portFiltered","categoryFiltered","typeFiltered","marginLeft","marginTop","marginBottom","parseFilters","xs","Filters","Chart","chartData","setChartData","reportedDate","uv","count","CustomTooltip","active","payload","label","backgroundColor","border","ResponsiveContainer","AreaChart","right","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","tick","dy","YAxis","angle","textAnchor","Tooltip","content","Area","stroke","fill","App","GetFilterData","VerifyApiKey","useParams","userDispatchState","TabsComponent","tab","setTab","Tabs","defaultActiveKey","onSelect","Tab","eventKey","title","UnitStats","Map","RankingStats","DashBoard","BaseStats","exact","path","NeuralNetwork_Tester","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","StrictMode"],"mappings":"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","file":"static/js/main.a0cd0ec3.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/nopicture.fa13b73b.png\";","export default __webpack_public_path__ + \"static/media/5888925dbc2fc2ef3a1860ad.4a418522.png\";","export default __webpack_public_path__ + \"static/media/yellow-pin.5b646e4a.png\";","import React, { useState, createContext } from \"react\";\r\nimport { FilterState } from \"../types/type\";\r\nimport { registerLocale } from \"react-datepicker\";\r\nimport pt from \"date-fns/locale/pt\";\r\n\r\nregisterLocale(\"pt\", pt);\r\nlet startDateDaysAgo = new Date()\r\nstartDateDaysAgo.setDate(startDateDaysAgo.getDate() - 7);\r\n\r\nexport const initState = { \r\n filterData: null,\r\n selectedPort: undefined,\r\n selectedCategory: undefined,\r\n selectedCategorySubtypes: undefined,\r\n selectedType: undefined,\r\n selectedStartDate: startDateDaysAgo,\r\n selectedEndDate: (new Date())\r\n}\r\n\r\nexport const FilterContext = createContext(initState);\r\nexport const FilterDispatchContext = createContext(() => null);\r\n\r\nexport default (props) => {\r\n const [filterState, setFilterState] = useState(initState) \r\n\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n }","import React, { useState, createContext } from \"react\";\r\n\r\n\r\nexport const initState = { }\r\n\r\nexport const UserContext = createContext(initState);\r\nexport const UserDispatchContext = createContext(() => null);\r\n\r\nexport default (props) => {\r\n const [filterState, setFilterState] = useState(initState) \r\n\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n }\r\n\r\n interface UserState {\r\n name?: string,\r\n role?: string,\r\n apikey?: string\r\n }","import { TramRounded } from \"@material-ui/icons\";\r\nimport React, { useState, useEffect } from \"react\"\r\nimport { Button, Spinner, Table } from \"react-bootstrap\"\r\nexport default () => {\r\n const cutoff = 70;\r\n const [imageURL, setImageURL] = useState(\"\");\r\n const [recognitionData, setRecognitionData] = useState(null);\r\n const [recognitionLoading, setRecognitionLoading] = useState(false);\r\n\r\n const onImageChange = (event) => {\r\n if (event.target.files && event.target.files[0]) {\r\n let img = event.target.files[0];\r\n setImageURL(URL.createObjectURL(img))\r\n }\r\n };\r\n\r\n const getBase64Image = async (img) => {\r\n var canvas = await document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n img.setAttribute('crossOrigin', 'anonymous');\r\n var ctx = await canvas.getContext(\"2d\");\r\n await ctx.drawImage(img, 0, 0);\r\n var dataURL = await canvas.toDataURL(\"image/png\");\r\n return await dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n }\r\n\r\n return (\r\n
\r\n {\r\n //\r\n // setImageURL(e.target.value)}>\r\n }\r\n
\r\n onImageChange(e)} />\r\n
\r\n
\r\n \r\n
\r\n\r\n {\r\n imageURL !== \"\" &&\r\n
\r\n \r\n
\r\n }\r\n {\r\n !recognitionLoading && recognitionData &&\r\n
\r\n

Resultados:

\r\n\r\n

{recognitionData.CL > cutoff ? recognitionData.CN : \"Inconclusivo\"}

\r\n
{recognitionData.CL > cutoff ? recognitionData.CL + \" % de confiança\" : \"\"}
\r\n
\r\n
\r\n
\r\n Detalhes:\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {recognitionData.allResults.sort((a,b) => b.SpecieConfidence - a.SpecieConfidence).map((result) =>\r\n cutoff ? \"bold\" : \"normal\"}}>\r\n \r\n \r\n )}\r\n \r\n
Nome da EspécieConfiança
{result.SpecieName}{result.SpecieConfidence + \" %\"}
\r\n
\r\n
\r\n } \r\n
\r\n )\r\n}\r\n\r\n\r\n","import GoogleMapReact from 'google-map-react';\r\nimport $ from 'jquery'; // <-to import jquery\r\nimport 'bootstrap';\r\nimport ReactDOM from 'react-dom';\r\nimport React, { useState, useEffect, useRef, useContext } from 'react';\r\nimport { OverlayTrigger, Popover, Image, Container, Row, Col, Modal, Table } from 'react-bootstrap';\r\nimport { FilterContext } from \"../context/FilterContext\";\r\n//import useGeolocation from 'react-hook-geolocation'\r\nimport useSupercluster from \"use-supercluster\";\r\nimport { MapIssueState, GeolocationUserState, MarkerComponentProps, MapDeliveryPointsState } from '../types/type';\r\n\r\nconst DEFAULT_ZOOM = 6;\r\nconst DEFAULT_COORDS = {\r\n lat: 39.368279,\r\n lng: -12.412793\r\n} \r\n//@ts-ignore\r\nexport default ({\r\n sectionType,\r\n withDateIntervalFilter\r\n}, {\r\n sectionType: String,\r\n withDateIntervalFilter: boolean\r\n}) => {\r\n const filterState = useContext(FilterContext);\r\n const [modalIssue, setModalIssue] = useState({ show: false, data: null })\r\n const [modalDeliveryPoint, setModalDeliveryPoint] = useState({ show: false, data: null })\r\n //const geolocation = useGeolocation()\r\n const [issues, setIssues] = useState<[MapIssueState] | null>(null);\r\n const [deliveryPoints, setDeliveryPoints] = useState(null);\r\n const [points, setPoints] = useState([])\r\n const [bounds, setBounds] = useState<[number, number, number, number] | null>(null);\r\n const [zoom, setZoom] = useState(DEFAULT_ZOOM);\r\n const mapRef = useRef();\r\n const mapsRef = useRef(); \r\n\r\n useEffect(() => {\r\n if (sectionType === \"collected\") {\r\n setPoints(\r\n issues ? issues.map((issue) => {\r\n const parentID = issue.TypeParentID && filterState.filterData && filterState.filterData.categoryData.find((data) => parseInt(issue.TypeParentID) === data.ID)\r\n return {\r\n \"type\": \"Feature\",\r\n \"properties\": {\r\n \"cluster\": false,\r\n \"uuid\": issue.UUID,\r\n \"reporterName\": issue.ReporterName,\r\n \"date\": issue.DateReported,\r\n \"typeName\": issue.IssueTypeName,\r\n \"id\": issue.IssueID,\r\n \"parentTypeName\": parentID ? parentID.Name : null\r\n },\r\n \"geometry\": { \"type\": \"Point\", \"coordinates\": [issue.GPS_LONG, issue.GPS_LAT] }\r\n }\r\n }) : []\r\n );\r\n } else {\r\n setPoints(\r\n deliveryPoints ? Object.keys(deliveryPoints).map((deliveryPointKey) => {\r\n return {\r\n \"type\": \"Feature\",\r\n \"properties\": {\r\n \"cluster\": false,\r\n \"id\": deliveryPoints[deliveryPointKey].DeliveryPointID,\r\n \"name\": deliveryPoints[deliveryPointKey].DeliveryPointName,\r\n \"deliveredIssues\": deliveryPoints[deliveryPointKey].IssuesID\r\n },\r\n \"geometry\": { \"type\": \"Point\", \"coordinates\": [deliveryPoints[deliveryPointKey].GPS_LONG, deliveryPoints[deliveryPointKey].GPS_LAT] }\r\n }\r\n }) : []\r\n );\r\n }\r\n \r\n }, [issues, deliveryPoints])\r\n\r\n const { clusters, supercluster } = useSupercluster({\r\n points,\r\n bounds,\r\n zoom,\r\n options: { radius: 75, maxZoom: 20 },\r\n });\r\n const [geolocationUser, setGeolocationUser] = useState(DEFAULT_COORDS);\r\n\r\n useEffect(() => {\r\n async function init() {\r\n let parseByTypeID: number[] = [];\r\n let parseByPortID: number[] = [];\r\n\r\n if (filterState.selectedPort && filterState.selectedPort !== \"-\" && filterState.selectedPort !== \"0\") { parseByPortID = [parseInt(filterState.selectedPort!)] }\r\n if (filterState.filterData && filterState.selectedCategory && filterState.selectedCategory !== \"-\" && filterState.selectedCategory !== \"0\") {\r\n parseByTypeID = filterState.filterData.typeData.filter((type) => {\r\n return type.ParentID === parseInt(filterState.selectedCategory!)\r\n }).map((type) => type.ID);\r\n }\r\n if (filterState.selectedType && filterState.selectedType !== \"-\" && filterState.selectedType !== \"0\") { parseByTypeID = [parseInt(filterState.selectedType!)] }\r\n const response = await fetch(process.env.REACT_APP_BACKEND_URL + (sectionType === \"collected\" ? `/kpi/issue-map` : `/kpi/issue-map-delivered-points`), {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n byTypeID: parseByTypeID,\r\n byPortID: parseByPortID || [],\r\n isDelivered: sectionType === \"collected\" ? false : true,\r\n startDate: withDateIntervalFilter ? filterState.selectedStartDate.toISOString().split(\"T\")[0] : new Date(0).toISOString().split(\"T\")[0],\r\n endDate: withDateIntervalFilter ? filterState.selectedEndDate.toISOString().split(\"T\")[0] : new Date().toISOString().split(\"T\")[0],\r\n })\r\n });\r\n\r\n const result = (await response.json()).results\r\n setIssues(result);\r\n \r\n let deliveryPoints = {}\r\n //Parse delivery points cooresponding to the issues\r\n for (let issue of result) {\r\n if(deliveryPoints[issue.DeliveryPointID]) {\r\n deliveryPoints[issue.DeliveryPointID].IssuesID.push(issue.IssueID)\r\n } else {\r\n deliveryPoints[issue.DeliveryPointID] = {\r\n DeliveryPointID: issue.DeliveryPointID,\r\n DeliveryPointName: issue.DeliveryPointName, \r\n GPS_LAT: issue.Delivery_GPS_LAT,\r\n GPS_LONG: issue.Delivery_GPS_LONG,\r\n IssuesID: [issue.IssueID]\r\n }\r\n }\r\n }\r\n setDeliveryPoints(deliveryPoints)\r\n \r\n if (mapsRef.current && mapRef.current) {\r\n //@ts-ignore\r\n const latLng = new mapsRef!.current!.LatLng(DEFAULT_COORDS.lat, DEFAULT_COORDS.lng);\r\n //@ts-ignore\r\n mapRef!.current!.setZoom(DEFAULT_ZOOM)\r\n //@ts-ignore\r\n mapRef!.current!.panTo(latLng);\r\n }\r\n }\r\n init()\r\n }, [sectionType, filterState.selectedPort, filterState.selectedCategory, filterState.selectedType, filterState.selectedStartDate, filterState.selectedEndDate])\r\n\r\n /*useEffect(() => {\r\n if (geolocation.latitude && geolocation.longitude && !geolocation.error) {\r\n setGeolocationUser({ lat: geolocation.latitude, lng: geolocation.longitude })\r\n }\r\n }, [geolocation])\r\n */\r\n\r\n const loadIssueModal = () => {\r\n const controlButtonDiv = document.createElement('div');\r\n controlButtonDiv.setAttribute(\"id\", \"divModalIssue\");\r\n\r\n ReactDOM.render(IssueModal(), controlButtonDiv);\r\n return controlButtonDiv\r\n }\r\n\r\n const loadDeliveryPointModal = () => {\r\n const controlButtonDiv = document.createElement('div');\r\n controlButtonDiv.setAttribute(\"id\", \"divModalDeliveryPoint\");\r\n\r\n ReactDOM.render(DeliveryPointModal(), controlButtonDiv);\r\n return controlButtonDiv\r\n }\r\n\r\n const IssueModal = () =>\r\n
\r\n
\r\n
\r\n {\r\n modalIssue.data &&\r\n \r\n \r\n {`${modalIssue.data.typeName ? modalIssue.data.typeName.charAt(0).toUpperCase() + modalIssue.data.typeName.slice(1) : \" - \"}`}\r\n {\r\n modalIssue.data.parentTypeName &&\r\n \r\n
\r\n {`${modalIssue.data.parentTypeName.charAt(0).toUpperCase() + modalIssue.data.parentTypeName.slice(1)}`}\r\n
\r\n }\r\n
\r\n \r\n
\r\n }\r\n {\r\n modalIssue.data &&\r\n \r\n \r\n \r\n \r\n {\r\n //@ts-ignore\r\n ev.target.src = require(\"../assets/nopicture.png\").default;\r\n }} fluid />\r\n \r\n \r\n {modalIssue.data.reporterName}
\r\n {modalIssue.data.date.split(\"T\")[0]}
\r\n {modalIssue.data.date.split(\"T\")[1].split(\".\")[0]}\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n const DeliveryPointModal = () =>\r\n
\r\n
\r\n
\r\n {\r\n modalDeliveryPoint.data &&\r\n \r\n \r\n {`${modalDeliveryPoint.data.name}`}\r\n \r\n \r\n \r\n }\r\n {\r\n modalDeliveryPoint.data &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n modalDeliveryPoint.data.deliveredIssues.map((deliveredIssue) => {\r\n const issueData = issues.find((issue) => issue.IssueID === deliveredIssue);\r\n if(issueData) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n } else {\r\n \r\n \r\n }\r\n })\r\n }\r\n \r\n \r\n
ImagemBarcoItem
\r\n {\r\n //@ts-ignore\r\n ev.target.src = require(\"../assets/nopicture.png\").default;\r\n }} fluid />\r\n {issueData.ReporterName}{issueData.IssueTypeName}
\r\n\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n useEffect(() => {\r\n if (modalIssue.data) {\r\n ReactDOM.render(\r\n IssueModal()\r\n , document.getElementById(\"divModalIssue\"));\r\n }\r\n }, [modalIssue])\r\n\r\n useEffect(() => {\r\n if (modalDeliveryPoint.data) {\r\n ReactDOM.render(\r\n DeliveryPointModal()\r\n , document.getElementById(\"divModalDeliveryPoint\"));\r\n }\r\n }, [modalDeliveryPoint])\r\n\r\n return (\r\n
\r\n {\r\n mapRef.current = map;\r\n mapsRef.current = maps;\r\n // @ts-ignore\r\n mapRef!.current.controls[mapsRef!.current.ControlPosition.TOP_CENTER].push(loadIssueModal());\r\n // @ts-ignore\r\n mapRef!.current.controls[mapsRef!.current.ControlPosition.TOP_CENTER].push(loadDeliveryPointModal());\r\n }}\r\n onChange={({ zoom, bounds }) => {\r\n setZoom(zoom);\r\n setBounds([\r\n bounds.nw.lng,\r\n bounds.se.lat,\r\n bounds.se.lng,\r\n bounds.nw.lat\r\n ]);\r\n }}\r\n >\r\n {\r\n clusters.map((cluster) => {\r\n const [longitude, latitude] = cluster.geometry.coordinates;\r\n const {\r\n cluster: isCluster,\r\n point_count: pointCount\r\n } = cluster.properties;\r\n\r\n if (isCluster) {\r\n return (\r\n \r\n {\r\n const expansionZoom = Math.min(\r\n supercluster.getClusterExpansionZoom(cluster.id),\r\n 20\r\n );\r\n // @ts-ignore\r\n mapRef && mapRef.current.setZoom(expansionZoom);\r\n // @ts-ignore\r\n mapRef && mapRef.current.panTo({ lat: latitude, lng: longitude });\r\n }}\r\n >\r\n {pointCount}\r\n
\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n
{\r\n if(sectionType === \"collected\"){\r\n setModalIssue({ show: true, data: cluster.properties })\r\n //@ts-ignore\r\n $('#issueModal').modal('show');\r\n } else {\r\n setModalDeliveryPoint({ show: true, data: cluster.properties })\r\n //@ts-ignore\r\n $('#deliveryPointModal').modal('show');\r\n }\r\n }}\r\n >\r\n \r\n
\r\n \r\n )\r\n }\r\n })\r\n }\r\n \r\n {\r\n //\r\n }\r\n \r\n )\r\n}\r\n\r\nconst Marker = ({ children }: MarkerComponentProps) => children;\r\n","export default (number, haveDecimals) => {\r\n let formatedStringNumber = number.toString();\r\n if (haveDecimals) {\r\n formatedStringNumber = (Math.round(number * 100) / 100).toFixed(2).toString();\r\n }\r\n return formatedStringNumber.replace(/(?!^)(?=(?:\\d{3})+(?:\\.|$))/gm, \" \");\r\n};","import React, {useEffect, useState, useContext} from 'react';\r\nimport { Col, Card } from 'react-bootstrap';\r\nimport { TotalIssuesState, TotalReportersState, TotalPortsState, TotalFishermansState } from '../types/type';\r\nimport numberFormat from \"../helpers/numberFormat\"\r\nimport { UserContext } from \"../context/UserContext\";\r\n\r\nexport default (props) => {\r\n const userState = useContext(UserContext);\r\n\r\n const [totalIssues, setTotalIssues] = useState(null)\r\n const [totalReporters, setTotalReporters] = useState(null)\r\n const [totalPorts, setTotalPorts] = useState(null)\r\n const [totalFishermans, setFishermans] = useState(null)\r\n \r\n useEffect(() => {\r\n async function init() {\r\n if (userState.role === 'admin') {\r\n let response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countIssues`);\r\n setTotalIssues((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countBoats`);\r\n setTotalReporters((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countPorts`);\r\n setTotalPorts((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countFishermans`);\r\n setFishermans((await response.json()));\r\n } else {\r\n let response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countIssues?apikey=${userState.apikey}`);\r\n setTotalIssues((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countBoats?apikey=${userState.apikey}`);\r\n setTotalReporters((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/countFishermans?apikey=${userState.apikey}`);\r\n setFishermans((await response.json()));\r\n }\r\n }\r\n init()\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {totalIssues && numberFormat(totalIssues.countIssues)}\r\n \r\n Quantidade de Registos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n userState.role === 'admin' ? numberFormat(784,false) : (totalReporters && numberFormat(totalReporters.countBoats,false))\r\n }\r\n \r\n \r\n {\r\n userState.role === 'admin' ? \"Barcos Aderentes\" : \"Barcos\"\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n userState.role === 'admin' &&\r\n \r\n \r\n \r\n {totalPorts && numberFormat(totalPorts.countPorts)}\r\n Portos Ativos\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n {\r\n userState.role === 'admin' ? numberFormat(3157,false) : (totalFishermans && totalFishermans.countFishermans)\r\n }\r\n \r\n Pescadores\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState, useContext } from 'react';\r\nimport { Row, Card, Col } from 'react-bootstrap';\r\nimport { TotalUnitState } from '../types/type';\r\nimport numberFormat from \"../helpers/numberFormat\"\r\nimport { UserContext } from \"../context/UserContext\";\r\n\r\nexport default ({\r\n sectionType\r\n}: {\r\n sectionType: string\r\n}) => {\r\n const userState = useContext(UserContext);\r\n\r\n const [settings, setSettings] = useState(null)\r\n const [packages, setPackages] = useState(null)\r\n const [undifferenciated, setUndifferenciated] = useState(null)\r\n const [packages2, setPackages2] = useState(null)\r\n const [undifferenciated2, setUndifferenciated2] = useState(null)\r\n\r\n\r\n\r\n const [m3Packages, setM3Packages] = useState(null)\r\n const [m3Undifferenciated, setM3Undifferenciated] = useState(null)\r\n const [kgPackages, setKgPackages] = useState(null)\r\n const [kgUndifferenciated, setKgUndifferenciated] = useState(null)\r\n\r\n const [m3PackagesEstimated, setM3PackagesEstimated] = useState(null)\r\n const [m3UndifferenciatedEstimated, setM3UndifferenciatedEstimated] = useState(null)\r\n const [kgPackagesEstimated, setKgPackagesEstimated] = useState(null)\r\n const [kgUndifferenciatedEstimated, setKgUndifferenciatedEstimated] = useState(null)\r\n\r\n\r\n useEffect(() => {\r\n async function init() {\r\n let response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/unit_settings`);\r\n const settingsRequest = (await response.json());\r\n setSettings(settingsRequest)\r\n \r\n if (sectionType === \"collected\") {\r\n if(settingsRequest.settings.ShowOnlyInitialData){\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3packages${userState.role !== 'admin'? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages2((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated2((await response.json()));\r\n \r\n /*if (settingsRequest.settings.UnitID === 3 || settingsRequest.settings.Abbreviation === \"M3\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3packages${userState.role !== 'admin'? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }\r\n else if (settingsRequest.settings.UnitID === 1 || settingsRequest.settings.Abbreviation === \"KG\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }*/\r\n } else {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages2((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated2((await response.json()));\r\n\r\n /*if (settingsRequest.settings.UnitID === 3 || settingsRequest.settings.Abbreviation === \"M3\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }\r\n else if (settingsRequest.settings.UnitID === 1 || settingsRequest.settings.Abbreviation === \"KG\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/estimated_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey) : \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }*/\r\n }\r\n } else if (sectionType === \"delivered\") {\r\n if(settingsRequest.settings.ShowOnlyInitialData){\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages2((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated2((await response.json()));\r\n /*\r\n if (settingsRequest.settings.UnitID === 3 || settingsRequest.settings.Abbreviation === \"M3\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }\r\n else if (settingsRequest.settings.UnitID === 1 || settingsRequest.settings.Abbreviation === \"KG\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/collected/init_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }*/\r\n } else {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages2((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated2((await response.json()));\r\n /*\r\n if (settingsRequest.settings.UnitID === 3 || settingsRequest.settings.Abbreviation === \"M3\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_m3packages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_m3undifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }\r\n else if (settingsRequest.settings.UnitID === 1 || settingsRequest.settings.Abbreviation === \"KG\" ) {\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_kgpackages${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setPackages((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/delivered/estimated_kgundifferentiated${userState.role !== 'admin' ? (\"?apikey=\" + userState.apikey): \"\"}`);\r\n setUndifferenciated((await response.json()));\r\n }*/\r\n }\r\n }\r\n }\r\n init()\r\n }, [sectionType])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {packages && numberFormat(packages.unitCount, false) + \" m³\" /*+ settings.settings.AbbreviationText*/}\r\n {\r\n sectionType === \"collected\" && Embalagens Recolhidas\r\n }\r\n {\r\n sectionType === \"delivered\" && Embalagens Entregues\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {undifferenciated && numberFormat(undifferenciated.unitCount, false) + \" m³\" /*+ settings.settings.AbbreviationText*/}\r\n {\r\n sectionType === \"collected\" && Indiferenciados Recolhidos\r\n }\r\n {\r\n sectionType === \"delivered\" && Indiferenciados Entregues\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {packages2 && numberFormat(packages2.unitCount, false) + \" Kg\"/* + settings.settings.AbbreviationText*/}\r\n {\r\n sectionType === \"collected\" && Embalagens Recolhidas\r\n }\r\n {\r\n sectionType === \"delivered\" && Embalagens Entregues\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {undifferenciated2 && numberFormat(undifferenciated2.unitCount, false) + \" Kg\"/* + settings.settings.AbbreviationText*/}\r\n {\r\n sectionType === \"collected\" && Indiferenciados Recolhidos\r\n }\r\n {\r\n sectionType === \"delivered\" && Indiferenciados Entregues\r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, {useEffect, useState, useContext} from 'react';\r\nimport { Col, Card } from 'react-bootstrap';\r\nimport { VesselRankingsState, PortRankingsState } from '../types/type';\r\nimport { UserContext } from \"../context/UserContext\";\r\n\r\nexport default ({\r\n sectionType\r\n}, {\r\n sectionType: String\r\n}) => {\r\n const userState = useContext(UserContext);\r\n\r\n const [vesselRankings, setVesselRankings] = useState<[VesselRankingsState] | null>(null)\r\n const [portRankings, setPortRankings] = useState<[PortRankingsState] | null>(null)\r\n \r\n useEffect(() => { \r\n async function init() {\r\n if (userState.role === 'admin') {\r\n let response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/vesselRankings`);\r\n setVesselRankings((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/PortRankings`);\r\n setPortRankings((await response.json()));\r\n } else {\r\n let response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/myVesselRankings?apikey=${userState.apikey}`);\r\n setVesselRankings((await response.json()));\r\n response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/base/myPortRankings?apikey=${userState.apikey}`);\r\n setPortRankings((await response.json()));\r\n }\r\n }\r\n init()\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Classificações de Embarcações\r\n \r\n {\r\n userState.role === 'admin' && vesselRankings && vesselRankings.map((vessel) =>
{vessel.NationalClassification + \"º \" + vessel.Vessel + \" => \" + vessel.PointsEarned + \" Pontos\"}
)\r\n } \r\n {\r\n userState.role !== 'admin' && vesselRankings && vesselRankings.map((vessel) =>
{vessel[\"Classificação Nacional\"] + \"º \" + vessel.Barco + \" => \" + vessel.Pontos + \" Pontos\"}
)\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Classificações de Entregas nos Portos\r\n \r\n {\r\n userState.role === 'admin' && portRankings && portRankings.map((port) =>
{port.PortClassification + \"º \" + port.Name + \" => \" + port.PointsEarned + \" Pontos\"}
)\r\n } \r\n {\r\n userState.role !== 'admin' && portRankings && portRankings.map((port) =>
{port[\"Classificação\"] + \"º \" + port.Porto + \"(\"+ port.Barco +\") => \" + port.Pontos + \" Pontos\"}
)\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport { FilterContext, FilterDispatchContext } from \"../context/FilterContext\";\r\nimport { FilterDataState, FilterComponentProps, ChartComponentProps, CustomTooltipProps } from '../types/type';\r\nimport DatePicker, { registerLocale } from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nexport default ({\r\n sectionType\r\n}: FilterComponentProps) => {\r\n const filterState = useContext(FilterContext);\r\n const filterDispatchState = useContext(FilterDispatchContext);\r\n\r\n const SubTypesFilter = () => {\r\n const subtypeInputs = []\r\n\r\n const createSubTypeInput = (\r\n number,\r\n selectedParent\r\n ) => {\r\n if(filterState.filterData.typeData.find((data) => selectedParent === data.ParentID.toString())) {\r\n let value = filterState.selectedCategorySubtypes ? filterState.selectedCategorySubtypes[number] : undefined;\r\n return (\r\n \r\n \r\n Sub-Categoria {number} \r\n {\r\n let newSelectedCategorySubtypes = {...filterState.selectedCategorySubtypes, [number]: e.target.value}\r\n\r\n for (let key of Object.keys(newSelectedCategorySubtypes)) {\r\n if (key > number) {\r\n delete newSelectedCategorySubtypes[key]\r\n }\r\n }\r\n \r\n filterDispatchState({\r\n ...filterState,\r\n selectedCategorySubtypes: newSelectedCategorySubtypes,\r\n selectedType: e.target.value\r\n })\r\n }}>\r\n \r\n {\r\n filterState.filterData && filterState.filterData.typeData.filter((data) => {\r\n if (selectedParent) return data.ParentID.toString() === selectedParent\r\n else return true\r\n }).map((data) => )\r\n }\r\n \r\n \r\n \r\n ) \r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n // If category selected and the category have children\r\n if (\r\n filterState.selectedCategory &&\r\n filterState.selectedCategory !== \"0\"\r\n ) {\r\n subtypeInputs.push(\r\n createSubTypeInput(1, filterState.selectedCategory)\r\n )\r\n if(filterState.selectedCategorySubtypes){\r\n for (let [key, value] of Object.entries(filterState.selectedCategorySubtypes) ) {\r\n subtypeInputs.push(createSubTypeInput(parseInt(key)+1, value))\r\n }\r\n }\r\n }\r\n \r\n console.log(subtypeInputs)\r\n\r\n return (\r\n \r\n {subtypeInputs.map((input) => input)}\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n {\r\n sectionType === \"delivered\" &&\r\n \r\n \r\n Portos\r\n filterDispatchState({\r\n ...filterState,\r\n selectedPort: e.target.value\r\n })}>\r\n \r\n {\r\n filterState.filterData && filterState.filterData.portData.map((data) => )\r\n }\r\n \r\n \r\n \r\n }\r\n \r\n \r\n Categoria\r\n {\r\n filterDispatchState({\r\n ...filterState,\r\n selectedCategory: e.target.value,\r\n selectedCategorySubtypes: undefined,\r\n selectedType: \"-\"\r\n })\r\n }}>\r\n \r\n {\r\n filterState.filterData && filterState.filterData.categoryData.map((data) => )\r\n }\r\n \r\n \r\n \r\n {SubTypesFilter()}\r\n \r\n

{\"Data Inicial: \"}

\r\n {\r\n filterDispatchState({\r\n ...filterState,\r\n selectedStartDate: date,\r\n })\r\n }}\r\n selectsStart\r\n startDate={filterState.selectedStartDate}\r\n endDate={filterState.selectedEndDate}\r\n maxDate={filterState.selectedEndDate}\r\n onFocus={(e) => e.target.readOnly = true}\r\n locale=\"pt\"\r\n dateFormat=\"d, MMMM, yyyy\"\r\n className=\"form-control bg-custom-light-gray gray-border\"\r\n wrapperClassName=\"w-100\"\r\n placeholderText={\"Selecionar...\"}\r\n />\r\n

{\"Data Final: \"}

\r\n {\r\n filterDispatchState({\r\n ...filterState,\r\n selectedEndDate: date,\r\n })\r\n }}\r\n selectsEnd\r\n startDate={filterState.selectedStartDate}\r\n endDate={filterState.selectedEndDate}\r\n minDate={filterState.selectedStartDate}\r\n onFocus={(e) => e.target.readOnly = true}\r\n maxDate={new Date()}\r\n locale=\"pt\"\r\n dateFormat=\"d, MMMM, yyyy\"\r\n className=\"form-control bg-custom-light-gray gray-border\"\r\n wrapperClassName=\"w-100\"\r\n />\r\n
\r\n\r\n
\r\n )\r\n}","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\nimport { FilterContext, FilterDispatchContext } from \"../context/FilterContext\";\r\nimport { FilterDataState, FilterComponentProps, ChartComponentProps, CustomTooltipProps } from '../types/type';\r\nimport Filters from \"./Filters\";\r\nimport {\r\n AreaChart,\r\n Area,\r\n XAxis,\r\n YAxis,\r\n CartesianGrid,\r\n Label,\r\n ResponsiveContainer,\r\n Tooltip\r\n} from \"recharts\";\r\n\r\nexport default ({\r\n sectionType\r\n}: {\r\n sectionType: string\r\n}) => {\r\n const filterState = useContext(FilterContext);\r\n const filterDispatchState = useContext(FilterDispatchContext);\r\n\r\n const parseFilters = () => {\r\n let portFiltered: string = \"\";\r\n if (filterState.filterData && filterState.selectedPort && filterState.selectedPort !== \"-\" && filterState.selectedPort !== \"0\") {\r\n portFiltered = (filterState.filterData.portData.find((data) => data.ID === parseInt(filterState.selectedPort!)))!.Name\r\n }\r\n let categoryFiltered: string = \"\";\r\n if (filterState.filterData && filterState.selectedCategory && filterState.selectedCategory !== \"-\" && filterState.selectedCategory !== \"0\") {\r\n categoryFiltered = (filterState.filterData.categoryData.find((data) => data.ID === parseInt(filterState.selectedCategory!)))!.Name\r\n }\r\n let typeFiltered: string = \"\";\r\n if (filterState.filterData && filterState.selectedType && filterState.selectedType !== \"-\" && filterState.selectedType !== \"0\") {\r\n typeFiltered = (filterState.filterData.typeData.find((data) => data.ID === parseInt(filterState.selectedType!)))!.Name\r\n }\r\n return (\r\n \r\n {\r\n portFiltered &&\r\n \r\n {`${portFiltered && \"Porto: \" + portFiltered}`}\r\n \r\n }\r\n {\r\n categoryFiltered &&\r\n \r\n {`${categoryFiltered && \"Categoria: \" + categoryFiltered}`}\r\n \r\n }\r\n {\r\n typeFiltered &&\r\n \r\n {`${typeFiltered && \"Item: \" + typeFiltered}`}\r\n \r\n }\r\n \r\n\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n

Quantidade de registos {sectionType == \"collected\" ? \"registados\" : \"entregues\"} por dia

\r\n
\r\n {parseFilters()}\r\n \r\n \r\n \r\n \r\n \r\n FILTROS \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst Chart = ({\r\n filterState,\r\n sectionType\r\n}: ChartComponentProps) => {\r\n const [chartData, setChartData] = useState<[]>([]);\r\n\r\n useEffect(() => {\r\n async function init() {\r\n let parseByTypeID: number[] = [];\r\n let parseByPortID: number[] = [];\r\n\r\n if (filterState.selectedPort && filterState.selectedPort !== \"-\" && filterState.selectedPort !== \"0\") { parseByPortID = [parseInt(filterState.selectedPort!)] }\r\n if (filterState.filterData && filterState.selectedCategory && filterState.selectedCategory !== \"-\" && filterState.selectedCategory !== \"0\") {\r\n parseByTypeID = filterState.filterData.typeData.filter((type) => {\r\n return type.ParentID === parseInt(filterState.selectedCategory!)\r\n }).map((type) => type.ID);\r\n }\r\n if (filterState.selectedType && filterState.selectedType !== \"-\" && filterState.selectedType !== \"0\") { parseByTypeID = [parseInt(filterState.selectedType!)] }\r\n\r\n const response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/issue-quantity`, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n byTypeID: parseByTypeID,\r\n byPortID: parseByPortID,\r\n isDelivered: sectionType === \"delivered\" ? true : false,\r\n startDate: filterState.selectedStartDate.toISOString().split(\"T\")[0],\r\n endDate: filterState.selectedEndDate.toISOString().split(\"T\")[0],\r\n })\r\n });\r\n setChartData((await response.json()).results.map((result) => {\r\n return {\r\n name: result.reportedDate.split(\"T\")[0],\r\n uv: result.count,\r\n //pv: 2400,\r\n //amt: 2400\r\n }\r\n }));\r\n }\r\n init()\r\n }, [filterState.selectedPort, filterState.selectedCategory, filterState.selectedType, filterState.selectedStartDate, filterState.selectedEndDate])\r\n\r\n const CustomTooltip = ({ active, payload, label }: CustomTooltipProps) => {\r\n if (active && payload && payload.length) {\r\n return (\r\n \r\n

{`Data: ${label}`}

\r\n

{`Quantidade: ${payload[0].value}`}

\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n 0 ? true : false}>\r\n \r\n \r\n \r\n {\r\n //@ts-ignore\r\n } />\r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport $ from \"jquery\";\r\nimport { Col, Row, Container, Tabs, Tab } from 'react-bootstrap';\r\nimport FilterContextProvider, { FilterContext, FilterDispatchContext, initState } from \"../context/FilterContext\";\r\nimport UserContextProvider, { UserContext, UserDispatchContext } from \"../context/UserContext\";\r\nimport \"font-awesome/css/font-awesome.css\";\r\nimport NeuralNetwork_Tester from \"./NeuralNetwork_Tester\";\r\nimport { useParams } from 'react-router';\r\n\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link\r\n} from \"react-router-dom\";\r\nimport Map from \"./Map\"\r\nimport BaseStats from \"./BaseStats\"\r\nimport UnitStats from \"./UnitStats\"\r\nimport RankingStats from \"./RankingStats\"\r\nimport Chart from \"./Chart\"\r\n\r\nfunction App() {\r\n const GetFilterData = () => {\r\n const filterState = useContext(FilterContext);\r\n const filterDispatchState = useContext(FilterDispatchContext);\r\n\r\n useEffect(() => {\r\n async function init() {\r\n const response = await fetch(process.env.REACT_APP_BACKEND_URL + `/kpi/filter-data`);\r\n filterDispatchState({\r\n ...filterState,\r\n filterData: (await response.json())\r\n });\r\n }\r\n init()\r\n }, [])\r\n return null\r\n }\r\n\r\n const VerifyApiKey = () => {\r\n const { apikey } = useParams();\r\n const userDispatchState = useContext(UserDispatchContext);\r\n\r\n useEffect(() => {\r\n async function init() {\r\n const url = process.env.REACT_APP_BACKEND_URL + `/apikeyCheck`\r\n const body = JSON.stringify({ apikey })\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body\r\n })\r\n const json = await response.json();\r\n userDispatchState(json);\r\n }\r\n init()\r\n }, [])\r\n\r\n return null\r\n }\r\n\r\n\r\n const TabsComponent = () => {\r\n const userState = useContext(UserContext);\r\n const filterState = useContext(FilterContext);\r\n const filterDispatchState = useContext(FilterDispatchContext);\r\n const [tab, setTab] = useState(\"collected\");\r\n\r\n return (\r\n \r\n {\r\n if (key) setTab(key);\r\n filterDispatchState({\r\n ...filterState,\r\n selectedPort: initState.selectedPort,\r\n selectedCategory: initState.selectedCategory,\r\n selectedType: initState.selectedType,\r\n selectedStartDate: initState.selectedStartDate,\r\n selectedEndDate: initState.selectedEndDate\r\n })\r\n }}>\r\n \r\n \r\n
\r\n

Dados do Lixo Recolhido

\r\n
\r\n
\r\n \r\n {\r\n userState.role === 'admin' &&\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n

Mapa com localizações do lixo recolhido

\r\n
\r\n
\r\n
\r\n }\r\n {\r\n userState.role === 'admin' && \r\n }\r\n
\r\n \r\n \r\n
\r\n

Dados do Lixo Entregue

\r\n
\r\n
\r\n \r\n {\r\n userState.role === 'admin' &&\r\n \r\n \r\n
\r\n

Classificações

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

Mapa com localizações dos pontos de recolha com lixo entregue

\r\n
\r\n
\r\n
\r\n }\r\n {\r\n userState.role === 'admin' && \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n const DashBoard = () => {\r\n const userState = useContext(UserContext);\r\n\r\n if (userState.apikey) {\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 } else {\r\n return null\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\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './containers/App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}