{"version":3,"sources":["components/Field/images/markerblue.png","components/Field/images/markerred.png","components/Field/images sync nonrecursive /.(png|jpe?g|svg)$","helpers/images sync nonrecursive /.(png|jpe?g|svg)$","helpers/images/arrow-black.png","helpers/images/arrow.png","helpers/images/buffer.png","helpers/images/checkbox_off.png","helpers/images/checkbox_on.png","helpers/images/circle.png","helpers/images/collased.png","helpers/images/color-picker.png","helpers/images/default.png","helpers/images/down.png","helpers/images/download.png","helpers/images/edit-all.png","helpers/images/edit-move.png","helpers/images/edit-rotate.png","helpers/images/edit-scale.png","helpers/images/edit-vertices.png","helpers/images/edit.png","helpers/images/eraser.png","helpers/images/feedback-footer.png","helpers/images/freehandLine.png","helpers/images/icon.png","helpers/images/json.png","helpers/images/layers-off.png","helpers/images/legend16.png","helpers/images/line.png","helpers/images/lock.png","helpers/images/measure.png","helpers/images/metadata.png","helpers/images/minus16.png","helpers/images/myItemsIcon.png","helpers/images/none.png","helpers/images/plus16.png","helpers/images/point.png","helpers/images/polygon.png","helpers/images/polyline.png","helpers/images/rectangle.png","helpers/images/report-card.png","helpers/images/report.png","helpers/images/select-all.png","helpers/images/select-none.png","helpers/images/settings.png","helpers/images/symbolize.png","helpers/images/symbolizer.png","helpers/images/table-icon.png","helpers/images/table-icon2.png","helpers/images/text.png","helpers/images/title-icon.png","helpers/images/toolbox.png","helpers/images/triangle.png","helpers/images/zoom-in.png","helpers/images/zoom-out.png","helpers/images/zoom.png","components/MapSwitcher/images sync nonrecursive /.(png|jpe?g|svg|gif)$","components/MapSwitcher/images/about.png","components/MapSwitcher/images/arrow-down.png","components/MapSwitcher/images/arrow_curve.gif","components/MapSwitcher/images/capture.png","components/MapSwitcher/images/emergency.png","components/MapSwitcher/images/esri-streets.png","components/MapSwitcher/images/esri-topo.png","components/MapSwitcher/images/feedback-footer.png","components/MapSwitcher/images/feedback.png","components/MapSwitcher/images/globe-icon.png","components/MapSwitcher/images/help.png","components/MapSwitcher/images/information.png","components/MapSwitcher/images/legend-footer.png","components/MapSwitcher/images/legend.png","components/MapSwitcher/images/lio-topo.png","components/MapSwitcher/images/menu.png","components/MapSwitcher/images/osm-topo.jpg","components/MapSwitcher/images/other.png","components/MapSwitcher/images/pdf.png","components/MapSwitcher/images/print.png","components/MapSwitcher/images/school.png","components/MapSwitcher/images/screenshot.png","components/MapSwitcher/images/search.png","components/MapSwitcher/images/tab-close.png","components/MapSwitcher/images/tab-open.png","components/MapSwitcher/images/target.png","components/MapSwitcher/images/terms-footer.png","components/MapSwitcher/images/terms.png","components/MapSwitcher/images/themes.png","components/MapSwitcher/images/tools.png","components/MapSwitcher/images/userFarms.png","components/MapSwitcher/images/waste.png","components/Field/images/addpumps.png","components/Field/images/arrow-black.png","components/Field/images/arrow.png","components/Field/images/buffer.png","components/Field/images/checkbox_off.png","components/Field/images/checkbox_on.png","components/Field/images/circle.png","components/Field/images/collapsed.png","components/Field/images/color-picker.png","components/Field/images/default.png","components/Field/images/down.png","components/Field/images/edit-all.png","components/Field/images/edit-move.png","components/Field/images/edit-rotate.png","components/Field/images/edit-scale.png","components/Field/images/edit-vertices.png","components/Field/images/edit.png","components/Field/images/eraser.png","components/Field/images/freehandLine.png","components/Field/images/hand.png","components/Field/images/icon.png","components/Field/images/json.png","components/Field/images/line.png","components/Field/images/map-marker.png","components/Field/images/measure.png","components/Field/images/myItemsIcon.png","components/Field/images/none.png","components/Field/images/point.png","components/Field/images/polygon.png","components/Field/images/polyline.png","components/Field/images/rectangle.png","components/Field/images/select-all.png","components/Field/images/select-none.png","components/Field/images/settings.png","components/Field/images/symbolize.png","components/Field/images/symbolizer.png","components/Field/images/text.png","components/Field/images/toolbox.png","components/Field/images/triangle.png","components/Field/images/up.png","components/Field/images/water-pump.png","components/Field/images/zoom.png","actions/user.js","reducers/user.js","reducers/index.js","constants/api.js","utils/api.js","sagas/user.js","actions/report.js","sagas/report.js","sagas/index.js","assets/jss/material-dashboard-react.js","assets/jss/material-dashboard-react/components/headerStyle.js","images/partners/sweep.png","images/partners/cdfa.png","images/partners/prop68.png","images/partners/teardrop.jpg","components/Navbars/Navbar.js","assets/jss/material-dashboard-react/components/cardStyle.js","components/Card/Card.js","components/Grid/GridItem.js","components/Grid/GridContainer.js","assets/jss/material-dashboard-react/components/buttonStyle.js","components/CustomButtons/Button.js","helpers/LayerStyles.js","helpers/helpers.js","components/images/tools.png","components/images/zoom-in.png","components/images/zoom-out.png","helpers/FloatingMenu.js","helpers/Portal.js","components/MapComponent.js","components/MapSwitcher/SpatialLayerList.js","components/MapSwitcher/LayerLegend.js","components/MapSwitcher/MapSwitcher.js","components/Field/ColorBar.js","components/Field/DrawButton.js","components/Field/ButtonBar.js","components/Field/FieldSidebarHelpers.js","assets/jss/material-dashboard-react/components/dialogStyle.js","components/Dialogs/Dialog.js","assets/jss/material-dashboard-react/components/customInputStyle.js","components/CustomInput/CustomInput.js","components/Forms/FieldForm.js","components/Forms/EditFieldForm.js","assets/jss/material-dashboard-react/components/cardHeaderStyle.js","components/Card/CardHeader.js","components/ExpandCollapseIcon.jsx","views/Popups/PreSpeciesPopup.js","views/Popups/PostSpeciesPopup.js","views/Popups/PreIrrigationPopup.js","views/Popups/PostIrrigationPopup.js","views/Popups/PreWaterMgmtToolsPopup.js","views/Popups/PostWaterMgmtToolsPopup.js","views/UserDetails/images/green-check-mark-icon.png","views/UserDetails/UserDetails.js","views/Popups/Misc/SuccessPopup.js","views/Popups/Misc/DataEntry.js","views/Popups/Misc/UniqueFieldName.js","views/Popups/Misc/MaxFields.js","views/Popups/Misc/AddPumpInstr.js","views/Popups/Misc/PumpImpQues.js","views/Popups/Misc/AddNewPump.js","views/Popups/Misc/AddNewPostPump.js","views/Popups/Misc/EditNewPump.js","views/Popups/Misc/EditNewPostPump.js","views/Popups/Electricity.js","views/Popups/Misc/CopyFieldDetails.js","components/Field/SaveLoadButtons.jsx","views/Popups/Misc/MaxPreProjPumps.js","views/Popups/Misc/MaxPostProjPumps.js","views/Popups/Misc/EditNamePopup.jsx","views/Popups/RenewEnrgyCapcty.js","components/Field/FieldSidebar.js","components/PropertyReportClick.js","views/Popups/Misc/WelcomePopup.jsx","components/LocationSearchbar.jsx","views/Map/Map.js","views/Popups/Misc/FundsPopup.js","helpers/report.js","components/Report/GHGOverallReportTable.jsx","components/Report/FieldWaterReportTable.jsx","components/Report/FieldDetailsReportTable.jsx","components/Report/N2OReportTable.jsx","components/Report/GHGPumpingReportTable.jsx","helpers/reportDownload/shared.js","helpers/reportDownload/summaryReport.js","helpers/reportDownload/detailedReport.js","helpers/reportDownload/dataInputs.js","views/Report/Report.js","helpers/reportDownload/reportDownload.js","components/Tabbar/Tabbar.js","assets/jss/material-dashboard-react/layouts/userStyle.js","pages/User.js","App.js","registerServiceWorker.js","index.js","store.js","utils/auth.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","receiveCalculationData","createAction","receiveFieldMetadata","updateUser","updateFundsRequested","_","createReducer","a","state","_ref","agopname","fields","preprojectpumps","postprojectpumps","electricity","renewenrgycapcty","_ref2","fieldResults","pumpResults","fr","find","field","fieldId","results","fieldList","apns","senateDistricts","assemblyDistricts","censusTracts","isEconomicallyDisadvantaged","includes","fundsRequested","crypto","randomUUID","reducer","combineReducers","entries","user","reduce","acc","key","value","action","BACKEND","process","RUN_CALCULATIONS","concat","FETCH_COMBINED_LOOKUPS","FETCH_CROPLOOKUP","FETCH_PREIRRTYPES","FETCH_POSTIRRTYPES","FETCH_POSTFUELTYPES","FETCH_VFDTYPES","DOWNLOAD_REPORT","FETCH_APN","FETCH_SENATE_DISTRICTS","FETCH_ASSEMBLY_DISTRICTS","FETCH_CENSUS_TRACTS","RequestError","constructor","status","message","this","headers","Authorization","localStorage","getItem","makePostOptions","data","method","mode","body","JSON","stringify","request","url","options","fetch","then","response","json","plainPostWithBody","post","payload","fetchApnData","fetchDistrictData","put","apnFormData","feature","geometryFormObject","buildGeometryFormObject","formData","FormData","append","buildApnFormData","apnData","call","length","result","push","createEntryIfNeeded","error","console","log","attributes","apiCall","outFields","hasAllFields","attributeName","undefined","outField","buildDistrictFormData","join","responseData","features","values","parse","featureGeoJSON","geometry","coordinates","exception","runCalculations","downloadReport","JSAlert","alert","setIcon","Icons","Failed","title","indexOf","errors","split","saga","relations","userActions","userSagas","reportActions","reportSagas","actions","sagas","actionName","takeLatest","getType","hexToRgb","input","replace","test","first","second","last","toUpperCase","parseInt","transition","container","paddingRight","paddingLeft","marginRight","marginLeft","defaultFont","fontFamily","fontWeight","lineHeight","primaryColor","warningColor","dangerColor","successColor","infoColor","roseColor","grayColor","blackColor","whiteColor","primaryBoxShadow","boxShadow","infoBoxShadow","successBoxShadow","warningBoxShadow","dangerBoxShadow","roseBoxShadow","warningCardHeader","background","successCardHeader","dangerCardHeader","infoCardHeader","primaryCardHeader","roseCardHeader","defaultBoxShadow","border","borderRadius","padding","color","textDecoration","marginTop","marginBottom","minHeight","headerStyle","appBar","backgroundColor","borderBottom","position","width","paddingTop","zIndex","display","flex","letterSpacing","fontSize","textTransform","margin","appResponsive","top","primary","info","success","warning","danger","useStyles","makeStyles","styles","Header","props","classes","float","height","React","createElement","className","src","teardropImg","alt","style","logo","sweepImg","cdfaImg","prop68Img","cardStyle","card","flexDirection","minWidth","wordWrap","cardPlain","cardProfile","textAlign","cardChart","Card","children","plain","profile","chart","rest","cardClasses","classNames","assign","grid","GridItem","Grid","item","GridContainer","buttonStyle","button","willChange","whiteSpace","verticalAlign","touchAction","cursor","transform","left","white","rose","simple","transparent","disabled","opacity","pointerEvents","lg","sm","round","block","link","justIcon","RegularButton","size","muiClasses","btnClasses","Button","image","CircleStyle","radius","fill","stroke","Stroke","etZoneColors","Style","Fill","lineDash","styleFunction","getGeometry","styleFunctionAlt","etZoneStyle","get","text","Text","getImageWMSLayerCDL","serverURL","layers","version","serverType","arguments","cqlFilter","TileLayer","visible","source","TileWMS","projection","params","LAYERS","VERSION","cql_filter","ratio","getImageWMSLayer","ImageLayer","ImageWMS","crossOrigin","getMapServerVectorSource","OSM","ImageArcGISRest","getPostgresServerVectorSource","geoJson","vectorSource","VectorSource","GeoJSON","readFeatures","VectorLayer","getMapScale","resolution","window","getView","getResolution","pointResolution","getProjection","getMetersPerUnit","Math","getURLParameter","parameterName","decoded","param","URL","location","href","searchParams","encodeURIComponent","getJSON","callback","responseJson","catch","zoomToFeature","fit","getExtent","constrainResolution","duration","easing","t","s","p","flashPoint","coords","zoom","marker","Feature","Point","vectorLayer","Vector","addLayer","mstyle","setStyle","start","Date","getTime","on","event","vectorContext","frameState","flashGeom","clone","elapsed","time","elapsedRatio","easeOut","fillOpacity","snapToPixel","drawGeometry","unByKey","render","pulsate","removeLayer","animate","center","getFeatureFromGeoJSON","geoJSON","readFeature","createTextStyle","fieldName","maxScale","align","baseline","offsetX","offsetY","weight","placement","maxAngleDegrees","overflow","rotation","font","fillColor","outlineColor","outlineWidth","parseFloat","fullFont","TextStyle","textBaseline","_getText","maxAngle","type","trunc","stringDivider","str","spaceReplacer","substring","serializeFeature","x","String","getDialogButton","label","onClick","getVisibleLayers","visibleLayers","getLayers","forEach","layer","getVisible","FloatingMenu","Component","super","getStyle","isVisible","yOffset","requestAnimationFrame","autoY","isElementInViewport","offsetHeight","buttonEvent","pageY","styleMode","pageX","handleSelect","setState","handleClick","onMenuItemClick","componentDidMount","clickEvent","document","addEventListener","evt","target","found","classNamesToIgnore","contains","el","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","ref","Menu","onSelect","defaultActiveFirst","onTitleClick","editMove","r","images","index","importAllImages","require","FloatingMenuItem","imageName","Portal","getElementById","appendChild","componentWillUnmount","removeChild","ReactDOM","createPortal","contextCoords","MapComponent","mapRendered","setMapRendered","useState","contextCoords2","setContextCoords","useLayoutEffect","centerCoords","scaleLineControl","ScaleLine","Map","controls","defaultControls","extend","FullScreen","view","View","maxZoom","minZoom","interactions","defaultInteractions","keyboard","altShiftDragRotate","pinchRotate","emitter","emit","focus","getViewport","preventDefault","contextCoordsU","getEventCoordinate","menu","MenuItem","SoilsInfoImage","ZoomInImage","ZoomOutImage","helpers","y","sr","fromLonLat","setZoom","getZoom","root","unmountComponentAtNode","direction","justifyContent","alignItems","xs","md","tabIndex","SpatialLayerList","onChange","allLayers","i","Checkbox","inputProps","LayerLegend","setAllLayers","imageUrl","getLegendImageUrl","MapConfig","cdlServices","service","toLowerCase","name","legendUrl","geoserverServices","MapSwitcher","imagerySliderValue","setImagerySliderValue","imageryLayers","setImageryLayers","imageryPanelOpen","setImageryPanelOpen","streetsLayer","setStreetsLayer","streetsCheckbox","setStreetsCheckbox","containerCollapsed","setContainerCollapsed","topoPanelOpen","setTopoPanelOpen","topoLayers","setTopoLayers","topoActiveIndex","setTopoActiveIndex","activeButton","setActiveButton","forceUpdate","setForceUpdate","setStyles","styleName","isTileLayer","addListener","onMapLoad","newLayers","preload","Infinity","BingMaps","imagerySet","setOpacity","setVisible","mapServerServices","postgresServerServices","getPostgresLayer","newList","allLayersPlusNew","addLayersToState","Fips","setStateLayerOnMap","setCountyLayerOnMap","newLayer","layersToRemove","layerToRemove","firstFeature","getSource","getFeatures","onSpatialLayerClicked","setLayerVisibilty","checked","toString","ColorBar","activeColor","setActiveColor","useEffect","isEditing","DrawButton","isActive","default","ButtonBar","getDefaultDrawStyle","drawColor","isText","strokeWidth","geometryType","hexColor","asArray","slice","controlDoubleClickZoom","active","getInteractions","getLength","interaction","DoubleClickZoom","setActive","setFeatureLabel","fieldInfo","getProperties","feat","getFeatureById","labelVisible","textStyle","labelRotation","setText","setProperties","dialogStyle","theme","flexWrap","cssRoot","cssRootMobile","cssRootMobileSearch","dialogTitleRootForm","dialogTitleRoot","palette","main","contrastText","dialogPaper","maxWidth","Transition","Slide","DynamicDialog","Dialog","open","TransitionComponent","keepMounted","labelId","paper","loadingMask","DialogTitle","disableTypography","form","DialogContent","Typography","component","variant","textMessage","DialogActions","buttons","customInputStyle","underline","borderColor","borderWidth","underlineError","underlineSuccess","labelRoot","labelRootError","labelRootSuccess","feedback","formControl","paddingBottom","CustomInput","formControlProps","labelText","labelProps","labelClasses","underlineClasses","FormControl","InputLabel","htmlFor","Input","Clear","Check","FieldForm","parentHandleChange","setFieldName","handleChanged","fullWidth","acreage","EditFieldForm","parentEditHandleChange","parentEditAcreChange","editfieldName","setEditFieldName","editAcreage","setAcreage","TextField","defaultValue","handleChangedEdit","handleChangedEditAcreage","cardHeaderStyle","cardHeader","cardHeaderPlain","cardHeaderStats","cardHeaderIcon","CardHeader","stats","icon","cardHeaderClasses","expandCollapseIcon","ExpandCollapseIcon","collapsed","ExpandMore","ExpandLess","BootstrapInput","styled","InputBase","spacing","transitions","create","PreSpeciesPopup","selField","parentchildprecroponeyearone","parentchildprecroptwoyearone","parentchildprecropthreeyearone","parentchildprecroponeyeartwo","parentchildprecroptwoyeartwo","parentchildprecropthreeyeartwo","parentchildprecroponeyearthree","parentchildprecroptwoyearthree","parentchildprecropthreeyearthree","parentcropOneYearOneChange","parentcropOneYearTwoChange","parentcropOneYearThreeChange","parentcropTwoYearOneChange","parentcropTwoYearTwoChange","parentcropTwoYearThreeChange","parentcropThreeYearOneChange","parentcropThreeYearTwoChange","parentcropThreeYearThreeChange","parentchildpostcroponeyearone","parentchildpostcroptwoyearone","parentchildpostcropthreeyearone","parentCopyPreCrop1VerticalChange","parentCopyPreCrop2VerticalChange","parentCopyPreCrop3VerticalChange","cropOneYear1","setCropOneYear1","fielddetails","precropping","preyearcroponeyearone","cropOneYear1List","setCropOneYear1List","cropTwoYear1","setCropTwoYear1","preyearcroptwoyearone","cropTwoYear1List","setCropTwoYear1List","cropThreeYear1","setCropThreeYear1","preyearcropthreeyearone","cropThreeYear1List","setCropThreeYear1List","cropOneYear2","setCropOneYear2","preyearcroponeyeartwo","cropOneYear2List","setCropOneYear2List","cropTwoYear2","setCropTwoYear2","preyearcroptwoyeartwo","cropTwoYear2List","setCropTwoYear2List","cropThreeYear2","setCropThreeYear2","preyearcropthreeyeartwo","cropThreeYear2List","setCropThreeYear2List","cropOneYear3","setCropOneYear3","preyearcroponeyearthree","cropOneYear3List","setCropOneYear3List","cropTwoYear3","setCropTwoYear3","preyearcroptwoyearthree","cropTwoYear3List","setCropTwoYear3List","cropThreeYear3","setCropThreeYear3","preyearcropthreeyearthree","cropThreeYear3List","setCropThreeYear3List","CMBYN","list","u","usr","option","NativeSelect","cr","indexkey","Link","PostSpeciesPopup","selFieldPost","parentchildpostcroponeyeartwo","parentchildpostcroptwoyeartwo","parentchildpostcropthreeyeartwo","parentchildpostcroponeyearthree","parentchildpostcroptwoyearthree","parentchildpostcropthreeyearthree","parentpostcropOneYearOneChange","parentpostcropOneYearTwoChange","parentpostcropOneYearThreeChange","parentpostcropTwoYearOneChange","parentpostcropTwoYearTwoChange","parentpostcropTwoYearThreeChange","parentpostcropThreeYearOneChange","parentpostcropThreeYearTwoChange","parentpostcropThreeYearThreeChange","parentCopyPostCrop1VerticalChange","parentCopyPostCrop2VerticalChange","parentCopyPostCrop3VerticalChange","postcropping","postyearcroponeyearone","postyearcroptwoyearone","postyearcropthreeyearone","postyearcroponeyeartwo","postyearcroptwoyeartwo","postyearcropthreeyeartwo","postyearcroponeyearthree","postyearcroptwoyearthree","postyearcropthreeyearthree","PreIrrigationPopup","selPreIrrField","parentchildpreirr","parentPreIrrChange","preirrigtn","setPreirrigtn","preirr","preirrigtnList","setPreirrigtnList","postirrigtn","setPostirrigtn","PostIrrigationPopup","selPostIrrField","parentchildpostirr","parentPostIrrChange","postirr","postirrigtnList","setPostirrigtnList","PreWaterMgmtToolsPopup","selPreWaterField","parentchildpresm","parentchildpreflow","parentchildpreet","parentchildpreno","parentPreSMChange","parentPreFLChange","parentPreETChange","parentPreNOChange","preSoilMoisture","setPreSoilMoisture","prewater","preyearsoilmoisture","preFlow","setPreFlow","preyearflow","preET","setPreET","preyearet","preNone","setPreNone","preyearno","FormGroup","FormControlLabel","control","PostWaterMgmtToolsPopup","selPostWaterField","parentchildpostsm","parentchildpostflow","parentchildpostet","parentchildpostno","parentPostSMChange","parentPostFLChange","parentPostETChange","parentPostNOChange","postSoilMoisture","setPostSoilMoisture","postwater","postyearsoilmoisture","postFlow","setPostFlow","postyearflow","postET","setPostET","postyearet","preprojpumplabel","preprojpumpAddIcon","UserDetails","detailsAdded","parentprespeciescroponeyearonechange","parentprespeciescroptwoyearonechange","parentprespeciescropthreeyearonechange","parentprespeciescroponeyeartwochange","parentprespeciescroptwoyeartwochange","parentprespeciescropthreeyeartwochange","parentprespeciescroponeyearthreechange","parentprespeciescroptwoyearthreechange","parentprespeciescropthreeyearthreechange","parentpostspeciescroponeyearonechange","parentpostspeciescroptwoyearonechange","parentpostspeciescropthreeyearonechange","parentpostspeciescroponeyeartwochange","parentpostspeciescroptwoyeartwochange","parentpostspeciescropthreeyeartwochange","parentpostspeciescroponeyearthreechange","parentpostspeciescroptwoyearthreechange","parentpostspeciescropthreeyearthreechange","parentpreirrchange","parentpostirrchange","parentpresoilmoisturechange","parentpreflowchange","parentpreetchange","parentprenochange","parentpostsoilmoisturechange","parentpostflowchange","parentpostetchange","parentpostnochange","parentprespeciescropverticalchange","parentprespeciescrop1verticalchange","parentprespeciescrop2verticalchange","parentprespeciescrop3verticalchange","parentpostspeciescropverticalchange","parentpostspeciescrop1verticalchange","parentpostspeciescrop2verticalchange","parentpostspeciescrop3verticalchange","prespeciesopen","setprespeciesopen","useSelector","postspeciesopen","setpostspeciesopen","preirrOpen","setPreIrrOpen","postirrOpen","setPostIrrOpen","prewaterOpen","setPreWaterOpen","postwaterOpen","setPostWaterOpen","preCroppingInputs","setPreCroppingInputs","croponeyearone","croponeyeartwo","croponeyearthree","croptwoyearone","croptwoyeartwo","croptwoyearthree","cropthreeyearone","cropthreeyeartwo","cropthreeyearthree","postCroppingInputs","setPostCroppingInputs","postcroponeyearone","postcroponeyeartwo","postcroponeyearthree","postcroptwoyearone","postcroptwoyeartwo","postcroptwoyearthree","postcropthreeyearone","postcropthreeyeartwo","postcropthreeyearthree","preIrrInputs","setPreIrrInputs","preirrmethod","postIrrInputs","setPostIrrInputs","postirrmethod","preWaterMgmtInputs","setPreWaterMgmtInputs","presm","preflow","preet","preno","postWaterMgmtInputs","setPostWaterMgmtInputs","postsm","postflow","postet","postno","postyearno","userFieldDetails","setUserFieldDetails","handleCropOneYearOneChanged","handleCropOneYearTwoChanged","handleCropOneYearThreeChanged","handleCropTwoYearOneChanged","handleCropTwoYearTwoChanged","handleCropTwoYearThreeChanged","handleCropThreeYearOneChanged","handleCropThreeYearTwoChanged","handleCropThreeYearThreeChanged","handlePostCropOneYearOneChanged","handlePostCropOneYearTwoChanged","handlePostCropOneYearThreeChanged","handlePostCropTwoYearOneChanged","handlePostCropTwoYearTwoChanged","handlePostCropTwoYearThreeChanged","handlePostCropThreeYearOneChanged","handlePostCropThreeYearTwoChanged","handlePostCropThreeYearThreeChanged","handlePreIrrChanged","handlePostIrrChanged","handlePreSoilMoistureChanged","handlePreFlowChanged","handlePreETChanged","handlePreNoChanged","handlePostSoilMoistureChanged","handlePostFlowChanged","handlePostETChanged","handlePostNoChanged","handlePreCrop1VerticalChanged","valueC1V","handlePreCrop2VerticalChanged","valueC2V","handlePreCrop3VerticalChanged","valueC3V","handlePostCrop1VerticalChanged","postvalueC1V","handlePostCrop2VerticalChanged","postvalueC2V","handlePostCrop3VerticalChanged","postvalueC3V","every","savePreWaterMgmtToolsButton","savePreWaterMgmtTools","savePostWaterMgmtToolsButton","savePostWaterMgmtTools","savePostIrrigationButton","savePostIrrigation","savePreIrrigationButton","savePreIrrigation","precroppingButtons","savePreCropping","postcroppingButtons","savePostCropping","preirrigationButtons","postirrigationButtons","prewatermgmttoolsButtons","postwatermgmttoolsButtons","parentchildprefirstload","prefirstload","handleClickPreSpeciesOpen","greencheckmarkicon","handleClickPostSpeciesOpen","handleClickPreIrrOpen","handleClickPostIrrOpen","handleClickPreWaterOpen","handleClickPostWaterOpen","SuccessPopup","handleClose","currentUser","onClose","Box","sx","noValidate","autoComplete","DataEntry","UniqueFieldName","MaxFields","AddPumpInstr","PumpImpQues","parentAddnlPumpLocsChange","setValue","FormLabel","RadioGroup","row","Radio","MenuProps","PaperProps","maxHeight","ITEM_HEIGHT","AddNewPump","fieldsArr","parentPumpNameChange","parentFieldsListeChange","parentHpChange","parentHoursChange","parentEfficiencyChange","parentSystemPressureChange","parentprepumpressureChange","parentprepumpdepthChange","parentpredischargepressureChange","parentprefrictionlossChange","parentVFDChange","parentFuelTypeChange","parentFuelUseChange","parentPumpImprovQuesChange","parentPumpStayInUseQuesChange","parentHpPostChange","parentHoursPostChange","parentEfficiencyPostChange","parentSystemPressurePostChange","parentpostpumpressureChange","parentpostpumpdepthChange","parentpostdischargepressureChange","parentpostfrictionlossChange","parentVFDPostChange","parentFuelTypePostChange","parentFuelUsePostChange","parentPostRenewenergySelectChange","parentPostRenewenergySelectCapctyChange","pumpName","setPumpName","setFields","preEff","setPreEff","preHP","setPreHP","preHours","setPreHours","preVFD","setPreVFD","preVFDList","setPreVFDList","preFuelUse","setPreFuelUse","pumpSystemPressure","setPumpSystemPressure","prepumpressure","setPrepumpressure","prepumpdepth","setPrepumpdepth","predischargepressure","setPredischargepressure","prefrictionloss","setPrefrictionloss","pumpSystemPressurePost","setPumpSystemPressurePost","postpumpressure","setPostpumpressure","postpumpdepth","setPostpumpdepth","postdischargepressure","setPostdischargepressure","postfrictionloss","setPostfrictionloss","pumpFueltype","setPumpFueltype","pumpFueltypeList","setPumpFueltypeList","postEff","setPostEff","postHP","setPostHP","postHours","setPostHours","postVFD","setPostVFD","postVFDList","setPostVFDList","postFuelUse","setPostFuelUse","pumpFueltypePost","setPumpFueltypePost","pumpFueltypePostList","setPumpFueltypePostList","pumpImproveques","setPumpImproveques","pumpStayinuseques","setPumpStayinuseques","renewenergyselect","setRenewenergyselect","renewenergyselectcapcty","setRenewenergyselectcapcty","vfdType","Select","multiple","OutlinedInput","AddNewPostPump","postfieldsArr","parentPostPumpNameChange","parentPostFieldsListeChange","parentPostHpChange","parentPostHoursChange","parentPostEfficiencyChange","parentPostSystemPressureChange","parentpostpumppressureChange","parentPostVFDChange","parentPostFuelTypeChange","parentPostFuelUseChange","parentPostRenewenergySelect","parentPostRenewenergySelectCapcty","textInput","setTextInput","postfields","setPostFields","addnewpostpumpsystempressure","setaddnewpostpumpsystempressure","addnewpostpumpfueltype","setaddnewpostpumpfueltype","addnewpostpumpfueltypeList","setaddnewpostpumpfueltypeList","EditNewPump","editFieldsArr","PreProjectPump","parentEditPumpNameChange","parentEditFieldsListeChange","parentEditHpChange","parentEditHoursChange","parentEditEfficiencyChange","parentEditSystemPressureChange","parentEditprepumpressureChange","parentEditprepumpdepthChange","parentEditpredischargepressureChange","parentEditprefrictionlossChange","parentEditFuelTypeChange","parentEditFuelUseChange","preprojectpump","preprojpumpName","preprojfields","preprojeff","preprojhp","preprojhours","preprojfueluse","pumpsystempressure","setPumpsystempressure","preprojsyspress","prepumppress","setPrePumpPress","preprojpumpress","setPrePumpDepth","preprojpumpdepth","predispress","setPredispress","preprojdispress","prefricloss","setPrefricloss","preprojfricloss","pumpfueltype","setPumpfueltype","preprojfueltype","pumpfueltypeList","setPumpfueltypeList","showPreFuelUseDiv","EditNewPostPump","editFieldsArrPost","PostProjectPumpEdit","parentEditPostPumpNameChange","parentEditPostFieldsListeChange","parentEditPostHpChange","parentEditPostHoursChange","parentEditPostEfficiencyChange","parentEditPostSystemPressureChange","parentEditPostPumpPressureChange","parentEditPostPumpDepthChange","parentEditPostDischargePressureChange","parentEditPostFrictionLossChange","parentEditPostVFDChange","parentEditPostFuelTypeChange","parentEditPostFuelUseChange","parentEditPostRenewEnrgySelChange","parentEditPostRenewEnrgyCapctyChange","postPumpNameEdit","setPostPumpNameEdit","postprojectpump","postprojpumpName","postPumpfieldsEdit","setPostPumpfieldsEdit","postprojfields","postPumpEffEdit","setPostPumpEffEdit","postprojeff","postPumpHPEdit","setPostPumpHPEdit","postprojhp","postPumpHoursEdit","setPostPumpHoursEdit","postprojhours","postPumpVFDEdit","setPostPumpVFDEdit","postprojvfd","postPumpVFDEditList","setPostPumpVFDEditList","postPumpFuelUseEdit","setPostPumpFuelUseEdit","postprojfueluse","postPumpSystempressureEdit","setPostPumpSystempressureEdit","postprojsyspress","postpumppressEdit","setPostPumpPressEdit","postprojpumpress","postpumpdepthEdit","setPostPumpDepthEdit","postprojpumpdepth","postdispressEdit","setPostdispressEdit","postprojdispress","postfriclossEdit","setPostfriclossEdit","postprojfricloss","postPumpFuelType","setPostPumpFuelType","postprojfueltype","postPumpFuelTypeList","setPostPumpFuelTypeList","postPumpRenewenergySelEdit","setPostPumpRenewenergySelEdit","postprojrenewenrgysel","postPumpRenewenergyCapctyEdit","setPostPumpRenewenergyCapctyEdit","postprojrenewenrgycapcty","showAnnualFuelUseDiv","postprojisprepump","Electricity","selkwh","selirr","parentTotalKWHChange","parentIrrHardwareChange","kwh","setKwh","irrHardware","setIrrHardware","getStyles","personName","typography","fontWeightRegular","fontWeightMedium","CopyFieldDetails","copyFromField","copyfieldsArr","parentCopyFieldsListChange","useTheme","fieldNames","setFieldNames","renderValue","selected","gap","Chip","SaveLoadButtons","saveText","loadText","dispatch","useDispatch","fileInput","readFile","file","files","reader","FileReader","onload","contents","func","readAsText","loadUser","download","now","filename","toLocaleDateString","toLocaleTimeString","element","setAttribute","click","upload","onchange","MaxPreProjPumps","MaxPostProjPumps","EditNamePopup","setName","saveName","saveEditNameButton","editNameButtons","onKeyDown","RenewEnrgyCapcty","selcapcty","parentRenewCapctyChange","capcty","setCapcty","draw","pumpVectorSource","pinLayer","fieldData","FieldSidebar","drawType","setDrawType","setDrawColor","drawStyle","setDrawStyle","setIsEditing","setPreProjectPumps","setPostProjectPumps","selectedField","setSelectedField","selectedPrePump","setSelectedPrePump","selectedPostPump","setSelectedPostPump","fieldJustCreated","setFieldJustCreated","premarkerJustCreated","setPremarkerJustCreated","postmarkerJustCreated","setPostmarkerJustCreated","preprojectpumpJustCreated","setPreProjectPumpJustCreated","postprojectpumpJustCreated","setPostProjectPumpJustCreated","fieldJustEdited","setFieldJustEdited","showAddNewField","setShowAddNewField","showEditNewField","setShowEditNewField","showEditName","setShowEditName","showDeleteField","setShowDeleteField","existPumpClicked","setExistPumpClicked","addntlPumpClicked","setAddntlPumpClicked","userDetailsOpen","setUserDetailsOpen","userDetailsTitle","setUserDetailsTitle","copyFieldDetailsOpen","setCopyFieldDetailsOpen","fieldDetailsAdded","setFieldDetailsAdded","successPopOpen","setSuccessPopOpen","dataEntryPopOpen","setDataEntryPopOpen","addPumpInstrPopOpen","setAddPumpInstrPopOpen","pumpImpOpen","setPumpImpOpen","addPumpOpen","setAddPumpOpen","addPostPumpOpen","setAddPostPumpOpen","editPumpOpen","setEditPumpOpen","editPostPumpOpen","setEditPostPumpOpen","copyArr","setCopyArr","userDetSelField","setUserDetSelField","pumpImpChanged","setPumpImpChanged","electricityPopUpOpen","setElectricityPopUpOpen","renewenrgyPopUpOpen","setRenewenrgyPopUpOpen","fieldsToCopy","setFieldsToCopy","fieldNameWarnPopOpen","setFieldNameWarnPopOpen","maxFieldsWarn","setMaxFieldsWarn","maxPreProjPumpsWarn","setMaxPreProjPumpsWarn","maxPostProjPumpsWarn","setMaxPostProjPumpsWarn","enableViewReportBtn","setEnableViewReportBtn","fieldsComplete","setFieldsComplete","prePumpsComplete","setPrePumpsComplete","postPumpsComplete","setPostPumpsComplete","pumpinputs","setPumpInputs","prepumpName","prefields","prehp","preeff","prehours","presyspress","prepumpress","prevfd","prefueltype","prefueluse","preimprovques","prestayinuseques","prefeature","posthp","posteff","posthours","postsyspress","postpumpress","postdispress","postfricloss","postvfd","postfueltype","postfueluse","postrenewenrgysel","postrenewenrgycapcty","postPumpinputs","setPostPumpInputs","postpumpName","postfeature","pumpEditInputs","setPumpEditInputs","preeditpumpName","preeditfields","preedithp","preediteff","preedithours","preeditsyspress","preeditpumpress","preeditpumpdepth","preeditdispress","preeditfricloss","preeditvfd","preeditfueltype","preeditfueluse","preeditfeature","postPumpEditInputs","setPostPumpEditInputs","posteditpumpName","posteditfields","postedithp","postediteff","postedithours","posteditsyspress","posteditpumpress","posteditpumpdepth","posteditdispress","posteditfricloss","posteditvfd","posteditfueltype","posteditfueluse","posteditfeature","posteditrenewenrgysel","posteditrenewenrgycapcty","fieldDetails","setFieldDetails","precroponeyearone","precroponeyeartwo","precroponeyearthree","precroptwoyearone","precroptwoyeartwo","precroptwoyearthree","precropthreeyearone","precropthreeyeartwo","precropthreeyearthree","presoilmoisture","postsoilmoisture","preSoilMoistureState","setPreSoilMoistureState","preFlowState","setPreFlowState","preETState","setPreETState","preNoState","setPreNoState","postSoilMoistureState","setPostSoilMoistureState","postFlowState","setPostFlowState","postETState","setPostETState","postNoState","setPostNoState","electricityDetails","setElectricityDetails","irrhardware","renewEnrgyDets","setRenewEnrgyDets","fieldCardCollapsed","setFieldCardCollapsed","prePumpCardCollapsed","setPrePumpCardCollapsed","postPumpCardCollapsed","setPostPumpCardCollapsed","history","useHistory","updateStyle","importGeometries","fieldDetailsValidation","PreProjPumpsValidation","PostProjPumpsValidation","count","importpoints","importpointsPost","setDrawControl","disableParcelClick","forEachFeatureAtPixel","pixel","onItemDelete","getFieldByFeatureId","showDrawingOptionsPopup","foundField","farms","farm","getFieldById","confirm","submitFieldDelete","poly","prepoint","Icon","anchor","premarkerpng","scale","postpoint","postmarkerpng","geocode","onButtonBarClick","onFieldClick","removeInteraction","localDrawType","Draw","Collection","geometryFunction","createBox","FieldSidebarHelpers","setTimeout","addPostPumpClicked","addPumpClicked","addNewItem","addFeature","addInteraction","getDefaultArea","area","Polygon","polygon","getArea","toFixed","formatArea","clear","styleJSON","pointType","fill_","color_","stroke_","lineDash_","width_","image_","imageFill","imageStroke","radius_","RegularShape","points","angle","PI","rotation_","radius2","values_","getState","getSize","preprojfeature","prefeaturejson","prepumpstyle","style_","text_","postprojfeature","postfeaturejson","postpumpstyle","geo","writeFeatureObject","turf","centroid","flatCoordinates","coordinate","fromEmmiter","featureId","valueOf","numOfFields","customStyle","isParcel","fromCircle","setGeometry","lonLat","toLonLat","getCenter","featureInfo","labelStyle","dataProjection","featureProjection","writeFeature","FieldDets","newUserField","userId","latLon","resetEditDialogs","resetDialogs","handleEditFieldNameChanged","currentUserEditCopy","editedField","handleEditAcreageChanged","handleFieldNameChanged","fieldJustCreatedCopy","markerInfo","postmarker","postmarkerInfo","handleAddnlPumpLocsChanged","handlePumpNameChanged","handleFieldsListChanged","handleHpChanged","handleHoursChanged","handleEfficiencyChanged","handleSystemPressureChanged","handlePrePumpPressChanged","handlePrePumpDepthChanged","handlePreDisPressChanged","handlePreFricLossChanged","handleVFDChanged","handleFuelTypeChanged","handleFuelUseChanged","handlePumpImprovQuesChanged","handlePumpStayInUseQuesChanged","handleHpPostChanged","handleHoursPostChanged","handleEfficiencyPostChanged","handleSystemPressurePostChanged","handlePumpPressPostChanged","handlePumpDepthPostChanged","handleDisPressPostChanged","handleFricLossPostChanged","handleVFDPostChanged","handleFuelTypePostChanged","handleFuelUsePostChanged","handleRenewEnrgySelPostChanged","handleRenewEnrgyCapctyPostChanged","handlePostPumpNameChanged","handlePostFieldsListChanged","handlePostHpChanged","handlePostHoursChanged","handlePostEfficiencyChanged","handlePostSystemPressureChanged","handlePostPumpPressChanged","handlePostPumpDepthChanged","handlePostDisPressChanged","handlePostFricLossChanged","handlePostVFDChanged","handlePostFuelTypeChanged","handlePostFuelUseChanged","handlePostRenewenergySelect","handlePostRenewenergySelectCapcty","handleEditPumpNameChanged","handleEditFieldsListChanged","handleEditHpChanged","handleEditHoursChanged","handleEditEfficiencyChanged","handleEditSystemPressureChanged","handleEditPrePumpPressChanged","handleEditPrePumpDepthChanged","handleEditPreDisPressChanged","handleEditPreFricLossChanged","handleEditFuelTypeChanged","handleEditFuelUseChanged","handleEditPostPumpNameChanged","handleEditPostFieldsListChanged","handleEditPostHpChanged","handleEditPostHoursChanged","handleEditPostEfficiencyChanged","handleEditPostSystemPressureChanged","handleEditPostPumpPressChanged","handleEditPostPumpDepthChanged","handleEditPostDisPressChanged","handleEditPostFricLossChanged","handleEditPostVFDChanged","handleEditPostFuelTypeChanged","handleEditPostFuelUseChanged","handleEditPostRenewEnrgySelChanged","handleEditPostRenewEnrgyCapctyChanged","callSuccessPopup","handlePreSpeciesCropOneYearOneChanged","handlePreSpeciesCropOneYearTwoChanged","handlePreSpeciesCropOneYearThreeChanged","handlePreSpeciesCropTwoYearOneChanged","handlePreSpeciesCropTwoYearTwoChanged","handlePreSpeciesCropTwoYearThreeChanged","handlePreSpeciesCropThreeYearOneChanged","handlePreSpeciesCropThreeYearTwoChanged","handlePreSpeciesCropThreeYearThreeChanged","valid","fieldPrecropping","fieldPostcropping","fieldPreIrr","fieldPostIrr","fieldPostWater","j","filter","annualkwh","renewcapcty","m","handlePreSpeciesCrop1VerticalChanged","precrop","postcrop","userDetsObj","handlePreSpeciesCrop2VerticalChanged","handlePreSpeciesCrop3VerticalChanged","handlePostSpeciesCrop1VerticalChanged","handlePostSpeciesCrop2VerticalChanged","handlePostSpeciesCrop3VerticalChanged","handlePostSpeciesCropOneYearOneChanged","handlePostSpeciesCropOneYearTwoChanged","handlePostSpeciesCropOneYearThreeChanged","handlePostSpeciesCropTwoYearOneChanged","handlePostSpeciesCropTwoYearTwoChanged","handlePostSpeciesCropTwoYearThreeChanged","handlePostSpeciesCropThreeYearOneChanged","handlePostSpeciesCropThreeYearTwoChanged","handlePostSpeciesCropThreeYearThreeChanged","handleTotalKWHChanged","handleRenewCapctyChanged","handleIrrHardwareChanged","handleCopyFieldsListChange","saveNewFieldButton","saveNewField","currentUserCopy","fieldNamesArr","Array","k","cancelNewFieldButton","cancelNewField","featureObj","idParam","removeFeature","saveEditFieldButton","saveEditField","editUserField","cancelEditFieldButton","cancelEditField","okPumpImpButton","okPumpImpField","submitFieldDetailsButton","submitFieldDetails","prespecies","postspecies","prewatmgmt","postwatmgmt","currentUserFieldCopy","submitElecDetailsButton","SubmitElecDetails","newElectricityDets","irrgtnhardware","currentUserElec","submitRenewEnrgyButton","SubmitRenewEnrgy","newRenewEnrgy","currentUserRenewEnrgy","addNewFieldButtons","editNewFieldButtons","saveNewPumpButton","saveNewPump","postispre","newPreProjectPump","preprojpumpId","preprojvfd","preprojimprovques","preprojstayinuseques","pumpUnimproved","newPrePostProjectPump","postprojpumpId","currentUser1","cancelNewPumpButton","cancelNewPump","saveCopyFieldDetailsButton","saveCopyFieldDetails","selectedfields","fieldToCopyFrom","currentUserSelFields","n","currentUserCopyFields","z","saveNewPostPumpButton","saveNewPostPump","newPostProjectPump","currentUserpost","cancelNewPostPumpButton","cancelNewPostPump","saveEditPumpButton","saveEditPump","currentUser2","cancelEditPumpButton","cancelEditPump","saveEditPostPumpButton","saveEditPostPump","currentUserPostEdit","addNewPumpButtons","addNewPostPumpButtons","editNewPumpButtons","editNewPostPumpButtons","cancelEditPostPump","pumpImpButtons","fieldDetsButtons","electricityPopupButtons","renewenrgyPopupButtons","copyfieldDetsButtons","flexGrow","IconButton","EditIcon","Collapse","in","CardContent","cArr","onFieldCopyClick","FileCopyIcon","currentUserdeleteCopy","deleteSelectedField","DeleteIcon","onPreProjEditClick","deleteSelectedPrePump","onPostProjEditClick","currentUserdeleteCopyPost","deleteSelectedPostPump","removeAttribute","canViewReports","enableReportBtns","fieldElem","prePumpElem","postPumpElem","once","mapCanvas","mapContext","getContext","prototype","querySelectorAll","canvas","parentNode","matrix","globalAlpha","Number","match","CanvasRenderingContext2D","setTransform","apply","fillStyle","fillRect","drawImage","pdf","jsPDF","addImage","toDataURL","save","renderSync","handleSuccessPopClose","handleAddPumpInstrPopClose","handleDataEntryPopClose","handleFieldNameWarnPopClose","handleMaxFieldsWarnPopClose","handleMaxPreProjPumpsWarnPopClose","handleMaxPostProjPumpsWarnPopClose","PropertyReportClick","onPropertyEmitter","that","getFeatureInfoUrl","viewResolution","INFO_FORMAT","bb","html","parsedHtmlObj","convertHTMLTable","showDialog","dialogHtml","parsedHtml","addInfoToPopUp","wmsURL","bind","propInfo","obj","tableRows","thArr","tdArr","col","makePrettyLine","Name","Value","prettyFormat","objArray","MUNAME","MUSYM","DRCLASSDCD","BROCKDEPMIN","FLODFREQMAX","dangerouslySetInnerHTML","__html","dialogButtons","WelcomePopup","shouldBeOpen","dialogOpen","setDialogOpen","agrOpName","SetAgrOpName","startButton","saveAgOperation","currentUserAgOp","fontStyle","LocationSearchbar","searchText","setSearchText","searchLocation","blob","readAsDataURL","onloadend","base64data","atob","lat","resourceSets","resources","geocodePoints","long","addressType","entityType","setCenter","getCorrectZoomLevel","placeholder","Search","overflowY","overflowX","FundsPopup","handleSubmit","setFundsRequested","InputProps","startAdornment","InputAdornment","loadingText","CO2Units","CO2AcreYearUnits","CO2DollarUnits","CO2YearUnits","formatResult","formatDollars","GHGOverallReportTable","reportData","handleFundsClick","setCollapsed","Table","TableHead","tableHeader","TableRow","TableCell","TableBody","pumpingReport","yearlyGHGBenefits","overallReport","convertedN2OBenefits","waterReport","beforeWaterUse","waterSavings","tenYearGHGBenefits","ghgBenefitsPerAcreYear","emissionReductionsPerFundsRequested","FieldWaterReportTable","beforeWater","afterWater","estWaterSavings","percentWaterSavings","totalsRow","totalArea","afterWaterUse","percentSavings","FieldDetailsReportTable","etZone","soilType","N2OReportTable","beforeN2O","afterN2O","avgYearlyN2OBenefits","tenYearN2OBenefits","n2oReport","GHGPumpingReportTable","pump","ghgPre","ghgPost","renewableEnergyRow","renewableEnergy","beforeGHG","afterGHG","emptyCellValue","buildHeader","buildOverallSection","buildFieldSummary","alignVertical","wrap","getYesNo","bool","buildSummaryReportData","buildPumpingSection","buildN2OSection","buildWaterSection","buildDetailedReportData","tdhPre","tdhPost","ghgPumpWithoutFuelChange","ghgPumpWithFuelChange","ghgPump","energySavingsVFD","ghgSavingsVFD","ghgSavingsRenewableEnergy","ghgReductions","tenYearBenefits","sum","benefitsPerAcreYear","benefitsPerDollar","fieldCount","yearCount","year","beforeYearlyN2O","cropCount","crop","afterYearlyN2O","buildFieldSection","lookupData","buildDataInputsData","lookupDataParam","_user$electricity","_user$electricity2","buildDataInputsForField","buildDataInputsForPrePump","preprojectPumpIds","postPumps","buildDataInputsForPostPump","buildDataInputsForCropping","getLookup","getWaterManagementTools","cropping","period","yearText","getNumberText","cropPropName","soilMoisture","flowMeter","et","tools","pressureKnown","improved","stayingInUse","newPressureKnown","number","idString","isNaN","getNewReportData","typo","gridCard","note","cardCategoryWhite","cardTitleWhite","alertRoot","flexBasis","column","reportCardContainer","Report","fundsPopupOpen","setFundsPopupOpen","setReportData","setLookupData","newLookupData","lookup","updateReportTotals","newReportData","mb","getReport","async","sheetData","writeXlsxFile","sheets","columns","fileName","dateFormat","createExcelReport","getMap","customTab","IconTabs","routes","basepath","BrowserRouter","Route","path","AppBar","Toolbar","Tabs","pathname","Tab","DrawingIcon","to","ReportIcon","Switch","appStyle","wrapper","mainPanel","breakpoints","up","overflowScrolling","content","ps","User","createRef","navigator","platform","PerfectScrollbar","current","suppressScrollX","suppressScrollY","destroy","Navbar","Tabbar","hist","createBrowserHistory","App","Router","Redirect","from","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","EventEmitter","store","initialState","sagaMiddleware","createSagaMiddleware","middlewares","enhancers","applyMiddleware","composedEnhancers","composeWithDevTools","createStore","rootReducer","run","rootSaga","configureStore","protocol","createTheme","overrides","MuiButton","MuiTableCell","head","token","tokenExpirationTime","setItem","login","Provider","MuiThemeProvider","origin","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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,8S,+BCAf,OAAe,cAA0B,oC,+BCAzC,OAAe,8zC,+BCAf,OAAe,cAA0B,oC,+BCAzC,OAAe,0a,+BCAf,OAAe,kkB,+BCAf,OAAe,s4D,+BCAf,OAAe,06I,+BCAf,OAAe,s5B,+BCAf,OAAe,k+F,+BCAf,OAAe,05H,+BCAf,OAAe,k5H,+BCAf,OAAe,s3D,+BCAf,OAAe,svD,+BCAf,OAAe,ktC,+BCAf,OAAe,80B,+BCAf,OAAe,8rB,+BCAf,OAAe,snC,+BCAf,OAAe,0kB,qFCAf,OAAe,kpD,+BCAf,OAAe,kyH,+BCAf,OAAe,szD,+BCAf,OAAe,8sD,+BCAf,OAAe,8zC,+BCAf,OAAe,8mD,+BCAf,OAAe,0hC,+BCAf,OAAe,0iB,+BCAf,OAAe,8lC,+BCAf,OAAe,k1B,+BCAf,OAAe,kf,+BCAf,OAAe,s5B,+BCAf,OAAe,k+B,+BCAf,OAAe,80B,+BCAf,OAAe,k6B,+BCAf,OAAe,8O,+BCAf,OAAe,0nB,+BCAf,OAAe,86B,+BCAf,OAAe,8uB,+BCAf,OAAe,knB,+BCAf,OAAe,k4C,+BCAf,OAAe,8V,+BCAf,OAAe,sqB,+BCAf,OAAe,8gG,+BCAf,OAAe,0yB,+BCAf,OAAe,srG,+BCAf,OAAe,knC,+BCAf,OAAe,kiD,+BCAf,OAAe,83B,+BCAf,OAAe,0nB,+BCAf,OAAe,8sB,+BCAf,OAAe,soD,+BCAf,OAAe,09C,+BCAf,OAAe,8tC,+BCAf,OAAe,8lC,+BCAf,OAAe,8lC,+BCAf,OAAe,01B,+BCAf,OAAe,8rB,+BCAf,OAAe,8pD,+BCAf,OAAe,8Z,+BCAf,OAAe,s7B,+BCAf,OAAe,0lC,6rBCER,MAAMY,EAAyBC,cACzBC,EAAuBD,cACvBE,EAAaF,cACbG,EAAuBH,cCUpBI,SACZC,YACI,CACI,CAACC,GAAe,CAACC,EAAKC,KAAA,IAAE,SAAEC,EAAQ,OAAEC,EAAM,gBAAEC,EAAe,iBAAEC,EAAgB,YAAEC,EAAW,iBAAEC,GAAiBN,EAAA,MAAM,IAC5GD,EACHE,WACAC,SACAC,kBACAC,mBACAC,cACAC,mBAEH,EACD,CAACR,GAA2B,CAACC,EAAKQ,KAAqC,IAAnC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","file":"static/js/main.d216816a.chunk.js","sourcesContent":["export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACNUlEQVRYhbWXMWhVMRSGv0pxcBAnhyJkEAS1KDiIFZeAk6CTOjoKV6jgIkiRIiLSScEhOoiLFJGiTuVRtRG0Up7SWoRSxKFXRMTJoXQoj+JwIzxee5KTVA9cuJyc/OdLcpOc20eG2aoGOAmcA44BA6HpJ9AGngOT3pl1rWZfRvKjgAOOJEIXgWHvzLRGd5sy+UXgrSI5wAHgpa3qqxrt5AzYqr4APEIJ22NXvDN3iwFsVe8D5oEdBckBOsCQd+ajFJAa1Vgk+TqwRLPmHSGmH7gTSyAC2KreA5wRmqeAvd6Z/d6Zg4ABngmxJ2xVH8oGAE4J7W3gtHdm+a/DO/ODZmtORbSyAQ4L/hvembVeZ9j71zO1ogC7BX870meO5tvQakUBVgX/rkifnYLmSgnAvOA/H+lzVvB/KAGYFPwjtqqP9zptVQ8Ct4U+0g5JHkQzwIZkwBpwH3hNcwZY4BKbnxmz3pkhKUd/DAC4JwBsBy6HJ2VlB1GwCeCrIolkX4JGGYB3pgPc2gLAzVRtoLnhHtOMJNcWgfFUUBIgzMJoAcCopjLS3vFPgU8ZyedIrH0WQBjJtQyAEe+MKjCnymkB7xRx770zLa2oGiCMSPMtZH0vWXVeqHRjs9AGXv03gGDSeQ8wpl37rQC0aGrBXlsGXuSKZQOEHfFgk6aHOX9ExQDBxtlYCT8pESoC8M78Ama7XEvemaJLq3QGAN50vav+A/81wELX++dSkVRBErPvwO/w/q1U5A9285G+N8Vo1QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACM0lEQVRYhbWXO2iVMRTHf5WSwUGcHEQwIAg+sOAgVhw+wUnQSR0dHQQFl4IUKSIinRQc1EFcpIiIOpVLfRDwQblKqwiliEMQEXFyEIdwKQ5fhMu9PclJqgc+CCfJ//zyPt8IBeYbA3AYOAHsBzbHqu9AF3gMzFoXVrSaIwXB9wE3gb2ZpkvAWevCC43uOmXw08BLRXCAncBT35gJjXZ2BnxjTgF3UcIO2HnrwvVqAN+Y7cAisL4iOEAPGLcuvJMa5EY1nQi+AizTrnlPaDMKXEsFEAF8Y7YAx4TqOWCbdWGHdWEXsBV4JLQ96BuzpxgAOCLUd4Gj1gX/12Fd+EZ7NOcSWsUAY4L/knUhDDrj2b9YqJUE2CT4u4k+C7R7Q6uVBPgt+Dcm+mwQNH/VACwK/pOJPscF/9sagFnBP+kbc2DQ6RuzG7gq9JFOSPYieg0MBQMCcAt4TnsHHALOsPqdMW9dGJdijKYAgBsCgAHOxS9ndRdRtIfAZ0UQyT5FjToA60IPuLIGgMu53EDzwt2jHUmpLQEzuUZZgDgLUxUAU5rMSPvGPwDeFwRfILP2RQBxJBcKACatG3ou6gGidYBXinZvrAsdragaII5IsxeK9ktRnhcz3dQsdIFn/w0gmnTfA0xr134tAB3aXHDQPPCkVKwYIJ6I26tU3Sn5I6oGiDbDcCZ8v0aoCsC68AOY73MtWxeqHq3aGQBwfWXVf+C/BvjQV/5YK5JLSFL2FfgZy19qRf4AYsGXRLBPn9sAAAAASUVORK5CYII=\"","var map = {\n\t\"./addpumps.png\": 522,\n\t\"./arrow-black.png\": 523,\n\t\"./arrow.png\": 524,\n\t\"./buffer.png\": 525,\n\t\"./checkbox_off.png\": 526,\n\t\"./checkbox_on.png\": 527,\n\t\"./circle.png\": 528,\n\t\"./collapsed.png\": 529,\n\t\"./color-picker.png\": 530,\n\t\"./default.png\": 531,\n\t\"./down.png\": 532,\n\t\"./edit-all.png\": 533,\n\t\"./edit-move.png\": 534,\n\t\"./edit-rotate.png\": 535,\n\t\"./edit-scale.png\": 536,\n\t\"./edit-vertices.png\": 537,\n\t\"./edit.png\": 538,\n\t\"./eraser.png\": 539,\n\t\"./freehandLine.png\": 540,\n\t\"./hand.png\": 541,\n\t\"./icon.png\": 542,\n\t\"./json.png\": 543,\n\t\"./line.png\": 544,\n\t\"./map-marker.png\": 545,\n\t\"./markerblue.png\": 241,\n\t\"./markerred.png\": 242,\n\t\"./measure.png\": 546,\n\t\"./myItemsIcon.png\": 547,\n\t\"./none.png\": 548,\n\t\"./point.png\": 549,\n\t\"./polygon.png\": 550,\n\t\"./polyline.png\": 551,\n\t\"./rectangle.png\": 552,\n\t\"./select-all.png\": 553,\n\t\"./select-none.png\": 554,\n\t\"./settings.png\": 555,\n\t\"./symbolize.png\": 556,\n\t\"./symbolizer.png\": 557,\n\t\"./text.png\": 558,\n\t\"./toolbox.png\": 559,\n\t\"./triangle.png\": 560,\n\t\"./up.png\": 561,\n\t\"./water-pump.png\": 562,\n\t\"./zoom.png\": 563\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 303;","var map = {\n\t\"./arrow-black.png\": 431,\n\t\"./arrow.png\": 432,\n\t\"./buffer.png\": 433,\n\t\"./checkbox_off.png\": 434,\n\t\"./checkbox_on.png\": 435,\n\t\"./circle.png\": 436,\n\t\"./collased.png\": 437,\n\t\"./color-picker.png\": 438,\n\t\"./default.png\": 439,\n\t\"./down.png\": 440,\n\t\"./download.png\": 441,\n\t\"./edit-all.png\": 442,\n\t\"./edit-move.png\": 443,\n\t\"./edit-rotate.png\": 444,\n\t\"./edit-scale.png\": 445,\n\t\"./edit-vertices.png\": 446,\n\t\"./edit.png\": 447,\n\t\"./eraser.png\": 448,\n\t\"./feedback-footer.png\": 449,\n\t\"./freehandLine.png\": 450,\n\t\"./icon.png\": 451,\n\t\"./json.png\": 452,\n\t\"./layers-off.png\": 453,\n\t\"./legend16.png\": 454,\n\t\"./line.png\": 455,\n\t\"./lock.png\": 456,\n\t\"./measure.png\": 457,\n\t\"./metadata.png\": 458,\n\t\"./minus16.png\": 459,\n\t\"./myItemsIcon.png\": 460,\n\t\"./none.png\": 461,\n\t\"./plus16.png\": 462,\n\t\"./point.png\": 463,\n\t\"./polygon.png\": 464,\n\t\"./polyline.png\": 465,\n\t\"./rectangle.png\": 466,\n\t\"./report-card.png\": 467,\n\t\"./report.png\": 468,\n\t\"./select-all.png\": 469,\n\t\"./select-none.png\": 470,\n\t\"./settings.png\": 471,\n\t\"./symbolize.png\": 472,\n\t\"./symbolizer.png\": 473,\n\t\"./table-icon.png\": 474,\n\t\"./table-icon2.png\": 475,\n\t\"./text.png\": 476,\n\t\"./title-icon.png\": 477,\n\t\"./toolbox.png\": 478,\n\t\"./triangle.png\": 479,\n\t\"./zoom-in.png\": 480,\n\t\"./zoom-out.png\": 481,\n\t\"./zoom.png\": 482\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 430;","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM1RjE5MTdBNjkxQjExRTU4OTU2Q0NGRkU2OUYwRjNBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM1RjE5MTdCNjkxQjExRTU4OTU2Q0NGRkU2OUYwRjNBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzVGMTkxNzg2OTFCMTFFNTg5NTZDQ0ZGRTY5RjBGM0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzVGMTkxNzk2OTFCMTFFNTg5NTZDQ0ZGRTY5RjBGM0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7rcQ3GAAABxUlEQVR42qRTyU4bQRB97ZlxjCAICZFYBBCKgoTEIYc+cOIH8g255+oDH+Ir9/mJnHPFuVoCASYGA2EReLyMe6V6po0XGQmJkqrXqvequqqZtRbvkdANvw+PATY6LJXmRhuGAxr/GGNiayyM1tBef+xu5wDTIsQAYRTlGwtOI/dX8bRtYRYAsUEJCcfodHNtmdNcIbSfbwLIQCyBSJmFLIXOQIw2FTsFMkzhwIc6IWSc50sRpR2JzfUVftK4roynkwGQEf/2dZUrqb3jGAilIIQiG4N20sfG2go/OyeQvHpxDqAUJDmnqZx4B0nnitSth+VuJwyfPy3xVuuu8gJgjEahwFCMgow9lQrCahgqrQ0DYmdQFIGTj/MlXFzc1Ki+1fEUavX66avNsrBa5gIa88UQ1/+uatQb1SAIRm9AtL9e60gK/9AlVvwQ4b7RzJ0LQTxRheS2iVkAc0vlvNaM4fGkkTmrtBt37y4hem1g77sH+N+cyT7oPGHxyxYeT89qst+p9h+uYtlPMKsPXEMtkC56zT6DMxa95MhI8bd7e16nox1XCK8d93zhS88Qob9wczRkSFrH+2OEyt8Phu3C3vudnwUYADHS/14qfBQoAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUYwNTQwMDc1NzE0MTFFMDgxODA5QzY5QUFBREVBOEUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUYwNTQwMDg1NzE0MTFFMDgxODA5QzY5QUFBREVBOEUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5RjA1NDAwNTU3MTQxMUUwODE4MDlDNjlBQUFERUE4RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5RjA1NDAwNjU3MTQxMUUwODE4MDlDNjlBQUFERUE4RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjrcXwcAAAF1SURBVHjarJNBSgNBEEWreybJyIQoKKiIKzFn8AgBF0oWutYLuPcA7r2Ae10EXQg5gmcIuBJRF4KGBCfJzLT9mkxsgglC/FB0TXX96u6qP0qm8HLb3LdLwxizZ9f6ONxRSj3Ytb152Lr381XhvN01d3IjZ2GgTqNyEJdDLdZ3e2lmZJjmkgyzvvWvtJLL9YPW46QAZLtxUYtLR3EUilLyK4wR6SepdPujG1v8nCKaDU6GXF2aTXan2T1yyIXjYrzZVrterVXieeTpm7x3BzznOKRhvNknp4nIx5OR3qtx39UNJSvbSsLo5yZwel9pQ9NtGuYD8ug5kGVdcYZPzAccuDDrRbcLcHJUCiTU2hl+cZsCY05dy4KgQIc5++DNySiTNM+d4RPzMeZ0NApDJD5oWGkrk8984AyfmA84cJlC2yrsxApoMgm6vbarnM0aI6qEq9E28kRhfwW5cOC6JqJt5Gnn6qrPExA55ML5v59pkd/5W4ABAEdp1OI1FQ5LAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzYzMTBEM0Q3QkExMUU0QjZFRUU5NEREQjg5RTlGQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzYzMTBENEQ3QkExMUU0QjZFRUU5NEREQjg5RTlGQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNjMxMEQxRDdCQTExRTRCNkVFRTk0RERCODlFOUZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNjMxMEQyRDdCQTExRTRCNkVFRTk0RERCODlFOUZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hSl4OgAAAEpJREFUeNpiYKAQMIKIhoaG/6RqBOoB62WBCdTX1xOtubGxEc6GG/Dv3z+yvAA34O/fv5QZQLELBt6AYRAGA++FGTNmMAxNABBgANynJrUk9YKVAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NjQ4MjlCQUQ3QkIxMUU0QTBDRUIxQkREMEQ2MUQwNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4NjQ4MjlCQkQ3QkIxMUU0QTBDRUIxQkREMEQ2MUQwNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NDgyOUI4RDdCQjExRTRBMENFQjFCREQwRDYxRDA0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg2NDgyOUI5RDdCQjExRTRBMENFQjFCREQwRDYxRDA0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yJJBnAAAAS1JREFUeNqkk81Kw0AQx2dj8NK8gN76LMWzFAvqSQrFFkV8Ag0BDwUJWEQIeBApan0F30QQehDag1e91J0ZZ9JmqaWJHxn4ZT52899vw8xQxnz9RFH0Z5UwDI0TmBV+/bMM6GIvC4ioiIHwkeXz5gQQcSkWiYSdVtyviB9qbamAKiPDq6B+JNwIY2L2Ohd30z7MVanF+QJEwUHvXv260BTWNHeznPap5QoQ8bPGR5cDjVOfWe9wO60Jb7l7YBGfsvz46tF1ijsNbVMmZD83cmcAaE/P21vf7oTkunblHciuMhVsojYi0nW3VU9r6iWXgenW2EnAMovFY/Tnl6BmAPdJdM+amw9ybC8+2xMDvIdFV9ktwRnBCthdjXgG/CSQJMm/HpMp+xo9KGlfAgwAhdj2yNFovjwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAptJREFUeNqcU99LU3EUv9977zaWbv5qzDldy+aPlUGoJYUkyiRhBhX0gyCyHnrsQaK/oSd7DuqhIggfHBSBtaBMdGDracXmJrppuuam2XY3d7f7vbdzbFd00UsHPpzz/X7P55zvOd/zJSfuTTIohJByfQoUYk5RlDmmJGDv0yzzt9gBbnDo8T9wjaCG9S3cK53tE77M7mus07deO2NzZkWptvP+u2d3XEe6h7saqqeDydjL2WXbSioXBr8pgLRzU7UEkKH+DvPx0fNtg2BrqawU92biWKIBVRh7Pe/98DURAHuHyJdqaW+xGFpHh9sGi5KMG/nyq8qyQjEh+qyksmIknonCOsTKsowN6bw90HxMlGRZoooEoP+AhD7oixzk4g16Adb5tXTlIVNFYW/WIpULQp4KQl6CllCxCAFw/1t0sxrIVjB7WQwQeOi++tgbCYADReREml/Z2F4Lx4Xo6kYu9Stb2M6LlFJJJojx2dgicpDLQ6SZo3dfsSMDjg6oX4ZsQjIjbu3UTErPjKOhMEQdhQs9TQ7gTIA9gyVMAxzN5sqm9HaRAXIanRV8VkWlMLtxtDyrabUY05A4DsM2rTbR/8QbXtLyhLCE4QnL8OxekD/gOKIxGbWGF1MLceQgl6vpuowB1jcFsT6xlWP6OxoaKTSXUkUhDMYjHGRi9TpebzLo9I8mg6FA7GcEOB9xBNS6mNruKxpdvdNtd3Y5L522W3razVUeX4zz+BZj1/taHDUVmsSELxqPBr8ExR/BN5v+8aJaljrGdYCDle0uW4Vz6DBnMJnguGr16Y2z1pvPP9HM+kI2OLkkhN5/B78kIIXjrAbAbh8oYfd/1F0cO0l0xnOKmH674Rn9XNrGicwCcjigRP2W/yu/BRgAd0F+LkZjoXQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEaSURBVDhPlZPPaoNAEMZ1JULjAxQFH6AUb/65taW5BvIGhdKe8kI9FnLNNSHH0KNWpLe+Q3vPQVHzjUy3mmw25AfD7Mz6fY6rmm3bGjp8379yXXdumuZHmqY5tyVaAxJ7nreC+BHX7RAPWZZ98naH4HxEX0w18hjpjtZ9lAaHYgJ33zZN88al5MjglLiu62me5ztuSQYGl4oJeYhhGI4sy9pAPOka4JyYkBMIIW4PxBXSi05MSAO8ni+IFlzSqY8Q6yAIrrmlZHAGMHnum4Abx3G2OpOBAcTNpSbKLxGjiziO35GfuEV8l2V5XxTFL9cdgwn+ODWJbduvvJYoDQiFyU9VVUte/0OPoAsgkiSZRVHkq/bP/s56DGMPwgC+rxUbnusAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACKklEQVR42mNkoBAwElKQkpYepKCskvvh3bt/D+/f9Vm9atV3og2IjU8o9QuN6Pr37+/b00eP2PV0tl+LT0iUYWJm0ps/d+42vAYEh4QI6hoaPwuKiObYu33LrMKcrHSQeFpGRqultW1QYmy0Jl4D/P39nYG277G0sWO4ePb0ywtnTkk/vH9PWF1T87KLm4fYts2beNvbWr/gM8Dc1snlhG9QCMPvnz8YNqxaeZadg03fysqG5du3r18P7N/H39rc/BenASF+forcAgJ3alq7mNjZWBhYWVgY2FiYGZiZmBiWLFo4NSc7KwenFyJ9faQ4mBgOFHH9VxV29mP44+HHwMbFyfDh7RuGg/v3rX/79l10VWXFd6wGxPt4i/EwMRwsYvqpIfjpG8PfD98ZZohLbninojyNhZPrUXdX502c0Zjj5SkM0pzz84s258dvDP+Bmjfy83+4xMetOXHvnhd4E1K1m6uQACPD3tjPHw1YPnxj+Pf1F8N1Tg6GhXKSWfN27ZyOK6zABuS7uTFp/v51PPjtezOGzz8Y/vz5y/ARGGhdqvInvzMxWS3fsf0fXgOS3dzN8h4/P8nn5c3AqKjA8L+7l2GWgvSfe1wcpiu3b7+AL7WCDYj28LSIffziuAYjE8NfTk6G/f9+M2yVEOlfv3VrEQMBADYg3NOLkfXfv/lqX77FfWFhZrzJy32J4f9/641bt34hygB46vPxEf3PwMC2acuWp4Q0wgAAPGTREb6YZpkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVQ4EcVSwU6DQBRkF0tiOasJCR/ggcTAwlGj5/6E0W+qd68erce28QiBP/BGAokfoAcCOLOJTcGtpunBSdjHm50ZXl4Qfd9bh0AeYqb3/wOOOEaSJDHKZdd1D3mef5AzIQzDE8dx7pumeSqK4o0aAbNCfRVCTLHQddu2M1NIEARnruuuoT3H846PqSzLSgnTFc0gLdRr27YXSindkyNGZlKnUsqQL7Ku6zlCVmyIcYjBbEH/mKbps9ajsXzfP/Y8bwHzjU7BAZ7j3oF7QeXYGjRj9FvUjoRgALEjpEHARAtwjM3kNwFsTCHkCZOZ/OBHKsvys6qqGcSbnfxm/hFAYitk+ZeZ9xzN+ERRNInj+GLX/Tc/2IFO3PMY7GBPr5Z/Aa+LzZWQq5hfAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACxElEQVR42nVTW0hUURRd994Z77x0fOBYJOKjNImoZiLxQz/SfoR+CoIUJNEUEgOliEKoj4iCJMqSCsM+yl4EFWSUBKEfUZhmIYw4OjM65WtsZmzed+69nXscJpFxw4Z12Huvs88+azNIbmriZuL58bOD+ChxYWMis+Fs4Hic331Y01JRI2eVlIpQMTImrRyGBpiV8deR+7EIrpA8fzKC7Zn7tG/rb+qKS4sFCBKLoMAiKjGQZIYS/XYyeNrhn3KPhmtIvm09QYbRov/W0a8tMKUJiJEihhSwJCrLQCjG4U9YDV9UBTEq41mzz+4ZCVhInYcSMDruTutg1qldhRFERBabmYeQOFa18C7JeHPkV48cFFsVgtTiWuNCexd0q1GOtq5YHl+Oo6Y+il8uNWA28plipROnT4uvXZ7g3AtPjkJQXduXPmiuYrEcUv8fiK4STbnPKe51HYMtOJSI2Tx6zAxHMXbWVaUQ1HV8MD7SFmhIi6pE0k5DBdryn1Dc7TgOq384EVsJpWD6JzDSaK9TCGrb3xsfi7l6eEl7HKtGU941bNUUoUC3hxbYg+OYD0+jd/YcREnAKhnmDCH40TxNCQ7WP0z7qDenYSHA04K96ZXoLOklv7A2D0mWcHmyCd+9a89QCJzDYdg6nfQJhrIG7WL5mQzdhNsAOf6zDfntqM1robh/9h76HDcST/BGVLD3LAZWXrnpEMGnMrdPDJhaF1UGzPvXuuAYFbrNDyhuG22EKMcoFomo/i7LmDpp7ZaC0umEkHLL+ZFDt7ILXSEdIdFQAWVrTDS4HF6ikuOIuIiU4bhotwXH/ftJyLdeykU5Fv7dgUumHVImD3eQp1JWZMzEi0MLAuauz1lDEwFFyvaky8TyzIVt1aktGWWGTPWWFLILLAIuAZ4vfrf3k/euLMhXSV5gs21cv86W+DrL8dvGkq3zP+vvHW/JM9z7AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjlJREFUeNqMU01oE0EYfTszuzu7aUyLIv7UogZB8AfRSHOQHotVQVRQevDoIfSgIr14sNoqFKqIBxUNEWsvBk9ClUath1482Ige7EVBpAgtVbZSMZr9GWfWTVpqEnzst+zsfN/bN9/7Vuvse+qUPb/ZDwQgr4bQAEo0GIx+K1zsWnVwoABWdv3mfN8huB7+CzoDTlwaXVlZM1+IsDg78QlE0yCvmpBpCOTtVMcmqJoqgZKt1k0GAw0JtDoEIiwUUb5CEBJE4AYNz1dHQNge1Sd10lLE8ENmM7WllpxRkAYECr5G4BHgUTyGz0Mvxb3fC/JNdD5LKrB0Al4r5B7nBmK2jeHB86Dbk5hpiuMnIYJU5Jk6hclqhK7DMCzoPIGp/BAymTN48CEPZ9qB+3UWREQMvEExs2xszrah9+QOZIcfIp1qxzh5hr23M6mqgn/kS1dMk0OPGVhzK4ndR5NY8fYcurc6GC8UcPXKtVTH5RfFag+4nJDFr0eybYbE9STaj20EvswB8/N4/WQEE2aXsrVoBz7CvivrbVM2MQwGyzJhxDSYg21IH1kPTM8AzizuvlqNfXc+gvq/QleI1M6U97LBaIH+d0iUXVJX61gaVm+PLCwBUzdwf3IdOnPvwWUCFYtzz3SmLXT3j8bVkKhpE9LZsmbhrN2KFq+E/TsTGHmzATfX5pC78BxMuNBJ8H3J/4VdMujyoRnoOTxJ3DKObzOw5fTj1LJt70D/2LsKQT3sWfJcrJf0R4ABABhWvcRclgmOAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAnFJREFUeNqcU+tLk2EU/7237XV2oS8mXijoRpN26XUj6EIsnEQQ+qVPQVCwj5OI5tRYjcrKoC/9FX2p1MxLoAWhIBNKm8siMXdRkIoNCnVzp+d51rxUIHXgxzm/87znvOf8eB4lFArB6XTSyMhIOJVK0djY2KY+nU6T1+t95fF4ZhAMBkH/YQC2hsNhqPl8nhP09A5AVRVsZrncCs6c9iIQCGQYleSOjo5aflBSojOUwGKxbADPlVp0bN/Cztg3uq6LRsU6mXWK8EAzaTAxaJq6DgpMDMdcTlx8+g3H3Q6YTYUpi3WrE2iqylbYCE1RcMQ4BOf1QfjqrXCEhnDUsK2bgNYmUDVtY7Eqw7DXoKZ1EGVVFRiey2F3zQFYrw2JBqHglYhGWREbXNU34xM0EZ0UiEbfEeUXyRropsSnGNFyhuzNXURLGcYn6XDbcy684bnzEuqqBqoGhY0sS8C+vbvgbO1HRXU5LGYzoKiQZZmNqTKuo6xyJ07d6o8olJUkl8vVMDo6+uTDx2nWQIZJkVD38C3O19vR/zqK71n+Mwm6JmMxmwffu9QkoeGkDX3DMaGmuBjTM59pZjZOs/E4YytkC3TSpZ4F+vElxfgyOVqeCc+5r+8rnbj5QqyxqsFsPEHxRFIglUyyTI72X35MS+kFEdubu5nPCm5r6RXF7Tfa1jSorqr849ZNPWjEwatd2MM02aYrOPcogYnIOGL3z6KNmiNZSSvcREmSan0+H7j3+/1wu92NTU1+wbsuVCE9P48d5WWYi71HJ+M83373Xi3XhmuAwtsQq+DXXubfuFF3e6C4s8jzOv6Y/sWMvyV/CjAAPmp4bYjgK+AAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHySURBVDjLtZPvT1JxFMb5O/gHskVzrrV+mFZomDdEDGkYKSXlRleY6IzcFdQ7lBgYeaELBNjFEpbWi9psRU7JnCa3VYTV/WfY01davkFk0/XivDp7Ps/Zc86RAZAdpmT/BWDLmun+5ZuS5X0P+paMML82SKZXeroqYGDttty22it6Po8iWeCxIAlI/5pF9Osj3M8MwPCsXex8ekVeEWAlYn+OxaKUxNx2FKmfcTzfjiH2ncNsnsfIOzu00RZxT4B1pZee3GTw4vdfVyEfxkTWAdfyMMJfHiL2LYgImcSyeAstgQt0GeBuxiQl8iEIP/iSW/eCrtiV0rLXkm3s1ThVnN6cQkj0w511osl7TioD9L29QcaNY64QhWvlHrrmtey/niasclCcEqrp81B669HoPo0yAEmaBBcpuTOZQegF9S6gdUaJqms0vdRL3JYXQdEHLueD9snlovpxc2qnd8nfiIues9gXYEx30INLFvAksB1IIPcAd9LdaPY1oEcw4HqiE2ecJ7DvHegSlGh/Y0FgywP3uhPeDRae9TG4P7nArjHQ8W2oG1KgIkATUcmpYJNonjeC+TCMyZJwFOMfR+BadaCdo3DcdhRVT5kkTZOkC/VjJ3GKqUNHSA3NTCsR1+BAz1RrPwaFtQYH/kZF/5GKa/wDDtK86rC6fMkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkFJREFUeNqMU01rE1EUPTPzJjOZSWpMO0WEmoAL/4JICyIiolIkRLCEgrgsutKFiojU0gguhW66E6uiVquWUotELOLGD3TpwtK6sdRFS6W1+ZgZz5tkpm3Q4A2Xl/fmnvvOu+de5djgNKS5njdeqbo51/PxP6apCmK69kTIjYRI8NjVE1wBRWkN9gmI6UBhaDInwkN5c7UGPHj/ndnVIIkMVHmT2sjo8aDmeqjVPBT2ZwKMup0WcHfqI3baJsamPiCdMPHw5Sc8LX3BBH381Wek+S1hxiKM6jGL7/sNFsDFvh4YmoILp3sQ11Vc7j8IbtGZzUCQWdIUSBgaGhCoezIdqCchRSYwhQaDwLgukLIM3Lr3BqmuLvxcWIDLIIuPtw19k4HLazNMYjIzsUhbMaTjBhzSv3HnNZxsFovf5lE8exhr5SriQoWla/AaCQQLsbRecZ0d7W04NzoLqaIsmWShkPKPuXmMDBxFhYUbPX8cy2u/kTREXTqZYKPqOvcHDvxVrvzttxgudGNpZR1JMsvfnMDjSyel5FENRNg4z78uBs0RStq7bxfKDJTWRrCgRNPX8zzzAoZhu0Uy7uabt3rYMFIh+ZOoI9ceBevWXo0aqcOObWuYTVMQomYGT0UMlGYGjm2gnVSly/9BY7EBKAgbh9pbKnLFZ8Fqc28a9XkQ4bttStNsFqvdP/wiGp5O6n+mOBnUKMBVfpUENlZLfSPvDjVPoQxQyqszs8XeKy3makVev5ee+kfAMn2u1WT+EWAArZDPc+ctniEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAXklEQVR42mNkYGDIAmJ7Bgg4CMTTGPADFPWMQGIlEIdDBY4CcT8BAwqB2BrKXonNgAkEDChANwDkpGiowFIivQBXzwhlhAAxiL2agTgAVz9qwLAxgOKENDjyAtnZGQAMNCxdCV45FQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVDjLrZM/SAJxGIZdWwuDlnCplkAEm1zkaIiGFFpyMIwGK5KGoK2lphDKkMDg3LLUSIJsSKhIi+684CokOtTiMizCGuzEU5K3vOEgKvtBDe/2Pc8H3x8NAM1fQlx4H9M3pcOWp6TXWmM8A7j0629v1nraiAVC0IrrwATKIgs5xyG5QiE+Z4iQdoeU2oAsnqCSO1NSTu+D9VhqRLD8nIB8F0Q2MgmJDyipCzjvYJkIfpN2UBLG8MpP4dxvQ3ZzGuyyBQ2H+AnOOCBd9aL6soh81A5hyYSGWyCFvxUcerqI4S+CvYVOFPMHxLAq8I3qdHVY5LbBhJzEsCrwutpRFBlUHy6wO2tEYtWAzLELPN2P03kjfj3luqDycV2F8AgefWbEnVqEHa2IznSD6BdsVDNStB0lfh0FPoQjdx8RrAqGzC0YprSgxzsUMOY2bf37N/6Ud1Vc9yYcH50CAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkpJREFUeNp0kk+IElEcx39vFBc9+OfQRTAwzFt4CaYOKStj6MoeculStzoIQSB4kCVckmDx4iGCXWYJIqjoVOzO1l4qT1F7WfBWHvxzDPyTB3XUmXn93suRybUffHmP997n9/cRsFgwGARJkiAcDsPlwgEIeEZQAhCRAkgAlOD6SQP4rgMFDWVnYCAQgFgsBqFQCBwOByzZNQOotPHx1RNCCCipu6bfb+zSnslkeOQVILPrBkAirbws9btdTEWAzZPXpfepOzaeGMBXwe/3w3+MwTc3Dl+UeghTiskbBvR6Pbh18mZHB0jjmxvCKhIfR37s3r+Sevf8ca/T4TBF2HTSODuDxP7uNjrZFFbBk8lEzOVyspa4ykGYw2zfbTb/7ilvok1YhlVVFfP5vDydTkHXdXDdlhZOOnPY4/HA0YPtp3h6LFjh8XgsFgoFGTPgsKm1zDr8ajTQh8Fh5eGjZzjGI8yjKlgjF4tFGdd/YKYmRja24hw+zu3sYe2HiH3hYzQjl8tleTQanWtou93G6Qngdrth6+1+9h6hTULJZ/PeziJXKhV5OByeg1ut1gJOp9NZTdNOcQ419ot+ggp1qoLdBFmqVmNpm3A8Huewy+Wq1RH8QH9zmBlJJpMRdCIqiiIPBgN+2MCGsW/r8/kgGo1m0fmpzWarseayHlmNeL1eFiWC0cRqtSr3+/3FpSiKHMZtjU1glbFyfKgLTqfzEka9OJvNeDnzz1JnCaFmqOl8ZdJY1SiDOXCiXKg1NtG5DIt0y6ov3dE/AgwAENFWYYLj4mYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkJERjg1RjRBOTUxMUU1OEYwRjlGMzBBMUNBQkM1MiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkJERjg1RTRBOTUxMUU1OEYwRjlGMzBBMUNBQkM1MiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp+hVgIAAADoSURBVHjaYvz//z8DLQETA40BzS1gwSLGCsSiZJj1HYjfE7JgKhCnAfFrMizgBOIjQBwOxN/goqBIhmIdIL4CxIxIYqTiHiBuRhZDjgMJIH4BspOCIH8KxDzDKxUNqAVK0Pgox8FPg/JdSM0HMHAPiBnx8GdB8QiOA3IAMxD/xRUHB4F4OxBHAvEXLJo3I7F9cVjgBMRTkAUY0eoDMSCeiJ4boeAjEBcD8RMg3oHDggtAXIvPAlxgFRDfhCZNXSB+RWyYEWMBBxB/AOL7QGwDxG+pHck/gHgTEGuSajgpQTRa2NEOAAQYAA+ZfQED6XxLAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbpJREFUeNqck08og3EYx593tjZWa8m0f4ftJLMl1Dhwo5WEwwonF2e54OwkB+Uu5YSLi5xIYclYspi4LW0kVshesr++z+t917uVtTz16Xme7fd8f/s9zzOha37fT0TMuUzJ0okrSh6vk5i8Vn9MjaPLJOhNlNqaIm2xWOy+WBqYhJBQKaC3tpI7uEg4I+WfDzFJNK86wwKRzrk9Lo6oi/P5PBUKhbKbGxxeqre3USaTIVEUfwVAGCIu+DvlIBdWFqtNp9OR2WyWYg0fhMAbsHPMNzO1mobfB26BFxir3VxN4B6FT/ABfOYEdaAXzMr+T9OqbjwBPrnACDFLbGUo6J3ZZbEWIMp94pmW3qhVNx5EURjlBL7PM72jYWFBEE6R2xD3ADPiw5LAy9kmGZ0+aUQVFsLBEIqVPIH8FYwgdsPHJYHn8Ib0LYswytI0+cdLSrxABpuHR5tGGgPtIF72BF5X9cryL1MbL5BjeIHDJK++0jtNreP6eryRRLPZbEcul3NhV/oVAUEemw4Y+DXAxM3i/w2/BjQD6/vltg0Cg/HVsQD7yinUZN8fqSPLxJoBzT3gXFCa9l/7EWAAzPnjDbCjlJUAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA6hJREFUeNrsmltIFFEYx0eTIh9EKFIjsMgIqbDIbANbK6Oo6EFSKkh6qIiiqxHYQxEIkUpEb2URRj1GBmtUD6aRpt2s7EK3h26UZJmlpXnb/sf9Rg6H2bntmd1Z2A9+7OzMnHP2f77vO5eZjfP7/YqDNgbsAR7wENyhz0HZDcU5KGQ32A+mCee/glYS1QKegi43CtlIAhaYvP8XaCJhzXaFyRSymQRkhVhPNxeG9aANdIZDyAZwFMx0KET/gCfkNRaK98AXmUIKQAnIVcJrAySmhWAC2+0IKSIBHsUd1gf2WhGyBFRYSOJw2u8EEzetYorBSsW9NqwnpBDsAnmKu+0T2Kmw0BLIB7f87rdecASMG0kPTgA74fNHh50FU3gH8EJqo0DAA5CrEUVKPMWZF6xxcR58BttpxGzUm9nvu3RYZXNEOdFrtESZgc833Dm2YDsF5hNpERLhGxmNAt4wNDb8bhLOVdPaSd1PZJG3csAikOmwgEfUfq2lUvBIvZBQOVrJxJEBCkElle2UlMgfwTaDtoPCQusd9EwnXT1gAui30BdJ5K1s+pwHplr0QiU4DP7Z9iOEdHG90mq3RwRmUe9Wg8dgOIgXroOFMtpkHmHr/UTS1QCWBtGcT9vUlzb6K53yLJvq76cFqC+EXEqmHP6heqSH66FmDbXx4CZ3zwtwCewDeSBJkhetcJAiif32FerM/k1IOLHQSYMk/QmugTJQAMY7KGAOaBLa71CFtAoX0riCY1noWRx92kGyZAGJ4ESQ9jrUJcozIfa83PFELn/MWgrFriwrBq9pV6poPFoqUnNkq6DwCtcTKTojjpYNAK8kL6SDOp22jpOnRle/KcINQ2AdhQcb1f5aEHJGkogSnXaZuEyxjHqgpZyNCrctCglVwFrQFqTubnAgWFn1YLGkZUYoYXRZp97zIFWvDv7L1QgJ2aLj9SazOSeeKAZV4LkEIZMNGveABp26yqx0iN7F2aAiBCF9oBEco4lSFcYGkdM6ddRoJbOZtZbhutLKQ3GdcoP0tJ1t5FI1yrLNXSmoceq1giwhelZOImxbfIT35HfpAWBpqBUlOPgjM2np7qEt8lzOY+x9xyFQFc5Xb3ZDS2tPsgxMAudG9xFRKMRRi3SOxITEhMSExIQ4L+QVqIt2IRdpxl6uBN51u8bMTojs3cQOcEG49hZkuGFCNCPkBlivBP78omXf6cG364WwZ1RDBmuo99GwRBkyuP4BrFYCf0+KmP0XYAB9NOZCoZ5pcgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEUzZpn////8/PzJycn5+fn7+/v19fXNzc3f399mjLPj4+NYfqXx8fF+l7Hq6urv7++as83CwsIFHoQzAAAAcklEQVQYlWWP2w6FMAgEF+jFVm31/3/2LB5iNM5Du50SCBDp1YJFRSBSU9aLdNJQWC5km0MHjQtNpGxDSzmXlyB2CfbIbkYP4biZk+JoeNB2NAhYhrhWeJI4/wnx+xL3k7lFi6hav1N8Ob1JFc/1zWr/AQsIA0E5Juj6AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAGZQTFRF////7e3t0NDQzc3N7e3tAAAA7+/vtLS0y8vL0tLStLS07+/vycnJ0tLSysrKzMzM6enpysrKx8fH4+Pjx8fHxMTEwsLC3t7exMTEyMjIurq6yMjI5eXlra2tubm5wMDA4eHh8fHxqnfr2QAAACJ0Uk5T/////8wA//////WZ//X////1///1////9f//9fX1///1Zom9/koAAABfSURBVHictc/bEkAgFEDRXA4iUu6p5P9/0jGaY3yA9bjfNmNJmkVpDgCsKCseVXWDgYuEiBZDJ3siFQatB6JHDNO8kHn9K2zmDWbHYJ0/Iu8sBghqilS45wBOAk/4ugDCbBCEgKBs1wAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAF1QTFRFAAAA////////////////////BgYG/////////////////////////////////////////////////////////////////v/+////////////////////////////8bdidgAAAB90Uk5TAFyZCURX/wMHIhJVMRsrGR0hC2oNAjn/BDVUVgUVJglyarUAAABqSURBVHicbY+JCoAwDEO7qdF53/P+/8+0cwj1CBTKK0ko0UdKCykG2tEg9Fd9gwgSxImBBCkyIC/AKi9Q8VZTUhvTtN7SoqP+EToMo8iwPJMMtQFmYBEW7sS6iRbanUG20FHcj+m/5146AcadA8DmrksXAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYVJREFUeNpiNC7fbcbAwADCp6AYDj58+ADG/39+Yni3oZgBHfz//5+BCUiYn+lwSQDRIAFkzM/Pz8DBwcGAD7AAFZ42KtvFCGT/BWJxIP/lv3//wAaAaJAhvLy8DIym4QxvT6/EMIDRsHQnjC0B1OQGpHcBNb6AGQCjYWyQITAXvj+7moEFybAXIM1ACXcgvRPKxwCCxqFwQ0GACU0eZDNIsycQSzIQAZiwiIEM2QHERBnChEP8OdCA7UDam5AhjDAGj6weg4RVDAOXtA4DUgBKAbEPEG8B8p+hB+z92eEIA5ANErOIYuCU0oYpBBniB8SbgPgZQQNggFtGl0HUPJKBQ1ILpFgaKOQP1LgRyH5KlAEwAPKSMDARAQ2SBmoMBOL1QPyUaANgAOQlYBqQYRPXSAFyWYGG7H8wJ2IPEzQgmUGCQAxK+NxAzAfEAkAsBMQiQCz2/dlViWebG/7++vWLD2iz++/fv73AeYGBRPDz85uDopFzORgZGfeCoxEUIJQAgAADAL0DBSrRRntNAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAQVQTFRFAAAAvcPHvcPHvcPHvcPHvcPHvcPHtr7Brri6rri7uL/CvcPHvcPHvcHHvcPHq7a5m6mrl6eol6eom6qrr7i7vcPHvMPHvcPHtb3Al6eol6aonautnKqsl6eomKeouL/CvcPHtL3AoK6vlqanl6anpLGzs7y/8cMPl6aklaWmoKmV8cQPnKidmaej8cQPqKl/kaGh1Lo78cQPx7VPkqGhtK1t8cQP8cQP3bgnxq1A7cAU8cIP678XxKxC4rsh8cQP8rIQ86gR8rUQ850S8JQX7pEY8JUW854S85wS75IY7Y4a75QX7pAZ7Isc7pIY7I0a6ocd7pEZ8JYW75MX8ZcV85wS85wS/hvregAAAFd0Uk5TAC1XVSYTmuP499+NDAOx/vCytvX+nAJU/ec/DQ5L7/w4pP98pP94Ab//UQ10npL1/+PZ6P/vevv/////////+f///////////////////////////+LUSzK93QAAAJRJREFUeJxFyFUWwkAQRNHB3d2dENzdCTBAsCD7XwpDTxPuT516hACNVqcnfwajyWyx2uy/73C63B6vzx8IYgiFI9FYPJFMpTFksrnv5AtF/oWSWK4wVbEmQKg3mq020+n2+hAGw9F4wkxn8wWE5Uq1hrCRtmi3h0APR3SiPMhndMFwvSEZg3RHCgblgZ48vKjqTcgHCzAl6RIcwS8AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeZJREFUeNqck81LVFEYxp9zzh1lmhkSCT8WQYwmjuJoMgq1aSdIJEILpf6EVrYqFMabtWijUW7dqiuFYAIXfQiJ0nUEMeZjEVnjgBWkRoLO3Llv7713BnJho3MvZ/Ee3vu7z/Oc94CIsDF9jeIvw4RKHhtgf3ycjdH68zaqGPBxsoUOtxfIOC/EAbwIU2F3kfaXbtCfLwyZOjtEuBl0kZnPobYugEuNAXiu3Efy1Sh6RpKiHEAWZSAyPIG6yw0Qygfz2wxCAxMwpkJ0NgD/Z31uDFLzIhX/DFXlh5WdRei2XhZSVABE7uqQHi+UUkgaCajqAOjHIlpvjTOklcoqiM9F8TPzHUIK7O4VZhOrG1AeP8Sv1wzRT4XIYgSIDEXREGx2igE98dAkufNpZY0hAcj9N6cqcQCCFRjz41xVsxunJ3N9ZLP/2BTpreV3bM0P+fsDQ6IwJk9ChDtIndR95xFye1vYXFrgk1DsSjjhWJYFK59HuG+QSwumL4J0TEfvg7T4Zw46ycwdoT7YhsarXScHzX65hwoFGweOCKa3A6nYY56TlNBKjb33nsA82OZmC64LKuXrgpS7Z9vV6CvaB58irunkKHj7LPz+4gXchEWlDP4/vvaSkpfmWhBCNPFeTSW3+a8AAwD6deEyEUwhFgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrSURBVDjLpZO/SmNREMZ/uVxFCGy7L+AjpAgoIUW4hZjCCDZCbCQgVlY+gaDNLghibbmy2EgQTCOp8gaWYmFrpbE4Z+azuPe6UVE2ZGBgzoHz/Zk5U5HELFFZ2/uzu9ysHT2OVZUAd+SOuSEXLkdmuITMMHd+zIfn29uH/YtfGydpbal2PLdQTX4uTEVcfR7bMXCSjoOS8ePT1NJfghKAVCYONhenBtg+vCcHkAOwcwOnTRiNRkjCzHD3TwmQZRnmlgNQTOG0mSPX6/V3TJNTmqw9FgAl0tY1nGUwHA4xM2KMbyom1Uii0+ng5oUFz1HPshy50Wh8yTp59tJCWaxfwt9VMRgMiDG+y48Kut3uWz/SGAKQP5ZEq9X6lrmMGGJhofCyclGhvyb6/T4hBEIIxBgJIXyaQq/XQ6WC8vJqHSCh3W7/1z/wQlH6cHd/vvM7bLgZbv86biWzhNyQFXvhTsF5DlCZdRsTZoxXOgYqlSAcLRcAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGZQTFRFAAAAvMvaiabA/////f38/f37+Pj1+Pj3+Pj28/Pu6ebg9/fzAAAA5OHZ9PTx8/Pv8PDr7+7q7u3o6OXf4d3U6Obf4t7X3trR3dnQ3djP2dTK19HF2dTJz8i6y8O1y8O0ysKzzMS262IJEgAAACJ0Uk5TAP///////////////////////////////////////////y79k78AAABNSURBVHicY2AgCzAyQQAjTICJGQKY4AIsIMDKhhBgZ+fg4ODkQghw84AAL0KAj19AUEhYBCEgKiYuISkljRCQkZWTl1dQhAtguINSAABvBQLzEQmhagAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAAAgCAYAAAA8C7thAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI0QjlGOERFQ0Y2QjExRTU5N0Q2QzIyRkY5MjZFQjVDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI0QjlGOERGQ0Y2QjExRTU5N0Q2QzIyRkY5MjZFQjVDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjRCOUY4RENDRjZCMTFFNTk3RDZDMjJGRjkyNkVCNUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjRCOUY4RERDRjZCMTFFNTk3RDZDMjJGRjkyNkVCNUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz52RirpAAAF5ElEQVR42uyb709bVRjH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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADAUlEQVR42mNkoBAwogucjQrwYecXYNeZvmAtTKzVSJs1yMU56+Od26ct1m0/htOAM2E+oRrN3XOZODlfP545eYp6a29/qY4aY0ZszDzJ8FifP58//bjRVh9utnzDMQwDzkX6RyuVVE99On8W06/Xr14o1zTzPF++aBIzNze/mG9gzq2ako98+sbPxQNCpW+11ceZrt22B27AYjszraD5S/c8nNzz//PF82JAoR9sYuIPNPtncPz58kn4Zmnevz+fPn4Hin8VdvVkF3H1ZFmWm2madeL8C7ABE830RSMbW7YBFfE/njGJDSgkDcR/WEVE3/378UP875fP/0GGMjAxvVCpbWX98ezJxTndXWH156/+hHthhY2JpF1O/hIGRkZ5qCEgIATEXED8i4GZ+blyZcP/ny9fXNw0Y1pU5qGT3zECcYurjaTjjPk3Xm1e9/TVxrXCQCERqJo3spn57zkVlLj311UoB+04+BMjEGt11ZhiAvy7JcNjEm5VFf/5+/mTIFCYBYhBNj0Ehsl31eZu/qcLZ08Exs5kFANKtFRY0sJCp4kHhATdrin9+PfrF16o85mA+DMQs4PChE1U/L5qS7fosyXz5qo1dVXDDVhmZ2YdunXvmmvZSbd/PH4I0igG9DMf0M9ff797++DRtAkgr8iADOEzNnsgl1XAvyQ61DL9+Pn7YANy1BSZ8qMjp4sFhHjcri558Pf7NzXl6ibWPx8+XAamA85fb9+IPpk9lR3oAkHVps6fj6ZPmK01cVY5ShiUaiozpYaFdEuGRYf+evWK68fTxxc2TJviw8Xwj8ejqHwbCw+PCKeSigRQc4NW/4wurEl5h70pi6K1bTe7pLTG6x2bk/c+fPKBlZHxv52MpLRkVHznx9MnrmpPml2Hkhd22Rhp8bOygEyUAmJeaLyDAg2UeJih6n4BMSsQ/wPi90D8CYjv3fr8NRfsgjoNRREeFhZQtLHxsDCzMDMycnMxM4EM+gvEHDCXAnV/+Prn7+8ff/+9f/vr95vWm/c/AAAlsDA5qp9z9AAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGBQTFRFAAAAvMvaiabA/////f38AAAA/f37+Pj1+Pj3+Pj28/Pu6ebg9/fz5OHZ9PTx8/Pv8PDr7u3o6OXf4d3U6Obf4t7X3trR3djP2dTK19HF2dTJz8i6y8O1y8O0ysKzzMS22mNM9QAAACB0Uk5TAP////////////////////////////////////////+Smq12AAAAT0lEQVR4nGNgIAswMkEAI0yAiRkCmOACLCwsrCxs7AgBDg5OVk4uboQADysI8CIE+PgFWAWFhBECIqJirOISkggBKWkZWVk5ebgAhjsoBQBHBAKeDC9eUQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM4MEY4MzRDQUQwMTExRTJBM0U5QzEwMjEzQTg5RjA2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM4MEY4MzREQUQwMTExRTJBM0U5QzEwMjEzQTg5RjA2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzgwRjgzNEFBRDAxMTFFMkEzRTlDMTAyMTNBODlGMDYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzgwRjgzNEJBRDAxMTFFMkEzRTlDMTAyMTNBODlGMDYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4hFyZFAAAA9klEQVR42mL8//8/AyWAiYFCMPAGsKALeLUfDjFRFrJlZmRkBIbPPyDF9BfIOHP33eFtlbZrCBpgpCho2xSm7frt17+vDAz/GZiAJnCwMvHUrLjCCJQmbADQUqZP3/68e/Hxx7tfv//9+vH7708JAQ6hv3///iPKC7///GV49/XX53svvzz59uvvj7///v398efvj8/ff/8gyoBfv/78A9r+/sO3X7+YmRhZgP4H+YKV4f8/NqIMADqZRZCbXZhJnJEZyAX5+z8/N5vAn7//PhNlwIlrTy62//jBA7QdFPhg6//8+//jwr03F7EZwDialCk3ACDAAN3Ee4gixN2ZAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAiVJREFUeNpi/P//PwMlgEW/eDsDKysrspgZFJ8CGn4KmyZGRka4GhaQwJ8/fxiYmJhAEiCu+dlO13jj8t0gjio2A4AGC8HUMOoVbQMLQg3QAjIdgJg1y0PV1M9YSg1dMzsrE69jw/7JIDVAfJIFSU4baLLx/kannB+//n76/ff/t++//n5A1szPzSrjUL+vHcg8C8RXQS4GGWAFxJb//v37vb/ROe3t518PkTUxMzKysLEycXOwMvHZ1+7pAmkGuvYqPBCBGq0v93uH6xZuXfn5x5/3v/78+4vk13+7Lj5/O3fPnYugoALiM8iawV4HKjquU7BlTYqLisHn738+AA34/fXnn2+P3nx7+u7Lr09zdt++ArIAqI4diK/8/fuX4ffv3wy/fv1i+PnzJwMLUPAIEGu5G0pJfPr++/3XH3++vvn068Pff///fvvJ9DvEUl5VK2/TOqBlIJfpAV18CYgZQBiUhlhAJoJc8hvo9Leffn368O33F2jiYgYG4l9deaFfdtriupICHGKBHfs+g5IBEF+EewFkANA05i8//vx4//XX93///zODwgaGf/75++/5hx/vzj34cGNdhVMEUK0NUNwAnqiU0lY5geI+0l5F2VlfhoNQ0hXnZxf1bd65G5oODrAAA8LryYIYB5mEJQcW7Lr6gsgsIAHVw8UoFjXPC+hnr/8/Pu5+s77oNDG6RQL7TBk5+F2BCWkbI6W5kYmBQgAQYADMsBoKnOs3nQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWRJREFUeNpiNC7fbcbAwADCp/7//3+KAQkA+Qz4wLkuNwYmoCLzMx0uCSAaKGYJxBpALA7EzAxEABagxtNGZbsYgexLQPwRiMWAWAuIOYD4CxC/AeJ3UHEDkEuB+ATcACjnBBbDWYGGgzQJQF1keL7bPcawdCcTugG4wG8gfgrFoPD4ZVCyA6T5IooXGIgEQAOOg1wFxO+RA5eFCI0M//79g8XIW6h3iDMApOnPnz/IQu+BWBfFBcCAwaqZR1aPQdg0nIFLWgdZ+BVICojZgPgXSIAJl+1fHl9ieLiuGkyDvADFf4D4CxBLgPh4DYCBxxtqGb49vQL2DhS/BmJhog2AGfJkYx3MFW9ALvj79y/xBoAAyBWvTy5n+P37tywwYG2ABrjADGCEpntWaPLlBmI+aAoUAmIRaDKW+Hh+rSTQAKf7s8PdgbQXSQkJBn5+fnNQNHIuByMj414Qn5FQliUEAAIMALQJtgYxwUaBAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaNJREFUeNqkk79Lw0AUx/MuAXURUfxRKrio6KqtHR2KRcUfOLkIuro6qP+Ci6PgJtRdxEGsdnCrDQ4uOjgJOtaapjFNcj981zQhVodAQy7vkXuf73t37w6EEEonj5Y6vJtDK0cZxcpxIAAIGQ2hzOPRwvbswS3gj4k4Asj0B4wU0Gf2C2Q3N55aTyen4whc6h8vyOTR1aVACZ3JtXRyyvaYEUdAxp7cvBbRLWmtTSRcCM64YHEEZCxypLmJnPPmvlAmuBzRQI9xt96gpu0wy6EMXz/BcF93AjmIChCZHYFmgEeFV7WcT9OmdSywJSqUoOEu5fLxKwiWQLngHmawGtSqmE4VBTmAQnCaoFWixwV9tX0JhDLOv+quadieiakIUuD3POi9b1ofElYQCGBmx/h2bUykQnvfgwMU+kILBRhj8mQRh3IPQzT4h4M/PqhSQC5fKmVxInH18FZbzYwNRWCI2F8FYayBiRPoZzXXdZffz7bmR3fO7/PF56eYd2gEmUVkemBw83RFgLoknFqhcrGnx6EHNo7T0NWbA8GuodPr/CPAAC/XCt7sE49xAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAclBMVEVGh8jA2/P///+1z+l6qtqqyuexzemArttNgMxEiMTa5/SbweOlyOiy0OyFsdvp8fjL3e/N5PeixeW92PGdwOKoy+qryeelx+i50urH2+77/P7t8/qjw+P0+PzY5vOvzOizzujc6PStyujk7vfk7fe0zuiKGvf4AAAACnRSTlMz////qv//pAoefyGybgAAAHZJREFUGNNtzUkOgzAMQFGnxG4moIQhLUOh0/2vWDBVRaS8hRdfsg1ang+kBhDBsbp2LghYA50Y4jA993DJViXibZw5NIZ5b0zD4aeqtrmFgpi1REV847p08Zf+RRwssjxHtOnwX7m/u/jo40PJt604aAEURNQX9fwGp1Q4eX4AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAQUlEQVQ4jWNgGCygHopJBixQjQ1QPiMDA8N+BgYGByL1H2DBIsgIxcQAuLoGJFeQBGAu+E+OZpgBo2Ew5MNg4AEA/VcOY8E55FkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0M0Y0NjIxREE0MzExRTU4NzkxOURGMkJERjhCQzEwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ0M0Y0NjIyREE0MzExRTU4NzkxOURGMkJERjhCQzEwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDQzRjQ2MUZEQTQzMTFFNTg3OTE5REYyQkRGOEJDMTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDQzRjQ2MjBEQTQzMTFFNTg3OTE5REYyQkRGOEJDMTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4YX7sXAAABP0lEQVR42pRSMY6CQBSVdQOBGAKhsJKKUJJoR6wobLmDnoKekuAZKL2DB7AksQJiYmEoSAzQYHCRZV8yZllc3Ky/ePOZeW/m//+gmqYZvBJvgxfjnSzX69X3/TRN67p+YAyHQ1EUZ7MZwzD4pEhJu92OoihVVXtvjaIINF3X25LO57OiKJ/dOB6PlmUBcQRCp4eyLD+6kee567pg27YdxzEInR6qqkIbP8tYr9dJkiAxDIPneRB6pnS5XDzPA242mzAMsTOdTk3T7JkSYTuOczqdgiAgFU8mk+Vy+dQHjuNkWSYDALIsu1qtsPmXcbhvPp+THGy88NQ4uPOtAUqShOof7CPJ3bjtdgvEvHuNOxwOwMVi0Qowwf1+n2UZ/Pr9awiCoGnaeDxuBXCqKIrb7db7AjSj0Yim6Vbw//gSYABbU7FZ3dTHFQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM2QUIyMDc2REE0MzExRTU5NzJGQUMyMjYzMEJGMDZCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM2QUIyMDc3REE0MzExRTU5NzJGQUMyMjYzMEJGMDZCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzZBQjIwNzREQTQzMTFFNTk3MkZBQzIyNjMwQkYwNkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzZBQjIwNzVEQTQzMTFFNTk3MkZBQzIyNjMwQkYwNkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7peTPnAAAAvklEQVR42syRsQ6DIBiEpTS6OKiLL2AYHdx4/8GRxJHwAiREJhNB0f4Jpsa2mNqptwDhuz8Hh9Z1ja7oFl3U3S/GGMZY3/fOuRcCY5znedM0SZLAEflIbdsihAghH6dyzgGjlO6RlFJVVS0BwRUAh0jjOFprT6IDcDBM0wTPODEA8OMv/a8B2jnnnsBmKIpCCBGi4QoAv9+allJ2Xae1hpreZ2dZVtd1WZa7AVobhmGe51CeNE3jON4N3+shwABRmG50gn9iTwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAy9JREFUeNp0U21IU2EUft7rdjdtuhFq9KWZJtMfmbrUHxkZ0a/CKOiHFFIGkf0QosysrBViGn1oZBhkQkFRUWIg/RFLQq02rfmxac2cpoZibua+7rZ7e99bVgSdy+V8Puec9z3nJdWXr4ARx3EyD4VC4HkeoihKlEAIYT7C7ItEfb9lGcUCqbGF/s+Y7Pf7EQgEsK+gQOZMZyCaZJbyZhbzb4KW5OR1OxMT1+4SBGGGgiSdVov3fX1gnOk+n09MSkpcui45KV+UxBYJ7AMULJvX61W7XPPIzspCbOyy6Pj4OHg8XkxNTiE3NxeRUZFwOBwkJjoGnW+74fJ858OXRPw8HmvvwvmKI3b7iPODxSIbBwes+DzyWW59fPyLrBPC4T31D3/6OFNtvFhcgE3YPacHxwDGi5V2SRJ1G9LWy5VpNGzDwxi0WmEbGoJf8FG7D8xP248ZqnltDyAoCSQEjt02O2NsbDQW3B7wSiVsNiscoyNPHz96mD9K+ahjDGqVCl6fHyo6IbU+Hi6NBoQjkoKNp6ioSG53emYaSl6JYDAI6+Dg9e6uzrdRWu3cqvjE3WFqDR4/fY6jR4rReL8Rhm/piJ6bhoJNoaGhAQkJCUhbnyaPRqFQYEN6RqEhK3siEEIh4aMQ0bwHZQdrcK3pAXKyc9Da1oq6W9UGQuMzGeh4aZmpgM6dVXe6XOjv70cgRG9ZrcPWqRpk7IgBxkYwpDyI22+CuFplNAwUN5lJ+ZkKeUmEgCDmbc4jq1avlOdLOLqNykiE7m3HxvyVwPgk4PyK+z3Lsb++z1B6+ow5RCRwv7ZwNkWfQvSpenyZnIQqXAPwGgh3NmOjXHkCcE2j0RwHd44RJ06dLedAoJQ4KFh1t9ttofu+pb29HR8sfc4g2nS128xQHTsMfPMAA3Vo6k2AP6ccKskHn9etiwgP/7PKN2/UHjKZTB29PT0vb9Zd29JQd9nwZGAFXnRQMKfF3d41OFBvNtgs75ymN12vbly/enjxLZCTp07LQnVVZRJ7FqXlFfZItxUBMUzihXnsTeWRXNJsKCkzmmsvnWNjWqAY++8E+D9l/iWb/xf0Q4ABALuHnKJqedMoAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjkxOTBEMzNBRjVBNDExRTQ4QzU0QTMzMEUwN0Q3RTQ3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkxOTBEMzNCRjVBNDExRTQ4QzU0QTMzMEUwN0Q3RTQ3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTE5MEQzMzhGNUE0MTFFNDhDNTRBMzMwRTA3RDdFNDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTE5MEQzMzlGNUE0MTFFNDhDNTRBMzMwRTA3RDdFNDciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ktu87AAACqUlEQVR42qxWzW7TQBCeXW/sxIldCiGhpGqTJlKVqtCq3ApIReLAa/AA5YY48AC8BUIVF5B4BUACgbgAB3qBqKpCD40q+hPSrOO1d5ldtxHnbC3ZM2vJ8+38fN+aPH3yeBMAilIq8IuFo2p15vnU9CUxNzcPb16/AkIIgL4nvNj29o+HaK9IKaEUBN3hKd9aaDUFcxhQxzEAxAag1+vV0U7LNAXOIxoGIWm1HkAURY29391NQqmaEEB/dMoc6qRmqQB3TFOHMVOS/slJrdPpPHIItSnRH0Zxh1l8BehLpRR0d3ehUq189jwvpHYAit2+c3cNHUcqCb5fTK7NXOdePg8iFjqzIVhezPW8Pe1oANd1IefmIJdzQWeiGw86AWXRZDpOn4D29Uq/YiwHQRDoskH2dkIAxhzjSElA+w4G1EExM7haqZjgVmOKY3i+aXxQNW76WYkMD2wyeP/u7Ve0l2WqIJwK9+r1xv2FZpMvLS+Py2OVwWAwmM+IJpEHhPKIk3Z7CRKRtHv7+8+oHdH6DD+WZpVpjtRWS4QQIox4tJ4xGSYFOGRIpgE6+RQz8Fx3wDB459dPaC0ufpmrz1ese7CxcW9Vo2k1LfgFiWrKS2EAYhSbRo/3MikAas8xZAh6AY5DIYd6ZEp1EU3GZsI5k5MkgQRVNcU7ETH87ff16NoBpEqeEU1CimVCtQNdmTiO4eDgwJ7JGNjXFVIIIPVDKS5lCgRZrYNbqimwTx8/fENb1lMUhmG30Wis37i5wmuzNbiIi41Go3LGZAmjeHSKPcATrQVDztdQsl8QSmyIdszOR/F/S3CaCvmCLJfLAgFsmixY0S8eokNTc+D4R3gmqJ2dDqysrH5HPbplfejXZmdfoi2Zv4pS6bBSrSKWwjEVJhuTkQXAPwEGABNEHwGUaHZpAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5OEFBMkQyMDI2M0JFMzExODAwN0I0RjA4NkVFNTY1OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JCMURBQzNCMkQxMUUzQjZFRDg3MTg4QTE1MThCRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JCMURBQjNCMkQxMUUzQjZFRDg3MTg4QTE1MThCRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5Q0FBMkQyMDI2M0JFMzExODAwN0I0RjA4NkVFNTY1OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5OEFBMkQyMDI2M0JFMzExODAwN0I0RjA4NkVFNTY1OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqAzv0MAAACZSURBVHjaYrSwsOBkYGDQYsAOrh0/fvw7AwWABYhVgHg+EP9Ck2MD4mggvkypBWAAdKkJsoSlpeUlBioAFmIUAS0zAFLMJJr9F+joCyxEKp4AxDwkWvAFiB2IsgDoEgeKgwgYDGcYaABAFtwB4kQc8ncotYCJgcZghOSD+Ph4svLBwoULB0k+ALpkNB+M5oPRfDCi8wFAgAEA6phAN5rHdTYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgpJREFUeNqkUztvE0EQnr3bnO/shEeRJiiR+QGmIxWyQAoUAYHoghDJT4gEVRokaBAFkfIDKBJTpCKiSAoIAq6yoMMlTSRkTASByM49dte7y8zZF8WBAisrjeax33y7M7PLrLVwksUvLm2Tvoo848MkMgY/UL3hrpP5k1tL1cWuseK/TnVYYfZJuJLZXo8gUNqmn3d+f332qtHIgauL1VnSCyvhVh57cKtSuVA+O4l5AfnOiGMBJcCbjDzdaHw0Fh6RdA0k2B9DQnYeJwxhKYdyucuyenbvLocv0Q6pp6lmRB4ZYw0ZUrOItO9aIAxiPe7ALmF5/2Y1SqF5SMMwIYtFiTJCKpOinxE4eFLBtXXE1vPZ8eMNiuShqVr7SQtZrTag8r1CMIh3jjpplw3uWUYFOkdxxzDAvzR/wWjgwemSD5pxHNHhno/i9sZm/TxI5XkYTYWCVn29V0IsunCQtOHMWJGeCIwVPQqXgNmMALtdIt2JZdapn3sJJEJC831tsAedWOBEGJ1YPlX0SgwYZ32CdizLB4ncoaefCvnvHvTX7f1I3rhcmRhNpBax0oJsitHeX68SGWeMMVdQv5NSbruuO/X68fW5WOoES4sJdHN6anru0vnitYeb61rrwT8xMb+23Fy9Vz23UAvR/z7Mh/q2Nv+CK6Xejt957lvR/rC3cf/TkL+580eAAQDQKvYtA2VcpgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrSURBVDjLpZO/SmNREMZ/uVxFCGy7L+AjpAgoIUW4hZjCCDZCbCQgVlY+gaDNLghibbmy2EgQTCOp8gaWYmFrpbE4Z+azuPe6UVE2ZGBgzoHz/Zk5U5HELFFZ2/uzu9ysHT2OVZUAd+SOuSEXLkdmuITMMHd+zIfn29uH/YtfGydpbal2PLdQTX4uTEVcfR7bMXCSjoOS8ePT1NJfghKAVCYONhenBtg+vCcHkAOwcwOnTRiNRkjCzHD3TwmQZRnmlgNQTOG0mSPX6/V3TJNTmqw9FgAl0tY1nGUwHA4xM2KMbyom1Uii0+ng5oUFz1HPshy50Wh8yTp59tJCWaxfwt9VMRgMiDG+y48Kut3uWz/SGAKQP5ZEq9X6lrmMGGJhofCyclGhvyb6/T4hBEIIxBgJIXyaQq/XQ6WC8vJqHSCh3W7/1z/wQlH6cHd/vvM7bLgZbv86biWzhNyQFXvhTsF5DlCZdRsTZoxXOgYqlSAcLRcAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZdJREFUeNqkU71OAkEQnpUjMYcEMISfxgcgVhJptZaCBqSyprOg8zHoxEoaDULiC1x8AAUj8acghIZQwIVAQIh6cOfM3h0eBw0yybezMzt/u7PDNE2DTUgoMTYX0n/7NOLUZnuHKNKmaEm6ZbVI6SyIOEPUEWUDdUMXTNkrsApJjPzOWPgDQETDi6SRqczYbQngIQIQRl3HHiCPiJqKiKap5/n8oZTJPJoV4jupl7ruylZ1ld0AVJLZbFRRFF3T73NEfT4OeuTnwYDrDrxeDp5ZEOA+l6sKUxQmkwkM0Ihoj+B2A0ynIMvyom42g16vx3WiKAL5CpTX4/FwrEuKGaDZbEK73V4yCBcKnL/G4+D3+xfOqAIe4AcXSZJWZujWatBoNABarfl1rES+wjcux7EYyN3ukoEzEIAAohMKwa7xeCY5HA54qlT0CoThEHbG46UAL4kE5yGXa+U59/2k+2AXnNguTVUBEMSpfUfoyGeF5NGIPsRCAPJlJwDX+Hf3/zNI+CXfaHqof9t0rTX9Z4gvtuk4/wowABBVpMWVwh3oAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRCOTNCN0QxQzUwNDExRTU5OTBDRDkwOEY1RTdGQjY0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRCOTNCN0QyQzUwNDExRTU5OTBDRDkwOEY1RTdGQjY0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEI5M0I3Q0ZDNTA0MTFFNTk5MENEOTA4RjVFN0ZCNjQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEI5M0I3RDBDNTA0MTFFNTk5MENEOTA4RjVFN0ZCNjQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4j+SfHAAABU0lEQVR42mJcdugeAx7gDcQfgfgILgUseDQzA3E71ABbXIqY8BgQKyXEpSvKx2EDZPuRagAbELfICHExyAhzM0BdwkyKAfmyItzSPJysDII8bAxSglxaQLEEYg0QAuIKoPMZ/v7/D8YSQpwg8UYg5iHGgFJZER4hNhZmhn//GMCYm50V5BVpoFwOIQNAivKlhbkY/gFtRsYSgmBXVEBdiNOARjkRbk5GBpDN/1EwKzMTg7QwNz9QqhqXAeCAEhfiBvqbASuWBIYL1Bty2AxolxPlYf6P5nRkDAIyItzgKEY3wIaHg9VPlJ+TAaQOHxYTALsiCogNkJNyOwcbM8PDV58ZiAEifBzMbz79ALnCB2QAKGAWAwUWM5AOOEEGfHx7cescaCLhg2JOLIp/QOlPUPxFWN/7L1OkrSJIEBRCP6ESr4H4ORb8Hir3Car2P0gvQIABAD2Ji61EqXjSAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVDhPldK9SgNBFIbhiQaNsVDQKwjB2xCSRi9ALLXRG9AmQUFFEksbf8o0oiiKd6DgH4RAGk0stLDRXoSU8f1mspKdXQP7wQNnluUk5+wYL3M4wzNauMYChjAwWVziExsoYhZreMMtpvBvrqCXJu0pnAwu8IC0HviZxxcm7MmlihNX2oxAY63Yk5dTbLryL34DZRn3rgxHnTWzsoU9POGlV4tGm8E3InlFwZWmhnO08dGrZRp5dBCJFqht9yduBH3OpivDWcQ7tO0gfoNhPGLdnrykcANdoFE9IGMYd6W9RPvQl9Lz2GhGbViLW4IWloP+thaqC9ZFHTvQj0aiS7KKO/xAC2tA+9F4ml9N5ACxTQZlG0EDOUKiJnr5EP1NSkgUNTlG0KCCxFGTMnaNMelfSFpDy7efEgIAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEbSURBVDhPldLNSgJRGMbxYw5lbQrqCkS8DSE3dQHRMjd1A7kpElREXLqpXLorisQ7MOgLQmiT4aK2uY+gZf2fGYTmzHFkHvjBOYfhnXnfOcbKFi7xijf0sYMFxGYFN/jECYoo4BDvuMU6ZqYHPbTm78LJ4BoP8HRgZxsTrPo7dxahtvb9nZULVIJlbEq4D5bhqLJ6VqpoOai1PL4QyRibwdJ0ceWwgRx+EIkGqGnPi37nS7AMZxcf0LRnJY1HlP2dlRQG0AVa0oEVXaI29KeWdeCKetSER9iDBpaFPvsJumC/eEYdemkkuiQHuMM3NLAhNB+1p/5VRE7hLBKXGqYF5ByJiujhM/wvcoREUZEOpgWaSBwVOUbDGOP9AbU1PhcYGoIJAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8UlEQVR42mNkQAOCOSu0pWTl9bjZmLmevPn4+Muds4c+raz4wYADMMI15q5WLPAxWhCqLy556/W3H+++/WZXFeFiefXl17eeffcrjhdabMVpAG/qfKkZGR7bXn/5pVa19e7fb7//gYQ/AzGzpTz/t4mBav+qt97K2Z1luh2rAUnLr840lOH1zF13S0Rfioe9wE72uQQf+/stV98wTTv6RM5AmudVj5/qr+i2JWYvFuR/RjGA07OYa9OEqruRi6+8F+RkEThfbM7Nzc7MC5T7AsTPa7ff/dOy+4HMhiS9t1177lUcK7RYhWIAR1Cz/r7e3D1Wk84wVrkofGz1UgZpFoHKfwWGxx319uOyZY7yH19++bV4YZR2A4oBbIFN2of68w5aTDzDkWcr+xDoXwGguCgQswDxr3NPPt027jst1eCu+P7mq2/zlsfptqEYwO6cxbpqQsO98i13WN9+/c1yrtjstYwAB8gQof///zPFLr16Z+m5l//2ZRrypS+/mHW73mkzRiB6zz7fkWUlk+Y79yKXEBfrjzgTiZdAmmfr9bc8xx985Ik0FL/vqCrIlrP0jO2vKQEPMQwAhgNPXWbMVhURTs2CDbd+Pfv0CxSPvOzMjP9iTCSZE0wlv3nNvsD1+effPQyfXqYzzI1+i5GQOMJ7+H093ZozrKT9edlZfv/59/8XFxvT75033t2v33HP4Meff5JAZT+BeB/D51fpDHOiXqIYAANsfrVCLILS2uyszH/+fX57/+PKihcM+TtDGJiYO4DS8kD8DYj3Mry8lcKwLOsdhgE4Qf7OSKAhdUCWGhB/ZHj/xIZhQcI1TAPsMxnBUcjMyszAws7EwPAf6PCvfxgUTP8yCMllAOUKgbiaod9lJcQLSYu1GPglO4FsWVDAATEXELODfAPEfxjAJoAxKGCBBjKAcuY7IL7G8OpOLsQF7mWiDGzcfAyMjKxAmoeBmYUdaDsnUkCD2L/BBv78+p7h9/ePDN8/vmHY1f0eABz9ICp2GsJnAAAAAElFTkSuQmCC\"","var map = {\n\t\"./about.png\": 487,\n\t\"./arrow-down.png\": 488,\n\t\"./arrow_curve.gif\": 489,\n\t\"./capture.png\": 490,\n\t\"./emergency.png\": 491,\n\t\"./esri-streets.png\": 492,\n\t\"./esri-topo.png\": 493,\n\t\"./feedback-footer.png\": 494,\n\t\"./feedback.png\": 495,\n\t\"./globe-icon.png\": 496,\n\t\"./help.png\": 497,\n\t\"./information.png\": 498,\n\t\"./legend-footer.png\": 499,\n\t\"./legend.png\": 500,\n\t\"./lio-topo.png\": 501,\n\t\"./menu.png\": 502,\n\t\"./osm-topo.jpg\": 503,\n\t\"./other.png\": 504,\n\t\"./pdf.png\": 505,\n\t\"./print.png\": 506,\n\t\"./school.png\": 507,\n\t\"./screenshot.png\": 508,\n\t\"./search.png\": 509,\n\t\"./tab-close.png\": 510,\n\t\"./tab-open.png\": 511,\n\t\"./target.png\": 512,\n\t\"./terms-footer.png\": 513,\n\t\"./terms.png\": 514,\n\t\"./themes.png\": 515,\n\t\"./tools.png\": 516,\n\t\"./userFarms.png\": 517,\n\t\"./waste.png\": 518\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 486;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATlJREFUeNpi/P//PwMlgImBUoDDBdJAPAeID0NpaWz6wHpxGDDH1NT0RURExG8QDTUEqwG4vKCvrKws+vfvXxYQDeKTEgZZKioqkr9//wbLgWgQHyROrAGMWMSZoOJEGTD1zp07e/79+/cHxAHRID5InJRYMOfj43sQGhr6H0SD+KQEYjAQ9wD9zQ/iQOkeqDimf0GmMDKCvScBxO0sLCy21tbWMiIiIuxMTEwgLzC8ffv255EjR578+fMHlC4qgfgFzOXIBixXVVX1kZaW5uLg4GDi5ORkABrGANTE8OPHD4afP3/+e/z48bfbt29vAaqNhBmA7AVnWVlZHjY2NrBmdAwSl5OT4wGpwxaI6kA8E4j/AvEHIAYF3CUgPgOl7wPxeyD+A1WnDgtEZC+ok5CFbqKEASUAIMAAP/6X6aWePi4AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAJCAMAAAA8eE0hAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAF1QTFRFqampqampqampqampqampqampqampqampqampqampqampqampqampAAAAqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampItUsOwAAAB90Uk5TIzwaO9zlzyUIqP+CAgAryRRx+/VNG82zDlo2lW4QDEirDY8AAABFSURBVHicNcZHEoAwEANBEUwQiGRy+v8zKS8wh6kGoq8YSeqsLEdR0qpqqHFBbSdI/UD6UYHTTC6rURv9rpc6Tv287vAHnlwEKZYSqyoAAAAASUVORK5CYII=\"","export default \"data:image/gif;base64,R0lGODlhEAALAJEAAAAAAP///////wAAACH5BAEAAAIALAAAAAAQAAsAAAIUlI+ZoO0vGJxPHkujY1xj+FWZUwAAOw==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEXklEQVR42rWVS2xUVRjHf/cxj86jM53WPtTggsSVumCnbkwIG0qggEpLKZREQRYYMFBLaCglNUAJgkB4GA0tpbZoaAqiie7duCAkxoSND0qQeTGddmY6jzv3Hr8pNUE0QmJ7cv85uSfnfP/z/b///a7GIg9t0QnOnj2vFpXgzJmzatWqlbjdbkzTXJCg5XKZUqnEjRvfop06dVqtX7+O5tVrFvTm31y/xtWr42gnTnyiWlvfZnXLOlYv34Y/UI3PJ/BX4/b4MXQPTsmNkwdVcKBoY1gOLqXQNAdbL5FIpfn9XpRkcYpkJsUfua+5PjHO2NiXaMePfywEG3hrQxstK94lHAoTCIYIVFfj8QZFNg+qqFOaUTg5B62o0C0bUwicgk06niVtZZjSZkjm00SnkvyaGuerK6NCcAVtYOCYamtrpWNLJ2uXb6W2rpZwTZhgKCSZ+DEND+UcWDOibUYIJAu9pLASBcrTFsplM2sWSNozcvMU9xIJbqeuMjw0yOjoGNrhw0dUe/tG3tn2Hmtf20j9sxEiDRFCkonPF8BQJrYQFDNIBopyWmRJWJgFa04ipdnktSLx4jT30il+i8X5uXCdzz49z8jIF2j9/R+pTZva2fn+Lla+uIbG5+uobZIsImH8VQF0x4Ut+pdyGoWUBM/auEtSg7KNruRdCYFVIDaT5m4yyS/xGLc933P61EkuXx5B6+s7pDZv7mBvVzev+96gsaGeZxoqMtUQCASlyG6sWUU+C3ZZfK00XI4tELkkeFmKPpvLE0umuJsQ/RNRJpt+4NjAES5dGkY7cKB3jqD34CGWJl6hMVJPXUQIwhH84iZDiYOULm4RaDrI4zIVpi7fZ4Ugb5FJZYnHxT0iz10hSL/0E30HDzwk2L+/R3Vu2czhIwO4bj1HfbCe2mAdAU8Qn7jIHwihe4TEZWB7KtEluMy6zBoOxVyBmdg0qdgDYrEY0VQM49U77OvuYnDoElp39z7V2bmFkydPE/3OJGTWCCKE/VLo6ghVYle33w9VQuI1UFUaulfH8IpNlUU+kyObSJOOJQVxHkzFqVsxza5dOxkcHELr6vpQbd3ayblzF/hxKEG1UUPYW0eNr5agkPiEwKzyYQR92AEvms8QMumRbgfHKUrxc8ympoQkSU4sOj2VYGkL7NixnYsXB9H27Nk756Lh4ZEFbRUdHe0PXbR79weqta1NCurH5XYtSHCrZJGbzTE2Ooq2ffuOxW3XT9rQ29vrdblc+cbGRtHcmVvTxbLRaBTLsqr6+voK/4ugMvr7+9WyZcv+tnbz5k16enqeeP7xDfrjt1+yZIn//v378ZaWFmzbnls3DIOJiQmamprqJycnc/+ShfM4gVcQmZ//qon/6NGjt5qbm41AIIDX65374ylp05U/lshDNptlfHy8ksnLsj83H69yXnovaYFdWXALXhA0CMxHCJaKAT5/GgkvXDj3pkzJRy4t7ZE7gth/aRicx9OMzDz+Mf4EOL/ykCBVvK8AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAK3RFWHRDcmVhdGlvbiBUaW1lAEZyIDIzIEFwciAyMDA0IDEyOjM2OjE2ICswMTAwsZuTvQAAAAd0SU1FB9QEFwolAe9WWNgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAACEElEQVR42q2SX0hTYRjGf2cn3J9Wm6xlU3HkGiYpWBRZlhCEBUHUVVB06ZW3JYVddKVdCBVIXkShdBEFFUgQ/bsob0qDNLSobtKptXZ0c/Ocs3POdtZ3mbWtoF74bh7e9/me930e+MeSisO9FdRLB7HsExQ87Vip26L1KvGL8T8TbB6sxG2NE2qJBIMWL3rGOH7W5uMkyxiOMEvnl39ud6waDl3bQMXKc5qORqjfT0KKYsbfMy81Q9UWH7n0qV//W03gTh6heud2pPU0yqN0Nd5gYETmZPQu4Rqh3mBveQLL3oPspbt1hCvHJtkWrCX51WTq7QL78vctDOfD8jeo6++g4BhS+l+FAuEomhwgpmjo6SQt5tPX0ul3reUVzJ55QkaPBvSJKSwDDxkagnlaamXI24vF/HL8hqR61ImZukFio5D+Jt53WBgns+h6/Hc5aBrqQ6O7o810DLc9QLYt+qbbuTwS0cnGukmcGyhN0DBwGF/oERubqao08TtT6LYHZclEUxSYmVZJJXeQufSp+Ap5vYuaXeAPEjcCqMkCytgb4Y4qLPaJkDWsJadfKHkDnze/+17nLdAysEZmzt6E7fWhJVU8Lk10C8FO14GSBCtawbh+Jwvxz4TNlyI4KlnTBq9ItzYPc18EZpmlb1DdGyCX7USSDuFet1UgfrJqjpyVIL38QVj5TKw5DDeX+F/1AyNCznfxHlcIAAAAAElFTkSuQmCC\"","export default __webpack_public_path__ + \"static/media/esri-streets.90127cac.png\";","export default __webpack_public_path__ + \"static/media/esri-topo.37271096.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkJERjg1RjRBOTUxMUU1OEYwRjlGMzBBMUNBQkM1MiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkJERjg1RTRBOTUxMUU1OEYwRjlGMzBBMUNBQkM1MiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp+hVgIAAADoSURBVHjaYvz//z8DLQETA40BzS1gwSLGCsSiZJj1HYjfE7JgKhCnAfFrMizgBOIjQBwOxN/goqBIhmIdIL4CxIxIYqTiHiBuRhZDjgMJIH4BspOCIH8KxDzDKxUNqAVK0Pgox8FPg/JdSM0HMHAPiBnx8GdB8QiOA3IAMxD/xRUHB4F4OxBHAvEXLJo3I7F9cVjgBMRTkAUY0eoDMSCeiJ4boeAjEBcD8RMg3oHDggtAXIvPAlxgFRDfhCZNXSB+RWyYEWMBBxB/AOL7QGwDxG+pHck/gHgTEGuSajgpQTRa2NEOAAQYAA+ZfQED6XxLAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAetJREFUeNqkk8tO20AUhn+PJw7IuYgisbAjSKSWy65RBSuElAfIkleg6pIlG56g+0KXfQUkVuyoWCRCkdiwKQqqIlIuSYDIkNgO7vktmU1bKVEt/R7PmXP7xjNGFEX4n0dv7u6+TgzDqMrgTBB/pfkevbwkBnerWv2yurKCN7ncP6O6j4+on5/j68HBJyVVYSqFMAgo9WF5GSdnZ7jp9RCORn+Idq7Tj/4qbl0Gy7JiQy6bRXlpCd8bDVx3uwgkKBHntHOdfvQnQhVR5ChJkrKs9aN6HSNx9mVzvx0eolQowJ6ehvf8jGarhfdSOWPbCAU78H2lpa3xuTMZ3D89YRiGsv0avu+balJuJupLN+zAHw6VmpQ7JZXbt7fwBgMmMBU5mI1cZcE4Pj3Fr04HvrTJkXPaE24mcB0HF80mvH4/pckRyAK5tPwJ13VxLBv5tljEj8tLlEql2J5wf97bO9re2anF58fz7jQ5mJlcnYcHOHNzyEu1urS9Wi7Dlu+2dDKbz8OURGmtT+4bjX2J5x3oKXKQh1xZceaZyAhrZWMjHjmnPeGGaXrvKpUrCW6LBpoc5CkuLCAtFf72TMk5oBJuJd+FtTW0ajUY2cXFj6Ztz497e4T7p2j/9QKK0qIZkRojPuZm64nhtwADAOL+QldCpRKoAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAz9JREFUeNpMU1toE0EUPcnuJmmT2qpt0kZqaIOmtr7A+sIX8YWCbRXtTzEqqB+CqPj4ERH11w8RFPFHKEjz0Upa/BBE8YWVxIrRok0TY03Q2KSmSZNN89pNvbOKduDszM7cc+6dO/eqOjo6oFKpoFarlZlQQ1gCwESYgz8jRYjOzMyMECYIKJVKYDOP/0NLWGOxWDZ0dnZ2NTY2LpMkSTngeR7BYHC4t7e3JxQKvaYtDyHPzrimpibmlZF3trW1HXQ4HOeGRmFyPUvi3sMUHr4SEQhlwGv0pq4DW7ZTpJzf72fkEEHmbDYbC2Vje3v7QbvdfujSnSh8kXLoKupQW2tCdXU1ciU93hPnxds4Du+zreA4TiKRCSbCy7Jsamho2LRt21bHxdtRaOeYgWwBN0/PnXU7Pa7czSAYEXD5bhSXj25xeL1efzgc9nFWq3Xt8ePHLgwOF42BaAU0Gi0SiTTi8TjcHycwmZKwyFKBYDiJrz8pm9MlqEtprF5uNrndnncsAnN9fX1Lz9MfMBiMGB+PKz4HXuaQyUxj8/I4jOURBAJJeDxTMJuN+BCQsW5vXQvjqulTlU6L+DwmQZZLyOcLiMYm8T0SQ2OdhK5dlRgNF/Hg+TRUnAZipqDYZrM5MC5PT8VEIEkyUmIOsclpkA6gEnDthEWJ5uq9cXAavbKWZniyVchgXCaQ5jgei+sppckCPXo5uL+p23P225860FX9S2cJkmILqJlAmnmPBAJffEutWqRTSZTpK8mbQTF4071KAVuzPQa5mEVLgwZjY998jMsEPjqdTteOtdWYXyZCyk1B0JKxoPvnla05gcj5NBZUZWFvnYuBAZeLcTmj0SgmEpMCXbrszFF785NXfozHknSTebj/jEP3Y4lCLSAVC6BWH8eN8y3o7+974HYPuqgAvdzfxvgxMvJJTf2hvnSqvalSl0cmPoZh71tMRX1YuTCH/fYanD/SDKezu7+vr8eVzWYfJRIJSaVcENBptdp5BoPBbrM1rzl58sLu1tb11lmliKGhN8Fbt64/Gh397BFF8Xk+n2cFk2MCLOkszfMJBkEQqqj7rNQ0NbPbmaKcoKwHi8Vikv4zhF+E5G8BBgCmR5O7x7m+vQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKcSURBVDjLpZPLa9RXHMU/d0ysZEwmMQqZiTaP0agoaKGJUiwIxU0hUjtUQaIuXHSVbRVc+R8ICj5WvrCldJquhVqalIbOohuZxjDVxDSP0RgzyST9zdzvvffrQkh8tBs9yy9fPhw45xhV5X1U8+Yhc3U0LcEdVxdOVq20OA0ooQjhpnfhzuDZTx6++m9edfDFlZGMtXKxI6HJnrZGGtauAWAhcgwVnnB/enkGo/25859l3wIcvpzP2EhuHNpWF9/dWs/UnKW4EOGDkqhbQyqxjsKzMgM/P1ymhlO5C4ezK4DeS/c7RdzQoa3x1PaWenJjJZwT9rQ1gSp/js1jYoZdyfX8M1/mp7uFaTR8mrt29FEMQILr62jQ1I5kA8OF59jIItVA78dJertTiBNs1ZKfLNG+MUHX1oaURtIHEAOw3p/Y197MWHEJEUGCxwfHj8MTZIcnsGKxzrIURYzPLnJgbxvG2hMrKdjItjbV11CYKeG8R7ygIdB3sBMFhkem0RAAQ3Fuka7UZtRHrasOqhYNilOwrkrwnhCU/ON5/q04vHV48ThxOCuoAbxnBQB+am65QnO8FqMxNCjBe14mpHhxBBGCWBLxD3iyWMaYMLUKsO7WYH6Stk1xCAGccmR/Ozs/bKJuXS39R/YgIjgROloSDA39Deit1SZWotsjD8pfp5ONqZ6uTfyWn+T7X0f59t5fqDhUA4ry0fYtjJcWeZQvTBu4/VqRuk9/l9Fy5cbnX+6Od26s58HjWWaflwkusKGxjm1bmhkvLXHvh1+WMbWncgPfZN+qcvex6xnUXkzvSiYP7EvTvH4toDxdqDD4+ygT+cKMMbH+3MCZ7H9uAaDnqytpVX8cDScJlRY0YIwpAjcNcuePgXP/P6Z30QuoP4J7WbYhuQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5M0JDRDVBOTBDOEIxMUU2OEQ4MjgyQTYzNDJGRTFGRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5M0JDRDVBODBDOEIxMUU2OEQ4MjgyQTYzNDJGRTFGRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNzAxN0ZCMTk5NEFFNTExODQ1QUM2MkQyMEFFOTMyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Png6dsQAAAEiSURBVHjaYvz//z8DLQETA40BCxKb2l5hxOYDRgJYngg1jOQGUSAQr6NVHBgD8Qog/kVyOCGlov/o3oMCTiA+D8TqQPwOiIWJMPc/rjiAAX4gloOy66CGPwXiIGr4ABTWk4H4IBAXA/FtIP4OxM5AfBmqtgKIQ7CY9wWIHZB9wIJFkSIQCwFxOBCzQYPIH8lwEFgGxLux6P2LGVhAH0DxfyS2ARB/gIo1IokTi+Fm4bIAhC2B+BIQsyGJyVHTAhDmRGIHAvEZUi0glA++j+YDbOEGCusnQLwUiCWA+DMQvwJiXXJSEbn5gFBGIxgHBkB8ABpUTUBcj2YQKPhEcWS0CyhmkZgPSA4iQqmIEympkhS1uMoiqrcAWNDr0CHXqgAIMAC5vbpuaAsUCQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAM1BMVEXZvT//3kogOwFgnNFxt/Y4LgGX2E7/76q83fsBN2mDawEvdbQBL1n///9JigCAuELO7awXRhXWAAAAT0lEQVR4Xm3PRxaAMAgAUUp6Ue9/WjELIrzM8u8GhgvGNH1wrf7wSGQgpeSgrTbcLUtRgahlRFSQBPpqA/QiVYUYewmBFaQDMFuokoKZc70fRwtEctyojAAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/lio-topo.e5b5521d.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFCNjQ3N0YxNDZBOTExRTU4RDMwOUE0N0YwNUQzQTlEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkFCNjQ3N0YyNDZBOTExRTU4RDMwOUE0N0YwNUQzQTlEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUI2NDc3RUY0NkE5MTFFNThEMzA5QTQ3RjA1RDNBOUQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUI2NDc3RjA0NkE5MTFFNThEMzA5QTQ3RjA1RDNBOUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4rRpbdAAAAS0lEQVR42mL8//8/AyWAkWID/v37dx5IG5Cp/wLIgP+UuuASkNYlU/9lkAHMQAYvmQZ8HiaBeAFI65Op/yLjoEiJFKeDIR6IAAEGAB9BPqUYjKDzAAAAAElFTkSuQmCC\"","export default __webpack_public_path__ + \"static/media/osm-topo.90bad225.jpg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC4SURBVCjPdZFbDsIgEEWnrsMm7oGGfZrohxvU+Iq1TyjU60Bf1pac4Yc5YS4ZAtGWBMk/drQBOVwJlZrWYkLhsB8UV9K0BUrPGy9cWbng2CtEEUmLGppPjRwpbixUKHBiZRS0p+ZGhvs4irNEvWD8heHpbsyDXznPhYFOyTjJc13olIqzZCHBouE0FRMUjA+s1gTjaRgVFpqRwC8mfoXPPEVPS7LbRaJL2y7bOifRCTEli3U7BMWgLzKlW/CuebZPAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFNjU09wUG9UxO1QQG+jc5+3J0yFpa+GFiioqO5YmK7Nvcv7/F/6qu+RUVKSkp/iYp7+/xvba76bGz1rKzXl5eoaGn6J6f7vb4xcXLiQkKERESeXd62NTY7ujp////////j1cJiQAAACB0Uk5T/////////////////////////////////////////wBcXBvtAAAAoUlEQVR42nzQiw6DIAwF0K6g4GM+9kRtu///y1UNE822mxDCScMlwOtL4DdOMTsMVVX1d08QMXOIaK1tjReBiLY9nzRmmGRVXa49z2jM4PVWDwuaIYZD6MP4KaJAlBOT7hvqUZCZKXCKXNqHqKbIknVFLQcssa4R80I2FMkv5VO6q0sndYSXoqTdZXMJ7Z8k69wObwDQQNOMc/5+8iFvAQYAumgnchCtR1AAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI0RjQxNDVFNUJERTExRTU5REQzQzAwQUYzOUFDRjAxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI0RjQxNDVGNUJERTExRTU5REQzQzAwQUYzOUFDRjAxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjRGNDE0NUM1QkRFMTFFNTlERDNDMDBBRjM5QUNGMDEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjRGNDE0NUQ1QkRFMTFFNTlERDNDMDBBRjM5QUNGMDEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4mh3FSAAAB/0lEQVR42rSVPUhCURTHfX5kDorV0BLVFAWtLU1R0NYSNERr0FJDtBUtTTVJW6MN0RAtQXOQRBFEtPSxZRREX4ommqmv/4H/k5vep8+wAz94Xs+9/3vOvedcwzRN13+aVzNmgBmwAfyg3g7EPw9WQLTSXyfQToEC2AY+LqIzWeyb/tPgALzXE/CATnAClh1mohf0c+4vc2ucS+ADZBtIdZZzSlX5szlk2U0O3DcQQSu4tRMYBMM8VNlFktGFHR5ykvO6QAt4BafgyiUCIGY2x0ogze8zWds6g4EmXPk4mAQj4JxZKQtkmiRwCC5Izu6a/tWGQAQ8gSnwpR6yqHdrrl7a5pANpfjk/yAIgCIPW4rzAfTUimAHzPNmGRWLe0iRG9kEs8p4VSXrCu6Zi63KTtgSrL4jLeRI8c3YRFkW8NtEEWJvamMqDObWq2kvlRZQBfbAKB19LBhZ9AUssHhKys6CSrXHKS7N8ZGRiu+xKrDEWvCyeiMc7wD7oI8LqOGL6B3vvpvfi6zqAn+XBWQnl/yWnvJGIUnHFqPRWYJzw5wTs+5/rXYdVG7OJ3cSqojAmpuij8E5QScCVgpSfBeiTF9Rc7A3YJy+htMn0xIIMOwJ5ltnefoEGhGw2vUYWHPYrsX3Wvfg6ATkZdoF62BON0nzKhZ51RNOX7Sm2Y8AAwAnRN9k7pGNIgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACXUlEQVR42qWS30uTURjHv+d9t9dtbgkj6MLudlXoTf4DXXQXasYKZ2sWyYSwX1sTTWPOQsM5NWcLxUjXcpKSqXQfgdddNEWCgpAWYjM3X9fen6czsbuQzOfwPQ/nx/PhPOd5SCz2lOIQRqLRJ7Sl5fp/BY+MxECGhoap03ke1efqDhS8+GYOs7OvQSKRQeqqv4g65wX4vRPgBQGazkEWKdScCi6vwajoMHIUChvfNvOY+eDD3OwMktOvQPr6wtTlqkeD24Mu/zgEswAKHnIWkDZ0kB0VhoIOZauAHVWCaNHxfOkuphJxJJPTID09vdTtvoRrTV5EOmMwWkqA4gt+AoUNCj2jgWxI4DQVqqBii1MwuNSOZ+NjSCRegnR3P6Qejxs3bt5C+Go/hDKBAQyQtznkMzog6jDJGnhNgaQo2MwVEPkUQnT4MeLxBEgw2EUbPZfR2tYOn+MeTHYzwBugaBzLmAfhABPPQCoDZCVkvucxmetH36NeTMZfgHR0dNIrjSz/0AOcWW9CaZkZBpsJsAhQLTzzBIZSwv5dhfxDQvZrDu+No+gK3sfEZBykra2dNjS4MDgwdKAy3vHdxtRUEiQQaKW1tTWwWq0QWAn/xWRZhiiKmJ9fAPH5/Idr5b9tBoNB68fUynZN9dnd9cLiW1RWnLSFQiFxPwBXnMLhsNlutx9bXl753Nzs3T0YHR1DVdUpRzqdXg8EAr/27ut/AEUdZbIxUZbSl8rKCpSXH4fJVAJdZy3M6r+2toZUKoWBgYhjD5BhyhaDjzCdYLIUqQzwbr+cGeA0c/weYPU3fML8r9AvwvYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNGMTkzQ0FCQUE0QzExRTVCMDNCRkVFNjgyQjlBNUUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNGMTkzQ0FDQUE0QzExRTVCMDNCRkVFNjgyQjlBNUUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0YxOTNDQTlBQTRDMTFFNUIwM0JGRUU2ODJCOUE1RTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0YxOTNDQUFBQTRDMTFFNUIwM0JGRUU2ODJCOUE1RTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4d7T95AAAB9UlEQVR42uyW0UfDURTHV5uIESPGGLGnEREjosSI3lJiREQPE2VPPaSI6KX+gBSReilGpBExpoiYRsSIGD2NMSKi7+H7y3W7P7/d36aHdPi8nN/v/r7nnnPPub+ubDYb8GFToAJebRd2B37Z/r5gyPL9YZIGNfAE7ljPjgkGwTyIgQdwTDERaYIxkAH3IN+uYBTkwD6oGp7XKZLnznfBFmj4qWGMYusuYrrJ7jfBBui1FZQ0LlPsw6LGkuJtiloJLoBDg1gYLLJuK6xd0JDmS77TsmDUkEap0SM4AEkwA07ALRjQ3i2BiVYFR3jUVYuAK8OHxVLgzLDTGtd5CqYMgpLGfo/+nNR8ZQb/oy2WNJ/k/l3z9bI1HKsQdQdDPNmO9TH1qu8txOOsR6v7MvQ7JgElWGvHXrR18qxH8zVNghUurmtB5NRIwSCIK75V7VujoKh/31TDIl9W7cgQmGo3PJlemTIKVhi9atKP0wxGNxlrswZ/xHAWXGfpMw9BWfHJ7T7O/pKACjzNpp3PuQ1yt8Y/56KwS/pkKFy4iCVY27Lt8N7hTAxbzNI4x+Ken9uiwatmzW0uGlonwxvj0+992OSNkWZbVJWRFeP0cZpbanraqV+Ma+LUKMmmLni0S9v/NAHussT2qf3/JnZKsGH56/FtXwIMAHpYbbFL/9gEAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyODNDOUZBRjRBOTUxMUU1ODBFREJERjU1NEFEMDhFNiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODNDOUZBRTRBOTUxMUU1ODBFREJERjU1NEFEMDhFNiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5N0M3MjdERjg2NEFFNTExOERBNEE5Q0JBOTM5Qjg0RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ptm0jMsAAAFRSURBVHjaYvz//z8DLQETA40BzS1gIVKdHBBbAjE/lH8KiC8Qo5GRQBz4AXEdEIsC8XEg/ggVNwNiCSCeCMXfcZoAsgAL5gTi+UC8EYg9cKiRA+JeIL4NxCo41OC0YB1UMwMRuAiIXwGxNLEW5APxNCINh+FqID5MjAX8QPwWiNVJtADm60B0cfRk6g3EO4D4Jo4ouwvESjjkFgBxAqFIngnEaWS4Hub7D4R8IA3ET/Ek2914fABKwmxAzIkvJ/8FYmZaFhVPob4gBwhBM9x3fBbsA2InMi3wgCYQvD7YCsT2QKxLhgWxQLyYmKIik4yMVgfEB0gpKpYC8QQgZibC8AogfgLEEqRYwAbEk4F4LxCH4FCjDnXEJWjBh9UsQsU1KMIbgVgFiM9CUxkPEBtA64ZuIJ4OxL/IrQ9gAFT2G0OT8BdoZXONGhXOaKXPABBgAMDCf2DPBBJJAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRJREFUeNpMU11IU2EYfnZ+3OZZuWxupjhLoZkr6kKsKJH1BwpqZZKIq6CrQiKorpKuuivoRopuAi9yFxozIoIo+qPCH+iP/FvDBmk6m5vbmTtHz856v2NUHzzn+873vs/zvT/fZ2ppaYHJZALHccZMKCJsA+AirMfaSBLmc7ncOGGBAF3XwWYB/4aZUFteXr6vra2to6KiYoemaYZBEASEw+Ev/f39fZFI5C1tDRNUZuOrqqrYqYx8pKmpqdPv918anYQr+CKBe4+SePRGRiiShpAnuTpO1B+iSPmpqSlGjhCyvMfjYaHsb25u7vT5fKe678xjYjYflnWbUFzsgsPhgKJL+ECcVyMxnD7m2cnzvEYiC0yEy2azLrfbXXfw4AH/1dvz4PNdsNvtmJ7+iRvnJNw8LyESmTP2dNGBa3djqK+v95eWltYxLhPwtrYeb3/8Ogolt46KA8zNxaAoyt/isHU0umjYkqoVz4biaGxsaGdcgT4lZWVl3r7nM7DZnAaZDdqHpyFIs24Ukf2zUVLixKdQFnuObvIyLhOwp1IyxqY1bK7QoaorSCzJSC+nEbjuNlp78uoPmPg8Q0BOr5BvDpmMwkTtArWKpQFNyyIpU6iLy6BDYeLMBtlqtYLjLSSw1nEtJ5CvQQbjMoEUT8atZVTSxAo1PR88OeqaapBtNhs4kUQEsyGgQzN8AY4JpNjps6HQt4ntlWakkglYpQLweUQS1siSJBlrtseQXc3AuyWPuvR9gnGZwOdAIBA8vNuBjVYZmrIE0UzOosUgszTYmheJrKZQas/AV7MBDx8Gg4zLO51OOR5fFClr68Wzvupnb6YwF01QJoW4/0JA71ONQl1BMhpCsRTDrcteDA4OPBgaehekC/iR//MwZsbHv3LUZ677QnNVgUVFOjaNLx9HsDQ/gV1uBa2+Ilw+U41AoHdwYKAvmMlknsTjcc1kVAOwmM3mQsrZ5/FU13Z1XWmoqdlb+d9Dw+jo+3BPz40nk5Njw7Isv1RVlV0YhQmwotsJGwk2URTtdHEq6dEU/f+cKcoFqnp4dXU1Qf9pwi9C4rcAAwDSiod1KTF3RgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACKElEQVR42mNkIAAM67T1lSPkq5g5WWyAXOb/f/6derTladeJwvNHQPKM+DTbLTL3E7cWWQVksqNJ/f1463PGLs9Dc3AaIBckLWzSpXcHyBTAoeTXjal3tOEGJCkqioXLycVKcHJq/vz7992OEEbOc04MOfhc+PnO1xawAUvNzV09JCVXIdvGGCTNsNf2D8Pi33cZ/uMw4PenP6sZkxUUpNp1da8D+XzIkkxekgzMPtIMC3/dZtj95ylWA368/DmTcbuVVa2hgEATuiSjHDcDa5U2w8v/3xnKfl5hEGRTAwoyMXz8eYfh578PYDXPt7zyZTzv6LhSjJ09DJsNbLHKDCwewQzLOY2BTmIDi/37/5fh0ecdDBefzdyy02C3L+MRG5tZcpycqdgMYPZPZWDycWdYK8rKwMTMCDXgP8OTZ38Yrt34uGWTt6wvY7empk+opORmDC9IKTKwZncynP31n2HOj38MArzMDIxAMz5+/sfw69c/sJpnhzf5go29aGOzmoeZOQTZAFaXMIbvzuEMze9/M7z5iz0efrx7MRNsgD4vL2u3unq1AidnNpArAoqhB94p7xdqOYu9+osrEhkY/nz9tBolJQINYpRiYxP79u/fxx8ZPQncJi7T8SWkr49vteBMyuK2AcKauX14k/KD1RO18WYm7fI5fkKGDlgz05cH1zLOV/jNwWsACMhHluhLuERVMXNwg7Pzv9+/Tr05uqnrzuxqcHYGADx8v/fHFkEtAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZdJREFUeNqkU71OAkEQnpUjMYcEMISfxgcgVhJptZaCBqSyprOg8zHoxEoaDULiC1x8AAUj8acghIZQwIVAQIh6cOfM3h0eBw0yybezMzt/u7PDNE2DTUgoMTYX0n/7NOLUZnuHKNKmaEm6ZbVI6SyIOEPUEWUDdUMXTNkrsApJjPzOWPgDQETDi6SRqczYbQngIQIQRl3HHiCPiJqKiKap5/n8oZTJPJoV4jupl7ruylZ1ld0AVJLZbFRRFF3T73NEfT4OeuTnwYDrDrxeDp5ZEOA+l6sKUxQmkwkM0Ihoj+B2A0ynIMvyom42g16vx3WiKAL5CpTX4/FwrEuKGaDZbEK73V4yCBcKnL/G4+D3+xfOqAIe4AcXSZJWZujWatBoNABarfl1rES+wjcux7EYyN3ukoEzEIAAohMKwa7xeCY5HA54qlT0CoThEHbG46UAL4kE5yGXa+U59/2k+2AXnNguTVUBEMSpfUfoyGeF5NGIPsRCAPJlJwDX+Hf3/zNI+CXfaHqof9t0rTX9Z4gvtuk4/wowABBVpMWVwh3oAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAuFJREFUeNp0k1lIVFEYx393maWyMVtMk8rKyRgyLI0We+mh7aVoIYgyemjBIpogWqEeijBoIyJLIrAopI2MoKLtoYbKMrSHMmscTNMKdWwcbXRm7unc0ZkW6A/fvd+953z/8/+f8x1l7mmPvycihkQFYEYMfR9KIo9DQVMVrLra9njL7OHzS16gm8UVmwsIyXmGWWHIiIJFvnSFv2BS6RosLnk2LP5Pjxp9hQ+uKMx5aqFy2RhWT3SzIVBEq/cdqeMnynUFbb5aBmdO4liOnahhJEhVU6hFsoZSwHk9myZrB2hW9iR7EJodTdOxaho2GRZVlRETGINJo5qJTSr40A3l65shGKai/gaOphq2plQT8NXR6vuIoqi0SxWSj1D/7gQloWoaM/1mZEDH2m7sQQs96W8Rzm/k2AKcKwgwJstJr/SZMmGyJILbXSE+H3kkLjU0mBb6CJT+U5h6O4ll24bxRL9Mo/AyyNJL8bgaRtijhDWV4gN70XKctDgcdGu6UOOb8dUH3+sFrwqDfOoI0fXMoEa9ibeuji/eZnZmtTP62iE2Fbkp+1iOv9FPpPUbCYK0TEgfCxG54ttbQZKzXRhRhS7XQzJcuTSXrmdH4WRKy8qZmTeDR8p98s8W5avijzNWlB6Udheh++forNxIoHYBbbZ6PHuWMnP5WBzV21mV7efx3XscPXw8f1bp66qEgpYGacOzAuFbR1tSMcEJbrq70knaLyhYkQpNX8Hfwcs7F3mQuQYhRNXAaMS00KdhlD2b1EG59GbtYuS0atKcBou+XGX6kmRobJTFLZzxjKDwvBcl/LO/iQR6vF13rKzt17Iv9vx5fQED3AtlYaeME1yoTGNz2fvYmCbCiU7UbZronHXSMzhixLtLJawOZHfAwdBIgIVTHFx6k8HJvApKTr1CN3qxqcaP39cLck1S/sHBosWv1WiYlS4rTndF/j/DkXlnntfECf6HvD/yqv9N+iXAAOuIGLh52iAEAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5JREFUeNqUU0uKhDAQjUOvBBFRXIjgTr2Al+hzeAbPIC5cuBahL9FX8A4uXIgIIohL/5lJoCRmtIcJFFUvqXr18hMwxuhuRFGEi6JAtm2jIAiEq5yvu2Lf9ylzmqYCi/khsAqyLMPbtqF1Xakty0L9PM80BkwsjmPhRPB6vbDneTRpmqbDxnGkBjHxhLAsS5QkifCA7oQoz3MECqAjSWYxKIDGpy2EYYhd1z0kE08MugJZVVXH2ZwOUVVVZJrmgR3HOTpZlkXXFUVBoihe3wJJ3vcdGYZxYF3X6Rxg/tp/EQAJGcSzRTy+VQAJPGZJLglgkdwEq4hX8PElgnyIeUUftwAFrAKY+xcB25H3f26hrmtKIkkS6vuexpqmoa7raPEwDCeSB1v880Debds+m6Y5fSj2CROTZfkNNd8CDABg938S/VLKaAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAAAeCAYAAAArUOB+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAARnSURBVGhD7ZjBTxNBFMY/CS2KVCPU2JjUpCQNxgNc7AFPhAsXYm+e+hd44R/osXfDxcSLFzlxqxITL4TERA6c4GAwJDSxMWCsEGwV2xL0zeyj7G5ntrOFgxP3l2zKLLvd6fvmvffNXnn4ZvsPIqxggD8jLCASyyIisSwiEssiIrEsIhLLIqwU6+D9W+wtv+DR/4OVYjX3qvjy6hmP/h+iTbFF9BZrKoONdBxo/8LiuyqW+PQ5o3g+dxu5GA/daO4pzkwgP8IDDy2UVyoo8SiQs3mp8D93PI3VB8OoVT/hySafcyHnM+S+J4Xl+ZvIBM6Hfzfc9wXEgqions9zS/BQoolbzzJYvBVHvdFCPTaMx1N8UkXjCLmVT56j3BzGwnwGRb7Eg5iQ7/rF74PIz2fxfJyv6ckpNj56vyO38g0boOfOpVHgq/ql3qb5aL6nMD2mFUUVi1y1hUx6AsvuGIoFx4vIfa0ubsFikeqzlAG1wyNst4HMrRT/w4zSGgWuHUd+xuy+pfUdlBsDyGUvEugDPN35RYvrKh4Zi66heaL5nhQej52g0uChCZsV+m3eGIpEEML6s620doQK4pidHuUzDoFiFe5cpfRsYWvzAB9+nAIj19RZooUCt9+i+xLG2VL6LALdI4uNGEDSU1v6oHlMi3QA9+94g4apa8g0jrHFw1AMxXghjuLukPxDwT6eUIbNrh/w2CFArFE8ukH/pkmJmr309TfqpPZk2CDWaXWGCdxuGzX6SA77AhSGxCAtslPU6jzum5ZcpIkb1z2ZLjKicrjPI1NYnGabe9FZAtzEhq5V+NCLNX4d96kmdya1+9MphamQJYqDb04LNXpO/5A5kIboNz7s8qkLIBeppxSmMDkiqg0PDTnrcW6RRdlf/E6CURLk5ydINOdY9ZW/M7RiFe+RQyET8LozKS5pl9ELLg3qbw/Of6RzkIsTDV7hpvpCLrbzUliYTsgSGOhYZbZ457UwBmmG/P1JCOYYC9HfnXOJsdt0T7fR0oglVg99UO9YcD9UWmVFDQ9iPIYk/2lGHEmdy+pC5QbpWAtboohOefKzjy0yBokh8dud1tCzBKrc4MoOngZmOiXDO772I/VtsRDveY2ZWizRQDWBEI7GX8MDkf0jRNmQ4p5i+6u3uV6IwFIc1OgdSofCJJG5kq0hfAkMzW4Vq8JpdsyIg1IsaSk1NV9O3Nit0SYxJexpj7Lhwim/l9NvznH6oNq0OJkcmC3SJJGVzpI7DvFbAhGbYapWnn2XH1+2d4vFe6v6j5/qsrB5THsAsz1XcUbs5lsoG5alwnQW+RHK6J1L6jcdnH4reoE3OOKNA/U4T29WwOYqETMogaZw9mTSipcAUgOKw2fvs7rEcvZWQWXIqeFdey5FU5WvcHSva/z9kI4F2miWe9b2PqFNqegFybT7mbSYmiZmhG12mHJuQGmNWkv1pNskZYGXijhEL3ItQuMGI/5FIrEsIhLLIiKxLCISyyIisSwiEssagL8o3RD104/mmQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM1RjE5MTdBNjkxQjExRTU4OTU2Q0NGRkU2OUYwRjNBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM1RjE5MTdCNjkxQjExRTU4OTU2Q0NGRkU2OUYwRjNBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzVGMTkxNzg2OTFCMTFFNTg5NTZDQ0ZGRTY5RjBGM0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzVGMTkxNzk2OTFCMTFFNTg5NTZDQ0ZGRTY5RjBGM0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7rcQ3GAAABxUlEQVR42qRTyU4bQRB97ZlxjCAICZFYBBCKgoTEIYc+cOIH8g255+oDH+Ir9/mJnHPFuVoCASYGA2EReLyMe6V6po0XGQmJkqrXqvequqqZtRbvkdANvw+PATY6LJXmRhuGAxr/GGNiayyM1tBef+xu5wDTIsQAYRTlGwtOI/dX8bRtYRYAsUEJCcfodHNtmdNcIbSfbwLIQCyBSJmFLIXOQIw2FTsFMkzhwIc6IWSc50sRpR2JzfUVftK4roynkwGQEf/2dZUrqb3jGAilIIQiG4N20sfG2go/OyeQvHpxDqAUJDmnqZx4B0nnitSth+VuJwyfPy3xVuuu8gJgjEahwFCMgow9lQrCahgqrQ0DYmdQFIGTj/MlXFzc1Ki+1fEUavX66avNsrBa5gIa88UQ1/+uatQb1SAIRm9AtL9e60gK/9AlVvwQ4b7RzJ0LQTxRheS2iVkAc0vlvNaM4fGkkTmrtBt37y4hem1g77sH+N+cyT7oPGHxyxYeT89qst+p9h+uYtlPMKsPXEMtkC56zT6DMxa95MhI8bd7e16nox1XCK8d93zhS88Qob9wczRkSFrH+2OEyt8Phu3C3vudnwUYADHS/14qfBQoAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUYwNTQwMDc1NzE0MTFFMDgxODA5QzY5QUFBREVBOEUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUYwNTQwMDg1NzE0MTFFMDgxODA5QzY5QUFBREVBOEUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5RjA1NDAwNTU3MTQxMUUwODE4MDlDNjlBQUFERUE4RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5RjA1NDAwNjU3MTQxMUUwODE4MDlDNjlBQUFERUE4RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjrcXwcAAAF1SURBVHjarJNBSgNBEEWreybJyIQoKKiIKzFn8AgBF0oWutYLuPcA7r2Ae10EXQg5gmcIuBJRF4KGBCfJzLT9mkxsgglC/FB0TXX96u6qP0qm8HLb3LdLwxizZ9f6ONxRSj3Ytb152Lr381XhvN01d3IjZ2GgTqNyEJdDLdZ3e2lmZJjmkgyzvvWvtJLL9YPW46QAZLtxUYtLR3EUilLyK4wR6SepdPujG1v8nCKaDU6GXF2aTXan2T1yyIXjYrzZVrterVXieeTpm7x3BzznOKRhvNknp4nIx5OR3qtx39UNJSvbSsLo5yZwel9pQ9NtGuYD8ug5kGVdcYZPzAccuDDrRbcLcHJUCiTU2hl+cZsCY05dy4KgQIc5++DNySiTNM+d4RPzMeZ0NApDJD5oWGkrk8984AyfmA84cJlC2yrsxApoMgm6vbarnM0aI6qEq9E28kRhfwW5cOC6JqJt5Gnn6qrPExA55ML5v59pkd/5W4ABAEdp1OI1FQ5LAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzYzMTBEM0Q3QkExMUU0QjZFRUU5NEREQjg5RTlGQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzYzMTBENEQ3QkExMUU0QjZFRUU5NEREQjg5RTlGQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNjMxMEQxRDdCQTExRTRCNkVFRTk0RERCODlFOUZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNjMxMEQyRDdCQTExRTRCNkVFRTk0RERCODlFOUZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hSl4OgAAAEpJREFUeNpiYKAQMIKIhoaG/6RqBOoB62WBCdTX1xOtubGxEc6GG/Dv3z+yvAA34O/fv5QZQLELBt6AYRAGA++FGTNmMAxNABBgANynJrUk9YKVAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NjQ4MjlCQUQ3QkIxMUU0QTBDRUIxQkREMEQ2MUQwNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4NjQ4MjlCQkQ3QkIxMUU0QTBDRUIxQkREMEQ2MUQwNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NDgyOUI4RDdCQjExRTRBMENFQjFCREQwRDYxRDA0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg2NDgyOUI5RDdCQjExRTRBMENFQjFCREQwRDYxRDA0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yJJBnAAAAS1JREFUeNqkk81Kw0AQx2dj8NK8gN76LMWzFAvqSQrFFkV8Ag0BDwUJWEQIeBApan0F30QQehDag1e91J0ZZ9JmqaWJHxn4ZT52899vw8xQxnz9RFH0Z5UwDI0TmBV+/bMM6GIvC4ioiIHwkeXz5gQQcSkWiYSdVtyviB9qbamAKiPDq6B+JNwIY2L2Ohd30z7MVanF+QJEwUHvXv260BTWNHeznPap5QoQ8bPGR5cDjVOfWe9wO60Jb7l7YBGfsvz46tF1ijsNbVMmZD83cmcAaE/P21vf7oTkunblHciuMhVsojYi0nW3VU9r6iWXgenW2EnAMovFY/Tnl6BmAPdJdM+amw9ybC8+2xMDvIdFV9ktwRnBCthdjXgG/CSQJMm/HpMp+xo9KGlfAgwAhdj2yNFovjwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAptJREFUeNqcU99LU3EUv9977zaWbv5qzDldy+aPlUGoJYUkyiRhBhX0gyCyHnrsQaK/oSd7DuqhIggfHBSBtaBMdGDracXmJrppuuam2XY3d7f7vbdzbFd00UsHPpzz/X7P55zvOd/zJSfuTTIohJByfQoUYk5RlDmmJGDv0yzzt9gBbnDo8T9wjaCG9S3cK53tE77M7mus07deO2NzZkWptvP+u2d3XEe6h7saqqeDydjL2WXbSioXBr8pgLRzU7UEkKH+DvPx0fNtg2BrqawU92biWKIBVRh7Pe/98DURAHuHyJdqaW+xGFpHh9sGi5KMG/nyq8qyQjEh+qyksmIknonCOsTKsowN6bw90HxMlGRZoooEoP+AhD7oixzk4g16Adb5tXTlIVNFYW/WIpULQp4KQl6CllCxCAFw/1t0sxrIVjB7WQwQeOi++tgbCYADReREml/Z2F4Lx4Xo6kYu9Stb2M6LlFJJJojx2dgicpDLQ6SZo3dfsSMDjg6oX4ZsQjIjbu3UTErPjKOhMEQdhQs9TQ7gTIA9gyVMAxzN5sqm9HaRAXIanRV8VkWlMLtxtDyrabUY05A4DsM2rTbR/8QbXtLyhLCE4QnL8OxekD/gOKIxGbWGF1MLceQgl6vpuowB1jcFsT6xlWP6OxoaKTSXUkUhDMYjHGRi9TpebzLo9I8mg6FA7GcEOB9xBNS6mNruKxpdvdNtd3Y5L522W3razVUeX4zz+BZj1/taHDUVmsSELxqPBr8ExR/BN5v+8aJaljrGdYCDle0uW4Vz6DBnMJnguGr16Y2z1pvPP9HM+kI2OLkkhN5/B78kIIXjrAbAbh8oYfd/1F0cO0l0xnOKmH674Rn9XNrGicwCcjigRP2W/yu/BRgAd0F+LkZjoXQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEaSURBVDhPlZPPaoNAEMZ1JULjAxQFH6AUb/65taW5BvIGhdKe8kI9FnLNNSHH0KNWpLe+Q3vPQVHzjUy3mmw25AfD7Mz6fY6rmm3bGjp8379yXXdumuZHmqY5tyVaAxJ7nreC+BHX7RAPWZZ98naH4HxEX0w18hjpjtZ9lAaHYgJ33zZN88al5MjglLiu62me5ztuSQYGl4oJeYhhGI4sy9pAPOka4JyYkBMIIW4PxBXSi05MSAO8ni+IFlzSqY8Q6yAIrrmlZHAGMHnum4Abx3G2OpOBAcTNpSbKLxGjiziO35GfuEV8l2V5XxTFL9cdgwn+ODWJbduvvJYoDQiFyU9VVUte/0OPoAsgkiSZRVHkq/bP/s56DGMPwgC+rxUbnusAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACKklEQVR42mNkoBAwElKQkpYepKCskvvh3bt/D+/f9Vm9atV3og2IjU8o9QuN6Pr37+/b00eP2PV0tl+LT0iUYWJm0ps/d+42vAYEh4QI6hoaPwuKiObYu33LrMKcrHSQeFpGRqultW1QYmy0Jl4D/P39nYG277G0sWO4ePb0ywtnTkk/vH9PWF1T87KLm4fYts2beNvbWr/gM8Dc1snlhG9QCMPvnz8YNqxaeZadg03fysqG5du3r18P7N/H39rc/BenASF+forcAgJ3alq7mNjZWBhYWVgY2FiYGZiZmBiWLFo4NSc7KwenFyJ9faQ4mBgOFHH9VxV29mP44+HHwMbFyfDh7RuGg/v3rX/79l10VWXFd6wGxPt4i/EwMRwsYvqpIfjpG8PfD98ZZohLbninojyNhZPrUXdX502c0Zjj5SkM0pzz84s258dvDP+Bmjfy83+4xMetOXHvnhd4E1K1m6uQACPD3tjPHw1YPnxj+Pf1F8N1Tg6GhXKSWfN27ZyOK6zABuS7uTFp/v51PPjtezOGzz8Y/vz5y/ARGGhdqvInvzMxWS3fsf0fXgOS3dzN8h4/P8nn5c3AqKjA8L+7l2GWgvSfe1wcpiu3b7+AL7WCDYj28LSIffziuAYjE8NfTk6G/f9+M2yVEOlfv3VrEQMBADYg3NOLkfXfv/lqX77FfWFhZrzJy32J4f9/641bt34hygB46vPxEf3PwMC2acuWp4Q0wgAAPGTREb6YZpkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVQ4EcVSwU6DQBRkF0tiOasJCR/ggcTAwlGj5/6E0W+qd68erce28QiBP/BGAokfoAcCOLOJTcGtpunBSdjHm50ZXl4Qfd9bh0AeYqb3/wOOOEaSJDHKZdd1D3mef5AzIQzDE8dx7pumeSqK4o0aAbNCfRVCTLHQddu2M1NIEARnruuuoT3H846PqSzLSgnTFc0gLdRr27YXSindkyNGZlKnUsqQL7Ku6zlCVmyIcYjBbEH/mKbps9ajsXzfP/Y8bwHzjU7BAZ7j3oF7QeXYGjRj9FvUjoRgALEjpEHARAtwjM3kNwFsTCHkCZOZ/OBHKsvys6qqGcSbnfxm/hFAYitk+ZeZ9xzN+ERRNInj+GLX/Tc/2IFO3PMY7GBPr5Z/Aa+LzZWQq5hfAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjlJREFUeNqMU01oE0EYfTszuzu7aUyLIv7UogZB8AfRSHOQHotVQVRQevDoIfSgIr14sNoqFKqIBxUNEWsvBk9ClUath1482Ige7EVBpAgtVbZSMZr9GWfWTVpqEnzst+zsfN/bN9/7Vuvse+qUPb/ZDwQgr4bQAEo0GIx+K1zsWnVwoABWdv3mfN8huB7+CzoDTlwaXVlZM1+IsDg78QlE0yCvmpBpCOTtVMcmqJoqgZKt1k0GAw0JtDoEIiwUUb5CEBJE4AYNz1dHQNge1Sd10lLE8ENmM7WllpxRkAYECr5G4BHgUTyGz0Mvxb3fC/JNdD5LKrB0Al4r5B7nBmK2jeHB86Dbk5hpiuMnIYJU5Jk6hclqhK7DMCzoPIGp/BAymTN48CEPZ9qB+3UWREQMvEExs2xszrah9+QOZIcfIp1qxzh5hr23M6mqgn/kS1dMk0OPGVhzK4ndR5NY8fYcurc6GC8UcPXKtVTH5RfFag+4nJDFr0eybYbE9STaj20EvswB8/N4/WQEE2aXsrVoBz7CvivrbVM2MQwGyzJhxDSYg21IH1kPTM8AzizuvlqNfXc+gvq/QleI1M6U97LBaIH+d0iUXVJX61gaVm+PLCwBUzdwf3IdOnPvwWUCFYtzz3SmLXT3j8bVkKhpE9LZsmbhrN2KFq+E/TsTGHmzATfX5pC78BxMuNBJ8H3J/4VdMujyoRnoOTxJ3DKObzOw5fTj1LJt70D/2LsKQT3sWfJcrJf0R4ABABhWvcRclgmOAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAnFJREFUeNqcU+tLk2EU/7237XV2oS8mXijoRpN26XUj6EIsnEQQ+qVPQVCwj5OI5tRYjcrKoC/9FX2p1MxLoAWhIBNKm8siMXdRkIoNCnVzp+d51rxUIHXgxzm/87znvOf8eB4lFArB6XTSyMhIOJVK0djY2KY+nU6T1+t95fF4ZhAMBkH/YQC2hsNhqPl8nhP09A5AVRVsZrncCs6c9iIQCGQYleSOjo5aflBSojOUwGKxbADPlVp0bN/Cztg3uq6LRsU6mXWK8EAzaTAxaJq6DgpMDMdcTlx8+g3H3Q6YTYUpi3WrE2iqylbYCE1RcMQ4BOf1QfjqrXCEhnDUsK2bgNYmUDVtY7Eqw7DXoKZ1EGVVFRiey2F3zQFYrw2JBqHglYhGWREbXNU34xM0EZ0UiEbfEeUXyRropsSnGNFyhuzNXURLGcYn6XDbcy684bnzEuqqBqoGhY0sS8C+vbvgbO1HRXU5LGYzoKiQZZmNqTKuo6xyJ07d6o8olJUkl8vVMDo6+uTDx2nWQIZJkVD38C3O19vR/zqK71n+Mwm6JmMxmwffu9QkoeGkDX3DMaGmuBjTM59pZjZOs/E4YytkC3TSpZ4F+vElxfgyOVqeCc+5r+8rnbj5QqyxqsFsPEHxRFIglUyyTI72X35MS+kFEdubu5nPCm5r6RXF7Tfa1jSorqr849ZNPWjEwatd2MM02aYrOPcogYnIOGL3z6KNmiNZSSvcREmSan0+H7j3+/1wu92NTU1+wbsuVCE9P48d5WWYi71HJ+M83373Xi3XhmuAwtsQq+DXXubfuFF3e6C4s8jzOv6Y/sWMvyV/CjAAPmp4bYjgK+AAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHySURBVDjLtZPvT1JxFMb5O/gHskVzrrV+mFZomDdEDGkYKSXlRleY6IzcFdQ7lBgYeaELBNjFEpbWi9psRU7JnCa3VYTV/WfY01davkFk0/XivDp7Ps/Zc86RAZAdpmT/BWDLmun+5ZuS5X0P+paMML82SKZXeroqYGDttty22it6Po8iWeCxIAlI/5pF9Osj3M8MwPCsXex8ekVeEWAlYn+OxaKUxNx2FKmfcTzfjiH2ncNsnsfIOzu00RZxT4B1pZee3GTw4vdfVyEfxkTWAdfyMMJfHiL2LYgImcSyeAstgQt0GeBuxiQl8iEIP/iSW/eCrtiV0rLXkm3s1ThVnN6cQkj0w511osl7TioD9L29QcaNY64QhWvlHrrmtey/niasclCcEqrp81B669HoPo0yAEmaBBcpuTOZQegF9S6gdUaJqms0vdRL3JYXQdEHLueD9snlovpxc2qnd8nfiIues9gXYEx30INLFvAksB1IIPcAd9LdaPY1oEcw4HqiE2ecJ7DvHegSlGh/Y0FgywP3uhPeDRae9TG4P7nArjHQ8W2oG1KgIkATUcmpYJNonjeC+TCMyZJwFOMfR+BadaCdo3DcdhRVT5kkTZOkC/VjJ3GKqUNHSA3NTCsR1+BAz1RrPwaFtQYH/kZF/5GKa/wDDtK86rC6fMkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkFJREFUeNqMU01rE1EUPTPzJjOZSWpMO0WEmoAL/4JICyIiolIkRLCEgrgsutKFiojU0gguhW66E6uiVquWUotELOLGD3TpwtK6sdRFS6W1+ZgZz5tkpm3Q4A2Xl/fmnvvOu+de5djgNKS5njdeqbo51/PxP6apCmK69kTIjYRI8NjVE1wBRWkN9gmI6UBhaDInwkN5c7UGPHj/ndnVIIkMVHmT2sjo8aDmeqjVPBT2ZwKMup0WcHfqI3baJsamPiCdMPHw5Sc8LX3BBH381Wek+S1hxiKM6jGL7/sNFsDFvh4YmoILp3sQ11Vc7j8IbtGZzUCQWdIUSBgaGhCoezIdqCchRSYwhQaDwLgukLIM3Lr3BqmuLvxcWIDLIIuPtw19k4HLazNMYjIzsUhbMaTjBhzSv3HnNZxsFovf5lE8exhr5SriQoWla/AaCQQLsbRecZ0d7W04NzoLqaIsmWShkPKPuXmMDBxFhYUbPX8cy2u/kTREXTqZYKPqOvcHDvxVrvzttxgudGNpZR1JMsvfnMDjSyel5FENRNg4z78uBs0RStq7bxfKDJTWRrCgRNPX8zzzAoZhu0Uy7uabt3rYMFIh+ZOoI9ceBevWXo0aqcOObWuYTVMQomYGT0UMlGYGjm2gnVSly/9BY7EBKAgbh9pbKnLFZ8Fqc28a9XkQ4bttStNsFqvdP/wiGp5O6n+mOBnUKMBVfpUENlZLfSPvDjVPoQxQyqszs8XeKy3makVev5ee+kfAMn2u1WT+EWAArZDPc+ctniEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAXklEQVR42mNkYGDIAmJ7Bgg4CMTTGPADFPWMQGIlEIdDBY4CcT8BAwqB2BrKXonNgAkEDChANwDkpGiowFIivQBXzwhlhAAxiL2agTgAVz9qwLAxgOKENDjyAtnZGQAMNCxdCV45FQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVDjLrZM/SAJxGIZdWwuDlnCplkAEm1zkaIiGFFpyMIwGK5KGoK2lphDKkMDg3LLUSIJsSKhIi+684CokOtTiMizCGuzEU5K3vOEgKvtBDe/2Pc8H3x8NAM1fQlx4H9M3pcOWp6TXWmM8A7j0629v1nraiAVC0IrrwATKIgs5xyG5QiE+Z4iQdoeU2oAsnqCSO1NSTu+D9VhqRLD8nIB8F0Q2MgmJDyipCzjvYJkIfpN2UBLG8MpP4dxvQ3ZzGuyyBQ2H+AnOOCBd9aL6soh81A5hyYSGWyCFvxUcerqI4S+CvYVOFPMHxLAq8I3qdHVY5LbBhJzEsCrwutpRFBlUHy6wO2tEYtWAzLELPN2P03kjfj3luqDycV2F8AgefWbEnVqEHa2IznSD6BdsVDNStB0lfh0FPoQjdx8RrAqGzC0YprSgxzsUMOY2bf37N/6Ud1Vc9yYcH50CAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkpJREFUeNp0kk+IElEcx39vFBc9+OfQRTAwzFt4CaYOKStj6MoeculStzoIQSB4kCVckmDx4iGCXWYJIqjoVOzO1l4qT1F7WfBWHvxzDPyTB3XUmXn93suRybUffHmP997n9/cRsFgwGARJkiAcDsPlwgEIeEZQAhCRAkgAlOD6SQP4rgMFDWVnYCAQgFgsBqFQCBwOByzZNQOotPHx1RNCCCipu6bfb+zSnslkeOQVILPrBkAirbws9btdTEWAzZPXpfepOzaeGMBXwe/3w3+MwTc3Dl+UeghTiskbBvR6Pbh18mZHB0jjmxvCKhIfR37s3r+Sevf8ca/T4TBF2HTSODuDxP7uNjrZFFbBk8lEzOVyspa4ykGYw2zfbTb/7ilvok1YhlVVFfP5vDydTkHXdXDdlhZOOnPY4/HA0YPtp3h6LFjh8XgsFgoFGTPgsKm1zDr8ajTQh8Fh5eGjZzjGI8yjKlgjF4tFGdd/YKYmRja24hw+zu3sYe2HiH3hYzQjl8tleTQanWtou93G6Qngdrth6+1+9h6hTULJZ/PeziJXKhV5OByeg1ut1gJOp9NZTdNOcQ419ot+ggp1qoLdBFmqVmNpm3A8Huewy+Wq1RH8QH9zmBlJJpMRdCIqiiIPBgN+2MCGsW/r8/kgGo1m0fmpzWarseayHlmNeL1eFiWC0cRqtSr3+/3FpSiKHMZtjU1glbFyfKgLTqfzEka9OJvNeDnzz1JnCaFmqOl8ZdJY1SiDOXCiXKg1NtG5DIt0y6ov3dE/AgwAENFWYYLj4mYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbpJREFUeNqck08og3EYx593tjZWa8m0f4ftJLMl1Dhwo5WEwwonF2e54OwkB+Uu5YSLi5xIYclYspi4LW0kVshesr++z+t917uVtTz16Xme7fd8f/s9zzOha37fT0TMuUzJ0okrSh6vk5i8Vn9MjaPLJOhNlNqaIm2xWOy+WBqYhJBQKaC3tpI7uEg4I+WfDzFJNK86wwKRzrk9Lo6oi/P5PBUKhbKbGxxeqre3USaTIVEUfwVAGCIu+DvlIBdWFqtNp9OR2WyWYg0fhMAbsHPMNzO1mobfB26BFxir3VxN4B6FT/ABfOYEdaAXzMr+T9OqbjwBPrnACDFLbGUo6J3ZZbEWIMp94pmW3qhVNx5EURjlBL7PM72jYWFBEE6R2xD3ADPiw5LAy9kmGZ0+aUQVFsLBEIqVPIH8FYwgdsPHJYHn8Ib0LYswytI0+cdLSrxABpuHR5tGGgPtIF72BF5X9cryL1MbL5BjeIHDJK++0jtNreP6eryRRLPZbEcul3NhV/oVAUEemw4Y+DXAxM3i/w2/BjQD6/vltg0Cg/HVsQD7yinUZN8fqSPLxJoBzT3gXFCa9l/7EWAAzPnjDbCjlJUAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE3SURBVDiNjdOxSlxREAbg7+4GNpWipElnVAwGhFQhaQQr67yAWKn4Dr6AVgrGYJk+zUKIqQIrkmorOwsLo9jFEFBTZL0WdyInd8+FDAxz5jL/f/+ZOaeQtxam8DnyDyixhd9pYZEBz+EAT7CJAebxC1+xnRa3MwSr+IZ+gG5xiWMs4honqdS6PQrQTaKyjPMMNrCUFv+vFfiIM8zmFIxgB28z4LIWHywlWMMYziMfhN9F/DvwtKV/WhjHEZ5G/j7ARfzoFX5gNFXQNIPH+Fn79iXieqogt4U+VrDfQF5K7k9KMFDdiy6e4wUWMgTtqB0iuMCzOP9BT7KuxCbxPSdtEqfoRP4S07WaTtRM5AioJv9O/o0U2MNuE5hq+p/CX6tabOGN6mV2E4WN1sIyDnEV3lPd/6Gt3QO34TzQu218XwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA6hJREFUeNrsmltIFFEYx0eTIh9EKFIjsMgIqbDIbANbK6Oo6EFSKkh6qIiiqxHYQxEIkUpEb2URRj1GBmtUD6aRpt2s7EK3h26UZJmlpXnb/sf9Rg6H2bntmd1Z2A9+7OzMnHP2f77vO5eZjfP7/YqDNgbsAR7wENyhz0HZDcU5KGQ32A+mCee/glYS1QKegi43CtlIAhaYvP8XaCJhzXaFyRSymQRkhVhPNxeG9aANdIZDyAZwFMx0KET/gCfkNRaK98AXmUIKQAnIVcJrAySmhWAC2+0IKSIBHsUd1gf2WhGyBFRYSOJw2u8EEzetYorBSsW9NqwnpBDsAnmKu+0T2Kmw0BLIB7f87rdecASMG0kPTgA74fNHh50FU3gH8EJqo0DAA5CrEUVKPMWZF6xxcR58BttpxGzUm9nvu3RYZXNEOdFrtESZgc833Dm2YDsF5hNpERLhGxmNAt4wNDb8bhLOVdPaSd1PZJG3csAikOmwgEfUfq2lUvBIvZBQOVrJxJEBCkElle2UlMgfwTaDtoPCQusd9EwnXT1gAui30BdJ5K1s+pwHplr0QiU4DP7Z9iOEdHG90mq3RwRmUe9Wg8dgOIgXroOFMtpkHmHr/UTS1QCWBtGcT9vUlzb6K53yLJvq76cFqC+EXEqmHP6heqSH66FmDbXx4CZ3zwtwCewDeSBJkhetcJAiif32FerM/k1IOLHQSYMk/QmugTJQAMY7KGAOaBLa71CFtAoX0riCY1noWRx92kGyZAGJ4ESQ9jrUJcozIfa83PFELn/MWgrFriwrBq9pV6poPFoqUnNkq6DwCtcTKTojjpYNAK8kL6SDOp22jpOnRle/KcINQ2AdhQcb1f5aEHJGkogSnXaZuEyxjHqgpZyNCrctCglVwFrQFqTubnAgWFn1YLGkZUYoYXRZp97zIFWvDv7L1QgJ2aLj9SazOSeeKAZV4LkEIZMNGveABp26yqx0iN7F2aAiBCF9oBEco4lSFcYGkdM6ddRoJbOZtZbhutLKQ3GdcoP0tJ1t5FI1yrLNXSmoceq1giwhelZOImxbfIT35HfpAWBpqBUlOPgjM2np7qEt8lzOY+x9xyFQFc5Xb3ZDS2tPsgxMAudG9xFRKMRRi3SOxITEhMSExIQ4L+QVqIt2IRdpxl6uBN51u8bMTojs3cQOcEG49hZkuGFCNCPkBlivBP78omXf6cG364WwZ1RDBmuo99GwRBkyuP4BrFYCf0+KmP0XYAB9NOZCoZ5pcgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEUzZpn////8/PzJycn5+fn7+/v19fXNzc3f399mjLPj4+NYfqXx8fF+l7Hq6urv7++as83CwsIFHoQzAAAAcklEQVQYlWWP2w6FMAgEF+jFVm31/3/2LB5iNM5Du50SCBDp1YJFRSBSU9aLdNJQWC5km0MHjQtNpGxDSzmXlyB2CfbIbkYP4biZk+JoeNB2NAhYhrhWeJI4/wnx+xL3k7lFi6hav1N8Ob1JFc/1zWr/AQsIA0E5Juj6AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYVJREFUeNpiNC7fbcbAwADCp6AYDj58+ADG/39+Yni3oZgBHfz//5+BCUiYn+lwSQDRIAFkzM/Pz8DBwcGAD7AAFZ42KtvFCGT/BWJxIP/lv3//wAaAaJAhvLy8DIym4QxvT6/EMIDRsHQnjC0B1OQGpHcBNb6AGQCjYWyQITAXvj+7moEFybAXIM1ACXcgvRPKxwCCxqFwQ0GACU0eZDNIsycQSzIQAZiwiIEM2QHERBnChEP8OdCA7UDam5AhjDAGj6weg4RVDAOXtA4DUgBKAbEPEG8B8p+hB+z92eEIA5ANErOIYuCU0oYpBBniB8SbgPgZQQNggFtGl0HUPJKBQ1ILpFgaKOQP1LgRyH5KlAEwAPKSMDARAQ2SBmoMBOL1QPyUaANgAOQlYBqQYRPXSAFyWYGG7H8wJ2IPEzQgmUGCQAxK+NxAzAfEAkAsBMQiQCz2/dlViWebG/7++vWLD2iz++/fv73AeYGBRPDz85uDopFzORgZGfeCoxEUIJQAgAADAL0DBSrRRntNAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAZCAYAAABZ5IzrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIwRDFGNjVEMUM3MjExRTJCODIyRkFGMzMzRjVGOEQ1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIwRDFGNjVFMUM3MjExRTJCODIyRkFGMzMzRjVGOEQ1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjBEMUY2NUIxQzcyMTFFMkI4MjJGQUYzMzNGNUY4RDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjBEMUY2NUMxQzcyMTFFMkI4MjJGQUYzMzNGNUY4RDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4YBv2uAAAFZklEQVR42qxXa2gUVxQ+M/tMNg9jQhOxediGPEiCaQMKCrZSEfwhsS1CSyntL/tPEFr7J/1RweCP2pQKaam1waKUapUWaaDV0BIJxGiwNg9ijeSxm7jZZF/ZTXayOzvT70zuhKWGZHftwOHuTO4997vf+c45N5Ku67TR07Vz51PfUlYUabpeh7ESFpMl6THGRxLRijlPovQep8VCQ5EIWSm7pwpAjtpk+RWXxVJlkSQn3pMJXY+uaNpoUtd/xbefMU/J1HFGgPjE2PhNADn9vNNZu62piQpaWsheUkK6qlJsYoJCAwMvT7rdb4VVtRtzPwawsUz2kDIJGWYeByOn6xob88qPHaO8OkQL65OKQpIskyU3l7SVFfL39NBUZyc9Wlp6qOr6ewjbnf89ZADzRo7F0t60b5/rhZMnSU8mab67m5bBihaLEQGQraiI8hoa6LnWVsrZsYOsp07Vjnq9XyGErQDl3oh5uyQZlhZDmLENDn9vrq1trO/ooPj8PM1evkzq4iIRTibBmCkOGwN11dRQBRgM3b1LD9raaCoW+wzrP1oPCEJKRTYbdeBgf8GfnA470MLrWNTIYeJNPV1dlAiFDDCrngFG00iyWkmC88jQELkvXKCiPXuo4tAhssvyu9h8x1MCBhiwR3/6/fTP0hKFEom0AOUgnV8tLy+nfIjYhzDF4cDAAQdsrBtzJDAk2+0UHhykyPAwlRw8SIVWaymmv6YLVtjg07DzbrfBzqyympByGtqpwkmqCpqbScMiPj1vaoRnHdPicSNsPDc8MECO0lIq3bKFXe1ayyQYM/MFgPQHgxmnfQks11FWRsnlZVLhwNgQG294EIRQ8XhIdjrJWlBA5PMVmEVyO759C2YGw+Gs6lACLGlGOFhPAKJxrLEhbZAQnHkM3AgljEnhEPHzOZgZjUbXXbdpyOBiBvQGo2NjRp2xuFyUhDMGyPUn1RisOaqoKU7oTsXcKLLSIctuJIehl9/w7uZSkQ0gWq0fwwv37xsgClGZFThjjeislxQzxM2gkDFGo9u7l6IjI+RRFM0mSb2/zM3RAy4VGzxppT1YuoFaEvFev05lR49S/vbtFIZjk401AyAVYPxgpfTIEcqpqCDPxYsUSybvfTo+fvuPQGDTveQ0C3VPQtOuDVy5QqH+fqptb6eSykqaA1PzEHoAox/mBZggMq3m8GGjMD4+c4ae+Hzq7UCgYzQSiSwmEg4uI9wpeOSmzIbfDhNLJr2sHDOvbrXZdu86cYK27t9P/lu3KNjXR8rsLMkOB7mqq6n4wAHKq6+nibNn6WFvL90Lh899PT39oT8eN4HIIvMtELlkJKSuq+JmsCRleB9qgcB/RCN88SXog8PC5YALIac56ycCzcwgTNMQ7kg0euPLycnjAMNpVijAWFJGs4Pw3zntAlIWF7TdWHEJR6vOResoR02xFxcb6R1CjZoDqBw02r8jkZudU1OfLMTjigCz1r5Sfhs1klYvdOhFtJDNBe0OvLyD8TtcxhrGoSEdZvYmBtMfCvV843afg2by8Xmb2NQ0TYBJpoBZFiFLyJTdMwB7G15HTCDctVFrqC8Y7AWYSwCTx0VZ6MYOswlGGBCXeS5EYcFMQPyOZwuInyFk3gfQ1BMwZQDC9WGoy+P5CWAYQJEAYv9PaKICxLwwv3hfflZAFNf1PkXT2pgZaMX3/czMVVwh4oIVE8CSOD1vPgfzCluABcXfYkLY+qYaMvvPOsXSVOcPAPQ+ao0P7WAC73kppw4LiwpgigCppmgps+YqbXIPRqiURVU9PxmLOcTJY4KJxZSTpwr62f7ruOb1bnplwl37JvTkEswsm/RnI4N/BRgAjZAZu1yeG1cAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAeZJREFUeNqck81LVFEYxp9zzh1lmhkSCT8WQYwmjuJoMgq1aSdIJEILpf6EVrYqFMabtWijUW7dqiuFYAIXfQiJ0nUEMeZjEVnjgBWkRoLO3Llv7713BnJho3MvZ/Ee3vu7z/Oc94CIsDF9jeIvw4RKHhtgf3ycjdH68zaqGPBxsoUOtxfIOC/EAbwIU2F3kfaXbtCfLwyZOjtEuBl0kZnPobYugEuNAXiu3Efy1Sh6RpKiHEAWZSAyPIG6yw0Qygfz2wxCAxMwpkJ0NgD/Z31uDFLzIhX/DFXlh5WdRei2XhZSVABE7uqQHi+UUkgaCajqAOjHIlpvjTOklcoqiM9F8TPzHUIK7O4VZhOrG1AeP8Sv1wzRT4XIYgSIDEXREGx2igE98dAkufNpZY0hAcj9N6cqcQCCFRjz41xVsxunJ3N9ZLP/2BTpreV3bM0P+fsDQ6IwJk9ChDtIndR95xFye1vYXFrgk1DsSjjhWJYFK59HuG+QSwumL4J0TEfvg7T4Zw46ycwdoT7YhsarXScHzX65hwoFGweOCKa3A6nYY56TlNBKjb33nsA82OZmC64LKuXrgpS7Z9vV6CvaB58irunkKHj7LPz+4gXchEWlDP4/vvaSkpfmWhBCNPFeTSW3+a8AAwD6deEyEUwhFgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAAAgCAYAAAA8C7thAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI0QjlGOERFQ0Y2QjExRTU5N0Q2QzIyRkY5MjZFQjVDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI0QjlGOERGQ0Y2QjExRTU5N0Q2QzIyRkY5MjZFQjVDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjRCOUY4RENDRjZCMTFFNTk3RDZDMjJGRjkyNkVCNUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjRCOUY4RERDRjZCMTFFNTk3RDZDMjJGRjkyNkVCNUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz52RirpAAAF5ElEQVR42uyb709bVRjH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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADAUlEQVR42mNkoBAwogucjQrwYecXYNeZvmAtTKzVSJs1yMU56+Od26ct1m0/htOAM2E+oRrN3XOZODlfP545eYp6a29/qY4aY0ZszDzJ8FifP58//bjRVh9utnzDMQwDzkX6RyuVVE99On8W06/Xr14o1zTzPF++aBIzNze/mG9gzq2ako98+sbPxQNCpW+11ceZrt22B27AYjszraD5S/c8nNzz//PF82JAoR9sYuIPNPtncPz58kn4Zmnevz+fPn4Hin8VdvVkF3H1ZFmWm2madeL8C7ABE830RSMbW7YBFfE/njGJDSgkDcR/WEVE3/378UP875fP/0GGMjAxvVCpbWX98ezJxTndXWH156/+hHthhY2JpF1O/hIGRkZ5qCEgIATEXED8i4GZ+blyZcP/ny9fXNw0Y1pU5qGT3zECcYurjaTjjPk3Xm1e9/TVxrXCQCERqJo3spn57zkVlLj311UoB+04+BMjEGt11ZhiAvy7JcNjEm5VFf/5+/mTIFCYBYhBNj0Ehsl31eZu/qcLZ08Exs5kFANKtFRY0sJCp4kHhATdrin9+PfrF16o85mA+DMQs4PChE1U/L5qS7fosyXz5qo1dVXDDVhmZ2YdunXvmmvZSbd/PH4I0igG9DMf0M9ff797++DRtAkgr8iADOEzNnsgl1XAvyQ61DL9+Pn7YANy1BSZ8qMjp4sFhHjcri558Pf7NzXl6ibWPx8+XAamA85fb9+IPpk9lR3oAkHVps6fj6ZPmK01cVY5ShiUaiozpYaFdEuGRYf+evWK68fTxxc2TJviw8Xwj8ejqHwbCw+PCKeSigRQc4NW/4wurEl5h70pi6K1bTe7pLTG6x2bk/c+fPKBlZHxv52MpLRkVHznx9MnrmpPml2Hkhd22Rhp8bOygEyUAmJeaLyDAg2UeJih6n4BMSsQ/wPi90D8CYjv3fr8NRfsgjoNRREeFhZQtLHxsDCzMDMycnMxM4EM+gvEHDCXAnV/+Prn7+8ff/+9f/vr95vWm/c/AAAlsDA5qp9z9AAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM4MEY4MzRDQUQwMTExRTJBM0U5QzEwMjEzQTg5RjA2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM4MEY4MzREQUQwMTExRTJBM0U5QzEwMjEzQTg5RjA2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzgwRjgzNEFBRDAxMTFFMkEzRTlDMTAyMTNBODlGMDYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzgwRjgzNEJBRDAxMTFFMkEzRTlDMTAyMTNBODlGMDYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4hFyZFAAAA9klEQVR42mL8//8/AyWAiYFCMPAGsKALeLUfDjFRFrJlZmRkBIbPPyDF9BfIOHP33eFtlbZrCBpgpCho2xSm7frt17+vDAz/GZiAJnCwMvHUrLjCCJQmbADQUqZP3/68e/Hxx7tfv//9+vH7708JAQ6hv3///iPKC7///GV49/XX53svvzz59uvvj7///v398efvj8/ff/8gyoBfv/78A9r+/sO3X7+YmRhZgP4H+YKV4f8/NqIMADqZRZCbXZhJnJEZyAX5+z8/N5vAn7//PhNlwIlrTy62//jBA7QdFPhg6//8+//jwr03F7EZwDialCk3ACDAAN3Ee4gixN2ZAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAiVJREFUeNpi/P//PwMlgEW/eDsDKysrspgZFJ8CGn4KmyZGRka4GhaQwJ8/fxiYmJhAEiCu+dlO13jj8t0gjio2A4AGC8HUMOoVbQMLQg3QAjIdgJg1y0PV1M9YSg1dMzsrE69jw/7JIDVAfJIFSU4baLLx/kannB+//n76/ff/t++//n5A1szPzSrjUL+vHcg8C8RXQS4GGWAFxJb//v37vb/ROe3t518PkTUxMzKysLEycXOwMvHZ1+7pAmkGuvYqPBCBGq0v93uH6xZuXfn5x5/3v/78+4vk13+7Lj5/O3fPnYugoALiM8iawV4HKjquU7BlTYqLisHn738+AA34/fXnn2+P3nx7+u7Lr09zdt++ArIAqI4diK/8/fuX4ffv3wy/fv1i+PnzJwMLUPAIEGu5G0pJfPr++/3XH3++vvn068Pff///fvvJ9DvEUl5VK2/TOqBlIJfpAV18CYgZQBiUhlhAJoJc8hvo9Leffn368O33F2jiYgYG4l9deaFfdtriupICHGKBHfs+g5IBEF+EewFkANA05i8//vx4//XX93///zODwgaGf/75++/5hx/vzj34cGNdhVMEUK0NUNwAnqiU0lY5geI+0l5F2VlfhoNQ0hXnZxf1bd65G5oODrAAA8LryYIYB5mEJQcW7Lr6gsgsIAHVw8UoFjXPC+hnr/8/Pu5+s77oNDG6RQL7TBk5+F2BCWkbI6W5kYmBQgAQYADMsBoKnOs3nQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWRJREFUeNpiNC7fbcbAwADCp/7//3+KAQkA+Qz4wLkuNwYmoCLzMx0uCSAaKGYJxBpALA7EzAxEABagxtNGZbsYgexLQPwRiMWAWAuIOYD4CxC/AeJ3UHEDkEuB+ATcACjnBBbDWYGGgzQJQF1keL7bPcawdCcTugG4wG8gfgrFoPD4ZVCyA6T5IooXGIgEQAOOg1wFxO+RA5eFCI0M//79g8XIW6h3iDMApOnPnz/IQu+BWBfFBcCAwaqZR1aPQdg0nIFLWgdZ+BVICojZgPgXSIAJl+1fHl9ieLiuGkyDvADFf4D4CxBLgPh4DYCBxxtqGb49vQL2DhS/BmJhog2AGfJkYx3MFW9ALvj79y/xBoAAyBWvTy5n+P37tywwYG2ABrjADGCEpntWaPLlBmI+aAoUAmIRaDKW+Hh+rSTQAKf7s8PdgbQXSQkJBn5+fnNQNHIuByMj414Qn5FQliUEAAIMALQJtgYxwUaBAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaNJREFUeNqkk79Lw0AUx/MuAXURUfxRKrio6KqtHR2KRcUfOLkIuro6qP+Ci6PgJtRdxEGsdnCrDQ4uOjgJOtaapjFNcj981zQhVodAQy7vkXuf73t37w6EEEonj5Y6vJtDK0cZxcpxIAAIGQ2hzOPRwvbswS3gj4k4Asj0B4wU0Gf2C2Q3N55aTyen4whc6h8vyOTR1aVACZ3JtXRyyvaYEUdAxp7cvBbRLWmtTSRcCM64YHEEZCxypLmJnPPmvlAmuBzRQI9xt96gpu0wy6EMXz/BcF93AjmIChCZHYFmgEeFV7WcT9OmdSywJSqUoOEu5fLxKwiWQLngHmawGtSqmE4VBTmAQnCaoFWixwV9tX0JhDLOv+quadieiakIUuD3POi9b1ofElYQCGBmx/h2bUykQnvfgwMU+kILBRhj8mQRh3IPQzT4h4M/PqhSQC5fKmVxInH18FZbzYwNRWCI2F8FYayBiRPoZzXXdZffz7bmR3fO7/PF56eYd2gEmUVkemBw83RFgLoknFqhcrGnx6EHNo7T0NWbA8GuodPr/CPAAC/XCt7sE49xAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0M0Y0NjIxREE0MzExRTU4NzkxOURGMkJERjhCQzEwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ0M0Y0NjIyREE0MzExRTU4NzkxOURGMkJERjhCQzEwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDQzRjQ2MUZEQTQzMTFFNTg3OTE5REYyQkRGOEJDMTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDQzRjQ2MjBEQTQzMTFFNTg3OTE5REYyQkRGOEJDMTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4YX7sXAAABP0lEQVR42pRSMY6CQBSVdQOBGAKhsJKKUJJoR6wobLmDnoKekuAZKL2DB7AksQJiYmEoSAzQYHCRZV8yZllc3Ky/ePOZeW/m//+gmqYZvBJvgxfjnSzX69X3/TRN67p+YAyHQ1EUZ7MZwzD4pEhJu92OoihVVXtvjaIINF3X25LO57OiKJ/dOB6PlmUBcQRCp4eyLD+6kee567pg27YdxzEInR6qqkIbP8tYr9dJkiAxDIPneRB6pnS5XDzPA242mzAMsTOdTk3T7JkSYTuOczqdgiAgFU8mk+Vy+dQHjuNkWSYDALIsu1qtsPmXcbhvPp+THGy88NQ4uPOtAUqShOof7CPJ3bjtdgvEvHuNOxwOwMVi0Qowwf1+n2UZ/Pr9awiCoGnaeDxuBXCqKIrb7db7AjSj0Yim6Vbw//gSYABbU7FZ3dTHFQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM2QUIyMDc2REE0MzExRTU5NzJGQUMyMjYzMEJGMDZCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM2QUIyMDc3REE0MzExRTU5NzJGQUMyMjYzMEJGMDZCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzZBQjIwNzREQTQzMTFFNTk3MkZBQzIyNjMwQkYwNkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzZBQjIwNzVEQTQzMTFFNTk3MkZBQzIyNjMwQkYwNkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7peTPnAAAAvklEQVR42syRsQ6DIBiEpTS6OKiLL2AYHdx4/8GRxJHwAiREJhNB0f4Jpsa2mNqptwDhuz8Hh9Z1ja7oFl3U3S/GGMZY3/fOuRcCY5znedM0SZLAEflIbdsihAghH6dyzgGjlO6RlFJVVS0BwRUAh0jjOFprT6IDcDBM0wTPODEA8OMv/a8B2jnnnsBmKIpCCBGi4QoAv9+allJ2Xae1hpreZ2dZVtd1WZa7AVobhmGe51CeNE3jON4N3+shwABRmG50gn9iTwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAy9JREFUeNp0U21IU2EUft7rdjdtuhFq9KWZJtMfmbrUHxkZ0a/CKOiHFFIGkf0QosysrBViGn1oZBhkQkFRUWIg/RFLQq02rfmxac2cpoZibua+7rZ7e99bVgSdy+V8Puec9z3nJdWXr4ARx3EyD4VC4HkeoihKlEAIYT7C7ItEfb9lGcUCqbGF/s+Y7Pf7EQgEsK+gQOZMZyCaZJbyZhbzb4KW5OR1OxMT1+4SBGGGgiSdVov3fX1gnOk+n09MSkpcui45KV+UxBYJ7AMULJvX61W7XPPIzspCbOyy6Pj4OHg8XkxNTiE3NxeRUZFwOBwkJjoGnW+74fJ858OXRPw8HmvvwvmKI3b7iPODxSIbBwes+DzyWW59fPyLrBPC4T31D3/6OFNtvFhcgE3YPacHxwDGi5V2SRJ1G9LWy5VpNGzDwxi0WmEbGoJf8FG7D8xP248ZqnltDyAoCSQEjt02O2NsbDQW3B7wSiVsNiscoyNPHz96mD9K+ahjDGqVCl6fHyo6IbU+Hi6NBoQjkoKNp6ioSG53emYaSl6JYDAI6+Dg9e6uzrdRWu3cqvjE3WFqDR4/fY6jR4rReL8Rhm/piJ6bhoJNoaGhAQkJCUhbnyaPRqFQYEN6RqEhK3siEEIh4aMQ0bwHZQdrcK3pAXKyc9Da1oq6W9UGQuMzGeh4aZmpgM6dVXe6XOjv70cgRG9ZrcPWqRpk7IgBxkYwpDyI22+CuFplNAwUN5lJ+ZkKeUmEgCDmbc4jq1avlOdLOLqNykiE7m3HxvyVwPgk4PyK+z3Lsb++z1B6+ow5RCRwv7ZwNkWfQvSpenyZnIQqXAPwGgh3NmOjXHkCcE2j0RwHd44RJ06dLedAoJQ4KFh1t9ttofu+pb29HR8sfc4g2nS128xQHTsMfPMAA3Vo6k2AP6ccKskHn9etiwgP/7PKN2/UHjKZTB29PT0vb9Zd29JQd9nwZGAFXnRQMKfF3d41OFBvNtgs75ymN12vbly/enjxLZCTp07LQnVVZRJ7FqXlFfZItxUBMUzihXnsTeWRXNJsKCkzmmsvnWNjWqAY++8E+D9l/iWb/xf0Q4ABALuHnKJqedMoAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAs1JREFUeNqkU0tPE1EYPeNMZzp9DDOlhD5AKgQEYwkRTQwaHyAQ41ISN25cuSZxb4gr3foDXGBM3OrCB7HGsINADFEIllLsY3gU+oKhpTPt+A3URlcuvMm5c+/c75zv3O/LZUzTxP8MzppevWRw3kmbVWB/CS1iBsPCLtsPlfUhTwe14JZhtCzp8EcEnMtU0Yc9uHHdHD0R+EPuptLjeaDcuhuWzoyc5u0+CaVTqKS1YjEST+TepO9Us9wLivz8l4P6apQLtT8KDTy7zJeqEpaXgegckHNBcHZ7Wq5c9DRduNq58fR7azXNWrwZi3bKmkwRfsYvTXYMPxnixU0Jh4uAm2KCASAQBIQm4IcOvuiWOh7eGDJdvskKeH/DQcWLCc4/FuYU3QU+SYp05vQCdjcgSYDWCjhkYEsB53a5uMFqOPslNUHU58cOMnaMcMol7xYTQ94lo+onchtlD3UQQuSiDTVvAPuyhO0c1aRL8aaAkYaDdR29ZbtbyCANCQpk1glZluFwBMA4PSgzIvIHQF4ECjWgzNuFdei9DYGYAZuKIrIwQbdFoQ4PL4AVRWQZIuME1v9DEovBsDUEqD7xBW2t3eZ22HZQJg9HaLUCwRxXOUfYOQKyJaBYAVRVM1ahxxtdSGYQeZueL23S+icMbJOuCpbWwAZlV1lgm1IlyX6Uskdi6VICWqThwIxhelFZue8N9Is+KWhjiFym7A6CNcr0KZBIhkzHtKIeVePpGvamGw7o8slKvjL1afbjzlp+39gk3QSRNywHhAQhRZFrB3ljfm52x9C1Kept0qIy1mNiGErRR7tx9h7X3/PYf/Z2sK17TJSVAQ7FZhS+5ozUTLSkvltNGyvfplB5/xpYxjG3LmBdpZngRZcQxLXQOLrCg2A723GgUJ+rSSytLyA2+wHlqFWqDGGXuMZvAesqjjq4f7zgKkGzmkTc2i8BBgAIpRUCEYP8qQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgpJREFUeNqkUztvE0EQnr3bnO/shEeRJiiR+QGmIxWyQAoUAYHoghDJT4gEVRokaBAFkfIDKBJTpCKiSAoIAq6yoMMlTSRkTASByM49dte7y8zZF8WBAisrjeax33y7M7PLrLVwksUvLm2Tvoo848MkMgY/UL3hrpP5k1tL1cWuseK/TnVYYfZJuJLZXo8gUNqmn3d+f332qtHIgauL1VnSCyvhVh57cKtSuVA+O4l5AfnOiGMBJcCbjDzdaHw0Fh6RdA0k2B9DQnYeJwxhKYdyucuyenbvLocv0Q6pp6lmRB4ZYw0ZUrOItO9aIAxiPe7ALmF5/2Y1SqF5SMMwIYtFiTJCKpOinxE4eFLBtXXE1vPZ8eMNiuShqVr7SQtZrTag8r1CMIh3jjpplw3uWUYFOkdxxzDAvzR/wWjgwemSD5pxHNHhno/i9sZm/TxI5XkYTYWCVn29V0IsunCQtOHMWJGeCIwVPQqXgNmMALtdIt2JZdapn3sJJEJC831tsAedWOBEGJ1YPlX0SgwYZ32CdizLB4ncoaefCvnvHvTX7f1I3rhcmRhNpBax0oJsitHeX68SGWeMMVdQv5NSbruuO/X68fW5WOoES4sJdHN6anru0vnitYeb61rrwT8xMb+23Fy9Vz23UAvR/z7Mh/q2Nv+CK6Xejt957lvR/rC3cf/TkL+580eAAQDQKvYtA2VcpgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZdJREFUeNqkU71OAkEQnpUjMYcEMISfxgcgVhJptZaCBqSyprOg8zHoxEoaDULiC1x8AAUj8acghIZQwIVAQIh6cOfM3h0eBw0yybezMzt/u7PDNE2DTUgoMTYX0n/7NOLUZnuHKNKmaEm6ZbVI6SyIOEPUEWUDdUMXTNkrsApJjPzOWPgDQETDi6SRqczYbQngIQIQRl3HHiCPiJqKiKap5/n8oZTJPJoV4jupl7ruylZ1ld0AVJLZbFRRFF3T73NEfT4OeuTnwYDrDrxeDp5ZEOA+l6sKUxQmkwkM0Ihoj+B2A0ynIMvyom42g16vx3WiKAL5CpTX4/FwrEuKGaDZbEK73V4yCBcKnL/G4+D3+xfOqAIe4AcXSZJWZujWatBoNABarfl1rES+wjcux7EYyN3ukoEzEIAAohMKwa7xeCY5HA54qlT0CoThEHbG46UAL4kE5yGXa+U59/2k+2AXnNguTVUBEMSpfUfoyGeF5NGIPsRCAPJlJwDX+Hf3/zNI+CXfaHqof9t0rTX9Z4gvtuk4/wowABBVpMWVwh3oAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRCOTNCN0QxQzUwNDExRTU5OTBDRDkwOEY1RTdGQjY0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRCOTNCN0QyQzUwNDExRTU5OTBDRDkwOEY1RTdGQjY0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEI5M0I3Q0ZDNTA0MTFFNTk5MENEOTA4RjVFN0ZCNjQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEI5M0I3RDBDNTA0MTFFNTk5MENEOTA4RjVFN0ZCNjQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4j+SfHAAABU0lEQVR42mJcdugeAx7gDcQfgfgILgUseDQzA3E71ABbXIqY8BgQKyXEpSvKx2EDZPuRagAbELfICHExyAhzM0BdwkyKAfmyItzSPJysDII8bAxSglxaQLEEYg0QAuIKoPMZ/v7/D8YSQpwg8UYg5iHGgFJZER4hNhZmhn//GMCYm50V5BVpoFwOIQNAivKlhbkY/gFtRsYSgmBXVEBdiNOARjkRbk5GBpDN/1EwKzMTg7QwNz9QqhqXAeCAEhfiBvqbASuWBIYL1Bty2AxolxPlYf6P5nRkDAIyItzgKEY3wIaHg9VPlJ+TAaQOHxYTALsiCogNkJNyOwcbM8PDV58ZiAEifBzMbz79ALnCB2QAKGAWAwUWM5AOOEEGfHx7cescaCLhg2JOLIp/QOlPUPxFWN/7L1OkrSJIEBRCP6ESr4H4ORb8Hir3Car2P0gvQIABAD2Ji61EqXjSAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAEVQTFRFAAAANTU1MzMzAAAANjY2Nzc3NjY2HBwcNjY2NjY2Nzc3NjY2NjY2LCwsMzMzNTU1Nzc3NjY2NjY2MjIyNzc3MTExNTU1o5x9aAAAABd0Uk5TADAFAqH/vAm9+tYhvhcKc+n1NCR5FTVIWpcwAAAATElEQVR4nGNgIBIwMqFwmVlY2dhR+aysHOyofCQRMJ8TIQLmc3HzwEXAfF4GPrgIhM8AEeEHMgQgfLCIoBCQFhYRhZrOxy9GrD8IAABQ/QKgDxdstAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIrSURBVDiNdZBPSFRRFMa/c9+bGeY56qBpfxZBZmhEUpAQiSAVEYSroBZti2xKtAEtkLGoTdDCVbWIVgURBhG5UQInAqGsGSGyP9gfKyKZyHrjDG/Gd89pMb6x8HlW537343e/+wH+Q1euXr87lpwo3rwznO7uvli1is9/TscH9338/EXEtuX1t+/S03/53Gpe5atqveg6BWBmBsICEXZWAxh+4uSzp7O16xqi2WjNtlRqanzWme+bSiZdPy95y6newUPKqmgJdfSzp621sh1z+cqkd07benOW9diLI6H7nmYCQKwn0UokI1RwFkCIpG0XrgCVOQvNERz0zA4z1oR499tM5lVzXd275Q6IGkuNmCEAqDQI1SbBMksBa8Iu1FLW9RZvZ6h2D/p/iaQCAMAEaAGEBWGT0dloY0d9vmx7Mjo+FDs72LkS4HFEABKACJEgI6AEtZYu3yuivGIUyx0sjy4CCBpEIAEMAjJ5EyMfqvDHMQCUIO0HOgZOHjs8WgYYSqZZwKJLAIcBVwS09O8fCwHvAXzNGS/JVY/Lab0lFh/YY5iRtsD+80rYNfjTRBcgKpu1o+ENW++F6hvfp2y9JafxcPKo+WgF4N/pjid2siAFAD9/zYNZ3xq+feO4n9e3RA3a5e2hYBBa61Y/34oE03OZPiHVxVoHRNgEAGZRIkJiGIu/nUJub8PGJl/Amd5EW1NL84VwhbXJ9ymBckSq3zyfOnFt6NIDT/4L0qjiFzdowGkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC8UlEQVR42mNkQAOCOSu0pWTl9bjZmLmevPn4+Muds4c+raz4wYADMMI15q5WLPAxWhCqLy556/W3H+++/WZXFeFiefXl17eeffcrjhdabMVpAG/qfKkZGR7bXn/5pVa19e7fb7//gYQ/AzGzpTz/t4mBav+qt97K2Z1luh2rAUnLr840lOH1zF13S0Rfioe9wE72uQQf+/stV98wTTv6RM5AmudVj5/qr+i2JWYvFuR/RjGA07OYa9OEqruRi6+8F+RkEThfbM7Nzc7MC5T7AsTPa7ff/dOy+4HMhiS9t1177lUcK7RYhWIAR1Cz/r7e3D1Wk84wVrkofGz1UgZpFoHKfwWGxx319uOyZY7yH19++bV4YZR2A4oBbIFN2of68w5aTDzDkWcr+xDoXwGguCgQswDxr3NPPt027jst1eCu+P7mq2/zlsfptqEYwO6cxbpqQsO98i13WN9+/c1yrtjstYwAB8gQof///zPFLr16Z+m5l//2ZRrypS+/mHW73mkzRiB6zz7fkWUlk+Y79yKXEBfrjzgTiZdAmmfr9bc8xx985Ik0FL/vqCrIlrP0jO2vKQEPMQwAhgNPXWbMVhURTs2CDbd+Pfv0CxSPvOzMjP9iTCSZE0wlv3nNvsD1+effPQyfXqYzzI1+i5GQOMJ7+H093ZozrKT9edlZfv/59/8XFxvT75033t2v33HP4Meff5JAZT+BeB/D51fpDHOiXqIYAANsfrVCLILS2uyszH/+fX57/+PKihcM+TtDGJiYO4DS8kD8DYj3Mry8lcKwLOsdhgE4Qf7OSKAhdUCWGhB/ZHj/xIZhQcI1TAPsMxnBUcjMyszAws7EwPAf6PCvfxgUTP8yCMllAOUKgbiaod9lJcQLSYu1GPglO4FsWVDAATEXELODfAPEfxjAJoAxKGCBBjKAcuY7IL7G8OpOLsQF7mWiDGzcfAyMjKxAmoeBmYUdaDsnUkCD2L/BBv78+p7h9/ePDN8/vmHY1f0eABz9ICp2GsJnAAAAAElFTkSuQmCC\"","import { createAction } from \"redux-act\";\r\n\r\nexport const receiveCalculationData = createAction();\r\nexport const receiveFieldMetadata = createAction();\r\nexport const updateUser = createAction();\r\nexport const updateFundsRequested = createAction();","import { createReducer } from \"redux-act\";\r\nimport * as a from \"../actions/user\";\r\n\r\nconst getDefaultState = _ => ({\r\n id: crypto.randomUUID(),\r\n agopname:'',\r\n fields: [],\r\n preprojectpumps: [],\r\n postprojectpumps: [],\r\n electricity:null,\r\n fundsRequested: null,\r\n renewenrgycapcty: null\r\n });\r\n\r\n\r\nexport default (_) =>\r\n createReducer(\r\n {\r\n [a.updateUser]: (state, { agopname, fields, preprojectpumps, postprojectpumps, electricity, renewenrgycapcty}) => ({\r\n ...state,\r\n agopname,\r\n fields,\r\n preprojectpumps,\r\n postprojectpumps,\r\n electricity,\r\n renewenrgycapcty\r\n \r\n }),\r\n [a.receiveCalculationData]: (state, { fieldResults, pumpResults }) => {\r\n var fields = [...state.fields];\r\n\r\n fieldResults.map(fr => {\r\n var field = fields.find(field => field.id == fr.fieldId);\r\n field.results = fr;\r\n });\r\n\r\n return {\r\n ...state,\r\n fields,\r\n pumpResults\r\n }\r\n },\r\n [a.receiveFieldMetadata]: (state, fieldList) => {\r\n var fields = [...state.fields];\r\n\r\n for (var fieldId in fieldList){\r\n var field = fields.find(field => field.id == fieldId);\r\n field.apns = fieldList[fieldId].apns;\r\n field.senateDistricts = fieldList[fieldId].senateDistricts;\r\n field.assemblyDistricts = fieldList[fieldId].assemblyDistricts;\r\n field.censusTracts = fieldList[fieldId].censusTracts;\r\n field.isEconomicallyDisadvantaged = fieldList[fieldId].isEconomicallyDisadvantaged.includes('Y');\r\n }\r\n\r\n return {\r\n ...state,\r\n fields\r\n }\r\n },\r\n [a.updateFundsRequested]: (state, fundsRequested) => ({\r\n ...state,\r\n fundsRequested\r\n })\r\n },\r\n getDefaultState()\r\n );\r\n","import { combineReducers } from 'redux';\r\n\r\nimport user from './user';\r\n\r\nconst getNewReducer = _ =>\r\n combineReducers(\r\n Object.entries({\r\n user\r\n }).reduce(\r\n (acc, [key, value]) => ({\r\n ...acc,\r\n [key]: value()\r\n }),\r\n {}\r\n )\r\n )\r\n\r\nconst reducer = getNewReducer()\r\n\r\n\r\nexport default (state, action) => {\r\n\r\n return reducer(state, action)\r\n}","export const BACKEND = process.env.REACT_APP_MAIN_API_URL;\r\n// export const BACKEND = process.env.REACT_APP_MAIN_URL;\r\n\r\nexport const PROJECT_UPDATE = `${BACKEND}project/update`;\r\nexport const RUN_CALCULATIONS = `${BACKEND}user/calculations`;\r\n\r\nexport const FETCH_COMBINED_LOOKUPS = `${BACKEND}user/GetCombinedLookups`;\r\nexport const FETCH_CROPLOOKUP = `${BACKEND}user/GetCropLookups`;\r\nexport const FETCH_PREIRRTYPES = `${BACKEND}user/GetPreIrrTypes`;\r\nexport const FETCH_POSTIRRTYPES = `${BACKEND}user/GetPostIrrTypes`;\r\n\r\nexport const FETCH_PREFUELTYPES = `${BACKEND}user/GetPreFuelTypes`;\r\nexport const FETCH_POSTFUELTYPES = `${BACKEND}user/GetPostFuelTypes`;\r\nexport const FETCH_VFDTYPES = `${BACKEND}user/GetVFDTypes`;\r\n\r\n\r\nexport const DOWNLOAD_REPORT = `${BACKEND}user/report`;\r\n\r\nexport const FETCH_APN = 'https://gis.water.ca.gov/arcgis/rest/services/Planning/i15_Parcels_Assessor_Lightbox/MapServer/identify';\r\nexport const FETCH_SENATE_DISTRICTS = 'https://services3.arcgis.com/fdvHcZVgB2QSRNkL/arcgis/rest/services/Legislative/FeatureServer/1/query';\r\nexport const FETCH_ASSEMBLY_DISTRICTS = 'https://services3.arcgis.com/fdvHcZVgB2QSRNkL/arcgis/rest/services/Legislative/FeatureServer/0/query';\r\nexport const FETCH_CENSUS_TRACTS = 'https://gis.water.ca.gov/arcgis/rest/services/Society/i16_Census_Tract_EconomicallyDistressedAreas_2016/FeatureServer/0/query';","class RequestError {\r\n constructor(status, message) {\r\n this.status = status\r\n this.message = message\r\n }\r\n }\r\n \r\n export const headers = () => ({\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${localStorage.getItem('token')}`\r\n })\r\n \r\n export const makePostOptions = data => ({\r\n method: 'POST',\r\n mode: 'cors',\r\n headers: headers(),\r\n body: JSON.stringify(data)\r\n })\r\n \r\n export const makePatchOptions = data => ({\r\n ...makePostOptions(data),\r\n method: 'PATCH'\r\n })\r\n \r\n export const getOptions = () => ({\r\n method: 'GET',\r\n headers: headers()\r\n })\r\n \r\n export const deleteOptions = () => ({\r\n method: 'DELETE',\r\n mode: 'cors',\r\n headers: headers()\r\n })\r\n \r\n const request = (url, options) =>\r\n fetch(url, options).then(response => {\r\n const { status } = response\r\n \r\n if (status === 204) return {}\r\n const json = response.json()\r\n if (status >= 200 && status < 400) return json\r\n return json.then(message => {\r\n throw new RequestError(status, message)\r\n })\r\n })\r\n \r\n export const plainGet = url =>\r\n request(url, {\r\n method: 'GET',\r\n header: { 'Content-Type': 'application/json' }\r\n })\r\n export const plainPost = (url, data) =>\r\n request(url, {\r\n method: 'POST',\r\n body: JSON.stringify(data)\r\n })\r\n\r\n export const plainPostWithBody = (url, body) => {\r\n return request(url, {\r\n method: 'POST',\r\n body: body\r\n });\r\n }\r\n\r\n export const get = url => request(url, getOptions())\r\n export const post = (url, data) => request(url, makePostOptions(data))\r\n export const patch = (url, data) => request(url, makePatchOptions(data))\r\n export const del = (url, id) => request(url + id, deleteOptions())","import { put, call } from \"redux-saga/effects\";\r\nimport { receiveFieldMetadata } from \"../actions/user\";\r\nimport { FETCH_APN, FETCH_ASSEMBLY_DISTRICTS, FETCH_CENSUS_TRACTS, FETCH_SENATE_DISTRICTS } from \"../constants/api\";\r\nimport { plainPostWithBody } from \"../utils/api\";\r\n\r\n\r\nexport function* updateUser (action) {\r\n const fieldList = {};\r\n\r\n for (var field of action.payload.fields) {\r\n yield* fetchApnData(field, fieldList);\r\n\r\n // would these be better as arrays of arrays instead of named attributes?\r\n // e.g. var censusAttributes = [\r\n // ['censusTracts', 'GEOID10_1'],\r\n // ['isEconomicallyDisadvantaged', 'Flag_MHI_P']\r\n // ]\r\n var senateAttributes= {\r\n senateDistricts: 'SenateDistrictLabel'\r\n };\r\n var assemblyAttributes = {\r\n assemblyDistricts: 'AssemblyDistrictLabel'\r\n };\r\n var censusAttributes = {\r\n censusTracts: 'GEOID10_1',\r\n isEconomicallyDisadvantaged: 'Flag_MHI_P'\r\n };\r\n\r\n yield* fetchDistrictData(field, fieldList, senateAttributes, FETCH_SENATE_DISTRICTS);\r\n yield* fetchDistrictData(field, fieldList, assemblyAttributes, FETCH_ASSEMBLY_DISTRICTS);\r\n yield* fetchDistrictData(field, fieldList, censusAttributes, FETCH_CENSUS_TRACTS);\r\n }\r\n\r\n yield put(receiveFieldMetadata(fieldList));\r\n}\r\n\r\nfunction* fetchApnData (field, fieldList) {\r\n if (!field.apns) {\r\n const apnFormData = buildApnFormData(field.feature);\r\n\r\n try {\r\n const apnData = yield call(plainPostWithBody, FETCH_APN, apnFormData);\r\n\r\n if (apnData.results && apnData.results.length > 0) {\r\n var apns = [];\r\n for (var result of apnData.results) {\r\n apns.push(result.value);\r\n }\r\n\r\n createEntryIfNeeded(field.id, fieldList);\r\n fieldList[field.id].apns = apns;\r\n }\r\n } catch(error) {\r\n console.log('update user saga apn error: ', error);\r\n }\r\n }\r\n}\r\n\r\nfunction* fetchDistrictData(field, fieldList, attributes, apiCall) {\r\n var outFields = [];\r\n var hasAllFields = true;\r\n\r\n for (var attributeName in attributes)\r\n {\r\n if (field[attributeName] === undefined)\r\n {\r\n hasAllFields = false;\r\n }\r\n outFields.push(attributes[attributeName]);\r\n }\r\n\r\n if (!hasAllFields) {\r\n const formData = buildDistrictFormData(field.feature, outFields.join(','));\r\n\r\n try {\r\n const responseData = yield call(plainPostWithBody, apiCall, formData);\r\n\r\n if (responseData.features && responseData.features.length > 0) {\r\n for (var attributeName in attributes) {\r\n var values = [];\r\n for (var feature of responseData.features) {\r\n values.push(feature.attributes[attributes[attributeName]]);\r\n }\r\n\r\n createEntryIfNeeded(field.id, fieldList);\r\n fieldList[field.id][attributeName] = values;\r\n }\r\n }\r\n }\r\n catch (error) {\r\n console.log('update user saga district fetch error: ', error);\r\n }\r\n }\r\n}\r\n\r\nfunction buildApnFormData(feature) {\r\n const geometryFormObject = buildGeometryFormObject(feature);\r\n\r\n const formData = new FormData();\r\n formData.append('f', 'pjson');\r\n formData.append('geometryType', 'esriGeometryPolygon');\r\n formData.append('sr', 3857);\r\n formData.append('layers', 0);\r\n formData.append('tolerance', 1);\r\n formData.append('mapExtent', '.');\r\n formData.append('imageDisplay','1920,1080,96');\r\n formData.append('returnGeometry', false);\r\n formData.append('geometry', JSON.stringify(geometryFormObject));\r\n\r\n return formData;\r\n}\r\n\r\nfunction buildDistrictFormData(feature, outField) {\r\n const geometryFormObject = buildGeometryFormObject(feature);\r\n\r\n const formData = new FormData();\r\n formData.append('f', 'pjson');\r\n formData.append('geometryType', 'esriGeometryPolygon');\r\n formData.append('inSR', 3857);\r\n formData.append('geometry', JSON.stringify(geometryFormObject));\r\n formData.append('spatialRel', 'esriSpatialRelIntersects');\r\n formData.append('returnGeometry', false);\r\n formData.append('outFields', outField);\r\n\r\n return formData;\r\n}\r\n\r\nfunction buildGeometryFormObject (feature) {\r\n try {\r\n // when a field is first created, the feature comes through as a string instead of an object for some reason\r\n if (typeof feature === 'string') {\r\n feature = JSON.parse(feature);\r\n }\r\n\r\n const parsedGeoJson = JSON.parse(feature.featureGeoJSON);\r\n\r\n return ({\r\n \"rings\": parsedGeoJson.geometry.coordinates\r\n });\r\n }\r\n catch (exception) {\r\n console.log('error when building geometry form object: ', exception);\r\n return ({\r\n \"rings\": []\r\n });\r\n }\r\n}\r\n\r\nfunction createEntryIfNeeded (fieldId, fieldList) {\r\n if (!fieldList[fieldId]) {\r\n fieldList[fieldId] = {};\r\n }\r\n}","import { createAction } from \"redux-act\";\r\n\r\nexport const runCalculations = createAction();\r\nexport const downloadReport = createAction();","import { call, put } from \"redux-saga/effects\";\r\nimport { post } from \"../utils/api\";\r\nimport { DOWNLOAD_REPORT, RUN_CALCULATIONS } from \"../constants/api\";\r\nimport { receiveCalculationData } from \"../actions/user\";\r\nimport JSAlert from 'js-alert'\r\nexport function* runCalculations(action) {\r\n try {\r\n const data = yield call(post, RUN_CALCULATIONS, action.payload);\r\n yield put(receiveCalculationData(data)); // invoke action & reducer\r\n }\r\n catch (error) {\r\n console.log('calculations error: ', error.message);\r\n \r\n if (error.message.message == \"nullSoilTexture\" || error.message.message == \"unknownSoilTexture\") {\r\n \r\n JSAlert.alert(\"Soil data is not available for one or more soil map units on this field. Please use the soil map data layer imagery to move your field to a similar area nearby that includes a soil texture similar to your field.\", \"\", \"Ok\").setIcon(JSAlert.Icons.Failed);\r\n }\r\n else if ((error.message.title!=undefined)&& (error.message.title.indexOf(\"validation\") > -1)) {\r\n if (error.message.errors != undefined && error.message.errors != null) {\r\n JSAlert.alert(\"Calculations failing due to missing \" + error.message.errors[Object.keys(error.message.errors)[0]][0].split(\"|\")[0].split(\"Path: $.\")[1] + \" inputs\", \"Calculations Error\", \"Ok\").setIcon(JSAlert.Icons.Failed);\r\n }\r\n }\r\n else if ((error.message != undefined)) {\r\n \r\n JSAlert.alert(\"JSON Error\", \"Calculations Error\", \"Ok\").setIcon(JSAlert.Icons.Failed);\r\n \r\n }\r\n else {\r\n JSAlert.alert(\"Apologies, we are unable to access soil data at this time. Please try again shortly.\", \"\", \"Ok\").setIcon(JSAlert.Icons.Failed);\r\n }\r\n\r\n \r\n \r\n \r\n \r\n }\r\n}\r\n\r\nexport function* downloadReport(action) {\r\n try {\r\n const report = yield call(post, DOWNLOAD_REPORT, action.payload);\r\n }\r\n catch (error) {\r\n console.log('report download error: ', error);\r\n }\r\n}","import { takeLatest } from \"redux-saga/effects\";\r\n\r\nimport * as userActions from \"../actions/user\";\r\nimport * as userSagas from \"./user\";\r\n\r\nimport * as reportActions from \"../actions/report\";\r\nimport * as reportSagas from \"./report\";\r\n\r\n\r\nexport default function* saga() {\r\n const relations = [\r\n [userActions, userSagas],\r\n [reportActions, reportSagas]\r\n ];\r\n\r\n for (const [actions, sagas] of relations) {\r\n for (const [actionName, action] of Object.entries(actions)) {\r\n const saga = sagas[actionName];\r\n\r\n if (saga) {\r\n yield takeLatest(action.getType(), saga);\r\n }\r\n }\r\n }\r\n}\r\n","/*!\r\n\r\n =========================================================\r\n * Material Dashboard React - v1.9.0 based on Material Dashboard - v1.2.0\r\n =========================================================\r\n\r\n * Product Page: http://www.creative-tim.com/product/material-dashboard-react\r\n * Copyright 2020 Creative Tim (http://www.creative-tim.com)\r\n * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard-react/blob/master/LICENSE.md)\r\n\r\n =========================================================\r\n\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n */\r\n\r\n// ##############################\r\n// // // Function that converts from hex color to rgb color\r\n// // // Example: input = #9c27b0 => output = 156, 39, 176\r\n// // // Example: input = 9c27b0 => output = 156, 39, 176\r\n// // // Example: input = #999 => output = 153, 153, 153\r\n// // // Example: input = 999 => output = 153, 153, 153\r\n// #############################\r\nconst hexToRgb = input => {\r\n input = input + \"\";\r\n input = input.replace(\"#\", \"\");\r\n let hexRegex = /[0-9A-Fa-f]/g;\r\n if (!hexRegex.test(input) || (input.length !== 3 && input.length !== 6)) {\r\n throw new Error(\"input is not a valid hex color.\");\r\n }\r\n if (input.length === 3) {\r\n let first = input[0];\r\n let second = input[1];\r\n let last = input[2];\r\n input = first + first + second + second + last + last;\r\n }\r\n input = input.toUpperCase();\r\n let first = input[0] + input[1];\r\n let second = input[2] + input[3];\r\n let last = input[4] + input[5];\r\n return (\r\n parseInt(first, 16) +\r\n \", \" +\r\n parseInt(second, 16) +\r\n \", \" +\r\n parseInt(last, 16)\r\n );\r\n};\r\n\r\n// ##############################\r\n// // // Variables - Styles that are used on more than one component\r\n// #############################\r\n\r\nconst drawerWidth = 260;\r\n\r\nconst transition = {\r\n transition: \"all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)\"\r\n};\r\n\r\nconst container = {\r\n paddingRight: \"15px\",\r\n paddingLeft: \"15px\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\"\r\n};\r\n\r\nconst defaultFont = {\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\r\n fontWeight: \"300\",\r\n lineHeight: \"1.5em\"\r\n};\r\n\r\nconst primaryColor = [\"#9c27b0\", \"#ab47bc\", \"#8e24aa\", \"#af2cc5\"];\r\nconst warningColor = [\"#ff9800\", \"#ffa726\", \"#fb8c00\", \"#ffa21a\"];\r\nconst dangerColor = [\"#f44336\", \"#ef5350\", \"#e53935\", \"#f55a4e\"];\r\nconst successColor = [\"#4caf50\", \"#66bb6a\", \"#43a047\", \"#5cb860\"];\r\nconst infoColor = [\"#00acc1\", \"#26c6da\", \"#00acc1\", \"#00d3ee\"];\r\nconst roseColor = [\"#e91e63\", \"#ec407a\", \"#d81b60\", \"#eb3573\"];\r\nconst grayColor = [\r\n \"#999\",\r\n \"#777\",\r\n \"#3C4858\",\r\n \"#AAAAAA\",\r\n \"#D2D2D2\",\r\n \"#DDD\",\r\n \"#b4b4b4\",\r\n \"#555555\",\r\n \"#333\",\r\n \"#a9afbb\",\r\n \"#eee\",\r\n \"#e7e7e7\"\r\n];\r\nconst blackColor = \"#000\";\r\nconst whiteColor = \"#FFF\";\r\n\r\nconst boxShadow = {\r\n boxShadow:\r\n \"0 10px 30px -12px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.42), 0 4px 25px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\"\r\n};\r\n\r\nconst primaryBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \",.4)\"\r\n};\r\nconst infoBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \",.4)\"\r\n};\r\nconst successBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \",.4)\"\r\n};\r\nconst warningBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \",.4)\"\r\n};\r\nconst dangerBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \",.4)\"\r\n};\r\nconst roseBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \",.4)\"\r\n};\r\n\r\nconst warningCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + warningColor[1] + \", \" + warningColor[2] + \")\",\r\n ...warningBoxShadow\r\n};\r\nconst successCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + successColor[1] + \", \" + successColor[2] + \")\",\r\n ...successBoxShadow\r\n};\r\nconst dangerCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + dangerColor[1] + \", \" + dangerColor[2] + \")\",\r\n ...dangerBoxShadow\r\n};\r\nconst infoCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + infoColor[1] + \", \" + infoColor[2] + \")\",\r\n ...infoBoxShadow\r\n};\r\nconst primaryCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + primaryColor[1] + \", \" + primaryColor[2] + \")\",\r\n ...primaryBoxShadow\r\n};\r\nconst roseCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + roseColor[1] + \", \" + roseColor[2] + \")\",\r\n ...roseBoxShadow\r\n};\r\n\r\nconst cardActions = {\r\n margin: \"0 20px 10px\",\r\n paddingTop: \"10px\",\r\n borderTop: \"1px solid \" + grayColor[10],\r\n height: \"auto\",\r\n ...defaultFont\r\n};\r\n\r\nconst cardHeader = {\r\n margin: \"-20px 15px 0\",\r\n borderRadius: \"3px\",\r\n padding: \"15px\"\r\n};\r\n\r\nconst card = {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n margin: \"25px 0\",\r\n boxShadow: \"0 1px 4px 0 rgba(\" + hexToRgb(blackColor) + \", 0.14)\",\r\n borderRadius: \"3px\",\r\n color: \"rgba(\" + hexToRgb(blackColor) + \", 0.87)\",\r\n background: whiteColor\r\n};\r\n\r\nconst defaultBoxShadow = {\r\n border: \"0\",\r\n borderRadius: \"3px\",\r\n boxShadow:\r\n \"0 10px 20px -12px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.42), 0 3px 20px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n padding: \"10px 0\",\r\n transition: \"all 150ms ease 0s\"\r\n};\r\n\r\nconst title = {\r\n color: grayColor[2],\r\n textDecoration: \"none\",\r\n fontWeight: \"300\",\r\n marginTop: \"30px\",\r\n marginBottom: \"25px\",\r\n minHeight: \"32px\",\r\n fontFamily: \"'Roboto', 'Helvetica', 'Arial', sans-serif\",\r\n \"& small\": {\r\n color: grayColor[1],\r\n fontWeight: \"400\",\r\n lineHeight: \"1\"\r\n }\r\n};\r\n\r\nconst cardTitle = {\r\n ...title,\r\n marginTop: \"0\",\r\n marginBottom: \"3px\",\r\n minHeight: \"auto\",\r\n \"& a\": {\r\n ...title,\r\n marginTop: \".625rem\",\r\n marginBottom: \"0.75rem\",\r\n minHeight: \"auto\"\r\n }\r\n};\r\n\r\nconst cardSubtitle = {\r\n marginTop: \"-.375rem\"\r\n};\r\n\r\nconst cardLink = {\r\n \"& + $cardLink\": {\r\n marginLeft: \"1.25rem\"\r\n }\r\n};\r\n\r\nexport {\r\n hexToRgb,\r\n //variables\r\n drawerWidth,\r\n transition,\r\n container,\r\n boxShadow,\r\n card,\r\n defaultFont,\r\n primaryColor,\r\n warningColor,\r\n dangerColor,\r\n successColor,\r\n infoColor,\r\n roseColor,\r\n grayColor,\r\n blackColor,\r\n whiteColor,\r\n primaryBoxShadow,\r\n infoBoxShadow,\r\n successBoxShadow,\r\n warningBoxShadow,\r\n dangerBoxShadow,\r\n roseBoxShadow,\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n roseCardHeader,\r\n cardActions,\r\n cardHeader,\r\n defaultBoxShadow,\r\n title,\r\n cardTitle,\r\n cardSubtitle,\r\n cardLink\r\n};\r\n","import {\r\n container,\r\n defaultFont,\r\n primaryColor,\r\n defaultBoxShadow,\r\n infoColor,\r\n successColor,\r\n warningColor,\r\n dangerColor,\r\n whiteColor,\r\n grayColor\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst headerStyle = () => ({\r\n appBar: {\r\n backgroundColor: \"transparent\",\r\n boxShadow: \"none\",\r\n borderBottom: \"0\",\r\n marginBottom: \"0\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n paddingTop: \"10px\",\r\n zIndex: \"1029\",\r\n color: grayColor[7],\r\n border: \"0\",\r\n borderRadius: \"3px\",\r\n padding: \"10px 0\",\r\n transition: \"all 150ms ease 0s\",\r\n minHeight: \"50px\",\r\n display: \"block\"\r\n },\r\n container: {\r\n ...container,\r\n padding: \"10px 0\",\r\n minHeight: \"50px\"\r\n },\r\n flex: {\r\n flex: 1\r\n },\r\n title: {\r\n ...defaultFont,\r\n letterSpacing: \"unset\",\r\n lineHeight: \"30px\",\r\n fontSize: \"18px\",\r\n borderRadius: \"3px\",\r\n textTransform: \"none\",\r\n color: \"inherit\",\r\n margin: \"0\",\r\n \"&:hover,&:focus\": {\r\n background: \"transparent\"\r\n }\r\n },\r\n appResponsive: {\r\n top: \"8px\"\r\n },\r\n primary: {\r\n backgroundColor: primaryColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow\r\n },\r\n info: {\r\n backgroundColor: infoColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow\r\n },\r\n success: {\r\n backgroundColor: successColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow\r\n },\r\n warning: {\r\n backgroundColor: warningColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow\r\n },\r\n danger: {\r\n backgroundColor: dangerColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow\r\n }\r\n});\r\n\r\nexport default headerStyle;\r\n","export default __webpack_public_path__ + \"static/media/sweep.1da6ded1.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/prop68.166559cd.png\";","export default \"data:image/jpeg;base64,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\"","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/headerStyle.js\";\r\nimport sweepImg from \"../../images/partners/sweep.png\";\r\nimport cdfaImg from \"../../images/partners/cdfa.png\";\r\nimport prop68Img from \"../../images/partners/prop68.png\";\r\nimport teardropImg from \"../../images/partners/teardrop.jpg\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function Header(props) {\r\n\r\n const classes = useStyles();\r\n \r\n const styles = {\r\n float: \"left\",\r\n height: \"50px\",\r\n marginRight: \"1em\",\r\n };\r\n\r\n return (\r\n
\r\n \"teardroplogo\"\r\n \"sweeplogo\"\r\n \"cdfalogo\"\r\n \"prop68Imglogo\"\r\n
\r\n );\r\n}\r\n\r\nHeader.propTypes = {\r\n color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"]),\r\n rtlActive: PropTypes.bool,\r\n handleDrawerToggle: PropTypes.func,\r\n routes: PropTypes.arrayOf(PropTypes.object)\r\n};\r\n","import {\r\n blackColor,\r\n whiteColor,\r\n hexToRgb\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst cardStyle = {\r\n card: {\r\n border: \"0\",\r\n marginBottom: \"0px\",\r\n marginTop: \"0px\",\r\n borderRadius: \"6px\",\r\n color: \"rgba(\" + hexToRgb(blackColor) + \", 0.87)\",\r\n background: whiteColor,\r\n width: \"100%\",\r\n boxShadow: \"0 1px 4px 0 rgba(\" + hexToRgb(blackColor) + \", 0.14)\",\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"0\",\r\n wordWrap: \"break-word\" \r\n },\r\n cardPlain: {\r\n background: \"transparent\",\r\n boxShadow: \"none\"\r\n },\r\n cardProfile: {\r\n marginTop: \"0px\",\r\n textAlign: \"center\"\r\n },\r\n cardChart: {\r\n \"& p\": {\r\n marginTop: \"0px\",\r\n paddingTop: \"0px\"\r\n }\r\n }\r\n};\r\n\r\nexport default cardStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/cardStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function Card(props) {\r\n const classes = useStyles();\r\n const { className, children, plain, profile, chart, ...rest } = props;\r\n const cardClasses = classNames({\r\n [classes.card]: true,\r\n [classes.cardPlain]: plain,\r\n [classes.cardProfile]: profile,\r\n [classes.cardChart]: chart,\r\n [className]: className !== undefined\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCard.propTypes = {\r\n className: PropTypes.string,\r\n plain: PropTypes.bool,\r\n profile: PropTypes.bool,\r\n chart: PropTypes.bool,\r\n children: PropTypes.node\r\n};\r\n","import React from \"react\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst styles = {\r\n grid: {\r\n //padding: \"0 15px !important\"\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function GridItem(props) {\r\n const classes = useStyles();\r\n const { children, ...rest } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nGridItem.propTypes = {\r\n children: PropTypes.node\r\n};\r\n","import React from \"react\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst styles = {\r\n grid: {\r\n //padding: \"0 15px !important\",\r\n width: \"unset\"\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function GridContainer(props) {\r\n const classes = useStyles();\r\n const { children, ...rest } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nGridContainer.propTypes = {\r\n children: PropTypes.node\r\n};\r\n","import {\r\n grayColor,\r\n primaryColor,\r\n infoColor,\r\n successColor,\r\n warningColor,\r\n dangerColor,\r\n roseColor,\r\n whiteColor,\r\n blackColor,\r\n hexToRgb\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst buttonStyle = {\r\n button: {\r\n minHeight: \"auto\",\r\n minWidth: \"auto\",\r\n backgroundColor: grayColor[0],\r\n color: whiteColor,\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(grayColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(grayColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(grayColor[0]) +\r\n \", 0.12)\",\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n position: \"relative\",\r\n padding: \"12px 30px\",\r\n margin: \".3125rem 1px\",\r\n fontSize: \"12px\",\r\n fontWeight: \"400\",\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0\",\r\n willChange: \"box-shadow, transform\",\r\n transition:\r\n \"box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)\",\r\n lineHeight: \"1.42857143\",\r\n textAlign: \"center\",\r\n whiteSpace: \"nowrap\",\r\n verticalAlign: \"middle\",\r\n touchAction: \"manipulation\",\r\n cursor: \"pointer\",\r\n \"&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: grayColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(grayColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(grayColor[0]) +\r\n \", 0.2)\"\r\n },\r\n \"& .fab,& .fas,& .far,& .fal, &.material-icons\": {\r\n position: \"relative\",\r\n display: \"inline-block\",\r\n top: \"0\",\r\n marginTop: \"-1em\",\r\n marginBottom: \"-1em\",\r\n fontSize: \"1.1rem\",\r\n marginRight: \"4px\",\r\n verticalAlign: \"middle\"\r\n },\r\n \"& svg\": {\r\n position: \"relative\",\r\n display: \"inline-block\",\r\n top: \"0\",\r\n width: \"18px\",\r\n height: \"18px\",\r\n marginRight: \"4px\",\r\n verticalAlign: \"middle\"\r\n },\r\n \"&$justIcon\": {\r\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\r\n marginTop: \"0px\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n transform: \"none\",\r\n left: \"0px\",\r\n top: \"0px\",\r\n height: \"100%\",\r\n lineHeight: \"41px\",\r\n fontSize: \"20px\"\r\n }\r\n }\r\n },\r\n white: {\r\n \"&,&:focus,&:hover\": {\r\n backgroundColor: whiteColor,\r\n color: grayColor[0]\r\n }\r\n },\r\n rose: {\r\n backgroundColor: roseColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: roseColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n primary: {\r\n backgroundColor: primaryColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: primaryColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n info: {\r\n backgroundColor: infoColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: infoColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n success: {\r\n backgroundColor: successColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: successColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n warning: {\r\n backgroundColor: warningColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: warningColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n danger: {\r\n backgroundColor: dangerColor[0],\r\n boxShadow:\r\n \"0 2px 2px 0 rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \", 0.14), 0 3px 1px -2px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \", 0.2), 0 1px 5px 0 rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \", 0.12)\",\r\n \"&:hover,&:focus\": {\r\n backgroundColor: dangerColor[0],\r\n boxShadow:\r\n \"0 14px 26px -12px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \", 0.42), 0 4px 23px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \", 0.2)\"\r\n }\r\n },\r\n simple: {\r\n \"&,&:focus,&:hover\": {\r\n color: whiteColor,\r\n background: \"transparent\",\r\n boxShadow: \"none\"\r\n },\r\n \"&$rose\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: roseColor[0]\r\n }\r\n },\r\n \"&$primary\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: primaryColor[0]\r\n }\r\n },\r\n \"&$info\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: infoColor[0]\r\n }\r\n },\r\n \"&$success\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: successColor[0]\r\n }\r\n },\r\n \"&$warning\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: warningColor[0]\r\n }\r\n },\r\n \"&$danger\": {\r\n \"&,&:focus,&:hover,&:visited\": {\r\n color: dangerColor[0]\r\n }\r\n }\r\n },\r\n transparent: {\r\n \"&,&:focus,&:hover\": {\r\n color: \"inherit\",\r\n background: \"transparent\",\r\n boxShadow: \"none\"\r\n }\r\n },\r\n disabled: {\r\n opacity: \"0.65\",\r\n pointerEvents: \"none\"\r\n },\r\n lg: {\r\n padding: \"1.125rem 2.25rem\",\r\n fontSize: \"0.875rem\",\r\n lineHeight: \"1.333333\",\r\n borderRadius: \"0.2rem\"\r\n },\r\n sm: {\r\n padding: \"0.40625rem 1.25rem\",\r\n fontSize: \"0.6875rem\",\r\n lineHeight: \"1.5\",\r\n borderRadius: \"0.2rem\"\r\n },\r\n round: {\r\n borderRadius: \"30px\"\r\n },\r\n block: {\r\n width: \"100% !important\"\r\n },\r\n link: {\r\n \"&,&:hover,&:focus\": {\r\n backgroundColor: \"transparent\",\r\n color: grayColor[0],\r\n boxShadow: \"none\"\r\n }\r\n },\r\n justIcon: {\r\n paddingLeft: \"12px\",\r\n paddingRight: \"12px\",\r\n fontSize: \"20px\",\r\n height: \"41px\",\r\n minWidth: \"41px\",\r\n width: \"41px\",\r\n \"& .fab,& .fas,& .far,& .fal,& svg,& .material-icons\": {\r\n marginRight: \"0px\"\r\n },\r\n \"&$lg\": {\r\n height: \"57px\",\r\n minWidth: \"57px\",\r\n width: \"57px\",\r\n lineHeight: \"56px\",\r\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\r\n fontSize: \"32px\",\r\n lineHeight: \"56px\"\r\n },\r\n \"& svg\": {\r\n width: \"32px\",\r\n height: \"32px\"\r\n }\r\n },\r\n \"&$sm\": {\r\n height: \"30px\",\r\n minWidth: \"30px\",\r\n width: \"30px\",\r\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\r\n fontSize: \"17px\",\r\n lineHeight: \"29px\"\r\n },\r\n \"& svg\": {\r\n width: \"17px\",\r\n height: \"17px\"\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default buttonStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n\r\n// material-ui components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/buttonStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function RegularButton(props) {\r\n const classes = useStyles();\r\n const {\r\n color,\r\n round,\r\n children,\r\n disabled,\r\n simple,\r\n size,\r\n block,\r\n link,\r\n justIcon,\r\n className,\r\n muiClasses,\r\n ...rest\r\n } = props;\r\n const btnClasses = classNames({\r\n [classes.button]: true,\r\n [classes[size]]: size,\r\n [classes[color]]: color,\r\n [classes.round]: round,\r\n [classes.disabled]: disabled,\r\n [classes.simple]: simple,\r\n [classes.block]: block,\r\n [classes.link]: link,\r\n [classes.justIcon]: justIcon,\r\n [className]: className\r\n });\r\n return (\r\n \r\n );\r\n}\r\n\r\nRegularButton.propTypes = {\r\n color: PropTypes.oneOf([\r\n \"primary\",\r\n \"info\",\r\n \"success\",\r\n \"warning\",\r\n \"danger\",\r\n \"rose\",\r\n \"white\",\r\n \"transparent\",\r\n \"gray\"\r\n ]),\r\n size: PropTypes.oneOf([\"sm\", \"lg\"]),\r\n simple: PropTypes.bool,\r\n round: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n block: PropTypes.bool,\r\n link: PropTypes.bool,\r\n justIcon: PropTypes.bool,\r\n className: PropTypes.string,\r\n // use this to pass the classes props from Material-UI\r\n muiClasses: PropTypes.object,\r\n children: PropTypes.node\r\n};\r\n","import {Circle as CircleStyle, Fill, Stroke, Style, Text} from 'ol/style';\r\n\r\n\r\nconst image = new CircleStyle({\r\n radius: 5,\r\n fill: null,\r\n stroke: new Stroke({color: 'red', width: 1}),\r\n});\r\n\r\nconst etZoneColors = {\r\n 301: 'rgb(195, 161, 203)',\r\n 302: 'rgb(209, 200, 227)',\r\n 303: 'rgb(196, 205, 231)',\r\n 304: 'rgb(153, 174, 218)',\r\n 305: 'rgb(154, 201, 226)',\r\n 306: 'rgb(173, 219, 221)',\r\n 307: 'rgb(213, 237, 231)',\r\n 308: 'rgb(185, 223, 191)',\r\n 309: 'rgb(170, 198, 181)',\r\n 310: 'rgb(203, 225, 173)',\r\n 311: 'rgb(228, 233, 199)',\r\n 312: 'rgb(255, 251, 205)',\r\n 313: 'rgb(255, 252, 221)',\r\n 314: 'rgb(239, 234, 204)',\r\n 315: 'rgb(239, 212, 177)',\r\n 316: 'rgb(209, 180, 150)',\r\n 317: 'rgb(193, 187, 182)',\r\n 318: 'rgb(228, 177, 159)'\r\n}\r\n\r\nconst styles = {\r\n 'Point': new Style({\r\n image: image,\r\n }),\r\n 'LineString': new Style({\r\n stroke: new Stroke({\r\n color: 'green',\r\n width: 1,\r\n }),\r\n }),\r\n 'MultiLineString': new Style({\r\n stroke: new Stroke({\r\n color: 'green',\r\n width: 1,\r\n }),\r\n }),\r\n 'MultiPoint': new Style({\r\n image: image,\r\n }),\r\n 'MultiPolygon': new Style({\r\n stroke: new Stroke({\r\n color: 'blue',\r\n width: 2,\r\n }),\r\n fill: new Fill({\r\n color: 'rgba(255, 255, 255, 0.1)',\r\n }),\r\n }),\r\n 'AltMultipolygon': new Style({\r\n stroke: new Stroke({\r\n color: 'black',\r\n width: 2,\r\n }),\r\n fill: new Fill({\r\n color: 'rgba(255, 255, 255, 0.1)',\r\n }),\r\n }),\r\n 'Polygon': new Style({\r\n stroke: new Stroke({\r\n color: 'blue',\r\n lineDash: [4],\r\n width: 3,\r\n }),\r\n fill: new Fill({\r\n color: 'rgba(0, 0, 255, 0.1)',\r\n }),\r\n }),\r\n 'GeometryCollection': new Style({\r\n stroke: new Stroke({\r\n color: 'magenta',\r\n width: 2,\r\n }),\r\n fill: new Fill({\r\n color: 'magenta',\r\n }),\r\n image: new CircleStyle({\r\n radius: 10,\r\n fill: null,\r\n stroke: new Stroke({\r\n color: 'magenta',\r\n }),\r\n }),\r\n }),\r\n 'Circle': new Style({\r\n stroke: new Stroke({\r\n color: 'red',\r\n width: 2,\r\n }),\r\n fill: new Fill({\r\n color: 'rgba(255,0,0,0.2)',\r\n }),\r\n }),\r\n};\r\n\r\nexport const styleFunction = function (feature) {\r\n return styles[feature.getGeometry().getType()];\r\n};\r\n\r\nexport const styleFunctionAlt = function (feature) {\r\n return styles['AltMultipolygon'];\r\n};\r\n\r\nexport const etZoneStyle = function (feature) {\r\n return new Style({\r\n stroke: new Stroke({ color: etZoneColors[feature.get('zoneId')], width: 1}),\r\n fill: new Fill({ color: etZoneColors[feature.get('zoneId')] }),\r\n text: new Text({ text: feature.get('zoneName') + '\\n' + feature.get('zoneDescription')})\r\n })\r\n}","// REACT\r\nimport React from \"react\";\r\nimport Button from \"../components/CustomButtons/Button\";\r\n\r\nimport Feature from \"ol/Feature\";\r\nimport * as ol from \"ol\";\r\nimport { Image as ImageLayer } from \"ol/layer.js\";\r\nimport ImageWMS from \"ol/source/ImageWMS.js\";\r\nimport TileWMS from \"ol/source/TileWMS.js\";\r\nimport { GeoJSON } from \"ol/format.js\";\r\nimport {\r\n OSM,\r\n TileArcGISRest,\r\n TileImage,\r\n Vector as VectorSource,\r\n} from \"ol/source.js\";\r\nimport TileLayer from \"ol/layer/Tile.js\";\r\nimport TileGrid from \"ol/tilegrid/TileGrid.js\";\r\nimport Point from \"ol/geom/Point\";\r\nimport VectorLayer from \"ol/layer/Vector\";\r\nimport Vector from \"ol/source/Vector\";\r\nimport { getTopLeft } from \"ol/extent.js\";\r\nimport { easeOut } from \"ol/easing\";\r\nimport {\r\n Fill,\r\n Stroke,\r\n Style,\r\n Circle as CircleStyle,\r\n Text as TextStyle,\r\n} from \"ol/style\";\r\nimport XYZ from \"ol/source/XYZ.js\";\r\nimport { unByKey } from \"ol/Observable.js\";\r\nimport BingMaps from \"ol/source/BingMaps.js\";\r\nimport { etZoneStyle, styleFunction, styleFunctionAlt } from \"./LayerStyles.js\";\r\n\r\nexport const glowContainer = (id, color = \"blue\") => {\r\n const elem = document.getElementById(id);\r\n if (elem === undefined) return;\r\n\r\n const className = \"sc-glow-container-\" + color;\r\n elem.classList.add(className);\r\n setTimeout(function () {\r\n elem.classList.remove(className);\r\n }, 1000);\r\n};\r\n\r\n// MOBILE VIEW\r\nexport const isMobile = () => {\r\n if (window.innerWidth < 770) return true;\r\n else return false;\r\n};\r\n\r\n// GET ARCGIS TILED LAYER\r\nexport const getArcGISTiledLayer = (url) => {\r\n return new TileLayer({\r\n source: new TileArcGISRest({\r\n url: url,\r\n crossOrigin: \"anonymous\",\r\n }),\r\n crossOrigin: \"anonymous\",\r\n });\r\n};\r\n\r\nexport const getBingMapsLayer = (bingKey) => {\r\n return new TileLayer({\r\n preload: Infinity,\r\n source: new BingMaps({\r\n key: bingKey,\r\n imagerySet: \"AerialWithLabels\",\r\n }),\r\n });\r\n};\r\n\r\nexport const getESRITileXYZLayer = (url) => {\r\n return new TileLayer({\r\n source: new XYZ({\r\n attributions:\r\n 'Tiles © ArcGIS',\r\n url: url + \"/tile/{z}/{y}/{x}\",\r\n }),\r\n });\r\n};\r\n\r\nexport const getOSMTileXYZLayer = (url) => {\r\n return new TileLayer({\r\n source: new OSM({ url: url + \"/{z}/{x}/{y}.png\" }),\r\n crossOrigin: \"anonymous\",\r\n });\r\n};\r\n\r\nexport const getTileXYZLayer = (url) => {\r\n const resolutions = [\r\n 305.74811314055756, 152.87405657041106, 76.43702828507324,\r\n 38.21851414253662, 19.10925707126831, 9.554628535634155, 4.77731426794937,\r\n 2.388657133974685, 1.1943285668550503, 0.5971642835598172,\r\n 0.29858214164761665, 0.1492252984505969,\r\n ];\r\n const projExtent = window.map.getView().getProjection().getExtent();\r\n var tileGrid = new TileGrid({\r\n resolutions: resolutions,\r\n tileSize: [256, 256],\r\n origin: getTopLeft(projExtent),\r\n //origin: [-20037500.342787,20037378.342787 ]\r\n // origin: [-20037508.342787,20037508.342787 ]\r\n });\r\n\r\n var source = new TileImage({\r\n tileUrlFunction: function (tileCoord, pixelRatio, projection) {\r\n if (tileCoord === null) return undefined;\r\n\r\n const z = tileCoord[0];\r\n const x = tileCoord[1];\r\n const y = -tileCoord[2] - 1;\r\n\r\n //if ( z < 17 || x < 0 || y < 0) return undefined;\r\n\r\n return url + \"/tile/\" + z + \"/\" + y + \"/\" + x;\r\n },\r\n tileGrid: tileGrid,\r\n crossOrigin: \"anonymous\",\r\n });\r\n source.on(\"tileloaderror\", function () {});\r\n\r\n return new TileLayer({\r\n projection: \"EPSG:4326\",\r\n //projection: 'EPSG:3857',\r\n //matrixSet: 'EPSG:3857',\r\n source: source,\r\n maxResolution: 400,\r\n useInterimTiles: true,\r\n });\r\n};\r\n\r\n// GET OPEN STREET MAP LAYER\r\nexport const getOSMLayer = () => {\r\n return new TileLayer({\r\n source: new OSM(),\r\n crossOrigin: \"anonymous\",\r\n });\r\n};\r\n\r\n// GET WMS Image Layer\r\nexport const getImageWMSLayerCDL = (\r\n serverURL,\r\n layers,\r\n title,\r\n version,\r\n serverType = \"geoserver\",\r\n cqlFilter = null,\r\n zIndex = null\r\n) => {\r\n //console.log(serverURL)\r\n // console.log(layers)\r\n return new TileLayer({\r\n visible: false,\r\n zIndex: zIndex,\r\n title: title ? title : \"no title\",\r\n source: new TileWMS({\r\n url: serverURL,\r\n serverType: serverType,\r\n projection: \"EPSG:4326\",\r\n params: { LAYERS: layers, VERSION: version, cql_filter: cqlFilter },\r\n ratio: 1,\r\n }),\r\n });\r\n};\r\n\r\n// GET WMS Image Layer\r\nexport const getImageWMSLayer = (\r\n serverURL,\r\n layers,\r\n title,\r\n version,\r\n serverType = \"geoserver\",\r\n cqlFilter = null,\r\n zIndex = null\r\n) => {\r\n return new ImageLayer({\r\n visible: false,\r\n zIndex: zIndex,\r\n title: title ? title : \"no title\",\r\n source: new ImageWMS({\r\n url: serverURL,\r\n params: { LAYERS: layers, VERSION: version, cql_filter: cqlFilter },\r\n ratio: 1,\r\n serverType: serverType,\r\n crossOrigin: \"anonymous\",\r\n }),\r\n });\r\n};\r\n\r\nexport const getMapServerVectorSource = (\r\n serverURL,\r\n layers,\r\n title,\r\n version,\r\n serverType = \"geoserver\",\r\n cqlFilter = null,\r\n zIndex = null\r\n) => {\r\n return (\r\n new TileLayer({\r\n source: new OSM(),\r\n }),\r\n new ImageLayer({\r\n source: new ImageArcGISRest({\r\n ratio: 1,\r\n params: {},\r\n url: serverURL,\r\n }),\r\n })\r\n );\r\n};\r\n\r\n// GET Vector Layer\r\nexport const getPostgresServerVectorSource = (\r\n serverURL,\r\n layers,\r\n title,\r\n version,\r\n serverType = \"postgres\",\r\n geoJson = {}\r\n) => {\r\n // console.log(\"Fetching postgres layer: \", geoJson );\r\n\r\n const vectorSource = new VectorSource({\r\n features: new GeoJSON().readFeatures(geoJson),\r\n });\r\n\r\n return new VectorLayer({\r\n source: vectorSource,\r\n style: title == \"Counties\" ? styleFunctionAlt : title == \"ET Zones\" ? etZoneStyle : styleFunction,\r\n title: title ? title : \"no title\",\r\n });\r\n};\r\n\r\n// GET CURRENT MAP SCALE\r\nexport const getMapScale = () => {\r\n const DOTS_PER_INCH = 96;\r\n const INCHES_PER_METER = 39.37;\r\n var resolution = window.map.getView().getResolution();\r\n var projection = window.map.getView().getProjection();\r\n const pointResolution = projection.getMetersPerUnit() * resolution;\r\n return Math.round(pointResolution * DOTS_PER_INCH * INCHES_PER_METER);\r\n};\r\n\r\nexport const searchArrayByKey = (nameKey, myArray) => {\r\n for (var i = 0; i < myArray.length; i++) {\r\n if (myArray[i].name === nameKey) {\r\n return myArray[i];\r\n }\r\n }\r\n};\r\n\r\n// GET URL PARAMETER\r\nexport const getURLParameter = (parameterName, decoded = true) => {\r\n const url = new URL(window.location.href);\r\n const param = url.searchParams.get(parameterName);\r\n if (param === null) return null;\r\n\r\n if (decoded) return param;\r\n else return encodeURIComponent(param);\r\n};\r\n\r\n// HTTP GET\r\nexport const httpGetText = (url, callback) => {\r\n return fetch(url)\r\n .then((response) => response.text())\r\n .then((responseText) => {\r\n // CALLBACK WITH RESULT\r\n if (callback !== undefined) callback(responseText);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n};\r\n\r\nexport const getJSON = (url, callback) => {\r\n return fetch(url)\r\n .then((response) => response.json())\r\n .then((responseJson) => {\r\n // CALLBACK WITH RESULT\r\n if (callback !== undefined) callback(responseJson);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n};\r\n\r\nexport const getJSONBing = (url, callback) => {\r\n return fetch(url)\r\n .then((response) => response.json())\r\n .then((responseJson) => {\r\n // CALLBACK WITH RESULT\r\n // console.log(responseJson);\r\n let formattedResult = [];\r\n\r\n if (responseJson)\r\n if (responseJson.resourceSets)\r\n if (responseJson.resourceSets[0])\r\n if (responseJson.resourceSets[0].resources)\r\n if (responseJson.resourceSets[0].resources[0])\r\n formattedResult = responseJson.resourceSets[0].resources;\r\n\r\n if (callback !== undefined) callback(formattedResult);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n};\r\n\r\n// GET JSON WAIT\r\nexport async function getJSONWait(url, callback) {\r\n let data = await await fetch(url)\r\n .then((res) => {\r\n const resp = res.json();\r\n //console.log(resp);\r\n return resp;\r\n })\r\n .catch((err) => {\r\n console.log(\"Error: \", err);\r\n });\r\n if (callback !== undefined) {\r\n //console.log(data);\r\n callback(data);\r\n }\r\n\r\n return await data;\r\n}\r\n\r\nexport const isParcelClickEnabled = () => {\r\n // READ INFO FROM LOCAL STORAGE (GLOBAL SETTING)\r\n\r\n // FOR NOW JUST RETURN\r\n return window.disableParcelClick;\r\n};\r\n\r\n//https://opengis.simcoe.ca/geoserver/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=simcoe:Bag%20Tag%20Locations&outputFormat=application/json\r\nexport const getWFSVectorSource = (\r\n serverUrl,\r\n layerName,\r\n callback,\r\n sortField = \"\"\r\n) => {\r\n const wfsUrlTemplate = (serverURL, layerName, sortField) =>\r\n `${serverURL}wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=${layerName}&outputFormat=application/json&sortBy=${sortField}`;\r\n const wfsUrl = wfsUrlTemplate(serverUrl, layerName, sortField);\r\n getJSON(wfsUrl, (result) => {\r\n const geoJSON = new GeoJSON().readFeatures(result);\r\n var vectorSource = new VectorSource({ features: geoJSON });\r\n callback(vectorSource);\r\n });\r\n};\r\n\r\n//https://opengis.simcoe.ca/geoserver/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=simcoe:Bag%20Tag%20Locations&outputFormat=application/json\r\nexport const getWFSGeoJSON = (\r\n serverUrl,\r\n layerName,\r\n callback,\r\n sortField = null,\r\n extent = null,\r\n cqlFilter = null\r\n) => {\r\n // SORTING\r\n let additionalParams = \"\";\r\n if (sortField !== null) additionalParams += \"&sortBy=\" + sortField;\r\n\r\n // BBOX EXTENT\r\n if (extent !== null) {\r\n const extentString =\r\n extent[0] + \",\" + extent[1] + \",\" + extent[2] + \",\" + extent[3];\r\n additionalParams += \"&bbox=\" + extentString;\r\n }\r\n\r\n // ATTRIBUTE WHERECLAUSE\r\n if (cqlFilter !== null) additionalParams += \"&cql_filter=\" + cqlFilter;\r\n\r\n // USE TEMPLATE FOR READABILITY\r\n const wfsUrlTemplate = (serverURL, layerName) =>\r\n `${serverURL}wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=${layerName}&outputFormat=application/json`;\r\n const wfsUrl = wfsUrlTemplate(serverUrl, layerName) + additionalParams;\r\n getJSON(wfsUrl, (result) => {\r\n const geoJSON = new GeoJSON().readFeatures(result);\r\n callback(geoJSON);\r\n });\r\n};\r\n\r\nexport const zoomToFeature = (feature) => {\r\n function bounce(t) {\r\n var s = 7.5625,\r\n p = 2.75,\r\n l;\r\n if (t < 1 / p) {\r\n l = s * t * t;\r\n } else {\r\n if (t < 2 / p) {\r\n t -= 1.5 / p;\r\n l = s * t * t + 0.75;\r\n } else {\r\n if (t < 2.5 / p) {\r\n t -= 2.25 / p;\r\n l = s * t * t + 0.9375;\r\n } else {\r\n t -= 2.625 / p;\r\n l = s * t * t + 0.984375;\r\n }\r\n }\r\n }\r\n return l;\r\n }\r\n\r\n window.map\r\n .getView()\r\n .fit(\r\n feature.getGeometry().getExtent(),\r\n { constrainResolution: false },\r\n { duration: 2000, easing: bounce }\r\n );\r\n\r\n //window.map.getView().fit(feature.getGeometry().getExtent(), window.map.getSize(), { duration: 1000 });\r\n};\r\n\r\n// THIS RETURNS THE ACTUAL REACT ELEMENT USING DOM ID\r\nexport const findReact = (domId) => {\r\n var dom = document.getElementById(domId);\r\n let key = Object.keys(dom).find((key) =>\r\n key.startsWith(\"__reactInternalInstance$\")\r\n );\r\n let internalInstance = dom[key];\r\n if (internalInstance == null) return null;\r\n\r\n if (internalInstance.return) {\r\n // react 16+\r\n return internalInstance._debugOwner\r\n ? internalInstance._debugOwner.stateNode\r\n : internalInstance.return.stateNode;\r\n } else {\r\n // react <16\r\n return internalInstance._currentElement._owner._instance;\r\n }\r\n};\r\n\r\nexport const flashPoint = (coords, zoom = 15, duration = 5000) => {\r\n var marker = new Feature(new Point(coords));\r\n var vectorLayer = new VectorLayer({\r\n zIndex: 1000,\r\n source: new Vector({\r\n features: [marker],\r\n }),\r\n });\r\n window.map.addLayer(vectorLayer);\r\n\r\n var marker = new Feature({\r\n geometry: new Point(coords),\r\n });\r\n var mstyle = new Style({\r\n image: new CircleStyle({\r\n radius: 5,\r\n fill: new Fill({\r\n color: \"#fff\",\r\n }),\r\n stroke: new Stroke({\r\n color: \"blue\",\r\n width: 2,\r\n }),\r\n }),\r\n zIndex: 100,\r\n });\r\n marker.setStyle(mstyle);\r\n\r\n pulsate(\"blue\", marker, 5000, mstyle, () => {\r\n window.map.removeLayer(vectorLayer);\r\n });\r\n\r\n window.map.getView().animate({ center: coords, zoom: zoom });\r\n};\r\n\r\nfunction pulsate(color, feature, duration, mstyle, callback) {\r\n var start = new Date().getTime();\r\n\r\n var key = window.map.on(\"postcompose\", function (event) {\r\n var vectorContext = event.vectorContext;\r\n var frameState = event.frameState;\r\n var flashGeom = feature.getGeometry().clone();\r\n var elapsed = frameState.time - start;\r\n var elapsedRatio = elapsed / duration;\r\n var radius = easeOut(elapsedRatio) * 35 + 5;\r\n var opacity = easeOut(1 - elapsedRatio);\r\n var fillOpacity = easeOut(0.5 - elapsedRatio);\r\n\r\n vectorContext.setStyle(\r\n new Style({\r\n image: new CircleStyle({\r\n radius: radius,\r\n snapToPixel: false,\r\n fill: new Fill({\r\n color: \"rgba(119, 170, 203, \" + fillOpacity + \")\",\r\n }),\r\n stroke: new Stroke({\r\n color: \"rgba(119, 170, 203, \" + opacity + \")\",\r\n width: 2 + opacity,\r\n }),\r\n }),\r\n })\r\n );\r\n\r\n vectorContext.drawGeometry(flashGeom);\r\n\r\n // Draw the marker (again)\r\n vectorContext.setStyle(mstyle);\r\n vectorContext.drawGeometry(feature.getGeometry());\r\n\r\n if (elapsed > duration) {\r\n unByKey(key);\r\n //pulsate(color, feature, duration); // recursive function\r\n callback();\r\n }\r\n\r\n window.map.render();\r\n });\r\n}\r\n\r\nexport const centerMap = (coords, zoom) => {\r\n var extent = window.map.getView().calculateExtent();\r\n // console.log(extent);\r\n var xMin = extent[0];\r\n var xMax = extent[2];\r\n var total = (Math.abs(xMin) - Math.abs(xMax)) * 0.04;\r\n var newCoords = [coords[0] - total, coords[1]];\r\n //var newExtent = [extent[0], extent[1], extent[2], total];\r\n\r\n window.map.setView(\r\n new ol.View({\r\n center: newCoords,\r\n //extent: newExtent,\r\n zoom: 13,\r\n })\r\n );\r\n};\r\n\r\nexport const toTitleCase = (str) => {\r\n return str.replace(/\\w\\S*/g, function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n};\r\n\r\n// OL BUG\r\n// WORKAROUND - OL BUG -- https://github.com/openlayers/openlayers/issues/6948#issuecomment-374915823\r\n// OL BUG\r\nexport const convertMouseUpToClick = (e) => {\r\n const evt = new CustomEvent(\"click\", { bubbles: true });\r\n evt.pageY = e.pageY;\r\n evt.pageX = e.pageX;\r\n evt.stopPropagation = () => {};\r\n e.target.dispatchEvent(evt);\r\n};\r\n\r\n// GET FEATURE FROM GEOJSON\r\nexport const getFeatureFromGeoJSON = (geoJSON) => {\r\n try {\r\n return new GeoJSON().readFeature(geoJSON);\r\n } catch (e) {\r\n console.log(e);\r\n return null;\r\n }\r\n};\r\n\r\n// SEE EXAMPLE VALUES FROM HERE: https://openlayers.org/en/latest/examples/vector-labels.html\r\nexport const createTextStyle = (\r\n feature,\r\n fieldName = \"name\",\r\n maxScale = 100000000,\r\n align = \"center\",\r\n baseline = \"middle\",\r\n size = \"10px\",\r\n offsetX = 0,\r\n offsetY = 0,\r\n weight = \"normal\",\r\n placement = \"point\",\r\n maxAngleDegrees = 78,\r\n overflow = false,\r\n rotation = 0,\r\n font = \"arial\",\r\n fillColor = \"black\",\r\n outlineColor = \"black\",\r\n outlineWidth = 1\r\n) => {\r\n //console.log(align)\r\n offsetX = parseInt(offsetX, 10);\r\n offsetY = parseInt(offsetY, 10);\r\n maxAngleDegrees = parseFloat(maxAngleDegrees * 0.0174533);\r\n rotation = parseFloat(rotation * 0.0174533);\r\n var fullFont = weight + \" \" + size + \" \" + font;\r\n outlineWidth = parseInt(outlineWidth, 10);\r\n\r\n var texts = new TextStyle({\r\n textAlign: align,\r\n textBaseline: baseline,\r\n font: fullFont,\r\n text: _getText(feature, fieldName, maxScale),\r\n fill: new Fill({ color: fillColor }),\r\n stroke: new Stroke({ color: outlineColor, width: outlineWidth }),\r\n offsetX: offsetX,\r\n offsetY: offsetY,\r\n placement: placement,\r\n maxAngle: maxAngleDegrees,\r\n overflow: overflow,\r\n rotation: rotation,\r\n });\r\n\r\n //console.log(texts)\r\n return texts;\r\n};\r\n\r\nfunction _getText(\r\n feature,\r\n fieldName = \"name\",\r\n maxScale,\r\n type = \"normal\",\r\n placement = \"point\"\r\n) {\r\n var text = feature.get(fieldName);\r\n if (getMapScale() > maxScale) {\r\n text = \"\";\r\n } else if (type === \"hide\") {\r\n text = \"\";\r\n } else if (type === \"shorten\") {\r\n text = text.trunc(12);\r\n } else if (type === \"wrap\" && (!placement || placement.value !== \"line\")) {\r\n text = stringDivider(text, 16, \"\\n\");\r\n }\r\n\r\n return text;\r\n}\r\n\r\n// https://stackoverflow.com/questions/14484787/wrap-text-in-javascript\r\nfunction stringDivider(str, width, spaceReplacer) {\r\n if (str.length > width) {\r\n var p = width;\r\n while (p > 0 && str[p] !== \" \" && str[p] !== \"-\") {\r\n p--;\r\n }\r\n if (p > 0) {\r\n var left;\r\n if (str.substring(p, p + 1) === \"-\") {\r\n left = str.substring(0, p + 1);\r\n } else {\r\n left = str.substring(0, p);\r\n }\r\n var right = str.substring(p + 1);\r\n return left + spaceReplacer + stringDivider(right, width, spaceReplacer);\r\n }\r\n }\r\n return str;\r\n}\r\n\r\nexport const getItemsFromStorage = (key) => {\r\n const storage = localStorage.getItem(key);\r\n if (storage === null) return [];\r\n\r\n const data = JSON.parse(storage);\r\n return data;\r\n};\r\n\r\nexport const postJSON = (url, data = {}, callback) => {\r\n // Default options are marked with *\r\n return fetch(url, {\r\n method: \"POST\", // *GET, POST, PUT, DELETE, etc.\r\n mode: \"cors\", // no-cors, cors, *same-origin\r\n cache: \"no-cache\", // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: \"same-origin\", // include, *same-origin, omit\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n //'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n redirect: \"follow\", // manual, *follow, error\r\n referrer: \"no-referrer\", // no-referrer, *client\r\n body: JSON.stringify(data), // body data type must match \"Content-Type\" header\r\n })\r\n .then((res) => {\r\n return res.json();\r\n })\r\n .then((json) => {\r\n callback(json);\r\n });\r\n};\r\n\r\nexport const fromLatLngToPoint = (latLng) => {\r\n var siny = Math.min(\r\n Math.max(Math.sin(latLng.lat * (Math.PI / 180)), -0.9999),\r\n 0.9999\r\n );\r\n return {\r\n x: 128 + latLng.lng * (256 / 360),\r\n y: 128 + 0.5 * Math.log((1 + siny) / (1 - siny)) * -(256 / (2 * Math.PI)),\r\n };\r\n};\r\n\r\nexport const fromPointToLatLng = (point) => {\r\n return {\r\n lat:\r\n (2 * Math.atan(Math.exp((point.y - 128) / -(256 / (2 * Math.PI)))) -\r\n Math.PI / 2) /\r\n (Math.PI / 180),\r\n lng: (point.x - 128) / (256 / 360),\r\n };\r\n};\r\n\r\nexport const getTileAtLatLng = (latLng, zoom) => {\r\n var t = Math.pow(2, zoom),\r\n s = 256 / t,\r\n p = fromLatLngToPoint(latLng);\r\n return { x: Math.floor(p.x / s), y: Math.floor(p.y / s), z: zoom };\r\n};\r\n\r\nexport const getTileBounds = (tile) => {\r\n tile = normalizeTile(tile);\r\n var t = Math.pow(2, tile.z),\r\n s = 256 / t,\r\n sw = {\r\n x: tile.x * s,\r\n y: tile.y * s + s,\r\n },\r\n ne = {\r\n x: tile.x * s + s,\r\n y: tile.y * s,\r\n };\r\n return {\r\n sw: fromPointToLatLng(sw),\r\n ne: fromPointToLatLng(ne),\r\n };\r\n};\r\n\r\nexport const normalizeTile = (tile) => {\r\n var t = Math.pow(2, tile.z);\r\n tile.x = ((tile.x % t) + t) % t;\r\n tile.y = ((tile.y % t) + t) % t;\r\n return tile;\r\n};\r\n\r\nexport const serializeFeature = (fields) => {\r\n if (fields)\r\n if (fields.length > 0)\r\n for (var x = 0; x < fields.length; x++) {\r\n if (\r\n typeof fields[x].feature === \"string\" ||\r\n fields[x].feature instanceof String\r\n ) {\r\n try {\r\n fields[x].feature = Object.assign(\r\n {},\r\n JSON.parse(fields[x].feature)\r\n );\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n } else continue;\r\n }\r\n return fields;\r\n};\r\n\r\nexport const getDialogButton = (label, onClick) => {\r\n \r\n return (\r\n \r\n {label}\r\n \r\n );\r\n};\r\n\r\nexport const getVisibleLayers = () => {\r\n let visibleLayers = [];\r\n\r\n if (window.map)\r\n window.map.getLayers().forEach((layer) => {\r\n let title = layer.get(\"title\");\r\n\r\n if (title !== null) if (layer.getVisible()) visibleLayers.push(title);\r\n });\r\n\r\n return visibleLayers;\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZdJREFUeNqkU71OAkEQnpUjMYcEMISfxgcgVhJptZaCBqSyprOg8zHoxEoaDULiC1x8AAUj8acghIZQwIVAQIh6cOfM3h0eBw0yybezMzt/u7PDNE2DTUgoMTYX0n/7NOLUZnuHKNKmaEm6ZbVI6SyIOEPUEWUDdUMXTNkrsApJjPzOWPgDQETDi6SRqczYbQngIQIQRl3HHiCPiJqKiKap5/n8oZTJPJoV4jupl7ruylZ1ld0AVJLZbFRRFF3T73NEfT4OeuTnwYDrDrxeDp5ZEOA+l6sKUxQmkwkM0Ihoj+B2A0ynIMvyom42g16vx3WiKAL5CpTX4/FwrEuKGaDZbEK73V4yCBcKnL/G4+D3+xfOqAIe4AcXSZJWZujWatBoNABarfl1rES+wjcux7EYyN3ukoEzEIAAohMKwa7xeCY5HA54qlT0CoThEHbG46UAL4kE5yGXa+U59/2k+2AXnNguTVUBEMSpfUfoyGeF5NGIPsRCAPJlJwDX+Hf3/zNI+CXfaHqof9t0rTX9Z4gvtuk4/wowABBVpMWVwh3oAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEySURBVDhPldK9SgNBFIbhiQaNsVDQKwjB2xCSRi9ALLXRG9AmQUFFEksbf8o0oiiKd6DgH4RAGk0stLDRXoSU8f1mspKdXQP7wQNnluUk5+wYL3M4wzNauMYChjAwWVziExsoYhZreMMtpvBvrqCXJu0pnAwu8IC0HviZxxcm7MmlihNX2oxAY63Yk5dTbLryL34DZRn3rgxHnTWzsoU9POGlV4tGm8E3InlFwZWmhnO08dGrZRp5dBCJFqht9yduBH3OpivDWcQ7tO0gfoNhPGLdnrykcANdoFE9IGMYd6W9RPvQl9Lz2GhGbViLW4IWloP+thaqC9ZFHTvQj0aiS7KKO/xAC2tA+9F4ml9N5ACxTQZlG0EDOUKiJnr5EP1NSkgUNTlG0KCCxFGTMnaNMelfSFpDy7efEgIAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEbSURBVDhPldLNSgJRGMbxYw5lbQrqCkS8DSE3dQHRMjd1A7kpElREXLqpXLorisQ7MOgLQmiT4aK2uY+gZf2fGYTmzHFkHvjBOYfhnXnfOcbKFi7xijf0sYMFxGYFN/jECYoo4BDvuMU6ZqYHPbTm78LJ4BoP8HRgZxsTrPo7dxahtvb9nZULVIJlbEq4D5bhqLJ6VqpoOai1PL4QyRibwdJ0ceWwgRx+EIkGqGnPi37nS7AMZxcf0LRnJY1HlP2dlRQG0AVa0oEVXaI29KeWdeCKetSER9iDBpaFPvsJumC/eEYdemkkuiQHuMM3NLAhNB+1p/5VRE7hLBKXGqYF5ByJiujhM/wvcoREUZEOpgWaSBwVOUbDGOP9AbU1PhcYGoIJAAAAAElFTkSuQmCC\"","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport Menu, { SubMenu, Item as MenuItem, Divider } from \"rc-menu\";\r\nimport \"rc-menu/assets/index.css\";\r\nimport \"./FloatingMenu.css\";\r\n\r\n// PROPER USE OF THIS COMPONENT IS TO USE A PORTAL. HAVE A LOOK AT UserField FOR AN EXAMPLE.\r\nclass FloatingMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isVisible: true,\r\n styleMode: this.props.styleMode === undefined ? \"right\" : this.props.styleMode,\r\n style: {\r\n position: \"absolute\",\r\n zIndex: 10000,\r\n top: this.props.buttonEvent.pageY,\r\n left: this.props.buttonEvent.pageX,\r\n backgroundColor: \"white\",\r\n width: \"180px\"\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getStyle(style => {\r\n this.setState({ style: style });\r\n });\r\n\r\n // CLICK ANYWHERE ELSE WILL CLOSE MENU\r\n this.clickEvent = document.body.addEventListener(\r\n \"click\",\r\n evt => {\r\n if (typeof evt.target.className === \"string\") {\r\n // IGNORE CLASSNAMES\r\n let found = false;\r\n if (this.props.classNamesToIgnore !== undefined) {\r\n evt.target.className.split(\" \").forEach(className => {\r\n if (this.props.classNamesToIgnore.includes(className)) {\r\n found = true;\r\n return;\r\n }\r\n });\r\n }\r\n\r\n if (evt.target.className.indexOf(\"rc-menu\") > -1 || evt.target.className.indexOf(\"sc-floating-menu-\") > -1 || found) return;\r\n }\r\n\r\n if (this.container !== null && !this.container.contains(evt.target)) {\r\n this.setState({ isVisible: false });\r\n }\r\n },\r\n true\r\n );\r\n }\r\n\r\n isElementInViewport(el) {\r\n var rect = el.getBoundingClientRect();\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) /*or $(window).height() */ &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n }\r\n\r\n getStyle = callback => {\r\n if (this.state === undefined || !this.state.isVisible) callback({ display: \"none\" });\r\n\r\n let yOffset = 0;\r\n let style = null;\r\n window.requestAnimationFrame(() => {\r\n if (this.props.autoY) {\r\n if (this.container !== undefined && this.container !== null) {\r\n const isInViewport = this.isElementInViewport(this.container);\r\n if (!isInViewport) {\r\n yOffset = this.container.offsetHeight;\r\n }\r\n }\r\n }\r\n\r\n if (this.props.yOffset !== undefined) yOffset = this.props.yOffset;\r\n\r\n style = {\r\n position: \"absolute\",\r\n zIndex: 1000,\r\n top: this.props.buttonEvent.pageY - yOffset,\r\n left: this.state.styleMode === \"right\" ? this.props.buttonEvent.pageX : this.props.buttonEvent.pageX - 180,\r\n backgroundColor: \"white\",\r\n width: \"180px\"\r\n };\r\n\r\n if (this.state.isVisible) callback(style);\r\n });\r\n };\r\n\r\n handleSelect = () => {\r\n this.setState({ isVisible: false });\r\n };\r\n\r\n handleClick = info => {\r\n this.props.onMenuItemClick(info.key);\r\n this.setState({ isVisible: false });\r\n };\r\n\r\n render() {\r\n if (!this.state.isVisible) {\r\n return null;\r\n }\r\n\r\n return (\r\n
(this.container = container)}>\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FloatingMenu;\r\n\r\n// IMPORT ALL IMAGES\r\nconst images = importAllImages(require.context(\"./images\", false, /\\.(png|jpe?g|svg)$/));\r\nfunction importAllImages(r) {\r\n let images = {};\r\n r.keys().map((item, index) => (images[item.replace(\"./\", \"\")] = r(item)));\r\n return images;\r\n}\r\n\r\nexport function FloatingMenuItem(props) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { Component} from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nclass Portal extends React.Component {\r\n constructor() {\r\n super();\r\n // 1: Create a new div that wraps the component\r\n this.el = document.createElement(\"div\");\r\n }\r\n // 2: Append the element to the DOM when it mounts\r\n componentDidMount = () => {\r\n document.getElementById(\"portal-root\").appendChild(this.el);\r\n };\r\n // 3: Remove the element when it unmounts\r\n componentWillUnmount = () => {\r\n document.getElementById(\"portal-root\").removeChild(this.el);\r\n };\r\n render() {\r\n // 4: Render the element's children in a Portal\r\n const { children } = this.props;\r\n return ReactDOM.createPortal(children, this.el);\r\n }\r\n}\r\n\r\nexport default Portal;","import React, { useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n// core components\r\nimport \"ol/ol.css\";\r\nimport Map from \"ol/Map\";\r\nimport View from \"ol/View\";\r\nimport { defaults as defaultControls, ScaleLine, FullScreen } from \"ol/control.js\";\r\nimport { defaults as defaultInteractions } from \"ol/interaction.js\";\r\nimport GridItem from \"./Grid/GridItem.js\";\r\nimport GridContainer from \"./Grid/GridContainer.js\";\r\nimport * as helpers from \"../helpers/helpers\";\r\nimport SoilsInfoImage from \"./images/tools.png\";\r\nimport ZoomInImage from \"./images/zoom-in.png\";\r\nimport ZoomOutImage from \"./images/zoom-out.png\"\r\nimport FloatingMenu, { FloatingMenuItem } from \"../helpers/FloatingMenu.js\";\r\nimport { unmountComponentAtNode } from 'react-dom';\r\nimport Menu, { SubMenu, Item as MenuItem, Divider } from \"rc-menu\";\r\nimport Portal from \"../helpers/Portal.js\";\r\n\r\nimport \"./MapComponent.css\";\r\nvar contextCoords = null;\r\n\r\nexport default function MapComponent() {\r\n const [mapRendered, setMapRendered] = useState(false);\r\n const [contextCoords2, setContextCoords] = useState(null);\r\n \r\n React.useLayoutEffect(() => {\r\n if (mapRendered == false) {\r\n \r\n const centerCoords = [-11134123.288132, 4891969.810251]; //centroid\r\n const scaleLineControl = new ScaleLine();\r\n\r\n var map = new Map({\r\n controls: defaultControls().extend([\r\n scaleLineControl,\r\n new FullScreen(),\r\n ]),\r\n layers: [],\r\n target: \"map\",\r\n view: new View({\r\n center: centerCoords,\r\n zoom: 7,\r\n maxZoom: 20,\r\n minZoom: 6,\r\n }),\r\n interactions: defaultInteractions({\r\n keyboard: true,\r\n altShiftDragRotate: false,\r\n pinchRotate: false,\r\n })\r\n });\r\n\r\n window.map = map;\r\n\r\n //console.log(window);\r\n // EMIT A CHANGE IN THE SIDEBAR (IN OR OUT)\r\n window.emitter.emit(\"mapLoaded\");\r\n\r\n document.getElementById(\"map\").focus();\r\n\r\n window.map.getViewport().addEventListener(\"contextmenu\", evt => {\r\n evt.preventDefault();\r\n \r\n //this.contextCoords = window.map.getEventCoordinate(evt);\r\n \r\n var contextCoordsU = window.map.getEventCoordinate(evt);\r\n // console.log(\"setting context coords: \", contextCoordsU );\r\n setContextCoords(contextCoordsU);\r\n contextCoords = contextCoordsU;\r\n \r\n const menu = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n ReactDOM.render(menu, document.getElementById(\"portal-root\"));\r\n });\r\n\r\n // HANDLE URL PARAMETERS (ZOOM TO XY)\r\n const x = helpers.getURLParameter(\"X\");\r\n const y = helpers.getURLParameter(\"Y\");\r\n const sr =\r\n helpers.getURLParameter(\"SR\") === null\r\n ? \"WEB\"\r\n : helpers.getURLParameter(\"SR\");\r\n\r\n if (x !== null || y !== null) {\r\n let coords = [x, y];\r\n if (sr === \"WGS84\")\r\n coords = fromLonLat([\r\n Math.round(x * 100000) / 100000,\r\n Math.round(y * 100000) / 100000,\r\n ]);\r\n\r\n helpers.flashPoint(coords);\r\n }\r\n\r\n setMapRendered(true);\r\n }\r\n }, [mapRendered]);\r\n\r\n const onMenuItemClick = key => {\r\n if (key === \"sc-floating-menu-zoomin\") {\r\n window.map.getView().setZoom(window.map.getView().getZoom() + 1);\r\n var root = document.getElementById(\"portal-root\");\r\n unmountComponentAtNode(root);\r\n }\r\n else if (key === \"sc-floating-menu-zoomout\") {\r\n window.map.getView().setZoom(window.map.getView().getZoom() - 1);\r\n var root = document.getElementById(\"portal-root\");\r\n unmountComponentAtNode(root);\r\n }\r\n else if (key === \"sc-floating-menu-property-click\")\r\n {\r\n // console.log(contextCoords);\r\n window.emitter.emit(\"showPropertyReport\", contextCoords);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport GridItem from \"components/Grid/GridItem\";\r\nimport GridContainer from \"components/Grid/GridContainer\";\r\n\r\nexport default function SpatialLayerList(props) {\r\n const { onChange, allLayers, visibleLayers } = props;\r\n // console.log('spatial layer props : ', props);\r\n return (\r\n \r\n {allLayers &&\r\n allLayers.map((layer, index) => {\r\n var initValue = false;\r\n //Adding logic to check it a layer is already visible.\r\n for (var i = 0; i < visibleLayers.length; i++)\r\n if (visibleLayers[i] == layer) initValue = true;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n onChange(event, layer)}\r\n //checked={initValue}\r\n inputProps={{ \"aria-label\": layer }}\r\n />\r\n
\r\n
\r\n \r\n

{layer}

\r\n
\r\n\r\n\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport MapConfig from \"./MapSwitcherConfig.json\";\r\n\r\nexport default function LayerLegend(props) {\r\n\r\n const [allLayers, setAllLayers] = useState([]);\r\n const { layer } = props\r\n\r\n const getLegendImageUrl = () => {\r\n\r\n let url = '';\r\n\r\n if (layer) {\r\n if (MapConfig) {\r\n if (MapConfig.cdlServices)\r\n MapConfig.cdlServices.map((service) => {\r\n if (layer.toLowerCase() === service.name.toLowerCase())\r\n if (service.legendUrl)\r\n url = service.legendUrl;\r\n });\r\n\r\n if (MapConfig.geoserverServices)\r\n MapConfig.geoserverServices.map((service) => {\r\n if (layer.toLowerCase() === service.name.toLowerCase()) \r\n if (service.legendUrl)\r\n url = service.legendUrl;\r\n });\r\n }\r\n }\r\n\r\n return url;\r\n }\r\n\r\n let imageUrl = getLegendImageUrl();\r\n\r\n if (imageUrl != '')\r\n return {layer;\r\n\r\n else\r\n return
;\r\n \r\n}\r\n\r\n\r\n\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./MapSwitcher.css\";\r\nimport * as helpers from \"../../helpers/helpers\";\r\nimport MapConfig from \"./MapSwitcherConfig.json\";\r\nimport TileLayer from \"ol/layer/Tile.js\";\r\nimport BingMaps from \"ol/source/BingMaps.js\";\r\nimport SpatialLayerList from \"./SpatialLayerList\";\r\nimport LayerLegend from \"./LayerLegend.js\";\r\nimport { BACKEND } from \"../../constants/api\";\r\n\r\n\r\nexport default function MapSwitcher() {\r\n const [imagerySliderValue, setImagerySliderValue] = useState(null);\r\n const [imageryLayers, setImageryLayers] = useState([]);\r\n const [imageryPanelOpen, setImageryPanelOpen] = useState(false);\r\n const [streetsLayer, setStreetsLayer] = useState(null);\r\n const [streetsCheckbox, setStreetsCheckbox] = useState(true);\r\n const [containerCollapsed, setContainerCollapsed] = useState(false);\r\n const [topoPanelOpen, setTopoPanelOpen] = useState(false);\r\n const [topoLayers, setTopoLayers] = useState([]);\r\n const [topoActiveIndex, setTopoActiveIndex] = useState(0);\r\n const [activeButton, setActiveButton] = useState(\"imagery\");\r\n const [allLayers, setAllLayers] = useState([]);\r\n const [forceUpdate, setForceUpdate] = useState([]);\r\n const [styles, setStyles] = useState([\r\n {\r\n styleName: \"Road\",\r\n isTileLayer: false,\r\n },\r\n\r\n {\r\n styleName: \"Aerial\",\r\n isTileLayer: false,\r\n },\r\n {\r\n styleName: \"AerialWithLabels\",\r\n isTileLayer: false,\r\n },\r\n ]);\r\n\r\n // LISTEN FOR MAP TO MOUNT\r\n window.emitter.addListener(\"mapLoaded\", () => onMapLoad());\r\n\r\n\r\n const addLayersToState = (keys) => {\r\n let newList = [];\r\n\r\n if (keys)\r\n if (keys.length > 0) {\r\n keys.forEach((key) => {\r\n if (!allLayers.includes(key)) {\r\n newList.push(key);\r\n }\r\n });\r\n }\r\n\r\n // console.log('Layers at time: ', allLayers);\r\n var allLayersPlusNew = allLayers.concat(newList); \r\n // console.log('Layers at time after new: ', allLayersPlusNew);\r\n\r\n setAllLayers(allLayersPlusNew);\r\n };\r\n \r\n\r\n const onMapLoad = () => {\r\n let newLayers = [];\r\n\r\n for (var i = 0; i < styles.length; i++) {\r\n if (styles[i].isTileLayer && styles[i].styleName == \"ssurgoSoils\") {\r\n /* window.map.addLayer(new TileLayer({\r\n title: \"Soils Imagery\",\r\n source: new XYZ(\r\n {\r\n tileUrlFunction: getSsurgoTileImage\r\n }),\r\n visible: false\r\n }));\r\n \r\n newLayers.push(\"Soils Imagery\")*/\r\n } else {\r\n window.map.addLayer(\r\n new TileLayer({\r\n visible: styles[i].styleName == \"AerialWithLabels\" ? true : false,\r\n preload: Infinity,\r\n title: styles[i].styleName,\r\n source: new BingMaps({\r\n key: \"AodaDoXgognX4vhPqaouMx44frx2G9a5Swio1r9aGK0iOiUNyYu9jnqpHMT0_1hL\",\r\n imagerySet: styles[i].styleName,\r\n }),\r\n })\r\n );\r\n // console.log(\"Adding bing maps layer\", window.map);\r\n // newLayers.push(styles[i].styleName)\r\n }\r\n }\r\n\r\n if (MapConfig) {\r\n if (MapConfig.cdlServices)\r\n MapConfig.cdlServices.map((service) => {\r\n let layer = helpers.getImageWMSLayerCDL(\r\n service.url,\r\n service.layers,\r\n service.name,\r\n service.version\r\n );\r\n layer.setOpacity(0.6);\r\n layer.setVisible(false);\r\n window.map.addLayer(layer);\r\n\r\n newLayers.push(service.name);\r\n // console.log(\"adding image layer\");\r\n });\r\n\r\n if (MapConfig.geoserverServices)\r\n MapConfig.geoserverServices.map((service) => {\r\n let layer = helpers.getImageWMSLayer(\r\n service.url,\r\n service.layers,\r\n service.name,\r\n service.version\r\n );\r\n layer.setOpacity(0.6);\r\n layer.setVisible(false);\r\n window.map.addLayer(layer);\r\n\r\n newLayers.push(service.name);\r\n // console.log('adding image layer: ' + service.name);\r\n });\r\n\r\n /*Turning off for now */\r\n if (!MapConfig.mapServerServices)\r\n MapConfig.mapServerServices.map((service) => {\r\n let layer = helpers.getMapServerVectorSource(\r\n service.url,\r\n service.layers,\r\n service.name,\r\n service.version\r\n );\r\n layer.setOpacity(0.9);\r\n layer.setVisible(false);\r\n window.map.addLayer(layer);\r\n\r\n newLayers.push(service.name);\r\n // console.log('adding image layer');\r\n });\r\n\r\n /*locally hosted postgis layers. Fetch them first. */\r\n if (MapConfig.postgresServerServices)\r\n MapConfig.postgresServerServices.map((service) => {\r\n\r\n if (service.url) {\r\n getPostgresLayer(service);\r\n }\r\n\r\n if (service.name != 'States') {\r\n newLayers.push(service.name);\r\n }\r\n });\r\n\r\n // console.log(\"New Layers: \", newLayers);\r\n addLayersToState(newLayers);\r\n }\r\n };\r\n\r\n const getPostgresLayer = ( service) => {\r\n var data = { Fips: [] };\r\n\r\n fetch(`${BACKEND}${service.url}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(data),\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n if (response.status == 200) {\r\n response\r\n .json()\r\n .then((geoJson) => {\r\n // console.log(\"Fetching postgres layer: \", geoJson );\r\n let layer = helpers.getPostgresServerVectorSource(\r\n service.url,\r\n service.layers,\r\n service.name,\r\n service.version,\r\n \"\",\r\n geoJson\r\n );\r\n // console.log(\"Layer object: \", layer );\r\n if (layer) {\r\n if (service.name == \"States\") \r\n setStateLayerOnMap(layer);\r\n else if (service.name == \"Counties\") setCountyLayerOnMap(layer);\r\n else {\r\n layer.setOpacity(0.9);\r\n layer.setVisible(false);\r\n window.map.addLayer(layer);\r\n }\r\n\r\n //addLayersToState([service.name]);\r\n }\r\n //console.log('layer : ', layer);\r\n //addLayersToState([layer] );\r\n })\r\n .catch((e) => {\r\n console.log(\"Layer Not Found\", e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n console.log(\"Layer Not Found\", e);\r\n });\r\n };\r\n\r\n /*\r\n Remove any existing state layers besides new layer\r\n TODO: Just hide layers so we don't need to fetch them again.\r\n */\r\n const setStateLayerOnMap = (newLayer) => {\r\n var layersToRemove = [];\r\n\r\n window.map.getLayers().forEach((layer) => {\r\n let title = layer.get(\"title\");\r\n\r\n if (title !== null)\r\n if (title === \"States\") {\r\n //aka ''\r\n // console.log(layer);\r\n layersToRemove.push(layer);\r\n }\r\n });\r\n\r\n layersToRemove.forEach((layerToRemove) => {\r\n window.map.removeLayer(layerToRemove);\r\n });\r\n\r\n var firstFeature = newLayer.getSource().getFeatures()[0];\r\n\r\n helpers.zoomToFeature(firstFeature);\r\n\r\n newLayer.setOpacity(0.9);\r\n newLayer.setVisible(true);\r\n window.map.addLayer(newLayer);\r\n };\r\n\r\n /*\r\n Remove any existing county layers besides new layers\r\n TODO: Just hide layers so we don't need to fetch them again.\r\n */\r\n const setCountyLayerOnMap = (newLayer) => {\r\n var layersToRemove = [];\r\n\r\n window.map.getLayers().forEach((layer) => {\r\n let title = layer.get(\"title\");\r\n\r\n if (title !== null)\r\n if (title === \"Counties\") {\r\n //aka ''\r\n // console.log(layer);\r\n layersToRemove.push(layer);\r\n }\r\n });\r\n\r\n layersToRemove.forEach((layerToRemove) => {\r\n window.map.removeLayer(layerToRemove);\r\n });\r\n\r\n newLayer.setOpacity(0.9);\r\n newLayer.setVisible(true);\r\n window.map.addLayer(newLayer);\r\n };\r\n\r\n const getSsurgoTileImage = (bounds) => {\r\n var tileObj = {\r\n z: bounds[0],\r\n x: bounds[1],\r\n y: bounds[2],\r\n };\r\n\r\n var tileBounds = helpers.getTileBounds(tileObj);\r\n var tileExtent = [\r\n tileBounds.sw.lng,\r\n -1 * tileBounds.ne.lat,\r\n tileBounds.ne.lng,\r\n -1 * tileBounds.sw.lat,\r\n ];\r\n\r\n var url = \"https://SDMDataAccess.sc.egov.usda.gov/Spatial/SDM.wms\";\r\n url += \"?REQUEST=GetMap\";\r\n url += \"&SERVICE=WMS\";\r\n url += \"&VERSION=1.1.1\";\r\n url += \"&LAYERS=\" + \"MapunitPoly\";\r\n url += \"&FORMAT=\" + \"image/png\";\r\n url += \"&TRANSPARENT=\" + \"true\";\r\n url += \"&SRS=\" + \"EPSG:4326\";\r\n url += \"&BBOX=\" + tileExtent;\r\n url += \"&WIDTH=\" + \"256\";\r\n url += \"&HEIGHT=\" + \"256\";\r\n //console.log(url);\r\n return url;\r\n };\r\n\r\n // CALLED WHEN SLIDING OR TO RESET\r\n const updateImageryLayers = (value) => {\r\n for (let index = 0; index < imageryLayers.length; index++) {\r\n let layer = imageryLayers[index];\r\n if (value === -1) layer.setVisible(false);\r\n else {\r\n const layerIndex = layer.getProperties().index;\r\n const indexRatio = 1 - Math.abs(layerIndex - value);\r\n if (layerIndex === value) {\r\n layer.setOpacity(1);\r\n layer.setVisible(true);\r\n } else if (indexRatio < 0) {\r\n layer.setOpacity(0);\r\n layer.setVisible(false);\r\n } else {\r\n layer.setOpacity(indexRatio);\r\n layer.setVisible(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onCollapsedClick = (evt) => {\r\n // HIDE OPEN PANELS\r\n if (containerCollapsed === false) {\r\n setImageryPanelOpen(false);\r\n setTopoPanelOpen(false);\r\n }\r\n\r\n setContainerCollapsed(!containerCollapsed);\r\n };\r\n\r\n const showLegendClicked = () => {\r\n if (activeButton === \"legend\")\r\n setActiveButton(\"imagery\");\r\n \r\n else \r\n setActiveButton(\"legend\");\r\n };\r\n\r\n const setLayerVisibilty = (value, key) => {\r\n window.map.getLayers().forEach((layer) => {\r\n let title = layer.get(\"title\");\r\n\r\n if (title !== null)\r\n if (title === key) {\r\n //aka ''\r\n // console.log(key);\r\n //console.log(\"check visibility: \" + title + \" \"+ key, value);\r\n layer.setVisible(value); \r\n setForceUpdate(value); \r\n }\r\n });\r\n };\r\n\r\n const onSpatialLayerClicked = (e, key) => {\r\n // console.log(e);\r\n if (e)\r\n if (e.target) {\r\n // console.log(\"check visibility \", key);\r\n setLayerVisibilty(e.target.checked, key);\r\n }\r\n };\r\n\r\n //console.log(allLayers);\r\n let visibleLayers = helpers.getVisibleLayers();\r\n //console.log('visible layers: ', visibleLayers);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {/**/}\r\n {/* {activeButton === \"legend\" ? \"Hide Legend\" : \"Show Legend\"}*/}\r\n {/**/}\r\n
\r\n\r\n {activeButton === \"legend\" && (\r\n
\r\n {visibleLayers &&\r\n visibleLayers.length > 0 &&\r\n visibleLayers.map((layer, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\n// IMPORT ALL IMAGES\r\nconst images = importAllImages(\r\n require.context(\"./images\", false, /\\.(png|jpe?g|svg|gif)$/)\r\n);\r\nfunction importAllImages(r) {\r\n let images = {};\r\n r.keys().map((item, index) => (images[item.replace(\"./\", \"\")] = r(item)));\r\n return images;\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./ColorBar.css\";\r\n\r\nconst ColorBar = props => {\r\n // USE HOOKS\r\n //const [activeColor, setActiveColor] = useState(\"#e809e5\");\r\n const [activeColor, setActiveColor] = useState(props.activeColor);\r\n\r\n // PARENT CHANGES THE COLOR FROM STORAGE\r\n useEffect(() => {\r\n // UPDATE ACTIVE COLOR\r\n setActiveColor(props.activeColor);\r\n });\r\n\r\n return (\r\n
\r\n \r\n {\r\n setActiveColor(\"#000000\");\r\n props.onClick(\"#000000\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#e90808\");\r\n props.onClick(\"#e90808\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#3174ba\");\r\n props.onClick(\"#3174ba\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#55F31E\");\r\n props.onClick(\"#55F31E\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#636363\");\r\n props.onClick(\"#636363\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#8aedbd\");\r\n props.onClick(\"#8aedbd\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#974400\");\r\n props.onClick(\"#974400\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#fcff1b\");\r\n props.onClick(\"#fcff1b\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#ffb016\");\r\n props.onClick(\"#ffb016\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#e809e5\");\r\n props.onClick(\"#e809e5\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#6aad2f\");\r\n props.onClick(\"#6aad2f\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#08d1e9\");\r\n props.onClick(\"#08d1e9\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#FFFFFF\");\r\n props.onClick(\"#FFFFFF\");\r\n }}\r\n />\r\n {/* */}\r\n {\r\n setActiveColor(\"#aaaaaa\");\r\n props.onClick(\"#aaaaaa\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#8aedbd\");\r\n props.onClick(\"#8aedbd\");\r\n }}\r\n />\r\n {\r\n setActiveColor(\"#BE00C1\");\r\n props.onClick(\"#BE00C1\");\r\n }}\r\n />\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ColorBar;\r\n","import React from 'react';\r\nimport \"./DrawButton.css\";\r\n\r\nconst DrawButton = props => {\r\n\r\n // console.log(\"DrawButton \", props);\r\n //console.log(\"DrawButton \", images);\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DrawButton;\r\n\r\n// IMPORT ALL IMAGES\r\nconst images = importAllImages(require.context('./images', false, /\\.(png|jpe?g|svg)$/));\r\nfunction importAllImages(r) {\r\n let images = {};\r\n r.keys().map((item, index) => images[item.replace('./', '')] = r(item));\r\n return images;\r\n}","import React from \"react\";\r\nimport \"./ButtonBar.css\";\r\nimport DrawButton from \"./DrawButton.js\";\r\n\r\nconst ButtonBar = props => {\r\n return (\r\n
\r\n {\r\n props.onClick(\"Polygon\");\r\n }}\r\n isActive={props.activeButton === \"Polygon\" ? true : false}\r\n />\r\n {\r\n props.onClick(\"Circle\");\r\n }}\r\n isActive={props.activeButton === \"Circle\" ? true : false}\r\n />\r\n {\r\n props.onClick(\"Rectangle\");\r\n }}\r\n isActive={props.activeButton === \"Rectangle\" ? true : false}\r\n />\r\n \r\n {\r\n props.onClick(\"Cancel\");\r\n }}\r\n isActive={props.activeButton === \"Cancel\" ? true : false}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default ButtonBar;\r\n","import { Circle as CircleStyle, Fill, Stroke, Style, RegularShape } from \"ol/style.js\";\r\nimport { asArray } from \"ol/color\";\r\nimport DoubleClickZoom from \"ol/interaction/DoubleClickZoom\";\r\nimport LineString from \"ol/geom/LineString.js\";\r\n\r\nimport * as helpers from \"../../helpers/helpers\";\r\n\r\n// GET FEATURE FROM MYMAPS LAYER\r\nexport function getFeatureById(id) {\r\n let feature = null;\r\n window.map.getLayers().forEach(layer => {\r\n \r\n if (layer.getProperties().name === \"fieldSidebar\") {\r\n //console.log();\r\n layer\r\n .getSource()\r\n .getFeatures()\r\n .forEach(feat => {\r\n if (feat.getProperties().id === id) feature = feat;\r\n return;\r\n });\r\n }\r\n });\r\n\r\n return feature;\r\n}\r\n\r\nexport function getStyleFromJSON(styleJSON, pointType) {\r\n if (styleJSON === undefined) return getDefaultDrawStyle(\"#e809e5\");\r\n\r\n // FILL\r\n let fill = null;\r\n if (styleJSON.fill_ !== null) {\r\n fill = new Fill({\r\n color: styleJSON.fill_.color_\r\n });\r\n }\r\n\r\n // STROKE\r\n let stroke = null;\r\n if (styleJSON.stroke_ !== null) {\r\n stroke = new Stroke({\r\n color: styleJSON.stroke_.color_,\r\n lineDash: styleJSON.stroke_.lineDash_,\r\n width: styleJSON.stroke_.width_\r\n });\r\n }\r\n\r\n // IMAGE / CIRCLESTYLE\r\n let image = null;\r\n if (styleJSON.image_ !== null) {\r\n const imageFill = new Fill({ color: styleJSON.image_.fill_.color_ });\r\n const imageStroke = new Stroke({ color: styleJSON.image_.stroke_.color_, width: styleJSON.image_.stroke_.width_, lineDash: styleJSON.image_.stroke_.lineDash_ });\r\n\r\n if (pointType === undefined || pointType === \"circle\") {\r\n image = new CircleStyle({\r\n radius: styleJSON.image_.radius_,\r\n stroke: imageStroke,\r\n fill: imageFill\r\n });\r\n } else if (pointType === \"square\") {\r\n image = new RegularShape({\r\n fill: imageFill,\r\n stroke: imageStroke,\r\n points: 4,\r\n radius: styleJSON.image_.radius_,\r\n angle: Math.PI / 4,\r\n rotation: styleJSON.image_.rotation_\r\n });\r\n } else if (pointType === \"triangle\") {\r\n image = new RegularShape({\r\n fill: imageFill,\r\n stroke: imageStroke,\r\n points: 3,\r\n radius: styleJSON.image_.radius_,\r\n //rotation: Math.PI / 4,\r\n rotation: styleJSON.image_.rotation_,\r\n angle: 0\r\n });\r\n } else if (pointType === \"star\") {\r\n image = new RegularShape({\r\n fill: imageFill,\r\n stroke: imageStroke,\r\n points: 5,\r\n radius: styleJSON.image_.radius_,\r\n radius2: 4,\r\n angle: 0,\r\n rotation: styleJSON.image_.rotation_\r\n });\r\n } else if (pointType === \"cross\") {\r\n image = new RegularShape({\r\n fill: imageFill,\r\n stroke: imageStroke,\r\n points: 4,\r\n radius: styleJSON.image_.radius_,\r\n radius2: 0,\r\n angle: 0,\r\n rotation: styleJSON.image_.rotation_\r\n });\r\n } else if (pointType === \"x\") {\r\n image = new RegularShape({\r\n fill: imageFill,\r\n stroke: imageStroke,\r\n points: 4,\r\n radius: styleJSON.image_.radius_,\r\n radius2: 0,\r\n angle: Math.PI / 4,\r\n rotation: styleJSON.image_.rotation_\r\n });\r\n }\r\n }\r\n\r\n // CREATE NEW STYLE FROM PROPS\r\n let style = new Style({\r\n fill: fill,\r\n stroke: stroke,\r\n image: image\r\n });\r\n\r\n return style;\r\n}\r\n\r\nexport function getDefaultDrawStyle(drawColor, isText = false, strokeWidth = 3, pointType = \"circle\", geometryType) {\r\n if (isText === undefined) isText = false;\r\n if (strokeWidth === undefined) strokeWidth = 3;\r\n\r\n // UPDATE FILL COLOR OPACITY\r\n var initialOpacity = 0.8;\r\n var hexColor = drawColor;\r\n var color = asArray(hexColor);\r\n color = color.slice();\r\n color[3] = isText ? 0 : initialOpacity; // change the alpha of the color\r\n\r\n let drawStyle = new Style({\r\n fill: new Fill({\r\n color: color // USE OPACITY\r\n }),\r\n stroke: new Stroke({\r\n color: geometryType === \"Polygon\" || geometryType === \"Circle\" ? [0, 0, 0, 0.8] : color,\r\n width: strokeWidth\r\n }),\r\n image: new CircleStyle({\r\n radius: 5,\r\n stroke: new Stroke({\r\n color: isText ? color : [0, 0, 0, initialOpacity],\r\n width: strokeWidth\r\n }),\r\n fill: new Fill({\r\n color: color\r\n })\r\n })\r\n });\r\n\r\n return drawStyle;\r\n}\r\n\r\nexport function getPointStyle(pointType = \"circle\", radius = 5, strokeColor = \"black\", strokeWidth = 2, fillColor = \"red\", rotation = 0, strokeType = \"normal\") {\r\n const fill = new Fill({ color: fillColor });\r\n\r\n let stroke = new Stroke({ color: strokeColor, width: strokeWidth });\r\n if (strokeType === \"dash\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [10] });\r\n } else if (strokeType === \"dot\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [1, 5] });\r\n }\r\n\r\n // CIRCLE STYLE\r\n if (pointType === \"circle\") {\r\n return new Style({\r\n image: new CircleStyle({\r\n radius: radius,\r\n stroke: stroke,\r\n fill: fill\r\n })\r\n });\r\n }\r\n\r\n let style = null;\r\n if (pointType === \"square\") {\r\n style = new Style({\r\n image: new RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n points: 4,\r\n radius: radius,\r\n angle: Math.PI / 4,\r\n rotation: rotation\r\n })\r\n });\r\n } else if (pointType === \"triangle\") {\r\n style = new Style({\r\n image: new RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n points: 3,\r\n radius: radius,\r\n //rotation: Math.PI / 4,\r\n rotation: rotation,\r\n angle: 0\r\n })\r\n });\r\n } else if (pointType === \"star\") {\r\n style = new Style({\r\n image: new RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n points: 5,\r\n radius: radius,\r\n radius2: 4,\r\n angle: 0,\r\n rotation: rotation\r\n })\r\n });\r\n } else if (pointType === \"cross\") {\r\n style = new Style({\r\n image: new RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n points: 4,\r\n radius: radius,\r\n radius2: 0,\r\n angle: 0,\r\n rotation: rotation\r\n })\r\n });\r\n } else if (pointType === \"x\") {\r\n style = new Style({\r\n image: new RegularShape({\r\n fill: fill,\r\n stroke: stroke,\r\n points: 4,\r\n radius: radius,\r\n radius2: 0,\r\n angle: Math.PI / 4,\r\n rotation: rotation\r\n })\r\n });\r\n }\r\n\r\n return style;\r\n}\r\n\r\nexport function getLineStringStyle(strokeColor = \"black\", strokeWidth = 2, strokeType = \"normal\") {\r\n let stroke = new Stroke({ color: strokeColor, width: strokeWidth });\r\n if (strokeType === \"dash\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [10] });\r\n } else if (strokeType === \"dot\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [1, 5] });\r\n }\r\n\r\n let style = new Style({\r\n stroke: stroke\r\n });\r\n\r\n return style;\r\n}\r\n\r\nexport function getPolygonStyle(strokeColor = \"black\", strokeWidth = 2, fillColor = \"red\", strokeType = \"normal\") {\r\n const fill = new Fill({ color: fillColor });\r\n\r\n let stroke = new Stroke({ color: strokeColor, width: strokeWidth });\r\n if (strokeType === \"dash\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [10] });\r\n } else if (strokeType === \"dot\") {\r\n stroke = new Stroke({ color: strokeColor, width: strokeWidth, lineDash: [1, 5] });\r\n }\r\n\r\n let style = new Style({\r\n fill: fill,\r\n stroke: stroke\r\n });\r\n\r\n return style;\r\n}\r\n\r\n// DETERMINE POINT STYLE\r\n// export function getPointStyleType(style){\r\n// if (style.image_.points_ !== undefined && style.image_.points_ === 4 && )\r\n// }\r\n\r\n// GET STORAGE AND PARSE\r\nexport function getItemsFromStorage(storageKey) {\r\n const storage = localStorage.getItem(storageKey);\r\n if (storage === null) return [];\r\n\r\n const data = JSON.parse(storage);\r\n return data;\r\n}\r\n\r\n// BUG https://github.com/openlayers/openlayers/issues/3610\r\n//Control active state of double click zoom interaction\r\nexport function controlDoubleClickZoom(active) {\r\n //Find double click interaction\r\n var interactions = window.map.getInteractions();\r\n for (var i = 0; i < interactions.getLength(); i++) {\r\n var interaction = interactions.item(i);\r\n if (interaction instanceof DoubleClickZoom) {\r\n interaction.setActive(active);\r\n }\r\n }\r\n}\r\n\r\n// HANDLE LABELS\r\nexport function setFeatureLabel(fieldInfo) {\r\n let feature = getFeatureById(fieldInfo.id);\r\n let style = feature.getStyle();\r\n if (fieldInfo.labelVisible) {\r\n const textStyle = helpers.createTextStyle(\r\n feature,\r\n \"label\",\r\n undefined,\r\n undefined,\r\n undefined,\r\n \"15px\",\r\n undefined,\r\n -8,\r\n \"bold\",\r\n undefined,\r\n undefined,\r\n true,\r\n fieldInfo.labelRotation,\r\n undefined,\r\n undefined,\r\n \"#ffffff\",\r\n 0.1\r\n );\r\n\r\n style.setText(textStyle);\r\n feature.setProperties({ labelVisible: true });\r\n feature.setStyle(style);\r\n } else {\r\n feature.setProperties({ labelVisible: false });\r\n style.setText(null);\r\n feature.setStyle(style);\r\n }\r\n}\r\n\r\nexport function convertLineToArrow(geometry) {\r\n // GET 10% OF THE END OF LINE TO USE AS ARROW\r\n const start = geometry.getCoordinateAt(0.8);\r\n const end = geometry.getCoordinateAt(1);\r\n\r\n // RIGHT OF LINE\r\n var lineStr1 = new LineString([start, end]);\r\n lineStr1.rotate(0.7853981634, end);\r\n\r\n // LEFT OF LINE\r\n var lineStr2 = new LineString([start, end]);\r\n lineStr2.rotate(-0.7853981634, end);\r\n\r\n var clone = geometry.clone();\r\n clone.appendCoordinate(lineStr1.getFirstCoordinate());\r\n clone.appendCoordinate(lineStr2.getFirstCoordinate());\r\n clone.appendCoordinate(end);\r\n\r\n return clone;\r\n}\r\n\r\nexport function importFieldSidebar(id, callback2) {\r\n //TODO re-write\r\n}\r\n\r\nexport function exportFieldSidebar(callback2) {\r\n //TODO re-write\r\n\r\n}\r\n","const dialogStyle = theme => ({\r\n container: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n width: \"1000px\",\r\n },\r\n button: {\r\n margin: '1px'\r\n },\r\n input: {\r\n display: \"none\",\r\n },\r\n cssRoot: {\r\n width: \"100%\",\r\n },\r\n cssRootMobile: {\r\n width: \"50%\",\r\n },\r\n cssRootMobileSearch: {\r\n width: \"100%\",\r\n },\r\n dialogTitleRootForm: {\r\n fontSize: \"24px\",\r\n backgroundColor: \"#333\",\r\n color: \"#fff\",\r\n },\r\n dialogTitleRoot: {\r\n fontSize: \"24px\",\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n dialogPaper: {\r\n maxWidth: \"80%\",\r\n },\r\n primaryColor: {\r\n color: theme.palette.primary.main\r\n }\r\n});\r\n\r\nexport default dialogStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n// core components\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/dialogStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nfunction Transition(props) {\r\n return ;\r\n}\r\n\r\nexport default function DynamicDialog(props) {\r\n\r\n const classes = useStyles();\r\n /*const { className, ...rest } = props;\r\n const dialogClasses = classNames({\r\n [classes.normal]: true,\r\n [className]: className !== undefined\r\n });*/\r\n\r\n let { fieldName } = props;\r\n\r\n return (\r\n \r\n {props.loadingMask && props.loadingMask }\r\n \r\n
\r\n {fieldName ? fieldName + \"\\t\" : \"\"}\r\n {props.title}\r\n
\r\n \r\n \r\n
\r\n \r\n {props.textMessage &&
{props.textMessage}
}\r\n
\r\n {props.form &&
{props.form}
}\r\n {props.children &&
{props.children}
}\r\n
\r\n
\r\n \r\n {props.buttons && (\r\n
\r\n {props.buttons.map((button, index) => (\r\n
\r\n {button}\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n \r\n );\r\n\r\n}\r\n\r\nDynamicDialog.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n","import {\r\n primaryColor,\r\n dangerColor,\r\n successColor,\r\n grayColor,\r\n defaultFont\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst customInputStyle = {\r\n disabled: {\r\n \"&:before\": {\r\n backgroundColor: \"transparent !important\"\r\n }\r\n },\r\n underline: {\r\n \"&:hover:not($disabled):before,&:before\": {\r\n borderColor: grayColor[4] + \" !important\",\r\n borderWidth: \"1px !important\"\r\n },\r\n \"&:after\": {\r\n borderColor: primaryColor[0]\r\n }\r\n },\r\n underlineError: {\r\n \"&:after\": {\r\n borderColor: dangerColor[0]\r\n }\r\n },\r\n underlineSuccess: {\r\n \"&:after\": {\r\n borderColor: successColor[0]\r\n }\r\n },\r\n labelRoot: {\r\n ...defaultFont,\r\n color: grayColor[3] + \" !important\",\r\n fontWeight: \"400\",\r\n fontSize: \"14px\",\r\n lineHeight: \"1.42857\",\r\n letterSpacing: \"unset\"\r\n },\r\n labelRootError: {\r\n color: dangerColor[0]\r\n },\r\n labelRootSuccess: {\r\n color: successColor[0]\r\n },\r\n feedback: {\r\n position: \"absolute\",\r\n top: \"18px\",\r\n right: \"0\",\r\n zIndex: \"2\",\r\n display: \"block\",\r\n width: \"24px\",\r\n height: \"24px\",\r\n textAlign: \"center\",\r\n pointerEvents: \"none\"\r\n },\r\n marginTop: {\r\n marginTop: \"16px\"\r\n },\r\n formControl: {\r\n paddingBottom: \"10px\",\r\n margin: \"0px 0 0 0\",\r\n position: \"relative\",\r\n verticalAlign: \"unset\"\r\n }\r\n};\r\n\r\nexport default customInputStyle;\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport Input from \"@material-ui/core/Input\";\r\n// @material-ui/icons\r\nimport Clear from \"@material-ui/icons/Clear\";\r\nimport Check from \"@material-ui/icons/Check\";\r\n// core components\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/customInputStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function CustomInput(props) {\r\n const classes = useStyles();\r\n const {\r\n formControlProps,\r\n labelText,\r\n id,\r\n labelProps,\r\n inputProps,\r\n error,\r\n success\r\n } = props;\r\n\r\n const labelClasses = classNames({\r\n [\" \" + classes.labelRootError]: error,\r\n [\" \" + classes.labelRootSuccess]: success && !error\r\n });\r\n const underlineClasses = classNames({\r\n [classes.underlineError]: error,\r\n [classes.underlineSuccess]: success && !error,\r\n [classes.underline]: true\r\n });\r\n const marginTop = classNames({\r\n [classes.marginTop]: labelText === undefined\r\n });\r\n return (\r\n \r\n {labelText !== undefined ? (\r\n \r\n {labelText}\r\n \r\n ) : null}\r\n \r\n {error ? (\r\n \r\n ) : success ? (\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nCustomInput.propTypes = {\r\n labelText: PropTypes.node,\r\n labelProps: PropTypes.object,\r\n id: PropTypes.string,\r\n inputProps: PropTypes.object,\r\n formControlProps: PropTypes.object,\r\n error: PropTypes.bool,\r\n success: PropTypes.bool\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport CustomInput from \"../CustomInput/CustomInput.js\";\r\nimport GridItem from \"../Grid/GridItem.js\";\r\nimport GridContainer from \"../Grid/GridContainer.js\";\r\n\r\n/*Not going to use redux forms. Just going to have controls and track the state. \r\nDrawback here is we will need to manually update items and manually send updated items back to parent.*/\r\nexport default function FieldForm(props) \r\n{\r\n const { parentHandleChange, field } = props\r\n\r\n const [fieldName, setFieldName] = React.useState(\"\");\r\n\r\n const handleChanged = (e) => {\r\n //console.log(\"Token Text Value: \", e);\r\n parentHandleChange(e.target.value)\r\n setFieldName(e.target.value);\r\n };\r\n\r\n const handleChangedAcreage = (e) => {\r\n\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n handleChanged(event),\r\n }}\r\n id=\"fieldName\"\r\n formControlProps={{\r\n fullWidth: true,\r\n }}\r\n />\r\n\r\n handleChangedAcreage(event),\r\n }}\r\n id=\"acreage\"\r\n formControlProps={{\r\n fullWidth: true,\r\n }}\r\n />\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport CustomInput from \"../CustomInput/CustomInput.js\";\r\nimport GridItem from \"../Grid/GridItem.js\";\r\nimport GridContainer from \"../Grid/GridContainer.js\";\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n/*Not going to use redux forms. Just going to have controls and track the state. \r\nDrawback here is we will need to manually update items and manually send updated items back to parent.*/\r\nexport default function EditFieldForm(props) \r\n{\r\n \r\n const { parentEditHandleChange, parentEditAcreChange, field } = props\r\n const [editfieldName, setEditFieldName] = React.useState(field.field.name);\r\n const [editAcreage, setAcreage] = React.useState(field.field.acreage);\r\n\r\n \r\n const handleChangedEdit = (e,field) => {\r\n parentEditHandleChange(e.target.value,field)\r\n setEditFieldName(e.target.value);\r\n };\r\n\r\n \r\n const handleChangedEditAcreage = (e, field) => {\r\n \r\n parentEditAcreChange(e.target.value, field)\r\n setAcreage(e.target.value);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n handleChangedEdit(event, field)}\r\n />\r\n\r\n handleChangedEditAcreage(event, field),\r\n }}\r\n id=\"acreage\"\r\n formControlProps={{\r\n fullWidth: true,\r\n }}\r\n />\r\n\r\n {field.field.apns &&
{field.field.apns.length > 1 ? \"APNs:\" : \"APN:\"} {field.field.apns.join(\", \")}
}\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import {\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n roseCardHeader,\r\n whiteColor\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst cardHeaderStyle = {\r\n cardHeader: {\r\n padding: \"0.75rem 1.25rem\",\r\n marginBottom: \"0\",\r\n borderBottom: \"none\",\r\n background: \"transparent\",\r\n zIndex: \"3 !important\",\r\n \"&$cardHeaderPlain,&$cardHeaderIcon,&$cardHeaderStats,&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n margin: \"0 15px\",\r\n padding: \"0\",\r\n position: \"relative\",\r\n color: whiteColor\r\n },\r\n \"&:first-child\": {\r\n borderRadius: \"calc(.25rem - 1px) calc(.25rem - 1px) 0 0\"\r\n },\r\n \"&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n \"&:not($cardHeaderIcon)\": {\r\n borderRadius: \"3px\",\r\n marginTop: \"-20px\",\r\n padding: \"15px\"\r\n }\r\n },\r\n \"&$cardHeaderStats svg\": {\r\n fontSize: \"36px\",\r\n lineHeight: \"56px\",\r\n textAlign: \"center\",\r\n width: \"36px\",\r\n height: \"36px\",\r\n margin: \"10px 10px 4px\"\r\n },\r\n \"&$cardHeaderStats i,&$cardHeaderStats .material-icons\": {\r\n fontSize: \"36px\",\r\n lineHeight: \"56px\",\r\n width: \"56px\",\r\n height: \"56px\",\r\n textAlign: \"center\",\r\n overflow: \"unset\",\r\n marginBottom: \"1px\"\r\n },\r\n \"&$cardHeaderStats$cardHeaderIcon\": {\r\n textAlign: \"right\"\r\n }\r\n },\r\n cardHeaderPlain: {\r\n marginLeft: \"0px !important\",\r\n marginRight: \"0px !important\"\r\n },\r\n cardHeaderStats: {\r\n \"& $cardHeaderIcon\": {\r\n textAlign: \"right\"\r\n },\r\n \"& h1,& h2,& h3,& h4,& h5,& h6\": {\r\n margin: \"0 !important\"\r\n }\r\n },\r\n cardHeaderIcon: {\r\n \"&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n background: \"transparent\",\r\n boxShadow: \"none\"\r\n },\r\n \"& i,& .material-icons\": {\r\n width: \"33px\",\r\n height: \"33px\",\r\n textAlign: \"center\",\r\n lineHeight: \"33px\"\r\n },\r\n \"& svg\": {\r\n width: \"24px\",\r\n height: \"24px\",\r\n textAlign: \"center\",\r\n lineHeight: \"33px\",\r\n margin: \"5px 4px 0px\"\r\n }\r\n },\r\n warningCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...warningCardHeader\r\n }\r\n },\r\n successCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...successCardHeader\r\n }\r\n },\r\n dangerCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...dangerCardHeader\r\n }\r\n },\r\n infoCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...infoCardHeader\r\n }\r\n },\r\n primaryCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...primaryCardHeader\r\n }\r\n },\r\n roseCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderIcon)\": {\r\n ...roseCardHeader\r\n }\r\n }\r\n};\r\n\r\nexport default cardHeaderStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"../../assets/jss/material-dashboard-react/components/cardHeaderStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function CardHeader(props) {\r\n const classes = useStyles();\r\n const { className, children, color, plain, stats, icon, ...rest } = props;\r\n const cardHeaderClasses = classNames({\r\n [classes.cardHeader]: true,\r\n [classes[color + \"CardHeader\"]]: color,\r\n [classes.cardHeaderPlain]: plain,\r\n [classes.cardHeaderStats]: stats,\r\n [classes.cardHeaderIcon]: icon,\r\n [className]: className !== undefined\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCardHeader.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n \"warning\",\r\n \"success\",\r\n \"danger\",\r\n \"info\",\r\n \"primary\",\r\n \"rose\"\r\n ]),\r\n plain: PropTypes.bool,\r\n stats: PropTypes.bool,\r\n icon: PropTypes.bool,\r\n children: PropTypes.node\r\n};\r\n","import React from \"react\";\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ExpandLess, ExpandMore } from '@material-ui/icons';\r\n\r\nconst styles = {\r\n expandCollapseIcon: {\r\n position: 'absolute',\r\n top: '15px'\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function ExpandCollapseIcon (props) {\r\n const { collapsed } = props;\r\n\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n {collapsed ? : }\r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { styled } from '@material-ui/core/styles';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport Link from '@material-ui/core/Link';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport * as CMBYN from \"../../constants/api\";\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport { IconButton } from \"@material-ui/core\";\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n padding: '10px 26px 10px 12px',\r\n width:'150px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\n\r\nexport default function PreSpeciesPopup(props) {\r\n const { selField, parentchildprecroponeyearone, parentchildprecroptwoyearone, parentchildprecropthreeyearone, parentchildprecroponeyeartwo,\r\n parentchildprecroptwoyeartwo, parentchildprecropthreeyeartwo, parentchildprecroponeyearthree, parentchildprecroptwoyearthree, parentchildprecropthreeyearthree,\r\n \r\n parentcropOneYearOneChange, parentcropOneYearTwoChange, parentcropOneYearThreeChange, parentcropTwoYearOneChange,\r\n parentcropTwoYearTwoChange, parentcropTwoYearThreeChange, parentcropThreeYearOneChange, parentcropThreeYearTwoChange,\r\n parentcropThreeYearThreeChange, parentchildpostcroponeyearone, parentchildpostcroptwoyearone, parentchildpostcropthreeyearone,\r\n parentCopyPreCrop1VerticalChange,parentCopyPreCrop2VerticalChange, parentCopyPreCrop3VerticalChange } = props; \r\n \r\n\r\n const [cropOneYear1, setCropOneYear1] = ((selField.field.fielddetails.precropping.preyearcroponeyearone == '') || (selField.field.fielddetails.precropping.preyearcroponeyearone != parentchildprecroponeyearone)) ? React.useState(parentchildprecroponeyearone): React.useState(selField.field.fielddetails.precropping.preyearcroponeyearone);\r\n \r\n const [cropOneYear1List, setCropOneYear1List] = React.useState([]);\r\n const [cropTwoYear1, setCropTwoYear1] = ((selField.field.fielddetails.precropping.preyearcroptwoyearone == '') || (selField.field.fielddetails.precropping.preyearcroptwoyearone != parentchildprecroptwoyearone)) ? React.useState(parentchildprecroptwoyearone) : React.useState(selField.field.fielddetails.precropping.preyearcroptwoyearone);\r\n const [cropTwoYear1List, setCropTwoYear1List] = React.useState([]);\r\n const [cropThreeYear1, setCropThreeYear1] = ((selField.field.fielddetails.precropping.preyearcropthreeyearone == '') || (selField.field.fielddetails.precropping.preyearcropthreeyearone != parentchildprecropthreeyearone)) ? React.useState(parentchildprecropthreeyearone) : React.useState(selField.field.fielddetails.precropping.preyearcropthreeyearone);\r\n const [cropThreeYear1List, setCropThreeYear1List] = React.useState([]);\r\n const handleChangeYear1 = (event) => {\r\n \r\n setCropOneYear1(event.target.value);\r\n parentcropOneYearOneChange(event.target.value);\r\n \r\n };\r\n \r\n const handleChangeTwoYear1 = (event) => {\r\n setCropTwoYear1(event.target.value);\r\n parentcropTwoYearOneChange(event.target.value);\r\n };\r\n const handleChangeThreeYear1 = (event) => {\r\n setCropThreeYear1(event.target.value);\r\n parentcropThreeYearOneChange(event.target.value);\r\n };\r\n const [cropOneYear2, setCropOneYear2] = ((selField.field.fielddetails.precropping.preyearcroponeyeartwo == '') || (selField.field.fielddetails.precropping.preyearcroponeyeartwo != parentchildprecroponeyeartwo)) ? React.useState(parentchildprecroponeyeartwo) : React.useState(selField.field.fielddetails.precropping.preyearcroponeyeartwo);\r\n const [cropOneYear2List, setCropOneYear2List] = React.useState([]);\r\n const [cropTwoYear2, setCropTwoYear2] = ((selField.field.fielddetails.precropping.preyearcroptwoyeartwo == '') || (selField.field.fielddetails.precropping.preyearcroptwoyeartwo != parentchildprecroptwoyeartwo)) ? React.useState(parentchildprecroptwoyeartwo) : React.useState(selField.field.fielddetails.precropping.preyearcroptwoyeartwo);\r\n const [cropTwoYear2List, setCropTwoYear2List] = React.useState([]);\r\n const [cropThreeYear2, setCropThreeYear2] = ((selField.field.fielddetails.precropping.preyearcropthreeyeartwo == '') || (selField.field.fielddetails.precropping.preyearcropthreeyeartwo != parentchildprecropthreeyeartwo)) ? React.useState(parentchildprecropthreeyeartwo) : React.useState(selField.field.fielddetails.precropping.preyearcropthreeyeartwo);\r\n const [cropThreeYear2List, setCropThreeYear2List] = React.useState([]);\r\n \r\n const handleChangeYear2 = (event) => {\r\n \r\n setCropOneYear2(event.target.value);\r\n parentcropOneYearTwoChange(event.target.value);\r\n };\r\n const handleChangeTwoYear2 = (event) => {\r\n setCropTwoYear2(event.target.value);\r\n parentcropTwoYearTwoChange(event.target.value);\r\n };\r\n const handleChangeThreeYear2 = (event) => {\r\n setCropThreeYear2(event.target.value);\r\n parentcropThreeYearTwoChange(event.target.value);\r\n };\r\n \r\n const [cropOneYear3, setCropOneYear3] = ((selField.field.fielddetails.precropping.preyearcroponeyearthree == '') || (selField.field.fielddetails.precropping.preyearcroponeyearthree != parentchildprecroponeyearthree)) ? React.useState(parentchildprecroponeyearthree) : React.useState(selField.field.fielddetails.precropping.preyearcroponeyearthree);\r\n const [cropOneYear3List, setCropOneYear3List] = React.useState([]);\r\n const [cropTwoYear3, setCropTwoYear3] = ((selField.field.fielddetails.precropping.preyearcroptwoyearthree == '') || (selField.field.fielddetails.precropping.preyearcroptwoyearthree != parentchildprecroptwoyearthree)) ? React.useState(parentchildprecroptwoyearthree) : React.useState(selField.field.fielddetails.precropping.preyearcroptwoyearthree);\r\n const [cropTwoYear3List, setCropTwoYear3List] = React.useState([]);\r\n const [cropThreeYear3, setCropThreeYear3] = ((selField.field.fielddetails.precropping.preyearcropthreeyearthree == '') || (selField.field.fielddetails.precropping.preyearcropthreeyearthree != parentchildprecropthreeyearthree)) ? React.useState(parentchildprecropthreeyearthree) : React.useState(selField.field.fielddetails.precropping.preyearcropthreeyearthree);\r\n const [cropThreeYear3List, setCropThreeYear3List] = React.useState([]);\r\n const handleChangeYear3 = (event) => {\r\n \r\n setCropOneYear3(event.target.value);\r\n parentcropOneYearThreeChange(event.target.value);\r\n };\r\n const handleChangeTwoYear3 = (event) => {\r\n setCropTwoYear3(event.target.value);\r\n parentcropTwoYearThreeChange(event.target.value);\r\n };\r\n const handleChangeThreeYear3 = (event) => {\r\n setCropThreeYear3(event.target.value);\r\n parentcropThreeYearThreeChange(event.target.value);\r\n };\r\n\r\n \r\n const copyCropVerticalChange = (value1,value2,value3) => {\r\n var postvalue1 =parentchildpostcroponeyearone;\r\n var postvalue2 = parentchildpostcroptwoyearone;\r\n var postvalue3 = parentchildpostcropthreeyearone; \r\n parentcropVerticalChange(value1, value2, value3, postvalue1, postvalue2, postvalue3);\r\n };\r\n const copyCrop1Vertical = () => {\r\n\r\n document.getElementById(\"firstCropYear2\").value = cropOneYear1;\r\n setCropOneYear2(cropOneYear1);\r\n \r\n document.getElementById(\"firstCropYear3\").value = cropOneYear1;\r\n setCropOneYear3(cropOneYear1);\r\n \r\n \r\n\r\n parentCopyPreCrop1VerticalChange(cropOneYear1);\r\n };\r\n const copyCrop2Vertical = () => {\r\n document.getElementById(\"secondCropYear2\").value = cropTwoYear1;\r\n setCropTwoYear2(cropTwoYear1);\r\n document.getElementById(\"secondCropYear3\").value = cropTwoYear1;\r\n setCropTwoYear3(cropTwoYear1);\r\n \r\n parentCopyPreCrop2VerticalChange(cropTwoYear1);\r\n };\r\n const copyCrop3Vertical = () => {\r\n document.getElementById(\"thirdCropYear2\").value = cropThreeYear1;\r\n setCropThreeYear2(cropThreeYear1);\r\n document.getElementById(\"thirdCropYear3\").value = cropThreeYear1;\r\n setCropThreeYear3(cropThreeYear1);\r\n parentCopyPreCrop3VerticalChange(cropThreeYear1);\r\n \r\n };\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_CROPLOOKUP)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setCropOneYear1List(list);\r\n setCropTwoYear1List(list);\r\n setCropThreeYear1List(list);\r\n setCropOneYear2List(list);\r\n setCropTwoYear2List(list);\r\n setCropThreeYear2List(list);\r\n setCropOneYear3List(list);\r\n setCropTwoYear3List(list);\r\n setCropThreeYear3List(list);\r\n })\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Enter your crop rotation for the three years prior to your proposed irrigation system enhancement.\r\n
\r\n
\r\n If you grew more than one crop in a single year, select a crop for Crop 2 and/or Crop 3. If growing a perennial or continuous crop, use copy crop to all years, to copy to every year.\r\n
\r\n
\r\n You must have at least one crop selected for each year. If the field was fallow, please select Fallow.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Year 1:\r\n \r\n
\r\n
\r\n Crop 1\r\n\r\n \r\n }\r\n >\r\n {cropOneYear1List.map((cr) => (\r\n \r\n \r\n ))}\r\n \r\n
\r\n \r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear1List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n \r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear1List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyCrop1Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyCrop2Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyCrop3Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Year 2:\r\n \r\n
\r\n
\r\n Crop 1\r\n }\r\n >\r\n {cropOneYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Year 3:\r\n \r\n
\r\n
\r\n Crop 1\r\n }\r\n >\r\n {cropOneYear3List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear3List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear3List.map((cr) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport Link from '@material-ui/core/Link';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport * as CMBYN from \"../../constants/api\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport { IconButton } from \"@material-ui/core\";\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n padding: '10px 26px 10px 12px',\r\n width: '150px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\n\r\nexport default function PostSpeciesPopup(props) {\r\n const { selFieldPost, parentchildpostcroponeyearone, parentchildpostcroptwoyearone, parentchildpostcropthreeyearone, parentchildpostcroponeyeartwo,\r\n parentchildpostcroptwoyeartwo, parentchildpostcropthreeyeartwo, parentchildpostcroponeyearthree, parentchildpostcroptwoyearthree, parentchildpostcropthreeyearthree,\r\n parentpostcropOneYearOneChange, parentpostcropOneYearTwoChange, parentpostcropOneYearThreeChange, parentpostcropTwoYearOneChange,\r\n parentpostcropTwoYearTwoChange, parentpostcropTwoYearThreeChange, parentpostcropThreeYearOneChange, parentpostcropThreeYearTwoChange,\r\n parentpostcropThreeYearThreeChange, parentchildprecroponeyearone, parentchildprecroptwoyearone, parentchildprecropthreeyearone,\r\n parentCopyPostCrop1VerticalChange, parentCopyPostCrop2VerticalChange, parentCopyPostCrop3VerticalChange } = props; \r\n const [cropOneYear1, setCropOneYear1] = ((selFieldPost.field.fielddetails.postcropping.postyearcroponeyearone == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroponeyearone != parentchildpostcroponeyearone)) ? React.useState(parentchildpostcroponeyearone) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroponeyearone);\r\n const [cropOneYear1List, setCropOneYear1List] = React.useState([]);\r\n const [cropTwoYear1, setCropTwoYear1] = ((selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearone == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearone != parentchildpostcroptwoyearone)) ? React.useState(parentchildpostcroptwoyearone) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearone);\r\n const [cropTwoYear1List, setCropTwoYear1List] = React.useState([]);\r\n const [cropThreeYear1, setCropThreeYear1] = ((selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearone == '') || (selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearone != parentchildpostcropthreeyearone)) ? React.useState(parentchildpostcropthreeyearone) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearone);\r\n const [cropThreeYear1List, setCropThreeYear1List] = React.useState([]);\r\n const handleChangeYear1 = (event) => {\r\n setCropOneYear1(event.target.value);\r\n parentpostcropOneYearOneChange(event.target.value);\r\n };\r\n const handleChangeTwoYear1 = (event) => {\r\n setCropTwoYear1(event.target.value);\r\n parentpostcropTwoYearOneChange(event.target.value);\r\n \r\n };\r\n const handleChangeThreeYear1 = (event) => {\r\n setCropThreeYear1(event.target.value);\r\n parentpostcropThreeYearOneChange(event.target.value);\r\n \r\n };\r\n const [cropOneYear2, setCropOneYear2] = ((selFieldPost.field.fielddetails.postcropping.postyearcroponeyeartwo == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroponeyeartwo != parentchildpostcroponeyeartwo)) ? React.useState(parentchildpostcroponeyeartwo) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroponeyeartwo);\r\n const [cropOneYear2List, setCropOneYear2List] = React.useState([]);\r\n const [cropTwoYear2, setCropTwoYear2] = ((selFieldPost.field.fielddetails.postcropping.postyearcroptwoyeartwo == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroptwoyeartwo != parentchildpostcroptwoyeartwo)) ? React.useState(parentchildpostcroptwoyeartwo) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroptwoyeartwo);\r\n const [cropTwoYear2List, setCropTwoYear2List] = React.useState([]);\r\n const [cropThreeYear2, setCropThreeYear2] = ((selFieldPost.field.fielddetails.postcropping.postyearcropthreeyeartwo == '') || (selFieldPost.field.fielddetails.postcropping.postyearcropthreeyeartwo != parentchildpostcropthreeyeartwo)) ? React.useState(parentchildpostcropthreeyeartwo) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcropthreeyeartwo);\r\n const [cropThreeYear2List, setCropThreeYear2List] = React.useState([]);\r\n const handleChangeYear2 = (event) => {\r\n setCropOneYear2(event.target.value);\r\n parentpostcropOneYearTwoChange(event.target.value);\r\n };\r\n const handleChangeTwoYear2 = (event) => {\r\n setCropTwoYear2(event.target.value);\r\n parentpostcropTwoYearTwoChange(event.target.value);\r\n };\r\n const handleChangeThreeYear2 = (event) => {\r\n setCropThreeYear2(event.target.value);\r\n parentpostcropThreeYearTwoChange(event.target.value);\r\n };\r\n\r\n const [cropOneYear3, setCropOneYear3] = ((selFieldPost.field.fielddetails.postcropping.postyearcroponeyearthree == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroponeyearthree != parentchildpostcroponeyearthree)) ? React.useState(parentchildpostcroponeyearthree) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroponeyearthree);\r\n const [cropOneYear3List, setCropOneYear3List] = React.useState([]);\r\n const [cropTwoYear3, setCropTwoYear3] = ((selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearthree == '') || (selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearthree != parentchildpostcroptwoyearthree)) ? React.useState(parentchildpostcroptwoyearthree) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcroptwoyearthree);\r\n const [cropTwoYear3List, setCropTwoYear3List] = React.useState([]);\r\n const [cropThreeYear3, setCropThreeYear3] = ((selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearthree == '') || (selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearthree != parentchildpostcropthreeyearthree)) ? React.useState(parentchildpostcropthreeyearthree) : React.useState(selFieldPost.field.fielddetails.postcropping.postyearcropthreeyearthree);\r\n const [cropThreeYear3List, setCropThreeYear3List] = React.useState([]);\r\n const handleChangeYear3 = (event) => {\r\n setCropOneYear3(event.target.value);\r\n parentpostcropOneYearThreeChange(event.target.value);\r\n };\r\n const handleChangeTwoYear3 = (event) => {\r\n setCropTwoYear3(event.target.value);\r\n parentpostcropTwoYearThreeChange(event.target.value);\r\n };\r\n const handleChangeThreeYear3 = (event) => {\r\n setCropThreeYear3(event.target.value);\r\n parentpostcropThreeYearThreeChange(event.target.value);\r\n };\r\n const copyPostCropVerticalChange = (value1, value2, value3) => {\r\n var prevalue1 = parentchildprecroponeyearone;\r\n var prevalue2 =parentchildprecroptwoyearone; \r\n var prevalue3 = parentchildprecropthreeyearone;\r\n\r\n parentcropVerticalChange(prevalue1, prevalue2,prevalue3,value1, value2, value3);\r\n };\r\n const copyPostCrop1Vertical = () => {\r\n\r\n document.getElementById(\"firstCropYear2\").value = cropOneYear1;\r\n setCropOneYear2(cropOneYear1);\r\n document.getElementById(\"firstCropYear3\").value = cropOneYear1;\r\n setCropOneYear3(cropOneYear1);\r\n parentCopyPostCrop1VerticalChange(cropOneYear1);\r\n };\r\n const copyPostCrop2Vertical = () => {\r\n\r\n \r\n document.getElementById(\"secondCropYear2\").value = cropTwoYear1;\r\n setCropTwoYear2(cropTwoYear1);\r\n document.getElementById(\"secondCropYear3\").value = cropTwoYear1;\r\n setCropTwoYear3(cropTwoYear1);\r\n parentCopyPostCrop2VerticalChange(cropTwoYear1);\r\n };\r\n const copyPostCrop3Vertical = () => {\r\n\r\n \r\n document.getElementById(\"thirdCropYear2\").value = cropThreeYear1;\r\n setCropThreeYear2(cropThreeYear1);\r\n document.getElementById(\"thirdCropYear3\").value = cropThreeYear1;\r\n setCropThreeYear3(cropThreeYear1);\r\n parentCopyPostCrop3VerticalChange(cropThreeYear1);\r\n };\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_CROPLOOKUP)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setCropOneYear1List(list);\r\n setCropTwoYear1List(list);\r\n setCropThreeYear1List(list);\r\n setCropOneYear2List(list);\r\n setCropTwoYear2List(list);\r\n setCropThreeYear2List(list);\r\n setCropOneYear3List(list);\r\n setCropTwoYear3List(list);\r\n setCropThreeYear3List(list);\r\n })\r\n }, []);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n Enter your anticipated crop rotation for the three years following your proposed irrigation system enhancement.\r\n
\r\n
\r\n If you are growing more than one crop in a growing season, please select a crop for Crop 2 and/or Crop 3. If growing a perennial or continuous crop, use copy crop to all years, to copy to every year.\r\n
\r\n
\r\n You must have at least one crop selected for each year. If the field was fallow, please select Fallow.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Year 1:\r\n \r\n
\r\n
\r\n Crop 1\r\n }\r\n >\r\n {cropOneYear1List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear1List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear1List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyPostCrop1Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyPostCrop2Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/*
Copy
*/}\r\n {/*
*/}\r\n { copyPostCrop3Vertical(); }}\r\n style={{ fontSize: \"small\" }}\r\n >\r\n Copy crop to all years\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Year 2:\r\n \r\n
\r\n
\r\n Crop 1\r\n }\r\n >\r\n {cropOneYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear2List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Year 3:\r\n \r\n
\r\n
\r\n Crop 1\r\n }\r\n >\r\n {cropOneYear3List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 2 (if any)\r\n }\r\n >\r\n {cropTwoYear3List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n Crop 3 (if any)\r\n }\r\n >\r\n {cropThreeYear3List.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport * as CMBYN from \"../../constants/api\";\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n \r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\n\r\nexport default function PreIrrigationPopup(props) {\r\n const { selPreIrrField, parentchildpreirr, parentPreIrrChange } = props;\r\n const [preirrigtn, setPreirrigtn] = (selPreIrrField.field.fielddetails.preirr == '') ?React.useState(parentchildpreirr) : React.useState(selPreIrrField.field.fielddetails.preirr);\r\n const [preirrigtnList, setPreirrigtnList] = React.useState([]);\r\n const [postirrigtn, setPostirrigtn] = React.useState([]);\r\n \r\n const handlePreIrrigation = (event) => {\r\n setPreirrigtn(event.target.value);\r\n parentPreIrrChange(event.target.value);\r\n };\r\n const handlePostIrrigation = (event) => {\r\n setPostirrigtn (event.target.value);\r\n };\r\n \r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_PREIRRTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n \r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n\r\n \r\n setPreirrigtnList(list);\r\n \r\n })\r\n }, []);\r\n \r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Select the irrigation method that is currently used on this field.\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n >\r\n \r\n {preirrigtnList.map((cr) => (\r\n \r\n\r\n ))}\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport * as CMBYN from \"../../constants/api\";\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n \r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\nexport default function PostIrrigationPopup(props) {\r\n const { selPostIrrField, parentchildpostirr, parentPostIrrChange } = props;\r\n const [preirrigtn, setPreirrigtn] = React.useState([]);\r\n const [postirrigtn, setPostirrigtn] = (selPostIrrField.field.fielddetails.postirr == '') ?React.useState(parentchildpostirr) : React.useState(selPostIrrField.field.fielddetails.postirr);\r\n const [postirrigtnList, setPostirrigtnList] = React.useState([]);\r\n\r\n \r\n const handlePreIrrigation = (event) => {\r\n setPreirrigtn (event.target.value);\r\n };\r\n const handlePostIrrigation = (event) => {\r\n setPostirrigtn(event.target.value);\r\n parentPostIrrChange(event.target.value);\r\n };\r\n \r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTIRRTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setPostirrigtnList(list);\r\n\r\n })\r\n }, []);\r\n\r\n \r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Select the irrigation method that will be used on this field as proposed for your project.\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n >\r\n \r\n {postirrigtnList.map((cr) => (\r\n \r\n\r\n ))}\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { styled } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n \r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\n\r\nexport default function PreWaterMgmtToolsPopup(props) {\r\n\r\n const { selPreWaterField,parentchildpresm, parentchildpreflow, parentchildpreet, parentchildpreno, parentPreSMChange, parentPreFLChange, parentPreETChange, parentPreNOChange } = props;\r\n const [preSoilMoisture, setPreSoilMoisture] = (parentchildpresm != selPreWaterField.field.fielddetails.prewater.preyearsoilmoisture) ? React.useState(parentchildpresm) : React.useState(selPreWaterField.field.fielddetails.prewater.preyearsoilmoisture); \r\n const [preFlow, setPreFlow] = (parentchildpreflow != selPreWaterField.field.fielddetails.prewater.preyearflow) ? React.useState(parentchildpreflow) : React.useState(selPreWaterField.field.fielddetails.prewater.preyearflow); \r\n const [preET, setPreET] = (parentchildpreet != selPreWaterField.field.fielddetails.prewater.preyearet) ? React.useState(parentchildpreet) : React.useState(selPreWaterField.field.fielddetails.prewater.preyearet);\r\n const [preNone, setPreNone] = (parentchildpreno != selPreWaterField.field.fielddetails.prewater.preyearno) ? React.useState(parentchildpreno) : React.useState(selPreWaterField.field.fielddetails.prewater.preyearno); \r\n \r\n const handleSoilMoistureChange = (event) => {\r\n if (!preNone) {\r\n setPreSoilMoisture(event.target.checked);\r\n\r\n parentPreSMChange(event.target.checked);\r\n }\r\n };\r\n const handleFlowChange = (event) => {\r\n if (!preNone) {\r\n setPreFlow(event.target.checked);\r\n\r\n parentPreFLChange(event.target.checked);\r\n }\r\n };\r\n const handleEtChange = (event) => {\r\n if (!preNone) {\r\n setPreET(event.target.checked);\r\n\r\n parentPreETChange(event.target.checked);\r\n }\r\n };\r\n const handleNoneChange = (event) => {\r\n setPreNone(event.target.checked);\r\n if (event.target.checked) { \r\n \r\n setPreET(false);\r\n setPreFlow(false);\r\n setPreSoilMoisture(false);\r\n parentPreETChange(false);\r\n parentPreFLChange(false);\r\n\r\n parentPreSMChange(false);\r\n }\r\n parentPreNOChange(event.target.checked);\r\n };\r\n\r\n // parentPreWaterMgmtToolsChange(preWaterInputs);\r\n //};\r\n const [preirrigtn, setPreirrigtn] = React.useState('');\r\n const [postirrigtn, setPostirrigtn] = React.useState('');\r\n \r\n const handlePreIrrigation = (event) => {\r\n setPreirrigtn (event.target.value);\r\n };\r\n const handlePostIrrigation = (event) => {\r\n setPostirrigtn (event.target.value);\r\n };\r\n useEffect(() => {\r\n if ((selPreWaterField.field.fielddetails.prewater.preyearno && preNone) || (preNone)) {\r\n setPreET(false);\r\n setPreFlow(false);\r\n setPreSoilMoisture(false);\r\n }\r\n\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Select the water management tools currently in use on this field (select all that apply).\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n label=\"Soil Moisture Equipment\"\r\n />\r\n \r\n }\r\n label=\"Flow Meter\"\r\n />\r\n \r\n }\r\n label=\"Use of ET Information\"\r\n />\r\n \r\n }\r\n label=\"None of the above\"\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { styled } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n \r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\n\r\nexport default function PostWaterMgmtToolsPopup(props) {\r\n\r\n\r\n const { selPostWaterField, parentchildpostsm, parentchildpostflow, parentchildpostet, parentchildpostno, parentPostSMChange, parentPostFLChange, parentPostETChange, parentPostNOChange } = props;\r\n const [postSoilMoisture, setPostSoilMoisture] = (selPostWaterField.field.fielddetails.postwater.postyearsoilmoisture == false) ?React.useState(parentchildpostsm) : React.useState(selPostWaterField.field.fielddetails.postwater.postyearsoilmoisture); \r\n const [postFlow, setPostFlow] = (selPostWaterField.field.fielddetails.postwater.postyearflow == false) ?React.useState(parentchildpostflow) : React.useState(selPostWaterField.field.fielddetails.postwater.postyearflow);\r\n const [postET, setPostET] = (selPostWaterField.field.fielddetails.postwater.postyearet == false) ?React.useState(parentchildpostet) : React.useState(selPostWaterField.field.fielddetails.postwater.postyearet);\r\n \r\n const handlePostSoilMoistureChange = (event) => {\r\n\r\n setPostSoilMoisture(event.target.checked);\r\n parentPostSMChange(event.target.checked);\r\n };\r\n \r\n const handlePostFlowChange = (event) => {\r\n \r\n setPostFlow(event.target.checked);\r\n parentPostFLChange(event.target.checked);\r\n };\r\n const handlePostEtChange = (event) => {\r\n setPostET(event.target.checked);\r\n parentPostETChange(event.target.checked);\r\n };\r\n \r\n \r\n \r\n\r\n \r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Select the water management tools that will be used on this field as part of your proposed project (select all that apply).\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n label=\"Soil Moisture Equipment\"\r\n />\r\n \r\n }\r\n label=\"Flow Meter\"\r\n />\r\n \r\n }\r\n label=\"Use of ET Information\"\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","export default \"data:image/png;base64,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\"","import React, { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport PreSpeciesPopup from \"../Popups/PreSpeciesPopup\";\r\nimport PostSpeciesPopup from \"../Popups/PostSpeciesPopup\";\r\nimport PreIrrigationPopup from \"../Popups/PreIrrigationPopup\";\r\nimport PostIrrigationPopup from \"../Popups/PostIrrigationPopup\";\r\nimport PreWaterMgmtToolsPopup from \"../Popups/PreWaterMgmtToolsPopup\";\r\nimport PostWaterMgmtToolsPopup from \"../Popups/PostWaterMgmtToolsPopup\";\r\nimport DynamicDialog from \"../../components/Dialogs/Dialog.js\";\r\nimport * as helpers from \"../../helpers/helpers.js\";\r\nimport greencheckmarkicon from \"./images/green-check-mark-icon.png\";\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"350px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function UserDetails(props) {\r\n\r\n\r\n const { selField, detailsAdded, parentprespeciescroponeyearonechange, parentprespeciescroptwoyearonechange,\r\n parentprespeciescropthreeyearonechange, parentprespeciescroponeyeartwochange, parentprespeciescroptwoyeartwochange,\r\n parentprespeciescropthreeyeartwochange, parentprespeciescroponeyearthreechange, parentprespeciescroptwoyearthreechange,\r\n parentprespeciescropthreeyearthreechange, parentpostspeciescroponeyearonechange, parentpostspeciescroptwoyearonechange,\r\n parentpostspeciescropthreeyearonechange, parentpostspeciescroponeyeartwochange, parentpostspeciescroptwoyeartwochange,\r\n parentpostspeciescropthreeyeartwochange, parentpostspeciescroponeyearthreechange, parentpostspeciescroptwoyearthreechange,\r\n parentpostspeciescropthreeyearthreechange, parentpreirrchange, parentpostirrchange, parentpresoilmoisturechange, parentpreflowchange,\r\n parentpreetchange, parentprenochange, parentpostsoilmoisturechange, parentpostflowchange, parentpostetchange, parentpostnochange,\r\n parentprespeciescropverticalchange,parentprespeciescrop1verticalchange, parentprespeciescrop2verticalchange, parentprespeciescrop3verticalchange,\r\n parentpostspeciescropverticalchange,parentpostspeciescrop1verticalchange, parentpostspeciescrop2verticalchange, parentpostspeciescrop3verticalchange } = props;\r\n \r\n const currentUser = useSelector((state) => state.user);\r\n const classes = useStyles();\r\n const [prespeciesopen, setprespeciesopen] = React.useState(false);\r\n const [postspeciesopen, setpostspeciesopen] = React.useState(false);\r\n const [preirrOpen, setPreIrrOpen] = React.useState(false);\r\n const [postirrOpen, setPostIrrOpen] = React.useState(false);\r\n const [prewaterOpen, setPreWaterOpen] = React.useState(false);\r\n const [postwaterOpen, setPostWaterOpen] = React.useState(false);\r\n\r\n \r\n \r\n const [preCroppingInputs, setPreCroppingInputs] = React.useState({\r\n croponeyearone: selField.field.fielddetails.precropping.preyearcroponeyearone,\r\n croponeyeartwo: selField.field.fielddetails.precropping.preyearcroponeyeartwo,\r\n croponeyearthree: selField.field.fielddetails.precropping.preyearcroponeyearthree,\r\n croptwoyearone: selField.field.fielddetails.precropping.preyearcroptwoyearone,\r\n croptwoyeartwo: selField.field.fielddetails.precropping.preyearcroptwoyeartwo,\r\n croptwoyearthree: selField.field.fielddetails.precropping.preyearcroptwoyearthree,\r\n cropthreeyearone: selField.field.fielddetails.precropping.preyearcropthreeyearone,\r\n cropthreeyeartwo: selField.field.fielddetails.precropping.preyearcropthreeyeartwo,\r\n cropthreeyearthree: selField.field.fielddetails.precropping.preyearcropthreeyearthree,\r\n\r\n })\r\n \r\n const [postCroppingInputs, setPostCroppingInputs] = React.useState({\r\n postcroponeyearone: selField.field.fielddetails.postcropping.postyearcroponeyearone,\r\n postcroponeyeartwo: selField.field.fielddetails.postcropping.postyearcroponeyeartwo,\r\n postcroponeyearthree: selField.field.fielddetails.postcropping.postyearcroponeyearthree,\r\n postcroptwoyearone: selField.field.fielddetails.postcropping.postyearcroptwoyearone,\r\n postcroptwoyeartwo: selField.field.fielddetails.postcropping.postyearcroptwoyeartwo,\r\n postcroptwoyearthree: selField.field.fielddetails.postcropping.postyearcroptwoyearthree,\r\n postcropthreeyearone: selField.field.fielddetails.postcropping.postyearcropthreeyearone,\r\n postcropthreeyeartwo: selField.field.fielddetails.postcropping.postyearcropthreeyeartwo,\r\n postcropthreeyearthree: selField.field.fielddetails.postcropping.postyearcropthreeyearthree,\r\n\r\n })\r\n \r\n const [preIrrInputs, setPreIrrInputs] = React.useState({\r\n preirrmethod: selField.field.fielddetails.preirr\r\n })\r\n\r\n const [postIrrInputs, setPostIrrInputs] = React.useState({\r\n postirrmethod: selField.field.fielddetails.postirr\r\n })\r\n\r\n const [preWaterMgmtInputs, setPreWaterMgmtInputs] = React.useState({\r\n \r\n presm: selField.field.fielddetails.prewater.preyearsoilmoisture,\r\n preflow: selField.field.fielddetails.prewater.preyearflow,\r\n preet: selField.field.fielddetails.prewater.preyearet,\r\n preno: selField.field.fielddetails.prewater.preyearno\r\n })\r\n\r\n const [postWaterMgmtInputs, setPostWaterMgmtInputs] = React.useState({\r\n \r\n postsm: selField.field.fielddetails.postwater.postyearsoilmoisture,\r\n postflow: selField.field.fielddetails.postwater.postyearflow,\r\n postet: selField.field.fielddetails.postwater.postyearet,\r\n postno: selField.field.fielddetails.postwater.postyearno\r\n })\r\n const [userFieldDetails, setUserFieldDetails] = React.useState({\r\n croponeyearone: selField.field.fielddetails.precropping.preyearcroponeyearone,\r\n croponeyeartwo: selField.field.fielddetails.precropping.preyearcroponeyeartwo,\r\n croponeyearthree: selField.field.fielddetails.precropping.preyearcroponeyearthree,\r\n croptwoyearone: selField.field.fielddetails.precropping.preyearcroptwoyearone,\r\n croptwoyeartwo: selField.field.fielddetails.precropping.preyearcroptwoyeartwo,\r\n croptwoyearthree: selField.field.fielddetails.precropping.preyearcroptwoyearthree,\r\n cropthreeyearone: selField.field.fielddetails.precropping.preyearcropthreeyearone,\r\n cropthreeyeartwo: selField.field.fielddetails.precropping.preyearcropthreeyeartwo,\r\n cropthreeyearthree: selField.field.fielddetails.precropping.preyearcropthreeyearthree,\r\n postcroponeyearone: selField.field.fielddetails.postcropping.postyearcroponeyearone,\r\n postcroponeyeartwo: selField.field.fielddetails.postcropping.postyearcroponeyeartwo,\r\n postcroponeyearthree: selField.field.fielddetails.postcropping.postyearcroponeyearthree,\r\n postcroptwoyearone: selField.field.fielddetails.postcropping.postyearcroptwoyearone,\r\n postcroptwoyeartwo: selField.field.fielddetails.postcropping.postyearcroptwoyeartwo,\r\n postcroptwoyearthree: selField.field.fielddetails.postcropping.postyearcroptwoyearthree,\r\n postcropthreeyearone: selField.field.fielddetails.postcropping.postyearcropthreeyearone,\r\n postcropthreeyeartwo: selField.field.fielddetails.postcropping.postyearcropthreeyeartwo,\r\n postcropthreeyearthree: selField.field.fielddetails.postcropping.postyearcropthreeyearthree,\r\n preirrmethod: selField.field.fielddetails.preirr,\r\n postirrmethod: selField.field.fielddetails.postirr,\r\n presm: selField.field.fielddetails.prewater.preyearsoilmoisture,\r\n preflow: selField.field.fielddetails.prewater.preyearflow,\r\n preet: selField.field.fielddetails.prewater.preyearet,\r\n preno: selField.field.fielddetails.prewater.preyearno,\r\n postsm: selField.field.fielddetails.postwater.postyearsoilmoisture,\r\n postflow: selField.field.fielddetails.postwater.postyearflow,\r\n postet: selField.field.fielddetails.postwater.postyearet,\r\n postno: selField.field.fielddetails.postwater.postyearno\r\n })\r\n \r\n const dialogTitle = \"Edit Field Details for \" + selField;\r\n const handleClickPreSpeciesOpen = () => {\r\n setprespeciesopen(true);\r\n };\r\n const handleClickPostSpeciesOpen = () => {\r\n setpostspeciesopen(true);\r\n };\r\n const handleClickPreIrrOpen = () => {\r\n setPreIrrOpen(true);\r\n };\r\n const handleClickPostIrrOpen = () => {\r\n setPostIrrOpen(true);\r\n };\r\n const handleClickPreWaterOpen = () => {\r\n setPreWaterOpen(true);\r\n };\r\n const handleClickPostWaterOpen = () => {\r\n setPostWaterOpen(true);\r\n };\r\n const savePreCropping = () => {\r\n document.getElementById(\"precropcomplete\").style.display = \"inline-block\"; \r\n setprespeciesopen(false);\r\n };\r\n\r\n const savePostCropping = () => {\r\n document.getElementById(\"postcropcomplete\").style.display = \"inline-block\"; \r\n setpostspeciesopen(false);\r\n };\r\n\r\n const savePreIrrigation = () => {\r\n document.getElementById(\"preirrcomplete\").style.display = \"inline-block\"; \r\n setPreIrrOpen(false);\r\n };\r\n\r\n const savePostIrrigation = () => {\r\n document.getElementById(\"postirrcomplete\").style.display = \"inline-block\"; \r\n setPostIrrOpen(false);\r\n };\r\n \r\n const savePreWaterMgmtTools = () => {\r\n document.getElementById(\"prewatercomplete\").style.display = \"inline-block\"; \r\n setPreWaterOpen(false);\r\n };\r\n const savePostWaterMgmtTools = () => {\r\n document.getElementById(\"postwatercomplete\").style.display = \"inline-block\"; \r\n setPostWaterOpen(false);\r\n };\r\n\r\n const handleCropOneYearOneChanged = (value) => {\r\n \r\n setPreCroppingInputs({ ...preCroppingInputs, croponeyearone: value });\r\n setUserFieldDetails({ ...userFieldDetails, croponeyearone: value });\r\n parentprespeciescroponeyearonechange(value);\r\n };\r\n \r\n const handleCropOneYearTwoChanged = (value) => {\r\n \r\n setPreCroppingInputs({ ...preCroppingInputs, croponeyeartwo: value });\r\n setUserFieldDetails({ ...userFieldDetails, croponeyeartwo: value });\r\n parentprespeciescroponeyeartwochange(value);\r\n\r\n };\r\n const handleCropOneYearThreeChanged = (value) => {\r\n \r\n setPreCroppingInputs({ ...preCroppingInputs, croponeyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, croponeyearthree: value });\r\n parentprespeciescroponeyearthreechange(value);\r\n };\r\n\r\n const handleCropTwoYearOneChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, croptwoyearone: value });\r\n setUserFieldDetails({ ...userFieldDetails, croptwoyearone: value });\r\n parentprespeciescroptwoyearonechange(value);\r\n };\r\n const handleCropTwoYearTwoChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, croptwoyeartwo: value });\r\n setUserFieldDetails({ ...userFieldDetails, croptwoyeartwo: value });\r\n parentprespeciescroptwoyeartwochange(value);\r\n };\r\n const handleCropTwoYearThreeChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, croptwoyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, croptwoyearthree: value });\r\n parentprespeciescroptwoyearthreechange(value);\r\n\r\n };\r\n\r\n const handleCropThreeYearOneChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, cropthreeyearone: value });\r\n setUserFieldDetails({ ...userFieldDetails, cropthreeyearone: value });\r\n parentprespeciescropthreeyearonechange(value);\r\n\r\n };\r\n const handleCropThreeYearTwoChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, cropthreeyeartwo: value });\r\n setUserFieldDetails({ ...userFieldDetails, cropthreeyeartwo: value });\r\n parentprespeciescropthreeyeartwochange(value);\r\n\r\n };\r\n const handleCropThreeYearThreeChanged = (value) => {\r\n\r\n setPreCroppingInputs({ ...preCroppingInputs, cropthreeyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, cropthreeyearthree: value });\r\n parentprespeciescropthreeyearthreechange(value);\r\n\r\n };\r\n\r\n const handleCropVerticalChanged = (prevalue1, prevalue2, prevalue3, postvalue1, postvalue2, postvalue3) => {\r\n\r\n\r\n parentprespeciescropverticalchange(prevalue1, prevalue2, prevalue3, postvalue1, postvalue2, postvalue3);\r\n\r\n };\r\n \r\n const handlePostCropOneYearOneChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroponeyearone: value });\r\n parentpostspeciescroponeyearonechange(value);\r\n };\r\n \r\n const handlePostCropOneYearTwoChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroponeyeartwo: value });\r\n parentpostspeciescroponeyeartwochange(value);\r\n\r\n };\r\n const handlePostCropOneYearThreeChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroponeyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcroponeyearthree: value });\r\n parentpostspeciescroponeyearthreechange(value);\r\n\r\n };\r\n\r\n const handlePostCropTwoYearOneChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroptwoyearone: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcroptwoyearone: value });\r\n parentpostspeciescroptwoyearonechange(value);\r\n\r\n };\r\n const handlePostCropTwoYearTwoChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroptwoyeartwo: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcroptwoyeartwo: value });\r\n parentpostspeciescroptwoyeartwochange(value);\r\n\r\n };\r\n const handlePostCropTwoYearThreeChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcroptwoyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcroptwoyearthree: value });\r\n parentpostspeciescroptwoyearthreechange(value);\r\n\r\n };\r\n\r\n const handlePostCropThreeYearOneChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcropthreeyearone: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcropthreeyearone: value });\r\n parentpostspeciescropthreeyearonechange(value);\r\n\r\n };\r\n const handlePostCropThreeYearTwoChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcropthreeyeartwo: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcropthreeyeartwo: value });\r\n parentpostspeciescropthreeyeartwochange(value);\r\n\r\n };\r\n const handlePostCropThreeYearThreeChanged = (value) => {\r\n\r\n setPostCroppingInputs({ ...postCroppingInputs, postcropthreeyearthree: value });\r\n setUserFieldDetails({ ...userFieldDetails, postcropthreeyearthree: value });\r\n parentpostspeciescropthreeyearthreechange(value);\r\n\r\n };\r\n const handlePreIrrChanged = (value) => {\r\n setPreIrrInputs({ ...preIrrInputs, preirrmethod: value });\r\n setUserFieldDetails({ ...userFieldDetails, preirrmethod: value });\r\n parentpreirrchange(value);\r\n\r\n };\r\n const handlePostIrrChanged = (value) => {\r\n setPostIrrInputs({ ...postIrrInputs, postirrmethod: value });\r\n setUserFieldDetails({ ...userFieldDetails, postirrmethod: value });\r\n parentpostirrchange(value);\r\n\r\n };\r\n\r\n const handlePreSoilMoistureChanged = (value) => {\r\n \r\n setPreWaterMgmtInputs({ ...preWaterMgmtInputs, presm: value });\r\n setUserFieldDetails({ ...userFieldDetails, presm: value });\r\n \r\n parentpresoilmoisturechange(value);\r\n\r\n };\r\n const handlePreFlowChanged = (value) => {\r\n \r\n \r\n setPreWaterMgmtInputs({ ...preWaterMgmtInputs, preflow: value });\r\n setUserFieldDetails({ ...userFieldDetails, preflow: value });\r\n parentpreflowchange(value);\r\n\r\n };\r\n const handlePreETChanged = (value) => {\r\n \r\n \r\n \r\n setPreWaterMgmtInputs({ ...preWaterMgmtInputs, preet: value });\r\n setUserFieldDetails({ ...userFieldDetails, preet: value });\r\n \r\n parentpreetchange(value);\r\n\r\n };\r\n const handlePreNoChanged = (value) => {\r\n setPreWaterMgmtInputs({ ...preWaterMgmtInputs, preno: value });\r\n setUserFieldDetails({ ...userFieldDetails, preno: value });\r\n parentprenochange(value);\r\n\r\n };\r\n \r\n const handlePostSoilMoistureChanged = (value) => {\r\n setPostWaterMgmtInputs({ ...postWaterMgmtInputs, postsm: value });\r\n setUserFieldDetails({ ...userFieldDetails, postsm: value });\r\n parentpostsoilmoisturechange(value);\r\n\r\n };\r\n const handlePostFlowChanged = (value) => {\r\n setPostWaterMgmtInputs({ ...postWaterMgmtInputs, postflow: value });\r\n setUserFieldDetails({ ...userFieldDetails, postflow: value });\r\n parentpostflowchange(value);\r\n\r\n };\r\n const handlePostETChanged = (value) => {\r\n setPostWaterMgmtInputs({ ...postWaterMgmtInputs, postet: value });\r\n setUserFieldDetails({ ...userFieldDetails, postet: value });\r\n parentpostetchange(value);\r\n\r\n };\r\n const handlePostNoChanged = (value) => {\r\n setPostWaterMgmtInputs({ ...postWaterMgmtInputs, postno: value });\r\n setUserFieldDetails({ ...userFieldDetails, postno: value });\r\n parentpostnochange(value);\r\n\r\n };\r\n const handlePreCrop1VerticalChanged = (valueC1V) => {\r\n\r\n setPreCroppingInputs({\r\n croponeyearone: valueC1V, croponeyeartwo: valueC1V, croponeyearthree: valueC1V,\r\n croptwoyearone: preCroppingInputs.croptwoyearone, croptwoyeartwo: preCroppingInputs.croptwoyeartwo, croptwoyearthree: preCroppingInputs.croptwoyearthree,\r\n cropthreeyearone: preCroppingInputs.cropthreeyearone, cropthreeyeartwo: preCroppingInputs.cropthreeyeartwo, cropthreeyearthree: preCroppingInputs.cropthreeyearthree\r\n });\r\n \r\n parentprespeciescrop1verticalchange(valueC1V, preCroppingInputs,postCroppingInputs, userFieldDetails);\r\n\r\n };\r\n const handlePreCrop2VerticalChanged = (valueC2V) => {\r\n\r\n setPreCroppingInputs({\r\n croponeyearone: preCroppingInputs.croponeyearone, croponeyeartwo: preCroppingInputs.croponeyeartwo, croponeyearthree: preCroppingInputs.croponeyearthree,\r\n croptwoyearone: valueC2V, croptwoyeartwo: valueC2V, croptwoyearthree: valueC2V,\r\n cropthreeyearone: preCroppingInputs.cropthreeyearone, cropthreeyeartwo: preCroppingInputs.cropthreeyeartwo, cropthreeyearthree: preCroppingInputs.cropthreeyearthree\r\n });\r\n parentprespeciescrop2verticalchange(valueC2V, preCroppingInputs, postCroppingInputs, userFieldDetails);\r\n\r\n };\r\n const handlePreCrop3VerticalChanged = (valueC3V) => {\r\n\r\n setPreCroppingInputs({\r\n croponeyearone: preCroppingInputs.croponeyearone, croponeyeartwo: preCroppingInputs.croponeyeartwo, croponeyearthree: preCroppingInputs.croponeyearthree,\r\n croptwoyearone: preCroppingInputs.croptwoyearone, croptwoyeartwo: preCroppingInputs.croptwoyeartwo, croptwoyearthree: preCroppingInputs.croptwoyearthree,\r\n cropthreeyearone: valueC3V, cropthreeyeartwo: valueC3V, cropthreeyearthree: valueC3V\r\n });\r\n parentprespeciescrop3verticalchange(valueC3V,preCroppingInputs, postCroppingInputs,userFieldDetails);\r\n\r\n };\r\n\r\n const handlePostCrop1VerticalChanged = (postvalueC1V) => {\r\n\r\n setPostCroppingInputs({\r\n postcroponeyearone: postvalueC1V, postcroponeyeartwo: postvalueC1V, postcroponeyearthree: postvalueC1V,\r\n postcroptwoyearone: postCroppingInputs.postcroptwoyearone, postcroptwoyeartwo: postCroppingInputs.postcroptwoyeartwo, postcroptwoyearthree: postCroppingInputs.postcroptwoyearthree,\r\n postcropthreeyearone: postCroppingInputs.postcropthreeyearone, postcropthreeyeartwo: postCroppingInputs.postcropthreeyeartwo, postcropthreeyearthree: postCroppingInputs.postcropthreeyearthree\r\n });\r\n parentpostspeciescrop1verticalchange(postvalueC1V,preCroppingInputs, postCroppingInputs,userFieldDetails)\r\n //parentpostspeciescrop1verticalchange(value);\r\n\r\n };\r\n const handlePostCrop2VerticalChanged = (postvalueC2V) => {\r\n\r\n setPostCroppingInputs({\r\n postcroponeyearone: postCroppingInputs.postcroponeyearone, postcroponeyeartwo: postCroppingInputs.postcroponeyeartwo, postcroponeyearthree: postCroppingInputs.postcroponeyearthree,\r\n postcroptwoyearone: postvalueC2V, postcroptwoyeartwo: postvalueC2V, postcroptwoyearthree: postvalueC2V,\r\n postcropthreeyearone: postCroppingInputs.postcropthreeyearone, postcropthreeyeartwo: postCroppingInputs.postcropthreeyeartwo, postcropthreeyearthree: postCroppingInputs.postcropthreeyearthree\r\n });\r\n parentpostspeciescrop2verticalchange(postvalueC2V,preCroppingInputs,postCroppingInputs, userFieldDetails)\r\n //parentpostspeciescrop2verticalchange(value);\r\n\r\n };\r\n const handlePostCrop3VerticalChanged = (postvalueC3V) => {\r\n\r\n setPostCroppingInputs({\r\n postcroponeyearone: postCroppingInputs.postcroponeyearone, postcroponeyeartwo: postCroppingInputs.postcroponeyeartwo, postcroponeyearthree: postCroppingInputs.postcroponeyearthree,\r\n postcroptwoyearone: postCroppingInputs.postcroptwoyearone, postcroptwoyeartwo: postCroppingInputs.postcroptwoyeartwo, postcroptwoyearthree: postCroppingInputs.postcroptwoyearthree,\r\n postcropthreeyearone: postvalueC3V, postcropthreeyeartwo: postvalueC3V, postcropthreeyearthree: postvalueC3V\r\n });\r\n parentpostspeciescrop3verticalchange(postvalueC3V,preCroppingInputs, postCroppingInputs,userFieldDetails)\r\n /* parentpostspeciescrop3verticalchange(value);*/\r\n\r\n };\r\n useEffect(() => {\r\n if (selField.field.fielddetails != undefined) {\r\n if (selField.field.fielddetails.precropping != undefined) {\r\n if ((selField.field.fielddetails.precropping.preyearcroponeyearone != undefined && selField.field.fielddetails.precropping.preyearcroponeyearone != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcroptwoyearone != undefined && selField.field.fielddetails.precropping.preyearcroptwoyearone != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcropthreeyearone != undefined && selField.field.fielddetails.precropping.preyearcropthreeyearone != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcroponeyeartwo != undefined && selField.field.fielddetails.precropping.preyearcroponeyeartwo != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcroptwoyeartwo != undefined && selField.field.fielddetails.precropping.preyearcroptwoyeartwo != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcropthreeyeartwo != undefined && selField.field.fielddetails.precropping.preyearcropthreeyeartwo != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcroponeyearthree != undefined && selField.field.fielddetails.precropping.preyearcroponeyearthree != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcroptwoyearthree != undefined && selField.field.fielddetails.precropping.preyearcroptwoyearthree != \"\") ||\r\n (selField.field.fielddetails.precropping.preyearcropthreeyearthree != undefined && selField.field.fielddetails.precropping.preyearcropthreeyearthree != \"\")) {\r\n\r\n if (!Object.values(selField.field.fielddetails.precropping).every(x => (x === '' || x === undefined))) {\r\n document.getElementById(\"precropcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n else {\r\n\r\n if (!Object.values(selField.field.fielddetails.precropping).every(x => (x === '' || x === undefined))) {\r\n document.getElementById(\"precropcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n\r\n }\r\n\r\n if (selField.field.fielddetails.postcropping != undefined) {\r\n if ((selField.field.fielddetails.postcropping.postyearcroponeyearone != undefined && selField.field.fielddetails.postcropping.postyearcroponeyearone != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcroptwoyearone != undefined && selField.field.fielddetails.postcropping.postyearcroptwoyearone != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcropthreeyearone != undefined && selField.field.fielddetails.postcropping.postyearcropthreeyearone != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcroponeyeartwo != undefined && selField.field.fielddetails.postcropping.postyearcroponeyeartwo != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcroptwoyeartwo != undefined && selField.field.fielddetails.postcropping.postyearcroptwoyeartwo != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcropthreeyeartwo != undefined && selField.field.fielddetails.postcropping.postyearcropthreeyeartwo != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcroponeyearthree != undefined && selField.field.fielddetails.postcropping.postyearcroponeyearthree != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcroptwoyearthree != undefined && selField.field.fielddetails.postcropping.postyearcroptwoyearthree != \"\") ||\r\n (selField.field.fielddetails.postcropping.postyearcropthreeyearthree != undefined && selField.field.fielddetails.postcropping.postyearcropthreeyearthree != \"\")) {\r\n\r\n if (!Object.values(selField.field.fielddetails.postcropping).every(x => (x === '' || x === undefined))) {\r\n document.getElementById(\"postcropcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n else {\r\n if (!Object.values(selField.field.fielddetails.postcropping).every(x => x === '' || x === undefined)) {\r\n document.getElementById(\"postcropcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n }\r\n\r\n if (selField.field.fielddetails.preirr != undefined) {\r\n if (!Object.values(selField.field.fielddetails.preirr).every(x => x === '' || x === undefined)) {\r\n document.getElementById(\"preirrcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n\r\n if (selField.field.fielddetails.postirr != undefined) {\r\n if (!Object.values(selField.field.fielddetails.postirr).every(x => x === '' || x === undefined)) {\r\n document.getElementById(\"postirrcomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n\r\n if (selField.field.fielddetails.prewater != undefined) {\r\n if (!Object.values(selField.field.fielddetails.prewater).every(x => x === false || x === undefined)) {\r\n document.getElementById(\"prewatercomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n\r\n if (selField.field.fielddetails.postwater != undefined) {\r\n if (!Object.values(selField.field.fielddetails.postwater).every(x => x === false || x === undefined)) {\r\n document.getElementById(\"postwatercomplete\").style.display = \"inline-block\";\r\n }\r\n }\r\n }\r\n }, [detailsAdded]);\r\n\r\n var savePreWaterMgmtToolsButton = helpers.getDialogButton(\"Save\", savePreWaterMgmtTools);\r\n var savePostWaterMgmtToolsButton = helpers.getDialogButton(\"Save\", savePostWaterMgmtTools);\r\n var savePostIrrigationButton = helpers.getDialogButton(\"Save\", savePostIrrigation);\r\n var savePreIrrigationButton = helpers.getDialogButton(\"Save\", savePreIrrigation);\r\n var savePreCroppingButton = helpers.getDialogButton(\"Save\", savePreCropping);\r\n var savePostCroppingButton = helpers.getDialogButton(\"Save\", savePostCropping);\r\n var precroppingButtons = [savePreCroppingButton];\r\n var postcroppingButtons = [savePostCroppingButton];\r\n var preirrigationButtons = [savePreIrrigationButton];\r\n\r\n var postirrigationButtons = [savePostIrrigationButton];\r\n var prewatermgmttoolsButtons = [savePreWaterMgmtToolsButton];\r\n var postwatermgmttoolsButtons = [savePostWaterMgmtToolsButton];\r\n \r\n const getPreCroppingSysForm = () => {\r\n return (\r\n \r\n \r\n );\r\n };\r\n const getPostCroppingSysForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const getPreIrrigationSysForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const getPostIrrigationSysForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const getPreWaterMgmtToolsForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n const getPostWaterMgmtToolsForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n a. Pre-Project Cropping System\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n b. Post-Project Cropping System\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n c. Pre-Project Irrigation System\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n d. Post-Project Irrigation System\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n e. Pre-Project Water Management Tools\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n f. Post-Project Water Management Tools\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Select\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\n\r\nexport default function SuccessPopup({ open, handleClose }) {\r\n const classes = useStyles();\r\n const currentUser = useSelector((state) => state.user);\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n
\r\n
\r\n {((currentUser.preprojectpumps.length > 0) || (currentUser.postprojectpumps.length > 0))? :\"\"}\r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function DataEntry({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function UniqueFieldName({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function MaxFields({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function AddPumpInstr({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nexport default function PumpImpQues(props) {\r\n const { parentAddnlPumpLocsChange } = props;\r\n const [value, setValue] = React.useState(null);\r\n const handleChange = (event) => {\r\n setValue(event.target.value);\r\n parentAddnlPumpLocsChange(event.target.value);\r\n };\r\n return (\r\n
\r\n \r\n \r\n
\r\n As part of your proposed project, will you be adding any additional pump locations ?\r\n
\r\n
\r\n \r\n
\r\n \r\n } label=\"Yes\" />\r\n } label=\"No\" />\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n );\r\n}","\r\n\r\nimport React, { useEffect } from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport { string } from \"prop-types\";\r\nimport * as CMBYN from \"../../../constants/api\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport KWhWarning from \"./KWhWarning.js\";\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function AddNewPump(props ) {\r\n const { fieldsArr, parentPumpNameChange, parentFieldsListeChange, parentHpChange, parentHoursChange,\r\n parentEfficiencyChange, parentSystemPressureChange, parentprepumpressureChange, parentprepumpdepthChange, parentpredischargepressureChange, parentprefrictionlossChange,\r\n parentVFDChange, parentFuelTypeChange,parentFuelUseChange, parentPumpImprovQuesChange, parentPumpStayInUseQuesChange, parentHpPostChange, parentHoursPostChange, parentEfficiencyPostChange,\r\n parentSystemPressurePostChange, parentpostpumpressureChange, parentpostpumpdepthChange, parentpostdischargepressureChange, parentpostfrictionlossChange, parentVFDPostChange, parentFuelTypePostChange, parentFuelUsePostChange,\r\n parentPostRenewenergySelectChange,parentPostRenewenergySelectCapctyChange } = props\r\n \r\n \r\n const classes = useStyles();\r\n \r\n const [pumpName, setPumpName] = useState('');\r\n // const [fields, setFields] = React.useState('');\r\n // @ts-check\r\n const [fields, setFields] = useState([]);\r\n const [preEff, setPreEff] = React.useState('');\r\n const [preHP, setPreHP] = React.useState('');\r\n const [preHours, setPreHours] = React.useState('');\r\n const [preVFD, setPreVFD] = React.useState('');\r\n const [preVFDList, setPreVFDList] = React.useState([]);\r\n const [preFuelUse, setPreFuelUse] = React.useState('');\r\n const [pumpSystemPressure, setPumpSystemPressure] = React.useState(2);\r\n const [prepumpressure, setPrepumpressure] = React.useState('');\r\n const [prepumpdepth, setPrepumpdepth] = React.useState('');\r\n const [predischargepressure, setPredischargepressure] = React.useState('');\r\n const [prefrictionloss, setPrefrictionloss] = React.useState('');\r\n const [pumpSystemPressurePost, setPumpSystemPressurePost] = React.useState(2);\r\n const [postpumpressure, setPostpumpressure] = React.useState('');\r\n const [postpumpdepth, setPostpumpdepth] = React.useState('');\r\n const [postdischargepressure, setPostdischargepressure] = React.useState('');\r\n const [postfrictionloss, setPostfrictionloss] = React.useState('');\r\n \r\n const [pumpFueltype, setPumpFueltype] = React.useState('');\r\n const [pumpFueltypeList, setPumpFueltypeList] = React.useState([]);\r\n const [postEff, setPostEff] = React.useState('');\r\n const [postHP, setPostHP] = React.useState('');\r\n const [postHours, setPostHours] = React.useState('');\r\n const [postVFD, setPostVFD] = React.useState('');\r\n const [postVFDList, setPostVFDList] = React.useState([]);\r\n const [postFuelUse, setPostFuelUse] = React.useState('');\r\n const [pumpFueltypePost, setPumpFueltypePost] = React.useState('');\r\n const [pumpFueltypePostList, setPumpFueltypePostList] = React.useState([]);\r\n const [pumpImproveques, setPumpImproveques] = React.useState(\"1\");\r\n const [pumpStayinuseques, setPumpStayinuseques] = React.useState(\"0\");\r\n const [renewenergyselect, setRenewenergyselect] = React.useState(\"1\");\r\n const [renewenergyselectcapcty, setRenewenergyselectcapcty] = React.useState('');\r\n\r\n\r\n \r\n //const handleChange = (event) => {\r\n // setFields(event.target.value);\r\n\r\n // //setPumpInputs({ ...pumpinputs, fields: event.target.value });\r\n // parentFieldsListeChange(event.target.value);\r\n\r\n //};\r\n // @ts-check\r\n \r\n const handleFieldsChange = function (event) {\r\n var value = event.target.value;\r\n setFields(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentFieldsListeChange(value);\r\n };\r\n\r\n const handlePumpChange = (event) => {\r\n setPumpType(event.target.value);\r\n \r\n };\r\n const handlePreHP = (event) => {\r\n setPreHP(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehp: event.target.value });\r\n parentHpChange(event.target.value);\r\n };\r\n const handlePreHours = (event) => {\r\n setPreHours(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehours: event.target.value });\r\n parentHoursChange(event.target.value);\r\n\r\n };\r\n const handlePreEff = (event) => {\r\n setPreEff(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, preeff: event.target.value });\r\n parentEfficiencyChange(event.target.value);\r\n\r\n };\r\n const handlePreFuelUse = (event) => {\r\n setPreFuelUse(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prefueluse: event.target.value });\r\n parentFuelUseChange(event.target.value);\r\n\r\n };\r\n\r\n const handlePreVFD = (event) => {\r\n setPreVFD(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prevfd: event.target.value });\r\n parentVFDChange(event.target.value);\r\n\r\n };\r\n \r\n const handlePumpSystemPressure\r\n = (event) => {\r\n setPumpSystemPressure(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, presyspress: event.target.value });\r\n if (event.target.value == 1) {\r\n document.getElementById(\"syspressitemspre\").style.display = \"none\";\r\n //document.getElementById(\"syspressinputpre\").style.display = \"block\";\r\n } else if (event.target.value == 2) {\r\n\r\n document.getElementById(\"syspressitemspre\").style.display = \"block\";\r\n // document.getElementById(\"syspressinputpre\").style.display = \"none\";\r\n }\r\n\r\n // console.log('calling parentSystemPressureChange with: ', typeof event.target.value);\r\n // console.log(event);\r\n // console.log(event.target);\r\n // console.log(event.target.value);\r\n parentSystemPressureChange(event.target.value)\r\n };\r\n\r\n const handlePreSysPress\r\n = (event) => {\r\n setPrepumpressure(event.target.value)\r\n parentprepumpressureChange(event.target.value)\r\n };\r\n const handlePrePumpDepth\r\n = (event) => {\r\n setPrepumpdepth(event.target.value)\r\n parentprepumpdepthChange(event.target.value)\r\n };\r\n const handlePreDisPress\r\n = (event) => {\r\n setPredischargepressure(event.target.value)\r\n parentpredischargepressureChange(event.target.value)\r\n };\r\n const handlePreFricLoss\r\n = (event) => {\r\n setPrefrictionloss(event.target.value)\r\n parentprefrictionlossChange(event.target.value)\r\n };\r\n \r\n \r\n const handlePumpSystemPressurePost\r\n = (event) => {\r\n setPumpSystemPressurePost(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, presyspress: event.target.value });\r\n if (event.target.value == 1) {\r\n document.getElementById(\"syspressitemspost\").style.display = \"none\";\r\n document.getElementById(\"syspressinputpost\").style.display = \"block\";\r\n } else if (event.target.value == 2) {\r\n\r\n document.getElementById(\"syspressitemspost\").style.display = \"block\";\r\n document.getElementById(\"syspressinputpost\").style.display = \"none\";\r\n }\r\n parentSystemPressurePostChange(event.target.value)\r\n };\r\n const handlePostSysPress\r\n = (event) => {\r\n setPostpumpressure(event.target.value)\r\n parentpostpumpressureChange(event.target.value)\r\n };\r\n const handlePostPumpDepth\r\n = (event) => {\r\n setPostpumpdepth(event.target.value)\r\n parentpostpumpdepthChange(event.target.value)\r\n };\r\n \r\n const handlePostDisPress\r\n = (event) => {\r\n setPostdischargepressure(event.target.value)\r\n parentpostdischargepressureChange(event.target.value)\r\n };\r\n const handlePostFricLoss\r\n = (event) => {\r\n setPostfrictionloss(event.target.value)\r\n parentpostfrictionlossChange(event.target.value)\r\n };\r\n \r\n const handlePumpNameChange = event => {\r\n setPumpName(event.target.value);\r\n \r\n \r\n //setPumpInputs({ ...pumpinputs, pumpName: event.target.value });\r\n parentPumpNameChange(event.target.value)\r\n };\r\n\r\n const handlePumpFueltype = event => {\r\n \r\n\r\n setPumpFueltype(event.target.value);\r\n \r\n //setPumpInputs({ ...pumpinputs, prefueltype: event.target.value });\r\n if (event.target.value >= 150 && event.target.value <= 154 && event.target.value != 151) {\r\n document.getElementById(\"divnewpumpfueluse\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"divnewpumpfueluse\").style.display = \"none\";\r\n }\r\n \r\n parentFuelTypeChange(event.target.value)\r\n };\r\n\r\n const handlePumpFueltypePost = event => {\r\n \r\n setPumpFueltypePost(event.target.value);\r\n //if (event.target.value == 140 || event.target.value == 142 || event.target.value == 143) {\r\n\r\n // document.getElementById(\"divpostpumpfueluse\").style.display = \"block\";\r\n //} else {\r\n // document.getElementById(\"divpostpumpfueluse\").style.display = \"none\";\r\n //}\r\n parentFuelTypePostChange(event.target.value)\r\n };\r\n const handlePumpImproveQues = event => {\r\n setPumpImproveques(event.target.value);\r\n \r\n if (event.target.value === \"0\") {\r\n document.getElementById(\"pumpImproveDiv\").style.display = \"block\";\r\n document.getElementById(\"pumpStayInUseDiv\").style.display = \"none\"; \r\n }\r\n else {\r\n document.getElementById(\"pumpStayInUseDiv\").style.display = \"block\"; \r\n document.getElementById(\"pumpImproveDiv\").style.display = \"none\";\r\n }\r\n parentPumpImprovQuesChange(event.target.value)\r\n };\r\n const handlePumpStayInUseQues= event => {\r\n setPumpStayinuseques(event.target.value);\r\n\r\n \r\n parentPumpStayInUseQuesChange(event.target.value)\r\n };\r\n const handlePostHP = (event) => {\r\n setPostHP(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehp: event.target.value });\r\n parentHpPostChange(event.target.value);\r\n };\r\n\r\n const handlePostHours = (event) => {\r\n setPostHours(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehours: event.target.value });\r\n parentHoursPostChange(event.target.value);\r\n\r\n };\r\n\r\n const handlePostEff = (event) => {\r\n setPostEff(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, preeff: event.target.value });\r\n parentEfficiencyPostChange(event.target.value);\r\n\r\n };\r\n \r\n const handlePostVFD = (event) => {\r\n setPostVFD(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prevfd: event.target.value });\r\n parentVFDPostChange(event.target.value);\r\n\r\n };\r\n const handlePostFuelUse = (event) => {\r\n setPostFuelUse(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prevfd: event.target.value });\r\n parentFuelUsePostChange(event.target.value);\r\n\r\n };\r\n\r\n const handleRenewEnrgySelChange = event => {\r\n\r\n\r\n setRenewenergyselect(event.target.value);\r\n\r\n if (event.target.value === \"0\") {\r\n\r\n document.getElementById(\"renewenrgycapctyDiv\").style.display = \"block\";\r\n\r\n }\r\n else {\r\n document.getElementById(\"renewenrgycapctyDiv\").style.display = \"none\";\r\n }\r\n parentPostRenewenergySelectChange(event.target.value)\r\n };\r\n const handlePostRenewEnrgyCapcty = event => {\r\n setRenewenergyselectcapcty(event.target.value);\r\n parentPostRenewenergySelectCapctyChange(event.target.value);\r\n\r\n };\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTFUELTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr && usr.id < 155) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setPumpFueltypeList(list);\r\n \r\n })\r\n }, []);\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTFUELTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setPumpFueltypePostList(list);\r\n\r\n })\r\n }, []);\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_VFDTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n \r\n let option = {};\r\n option.name = usr.vfdType.name;\r\n option.id = usr.vfdType.id;\r\n list.push(option);\r\n }\r\n }\r\n\r\n\r\n \r\n setPostVFDList(list);\r\n })\r\n }, []);\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Name of the pump :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n Which fields does this pump service :\r\n
\r\n
\r\n \r\n
\r\n\r\n }\r\n MenuProps={MenuProps}\r\n >\r\n {fieldsArr.map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n Motor Rated Horsepower :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Overall Pumping Efficiency (%)\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Enter the pumping depth (ft): \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Enter the discharge pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the friction losses (ft) (friction loss is 5 for a booster and 10 for a well pump): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Fuel Type:\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {pumpFueltypeList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Annual Fuel Use (gallons or scf):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n Is this pump proposed for improvement? Improvements include improvements to the pump, replacement of the pump,
and fuel conversions including the installation of renewable energy as a new fuel source.
\r\n
\r\n
\r\n \r\n
\r\n \r\n Yes\r\n No\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n As part of your project will this pump stay in use?\r\n
\r\n
\r\n \r\n
\r\n \r\n Yes\r\n No\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n Enter details for your proposed improved pump.

Details for this pump will populate in the Post-Project Pumps section when complete.
\r\n
\r\n
\r\n \r\n
\r\n Motor Rated Horsepower :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n Expected Overall Pumping Efficiency (%)\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n Enter System Pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Enter the pumping depth (ft):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Discharge Pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the friction losses (ft) (friction loss is 5 for a booster and 10 for a well pump): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Are you installing a VFD?\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {postVFDList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n New Fuel Type :\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {pumpFueltypePostList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","\r\nimport React, { useEffect } from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport { string } from \"prop-types\";\r\nimport * as CMBYN from \"../../../constants/api\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport KWhWarning from \"./KWhWarning.js\";\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function AddNewPostPump(props ) {\r\n const { postfieldsArr, parentPostPumpNameChange, parentPostFieldsListeChange, parentPostHpChange, parentPostHoursChange,\r\n parentPostEfficiencyChange, parentPostSystemPressureChange, parentpostpumppressureChange, parentpostpumpdepthChange, parentpostdischargepressureChange,\r\n parentpostfrictionlossChange,parentPostVFDChange, parentPostFuelTypeChange, parentPostFuelUseChange,\r\n parentPostRenewenergySelect, parentPostRenewenergySelectCapcty } = props\r\n \r\n \r\n const classes = useStyles();\r\n \r\n const [textInput, setTextInput] = useState('');\r\n // const [fields, setFields] = React.useState('');\r\n // @ts-check\r\n const [postfields, setPostFields] = useState([]);\r\n const [postEff, setPostEff] = React.useState('');\r\n const [postHP, setPostHP] = React.useState('');\r\n const [postHours, setPostHours] = React.useState('');\r\n const [postVFD, setPostVFD] = React.useState('');\r\n const [postVFDList, setPostVFDList] = React.useState([]);\r\n const [postFuelUse, setPostFuelUse] = React.useState('');\r\n const [renewenergyselect, setRenewenergyselect] = React.useState(\"1\");\r\n const [addnewpostpumpsystempressure, setaddnewpostpumpsystempressure] = React.useState(2);\r\n const [postpumpressure, setPostpumpressure] = React.useState('');\r\n const [postpumpdepth, setPostpumpdepth] = React.useState('');\r\n const [postdischargepressure, setPostdischargepressure] = React.useState('');\r\n const [postfrictionloss, setPostfrictionloss] = React.useState('');\r\n\r\n const [addnewpostpumpfueltype, setaddnewpostpumpfueltype] = React.useState(\"150\");\r\n const [addnewpostpumpfueltypeList, setaddnewpostpumpfueltypeList] = React.useState([]);\r\n const [renewenergyselectcapcty, setRenewenergyselectcapcty] = React.useState('');\r\n \r\n\r\n\r\n\r\n \r\n //const handleChange = (event) => {\r\n // setFields(event.target.value);\r\n\r\n // //setPumpInputs({ ...pumpinputs, fields: event.target.value });\r\n // parentFieldsListeChange(event.target.value);\r\n\r\n //};\r\n // @ts-check\r\n \r\n const handlePostFieldsChange = function (event) {\r\n var value = event.target.value;\r\n setPostFields(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentPostFieldsListeChange(value);\r\n };\r\n\r\n const handlePostHP = (event) => {\r\n setPostHP(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehp: event.target.value });\r\n parentPostHpChange(event.target.value);\r\n };\r\n const handlePostHours = (event) => {\r\n setPostHours(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehours: event.target.value });\r\n parentPostHoursChange(event.target.value);\r\n\r\n };\r\n const handlePostEff = (event) => {\r\n setPostEff(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, preeff: event.target.value });\r\n parentPostEfficiencyChange(event.target.value);\r\n\r\n };\r\n const handlePostFuelUse = (event) => {\r\n setPostFuelUse(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prefueluse: event.target.value });\r\n parentPostFuelUseChange(event.target.value);\r\n\r\n };\r\n \r\n const handlePostVFD = (event) => {\r\n setPostVFD(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prevfd: event.target.value });\r\n parentPostVFDChange(event.target.value);\r\n\r\n };\r\n \r\n const handleaaddnewpostpumpSystempressure\r\n = (event) => {\r\n setaddnewpostpumpsystempressure(event.target.value);\r\n if (event.target.value == 1) {\r\n document.getElementById(\"syspressitemspost\").style.display = \"none\";\r\n //document.getElementById(\"syspressinputpost\").style.display = \"block\";\r\n } else if (event.target.value == 2) {\r\n\r\n document.getElementById(\"syspressitemspost\").style.display = \"block\";\r\n //document.getElementById(\"syspressinputpost\").style.display = \"none\";\r\n }\r\n parentPostSystemPressureChange(event.target.value)\r\n };\r\n const handlePostSysPress\r\n = (event) => {\r\n setPostpumpressure(event.target.value)\r\n parentpostpumppressureChange(event.target.value)\r\n };\r\n const handlePostPumpDepth\r\n = (event) => {\r\n setPostpumpdepth(event.target.value)\r\n parentpostpumpdepthChange(event.target.value)\r\n };\r\n\r\n const handlePostDisPress\r\n = (event) => {\r\n setPostdischargepressure(event.target.value)\r\n parentpostdischargepressureChange(event.target.value)\r\n };\r\n const handlePostFricLoss\r\n = (event) => {\r\n setPostfrictionloss(event.target.value)\r\n parentpostfrictionlossChange(event.target.value)\r\n };\r\n const handlePostTextInputChange = event => {\r\n setTextInput(event.target.value);\r\n \r\n \r\n //setPumpInputs({ ...pumpinputs, pumpName: event.target.value });\r\n parentPostPumpNameChange(event.target.value)\r\n };\r\n\r\n const handleaddnewpostpumpfueltype = event => {\r\n \r\n\r\n setaddnewpostpumpfueltype(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prefueltype: event.target.value });\r\n\r\n parentPostFuelTypeChange(event.target.value);\r\n if (event.target.value === \"155\" || event.target.value === \"156\" || event.target.value === \"157\") {\r\n document.getElementById(\"annualfueluseadd\").style.display = \"none\";\r\n }\r\n else {\r\n document.getElementById(\"annualfueluseadd\").style.display = \"block\";\r\n }\r\n };\r\n\r\n \r\n const handleRenewEnrgySelChange = event => {\r\n\r\n\r\n setRenewenergyselect(event.target.value);\r\n \r\n if (event.target.value === \"0\") {\r\n \r\n document.getElementById(\"renewenrgycapctyDiv\").style.display = \"block\";\r\n \r\n }\r\n else {\r\n document.getElementById(\"renewenrgycapctyDiv\").style.display = \"none\";\r\n \r\n }\r\n parentPostRenewenergySelect(event.target.value)\r\n };\r\n const handlePostRenewEnrgyCapcty = event => {\r\n setRenewenergyselectcapcty(event.target.value);\r\n parentPostRenewenergySelectCapcty(event.target.value);\r\n\r\n };\r\n\r\n \r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTFUELTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setaddnewpostpumpfueltypeList(list);\r\n\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_VFDTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n\r\n let option = {};\r\n option.name = usr.vfdType.name;\r\n option.id = usr.vfdType.id;\r\n list.push(option);\r\n }\r\n }\r\n\r\n\r\n\r\n setPostVFDList(list);\r\n })\r\n }, []);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Name of the pump :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n Which fields does this pump service :\r\n
\r\n
\r\n \r\n
\r\n\r\n }\r\n MenuProps={MenuProps}\r\n >\r\n {postfieldsArr.map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n Expected Motor Rated Horsepower :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Expected Overall Pumping Efficiency (%) :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Enter the pumping depth (ft): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the discharge pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the friction losses (ft) (friction loss is 5 for a booster and 10 for a well pump): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n Are you installing a VFD?\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {postVFDList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n New Fuel Type :\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {addnewpostpumpfueltypeList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n Anticipated Fuel Use (gallons or scf or kWh):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useEffect } from \"react\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport * as CMBYN from \"../../../constants/api\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\nexport default function EditNewPump(props ) {\r\n const { editFieldsArr, PreProjectPump, parentEditPumpNameChange, parentEditFieldsListeChange, parentEditHpChange,\r\n parentEditHoursChange, parentEditEfficiencyChange, parentEditSystemPressureChange, parentEditprepumpressureChange,\r\n parentEditprepumpdepthChange, parentEditpredischargepressureChange, parentEditprefrictionlossChange,\r\n parentEditFuelTypeChange, parentEditFuelUseChange } = props\r\n \r\n \r\n // console.log('this is edit prepump', PreProjectPump);\r\n const [pumpName, setPumpName] = React.useState(PreProjectPump.preprojectpump.preprojpumpName);\r\n const [fields, setFields] = React.useState(PreProjectPump.preprojectpump.preprojfields);\r\n const [preEff, setPreEff] = React.useState(PreProjectPump.preprojectpump.preprojeff);\r\n const [preHP, setPreHP] = React.useState(PreProjectPump.preprojectpump.preprojhp);\r\n const [preHours, setPreHours] = React.useState(PreProjectPump.preprojectpump.preprojhours);\r\n const [preFuelUse, setPreFuelUse] = React.useState(PreProjectPump.preprojectpump.preprojfueluse);\r\n const [pumpsystempressure, setPumpsystempressure] = React.useState(PreProjectPump.preprojectpump.preprojsyspress);\r\n const [prepumppress, setPrePumpPress] = React.useState(PreProjectPump.preprojectpump.preprojpumpress);\r\n const [prepumpdepth, setPrePumpDepth] = React.useState(PreProjectPump.preprojectpump.preprojpumpdepth);\r\n const [predispress, setPredispress] = React.useState(PreProjectPump.preprojectpump.preprojdispress);\r\n const [prefricloss, setPrefricloss] = React.useState(PreProjectPump.preprojectpump.preprojfricloss);\r\n const [pumpfueltype, setPumpfueltype] = React.useState(PreProjectPump.preprojectpump.preprojfueltype);\r\n const [pumpfueltypeList, setPumpfueltypeList] = React.useState([]);\r\n\r\n \r\n\r\n useEffect(() => {\r\n showPreFuelUseDiv();\r\n }, [pumpfueltype]);\r\n\r\n const handleFieldsChange = (event) => {\r\n var value = event.target.value;\r\n setFields(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentEditFieldsListeChange(value);\r\n };\r\n\r\n const handlePreHP = (event) => {\r\n setPreHP(event.target.value);\r\n parentEditHpChange(event.target.value);\r\n };\r\n\r\n const handlePreHours = (event) => {\r\n setPreHours(event.target.value);\r\n parentEditHoursChange(event.target.value);\r\n };\r\n\r\n const handlePreEff = (event) => {\r\n setPreEff(event.target.value);\r\n parentEditEfficiencyChange(event.target.value);\r\n };\r\n\r\n const handlePreFuelUse = (event) => {\r\n setPreFuelUse(event.target.value);\r\n parentEditFuelUseChange(event.target.value);\r\n };\r\n \r\n const handlePrePumpSystempressure = (event) => {\r\n setPumpsystempressure(event.target.value);\r\n parentEditSystemPressureChange(event.target.value)\r\n };\r\n\r\n const handlePrePumpPress = (event) => {\r\n setPrePumpPress(event.target.value);\r\n parentEditprepumpressureChange(event.target.value);\r\n };\r\n\r\n const handlePrePumpDepth = (event) => {\r\n setPrePumpDepth(event.target.value);\r\n parentEditprepumpdepthChange(event.target.value);\r\n };\r\n\r\n const handlePreDisPress = (event) => {\r\n setPredispress(event.target.value);\r\n parentEditpredischargepressureChange(event.target.value);\r\n };\r\n\r\n const handlePreFricLoss = (event) => {\r\n setPrefricloss(event.target.value);\r\n parentEditprefrictionlossChange(event.target.value);\r\n };\r\n\r\n const handlePrepumpNameChange = event => {\r\n setPumpName(event.target.value);\r\n parentEditPumpNameChange(event.target.value)\r\n };\r\n\r\n const handlePrePumpfueltype = event => {\r\n setPumpfueltype(event.target.value);\r\n parentEditFuelTypeChange(event.target.value)\r\n \r\n };\r\n \r\n const showPreSysPressDiv = event => {\r\n \r\n if (pumpsystempressure == 1) {\r\n if (document.getElementById(\"syspressitemspreedit\") != null)\r\n {\r\n document.getElementById(\"syspressitemspreedit\").style.display = \"none\";\r\n }\r\n \r\n } else if (pumpsystempressure == 2) {\r\n if (document.getElementById(\"syspressitemspreedit\") != null) {\r\n document.getElementById(\"syspressitemspreedit\").style.display = \"block\";\r\n }\r\n \r\n }\r\n };\r\n\r\n const showPreFuelUseDiv = event => {\r\n if (document.getElementById(\"diveditprepumpfueluse\") != null) {\r\n \r\n if ((pumpfueltype >= 150 && pumpfueltype <= 154 && pumpfueltype != 151) || (pumpfueltype=='')) {\r\n\r\n document.getElementById(\"diveditprepumpfueluse\").style.display = \"block\";\r\n\r\n }\r\n else {\r\n \r\n document.getElementById(\"diveditprepumpfueluse\").style.display = \"none\";\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTFUELTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr && usr.id < 155) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setPumpfueltypeList(list);\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n Name of the pump :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n Which fields does this pump service :\r\n
\r\n
\r\n \r\n
\r\n }\r\n MenuProps={MenuProps}\r\n >\r\n {editFieldsArr.map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Motor Rated Horsepower :\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Overall Pumping Efficiency (%) :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Enter the pumping depth (ft): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the discharge pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Enter the friction losses (ft) (friction loss is 5 for a booster and 10 for a well pump): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n Fuel Type:\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {pumpfueltypeList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Annual Fuel Use (gallons or scf):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useEffect, useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport * as CMBYN from \"../../../constants/api\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport KWhWarning from \"./KWhWarning.js\";\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function EditNewPostPump(props ) {\r\n const { editFieldsArrPost, PostProjectPumpEdit, parentEditPostPumpNameChange, parentEditPostFieldsListeChange, parentEditPostHpChange,\r\n parentEditPostHoursChange, parentEditPostEfficiencyChange, parentEditPostSystemPressureChange, parentEditPostPumpPressureChange, parentEditPostPumpDepthChange, parentEditPostDischargePressureChange,\r\n parentEditPostFrictionLossChange, parentEditPostVFDChange,\r\n parentEditPostFuelTypeChange, parentEditPostFuelUseChange, parentEditPostRenewEnrgySelChange, parentEditPostRenewEnrgyCapctyChange } = props\r\n \r\n \r\n const classes = useStyles();\r\n \r\n const [postPumpNameEdit, setPostPumpNameEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojpumpName);\r\n const [postPumpfieldsEdit, setPostPumpfieldsEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojfields);\r\n const [postPumpEffEdit, setPostPumpEffEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojeff);\r\n const [postPumpHPEdit, setPostPumpHPEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojhp);\r\n const [postPumpHoursEdit, setPostPumpHoursEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojhours);\r\n const [postPumpVFDEdit, setPostPumpVFDEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojvfd);\r\n const [postPumpVFDEditList, setPostPumpVFDEditList] = React.useState([]);\r\n const [postPumpFuelUseEdit, setPostPumpFuelUseEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojfueluse);\r\n const [postPumpSystempressureEdit, setPostPumpSystempressureEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojsyspress);\r\n\r\n const [postpumppressEdit, setPostPumpPressEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojpumpress);\r\n const [postpumpdepthEdit, setPostPumpDepthEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojpumpdepth);\r\n const [postdispressEdit, setPostdispressEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojdispress);\r\n const [postfriclossEdit, setPostfriclossEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojfricloss);\r\n\r\n const [postPumpFuelType, setPostPumpFuelType] = React.useState(PostProjectPumpEdit.postprojectpump.postprojfueltype);\r\n const [postPumpFuelTypeList, setPostPumpFuelTypeList] = React.useState([]);\r\n const [postPumpRenewenergySelEdit, setPostPumpRenewenergySelEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojrenewenrgysel);\r\n const [postPumpRenewenergyCapctyEdit, setPostPumpRenewenergyCapctyEdit] = React.useState(PostProjectPumpEdit.postprojectpump.postprojrenewenrgycapcty);\r\n \r\n \r\n //useEffect(() => {\r\n\r\n // showHideRenewEnrgyCapactyDiv();\r\n //}, [postPumpRenewenergySelEdit]);\r\n //useEffect(() => {\r\n\r\n // showSysPressPostDiv();\r\n //}, [postPumpSystempressureEdit])\r\n useEffect(() => {\r\n\r\n showAnnualFuelUseDiv();\r\n }, [])\r\n \r\n const handlePostPumpEditFieldsChange = (event) => {\r\n \r\n var value = event.target.value;\r\n setPostPumpfieldsEdit(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentEditPostFieldsListeChange(value);\r\n };\r\n\r\n const handlePumpChange = (event) => {\r\n setPumpType(event.target.value);\r\n \r\n };\r\n const handlePostPumpHP = (event) => {\r\n setPostPumpHPEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehp: event.target.value });\r\n parentEditPostHpChange(event.target.value);\r\n };\r\n const handlePostPumpHoursEdit= (event) => {\r\n setPostPumpHoursEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehours: event.target.value });\r\n parentEditPostHoursChange(event.target.value);\r\n\r\n };\r\n const handlePostPumpEffEdit = (event) => {\r\n setPostPumpEffEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, preeff: event.target.value });\r\n parentEditPostEfficiencyChange(event.target.value);\r\n\r\n };\r\n const handlePostPumpFuelUseEdit = (event) => {\r\n setPostPumpFuelUseEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prefueluse: event.target.value });\r\n parentEditPostFuelUseChange(event.target.value);\r\n\r\n };\r\n\r\n const handlePostPumpVFDEdit = (event) => {\r\n setPostPumpVFDEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prevfd: event.target.value });\r\n parentEditPostVFDChange(event.target.value);\r\n\r\n };\r\n \r\n const handlePostPumpSysPressEdit\r\n = (event) => {\r\n setPostPumpSystempressureEdit(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, presyspress: event.target.value });\r\n\r\n if (postPumpSystempressureEdit == 1) {\r\n if (document.getElementById(\"syspressitemspost\") != null) {\r\n document.getElementById(\"syspressitemspost\").style.display = \"none\";\r\n }\r\n if (document.getElementById(\"syspressinputpost\") != null) {\r\n document.getElementById(\"syspressinputpost\").style.display = \"block\";\r\n }\r\n } else if (postPumpSystempressureEdit == 2) {\r\n if (document.getElementById(\"syspressitemspost\") != null) {\r\n document.getElementById(\"syspressitemspost\").style.display = \"block\";\r\n }\r\n if (document.getElementById(\"syspressinputpost\") != null) {\r\n document.getElementById(\"syspressinputpost\").style.display = \"none\";\r\n }\r\n }\r\n parentEditPostSystemPressureChange(event.target.value);\r\n };\r\n\r\n const handlePostPumpPressEdit\r\n = (event) => {\r\n setPostPumpPressEdit(event.target.value);\r\n\r\n parentEditPostPumpPressureChange(event.target.value);\r\n };\r\n const handlePostPumpDepthEdit\r\n = (event) => {\r\n setPostPumpDepthEdit(event.target.value);\r\n parentEditPostPumpDepthChange(event.target.value);\r\n };\r\n const handlePostDisPressEdit\r\n = (event) => {\r\n setPostdispressEdit(event.target.value);\r\n parentEditPostDischargePressureChange(event.target.value);\r\n };\r\n const handlePostFricLossEdit\r\n = (event) => {\r\n setPostfriclossEdit(event.target.value);\r\n parentEditPostFrictionLossChange(event.target.value);\r\n };\r\n \r\n const handlePostPumpEditNameChange = event => {\r\n setPostPumpNameEdit(event.target.value);\r\n \r\n \r\n //setPumpInputs({ ...pumpinputs, pumpName: event.target.value });\r\n parentEditPostPumpNameChange(event.target.value)\r\n };\r\n\r\n const handlePostPumpFuelTypeEdit = event => {\r\n \r\n\r\n setPostPumpFuelType(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prefueltype: event.target.value });\r\n\r\n parentEditPostFuelTypeChange(event.target.value);\r\n if (event.target.value === \"155\" || event.target.value === \"156\" || event.target.value === \"157\") {\r\n document.getElementById(\"annualfueluseedit\").style.display = \"none\";\r\n }\r\n else {\r\n document.getElementById(\"annualfueluseedit\").style.display = \"block\";\r\n }\r\n };\r\n\r\n const handlePostPumpRenewEnrgySelEdit = event => {\r\n \r\n setPostPumpRenewenergySelEdit(event.target.value);\r\n if (postPumpRenewenergySelEdit === \"0\") {\r\n\r\n document.getElementById(\"postpumprenewenrgycapctyEditDiv\").style.display = \"block\";\r\n\r\n }\r\n else {\r\n document.getElementById(\"postpumprenewenrgycapctyEditDiv\").style.display = \"none\";\r\n }\r\n parentEditPostRenewEnrgySelChange(event.target.value);\r\n\r\n };\r\n const handlePostPumpRenewEnrgyCapctyEdit = event => {\r\n\r\n \r\n setPostPumpRenewenergyCapctyEdit(event.target.value);\r\n parentEditPostRenewEnrgyCapctyChange(event.target.value);\r\n\r\n };\r\n const showAnnualFuelUseDiv = event => {\r\n \r\n if (PostProjectPumpEdit.postprojectpump.postprojisprepump == 'N') {\r\n if (PostProjectPumpEdit.postprojectpump.postprojfueltype != 155 && PostProjectPumpEdit.postprojectpump.postprojfueltype != 156 && PostProjectPumpEdit.postprojectpump.postprojfueltype != 157) {\r\n document.getElementById(\"annualfueluseedit\").style.display = \"block\";\r\n }\r\n else {\r\n document.getElementById(\"annualfueluseedit\").style.display = \"none\";\r\n }\r\n\r\n }\r\n else {\r\n document.getElementById(\"annualfueluseedit\").style.display = \"none\";\r\n }\r\n };\r\n const showHideRenewEnrgyCapactyDiv = event => {\r\n \r\n if (postPumpRenewenergySelEdit === \"0\") {\r\n\r\n document.getElementById(\"postpumprenewenrgycapctyEditDiv\").style.display = \"block\";\r\n\r\n }\r\n else {\r\n document.getElementById(\"postpumprenewenrgycapctyEditDiv\").style.display = \"none\";\r\n }\r\n };\r\n\r\n const showSysPressPostDiv = event => {\r\n\r\n \r\n if (postPumpSystempressureEdit == 1) {\r\n if (document.getElementById(\"syspressitemspost\") != null)\r\n {\r\n document.getElementById(\"syspressitemspost\").style.display = \"none\";\r\n }\r\n if (document.getElementById(\"syspressinputpost\") != null) {\r\n document.getElementById(\"syspressinputpost\").style.display = \"block\";\r\n }\r\n } else if (postPumpSystempressureEdit == 2) {\r\n if (document.getElementById(\"syspressitemspost\") != null) {\r\n document.getElementById(\"syspressitemspost\").style.display = \"block\";\r\n }\r\n if (document.getElementById(\"syspressinputpost\") != null) {\r\n document.getElementById(\"syspressinputpost\").style.display = \"none\";\r\n }\r\n }\r\n \r\n };\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_POSTFUELTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n let option = {};\r\n option.name = usr.name;\r\n option.id = usr.id;\r\n list.push(option);\r\n }\r\n }\r\n setPostPumpFuelTypeList(list);\r\n\r\n })\r\n }, []);\r\n useEffect(() => {\r\n fetch(CMBYN.FETCH_VFDTYPES)\r\n .then(response => response.json())\r\n .then(results => {\r\n var list = [];\r\n for (var u = 0; u < results.length; u++) {\r\n let usr = results[u];\r\n if (usr) {\r\n\r\n let option = {};\r\n option.name = usr.vfdType.name;\r\n option.id = usr.vfdType.id;\r\n list.push(option);\r\n }\r\n }\r\n\r\n\r\n\r\n setPostPumpVFDEditList(list);\r\n })\r\n }, []);\r\n function handleSubmit(event) {\r\n \r\n event.preventDefault();\r\n // console.log('pumpname:', textInput);\r\n // console.log('age:', age);\r\n // console.log(\"is this the one?\");\r\n // console.log(pumpinputs);\r\n // console.log(\"is this the one?\");\r\n getFormValues(pumpinputs);\r\n // You should see email and password in console.\r\n // ..code to submit form to backend here...\r\n\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Name of the pump :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n Which fields does this pump service :\r\n
\r\n
\r\n \r\n
\r\n }\r\n MenuProps={MenuProps}\r\n >\r\n {editFieldsArrPost.map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n
\r\n {/* */}\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n Expected Motor Rated Horsepower :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Expected Overall Pumping Efficiency (%) :\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n Enter the pumping depth (ft): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n Enter the discharge Pressure (ft) (if only psi is known please multiply by 2.31 to convert to feet):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n Enter the friction losses (ft) (friction loss is 5 for a booster and 10 for a well pump): \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Are you installing a VFD?\r\n
\r\n
\r\n \r\n \r\n
\r\n }\r\n >\r\n {postPumpVFDEditList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n New Fuel Type :\r\n
\r\n
\r\n \r\n
\r\n }\r\n >\r\n {postPumpFuelTypeList.map((cr) => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Anticipated Fuel Use (gallons or scf or kWh):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","\r\n\r\nimport React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport { string } from \"prop-types\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function Electricity(props ) {\r\n const { selkwh,selirr,parentTotalKWHChange, parentIrrHardwareChange } = props\r\n \r\n \r\n const classes = useStyles();\r\n \r\n const [pumpName, setPumpName] = useState('');\r\n \r\n const [fields, setFields] = useState([]);\r\n \r\n const [kwh, setKwh] = React.useState(selkwh);\r\n const [irrHardware, setIrrHardware] = React.useState(selirr);\r\n \r\n const handleFieldsChange = function (event) {\r\n var value = event.target.value;\r\n setFields(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentPrePumpsListChange(value);\r\n };\r\n \r\n const handleKwhChange = (event) => {\r\n setKwh(event.target.value);\r\n parentTotalKWHChange(event.target.value);\r\n \r\n };\r\n const handleIrrHardware = (event) => {\r\n setIrrHardware(event.target.value);\r\n //setPumpInputs({ ...pumpinputs, prehp: event.target.value });\r\n parentIrrHardwareChange(event.target.value);\r\n };\r\n \r\n \r\n return (\r\n
\r\n \r\n \r\n
\r\n Enter the total annual Kwh from all of the utility meters that power your current irrigation system:\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Does any non-irrigation hardware draw electricity from the utility meters:\r\n
\r\n
\r\n \r\n
\r\n \r\n Yes\r\n No\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport { Theme, useTheme } from '@material-ui/core/styles';\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Box from '@material-ui/core/Box';\r\nimport Chip from '@material-ui/core/Chip';\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\nfunction getStyles(name, personName, theme) {\r\n return {\r\n fontWeight: personName.indexOf(name) === -1\r\n ? theme.typography.fontWeightRegular\r\n : theme.typography.fontWeightMedium,\r\n };\r\n}\r\nexport default function CopyFieldDetails(props) {\r\n const { copyFromField, copyfieldsArr, parentCopyFieldsListChange } = props\r\n const theme = useTheme();\r\n const [fieldNames, setFieldNames] = React.useState([]);\r\n \r\n let fieldName = copyFromField.field.name;\r\n var labelText = \"Select the fields you would like to copy field \" + fieldName +\" data to\";\r\n const handleCopyFieldsChange = function (event) {\r\n var value = event.target.value;\r\n setFieldNames(\r\n // On autofill we get a stringified value.\r\n typeof value === 'string' ? value.split(',') : value);\r\n parentCopyFieldsListChange(value);\r\n };\r\n \r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {labelText } \r\n }\r\n renderValue={(selected) => (\r\n \r\n {selected.map((value) => (\r\n \r\n ))}\r\n \r\n )}\r\n MenuProps={MenuProps}\r\n >\r\n {copyfieldsArr.map((field) => (\r\n \r\n {field.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Box, Button } from \"@material-ui/core\";\r\n\r\nimport { updateUser } from \"actions/user\";\r\n\r\nexport default function SaveLoadButtons({saveText = \"Download Project\", loadText = \"Load Project\", ...props}) {\r\n const user = useSelector(state => state.user);\r\n const dispatch = useDispatch();\r\n\r\n var fileInput;\r\n\r\n const download = () => {\r\n var now = new Date();\r\n var filename = now.toLocaleDateString('en-CA') + '_' + now.toLocaleTimeString('en-GB') + '.txt'; //Canada format for the date, UK format for the time\r\n\r\n var element = document.createElement('a');\r\n element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(JSON.stringify(user)));\r\n element.setAttribute('download', filename);\r\n \r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n const upload = () => {\r\n fileInput = document.createElement('input');\r\n fileInput.type = 'file';\r\n fileInput.style.display = 'none';\r\n fileInput.onchange = readFile;\r\n fileInput.func = loadUser;\r\n document.body.appendChild(fileInput);\r\n fileInput.click();\r\n }\r\n\r\n const readFile = (event) => {\r\n var file = event.target.files[0];\r\n\r\n if (!file) {\r\n // should we remove the fileInput element here?\r\n return;\r\n }\r\n\r\n var reader = new FileReader();\r\n\r\n reader.onload = function(e) {\r\n var contents = e.target.result;\r\n fileInput.func(contents);\r\n document.body.removeChild(fileInput);\r\n }\r\n\r\n reader.readAsText(file);\r\n }\r\n\r\n const loadUser = (contents) => {\r\n var user = JSON.parse(contents);\r\n\r\n if (user) {\r\n dispatch(updateUser(user));\r\n }\r\n }\r\n\r\n return (\r\n \r\n {saveText && }\r\n {loadText && }\r\n \r\n );\r\n}","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function MaxPreProjPumps({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function MaxPostProjPumps({ open, handleClose }) {\r\n const classes = useStyles();\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n :not(style)\": { width: \"5ch\" },\r\n }}\r\n noValidate\r\n autoComplete=\"off\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nimport { TextField } from \"@material-ui/core\";\r\n\r\nimport { updateUser } from \"actions/user\";\r\n\r\nimport DynamicDialog from \"components/Dialogs/Dialog\";\r\nimport * as helpers from \"../../../helpers/helpers\"\r\n\r\nexport default function EditNamePopup ({open, handleClose, value}) {\r\n const dispatch = useDispatch();\r\n\r\n const user = useSelector((state) => state.user);\r\n const [name, setName] = useState(value);\r\n\r\n const handleNameChange = (event) => {\r\n setName(event.target.value);\r\n }\r\n\r\n const saveName = () => {\r\n dispatch(updateUser({...user, agopname: name}));\r\n handleClose();\r\n }\r\n\r\n const checkKeyPress = (e) => {\r\n if (e.key ==='Enter' || e.key ==='NumpadEnter' )\r\n {\r\n e.preventDefault();\r\n saveName();\r\n }\r\n }\r\n\r\n const saveEditNameButton = helpers.getDialogButton(\"Save\", saveName);\r\n const cancelEditNameButton = helpers.getDialogButton(\"Cancel\", handleClose);\r\n const editNameButtons = [cancelEditNameButton, saveEditNameButton];\r\n\r\n const form = (\r\n \r\n );\r\n\r\n return (\r\n \r\n )\r\n}","\r\n\r\nimport React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport { styled } from '@material-ui/core/styles';\r\nimport { useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select, { SelectChangeEvent } from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport { string } from \"prop-types\";\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\n\r\nconst BootstrapInput = styled(InputBase)(({ theme }) => ({\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n width: '90%',\r\n },\r\n '& .MuiInputBase-input': {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n },\r\n },\r\n}));\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\n\r\nconst styles = {\r\n card: {\r\n marginLeft: \"10%\",\r\n boxShadow: \"none\",\r\n marginTop: \"unset\",\r\n },\r\n\r\n preprojpumplabel: {\r\n width: \"100px\",\r\n marginTop: \"15px\",\r\n },\r\n preprojpumpAddIcon: {\r\n float: \"left\",\r\n padding: \"unset\",\r\n },\r\n paper: { minWidth: \"300px\" },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\nexport default function RenewEnrgyCapcty(props ) {\r\n const { selcapcty, parentRenewCapctyChange } = props\r\n \r\n \r\n const classes = useStyles();\r\n \r\n \r\n const [capcty, setCapcty] = React.useState(selcapcty);\r\n \r\n \r\n const handleCapctyChange = (event) => {\r\n setCapcty(event.target.value);\r\n parentRenewCapctyChange(event.target.value);\r\n \r\n };\r\n \r\n return (\r\n
\r\n \r\n \r\n
\r\n Renewable Energy Capacity (kw):\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","// REACT\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport ColorBar from \"./ColorBar.js\";\r\nimport ButtonBar from \"./ButtonBar.js\";\r\nimport * as FieldSidebarHelpers from \"./FieldSidebarHelpers\";\r\nimport GridItem from \"../Grid/GridItem.js\";\r\nimport GridContainer from \"../Grid/GridContainer.js\";\r\n\r\nimport DynamicDialog from \"../Dialogs/Dialog.js\";\r\nimport FieldForm from \"../Forms/FieldForm\";\r\nimport EditFieldForm from \"../Forms/EditFieldForm\";\r\nimport Card from \"components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"components/ExpandCollapseIcon.jsx\";\r\n\r\nimport { Box, Button, CardContent, Collapse, Typography } from \"@material-ui/core\";\r\n\r\nimport \"./FieldSidebar.css\";\r\nimport IconButton from \"@material-ui/core/IconButton\"; //will use this for project name edit\r\nimport EditIcon from \"@material-ui/icons/Edit\"; //will use this for project name edit\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n// OPEN LAYERS\r\nimport Draw, { createBox } from \"ol/interaction/Draw.js\";\r\nimport postmarkerpng from \"./images/markerred.png\";\r\nimport premarkerpng from \"./images/markerblue.png\";\r\nimport { defaults as defaultInteractions, Modify, Select, Translate } from \"ol/interaction.js\"; //todo: remove these?\r\nimport { Vector as VectorSource } from \"ol/source.js\";\r\nimport WKT from \"ol/format/WKT.js\";\r\nimport { getCenter } from \"ol/extent\";\r\nimport Marker from \"ol-marker-feature\"; //todo: remove these and related npm package?\r\nimport Popup from \"ol-popup\"; //todo: remove this and related npm package?\r\nimport { asArray } from \"ol/color\"; //todo: remove this?\r\nimport { Circle as CircleStyle, Fill, Stroke, Style, Icon, Text } from \"ol/style.js\";\r\n\r\nimport { Feature } from \"ol\"; //todo: remove this?\r\nimport { toLonLat, transform } from \"ol/proj.js\"; //todo: remove transform?\r\nimport { LineString, Polygon, Point } from \"ol/geom\";\r\nimport { Vector as VectorLayer } from \"ol/layer.js\";\r\nimport { boundingExtent } from \"ol/extent\"; //todo: remove this?\r\nimport { get, transformExtent } from \"ol/proj\"; //todo: remove these?\r\nimport { getArea } from \"ol/sphere\";\r\nimport Collection from \"ol/Collection\";\r\nimport GeoJSON from \"ol/format/GeoJSON.js\";\r\nimport { fromCircle } from \"ol/geom/Polygon.js\";\r\nimport { updateUser } from \"../../actions/user\";\r\n\r\nimport * as helpers from \"../../helpers/helpers\";\r\nimport UserDetails from \"../../views/UserDetails/UserDetails.js\";\r\n\r\nimport SuccessPopup from \"../../views/Popups/Misc/SuccessPopup.js\";\r\nimport DataEntry from \"../../views/Popups/Misc/DataEntry.js\";\r\nimport UniqueFieldName from \"../../views/Popups/Misc/UniqueFieldName.js\";\r\nimport MaxFields from \"../../views/Popups/Misc/MaxFields.js\";\r\nimport AddPumpInstr from \"../../views/Popups/Misc/AddPumpInstr.js\";\r\nimport PumpImpQues from \"../../views/Popups/Misc/PumpImpQues.js\";\r\nimport AddNewPump from \"../../views/Popups/Misc/AddNewPump.js\";\r\nimport AddNewPostPump from \"../../views/Popups/Misc/AddNewPostPump.js\";\r\nimport EditNewPump from \"../../views/Popups/Misc/EditNewPump.js\";\r\nimport EditNewPostPump from \"../../views/Popups/Misc/EditNewPostPump.js\";\r\n\r\nimport Electricity from \"../../views/Popups/Electricity.js\";\r\n\r\nimport CopyFieldDetails from \"../../views/Popups/Misc/CopyFieldDetails.js\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport SaveLoadButtons from \"./SaveLoadButtons.jsx\";\r\nimport { jsPDF } from \"jspdf\";\r\nimport MaxPreProjPumps from \"../../views/Popups/Misc/MaxPreProjPumps.js\";\r\nimport MaxPostProjPumps from \"../../views/Popups/Misc/MaxPostProjPumps.js\";\r\nimport EditNamePopup from \"views/Popups/Misc/EditNamePopup.jsx\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport RenewEnrgyCapcty from \"../../views/Popups/RenewEnrgyCapcty.js\";\r\n\r\n\r\n\r\nvar draw = null;\r\nvar storageKey = \"fieldSidebar\";\r\nvar vectorSource = null;\r\nvar vectorLayer = null;\r\nvar pumpVectorSource = null;\r\nvar draw = null;\r\nvar translate = null;\r\nvar pinLayer = null;\r\nvar fieldData = [];\r\n\r\nexport default function FieldSidebar() {\r\n const [drawType, setDrawType] = useState(\"Cancel\");\r\n const [drawColor, setDrawColor] = useState(\"#e809e5\");\r\n const [drawStyle, setDrawStyle] = useState(null);\r\n const [isEditing, setIsEditing] = useState(false); //todo: this never gets set/changed?\r\n const [fields, setFields] = useState([]);\r\n const [preprojectpumps, setPreProjectPumps] = useState([]);\r\n const [postprojectpumps, setPostProjectPumps] = useState([]);\r\n\r\n const [selectedField, setSelectedField] = useState(null);\r\n const [selectedPrePump, setSelectedPrePump] = useState(null);\r\n const [selectedPostPump, setSelectedPostPump] = useState(null);\r\n\r\n const [fieldJustCreated, setFieldJustCreated] = useState(null);\r\n const [premarkerJustCreated, setPremarkerJustCreated] = useState(null);\r\n const [postmarkerJustCreated, setPostmarkerJustCreated] = useState(null);\r\n const [preprojectpumpJustCreated, setPreProjectPumpJustCreated] = useState(null);\r\n const [postprojectpumpJustCreated, setPostProjectPumpJustCreated] = useState(null);\r\n const [fieldJustEdited, setFieldJustEdited] = useState(null);\r\n const [showAddNewField, setShowAddNewField] = useState(false);\r\n const [showEditNewField, setShowEditNewField] = useState(false);\r\n const [showEditName, setShowEditName] = useState(false);\r\n const [showDeleteField, setShowDeleteField] = useState(false);\r\n const [existPumpClicked, setExistPumpClicked] = useState(false);\r\n const [addntlPumpClicked, setAddntlPumpClicked] = useState(false);\r\n const [userDetailsOpen, setUserDetailsOpen] = useState(false);\r\n const [userDetailsTitle, setUserDetailsTitle] = useState(\"\");\r\n const [copyFieldDetailsOpen, setCopyFieldDetailsOpen] = useState(false);\r\n const [fieldDetailsAdded, setFieldDetailsAdded] = useState(\"\");\r\n const [successPopOpen, setSuccessPopOpen] = useState(false);\r\n const [dataEntryPopOpen, setDataEntryPopOpen] = useState(false);\r\n const [addPumpInstrPopOpen, setAddPumpInstrPopOpen] = useState(false);\r\n const [pumpImpOpen, setPumpImpOpen] = useState(false);\r\n const [addPumpOpen, setAddPumpOpen] = useState(false);\r\n const [addPostPumpOpen, setAddPostPumpOpen] = useState(false);\r\n const [editPumpOpen, setEditPumpOpen] = useState(false);\r\n const [editPostPumpOpen, setEditPostPumpOpen] = useState(false);\r\n const [copyArr, setCopyArr] = useState([]);\r\n\r\n const [userDetSelField, setUserDetSelField] = useState(null);\r\n const [pumpImpChanged, setPumpImpChanged] = useState(null);\r\n const [electricityPopUpOpen, setElectricityPopUpOpen] = useState(false);\r\n const [renewenrgyPopUpOpen, setRenewenrgyPopUpOpen] = useState(false);\r\n const [fieldsToCopy, setFieldsToCopy] = useState(\"\");\r\n const [fieldNameWarnPopOpen, setFieldNameWarnPopOpen] = useState(false);\r\n const [maxFieldsWarn, setMaxFieldsWarn] = useState(false);\r\n const [maxPreProjPumpsWarn, setMaxPreProjPumpsWarn] = useState(false);\r\n const [maxPostProjPumpsWarn, setMaxPostProjPumpsWarn] = useState(false);\r\n const [enableViewReportBtn, setEnableViewReportBtn] = useState(false);\r\n const [fieldsComplete, setFieldsComplete] = useState(false);\r\n const [prePumpsComplete, setPrePumpsComplete] = useState(false);\r\n const [postPumpsComplete, setPostPumpsComplete] = useState(false);\r\n const currentUser = useSelector((state) => state.user);\r\n\r\n const [pumpinputs, setPumpInputs] = React.useState({\r\n prepumpName: \"\",\r\n prefields: [],\r\n prehp: \"\",\r\n preeff: \"\",\r\n prehours: \"\",\r\n presyspress: \"2\",\r\n prepumpress: \"\",\r\n prepumpdepth: \"\",\r\n predispress: \"\",\r\n prefricloss: \"\",\r\n prevfd: \"\",\r\n prefueltype: \"150\",\r\n prefueluse: \"\",\r\n preimprovques: \"1\",\r\n prestayinuseques: \"0\",\r\n prefeature: \"\",\r\n posthp: \"\",\r\n posteff: \"\",\r\n posthours: \"\",\r\n postsyspress: \"1\",\r\n postpumpress: \"\",\r\n postpumpdepth: \"\",\r\n postdispress: \"\",\r\n postfricloss: \"\",\r\n postvfd: \"\",\r\n postfueltype: \"\",\r\n postfueluse: \"\",\r\n postrenewenrgysel: \"1\",\r\n postrenewenrgycapcty: \"\",\r\n });\r\n\r\n const [postPumpinputs, setPostPumpInputs] = React.useState({\r\n postpumpName: \"\",\r\n postfields: [],\r\n posthp: \"\",\r\n posteff: \"\",\r\n posthours: \"\",\r\n postsyspress: \"2\",\r\n postpumpress: \"\",\r\n postpumpdepth: \"\",\r\n postdispress: \"\",\r\n postfricloss: \"\",\r\n postvfd: \"\",\r\n postfueltype: \"\",\r\n postfueluse: \"\",\r\n postfeature: \"\",\r\n postrenewenrgysel: \"1\",\r\n postrenewenrgycapcty: \"\",\r\n });\r\n\r\n const [pumpEditInputs, setPumpEditInputs] = React.useState({\r\n preeditpumpName: \"\",\r\n preeditfields: \"\",\r\n preedithp: \"\",\r\n preediteff: \"\",\r\n preedithours: \"\",\r\n preeditsyspress: \"\",\r\n preeditpumpress: \"\",\r\n preeditpumpdepth: \"\",\r\n preeditdispress: \"\",\r\n preeditfricloss: \"\",\r\n preeditvfd: \"\",\r\n preeditfueltype: \"\",\r\n preeditfueluse: \"\",\r\n preeditfeature: \"\",\r\n });\r\n\r\n const [postPumpEditInputs, setPostPumpEditInputs] = React.useState({\r\n posteditpumpName: \"\",\r\n posteditfields: \"\",\r\n postedithp: \"\",\r\n postediteff: \"\",\r\n postedithours: \"\",\r\n posteditsyspress: \"\",\r\n posteditpumpress: \"\",\r\n posteditpumpdepth: \"\",\r\n posteditdispress: \"\",\r\n posteditfricloss: \"\",\r\n posteditvfd: \"\",\r\n posteditfueltype: \"\",\r\n posteditfueluse: \"\",\r\n posteditfeature: \"\",\r\n posteditrenewenrgysel: \"\",\r\n posteditrenewenrgycapcty: \"\",\r\n });\r\n\r\n const [fieldDetails, setFieldDetails] = React.useState({\r\n precroponeyearone: \"\",\r\n precroponeyeartwo: \"\",\r\n precroponeyearthree: \"\",\r\n precroptwoyearone: \"\",\r\n precroptwoyeartwo: \"\",\r\n precroptwoyearthree: \"\",\r\n precropthreeyearone: \"\",\r\n precropthreeyeartwo: \"\",\r\n precropthreeyearthree: \"\",\r\n postcroponeyearone: \"\",\r\n postcroponeyeartwo: \"\",\r\n postcroponeyearthree: \"\",\r\n postcroptwoyearone: \"\",\r\n postcroptwoyeartwo: \"\",\r\n postcroptwoyearthree: \"\",\r\n postcropthreeyearone: \"\",\r\n postcropthreeyeartwo: \"\",\r\n postcropthreeyearthree: \"\",\r\n preirr: \"\",\r\n postirr: \"\",\r\n presoilmoisture: false,\r\n preflow: false,\r\n preet: false,\r\n preno: false,\r\n postsoilmoisture: false,\r\n postflow: false,\r\n postet: false,\r\n postno: false,\r\n });\r\n\r\n const [preSoilMoistureState, setPreSoilMoistureState] = React.useState(false);\r\n const [preFlowState, setPreFlowState] = React.useState(false);\r\n const [preETState, setPreETState] = React.useState(false);\r\n const [preNoState, setPreNoState] = React.useState(false);\r\n\r\n const [postSoilMoistureState, setPostSoilMoistureState] = React.useState(false);\r\n const [postFlowState, setPostFlowState] = React.useState(false);\r\n const [postETState, setPostETState] = React.useState(false);\r\n const [postNoState, setPostNoState] = React.useState(false);\r\n const [electricityDetails, setElectricityDetails] = React.useState({\r\n kwh: \"\",\r\n irrhardware: \"1\",\r\n });\r\n const [renewEnrgyDets, setRenewEnrgyDets] = React.useState({\r\n capcty: \"\",\r\n \r\n });\r\n //card collapsed states\r\n const [fieldCardCollapsed, setFieldCardCollapsed] = React.useState(false);\r\n const [prePumpCardCollapsed, setPrePumpCardCollapsed] = React.useState(false);\r\n const [postPumpCardCollapsed, setPostPumpCardCollapsed] = React.useState(false);\r\n\r\n //card collapse toggles\r\n function toggleFieldCardCollapse() {\r\n setFieldCardCollapsed(!fieldCardCollapsed);\r\n }\r\n\r\n function togglePrePumpCardCollapse() {\r\n setPrePumpCardCollapsed(!prePumpCardCollapsed);\r\n }\r\n\r\n function togglePostPumpCardCollapse() {\r\n setPostPumpCardCollapsed(!postPumpCardCollapsed);\r\n }\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const handleSuccessPopClose = () => {\r\n setSuccessPopOpen(false);\r\n };\r\n const handleDataEntryPopClose = () => {\r\n setDataEntryPopOpen(false);\r\n };\r\n const handleAddPumpInstrPopClose = () => {\r\n setAddPumpInstrPopOpen(false);\r\n };\r\n const handleFieldNameWarnPopClose = () => {\r\n setFieldNameWarnPopOpen(false);\r\n };\r\n\r\n const handleMaxFieldsWarnPopClose = () => {\r\n setMaxFieldsWarn(false);\r\n };\r\n const handleMaxPreProjPumpsWarnPopClose = () => {\r\n setMaxPreProjPumpsWarn(false);\r\n };\r\n const handleMaxPostProjPumpsWarnPopClose = () => {\r\n setMaxPostProjPumpsWarn(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateStyle();\r\n importGeometries();\r\n fieldDetailsValidation();\r\n PreProjPumpsValidation();\r\n PostProjPumpsValidation();\r\n \r\n \r\n \r\n if (fields != null)\r\n if (fields.count > 0) {\r\n setSelectedField[fields[0]];\r\n }\r\n }, [fields]);\r\n\r\n useEffect(() => {\r\n importpoints();\r\n \r\n }, [preprojectpumps]);\r\n\r\n useEffect(() => {\r\n importpointsPost();\r\n \r\n }, [postprojectpumps]);\r\n\r\n useEffect(() => {\r\n setDrawControl();\r\n }, [drawType]);\r\n\r\n useEffect(() => {\r\n updateStyle();\r\n }, [drawColor]);\r\n\r\n useEffect(() => {\r\n setDrawControl();\r\n }, [drawStyle]);\r\n\r\n useEffect(() => {\r\n if (fieldJustCreated)\r\n if (!showAddNewField && !showDeleteField) {\r\n //No need to waste a render if the popup is currently open\r\n setShowAddNewField(true);\r\n setAddPumpOpen(false);\r\n } else {\r\n setShowDeleteField(false);\r\n setAddPumpOpen(false);\r\n }\r\n }, [fieldJustCreated]);\r\n\r\n useEffect(() => {\r\n updateStyle();\r\n importGeometries();\r\n }, [showAddNewField]);\r\n useEffect(() => {\r\n updateStyle();\r\n importGeometries();\r\n }, [showEditNewField]);\r\n useEffect(() => {\r\n updateStyle();\r\n importGeometries();\r\n }, [showDeleteField]);\r\n\r\n useEffect(() => {\r\n if (selectedField)\r\n if (!showEditNewField)\r\n //No need to waste a render if the popup is currently open\r\n setShowEditNewField(true);\r\n }, [selectedField]);\r\n\r\n // LISTEN FOR MAP TO MOUNT\r\n window.emitter.addListener(\"mapLoaded\", () => onMapLoad());\r\n\r\n // LISTEN FOR OTHER COMPONENTS ADDING A FEATURE\r\n //window.emitter.addListener(\"showAddFieldSuccess\", (feature, labelText) =>\r\n // addNewItem(feature, labelText, true)\r\n // );\r\n React.useLayoutEffect(() => {\r\n if (currentUser) {\r\n if (currentUser.fields) {\r\n setFields(helpers.serializeFeature(currentUser.fields));\r\n }\r\n if (currentUser.preprojectpumps) {\r\n setPreProjectPumps(helpers.serializeFeature(currentUser.preprojectpumps));\r\n }\r\n if (currentUser.postprojectpumps) {\r\n setPostProjectPumps(helpers.serializeFeature(currentUser.postprojectpumps));\r\n }\r\n } else {\r\n console.log(\"No current user!\");\r\n }\r\n });\r\n\r\n const onMapLoad = () => {\r\n updateStyle();\r\n\r\n vectorSource = new VectorSource();\r\n pumpVectorSource = new VectorSource();\r\n vectorLayer = new VectorLayer({\r\n source: vectorSource,\r\n zIndex: 1000,\r\n style: drawStyle,\r\n });\r\n pinLayer = new VectorLayer({\r\n source: pumpVectorSource,\r\n zIndex: 1000,\r\n name: \"prepumpslayer\",\r\n });\r\n // PROPERTY CLICK WILL IGNORE THIS LAYER\r\n vectorLayer.setProperties({\r\n disableParcelClick: true,\r\n name: \"fieldSidebar\",\r\n });\r\n\r\n window.map.addLayer(vectorLayer);\r\n window.map.addLayer(pinLayer);\r\n window.map.on(\"singleclick\", (evt) => {\r\n if (draw !== null || isEditing) return;\r\n\r\n window.map.forEachFeatureAtPixel(evt.pixel, (feature, layer) => {\r\n if (layer === null) return;\r\n\r\n if (layer.get(\"name\") !== undefined && layer.get(\"name\") === \"fieldSidebar\") {\r\n if (drawType === \"Eraser\") {\r\n // REMOVE ITEM FROM SOURCE\r\n // console.log(feature);\r\n onItemDelete(getFieldByFeatureId(feature.get(\"id\")).id);\r\n return;\r\n } else showDrawingOptionsPopup(feature, evt);\r\n\r\n return;\r\n }\r\n });\r\n });\r\n \r\n };\r\n \r\n const getFieldById = (id) => {\r\n // console.log(id);\r\n\r\n let foundField = null;\r\n\r\n /* farms.map(farm => { \r\n foundField = farm.fields.filter(fieldX => {\r\n return fieldX.id === id;\r\n })[0]\r\n }); Not working everytime*/\r\n\r\n if (farms)\r\n if (farms.length > 0)\r\n for (var i = 0; i < farms.length; i++) {\r\n let farm = farms[i];\r\n let found = false;\r\n\r\n if (farm.fields)\r\n if (farm.fields.length > 0)\r\n for (var x = 0; x < farm.fields.length; x++) {\r\n if (farm.fields[x].id === id) {\r\n foundField = farm.fields[x];\r\n\r\n found = true;\r\n break;\r\n }\r\n\r\n if (found) break;\r\n }\r\n }\r\n\r\n //console.log(foundField);\r\n\r\n if (foundField) return Object.assign({}, foundField);\r\n else return null;\r\n };\r\n\r\n // DELETE CLICK\r\n const onItemDelete = (id) => {\r\n let field = getFieldById(id);\r\n\r\n if (field) {\r\n // console.log(field);\r\n\r\n if (window.confirm(\"Are you sure you want to delete this field?\")) {\r\n // Save it!\r\n props.submitFieldDelete(field);\r\n } else {\r\n // Do nothing!\r\n }\r\n }\r\n };\r\n\r\n const styles = {\r\n poly: new Style({\r\n stroke: new Stroke({\r\n width: 4,\r\n color: [255, 0, 0, 0.8],\r\n }),\r\n }),\r\n prepoint: new Style({\r\n image: new Icon({\r\n anchor: [0.5, 1],\r\n //src: \"http://openlayers.org/en/v3.20.1/examples/data/icon.png\"\r\n src: premarkerpng,\r\n }),\r\n text: new Text({\r\n //text: '',\r\n scale: 1.3,\r\n fill: new Fill({\r\n color: \"#000000\",\r\n }),\r\n }),\r\n }),\r\n postpoint: new Style({\r\n image: new Icon({\r\n anchor: [0.5, 1],\r\n //src: \"http://openlayers.org/en/v3.20.1/examples/data/icon.png\"\r\n src: postmarkerpng,\r\n }),\r\n text: new Text({\r\n //text: '',\r\n scale: 1.3,\r\n fill: new Fill({\r\n color: \"#000000\",\r\n }),\r\n }),\r\n }),\r\n geocode: new Style({\r\n image: new CircleStyle({\r\n opacity: 0.5,\r\n radius: 7,\r\n fill: new Fill({ color: [236, 156, 155, 0.7] }),\r\n }),\r\n }),\r\n };\r\n\r\n // BUTTON BAR CLICK\r\n const onButtonBarClick = (type) => {\r\n setDrawType(type);\r\n };\r\n\r\n // COLORBAR CLICK\r\n const onColorBarClick = (color) => {\r\n setDrawColor(color);\r\n };\r\n\r\n // FIELD CLICK\r\n const onFieldClick = (field) => {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (field.field.name != fields[i].name) {\r\n document.getElementById(\"selectedField-\" + fields[i].name).className = \"sc-container sc-userprojects-item-container sc-nohighlight\";\r\n }\r\n }\r\n\r\n setUserDetSelField(field);\r\n setUserDetailsTitle(\"Field details for \" + field.field.name);\r\n //if (document.getElementById(\"selectedField-\" + field.field.name).id.split(\"-\")[1] == field.field.name) {\r\n // document.getElementById(\"selectedField-\" + field.field.name).className = \"sc-container sc-userprojects-item-container sc-highlighted\";\r\n //}\r\n\r\n /* } else setUserDetailsOpen(false);*/\r\n };\r\n\r\n const ClearFieldDetailsState = () => {\r\n setFieldDetails({\r\n precroponeyearone: \"\",\r\n precroponeyeartwo: \"\",\r\n precroponeyearthree: \"\",\r\n precroptwoyearone: \"\",\r\n precroptwoyeartwo: \"\",\r\n precroptwoyearthree: \"\",\r\n precropthreeyearone: \"\",\r\n precropthreeyeartwo: \"\",\r\n precropthreeyearthree: \"\",\r\n postcroponeyearone: \"\",\r\n postcroponeyeartwo: \"\",\r\n postcroponeyearthree: \"\",\r\n postcroptwoyearone: \"\",\r\n postcroptwoyeartwo: \"\",\r\n postcroptwoyearthree: \"\",\r\n postcropthreeyearone: \"\",\r\n postcropthreeyeartwo: \"\",\r\n postcropthreeyearthree: \"\",\r\n preirr: \"\",\r\n postirr: \"\",\r\n presoilmoisture: false,\r\n preflow: false,\r\n preet: false,\r\n preno: false,\r\n postsoilmoisture: false,\r\n postflow: false,\r\n postet: false,\r\n postno: false,\r\n });\r\n setPreSoilMoistureState(false);\r\n setPreFlowState(false);\r\n setPreETState(false);\r\n setPreNoState(false);\r\n setPostSoilMoistureState(false);\r\n setPostFlowState(false);\r\n setPostETState(false);\r\n setPostNoState(false);\r\n };\r\n const onFieldCopyClick = (field) => {\r\n var cArr = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n if (field.field.name != fields[i].name) {\r\n cArr.push(fields[i]);\r\n }\r\n }\r\n setCopyArr(cArr);\r\n setCopyFieldDetailsOpen(true);\r\n // console.log(\"This is cArr\");\r\n // console.log(cArr);\r\n // console.log(\"This is cArr\");\r\n\r\n /* } else setUserDetailsOpen(false);*/\r\n };\r\n const onPreProjEditClick = (preprojectpump) => {\r\n for (var i = 0; i < preprojectpumps.length; i++) {\r\n if (preprojectpump.preprojectpump.preprojpumpName != preprojectpumps[i].preprojpumpName) {\r\n document.getElementById(\"selectedPreProj-\" + preprojectpumps[i].preprojpumpName).className = \"sc-container sc-userprojects-item-container sc-nohighlight\";\r\n }\r\n }\r\n\r\n //if (document.getElementById(\"selectedPreProj-\" + preprojectpump.preprojectpump.preprojpumpName).id.split(\"-\")[1] == preprojectpump.preprojectpump.preprojpumpName) {\r\n // document.getElementById(\"selectedPreProj-\" + preprojectpump.preprojectpump.preprojpumpName).className = \"sc-container sc-userprojects-item-container sc-highlighted\";\r\n //}\r\n setEditPumpOpen(true);\r\n };\r\n const onPostProjEditClick = (postprojectpump) => {\r\n for (var i = 0; i < postprojectpumps.length; i++) {\r\n if (postprojectpump.postprojectpump.postprojpumpName != postprojectpumps[i].postprojpumpName) {\r\n document.getElementById(\"selectedPostProj-\" + postprojectpumps[i].postprojpumpName).className = \"sc-container sc-userprojects-item-container sc-nohighlight\";\r\n }\r\n }\r\n\r\n //if (document.getElementById(\"selectedPostProj-\" + postprojectpump.postprojectpump.postprojpumpName).id.split(\"-\")[1] == postprojectpump.postprojectpump.postprojpumpName) {\r\n // document.getElementById(\"selectedPostProj-\" + postprojectpump.postprojectpump.postprojpumpName).className = \"sc-container sc-userprojects-item-container sc-highlighted\";\r\n //}\r\n setEditPostPumpOpen(true);\r\n };\r\n const onFieldClickEdit = (field) => {\r\n /* if (fieldJustCreated) {*/\r\n\r\n\r\n /* } else setUserDetailsOpen(false);*/\r\n };\r\n // DRAW START\r\n const onDrawStart = (evt) => {\r\n // ENABLE PARCEL CLICK\r\n window.disableParcelClick = true;\r\n\r\n // ADD DRAWN FEATURE TO MAIN SOURCE\r\n vectorSource.addFeature(evt.feature);\r\n };\r\n\r\n // DRAW END\r\n const onDrawEnd = (evt) => {\r\n window.map.removeInteraction(draw);\r\n\r\n FieldSidebarHelpers.controlDoubleClickZoom(false);\r\n setTimeout(() => {\r\n FieldSidebarHelpers.controlDoubleClickZoom(true);\r\n\r\n // RE-ENABLE PARCEL CLICK\r\n window.disableParcelClick = false;\r\n }, 1000);\r\n\r\n // ADD NEW ITEM\r\n\r\n if (drawType === \"Point\") {\r\n if (addntlPumpClicked) {\r\n if (currentUser.postprojectpumps.length < 5) {\r\n addPostPumpClicked(evt.feature);\r\n } else {\r\n setMaxPostProjPumpsWarn(true);\r\n }\r\n } else if (existPumpClicked) {\r\n if (currentUser.preprojectpumps.length < 5) {\r\n addPumpClicked(evt.feature);\r\n } else {\r\n setMaxPreProjPumpsWarn(true);\r\n }\r\n }\r\n } else {\r\n addNewItem(evt.feature);\r\n }\r\n\r\n // WAIT A BIT TO AVOID MAP CLICK EVENT\r\n setTimeout(() => {\r\n draw = null;\r\n }, 1000);\r\n };\r\n\r\n const setDrawControl = () => {\r\n // REMOVE THE LAST DRAW\r\n if (draw !== null) window.map.removeInteraction(draw);\r\n\r\n // DO NOTHING IF ITS CANCEL\r\n if (drawType === \"Cancel\") {\r\n return;\r\n }\r\n\r\n // GET DRAW TYPE\r\n let localDrawType = drawType;\r\n\r\n // DELETE/REMOVE TOOL\r\n if (localDrawType === \"Eraser\") return;\r\n\r\n if (localDrawType === \"Rectangle\") localDrawType = \"Circle\";\r\n else if (localDrawType === \"Arrow\") localDrawType = \"LineString\";\r\n else if (localDrawType === \"Text\") localDrawType = \"Point\";\r\n else if (localDrawType === \"Point\") localDrawType = \"Point\";\r\n\r\n //console.log('Draw style in set draw control: ', drawStyle);\r\n\r\n // CREATE A NEW DRAW\r\n draw = new Draw({\r\n features: new Collection([]),\r\n type: localDrawType,\r\n geometryFunction: drawType === \"Rectangle\" ? createBox() : undefined,\r\n style: drawStyle,\r\n });\r\n\r\n // END DRAWING\r\n draw.on(\"drawend\", (event) => {\r\n onDrawEnd(event);\r\n });\r\n\r\n // START DRAWING\r\n draw.on(\"drawstart\", (event) => {\r\n onDrawStart(event);\r\n });\r\n // console.log(draw);\r\n //ADD DRAW INTERACTION TO MAP\r\n window.map.addInteraction(draw);\r\n };\r\n\r\n const updateStyle = () => {\r\n setDrawStyle(FieldSidebarHelpers.getDefaultDrawStyle(drawColor));\r\n };\r\n\r\n const getSelectedField = () => {\r\n if (fieldJustCreated) {\r\n setSelectedField[fieldJustCreated];\r\n return fieldJustCreated;\r\n }\r\n return \"\";\r\n //return Object.assign({}, selectedField);\r\n };\r\n const handleReportClick = () => {\r\n \r\n history.push(\"/user/Report\");\r\n document.getElementById(\"ReportsTab\").removeAttribute(\"disabled\");\r\n };\r\n\r\n const canViewReports = () => {\r\n \r\n var enableReportBtns = true;\r\n var fieldElem = document.getElementById(\"viewFieldReportStatusText\");\r\n var prePumpElem = document.getElementById(\"viewPrePumpReportStatusText\");\r\n var postPumpElem = document.getElementById(\"viewPostPumpReportStatusText\");\r\n \r\n if (fields.length > 0) {\r\n if (fieldElem != null) {\r\n \r\n if (fieldElem.value == 1) {\r\n enableReportBtns = false;\r\n if (preprojectpumps.length > 0) {\r\n if (prePumpElem != null) {\r\n if (prePumpElem.value == 1) {\r\n if (postprojectpumps.length > 0) {\r\n if (postPumpElem != null) {\r\n if (postPumpElem.value == 1) {\r\n enableReportBtns = false;\r\n }\r\n else {\r\n enableReportBtns = true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n enableReportBtns = true;\r\n }\r\n }\r\n }\r\n else {\r\n if (postprojectpumps.length > 0) {\r\n if (postPumpElem != null) {\r\n if (postPumpElem.value == 1) {\r\n enableReportBtns = false;\r\n }\r\n else {\r\n enableReportBtns = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n else {\r\n enableReportBtns = true;\r\n }\r\n\r\n\r\n\r\n \r\n \r\n }\r\n\r\n else {\r\n enableReportBtns = true;\r\n }\r\n }\r\n else {\r\n enableReportBtns = true;\r\n }\r\n \r\n return enableReportBtns;\r\n }; \r\n const downloadMap = () => {\r\n window.map.once(\"rendercomplete\", function () {\r\n const mapCanvas = document.createElement(\"canvas\");\r\n const size = window.map.getSize();\r\n mapCanvas.width = size[0];\r\n mapCanvas.height = size[1];\r\n const mapContext = mapCanvas.getContext(\"2d\");\r\n Array.prototype.forEach.call(window.map.getViewport().querySelectorAll(\".ol-layer canvas, canvas.ol-layer\"), function (canvas) {\r\n if (canvas.width > 0) {\r\n const opacity = canvas.parentNode.style.opacity || canvas.style.opacity;\r\n mapContext.globalAlpha = opacity === \"\" ? 1 : Number(opacity);\r\n let matrix;\r\n const transform = canvas.style.transform;\r\n if (transform) {\r\n // Get the transform parameters from the style's transform matrix\r\n matrix = transform\r\n .match(/^matrix\\(([^\\(]*)\\)$/)[1]\r\n .split(\",\")\r\n .map(Number);\r\n } else {\r\n matrix = [parseFloat(canvas.style.width) / canvas.width, 0, 0, parseFloat(canvas.style.height) / canvas.height, 0, 0];\r\n }\r\n // Apply the transform to the export map context\r\n CanvasRenderingContext2D.prototype.setTransform.apply(mapContext, matrix);\r\n const backgroundColor = canvas.parentNode.style.backgroundColor;\r\n if (backgroundColor) {\r\n mapContext.fillStyle = backgroundColor;\r\n mapContext.fillRect(0, 0, canvas.width, canvas.height);\r\n }\r\n mapContext.drawImage(canvas, 0, 0);\r\n }\r\n });\r\n mapContext.globalAlpha = 1;\r\n mapContext.setTransform(1, 0, 0, 1, 0, 0);\r\n\r\n const pdf = new jsPDF(\"landscape\");\r\n pdf.addImage(mapCanvas.toDataURL(\"image/jpeg\"), \"JPEG\", 50, 10, 180, 150);\r\n pdf.save(\"map.pdf\");\r\n });\r\n window.map.renderSync();\r\n };\r\n\r\n const getDefaultArea = (feature) => {\r\n let area = 0;\r\n\r\n let formatArea = function (polygon) {\r\n var area = getArea(polygon);\r\n var output = parseFloat((area / 4047).toFixed(2));\r\n return output;\r\n };\r\n\r\n if (feature) if (feature.getGeometry()) if (feature.getGeometry() instanceof Polygon) area = formatArea(feature.getGeometry());\r\n\r\n return area;\r\n };\r\n\r\n const importGeometries = () => {\r\n if (vectorLayer) {\r\n vectorLayer.getSource().clear();\r\n\r\n fields.map((field) => {\r\n const style = FieldSidebarHelpers.getStyleFromJSON(field.feature.style, field.feature.pointType);\r\n\r\n let feature = helpers.getFeatureFromGeoJSON(field.feature.featureGeoJSON);\r\n\r\n // VISIBILITY\r\n if (feature != null) {\r\n if (field.feature.visible) feature.setStyle(style);\r\n else feature.setStyle(new Style({}));\r\n\r\n feature.values_.label = field.name;\r\n\r\n vectorLayer.getSource().addFeature(feature);\r\n //var coordinates = vectorLayer.getSource().getFeatures()\r\n // .map(function (f) { return f.getGeometry().getCoordinates(); });\r\n\r\n //var extent = boundingExtent(coordinates);\r\n\r\n // LABELS\r\n if (field.feature) {\r\n if (field.feature.visible) FieldSidebarHelpers.setFeatureLabel(field.feature);\r\n }\r\n }\r\n });\r\n\r\n /* vectorLayer.getSource().once('change', function (e) {*/\r\n if (vectorSource.getState() === \"ready\") {\r\n if (vectorSource.getFeatures().length > 0) {\r\n window.map.getView().fit(vectorSource.getExtent(), window.map.getSize());\r\n // console.log(\"now this is the size\", window.map.getSize());\r\n }\r\n }\r\n /* });*/\r\n }\r\n \r\n };\r\n\r\n const importpoints = () => {\r\n if (pinLayer) {\r\n pinLayer.getSource().clear();\r\n\r\n preprojectpumps.map((preprojectpump) => {\r\n if (preprojectpump.preprojfeature != undefined) {\r\n var prefeaturejson = JSON.parse(preprojectpump.preprojfeature);\r\n var prefeature = helpers.getFeatureFromGeoJSON(prefeaturejson.featureGeoJSON);\r\n const prepumpstyle = new Style({\r\n image: new Icon({\r\n anchor: [0.5, 1],\r\n //src: \"http://openlayers.org/en/v3.20.1/examples/data/icon.png\"\r\n src: premarkerpng,\r\n }),\r\n text: new Text({\r\n //text: '',\r\n scale: 1.3,\r\n fill: new Fill({\r\n color: \"#000000\",\r\n }),\r\n }),\r\n });\r\n // console.log(\"this is prepump: \", prefeature);\r\n // VISIBILITY\r\n if (prefeature != null) {\r\n if (prefeaturejson.visible) prefeature.setStyle(prepumpstyle);\r\n else prefeature.setStyle(new Style({}));\r\n\r\n //prefeature.values_.label = preprojectpump.preprojpumpName;\r\n //alert(prefeature.values_.label );\r\n //x = prefeature.values_.label;\r\n\r\n prefeature.style_.text_.text_ = preprojectpump.preprojpumpName;\r\n\r\n pinLayer.getSource().addFeature(prefeature);\r\n\r\n // LABELS\r\n //if (preprojectpump.preprojfeature) {\r\n\r\n // if (prefeaturejson.visible)\r\n // FieldSidebarHelpers.setFeatureLabel(prefeaturejson);\r\n //}\r\n }\r\n }\r\n });\r\n\r\n //if (preprojectpumps.length===0) {\r\n // alert('ok I am here');\r\n // updateStyle();\r\n // importGeometries();\r\n //}\r\n }\r\n };\r\n\r\n const importpointsPost = () => {\r\n if (pinLayer) {\r\n pinLayer.getSource().clear();\r\n importpoints();\r\n\r\n postprojectpumps.map((postprojectpump) => {\r\n \r\n if (postprojectpump.postprojisprepump == \"N\") {\r\n if (postprojectpump.postprojfeature != undefined) {\r\n var postfeaturejson = JSON.parse(postprojectpump.postprojfeature);\r\n var postfeature = helpers.getFeatureFromGeoJSON(postfeaturejson.featureGeoJSON);\r\n const postpumpstyle = new Style({\r\n image: new Icon({\r\n anchor: [0.5, 1],\r\n //src: \"http://openlayers.org/en/v3.20.1/examples/data/icon.png\"\r\n src: postmarkerpng,\r\n }),\r\n text: new Text({\r\n //text: '',\r\n scale: 1.3,\r\n fill: new Fill({\r\n color: \"#000000\",\r\n }),\r\n }),\r\n });\r\n // console.log(\"this is postpump: \", postfeature);\r\n // VISIBILITY\r\n if (postfeature != null) {\r\n if (postfeaturejson.visible) postfeature.setStyle(postpumpstyle);\r\n else postfeature.setStyle(new Style({}));\r\n\r\n postfeature.style_.text_.text_ = postprojectpump.postprojpumpName;\r\n\r\n pinLayer.getSource().addFeature(postfeature);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n //TODO if we want to add a popup on click\r\n const showDrawingOptionsPopup = (feature, evt = null, activeTool = \"none\") => {\r\n // GET FEATURE AND CENTER\r\n var featureId = feature.getProperties().id;\r\n // var item = getFieldByFeatureId(featureId);\r\n\r\n let center = null;\r\n\r\n if (evt === null) {\r\n const geo = new GeoJSON().writeFeatureObject(feature);\r\n var feature = new GeoJSON().readFeature(turf.centroid(geo));\r\n center = feature.getGeometry().flatCoordinates;\r\n } else {\r\n center = evt.coordinate;\r\n }\r\n // console.log(item);\r\n };\r\n\r\n const removeItemFromVectorSource = (idParam) => {\r\n vectorSource.getFeatures().forEach((feature) => {\r\n const id = feature.getProperties().id;\r\n if (id === idParam) vectorSource.removeFeature(feature);\r\n return;\r\n });\r\n };\r\n\r\n const addNewItem = (feature, labelText = null, fromEmmiter = false) => {\r\n // console.log(\"NEW FEATURE\", feature);\r\n\r\n // UID FOR FEATURE\r\n\r\n const featureId = new Date().valueOf().toString();\r\n\r\n // NEW NAME OF FEATURE\r\n let numOfFields = 0;\r\n\r\n if (currentUser) if (currentUser.fields) if (currentUser.fields.length > 0) numOfFields = currentUser.fields.length;\r\n\r\n //if (labelText === null) labelText = \"Field \" + (numOfFields + 1);\r\n\r\n //if (labelText === null) labelText = (fieldJustCreated) ? fieldJustCreated.name : \"Field \" + (numOfFields + 1);\r\n\r\n // GIVE TEXT A CUSTOM MESSAGE\r\n if (drawType === \"Text\") labelText = \"Enter Custom Text\";\r\n\r\n let customStyle = null;\r\n if (!fromEmmiter) {\r\n if (drawType === \"Text\") {\r\n labelText = \"Enter Custom Text\";\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, true, undefined, undefined, feature.getGeometry().getType());\r\n feature.setStyle(customStyle);\r\n } else {\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, undefined, undefined, undefined, feature.getGeometry().getType());\r\n feature.setStyle(customStyle);\r\n }\r\n } else customStyle = feature.getStyle();\r\n\r\n feature.setProperties({\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n drawType: drawType,\r\n isParcel: false,\r\n });\r\n\r\n // CONVERT CIRCLE TO POLYGON (GEOJSON DOESNT SUPPORT CIRCLES)\r\n if (feature.getGeometry() !== undefined && feature.getGeometry().getType() === \"Circle\") {\r\n var polygon = fromCircle(feature.getGeometry());\r\n feature.setGeometry(polygon);\r\n }\r\n\r\n var lonLat = toLonLat(getCenter(feature.getGeometry().getExtent()));\r\n\r\n // CREATE NEW ITEM\r\n const featureInfo = {\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n labelStyle: null,\r\n labelRotation: 0,\r\n featureGeoJSON: new GeoJSON({\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }).writeFeature(feature, {\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }),\r\n style: customStyle === null ? drawStyle : customStyle,\r\n visible: true,\r\n drawType: drawType,\r\n geometryType: feature.getGeometry().getType(),\r\n };\r\n\r\n let prespecies = {\r\n preyearcroponeyearone: \"\",\r\n preyearcroponeyeartwo: \"\",\r\n preyearcroponeyearthree: \"\",\r\n preyearcroptwoyearone: \"\",\r\n preyearcroptwoyeartwo: \"\",\r\n preyearcroptwoyearthree: \"\",\r\n preyearcropthreeyearone: \"\",\r\n preyearcropthreeyeartwo: \"\",\r\n preyearcropthreeyearthree: \"\",\r\n };\r\n let postspecies = {\r\n postyearcroponeyearone: \"\",\r\n postyearcroponeyeartwo: \"\",\r\n postyearcroponeyearthree: \"\",\r\n postyearcroptwoyearone: \"\",\r\n postyearcroptwoyeartwo: \"\",\r\n postyearcroptwoyearthree: \"\",\r\n postyearcropthreeyearone: \"\",\r\n postyearcropthreeyeartwo: \"\",\r\n postyearcropthreeyearthree: \"\",\r\n };\r\n let prewatermgmt = {\r\n preyearsoilmoisture: false,\r\n preyearflow: false,\r\n preyearet: false,\r\n preyearno: false,\r\n };\r\n let postwatermgmt = {\r\n postyearsoilmoisture: false,\r\n postyearflow: false,\r\n postyearet: false,\r\n postyearno: false,\r\n };\r\n let FieldDets = {\r\n precropping: prespecies,\r\n postcropping: postspecies,\r\n preirr: \"\",\r\n postirr: \"\",\r\n prewater: prewatermgmt,\r\n postwater: postwatermgmt,\r\n };\r\n let newUserField = {\r\n name: labelText,\r\n id: crypto.randomUUID(),\r\n feature: JSON.stringify(featureInfo),\r\n userId: currentUser.id,\r\n fielddetails: FieldDets,\r\n acreage: getDefaultArea(feature),\r\n latLon: [lonLat[1], lonLat[0]],\r\n message: \"showAddFieldSuccess\",\r\n };\r\n\r\n setDrawType(\"Cancel\");\r\n\r\n setFieldJustCreated(newUserField);\r\n\r\n if (fromEmmiter) {\r\n // FLAG AS PARCEL\r\n if (feature.get(\"arn\") !== undefined) feature.setProperties({ isParcel: true });\r\n\r\n // ADD FEATURE TO MAIN SOURCE\r\n vectorSource.addFeature(feature);\r\n }\r\n };\r\n\r\n const okPumpImpField = () => {\r\n if (pumpImpChanged === \"0\") {\r\n document.getElementById(\"addpostprojectpump\").style.display = \"block\";\r\n document.getElementById(\"doneallpumps\").style.display = \"block\";\r\n document.getElementById(\"doneprepumps\").style.display = \"none\";\r\n } else {\r\n document.getElementById(\"addpostprojectpump\").style.display = \"none\";\r\n document.getElementById(\"doneallpumps\").style.display = \"none\";\r\n document.getElementById(\"doneprepumps\").style.display = \"none\";\r\n }\r\n \r\n setPumpImpOpen(false);\r\n };\r\n const saveEditField = () => {\r\n resetEditDialogs();\r\n let editUserField = {\r\n name: fieldJustEdited.name,\r\n feature: fieldJustEdited.feature,\r\n userId: fieldJustEdited.id,\r\n acreage: fieldJustEdited.acreage,\r\n message: \"showEditFieldSuccess\",\r\n };\r\n\r\n setSelectedField[editUserField];\r\n };\r\n\r\n const saveNewPostPump = () => {\r\n let newPostProjectPump = {\r\n postprojpumpId: crypto.randomUUID(),\r\n postprojpumpName: postPumpinputs.postpumpName,\r\n postprojfields: postPumpinputs.postfields,\r\n postprojhp: postPumpinputs.posthp,\r\n postprojeff: postPumpinputs.posteff,\r\n postprojhours: postPumpinputs.posthours,\r\n postprojsyspress: postPumpinputs.postsyspress,\r\n postprojpumpress: postPumpinputs.postpumpress,\r\n postprojpumpdepth: postPumpinputs.postpumpdepth,\r\n postprojdispress: postPumpinputs.postdispress,\r\n postprojfricloss: postPumpinputs.postfricloss,\r\n postprojvfd: postPumpinputs.postvfd,\r\n postprojfueltype: postPumpinputs.postfueltype,\r\n postprojfueluse: postPumpinputs.postfueluse,\r\n postprojfeature: postPumpinputs.postfeature,\r\n postprojrenewenrgysel: postPumpinputs.postrenewenrgysel,\r\n postprojrenewenrgycapcty: postPumpinputs.postrenewenrgycapcty,\r\n postprojisprepump: \"N\",\r\n };\r\n\r\n setPostProjectPumpJustCreated(newPostProjectPump);\r\n\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].style_.text_.text_ === undefined) {\r\n pinLayer.getSource().getFeatures()[i].style_.text_.text_ = postPumpinputs.postpumpName;\r\n }\r\n }\r\n\r\n var currentUserpost = Object.assign({}, currentUser);\r\n if (currentUserpost) {\r\n if (currentUserpost.postprojectpumps) {\r\n currentUserpost.postprojectpumps.push(newPostProjectPump);\r\n\r\n dispatch(updateUser(currentUserpost));\r\n } else {\r\n currentUserpost.postprojectpumps = new Array();\r\n currentUserpost.postprojectpumps.push(newPostProjectPump);\r\n\r\n dispatch(updateUser(currentUserpost));\r\n \r\n }\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n\r\n window.map.getView().setZoom(window.map.getView().getZoom() - 5);\r\n setAddPostPumpOpen(false);\r\n };\r\n\r\n const cancelNewPostPump = () => {\r\n if (postmarkerJustCreated) {\r\n postmarkerJustCreated.setStyle(\"\");\r\n pumpVectorSource.removeFeature(postmarkerJustCreated);\r\n\r\n }\r\n\r\n setAddPostPumpOpen(false);\r\n };\r\n /*Add new field to list of fields.\r\n Save current user object. */\r\n const saveCopyFieldDetails = () => {\r\n setCopyFieldDetailsOpen(false);\r\n let selectedfields = [];\r\n var fieldToCopyFrom = null;\r\n var currentUserSelFields = Object.assign({}, currentUser);\r\n for (var i = 0; i < fieldsToCopy.length; i++) {\r\n for (var m = 0; m < currentUserSelFields.fields.length; m++) {\r\n if (fieldsToCopy[i] == currentUserSelFields.fields[m].name) {\r\n selectedfields.push(currentUserSelFields.fields[m]);\r\n }\r\n }\r\n }\r\n\r\n for (var n = 0; n < currentUserSelFields.fields.length; n++) {\r\n if (userDetSelField.field.name == currentUserSelFields.fields[n].name) {\r\n fieldToCopyFrom = currentUserSelFields.fields[n];\r\n }\r\n }\r\n\r\n var currentUserCopyFields = Object.assign({}, currentUser);\r\n\r\n for (var t = 0; t < selectedfields.length; t++) {\r\n for (var z = 0; z < currentUserCopyFields.fields.length; z++) {\r\n if (selectedfields[t].name == currentUserCopyFields.fields[z].name) {\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroponeyearone = fieldToCopyFrom.fielddetails.precropping.preyearcroponeyearone;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroponeyeartwo = fieldToCopyFrom.fielddetails.precropping.preyearcroponeyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroponeyearthree = fieldToCopyFrom.fielddetails.precropping.preyearcroponeyearthree;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroptwoyearone = fieldToCopyFrom.fielddetails.precropping.preyearcroptwoyearone;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroptwoyeartwo = fieldToCopyFrom.fielddetails.precropping.preyearcroptwoyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcroptwoyearthree = fieldToCopyFrom.fielddetails.precropping.preyearcroptwoyearthree;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcropthreeyearone = fieldToCopyFrom.fielddetails.precropping.preyearcropthreeyearone;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcropthreeyeartwo = fieldToCopyFrom.fielddetails.precropping.preyearcropthreeyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.precropping.preyearcropthreeyearthree = fieldToCopyFrom.fielddetails.precropping.preyearcropthreeyearthree;\r\n\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroponeyearone = fieldToCopyFrom.fielddetails.postcropping.postyearcroponeyearone;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroponeyeartwo = fieldToCopyFrom.fielddetails.postcropping.postyearcroponeyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroponeyearthree = fieldToCopyFrom.fielddetails.postcropping.postyearcroponeyearthree;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroptwoyearone = fieldToCopyFrom.fielddetails.postcropping.postyearcroptwoyearone;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroptwoyeartwo = fieldToCopyFrom.fielddetails.postcropping.postyearcroptwoyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcroptwoyearthree = fieldToCopyFrom.fielddetails.postcropping.postyearcroptwoyearthree;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcropthreeyearone = fieldToCopyFrom.fielddetails.postcropping.postyearcropthreeyearone;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcropthreeyeartwo = fieldToCopyFrom.fielddetails.postcropping.postyearcropthreeyeartwo;\r\n currentUserCopyFields.fields[z].fielddetails.postcropping.postyearcropthreeyearthree = fieldToCopyFrom.fielddetails.postcropping.postyearcropthreeyearthree;\r\n\r\n currentUserCopyFields.fields[z].fielddetails.preirr = fieldToCopyFrom.fielddetails.preirr;\r\n currentUserCopyFields.fields[z].fielddetails.postirr = fieldToCopyFrom.fielddetails.postirr;\r\n\r\n currentUserCopyFields.fields[z].fielddetails.prewater.preyearsoilmoisture = fieldToCopyFrom.fielddetails.prewater.preyearsoilmoisture;\r\n currentUserCopyFields.fields[z].fielddetails.prewater.preyearflow = fieldToCopyFrom.fielddetails.prewater.preyearflow;\r\n currentUserCopyFields.fields[z].fielddetails.prewater.preyearet = fieldToCopyFrom.fielddetails.prewater.preyearet;\r\n currentUserCopyFields.fields[z].fielddetails.prewater.preyearno = fieldToCopyFrom.fielddetails.prewater.preyearno;\r\n\r\n currentUserCopyFields.fields[z].fielddetails.postwater.postyearsoilmoisture = fieldToCopyFrom.fielddetails.postwater.postyearsoilmoisture;\r\n currentUserCopyFields.fields[z].fielddetails.postwater.postyearflow = fieldToCopyFrom.fielddetails.postwater.postyearflow;\r\n currentUserCopyFields.fields[z].fielddetails.postwater.postyearet = fieldToCopyFrom.fielddetails.postwater.postyearet;\r\n currentUserCopyFields.fields[z].fielddetails.postwater.postyearno = fieldToCopyFrom.fielddetails.postwater.postyearno;\r\n }\r\n }\r\n }\r\n\r\n dispatch(updateUser(currentUserCopyFields));\r\n };\r\n const saveNewPump = () => {\r\n // resetDialogs();\r\n\r\n var id = crypto.randomUUID();\r\n var postispre = \"U\";\r\n let newPreProjectPump = {\r\n preprojpumpId: id,\r\n preprojpumpName: pumpinputs.prepumpName,\r\n preprojfields: pumpinputs.prefields,\r\n preprojhp: pumpinputs.prehp,\r\n preprojeff: pumpinputs.preeff,\r\n preprojhours: pumpinputs.prehours,\r\n preprojsyspress: pumpinputs.presyspress,\r\n preprojpumpress: pumpinputs.prepumpress,\r\n preprojpumpdepth: pumpinputs.prepumpdepth,\r\n preprojdispress: pumpinputs.predispress,\r\n preprojfricloss: pumpinputs.prefricloss,\r\n preprojvfd: pumpinputs.prevfd,\r\n preprojfueltype: pumpinputs.prefueltype,\r\n preprojfueluse: pumpinputs.prefueluse,\r\n preprojimprovques: pumpinputs.preimprovques,\r\n preprojstayinuseques: pumpinputs.prestayinuseques,\r\n preprojfeature: pumpinputs.prefeature,\r\n postprojhp: pumpinputs.posthp,\r\n postprojeff: pumpinputs.posteff,\r\n postprojhours: pumpinputs.posthours,\r\n postprojsyspress: pumpinputs.postsyspress,\r\n postprojpumpress: pumpinputs.postpumpress,\r\n postprojpumpdepth: pumpinputs.postpumpdepth,\r\n postprojdispress: pumpinputs.postdispress,\r\n postprojfricloss: pumpinputs.postfricloss,\r\n postprojvfd: pumpinputs.postvfd,\r\n postprojfueltype: pumpinputs.postfueltype,\r\n postprojfueluse: pumpinputs.postfueluse,\r\n postprojrenewenrgysel: pumpinputs.postrenewenrgysel,\r\n postprojrenewenrgycapcty: pumpinputs.postrenewenrgycapcty,\r\n };\r\n\r\n setPreProjectPumpJustCreated(newPreProjectPump);\r\n \r\n if (pumpinputs.preimprovques === \"0\" || pumpinputs.prestayinuseques === \"0\") {\r\n postispre = \"Y\";\r\n } else {\r\n postispre = \"U\";\r\n }\r\n\r\n var pumpUnimproved = false;\r\n \r\n if (pumpinputs.prestayinuseques === \"0\" && pumpinputs.preimprovques === \"0\") {\r\n // if the user has selected that the pump will not be improved but will stay in use, we\r\n // want to populate the post-project pump with the same values as the pre-project pump\r\n pumpUnimproved = false;\r\n }\r\n else if (pumpinputs.prestayinuseques === \"1\" && pumpinputs.preimprovques === \"0\") {\r\n pumpUnimproved = false;\r\n }\r\n else if (pumpinputs.prestayinuseques === \"0\" && pumpinputs.preimprovques === \"1\") {\r\n pumpUnimproved = true;\r\n }\r\n \r\n let newPrePostProjectPump = {\r\n postprojpumpId: id,\r\n postprojpumpName: pumpinputs.prepumpName,\r\n postprojfields: pumpinputs.prefields,\r\n postprojhp: pumpUnimproved ? pumpinputs.prehp : pumpinputs.posthp,\r\n postprojeff: pumpUnimproved ? pumpinputs.preeff : pumpinputs.posteff,\r\n postprojhours: pumpUnimproved ? pumpinputs.prehours : pumpinputs.posthours,\r\n postprojsyspress: pumpUnimproved ? pumpinputs.presyspress : pumpinputs.postsyspress,\r\n postprojpumpress: pumpUnimproved ? pumpinputs.prepumpress : pumpinputs.postpumpress,\r\n postprojpumpdepth: pumpUnimproved ? pumpinputs.prepumpdepth : pumpinputs.postpumpdepth,\r\n postprojdispress: pumpUnimproved ? pumpinputs.predispress : pumpinputs.postdispress,\r\n postprojfricloss: pumpUnimproved ? pumpinputs.prefricloss : pumpinputs.postfricloss,\r\n postprojvfd: pumpUnimproved ? pumpinputs.prevfd : pumpinputs.postvfd,\r\n postprojfueltype: pumpUnimproved ? pumpinputs.prefueltype : pumpinputs.postfueltype,\r\n postprojfueluse: pumpUnimproved ? '' : pumpinputs.postfueluse,\r\n postprojfeature: pumpinputs.prefeature,\r\n postprojrenewenrgysel: pumpinputs.postrenewenrgysel,\r\n postprojrenewenrgycapcty: pumpinputs.postrenewenrgycapcty,\r\n postprojisprepump: postispre,\r\n };\r\n \r\n //setPostProjectPumpJustCreated(newPrePostProjectPump)\r\n\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].style_.text_.text_ === undefined) {\r\n pinLayer.getSource().getFeatures()[i].style_.text_.text_ = pumpinputs.prepumpName;\r\n }\r\n }\r\n\r\n var currentUser1 = Object.assign({}, currentUser);\r\n\r\n /* if (currentUser1 && preprojectpumpJustCreated) {*/\r\n if (currentUser1) {\r\n if (currentUser1.preprojectpumps) {\r\n currentUser1.preprojectpumps.push(newPreProjectPump);\r\n if (newPrePostProjectPump.postprojisprepump == \"Y\") {\r\n currentUser1.postprojectpumps.push(newPrePostProjectPump);\r\n }\r\n\r\n dispatch(updateUser(currentUser1));\r\n } else {\r\n currentUser1.preprojectpumps = new Array();\r\n currentUser1.preprojectpumps.push(newPreProjectPump);\r\n if (newPrePostProjectPump.postprojisprepump == \"Y\") {\r\n currentUser1.postprojectpumps = new Array();\r\n currentUser1.postprojectpumps.push(newPrePostProjectPump);\r\n }\r\n\r\n dispatch(updateUser(currentUser1));\r\n \r\n }\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n\r\n \r\n window.map.getView().setZoom(window.map.getView().getZoom() - 5);\r\n setAddPumpOpen(false);\r\n };\r\n const saveNewField = () => {\r\n resetDialogs();\r\n\r\n var currentUserCopy = Object.assign({}, currentUser);\r\n\r\n if (currentUserCopy && fieldJustCreated) {\r\n if (currentUserCopy.fields) {\r\n var fieldNamesArr = new Array();\r\n for (var k = 0; k < currentUserCopy.fields.length; k++) {\r\n fieldNamesArr.push(currentUserCopy.fields[k].name.toUpperCase());\r\n }\r\n\r\n if (currentUserCopy.fields.length < 5) {\r\n if (fieldNamesArr.includes(fieldJustCreated.name.toUpperCase())) {\r\n setFieldNameWarnPopOpen(true);\r\n } else {\r\n currentUserCopy.fields.push(fieldJustCreated);\r\n\r\n dispatch(updateUser(currentUserCopy));\r\n callSuccessPopup();\r\n }\r\n } else {\r\n setMaxFieldsWarn(true);\r\n }\r\n } else {\r\n currentUserCopy.fields = new Array();\r\n currentUserCopy.fields.push(fieldJustCreated);\r\n\r\n dispatch(updateUser(currentUserCopy));\r\n callSuccessPopup();\r\n }\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n };\r\n const resetEditDialogs = () => {\r\n setShowEditNewField(false);\r\n setShowEditName(false);\r\n };\r\n const resetDialogs = () => {\r\n setShowAddNewField(false);\r\n };\r\n const cancelEditField = () => {\r\n resetEditDialogs();\r\n };\r\n const cancelNewField = () => {\r\n if (fieldJustCreated) {\r\n var featureObj = JSON.parse(fieldJustCreated.feature);\r\n\r\n removeItemFromVectorSource(featureObj.id);\r\n resetDialogs();\r\n }\r\n };\r\n const SubmitElecDetails = () => {\r\n\r\n let newElectricityDets = {\r\n annualkwh: (currentUser.electricity != null) ? currentUser.electricity[0] != undefined ? ((currentUser.electricity[0].annualkwh == \"\") || (currentUser.electricity[0].annualkwh != \"\" && currentUser.electricity[0].annualkwh != electricityDetails.kwh && electricityDetails.kwh != \"\")) ? electricityDetails.kwh : currentUser.electricity[0].annualkwh : ((currentUser.electricity.annualkwh != \"\" && currentUser.electricity.annualkwh != electricityDetails.kwh && electricityDetails.kwh != \"\") || (currentUser.electricity.annualkwh == \"\")) ? electricityDetails.kwh : currentUser.electricity.annualkwh : electricityDetails.kwh,\r\n irrgtnhardware: (currentUser.electricity != null) ? currentUser.electricity[0] != undefined ? ((currentUser.electricity[0].irrgtnhardware == \"\") || (currentUser.electricity[0].irrgtnhardware != \"\" && currentUser.electricity[0].irrgtnhardware != electricityDetails.irrhardware && electricityDetails.irrhardware != \"1\")) ? electricityDetails.irrhardware : currentUser.electricity[0].irrgtnhardware : ((currentUser.electricity.irrgtnhardware != \"\" && currentUser.electricity.irrgtnhardware != electricityDetails.irrhardware && electricityDetails.irrhardware != \"1\") || (currentUser.electricity.irrgtnhardware == \"\")) ? electricityDetails.irrhardware : currentUser.electricity.irrgtnhardware : electricityDetails.irrhardware,\r\n };\r\n\r\n var currentUserElec = Object.assign({}, currentUser);\r\n if (currentUserElec) {\r\n currentUserElec.electricity = newElectricityDets;\r\n\r\n setElectricityPopUpOpen(false);\r\n\r\n dispatch(updateUser(currentUserElec));\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n };\r\n const SubmitRenewEnrgy = () => {\r\n \r\n let newRenewEnrgy = {\r\n renewcapcty: (currentUser.renewenrgycapcty != null) ? currentUser.renewenrgycapcty[0] != undefined ? ((currentUser.renewenrgycapcty[0].renewcapcty == \"\") || (currentUser.renewenrgycapcty[0].renewcapcty != \"\" && currentUser.renewenrgycapcty[0].renewcapcty != renewEnrgyDets.capcty && renewEnrgyDets.capcty != \"\")) ? renewEnrgyDets.renewcapcty : currentUser.renewenrgycapcty[0].renewcapcty : ((currentUser.renewenrgycapcty.renewcapcty != \"\" && currentUser.renewenrgycapcty.renewcapcty != renewEnrgyDets.capcty && renewEnrgyDets.capcty != \"\") || (currentUser.renewenrgycapcty.renewcapcty == \"\")) ? renewEnrgyDets.capcty : currentUser.renewenrgycapcty.renewcapcty : renewEnrgyDets.capcty,\r\n \r\n };\r\n\r\n var currentUserRenewEnrgy = Object.assign({}, currentUser);\r\n if (currentUserRenewEnrgy) {\r\n currentUserRenewEnrgy.renewenrgycapcty = newRenewEnrgy;\r\n\r\n setRenewenrgyPopUpOpen(false);\r\n\r\n dispatch(updateUser(currentUserRenewEnrgy));\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n };\r\n \r\n const submitFieldDetails = () => {\r\n setUserDetailsOpen(false);\r\n\r\n // console.log(\"This is field details\", fieldDetails);\r\n\r\n if (!Object.values(fieldDetails).every((x) => x === \"\" || x === undefined)) {\r\n let prespecies = {\r\n preyearcroponeyearone: fieldDetails.precroponeyearone,\r\n preyearcroponeyeartwo: fieldDetails.precroponeyeartwo,\r\n preyearcroponeyearthree: fieldDetails.precroponeyearthree,\r\n preyearcroptwoyearone: fieldDetails.precroptwoyearone,\r\n preyearcroptwoyeartwo: fieldDetails.precroptwoyeartwo,\r\n preyearcroptwoyearthree: fieldDetails.precroptwoyearthree,\r\n preyearcropthreeyearone: fieldDetails.precropthreeyearone,\r\n preyearcropthreeyeartwo: fieldDetails.precropthreeyeartwo,\r\n preyearcropthreeyearthree: fieldDetails.precropthreeyearthree,\r\n };\r\n let postspecies = {\r\n postyearcroponeyearone: fieldDetails.postcroponeyearone,\r\n postyearcroponeyeartwo: fieldDetails.postcroponeyeartwo,\r\n postyearcroponeyearthree: fieldDetails.postcroponeyearthree,\r\n postyearcroptwoyearone: fieldDetails.postcroptwoyearone,\r\n postyearcroptwoyeartwo: fieldDetails.postcroptwoyeartwo,\r\n postyearcroptwoyearthree: fieldDetails.postcroptwoyearthree,\r\n postyearcropthreeyearone: fieldDetails.postcropthreeyearone,\r\n postyearcropthreeyeartwo: fieldDetails.postcropthreeyeartwo,\r\n postyearcropthreeyearthree: fieldDetails.postcropthreeyearthree,\r\n };\r\n let prewatmgmt = {\r\n preyearsoilmoisture: fieldDetails.presoilmoisture,\r\n preyearflow: fieldDetails.preflow,\r\n preyearet: fieldDetails.preet,\r\n preyearno: fieldDetails.preno,\r\n };\r\n let postwatmgmt = {\r\n postyearsoilmoisture: fieldDetails.postsoilmoisture,\r\n postyearflow: fieldDetails.postflow,\r\n postyearet: fieldDetails.postet,\r\n postyearno: fieldDetails.postno,\r\n };\r\n let FieldDets = {\r\n precropping: prespecies,\r\n postcropping: postspecies,\r\n preirr: fieldDetails.preirr,\r\n postirr: fieldDetails.postirr,\r\n prewater: prewatmgmt,\r\n postwater: postwatmgmt,\r\n };\r\n // console.log(\"this is field details\", FieldDets);\r\n // console.log(preSoilMoistureState);\r\n // console.log(preFlowState);\r\n // console.log(preETState);\r\n var currentUserFieldCopy = Object.assign({}, currentUser);\r\n\r\n if (currentUserFieldCopy) {\r\n if (currentUserFieldCopy.fields) {\r\n for (var i = 0; i < currentUserFieldCopy.fields.length; i++) {\r\n if (currentUserFieldCopy.fields[i].name == userDetSelField.field.name) {\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyearone = FieldDets.precropping.preyearcroponeyearone != \"\" ? FieldDets.precropping.preyearcroponeyearone : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyeartwo = FieldDets.precropping.preyearcroponeyeartwo != \"\" ? FieldDets.precropping.preyearcroponeyeartwo : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyearthree = FieldDets.precropping.preyearcroponeyearthree != \"\" ? FieldDets.precropping.preyearcroponeyearthree : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroponeyearthree;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyearone = FieldDets.precropping.preyearcroptwoyearone != \"\" ? FieldDets.precropping.preyearcroptwoyearone : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyeartwo = FieldDets.precropping.preyearcroptwoyeartwo != \"\" ? FieldDets.precropping.preyearcroptwoyeartwo : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyearthree = FieldDets.precropping.preyearcroptwoyearthree != \"\" ? FieldDets.precropping.preyearcroptwoyearthree : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcroptwoyearthree;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyearone = FieldDets.precropping.preyearcropthreeyearone != \"\" ? FieldDets.precropping.preyearcropthreeyearone : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyeartwo = FieldDets.precropping.preyearcropthreeyeartwo != \"\" ? FieldDets.precropping.preyearcropthreeyeartwo : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyearthree = FieldDets.precropping.preyearcropthreeyearthree != \"\" ? FieldDets.precropping.preyearcropthreeyearthree : currentUserFieldCopy.fields[i].fielddetails.precropping.preyearcropthreeyearthree;\r\n\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyearone = FieldDets.postcropping.postyearcroponeyearone != \"\" ? FieldDets.postcropping.postyearcroponeyearone : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyeartwo = FieldDets.postcropping.postyearcroponeyeartwo != \"\" ? FieldDets.postcropping.postyearcroponeyeartwo : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyearthree = FieldDets.postcropping.postyearcroponeyearthree != \"\" ? FieldDets.postcropping.postyearcroponeyearthree : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroponeyearthree;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyearone = FieldDets.postcropping.postyearcroptwoyearone != \"\" ? FieldDets.postcropping.postyearcroptwoyearone : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyeartwo = FieldDets.postcropping.postyearcroptwoyeartwo != \"\" ? FieldDets.postcropping.postyearcroptwoyeartwo : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyearthree = FieldDets.postcropping.postyearcroptwoyearthree != \"\" ? FieldDets.postcropping.postyearcroptwoyearthree : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcroptwoyearthree;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyearone = FieldDets.postcropping.postyearcropthreeyearone != \"\" ? FieldDets.postcropping.postyearcropthreeyearone : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyearone;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyeartwo = FieldDets.postcropping.postyearcropthreeyeartwo != \"\" ? FieldDets.postcropping.postyearcropthreeyeartwo : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyeartwo;\r\n currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyearthree = FieldDets.postcropping.postyearcropthreeyearthree != \"\" ? FieldDets.postcropping.postyearcropthreeyearthree : currentUserFieldCopy.fields[i].fielddetails.postcropping.postyearcropthreeyearthree;\r\n\r\n currentUserFieldCopy.fields[i].fielddetails.preirr = FieldDets.preirr != \"\" ? FieldDets.preirr : currentUserFieldCopy.fields[i].fielddetails.preirr;\r\n currentUserFieldCopy.fields[i].fielddetails.postirr = FieldDets.postirr != \"\" ? FieldDets.postirr : currentUserFieldCopy.fields[i].fielddetails.postirr;\r\n\r\n currentUserFieldCopy.fields[i].fielddetails.prewater.preyearsoilmoisture = preSoilMoistureState ? FieldDets.prewater.preyearsoilmoisture : currentUserFieldCopy.fields[i].fielddetails.prewater.preyearsoilmoisture;\r\n currentUserFieldCopy.fields[i].fielddetails.prewater.preyearflow = preFlowState ? FieldDets.prewater.preyearflow : currentUserFieldCopy.fields[i].fielddetails.prewater.preyearflow;\r\n currentUserFieldCopy.fields[i].fielddetails.prewater.preyearet = preETState ? FieldDets.prewater.preyearet : currentUserFieldCopy.fields[i].fielddetails.prewater.preyearet;\r\n currentUserFieldCopy.fields[i].fielddetails.prewater.preyearno = preNoState ? FieldDets.prewater.preyearno : currentUserFieldCopy.fields[i].fielddetails.prewater.preyearno;\r\n\r\n currentUserFieldCopy.fields[i].fielddetails.postwater.postyearsoilmoisture = postSoilMoistureState ? FieldDets.postwater.postyearsoilmoisture : currentUserFieldCopy.fields[i].fielddetails.postwater.postyearsoilmoisture;\r\n currentUserFieldCopy.fields[i].fielddetails.postwater.postyearflow = postFlowState ? FieldDets.postwater.postyearflow : currentUserFieldCopy.fields[i].fielddetails.postwater.postyearflow;\r\n currentUserFieldCopy.fields[i].fielddetails.postwater.postyearet = postETState ? FieldDets.postwater.postyearet : currentUserFieldCopy.fields[i].fielddetails.postwater.postyearet;\r\n currentUserFieldCopy.fields[i].fielddetails.postwater.postyearno = postNoState ? FieldDets.postwater.postyearno : currentUserFieldCopy.fields[i].fielddetails.postwater.postyearno;\r\n }\r\n }\r\n\r\n // console.log(\"currentUserFromDispatch\", currentUserFieldCopy);\r\n dispatch(updateUser(currentUserFieldCopy));\r\n\r\n fieldData.push(currentUserFieldCopy);\r\n\r\n } else {\r\n currentUserFieldCopy.fields = new Array();\r\n currentUserFieldCopy.fields.push(fieldJustCreated);\r\n currentUserFieldCopy.fields[0].fielddetails = FieldDets;\r\n\r\n dispatch(updateUser(currentUserFieldCopy));\r\n\r\n }\r\n //callSuccessPopup();\r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n }\r\n };\r\n const cancelNewPump = () => {\r\n \r\n if (premarkerJustCreated) {\r\n premarkerJustCreated.setStyle(\"\");\r\n pumpVectorSource.removeFeature(premarkerJustCreated);\r\n\r\n }\r\n \r\n setAddPumpOpen(false);\r\n };\r\n const saveEditPump = () => {\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].style_.text_.text_ === undefined) {\r\n pinLayer.getSource().getFeatures()[i].style_.text_.text_ = pumpinputs.prepumpName;\r\n }\r\n }\r\n \r\n var currentUser2 = Object.assign({}, currentUser);\r\n if (currentUser2) {\r\n for (var j = 0; j < currentUser2.preprojectpumps.length; j++) {\r\n if (currentUser2.preprojectpumps[j].preprojpumpId === selectedPrePump.preprojectpump.preprojpumpId) {\r\n (currentUser2.preprojectpumps[j].preprojpumpName = pumpEditInputs.preeditpumpName === \"\" ? currentUser2.preprojectpumps[j].preprojpumpName : pumpEditInputs.preeditpumpName),\r\n (currentUser2.preprojectpumps[j].preprojfields = pumpEditInputs.preeditfields === \"\" ? currentUser2.preprojectpumps[j].preprojfields : pumpEditInputs.preeditfields),\r\n (currentUser2.preprojectpumps[j].preprojhp = pumpEditInputs.preedithp === \"\" ? currentUser2.preprojectpumps[j].preprojhp : pumpEditInputs.preedithp),\r\n (currentUser2.preprojectpumps[j].preprojeff = pumpEditInputs.preediteff === \"\" ? currentUser2.preprojectpumps[j].preprojeff : pumpEditInputs.preediteff),\r\n (currentUser2.preprojectpumps[j].preprojhours = pumpEditInputs.preedithours === \"\" ? currentUser2.preprojectpumps[j].preprojhours : pumpEditInputs.preedithours),\r\n (currentUser2.preprojectpumps[j].preprojsyspress = pumpEditInputs.preeditsyspress === \"\" ? currentUser2.preprojectpumps[j].preprojsyspress : pumpEditInputs.preeditsyspress),\r\n (currentUser2.preprojectpumps[j].preprojpumpress = pumpEditInputs.preeditpumpress === \"\" ? currentUser2.preprojectpumps[j].preprojpumpress : pumpEditInputs.preeditpumpress),\r\n (currentUser2.preprojectpumps[j].preprojpumpdepth = pumpEditInputs.preeditpumpdepth === \"\" ? currentUser2.preprojectpumps[j].preprojpumpdepth : pumpEditInputs.preeditpumpdepth),\r\n (currentUser2.preprojectpumps[j].preprojdispress = pumpEditInputs.preeditdispress === \"\" ? currentUser2.preprojectpumps[j].preprojdispress : pumpEditInputs.preeditdispress),\r\n (currentUser2.preprojectpumps[j].preprojfricloss = pumpEditInputs.preeditfricloss === \"\" ? currentUser2.preprojectpumps[j].preprojfricloss : pumpEditInputs.preeditfricloss),\r\n (currentUser2.preprojectpumps[j].preprojvfd = pumpEditInputs.preeditvfd === \"\" ? currentUser2.preprojectpumps[j].preprojvfd : pumpEditInputs.preeditvfd),\r\n (currentUser2.preprojectpumps[j].preprojfueltype = pumpEditInputs.preeditfueltype === \"\" ? currentUser2.preprojectpumps[j].preprojfueltype : pumpEditInputs.preeditfueltype),\r\n (currentUser2.preprojectpumps[j].preprojfueluse = pumpEditInputs.preeditfueluse === \"\" ? currentUser2.preprojectpumps[j].preprojfueluse : pumpEditInputs.preeditfueluse),\r\n (currentUser2.preprojectpumps[j].preprojfeature = (pumpEditInputs.preeditfeature === \"\" || pumpEditInputs.preeditfeature===undefined )? currentUser2.preprojectpumps[j].preprojfeature : pumpEditInputs.preeditfeature),\r\n setPreProjectPumpJustCreated(currentUser2.preprojectpumps[j]);\r\n\r\n break;\r\n }\r\n }\r\n\r\n dispatch(updateUser(currentUser2));\r\n \r\n setPumpEditInputs({\r\n preeditpumpName: \"\",\r\n preeditfields: \"\",\r\n preedithp: \"\",\r\n preediteff: \"\",\r\n preedithours: \"\",\r\n preeditsyspress: \"\",\r\n preeditpumpress: \"\",\r\n preeditpumpdepth: \"\",\r\n preeditdispress: \"\",\r\n preeditfricloss: \"\",\r\n preeditvfd: \"\",\r\n preeditfueltype: \"\",\r\n preeditfueluse: \"\",\r\n });\r\n \r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n \r\n \r\n setEditPumpOpen(false);\r\n };\r\n\r\n const saveEditPostPump = () => {\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].style_.text_.text_ === undefined) {\r\n pinLayer.getSource().getFeatures()[i].style_.text_.text_ = postPumpinputs.postpumpName;\r\n }\r\n }\r\n\r\n var currentUserPostEdit = Object.assign({}, currentUser);\r\n if (currentUserPostEdit) {\r\n for (var j = 0; j < currentUserPostEdit.postprojectpumps.length; j++) {\r\n if (currentUserPostEdit.postprojectpumps[j].postprojpumpId === selectedPostPump.postprojectpump.postprojpumpId) {\r\n (currentUserPostEdit.postprojectpumps[j].postprojpumpName = postPumpEditInputs.posteditpumpName === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojpumpName : postPumpEditInputs.posteditpumpName),\r\n (currentUserPostEdit.postprojectpumps[j].postprojfields = postPumpEditInputs.posteditfields === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojfields : postPumpEditInputs.posteditfields),\r\n (currentUserPostEdit.postprojectpumps[j].postprojhp = postPumpEditInputs.postedithp === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojhp : postPumpEditInputs.postedithp),\r\n (currentUserPostEdit.postprojectpumps[j].postprojeff = postPumpEditInputs.postediteff === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojeff : postPumpEditInputs.postediteff),\r\n (currentUserPostEdit.postprojectpumps[j].postprojhours = postPumpEditInputs.postedithours === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojhours : postPumpEditInputs.postedithours),\r\n (currentUserPostEdit.postprojectpumps[j].postprojsyspress = postPumpEditInputs.posteditsyspress === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojsyspress : postPumpEditInputs.posteditsyspress),\r\n (currentUserPostEdit.postprojectpumps[j].postprojpumpress = postPumpEditInputs.posteditpumpress === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojpumpress : postPumpEditInputs.posteditpumpress),\r\n (currentUserPostEdit.postprojectpumps[j].postprojpumpdepth = postPumpEditInputs.posteditpumpdepth === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojpumpdepth : postPumpEditInputs.posteditpumpdepth),\r\n (currentUserPostEdit.postprojectpumps[j].postprojdispress = postPumpEditInputs.posteditdispress === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojdispress : postPumpEditInputs.posteditdispress),\r\n (currentUserPostEdit.postprojectpumps[j].postprojfricloss = postPumpEditInputs.posteditfricloss === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojfricloss : postPumpEditInputs.posteditfricloss),\r\n (currentUserPostEdit.postprojectpumps[j].postprojvfd = postPumpEditInputs.posteditvfd === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojvfd : postPumpEditInputs.posteditvfd),\r\n (currentUserPostEdit.postprojectpumps[j].postprojfueltype = postPumpEditInputs.posteditfueltype === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojfueltype : postPumpEditInputs.posteditfueltype),\r\n (currentUserPostEdit.postprojectpumps[j].postprojfueluse = postPumpEditInputs.posteditfueluse === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojfueluse : postPumpEditInputs.posteditfueluse),\r\n (currentUserPostEdit.postprojectpumps[j].postprojfeature = postPumpEditInputs.posteditfeature === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojfeature : postPumpEditInputs.posteditfeature),\r\n (currentUserPostEdit.postprojectpumps[j].postprojrenewenrgysel = postPumpEditInputs.posteditrenewenrgysel === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojrenewenrgysel : postPumpEditInputs.posteditrenewenrgysel),\r\n (currentUserPostEdit.postprojectpumps[j].postprojrenewenrgycapcty = postPumpEditInputs.posteditrenewenrgycapcty === \"\" ? currentUserPostEdit.postprojectpumps[j].postprojrenewenrgycapcty : postPumpEditInputs.posteditrenewenrgycapcty),\r\n setPostProjectPumpJustCreated(currentUserPostEdit.postprojectpumps[j]);\r\n\r\n break;\r\n }\r\n }\r\n\r\n dispatch(updateUser(currentUserPostEdit));\r\n \r\n setPostPumpEditInputs({\r\n posteditpumpName: \"\",\r\n posteditfields: \"\",\r\n postedithp: \"\",\r\n postediteff: \"\",\r\n postedithours: \"\",\r\n posteditsyspress: \"\",\r\n posteditpumpress: \"\",\r\n posteditpumpdepth: \"\",\r\n posteditdispress: \"\",\r\n posteditfricloss: \"\",\r\n posteditvfd: \"\",\r\n posteditfueltype: \"\",\r\n posteditfueluse: \"\",\r\n posteditrenewenrgysel: \"\",\r\n posteditrenewenrgycapcty: \"\",\r\n });\r\n \r\n } else {\r\n console.log(\"current user or field just created is null\");\r\n }\r\n setEditPostPumpOpen(false);\r\n };\r\n const cancelEditPump = () => {\r\n setEditPumpOpen(false);\r\n };\r\n\r\n const cancelEditPostPump = () => {\r\n setEditPostPumpOpen(false);\r\n };\r\n\r\n const handleEditFieldNameChanged = (value, field) => {\r\n var currentUserEditCopy = Object.assign({}, currentUser);\r\n let editedField = currentUserEditCopy.fields.find((u) => u.name === field.field.name);\r\n editedField.name = value;\r\n setFieldJustEdited(editedField);\r\n dispatch(updateUser(currentUserEditCopy));\r\n };\r\n\r\n const handleEditAcreageChanged = (value, field) => {\r\n var currentUserEditCopy = Object.assign({}, currentUser);\r\n let editedField = currentUserEditCopy.fields.find((u) => u.name === field.field.name);\r\n editedField.acreage = (value != \"\" && value != null && value != undefined) ? parseFloat(value) : 0;\r\n setFieldJustEdited(editedField);\r\n dispatch(updateUser(currentUserEditCopy));\r\n };\r\n\r\n const handleFieldNameChanged = (value) => {\r\n var fieldJustCreatedCopy = Object.assign({}, fieldJustCreated);\r\n fieldJustCreatedCopy.name = value;\r\n setFieldJustCreated(fieldJustCreatedCopy);\r\n };\r\n \r\n const addPumpClicked = (marker, labelText = null, fromEmmiter = false) => {\r\n const featureId = \"marker\" + new Date().valueOf().toString();\r\n if (drawType === \"Text\") labelText = \"Enter Custom Text\";\r\n\r\n let customStyle = styles[\"prepoint\"];\r\n if (!fromEmmiter) {\r\n if (drawType === \"Text\") {\r\n labelText = \"Enter Custom Text\";\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, true, undefined, undefined, marker.getGeometry().getType());\r\n marker.setStyle(customStyle);\r\n } else {\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, undefined, undefined, undefined, marker.getGeometry().getType());\r\n marker.setStyle(customStyle);\r\n }\r\n } else customStyle = marker.getStyle();\r\n\r\n //customStyle = styles[\"point\"];\r\n marker.setProperties({\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n drawType: drawType,\r\n isParcel: false,\r\n });\r\n marker.setStyle(styles[\"prepoint\"]);\r\n const markerInfo = {\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n labelStyle: null,\r\n labelRotation: 0,\r\n featureGeoJSON: new GeoJSON({\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }).writeFeature(marker, {\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }),\r\n style: customStyle === null ? drawStyle : customStyle,\r\n visible: true,\r\n drawType: drawType,\r\n geometryType: marker.getGeometry().getType(),\r\n };\r\n\r\n //setPumpInputs({ ...pumpinputs, prefeature: JSON.stringify(markerInfo) });\r\n setPumpInputs({\r\n prepumpName: \"\",\r\n prefields: [],\r\n prehp: \"\",\r\n preeff: \"\",\r\n prehours: \"\",\r\n presyspress: \"2\",\r\n prepumpress: \"\",\r\n prepumpdepth: \"\",\r\n predispress: \"\",\r\n prefricloss: \"\",\r\n prevfd: \"\",\r\n prefueltype: \"150\",\r\n prefueluse: \"\",\r\n preimprovques: \"1\",\r\n prestayinuseques: \"0\",\r\n prefeature: JSON.stringify(markerInfo),\r\n posthp: \"\",\r\n posteff: \"\",\r\n posthours: \"\",\r\n postsyspress: \"2\",\r\n postpumpress: \"\",\r\n postpumpdepth: \"\",\r\n postdispress: \"\",\r\n postfricloss: \"\",\r\n postvfd: \"\",\r\n postfueltype: \"\",\r\n postfueluse: \"\",\r\n postrenewenrgysel: \"1\",\r\n postrenewenrgycapcty: \"\",\r\n });\r\n\r\n let newMarker = {\r\n name: labelText,\r\n feature: JSON.stringify(markerInfo),\r\n style: customStyle,\r\n };\r\n \r\n pumpVectorSource.addFeature(marker);\r\n setPremarkerJustCreated(marker);\r\n // console.log(\"this is prepumpclicked:\" + marker);\r\n setDrawType(\"Cancel\");\r\n\r\n setAddPumpOpen(true);\r\n };\r\n\r\n const addPostPumpClicked = (postmarker, labelText = null, fromEmmiter = false) => {\r\n const featureId = \"marker\" + new Date().valueOf().toString();\r\n if (drawType === \"Text\") labelText = \"Enter Custom Text\";\r\n\r\n let customStyle = styles[\"postpoint\"];\r\n if (!fromEmmiter) {\r\n if (drawType === \"Text\") {\r\n labelText = \"Enter Custom Text\";\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, true, undefined, undefined, postmarker.getGeometry().getType());\r\n postmarker.setStyle(customStyle);\r\n } else {\r\n customStyle = FieldSidebarHelpers.getDefaultDrawStyle(drawColor, undefined, undefined, undefined, postmarker.getGeometry().getType());\r\n postmarker.setStyle(customStyle);\r\n }\r\n } else customStyle = postmarker.getStyle();\r\n\r\n //customStyle = styles[\"point\"];\r\n postmarker.setProperties({\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n drawType: drawType,\r\n isParcel: false,\r\n });\r\n postmarker.setStyle(styles[\"postpoint\"]);\r\n const postmarkerInfo = {\r\n id: featureId,\r\n label: labelText,\r\n labelVisible: true,\r\n labelStyle: null,\r\n labelRotation: 0,\r\n featureGeoJSON: new GeoJSON({\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }).writeFeature(postmarker, {\r\n dataProjection: \"EPSG:3857\",\r\n featureProjection: \"EPSG:3857\",\r\n }),\r\n style: customStyle === null ? drawStyle : customStyle,\r\n visible: true,\r\n drawType: drawType,\r\n geometryType: postmarker.getGeometry().getType(),\r\n };\r\n\r\n setPostPumpInputs({\r\n postpumpName: \"\",\r\n postfields: [],\r\n posthp: \"\",\r\n posteff: \"\",\r\n posthours: \"\",\r\n postsyspress: \"2\",\r\n postpumpress: \"\",\r\n postpumpdepth: \"\",\r\n postdispress: \"\",\r\n postfricloss: \"\",\r\n postvfd: \"\",\r\n postfueltype: \"\",\r\n postfueluse: \"\",\r\n postfeature: JSON.stringify(postmarkerInfo),\r\n postrenewenrgysel: \"1\",\r\n postrenewenrgycapcty: \"\",\r\n });\r\n\r\n let newPostMarker = {\r\n name: labelText,\r\n feature: JSON.stringify(postmarkerInfo),\r\n style: customStyle,\r\n };\r\n\r\n pumpVectorSource.addFeature(postmarker);\r\n setPostmarkerJustCreated(postmarker);\r\n setDrawType(\"Cancel\");\r\n\r\n setAddPostPumpOpen(true);\r\n };\r\n\r\n const handleAddnlPumpLocsChanged = (value) => {\r\n setPumpImpChanged(value);\r\n };\r\n const handlePumpNameChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prepumpName: value });\r\n };\r\n\r\n const handleFieldsListChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prefields: value });\r\n };\r\n\r\n const handleHpChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prehp: value });\r\n };\r\n\r\n const handleHoursChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prehours: value });\r\n };\r\n const handleEfficiencyChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, preeff: value });\r\n };\r\n const handleSystemPressureChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, presyspress: value });\r\n };\r\n\r\n const handlePrePumpPressChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prepumpress: value });\r\n };\r\n const handlePrePumpDepthChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prepumpdepth: value });\r\n };\r\n const handlePreDisPressChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, predispress: value });\r\n };\r\n const handlePreFricLossChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prefricloss: value });\r\n };\r\n const handleVFDChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prevfd: value });\r\n };\r\n const handleFuelTypeChanged = (value) => {\r\n \r\n setPumpInputs({ ...pumpinputs, prefueltype: value });\r\n };\r\n const handleFuelUseChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prefueluse: value });\r\n };\r\n\r\n const handlePumpImprovQuesChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, preimprovques: value });\r\n };\r\n const handlePumpStayInUseQuesChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, prestayinuseques: value });\r\n };\r\n\r\n const handleHpPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, posthp: value });\r\n };\r\n\r\n const handleHoursPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, posthours: value });\r\n };\r\n const handleEfficiencyPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, posteff: value });\r\n };\r\n const handleSystemPressurePostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postsyspress: value });\r\n };\r\n const handlePumpPressPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postpumpress: value });\r\n };\r\n const handlePumpDepthPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postpumpdepth: value });\r\n };\r\n const handleDisPressPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postdispress: value });\r\n };\r\n const handleFricLossPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postfricloss: value });\r\n };\r\n const handleVFDPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postvfd: value });\r\n };\r\n const handleFuelTypePostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postfueltype: value });\r\n };\r\n const handleFuelUsePostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postfueluse: value });\r\n };\r\n const handleRenewEnrgySelPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postrenewenrgysel: value });\r\n };\r\n const handleRenewEnrgyCapctyPostChanged = (value) => {\r\n setPumpInputs({ ...pumpinputs, postrenewenrgycapcty: value });\r\n };\r\n\r\n const handlePostPumpNameChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postpumpName: value });\r\n };\r\n\r\n const handlePostFieldsListChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postfields: value });\r\n };\r\n\r\n const handlePostHpChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, posthp: value });\r\n };\r\n\r\n const handlePostHoursChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, posthours: value });\r\n };\r\n const handlePostEfficiencyChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, posteff: value });\r\n };\r\n const handlePostSystemPressureChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postsyspress: value });\r\n };\r\n const handlePostPumpPressChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postpumpress: value });\r\n };\r\n const handlePostPumpDepthChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postpumpdepth: value });\r\n };\r\n const handlePostDisPressChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postdispress: value });\r\n };\r\n const handlePostFricLossChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postfricloss: value });\r\n };\r\n const handlePostVFDChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postvfd: value });\r\n };\r\n const handlePostFuelTypeChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postfueltype: value });\r\n };\r\n const handlePostFuelUseChanged = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postfueluse: value });\r\n };\r\n const handlePostRenewenergySelect = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postrenewenrgysel: value });\r\n };\r\n const handlePostRenewenergySelectCapcty = (value) => {\r\n setPostPumpInputs({ ...postPumpinputs, postrenewenrgycapcty: value });\r\n };\r\n\r\n const handleEditPumpNameChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditpumpName: value });\r\n };\r\n\r\n const handleEditFieldsListChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditfields: value });\r\n };\r\n\r\n const handleEditHpChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preedithp: value });\r\n };\r\n\r\n const handleEditHoursChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preedithours: value });\r\n };\r\n const handleEditEfficiencyChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preediteff: value });\r\n };\r\n const handleEditSystemPressureChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditsyspress: value });\r\n };\r\n const handleEditPrePumpPressChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditpumpress: value });\r\n };\r\n const handleEditPrePumpDepthChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditpumpdepth: value });\r\n };\r\n const handleEditPreDisPressChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditdispress: value });\r\n };\r\n const handleEditPreFricLossChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditfricloss: value });\r\n };\r\n const handleEditFuelTypeChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditfueltype: value });\r\n };\r\n const handleEditFuelUseChanged = (value) => {\r\n setPumpEditInputs({ ...pumpEditInputs, preeditfueluse: value });\r\n };\r\n\r\n const handleEditPostPumpNameChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditpumpName: value });\r\n };\r\n\r\n const handleEditPostFieldsListChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditfields: value });\r\n };\r\n\r\n const handleEditPostHpChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, postedithp: value });\r\n };\r\n\r\n const handleEditPostHoursChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, postedithours: value });\r\n };\r\n const handleEditPostEfficiencyChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, postediteff: value });\r\n };\r\n const handleEditPostSystemPressureChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditsyspress: value });\r\n };\r\n const handleEditPostPumpPressChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditpumpress: value });\r\n };\r\n const handleEditPostPumpDepthChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditpumpdepth: value });\r\n };\r\n const handleEditPostDisPressChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditdispress: value });\r\n };\r\n const handleEditPostFricLossChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditfricloss: value });\r\n };\r\n const handleEditPostVFDChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditvfd: value });\r\n };\r\n const handleEditPostFuelTypeChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditfueltype: value });\r\n };\r\n const handleEditPostFuelUseChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditfueluse: value });\r\n };\r\n\r\n const handleEditPostRenewEnrgySelChanged = (value) => {\r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditrenewenrgysel: value });\r\n };\r\n\r\n const handleEditPostRenewEnrgyCapctyChanged = (value) => {\r\n \r\n setPostPumpEditInputs({ ...postPumpEditInputs, posteditrenewenrgycapcty: value });\r\n };\r\n\r\n const callSuccessPopup = () => {\r\n setSuccessPopOpen(true);\r\n };\r\n\r\n const handlePreSpeciesCropOneYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroponeyearone: value });\r\n };\r\n const handlePreSpeciesCropOneYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroponeyeartwo: value });\r\n };\r\n const handlePreSpeciesCropOneYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroponeyearthree: value });\r\n };\r\n const handlePreSpeciesCropTwoYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroptwoyearone: value });\r\n };\r\n const handlePreSpeciesCropTwoYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroptwoyeartwo: value });\r\n };\r\n const handlePreSpeciesCropTwoYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precroptwoyearthree: value });\r\n };\r\n const handlePreSpeciesCropThreeYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precropthreeyearone: value });\r\n };\r\n const handlePreSpeciesCropThreeYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precropthreeyeartwo: value });\r\n };\r\n const handlePreSpeciesCropThreeYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, precropthreeyearthree: value });\r\n };\r\n const fieldDetailsValidation = () => {\r\n var valid = false;\r\n for (var i = 0; i < fields.length; i++) {\r\n \r\n if (fields[i].fielddetails != undefined) {\r\n var fieldPrecropping = false;\r\n var fieldPostcropping = false;\r\n var fieldPreIrr = false;\r\n var fieldPostIrr = false;\r\n var fieldPreWater = false;\r\n var fieldPostWater = false;\r\n if (fields[i].fielddetails.precropping != undefined) {\r\n\r\n\r\n if (!Object.values(fields[i].fielddetails.precropping).every(x => (x === '' || x === undefined))) {\r\n fieldPrecropping = true;\r\n }\r\n else {\r\n fieldPrecropping = false;\r\n }\r\n }\r\n\r\n if (fields[i].fielddetails.postcropping != undefined) {\r\n\r\n if (!Object.values(fields[i].fielddetails.postcropping).every(x => (x === '' || x === undefined))) {\r\n fieldPostcropping = true;\r\n }\r\n\r\n else {\r\n fieldPostcropping = false;\r\n }\r\n }\r\n\r\n if (fields[i].fielddetails.preirr != undefined) {\r\n if (!Object.values(fields[i].fielddetails.preirr).every(x => x === '' || x === undefined)) {\r\n fieldPreIrr = true;\r\n }\r\n else {\r\n fieldPreIrr = false;\r\n }\r\n\r\n }\r\n\r\n if (fields[i].fielddetails.postirr != undefined) {\r\n if (!Object.values(fields[i].fielddetails.postirr).every(x => x === '' || x === undefined)) {\r\n fieldPostIrr = true;\r\n\r\n }\r\n else {\r\n fieldPostIrr = false;\r\n }\r\n }\r\n\r\n //if (fields[i].fielddetails.prewater != undefined) {\r\n // if (!Object.values(fields[i].fielddetails.prewater).every(x => x === false || x === undefined)) {\r\n // fieldPreWater = true;\r\n // }\r\n // else {\r\n // fieldPreWater = false;\r\n // }\r\n //}\r\n\r\n if (fields[i].fielddetails.postwater != undefined) {\r\n if (!Object.values(fields[i].fielddetails.postwater).every(x => x === false || x === undefined)) {\r\n fieldPostWater = true;\r\n }\r\n else {\r\n fieldPostWater = false;\r\n }\r\n }\r\n if (fieldPrecropping && fieldPostcropping && fieldPreIrr && fieldPostIrr && fieldPostWater) {\r\n document.getElementById(\"completeStatus-\" + fields[i].name).style.display = \"inline-block\";\r\n document.getElementById(\"inCompleteStatus-\" + fields[i].name).style.display = \"none\";\r\n \r\n valid = true;\r\n }\r\n else {\r\n document.getElementById(\"inCompleteStatus-\" + fields[i].name).style.display = \"inline-block\";\r\n document.getElementById(\"completeStatus-\" + fields[i].name).style.display = \"none\";\r\n \r\n valid = false;\r\n }\r\n\r\n \r\n }\r\n }\r\n if (valid) {\r\n document.getElementById(\"viewFieldReportStatusText\").value = 1;\r\n }\r\n else {\r\n document.getElementById(\"viewFieldReportStatusText\").value = 0;\r\n }\r\n setFieldsComplete(valid);\r\n\r\n };\r\n const PreProjPumpsValidation = () => {\r\n\r\n var valid = false;\r\n for (var j = 0; j < preprojectpumps.length; j++) {\r\n\r\n document.getElementById(\"prePumpInCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"inline-block\";\r\n document.getElementById(\"prepumpCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"none\";\r\n document.getElementById(\"elecUseNotValid\").style.display = \"none\";\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"none\";\r\n if (preprojectpumps[j].preprojpumpName != '' && preprojectpumps[j].preprojfields != '' &&\r\n preprojectpumps[j].preprojhp != '' && preprojectpumps[j].preprojeff != '' &&\r\n ((preprojectpumps[j].preprojsyspress == \"1\") ? preprojectpumps[j].preprojpumpress != '' : (preprojectpumps[j].preprojpumpdepth != '' && preprojectpumps[j].preprojdispress != '' && preprojectpumps[j].preprojfricloss != '')) &&\r\n (preprojectpumps[j].preprojfueltype == \"151\" ? (preprojectpumps[j].preprojfueluse != '' || preprojectpumps[j].preprojfueluse == '') : preprojectpumps[j].preprojfueluse != '')) {\r\n\r\n valid = true;\r\n document.getElementById(\"prePumpInCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"none\";\r\n document.getElementById(\"prepumpCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"inline-block\";\r\n\r\n\r\n }\r\n else {\r\n valid = false;\r\n document.getElementById(\"prePumpInCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"inline-block\";\r\n document.getElementById(\"prepumpCompleteStatus-\" + preprojectpumps[j].preprojpumpName).style.display = \"none\";\r\n\r\n }\r\n }\r\n if (preprojectpumps.filter((u) => u.preprojfueltype === \"151\").length > 0) {\r\n\r\n\r\n if (currentUser.electricity != null) {\r\n if (currentUser.electricity[0] != undefined) {\r\n\r\n if (currentUser.electricity[0].annualkwh != \"\") {\r\n\r\n valid = true;\r\n\r\n document.getElementById(\"elecUseNotValid\").style.display = \"none\";\r\n\r\n }\r\n else {\r\n\r\n valid = false;\r\n document.getElementById(\"elecUseNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n }\r\n else if (currentUser.electricity.annualkwh != \"\") {\r\n\r\n valid = true;\r\n\r\n document.getElementById(\"elecUseNotValid\").style.display = \"none\";\r\n }\r\n else {\r\n\r\n valid = false;\r\n document.getElementById(\"elecUseNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n\r\n }\r\n else {\r\n\r\n valid = false;\r\n document.getElementById(\"elecUseNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n\r\n\r\n }\r\n if ((preprojectpumps.filter((u) => u.postprojfueltype === \"155\" || u.postprojfueltype === \"156\" || u.postprojfueltype === \"157\").length > 0)) {\r\n\r\n\r\n if (currentUser.renewenrgycapcty != null) {\r\n if (currentUser.renewenrgycapcty != undefined) {\r\n\r\n if (currentUser.renewenrgycapcty.renewcapcty != \"\") {\r\n\r\n valid = true;\r\n\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"none\";\r\n\r\n }\r\n else {\r\n\r\n valid = false;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n }\r\n }\r\n else {\r\n valid = false;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n\r\n } else {\r\n\r\n valid = true;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"none\";\r\n\r\n\r\n\r\n }\r\n if (valid) {\r\n document.getElementById(\"viewPrePumpReportStatusText\").value = 1;\r\n }\r\n else {\r\n document.getElementById(\"viewPrePumpReportStatusText\").value = 0;\r\n }\r\n setPrePumpsComplete(valid);\r\n \r\n };\r\n const PostProjPumpsValidation = () => {\r\n var valid = false;\r\n for (var m = 0; m < postprojectpumps.length; m++) {\r\n\r\n \r\n \r\n if (postprojectpumps[m].postprojpumpName != '' && postprojectpumps[m].postprojfields != '' &&\r\n postprojectpumps[m].postprojhp != '' && postprojectpumps[m].postprojeff != '' &&\r\n ((postprojectpumps[m].postprojsyspress == \"1\") ? postprojectpumps[m].postprojpumpress != '' : (postprojectpumps[m].postprojpumpdepth != '' && postprojectpumps[m].postprojdispress != '' && postprojectpumps[m].postprojfricloss != '')) &&\r\n (postprojectpumps[m].postprojrenewenrgysel == \"0\" ? (postprojectpumps[m].postprojrenewenrgycapcty != '') : (postprojectpumps[m].postprojrenewenrgycapcty == '' || postprojectpumps[m].postprojrenewenrgycapcty != '')) && ((postprojectpumps[m].postprojisprepump == \"N\") ? (postprojectpumps[m].postprojfueltype != 155 && postprojectpumps[m].postprojfueltype != 156 && postprojectpumps[m].postprojfueltype != 157) ? postprojectpumps[m].postprojfueluse != '' : postprojectpumps[m].postprojfueluse == '':postprojectpumps[m].postprojfueluse == '')) {\r\n\r\n \r\n valid = true;\r\n document.getElementById(\"postPumpInCompleteStatus-\" + postprojectpumps[m].postprojpumpName).style.display = \"none\";\r\n document.getElementById(\"postpumpCompleteStatus-\" + postprojectpumps[m].postprojpumpName).style.display = \"inline-block\";\r\n \r\n }\r\n else {\r\n valid = false;\r\n document.getElementById(\"postPumpInCompleteStatus-\" + postprojectpumps[m].postprojpumpName).style.display = \"inline-block\";\r\n document.getElementById(\"postpumpCompleteStatus-\" + postprojectpumps[m].postprojpumpName).style.display = \"none\";\r\n \r\n }\r\n }\r\n if ((postprojectpumps.filter((u) => u.postprojfueltype === \"155\" || u.postprojfueltype === \"156\" || u.postprojfueltype === \"157\").length > 0)) {\r\n\r\n\r\n if (currentUser.renewenrgycapcty != null) {\r\n if (currentUser.renewenrgycapcty != undefined) {\r\n\r\n if (currentUser.renewenrgycapcty.renewcapcty != \"\") {\r\n\r\n valid = true;\r\n\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"none\";\r\n\r\n }\r\n else {\r\n\r\n valid = false;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n }\r\n }\r\n else {\r\n valid = false;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"inline-block\";\r\n\r\n }\r\n }\r\n else {\r\n\r\n valid = true;\r\n document.getElementById(\"renewEnrgyNotValid\").style.display = \"none\";\r\n\r\n }\r\n\r\n \r\n if (valid) {\r\n document.getElementById(\"viewPostPumpReportStatusText\").value = 1;\r\n }\r\n else {\r\n document.getElementById(\"viewPostPumpReportStatusText\").value = 0;\r\n }\r\n setPostPumpsComplete(valid);\r\n };\r\n const handlePreSpeciesCrop1VerticalChanged = (value,precrop,postcrop,userDetsObj) => {\r\n \r\n setFieldDetails({\r\n precroponeyearone: value,\r\n precroponeyeartwo: value,\r\n precroponeyearthree: value,\r\n precroptwoyearone: precrop.croptwoyearone,\r\n precroptwoyeartwo: precrop.croptwoyeartwo ,\r\n precroptwoyearthree: precrop.croptwoyearthree,\r\n precropthreeyearone: precrop.cropthreeyearone,\r\n precropthreeyeartwo: precrop.cropthreeyeartwo,\r\n precropthreeyearthree: precrop.cropthreeyearthree,\r\n postcroponeyearone: postcrop.postcroponeyearone, \r\n postcroponeyeartwo: postcrop.postcroptwoyearone,\r\n postcroponeyearthree: postcrop.postcropthreeyearone,\r\n postcroptwoyearone: postcrop.postcroptwoyearone,\r\n postcroptwoyeartwo: postcrop.postcroptwoyeartwo, \r\n postcroptwoyearthree: postcrop.postcroptwoyearthree,\r\n postcropthreeyearone: postcrop.postcropthreeyearone,\r\n postcropthreeyeartwo: postcrop.postcropthreeyeartwo,\r\n postcropthreeyearthree: postcrop.postcropthreeyearthree,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n };\r\n const handlePreSpeciesCrop2VerticalChanged = (value, precrop, postcrop, userDetsObj) => {\r\n setFieldDetails({\r\n precroponeyearone: precrop.croponeyearone,\r\n precroponeyeartwo: precrop.croponeyeartwo,\r\n precroponeyearthree: precrop.croponeyearthree,\r\n precroptwoyearone: value,\r\n precroptwoyeartwo: value,\r\n precroptwoyearthree: value,\r\n precropthreeyearone: precrop.cropthreeyearone,\r\n precropthreeyeartwo: precrop.cropthreeyeartwo,\r\n precropthreeyearthree: precrop.cropthreeyearthree,\r\n postcroponeyearone: postcrop.postcroponeyearone,\r\n postcroponeyeartwo: postcrop.postcroponeyeartwo,\r\n postcroponeyearthree: postcrop.postcroponeyearthree,\r\n postcroptwoyearone: postcrop.postcroptwoyearone,\r\n postcroptwoyeartwo: postcrop.postcroptwoyeartwo,\r\n postcroptwoyearthree: postcrop.postcroptwoyearthree,\r\n postcropthreeyearone: postcrop.postcropthreeyearone,\r\n postcropthreeyeartwo: postcrop.postcropthreeyeartwo,\r\n postcropthreeyearthree: postcrop.postcropthreeyearthree,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n };\r\n const handlePreSpeciesCrop3VerticalChanged = (value, precrop, postcrop, userDetsObj) => {\r\n setFieldDetails({\r\n precroponeyearone: precrop.croponeyearone,\r\n precroponeyeartwo: precrop.croponeyeartwo,\r\n precroponeyearthree: precrop.croponeyearthree,\r\n precroptwoyearone: precrop.croptwoyearone,\r\n precroptwoyeartwo: precrop.croptwoyeartwo,\r\n precroptwoyearthree: precrop.croptwoyearthree,\r\n precropthreeyearone: value,\r\n precropthreeyeartwo: value,\r\n precropthreeyearthree: value,\r\n postcroponeyearone: postcrop.postcroponeyearone,\r\n postcroponeyeartwo: postcrop.postcroponeyeartwo,\r\n postcroponeyearthree: postcrop.postcroponeyearthree,\r\n postcroptwoyearone: postcrop.postcroptwoyearone,\r\n postcroptwoyeartwo: postcrop.postcroptwoyeartwo,\r\n postcroptwoyearthree: postcrop.postcroptwoyearthree,\r\n postcropthreeyearone: postcrop.postcropthreeyearone,\r\n postcropthreeyeartwo: postcrop.postcropthreeyeartwo,\r\n postcropthreeyearthree: postcrop.postcropthreeyearthree,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n\r\n };\r\n const handlePostSpeciesCrop1VerticalChanged = (value, precrop, postcrop, userDetsObj) => {\r\n setFieldDetails({\r\n precroponeyearone: precrop.croponeyearone,\r\n precroponeyeartwo: precrop.croponeyeartwo,\r\n precroponeyearthree: precrop.croponeyearthree,\r\n precroptwoyearone: precrop.croptwoyearone,\r\n precroptwoyeartwo: precrop.croptwoyeartwo,\r\n precroptwoyearthree: precrop.croptwoyearthree,\r\n precropthreeyearone: precrop.cropthreeyearone,\r\n precropthreeyeartwo: precrop.cropthreeyeartwo,\r\n precropthreeyearthree: precrop.cropthreeyearthree,\r\n postcroponeyearone: value,\r\n postcroponeyeartwo: value,\r\n postcroponeyearthree: value,\r\n postcroptwoyearone: postcrop.postcroptwoyearone,\r\n postcroptwoyeartwo: postcrop.postcroptwoyeartwo,\r\n postcroptwoyearthree: postcrop.postcroptwoyearthree,\r\n postcropthreeyearone: postcrop.postcropthreeyearone,\r\n postcropthreeyeartwo: postcrop.postcropthreeyeartwo,\r\n postcropthreeyearthree: postcrop.postcropthreeyearthree,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n\r\n };\r\n const handlePostSpeciesCrop2VerticalChanged = (value, precrop, postcrop, userDetsObj) => {\r\n setFieldDetails({\r\n precroponeyearone: precrop.croponeyearone,\r\n precroponeyeartwo: precrop.croponeyeartwo,\r\n precroponeyearthree: precrop.croponeyearthree,\r\n precroptwoyearone: precrop.croptwoyearone,\r\n precroptwoyeartwo: precrop.croptwoyeartwo,\r\n precroptwoyearthree: precrop.croptwoyearthree,\r\n precropthreeyearone: precrop.cropthreeyearone,\r\n precropthreeyeartwo: precrop.cropthreeyeartwo,\r\n precropthreeyearthree: precrop.cropthreeyearthree,\r\n postcroponeyearone: postcrop.postcroponeyearone,\r\n postcroponeyeartwo: postcrop.postcroponeyeartwo,\r\n postcroponeyearthree: postcrop.postcroponeyearthree,\r\n postcroptwoyearone: value,\r\n postcroptwoyeartwo: value,\r\n postcroptwoyearthree: value,\r\n postcropthreeyearone: postcrop.postcropthreeyearone,\r\n postcropthreeyeartwo: postcrop.postcropthreeyeartwo,\r\n postcropthreeyearthree: postcrop.postcropthreeyearthree,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n\r\n };\r\n const handlePostSpeciesCrop3VerticalChanged = (value, precrop, postcrop, userDetsObj) => {\r\n setFieldDetails({\r\n precroponeyearone: precrop.croponeyearone,\r\n precroponeyeartwo: precrop.croponeyeartwo,\r\n precroponeyearthree: precrop.croponeyearthree,\r\n precroptwoyearone: precrop.croptwoyearone,\r\n precroptwoyeartwo: precrop.croptwoyeartwo,\r\n precroptwoyearthree: precrop.croptwoyearthree,\r\n precropthreeyearone: precrop.cropthreeyearone,\r\n precropthreeyeartwo: precrop.cropthreeyeartwo,\r\n precropthreeyearthree: precrop.cropthreeyearthree,\r\n postcroponeyearone: postcrop.postcroponeyearone,\r\n postcroponeyeartwo: postcrop.postcroponeyeartwo,\r\n postcroponeyearthree: postcrop.postcroponeyearthree,\r\n postcroptwoyearone: postcrop.postcroptwoyearone,\r\n postcroptwoyeartwo: postcrop.postcroptwoyeartwo,\r\n postcroptwoyearthree: postcrop.postcroptwoyearthree,\r\n postcropthreeyearone: value,\r\n postcropthreeyeartwo: value,\r\n postcropthreeyearthree: value,\r\n preirr: userDetsObj.preirrmethod,\r\n postirr: userDetsObj.postirrmethod,\r\n presoilmoisture: userDetsObj.presm,\r\n preflow: userDetsObj.preflow,\r\n preet: userDetsObj.preet,\r\n preno: userDetsObj.preno,\r\n postsoilmoisture: userDetsObj.postsm,\r\n postflow: userDetsObj.postflow,\r\n postet: userDetsObj.postet,\r\n postno: userDetsObj.postno,\r\n\r\n });\r\n\r\n\r\n\r\n };\r\n const handlePostSpeciesCropOneYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroponeyearone: value });\r\n };\r\n\r\n const handlePostSpeciesCropOneYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroponeyeartwo: value });\r\n };\r\n const handlePostSpeciesCropOneYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroponeyearthree: value });\r\n };\r\n const handlePostSpeciesCropTwoYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroptwoyearone: value });\r\n };\r\n const handlePostSpeciesCropTwoYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroptwoyeartwo: value });\r\n };\r\n const handlePostSpeciesCropTwoYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcroptwoyearthree: value });\r\n };\r\n const handlePostSpeciesCropThreeYearOneChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcropthreeyearone: value });\r\n };\r\n const handlePostSpeciesCropThreeYearTwoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcropthreeyeartwo: value });\r\n };\r\n const handlePostSpeciesCropThreeYearThreeChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postcropthreeyearthree: value });\r\n };\r\n const handlePreIrrChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, preirr: value });\r\n };\r\n const handlePostIrrChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postirr: value });\r\n };\r\n const handlePreSoilMoistureChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, presoilmoisture: value });\r\n setPreSoilMoistureState(true);\r\n //setFieldDetails({ presoilmoisture: value, preflow: userDetSelField.field.fielddetails.prewater.preyearflow, preet: userDetSelField.field.fielddetails.prewater.preyearet, preyearno: false });\r\n };\r\n const handlePreFlowChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, preflow: value });\r\n setPreFlowState(true);\r\n //setFieldDetails({ presoilmoisture: userDetSelField.field.fielddetails.prewater.preyearsoilmoisture, preflow: value, preet: userDetSelField.field.fielddetails.prewater.preyearet, preyearno: false});\r\n };\r\n const handlePreETChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, preet: value });\r\n setPreETState(true);\r\n //setFieldDetails({ presoilmoisture: userDetSelField.field.fielddetails.prewater.preyearsoilmoisture, preflow: userDetSelField.field.fielddetails.prewater.preyearflow, preet: value, preyearno: false });\r\n };\r\n const handlePreNoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, preno: value });\r\n setPreNoState(true);\r\n //setFieldDetails({ presoilmoisture: userDetSelField.field.fielddetails.prewater.preyearsoilmoisture, preflow: userDetSelField.field.fielddetails.prewater.preyearflow, preet: userDetSelField.field.fielddetails.prewater.preyearet, preyearno: false });\r\n };\r\n\r\n const handlePostSoilMoistureChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postsoilmoisture: value });\r\n setPostSoilMoistureState(true);\r\n };\r\n const handlePostFlowChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postflow: value });\r\n setPostFlowState(true);\r\n };\r\n const handlePostETChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postet: value });\r\n setPostETState(true);\r\n };\r\n const handlePostNoChanged = (value) => {\r\n setFieldDetails({ ...fieldDetails, postno: value });\r\n setPostNoState(true);\r\n };\r\n\r\n const handleTotalKWHChanged = (value) => {\r\n setElectricityDetails({ ...electricityDetails, kwh: value });\r\n };\r\n\r\n const handleRenewCapctyChanged = (value) => {\r\n setRenewEnrgyDets({ ...renewEnrgyDets, capcty : value });\r\n };\r\n const handleIrrHardwareChanged = (value) => {\r\n setElectricityDetails({ ...electricityDetails, irrhardware: value });\r\n };\r\n\r\n const handleCopyFieldsListChange = (value) => {\r\n setFieldsToCopy(value);\r\n };\r\n const getAddNewFieldForm = () => {\r\n if (fieldJustCreated) {\r\n return ;\r\n } else return null;\r\n };\r\n\r\n const getPumpImpForm = () => {\r\n return ;\r\n };\r\n const getCopyFieldDetailsForm = () => {\r\n return ;\r\n };\r\n const getFieldDetailsForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const getElectricityFormEdit = () => {\r\n \r\n return ;\r\n };\r\n const getRenewEnrgyCapctyFormEdit = () => {\r\n\r\n return ;\r\n };\r\n const getAddNewPostPumpForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n const getAddNewPumpForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n const getEditNewPumpForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n const getEditNewPostPumpForm = () => {\r\n return (\r\n \r\n );\r\n };\r\n const getEditFieldForm = () => {\r\n return ;\r\n };\r\n\r\n const deleteSelectedField = (field) => {\r\n setShowDeleteField(true);\r\n\r\n if (confirm(\"Are you sure you want to delete field: \" + field.field.name) == true) {\r\n var currentUserdeleteCopy = Object.assign({}, currentUser);\r\n currentUserdeleteCopy.fields = currentUserdeleteCopy.fields.filter((u) => u.name != field.field.name);\r\n // console.log(\"currentUserdeleteCopy.fields: \", currentUserdeleteCopy.fields);\r\n dispatch(updateUser(currentUserdeleteCopy));\r\n setFields(helpers.serializeFeature(currentUserdeleteCopy.fields));\r\n for (var i = 0; i < vectorLayer.getSource().getFeatures().length; i++) {\r\n if (vectorLayer.getSource().getFeatures()[i].values_.id == field.field.feature.id) {\r\n vectorLayer.getSource().getFeatures()[i].setStyle(new Style({}));\r\n vectorLayer.getSource().removeFeature(vectorLayer.getSource().getFeatures()[i]);\r\n vectorLayer.setVisible(false);\r\n vectorLayer.setVisible(true);\r\n // pinLayer.getSource().refresh();\r\n break;\r\n }\r\n }\r\n } else {\r\n }\r\n };\r\n const deleteSelectedPrePump = (preprojectpump) => {\r\n if (confirm(\"Are you sure you want to delete this Pre-Project Pump: \" + preprojectpump.preprojectpump.preprojpumpName) == true) {\r\n var currentUserdeleteCopy = Object.assign({}, currentUser);\r\n\r\n var preprojfeature = JSON.parse(preprojectpump.preprojectpump.preprojfeature);\r\n\r\n currentUserdeleteCopy.preprojectpumps = currentUserdeleteCopy.preprojectpumps.filter((u) => u.preprojpumpName != preprojectpump.preprojectpump.preprojpumpName);\r\n\r\n // console.log(\"currentUserdeleteCopy.fields: \", currentUserdeleteCopy.preprojectpumps);\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].values_.id == preprojfeature.id) {\r\n pinLayer.getSource().getFeatures()[i].setStyle(new Style({}));\r\n pinLayer.getSource().removeFeature(pinLayer.getSource().getFeatures()[i]);\r\n // pinLayer.getSource().refresh();\r\n break;\r\n }\r\n }\r\n\r\n dispatch(updateUser(currentUserdeleteCopy));\r\n setPreProjectPumps(helpers.serializeFeature(currentUserdeleteCopy.preprojectpumps));\r\n currentUserdeleteCopy.preprojectpumps = currentUserdeleteCopy.preprojectpumps.filter((u) => u.preprojfueltype === \"151\");\r\n \r\n window.map.getView().setZoom(window.map.getView().getZoom() - 5);\r\n } else {\r\n }\r\n };\r\n\r\n const deleteSelectedPostPump = (postprojectpump) => {\r\n if (confirm(\"Are you sure you want to delete this Post Project Pump: \" + postprojectpump.postprojectpump.postprojpumpName) == true) {\r\n var currentUserdeleteCopyPost = Object.assign({}, currentUser);\r\n \r\n var postprojfeature = JSON.parse(postprojectpump.postprojectpump.postprojfeature);\r\n\r\n currentUserdeleteCopyPost.postprojectpumps = currentUserdeleteCopyPost.postprojectpumps.filter((u) => u.postprojpumpName != postprojectpump.postprojectpump.postprojpumpName);\r\n\r\n // console.log(\"currentUserdeleteCopyPost.fields: \", currentUserdeleteCopyPost.postprojectpumps);\r\n for (var i = 0; i < pinLayer.getSource().getFeatures().length; i++) {\r\n if (pinLayer.getSource().getFeatures()[i].values_.id == postprojfeature.id) {\r\n pinLayer.getSource().getFeatures()[i].setStyle(new Style({}));\r\n pinLayer.getSource().removeFeature(pinLayer.getSource().getFeatures()[i]);\r\n // pinLayer.getSource().refresh();\r\n break;\r\n }\r\n }\r\n\r\n dispatch(updateUser(currentUserdeleteCopyPost));\r\n setPostProjectPumps(helpers.serializeFeature(currentUserdeleteCopyPost.postprojectpumps));\r\n\r\n window.map.getView().setZoom(window.map.getView().getZoom() - 5);\r\n } else {\r\n }\r\n };\r\n\r\n var saveNewFieldButton = helpers.getDialogButton(\"Save\", saveNewField);\r\n var cancelNewFieldButton = helpers.getDialogButton(\"Cancel\", cancelNewField);\r\n\r\n var saveEditFieldButton = helpers.getDialogButton(\"Save\", saveEditField);\r\n var cancelEditFieldButton = helpers.getDialogButton(\"Cancel\", cancelEditField);\r\n\r\n var okPumpImpButton = helpers.getDialogButton(\"Ok\", okPumpImpField);\r\n\r\n var submitFieldDetailsButton = helpers.getDialogButton(\"Save\", submitFieldDetails);\r\n\r\n var submitElecDetailsButton = helpers.getDialogButton(\"Save\", SubmitElecDetails);\r\n var submitRenewEnrgyButton = helpers.getDialogButton(\"Save\", SubmitRenewEnrgy);\r\n var addNewFieldButtons = [cancelNewFieldButton, saveNewFieldButton];\r\n var editNewFieldButtons = [cancelEditFieldButton, saveEditFieldButton];\r\n\r\n var saveNewPumpButton = helpers.getDialogButton(\"Save\", saveNewPump);\r\n var cancelNewPumpButton = helpers.getDialogButton(\"Cancel\", cancelNewPump);\r\n var saveCopyFieldDetailsButton = helpers.getDialogButton(\"Save\", saveCopyFieldDetails);\r\n var saveNewPostPumpButton = helpers.getDialogButton(\"Save\", saveNewPostPump);\r\n var cancelNewPostPumpButton = helpers.getDialogButton(\"Cancel\", cancelNewPostPump);\r\n\r\n var saveEditPumpButton = helpers.getDialogButton(\"Save\", saveEditPump);\r\n var cancelEditPumpButton = helpers.getDialogButton(\"Cancel\", cancelEditPump);\r\n\r\n var saveEditPostPumpButton = helpers.getDialogButton(\"Save\", saveEditPostPump);\r\n var cancelEditPostPumpButton = helpers.getDialogButton(\"Cancel\", cancelEditPostPump);\r\n\r\n var addNewPumpButtons = [cancelNewPumpButton, saveNewPumpButton];\r\n var addNewPostPumpButtons = [cancelNewPostPumpButton, saveNewPostPumpButton];\r\n\r\n var editNewPumpButtons = [cancelEditPumpButton, saveEditPumpButton];\r\n\r\n var editNewPostPumpButtons = [cancelEditPostPumpButton, saveEditPostPumpButton];\r\n\r\n var pumpImpButtons = [okPumpImpButton];\r\n\r\n var fieldDetsButtons = [submitFieldDetailsButton];\r\n\r\n var electricityPopupButtons = [submitElecDetailsButton];\r\n var renewenrgyPopupButtons = [submitRenewEnrgyButton];\r\n var copyfieldDetsButtons = [saveCopyFieldDetailsButton];\r\n // console.log(\"Current User Obj : \", currentUser);\r\n // console.log(\"Selected Field : \", getSelectedField());\r\n // console.log(\"Fields : \", fields);\r\n //console.log(\"PreProjectPumps : \", preprojectpumps);\r\n //console.log(\"PostProjectPumps : \", postprojectpumps);\r\n\r\n // console.log(\"Electricty Details : \", electricityDetails);\r\n return (\r\n \r\n setShowEditName(true)}\r\n style={{marginTop: '10px'}}\r\n >\r\n {currentUser.agopname}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*todo: split this off into its own component*/}\r\n \r\n \r\n \r\n \r\n Fields with Management\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {`Fields: ${fields.length} of 5`}\r\n
\r\n
\r\n \r\n
\r\n {/*{fields.length > 0 && (*/}\r\n {/*
*/}\r\n {/* {userDetSelField ? \"Selected Field: \" + userDetSelField.field.name : \"\"}*/}\r\n {/*
*/}\r\n {/*)}*/}\r\n
\r\n
\r\n {fields && fields.map((field, index) => (\r\n
\r\n
\r\n
\r\n
{field.name}
\r\n
Data Entry Complete
\r\n
Data Entry Incomplete
\r\n \r\n
\r\n \r\n {\r\n onFieldClick({ field });\r\n ClearFieldDetailsState();\r\n setUserDetailsOpen(true);\r\n }}\r\n >\r\n Management\r\n \r\n \r\n {\r\n onFieldClick({ field });\r\n onFieldCopyClick({ field });\r\n }}>\r\n \r\n \r\n \r\n {\r\n onFieldClick({ field });\r\n setSelectedField({ field });\r\n }}>\r\n \r\n \r\n \r\n {\r\n deleteSelectedField({ field });\r\n }}>\r\n \r\n \r\n \r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n \r\n ))}\r\n\r\n {fields.length == 0 && (\r\n
\r\n Use the drawing tools and colors above to add fields. You may add up to 5 fields per project.\r\n
\r\n )}\r\n \r\n
\r\n
\r\n
\r\n\r\n {/*todo: split this off into its own component*/}\r\n \r\n \r\n \r\n \r\n Pre-Project Pumps\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {`Pre-Project Pumps: ${preprojectpumps.length} of 5`}\r\n
\r\n
\r\n \r\n
\r\n {/*{preprojectpumps.length > 0 && (*/}\r\n {/*
*/}\r\n {/* {preprojectpumpJustCreated ? \"Selected Pre-Project Pump: \" + preprojectpumpJustCreated.preprojpumpName : \"\"}*/}\r\n {/*
*/}\r\n {/*)}*/}\r\n
\r\n\r\n
\r\n {preprojectpumps &&\r\n preprojectpumps.map((preprojectpump, index) => (\r\n
\r\n
\r\n \r\n
\r\n
{preprojectpump.preprojpumpName}
\r\n
Data Entry Complete
\r\n
Data Entry Incomplete
\r\n \r\n
\r\n \r\n\r\n {\r\n setSelectedPrePump({ preprojectpump });\r\n onPreProjEditClick({ preprojectpump });\r\n }}>\r\n \r\n \r\n \r\n {\r\n deleteSelectedPrePump({ preprojectpump });\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n ))\r\n }\r\n
\r\n\r\n {preprojectpumps.length < 5 && (\r\n {\r\n setAddPumpInstrPopOpen(true);\r\n setExistPumpClicked(true);\r\n setAddntlPumpClicked(false);\r\n onButtonBarClick(\"Point\");\r\n }}\r\n color=\"primary\"\r\n >\r\n +   Add Existing Irrigation Pump\r\n \r\n )}\r\n
\r\n
\r\n
\r\n\r\n {/*todo: split this off into its own component*/}\r\n \r\n \r\n \r\n \r\n Post-Project Pumps\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {`Post-Project Pumps: ${postprojectpumps.length} of 5`}\r\n
\r\n
\r\n \r\n
\r\n {/*{postprojectpumps.length > 0 && (*/}\r\n {/*
*/}\r\n {/* {postprojectpumpJustCreated && postprojectpumpJustCreated.postprojisprepump == \"N\" ? \"Selected Post-Project Pump: \" + postprojectpumpJustCreated.postprojpumpName : \"\"}*/}\r\n {/*
*/}\r\n {/*)}*/}\r\n
\r\n\r\n
\r\n {postprojectpumps &&\r\n postprojectpumps.map((postprojectpump, index) => (\r\n
\r\n
\r\n
\r\n
{postprojectpump.postprojpumpName}
\r\n
Data Entry Complete
\r\n
Data Entry Incomplete
\r\n \r\n
\r\n \r\n {\r\n setSelectedPostPump({ postprojectpump });\r\n onPostProjEditClick({ postprojectpump });\r\n }}>\r\n \r\n \r\n \r\n {\r\n deleteSelectedPostPump({ postprojectpump });\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n ))\r\n }\r\n
\r\n\r\n {postprojectpumps.length < 5 && (\r\n {\r\n setExistPumpClicked(false);\r\n setAddntlPumpClicked(true);\r\n onButtonBarClick(\"Point\");\r\n }}\r\n color=\"primary\"\r\n >\r\n +   Add Proposed Irrigation Pump\r\n \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Next Steps\r\n \r\n \r\n \r\n \r\n \r\n
Enter the electricity usage for your current irrigation system
\r\n {currentUser.preprojectpumps.filter((u) => u.preprojfueltype === \"151\").length > 0 ? {\r\n setElectricityPopUpOpen(true);\r\n }}\r\n color=\"primary\"\r\n >\r\n Electricity Use\r\n :null}\r\n
Enter the capacity for your proposed renewable energy installation
\r\n {(currentUser.postprojectpumps.filter((u) => u.postprojfueltype === \"155\" || u.postprojfueltype === \"156\" || u.postprojfueltype === \"157\").length > 0) || (currentUser.preprojectpumps.filter((u) => u.postprojfueltype === \"155\" || u.postprojfueltype === \"156\" || u.postprojfueltype === \"157\").length > 0) ? {\r\n setRenewenrgyPopUpOpen(true);\r\n }}\r\n color=\"primary\"\r\n >\r\n Renewable Energy\r\n : null}\r\n {\r\n handleReportClick();\r\n }}\r\n color=\"primary\"\r\n disabled={\r\n canViewReports()\r\n }\r\n >\r\n View Reports\r\n \r\n\r\n {\r\n downloadMap();\r\n }}\r\n color=\"primary\"\r\n >\r\n Download Map\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n// IMPORT ALL IMAGES\r\nconst images = importAllImages(require.context(\"./images\", false, /\\.(png|jpe?g|svg)$/));\r\nfunction importAllImages(r) {\r\n let images = {};\r\n // console.log('importing all images');\r\n r.keys().map((item, index) => (images[item.replace(\"./\", \"\")] = r(item)));\r\n return images;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport * as helpers from \"../helpers/helpers\";\r\nimport DynamicDialog from \"./Dialogs/Dialog\";\r\nimport \"./PropertyReportClick.css\";\r\nimport { unmountComponentAtNode } from 'react-dom';\r\nclass PropertyReportClick extends Component {\r\n constructor(props) {\r\n super(props);\r\n // LISTEN FOR MAP TO MOUNT\r\n window.emitter.addListener(\"mapLoaded\", () => this.onMapLoad());\r\n\r\n this.onMapLoad = this.onMapLoad.bind(this);\r\n this.convertHTMLTable = this.convertHTMLTable.bind(this);\r\n\r\n this.state = {\r\n propInfo: null,\r\n feature: null,\r\n showDialog: false,\r\n dialogHtml: \"\",\r\n parsedHtml: {} // holds parsed htm info as key/val pairs using column keys and row values\r\n };\r\n }\r\n\r\n onMapLoad() {\r\n // LISTEN FOR MAP CLICK\r\n window.map.on(\"singleclick\", evt => {\r\n var root = document.getElementById(\"portal-root\");\r\n unmountComponentAtNode(root);\r\n // SCALE\r\n if (helpers.getMapScale() > 20000) return;\r\n });\r\n\r\n // LISTEN FOR CALLS\r\n let that = this;\r\n window.emitter.addListener(\"showPropertyReport\", coords =>\r\n this.onPropertyEmitter(coords, that)\r\n );\r\n }\r\n\r\n /*\r\n parse html table response\r\n strip tags from column and keys, then turn column and keys into object of key value pairs\r\n @returns: an object of key value pairs, or {}\r\n */\r\n convertHTMLTable(html) {\r\n let obj = {};\r\n if (html.length > 0) {\r\n let tableRows = html.split(\"= 3) {\r\n let thArr = tableRows[1].split(\"\"); // will be an array of column names stripped of the html open tags\r\n let tdArr = tableRows[2].split(\"\"); // will be an array of row values stripped of the html open tags\r\n\r\n if (thArr.length == tdArr.length) {\r\n for (let i = 0; i < thArr.length; i++) {\r\n if (i > 0) {\r\n let col = thArr[i].split(\"\");\r\n let row = tdArr[i].split(\"\");\r\n if (col.length > 0 && row.length > 0) {\r\n obj[col[0]] = row[0];\r\n }\r\n }\r\n }\r\n // console.log(obj);\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n makePrettyLine(Name, Value) {\r\n if (Value) {\r\n return (\"\" + Name + \": \" + Value + \"
\");\r\n }\r\n else {\r\n return ('');\r\n }\r\n }\r\n\r\n prettyFormat(objArray) {\r\n // console.log(objArray);\r\n let html = '';// \"
\";\r\n\r\n // let SOILT = objArray['MUNAME']; //Soil Texture\r\n // html += this.makePrettyLine(\"Soil Texture\", SOILT);\r\n\r\n let MUNAME = objArray['MUNAME']; //Map unit name\r\n html += this.makePrettyLine(\"Map Unit Name\", MUNAME);\r\n\r\n let MUSYM = objArray['MUSYM']; //map unit map label\r\n html += this.makePrettyLine(\"Map Unit Label\", MUSYM);\r\n\r\n\r\n let DRCLASSDCD = objArray['DRCLASSDCD']; //drainage class - dominant condition\r\n html += this.makePrettyLine(\"Drainage Class\", DRCLASSDCD);\r\n\r\n\r\n let BROCKDEPMIN = objArray['BROCKDEPMIN']; //Bedrock Depth - Minimum (if \"\" set to 0)\r\n if (BROCKDEPMIN == '') {\r\n BROCKDEPMIN = \"0\";\r\n }\r\n html += this.makePrettyLine(\"Minimum Bedrock Depth\", BROCKDEPMIN);\r\n\r\n let FLODFREQMAX = objArray['FLODFREQMAX']; //Flooding Frequency - Maximum\r\n html += this.makePrettyLine(\"Maximum Flooding Frequency\", FLODFREQMAX);\r\n\r\n return (\r\n \r\n\r\n );\r\n\r\n \r\n }\r\n /**\r\n * This method should get all layers that are visible.\r\n * Get those layers feature info from wmsSource.getFeatureInfoUrl\r\n * Display all information found for each visible layer\r\n */\r\n onPropertyEmitter = (coords, that) => {\r\n //console.log(coords);\r\n //OK so coordinates are not entirely based on things on the map, also a function of where the pan-window is looking\r\n //probably a combination of the loaded layer and the mouse click\r\n\r\n if(coords == null)\r\n {\r\n coords = new Array();\r\n coords.push(-13425831.684807662);\r\n coords.push(4419721.974711653);\r\n }\r\n\r\n\r\n if (coords) {\r\n if (window.map)\r\n window.map.getLayers().forEach(layer => {\r\n let title = layer.get(\"title\");\r\n\r\n if (title)\r\n\r\n // if (layer.getVisible()) //would only show soils on click if show sols was visible\r\n {\r\n if (typeof layer.getSource().getFeatureInfoUrl === \"function\") {\r\n // console.log(layer.getSource().getFeatureInfoUrl());\r\n let viewResolution = window.map.getView().getResolution();\r\n let infoUrl = layer\r\n .getSource()\r\n .getFeatureInfoUrl(coords, viewResolution, \"EPSG:3857\", {\r\n INFO_FORMAT: \"text/html\"\r\n });\r\n //console.log(infoUrl)\r\n let url =\r\n \"https://SDMDataAccess.sc.egov.usda.gov/Spatial/SDM.wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=MapunitPoly&LAYERS=MapunitPoly&INFO_FORMAT=text%2Fhtml&X=50&Y=50&SRS=EPSG%3A3857&STYLES=&WIDTH=101&HEIGHT=101&BBOX=\";\r\n url += coords[0] + \",\" + coords[1];\r\n }\r\n\r\n if (title === \"Soils Imagery\") {\r\n //the reason the \"soils on click seem off\" is because it's not based on the click but on the window's bounding box\r\n //behavior people seem to want is a 'soils on click WHERE I CLICKED' so instead of a bbox the whole map view, fake one around the click?\r\n\r\n let bb = [coords[0] - .01, coords[1] - .01, coords[0] + .01, coords[1] + .01]\r\n\r\n /* let bb = window.map\r\n .getView()\r\n .calculateExtent(window.map.getSize());*/\r\n\r\n let url =\r\n \"https://SDMDataAccess.sc.egov.usda.gov/Spatial/SDM.wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=mapunitpolyextended&LAYERS=MapunitPoly&INFO_FORMAT=text%2Fhtml&X=50&Y=50&SRS=EPSG%3A3857&STYLES=&WIDTH=101&HEIGHT=101&BBOX=\";\r\n url += bb[0] + \",\" + bb[1] + \",\" + bb[2] + \",\" + bb[3];\r\n\r\n if (url) {\r\n fetch(url)\r\n .then(function (response) {\r\n return response.text();\r\n })\r\n .then(function (html) {\r\n let parsedHtmlObj = that.convertHTMLTable(html);\r\n that.setState({\r\n showDialog: true,\r\n dialogHtml: { html },\r\n parsedHtml: parsedHtmlObj\r\n });\r\n });\r\n }\r\n\r\n\r\n // console.log(bb);\r\n // console.log('2',url);\r\n }\r\n }\r\n });\r\n } else {\r\n console.log(\"coords bad\");\r\n }\r\n };\r\n\r\n addInfoToPopUp = (wmsURL, clickEvt = null) => {\r\n helpers.getJSON(wmsURL, result => {\r\n // console.log(result);\r\n if (result.features.length === 0) return;\r\n });\r\n };\r\n\r\n resetDialogs = () => {\r\n this.setState({ showDialog: false });\r\n var root = document.getElementById(\"portal-root\");\r\n unmountComponentAtNode(root);\r\n };\r\n\r\n render() {\r\n var okButton = helpers.getDialogButton(\"Ok\", this.resetDialogs);\r\n var dialogButtons = [okButton];\r\n\r\n return (\r\n \r\n {this.prettyFormat(this.state.parsedHtml)\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PropertyReportClick;","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport Button from \"components/CustomButtons/Button\";\r\nimport DynamicDialog from \"components/Dialogs/Dialog\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { updateUser } from \"../../../actions/user\";\r\n\r\n\r\nimport styles from \"assets/jss/material-dashboard-react/components/dialogStyle\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport SaveLoadButtons from \"components/Field/SaveLoadButtons\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function WelcomePopup(props) {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const currentUser = useSelector((state) => state.user);\r\n const fields = currentUser.fields;\r\n\r\n const shouldBeOpen = () => {\r\n return currentUser.agopname.length === 0 &&\r\n (!fields || fields.length === 0) &&\r\n (!currentUser.preprojectpumps || currentUser.preprojectpumps.length === 0) &&\r\n (!currentUser.postprojectpumps || currentUser.postprojectpumps.length === 0);\r\n }\r\n\r\n const [dialogOpen, setDialogOpen] = useState(shouldBeOpen());\r\n const [agrOpName, SetAgrOpName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setDialogOpen(shouldBeOpen());\r\n }, [currentUser]);\r\n\r\n const startButton = (\r\n saveAgOperation()}\r\n label={\"Start!\"}\r\n color={\"primary\"}\r\n >\r\n {\"Start!\"}\r\n \r\n );\r\n\r\n const saveAgOperation = () => {\r\n if (document.getElementById(\"agrOperName\").value != \"\") {\r\n var currentUserAgOp = Object.assign({}, currentUser);\r\n if (currentUserAgOp) {\r\n\r\n currentUserAgOp.agopname = agrOpName;\r\n dispatch(updateUser(currentUserAgOp));\r\n\r\n }\r\n setDialogOpen(false);\r\n document.getElementById(\"agopNameReq\").style.display = \"none\";\r\n }\r\n else {\r\n document.getElementById(\"agopNameReq\").style.display = \"block\"\r\n }\r\n };\r\n const handleAgOpernChange=(event) => {\r\n SetAgrOpName(event.target.value);\r\n \r\n \r\n\r\n };\r\n \r\n return (\r\n \r\n \r\n
\r\n

Welcome to the State Water Efficiency and Enhancement Programs (SWEEP) Project Assessment Tool.

\r\n

\r\n SWEEP is a grant program designed to help California farmers and ranchers estimate the water and greenhouse\r\n gas (GHG) impacts of farm-level irrigation projects.
Users should have the following\r\n items on hand and accessible before completing the tool:\r\n

\r\n
    \r\n
  • Project location information
  • \r\n
  • Current and future crop types, and optionally acreage and predominant soil type
  • \r\n
  • Current and future irrigation methods
  • \r\n
  • \r\n Information on irrigation pumps that are part of the project, including impacted pumps'\r\n Overall Pumping Efficiency (OPE), well depth, and motor horsepower\r\n
  • \r\n
  • Annual energy use information for pumps associated with the project
  • \r\n
\r\n

\r\n Users will need undergo several steps to complete this assessment tool:\r\n

\r\n
    \r\n
  1. Identify the field(s) that the proposed project will impact
  2. \r\n
  3. Identify what the current and future crops will be on the impacted field
  4. \r\n
  5. Input the current and future irrigation system type for each field
  6. \r\n
  7. Identify the location and pump specification of the pumps that are part of this project
  8. \r\n
  9. Input the energy use of the pumps that are impacting this project
  10. \r\n
  11. Complete, save, and download the project report
  12. \r\n
\r\n
\r\n \r\n \r\n Enter the name of your agricultural operation to begin:\r\n \r\n * \r\n \r\n\r\n \r\n \r\n Please enter the name of your agricultural operation to continue\r\n \r\n \r\n\r\n \r\n Or, \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\n\r\nimport { Card, IconButton, TextField } from \"@material-ui/core\";\r\nimport { Search } from \"@material-ui/icons\";\r\n\r\nimport { transform } from \"ol/proj.js\";\r\n\r\nimport \"./LocationSearchbar.css\"\r\n\r\nexport default function LocationSearchbar (props) {\r\n const [searchText, setSearchText] = useState(\"\");\r\n\r\n const handleTextChange = (event) => {\r\n setSearchText(event.target.value);\r\n }\r\n\r\n const checkKeyPress = (e) => {\r\n if (e.key ==='Enter' || e.key ==='NumpadEnter' )\r\n {\r\n e.preventDefault();\r\n searchLocation();\r\n }\r\n }\r\n\r\n const searchLocation = (event) => {\r\n fetch(\"https://dev.virtualearth.net/REST/v1/Locations?query=\" + encodeURIComponent(searchText) + \"&key=AodaDoXgognX4vhPqaouMx44frx2G9a5Swio1r9aGK0iOiUNyYu9jnqpHMT0_1hL\",\r\n {\r\n method: 'GET', \r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n ).then((response) => {\r\n return response.blob();\r\n }).then((blob) => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onloadend = function () {\r\n try {\r\n var base64data = reader.result;\r\n const json = atob(base64data.substring(29));\r\n const result = JSON.parse(json);\r\n var lat = result.resourceSets[0].resources[0].geocodePoints[0].coordinates[0];\r\n var long = result.resourceSets[0].resources[0].geocodePoints[0].coordinates[1];\r\n var addressType = result.resourceSets[0].resources[0].entityType;\r\n window.map.getView().setCenter(transform([long, lat], 'EPSG:4326', 'EPSG:3857'));\r\n window.map.getView().setZoom(getCorrectZoomLevel(addressType));\r\n }\r\n catch (error) {\r\n console.log('location search error: ', error);\r\n }\r\n }\r\n });\r\n };\r\n\r\n const getCorrectZoomLevel = (addressType)=> {\r\n switch (addressType) {\r\n case 'PopulatedPlace':\r\n return 12;\r\n case 'neighborhood':\r\n return 17;\r\n case 'route':\r\n return 17;\r\n case 'sublocality':\r\n return 16;\r\n case 'locality':\r\n return 14;\r\n case 'postal_code':\r\n return 14;\r\n case 'administrative_area_level_3':\r\n return 14;\r\n case 'administrative_area_level_2':\r\n return 10;\r\n case 'administrative_area_level_1':\r\n return 7;\r\n case 'Address':\r\n return 20;\r\n\r\n default:\r\n return 20;\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\n\r\n// core components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport GridItem from \"../../components/Grid/GridItem.js\";\r\nimport GridContainer from \"../../components/Grid/GridContainer.js\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MapComponent from \"../../components/MapComponent.js\";\r\nimport MapSwitcher from \"../../components/MapSwitcher/MapSwitcher.js\";\r\nimport FieldSidebar from \"../../components/Field/FieldSidebar.js\";\r\nimport PropertyReportClick from \"../../components/PropertyReportClick.js\";\r\nimport WelcomePopup from \"../Popups/Misc/WelcomePopup.jsx\";\r\nimport LocationSearchbar from \"components/LocationSearchbar.jsx\";\r\n\r\n\r\nexport default function Map() {\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/*
*/}\r\n {/**/}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Button, DialogActions, DialogContent, InputAdornment, TextField } from '@material-ui/core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport GridContainer from 'components/Grid/GridContainer';\r\n\r\nexport default function FundsPopup({open, handleSubmit, value}) {\r\n const [fundsRequested, setFundsRequested] = useState(0);\r\n\r\n const handleFundsChange = (event) => {\r\n setFundsRequested(event.target.value);\r\n }\r\n\r\n const checkKeyPress = (e) => {\r\n if (e.key ==='Enter' || e.key ==='NumpadEnter' )\r\n {\r\n e.preventDefault();\r\n handleSubmit(fundsRequested);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Please enter the total funds requested from SWEEP\r\n $\r\n }}\r\n onChange={handleFundsChange}\r\n onKeyDown={checkKeyPress}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import React from \"react\";\r\n\r\nexport const loadingText = 'Loading...';\r\n\r\nexport function CO2Units () {return(tonnes CO2-eq);}\r\nexport function CO2AcreYearUnits () {return(tonnes CO2-eq/ac/yr);}\r\nexport function CO2DollarUnits () {return(tonnes CO2-eq/$);}\r\nexport function CO2YearUnits () {return(tonnes CO2-eq/yr);}\r\nexport function N2OYearUnits () {return(lb N2O-N/yr);}\r\n\r\nexport function formatResult (value, stripZeroes = false) {\r\n if (value == null || value === undefined) {\r\n return loadingText;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n var precision = 4;\r\n\r\n return stripZeroes ? (+value.toFixed(precision)) : value.toFixed(precision); //plus sign removes trailing zeroes\r\n }\r\n\r\n return value;\r\n}\r\n\r\nexport function formatDollars (value) {\r\n return '$' + (value ? value : 0).toFixed(2)\r\n}","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// @material-ui/core components\r\nimport { CardContent, Collapse, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Typography } from \"@material-ui/core\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\n// custom components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"../ExpandCollapseIcon.jsx\";\r\n\r\nimport { CO2Units, CO2AcreYearUnits, CO2DollarUnits, CO2YearUnits, formatDollars, formatResult } from \"helpers/report.js\";\r\n\r\nexport default function GHGOverallReportTable(props) {\r\n const { classes, reportData, handleFundsClick } = props;\r\n const user = useSelector(state => state.user);\r\n\r\n //Todo: make a base class for all these report page cards to inherit from that handles the collapse functionality?\r\n // would take a title and children as props\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n function toggleCollapse() {\r\n setCollapsed(!collapsed);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n SWEEP Project Key Outputs\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Results\r\n \r\n \r\n GHG Emissions\r\n \r\n \r\n Units\r\n \r\n \r\n \r\n \r\n \r\n \r\n Pumping GHG Benefits per Growing Season*\r\n \r\n \r\n {formatResult(reportData.pumpingReport.yearlyGHGBenefits)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n N2O GHG Benefits per Growing Season*\r\n \r\n \r\n {formatResult(reportData.overallReport.convertedN2OBenefits)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total GHG Benefits per Growing Season*\r\n \r\n \r\n {formatResult(reportData.overallReport.yearlyGHGBenefits)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Before Water use*\r\n\r\n \r\n \r\n {formatResult(reportData.waterReport.beforeWaterUse)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Water Savings*\r\n \r\n \r\n {formatResult(reportData.waterReport.waterSavings)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Net GHG Benefits over Useful 10-yr Life\r\n \r\n \r\n {formatResult(reportData.overallReport.tenYearGHGBenefits)}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n GHG Benefits per Acre-Year\r\n \r\n \r\n {formatResult(reportData.overallReport.ghgBenefitsPerAcreYear)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total Funds Requested\r\n \r\n \r\n \r\n {formatDollars(user.fundsRequested)}\r\n \r\n \r\n dollars\r\n \r\n \r\n \r\n \r\n Total GHG Emission Reductions per Total Funds Requested\r\n \r\n \r\n {formatResult(reportData.overallReport.emissionReductionsPerFundsRequested)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *To be transferred to application\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// @material-ui/core components\r\nimport { CardContent, Collapse, Table, TableBody, TableCell, TableHead, TableRow, Typography } from \"@material-ui/core\";\r\n\r\n// custom components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"../ExpandCollapseIcon.jsx\";\r\n\r\nimport { formatResult, loadingText } from \"helpers/report.js\";\r\n\r\nexport default function FieldWaterReportTable (props) {\r\n const { classes, reportData } = props;\r\n const fields = useSelector(state => state.user.fields);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n \r\n function toggleCollapse() {\r\n setCollapsed(!collapsed);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Annual Irrigation Water Savings from Irrigation System Enhancements in Proposed Project \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n \r\n \r\n Acres\r\n \r\n \r\n Before Water Use (ac-in/ac)\r\n \r\n \r\n After Water Use (ac-in/ac)\r\n \r\n \r\n Water Savings (ac-in/ac)\r\n \r\n \r\n Water Savings (%)\r\n \r\n \r\n \r\n \r\n {fields.map(field =>\r\n \r\n {field.name}\r\n {field.acreage}\r\n {field.results ? formatResult(field.results.beforeWater) : loadingText}\r\n {field.results ? formatResult(field.results.afterWater) : loadingText}\r\n {field.results ? formatResult(field.results.estWaterSavings) : loadingText}\r\n {field.results ? formatResult(field.results.percentWaterSavings) : loadingText}\r\n \r\n )}\r\n \r\n Total\r\n \r\n {formatResult(reportData.waterReport.totalArea, true)}\r\n \r\n \r\n {formatResult(reportData.waterReport.beforeWaterUse)}\r\n \r\n \r\n {formatResult(reportData.waterReport.afterWaterUse)}\r\n \r\n \r\n {formatResult(reportData.waterReport.waterSavings)}\r\n \r\n \r\n {formatResult(reportData.waterReport.percentSavings)}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// @material-ui/core components\r\nimport { CardContent, Collapse, Table, TableBody, TableCell, TableHead, TableRow, Typography } from \"@material-ui/core\";\r\n\r\n// custom components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"../ExpandCollapseIcon.jsx\";\r\n\r\nimport { loadingText } from \"helpers/report.js\";\r\n\r\nexport default function FieldDetailsReportTable (props) {\r\n const { classes } = props;\r\n const fields = useSelector(state => state.user.fields);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n \r\n function toggleCollapse() {\r\n setCollapsed(!collapsed);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n SWEEP Project Assessment Tool Field Data \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n \r\n \r\n Acres\r\n \r\n \r\n Latitude\r\n \r\n \r\n Longitude\r\n \r\n \r\n Assembly District\r\n \r\n \r\n Senate District\r\n \r\n \r\n ET Zone\r\n \r\n \r\n Soil Type\r\n \r\n \r\n \r\n \r\n {fields.map(field =>\r\n \r\n {field.name}\r\n {field.acreage}\r\n {field.latLon[0]}\r\n {field.latLon[1]}\r\n {field.assemblyDistricts ? field.assemblyDistricts.join(\", \") : loadingText}\r\n {field.senateDistricts ? field.senateDistricts.join(\", \") : loadingText}\r\n {field.results ? field.results.etZone.name.substring(8) : loadingText}\r\n {field.results ? field.results.soilType.name : loadingText}\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// @material-ui/core components\r\nimport { CardContent, Collapse, Table, TableBody, TableCell, TableHead, TableRow, Typography } from \"@material-ui/core\";\r\n\r\n// custom components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"../ExpandCollapseIcon.jsx\";\r\n\r\nimport { CO2Units, formatResult, loadingText, N2OYearUnits } from \"helpers/report.js\";\r\n\r\nexport default function N2OReportTable (props) {\r\n const { classes, reportData } = props;\r\n const fields = useSelector(state => state.user.fields);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n \r\n function toggleCollapse() {\r\n setCollapsed(!collapsed);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Nitrous Oxide GHG Emission Reductions from Irrigation System Enhancements in Proposed Project \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field\r\n \r\n \r\n Pre-Project Average N2O
Emissions ()\r\n
\r\n \r\n Post-Project Average N2O
Emissions ()\r\n
\r\n \r\n Average Yearly N2O-N Emission
Reductions ()\r\n
\r\n \r\n 10-Year Project Benefits
()\r\n
\r\n
\r\n
\r\n \r\n {fields.map(field =>\r\n \r\n {field.name}\r\n {field.results ? formatResult(field.results.beforeN2O) : loadingText}\r\n {field.results ? formatResult(field.results.afterN2O) : loadingText}\r\n {field.results ? formatResult(field.results.avgYearlyN2OBenefits) : loadingText}\r\n {field.results ? formatResult(field.results.tenYearN2OBenefits) : loadingText}\r\n \r\n )}\r\n \r\n Total\r\n \r\n {formatResult(reportData.n2oReport.beforeN2O)}\r\n \r\n \r\n {formatResult(reportData.n2oReport.afterN2O)}\r\n \r\n \r\n {formatResult(reportData.n2oReport.avgYearlyN2OBenefits)}\r\n \r\n \r\n {formatResult(reportData.n2oReport.tenYearN2OBenefits)}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// @material-ui/core components\r\nimport { CardContent, Collapse, Table, TableBody, TableCell, TableHead, TableRow, Typography } from \"@material-ui/core\";\r\n\r\n// custom components\r\nimport Card from \"../../components/Card/Card.js\";\r\nimport CardHeader from \"components/Card/CardHeader.js\";\r\nimport ExpandCollapseIcon from \"../ExpandCollapseIcon.jsx\";\r\n\r\nimport { CO2Units, CO2YearUnits, formatResult, loadingText } from \"helpers/report.js\";\r\n\r\nexport default function GHGPumpingReportTable (props) {\r\n const { classes, reportData } = props;\r\n const pumpResults = useSelector(state => state.user.pumpResults);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n \r\n function toggleCollapse() {\r\n setCollapsed(!collapsed);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n GHG Emission Reductions from Pumping System Enhancements in Proposed Project \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pumping System\r\n \r\n \r\n Pre-Project GHG Emissions
()\r\n
\r\n \r\n Post-Project GHG Emissions
()\r\n
\r\n \r\n GHG Emissions Reductions
()\r\n
\r\n \r\n 10-Year Project Benefits
() \r\n
\r\n
\r\n
\r\n \r\n {pumpResults && pumpResults.map(pump =>\r\n \r\n {pump.name}\r\n {formatResult(pump.ghgPre)}\r\n {formatResult(pump.ghgPost)}\r\n {formatResult(pump.ghgPre - pump.ghgPost)}\r\n {formatResult((pump.ghgPre - pump.ghgPost) * 10)}\r\n \r\n )}\r\n \r\n Renewable Energy Savings\r\n \r\n {}\r\n \r\n \r\n {}\r\n \r\n \r\n {formatResult(reportData.pumpingReport.renewableEnergy)}\r\n \r\n \r\n {formatResult(reportData.pumpingReport.renewableEnergy*10)}\r\n \r\n \r\n \r\n Total\r\n \r\n {formatResult(reportData.pumpingReport.beforeGHG)}\r\n \r\n \r\n {formatResult(reportData.pumpingReport.afterGHG)}\r\n \r\n \r\n {formatResult(reportData.pumpingReport.yearlyGHGBenefits)}\r\n \r\n \r\n {formatResult(reportData.pumpingReport.tenYearGHGBenefits)}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import { formatDollars, formatResult } from \"../report\";\r\n\r\nexport const emptyCellValue = undefined;\r\n\r\nexport function buildHeader(data, user) {\r\n data.push([\r\n {\r\n value: 'Operation Name',\r\n fontWeight: 'bold'\r\n },\r\n {\r\n value: user.agopname\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Application Date',\r\n fontWeight: 'bold'\r\n },\r\n {\r\n type: Date,\r\n value: new Date(),\r\n align: \"left\"\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Total Funds Requested',\r\n fontWeight: 'bold'\r\n },\r\n {\r\n value: formatDollars(user.fundsRequested)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Project Id',\r\n fontWeight: 'bold'\r\n },\r\n {\r\n value: user.id\r\n }\r\n ])\r\n}\r\n\r\nexport function buildOverallSection(data, reportData) {\r\n data.push([\r\n {\r\n value: 'Total Greenhouse Gas Emission Reductions for Proposed Project',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Total GHG Benefits per Growing Season (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.overallReport.yearlyGHGBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'N2O GHG Benefits per Growing Season (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.overallReport.convertedN2OBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pumping GHG Benefits per Growing Season (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.yearlyGHGBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Net GHG Benefits over Useful Life (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.overallReport.tenYearGHGBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'GHG Benefits per Acre-Year (tonnes CO2-eq/ac/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.overallReport.ghgBenefitsPerAcreYear)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Total GHG Emission Reductions per Total Funds Requested '\r\n },\r\n {\r\n value: formatResult(reportData.overallReport.emissionReductionsPerFundsRequested)\r\n }\r\n ]);\r\n}\r\n\r\nexport function buildFieldSummary(data, field) {\r\n data.push([\r\n {\r\n value: 'Field Name'\r\n },\r\n {\r\n value: field?.name\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Field Location (Lat/Lon)',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: field?.latLon.join(', '),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Field APN(s)',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: field?.apns.join(', '),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Field Area (acres)'\r\n },\r\n {\r\n value: field?.acreage,\r\n align: 'left'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Soil Type'\r\n },\r\n {\r\n value: field?.results.soilType.name\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Assembly District(s)',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: field?.assemblyDistricts.join(', '),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Senate District(s)',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: field?.senateDistricts.join(', '),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'ET Zone'\r\n },\r\n {\r\n value: field?.results.etZone.name.substring(8)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Census Tract(s)',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: field?.censusTracts.join(', '),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'In Economically Disadvantaged Area'\r\n },\r\n {\r\n value: field ? getYesNo(field.isEconomicallyDisadvantaged) : emptyCellValue\r\n }\r\n ]);\r\n}\r\n\r\nexport function getYesNo(bool) {\r\n return bool ? \"Yes\" : \"No\"\r\n}","import { buildHeader, buildOverallSection } from \"./shared\";\r\nimport { formatResult } from \"helpers/report\";\r\n\r\nexport function buildSummaryReportData(user, reportData) {\r\n const data = [];\r\n\r\n buildHeader(data, user);\r\n\r\n data.push([]);\r\n\r\n buildOverallSection(data, reportData);\r\n\r\n data.push([]);\r\n\r\n buildPumpingSection(data, reportData);\r\n\r\n data.push([]);\r\n\r\n buildN2OSection(data, reportData);\r\n\r\n data.push([]);\r\n\r\n buildWaterSection(data, reportData);\r\n\r\n return data;\r\n}\r\n\r\nfunction buildPumpingSection(data, reportData){\r\n data.push([\r\n {\r\n value: 'Estimated GHG Emission Reductions from Pumping System for Proposed Project',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project GHG Emissions (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.beforeGHG)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project GHG Emissions (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.afterGHG)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'GHG Emissions Reductions from Pumping (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.yearlyGHGBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: '10-year Project Benefits (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.tenYearGHGBenefits)\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildN2OSection(data, reportData) {\r\n data.push([\r\n {\r\n value: 'Estimated Annual Nitrous Oxide Emission Reductions',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Baseline N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.n2oReport.beforeN2O)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Projected N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.n2oReport.afterN2O)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Average Annual N2O-N Reductions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.n2oReport.avgYearlyN2OBenefits)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: '10-Year Project Benefits (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(reportData.n2oReport.tenYearN2OBenefits)\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildWaterSection(data, reportData) {\r\n data.push([\r\n {\r\n value: 'Estimated Annual Water Savings',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Baseline Water Use (in)'\r\n },\r\n {\r\n value: formatResult(reportData.waterReport.beforeWaterUse)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Projected Water Use (in)'\r\n },\r\n {\r\n value: formatResult(reportData.waterReport.afterWaterUse)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Use Savings (in)'\r\n },\r\n {\r\n value: formatResult(reportData.waterReport.waterSavings)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings Estimate (%)'\r\n },\r\n {\r\n value: formatResult(reportData.waterReport.percentSavings)\r\n }\r\n ]);\r\n}","import { formatResult } from \"helpers/report\";\r\nimport { buildFieldSummary, buildHeader, buildOverallSection } from \"./shared\";\r\n\r\nexport function buildDetailedReportData(user, reportData) {\r\n const data = [];\r\n\r\n buildHeader(data, user);\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n buildOverallSection(data, reportData);\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n buildPumpingSection(data, user, reportData);\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n buildN2OSection(data, user, reportData);\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n buildWaterSection(data, user, reportData);\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n buildFieldSection(data, user);\r\n\r\n return data;\r\n}\r\n\r\nfunction buildPumpingSection(data, user, reportData) {\r\n data.push([\r\n {\r\n value: 'Estimated GHG Emission Reductions from Pumping System for Proposed Project',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n \r\n var count = 1;\r\n for (var result of user.pumpResults) {\r\n data.push([\r\n {\r\n value: 'Pump ' + count,\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pump Name'\r\n },\r\n {\r\n value: formatResult(result.name, true)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'TDH Pre-project'\r\n },\r\n {\r\n value: formatResult(result.tdhPre, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'TDH Post-project'\r\n },\r\n {\r\n value: formatResult(result.tdhPost, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Pre-project'\r\n },\r\n {\r\n value: formatResult(result.ghgPre, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Post-project Without Fuel Change'\r\n },\r\n {\r\n value: formatResult(result.ghgPumpWithoutFuelChange, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Post-project With Fuel Conversion Adjustment'\r\n },\r\n {\r\n value: formatResult(result.ghgPumpWithFuelChange, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Post-project'\r\n },\r\n {\r\n value: formatResult(result.ghgPump, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'Energy Savings from VFD'\r\n },\r\n {\r\n value: formatResult(result.energySavingsVFD, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Savings from VFD'\r\n },\r\n {\r\n value: formatResult(result.ghgSavingsVFD, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Savings from Renewable Energy'\r\n },\r\n {\r\n value: formatResult(result.ghgSavingsRenewableEnergy, true)\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'GHG Reductions Post-project'\r\n },\r\n {\r\n value: formatResult(result.ghgReductions, true)\r\n }\r\n ]);\r\n\r\n count++;\r\n }\r\n\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'Estimated Total GHG Emission Reductions from Pumping System',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'GHG Benefits per Growing Season (tonnes CO2-eq/yr)'\r\n },\r\n {\r\n value: formatResult(reportData.pumpingReport.yearlyGHGBenefits, true)\r\n }\r\n ]);\r\n\r\n const tenYearBenefits = reportData.pumpingReport.yearlyGHGBenefits * 10;\r\n data.push([\r\n {\r\n value: 'Net GHG Benefits over Useful Life (tonnes CO2-eq)'\r\n },\r\n {\r\n value: formatResult(tenYearBenefits, true)\r\n }\r\n ]);\r\n\r\n const totalArea = user.fields.reduce((sum, field) => sum + field.acreage, 0);\r\n const benefitsPerAcreYear = totalArea != 0 ? reportData.pumpingReport.yearlyGHGBenefits / totalArea : 0;\r\n data.push([\r\n {\r\n value: 'GHG Benefits per Acre-Year (tonnes CO2-eq/ac/yr)'\r\n },\r\n {\r\n value: formatResult(benefitsPerAcreYear, true)\r\n }\r\n ]);\r\n\r\n const benefitsPerDollar = user.fundsRequested && user.fundsRequested > 0\r\n ? formatResult(tenYearBenefits / user.fundsRequested, true)\r\n : \"N/A\";\r\n data.push([\r\n {\r\n value: 'Total GHG Emission Reductions per Total Funds Requested (tonnes CO2-eq/$)'\r\n },\r\n {\r\n value: benefitsPerDollar\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildN2OSection (data, user, reportData) {\r\n data.push([\r\n {\r\n value: 'Estimated Nitrous Oxide Emission Reductions for Proposed Project',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n var fieldCount = 1;\r\n for (var field of user.fields) {\r\n data.push([\r\n {\r\n value: 'Field ' + fieldCount,\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Emissions (lb N2O-N)',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n var yearCount = 1;\r\n for (var year of field.results.beforeYearlyN2O) {\r\n data.push([\r\n {\r\n value: 'Year ' + yearCount\r\n }\r\n ]);\r\n\r\n var cropCount = 1;\r\n for (var crop of year) {\r\n data.push([\r\n {\r\n value: 'Crop ' + cropCount\r\n },\r\n {\r\n value: crop\r\n }\r\n ]);\r\n\r\n cropCount++;\r\n }\r\n\r\n yearCount++;\r\n }\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project Emissions (lb N2O-N)',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n yearCount = 1;\r\n for (var year of field.results.afterYearlyN2O) {\r\n data.push([\r\n {\r\n value: 'Year ' + yearCount\r\n }\r\n ]);\r\n\r\n var cropCount = 1;\r\n for (var crop of year) {\r\n data.push([\r\n {\r\n value: 'Crop ' + cropCount\r\n },\r\n {\r\n value: crop\r\n }\r\n ]);\r\n\r\n cropCount++;\r\n }\r\n\r\n yearCount++;\r\n }\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Average N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: field.results.beforeN2O\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project Average N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: field.results.afterN2O\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Average Yearly N2O-N Emission Reductions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: field.results.avgYearlyN2OBenefits\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: '10-Year Project Benefits (tonnes CO2-eq)'\r\n },\r\n {\r\n value: field.results.tenYearN2OBenefits\r\n }\r\n ]);\r\n\r\n fieldCount++;\r\n }\r\n\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'Estimated Total N2O Emissions',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Average N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: reportData.n2oReport.beforeN2O\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project Average N2O Emissions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: reportData.n2oReport.afterN2O\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Average Yearly N2O-N Emission Reductions (tonnes CO2-eq)'\r\n },\r\n {\r\n value: reportData.n2oReport.avgYearlyN2OBenefits\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: '10-Year Project Benefits (tonnes CO2-eq)'\r\n },\r\n {\r\n value: reportData.n2oReport.tenYearN2OBenefits\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildWaterSection (data, user, reportData) {\r\n data.push([\r\n {\r\n value: 'Estimated Water Savings for Proposed Project',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n var fieldCount = 1;\r\n for (var field of user.fields) {\r\n data.push([\r\n {\r\n value: 'Field ' + fieldCount,\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Before Water Use (ac-in/ac)'\r\n },\r\n {\r\n value: field.results.beforeWater\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'After Water Use (ac-in/ac)'\r\n },\r\n {\r\n value: field.results.afterWater\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings (ac-in/ac)'\r\n },\r\n {\r\n value: field.results.estWaterSavings\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings (%)'\r\n },\r\n {\r\n value: field.results.percentWaterSavings\r\n }\r\n ]);\r\n\r\n fieldCount++;\r\n }\r\n\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'Field Totals',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Before Water Use (ac-in/ac)'\r\n },\r\n {\r\n value: reportData.waterReport.beforeWaterUse\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'After Water Use (ac-in/ac)'\r\n },\r\n {\r\n value: reportData.waterReport.afterWaterUse\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings (ac-in/ac)'\r\n },\r\n {\r\n value: reportData.waterReport.waterSavings\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings (%)'\r\n },\r\n {\r\n value: reportData.waterReport.percentSavings\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildFieldSection (data, user) {\r\n data.push([\r\n {\r\n value: 'SWEEP Project Assessment Tool Field Data Summary',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n var fieldCount = 1;\r\n for (var field of user.fields) {\r\n data.push([\r\n {\r\n value: 'Field ' + fieldCount,\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildFieldSummary(data, field);\r\n\r\n fieldCount++;\r\n }\r\n}","import { buildFieldSummary, buildHeader, emptyCellValue, getYesNo } from \"./shared\";\r\n\r\nvar lookupData = {};\r\n\r\nexport function buildDataInputsData(user, lookupDataParam) {\r\n lookupData = lookupDataParam;\r\n \r\n const data = [];\r\n\r\n buildHeader(data, user);\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'Water Savings and N2O Emissions Estimates Data Inputs',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n for (var i = 0; i < 5; i++) {\r\n data.push([\r\n {\r\n value: 'Field ' + (i+1),\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildDataInputsForField(data, user.fields[i]);\r\n\r\n data.push([]);\r\n }\r\n\r\n data.push([]);\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'GHG Emissions from Pumping System Data Inputs',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n for (var i = 0; i < 5; i++) {\r\n data.push([\r\n {\r\n value: 'Existing Pump ' + (i+1),\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildDataInputsForPrePump(data, user.preprojectpumps[i]);\r\n\r\n data.push([]);\r\n }\r\n\r\n var preprojectPumpIds = user.preprojectpumps.map(p => p.preprojpumpId);\r\n var postPumps = user.postprojectpumps.filter(p => !preprojectPumpIds.includes(p.postprojpumpId));\r\n\r\n for (var i = 0; i < 5; i++) {\r\n data.push([\r\n {\r\n value: 'Proposed Pump ' + (i+1),\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildDataInputsForPostPump(data, postPumps[i]);\r\n\r\n data.push([]);\r\n }\r\n\r\n data.push([]);\r\n\r\n data.push([\r\n {\r\n value: 'Electricity Use',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Total Annual Electricity Usage (kWh)'\r\n },\r\n {\r\n value: user.electricity?.annualkwh\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Non-irrigation Hardware Draws Electricity from Meters'\r\n },\r\n {\r\n value: user.electricity ? getYesNo(user.electricity?.irrgtnhardware == 0) : emptyCellValue\r\n }\r\n ])\r\n\r\n return data;\r\n}\r\n\r\nfunction buildDataInputsForField(data, field) {\r\n buildFieldSummary(data, field);\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Cropping System',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildDataInputsForCropping(data, field?.fielddetails.precropping, 'pre');\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Cropping System',\r\n fontWeight: 'bold'\r\n }\r\n ]);\r\n\r\n buildDataInputsForCropping(data, field?.fielddetails.postcropping, 'post');\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Irrigation System',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: getLookup(field?.fielddetails.preirr),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project Irrigation System',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: getLookup(field?.fielddetails.postirr),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pre-Project Water Management Tools',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: getWaterManagementTools(\r\n field?.fielddetails.prewater.preyearsoilmoisture,\r\n field?.fielddetails.prewater.preyearflow,\r\n field?.fielddetails.prewater.preyearet\r\n ),\r\n wrap: true\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Post-Project Water Management Tools',\r\n alignVertical: \"center\"\r\n },\r\n {\r\n value: getWaterManagementTools(\r\n field?.fielddetails.postwater.postyearsoilmoisture,\r\n field?.fielddetails.postwater.postyearflow,\r\n field?.fielddetails.postwater.postyearet\r\n ),\r\n wrap: true\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildDataInputsForCropping(data, cropping, period) {\r\n\r\n for (var year = 1; year <= 3; year++) {\r\n data.push([\r\n {\r\n value: 'Year ' + year\r\n }\r\n ]);\r\n\r\n var yearText = getNumberText(year);\r\n\r\n for (var crop = 1; crop <= 3; crop++) {\r\n var cropText = getNumberText(crop);\r\n\r\n // So many silly things we have to do because the values have pre/post\r\n // and the year/crop hard-coded into the attribute name. Kids, don't be\r\n // like Sweep when you grow up.\r\n var cropPropName = period + 'year' + 'crop' + cropText + 'year' + yearText;\r\n\r\n data.push([\r\n {\r\n value: 'Crop ' + crop\r\n },\r\n {\r\n value: cropping ? getLookup(cropping[cropPropName]) : emptyCellValue\r\n }\r\n ]);\r\n }\r\n }\r\n}\r\n\r\nfunction getWaterManagementTools(soilMoisture, flowMeter, et) {\r\n var tools = [];\r\n\r\n if (soilMoisture) {\r\n tools.push(getLookup(\"240\"));\r\n }\r\n if (flowMeter) {\r\n tools.push(getLookup(\"241\"));\r\n }\r\n if (et) {\r\n tools.push(getLookup(\"242\"))\r\n }\r\n\r\n return tools.join(\", \");\r\n}\r\n\r\nfunction buildDataInputsForPrePump(data, pump) {\r\n console.log(\"whats here\", pump);\r\n data.push([\r\n {\r\n value: 'Pump Name'\r\n },\r\n {\r\n value: pump?.preprojpumpName\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Fields Serviced'\r\n },\r\n {\r\n value: pump?.preprojfields.join(\", \")\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Motor Rated Horsepower'\r\n },\r\n {\r\n value: pump?.preprojhp\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Operational Hours'\r\n },\r\n {\r\n value: pump?.preprojhours\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Overall Pumping Efficiency'\r\n },\r\n {\r\n value: pump?.preprojeff\r\n }\r\n ]);\r\n\r\n var pressureKnown = pump?.preprojsyspress == \"1\";\r\n data.push([\r\n {\r\n value: 'System Pressure Known?'\r\n },\r\n {\r\n value: pump ? getYesNo(pressureKnown) : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'System Pressure (ft)'\r\n },\r\n {\r\n value: pressureKnown ? pump?.preprojpumpress : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Pumping Depth (ft)'\r\n },\r\n {\r\n value: !pressureKnown ? pump?.preprojpumpdepth : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Discharge Pressure (ft)'\r\n },\r\n {\r\n value: !pressureKnown ? pump?.preprojdispress : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Friction Losses (ft)'\r\n },\r\n {\r\n value: !pressureKnown ? pump?.preprojfricloss : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Fuel Type'\r\n },\r\n {\r\n value: getLookup(pump?.preprojfueltype)\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Fuel Use'\r\n },\r\n {\r\n value: (pump?.preprojfueltype != \"151\") ? pump?.preprojfueluse : \"\"\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Other hardware?'\r\n },\r\n {\r\n value: '' //todo: what are we putting here?\r\n }\r\n ]);\r\n\r\n var improved = pump?.preprojimprovques == \"0\";\r\n data.push([\r\n {\r\n value: 'Proposed for Improvement?'\r\n },\r\n {\r\n value: pump ? getYesNo(improved) : emptyCellValue\r\n }\r\n ]);\r\n\r\n var stayingInUse = pump?.preprojstayinuseques == \"0\";\r\n data.push([\r\n {\r\n value: 'Pump Staying in Use?'\r\n },\r\n {\r\n value: pump && !improved ? getYesNo(stayingInUse) : emptyCellValue\r\n }\r\n ]); \r\n\r\n data.push([\r\n {\r\n value: 'New Motor Rated Horsepower'\r\n },\r\n {\r\n value: improved ? pump?.postprojhp : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Expected Operational Hours'\r\n },\r\n {\r\n value: improved ? pump?.postprojhours : emptyCellValue\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Expected Overall Pumping Efficiency'\r\n },\r\n {\r\n value: improved ? pump?.postprojeff : emptyCellValue\r\n }\r\n ]);\r\n\r\n var newPressureKnown = pump?.postprojsyspress == \"1\";\r\n data.push([\r\n {\r\n value: 'New System Pressure Known?'\r\n },\r\n {\r\n value: pump && improved ? getYesNo(newPressureKnown) : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New System Pressure (ft)'\r\n },\r\n {\r\n value: improved && newPressureKnown ? pump?.postprojpumpress : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Pumping Depth (ft)'\r\n },\r\n {\r\n value: improved && !newPressureKnown ? pump?.postprojpumpdepth : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Discharge Pressure (ft)'\r\n },\r\n {\r\n value: improved && !newPressureKnown ? pump?.postprojdispress : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Friction Losses (ft)'\r\n },\r\n {\r\n value: improved && !newPressureKnown ? pump?.postprojfricloss : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'VFD Installation'\r\n },\r\n {\r\n value: improved ? getLookup(pump?.postprojvfd) : emptyCellValue\r\n }\r\n ]);\r\n\r\n var renewableEnergy = pump?.postprojrenewenrgysel == \"0\";\r\n data.push([\r\n {\r\n value: 'Renewable Energy?'\r\n },\r\n {\r\n value: pump && improved ? getYesNo(renewableEnergy) : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'Renewable Energy Capacity'\r\n },\r\n {\r\n value: improved && renewableEnergy ? pump?.postprojrenewenrgycapcty : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Fuel Type'\r\n },\r\n {\r\n value: improved ? getLookup(pump?.postprojfueltype) : emptyCellValue\r\n }\r\n ]);\r\n}\r\n\r\nfunction buildDataInputsForPostPump(data, pump) {\r\n data.push([\r\n {\r\n value: 'Pump Name'\r\n },\r\n {\r\n value: pump?.postprojpumpName\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Fields Serviced'\r\n },\r\n {\r\n value: pump?.postprojfields.join(\", \")\r\n }\r\n ]); \r\n\r\n data.push([\r\n {\r\n value: 'New Motor Rated Horsepower'\r\n },\r\n {\r\n value: pump?.postprojhp\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Expected Operational Hours'\r\n },\r\n {\r\n value: pump?.postprojhours\r\n }\r\n ]);\r\n\r\n data.push([\r\n {\r\n value: 'Expected Overall Pumping Efficiency'\r\n },\r\n {\r\n value: pump?.postprojeff\r\n }\r\n ]);\r\n\r\n var newPressureKnown = pump?.postprojsyspress == \"1\";\r\n data.push([\r\n {\r\n value: 'New System Pressure Known?'\r\n },\r\n {\r\n value: pump ? getYesNo(newPressureKnown) : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New System Pressure (ft)'\r\n },\r\n {\r\n value: newPressureKnown ? pump?.postprojpumpress : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Pumping Depth (ft)'\r\n },\r\n {\r\n value: !newPressureKnown ? pump?.postprojpumpdepth : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Discharge Pressure (ft)'\r\n },\r\n {\r\n value: !newPressureKnown ? pump?.postprojdispress : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Friction Losses (ft)'\r\n },\r\n {\r\n value: !newPressureKnown ? pump?.postprojfricloss : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'VFD Installation'\r\n },\r\n {\r\n value: getLookup(pump?.postprojvfd)\r\n }\r\n ]);\r\n\r\n var renewableEnergy = pump?.postprojrenewenrgysel == \"0\";\r\n data.push([\r\n {\r\n value: 'Renewable Energy?'\r\n },\r\n {\r\n value: pump ? getYesNo(renewableEnergy) : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'Renewable Energy Capacity'\r\n },\r\n {\r\n value: renewableEnergy ? pump?.postprojrenewenrgycapcty : emptyCellValue\r\n }\r\n ]);\r\n \r\n data.push([\r\n {\r\n value: 'New Fuel Type'\r\n },\r\n {\r\n value: getLookup(pump?.postprojfueltype)\r\n }\r\n ]);\r\n}\r\n\r\nfunction getNumberText(number) {\r\n return number == 1 ? \"one\"\r\n : number == 2 ? \"two\"\r\n : number == 3 ? \"three\"\r\n : emptyCellValue;\r\n}\r\n\r\nfunction getLookup(idString) {\r\n var id = parseInt(idString);\r\n if (isNaN(id)) {\r\n return emptyCellValue;\r\n }\r\n return lookupData[id] ? lookupData[id].name : emptyCellValue;\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { jsPDF } from \"jspdf\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Box, Button, Grid, Typography } from \"@material-ui/core\";\r\n\r\n// core components\r\nimport FundsPopup from \"views/Popups/Misc/FundsPopup.js\";\r\nimport GHGOverallReportTable from \"components/Report/GHGOverallReportTable.jsx\";\r\nimport FieldWaterReportTable from \"components/Report/FieldWaterReportTable.jsx\";\r\nimport FieldDetailsReportTable from \"components/Report/FieldDetailsReportTable.jsx\";\r\nimport N2OReportTable from \"components/Report/N2OReportTable.jsx\";\r\nimport GHGPumpingReportTable from \"components/Report/GHGPumpingReportTable.jsx\";\r\n\r\n//actions\r\nimport { runCalculations } from \"../../actions/report\";\r\nimport { updateFundsRequested } from \"../../actions/user\";\r\n\r\n//helpers\r\nimport { formatResult } from \"helpers/report.js\";\r\nimport { createExcelReport } from \"helpers/reportDownload/reportDownload.js\";\r\nimport { FETCH_COMBINED_LOOKUPS } from \"constants/api\";\r\nimport SaveLoadButtons from \"components/Field/SaveLoadButtons\";\r\n\r\nconst styles = {\r\n typo: {\r\n paddingLeft: \"25%\",\r\n marginBottom: \"40px\",\r\n position: \"relative\",\r\n },\r\n card: {\r\n marginLeft: \"35%\",\r\n marginTop: \"0\",\r\n width:\"65%\"\r\n },\r\n gridCard: {\r\n padding: '10px',\r\n width: 1175,\r\n fontSize: '0.875rem'\r\n },\r\n note: {\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\r\n bottom: \"10px\",\r\n color: \"#c0c1c2\",\r\n display: \"block\",\r\n fontWeight: \"400\",\r\n fontSize: \"13px\",\r\n lineHeight: \"13px\",\r\n left: \"0\",\r\n marginLeft: \"20px\",\r\n position: \"absolute\",\r\n width: \"260px\"\r\n },\r\n cardCategoryWhite: {\r\n color: \"rgba(255,255,255,.62)\",\r\n margin: \"0\",\r\n fontSize: \"14px\",\r\n marginTop: \"0\",\r\n marginBottom: \"0\"\r\n },\r\n cardTitleWhite: {\r\n color: \"#FFFFFF\",\r\n marginTop: \"0px\",\r\n minHeight: \"auto\",\r\n fontWeight: \"300\",\r\n fontFamily: \"'Roboto', 'Helvetica', 'Arial', sans-serif\",\r\n marginBottom: \"3px\",\r\n textDecoration: \"none\"\r\n },\r\n alertRoot: {\r\n margin: \"3px\",\r\n flexBasis: '100%'\r\n },\r\n column: {\r\n flexBasis: '50%',\r\n },\r\n reportCardContainer: {\r\n justifyContent: 'center'\r\n },\r\n tableHeader: {\r\n fontWeight: 'bold',\r\n fontSize: '1.2em',\r\n textAlign: 'center'\r\n },\r\n renewableEnergyRow: {\r\n width: \"200px\"\r\n },\r\n totalsRow: {\r\n fontWeight: 'bold'\r\n }\r\n};\r\n\r\nconst getNewReportData = () => ({\r\n waterReport: {\r\n beforeWaterUse: null,\r\n afterWaterUse: null,\r\n waterSavings: null,\r\n percentSavings: null,\r\n totalArea: null\r\n },\r\n pumpingReport: {\r\n beforeGHG: null,\r\n afterGHG: null,\r\n renewableEnergy:null,\r\n yearlyGHGBenefits: null,\r\n tenYearGHGBenefits: null\r\n },\r\n n2oReport: {\r\n beforeN2O: null,\r\n afterN2O: null,\r\n avgYearlyN2OBenefits: null,\r\n tenYearN2OBenefits: null\r\n },\r\n overallReport: {\r\n yearlyGHGBenefits: null,\r\n convertedN2OBenefits: null,\r\n tenYearGHGBenefits: null,\r\n ghgBenefitsPerAcreYear: null,\r\n emissionReductionsPerFundsRequested: null\r\n }\r\n});\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function Report() {\r\n const classes = useStyles();\r\n \r\n const dispatch = useDispatch();\r\n const user = useSelector(state => state.user);\r\n const [fundsPopupOpen, setFundsPopupOpen] = useState(!(user.fundsRequested));\r\n const [reportData, setReportData] = useState(getNewReportData());\r\n const [lookupData, setLookupData] = useState({});\r\n\r\n useEffect(() => {\r\n \r\n dispatch(runCalculations(user));\r\n \r\n fetch(FETCH_COMBINED_LOOKUPS)\r\n .then(response => response.json())\r\n .then(results => {\r\n var newLookupData = {};\r\n for (var lookup of results) {\r\n newLookupData[lookup.id] = lookup\r\n }\r\n setLookupData(newLookupData)\r\n });\r\n }, []);\r\n\r\n const fields = useSelector(state => state.user.fields);\r\n\r\n const handleFundsSubmit = (fundsRequested) => {\r\n setFundsPopupOpen(false);\r\n\r\n dispatch(updateFundsRequested(Number(fundsRequested)));\r\n }\r\n\r\n const updateReportTotals = () => {\r\n const totalArea = fields.reduce((sum, field) => sum + field.acreage, 0);\r\n if (totalArea > 0 && user.pumpResults) {\r\n const newReportData = getNewReportData();\r\n\r\n //compute before and after water use as a weighted average of water use over field area\r\n //todo: we might be able to take out all the field.results ? checks now that everything's inside a user.pumpResults check\r\n newReportData.waterReport.beforeWaterUse = fields.reduce((sum, field) => sum + (field.results ? (field.results.beforeWater * field.acreage) : 0), 0) / totalArea;\r\n newReportData.waterReport.afterWaterUse = fields.reduce((sum, field) => sum + (field.results ? (field.results.afterWater * field.acreage) : 0), 0) / totalArea;\r\n\r\n newReportData.waterReport.waterSavings = newReportData.waterReport.beforeWaterUse - newReportData.waterReport.afterWaterUse;\r\n newReportData.waterReport.percentSavings = newReportData.waterReport.beforeWaterUse != 0 ?\r\n newReportData.waterReport.waterSavings / newReportData.waterReport.beforeWaterUse * 100\r\n : 0;\r\n newReportData.waterReport.totalArea = totalArea;\r\n\r\n newReportData.pumpingReport.beforeGHG = user.pumpResults.reduce((sum, pump) => sum + pump.ghgPre, 0);\r\n newReportData.pumpingReport.afterGHG = user.pumpResults.reduce((sum, pump) => sum + pump.ghgPost, 0);\r\n newReportData.pumpingReport.renewableEnergy = user.pumpResults.reduce((sum, pump) => sum + pump.ghgSavingsRenewableEnergy, 0);\r\n newReportData.pumpingReport.yearlyGHGBenefits = newReportData.pumpingReport.beforeGHG - newReportData.pumpingReport.afterGHG;\r\n newReportData.pumpingReport.tenYearGHGBenefits = newReportData.pumpingReport.yearlyGHGBenefits * 10;\r\n \r\n newReportData.n2oReport.beforeN2O = fields.reduce((sum, field) => sum + (field.results ? field.results.beforeN2O : 0), 0);\r\n newReportData.n2oReport.afterN2O = fields.reduce((sum, field) => sum + (field.results ? field.results.afterN2O : 0), 0);\r\n newReportData.n2oReport.avgYearlyN2OBenefits = fields.reduce((sum, field) => sum + (field.results ? field.results.avgYearlyN2OBenefits : 0), 0);\r\n newReportData.n2oReport.tenYearN2OBenefits = fields.reduce((sum, field) => sum + (field.results ? field.results.tenYearN2OBenefits : 0), 0);\r\n \r\n newReportData.overallReport.convertedN2OBenefits = newReportData.n2oReport.avgYearlyN2OBenefits; //convert lb N to tonnes CO2-equiv\r\n \r\n //todo: test that this works with no pumps defined\r\n newReportData.overallReport.yearlyGHGBenefits = newReportData.pumpingReport.yearlyGHGBenefits + newReportData.overallReport.convertedN2OBenefits;\r\n \r\n newReportData.overallReport.tenYearGHGBenefits = newReportData.overallReport.yearlyGHGBenefits * 10;\r\n \r\n if (!user.fundsRequested || !(user.fundsRequested > 0)) // not using user.fundsRequested <= 0 because it doesn't catch NaN\r\n {\r\n newReportData.overallReport.emissionReductionsPerFundsRequested = \"N/A\";\r\n }\r\n else {\r\n newReportData.overallReport.emissionReductionsPerFundsRequested = formatResult(newReportData.overallReport.tenYearGHGBenefits / user.fundsRequested);\r\n }\r\n \r\n newReportData.overallReport.ghgBenefitsPerAcreYear = totalArea != 0 ? newReportData.overallReport.yearlyGHGBenefits / totalArea : 0;\r\n\r\n setReportData(newReportData);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n updateReportTotals();\r\n }, [user])\r\n\r\n const getReport = () => {\r\n createExcelReport(user, lookupData, reportData);\r\n }\r\n \r\n const getMap = () => {\r\n \r\n window.map.once('rendercomplete', function () {\r\n const mapCanvas = document.createElement('canvas');\r\n const size = window.map.getSize();\r\n mapCanvas.width = size[0];\r\n mapCanvas.height = size[1];\r\n const mapContext = mapCanvas.getContext('2d');\r\n Array.prototype.forEach.call(\r\n window.map.getViewport().querySelectorAll('.ol-layer canvas, canvas.ol-layer'),\r\n function (canvas) {\r\n if (canvas.width > 0) {\r\n const opacity =\r\n canvas.parentNode.style.opacity || canvas.style.opacity;\r\n mapContext.globalAlpha = opacity === '' ? 1 : Number(opacity);\r\n let matrix;\r\n const transform = canvas.style.transform;\r\n if (transform) {\r\n // Get the transform parameters from the style's transform matrix\r\n matrix = transform\r\n .match(/^matrix\\(([^\\(]*)\\)$/)[1]\r\n .split(',')\r\n .map(Number);\r\n } else {\r\n matrix = [\r\n parseFloat(canvas.style.width) / canvas.width,\r\n 0,\r\n 0,\r\n parseFloat(canvas.style.height) / canvas.height,\r\n 0,\r\n 0,\r\n ];\r\n }\r\n // Apply the transform to the export map context\r\n CanvasRenderingContext2D.prototype.setTransform.apply(\r\n mapContext,\r\n matrix\r\n );\r\n const backgroundColor = canvas.parentNode.style.backgroundColor;\r\n if (backgroundColor) {\r\n mapContext.fillStyle = backgroundColor;\r\n mapContext.fillRect(0, 0, canvas.width, canvas.height);\r\n }\r\n mapContext.drawImage(canvas, 0, 0);\r\n }\r\n }\r\n );\r\n mapContext.globalAlpha = 1;\r\n mapContext.setTransform(1, 0, 0, 1, 0, 0);\r\n \r\n \r\n const pdf = new jsPDF('landscape');\r\n pdf.addImage(\r\n mapCanvas.toDataURL('image/jpeg'),\r\n 'JPEG',\r\n 50, 10, 180, 150\r\n );\r\n pdf.save('map.pdf');\r\n \r\n });\r\n window.map.renderSync();\r\n \r\n }\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n SWEEP Reports\r\n \r\n \r\n \r\n \r\n Download Report\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n setFundsPopupOpen(true)} classes={classes}/>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import writeXlsxFile from \"write-excel-file\";\r\n\r\nimport { buildSummaryReportData } from \"./summaryReport\";\r\nimport { buildDetailedReportData } from \"./detailedReport\";\r\nimport { buildDataInputsData } from \"./dataInputs\";\r\n\r\nexport async function createExcelReport(user, lookupData, reportData) {\r\n\r\n var summaryReportColumns = [\r\n { width: 78 }, { width: 20 }\r\n ];\r\n\r\n var detailedReportColumns = [\r\n { width: 78 }, { width: 20 }\r\n ];\r\n\r\n var dataInputsColumns = [\r\n { width: 55 }, { width: 38 }\r\n ];\r\n\r\n const sheetData = [buildSummaryReportData(user, reportData), buildDetailedReportData(user, reportData), buildDataInputsData(user, lookupData)];\r\n\r\n await writeXlsxFile(sheetData, {\r\n sheets: ['Summary Report', 'Detailed Report', 'Data Inputs'],\r\n columns: [summaryReportColumns, detailedReportColumns, dataInputsColumns],\r\n fileName: 'SWEEP report.xlsx',\r\n dateFormat: 'mm/dd/yyyy'\r\n })\r\n}","import * as React from 'react';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport DrawingIcon from '@material-ui/icons/AddLocation';\r\nimport ReportIcon from '@material-ui/icons/Assessment';\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Map from \"../../views/Map/Map.js\";\r\nimport Report from \"../../views/Report/Report.js\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n BrowserRouter ,\r\n Link,\r\n Route,\r\n Switch\r\n} from 'react-router-dom';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n customTab: {\r\n width: \"100%\"\r\n }\r\n}));\r\nexport default function IconTabs() {\r\n const routes = [\"/Map\", \"/Report\",\"/UserDropDown\"];\r\n const basepath = \"/user\";\r\n \r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n (\r\n \r\n \r\n \r\n } title={\"Project Management\"} aria-label=\"Drawing\" value={basepath + routes[0]} component={Link} to={basepath +routes[0]} />\r\n } title={\"Report\"} aria-label=\"Report\" value={basepath + routes[1]} component={Link} to={basepath + routes[1]} />\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n drawerWidth,\r\n transition,\r\n container\r\n} from \"../../material-dashboard-react\";\r\n\r\nconst appStyle = theme => ({\r\n wrapper: {\r\n position: \"relative\",\r\n top: \"0\",\r\n height: \"100vh\"\r\n },\r\n mainPanel: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: `calc(100% - ${drawerWidth}px)`\r\n },\r\n overflow: \"auto\",\r\n position: \"relative\",\r\n float: \"right\",\r\n ...transition,\r\n maxHeight: \"100%\",\r\n width: \"100%\",\r\n overflowScrolling: \"touch\"\r\n },\r\n content: {\r\n marginTop: \"70px\",\r\n padding: \"30px 15px\",\r\n minHeight: \"calc(100vh - 123px)\"\r\n },\r\n container,\r\n map: {\r\n marginTop: \"70px\"\r\n }\r\n});\r\n\r\nexport default appStyle;\r\n","import React from \"react\";\r\n\r\n// creates a beautiful scrollbar\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\n// core components\r\nimport Navbar from \"../components/Navbars/Navbar.js\";\r\nimport Tabbar from \"../components/Tabbar/Tabbar.js\";\r\n\r\nimport styles from \"../assets/jss/material-dashboard-react/layouts/userStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\nlet ps;\r\n\r\nexport default function User({ ...rest }) \r\n{\r\n \r\n const classes = useStyles();\r\n const mainPanel = React.createRef();\r\n\r\n // initialize and destroy the PerfectScrollbar plugin\r\n React.useEffect(() => {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps = new PerfectScrollbar(mainPanel.current, {\r\n suppressScrollX: true,\r\n suppressScrollY: false\r\n });\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n // Specify how to clean up after this effect:\r\n return function cleanup() {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps.destroy();\r\n }\r\n };\r\n }, [mainPanel]);\r\n\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n { \r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n );\r\n}","import React from 'react';\r\nimport { createBrowserHistory } from \"history\";\r\nimport { Router, Route, Switch, Redirect } from \"react-router-dom\";\r\n// core components\r\nimport User from \"pages/User.js\";\r\n\r\nconst hist = createBrowserHistory();\r\n\r\n\r\nexport default function App({ ...props }) {\r\n return (\r\n \r\n \r\n } />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport './index.css';\r\nimport configureStore from './store'\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport { login } from './utils/auth';\r\nimport { MuiThemeProvider, createTheme } from \"@material-ui/core/styles\";\r\nconst { EventEmitter } = require(\"fbemitter\");\r\n\r\n// GLOBAL VARIABLES\r\nwindow.map = null; // MAIN MAP OBJECT\r\nwindow.emitter = new EventEmitter();\r\n\r\nconst store = configureStore();\r\n\r\nif (window.location.protocol == 'http:') {\r\n\r\n console.log(\"you are accessing us via \"\r\n + \"an insecure protocol (HTTP). \"\r\n + \"Redirecting you to HTTPS.\");\r\n\r\n window.location.href =\r\n window.location.href.replace(\r\n 'http:', 'https:');\r\n}\r\nelse if(window.location.protocol == 'https:') {\r\n\r\n console.log(\"you are accessing us via\"\r\n + \" our secure HTTPS protocol.\");\r\n}\r\nconst theme = createTheme({\r\n Typography: {\r\n // In Japanese the characters are usually larger.\r\n fontSize: 18,\r\n \r\n },\r\n overrides: {\r\n MuiButton: {\r\n root: {\r\n textTransform: 'none',\r\n paddingTop: '4px',\r\n paddingRight: '13px',\r\n paddingBottom: '4px',\r\n paddingLeft: '13px',\r\n }\r\n },\r\n MuiTableCell: {\r\n head: {\r\n fontSize: 'inherit',\r\n fontWeight: 'inherit',\r\n textAlign: 'inherit'\r\n },\r\n root: {\r\n fontWeight: 'inherit'\r\n }\r\n }\r\n },\r\n \r\n palette: {\r\n \"common\": { \"black\": \"#000\", \"white\": \"#fff\" }, \"background\":\r\n { \"paper\": \"#fff\", \"default\": \"#fafafa\" },\r\n \"primary\": { \"contrastText\": \"#fff\", \"main\": \"rgba(63,120,173,1)\", \"light\": \"rgba(81,202,223,1)\", \"dark\": \"rgba(46,58,129,1)\" },\r\n \"secondary\": { \"contrastText\": \"#fff\", \"main\": \"rgba(52,179,216,1)\", \"light\": \"rgba(57,196,220,1)\", \"dark\": \"rgba(35,143,168,1)\" },\r\n \"error\": { \"contrastText\": \"#fff\", \"main\": \"rgba(255, 61, 0, 1)\", \"light\": \"rgba(250, 105, 60, 1)\", \"dark\": \"rgba(204, 56, 9, 1)\" },\r\n \"text\": {\r\n \"secondary\": \"rgba(0, 0, 0, 0.54)\", \"disabled\": \"rgba(0, 0, 0, 0.38)\", \"hint\": \"rgba(0, 0, 0, 0.38)\",\r\n \"primary\": \"rgba(51, 51, 51, 1)\"\r\n }\r\n }\r\n});\r\n\r\n//Logs user in. Not using for now.\r\nlogin({\r\n token:'90cb7971-ea38-4ba2-9e4e-967ce765cb34',\r\n tokenExpirationTime:'1500000002221',\r\n id:'90cb7971-ea38-4ba2-9e4e-967ce765cb34'\r\n});\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n\r\nregisterServiceWorker();\r\n\r\n\r\n//\r\n","import { applyMiddleware, createStore } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n\r\nimport rootReducer from './reducers';\r\nimport rootSaga from './sagas';\r\n\r\nexport default function configureStore(initialState) {\r\n const sagaMiddleware = createSagaMiddleware();\r\n const middlewares = [sagaMiddleware];\r\n const middlewareEnhancer = applyMiddleware(...middlewares);\r\n\r\n const enhancers = [middlewareEnhancer];\r\n const composedEnhancers = composeWithDevTools(...enhancers);\r\n\r\n const store = createStore(rootReducer, initialState, composedEnhancers);\r\n\r\n sagaMiddleware.run(rootSaga);\r\n return store;\r\n}","export const headerWithAuth = () => \r\n{\r\n\r\n //return 'fakeTok';\r\n return {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem(\"token\")};\r\n\r\n};\r\n\r\nexport const login = ({token, tokenExpirationTime, id}) => {\r\n \r\n localStorage.setItem(\"token\", token);\r\n localStorage.setItem(\"tokenExpirationTime\", tokenExpirationTime);\r\n localStorage.setItem(\"id\", id);\r\n};\r\n\r\nexport const headerOnlyAuth = () => \r\n{\r\n //return 'fakeTok';\r\n return {'Authorization': 'Bearer ' + localStorage.getItem(\"token\")};\r\n\r\n};"],"sourceRoot":""}