{"version":3,"sources":["assets/selected.png","components/navbar.js","pages/home.page.js","common/formsetup.js","pages/charts.page.js","pages/inventory.page.js","components/updatePanel.component.js","components/newPanel.component.js","pages/update.page.js","pages/print.page.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","Navbar","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","modalToggle","setState","prevState","modal","LoginCall","_ref","asyncToGenerator","regenerator_default","a","mark","_callee","history","url","encoding","wrap","_context","prev","next","btoa","concat","state","username","password","sent","async","crossDomain","method","headers","Authorization","cache-control","axios","then","response","push","catch","error","alert","stop","_x","apply","arguments","projects","_this2","modalShow","react_default","createElement","className","Link","style","textDecoration","color","to","onClick","id","display","zIndex","htmlFor","onChange","e","target","value","type","placeholder","name","required","Component","withRouter","statusChartOptions","title","width","chartArea","heigth","is3D","legend","position","alignment","maxLines","tooltip","trigger","sliceVisibilityThreshold","countryChartOptions","Homepage","projectsStatus","projectsCountry","justifyContent","marginTop","alignSelf","flexDirection","rel","targetdownload","href","download","alignItems","height","length","react_spinners","size","index_esm","chartType","data","legendToggle","options","projectTypes","projectStatus","country","programme","typePie","backgroundColor","stroke","strokeWidth","countryBar","statusBar","bar","groupWidth","isStacked","statusColumn","typeStatusStacked","hAxis","minValue","ticks","Chartpage","filterTypeStatusCountry","filteredCountryProjects","filter","project","properties","toLowerCase","selectedCountry","conceptualHydroCount","i","includes","status","feasibilityHydroCount","projectStructHydroCount","ImplementationHydroCount","CompletionHydroCount","conceptualIrrigationCount","feasaibilityIrrigationCount","projectStructIrrigationCount","ImplementationIrrigationCount","CompletionIrrigationCount","conceptualWaterSupCount","feasaibilityWaterSupCount","projectStructWaterSupCount","ImplementationWaterSupCount","CompletionWaterSupCount","conceptuallivCount","feasaibilitylivCount","projectStructlivCount","ImplementationlivCount","CompletionlivCount","projectsTypeStatusCountry","CountrytypeStatusStacked","react_to_print_lib_default","content","componentRef","copyStyles","ref","el","projectsType","projectsTypeStatus","role","map","cname","aria-selected","textAlign","iconPng","require","InventoryPage","handleClick","latlng","toggleAnimate","animate","renderProjects","projectMarkers","forEach","geometry","undefined","coordinates","project_na","Marker","Popup","renderTableBody","tableBody","filterProjects","search","toConsumableArray","zoom","lat","lng","selectProjectFunction","national_p","phasing","city","river_name","owner_impl","constact_d","capital_co","fixed_cost","source","start_date","descriptio","status_sou","hydro_type","hydro_capa","hydro_max","hydro_turb","hydro_gen_","hydro_plan","hydro_tail","hydro_asso","hydro_cost","hydro_rese","hydro_expa","resevoir_s","reservoir_","reservoir__1","reservoir__2","reservoir__3","irrigation","irrigation_1","irrigation_2","irrigation_3","irrigation_4","irrigation_5","irrigation_6","mine_withd","mine_numbe","mine_consu","mine_water","mine_distn","navigation","navigation_1","navigation_2","navigation_3","enviroment","enviroment_1","enviroment_2","flood_max","flood_asso","flood_asso_1","flood_prot","flood_prot_1","inventoryMap","React","createRef","Map","center","react_leaflet_google","googlekey","maptype","icon","L","iconUrl","iconSize","overflowY","overflowX","NewPanel","handleChange","valueName","defineProperty","setProject","projectID","projectName","projectType","programmeType","nationalPriority","finalLat","finalLng","countryName","riverName","owner","contactDetail","capital","fixed","financeSource","startDate","description","key","onOpen","selectedProject","project_ty","joinCountries","CName","joint","item","console","log","mapRef","html","flexWrap","selected","prog","openMap","count","create","_this$state","disabled","UpdatePage","upload","loading","parseFloat","post","Content-Type","NotificationManager","success","warn","warning","updateUpload","updateToLocation","GeoData","parseInt","goBack","georesponse","setStateFunction","selectMap","current","coord","leafletElement","mouseEventToLatLng","originalEvent","toFixed","tabs","renderActiveTabPanelOnly","vertical","tab","panel","newPanel_component","toState","updatePanel_component","projectObj","Expander","aria-label","PrintPage","checkData","CSVdata","react_csv","posistion","marginBottom","Fragment","App","selectProject","filterData","filterStatusData","filterCountryData","filterType","filterTypeStatus","Conceptual","ProjectStructuring","Implementation","Feasibility","Completion","statusArray","Hydropower_total","Irrigation_total","Water_Supply_total","Livelihoods","typeArray","Angola_total","Botswana_total","Malawi_total","Mozambique_total","Namibia_total","Tanzania_total","Zambia_total","Zimbabwe_total","countryArray","selectCountry","$","ajax","jsonp","features","_this3","BrowserRouter","basename","navbar","openModalFunction","Route","path","exact","render","routeProps","home_page","assign","charts_page","inventory_page","update_page","print_page","lib","Boolean","window","location","hostname","match","ReactDOM","src_App_0","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.ba670c41.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","import React, { Component } from 'react';\nimport { Link, withRouter } from 'react-router-dom';\nimport $ from 'jquery';\nimport axios from 'axios';\n\nclass Navbar extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      modal: false,\n      projects: [],\n    };\n  }\n\n  modalToggle =() => {\n    this.setState(prevState => ({\n      modal: !prevState.modal,\n    }));\n  }\n\n  LoginCall =async (history) => {\n    //http://197.211.238.164:8088/geoserver/sf/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:archsites&maxFeatures=50&outputFormat=application%2Fjson\n    const url = 'http://197.211.238.164:8088/geoserver/sf/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=sf%3Aarchsites&maxFeatures=50&outputFormat=text%2Fjavascript';\n    const encoding = await btoa(`${this.state.username}:${this.state.password}`);\n    const settings = {\n      async: true,\n      crossDomain: true,\n      url,\n      method: 'GET',\n      headers: {\n        Authorization: `Basic ${encoding}`,\n        'cache-control': 'no-cache',\n      },\n    };\n\n    axios(url, { },\n      {\n        Authorization: `Basic ${encoding}`,\n      })\n      .then((response) => {\n    \n        history.push('/update');\n        this.setState({ modal: false });\n      })\n      .catch((error) => {\n\n        alert('Invalid Credentials');\n      });\n  }\n\n  render() {\n    const modalShow = this.state.modal ? 'block' : 'none';\n    return (\n      <div>\n        <nav className=\"bp3-navbar bp3-dark\">\n          <div className=\"bp3-navbar-group bp3-align-left\">\n            <div className=\"bp3-navbar-heading\">ZSP Online Monintoring Tool</div>\n          </div>\n          <div className=\"bp3-navbar-group bp3-align-right\">\n            <Link className=\"bp3-button bp3-minimal bp3-icon-home\" style={{ textDecoration: 'none', color: '#F5F8FA' }} to=\"/\">Home</Link>\n            <span className=\"bp3-navbar-divider\" />\n            <Link className=\"bp3-button bp3-minimal bp3-icon-document\" style={{ textDecoration: 'none', color: '#F5F8FA' }} to=\"/charts\">More Charts</Link>\n            <span className=\"bp3-navbar-divider\" />\n            <Link style={{ textDecoration: 'none', color: '#F5F8FA' }} to=\"/tables\">View Inventory</Link>\n            <span className=\"bp3-navbar-divider\" />\n            <button onClick={() => this.modalToggle()} className=\"bp3-button bp3-minimal bp3-icon-annotation\">\n                Update Inventory\n            </button>\n          </div>\n        </nav>\n        <div id=\"myModal\" style={{ display: modalShow, zIndex: 99999 }} className=\"modal\">\n          <div className=\"modal-content\">\n            <span onClick={() => this.modalToggle()} className=\"close\">&times;</span>\n            <div>\n              <label className=\"bp3-label\" htmlFor=\"uname\"><b>Username</b></label>\n              <input onChange={e => this.setState({ username: e.target.value })} type=\"text\" placeholder=\"Enter Username\" name=\"uname\" required />\n              <label className=\"bp3-label\" htmlFor=\"psw\"><b>Password</b></label>\n              <input onChange={e => this.setState({ password: e.target.value })} type=\"password\" placeholder=\"Enter Password\" name=\"psw\" required />\n              <button onClick={e => this.LoginCall(this.props.history)} type=\"submit\">Login</button>\n            </div>\n          </div>\n        </div>\n      </div>\n\n    );\n  }\n}\n\nexport default withRouter(Navbar);\n","import React, { Component } from 'react';\nimport { CircleLoader } from 'react-spinners';\nimport Chart from 'react-google-charts';\n\nconst statusChartOptions = {\n  title: 'Projects by status (Basin)',\n  width: '90%',\n  chartArea: { width: '90%' },\n  heigth: '70vh',\n  is3D: false,\n  legend: { position: 'right', alignment: 'center', maxLines: 2 },\n  tooltip: { trigger: 'selection' },\n  sliceVisibilityThreshold: 0.0000001,\n};\nconst countryChartOptions = {\n  title: 'Projects by Country',\n  width: '90%',\n  chartArea: { width: '90%' },\n  heigth: '70vh',\n  is3D: false,\n  legend: { position: 'right', alignment: 'center', maxLines: 2 },\n  tooltip: { trigger: 'selection' }, // or can use focus\n  sliceVisibilityThreshold: 0.0000001, // set slice merger\n};\n\nclass Homepage extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      projectsStatus: [],\n      projectsCountry: [],\n    };\n  }\n\n  render() {\n    return (\n      <div style={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n        <div style={{ width: '65%', marginTop: 10, alignSelf: 'center' }}>\n          <div style={{\n            flexDirection: 'row', display: 'flex', width: '100% ', justifyContent: ' space-between',\n          }}\n          >\n            <div style={{ width: '59%' }} className=\"bp3-card bp3-elevation-2\">\n              <h3 style={{ textDecoration: 'underline' }}>Introduction</h3>\n              <p>The Online Monitoring and Implementation Tool is an online facility that allows the viewing, adding and editing of planned projects in the Strategic Plan for the Zambezi Watercourse (ZSP) by Riparian States and ZAMCOM. The Tool also allows Riparian States and ZAMCOM to monitor the status of implementation of the Projects submitted under the ZSP.</p>\n              <p> Based on this information ZAMCOM can then put in place strategies for addressing challenges in project implementation. The Tool will work side by side with the ZAMCOM Notification Process and the Tool can be updated to be linked with the Notification Process.</p>\n              <p>A manual provinding guidance is located in the document archive.</p>\n            </div>\n            <div style={{ width: '40%' }} className=\"bp3-card bp3-elevation-2\">\n              <h3 style={{ textDecoration: 'underline' }} className=\"bp3-heading\">ZSP Document archive</h3>\n              <ul className=\"bp3-list\">\n                <li><a target=\"_blank\" rel=\"noopener noreferrer\" targetdownload href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/strategic_plan_for_the_zambezi_watercourse_executive_summary.pdf\">Strategic Plan for the Zambezi Watercourse – Executive Summary</a></li>\n                <li><a download target=\"_blank\"  rel=\"noopener noreferrer\"href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/strategic_plan_for_the_zambezi_watercourse.pdf\">Strategic Plan for the Zambezi Watercourse</a></li>\n                <h6>Background Documents:</h6>\n                <li><a target=\"_blank\" rel=\"noopener noreferrer\" download href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/situation_analysis_and_strategic_direction_report.pdf\">Situation Analysis and Strategic Direction</a></li>\n                <li><a target=\"_blank\" rel=\"noopener noreferrer\" download href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/basin_development_scenarios_report.pdf\">Basin Development Scenarios</a></li>\n                <li><a target=\"_blank\" rel=\"noopener noreferrer\" download href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/basin_investment_scenarios_report.pdf\">Basin Investment Scenarios</a></li>\n                <li><a target=\"_blank\" rel=\"noopener noreferrer\" download href=\"http://www.zambezicommission.org/sites/default/files/publication_downloads/online_monitoring_and_implementation_tool_user_manual.pdf\">Monitoring and Implementation Tool – Users Manual</a></li>\n              </ul>\n            </div>\n          </div>\n          <div\n            style={{\n              marginTop: 10, display: 'flex', justifyContent: 'center', alignItems: 'center', height: 410,\n            }}\n            className=\"bp3-card bp3-elevation-2\"\n          >\n\n            {this.props.projects.length === 0\n              ? (\n                <CircleLoader\n                  color=\"#033e8b\"\n                  size={80}\n                />\n              )\n              : (\n                <div style={{\n                  display: 'flex', flexDirection: 'row', justifyContent: 'space-around', width: '100%', alignItems: 'center',\n                }}\n                >\n                  <div className=\"column_chart\">\n                    <Chart\n                      chartType=\"PieChart\"\n                      data={this.props.projectsStatus}\n                      height=\"400px\"\n                      legendToggle\n                      options={statusChartOptions}\n                    />\n\n                  </div>\n                  <div className=\"column_chart\">\n                    <Chart\n                      chartType=\"PieChart\"\n                      data={this.props.projectsCountry}\n                      height=\"400px\"\n                      legendToggle\n                      options={countryChartOptions}\n                    />\n\n                  </div>\n\n                </div>\n              )\n            }\n          </div>\n\n\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default Homepage;\n","export const projectTypes = ['Hydropower', 'Water Supply (irrigation, sanitation, domestic)', 'Dam', 'Flood Management', 'Hydrometric Station', 'Hydropower', 'Hydropower/Irrigation/Water Supply', 'Hydropower; Environmental Flow', 'Hydropower; Flood Management; Environmental Flow', 'Hydropower; Flood Mangement', 'Irrigation', 'Irrigation and Water Supply', 'Irrigation, Hydro Power', 'Irrigation, WASH, hydropower', 'Irrigation, Water Supply & Hydrop Power', 'Mini Hydropower', 'Mining', 'Mining; Thermal Power', 'Navigation', 'Other', 'Thermal Power', 'Water Supply', 'Water Supply (irrigation)', 'Water Supply (Irrigation), Flood Management', 'Water Supply and irrigation', 'Water Supply and Sanitation', 'Water Supply, Irrigation, hydro power'];\r\nexport const projectStatus = ['Project Structuring', 'Pre-Feasibility', 'Planning', 'Feasibility', 'Conceptual'];\r\nexport const country = ['Angola', 'Botswana', 'Malawi', 'Mozambique', 'Namibia', 'Tanzania', 'Zambia', 'Zimbabwe', 'Joint'];\r\nexport const programme = ['Agriculture', 'Catchment and Riparian Assets Management', 'Energy', 'Water Supply and Sanitation'];\r\n","import React, { Component } from 'react';\r\nimport { CircleLoader } from 'react-spinners';\r\nimport Chart from 'react-google-charts';\r\nimport ReactToPrint from 'react-to-print';\r\nimport { country } from '../common/formsetup';\r\n\r\nconst typePie = {\r\n  title: 'Projects by Type (Basin)',\r\n  height: 350,\r\n  is3D: false,\r\n  legend: { position: 'right', alignment: 'center', maxLines: 2 },\r\n  chartArea: { width: '75%' },\r\n  backgroundColor: {\r\n    stroke: '#d3d3d3',\r\n    strokeWidth: 2,\r\n  },\r\n  tooltip: { trigger: 'selection' },\r\n};\r\nconst countryBar = {\r\n  title: 'Projects by Country',\r\n  height: 350,\r\n  is3D: false,\r\n  legend: { position: 'top', alignment: 'center', maxLines: 2 },\r\n  chartArea: { width: '65%' },\r\n  backgroundColor: {\r\n    stroke: '#d3d3d3',\r\n    strokeWidth: 2,\r\n  },\r\n  tooltip: { trigger: 'selection' }, // or can use focus\r\n};\r\nconst statusBar = {\r\n  title: 'Projects by Type (Basin)',\r\n  height: 350,\r\n  is3D: false,\r\n  legend: { position: 'top', alignment: 'center', maxLines: 2 },\r\n  chartArea: { width: '70%' },\r\n  backgroundColor: {\r\n    stroke: '#d3d3d3',\r\n    strokeWidth: 2,\r\n  },\r\n  tooltip: { trigger: 'selection' }, // or can use focus\r\n  bar: { groupWidth: '75%' },\r\n  isStacked: true,\r\n};\r\n\r\nconst statusColumn = {\r\n  title: 'Projects by Project Status (Basin)',\r\n  height: 350,\r\n  legend: { position: 'top', alignment: 'center', maxLines: 2 },\r\n  chartArea: { width: '70%' },\r\n  backgroundColor: {\r\n    stroke: '#d3d3d3',\r\n    strokeWidth: 2,\r\n  },\r\n  tooltip: { trigger: 'selection' }, // or can use focus\r\n  isStacked: true,\r\n};\r\n\r\nconst typeStatusStacked = {\r\n  title: 'Projects by type and status (Basin)',\r\n  chartArea: { width: '65%' },\r\n  isStacked: 'percent',\r\n  height: 300,\r\n  width: '100%',\r\n  legend: { position: 'right' },\r\n  hAxis: {\r\n    minValue: 0,\r\n    ticks: [0, 0.3, 0.6, 0.9, 1],\r\n  },\r\n  backgroundColor: {\r\n    stroke: '#d3d3d3',\r\n    strokeWidth: 2,\r\n  },\r\n};\r\n\r\n\r\nclass Chartpage extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      selectedCountry: '',\r\n      projectsTypeStatusCountry: '',\r\n    };\r\n  }\r\n\r\n  filterTypeStatusCountry=(projects) => {\r\n    const filteredCountryProjects = projects.filter(project => project.properties.country.toLowerCase() === this.state.selectedCountry.toLowerCase());\r\n    const conceptualHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Conceptual').length;\r\n    const feasibilityHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Feasibility').length;\r\n    const projectStructHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Project Structuring').length;\r\n    const ImplementationHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Implementation').length;\r\n    const CompletionHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Completion').length;\r\n\r\n    const conceptualIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Conceptual').length;\r\n    const feasaibilityIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Feasibility').length;\r\n    const projectStructIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Project Structuring').length;\r\n    const ImplementationIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Implementation').length;\r\n    const CompletionIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Completion').length;\r\n\r\n\r\n    const conceptualWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Conceptual').length;\r\n    const feasaibilityWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Feasibility').length;\r\n    const projectStructWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Project Structuring').length;\r\n    const ImplementationWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Implementation').length;\r\n    const CompletionWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Completion').length;\r\n\r\n    const conceptuallivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Conceptual').length;\r\n    const feasaibilitylivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Feasibility').length;\r\n    const projectStructlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Project Structuring').length;\r\n    const ImplementationlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Implementation').length;\r\n    const CompletionlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Completion').length;\r\n\r\n    let data;\r\n    if (this.state.selectedCountry !== 'Joint') {\r\n      data = [\r\n        ['Status', 'Conceptual', 'Feasibility', 'Project Structuring', 'Implementation', 'Completion'],\r\n        ['Hydropower', conceptualHydroCount, feasibilityHydroCount, projectStructHydroCount, ImplementationHydroCount, CompletionHydroCount],\r\n        ['Irrigation', conceptualIrrigationCount, feasaibilityIrrigationCount, projectStructIrrigationCount, ImplementationIrrigationCount, CompletionIrrigationCount],\r\n        ['Water Supply and Sanitation', conceptualWaterSupCount, feasaibilityWaterSupCount, projectStructWaterSupCount, ImplementationWaterSupCount, CompletionWaterSupCount],\r\n        ['Livelihoods', conceptuallivCount, feasaibilitylivCount, projectStructlivCount, ImplementationlivCount, CompletionlivCount],\r\n      ];\r\n    } else {\r\n      data = [\r\n        ['Status', 'Conceptual', 'Feasibility', 'Project Structuring', 'Implementation', 'Completion'],\r\n        ['Hydropower', 1, 0, 1, 0, 0],\r\n        ['Irrigation', 0, 0, 0, 0, 0],\r\n        ['Water Supply and Sanitation', 4, 0, 0, 0, 0],\r\n        ['Livelihoods', 0, 0, 0, 0, 0],\r\n      ];\r\n    }\r\n\r\n\r\n    this.setState({ projectsTypeStatusCountry: data });\r\n  }\r\n\r\n\r\n  render() {\r\n   \r\n    const CountrytypeStatusStacked = {\r\n      title: `Projects by type and status for ${this.state.selectedCountry}`,\r\n      chartArea: { width: '65%' },\r\n      isStacked: 'percent',\r\n      height: 300,\r\n      width: '100%',\r\n      legend: { position: 'right' },\r\n      hAxis: {\r\n        minValue: 0,\r\n        ticks: [0, 0.3, 0.6, 0.9, 1],\r\n      },\r\n      backgroundColor: {\r\n        stroke: '#d3d3d3',\r\n        strokeWidth: 2,\r\n      },\r\n    };\r\n    return (\r\n      <div style={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n        <div style={{ width: '65%', marginTop: 10, alignSelf: 'center' }}>\r\n\r\n          <ReactToPrint\r\n            trigger={() => <button style={{ alignSelf: 'flex-end' }} type=\"button\" className=\"bp3-button bp3-icon-print\">Print graphs</button>}\r\n            content={() => this.componentRef}\r\n            copyStyles\r\n          />\r\n          <div\r\n            style={{\r\n              marginTop: 10, display: 'flex', justifyContent: 'center', alignItems: 'center',\r\n            }}\r\n            ref={el => (this.componentRef = el)}\r\n            className=\"bp3-card bp3-elevation-2\"\r\n          >\r\n            {this.props.projects.length === 0\r\n              ? (\r\n                <CircleLoader\r\n                  color=\"#033e8b\"\r\n                  size={80}\r\n                />\r\n              )\r\n              : (\r\n                <div style={{\r\n                  display: 'flex', flexDirection: 'column', justifyContent: 'space-around', width: '100%',\r\n                }}\r\n                >\r\n                  <div style={{ justifyContent: 'space-evenly', display: 'flex' }}>\r\n                    <div className=\"column_chart\">\r\n                      <Chart\r\n                        chartType=\"PieChart\"\r\n                        data={this.props.projectsType}\r\n                        legendToggle\r\n                        options={typePie}\r\n                      />\r\n\r\n                    </div>\r\n                    <div className=\"column_chart\">\r\n                      <Chart\r\n                        chartType=\"BarChart\"\r\n                        data={this.props.projectsCountry}\r\n                        legendToggle\r\n                        options={countryBar}\r\n                      />\r\n\r\n                    </div>\r\n                  </div>\r\n                  <div style={{ justifyContent: 'space-evenly', display: 'flex' }}>\r\n                    <div className=\"column_chart\">\r\n                      <Chart\r\n                        chartType=\"BarChart\"\r\n                        data={this.props.projectsType}\r\n                        legendToggle\r\n                        options={statusBar}\r\n                      />\r\n\r\n                    </div>\r\n                    <div className=\"column_chart\">\r\n                      <Chart\r\n                        chartType=\"ColumnChart\"\r\n                        data={this.props.projectsStatus}\r\n                        legendToggle\r\n                        options={statusColumn}\r\n                      />\r\n                    </div>\r\n\r\n                  </div>\r\n                  <div style={{ justifyContent: 'center', display: 'flex' }}>\r\n                    <div style={{ width: '95.5%' }}>\r\n                      <Chart\r\n                        chartType=\"BarChart\"\r\n                        data={this.props.projectsTypeStatus}\r\n                        legendToggle\r\n                        options={typeStatusStacked}\r\n                      />\r\n                    </div>\r\n                  </div>\r\n                  <div style={{ justifyContent: 'center', display: 'flex' }}>\r\n                    <div style={{ width: '95.5%' }} className=\"bp3-tabs\">\r\n                      <h4>Please select a country to display</h4>\r\n                      <ul className=\"bp3-tab-list\" role=\"tablist\">\r\n                        {country.map((cname) => {\r\n                          if (this.state.selectedCountry === cname) {\r\n                            return <li className=\"bp3-tab\" role=\"tab\" aria-selected=\"true\">{cname}</li>;\r\n                          }\r\n                          return (\r\n                            <li\r\n                              onClick={() => {\r\n                                this.setState({ selectedCountry: cname }, () => this.filterTypeStatusCountry(this.props.projects));\r\n                              }}\r\n                              className=\"bp3-tab\"\r\n                              role=\"tab\"\r\n                            >\r\n                              {cname}\r\n\r\n                            </li>\r\n                          );\r\n                        })}\r\n                      </ul>\r\n                    </div>\r\n                  </div>\r\n                  {this.state.selectedCountry !== ''\r\n                    ? (\r\n                      <div style={{ justifyContent: 'center', display: 'flex' }}>\r\n                        <div style={{ width: '95.5%' }}>\r\n                          <Chart\r\n                            chartType=\"BarChart\"\r\n                            data={this.state.projectsTypeStatusCountry}\r\n                            legendToggle\r\n                            options={CountrytypeStatusStacked}\r\n                          />\r\n                        </div>\r\n                      </div>\r\n                    )\r\n                    : (\r\n                      <div style={{ justifyContent: 'center', display: 'flex' }}>\r\n                        <div style={{ width: '95.5%', height: 300 }}>\r\n                          <h6 style={{ color: 'grey', textAlign: 'center', marginTop: '10%' }}>No country selected</h6>\r\n                        </div>\r\n                      </div>\r\n                    )\r\n                  }\r\n                </div>\r\n              )\r\n}\r\n\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nexport default Chartpage;\r\n","import React, { Component } from 'react';\r\nimport {\r\n  Map, Marker, Popup,\r\n} from 'react-leaflet';\r\nimport { GoogleLayer } from 'react-leaflet-google';\r\nimport L from 'leaflet';\r\nimport { Link } from 'react-router-dom';\r\nimport './table.css';\r\n\r\nconst iconPng = require('../assets/selected.png');\r\n\r\n\r\nclass InventoryPage extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      filter: 'all',\r\n      search: '',\r\n      project: { properties: { project_na: '' } },\r\n      zoom: 4,\r\n      animate: false,\r\n      latlng: {\r\n        lat: -17.197727,\r\n        lng: 31.76042,\r\n      },\r\n    };\r\n    this.inventoryMap = React.createRef();\r\n  }\r\n\r\n  handleClick = (e) => {\r\n \r\n    this.setState({\r\n      latlng: e.latlng,\r\n    });\r\n  }\r\n\r\n  toggleAnimate = () => {\r\n    this.setState({\r\n      animate: !this.state.animate,\r\n    });\r\n  }\r\n\r\n  renderProjects =() => {\r\n    const filter = this.state.filter !== 'all' ? this.state.filter : '';\r\n    const projectMarkers = [];\r\n\r\n    this.props.projects.forEach((project) => {\r\n      if (project.geometry !== null && project.geometry.coordinates[0] !== undefined && project.properties.type.toLowerCase().includes(filter)) {\r\n        if (project.properties.project_na === this.state.project.properties.project_na) {\r\n       \r\n        } else {\r\n          projectMarkers.push(\r\n            <Marker onClick={() => this.setState({ project })} position={[project.geometry.coordinates[1], project.geometry.coordinates[0]]}>\r\n              <Popup>\r\n                <b><center>PROJECT INFORMATION</center></b>\r\n                <center>\r\n              Project Name:\r\n                  {project.properties.project_na}\r\n                  <center>\r\n                  Project Type:\r\n                    {project.properties.type}\r\n                    <center>\r\n                  Country :\r\n                      {project.properties.country}\r\n                    </center>\r\n                  </center>\r\n                </center>\r\n              </Popup>\r\n            </Marker>,\r\n          );\r\n        }\r\n      }\r\n    });\r\n    return projectMarkers;\r\n  }\r\n\r\n\r\n   renderTableBody=() => {\r\n     const tableBody = [];\r\n     \r\n     let filterProjects = [];\r\n     if (this.state.search !== '') {\r\n       this.props.projects.forEach((project) => {\r\n         if (project.properties.project_na.toLowerCase().includes(this.state.search.toLowerCase())) {\r\n           filterProjects.push(project);\r\n         }\r\n       });\r\n     } else {\r\n       filterProjects = [...this.props.projects];\r\n     }\r\n     filterProjects.forEach((project) => {\r\n       if (project.properties.type.toLowerCase().includes(this.state.filter !== 'all' ? this.state.filter : '')) {\r\n         tableBody.push(<tr onClick={() => {\r\n           this.setState({\r\n             project,\r\n             zoom: project.geometry !== null ? 13 : 3,\r\n             latlng: project.geometry !== null ? { lat: project.geometry.coordinates[1], lng: project.geometry.coordinates[0] } : { lat: 0, lng: 0 },\r\n           });\r\n           this.props.selectProjectFunction(project);\r\n         }}\r\n         >\r\n           <td>{project.properties.project_na}</td>\r\n           <td>{project.properties.type}</td>\r\n           <td>{project.properties.programme}</td>\r\n           <td>{project.properties.national_p}</td>\r\n           <td>{project.properties.phasing}</td>\r\n           <td>{project.properties.city}</td>\r\n           <td>{project.properties.country}</td>\r\n           <td>{project.properties.river_name}</td>\r\n           <td>{project.properties.owner_impl}</td>\r\n           <td>{project.properties.constact_d}</td>\r\n           <td>{project.properties.capital_co}</td>\r\n           <td>{project.properties.fixed_cost}</td>\r\n           <td>{project.properties.source}</td>\r\n           <td>{project.properties.status}</td>\r\n           <td>{project.properties.start_date}</td>\r\n           <td>{project.properties.descriptio}</td>\r\n           <td>{project.properties.status_sou}</td>\r\n           <td>{project.properties.hydro_type}</td>\r\n           <td>{project.properties.hydro_capa}</td>\r\n           <td>{project.properties.hydro_max}</td>\r\n           <td>{project.properties.hydro_turb}</td>\r\n           <td>{project.properties.hydro_gen_}</td>\r\n           <td>{project.properties.hydro_plan}</td>\r\n           <td>{project.properties.hydro_tail}</td>\r\n           <td>{project.properties.hydro_asso}</td>\r\n           <td>{project.properties.hydro_cost}</td>\r\n           <td>{project.properties.hydro_rese}</td>\r\n           <td>{project.properties.hydro_expa}</td>\r\n           <td>{project.properties.resevoir_s}</td>\r\n           <td>{project.properties.reservoir_}</td>\r\n           <td>{project.properties.reservoir__1}</td>\r\n           <td>{project.properties.reservoir__2}</td>\r\n           <td>{project.properties.reservoir__3}</td>\r\n           <td>{project.properties.irrigation}</td>\r\n           <td>{project.properties.irrigation_1}</td>\r\n           <td>{project.properties.irrigation_2}</td>\r\n           <td>{project.properties.irrigation_3}</td>\r\n           <td>{project.properties.irrigation_4}</td>\r\n           <td>{project.properties.irrigation_5}</td>\r\n           <td>{project.properties.irrigation_6}</td>\r\n           <td>{project.properties.mine_withd}</td>\r\n           <td>{project.properties.mine_numbe}</td>\r\n           <td>{project.properties.mine_consu}</td>\r\n           <td>{project.properties.mine_water}</td>\r\n           <td>{project.properties.mine_distn}</td>\r\n           <td>{project.properties.navigation}</td>\r\n           <td>{project.properties.navigation_1}</td>\r\n           <td>{project.properties.navigation_2}</td>\r\n           <td>{project.properties.navigation_3}</td>\r\n           <td>{project.properties.enviroment}</td>\r\n           <td>{project.properties.enviroment_1}</td>\r\n           <td>{project.properties.enviroment_2}</td>\r\n           <td>{project.properties.flood_max}</td>\r\n           <td>{project.properties.flood_asso}</td>\r\n           <td>{project.properties.flood_asso_1}</td>\r\n           <td>{project.properties.flood_prot}</td>\r\n           <td>{project.properties.flood_prot_1}</td>\r\n                        </tr>);\r\n       }\r\n     });\r\n\r\n     return tableBody;\r\n   }\r\n\r\n   render() {\r\n     const { project } = this.state;\r\n     return (\r\n       <div style={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n         <div style={{ width: '75%', marginTop: 10, alignSelf: 'center' }}>\r\n           <div className=\"bp3-card bp3-elevation-2\">\r\n             <div style={{ height: 400, width: '100%' }}>\r\n               <Map\r\n                 animate={this.state.animate}\r\n                 center={this.state.latlng}\r\n                 length={4}\r\n                 onClick={this.handleClick}\r\n                 ref={this.inventoryMap}\r\n                 zoom={this.state.zoom}\r\n               >\r\n                 <GoogleLayer googlekey=\"AIzaSyBKAY79l3Gr9RIEs8mHlMaU28Iy2s9UIxw\" maptype=\"SATELLITE\" />\r\n                 { this.props.projects.length !== 0\r\n            && this.renderProjects()}\r\n                 {\r\nproject.properties.project_na !== ''\r\n                   && (\r\n                   <Marker\r\n                     icon={L.icon({\r\n                       iconUrl: iconPng,\r\n                       iconSize: [25, 41],\r\n            \r\n                     })}\r\n                     position={[project.geometry.coordinates[1], project.geometry.coordinates[0]]}\r\n                   >\r\n                     <p>test</p>\r\n                     <Popup>\r\n                       <b><center>PROJECT INFORMATION</center></b>\r\n                       <center>\r\nProject Name:\r\n                         {project.properties.project_na}\r\n                         <center>\r\n    Project Type:\r\n                           {project.properties.type}\r\n                           <center>\r\n    Country :\r\n                             {project.properties.country}\r\n                           </center>\r\n                         </center>\r\n                       </center>\r\n                     </Popup>\r\n                   </Marker>\r\n                   )\r\n            }\r\n               </Map>\r\n             </div>\r\n             <div style={{\r\n               display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between',\r\n             }}\r\n             >\r\n               <div style={{ width: '25%', marginTop: 10 }} className=\"bp3-input-group .modifier\">\r\n                 <span className=\"bp3-icon bp3-icon-search\" />\r\n                 <input onChange={(e) => { this.setState({ search: e.target.value }); }} type=\"text\" className=\"bp3-input\" placeholder=\"Search projects by name\" />\r\n               </div>\r\n               <div className=\"bp3-button-group .modifier\">\r\n                 <button className=\"bp3-button bp3-icon-database\" onClick={() => { this.setState({ filter: 'all' }); }}>All</button>\r\n                 <button className=\"bp3-button bp3-icon-tint\" onClick={() => { this.setState({ filter: 'hydropower' }); }}>Hydro power</button>\r\n                 <button className=\"bp3-button bp3-icon-filter\" onClick={() => { this.setState({ filter: 'water supply' }); }}>Water Supply</button>\r\n                 <button className=\"bp3-button bp3-icon-tree\" onClick={() => { this.setState({ filter: 'irrigation' }); }}>Irrigation</button>\r\n               </div>\r\n               <div>\r\n                 {this.state.project !== ''\r\n                   ? (\r\n                     <div>\r\n                       <p>{`Selected project:${this.state.project.properties.project_na}`}</p>\r\n                       <button className=\"bp3-button bp3-icon-print\">\r\n                         <Link to=\"/print\">View Report</Link>\r\n                       </button>\r\n                     </div>\r\n                   )\r\n                   : <div><p>Please select a project to print its report</p></div>\r\n\r\n          }\r\n               </div>\r\n             </div>\r\n             <div style={{\r\n               height: 380, width: '100%', marginTop: 10, overflowY: 'scroll', overflowX: 'scroll',\r\n             }}\r\n             >\r\n               <table className=\"bp3-html-table bp3-html-table-bordered bp3-interactive bp3-html-table-striped\">\r\n                 <thead>\r\n                   <tr>\r\n                     <th className=\"tableheader\">Project Name (Proper)</th>\r\n                     <th className=\"tableheader\">Project Type</th>\r\n                     <th className=\"tableheader\">Programme</th>\r\n                     <th className=\"tableheader\">National priority</th>\r\n                     <th className=\"tableheader\">Phasing (2027 or 2040)</th>\r\n                     <th className=\"tableheader\">City, Country</th>\r\n                     <th className=\"tableheader\">Country(s)</th>\r\n                     <th className=\"tableheader\">River Name</th>\r\n                     <th className=\"tableheader\">Owner / Implementing Agent</th>\r\n                     <th className=\"tableheader\">Contact Details</th>\r\n                     <th className=\"tableheader\">Capital US$ - 000)</th>\r\n                     <th className=\"tableheader\">Fixed O&M (US$ - 000)</th>\r\n                     <th className=\"tableheader\">Source</th>\r\n                     <th className=\"tableheader\">Status</th>\r\n                     <th className=\"tableheader\">Start Date</th>\r\n                     <th className=\"tableheader\">Description/Notes</th>\r\n                     <th className=\"tableheader\">Source</th>\r\n                     <th className=\"tableheader\">Type (RoR, Reservoir)</th>\r\n                     <th className=\"tableheader\">Capacity (MW)</th>\r\n                     <th className=\"tableheader\">Max Turbine Flow (m3/s)</th>\r\n                     <th className=\"tableheader\">Turbine Notes</th>\r\n                     <th className=\"tableheader\">Gen Efficiency</th>\r\n                     <th className=\"tableheader\">Plant Factor</th>\r\n                     <th className=\"tableheader\">Plant Factor</th>\r\n                     <th className=\"tableheader\">Tailwater elevation (m)</th>\r\n                     <th className=\"tableheader\">Associated Reservoir</th>\r\n                     <th className=\"tableheader\">Hydro Costs (millions of USD)</th>\r\n                     <th className=\"tableheader\">Reservoir Costs (millions of USD)</th>\r\n                     <th className=\"tableheader\">Expandable Capacity (MW)</th>\r\n\r\n                     <th className=\"tableheader\">Reservoir Storage (millions of m^3)</th>\r\n                     <th className=\"tableheader\">Volume-Area-Elevation curve</th>\r\n                     <th className=\"tableheader\">Max Reservoir Storage (MCM)</th>\r\n                     <th className=\"tableheader\">Flood Reservoir Storage (MCM)</th>\r\n                     <th className=\"tableheader\">Flood Reservoir Storage (MCM)</th>\r\n\r\n                     <th className=\"tableheader\">Total Area (ha)</th>\r\n                     <th className=\"tableheader\">Area by Season (ha)</th>\r\n                     <th className=\"tableheader\">Area by Crop (ha)</th>\r\n                     <th className=\"tableheader\">Water source (GW/SW)</th>\r\n                     <th className=\"tableheader\">Distance from River (km)</th>\r\n                     <th className=\"tableheader\">Irrigation Technology</th>\r\n                     <th className=\"tableheader\">Conveyance Efficiency</th>\r\n\r\n                     <th className=\"tableheader\">Water withdrawals (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Number of people supplied</th>\r\n                     <th className=\"tableheader\">Consumption</th>\r\n                     <th className=\"tableheader\">Leakage</th>\r\n                     <th className=\"tableheader\">Return flows to river (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Water source (GW/SW)</th>\r\n                     <th className=\"tableheader\">Distance from River (km)</th>\r\n\r\n                     <th className=\"tableheader\">Minimum Water Flow (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Maximum Water Flow (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Navigation Traffic/ Haulage</th>\r\n                     <th className=\"tableheader\">Associated Reservoir </th>\r\n\r\n                     <th className=\"tableheader\">MinImum Water Flow (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Maximum Water Flow (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Associated Reservoir</th>\r\n\r\n                     <th className=\"tableheader\">Maximum Water Flow (MCM/mo)</th>\r\n                     <th className=\"tableheader\">Associated Reservoir</th>\r\n                     <th className=\"tableheader\">Associated Reservoir Storage</th>\r\n                     <th className=\"tableheader\">Flood Protection Works</th>\r\n                     <th className=\"tableheader\">Value of Protected Assets </th>\r\n\r\n                   </tr>\r\n                 </thead>\r\n                 <tbody>\r\n                   {this.renderTableBody()}\r\n                 </tbody>\r\n               </table>\r\n             </div>\r\n           </div>\r\n         </div>\r\n       </div>\r\n     );\r\n   }\r\n}\r\n\r\nexport default InventoryPage;\r\n","import React, { Component } from 'react';\r\nimport {\r\n  H3, Label,\r\n} from '@blueprintjs/core';\r\nimport {\r\n  Map, Marker, Popup,\r\n} from 'react-leaflet';\r\nimport { GoogleLayer } from 'react-leaflet-google';\r\nimport {\r\n  projectTypes, projectStatus, programme, country,\r\n} from '../common/formsetup';\r\n\r\nclass NewPanel extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      projectName: '',\r\n      projectType: '',\r\n      programmeType: '',\r\n      nationalPriority: '',\r\n      phasing: '',\r\n      finalLat: '',\r\n      finalLng: '',\r\n      city: '',\r\n      countryName: '',\r\n      riverName: '',\r\n      owner: '',\r\n      contactDetail: '',\r\n      capital: '',\r\n      fixed: '',\r\n      financeSource: '',\r\n      status: '',\r\n      startDate: '',\r\n      description: '',\r\n      source: '',\r\n      joint: [],\r\n      search: '',\r\n    };\r\n    this.mapRef = React.createRef();\r\n  }\r\n\r\n  handleChange=(valueName, value) => {\r\n    this.setState({ [valueName]: value });\r\n  }\r\n\r\n  setProject=(project) => {\r\n\r\n    this.setState({\r\n      projectID: project.id,\r\n      projectName: project.properties.project_na,\r\n      projectType: project.properties.type,\r\n      programmeType: project.properties.programme,\r\n      nationalPriority: project.properties.national_p,\r\n      phasing: project.properties.phasing,\r\n      finalLat: project.geometry.coordinates[1],\r\n      finalLng: project.geometry.coordinates[0],\r\n      city: project.properties.city,\r\n      countryName: project.properties.country,\r\n      riverName: project.properties.river_name,\r\n      owner: project.properties.owner_impl,\r\n      contactDetail: project.properties.status_sou,\r\n      capital: project.properties.capital_co,\r\n      fixed: project.properties.fixed_cost,\r\n      financeSource: project.properties.source,\r\n      status: project.properties.status,\r\n      startDate: project.properties.start_date,\r\n      description: project.properties.descriptio,\r\n      source: project.properties.status_sou,\r\n    });\r\n  }\r\n\r\n  renderProjects =() => {\r\n    const projectMarkers = [];\r\n    if (this.state.search !== '') {\r\n      this.props.projects.forEach((project) => {\r\n        if (project.geometry !== null) {\r\n          if (project.properties.project_na.toLowerCase().includes(this.state.search.toLowerCase()) === this.state.search) {\r\n            projectMarkers.push(\r\n              <Marker onClick={() => this.setProject(project)} key={project.id} position={[project.geometry.coordinates[1], project.geometry.coordinates[0]]}>\r\n                <Popup onOpen={() => this.setState({ selectedProject: project })}>\r\n                  <b>\r\n                    <center>PROJECT INFORMATION</center>\r\n                  </b>\r\n                  <center>\r\n                    {`Project Name:${project.properties.project_na}`}\r\n                    <center>\r\n                      {`Project Type:${project.properties.project_ty}`}\r\n                      <center>\r\n                        {`Country:${project.properties.country}`}\r\n                      </center>\r\n                    </center>\r\n                  </center>\r\n                </Popup>\r\n              </Marker>,\r\n            );\r\n          }\r\n        }\r\n      });\r\n    } else {\r\n      this.props.projects.forEach((project) => {\r\n        if (project.geometry !== null) {\r\n          projectMarkers.push(\r\n            <Marker onClick={() => this.setProject(project)} key={project.id} position={[project.geometry.coordinates[1], project.geometry.coordinates[0]]}>\r\n              <Popup onOpen={() => this.setState({ selectedProject: project })}>\r\n                <b>\r\n                  <center>PROJECT INFORMATION</center>\r\n                </b>\r\n                <center>\r\n                  {`Project Name:${project.properties.project_na}`}\r\n                  <center>\r\n                    {`Project Type:${project.properties.project_ty}`}\r\n                    <center>\r\n                      {`Country:${project.properties.country}`}\r\n                    </center>\r\n                  </center>\r\n                </center>\r\n              </Popup>\r\n            </Marker>,\r\n          );\r\n        }\r\n      });\r\n    }\r\n\r\n\r\n    return projectMarkers;\r\n  }\r\n\r\n  joinCountries=(CName) => {\r\n    let { joint } = this.state;\r\n    if (joint.includes(CName)) {\r\n      joint = joint.filter(item => item !== CName);\r\n    } else {\r\n      joint.push(CName);\r\n    }\r\n    this.setState({ joint }, () => console.log(this.state.joint));\r\n  }\r\n\r\n  render() {\r\n    const project = this.state;\r\n    return (\r\n      <div style={{ width: '100%', justifyContent: 'center' }} className=\"bp3-card bp3-elevation-2\">\r\n        <H3>Double click a project requiring an update</H3>\r\n        <div style={{ height: 400, width: '100%' }}>\r\n          <Map center={[this.props.state.lat, this.props.state.lng]} zoom={this.props.state.zoom}>\r\n            <GoogleLayer googlekey=\"AIzaSyBKAY79l3Gr9RIEs8mHlMaU28Iy2s9UIxw\" maptype=\"SATELLITE\" />\r\n            { this.props.projects.length !== 0\r\n            && this.renderProjects()}\r\n          </Map>\r\n        </div>\r\n        <div style={{ width: '25%', marginTop: 10 }} className=\"bp3-input-group .modifier\">\r\n          <span className=\"bp3-icon bp3-icon-search\" />\r\n          <input onChange={(e) => { this.setState({ search: e.target.value }); }} type=\"text\" className=\"bp3-input\" placeholder=\"Search projects by name\" />\r\n        </div>\r\n        <div style={{\r\n          display: 'flex',\r\n          width: '100%',\r\n          flexDirection: 'row',\r\n          justifyContent: 'space-evenly',\r\n          flexWrap: 'wrap',\r\n        }}\r\n        >\r\n          <Label style={{ width: 210 }}>\r\n          Project Name (Proper)\r\n            <input value={this.state.projectName} onChange={e => this.handleChange('projectName', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Project Type\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.projectType} onChange={e => this.handleChange('projectType', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {projectTypes.map(type => (\r\n                  <option value={type}>{type}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Programme\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.programmeType} onChange={e => this.handleChange('programmeType', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {programme.map(prog => (\r\n                  <option value={prog}>{prog}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            National Priotity\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.nationalPriority} onChange={e => this.handleChange('nationalPriority', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                <option value=\"0\">0</option>\r\n                <option value=\"1\">1</option>\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Phasing\r\n            <input value={this.state.phasing} onChange={e => this.handleChange('phasing', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Project Coordinates\r\n            <div className=\"bp3-input-group\" style={{ width: 200 }}>\r\n              <input type=\"text\" className=\"bp3-input\" value={this.props.coordinates ? this.props.coordinates : `${this.state.finalLat},${this.state.finalLng} `} placeholder=\"Select Coordinates...\" />\r\n              <button onClick={() => this.props.openMap()} className=\"bp3-button bp3-minimal bp3-icon-locate\" />\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            City or Province\r\n            <input value={this.state.city} onChange={e => this.handleChange('city', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Country\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.countryName} onChange={e => this.handleChange('countryName', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {country.map(count => (\r\n                  <option value={count}>{count}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          {this.state.countryName === 'Joint'\r\n        && (\r\n\r\n        <div\r\n          style={{\r\n            width: 350,\r\n            display: 'flex',\r\n            flexDirection: 'row',\r\n            flexWrap: 'wrap',\r\n            justifyContent: 'space-around',\r\n          }}\r\n        >\r\n          {country.map((count) => {\r\n            if (count !== 'Joint') {\r\n              return (\r\n                <label style={{\r\n                  flexDirection: 'row',\r\n                  display: 'flex',\r\n                  alignItems: 'center',\r\n                  width: 119,\r\n                }}\r\n                >\r\n                  <input onChange={() => this.joinCountries(count)} type=\"checkbox\" />\r\n                  <span className=\"bp3-control bp3-indicator\" />\r\n                  {count}\r\n                </label>\r\n              );\r\n            }\r\n          })}\r\n        </div>\r\n        )\r\n        }\r\n          <Label style={{ width: 210 }}>\r\n            River Name\r\n            <input value={this.state.riverName} onChange={e => this.handleChange('riverName', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n\r\n          <Label style={{ width: 210 }}>\r\n           Owner / Implementing Agent\r\n            <input value={this.state.owner} onChange={e => this.handleChange('owner', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Contact Details\r\n            <input value={this.state.contactDetail} onChange={e => this.handleChange('contactDetail', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n           Capital cost (US$ 000)\r\n            <input value={this.state.capital} onChange={e => this.handleChange('capital', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n           Fixed O&M(US$ 000)\r\n            <input value={this.state.fixed} onChange={e => this.handleChange('fixed', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Cost - Source\r\n            <input value={this.state.financeSource} onChange={e => this.handleChange('financeSource', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Status\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select>\r\n                <option selected>Choose an item...</option>\r\n                {projectStatus.map(status => (\r\n                  <option value={status}>{status}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n              Start Date\r\n            <input value={this.state.startDate} onChange={e => this.handleChange('startDate', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n             Description/Notes\r\n            <input value={this.state.description} onChange={e => this.handleChange('description', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Status and Description - Source\r\n            <input value={this.state.source} onChange={e => this.handleChange('source', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n\r\n        </div>\r\n        <button\r\n          type=\"button\"\r\n          onClick={() => this.props.create(project)}\r\n          className=\"bp3-button bp3-icon-export\"\r\n        >\r\n        Create\r\n        </button>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\n\r\nexport default NewPanel;\r\n","import React, { Component } from 'react';\r\nimport {\r\n  H3, Label,\r\n} from '@blueprintjs/core';\r\nimport {\r\n  projectTypes, projectStatus, programme, country,\r\n} from '../common/formsetup';\r\n\r\n\r\nclass NewPanel extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      projectName: '',\r\n      projectType: '',\r\n      programmeType: '',\r\n      nationalPriority: '',\r\n      phasing: '',\r\n      finalLat: '',\r\n      finalLng: '',\r\n      city: '',\r\n      countryName: '',\r\n      riverName: '',\r\n      owner: '',\r\n      contactDetail: '',\r\n      capital: '',\r\n      fixed: '',\r\n      financeSource: '',\r\n      status: '',\r\n      startDate: '',\r\n      description: '',\r\n      source: '',\r\n      joint: [],\r\n    };\r\n    this.mapRef = React.createRef();\r\n  }\r\n\r\n  handleChange=(valueName, value) => {\r\n    this.setState({ [valueName]: value });\r\n  }\r\n\r\n  joinCountries=(CName) => {\r\n    let { joint } = this.state;\r\n    if (joint.includes(CName)) {\r\n      joint = joint.filter(item => item !== CName);\r\n    } else {\r\n      joint.push(CName);\r\n    }\r\n    this.setState({ joint });\r\n  }\r\n\r\n  render() {\r\n\r\n    const {\r\n      projectName,\r\n      projectType,\r\n      programmeType,\r\n      nationalPriority,\r\n      phasing,\r\n      city,\r\n      countryName,\r\n      riverName,\r\n      owner,\r\n      contactDetail,\r\n      capital,\r\n      fixed,\r\n      financeSource,\r\n      status,\r\n      startDate,\r\n      description,\r\n      source,\r\n    } = this.state;\r\n    return (\r\n      <div style={{ width: '100%', justifyContent: 'center' }} className=\"bp3-card bp3-elevation-2\">\r\n        <H3>Enter information regarding new project</H3>\r\n        <div style={{\r\n          display: 'flex',\r\n          width: '100%',\r\n          flexDirection: 'row',\r\n          justifyContent: 'space-evenly',\r\n          flexWrap: 'wrap',\r\n        }}\r\n        >\r\n          <Label style={{ width: 210 }}>\r\n          Project Name (Proper)\r\n            <input value={this.state.projectName} onChange={e => this.handleChange('projectName', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Project Type\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.projectType} onChange={e => this.handleChange('projectType', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {projectTypes.map(type => (\r\n                  <option value={type}>{type}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Programme\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.programmeType} onChange={e => this.handleChange('programmeType', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {programme.map(prog => (\r\n                  <option value={prog}>{prog}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            National Priotity\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.nationalPriority} onChange={e => this.handleChange('nationalPriority', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                <option value=\"0\">0</option>\r\n                <option value=\"1\">1</option>\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Phasing\r\n            <input value={this.state.phasing} onChange={e => this.handleChange('phasing', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Project Coordinates\r\n            <div className=\"bp3-input-group\" style={{ width: 200 }}>\r\n              <input type=\"text\" className=\"bp3-input\" value={this.props.coordinates} placeholder=\"Click on map-button\" />\r\n              <button onClick={() => this.props.openMap()} type=\"button\" className=\"bp3-button bp3-minimal bp3-icon-send-to-map\" />\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            City or Province\r\n            <input value={this.state.city} onChange={e => this.handleChange('city', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Country\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select value={this.state.countryName} onChange={e => this.handleChange('countryName', e.target.value)}>\r\n                <option selected>Choose an item...</option>\r\n                {country.map(count => (\r\n                  <option value={count}>{count}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          {this.state.countryName === 'Joint'\r\n        && (\r\n\r\n        <div\r\n          style={{\r\n            width: 350,\r\n            display: 'flex',\r\n            flexDirection: 'row',\r\n            flexWrap: 'wrap',\r\n            justifyContent: 'space-around',\r\n          }}\r\n        >\r\n          {country.map((count) => {\r\n            if (count !== 'Joint') {\r\n              return (\r\n                <label style={{\r\n                  flexDirection: 'row',\r\n                  display: 'flex',\r\n                  alignItems: 'center',\r\n                  width: 119,\r\n                }}\r\n                >\r\n                  <input onChange={() => this.joinCountries(count)} type=\"checkbox\" />\r\n                  <span className=\"bp3-control bp3-indicator\" />\r\n                  {count}\r\n                </label>\r\n              );\r\n            }\r\n          })}\r\n        </div>\r\n        )\r\n        }\r\n          <Label style={{ width: 210 }}>\r\n            River Name\r\n            <input onChange={e => this.handleChange('riverName', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n\r\n          <Label style={{ width: 210 }}>\r\n           Owner / Implementing Agent\r\n            <input onChange={e => this.handleChange('owner', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Contact Details\r\n            <input onChange={e => this.handleChange('contactDetail', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n           Capital cost (US$ 000)\r\n            <input onChange={e => this.handleChange('capital', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n           Fixed O&M(US$ 000)\r\n            <input onChange={e => this.handleChange('fixed', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Cost - Source\r\n            <input onChange={e => this.handleChange('financeSource', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n            Status\r\n            <div style={{ width: 200 }} className=\"bp3-select\">\r\n              <select>\r\n                <option selected>Choose an item...</option>\r\n                {projectStatus.map(status => (\r\n                  <option value={status}>{status}</option>\r\n                ))}\r\n              </select>\r\n            </div>\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n              Start Date\r\n            <input onChange={e => this.handleChange('startDate', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n             Description/Notes\r\n            <input onChange={e => this.handleChange('description', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n          <Label style={{ width: 210 }}>\r\n          Status and Description - Source\r\n            <input onChange={e => this.handleChange('source', e.target.value)} className=\"bp3-input\" />\r\n          </Label>\r\n\r\n        </div>\r\n        <button\r\n          type=\"button\"\r\n          disabled={!projectName && this.props.coordinates}\r\n          onClick={() => this.props.create(\r\n            projectName,\r\n            projectType,\r\n            programmeType,\r\n            nationalPriority,\r\n            phasing,\r\n            city,\r\n            countryName,\r\n            riverName,\r\n            owner,\r\n            contactDetail,\r\n            capital,\r\n            fixed,\r\n            financeSource,\r\n            status,\r\n            startDate,\r\n            description,\r\n            source,\r\n          )}\r\n          className=\"bp3-button bp3-icon-export\"\r\n        >\r\nCreate\r\n        </button>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\n\r\nexport default NewPanel;\r\n","import React, { Component } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport {\r\n  Map, Marker, Popup,\r\n} from 'react-leaflet';\r\nimport { GoogleLayer } from 'react-leaflet-google';\r\nimport {\r\n  Tab, Tabs,\r\n} from '@blueprintjs/core';\r\nimport { CircleLoader } from 'react-spinners';\r\nimport $ from 'jquery';\r\nimport 'react-notifications/lib/notifications.css';\r\nimport axios from 'axios';\r\nimport { NotificationManager } from 'react-notifications';\r\nimport L from 'leaflet';\r\nimport 'leaflet-wfst';\r\nimport UpdatePanel from '../components/updatePanel.component';\r\nimport NewPanel from '../components/newPanel.component';\r\n\r\nclass UpdatePage extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      lat: -17.197727,\r\n      lng: 31.76042,\r\n      zoom: 4,\r\n      selectMap: false,\r\n      selected: [],\r\n      loading: false,\r\n    };\r\n    this.mapRef = React.createRef();\r\n  }\r\n\r\n  upload=(\r\n    projectName,\r\n    projectType,\r\n    programmeType,\r\n    nationalPriority,\r\n    phasing,\r\n    city,\r\n    countryName,\r\n    riverName,\r\n    owner,\r\n    contactDetail,\r\n    capital,\r\n    fixed,\r\n    financeSource,\r\n    status,\r\n    startDate,\r\n    description,\r\n    source,\r\n  ) => {\r\n    this.setState({ loading: true });\r\n    const finalLat = this.state.selected[0];\r\n    const finalLng = this.state.selected[1];\r\n    const data = `<wfs:Transaction service=\"WFS\" version=\"1.0.0\"\r\n    xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n    xmlns:zamcom=\"https://frikancarto.com/zamcom\"\r\n    xmlns:gml=\"http://www.opengis.net/gml\"\r\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xsi:schemaLocation=\"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd http://www.openplans.org/topp https://frikancarto.com/geoserver/wfs/DescribeFeatureType?typename=zamcom:correct_zamwis\">\r\n    <wfs:Insert>\r\n  <zamcom:correct_zamwis>\r\n         <zamcom:geom>\r\n              <gml:Point srsName=\"http://www.opengis.net/gml/srs/epsg.xml#4326\"><gml:coordinates decimal=\".\" cs=\",\" ts=\" \">${parseFloat(finalLng)},${parseFloat(finalLat)}</gml:coordinates></gml:Point>\r\n          </zamcom:geom>\r\n          <zamcom:project_na>${projectName || 'Not Provided'}</zamcom:project_na>\r\n          <zamcom:type>${projectType || 'Not Provided'}</zamcom:type>\r\n          <zamcom:programme>${programmeType || 'Not Provided'}</zamcom:programme>\r\n          <zamcom:national_p>${nationalPriority || 99}</zamcom:national_p>\r\n          <zamcom:phasing>${phasing || 'Not Provided'}</zamcom:phasing>\r\n          <zamcom:lat>${finalLat}</zamcom:lat>\r\n          <zamcom:lng>${finalLng}</zamcom:lng>\r\n          <zamcom:city>${city || 'Not Provided'}</zamcom:city>\r\n          <zamcom:country>${countryName || 'Not Provided'}</zamcom:country>\r\n          <zamcom:river_name>${riverName || 'Not Provided'}</zamcom:river_name>\r\n          <zamcom:owner_impl>${owner || 'Not Provided'}</zamcom:owner_impl>\r\n          <zamcom:constact_d>${contactDetail || 'Not Provided'}</zamcom:constact_d>\r\n          <zamcom:capital_co>${capital || 0}</zamcom:capital_co>\r\n          <zamcom:fixed_cost>${fixed || 0}</zamcom:fixed_cost>\r\n          <zamcom:source>${financeSource || 'Not Provided'}</zamcom:source>\r\n          <zamcom:status>${status || 'Not Provided'}</zamcom:status>\r\n          <zamcom:start_date>${startDate || 'Not Provided'}</zamcom:start_date>\r\n          <zamcom:descriptio>${description || 'Not Provided'}</zamcom:descriptio>\r\n          <zamcom:status_sou>${source || 'Not Provided'}</zamcom:status_sou>\r\n        </zamcom:correct_zamwis>\r\n      </wfs:Insert>\r\n  </wfs:Transaction>`;\r\n\r\n    axios.post('https://frikancarto.com/geoserver/wfs',\r\n      data,\r\n      {\r\n        headers:\r\n             { 'Content-Type': 'text/xml' },\r\n      }).then((response) => {\r\n      if (response.data.includes('wfs:SUCCESS')) {\r\n        NotificationManager.success(`Added project ${projectName} to database`, 'Success');\r\n      }\r\n    })\r\n      .catch((error) => {\r\n        console.warn(error);\r\n        NotificationManager.warning('Update to project failed', 'Warning');\r\n      });\r\n    this.setState({ loading: false });\r\n  }\r\n\r\n\r\n  updateUpload=(project, history) => {\r\n    this.setState({ loading: true });\r\n    let updateToLocation = true;\r\n    let finalLat = this.state.selected[0];\r\n    let finalLng = this.state.selected[1];\r\n    if (!finalLat && !finalLng) {\r\n      finalLat = project.finalLat;\r\n      finalLng = project.finalLng;\r\n      updateToLocation = false;\r\n    }\r\n\r\n    const GeoData = `\r\n    <wfs:Transaction service=\"WFS\" version=\"1.1.0\"\r\n      xmlns:zamcom=\"https://frikancarto.com/zamcom\"\r\n      xmlns:ogc=\"http://www.opengis.net/ogc\"\r\n      xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n      xmlns:gml=\"http://www.opengis.net/gml\"\r\n      xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n      xsi:schemaLocation=\"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd\">\r\n      <wfs:Update typeName=\"zamcom:correct_zamwis\">\r\n      <wfs:Property>\r\n      <wfs:Name>geom</wfs:Name>\r\n      <wfs:Value>\r\n      <gml:Point srsName=\"http://www.opengis.net/gml/srs/epsg.xml#4326\"><gml:coordinates decimal=\".\" cs=\",\" ts=\" \">${parseFloat(finalLng)},${parseFloat(finalLat)}</gml:coordinates></gml:Point>\r\n        </wfs:Value>\r\n      </wfs:Property>\r\n        <ogc:Filter>\r\n        <ogc:FeatureId fid=\"${project.projectID}\"/>\r\n        </ogc:Filter>\r\n      </wfs:Update>\r\n    </wfs:Transaction>\r\n    `;\r\n    const data = `<wfs:Transaction service=\"WFS\" version=\"1.1.0\"\r\n    xmlns:ogc=\"http://www.opengis.net/ogc\"\r\n    xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n    xmlns:zamcom=\"https://frikancarto.com/zamcom\"\r\n    xmlns:gml=\"http://www.opengis.net/gml\">\r\n    <wfs:Update typeName=\"zamcom:correct_zamwis\">\r\n    <wfs:Property>\r\n    <wfs:Name>project_na</wfs:Name>\r\n    <wfs:Value>${project.projectName}</wfs:Value>\r\n  </wfs:Property>\r\n    <wfs:Property>\r\n    <wfs:Name>type</wfs:Name>\r\n    <wfs:Value>${project.projectType}</wfs:Value>\r\n  </wfs:Property>\r\n    <wfs:Property>\r\n    <wfs:Name>programme</wfs:Name>\r\n    <wfs:Value>${project.programmeType}</wfs:Value>\r\n  </wfs:Property>\r\n      <wfs:Property>\r\n    <wfs:Name>national_p</wfs:Name>\r\n    <wfs:Value>${parseInt(project.nationalPriority)}</wfs:Value>\r\n  </wfs:Property>\r\n  <wfs:Property>\r\n  <wfs:Name>phasing</wfs:Name>\r\n  <wfs:Value>${project.phasing}</wfs:Value>\r\n  </wfs:Property>\r\n  <wfs:Property>\r\n  <wfs:Name>lat</wfs:Name>\r\n  <wfs:Value>${project.finalLat}</wfs:Value>\r\n</wfs:Property>\r\n  <wfs:Property>\r\n  <wfs:Name>lng</wfs:Name>\r\n  <wfs:Value>${project.finalLng}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>city</wfs:Name>\r\n<wfs:Value>${project.city}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>country</wfs:Name>\r\n<wfs:Value>${project.countryName}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>river_name</wfs:Name>\r\n<wfs:Value>${project.riverName}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>owner_impl</wfs:Name>\r\n<wfs:Value>${project.owner}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>status_sou</wfs:Name>\r\n<wfs:Value>${project.contactDetail}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>capital_co</wfs:Name>\r\n<wfs:Value>${project.capital}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>fixed_cost</wfs:Name>\r\n<wfs:Value>${parseInt(project.fixed)}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>source</wfs:Name>\r\n<wfs:Value>${project.financeSource}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>status</wfs:Name>\r\n<wfs:Value>${project.status}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>start_date</wfs:Name>\r\n<wfs:Value>${project.startDate}</wfs:Value>\r\n</wfs:Property>\r\n<wfs:Property>\r\n<wfs:Name>descriptio</wfs:Name>\r\n<wfs:Value>${project.description}</wfs:Value>\r\n<wfs:Property>\r\n<wfs:Name>status_sou</wfs:Name>\r\n<wfs:Value>\"${project.source}\"</wfs:Value>\r\n</wfs:Property>\r\n</wfs:Property>\r\n  <ogc:Filter>\r\n  <ogc:FeatureId fid=\"${project.projectID}\"/>\r\n  </ogc:Filter>\r\n  </wfs:Update>\r\n</wfs:Transaction>\r\n  `;\r\n\r\n    axios.post('https://frikancarto.com/geoserver/wfs',\r\n      data,\r\n      {\r\n        headers:\r\n             { 'Content-Type': 'text/xml' },\r\n      }).then((response) => {\r\n      if (response.data.includes('<wfs:totalUpdated>1</wfs:totalUpdated>') && !updateToLocation) {\r\n        NotificationManager.success(`Updated project ${project.projectName} to database`, 'Success');\r\n        history.goBack();\r\n      }\r\n      if (updateToLocation) {\r\n        axios.post('https://frikancarto.com/geoserver/wfs', GeoData,\r\n          {\r\n            headers:\r\n               { 'Content-Type': 'text/xml' },\r\n          }).then((georesponse) => {\r\n  \r\n          if (georesponse.data.includes('<wfs:totalUpdated>1</wfs:totalUpdated>')) {\r\n            NotificationManager.success(`Updated project ${project.projectName} to database`, 'Success');\r\n          }\r\n          history.goBack();\r\n        }).catch((error) => {\r\n          NotificationManager.warning('Update to project failed', 'Warning');\r\n          console.warn(error);\r\n        });\r\n      }\r\n    })\r\n      .catch((error) => {\r\n        NotificationManager.warning('Update to project failed', 'Warning');\r\n        console.warn(error);\r\n      });\r\n    this.setState({ loading: false });\r\n\r\n  }\r\n\r\n\r\n  setStateFunction =(valueName, value) => {\r\n    this.setState({ [valueName]: value });\r\n  }\r\n\r\n  renderProjects =() => {\r\n    const projectMarkers = [];\r\n    this.props.projects.forEach((project) => {\r\n      if (project.geometry !== null) {\r\n        projectMarkers.push(\r\n          <Marker key={project.id} position={[project.geometry.coordinates[1], project.geometry.coordinates[0]]}>\r\n            <Popup onOpen={() => this.setState({ selectedProject: project })}>\r\n              <b>\r\n                <center>PROJECT INFORMATION</center>\r\n              </b>\r\n              <center>\r\n                {`Project Name:${project.properties.project_na}`}\r\n                <center>\r\n                  {`Project Type:${project.properties.project_ty}`}\r\n                  <center>\r\n                    {`Country:${project.properties.country}`}\r\n                  </center>\r\n                </center>\r\n              </center>\r\n            </Popup>\r\n          </Marker>,\r\n        );\r\n      }\r\n    });\r\n    return projectMarkers;\r\n  }\r\n\r\n  openMap=() => {\r\n\r\n    this.setState({ selectMap: true });\r\n  }\r\n\r\n  handleClick = (e) => {\r\n    const map = this.mapRef.current;\r\n    if (map != null) {\r\n      const coord = map.leafletElement.mouseEventToLatLng(e.originalEvent);\r\n      this.setState({ selected: [coord.lat.toFixed(5), coord.lng.toFixed(5)] });\r\n    }\r\n  }\r\n\r\n  render() {\r\n    return (\r\n      <div>\r\n        { this.state.loading\r\n          ? (\r\n            <div style={{\r\n              width: '100%', display: 'flex', justifyContent: 'center', marginTop: 10,\r\n            }}\r\n            >\r\n              <CircleLoader\r\n                color=\"#033e8b\"\r\n                size={80}\r\n              />\r\n            </div>\r\n          )\r\n          : (\r\n            <div style={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n              <div className=\"bp3-card bp3-elevation-2\" style={{ width: '85%', marginTop: 10 }}>\r\n                <Tabs\r\n                  animate\r\n                  id=\"TabsExample\"\r\n                  key=\"horizontal\"\r\n                  renderActiveTabPanelOnly\r\n                  vertical={false}\r\n                >\r\n                  <Tab\r\n                    id=\"rx\"\r\n                    title=\"New project\"\r\n                    panel={(\r\n                      <NewPanel\r\n                        toState={value => this.setStateFunction(value)}\r\n                        create={(projectName,\r\n                          projectType,\r\n                          programmeType,\r\n                          nationalPriority,\r\n                          phasing,\r\n                          city,\r\n                          countryName,\r\n                          riverName,\r\n                          owner,\r\n                          contactDetail,\r\n                          capital,\r\n                          fixed,\r\n                          financeSource,\r\n                          status,\r\n                          startDate,\r\n                          description,\r\n                          source) => this.upload(\r\n                          projectName,\r\n                          projectType,\r\n                          programmeType,\r\n                          nationalPriority,\r\n                          phasing,\r\n                          city,\r\n                          countryName,\r\n                          riverName,\r\n                          owner,\r\n                          contactDetail,\r\n                          capital,\r\n                          fixed,\r\n                          financeSource,\r\n                          status,\r\n                          startDate,\r\n                          description,\r\n                          source,\r\n                        )}\r\n                        coordinates={this.state.selected.length !== 0 ? `${this.state.selected[0]},${this.state.selected[1]}` : ''}\r\n                        openMap={() => this.openMap()}\r\n                      />\r\n)}\r\n                  />\r\n                  <Tab\r\n                    id=\"ng\"\r\n                    title=\"Update Project\"\r\n                    panel={(\r\n                      <UpdatePanel\r\n                        state={this.state}\r\n                        projects={this.props.projects}\r\n                        create={(projectObj) => { this.updateUpload(projectObj, this.props.history); }}\r\n                        renderProjects={() => this.renderProjects()}\r\n                        openMap={() => this.openMap()}\r\n                        coordinates={this.state.selected.length !== 0 ? `${this.state.selected[0]},${this.state.selected[1]}` : ''}\r\n                      />\r\n)}\r\n                  />\r\n                  <Tabs.Expander />\r\n                </Tabs>\r\n              </div>\r\n              {this.state.selectMap\r\n  && (\r\n  <div className=\"bp3-dialog-container\">\r\n    <div className=\"bp3-dialog\">\r\n      <div className=\"bp3-dialog-header\">\r\n        <span className=\"bp3-icon-large bp3-icon-inbox\" />\r\n        <h4 className=\"bp3-heading\">Select project location</h4>\r\n        <button onClick={() => { this.setState({ selectMap: false }); }} aria-label=\"Close\" className=\"bp3-dialog-close-button bp3-button bp3-minimal bp3-icon-cross\" />\r\n      </div>\r\n      <div className=\"bp3-dialog-body\">\r\n        <Map onClick={this.handleClick} ref={this.mapRef} center={[this.state.lat, this.state.lng]} zoom={this.state.zoom}>\r\n          {this.state.selected.length !== 0\r\n           && <Marker position={[this.state.selected[0], this.state.selected[1]]} />\r\n        }\r\n          <GoogleLayer googlekey=\"AIzaSyBKAY79l3Gr9RIEs8mHlMaU28Iy2s9UIxw\" maptype=\"SATELLITE\" />\r\n        </Map>\r\n      </div>\r\n      <div className=\"bp3-dialog-footer\">\r\n        <div className=\"bp3-dialog-footer-actions\">\r\n          {this.state.selected.length !== 0\r\n          && (\r\n            <div style={{ width: '100%' }}>\r\n              <p>\r\nLat:\r\n                {this.state.selected[0]}\r\n, Long:\r\n                {this.state.selected[1]}\r\n              </p>\r\n              <button onClick={() => this.setState({ selectMap: false })} className=\"bp3-button bp3-intent-primary\">Select</button>\r\n            </div>\r\n          )\r\n        }\r\n\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  )\r\n}\r\n            </div>\r\n          )\r\n      }\r\n\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(UpdatePage);\r\n","\r\nimport React, { Component } from 'react';\r\nimport {\r\n  Map, Marker,\r\n} from 'react-leaflet';\r\nimport { GoogleLayer } from 'react-leaflet-google';\r\nimport { withRouter } from 'react-router-dom';\r\nimport ReactToPrint from 'react-to-print';\r\nimport { CSVLink } from 'react-csv';\r\n\r\nclass PrintPage extends Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      project: '',\r\n      zoom: 13,\r\n      animate: false,\r\n      latlng: {\r\n        lat: -17.197727,\r\n        lng: 31.76042,\r\n      },\r\n    };\r\n    this.inventoryMap = React.createRef();\r\n  }\r\n\r\n  componentDidMount() {\r\n    if (this.props.selectedProject === '') {\r\n      this.props.history.push('/tables');\r\n    }\r\n  }\r\n\r\n  checkData=(data) => {\r\n    if (data === null) {\r\n      return 'empty (no data available)';\r\n    }\r\n    return data;\r\n  }\r\n\r\n\r\n  render() {\r\n    let CSVdata;\r\n    this.props.selectedProject === ''\r\n      ? CSVdata = []\r\n      : CSVdata = [\r\n        ['Project Title', 'Participating Countries', 'Project Objectives', 'Project Description', 'Status', 'Capital cost (million US$)', 'O&M Cost (million US$)', 'Execution Period', ' Contact details', 'Project Sponsors'],\r\n        [this.props.selectedProject.properties.project_na, this.props.selectedProject.properties.country, this.props.selectedProject.properties.type, this.props.selectedProject.properties.status, this.props.selectedProject.properties.capital_co, this.props.selectedProject.properties.fixed_cost, this.props.selectedProject.properties.start_date, this.props.selectedProject.properties.constact_d, this.props.selectedProject.properties.constact_d],\r\n      ];\r\n    return (\r\n      <div>\r\n        <ReactToPrint\r\n          trigger={() => <button style={{ alignSelf: 'flex-end' }} type=\"button\" className=\"bp3-button bp3-icon-print\">Print project report</button>}\r\n          content={() => this.componentRef}\r\n          copyStyles\r\n        />\r\n        <CSVLink className=\"bp3-button bp3-icon-download\" data={CSVdata}>Download csv</CSVLink>\r\n        <div style={{ backgroundColor: '#fff' }}>\r\n          <div ref={el => (this.componentRef = el)} style={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n            <div style={{ width: '75%', marginTop: 10, alignSelf: 'center' }}>\r\n              <div>\r\n                <h2 style={{ posistion: 'absolute' }}>Project Report</h2>\r\n              </div>\r\n              {this.props.selectedProject.properties !== undefined\r\n                    && (\r\n                    <div>\r\n                      <div style={{\r\n                        height: 400, width: '100%', marginBottom: 10, display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center',\r\n                      }}\r\n                      >\r\n                        {\r\n                        this.props.selectedProject.geometry !== null\r\n                          ? (\r\n                            <>\r\n                              <Map\r\n                                center={this.props.selectedProject.geometry !== null ? { lat: this.props.selectedProject.geometry.coordinates[1], lng: this.props.selectedProject.geometry.coordinates[0] } : { lat: 0, lng: 0 }}\r\n                                length={4}\r\n                                zoom={this.props.selectedProject.geometry !== null ? 13 : 3}\r\n                              >\r\n                                <GoogleLayer googlekey=\"AIzaSyBKAY79l3Gr9RIEs8mHlMaU28Iy2s9UIxw\" maptype=\"SATELLITE\" />\r\n                                {this.props.selectedProject.geometry !== null\r\n                          && <Marker position={[this.props.selectedProject.geometry.coordinates[1], this.props.selectedProject.geometry.coordinates[0]]} />\r\n                          }\r\n                              </Map>\r\n                            </>\r\n                          )\r\n                          : <h4 style={{ color: 'gray' }}>No valid location to render map on.</h4>\r\n                      }\r\n                      </div>\r\n                      <div id=\"projectReport\">\r\n                        <div className=\"table-responsive\">\r\n                          <table id=\"tbl\" className=\"table table-hover\">\r\n                            <thead>\r\n                              <tr>\r\n                                <th className=\"tableHeader\">\r\n                 General project information\r\n\r\n                                </th>\r\n                                <th style={{ backgroundColor: '#928989', color: 'white' }} />\r\n                              </tr>\r\n                            </thead>\r\n\r\n                            <tbody>\r\n                              <tr>\r\n                                <td>Project Title</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.project_na)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Participating Countries</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.country)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Project Objectives</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.type)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Project Description</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.descriptio)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Status</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.status)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Capital cost (million US$)</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.capital_co)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>O&M Cost (million US$)</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.fixed_cost)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Execution Period</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.start_date)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Contact details</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.constact_d)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Project Sponsors</td>\r\n                                <td>{this.checkData(this.props.selectedProject.properties.constact_d)}</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Financier</td>\r\n                                <td>empty (no data available)</td>\r\n                              </tr>\r\n                              <tr>\r\n                                <td>Project Documentation</td>\r\n                                <td>empty (no data available)</td>\r\n                              </tr>\r\n                            </tbody>\r\n\r\n                          </table>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    )}\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(PrintPage);\r\n","import React, { Component } from 'react';\nimport $ from 'jquery';\nimport './App.css';\nimport './assets/modal.css';\nimport { BrowserRouter as Router, Route } from 'react-router-dom';\nimport { NotificationContainer } from 'react-notifications';\nimport Navbar from './components/navbar';\nimport Hompage from './pages/home.page';\nimport Chartpage from './pages/charts.page';\nimport InventoryPage from './pages/inventory.page';\nimport UpdatePage from './pages/update.page';\nimport PrintPage from './pages/print.page';\n\nconst geoserverURL = 'http://197.211.238.164:8088/geoserver/ZSPMonitoring/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=ZSPMonitoring:correct_zamwis&outputFormat=application%2Fjson';\n// 'https://frikancarto.com/geoserver/zamcom/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=zamcom%3Acorrect_zamwis&outputFormat=application%2Fjson';\n\nclass App extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      modal: false,\n      projects: [],\n      selectedProject: '',\n      selectedCountry: '',\n    };\n  }\n\n  componentDidMount() {\n    $.ajax({\n      jsonp: true,\n      url: geoserverURL,\n      success: (data) => {\n        this.setState({ projects: data.features.filter(project => project.properties.status !== 'Existing') });\n        this.filterData(data.features.filter(project => project.properties.status !== 'Existing'));\n      },\n    });\n  }\n\n  selectProject=(project) => {\n    this.setState({ selectedProject: project });\n  }\n\nfilterData=(projects) => {\n  this.filterStatusData(projects);\n  this.filterCountryData(projects);\n  this.filterType(projects);\n  this.filterTypeStatus(projects);\n  this.filterTypeStatusCountry(projects);\n}\n\nfilterStatusData=(projects) => {\n  const Conceptual = projects.filter(i => i.properties.status === 'Conceptual');\n  const ProjectStructuring = projects.filter(i => i.properties.status === 'Project Structuring');\n  const Implementation = projects.filter(i => i.properties.status === 'Implementation');\n  const Feasibility = projects.filter(i => i.properties.status === 'Feasibility');\n  const Completion = projects.filter(i => i.properties.status === 'Completion');\n\n\n  const statusArray = [\n    ['Task', 'Status Count'],\n    ['Conceptual', Conceptual.length],\n    ['Feasibility', Feasibility.length],\n    ['Project Structuring', ProjectStructuring.length],\n    ['Implementation', Implementation.length],\n    ['Completion', Completion.length],\n\n  ];\n\n  this.setState({ projectsStatus: statusArray });\n}\n\nfilterType=(projects) => {\n  const Hydropower_total = projects.filter(i => i.properties.type === 'Hydropower' || i.properties.type === 'Hydropower/Irrigation/Water Supply' || i.properties.type === 'Hydropower; Environmental Flow' || i.properties.type === 'Hydropower; Flood Management; Environmental Flow' || i.properties.type === 'Hydropower; Flood Mangement' || i.properties.type === 'Mini Hydropower');\n  const Irrigation_total = projects.filter(i => i.properties.type === 'Irrigation' || i.properties.type === 'Water Supply (irrigation)' || i.properties.type === 'Water Supply (Irrigation); Flood Management' || i.properties.type === 'Irrigation and Water Supply' || i.properties.type === 'Irrigation scheme' || i.properties.type === 'Irrigation/ Water Supply' || i.properties.type === 'Irrigation/Water Supply' || i.properties.type === 'Climate Change Adaptation and Water Management; Hydropower; Water Supply (irrigation, sanitation, domestic)' || i.properties.type === 'Dam' || i.properties.type === 'Flood Management');\n  const Water_Supply_total = projects.filter(i => i.properties.type === 'Water Supply' || i.properties.type === 'Water Supply and Sanitation' || i.properties.type === 'Water Supply and Sanitation; Flood Mitigation');\n  const Livelihoods = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods'));\n  const typeArray = [\n    ['Type', 'Type Count'],\n    ['Hydropower', Hydropower_total.length],\n    ['Irrigation', Irrigation_total.length],\n    ['Water Supply and Sanitation', Water_Supply_total.length],\n    ['Livelihoods', Livelihoods.length],\n  ];\n  this.setState({ projectsType: typeArray });\n}\n\nfilterTypeStatus=(projects) => {\n  const conceptualHydroCount = projects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Conceptual').length;\n  const feasibilityHydroCount = projects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Feasibility').length;\n  const projectStructHydroCount = projects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Project Structuring').length;\n  const ImplementationHydroCount = projects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Implementation').length;\n  const CompletionHydroCount = projects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Completion').length;\n\n  const conceptualIrrigationCount = projects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Conceptual').length;\n  const feasaibilityIrrigationCount = projects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Feasibility').length;\n  const projectStructIrrigationCount = projects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Project Structuring').length;\n  const ImplementationIrrigationCount = projects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Implementation').length;\n  const CompletionIrrigationCount = projects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Completion').length;\n\n\n  const conceptualWaterSupCount = projects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Conceptual').length;\n  const feasaibilityWaterSupCount = projects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Feasibility').length;\n  const projectStructWaterSupCount = projects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Project Structuring').length;\n  const ImplementationWaterSupCount = projects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Implementation').length;\n  const CompletionWaterSupCount = projects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Completion').length;\n\n  const conceptuallivCount = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Conceptual').length;\n  const feasaibilitylivCount = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Feasibility').length;\n  const projectStructlivCount = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Project Structuring').length;\n  const ImplementationlivCount = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Implementation').length;\n  const CompletionlivCount = projects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Completion').length;\n\n\n  const data = [\n    ['Status', 'Conceptual', 'Feasibility', 'Project Structuring', 'Implementation', 'Completion'],\n    ['Hydropower', conceptualHydroCount, feasibilityHydroCount, projectStructHydroCount, ImplementationHydroCount, CompletionHydroCount],\n    ['Irrigation', conceptualIrrigationCount, feasaibilityIrrigationCount, projectStructIrrigationCount, ImplementationIrrigationCount, CompletionIrrigationCount],\n    ['Water Supply and Sanitation', conceptualWaterSupCount, feasaibilityWaterSupCount, projectStructWaterSupCount, ImplementationWaterSupCount, CompletionWaterSupCount],\n    ['Livelihoods', conceptuallivCount, feasaibilitylivCount, projectStructlivCount, ImplementationlivCount, CompletionlivCount],\n  ];\n\n  this.setState({ projectsTypeStatus: data });\n}\n\nfilterTypeStatusCountry=(projects) => {\n  const filteredCountryProjects = projects.filter(project => project.properties.country === this.state.selectedCountry);\n\n  const conceptualHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Conceptual').length;\n  const feasibilityHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Feasibility').length;\n  const projectStructHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Project Structuring').length;\n  const ImplementationHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Implementation').length;\n  const CompletionHydroCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('hydro') && i.properties.status === 'Completion').length;\n\n  const conceptualIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Conceptual').length;\n  const feasaibilityIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Feasibility').length;\n  const projectStructIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Project Structuring').length;\n  const ImplementationIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Implementation').length;\n  const CompletionIrrigationCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('irrigation') && i.properties.status === 'Completion').length;\n\n\n  const conceptualWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Conceptual').length;\n  const feasaibilityWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Feasibility').length;\n  const projectStructWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Project Structuring').length;\n  const ImplementationWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Implementation').length;\n  const CompletionWaterSupCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('water') && i.properties.status === 'Completion').length;\n\n  const conceptuallivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Conceptual').length;\n  const feasaibilitylivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Feasibility').length;\n  const projectStructlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Project Structuring').length;\n  const ImplementationlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Implementation').length;\n  const CompletionlivCount = filteredCountryProjects.filter(i => i.properties.type.toLowerCase().includes('livelihoods') && i.properties.status === 'Completion').length;\n\n\n  const data = [\n    ['Status', 'Conceptual', 'Feasibility', 'Project Structuring', 'Implementation', 'Completion'],\n    ['Hydropower', conceptualHydroCount, feasibilityHydroCount, projectStructHydroCount, ImplementationHydroCount, CompletionHydroCount],\n    ['Irrigation', conceptualIrrigationCount, feasaibilityIrrigationCount, projectStructIrrigationCount, ImplementationIrrigationCount, CompletionIrrigationCount],\n    ['Water Supply and Sanitation', conceptualWaterSupCount, feasaibilityWaterSupCount, projectStructWaterSupCount, ImplementationWaterSupCount, CompletionWaterSupCount],\n    ['Livelihoods', conceptuallivCount, feasaibilitylivCount, projectStructlivCount, ImplementationlivCount, CompletionlivCount],\n  ];\n\n\n  this.setState({ projectsTypeStatusCountry: data });\n}\n\n\nfilterCountryData = (projects) => {\n  const Angola_total = projects.filter(i => i.properties.country === 'Angola');\n  const Botswana_total = projects.filter(i => i.properties.country === 'Botswana');\n  const Malawi_total = projects.filter(i => i.properties.country === 'Malawi');\n  const Mozambique_total = projects.filter(i => i.properties.country === 'Mozambique');\n  const Namibia_total = projects.filter(i => i.properties.country === 'Namibia');\n  const Tanzania_total = projects.filter(i => i.properties.country === 'Tanzania');\n  const Zambia_total = projects.filter(i => i.properties.country === 'Zambia');\n  const Zimbabwe_total = projects.filter(i => i.properties.country === 'Zimbabwe');\n  const Joint = projects.filter(i => (i.properties.country === 'Joint'));\n  const countryArray = [\n    ['Country', 'Project Count'],\n    ['Angola', Angola_total.length],\n    ['Botswana', Botswana_total.length],\n    ['Malawi', Malawi_total.length],\n    ['Mozambique', Mozambique_total.length],\n    ['Namibia', Namibia_total.length],\n    ['Tanzania', Tanzania_total.length],\n    ['Zambia', Zambia_total.length],\n    ['Zimbabwe', Zimbabwe_total.length],\n    ['Joint', 5],\n  ];\n  this.setState({ projectsCountry: countryArray });\n}\n\n  selectCountry =(country) => {\n    this.setState({ selectedCountry: country });\n  }\n\n  modalToggle =() => {\n    this.setState(prevState => ({\n      modal: !prevState.modal,\n    }));\n  }\n\n\n  render() {\n    return (\n      <>\n        <Router basename=\"/INFO/scripts/ZSP_tool/code\">\n          <div>\n            <Navbar openModalFunction={() => this.modalToggle()} />\n            <Route path=\"/\" exact render={routeProps => (<Hompage {...routeProps} {... this.state} />)} />\n            <Route path=\"/charts\" exact render={routeProps => (<Chartpage {...routeProps} {... this.state} />)} />\n            <Route path=\"/tables\" exact render={routeProps => (<InventoryPage {...routeProps} {... this.state} selectProjectFunction={project => this.selectProject(project)} />)} />\n            <Route path=\"/update\" exact render={routeProps => (<UpdatePage {...routeProps} {... this.state} />)} />\n            <Route path=\"/print\" exact render={routeProps => (<PrintPage {...routeProps} {... this.state} />)} />\n            <NotificationContainer />\n          </div>\n\n        </Router>\n      </>\n\n    );\n  }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === 'localhost' ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === '[::1]' ||\n    // 127.0.0.1/8 is considered localhost for IPv4.\n    window.location.hostname.match(\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n    )\n);\n\nexport function register(config) {\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener('load', () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            'This web app is being served cache-first by a service ' +\n              'worker. To learn more, visit http://bit.ly/CRA-PWA'\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl, config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then(registration => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker == null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === 'installed') {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log('Content is cached for offline use.');\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch(error => {\n      console.error('Error during service worker registration:', error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl)\n    .then(response => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get('content-type');\n      if (\n        response.status === 404 ||\n        (contentType != null && contentType.indexOf('javascript') === -1)\n      ) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then(registration => {\n          registration.unregister().then(() => {\n            window.location.reload();\n          });\n        });\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config);\n      }\n    })\n    .catch(() => {\n      console.log(\n        'No internet connection found. App is running in offline mode.'\n      );\n    });\n}\n\nexport function unregister() {\n  if ('serviceWorker' in navigator) {\n    navigator.serviceWorker.ready.then(registration => {\n      registration.unregister();\n    });\n  }\n}\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\n\r\nReactDOM.render(<App />, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}