{"version":3,"sources":["assets/pr1.png","assets/pr2.png","assets/pr3.png","assets/rainfall_mt.png","assets/flood_mt.png","assets/fire_mt.png","assets/drought_mt.png","assets/storm_mt.png","assets/heat_mt.png","assets/wind_mt.png","assets/summary-bg.png","assets/divimg.png","assets/concimg.png","assets/toprow5.png","assets/profile.png","assets/images/header-hero.png","assets/images/header-hero-left.png","assets/images/header-hero-right.png","assets/images/customers-corporations-icon.png","assets/images/customers-financial-institutions-icon.png","assets/images/customers-real-estate-investors-icon.png","assets/images/customers-communities-icon.png","assets/images/saas graphics.png","assets/images/saas-advantage-icon-1.png","assets/images/saas-advantage-icon-2.png","assets/images/saas-advantage-icon-3.png","assets/images/saas-advantage-icon-4.png","assets/images/extreme-heat.png","assets/images/flood.png","assets/images/typhoons.png","assets/lock.jpg","assets/legend_heatmap_h.png","assets/adaptation/24.png","assets/adaptation/25.png","assets/adaptation/29.png","assets/adaptation/30.png","assets/adaptation/31.png","assets/adaptation/32.png","assets/adaptation/33.png","assets/adaptation/34.png","assets/adaptation/35.png","assets/adaptation/36.png","assets/adaptation/39.png","assets/adaptation/40.png","assets/adaptation/41.png","assets/adaptation/42.png","assets/logo-collapsed.png","assets/tr2.png","assets/carousel1.png","assets/carousel2.png","assets/carousel3.png","assets/carousel4.png","assets/carousel5.png","assets/landing_news_1.webp","assets/landing_news_2.webp","assets/landing_news_3.webp","assets/adaptation/4.png","assets/adaptation/5.png","assets/adaptation/6.png","assets/adaptation/7.png","assets/adaptation/8.png","assets/adaptation/9.png","assets/adaptation/10.png","assets/adaptation/11.png","assets/adaptation/12.png","assets/adaptation/13.png","assets/adaptation/14.png","assets/adaptation/15.png","assets/adaptation/16.png","assets/adaptation/17.png","assets/adaptation/18.png","assets/adaptation/19.png","assets/adaptation/20.png","assets/adaptation/21.png","assets/adaptation/22.png","assets/chat.png","assets/map_logo.png","assets/error-bg.jpg","assets/signup.png","assets/login.png","assets/images/services-shape.svg","assets/images/services-shape-1.svg","assets/images/services-shape-2.svg","assets/images/services-shape-3.svg","assets/adaptation/high.png","assets/Mitigation.png","assets/logo.png","assets/hazard_heatmap.png","assets/ct_1.png","assets/ct_2.png","assets/gp 1.png","assets/gp 2.png","assets/rf_1.png","assets/rf_2.png","assets/rf_3.png","assets/rf_4.png","assets/rf_5.png","assets/rf_6.png","assets/rf_7.png","assets/rf_8.png","assets/ss_1.png","assets/ss_2.png","assets/ss_3.png","assets/ss_4.png","assets/tp_1.png","assets/tp_2.png","assets/tp_3.png","assets/tp_4.png","assets/tp_5.jpg","assets/tp_6.jpg","assets/tp_7.png","assets/tp_8.png","assets/tp_9.png","assets/tp_10.png","assets/tp_11.png","assets/tp_12.png","assets/vs1.png","assets/vs2.png","assets/vs3.png","assets/vs4.png","assets/vs5.png","assets/vs6.png","assets/vs7.png","assets/vs8.png","assets/vs9.png","assets/vs10.png","assets/vs11.png","assets/vs12.png","assets/drought_formula.png","assets/map_landing.jpg","assets/red_marker.png","_helpers/history.js","actions/auth.js","actions/location.js","actions/assets.js","actions/company.js","actions/project.js","actions/dashboard.js","components/spinner.js","components/register.js","components/login.js","components/loader.js","components/location_map.js","redux/menu/actions.js","redux/actions.js","components/transitiontable.js","components/location.js","components/home.js","redux/menu/reducer.js","constants/defaultValues.js","reducers/auth.js","reducers/location.js","reducers/company.js","reducers/project.js","reducers/dashboard.js","reducers/asset.js","redux/reducers.js","components/transition_project.js","components/realestate_project.js","components/physical_project.js","components/benchmark_project.js","components/MapProject.js","components/project.js","components/tier_component.js","components/heat_cluster_map.js","components/river_cluster_map.js","components/mitigation_bar.js","components/typhoon_cluster_map.js","components/drought_cluster_map.js","components/building.js","components/rcpdonut.js","components/yeardonut.js","components/singlercpdonut.js","components/singleyeardonut.js","components/classicheatmap.js","components/progress_bar.js","components/losscomponent.js","components/map.js","components/worldmap1.js","components/candlestick.js","components/map1.js","components/table.js","components/climatetable.js","components/mdryeardonut.js","components/mdrrcpdonut.js","components/singlemdryeardonut.js","components/singlemdrrcpdonut.js","components/lanslide_cluster_map.js","components/summarymap.js","components/loss_percent_component.js","components/cluster_map.js","components/dashboard.js","components/hazard.js","components/sidebar.js","components/assets.js","private-route.js","components/download.js","components/navmenu.js","components/oldsidebar.js","components/methodology.js","components/transitionrisk.js","components/index_rcpdonut.js","components/index_yeardonut.js","components/companymap.js","components/company_rcpdonut.js","components/company_yeardonut.js","components/company_heatmap.js","components/company_table.js","components/company_dashboard.js","components/faqs.js","components/apidocs.js","components/transition_analysis.js","components/modifytransitiontable.js","components/edit_transition.js","components/realestate_map.js","components/realestate.js","components/propertymap.js","components/realestate_dashboard.js","components/homemap.js","components/landingpage.js","components/adaptation_tookit.js","components/changelog.js","components/ActionProvider.js","components/LearningOptions.js","components/LinkList.js","components/config.js","components/faq.js","components/intensel_map.js","components/generate_map.js","components/map_create.js","components/download_map.js","components/AppLayout.js","store/index.js","App.js","redux/store.js","serviceWorker.js","index.js","assets/adaptation/23.png","assets/adaptation/medium_high.png","assets/adaptation/medium.png","assets/logo1.png","assets/search.png","assets/dropbox.png","assets/team_1.png","assets/team_2.png","assets/var_eg.jpg","components/home.module.css","assets/upload.png","assets/home.png","assets/video.gif","assets/toprow1.png","assets/toprow3.png","assets/toprow4.png","assets/adaptation/26.png","assets/adaptation/27.png","assets/adaptation/28.png","../node_modules/pdfjs-dist/build sync","assets/logo_land.png","assets/images/add.png","assets/image.png","assets/hsi.png","assets/sp.png","assets/dax.png","assets/dowjones.png","assets/nasdaq.png","assets/euro.png","assets/nifty.png","assets/nikkei.png","assets/video.mp4","assets/toprow2.png","assets/crisk.png","assets/legend_heatmap.png","assets/adaptation/37.png","assets/adaptation/38.png"],"names":["module","exports","history","createBrowserHistory","api_url","process","loadUser","dispatch","getState","type","token","auth","headers","fetch","then","res","status","json","data","console","log","user","push","login","formdata","body","method","localStorage","setItem","tier_data","JSON","stringify","register","first_name","last_name","username","email","password","confirm_password","company_name","isUserAuthenticated","getItem","undefined","logout","c","addLocations","locus","success","pathname","state","project_name","addCompanyLocations","addBuildingLocations","id","getLocations","getAssets","assets","getUser","permissions","getName","name","getCompanyName","getCompanyLocations","company_location","getCoordinates","point","getIndices","indices","addIndex","index","getTransition","transition","getsbti","sbti","ModifyTransition","modify_transition","go","PropertyRisk","property","getPropertyRisk","Notification","notification","fetchKeywords","keyword","fetchFaqs","response","ok","errorData","Error","message","faqs","error","createMap","map","generateMap","map_response","downloadMap","download_map","MapValue","download_map_value","Dataset","dataset","asset","updateAsset","deleteAsset","Typhoon","typhoon","getCompanies","company","addProject","project","getProjects","getProjectList","list","getCSV","csv","catch","getLoss","getSummary","deleteProject","shareProject","getInvoice","invoice","getReport","report","addReport","getDetailedReport","detailreport","getWindReport","windreport","getLossReport","lossreport","getCountryWiseLossReport","countrywiselossreport","getOverallMap","overallmapimage","getAssetMap","assetmapimage","getTcfdReport","tcfd","getPptReport","ppt","getInsurance","insurance","getSatelliteMap","getMap","overall_map","Dropbox","link","getTransitionProject","transition_project","getCarbonProject","carbon_project","getCarbonProjectData","carbon_project_data","deleteCarbonProject","delete_carbon_project_data","downloadCarbonProject","downlaod_carbon_project_data","download_carbon_project_data","updateFilter","filter","postDashboard","feedback","sspDashboard","getBuilding","building","getDetail","detail","getDetailByYear","detailyear","summary","postBenchmark","benchmark","Spinner","Segment","style","border","borderRadius","Dimmer","backgroundColor","active","Loader","ValidationMessage","props","valid","className","Register","passwordConfirmValid","formValid","errorMsg","loading","validateForm","setState","updatePasswordConfirm","validatePasswordConfirm","onSubmit","e","preventDefault","this","captchaDemo","reset","to","errors","Grid","height","verticalAlign","centered","Row","padding","boxShadow","margin","marginLeft","marginRight","Image","src","logo","size","class","Column","computer","tablet","mobile","fontSize","textAlign","length","color","Form","Group","widths","Field","control","Input","placeholder","value","onChange","target","Button","disabled","onClick","primary","href","Component","connect","Object","keys","field","isAuthenticated","Login","company_code","remember","analysis","FormData","append","handleAnalysis","Checkbox","label","checked","width","float","counter","PortfolioSpinner","setInterval","changeImage","changeText","$","html","num","i","setTimeout","interval","React","LocationMap","mapContainer","useRef","useState","lng","lat","zoom","mapData","setMapData","nextMarkerId","useEffect","current","mapboxgl","Map","container","center","addControl","MapboxGeocoder","accessToken","on","labelLayerId","getStyle","layers","find","layer","layout","addLayer","source","minzoom","paint","getRandomColor","marker","Marker","setLngLat","lngLat","addTo","prevMapData","latitude","longitude","firstFeature","features","context","country","startsWith","short_code","toUpperCase","osmResponse","osmData","locationName","display_name","item","address","place_name","split","Math","floor","random","toString","transformedMapData","onMapDataChange","Col","md","sm","xs","ref","lg","key","fontWeight","Icon","slice","toFixed","mapDataToDelete","remove","handleDeleteMapData","cursor","paddingLeft","textToCopy","textField","document","createElement","innerText","appendChild","select","execCommand","alert","copyToClipboard","changeTitle","title","MENU_CHANGE_TITLE","payload","MENU_SET_CLASSNAMES","MENU_CONTAINER_ADD_CLASSNAME","MENU_CLICK_MOBILE_MENU","MENU_CHANGE_DEFAULT_CLASSES","MENU_CHANGE_HAS_SUB_ITEM_STATUS","EditableContext","createContext","Option","Select","countryoptions","sectoroptions","sector","EditableRow","useForm","form","component","Provider","onSearch","val","EditableCell","editable","inputType","children","dataIndex","record","handleSave","restProps","editing","setEditing","inputRef","useContext","focus","toggleEdit","setFieldsValue","save","validateFields","values","childNode","inputNode","showSearch","onPressEnter","onBlur","Item","rules","required","paddingRight","TransitionTable","handleRisk","handleDelete","dataSource","handleAdd","count","newData","investment_in_usd","market_cap_in_usd","revenue_in_usd","scope_1_and_2_GHG_emission","region","nav_in_perc","row","findIndex","splice","columns","render","_","onConfirm","components","cell","col","onCell","marginBottom","rowClassName","bordered","portfolio_value","currentDate","Date","toISOString","buttonRef","createRef","companyRef","mapcards","companycards","newmapcards","csvcards","buildingcsvcards","companyLocationCards","selectedList","minedata","company_card","searchList","Location","upload","file","locations","query","farmVariables","energyVariables","option","variables","buildingVariables","overwrite","portfolio","selectedOption","newlocations","modalOpen","videoOpen","long","continent","selectedTags","allTags","buildingselectedTags","allbuildingTags","optional","infoOpen","buildinginfoOpen","restrictOpen","companyloading","search_loading","buildingmodalOpen","search_type","handleClick","titleProps","newIndex","activeIndex","handleIndex","handleFileChange","files","handleDeleteMarker","handleChange","handleCSVSubmit","csv_currency","csv_unit","dateTimeString","replace","filename","Authorization","blob","downloadUrl","window","URL","createObjectURL","download","click","revokeObjectURL","modalCSVOpen","concat","get","onCompanySubmit","onFileSubmit","unit","currency","onIndicesSubmit","onbuildingSubmit","handleOpenDialog","open","handleFileLoad","includes","revenue","property_type","country_code","construction_cost","area","valuation","stories","solar_production","hydro_production","wind_production","wheat_production","rice_production","maize_production","fruit_production","vegetable_production","ownership","handleCompanyDialog","handelOnError","err","inputElem","reason","handleOpen","handleCompanyOpen","modalCompanyOpen","handleFileOpen","modalFileOpen","handleIndicesOpen","modalIndicesOpen","handlebuildOpen","handlevideoOpen","handleinfoOpen","handleBuildinginfoOpen","handleClose","showModal","handleCSVCurrencyChange","handleCSVUnitChange","handleCurrencyChange","handleUnitChange","handleContinent","handleRemoveFile","removeFile","handleRemoveLocation","array","handleRemoveNewLocation","handleSearch","handleAsync","handleSearchType","handleAddress","handleOptions","grouped_hits","hits","ticker","text","handleLogout","checkedValues","onFarmChange","onEnergyChange","onBuildingChange","energyBuildings","farmCrops","energyBuildingValues","farmCropsValues","energy","agriculture","handleOptional","handleCompanyLoad","geometry","coordinates","handleMapDataChange","newMapData","handleAsset","handleClear","addAll","clearAll","handleLocation","addbuildingAll","clearbuildingAll","mapRef","log_data","unseen_changelogs","toastMessage","forEach","changelog","description","toastr","options","positionClass","tapToDismiss","progressBar","closeButton","disableTimeOut","timeOut","onclick","location","onCloseClick","info","view","destroy","address_data","indexOf","Text","Typography","Link","others","newcards","Label","home","alt","search","opacity","cards","csvtags","buildingcsvtags","lon","domain","display","addtoSelected","addtobuildingSelected","Container","fluid","Breadcrumb","Tabs","defaultActiveKey","onSelect","Tab","eventKey","fontFamily","input","filesInput","Accordion","Card","Toggle","as","Header","Collapse","Body","Modal","onClose","closeIcon","Content","assets_allowed","video1","paddingTop","paddingBottom","toggle","defaultValue","code","defaultChecked","aria-hidden","marginTop","errorMessage","scrolling","getCompany","Home","w","xmlns","viewBox","data-name","transform","d","fill","font-size","font-family","font-weight","x","y","Navbar","styles","navbar","Brand","Nav","navlink","data-wow-duration","data-wow-delay","signInButton","signUpButton","hero","heroLeft","heroRight","intenselBlue","sectionBody","customers","customersCorporationsIcon","customersFinancialInstitutionsIcon","customersRealEstateInvestorsIcon","customersCommunitiesIcon","intenselOrange","whyIntensel","Title","whyIntenselCardTitleOdd","whyIntenselCardTitleEven","whyIntenselAdvantages","feature","subtitle","advantageText","whyIntenselDataSources","whyIntenselDataSourcesItem","dataSourceDialogueBox","stroke","stroke-linecap","stroke-width","whyIntenselSimulationOfFuturePerils","intenselSaasAdvantage","intenselSaasAdvantageItem","saasAdvantageIcon1","saasAdvantageIcon2","saasAdvantageIcon3","saasAdvantageIcon4","saasGraphics","climateRisk","climateRiskItem","extremeheat","climateRiskItemDescription","climateRiskItemName","flood","typhoons","INIT_STATE","containerClassnames","subHiddenBreakpoint","menuHiddenBreakpoint","menuClickCount","selectedMenuHasSubItems","defaultMenuType","initialState","isLoading","action","removeItem","property_types","transiton_project","delete_carbon_project","feedback_ssp","reducers","combineReducers","menu","assign","variableOptions","TransitionProject","activeItemName","year","rcp","modalloading","lossmodalOpen","reportmodal","portfolios_transition","downloadmodalOpen","new_project","portfolio_loss","modalEdit","handleShare","share","handleSubmit","handleView","handleLossSubmit","handleSummarySubmit","variable","activeVariable","handleVariable","handleEdit","handleLossModalOpen","handleReport","handleLossModalClose","reload","handleSummaryModalOpen","summarymodalOpen","handleSummaryModalClose","handleDropbox","base","url","dropbox","handleModify","carbon_project_name","handleDownload","handleDownloadModalOpen","handleDownloadModalClose","reverse","created_at","variant","itemName","delimiter","withRouter","RealEstateProject","portfolios_realestate","ScenarioOptions","rcpOptions","rcp_2020_Options","yearOptions","yearOptions_default","contentOptions","sspyearOptions","sspyearOptions_default","userOptions","gdpOptions","permissionOptions","MetigationOptions","PortfolioLossOptions","tierdata","PhysicalProject","filterOpen","agri","csv_rcp","csv_scenario","csv_year","content","permission","use_valuation","metigation","portfolios","gdp","modalShare","onShareSubmit","project_id","handleProjectView","useValuation","handlePptReport","scenario","handleUrl","handleUpdateFilter","analysis_type","handleFilterOpen","handleDashboard","handleProject","project_type","handleDetailedReport","delete","parse","prevProps","list_physical","default_filters","members","date","fontStyle","percent","overall","lineHeight","letterSpacing","wordSpacing","loss","download_options","Popup","trigger","placement","okText","cancelText","project_view","overflowY","Dropdown","selection","multiple","physical_risk","BenchmarkProject","organization","borderTop","MapProject","portfolios_map","distance","portfolio_variable","Project","Tier","lock","config","PureComponent","ymax","basementOptions","constructionOptions","storiesOptions","valeu","occupancyOptions","data1","per_sql_m_options","data2","Building","basement","construction","table","floors","occupancy","per_sq_m_value","line","scatter_river","scatter_storm","chart","xaxis","categories","series","isDarkMode","var","scaleOrdinal","schemeCategory10","range","top","right","bottom","left","xScale","min","max","xFormat","yScale","yFormat","colors","scheme","nodeSize","axisTop","axisRight","axisBottom","orient","tickSize","tickPadding","tickRotation","legend","legendPosition","legendOffset","axisLeft","legends","anchor","direction","justify","translateX","translateY","itemWidth","itemHeight","itemsSpacing","itemDirection","symbolSize","symbolShape","effects","itemOpacity","theme","textColor","dashboard","RCPDonut","piedata","key_finding","onPieEnter","handleKeyFindings","z","RCP","Loss","parseFloat","xField","yAxis","yField","minColumnWidth","maxColumnWidth","position","xAxis","autoHide","autoRotate","colorField","seriesField","borderColor","key_find","value_of_transition_policies","cvar_85","cvar_26","YEARDonut","Year","increased_by_2030","increased_by_2050","ssp","increased_by_2100","SingleRCPDonut","SingleYEARDonut","single_piedata","single_analysis","ClassicHeatmap","commonProps","heatmapdata","names","heatmapRow","n","indexBy","hoverTarget","valueFormat","isInteractive","divergeAt","minValue","maxValue","emptyColor","Progress_bar","progress_bar_acute","progress_bar_chronic","hazard","acute","newdata","chronic","borderBottom","both","format","LossComponent","workerClass","require","default","high","PopupMap","loadModules","css","ArcGISMap","MapView","FeatureLayer","Graphic","WebStyleSymbol","Fullscreen","povLayer","renderer","symbol","outline","visualVariables","stops","popupTemplate","basemap","pointGraphic","styleName","graphics","add","fullscreen","ui","EditableTable","originData","setData","percentage","tip_in_perc","mitigation_risk","climate_score","climatic_score","overall_loss","editingKey","setEditingKey","sortedInfo","setsortedInfo","isEditing","cancel","update","mergedColumns","can_edit_property_type","can_edit_area","can_edit_stories","sorter","compare","a","b","sortOrder","columnKey","order","can_edit_valuation","can_edit_ownership","can_edit_revenue","can_edit_construction_cost","age","edit","sticky","pagination","filters","MdryearDonut","MdrrcpDonut","SingleMdryearDonut","SingleMdrrcpDonut","LossPercentComponent","ClusterMap","worldmapContainer","scrollZoom","stores","properties","total_loss","top_hazard_string","hazard_loss","store","hazard_s","addSource","visibility","el","getZoom","popup","closeOnClick","addEventListener","string","setHTML","adaptation_data","singledata","HazardOptions","ContinentOptions","FinanceOptions","ContentOptions","GdpOptions","AnalysisOptions","RcpOptions","AssetOptions","YearOptions","YearOptions_ssp","mitigationOptions","PropertyOptions","Dashboard","lossopen","heatopen","mitigation","articleopen","percentopen","edit_permission","asset_table","risk","single_asset","single_asset_overall","singel_asset_chart","single_asset_loss","single_asset_portfolio_exposure","single_asset_portfolio_exposure_historic","adjusted_gdp","single_asset_progress","single_asset_cone_chart","RcpData","YearData","scatter","yearDetail","detailed","global","metigation_measure","singleYearDetail","portfolio_losses","portfolio_losses_flat","heatmap","losses","financial","mapVariable","yearDetail_single","typhoon_map_data","mapAsset","table_condition","oldname","newname","subscription","singlePercentage","parameter","Million","exposure_variable","hazard_map_data","hazard_map_data_with_continent","mitigation_info","combined_data","hazard_continent","handleKeyFindings_1","key_finding_1","handleKeyFindings_2","key_finding_2","handleKeyFindings_3","key_finding_3","handleKeyFindings_p","key_finding_p","handleKeyFindings_t","key_finding_t","handleCardFindings_1","card_finding_1","handleCardFindings_2","card_finding_2","handleCardFindings_3","card_finding_3","handleCardFindings_4","card_finding_4","handleKeyFindings_4","info_table","handleCardFindings_5","card_finding_5","handleKeyFindings_5","handlepriority","priority","MitigationInfo","handleCardClose","handleKeyClose","FilterInfo","FilterInfoClose","handleCvar","Cvar","handleLossOpen","handleArticleOpen","handlePercentOpen","handleHeatOpen","handleRiskOpen","riskOpen","RiskClose","filterClose","lossClose","percentClose","heatClose","articleClose","CvarClose","MitigationClose","Edit","newAsset","toLowerCase","EditAsset","handleRCP","handleYear","buildingData","defaultbuilding","handleSingleAsset","asset_name","handleSingleChart","year_chart_data","dollar","overall_bar_chart","single_asset_hazard","hazard_values","single_asset_hazard_2020","hazard_values_2020","loss_bars_data","single_asset_loss_2020","loss_bars_data_historic","portfolio_exposure_percentage_loss","portfolio_exposure_percentage_loss_historic","cone_chart","handleComparison","cone1_26","cone1_45","cone1_85","year_max","RcpConfig","isGroup","yearData","cone3_20","cone3_30","cone3_50","scenario_max","yearConfig","cone3_100","ad_var","handleChangePro","handleTable","handleExposure","handleSubmitPro","handleSingleExposure","handleFullScreen","getElementById","requestFullscreen","handleLossFullScreen","handleIntFullScreen","handleClickOpen","with_content","addDashboard","handleLocal","localactive","globalactive","handleGlobal","handleFinance","handleSsp","handleWorld","prevState","worldmap","handleDetail","handleContent","selectedAsset","handleHazard","hazard_map","handleMitigation","mitigation_variable","handleMitigationMeasure","handleAccClick","formdata1","tier_permissions","risk_2020","portfolio_exposure","portfolio_exposure_historic","data_edit_permissions","metigation_measures","losses_2020","country_loss","country_wise_loss_data","hazard_map_continents","key_finding_data","Property","projects","overall_dashboard","overview_card","tr1","wordBreak","tr2","tr3","tr4","justifyContent","textTransform","overall_risk","rcp_year_loss_bars","maxHeight","span","asset_level_risk_map","maxWidth","minHeight","minWidth","climate_variable_intensity","climate_heatmap","legend_h","per_10_years_rise","toolkit","cvar_85_perc","listStyleType","cord","Sider","Layout","SidebarLayout","onCollapse","collapsed","setCollapsed","CustomTrigger","background","alignItems","zIndex","collapsible","collapsedWidth","newCollapsed","logoCollapsed","mode","items","icon","HomeOutlined","ProjectOutlined","AppstoreOutlined","FileOutlined","SettingOutlined","QuestionCircleOutlined","LogoutOutlined","StatusOptions","Asset","fetchAssets","handleAssets","handleStatus","addAssets","user_id","users_id","Allassets","Table","Cell","Menu","padded","celled","HeaderCell","Footer","colSpan","floated","PrivateRoute","rest","from","othersOptions","Download","tierData","setTierData","tierDataFromLocalStorage","parsedTierData","fetchLastAccessed","warn","intervalId","clearInterval","collpaseOnSelect","fixed","expand","bg","aria-controls","NavDropdown","SideNavbar","handlelink","loc","breakpoint","onBreakpoint","broken","whiteswan","NavItem","rel","Methodology","workerSrc","Array","pageNumber","TransitionRisk","portfolio_name","handleTransition","handleFileTransition","IndexRCPDonut","IndexYEARDonut","CompanyMap","projection","geoMercator","scale","translate","geographies","setGeographies","currentValue","setCurrentValue","hoveredCountryIndex","setHoveredCountryIndex","worlddata","objects","getColor","geoPath","ISO_A3","strokeWidth","countryIndex","onMouseEnter","NAME_EN","onMouseLeave","CompanyRCPDonut","CompanyYEARDonut","CompanyHeatmap","CompanyEditableTable","cvar","no_of_assets","IndexOptions","CompanyDashboard","loss_bars","loss_bars_2020","addBenchmark","year_scenario_loss","table_data","hazard_index","hazard_values_company","Faqs","overflowX","isExpanded","APIDocs","TransitionAnalysis","carbon_intensity","carbon_footprint","total_carbon_emission_portfolio","ModifyTransitionTable","EditTransition","companies_data","nextProps","borderRight","borderLeft","projected_scope_1_and_2_portfolio","weighted_average_carbon_intensity_portfolio","RealEstateMap","csvData","Realestate","Search","Locator","that","event","mapPoint","createGraphic","clear","activeSource","locator","params","locationToAddress","Address","onFileLoad","onError","handleOnError","noClick","noDrag","flexDirection","borderWidth","borderStyle","parkLayer","PropertyMap","viewport","setViewport","flood_score","typhoon_score","listing","handlezoom","transitionDuration","transitionInterpolator","FlyToInterpolator","markers","mapStyle","onViewportChange","nextViewport","mapboxApiAccessToken","columns_typhoon","data_typhoon","elevation","precipitation","slope","lulc","severity","typhoon_windspeed","score","hand","RealEstateDashboard","handleFloodScore","handleTyphoonScore","columns_data_flood","columns_data_typhoon","flood_score_average","typhoon_score_average","thickness","tickPosition","tickSpacing","tickOverlap","tickFormat","titleAlign","titleOffset","HomeMap","non_zero_mean","VariableOptions","Landingpage","Carousel","carousel1","carousel2","carousel3","carousel4","carousel5","news_1","news_2","news_3","Toolkit","common","toolkit_1","toolkit_2","toolkit_3","toolkit_4","toolkit_5","toolkit_6","toolkit_7","toolkit_8","toolkit_9","toolkit_10","toolkit_11","toolkit_12","toolkit_13","toolkit_14","toolkit_15","toolkit_16","toolkit_17","toolkit_18","headerStyle","featureBoxStyle","improvementBoxStyle","listStyle","ChangelogPage","contentArrowStyle","iconStyle","keywords","setKeywords","actionProvider","selectedOptions","setSelectedOptions","submitButtonDisabled","setSubmitButtonDisabled","Badge","tag","newTags","selectedTag","handleTagClick","handleJavascriptList","LinkList","linkMarkup","createChatBotMessage","widget","FaqItem","question","answer","image","dangerouslySetInnerHTML","__html","img","setActiveTab","searchResults","setSearchResults","setFaq","setShowSearch","handleTabSelect","requestOptions","param","results","handleSearchSubmit","elements","searchInput","FormControl","child","childIndex","result","attachments","faq","LegendControl","_map","_container","legendItem","colorBox","textContent","parentNode","removeChild","MyTable","getDataForScenarioAndYear","scenarioKey","rainfall_flood_avg","rainfall_flood_max","rainfall_flood_min","populationDensity","population","updateDataSource","apiResponse","city","initializeMap","updateMapStyle","maxbounds","mapBounds","FullscreenControl","addRasterLayer","addLegendControl","handleMapHover","setStyle","updateRasterLayer","getSource","removeLayer","removeSource","tiles","tileSize","rasterLayerAdded","bounds","getBounds","getCanvas","service","version","request","srs","bbox","toArray","flat","join","query_layers","round","info_format","entries","removePopup","handleAnalyse","selectedCity","modalVisible","closeModal","handleMapStyleChange","newStyle","handlePeriodChange","returnPeriod","return_period","handleScenarioChange","selectedScenarios","handleYearChange","handleRCPChange","openFilterModal","filterModalVisible","closeFilterModal","applyFilter","updatedDataSource","handleTableVisibility","showTable","rainfall_flood","setMaxBounds","years","scenarios","getBoundsOfDistance","checkedChildren","unCheckedChildren","gutter","optionType","buttonStyle","countryNames","GenerateMap","markerRef","setShowTable","locationSet","setLocationSet","distances","setDistance","setIsLocationSet","distanceRef","getBoundingBox","distanceKm","deltaLat","deltaLng","cos","PI","calculateBoundingBox","rangeInKm","rangeInMeters","topLeft","bottomRight","addOrUpdateBoundingBox","boundingBoxCoords","flyTo","boundingBox","countryName","encodeURIComponent","geocoder","reverseGeocode","speed","curve","easing","t","fuzzyMatch","limit","language","navigator","types","minLength","autocomplete","place_type","postcode","district","place","locality","neighborhood","poi","suggestions","inputText","inputCountry","pop","trim","countryInSuggestions","s","some","cleanedInput","isCountryName","fetchCountryCenter","fitBounds","duration","isHongKong","off","htmlFor","Number","CreateMap","availableDatasets","selectedVariable","confirmationOpen","handleSelectChange","selections","handleVariableChange","handleDistanceChange","handleOpenConfirmation","handleCloseConfirmation","handleConfirm","isSubmitDisabled","hasValidDatasets","isArray","storm_surge","selectedYears","fetchAvailableDatasets","fetchdataset","selectDisabled","Actions","tip","paragraph","DownloadMap","getDataForReturnPeriod","average","storm_surge_avg","storm_surge_max","storm_surge_min","updateScale","ne","getNorthEast","sw","getSouthWest","getDistance","lng1","lat1","lng2","lat2","dLat","dLon","sin","atan2","sqrt","portfolio_variables","loadingTimeout","clearTimeout","styleTransitionComplete","isLoadingTiles","currentCenter","getCenter","currentZoom","currentBearing","getBearing","currentPitch","getPitch","cleanupLayers","diff","once","isStyleLoaded","onStyleLoaded","bearing","pitch","setCenter","setZoom","setBearing","setPitch","add2DBuildingsLayer","getLayer","baseUrl","tileUrl","subregion","maxzoom","setupTileLoadingEvents","handleTileData","sourceId","dataType","isSourceLoaded","duration_data","fetchDistrictName","mapboxUrl","fullPlaceName","districtName","statusText","transformRequest","resourceType","maxBounds","pitchWithRotate","dragRotate","touchZoomRotate","initializeMapFeatures","loadImage","addImage","isMapLoaded","setInitialScale","targetDistance","minZoom","maxZoom","getMapDistance","currentDistance","abs","add3DBuildingsLayer","remove2DBuildingsLayer","remove3DBuildingsLayer","handle3DViewChange","is3DViewEnabled","showPopup","mapValueResponse","no_of_days","geolocationText","popupContent","handInfo","showHandDescriptionPopup","handPopup","getRainfallFloodColumns","getStormSurgeColumns","updateTableColumns","newPeriod","addLegendToMap","legendColor","legendLabel","getContainer","handleExportImage","originalZoom","mapElement","logoElement","fullscreenWidget","querySelector","nameElement","geoElement","scaleElement","legendElement","legendTitleElement","initialWidth","initialHeight","initialLogoSize","initialLegendFontSize","initialLegendSize","initialLegendTitleFontSize","initialLegendLabelStyles","legendLabels","getElementsByClassName","geoParagraph","nameParagraph","resize","Promise","resolve","html2canvas","useCORS","canvas","timestamp","now","getFullYear","month","String","getMonth","padStart","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","getFormattedTimestamp","toDataURL","downloadModalVisible","loadDelay","handleYearChange_download","year_download","handleRCPChange_download","scenario_download","openDownloadModal","closeDownloadModal","handleFilterTypeChange","filterType","floodDepth","resolution","showHandDescription","scrollTo","swLng","swLat","neLng","neLat","isNaN","durationData","durationValues","duration_values","handleMapBounds","updateDataSourceBasedOnVariable","distanceStr","distanceInMeters","parseInt","jumpTo","maplogo","opt","AppLayout","handleSidebarCollapse","handleBackButton","removeEventListener","flex","path","FAQSearchPage","RootContainer","createStore","applyMiddleware","thunkMiddleware","exact","App","Boolean","hostname","match","FallbackComponent","errorbg","myFallback","Sentry","dsn","integrations","Integrations","BrowserTracing","tracesSampleRate","ReactDOM","fallback","serviceWorker","ready","registration","unregister","webpackEmptyContext","req"],"mappings":";+GAAAA,EAAOC,QAAU,kjE,mBCAjBD,EAAOC,QAAU,s3N,mBCAjBD,EAAOC,QAAU,stF,wCCAjBD,EAAOC,QAAU,8/B,mBCAjBD,EAAOC,QAAU,8sC,mBCAjBD,EAAOC,QAAU,s0D,mBCAjBD,EAAOC,QAAU,82C,mBCAjBD,EAAOC,QAAU,06E,mBCAjBD,EAAOC,QAAU,s7B,mBCAjBD,EAAOC,QAAU,8iB,qBCAjBD,EAAOC,QAAU,IAA0B,wC,qBCA3CD,EAAOC,QAAU,IAA0B,oC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,4CCA3CD,EAAOC,QAAU,IAA0B,qC,mECA3CD,EAAOC,QAAU,IAA0B,yC,qBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,IAA0B,+C,mBCA3CD,EAAOC,QAAU,kmR,mBCAjBD,EAAOC,QAAU,0pP,mBCAjBD,EAAOC,QAAU,8gL,mBCAjBD,EAAOC,QAAU,8tI,qBCAjBD,EAAOC,QAAU,IAA0B,2C,qBCA3CD,EAAOC,QAAU,IAA0B,mD,qBCA3CD,EAAOC,QAAU,IAA0B,mD,qBCA3CD,EAAOC,QAAU,IAA0B,mD,qBCA3CD,EAAOC,QAAU,IAA0B,mD,qBCA3CD,EAAOC,QAAU,IAA0B,0C,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,sC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,mBCA3CD,EAAOC,QAAU,85C,qBCAjBD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,6C,qBCA3CD,EAAOC,QAAU,IAA0B,6C,qBCA3CD,EAAOC,QAAU,IAA0B,6C,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,sC,mBCA3CD,EAAOC,QAAU,23G,oFCAjBD,EAAOC,QAAU,IAA0B,oC,4CCA3CD,EAAOC,QAAU,IAA0B,mC,sLCA3CD,EAAOC,QAAU,IAA0B,4C,qBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,IAA0B,8C,qBCA3CD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,kgB,0CCAjBD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,4C,iHCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,6C,mMCA3CD,EAAOC,QAAU,IAA0B,yC,0CCA3CD,EAAOC,QAAU,s5C,u/GCCJC,EAAUC,cCAjBC,E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A,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,SACA,UACA,yBACA,WACA,SACA,SACA,WACA,eACA,UACA,aACA,WACA,WACA,SACA,2BACA,OACA,QACA,QACA,WACA,UACA,QACA,aACA,UACA,OACA,SACA,UACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,WACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,YACA,SACA,gBACA,SACA,QACA,WACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,SACA,QACA,UACA,QACA,SACA,aACA,QACA,WACA,gBACA,gBACA,SACA,aACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,YACA,SACA,aACA,UACA,SACA,WACA,aACA,UACA,aACA,UACA,UACA,QACA,QACA,cACA,cACA,YACA,QACA,UACA,kBACA,SACA,OACA,WACA,QACA,SACA,mBACA,WACA,OACA,cACA,SACA,WACA,QACA,UACA,SACA,SACA,wBACA,cACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,kBACA,UACA,eACA,cACA,QACA,YACA,QACA,WACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,cACA,OACA,QACA,sBACA,UACA,SACA,eACA,SACA,SACA,UACA,uBACA,iBACA,gBACA,UACA,aACA,UACA,eACA,YACA,UACA,QACA,SACA,YAMa,SAASC,GAAYh9C,GAClC,IAAMyF,EAAeC,iBAAO,MACtBu3C,EAAYv3C,iBAAO,MACnBrL,EAAMqL,iBAAO,MACnB,EAAsBC,mBAAS,UAAS,oBAAjCC,EAAG,KACV,GADkB,KACID,mBAAS,UAAQ,oBAAhCE,EAAG,KACV,GADkB,KACMF,mBAAS,MAAI,oBAA9BG,EAAI,KACX,GADoB,KACUH,mBAAS,KAAG,oBAAnCI,EAAO,KAAEC,EAAU,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","file":"static/js/main.96a5f2b3.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAACn0lEQVRoge3Yy29NURTH8Q9Nm4h6RFQxMDKrx0A8YqSEpCJC0vgfiAQTcwYeE/WYmEmoCYl/wMDQI0I825SQkJgYoERbQQ32vjkirnte917ifJOdm3uz1tq/dfbaa+97qKio+C+YUWKs1RjEVizDQrzDC9zARYyWOF/pLMc1TDcY33AFve2R+WcG8F4Q+gGn0Y8l6BREb4m/f4x2b7G+HWLrMYCvgrhh9DSwXyisyLSQ1JqmqkvJcslKHMnoezz6vcS8knVlprYnhnP6X43+J0tTlIPV+C7siUblVI8efMJnzC1D1MwcPoNC274gbNw8vBXa8SwcxXk8xriQ4CguYw+6cs7RkFtCWWwuGGe7xi17Gs+xu+Bcv+VNnGBJwTgLYpxRHBZKdj5mow8H8FCS0An5KqguX2LgMpZ8hz+Lm4m9mJQkk5s+DAk1/EnyhBYVCZqRTZJkdmV17sI5yaH369hYmsx07IvzPhNuDanowvXoOCFcMdYJ9TsbqxTfI1npwKOoaTCt07no8Aorm6MrFwdlOIj7hHKa8HclQdBW63QNGYrGQ81UlJM5grbxNMZPovHaZirKSaZExqNxdzMV5WSFOqVV6knZArbFzztpjGulta5pcvLRIRzKqdtvbbOfaaKoPOwXdI1JeSDW2u+kcJH7G+jHlPA/aGcWx7NC9q+1N5kOYSWmop5jWQN0Sq4ok0JiG7Smk3UL3emQZE98F5LI1Zy6hATqXRpbNcZkLKd69OGUcGGrvZtq5viIp7gkdKfUN92K/4nFuIub7RZShMUYEer+nnLf/Bcm7RP+OYmR+L1IvFJJ+4SzJNHyFeuVHE6jWNoiu1KpkihgVyppax0epLDLEq9U0oircRv3G9hliVcqacS1M15FRUXFP8wPvYwUPs/LZoQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAADO0lEQVR4nO2aSW8TMRiGnwBNWxaJngCJ5Q/QFg7AgaUIcUZILAKxnNh+CwgppSw/gK1QEAKJCw0IKPwC4EAvcOAGhKZA6QWFgz3COB6Px8nMNMSvFCWZ8TPvN188/uyZQFBQUFBQUFBQkLNeA40Oe03FnUzJIwEND2YhyHiuS9p9wAwVJT6tr/UHW+QXy/8jlwQMAqPAW+CHsj3v6zh39QJXgd8ewS6kRHhxvcAzCf4CKsAWYKlHAGnUB0xK33lEz9sGLCPnBFyT0CdgyMPUV5cV32FtX24JGER0+3n5OS9tVHz1k4ccE1CRQMXDrBWNSd/RmP25JeCdBLZ6mLWiNwm+mSTANKn4Diz3MGqXVvBvuY3U6kTIyJk2Fj3VjTvBTBJgmwoXNdXNVV0/Fbb1gKIuhVx9TT3gVZ4BdKKKWpxkUga7fgwICWjDMdLcI5xKycXey2uXWrknWNK+p/V05fT2uU2E0iopsLgTTpr5ZaowBhQdQNEKCSg6gKIVElB0AEWr6xPQznmArwq9A1VkD3BZdmc+FfaRvrx0Xaa2uowOy+EsFBKgfK4BT4GDjuwh4LnyvQrsd+BKwFHgBeIZRE2yBxx990nfrynZEnBE8W2Sug4fJ75CJK3hr8ew0f6bFvZWC75xbLT/hta+SQPAGWBONrgDlLU2i5UDzAGngZWSPauw4wZWNf8JnFLYc4jH8A3gNtBj8bWxSb5RzAOmBETaCdQlMAlsQjy3HwIey+112U7XLmBWtnmCeMrbJ48RBTEDbDewIzHssOZrYlXfSY2NfGdjYjZqBHGNmbral4QD2djPwA4Lu5e/yddf34DdnuwMsMfCGrUGuAhMI7rONHABWO3BvgfOA6sc2A3AFeAjomt/AC4Bax3Y9Yg/WajsGLDOgU1dBQ4j/kZTI/1ofBIxy6sjfp2XwDGSb6uVgBMG9rgDC6JyRTE3ybUK9AATmLta0kheBh5Z2Ps0D4Aq+9DCPrCwppibpFeBuzSPqGW53aUK6MGUgXu4jeQmdsKBdY3ZuQpUESN4v3yvkr4K9AObEZdX2iqgs65VwBRzqAIW1qhQBRIUqkDMK1QBQhUIVSBUATqwCgR1o/4AZWuKwQZfLrEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAFFElEQVRogcWaa2wUVRTHfxQBlajYorUpxorRxEQRlIdvI2giTdT4IFqIRokx8RVDosboFwOiJEY0xm/qF434wChGfMS3jU2LDwJoxRdVQEC0grXYWgtdP9xdO/O/98zObLe7/2Q+3Jn/ec29c885dxfKj6uA3cDPwJWjoL8iqAG6gVz+GgIeBsZW06lS0MRwENHrY+DoKvqVGfMIB5IDtgGzqudaNtyKHUgO6AOuq5p3GfASccf/IBzQA9VyMA1qcLtVwdkBoBF4i3AwTwMHVcXTIriIuKMf5u+PBVYQDuZd4LCKe1oEq4g7ebs8vwk3SxpMB3BU5dxMRhNxJweAugDvfMLfzWagviKeFsEzxB17PoF7KrATP5hNhIOvGGYB+yMODQEzisgcD/yIH8wGoHbUPE3AeGCjOLM6pWwj0IkfTDtV2ABWihP/AFMzyE/GLSkN5n0quDVfgVtGUQfuL0FPA7AFP5iV5XEzGdOBXjHcRrjKPQV4BFiMS5ohnADswg9mUVm9FjTgCsCowd68M4pa4M8IbxUwztA7DdgrevsovnGUhEOAdfhv7nqDf16A+2ZeTwjNwAHhbwEOLY/7DmOAFwOOPZogc3KAnwNasYNZFuCvGLn7w1gaMPAOyd3fxIBMdJseE5CpyeuNcgeB08oRxCL8HaoTOCKFbLT11es+Q6Ye2CPcTwkHnhrTgX5RuhuXndPgS+xADgCXGHK3BPjXlBQBLsN+J8r6gbMy6FgbcCh6bSWcyWuAz4W7kRJn5cmA4ZaMOt4Q+dcCOpcZsmcHuPMy2mcO/lb4RFYluO02quNS/K6xF7vybRfuC1kdaBUFXwMTsirBd7oZmAL0yP27DfkW4e0DDk5rXI91hoAzDe583He0CTeLig7RNTd/X/PFV4b+ccDvwp2fNhBdxy8bvDrib7YbV54XUEO8RMkxXB3XE+9jos8Uq4X3YJoganHleFRwmsENHSp04BIhuN0t+qyHeAL9SJ4vNOzcJry30wSyUITWG7wJ2MluPXAS/syuFR2PyfOHDFszhfetEkLNi67z1w3lzdg7zQzgG/zy5VkZ/yDjYwx9v8m4QQmh/kDPZ9cZyjUj/ytjDWID8Krc2yNjq5DcW4wXCkSj3WwoP13GLfhLp4BfcPXafrl/pIz1ZRQwKOOcEkJLS5Xr2yjgOBl/gnvjVwM34Er4fbg88jiuPlPowdxOw5aeeXUbvBgGiX9YVhLUhFZK8/OB6Fhs8M6lyAYUWlp/y9j6AHV9h1rdJEzCdZBRtBlc/W67lBAKZJeMGwMc8DNx1t89Woj3713A9wb3HBl/kcaAZtG7DN7NwusHZqcxgFuGO0R+eQJXT2xSVcB3iNBnBm8irpfQKrY5hY17RW4AONbgXivcHlIWr1Px29qZBvfyAHdrCht6iP1UAlfL+OdS6P8f74lwB/bh2j3C3ZZCfzSQHuyfFPTHoxx2axzEhQEF1kEBuOnfDvxEuhL7MlwwO3CNVgjjcT1Q1IeSWt01omQIe58fDYTOt7K22YArVaI/buZwre9yRv+kfAH+t9eKvbyL4gzgL/w30w5cMEJnLSzAP37qA04cqeKL8RutwtUGLME1XoeP0M4k3PGrzsQQ9tlyZszG/dsnFEz0SvuxK27EbtKSNpmSUAe8YhiLXtsz6p2MX6jm8veWlMNxC3Pw88xIAplCOKnOTRIqJ5qAO3H9RiduU+giY8LKYyluBn7FzULqc6sC/gNJaXoMvXWrCwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAADtElEQVRoge2ZSWgUQRSGv5hgFjcEIwoS9eACgqIIXvTiclFEo+DBg+akIAiC4gpeXC7qVRQjkQgibgcX3CBqogYlKBjcIujBNbiFuOCa9lCvmJqanp6a9DIq80Ez0++96vpfV3V1VTUUKRILpQnVMxyoAr4kVF+kTAeOA92AJ0cXcBSYUkBdzlQCDaTE6wS6jPNfwPpCCXShHLiEEvsBWAeMMfw1wB5UIh6wImmBruxECXwCjAqIWypx3UB1ArryYgTwA/gGTHCIP4VKZmOconrDVpSwA47x8yX+WmyKekF/4CpK2FzHMsMk/lVcovKhHDVC9ZAakX4CB4EKh7Ie8D1Oga4cJn2YNY9cXWyUxL2JU6ALM8iehD6mBZTXz8iNKMT0CVF2rXXejXrpmawJKL9IfptCaAhNGfCV9Lt/Emi0bJ1AiU/5gaike3AbqmOjhsxuNBvV3Xose5VP+Q3iu5SE2CCGkC72hOE7YNi/An2tspWoB9wD5qFapBb1tp+KfwvGyhkRcw7oZ9grgSOoltnrU26VlOsBXpDZstfjk+xPGWpakg2/LlUKPCVd+EvgLOoZewY0RyszHhaRSuAOMJMCdKV8uQLcBxZYNg84jXqz/xNo0R6wC5gk/98BgwuoK2/KgNWoab1H6sHeV0hRYVhA5vvmn6UVlcRbVEtFTpi5Vj60yW8Tar0eOUklokeotsCoECSVyGj5fRxXBUklondUElvW3iD3YulvOVpM4fb0wAt7JxIm6/RGZ1sN3JP/D1Gb0CazxPcFGOlQob5uLiqA/UZ8I+kza+frmQFDgXY5b5dzk2PiO+Yg0DURTR3qJnmod1De17MDzGRuW7EjgE/im2PYW1H91/xkESaRmw46nQL0ZK/TJ14vWdsN2yOxLcmnYqEfcMiIbyCCrqXRa4jzPvHLxPfAsK0Um/nya8F/wVQj198BXADek3r26vLUmTNgh9i2W/YyoEN8ywx7BfCazC5nc92ozz4+Erz12qtEzout1rIvF3sHmZ/wNorvckBdz0k9zNtRLTMOteT1gN/AZvyH2F4l0kn2O2e3RgkwGdht+Cdmqate/PZnhRJgiyTiSWIDokikOSCJt6S3hh3bBYzPUtdiicn2WWEuqot5wK0oEvGjFv8B4K7YX6P2rCoDrjEI9WHoh/z3Ywxqk8IeKCJLRA8A2yz7WFJfcYNGHY1uwcUOsSaRJXJR4hb6+OrE95nc+7qbJLbeoU6TDJ3/zaTRXo8kvl0ZgpbcIUWKFNH8AePChQWICzPFAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAACaklEQVRoge2avWsUYRCHn6hIQMVCG3NJTKxSqqU2KSUQDrU5SyOHldw/oaWFrSCYICqiRZrYmj8h6SNR5GIjeoJ6enc5i5nlIGS/Zmf3lrAPvLxwN/PbmZv381jIh+vAGrAN/AQ6wBawClzL6ZnuPAL2gWFI2wceji26hNxGgu0Cj4HLwFltV/Szv2pzc0wxJmITCfJuhM2K2nwoJCIjHSTI0xE2Z9TmRyERGQnmgZddYo55io2TKpGycSInXdfxn4SqIjFMxHzvXrGqIinJfc5UFUnJwTlTzZEwiqpIQG5z5chUpOhEJojfY0wcmYpU+0jZqPaRslElUjY8EzlXkE+uLAFfkUm8m8B+V233gBs5xpWKJtBHAnsF1BL41IDX6tMH7uUWXUJuAQMkmKbB/7769oG6Y1ypqAHfkV91JYNOUzW+kaya7qxqAGsOWi9U67mDViouIsPhF3DBQW8K+A30gBmLgHX5bQDHgbfIypOVNvAOOTI1LALWRBa1Xzf6H0agtRhp5cwXZEzPOmrOqeZnR81YuvrQSUfNSdX8Y3G2Dq2e9p7XgJPa/7M4WxNpa++xYgUEWu1IqxCsiexof9XofxiB1k6kVQjWRN5r73msCLQ2HDVjmUU2xC6yOWZlXrV6wLSDXiqeIavMSwetN6r11EErNdPIeyZD4EEGnZZqdJCjylioI8f4HrZkWsgQHQDLjnGZaGkgQ+SyNJfAZ57RcBqQraKu1BkNsy5yU2wAC8ApbQvAHSTZ4MWaDiWoxEHOA0+QYRb2ilPQBsg9xm1DzeOf8SmkQkvAJUbL8yfgI7JPrGPcwcP4D8j+kCkR9Vu5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAABQ0lEQVRIie2WwUrDQBCGPwWDRX0F7VHwqtAHaHwKn8XqS1SfQ/GulF58AmkrWL14jXhQqOhhJhCXzTbTZEVoP1iWDJn9mf2zmYUV/4AWcA48Ap/ABDjTeFTugG/PGMYWfwBGQBfY0vlJxXue99vAJTBFduhFn9tW4Q0dRboqPHbix8A7/h16A1KruMuOLvbhxO81fgMcIFYcAlcaz4C9OsKpLjRy4h3gBFjz5OTiF4sIJiqae3xqyD3SnGnopQF+n4pjAGwahL32rFdM/kLOcQ+p3PU4xL7Or4acRrhGKu7/hViCeJuLZsBuKKGKx9aRIec/SFPCM+Qr7s+rdHmps9UzarTOpjyO3jqLJMxvnVEpa53RKWudv6j6ry7Dd1no6Pxcc+0g+fUoBbZZvHWauaWZ1mmmhZzbCXLBGyOVRhVdYeIH2tSoI6BmL9UAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/summary-bg.eeec6dd2.png\";","module.exports = __webpack_public_path__ + \"static/media/divimg.8aaa8766.png\";","module.exports = __webpack_public_path__ + \"static/media/concimg.78cab841.png\";","module.exports = __webpack_public_path__ + \"static/media/toprow5.3bebfe51.png\";","module.exports = __webpack_public_path__ + \"static/media/profile.c819cf0f.png\";","module.exports = __webpack_public_path__ + \"static/media/header-hero.d32df65f.png\";","module.exports = __webpack_public_path__ + \"static/media/header-hero-left.d52e0fea.png\";","module.exports = __webpack_public_path__ + \"static/media/header-hero-right.501c7c6e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKsAAACUCAYAAADsxNlhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA0LTA5VDEzOjEwOjM5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNC0wOVQxMzoxNDo1NiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wNC0wOVQxMzoxNDo1NiswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphOTIxNmM4YS1jZGM1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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJQAAACUCAYAAAB1PADUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA0LTA5VDEzOjEwOjM3KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNC0wOVQxMzoxNiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wNC0wOVQxMzoxNiswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4ZDNiOTRmMS0wOGVjLWY1NGYt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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAACgCAYAAAAB4P5sAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA0LTA5VDEzOjEwOjM1KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNC0wOVQxMzoxOTo1NyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wNC0wOVQxMzoxOTo1NyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphZGYzZDhjMy0wYzgy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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAACtCAYAAABIgGYCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTA0LTA5VDEzOjEwOjQxKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNC0wOVQxMzoxNDowMSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wNC0wOVQxMzoxNDowMSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkMmZiMDY2Ni00ZTI5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\"","module.exports = __webpack_public_path__ + \"static/media/saas graphics.808721bd.png\";","module.exports = __webpack_public_path__ + \"static/media/saas-advantage-icon-1.ce8d622c.png\";","module.exports = __webpack_public_path__ + \"static/media/saas-advantage-icon-2.931a7722.png\";","module.exports = __webpack_public_path__ + \"static/media/saas-advantage-icon-3.8822c05b.png\";","module.exports = __webpack_public_path__ + \"static/media/saas-advantage-icon-4.e7240d61.png\";","module.exports = __webpack_public_path__ + \"static/media/extreme-heat.314205f9.png\";","module.exports = __webpack_public_path__ + \"static/media/flood.8365aa2e.png\";","module.exports = __webpack_public_path__ + \"static/media/typhoons.6ce2f70a.png\";","module.exports = __webpack_public_path__ + \"static/media/lock.689317d9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/legend_heatmap_h.2085eaca.png\";","module.exports = __webpack_public_path__ + \"static/media/24.be525c45.png\";","module.exports = __webpack_public_path__ + \"static/media/25.bd310c7a.png\";","module.exports = __webpack_public_path__ + \"static/media/29.77e34e49.png\";","module.exports = __webpack_public_path__ + \"static/media/30.42deb805.png\";","module.exports = __webpack_public_path__ + \"static/media/31.e8fa9e28.png\";","module.exports = __webpack_public_path__ + \"static/media/32.70355dd0.png\";","module.exports = __webpack_public_path__ + \"static/media/33.c234a5ab.png\";","module.exports = __webpack_public_path__ + \"static/media/34.cebda758.png\";","module.exports = __webpack_public_path__ + \"static/media/35.d828237f.png\";","module.exports = __webpack_public_path__ + \"static/media/36.a6930291.png\";","module.exports = __webpack_public_path__ + \"static/media/39.e7131a99.png\";","module.exports = __webpack_public_path__ + \"static/media/40.8330d0df.png\";","module.exports = __webpack_public_path__ + \"static/media/41.be811c99.png\";","module.exports = __webpack_public_path__ + \"static/media/42.5e5ad357.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAlCAYAAAAJBxroAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAO2SURBVHgB3ZldThRBEMeremZRwY/1BC4vComJQyLGN9cTgG/GKCwnAE+AngA4ActHeAVOwPpGXA1LYrLi0x5h3kBhuqwawaxsz24v3bMk/hI+MtO92/+pqq7qGoD/FIQBM/nmW0SBKiMETwAp4ktF/im1DWkBQYsXFmvQn4Cw8WVzvAZ9MhBh0fRBceju8DwBVeBfEVYQYIwEO5pg9+vmox2bObkKuxCkARYQqGg5jS2GNYLkkNhyhTNsXNxIVFAMhpJ4vzre6vUhuQl79vZoWitYtRTUYmuugYbaVdzOhHdhYqXCvZFFIL3QayxbpMa/PvoS045XYamou7f25N+uAxGrcHq6Ut963ICcCMET0etmqTCEIqqUNUYsFAY0t18da0HOeBGWWmoItyFTFMYkLrcxtgwDwouw85gyuh/7eksp/dJmJ/OJc4xNvmtWOGZWMz6cRdHARQnuFkNcNF7uISp68yMqBHqJB5ZkZ6xvjFfBI04W62atQNGoSVRmOiC1XN94+B48ocABLnWmjDd4O8+yVGNnIoYkud85Ry9Mznw/iCoHthVKV5yEpW5kvH660m1afXO8AporjU6iQjK8BB5wEobGRIxxvdo78Z6GJ+KKneOQKk/fNsvgiJvFjFBsM6pRnYg5Dl/Jg7h8D5U5bvvBURgaRKB1jEgcEmiT25Zcrea2eRAZXI6K/SzqTJ0YqxEM1Cw44GgxvWu6ihm5zYS4ZFrlX4aoDA44CTsLflaN7ohQfjZzZP3ECeGw8yo6bftOwtKnbY4RznGwLP0NsACNGw5dnzBBYkTKp847vLAw3LYRR0broNXumoWzMLGa1IRmcZzAw8JeWnp1gee+6LxKLXDASx6TbTtbXPcFikWNiR7R6XTt7QR9XhuOPp1pfgCpIQliq35GUJhPI/ISlOg1cGDgDdN2uOhlUdCRx8Tyn9fHRsGBHEoqO+Q8BgZRgrQRwJFrESY5LgxpL+P2io9D50BdsVfPkRfTYBecAA942zy60d7qZlHGxCuihtXxS/BErhaTYhgxmCI+Y3VrdUuteDs4flXjnAieyKXFHd65wULUlNSMFlNW6utjPdvh/eJFmIhRd25OB6BecEE7bfMiQrZ0rWkuj769YBVjaYPl10gpVElRn/c5FP9FUg/4KF+Gvx1gsnhSmBbOI1xj1tb9uV7Ht/QzWGo+Xvos2rnYZdJXRbdFUDU/QRdcyRWfV5qlJGFxiBEH/hP8Y8VS28eyVaiF/JpVXuBhEtbqWw9ze7Ni4jeY1XYcNzp/agAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/tr2.058a8031.png\";","module.exports = __webpack_public_path__ + \"static/media/carousel1.86327d4e.png\";","module.exports = __webpack_public_path__ + \"static/media/carousel2.173e62c7.png\";","module.exports = __webpack_public_path__ + \"static/media/carousel3.6628f1d1.png\";","module.exports = __webpack_public_path__ + \"static/media/carousel4.058ba24e.png\";","module.exports = __webpack_public_path__ + \"static/media/carousel5.da4f9409.png\";","module.exports = __webpack_public_path__ + \"static/media/landing_news_1.7ec9bdba.webp\";","module.exports = __webpack_public_path__ + \"static/media/landing_news_2.9de27506.webp\";","module.exports = __webpack_public_path__ + \"static/media/landing_news_3.4a9922a9.webp\";","module.exports = __webpack_public_path__ + \"static/media/4.844e5914.png\";","module.exports = __webpack_public_path__ + \"static/media/5.e54c2da6.png\";","module.exports = __webpack_public_path__ + \"static/media/6.fbdecf53.png\";","module.exports = __webpack_public_path__ + \"static/media/7.f026bd78.png\";","module.exports = __webpack_public_path__ + \"static/media/8.29d78cd0.png\";","module.exports = __webpack_public_path__ + \"static/media/9.6cb51279.png\";","module.exports = __webpack_public_path__ + \"static/media/10.e178fdc7.png\";","module.exports = __webpack_public_path__ + \"static/media/11.378b9932.png\";","module.exports = __webpack_public_path__ + \"static/media/12.a11ab227.png\";","module.exports = __webpack_public_path__ + \"static/media/13.2717994f.png\";","module.exports = __webpack_public_path__ + \"static/media/14.c5c590bc.png\";","module.exports = __webpack_public_path__ + \"static/media/15.a688a6b3.png\";","module.exports = __webpack_public_path__ + \"static/media/16.62ac1ae1.png\";","module.exports = __webpack_public_path__ + \"static/media/17.bdac75ca.png\";","module.exports = __webpack_public_path__ + \"static/media/18.99bbb948.png\";","module.exports = __webpack_public_path__ + \"static/media/19.445d8d0b.png\";","module.exports = __webpack_public_path__ + \"static/media/20.34b9c203.png\";","module.exports = __webpack_public_path__ + \"static/media/21.4ab6a83a.png\";","module.exports = __webpack_public_path__ + \"static/media/22.3a132240.png\";","module.exports = __webpack_public_path__ + \"static/media/chat.83756c84.png\";","module.exports = __webpack_public_path__ + \"static/media/map_logo.236c967e.png\";","module.exports = \"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAACAAAAAgAAQAAAACa3O6dAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAAHdElNRQfkAQoPERfIitsKAAAJEElEQVR42u3QMQEAAAwCIPuX1n8VBhFIn4sAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg4BpJ/neJdBB0dAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wMS0xMFQxNToxNzoyMyswMDowMIxnptUAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDEtMTBUMTU6MTc6MjMrMDA6MDD9Oh5pAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/signup.9e50c8a1.png\";","module.exports = __webpack_public_path__ + \"static/media/login.74b92a10.png\";","module.exports = __webpack_public_path__ + \"static/media/services-shape.958cbfc9.svg\";","module.exports = __webpack_public_path__ + \"static/media/services-shape-1.b377c1d5.svg\";","module.exports = __webpack_public_path__ + \"static/media/services-shape-2.48916fb1.svg\";","module.exports = __webpack_public_path__ + \"static/media/services-shape-3.e4a7f5ed.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAAAXNSR0IArs4c6QAAASdJREFUWEdjDJQwyA6SMp7AwMDAwkBf8Gfds/MFjIuNkn8PgOUwr/4BOeA/fT2OatuoA0Ah8JOBgYFtIKLhP8P/X4weYjpBYdIm81gZmbno6Yjf//9+W/X0TBIjPS3FZteoAwZFCDB7S+gGsTEwKzAwMTLTJU38+//ny99fD3e/vraOcaZ+zAMuZnZ5uliMZsmXvz8egMqBfwwMDAMVFf9Hi+KBj4LperHXeVjYNAYkEf75eROU+BhNBBTs5TgFZf//p09iZGRk+P/0+6cnJz/cPTBQqR8e4KMOGPgQ8JPSTwqRMJ7KyMDISscS8f9/hv+/1744mwUqB34xMDCALB8I8Hu0KB4UITCwacBXUj82RMJ4JhMjI6hvQK9s+f/f//+/1j0/nwEA2/dq16FKz4EAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/Mitigation.54e55bfd.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.236c967e.png\";","module.exports = __webpack_public_path__ + \"static/media/hazard_heatmap.424b48c1.png\";","module.exports = __webpack_public_path__ + \"static/media/ct_1.4d3fd41c.png\";","module.exports = __webpack_public_path__ + \"static/media/ct_2.bf9a78da.png\";","module.exports = __webpack_public_path__ + \"static/media/gp 1.d4d357a6.png\";","module.exports = __webpack_public_path__ + \"static/media/gp 2.bee10b66.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_1.d52bbb94.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_2.2178dd3f.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_3.71c89280.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_4.ec27ebe1.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_5.4c9553af.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_6.e40a3b43.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_7.3b05bbed.png\";","module.exports = __webpack_public_path__ + \"static/media/rf_8.c70679bc.png\";","module.exports = __webpack_public_path__ + \"static/media/ss_1.5c44f0c7.png\";","module.exports = __webpack_public_path__ + \"static/media/ss_2.347d586f.png\";","module.exports = __webpack_public_path__ + \"static/media/ss_3.223bd20d.png\";","module.exports = __webpack_public_path__ + \"static/media/ss_4.fee1b539.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_1.48a155ad.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_2.bdd3d045.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_3.d7b06dc2.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_4.b2da6516.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_5.da3d92d7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/tp_6.3f369e4b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/tp_7.2516a40b.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_8.277dae63.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_9.49ac21ba.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_10.bb7f505f.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_11.bb9d467c.png\";","module.exports = __webpack_public_path__ + \"static/media/tp_12.75aa2d5a.png\";","module.exports = __webpack_public_path__ + \"static/media/vs1.cbb242ca.png\";","module.exports = __webpack_public_path__ + \"static/media/vs2.63879bb9.png\";","module.exports = __webpack_public_path__ + \"static/media/vs3.7ebbacf9.png\";","module.exports = __webpack_public_path__ + \"static/media/vs4.71e0446d.png\";","module.exports = __webpack_public_path__ + \"static/media/vs5.4e479ef4.png\";","module.exports = __webpack_public_path__ + \"static/media/vs6.b092a5db.png\";","module.exports = __webpack_public_path__ + \"static/media/vs7.8451f1bd.png\";","module.exports = __webpack_public_path__ + \"static/media/vs8.d9ec3081.png\";","module.exports = __webpack_public_path__ + \"static/media/vs9.c4f0ebeb.png\";","module.exports = __webpack_public_path__ + \"static/media/vs10.fd658de2.png\";","module.exports = __webpack_public_path__ + \"static/media/vs11.f46ed594.png\";","module.exports = __webpack_public_path__ + \"static/media/vs12.7472cb09.png\";","module.exports = __webpack_public_path__ + \"static/media/drought_formula.3e5afdb2.png\";","module.exports = __webpack_public_path__ + \"static/media/map_landing.e830f4b4.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAADzUlEQVR4nO2az4scRRTH36IiGuNPAh48KFGM4MGLF0E3ARNHd9mp77etBHQ8qfMHeFYIEdy9ByJ48ZaQRQ/JImg0YPTkQUgUzJqAB0EQotFE4/Sr1pTUZoURdpPtmurpnp35wDt2V32/9arqdVWLTJgwYcKECZXirb2jIF9QckHJJQcsK3lRAbcS5EUHnHXAcQXmC2OeD8/IKONFpoIQRy4qmTvSlwkFeg44WgCt8C4ZJRSwjvymrOjrxOncGErTyclHFPgsofD/ZwV5omftw9JEcjJT4PeqxPeZcFnJl6QpeJEpBfZXLXwNIxZqXxt8EE++O2zxfQvloVpNUGC+LvF9Jrxdj3hyX93i+0x4uY7V/o8GGXCpZ8z2oRmgFW510SaQJ4YiPgderFvsepEDqFS8F5lKXOGljtOV7grFtdp+0Pn6iQKv5dY+6judLSFycoca83pI40HfX5DPVWaAIxejOwcsuyx7egNtPOPI7wcw4Ugl4v3c3NaYr7qVUSc/9+323Rtua2bmHgVORWbYX3529vbmpD+wXEZ8vwkOOBc1DbJsT3IDlFyIMmADab8eRZbtjMyCd6owYKmOvTmy5jgmqXERC1NY7RO0242YdmclNUr+UrYjYasbtN2wRUZk3gVJjQJatiMpDjbDOyIMyCU1CrhaDGi17oyYeiqp0XB0XccUMOaxCAN+ldS4UMmNyiJIfiepUeCjCAM+Hbhd8mTEGrCURnUfobiI/DjZJZE4Y6Zj2lTygKSmAGZiOhPqh1DWlm3PW3uvA85HmQ60khvgO50tSl6JGhHgVBkTgngFvohs689KPoYCDvggMgtCdXYu1PZyA8KUiR351ViUqiiybM8AHftvhEJt3w3bW6gTQqxudd2YBW+NNefZqo/Evh20k5UFcKbyi5LcmHbtQtcbfWNmZRjoOB+LB3rWPtSoixHycq/dflCGSW4MlbzaAPFXNcv2yhhfjs5LXfiwKwDv12YAcLj+fwS63VsU+LiG1D/pW61bpQn4ubmtjvx6iCN/xlt7lzQJb+222HP8kuJ/8NbeL02kZ8x2JX+uMO0vpDhlqhQHPFlFjRCuvFyWPSWjQHHtt9giofi/c9LIKKFZ1klRKK0UOuSrMoo44K0EGfCmjDIKHBxA/Hsy6nhrb3LkhxGpv+Snp2+WzYC39jYlvywh/qtwBimbCW/MfeHC4oYGAOdDUSWbkSvAA4788ToG/DT07/pho8DjSv62xl5/SdvtJ2QcKLJsZ/8PV+HmuQB2yzih5D4F/lktdF6RccSRb4Soux8TJsj48i+9fAjygVbRowAAAABJRU5ErkJggg==\"","import { createBrowserHistory } from 'history';\nexport const history = createBrowserHistory();\t","import { history } from \"../_helpers/history\";\nconst api_url = process.env.REACT_APP_API_URL;\n\nexport const loadUser = () => {\n return (dispatch, getState) => {\n dispatch({ type: \"USER_LOADING\" });\n\n const token = getState().auth.token;\n\n let headers = {\n \"Content-Type\": \"application/json\",\n };\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n return fetch(\"accounts/user/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n console.log(\"Server Error!\");\n throw res;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"USER_LOADED\", user: res.data });\n console.log(res.data);\n return res.data;\n } else if (res.status >= 400 && res.status < 500) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n }\n });\n };\n};\nexport const login = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n\n return fetch(api_url + \"api/user/rest_login/\", {\n headers,\n body: formdata,\n method: \"POST\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n console.log(\"Server Error!\");\n throw res;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"LOGIN_SUCCESSFUL\", data: res.data });\n\n localStorage.setItem(\"user_id\", res.data.user[\"id\"]);\n console.log(\n \"auth\",\n res.data.tier_data,\n JSON.stringify(res.data.tier_data)\n );\n localStorage.setItem(\"tier_data\", JSON.stringify(res.data.tier_data));\n\n history.push(\"/location\");\n return res.data;\n } else if (res.status === 403 || res.status === 401) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n\n throw res.data;\n } else {\n dispatch({ type: \"LOGIN_FAILED\", data: res.data });\n\n throw res.data;\n }\n });\n };\n};\nexport const register = (\n first_name,\n last_name,\n username,\n email,\n password,\n confirm_password,\n company_name\n) => {\n return (dispatch, getState) => {\n let headers = { \"Content-Type\": \"application/json\" };\n let body = JSON.stringify({\n first_name,\n last_name,\n username,\n email,\n password,\n confirm_password,\n company_name,\n });\n\n return fetch(api_url + \"api/user/register/\", {\n headers,\n body,\n method: \"POST\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n console.log(\"Server Error!\");\n throw res;\n }\n })\n .then((res) => {\n if (res.status === 200 || res.status === 201) {\n dispatch({ type: \"REGISTRATION_SUCCESSFUL\", data: res.data });\n history.push(\"/login\");\n return res.data;\n } else if (res.status === 403 || res.status === 401) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"REGISTRATION_FAILED\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const isUserAuthenticated = () => {\n return (\n localStorage.getItem(\"token\") !== null &&\n localStorage.getItem(\"token\") !== undefined\n );\n};\n\nexport const logout = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n return fetch(api_url + \"api/user/rest_logout/\", { headers, method: \"POST\" })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n console.log(\"Server Error!\");\n throw res;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"LOGOUT_SUCCESSFUL\", data: res.data });\n\n history.push(\"/login\");\n return res.data;\n } else if (res.status === 403 || res.status === 401) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"LOGOUT_FAILED\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n","import { history } from \"../_helpers/history\";\nconst api_url = process.env.REACT_APP_API_URL;\n\nconsole.log(\"env var\", api_url);\n\nexport const addLocations = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"LOCATION_ADDING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/create_project/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"ADD_LOCATION\", locus: res.data });\n if (res.data.success) {\n history.push({\n pathname: \"/dashboard\",\n state: { project_name: res.data },\n });\n }\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n\n throw res.data;\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const addCompanyLocations = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"LOCATION_ADDING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/create_project/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"ADD_LOCATION\", locus: res.data });\n if (res.data.success) {\n history.push({\n pathname: \"/company-dashboard\",\n state: { project_name: res.data },\n });\n }\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n\n throw res.data;\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const addBuildingLocations = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"NONBUILDING_ADDING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/nonbuilding/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"NONBUILDING_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"ADD_NONBUILDING\", locus: res.data });\n history.push({\n pathname: \"/dashboard\",\n state: { project_name: res.data },\n });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"NONBUILDING_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getLocations = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/portfolio/\" + id + \"/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_LOCATION\", locus: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"LOCATION_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getAssets = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/\" + id + \"/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_ASSET\", assets: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getUser = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/user/permissions/\" + id + \"/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PERMISSION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_PERMISSION\", permissions: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"PERMISSION_FAIL\", permissions: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getName = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/search/deepsearch/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"SEARCH_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_SEARCH\", name: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"SEARCH_FAIL\", name: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getCompanyName = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n headers[\"x-typesense-api-key\"] = \"4BGFeVwv12CXhlhiJs8FtMrRcQIoztX7\";\n }\n\n fetch(\n `https://search.intensel.net/collections/company_locations/documents/search?q=${formdata}&query_by=company_name,ticker&group_by=ticker,&include_fields=ticker,company_name,index`,\n {\n headers,\n method: \"GET\",\n }\n )\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"COMPANY_SEARCH_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_COMPANY_SEARCH\", company_name: res.data });\n console.log(\"search\", res.data);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"COMPANY_SEARCH_FAIL\", company_name: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getCompanyLocations = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n headers[\"x-typesense-api-key\"] = \"4BGFeVwv12CXhlhiJs8FtMrRcQIoztX7\";\n }\n\n fetch(\n `https://search.intensel.net/collections/company_locations/documents/search?q=${formdata}&query_by=ticker&filter_by=ticker:=${formdata}&include_fields=address_data,latitude,longitude&per_page=50`,\n {\n headers,\n method: \"GET\",\n }\n )\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"COMPANY_LOCATION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"FETCH_COMPANY_LOCATION\",\n company_location: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"COMPANY_LOCATION_FAIL\",\n company_location: res.data,\n });\n throw res.data;\n }\n });\n };\n};\nexport const getCoordinates = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token =\n \"pk.eyJ1IjoiaW50ZW5zZWxtYXAiLCJhIjoiY2t0anFybWpjMDBmYjMwcGd1MDN0eWsyZiJ9.mwGRBkdc2cUvG0hv66K7Ow\";\n\n fetch(\n \"https://api.mapbox.com/geocoding/v5/mapbox.places/\" +\n formdata +\n \".json?access_token=\" +\n token,\n { headers, method: \"GET\" }\n )\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"COORDINATES_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_COORDINATES\", point: res.data });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"COORDINATES_FAIL\", point: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getIndices = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/index/\" + id + \"/?index=\" + formdata, {\n headers,\n method: \"GET\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"INDICES_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"POST_INDICES\", indices: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"INDICES_FAIL\", indices: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const addIndex = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/index/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"INDEX_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"ADD_INDEX\", index: res.data });\n history.push({ pathname: \"/project\" });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"INDEX_FAIL\", index: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getTransition = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/create_carbon_analysis/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"TRANSITION_FAIL\", transition: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"GET_TRANSITION\", transition: res.data });\n if (res.data.success) {\n history.push({ pathname: \"/project\" });\n }\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"TRANSITION_FAIL\", transition: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getsbti = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/science_based_targets/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"SBTI_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_SBTI\", sbti: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"SBTI_FAIL\", sbti: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const ModifyTransition = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/modify_carbon_analysis/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"MODIFY_TRANSITION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"MODIFY_TRANSITION\", modify_transition: res.data });\n history.go(0);\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"MODIFY_TRANSITION_FAIL\",\n modify_transition: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const PropertyRisk = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/create_real_estate_project/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PROPERTY_RISK_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"PROPERTY_RISK\", property: res.data });\n history.push({\n pathname: \"/realestate-dashboard\",\n state: res.data,\n });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"PROPERTY_RISK_FAIL\",\n property: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const getPropertyRisk = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/get_real_estate_data/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"GET_PROPERTY_RISK_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_PROPERTY_RISK\", property: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"GET_PROPERTY_RISK_FAIL\",\n property: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const Notification = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/user/mark_notification_read/\", {\n headers,\n method: \"POST\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"NOTIFICATION_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"NOTIFICATION_SUCCESS\", notification: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"NOTIFICATION_FAIL\",\n property: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n/*export const fetchChangelogs = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/change_logs/\", {\n headers,\n method: \"GET\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CHANGE_LOGS\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"CHANGE_LOGS\", changelogs: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"CHANGE_LOGS_FAIL\",\n changelogs: res.data,\n });\n throw res.data;\n }\n });\n };\n};*/\nexport const fetchKeywords = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/keyword_help_v2/\", {\n headers,\n method: \"GET\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"KEYWORD\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"KEYWORD\", keyword: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"KEYWORD_FAIL\",\n keyword: res.data,\n });\n throw res.data;\n }\n });\n };\n};\nexport const fetchFaqs = (formdata) => {\n return async (dispatch) => {\n try {\n const token = localStorage.getItem(\"token\");\n const headers = {\n \"Content-Type\": \"application/json\",\n };\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n const response = await fetch(api_url + \"api/v2/keyword_help_v2/\", {\n method: \"POST\",\n headers,\n body: JSON.stringify(formdata),\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.message || \"Failed to fetch FAQs\");\n }\n\n const data = await response.json();\n dispatch({ type: \"FAQS\", faqs: data });\n } catch (error) {\n console.error(\"Error fetching FAQs:\", error);\n dispatch({ type: \"FAQS_FAIL\", error: error.message });\n }\n };\n};\n\nexport const createMap = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"CREATE_MAP\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/create_map_project/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"MAP_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"MAP_ADD\", map: res.data });\n if (res.data.name) {\n history.push({\n pathname: \"/map\",\n state: { name: res.data },\n });\n }\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n\n throw res.data;\n } else {\n dispatch({ type: \"MAP_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const generateMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/map_asset_dashboard/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"GENERATE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GENERATE_SUCCESS\", map_response: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"GENERATE_FAIL\",\n map_response: res.data,\n });\n throw res.data;\n }\n });\n };\n};\nexport const downloadMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/download_map_report/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DOWNLOAD_MAP_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"DOWNLOAD_MAP_SUCCESS\", download_map: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"DOWNLOAD_MAP_FAIL\",\n download_map: res.data,\n });\n throw res.data;\n }\n });\n };\n};\nexport const MapValue = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/map_property_risk_value/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DOWNLOAD_MAP_VALUE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"DOWNLOAD_MAP_VALUE_SUCCESS\",\n download_map_value: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"DOWNLOAD_MAP_VALUE_FAIL\",\n download_map_value: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const Dataset = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/dataset_availability/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DATASET_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"DATASET_SUCCESS\",\n dataset: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"DATASET_FAIL\",\n dataset: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n","import { history } from \"../_helpers/history\";\n\nconst api_url = process.env.REACT_APP_API_URL;\n\nexport const getAssets = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/\" + id + \"/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_ASSET\", asset: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const updateAsset = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"ASSET_LOADING\" });\n\n let headers = {};\n\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/modify-asset/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"UPDATE_ASSET\", asset: res.data });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const deleteAsset = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/asset/delete/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"DELETE_ASSET\", assets: res.data });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSET_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const Typhoon = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/hazard/typhoon_track/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"TYPHOON_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"TYPHOON_TRACK\", typhoon: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"TYPHOON_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n","export const getCompanies = () =>{\n\treturn(dispatch,getState) =>{\n\t\tlet headers={}\n\t\t\n\t\t\n\t\tfetch('data.json',{headers,})\n\t\t\t.then(res=>{\n\t\t\t\tif(res.status < 500){\n\t\t\t\t\treturn res.json().then(data=>{\n\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\treturn { status:res.status , data};\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tdispatch({type:'COMPANY_FAIL',data:res.data});\n\t\t\t\t\tconsole.log(\"Server Error\");\n\t\t\t\t\tthrow res.data;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.then(res =>{\n\t\t\t\tif(res.status===200){\n\t\t\t\t\tdispatch({type:'FETCH_COMPANY',company:res.data});\n\t\t\t\t\t\n\t\t\t\t\treturn res.data;\n\t\t\t\t}\n\t\t\t\telse if (res.status ===401 || res.status===403){\n\t\t\t\t\tdispatch({type:'AUTHENTICATION_ERROR',data:res.data});\n\t\t\t\t\tthrow res.data;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdispatch({type:'COMPANY_FAIL',data:res.data});\n\t\t\t\t\tthrow res.data;\n\t\t\t\t}\n\t\t\t})\n\t}\n\n}","import { history } from \"../_helpers/history\";\n\nconst api_url = process.env.REACT_APP_API_URL;\n\nexport const addProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/project/update/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"ADD_PROJECT\", project: res.data });\n console.log(\"project ke action mine\", res.data);\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getProjects = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/project/\" + id + \"/\", { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_PROJECT\", project: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getProjectList = (type) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/project/all_projects/?list_for=\" + type, { headers })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PROJECT_LIST_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_PROJECT_LIST\", list: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"PROJECT_LIST_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\n/*export const getCSV = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/download_csv_report/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_CSV\", csv: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", csv: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};*/\n\nexport const getCSV = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/download_csv_report/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_CSV\", csv: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", csv: res.data });\n history.push(\"/login\");\n throw res.data;\n } else if (res.status === 400) {\n // Handle 400 error here\n dispatch({ type: \"CSV_ERROR\", csv: res.data });\n throw res.data;\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n throw res.data;\n }\n })\n .catch((error) => {\n console.error(\"Error occurred:\", error);\n });\n };\n};\n\nexport const getLoss = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/portfolio/loss&risk/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_CSV\", csv: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", csv: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getSummary = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/summary_report/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_CSV\", csv: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", csv: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"CSV_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const deleteProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/project/delete/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"DELETE_PROJECT\", project: res.data });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"PROJECT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const shareProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/share_project/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"SHARE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"SHARE_PROJECT\", project: res.data });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", data: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"SHARE_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getInvoice = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/invoice/financial/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"INVOICE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_INVOICE\", invoice: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", invoice: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"INVOICE_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/draft/get/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"REPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_REPORT\", report: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", report: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"REPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const addReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/draft/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"REPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"ADD_REPORT\", report: res.data });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", report: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"REPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getDetailedReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/variable_data/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DETAILREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_DETAILREPORT\", detailreport: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", detailreport: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"DETAILREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getWindReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/wind_data/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"WINDREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_WINDREPORT\", windreport: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", windreport: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"WINDREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getLossReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/loss_data/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"LOSSREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_LOSSREPORT\", lossreport: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", lossreport: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"LOSSREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getCountryWiseLossReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/country_loss/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"COUNTRYWISELOSSREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"FETCH_COUNTRYWISELOSSREPORT\",\n countrywiselossreport: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n countrywiselossreport: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"COUNTRYWISELOSSREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getOverallMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/loss_map/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"OVERALLMAPIMAGE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"FETCH_OVERALLMAPIMAGE\",\n overallmapimage: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n overallmapimage: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"OVERALLMAPIMAGE_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getAssetMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/dashboard/plot_map/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSETMAPIMAGE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"FETCH_ASSETMAPIMAGE\",\n assetmapimage: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n assetmapimage: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSETMAPIMAGE_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getTcfdReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/report_data/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"TCFDREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_TCFDREPORT\", tcfd: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", tcfd: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"TCFDREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getPptReport = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/generate_pdf_report/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"PPTREPORT_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_PPTREPORT\", ppt: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", ppt: res.data });\n history.push(\"/login\");\n\n throw res.data;\n } else {\n dispatch({ type: \"PPTREPORT_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getInsurance = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/insurance_loss/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"INSURANCE_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_INSURANCE\", insurance: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", insurance: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"INSURANCE_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getSatelliteMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/assets_map/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"ASSETMAP_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_ASSETMAP\", map: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", map: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"ASSETMAP_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getMap = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/dashboard/plot_mapbox/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"MAP_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"FETCH_MAP\", overall_map: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", overall_map: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"MAP_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const Dropbox = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/report/get_link/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"LINK_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 201) {\n dispatch({ type: \"FETCH_LINK\", link: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", link: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"LINK_FAIL\", data: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getTransitionProject = () => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/report/get_carbon_project_list/\" + id + \"/\", {\n headers,\n method: \"GET\",\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({\n type: \"TRANSITION_PROJECT_FAIL\",\n transition_project: res.data,\n });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"TRANSITION_PROJECT\",\n transition_project: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n transition_project: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"TRANSITION_PROJECT_FAIL\",\n transition_project: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const getCarbonProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/report/get_carbon_analysis/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"CARBON_PROJECT_FAIL\", carbon_project: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"CARBON_PROJECT\", carbon_project: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", carbon_project: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"CARBON_PROJECT_FAIL\", carbon_project: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getCarbonProjectData = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/report/get_carbon_project_data/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({\n type: \"GET_CARBON_PROJECT_FAIL\",\n carbon_project_data: res.data,\n });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"GET_CARBON_PROJECT\",\n carbon_project_data: res.data,\n });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n carbon_project_data: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"GET_CARBON_PROJECT_FAIL\",\n carbon_project_data: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const deleteCarbonProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/report/delete_carbon_analysis/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({\n type: \"DELETE_CARBON_PROJECT_FAIL\",\n delete_carbon_project_data: res.data,\n });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"DELETE_CARBON_PROJECT\",\n delete_carbon_project_data: res.data,\n });\n history.go(0);\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n delete_carbon_project_data: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"DELETE_CARBON_PROJECT_FAIL\",\n delete_carbon_project_data: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n\nexport const downloadCarbonProject = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/report/get_carbon_analysis/\" + id + \"/download/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({\n type: \"DOWNLOAD_CARBON_PROJECT_FAIL\",\n downlaod_carbon_project_data: res.data,\n });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"DOWNLOAD_CARBON_PROJECT\",\n download_carbon_project_data: res.data,\n });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n download_carbon_project_data: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"DOWNLOAD_CARBON_PROJECT_FAIL\",\n download_carbon_project_data: res.data,\n });\n throw res.data;\n }\n });\n };\n};\nexport const updateFilter = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n fetch(api_url + \"api/project/update_default_filter/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({\n type: \"UPDATE_FILTER_FAIL\",\n filter: res.data,\n });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({\n type: \"UPDATE_FILTER\",\n filter: res.data,\n });\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({\n type: \"AUTHENTICATION_ERROR\",\n filter: res.data,\n });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({\n type: \"UPDATE_FILTER_FAIL\",\n filter: res.data,\n });\n throw res.data;\n }\n });\n };\n};\n","import { history } from \"../_helpers/history\";\nconst api_url = process.env.REACT_APP_API_URL;\n\nexport const postDashboard = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"DASHBOARD_LOADING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/dashboard/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DASHBOARD_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"ADD_DASHBOARD\", feedback: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", feedback: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"DASHBOARD_FAIL\", feedback: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const sspDashboard = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"DASHBOARD_LOADING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/dashboard/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DASHBOARD_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"ADD_DASHBOARD\", feedback: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", feedback: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"DASHBOARD_FAIL\", feedback: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getBuilding = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/building/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"BUILDING_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n console.log(\"respskso\", res.data);\n dispatch({ type: \"GET_BUILDING\", building: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", building: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"BUILDING_FAIL\", building: res.data });\n throw res.data;\n }\n });\n };\n};\nexport const getDetail = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/dashboard/detailed/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DETAIL_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n console.log(\"respskso\", res.data);\n dispatch({ type: \"GET_DETAIL\", detail: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", detail: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"DETAIL_FAIL\", detail: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getDetailByYear = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/portfolio/allyear/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"DETAIL__YEAR_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n console.log(\"respskso\", res.data);\n dispatch({ type: \"GET_DETAIL_YEAR\", detailyear: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", detailyear: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"DETAIL_YEAR_FAIL\", detailyear: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const getSummary = (formdata) => {\n return (dispatch, getState) => {\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/dashboard/summary/\" + id + \"/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"SUMMARY_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"GET_SUMMARY\", summary: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", summary: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"SUMMARY_FAIL\", summary: res.data });\n throw res.data;\n }\n });\n };\n};\n\nexport const postBenchmark = (formdata) => {\n return (dispatch, getState) => {\n dispatch({ type: \"BENCHMARK_LOADING\" });\n let headers = {};\n let token = localStorage.getItem(\"token\");\n let id = localStorage.getItem(\"user_id\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n\n fetch(api_url + \"api/v2/benchmark/\", {\n headers,\n method: \"POST\",\n body: formdata,\n })\n .then((res) => {\n if (res.status < 500) {\n return res.json().then((data) => {\n return { status: res.status, data };\n });\n } else {\n dispatch({ type: \"BENCHMARK_FAIL\", data: res.data });\n console.log(\"Server Error\");\n throw res.data;\n }\n })\n .then((res) => {\n if (res.status === 200) {\n dispatch({ type: \"ADD_BENCHMARK\", benchmark: res.data });\n\n return res.data;\n } else if (res.status === 401 || res.status === 403) {\n dispatch({ type: \"AUTHENTICATION_ERROR\", benchmark: res.data });\n history.push(\"/login\");\n throw res.data;\n } else {\n dispatch({ type: \"BENCHMARK_FAIL\", benchmark: res.data });\n throw res.data;\n }\n });\n };\n};\n","import React from \"react\";\nimport { Dimmer, Loader, Image, Segment } from \"semantic-ui-react\";\n\nconst Spinner = () => (\n
\n \n \n \n \n \n
\n);\n\nexport default Spinner;\n","import React, { Component } from \"react\";\nimport { ReCaptcha } from \"react-recaptcha-google\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n} from \"semantic-ui-react\";\nimport { Redirect } from \"react-router-dom\";\nimport signup from \"../assets/signup.png\";\nimport logo from \"../assets/logo1.png\";\nimport { connect } from \"react-redux\";\nimport { auth } from \"../actions\";\nimport Zoom from \"react-reveal/Zoom\";\nimport PropTypes from \"prop-types\";\nimport Spinner from \"./spinner\";\nimport \"./register.css\";\n\nfunction ValidationMessage(props) {\n if (!props.valid) {\n return
{props.message}
;\n }\n return null;\n}\n\nclass Register extends Component {\n componentDidMount() {\n if (this.captchaDemo) {\n this.captchaDemo.reset();\n }\n }\n onLoadRecaptcha() {\n if (this.captchaDemo) {\n this.captchaDemo.reset();\n }\n }\n\n state = {\n first_name: \"\",\n last_name: \"\",\n username: \"\",\n email: \"\",\n password: \"\",\n confirm_password: \"\",\n company_name: \"\",\n passwordConfirmValid: false,\n formValid: false,\n errorMsg: {},\n loading: false,\n };\n\n validateForm = () => {\n const { passwordConfirmValid } = this.state;\n this.setState({\n formValid: passwordConfirmValid,\n });\n };\n\n updatePasswordConfirm = (confirm_password) => {\n this.setState({ confirm_password }, this.validatePasswordConfirm);\n };\n\n validatePasswordConfirm = () => {\n const { confirm_password, password } = this.state;\n let passwordConfirmValid = true;\n let errorMsg = { ...this.state.errorMsg };\n\n if (password !== confirm_password) {\n passwordConfirmValid = false;\n errorMsg.confirm_password = \"Passwords do not match\";\n }\n\n this.setState({ passwordConfirmValid, errorMsg }, this.validateForm);\n };\n onSubmit = (e) => {\n e.preventDefault();\n this.setState({ loading: true }, () => {\n this.props.register(\n this.state.first_name,\n this.state.last_name,\n this.state.username,\n this.state.email,\n this.state.password,\n this.state.confirm_password,\n this.state.company_name\n );\n });\n };\n\n render() {\n if (auth.isUserAuthenticated()) {\n return ;\n }\n console.log(this.props.errors);\n return (\n \n \n
\n \n\n
\n
\n
\n \n \n

\n Create Account\n

\n {this.props.errors.length > 0 ? (\n
\n \n {this.props.errors[0].message}\n \n
\n ) : null}\n
\n
\n \n \n this.setState({ first_name: e.target.value })\n }\n />\n \n\n this.setState({ last_name: e.target.value })}\n />\n \n this.setState({ username: e.target.value })}\n />\n this.setState({ email: e.target.value })}\n />\n \n \n this.setState({ password: e.target.value })}\n />\n this.updatePasswordConfirm(e.target.value)}\n />\n \n \n this.setState({ company_name: e.target.value })\n }\n />\n\n {this.state.loading && this.props.errors.length == 0 ? (\n \n \n \n ) : (\n \n Register\n \n )}\n \n
\n Already have an Account ? Login\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n let errors = [];\n if (state.auth.errors) {\n errors = Object.keys(state.auth.errors).map((field) => {\n return { field, message: state.auth.errors[field] };\n });\n }\n return {\n errors,\n isAuthenticated: state.auth.isAuthenticated,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n register: (\n first_name,\n last_name,\n username,\n email,\n password,\n confirm_password,\n company_name\n ) =>\n dispatch(\n auth.register(\n first_name,\n last_name,\n username,\n email,\n password,\n confirm_password,\n company_name\n )\n ),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Register);\n","import React, { Component } from \"react\";\nimport { ReCaptcha } from \"react-recaptcha-google\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Icon,\n Dropdown,\n Checkbox,\n} from \"semantic-ui-react\";\nimport { Redirect } from \"react-router-dom\";\nimport login from \"../assets/login.png\";\nimport logo from \"../assets/logo1.png\";\nimport { connect } from \"react-redux\";\nimport { auth } from \"../actions\";\n\nimport Spinner from \"./spinner\";\n\nimport styles from \"./login.css\";\n\nconst AnalysisOptions = [\n { key: \"HongKong\", value: \"local\", text: \"HongKong\" },\n { key: \"Global\", value: \"global\", text: \"Global\" },\n];\n\nclass Login extends Component {\n state = {\n username: \"\",\n password: \"\",\n company_code: \"\",\n loading: false,\n remember: true,\n analysis: \"\",\n };\n\n componentDidMount() {\n if (this.captchaDemo) {\n this.captchaDemo.reset();\n }\n }\n onLoadRecaptcha() {\n if (this.captchaDemo) {\n this.captchaDemo.reset();\n }\n }\n\n onSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"username\", this.state.username);\n formdata.append(\"password\", this.state.password);\n formdata.append(\"company_code\", this.state.company_code);\n\n this.setState({ loading: true }, () => {\n this.props.login(formdata);\n });\n };\n handleAnalysis = (e, value) => {\n this.setState({ analysis: value.value }, () =>\n console.log(\"this.state.ana\", this.state.analysis)\n );\n };\n\n render() {\n if (auth.isUserAuthenticated()) {\n return ;\n }\n console.log(this.props.errors);\n return (\n \n \n
\n \n\n
\n
\n
\n\n \n\n \n

Sign In

\n {this.props.errors.length > 0 ? (\n
\n \n {this.props.errors[0].message}\n \n
\n ) : null}\n
\n
\n \n this.setState({ username: e.target.value })}\n />\n \n\n \n this.setState({ password: e.target.value })}\n />\n \n\n \n \n this.setState({ company_code: e.target.value })\n }\n />\n \n\n this.setState({ remember: e.target.checked })}\n style={{ width: \"100%\" }}\n />\n\n {this.state.loading && this.props.errors.length == 0 ? (\n \n \n \n ) : (\n \n Login\n \n )}\n \n
\n {/*Don't have an Account ? Create an Account*/}\n \n Forgot password ?\n \n
\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n let errors = [];\n if (state.auth.errors) {\n errors = Object.keys(state.auth.errors).map((field) => {\n return { field, message: state.auth.errors[field] };\n });\n }\n\n return {\n errors,\n isAuthenticated: state.auth.isAuthenticated,\n user: state.auth.user,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n login: (formdata) => {\n return dispatch(auth.login(formdata));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","import React from 'react'\nimport './loader.css';\nimport $ from 'jquery';\n\nimport {Image} from 'semantic-ui-react';\n\n\n\nlet counter=0;\nclass PortfolioSpinner extends React.Component{\n\nsetInterval=()=>{\n\tif(counter==6){\n\t\tcounter=0;\n\t}\n\tthis.changeImage(counter);\n\tthis.changeText(counter);\n\tcounter++;\n\n\n}\nchangeImage=(counter)=>{\n\tlet images=[\n\t\n\t'',\n\t'',\n\t'',\n\t'',\n\t'',\n\t'',\n\t\n\t]\n\t$(\".loader .image\").html(\"\"+ images[counter] +\"\");\n}\nchangeText=(counter)=>{\n\tlet text=[\n\t\t'

Creating Portfolio

',\n\t\t'

Mapping Dashboard

',\n\t\t'

Calculating Risk

',\n\t\t'

Analysing Asset

',\n\t\t'

Preparing Dashboard

',\n\t\t'

Loading....

'\n\t]\n\t$(\".loader p\").html(\"\"+text[counter]+\"\");\n}\n\nloading=()=>{\n\tlet num=0;\n\t for( let i=0; i<=100; i++) {\n setTimeout(function() { \n $('.loader span').html(num+'%');\n\n if(num == 100) {\n \n }\n num++;\n },i*3600);\n };\n}\n\ncomponentDidMount(){\n\tthis.interval = setInterval(this.setInterval,3000)\n\tthis.loading();\n}\n\n\n\n\nrender(){\n\n\treturn(\n
\n
\n \t\n
\n

\n \n
\n)\n\n}\n}\n\nexport default PortfolioSpinner;","import React, { useRef, useEffect, useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport * as MapboxGeocoder from \"@mapbox/mapbox-gl-geocoder\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Icon } from \"semantic-ui-react\";\nimport { Marker, Popup, FlyToInterpolator, Layer, Source } from \"react-map-gl\";\nimport data from \"../constants/menu\";\nimport { ConsoleSqlOutlined } from \"@ant-design/icons\";\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\n//localhost ///production // ... (other imports and code) // ... (previous imports and code)\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\nexport default function LocationMap(props) {\n const mapContainer = useRef(null);\n const map = useRef(null);\n const [lng, setLng] = useState(114.1838);\n const [lat, setLat] = useState(22.2797);\n const [zoom, setZoom] = useState(5.5);\n const [mapData, setMapData] = useState([]);\n const [selectedMarker, setSelectedMarker] = useState(null);\n\n const nextMarkerId = useRef(0);\n\n const copyToClipboard = (latitude, longitude) => {\n const textToCopy = `${latitude}, ${longitude}`;\n const textField = document.createElement(\"textarea\");\n textField.innerText = textToCopy;\n document.body.appendChild(textField);\n textField.select();\n document.execCommand(\"copy\");\n textField.remove();\n\n // You can show a notification or perform any other action after copying to clipboard\n alert(\"Latitude and Longitude copied to clipboard!\");\n };\n\n useEffect(() => {\n if (map.current) return; // initialize map only once\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [lng, lat],\n zoom: zoom,\n });\n map.current.addControl(\n new MapboxGeocoder({\n accessToken: mapboxgl.accessToken,\n mapboxgl: mapboxgl,\n })\n );\n }, [lng, lat, zoom]);\n\n useEffect(() => {\n if (!map.current) return;\n map.current.on(\"load\", () => {\n // Insert the layer beneath any symbol layer.\n const layers = map.current.getStyle().layers;\n const labelLayerId = layers.find(\n (layer) => layer.type === \"symbol\" && layer.layout[\"text-field\"]\n ).id;\n\n // The 'building' layer in the Mapbox Streets\n // vector tileset contains building height data\n // from OpenStreetMap.\n map.current.addLayer(\n {\n id: \"add-3d-buildings\",\n source: \"composite\",\n \"source-layer\": \"building\",\n filter: [\"==\", \"extrude\", \"true\"],\n type: \"fill-extrusion\",\n minzoom: 15,\n paint: {\n \"fill-extrusion-color\": \"#aaa\",\n \"fill-extrusion-height\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"height\"],\n ],\n \"fill-extrusion-base\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"min_height\"],\n ],\n \"fill-extrusion-opacity\": 0.6,\n },\n },\n labelLayerId\n );\n });\n // wait for map to initialize\n }, []);\n\n useEffect(() => {\n if (!map.current) return;\n\n map.current.on(\"click\", async (e) => {\n const id = nextMarkerId.current++;\n const color = getRandomColor();\n const marker = new mapboxgl.Marker({ color: color })\n .setLngLat([e.lngLat.lng, e.lngLat.lat])\n .addTo(map.current);\n\n setMapData((prevMapData) => [\n ...prevMapData,\n {\n id: id,\n marker: marker,\n color: color,\n name: null,\n latitude: e.lngLat.lat,\n longitude: e.lngLat.lng,\n },\n ]);\n\n try {\n const response = await fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${e.lngLat.lng},${e.lngLat.lat}.json?access_token=pk.eyJ1IjoibGt0eWFnaSIsImEiOiJja2dhMmVrNGcwMzNxMnRrenhrbGh4YzBoIn0.h31ayIFQsUoW1YpL3LVkOQ`\n );\n\n if (!response.ok) return;\n\n const data = await response.json();\n const firstFeature = data.features[0];\n\n if (firstFeature && firstFeature.context) {\n const country = firstFeature.context.find((c) =>\n c.id.startsWith(\"place\")\n );\n const countryCode = country?.short_code?.toUpperCase();\n\n if (countryCode === \"HK\") {\n // Fetch from OpenStreetMap if country is Hong Kong\n const osmResponse = await fetch(\n `https://nominatim.openstreetmap.org/reverse?format=json&lat=${e.lngLat.lat}&lon=${e.lngLat.lng}&zoom=18&addressdetails=1&accept-language=en`\n );\n const osmData = await osmResponse.json();\n const locationName = osmData.name || osmData.display_name;\n\n setMapData((prevMapData) =>\n prevMapData.map((item) =>\n item.id === id ? { ...item, name: locationName } : item\n )\n );\n } else {\n // Default to Mapbox place name\n const address = firstFeature.place_name.split(\",\")[0];\n setMapData((prevMapData) =>\n prevMapData.map((item) =>\n item.id === id ? { ...item, name: address } : item\n )\n );\n }\n }\n } catch (error) {\n console.error(\"Geocoding error:\", error);\n }\n });\n }, []);\n\n const getRandomColor = () => {\n // Function to generate a random hex color\n return \"#\" + Math.floor(Math.random() * 16777215).toString(16);\n };\n\n /* const handleMarkerClick = (index) => {\n console.log(\"marker\", index, mapData[index]);\n if (mapData[index]) {\n setSelectedMarker(index);\n }\n };\n\n const handlePopupClose = () => {\n setSelectedMarker(null);\n };*/\n\n const handleDeleteMapData = (id) => {\n const mapDataToDelete = mapData.find((item) => item.id === id);\n\n if (mapDataToDelete) {\n mapDataToDelete.marker.remove();\n setMapData((prevMapData) => prevMapData.filter((item) => item.id !== id));\n }\n };\n\n useEffect(() => {\n // Log mapData to the console\n\n const transformedMapData = mapData.map(\n ({ name, latitude, longitude, color }) => ({\n name,\n latitude,\n longitude,\n color,\n })\n );\n // Call the callback function with the transformed mapData\n props.onMapDataChange(transformedMapData);\n }, [mapData]);\n console.log(\"data\", mapData);\n\n return (\n \n \n

Mark locations to analyze

\n
\n \n \n
\n
\n
\n
Name
\n
Latitude
\n
Longitude
\n
Delete
\n
Copy
\n
\n {mapData.map((item, index) => (\n
\n \n \n {item.name ? item.name.slice(0, 20) : \"Loading...\"}\n
\n
\n {item.latitude.toFixed(3)}\n
\n
\n {item.longitude.toFixed(3)}\n
\n
\n handleDeleteMapData(item.id)}\n style={{\n cursor: \"pointer\",\n color: \"black\",\n paddingLeft: \"10%\",\n }}\n >\n
\n
\n \n copyToClipboard(item.latitude, item.longitude)\n }\n style={{ cursor: \"pointer\", color: \"black\" }}\n />\n
\n
\n ))}\n
\n
\n \n
\n );\n}\n","import {\n MENU_SET_CLASSNAMES,\n MENU_CONTAINER_ADD_CLASSNAME,\n MENU_CLICK_MOBILE_MENU,\n MENU_CHANGE_DEFAULT_CLASSES,\n MENU_CHANGE_HAS_SUB_ITEM_STATUS,\n MENU_CHANGE_TITLE\n} from '../actions';\n\nexport const changeSelectedMenuHasSubItems = (payload) => {\n return (\n {\n type: MENU_CHANGE_HAS_SUB_ITEM_STATUS,\n payload: payload\n }\n )\n}\n\nexport const changeDefaultClassnames = (strCurrentClasses) => {\n return (\n {\n type: MENU_CHANGE_DEFAULT_CLASSES,\n payload: strCurrentClasses\n }\n )\n}\n\nexport const addContainerClassname = (classname, strCurrentClasses) => {\n const newClasses = !strCurrentClasses.indexOf(classname) > -1 ? strCurrentClasses + ' ' + classname : strCurrentClasses;\n return (\n {\n type: MENU_CONTAINER_ADD_CLASSNAME,\n payload: newClasses\n }\n )\n}\n\nexport const clickOnMobileMenu = (strCurrentClasses) => {\n const currentClasses = strCurrentClasses ? strCurrentClasses.split(' ').filter(x => x !== '' && x !== 'sub-show-temporary') : '';\n let nextClasses = '';\n if (currentClasses.includes('main-show-temporary')) {\n nextClasses = (currentClasses.filter(x => x !== 'main-show-temporary')).join(' ');\n } else {\n nextClasses = currentClasses.join(' ') + ' main-show-temporary';\n }\n return (\n {\n type: MENU_CLICK_MOBILE_MENU,\n payload: { containerClassnames: nextClasses, menuClickCount: 0 }\n }\n )\n}\n\nexport const setContainerClassnames = (clickIndex, strCurrentClasses,selectedMenuHasSubItems) => {\n const currentClasses = strCurrentClasses ? strCurrentClasses.split(' ').filter(x => x !== '') : '';\n let nextClasses = '';\n if (!selectedMenuHasSubItems) {\n if (currentClasses.includes(\"menu-default\") && (clickIndex % 4 === 0 || clickIndex % 4 === 3)) {\n clickIndex=1;\n }\n if (currentClasses.includes(\"menu-sub-hidden\") && (clickIndex % 4 === 2)) {\n clickIndex=0;\n }\n if (currentClasses.includes(\"menu-hidden\") && (clickIndex % 4 === 2 || clickIndex % 4 === 3 )) {\n clickIndex=0;\n }\n\n }\n\n\n\n if (clickIndex % 4 === 0) {\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-default menu-sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden';\n }\n clickIndex = 0;\n } else if (clickIndex % 4 === 1) {\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-default menu-sub-hidden main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary';\n }\n } else if (clickIndex % 4 === 2) {\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-default menu-sub-hidden sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary sub-show-temporary';\n }\n } else if (clickIndex % 4 === 3) {\n if (currentClasses.includes('menu-default') && currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-default menu-sub-hidden sub-show-temporary';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden sub-show-temporary';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary';\n }\n }\n if (currentClasses.includes('menu-mobile')) {\n nextClasses += ' menu-mobile';\n }\n return (\n {\n type: MENU_SET_CLASSNAMES,\n payload: { containerClassnames: nextClasses, menuClickCount: clickIndex }\n }\n )\n}\n\nexport const changeTitle = (title) => {\n return (\n {\n type: MENU_CHANGE_TITLE,\n payload: title\n }\n )\n}\n","/* MENU */\nexport const MENU_SET_CLASSNAMES = \"MENU_SET_CLASSNAMES\";\nexport const MENU_CONTAINER_ADD_CLASSNAME = \"MENU_CONTAINER_ADD_CLASSNAME\";\nexport const MENU_CLICK_MOBILE_MENU = \"MENU_CLICK_MOBILE_MENU\";\nexport const MENU_CHANGE_DEFAULT_CLASSES = \"MENU_CHANGE_DEFAULT_CLASSES\";\nexport const MENU_CHANGE_HAS_SUB_ITEM_STATUS =\n \"MENU_CHANGE_HAS_SUB_ITEM_STATUS\";\nexport const MENU_CHANGE_TITLE = \"MENU_CHANGE_TITLE\"\n\nexport * from \"./menu/actions\";\n","import React, { useContext, useState, useEffect, useRef } from \"react\";\nimport { Table, Input, Button, Popconfirm, Form, Select } from \"antd\";\nimport { Icon } from \"semantic-ui-react\";\nimport \"./transitiontable.css\";\nconst EditableContext = React.createContext(null);\n\nconst { Option } = Select;\nlet countryoptions = [];\nlet sectoroptions = [];\nlet sector = [\n \"Automobiles & Auto Parts\",\n \"Banking Services\",\n \"Beverages\",\n \"Chemicals\",\n \"Coal\",\n \"Communications & Networking\",\n \"Electric Utilities & IPPs\",\n \"Electronic Equipments & Parts\",\n \"Food & Drug Retailing\",\n \"Food & Tobacco\",\n \"Freight & Logistics Services\",\n \"Healthcare Equipment & Supplies\",\n \"Homebuilding & Construction Supplies\",\n \"Industrial Conglomerates\",\n \"Insurance\",\n \"Investment Banking & Investment Services\",\n \"Leisure Products\",\n \"Media & Publishing\",\n \"Metals & Mining\",\n \"Natural Gas Utilities\",\n \"Oil & Gas\",\n \"Professional & Commercial Services\",\n \"Real Estate Operations\",\n \"Renewable Energy\",\n \"Software & IT Services\",\n \"Telecommunications Services\",\n \"Textiles & Apparel\",\n \"Transport Infrastructure\",\n \"Water Utilities\",\n];\nlet country = [\n \"North America\",\n \"Japan\",\n \"Europe\",\n \"China\",\n \"Southern Asia\",\n \"East Asia\",\n \"South East Asia\",\n \"South America\",\n \"Africa\",\n \"Middle East\",\n \"Australia/NZ\",\n \"Western Asia\",\n];\n\nfor (let i = 0; i < country.length; i++) {\n countryoptions.push();\n}\nfor (let i = 0; i < sector.length; i++) {\n sectoroptions.push();\n}\n\nconst EditableRow = ({ index, ...props }) => {\n const [form] = Form.useForm();\n return (\n
\n \n \n \n
\n );\n};\nfunction onSearch(val) {\n console.log(val);\n}\n\nconst EditableCell = ({\n title,\n editable,\n inputType,\n children,\n dataIndex,\n record,\n handleSave,\n ...restProps\n}) => {\n const [editing, setEditing] = useState(false);\n const inputRef = useRef(null);\n const form = useContext(EditableContext);\n useEffect(() => {\n if (editing) {\n inputRef.current.focus();\n }\n }, [editing]);\n\n const toggleEdit = () => {\n setEditing(!editing);\n form.setFieldsValue({\n [dataIndex]: record[dataIndex],\n });\n };\n\n const save = async () => {\n try {\n const values = await form.validateFields();\n toggleEdit();\n handleSave({ ...record, ...values });\n } catch (errInfo) {\n console.log(\"Save failed:\", errInfo);\n }\n };\n\n let childNode = children;\n const inputNode =\n inputType === \"select_country\" ? (\n \n {countryoptions}\n \n ) : inputType === \"select_sector\" ? (\n \n {sectoroptions}\n \n ) : (\n \n );\n\n if (editable) {\n childNode = editing ? (\n \n {inputNode}\n \n ) : (\n \n {children}\n \n );\n }\n\n return {childNode};\n};\n\nclass TransitionTable extends React.Component {\n constructor(props) {\n super(props);\n this.columns = [\n {\n title: \"Company Name\",\n dataIndex: \"company_name\",\n editable: true,\n },\n {\n title: \"Investment (in USD)\",\n dataIndex: \"investment_in_usd\",\n\n editable: true,\n },\n {\n title: \"NAV % (Note 1)\",\n dataIndex: \"nav_in_perc\",\n editable: true,\n },\n {\n title: \"Market Cap (in USD)\",\n dataIndex: \"market_cap_in_usd\",\n editable: true,\n },\n {\n title: \"Revenue (in USD)\",\n dataIndex: \"revenue_in_usd\",\n editable: true,\n },\n {\n title: \"Scope 1 and 2 GHG emission (in t CO2e)\",\n dataIndex: \"scope_1_and_2_GHG_emission\",\n editable: true,\n },\n {\n title: \"Region\",\n dataIndex: \"region\",\n editable: true,\n },\n {\n title: \"Sector\",\n dataIndex: \"sector\",\n editable: true,\n },\n\n {\n title: \"\",\n dataIndex: \"operation\",\n render: (_, record) =>\n this.state.dataSource.length >= 1 ? (\n this.handleDelete(record.key)}\n >\n \n \n ) : null,\n },\n ];\n this.state = {\n dataSource: [\n {\n company_name: \"Company\",\n key: 0,\n investment_in_usd: \"0\",\n market_cap_in_usd: \"0\",\n revenue_in_usd: \"0\",\n scope_1_and_2_GHG_emission: \"0\",\n region: \"China\",\n sector: \"Coal\",\n nav_in_perc: \"0\",\n },\n ],\n count: 1,\n };\n }\n\n handleRisk = (data) => {\n console.log(\"data\", data);\n this.props.handleRisk(data);\n };\n handleDelete = (key) => {\n const dataSource = [...this.state.dataSource];\n this.setState({\n dataSource: dataSource.filter((item) => item.key !== key),\n });\n };\n handleAdd = () => {\n const { count, dataSource } = this.state;\n const newData = {\n key: count,\n company_name: \"Company\",\n investment_in_usd: \"0\",\n market_cap_in_usd: \"0\",\n revenue_in_usd: \"0\",\n scope_1_and_2_GHG_emission: \"0\",\n region: \"China\",\n sector: \"Coal\",\n nav_in_perc: \"0\",\n };\n this.setState({\n dataSource: [...dataSource, newData],\n count: count + 1,\n });\n };\n handleSave = (row) => {\n const newData = [...this.state.dataSource];\n const index = newData.findIndex((item) => row.key === item.key);\n const item = newData[index];\n newData.splice(index, 1, { ...item, ...row });\n this.setState({\n dataSource: newData,\n });\n };\n\n render() {\n const { dataSource } = this.state;\n const components = {\n body: {\n row: EditableRow,\n cell: EditableCell,\n },\n };\n const columns = this.columns.map((col) => {\n if (!col.editable) {\n return col;\n }\n\n return {\n ...col,\n onCell: (record) => ({\n record,\n editable: col.editable,\n inputType:\n col.dataIndex === \"region\"\n ? \"select_country\"\n : \"text\" && col.dataIndex === \"sector\"\n ? \"select_sector\"\n : \"text\",\n dataIndex: col.dataIndex,\n title: col.title,\n handleSave: this.handleSave,\n }),\n };\n });\n return (\n
\n \n Add a row\n \n \"editable-row\"}\n bordered\n dataSource={dataSource}\n columns={columns}\n />\n\n 0\n )\n }\n style={{ float: \"right\", backgroundColor: \"#18202F\", color: \"white\" }}\n onClick={() => this.handleRisk(this.state.dataSource)}\n >\n Submit\n \n
\n );\n }\n}\n\nexport default TransitionTable;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Dropdown,\n} from \"semantic-ui-react\";\n\nimport \"./location.css\";\nimport { loadModules } from \"esri-loader\";\nimport { CSVReader } from \"react-papaparse\";\nimport logo from \"../assets/logo.png\";\nimport home from \"../assets/home.png\";\nimport add from \"../assets/images/add.png\";\nimport sample from \"../assets/image.png\";\nimport ll1 from \"../assets/logo_land.png\";\nimport search from \"../assets/search.png\";\nimport { Accordion, Card } from \"react-bootstrap\";\n\nimport upload from \"../assets/upload.png\";\nimport hsi from \"../assets/hsi.png\";\nimport sp from \"../assets/sp.png\";\nimport dax from \"../assets/dax.png\";\nimport dawjones from \"../assets/dowjones.png\";\nimport nasdaq from \"../assets/nasdaq.png\";\nimport euro from \"../assets/euro.png\";\nimport nifty from \"../assets/nifty.png\";\nimport nikkie from \"../assets/nikkei.png\";\n\nimport toastr from \"toastr\";\n\nimport { connect } from \"react-redux\";\nimport { locus, auth } from \"../actions\";\nimport { Checkbox, Typography, Table, Select } from \"antd\";\n\nimport { company } from \"../actions\";\nimport Suggestion from \"./suggestion\";\nimport PortfolioSpinner from \"./loader\";\nimport LocationMap from \"./location_map\";\nimport \"toastr/build/toastr.min.css\";\nimport { CSVLink } from \"react-csv\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect } from \"react-router-dom\";\nimport { Tabs, Tab, Row, Col, Breadcrumb, Container } from \"react-bootstrap\";\nimport video from \"../assets/video.mp4\";\nimport video1 from \"../assets/video.gif\";\n\nimport TransitionTable from \"./transitiontable\";\n\nconst currentDate = new Date().toISOString().slice(0, 10);\n\n// Concatenate current date with the filename\nconst filename = `intensel-tempalate-input-csv-file-_${currentDate}.csv`;\n\nconst buttonRef = React.createRef();\n\nconst companyRef = React.createRef();\n\nlet mapcards = [];\nlet companycards = [];\nlet selectList = \"\";\nlet optionList = [];\nlet newmapcards = [];\nlet csvcards = [];\nlet buildingcsvcards = [];\nlet companyLocationCards = [];\nlet selectedList = [];\n\nconst othersOptions = [\n { key: \"Flood\", value: \"River Flood\", text: \"Flood\" },\n { key: \"Rainfall\", value: \"Rainfall\", text: \"Rainfall\" },\n\n { key: \"Drought Index\", value: \"Drought Index\", text: \"Drought Index\" },\n //{ key: \"Landslide\", value: \"Landslide\", text: \"Landslide\" },\n { key: \"Storm Surge\", value: \"Storm Surge\", text: \"Storm Surge\" },\n\n { key: \"Extreme heat\", value: \"Extreme heat\", text: \"Extreme heat\" },\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n];\n\nlet minedata = [];\n\nconst csvData = [\n [\n \"name\",\n \"latitude\",\n \"longitude\",\n \"Valuation (in US$/sqm)\",\n \"Total Valuation (in US$)\",\n \"Replacement Value (US$/sqm )\",\n \"Revenue (in mil US$/year)\",\n \"Content Value (in US$/sqm)\",\n \"Total Content Value (in US$)\",\n \"Ownership (0 to 100)\",\n \"Property Type\",\n \"Area (in sqm)\",\n \"Gross Area (in sqm)\",\n\n //\"Total Valuation (in US$)\",\n \"Number of Floors\",\n\n \"Basement (yes,no)\",\n //\"Price per Kwh(in US$)\",\n \"Flood Mitigation (low-1,med-2,high-3,no-0)\",\n \"Exclude Ground Floor (yes,no)\",\n /*\"Solar Power Production (in gwh)\",\n \"Wind Power Production (in gwh)\",\n \"Hydro Power Production (in gwh)\",\n \"Wheat Production (in kg)\",\n \"Rice Production (in kg)\",\n \"Maize Production (in kg)\",\n \"Fruit Production (in kg)\",\n \"Vegetable Production (in kg)\",*/\n ],\n [\n \"intensel\",\n \"0.00\",\n \"0.00\",\n\n \"0\",\n \"\",\n \"0\",\n \"0\",\n \"0\",\n \"\",\n \"0\",\n \"commercial\",\n \"0\",\n \"\",\n \"0\",\n\n \"yes\",\n \"no\",\n \"0\",\n\n \"no\",\n /*\"0\",\n \"0\",\n \"0\",\n \"0\",\n \"0\",\n \"0\",\n \"0\",\n \"0\",*/\n ],\n];\nlet company_card = [];\n\nconst ContinentOptions = [\n { key: \"Asia\", value: [\"Asia\", 100.6197, 34.04, 3], text: \"Asia\" },\n { key: \"Europe\", value: [\"Europe\", 15.2551, 54.526, 3], text: \"Europe\" },\n {\n key: \"Australia\",\n value: [\"Australia\", 133.7751, -25.2744, 3],\n text: \"Australia\",\n },\n { key: \"America\", value: [\"America\", -95.7129, 37.0902, 2], text: \"America\" },\n { key: \"Africa\", value: [\"Africa\", 34.5085, 8.7832, 3], text: \"Africa\" },\n];\nconst unitOptions = [\n { key: \"meter\", value: \"meter\", text: \"meter\" },\n { key: \"inch\", value: \"inch\", text: \"inch\" },\n];\n\nconst indexOptions = [\n { key: \"HSI\", value: \"HSI\", text: \"HSI\" },\n { key: \"S&P-500\", value: \"S&P-500\", text: \"S&P-500\" },\n { key: \"dax\", value: \"dax\", text: \"dax\" },\n { key: \"dowjones\", value: \"dowjones\", text: \"dowjones\" },\n { key: \"nasdaq\", value: \"nasdaq\", text: \"nasdaq\" },\n { key: \"eurostock\", value: \"eurostock\", text: \"eurostock\" },\n { key: \"nifty\", value: \"nifty\", text: \"nifty\" },\n { key: \"nikkie\", value: \"nikkie\", text: \"nikkie\" },\n];\nlet searchList = [];\n\nconst SearchOptions = [\n { key: \"HTML Search\", value: \"html\", text: \"HTML Search\" },\n { key: \"Shallow Search\", value: \"shallow\", text: \"Shallow Search\" },\n { key: \"Deep Search\", value: \"deep\", text: \"Deep Search\" },\n];\n\nclass Location extends Component {\n constructor(props) {\n super(props);\n this.mapRef = React.createRef();\n }\n\n state = {\n upload: \"\",\n index: \"\",\n file: false,\n locations: [],\n query: \"\",\n farmVariables: [],\n energyVariables: [],\n option: \"\",\n variables: [],\n buildingVariables: [],\n overwrite: \"false\",\n company: [],\n portfolio: \"\",\n selectedOption: null,\n newlocations: [],\n modalOpen: false,\n videoOpen: false,\n loading: false,\n long: 34.0,\n lat: 39.0,\n token: \"\",\n zoom: 1,\n continent: \"Continents\",\n selectedTags: [],\n allTags: [],\n buildingselectedTags: [],\n allbuildingTags: [],\n optional: \"\",\n infoOpen: false,\n buildinginfoOpen: false,\n restrictOpen: false,\n address: \"\",\n companyloading: false,\n search_loading: false,\n buildingmodalOpen: false,\n search_type: \"\",\n index: \"HSI\",\n modalIndicesOpen: false,\n portfolio_value: \"\",\n portfolio_name: \"\",\n modalCompanyOpen: false,\n modalFileOpen: false,\n csv: \"\",\n currency: null,\n unit: null,\n modalCSVOpen: false,\n csv_currency: null,\n csv_unit: null,\n };\n handleClick = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n this.setState({ activeIndex: newIndex });\n };\n handleIndex = (e) => {\n console.log(\"checked\", e.target.id);\n\n if (this.state.index == e.target.id) {\n this.setState({ index: \"\" });\n } else {\n this.setState({ index: e.target.id }, () =>\n this.props.getIndices(this.state.index)\n );\n }\n };\n handleFileChange = (e) => {\n console.log(\"csv\", e.target.files[0]);\n this.setState({ csv: e.target.files[0] });\n };\n handleDeleteMarker = (id) => {\n // Your delete marker logic in the parent component\n console.log(`Deleting marker with ID: ${id}`);\n };\n handleChange = (e, { value }) => {\n this.setState({ selectedOption: value }, () =>\n console.log(\"selectedoption\", this.state.selectedOption)\n );\n };\n handleCSVSubmit = (e) => {\n e.preventDefault();\n\n const { csv_currency, csv_unit, token } = this.state;\n\n // Generate the current timestamp\n const now = new Date();\n const dateTimeString = now.toISOString().replace(/[:.-]/g, \"\"); // Format as YYYYMMDDTHHMMSS\n\n // Construct the filename dynamically\n const filename = `${dateTimeString}_csv_template.xlsx`;\n\n // Construct the URL with query parameters\n const url = `https://api.intensel.net/api/v2/download_upload_csv_template/?unit=meter¤cy=USD`;\n\n this.setState({ loading: true }, () => {\n // Perform the GET request with Authorization header\n fetch(url, {\n method: \"GET\",\n headers: {\n Authorization: `Token ${token}`, // Add the token here\n },\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed to fetch the CSV template.\");\n }\n return response.blob(); // Fetch the file as a Blob\n })\n .then((blob) => {\n // Create a URL for the file and trigger the download\n const downloadUrl = window.URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = downloadUrl;\n link.download = filename; // Use the dynamically generated filename\n link.click();\n\n // Clean up the object URL\n window.URL.revokeObjectURL(downloadUrl);\n\n // Close the modal by setting modalCSVOpen to false\n this.setState({ modalCSVOpen: false });\n\n // Reset loading state\n this.setState({ loading: false });\n })\n .catch((error) => {\n console.error(\"Error:\", error);\n this.setState({ loading: false });\n });\n });\n };\n\n onSubmit = (e) => {\n e.preventDefault();\n let defaultvar = [\"River Flood\", \"Typhoon\", \"Storm Surge\"];\n let variables = defaultvar.concat(this.state.variables);\n console.log(\"variables\", variables, this.state.variables);\n let formdata = new FormData();\n\n formdata.append(\"data\", JSON.stringify(this.state.locations));\n //formdata.append(\"unit\", this.state.unit);\n formdata.append(\"portfolio_name\", this.state.portfolio);\n formdata.append(\"portfolio_variables\", JSON.stringify(variables));\n formdata.append(\n \"non_building_variables\",\n JSON.stringify(this.state.buildingVariables)\n );\n formdata.append(\"base_unit\", \"meter\");\n formdata.append(\"base_currency\", \"USD\");\n\n console.log(\"final data\", formdata.get(\"location\"));\n this.setState({ loading: true }, () => {\n this.props.addLocations(formdata);\n });\n };\n onCompanySubmit = (e) => {\n e.preventDefault();\n let defaultvar = [\n \"River Flood\",\n \"Typhoon\",\n \"Storm Surge\",\n \"Wild Fire\",\n \"Landslide\",\n \"Rainfall Flood\",\n \"Extreme Heat\",\n \"Snow Fall\",\n \"Sea Level Rise\",\n \"Drought\",\n ];\n let variables = defaultvar.concat(this.state.variables);\n console.log(\"variables\", variables, this.state.variables);\n let formdata = new FormData();\n\n formdata.append(\"data\", JSON.stringify(this.state.locations));\n formdata.append(\"is_benchmark\", true);\n formdata.append(\"ticker\", this.state.company);\n formdata.append(\"index_name\", this.state.index);\n formdata.append(\"portfolio_name\", this.state.portfolio);\n formdata.append(\"portfolio_variables\", JSON.stringify(variables));\n formdata.append(\n \"non_building_variables\",\n JSON.stringify(this.state.buildingVariables)\n );\n console.log(\"final data\", formdata.get(\"location\"));\n this.setState({ loading: true }, () => {\n this.props.addCompanyLocations(formdata);\n });\n };\n onFileSubmit = (e) => {\n e.preventDefault();\n let defaultvar = [\"River Flood\", \"Typhoon\", \"Storm Surge\"];\n let variables = defaultvar.concat(this.state.variables);\n console.log(\"variables\", variables, this.state.variables);\n let formdata = new FormData();\n\n formdata.append(\"upload_file\", this.state.csv);\n\n formdata.append(\"portfolio_name\", this.state.portfolio);\n formdata.append(\"unit\", this.state.unit);\n\n formdata.append(\"portfolio_variables\", JSON.stringify(variables));\n formdata.append(\n \"non_building_variables\",\n JSON.stringify(this.state.buildingVariables)\n );\n formdata.append(\"base_unit\", this.state.unit);\n formdata.append(\"base_currency\", this.state.currency);\n console.log(\"final data\", formdata.get(\"location\"));\n this.setState({ loading: true }, () => {\n this.props.addLocations(formdata);\n });\n };\n\n onIndicesSubmit = (e) => {\n e.preventDefault();\n\n let formdata = new FormData();\n\n formdata.append(\"index_name\", this.state.index);\n formdata.append(\"portfolio_name\", this.state.portfolio);\n\n this.setState({ loading: true }, () => {\n this.props.addIndex(formdata);\n });\n };\n onbuildingSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"value\", JSON.stringify(this.state.locations));\n formdata.append(\"portfolio_name\", this.state.portfolio);\n formdata.append(\"variables\", JSON.stringify(this.state.variables));\n this.setState({ loading: true }, () => {\n this.props.addBuildingLocations(formdata);\n });\n };\n\n handleOpenDialog = (e) => {\n if (buttonRef.current) {\n buttonRef.current.open(e);\n }\n };\n\n handleFileLoad = (data) => {\n csvcards = [];\n for (let i = 1; i < data.length - 1; i++) {\n if (data[i].data[3] == \"\") {\n data[i].data[3] = \"NA\";\n }\n if (data[i].data[5] == \"\") {\n data[i].data[5] = \"NA\";\n }\n if (\n data[i].data[4] == \"\" ||\n !this.state.optional.includes(\"Construction Cost\")\n ) {\n data[i].data[4] = \"NA\";\n }\n if (data[i].data[6] == \"\" || !this.state.optional.includes(\"Area\")) {\n data[i].data[6] = \"NA\";\n }\n if (data[i].data[7] == \"\" || !this.state.optional.includes(\"Valuation\")) {\n data[i].data[7] = \"NA\";\n }\n if (data[i].data[8] == \"\" || !this.state.optional.includes(\"Floors\")) {\n data[i].data[8] = \"NA\";\n }\n if (data[i].data[10] == \"\" || !this.state.optional.includes(\"Solar\")) {\n data[i].data[10] = \"NA\";\n }\n if (data[i].data[11] == \"\" || !this.state.optional.includes(\"Wind\")) {\n data[i].data[11] = \"NA\";\n }\n if (data[i].data[12] == \"\" || !this.state.optional.includes(\"Hydro\")) {\n data[i].data[12] = \"NA\";\n }\n if (data[i].data[13] == \"\" || !this.state.optional.includes(\"Wheat\")) {\n data[i].data[13] = \"NA\";\n }\n if (data[i].data[14] == \"\" || !this.state.optional.includes(\"Rice\")) {\n data[i].data[14] = \"NA\";\n }\n if (data[i].data[15] == \"\" || !this.state.optional.includes(\"Maize\")) {\n data[i].data[15] = \"NA\";\n }\n if (data[i].data[16] == \"\" || !this.state.optional.includes(\"Fruit\")) {\n data[i].data[16] = \"NA\";\n }\n if (data[i].data[17] == \"\" || !this.state.optional.includes(\"Veg\")) {\n data[i].data[17] = \"NA\";\n }\n if (data[i].data[9] == \"\" || !this.state.optional.includes(\"Ownership\")) {\n data[i].data[9] = \"NA\";\n }\n\n csvcards.push({\n name: data[i].data[0],\n latitude: data[i].data[1],\n longitude: data[i].data[2],\n revenue: data[i].data[3],\n property_type: data[i].data[5],\n country_code: \"NA\",\n construction_cost: data[i].data[4],\n area: data[i].data[6],\n valuation: data[i].data[7],\n stories: data[i].data[8],\n solar_production: data[i].data[10],\n hydro_production: data[i].data[12],\n wind_production: data[i].data[11],\n wheat_production: data[i].data[13],\n rice_production: data[i].data[14],\n maize_production: data[i].data[15],\n fruit_production: data[i].data[16],\n vegetable_production: data[i].data[17],\n ownership: data[i].data[9],\n });\n }\n this.setState({ allTags: csvcards, infoOpen: false }, () =>\n console.log(\"multiple\", this.state.allTags)\n );\n };\n\n handleCompanyDialog = (e) => {\n if (companyRef.current) {\n companyRef.current.open(e);\n }\n };\n\n handelOnError = (err, file, inputElem, reason) => {\n console.log(err);\n };\n\n handleOpen = () => this.setState({ modalOpen: true });\n handleCompanyOpen = () => this.setState({ modalCompanyOpen: true });\n handleFileOpen = () => this.setState({ modalFileOpen: true });\n handleIndicesOpen = () => this.setState({ modalIndicesOpen: true });\n handlebuildOpen = () => this.setState({ buildingmodalOpen: true });\n handlevideoOpen = () => this.setState({ videoOpen: true });\n handleinfoOpen = () => this.setState({ infoOpen: true });\n handleBuildinginfoOpen = () => this.setState({ buildinginfoOpen: true });\n handleClose = () =>\n this.setState({\n modalOpen: false,\n videoOpen: false,\n infoOpen: false,\n restrictOpen: false,\n buildinginfoOpen: false,\n buildingmodalOpen: false,\n modalIndicesOpen: false,\n modalFileOpen: false,\n modalCompanyOpen: false,\n modalCSVOpen: false,\n csv_unit: null,\n csv_currency: null,\n unit: null,\n currency: null,\n portfolio: null,\n });\n\n showModal = () => {\n this.setState({ modalCSVOpen: true });\n };\n handleCSVCurrencyChange = (value) => {\n this.setState({ csv_currency: value });\n };\n\n // Handle Unit Change\n handleCSVUnitChange = (value) => {\n this.setState({ csv_unit: value });\n };\n handleCurrencyChange = (value) => {\n this.setState({ currency: value });\n };\n\n // Handle Unit Change\n handleUnitChange = (value) => {\n this.setState({ unit: value });\n };\n handleContinent = (e, { value }) => {\n console.log(\"Continents\", value);\n this.setState({\n continent: value[0],\n long: value[1],\n lat: value[2],\n zoom: value[3],\n });\n };\n\n /*componentDidMount() {\n let token = localStorage.getItem(\"token\");\n this.setState({ token: token });\n console.log(\"login response\", this.props.auth.log_data);\n if (\n this.props.auth.log_data &&\n this.props.auth.log_data.unseen_changelogs &&\n this.props.auth.log_data.unseen_changelogs.length > 0\n ) {\n let toastMessage = \"\";\n\n this.props.auth.log_data.unseen_changelogs.forEach((changelog) => {\n toastMessage += `${changelog.title}: ${changelog.description}\\n`;\n });\n\n toastr.options = {\n positionClass: \"toast-top-right\",\n tapToDismiss: false,\n progressBar: true,\n closeButton: true,\n disableTimeOut: true,\n timeOut: 0,\n onclick: () => {\n window.location.href = \"/changelog\"; // Redirect to /changelog on click\n },\n onCloseClick: this.props.Notification,\n };\n\n toastr.info(toastMessage);\n }\n }*/\n\n componentDidMount() {\n let token = localStorage.getItem(\"token\");\n this.setState({ token: token });\n console.log(\"login response\", this.props.auth.log_data);\n if (\n this.props.auth.log_data &&\n this.props.auth.log_data.unseen_changelogs &&\n this.props.auth.log_data.unseen_changelogs.length > 0\n ) {\n let toastMessage = \"\";\n\n this.props.auth.log_data.unseen_changelogs.forEach((changelog) => {\n toastMessage += `${changelog.title}: ${changelog.description}\\n`;\n });\n\n toastr.options = {\n positionClass: \"toast-top-right\",\n tapToDismiss: false,\n progressBar: true,\n closeButton: true,\n disableTimeOut: true,\n timeOut: 0,\n onclick: () => {\n window.location.href = \"/changelog\"; // Redirect to /changelog on click\n },\n onCloseClick: this.props.Notification,\n };\n\n toastr.info(toastMessage);\n }\n }\n\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n mapcards = [];\n }\n\n handleRemoveFile = (e) => {\n // Note that the ref is set async, so it might be null at some point\n if (buttonRef.current) {\n buttonRef.current.removeFile(e);\n }\n };\n\n handleRemoveLocation = (index) => {\n var array = [...this.state.locations];\n console.log(\"index\", index);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ locations: array });\n mapcards.splice(index, 1);\n }\n };\n\n handleRemoveNewLocation = (index) => {\n var array = [...this.state.newlocations];\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ newlocations: array });\n newmapcards.splice(index, 1);\n }\n };\n handleSearch = (e, { value }) => {\n console.log(\"company selectio\", value);\n for (let i = 0; i < value.length; i++) {\n this.setState({ company: value[i] }, () => {\n this.props.getCompanyLocations(this.state.company);\n console.log(\"companies\", value);\n setTimeout(() => {\n this.handleAsync();\n }, 1000);\n });\n }\n };\n handleSearchType = (e, { value }) => {\n this.setState({ search_type: value });\n };\n handleAsync() {\n console.log(\"calling\", this.props.company_location.hits);\n if (this.props.company_location.hits) {\n for (let i = 0; i < this.props.company_location.hits.length; i++) {\n company_card.push({\n name: this.props.company_location.hits[i].document.address_data,\n latitude: this.props.company_location.hits[i].document.latitude,\n longitude: this.props.company_location.hits[i].document.longitude,\n });\n }\n this.setState({ locations: company_card });\n }\n\n console.log(\"result of search\", this.props.company_location.grouped_hits);\n }\n\n handleAddress = (e) => {\n let formdata = new FormData();\n formdata.append(\"company_name\", this.state.address);\n\n this.setState({ companyloading: true }, () => this.props.getName(formdata));\n };\n\n handleOptions = (e) => {\n if (e.target.value.length > 0) {\n this.setState({ search_loading: true, query: e.target.value }, () =>\n this.props.getCompanyName(this.state.query)\n );\n\n console.log(\"search \", this.props.company_name);\n if (this.props.company_name.grouped_hits) {\n console.log(\"name\", this.props.company_name.grouped_hits);\n\n for (let i = 0; i < this.props.company_name.grouped_hits.length; i++) {\n searchList.push({\n key: this.props.company_name.grouped_hits[i].hits[0].document\n .ticker,\n text:\n this.props.company_name.grouped_hits[i].hits[0].document\n .company_name +\n \"(\" +\n this.props.company_name.grouped_hits[i].hits[0].document.ticker +\n \")\",\n value: this.props.company_name.grouped_hits[i].hits[0].document\n .ticker,\n });\n }\n\n this.setState(\n {\n option: searchList,\n search_loading: false,\n index: this.props.company_name.grouped_hits[0].hits[0].document\n .index,\n },\n () => console.log(\"option\", this.state.option)\n );\n }\n }\n\n /* this.setState({ query: e.target.value }, () =>\n console.log(\"query\", this.state.query)\n );*/\n };\n /*handleOptions =(e)=>{\n \t\n if(e.target.value.length>1){\n this.selectList=companyList.filter(company=>company.NAME.slice(0,2).toLowerCase()==e.target.value.slice(0,2).toLowerCase())\n \t\n let searchList = this.selectList.map(({NAME}) =>{\n return{\n key:NAME,\n value:NAME,\n text:NAME\n }\n}) \n \t\n this.setState({option:searchList},()=>console.log(\"option\",this.state.option));\n \t\n }\n \t\n this.setState({query:e.target.value},()=>console.log(this.state.query))\n\n }*/\n\n handleLogout = () => {\n this.props.logout();\n };\n onChange = (checkedValues) => {\n console.log(\"checked\", checkedValues);\n this.setState({ variables: checkedValues });\n };\n onFarmChange = (checkedValues) => {\n this.setState({ farmVariables: checkedValues });\n };\n onEnergyChange = (checkedValues) => {\n this.setState({ energyVariables: checkedValues });\n };\n onBuildingChange = (checkedValues) => {\n let energyBuildings = [\n \"solar production\",\n \"wind production\",\n \"hydro production\",\n ];\n let farmCrops = [\n \"wheat production\",\n \"vegetable production\",\n \"maize production\",\n \"fruit production\",\n \"rice production\",\n ];\n\n let energyBuildingValues = checkedValues.filter((value) =>\n energyBuildings.includes(value)\n );\n let farmCropsValues = checkedValues.filter((value) =>\n farmCrops.includes(value)\n );\n\n this.setState(\n {\n buildingVariables: {\n energy: energyBuildingValues,\n agriculture: farmCropsValues,\n },\n },\n () => console.log(\"building\", this.state.buildingVariables)\n );\n };\n\n handleOptional = (checkedValues) => {\n this.setState({ optional: checkedValues }, () =>\n console.log(\"optional\", this.state.optional)\n );\n };\n handleCompanyLoad = (data) => {\n console.log(\"filename\", data[1].data[0]);\n for (let i = 1; i < 3; i++) {\n this.props.getCoordinates(data[i].data[0]);\n\n if (this.props.point.type) {\n minedata.push(this.props.point.features[i].geometry.coordinates);\n console.log(\"mine data\", minedata);\n }\n\n /*\tlet LocationList = companyList.filter(company=>company.NAME==data[i].data[0])\n \t\n console.log(\"Location company\",LocationList,data[i].data[0]);\n \t\n console.log(\"chal raha hai \",LocationList[0].ADDRESS)\n if(LocationList[0].ADDRESS.length>0){\n let a = JSON.parse(LocationList[0].ADDRESS.replace(/'/g,'\"'));\n console.log(\"working\",a);\n let b = JSON.parse(LocationList[0].coord.replace(/'/g,'\"'));\n console.log(\"working\",b[0].split(',')[1].replace(/[()]/g,''));\n \t\n for(let j=0;jconsole.log(\"csvcomapnay\",mapcards))\n }*/\n }\n };\n handleMapDataChange = (newMapData) => {\n console.log(\"map\", newMapData);\n this.setState({ locations: newMapData });\n };\n handleAsset = (address, latitude, longitude) => {\n mapcards.push({\n name: address,\n latitude: latitude,\n longitude: longitude,\n });\n this.setState({ locations: mapcards }, () =>\n console.log(\"location map\", this.state.locations, mapcards.length)\n );\n };\n handleClear = () => {\n companycards = [];\n this.setState({ locations: [], address: \"\" });\n };\n\n addtoSelected(asset) {\n selectedList.push(asset);\n var array = [...this.state.allTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ allTags: array });\n }\n this.setState({ selectedTags: selectedList, locations: selectedList });\n }\n remove(asset) {\n var array = [...this.state.selectedTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ selectedTags: array, locations: array }, () =>\n console.log(\"remove\", this.state.selectedTags)\n );\n }\n this.state.allTags.push(asset);\n }\n addAll = () => {\n var array = [...this.state.allTags];\n this.setState({ selectedTags: array, locations: array });\n };\n clearAll = () => {\n this.setState({ selectedTags: \"\", locations: \"\", allTags: \"\" });\n };\n handleLocation = () => {\n company_card = [];\n this.setState(\n { locations: \"\" },\n console.log(\"tab change\", this.state.locations)\n );\n };\n\n addtobuildingSelected(asset) {\n selectedList.push(asset);\n var array = [...this.state.allbuildingTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ allbuildingTags: array });\n }\n this.setState({\n buildingselectedTags: selectedList,\n locations: selectedList,\n });\n }\n buildingremove(asset) {\n var array = [...this.state.buildingselectedTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ buildingselectedTags: array, locations: array }, () =>\n console.log(\"remove\", this.state.buildingselectedTags)\n );\n }\n this.state.allbuildingTags.push(asset);\n }\n addbuildingAll = () => {\n var array = [...this.state.allbuildingTags];\n this.setState({ buildingselectedTags: array, locations: array });\n };\n clearbuildingAll = () => {\n this.setState({\n buildingselectedTags: \"\",\n locations: \"\",\n allbuildingTags: \"\",\n });\n };\n\n render() {\n const { Text, Link } = Typography;\n\n const { activeIndex, others } = this.state;\n\n if (this.props.point.type) {\n minedata.push([\n this.props.point.features[0].place_name,\n this.props.point.features[0].geometry.coordinates[0],\n this.props.point.features[0].geometry.coordinates[1],\n ]);\n console.log(\"minedata\", minedata);\n }\n if (company_card.length > 0) {\n companyLocationCards = [];\n console.log(\"company card\", company_card);\n for (let i = 0; i < company_card.length; i++) {\n companyLocationCards.push(\n
\n {company_card[i].name ? (\n \n {i}\n \n {company_card[i].name.slice(0, 20)}\n
\n ) : null}\n\n {company_card[i].latitude ? (\n
\n {company_card[i].latitude.toFixed(3)}\n
\n ) : null}\n {company_card[0].longitude ? (\n
\n {company_card[i].longitude.toFixed(3)}\n
\n ) : null}\n \n );\n }\n }\n\n if (this.props.location.state) {\n let newmapcards = this.props.location.state.assets.assets;\n\n var newcards = [];\n\n if (newmapcards.length > 0) {\n this.state.newlocations = newmapcards;\n\n console.log(\"this.s\", this.state.newlocations);\n for (let i = 0; i < this.state.newlocations.length; i++) {\n newcards.push(\n \n \n \n );\n }\n }\n }\n\n const { value, continent } = this.state;\n var cards = [];\n var csvtags = [];\n var buildingcsvtags = [];\n console.log(\"location map render\", this.state.locations, mapcards);\n if (mapcards.length > 0) {\n console.log(\"mapcardsssssssss\", this.state.locations);\n for (let i = 0; i < this.state.locations.length; i++) {\n cards.push(\n
\n \n {i + 1}{\" \"}\n \n {this.state.locations[i].name.slice(0, 20)}\n
\n\n
\n {this.state.locations[i].latitude.toFixed(3)}\n
\n
\n {this.state.locations[i].longitude.toFixed(3)}\n
\n
\n {\n this.handleDeleteMarker(i);\n\n this.handleRemoveLocation(i);\n }}\n >\n
\n \n );\n }\n }\n\n console.log(\"props\", this.props.name);\n if (this.props.name.length > 0 && this.state.address.length > 0) {\n this.state.companyloading = false;\n this.state.locations = [];\n companycards = [];\n for (let i = 0; i < this.props.name.length; i++) {\n this.state.locations.push({\n name: this.props.name[i].address,\n latitude: this.props.name[i].lat,\n longitude: this.props.name[i].lon,\n revenue: \"NA\",\n property_type: \"NA\",\n country_code: \"NA\",\n });\n let src = \"//logo.clearbit.com/\";\n companycards.push(\n \n \n \n );\n }\n console.log(\"company location\", this.state.locations);\n }\n\n if (csvcards.length > 0) {\n for (let i = 0; i < this.state.allTags.length; i++) {\n csvtags.push(\n \n );\n }\n }\n if (buildingcsvcards.length > 0) {\n for (let i = 0; i < this.state.allbuildingTags.length; i++) {\n buildingcsvtags.push(\n \n );\n }\n }\n\n return (\n
\n \n \n
\n \n Location\n \n
\n
\n\n
\n\n \n \n \n \n \n
\n\n {/* \n

Mark locations to analyse

*/}\n\n {/* \n \n Select location to analyze climate risk on map{\" \"}\n \n \n */}\n\n \n\n {/* \n {/* \n \n Selected Asset\n \n \n\n
\n
\n
\n
Name
\n
Latitude
\n
Longitude
\n
Delete
\n
\n {cards}\n
\n
\n \n {/* \n Sort By: A - Z\n \n \n CLEAR ALL\n \n \n \n\n
\n {this.props.location.state ? (\n
\n
\n My Assets\n
\n {newcards}\n
\n ) : null}\n
\n
\n */}\n \n PROCEED\n \n
\n \n
\n \n \n

\n \n Upload CSV \n \n

\n\n \n \n Download Sample CSV\n \n \n\n
\n
\n \n File Input\n \n (this.filesInput = input)}\n name=\"file\"\n onChange={this.handleFileChange}\n />\n
\n
\n \n Submit\n \n \n \n
\n

\n Note(Click on Header to Expand)\n

\n \n \n \n Instructions for submitting multiple assets on\n BlueSwan platform\n \n \n \n
    \n
  • \n For submitting multiple assets on the\n BlueSwan platform to conduct the physical\n climate risk analysis, the user will need to\n download the sample CSV file to input data\n following the format as prescribed in the\n CSV file and upload the completed CSV file.\n Essential input data to conduct the analysis\n includes asset name and location\n information, while optional input data would\n be helpful to increase the accuracy of the\n amount for Climate Value at Risk (financial\n loss in dollar value).\n
  • \n
  • \n For location information, consider the\n granularity of analysis provided by the\n BlueSwan platform, it is important to input\n an accurate location of the asset in the CSV\n file. If the user refers to Google Maps for\n mapping the asset location, please refer to\n the satellite image of the map. Except for\n asset location, most input data can be\n updated later under the “Asset Table”\n Section of the Analysis result Dashboard.\n
  • \n
  • \n For inputting asset location information, it\n is observed that there is a shift in\n location on Google Maps’ satellite imagery\n for an asset located in mainland China.\n Special attention has to be paid to\n cross-check the location found on Google\n Maps with the user’s internal asset location\n information or other online map resources\n (such as Baidu map, Gaode map, or\n open-street map).\n
  • \n
\n
\n
\n
\n\n \n \n Please select appropriate flood risk reduction\n level from High to Low\n \n \n \n

\n This function is to account for the flood risk\n reduction capacity of three flood mitigation\n measures that are near the asset and connect\n to the main flood control / stormwater\n management system of the area: a) manhole, b)\n catchpit, and c) underground flood tunnel.\n These mitigation measures are effective to\n reduce rainfall and river flooding, and they\n include any existing or to-be-built measures.\n It does not apply to storm surge flooding, as\n when there is a rise in sea level on the\n coastal side, the floodwater is very likely to\n block most nearby outlets of the stormwater\n management system. The level of flood risk\n reduction depends on below two key factors and\n assumption:\n
\n 1. Distance between any mitigation measure and\n the asset. To have a risk reduction impact,\n the closer the mitigation measure to the\n asset, the greater level of risk reduction.\n Any mitigation measure that is more than 20\n meters far from the asset is assumed to have\n no risk reduction effect.\n
\n 2. The number of available mitigation\n measures. The more the number of mitigation\n measures, the greater level of risk reduction.\n It can be in any combination of item a, b, and\n c as listed above, e.g., asset with two nearby\n manholes plus one nearby underground flood\n tunnel is counted as a total of 3 measures for\n that asset.\n
\n
\n \n {\" \"}\n A. High level of flood risk reduction –\n Either:\n \n
\n i. Having at least three measures in place\n near the asset. Two measures both are at least\n within a distance of ≤ 10 meters, plus the\n remaining measure is at least within 15-20\n meters; or\n
\n ii. Having at least three measures in place\n near the asset. Two measures both are at least\n within a distance of 10-15 meters, plus the\n remaining measure is at least within ≤ 10\n meters.\n
\n
\n \n B. Median level of flood risk reduction –\n Either:\n \n
\n i. Having at least three measures in place.\n Two measure both are at least within 15-20\n meters, plus the remaining measure is at least\n within 10-15 meters; or\n
\n ii. Having at least two measures in place near\n the asset. One measure is at least within ≤ 10\n meters, plus another one is at least within\n 15-20 meters; or\n
\n iii. Having at least two measures in place\n near the asset, and two measures both are at\n least within 10-15 meters.\n
\n
\n \n {\" \"}\n C. Low level of flood risk reduction –\n Either:\n \n
\n i. Having at least two measures in place, and\n these two measures both are at least within\n 15-20 meters; or\n
\n ii. Having at least one measure in place, and\n this measure is at least within a distance of\n ≤ 10 meters.\n
\n
\n Example: An asset has nearby two flood\n mitigation measures (no matter what\n combination of a) manhole, b) catchpit or c)\n underground flood tunnel). One measure (e.g.,\n manhole) is within 10-15 meters and another\n measure (e.g., catchpit or another manhole) is\n at 15-20 meters far from the asset. Both\n measures are connected to the city-level\n stormwater management system. In this example,\n as it can’t fulfill the requirement of the\n median level of flood risk reduction of points\n B) ii and B) iii above, it falls into the\n category of low level of flood risk reduction.\n

\n
\n
\n
\n
\n
\n\n {/* \n \n How to Upload\n \n\n \n \n Download Sample CSV\n \n \n\n
\n
\n\n \n {({ file }) => (\n \n \n \n \n No file selected\n \n \n \n \n \n
\n \n \n \n \n )}\n \n
\n
\n \n \n

All Assets

\n
{csvtags}
\n \n \n \n Add All\n \n \n Clear All\n \n \n \n

Selected Assets

\n
\n {this.state.selectedTags.length > 0\n ? this.state.selectedTags.map((asset, index) => (\n \n ))\n : null}\n
\n \n \n
*/}\n \n \n {/* \n \n

\n \n Upload CSV \n \n

\n \n \n How to Upload\n \n\n \n \n \n Download Sample CSV\n \n \n \n\n
\n
\n\n \n {({ file }) => (\n \n \n \n \n No file selected\n \n \n \n \n \n \n \n \n \n \n )}\n \n
\n
\n \n \n

All Assets

\n
{csvtags}
\n \n \n \n {\" \"}\n Add All\n \n \n Clear All\n \n \n \n

Selected Assets

\n
\n {this.state.selectedTags.length > 0\n ? this.state.selectedTags.map((asset, index) => (\n \n {asset[\"name\"]}\n this.remove(asset)}\n />\n \n ))\n : null}\n
\n \n SUBMIT\n \n \n
\n \n
*/}\n \n {/*\n \n \n {!this.state.companyloading ? (\n
\n
\n

\n \n Search Company \n \n

\n\n \n \n \n this.setState({ address: e.target.value })\n }\n placeholder=\"search company name e.g. intensel\"\n />\n\n {this.state.address.length > 0 ? (\n \n ) : null}\n \n\n \n \n \n \n\n \n \n Search\n \n window.location.reload()}\n style={{\n backgroundColor: \"#f4f4f4\",\n color: \"#18202F\",\n marginLeft: \"1%\",\n }}\n >\n Reset\n \n \n \n \n\n {/* \n
\n {this.props.name.error ? (\n \n

No Data Found

\n
\n ) : (\n {companycards}\n )}\n {/*\n {({ file }) => (\n \n \n \n \n
No file selected
\n \n
\n \n \n \n \n )}\n \n \n SUBMIT\n \n \n ) : (\n
\n )}\n \n
\n
*/}\n\n {/* \n \n \n {\" \"}\n \n \n \n
\n
\n {companyLocationCards && companyLocationCards.length > 0 ? (\n <>\n \n \n {\" \"}\n
\n
\n
\n
Name
\n
Latitude
\n
Longitude
\n
\n {companyLocationCards}\n
\n
\n \n
\n \n \n \n \n SUBMIT\n \n \n \n \n ) : null}\n
*/}\n {/* \n \n \n

\n \n Upload CSV (Address) \n \n

\n\n \n {({ file }) => (\n \n \n \n \n No file selected\n \n \n \n \n \n \n \n \n \n \n )}\n \n\n {minedata.length > 0 ? (\n \n \n \n Download Data\n \n \n \n ) : null}\n \n
\n
*/}\n {/* \n

Upload CSV

\n \n \n\n \n \n
\n
\n \n \n \n {({ file }) => (\n \n \n \n \n
No file selected
\n \n \n \n \n \n \n )}\n \n

\n \n \n \n

All Assets

\n
{buildingcsvtags}
\n
\n \n \n \n \n \n \n

Selected Assets

\n
{this.state.buildingselectedTags.length>0?this.state.buildingselectedTags.map((asset,index)=>(\n )):null}
\n \n\n
\n\n
\n
*/}\n {/* \n \n \n {this.props.indices.number_of_countries ? (\n \n

Selected Index:

\n \n
\n

{this.state.index}

\n

\n Number of Countries:\n {this.props.indices.number_of_countries}\n

\n

\n Number of Companies:\n {this.props.indices.number_of_companies}\n

\n
\n
\n \n SUBMIT\n \n
\n ) : null}\n \n

Indices:

\n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n
\n \n \n {\" \"}\n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n
\n
*/}\n \n \n \n \n\n \n \n Confirmation\n \n \n

\n Do you want to upload CSV with these{\" \"}\n ?\n

\n
\n\n \n Area\n
\n Valuation\n
\n Number of Floors\n Solar Power Production (in gwh)\n Wind Power Production (in gwh)\n Hydro Power Production (in gwh)\n \n Repairing / Construction Cost (in mil $)\n \n\n Wheat Production (in kg)\n Rice Production (in kg)\n Maize Production (in kg)\n Fruit Production (in kg)\n Vegetable Production (in kg)\n OwnerShip\n \n
\n \n Submit\n \n
\n
\n
\n
\n\n {/* \n Confirmation\n \n

Do you want to upload CSV with these ?


\n \n \n Area
\n Valuation
\n Number of Floors\n \n\n\n \n\n\n

\n \n
\n
\n
\n */}\n \n \n Error\n \n \n {/**/}\n

\n You are only allowed to add{\" \"}\n {this.props.permissions.assets_allowed} assets for Analysis\n

\n
\n \n \n \n How to Upload CSV\n \n \n {/**/}\n \n \n \n \n \n Create Portfolio\n \n \n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Portfolio Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n \n Select Variables for Analysis\n \n
\n \n * River Flood Typhoon and Storm Surge are default Variables\n \n
\n \n Acute\n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n River Flood\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Storm Surge\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Typhoon\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wildfire\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Landslide\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Rainfall Flood\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Extreme Cold\n

\n
\n
\n
\n
\n \n
\n
\n\n \n Chronic\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Extreme Heat\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Snowfall\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Sea Level Rise\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Drought\n

\n
\n
\n
\n
\n \n
\n
\n
\n {/* \n Energy and Farm\n \n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Solar Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wind Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Hydro Production\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wheat Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Fruit Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Vegetable Production\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Maize Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Rice Production\n

\n
\n
\n
\n
\n \n
\n
\n
*/}\n
\n )}\n {/* \n
\n \n USD\n EUR\n GBP\n HKD\n \n
\n \n
\n \n Meter\n Inch\n \n
\n
*/}\n\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n
\n ) : (\n \n Submit\n \n )}\n \n \n \n \n \n Create Portfolio\n \n \n {this.props.errors.error && this.props.errors.error.length > 0 ? (\n
\n {this.props.errors.error.map((errorMessage, index) => (\n

\n {errorMessage}\n

\n ))}\n
\n ) : null}\n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Portfolio Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n \n Select Variables for Analysis\n \n
\n \n * River Flood Typhoon and Storm Surge are default Variables\n \n
\n \n Acute\n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n River Flood\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Storm Surge\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Typhoon\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wildfire\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Landslide\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Rainfall Flood\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Extreme Cold\n

\n
\n
\n
\n
\n \n
\n
\n\n \n Chronic\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Extreme Heat\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Snowfall\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Sea Level Rise\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Drought\n

\n
\n
\n
\n
\n \n
\n
\n
\n {/* \n Energy and Farm\n \n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Solar Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wind Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Hydro Production\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wheat Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Fruit Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Vegetable Production\n

\n
\n
\n
\n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Maize Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Rice Production\n

\n
\n
\n
\n
\n \n
\n
\n
*/}\n
\n )}\n {/* \n
\n \n USD\n EUR\n GBP\n HKD\n \n
\n \n
\n \n Meter\n Inch\n \n
\n
\n */}\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n onSubmit\n
\n ) : (\n \n Submit\n \n )}\n \n \n \n\n \n \n Create Portfolio\n \n \n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Portfolio Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n {/* this.handleChange(value,'others')}/> */}\n {/* \n Select Variables for Analysis\n \n
\n
\n \n * River Flood Typhoon and Storm Surge are default Variables\n \n
\n \n Acute\n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n River Flood\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Storm Surge\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Typhoon\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wild Fire\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Landslide\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Rainfall Flood\n

\n
\n
\n
\n
\n \n
\n
\n\n \n Chronic\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Extreme Heat\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n SnowFall\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Sea Level Rise\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Drought\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n Energy and Farm\n \n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Solar Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wind Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Hydro Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Wheat Production\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Fruit Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Vegetable Production\n

\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n
\n

\n \n Maize Production\n

\n
\n
\n
\n
\n \n
\n
*/}\n
\n
\n )}\n\n
\n
\n\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n
\n ) : (\n \n Submit\n \n )}\n \n
\n \n \n Create Portfolio\n \n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Portfolio Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n
\n )}\n\n
\n
\n\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n
\n ) : (\n \n Submit\n \n )}\n \n
\n \n\n \n Download Sample CSV\n \n {/* Currency Dropdown \n \n
\n \n USD\n EUR\n GBP\n HKD\n \n
\n
\n\n {/* Unit Dropdown \n \n
\n\n \n Meter\n Inch\n \n\n
\n
*/}\n \n Submit\n \n
\n
\n
\n \n\n {/* \n Create Portfolio\n \n
\n {(this.props.location.state)?\n
\n

New Portfolio this.setState({overwrite:!this.state.overwrite},()=>console.log(\"ovewrite\",this.state.overwrite))} toggle/>

\n {(this.state.overwrite)?this.setState({portfolio:e.target.value})}/>:}\n
:\n
\n this.setState({portfolio:e.target.value})}\n style={{border:'0px'}}\n label=\"Portfolio Name\"\n \n />\n\n this.handleChange(value,'others')}/> \n

\n \n Solar Production\n Wind Production\n Wheat Production
\n Rice Production\n \n Maize Production\n Fruit Production\n Vegetable Production\n \n
\n
\n \n \n
\n}\n \n \n \n \n \n
\n
\n\n {(this.state.loading && this.props.errors.error==undefined)?
:\n }\n
\n
\n*/}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n locus: state.locus,\n company: state.company.company,\n permissions: state.locus.permissions,\n name: state.locus.name,\n point: state.locus.point,\n indices: state.locus.indices,\n transition: state.locus.transition,\n company_name: state.locus.company_name,\n company_location: state.locus.company_location,\n auth: state.auth,\n };\n};\nconst mapDispatchToPros = (dispatch) => {\n return {\n addLocations: (formdata) => {\n dispatch(locus.addLocations(formdata));\n },\n addCompanyLocations: (formdata) => {\n dispatch(locus.addCompanyLocations(formdata));\n },\n Notification: () => {\n dispatch(locus.Notification());\n },\n\n addBuildingLocations: (formdata) => {\n dispatch(locus.addBuildingLocations(formdata));\n },\n\n getCompany: () => {\n dispatch(company.getCompanies());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getName: (formdata) => {\n dispatch(locus.getName(formdata));\n },\n getCoordinates: (formdata) => {\n dispatch(locus.getCoordinates(formdata));\n },\n getIndices: (formdata) => {\n dispatch(locus.getIndices(formdata));\n },\n addIndex: (formdata) => {\n dispatch(locus.addIndex(formdata));\n },\n getTransition: (formdata) => {\n dispatch(locus.getTransition(formdata));\n },\n getCompanyName: (formdata) => {\n dispatch(locus.getCompanyName(formdata));\n },\n getCompanyLocations: (formdata) => {\n dispatch(locus.getCompanyLocations(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToPros)(Location);\n","import React, { Component } from \"react\";\nimport logo from \"../assets/logo_land.png\";\nimport { auth } from \"../actions\";\nimport \"../assets/css/animate.css\";\nimport \"../assets/css/LineIcons.2.0.css\";\nimport \"../assets/css/style.css\";\nimport \"../assets/css/bootstrap-4.5.0.min.css\";\nimport \"../assets/css/default.css\";\nimport { Redirect } from \"react-router-dom\";\nimport hero from \"../assets/images/header-hero.png\";\nimport heroLeft from \"../assets/images/header-hero-left.png\";\nimport heroRight from \"../assets/images/header-hero-right.png\";\nimport customersCorporationsIcon from \"../assets/images/customers-corporations-icon.png\";\nimport customersFinancialInstitutionsIcon from \"../assets/images/customers-financial-institutions-icon.png\";\nimport customersRealEstateInvestorsIcon from \"../assets/images/customers-real-estate-investors-icon.png\";\nimport customersCommunitiesIcon from \"../assets/images/customers-communities-icon.png\";\nimport shape from \"../assets/images/services-shape.svg\";\nimport shape1 from \"../assets/images/services-shape-1.svg\";\nimport shape2 from \"../assets/images/services-shape-2.svg\";\nimport shape3 from \"../assets/images/services-shape-3.svg\";\nimport saasGraphics from \"../assets/images/saas graphics.png\";\nimport saasAdvantageIcon1 from \"../assets/images/saas-advantage-icon-1.png\";\nimport saasAdvantageIcon2 from \"../assets/images/saas-advantage-icon-2.png\";\nimport saasAdvantageIcon3 from \"../assets/images/saas-advantage-icon-3.png\";\nimport saasAdvantageIcon4 from \"../assets/images/saas-advantage-icon-4.png\";\nimport extremeheat from \"../assets/images/extreme-heat.png\";\nimport flood from \"../assets/images/flood.png\";\nimport typhoons from \"../assets/images/typhoons.png\";\nimport { Navbar, Nav, Button, Card } from \"react-bootstrap\";\nimport { Icon } from \"semantic-ui-react\";\nimport styles from \"./home.module.css\";\n\nclass Home extends Component {\n dataSourceDialogueBox(text, w = \"100%\") {\n return (\n \n \n \n \n \n \n \n {text}\n \n \n \n \n );\n }\n render() {\n if (auth.isUserAuthenticated()) {\n return ;\n }\n\n return (\n <>\n
\n
\n \n \n \"Intensel\"\n \n \n \n\n
\n
\n
\n
\n
\n \n Asia's Leading Climate Risk Software Solution\n \n\n \n \n Software as a service to measure portfolio and asset\n level risks related to climate change\n

\n \n Log In\n \n \n Request a Demo\n \n
\n
\n
\n \n \"hero\"\n \n \n
\n
\n
\n
\n
\n
\n
\n \n\n
\n
\n
\n
\n

\n Who we{\" \"}\n \n serve?\n \n

\n
\n
\n
    \n
  • \n CORPORATIONS\n
  • \n
  • \n FINANCIAL\n INSTITUTIONS\n
  • \n
  • \n REAL ESTATE\n INVESTORS\n
  • \n
  • \n COMMUNTIES\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n

\n Why Intensel is{\" \"}\n \n better product?\n \n

\n
\n
\n \n \n \n 1\n \n \n Granular & Accurate Climate Analytics\n \n \n \n \n \n \n 2\n \n Integrated Financial Analysis\n \n \n \n \n \n 3\n \n Real-time Analytics\n \n \n \n \n \n 4\n \n Interactive\n \n \n
\n \n \n \n PRECISE\n \n

\n Scientifically Rigorous\n

\n

\n In-house scientific simulations with peer-reviewed\n dynamical and data-driven models.\n

\n

Expert Validation

\n

\n Validation & verification integrated throughout the\n modeling chain.\n

\n

Data Transparency

\n

\n Transparency in all modeling components, from metrics\n to scoring to loss. No black boxes\n

\n
\n
\n
\n \n \n PREDICTIVE\n \n

Forward-Looking

\n

\n Latest predictive climate models; not a\n backward-looking catastrophic risk model approach\n

\n

\n Quantified Uncertainty\n

\n

\n Measure and provide known sources of modeling\n uncertainty.\n

\n

\n Scenario-based Ability\n

\n

\n Ability to traverse a range of emissions and response\n scenarios.\n

\n
\n
\n
\n \n \n EXTENDABLE\n \n

Data Access

\n

\n Flexible data access via API and SaaS applications—\n all delivered at enterprise-grade\n

\n

Downscaled

\n

\n Downscaling methods optimized for portfolio & facility\n analyses.\n

\n

Expanding Catalog

\n

\n We are rapidly expanding climate metrics tuned to\n customer needs.\n

\n
\n
\n
\n
\n
\n \n
\n

Data Sources

\n
\n
    \n
  • \n
    \n {this.dataSourceDialogueBox(\"Global Climate Models\")}\n
    \n
      \n
    • Sea - Level Rise
    • \n
    • Higher Temperatures
    • \n
    • Storm Intensification
    • \n
    • Altered Rain Patterns
    • \n
    \n
  • \n
  • \n
    {this.dataSourceDialogueBox(\"Historical data\")}
    \n
      \n
    • Reanalysis Data
    • \n
    • Satellite Observations
    • \n
    • In-Situ Observations
    • \n
    \n
  • \n
  • \n
    {this.dataSourceDialogueBox(\"Additional Models\")}
    \n
      \n
    • Severe Weather
    • \n
    • Hyrdrology
    • \n
    • Wildlife
    • \n
    • Evapotranspiration
    • \n
    • Global EQ Hazard
    • \n
    \n
  • \n
  • \n
    {this.dataSourceDialogueBox(\"Local Conditions\")}
    \n
      \n
    • Elevation
    • \n
    • Land Use
    • \n
    • Vegatation
    • \n
    \n
  • \n
\n \n
\n \n \n \n \n \n \n
\n \n
\n

Simulation Of Future Perils

\n
\n
    \n
  • \n Every 20 Years\n
    \n 2020-2100\n
  • \n
  • \n Any Location\n
    \n Worldwide\n
  • \n
  • \n Multiple Carbon\n
    \n Scenarios\n
  • \n
\n \n\n
\n
\n

\n INTENSEL{\" \"}\n \n Climate Solutions\n \n

\n
\n
\n

\n As businesses, investors and governments explore the\n transition to a net-zero world,\n

\n

\n Intensel is committed to creating climate solutions to\n support real time, accurate decision making\n

\n
\n
\n \n \n \n Physical Climate-Related Risk Metrics (TCFD Approach)\n \n \n {/* Extensive climate change metrics\n including Climate Value-at-Risk,\n carbon management assessment,\n carbon emissions, clean tech\n metrics and fossil fuel screens. */}\n
\n
    \n
  • Portfolio Physical Climate Risk
  • \n
  • Key Risk Identifications
  • \n
  • Asset Level Exposure To Climate
  • \n
  • Supply Chain Risk Exposure
  • \n
\n
\n \n \n \n
\n
\n \n \n Climate Value-At-Risk\n \n {/* Extensive climate change metrics\n including Climate Value-at-Risk,\n carbon management assessment,\n carbon emissions, clean tech\n metrics and fossil fuel screens */}\n
\n
    \n
  • \n Climate-Related Potential Losses For The Portfolio\n
  • \n
  • \n Climate-Related Potential Losses On Company And\n Asset Level\n
  • \n
  • \n Climate Credit Spread Estimation On Portfolio And\n Company Level\n
  • \n
\n
\n \n \n \n
\n
\n \n \n Stress-Test Scenarios\n \n {/* Extensive climate change metrics\n including Climate Value-at-Risk,\n carbon management assessment,\n carbon emissions, clean tech\n metrics and fossil fuel screens */}\n
\n
    \n
  • Forward-Time Analysis
  • \n
  • RCP Related climate Scenarios
  • \n
  • Return Period Risk And Dollar loss Exposure
  • \n
\n
\n \n \n \n
\n
\n \n \n Transitional Risk (on request)\n \n {/* Extensive climate change metrics\n including Climate Value-at-Risk,\n carbon management assessment,\n carbon emissions, clean tech\n metrics and fossil fuel screens */}\n
\n
    \n
  • Emission Estimate Using Satellite Data
  • \n
  • Footprint Portfolio Level Estimation
  • \n
  • \n Relative Or Attribution Analysis Versus Benchmarks\n
  • \n
  • Price Risk Assessment
  • \n
  • Emission Gap Assessment
  • \n
  • Contribution By Sector And Asset/Company
  • \n
\n
\n \n \n \n
\n
\n {/* \n \n CLIMATE DATA & ANALYTICS\n \n Extensive climate change metrics\n including Climate Value-at-Risk,\n carbon management assessment,\n carbon emissions, clean tech\n metrics and fossil fuel screens.\n
\n
    \n
  • State of the art model
  • \n
  • Broad coverage across equities, fixed income and real estate
  • \n
\n
\n \n
\n
*/}\n
\n
\n\n
\n
\n

\n \n Intensel\n {\" \"}\n SaaS advantage\n

\n
\n
\n

\n We provide real-time to calculate portfolio and asset\n financial value-at-risk(VAR) accurate climate analytics\n

\n
\n \n
\n
\n \n

\n Enables reporting and disclosure consistent with the\n TCFD framework.\n

\n
\n
\n \n

\n Reports transition, physical risks & opportunities in\n the financial terms to empower decision - making.\n

\n
\n
\n \n

\n Powered by transparent methodology and rigorous science.\n

\n
\n
\n \n

\n Provides global coverage with property/asset to\n portfolio-level analysis, multiple climate scenarios\n covering present day to the year 2100.\n

\n
\n
\n
\n \n
\n
\n \n\n
\n
\n

Climate risk

\n
\n
\n
\n
\n \n

\n Extreme heat is a period of high heat and humidity with\n temperatures above 90 degrees for at least two to three\n days. In extreme heat your body works extra hard to\n maintain a normal temperature, which can lead to death.\n
\n \n Learn more\n \n

\n

EXTREME HEAT

\n
\n
\n \n

\n A flood is an overflow of water on normally dry ground.\n This is most commonly due to an overflowing river, a dam\n break, SnowFall, or heavy rainfall. Less commonly\n happening are tsunamis, storm surge.\n
\n \n Learn more\n \n

\n

FLOOD

\n
\n
\n \n

\n A typhoon is a mature tropical cyclone that develops\n between 180° and 100°E in the Northern Hemisphere. It is\n the most active tropical cyclone basin on Earth,\n accounting for almost one-third of the world's annual\n tropical cyclones.\n
\n \n Learn more\n \n

\n

TYPHOONS

\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n Unit 1058, 10/F Building 19W, No.19 Science Park West Avenue\n
Hong Kong Science Park, Hong Kong\n
\n
\n
\n \n \n Email Us\n
\n info@intensel.net\n
\n
\n
\n
\n \n );\n }\n}\nexport default Home;\n","import {\n\n\tMENU_SET_CLASSNAMES,\n\tMENU_CONTAINER_ADD_CLASSNAME,\n\tMENU_CLICK_MOBILE_MENU,\n\tMENU_CHANGE_DEFAULT_CLASSES,\n\tMENU_CHANGE_HAS_SUB_ITEM_STATUS,\n\tMENU_CHANGE_TITLE\n} from '../actions';\n\nimport {defaultMenuType, subHiddenBreakpoint, menuHiddenBreakpoint } from '../../constants/defaultValues'\n\n\nconst INIT_STATE = {\n\tcontainerClassnames: defaultMenuType,\n\tsubHiddenBreakpoint,\n\tmenuHiddenBreakpoint,\n\tmenuClickCount: 0,\n\tselectedMenuHasSubItems: defaultMenuType===\"menu-default\", //if you use menu-sub-hidden as default menu type, set value of this variable to false\n\ttitle: \"\",\n};\n\nexport default (state = INIT_STATE, action) => {\n\tswitch (action.type) {\n\n\t\tcase MENU_CHANGE_HAS_SUB_ITEM_STATUS:\n\t\treturn Object.assign({}, state, {\n\t\t\tselectedMenuHasSubItems: action.payload\n\t\t})\n\n\t\tcase MENU_SET_CLASSNAMES:\n\t\treturn Object.assign({}, state, {\n\t\t\tcontainerClassnames: action.payload.containerClassnames,\n\t\t\tmenuClickCount:action.payload.menuClickCount\n\t\t})\n\n\t\tcase MENU_CLICK_MOBILE_MENU:\n\t\treturn Object.assign({}, state, {\n\t\t\tcontainerClassnames: action.payload.containerClassnames,\n\t\t\tmenuClickCount:action.payload.menuClickCount\n\t\t})\n\n\t\tcase MENU_CONTAINER_ADD_CLASSNAME:\n\t\treturn Object.assign({}, state, {\n\t\t\tcontainerClassnames: action.payload\n\t\t})\n\n\t\tcase MENU_CHANGE_DEFAULT_CLASSES:\n\t\t\treturn Object.assign({}, state, {\n\t\t\t\tcontainerClassnames: action.payload\n\t\t\t})\n\n\t\tcase MENU_CHANGE_TITLE:\n\t\t\treturn Object.assign({}, state, {\n\t\t\t\ttitle: action.payload\n\t\t\t})\n\t\t\t\n\t\tdefault: return { ...state };\n\t}\n}\n","/* \nMenu Types:\n\"menu-default\", \"menu-sub-hidden\", \"menu-hidden\"\n*/\nexport const defaultMenuType = \"menu-default\";\n\nexport const subHiddenBreakpoint = 1440;\nexport const menuHiddenBreakpoint = 450;\nexport const defaultLocale = \"en\";\nexport const localeOptions = [\n { id: \"en\", name: \"English - LTR\", direction: \"ltr\" },\n { id: \"es\", name: \"Español\", direction: \"ltr\" },\n { id: \"enrtl\", name: \"English - RTL\", direction: \"rtl\" }\n];\n\nexport const firebaseConfig = {\n apiKey: \"AIzaSyBBksq-Asxq2M4Ot-75X19IyrEYJqNBPcg\",\n authDomain: \"gogo-react-login.firebaseapp.com\",\n databaseURL: \"https://gogo-react-login.firebaseio.com\",\n projectId: \"gogo-react-login\",\n storageBucket: \"gogo-react-login.appspot.com\",\n messagingSenderId: \"216495999563\"\n};\n\nexport const searchPath = \"/app/pages/search\";\nexport const servicePath = \"https://api.coloredstrategies.com\";\n\n/* \nColor Options:\n\"light.purple\", \"light.blue\", \"light.green\", \"light.orange\", \"light.red\", \"dark.purple\", \"dark.blue\", \"dark.green\", \"dark.orange\", \"dark.red\"\n*/\nexport const themeColorStorageKey=\"__theme_color\"\nexport const isMultiColorActive = true;\nexport const defaultColor = \"light.purple\";\nexport const isDarkSwitchActive = true;\nexport const defaultDirection = \"ltr\";\nexport const themeRadiusStorageKey = \"__theme_radius\";\nexport const isDemo = true;","const initialState = {\n token: localStorage.getItem(\"token\"),\n isAuthenticated: null,\n isLoading: true,\n user: null,\n errors: {},\n log_data: {},\n};\n\nexport default function auth(state = initialState, action) {\n switch (action.type) {\n case \"USER_LOADING\":\n return { ...state, isLoading: true };\n\n case \"USER_LOADED\":\n case \"USER_UPDATED\":\n return {\n ...state,\n isAuthenticated: true,\n isLoading: false,\n user: action.user,\n };\n\n case \"LOGIN_SUCCESSFUL\":\n localStorage.setItem(\"token\", action.data.token);\n return {\n ...state,\n log_data: action.data,\n isAuthenticated: true,\n isLoading: false,\n errors: null,\n };\n case \"REGISTRATION_SUCCESSFUL\":\n return {\n ...state,\n ...action.data,\n isAuthenticated: true,\n isLoading: false,\n errors: null,\n };\n\n case \"AUTHENTICATION_ERROR\":\n case \"LOGIN_FAILED\":\n case \"REGISTRATION_FAILED\":\n case \"LOGOUT_SUCCESSFUL\":\n localStorage.removeItem(\"token\");\n return {\n ...state,\n errors: action.data,\n token: null,\n user: null,\n isAuthenticated: false,\n isLoading: false,\n };\n\n default:\n return state;\n }\n}\n","const initialState = {\n locus: [],\n errors: {},\n isLoading: true,\n assets: [],\n permissions: [],\n name: [],\n company_name: [],\n company_location: [],\n point: [],\n indices: [],\n index: [],\n transition: [],\n sbti: [],\n modify_transition: [],\n notification: [],\n property: [],\n keyword: [],\n faqs: [],\n map: [],\n map_response: [],\n download_map: [],\n download_map_value: [],\n dataset: [],\n};\n\nexport default function locus(state = initialState, action) {\n switch (action.type) {\n case \"LOCATION_ADDING\":\n return { ...state, isLoading: true };\n case \"CREATE_MAP\":\n return { ...state, isLoading: true };\n case \"ADD_LOCATION\":\n localStorage.setItem(\"variables\", JSON.stringify(action.locus.variables));\n localStorage.setItem(\n \"property_types\",\n JSON.stringify(action.locus.property_types)\n );\n\n return { ...state, locus: action.locus, isLoading: false };\n case \"MAP_ADD\":\n return { ...state, map: action.map, isLoading: false };\n case \"ADD_INDEX\":\n return { ...state, index: action.index, isLoading: false };\n case \"GET_TRANSITION\":\n return { ...state, transition: action.transition, isLoading: false };\n case \"MODIFY_TRANSITION\":\n return { ...state, modify_transition: action.modify_transition };\n case \"GET_SBTI\":\n return { ...state, sbti: action.sbti, isLoading: false };\n case \"NOTIFICATION_SUCCESS\":\n return { ...state, notification: action.notification, isLoading: false };\n case \"GENERATE_SUCCESS\":\n return { ...state, map_response: action.map_response, isLoading: false };\n case \"DOWNLOAD_MAP_SUCCESS\":\n return { ...state, download_map: action.download_map, isLoading: false };\n case \"DOWNLOAD_MAP_VALUE_SUCCESS\":\n return {\n ...state,\n download_map_value: action.download_map_value,\n isLoading: false,\n };\n case \"DATASET_SUCCESS\":\n return {\n ...state,\n dataset: action.dataset,\n isLoading: false,\n };\n case \"ADD_NONBUILDING\":\n return { ...state, locus: action.locus, isLoading: false };\n case \"POST_INDICES\":\n return { ...state, indices: action.indices };\n case \"FETCH_LOCATION\":\n return { ...state, locus: action.locus, isLoading: true };\n case \"FETCH_COORDINATES\":\n return { ...state, point: action.point };\n case \"FETCH_SEARCH\":\n return { ...state, name: action.name };\n case \"FETCH_COMPANY_SEARCH\":\n return { ...state, company_name: action.company_name };\n case \"FETCH_COMPANY_LOCATION\":\n return { ...state, company_location: action.company_location };\n case \"PROPERTY_RISK\":\n return { ...state, property: action.property, isLoading: false };\n case \"GET_PROPERTY_RISK\":\n return { ...state, property: action.property, isLoading: false };\n case \"KEYWORD\":\n return { ...state, keyword: action.keyword, isLoading: false };\n case \"FAQS\":\n return { ...state, faqs: action.faqs, isLoading: false };\n case \"FETCH_PERMISSION\":\n return { ...state, permissions: action.permissions };\n case \"FETCH_ASSET\":\n return { ...state, assets: action.assets };\n case \"AUTHENTICATION_ERROR\":\n case \"LOCATION_FAIL\":\n return { ...state, errors: action.data, locus: null, isLoading: false };\n case \"MAP_FAIL\":\n return { ...state, errors: action.data, map: null, isLoading: false };\n case \"PERMISSION_FAIL\":\n return { ...state, errors: action.data, permissions: null };\n case \"SEARCH_FAIL\":\n return { ...state, errors: action.data, name: null };\n case \"COMPANY_SEARCH_FAIL\":\n return { ...state, errors: action.data, company_name: null };\n case \"COMPANY_LOCATION_FAIL\":\n return { ...state, errors: action.data, company_location: null };\n case \"NONBUILDING_FAIL\":\n return { ...state, errors: action.data, locus: null, isLoading: false };\n case \"COORDINATES_FAIL\":\n return { ...state, errors: action.data, point: null };\n case \"INDICES_FAIL\":\n return { ...state, errors: action.data, indices: null };\n case \"NOTIFICATION_FAIL\":\n return { ...state, errors: action.data, notification: null };\n case \"GENERATE_FAIL\":\n return { ...state, errors: action.data, map_response: null };\n case \"DOWNLOAD_MAP_FAIL\":\n return { ...state, errors: action.data, download_map: null };\n case \"DOWNLOAD_MAP_VALUE_FAIL\":\n return { ...state, errors: action.data, download_map_value: null };\n case \"DATASET_FAIL\":\n return { ...state, errors: action.data, dataset: null };\n case \"INDEX_FAIL\":\n return { ...state, errors: action.data, index: null };\n case \"SBTI_FAIL\":\n return { ...state, errors: action.data, index: null };\n case \"FAQS_FAIL\":\n return { ...state, errors: action.data, faqs: null };\n case \"PROPERTY_RISK_FAIL\":\n return { ...state, errors: action.data, property: null };\n case \"GET_PROPERTY_RISK_FAIL\":\n return { ...state, errors: action.data, property: null };\n case \"KEYWORD_FAIL\":\n return { ...state, errors: action.data, keyword: null };\n case \"TRANSITION_FAIL\":\n return { ...state, errors: action.data, transition: null };\n case \"MODIFY_TRANSITION_FAIL\":\n return { ...state, errors: action.data, modify_transition: null };\n default:\n return state;\n }\n}\n","const initialState ={\n\tcompany:[],\n\terrors:{}\n};\n\nexport default function company(state=initialState,action){\n\tswitch(action.type){\n\t\n\t\tcase 'FETCH_COMPANY':\n\t\t\treturn {...state,company:action.company};\n\t\tcase 'AUTHENTICATION_ERROR':\n\t\tcase 'COMPANY_FAIL':\n\t\t\treturn {...state,errors:action.data,company:null};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}","const initialState = {\n project: [],\n errors: {},\n csv: [],\n invoice: [],\n report: [],\n detailreport: [],\n windreport: [],\n lossreport: [],\n countrywiselossreport: [],\n overallmapimage: [],\n assetmapimage: [],\n tcfd: [],\n ppt: [],\n map: [],\n overall_map: [],\n link: [],\n list: [],\n transiton_project: [],\n carbon_project: [],\n carbon_project_data: [],\n delete_carbon_project_data: [],\n download_carbon_project_data: [],\n filter: [],\n};\n\nexport default function project(state = initialState, action) {\n switch (action.type) {\n case \"ADD_PROJECT\":\n return { ...state, project: action.project };\n case \"ADD_REPORT\":\n return { ...state, report: action.report };\n case \"DELETE_PROJECT\":\n return { ...state, project: action.project };\n case \"FETCH_PROJECT\":\n return { ...state, project: action.project };\n case \"CARBON_PROJECT\":\n return { ...state, carbon_project: action.carbon_project };\n case \"GET_CARBON_PROJECT\":\n return { ...state, carbon_project_data: action.carbon_project_data };\n case \"DELETE_CARBON_PROJECT\":\n return {\n ...state,\n delete_carbon_project_data: action.delete_carbon_project_data,\n };\n case \"DOWNLOAD_CARBON_PROJECT\":\n return {\n ...state,\n download_carbon_project_data: action.download_carbon_project_data,\n };\n case \"UPDATE_FILTER\":\n return {\n ...state,\n filter: action.filter,\n };\n case \"FETCH_PROJECT_LIST\":\n return { ...state, list: action.list };\n case \"FETCH_INVOICE\":\n return { ...state, invoice: action.invoice };\n case \"FETCH_REPORT\":\n return { ...state, report: action.report };\n case \"TRANSITION_PROJECT\":\n return { ...state, transition_project: action.transition_project };\n case \"FETCH_DETAILREPORT\":\n return { ...state, detailreport: action.detailreport };\n case \"FETCH_LOSSREPORT\":\n return { ...state, lossreport: action.lossreport };\n case \"FETCH_WINDREPORT\":\n return { ...state, windreport: action.windreport };\n case \"FETCH_COUNTRYWISELOSSREPORT\":\n return { ...state, countrywiselossreport: action.countrywiselossreport };\n case \"FETCH_OVERALLMAPIMAGE\":\n return { ...state, overallmapimage: action.overallmapimage };\n case \"FETCH_ASSETMAPIMAGE\":\n return { ...state, assetmapimage: action.assetmapimage };\n case \"FETCH_TCFDREPORT\":\n return { ...state, tcfd: action.tcfd };\n case \"FETCH_PPTREPORT\":\n return { ...state, ppt: action.ppt };\n case \"FETCH_ASSETMAP\":\n return { ...state, map: action.map };\n case \"FETCH_MAP\":\n return { ...state, overall_map: action.overall_map };\n case \"FETCH_LINK\":\n return { ...state, link: action.link };\n case \"FETCH_INSURANCE\":\n return { ...state, insurance: action.insurance };\n case \"AUTHENTICATION_ERROR\":\n case \"PROJECT_FAIL\":\n return { ...state, errors: action.data, project: null };\n case \"CARBON_PROJECT_FAIL\":\n return { ...state, errors: action.data, carbon_project: null };\n case \"DELETE_CARBON_PROJECT_FAIL\":\n return { ...state, errors: action.data, delete_carbon_project: null };\n case \"DOWNLOAD_CARBON_PROJECT_FAIL\":\n return {\n ...state,\n errors: action.data,\n download_carbon_project_data: null,\n };\n case \"UPDATE_FILTER_FAIL\":\n return {\n ...state,\n errors: action.data,\n filter: null,\n };\n case \"PROJECT_LIST_FAIL\":\n return { ...state, errors: action.data, list: null };\n case \"TRANSITION_PROJECT_FAIL\":\n return { ...state, errors: action.data, transition_project: null };\n case \"GET_CARBON_PROJECT_FAIL\":\n return { ...state, errors: action.data, carbon_project_data: null };\n case \"GET_CSV\":\n return { ...state, csv: action.csv };\n case \"CSV_FAIL\":\n return { ...state, errors: action.data, csv: null };\n case \"CSV_ERROR\":\n return { ...state, csv: action.csv, errors: null };\n case \"INVOICE_FAIL\":\n return { ...state, errors: action.data, invoice: null };\n case \"REPORT_FAIL\":\n return { ...state, errors: action.data, report: null };\n case \"DETAILREPORT_FAIL\":\n return { ...state, errors: action.data, detailreport: null };\n case \"WINDREPORT_FAIL\":\n return { ...state, errors: action.data, windreport: null };\n case \"LOSSREPORT_FAIL\":\n return { ...state, errors: action.data, lossreport: null };\n case \"COUNTRYWISELOSSREPORT_FAIL\":\n return { ...state, errors: action.data, countrywiselossreport: null };\n case \"OVERALLMAPIMAGE_FAIL\":\n return { ...state, errors: action.data, overallmapimage: null };\n case \"ASSETMAPIMAGE_FAIL\":\n return { ...state, errors: action.data, assetmapimage: null };\n case \"TCFDREPORT_FAIL\":\n return { ...state, errors: action.data, tcfd: null };\n case \"PPTREPORT_FAIL\":\n return { ...state, errors: action.data, ppt: null };\n case \"ASSETMAP_FAIL\":\n return { ...state, errors: action.data, map: null };\n case \"MAP_FAIL\":\n return { ...state, errors: action.data, overall_map: null };\n case \"LINK_FAIL\":\n return { ...state, errors: action.data, link: null };\n case \"INSURANCE_FAIL\":\n return { ...state, errors: action.data, insurance: null };\n default:\n return state;\n }\n}\n","const initialState = {\n feedback: [],\n feedback_ssp: [],\n benchmark: [],\n errors: {},\n building: [],\n detail: [],\n detailyear: [],\n isLoading: true,\n summary: [],\n};\n\nexport default function feedback(state = initialState, action) {\n switch (action.type) {\n case \"DASHBOARD_LOADING\":\n return { ...state, isLoading: true };\n case \"ADD_DASHBOARD\":\n return { ...state, feedback: action.feedback, isLoading: false };\n case \"ADD_BENCHMARK\":\n return { ...state, benchmark: action.benchmark, isLoading: false };\n /*case \"ADD_SSP_DASHBOARD\":\n return { ...state, feedback: action.feedback, isLoading: false };*/\n case \"GET_BUILDING\":\n return { ...state, building: action.building, isLoading: false };\n case \"GET_SUMMARY\":\n return { ...state, summary: action.summary, isLoading: false };\n case \"GET_DETAIL\":\n return { ...state, detail: action.detail };\n case \"GET_DETAIL_YEAR\":\n return { ...state, detailyear: action.detailyear };\n case \"AUTHENTICATION_ERROR\":\n case \"DASHBOARD_FAIL\":\n return {\n ...state,\n errors: action.data,\n feedback: null,\n isLoading: false,\n };\n case \"BENCHMARK_FAIL\":\n return {\n ...state,\n errors: action.data,\n benchmark: null,\n isLoading: false,\n };\n /*case \"SSP_DASHBOARD_FAIL\":\n return {\n ...state,\n errors: action.data,\n feedback: null,\n isLoading: false,\n };*/\n case \"BUILDING_FAIL\":\n return { ...state, errors: action.data, building: null };\n case \"DETAIL_FAIL\":\n return { ...state, errors: action.data, detail: null };\n case \"SUMMARY_FAIL\":\n return { ...state, errors: action.data, summary: null };\n case \"DETAIL_YEAR_FAIL\":\n return { ...state, errors: action.data, detailyear: null };\n default:\n return state;\n }\n}\n","const initialState = {\n asset: [],\n typhoon: [],\n errors: {},\n isLoading: true,\n};\n\nexport default function asset(state = initialState, action) {\n switch (action.type) {\n case \"ASSET_LOADING\":\n return { ...state, isLoading: true };\n case \"FETCH_ASSET\":\n return { ...state, asset: action.asset };\n case \"TYPHOON_TRACK\":\n return { ...state, typhoon: action.typhoon };\n case \"DELETE_ASSET\":\n return { ...state, asset: action.asset };\n case \"UPDATE_ASSET\":\n return { ...state, asset: action.asset, isLoading: false };\n case \"AUTHENTICATION_ERROR\":\n case \"ASSET_FAIL\":\n case \"TYPHOON_FAIL\":\n return { ...state, errors: action.data, asset: null, isLoading: false };\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport menu from './menu/reducer';\nimport auth from '../reducers/auth';\nimport locus from '../reducers/location';\nimport company from '../reducers/company';\nimport project from '../reducers/project';\nimport feedback from '../reducers/dashboard';\nimport asset from '../reducers/asset';\n\nconst reducers = combineReducers({\n menu,\n auth,locus,company,project,feedback,asset\n});\n\nexport default reducers;\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Modal,\n Popup,\n StepTitle,\n Progress,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab } from \"react-bootstrap\";\nimport Spinner from \"./loader\";\nimport CsvDownloadButton from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect, withRouter } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\n\nlet options = [];\n\nconst VALUES = [\n \"2021-1-02\",\n \"2021-1-01\",\n \"2021-2-01\",\n \"2021-3-01\",\n \"2021-4-01\",\n \"2021-5-01\",\n \"2021-6-01\",\n \"2021-7-01\",\n \"2021-8-01\",\n \"2021-9-01\",\n \"2021-10-01\",\n \"2021-11-01\",\n \"2021-12-01\",\n];\n\nconst StatusOptions = [\n { key: \"active\", value: \"Active\", text: \"Active\" },\n { key: \"finished\", value: \"Finished\", text: \"Finished\" },\n];\nconst csv = [];\nconst othersOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"type\", value: \"type\", text: \"type\" },\n { key: \"Area\", value: \"Area\", text: \"Area\" },\n { key: \"Ownership\", value: \"ownership\", text: \"Ownership\" },\n { key: \"floors\", value: \"floors\", text: \"floors\" },\n {\n key: \"Construction Cost\",\n value: \"construction_cost\",\n text: \"Construction Cost\",\n },\n { key: \"With Content\", value: \"With Content\", text: \"With Content\" },\n];\nlet variableOptions = [];\nconst rcpOptions = [\n { key: \"0.0\", value: \"0.0\", text: \"0.0\" },\n { key: \"2.6\", value: \"2.6\", text: \"2.6\" },\n { key: \"4.5\", value: \"4.5\", text: \"4.5\" },\n { key: \"8.5\", value: \"8.5\", text: \"8.5\" },\n];\nconst yearOptions = [\n { key: \"2020\", value: \"2020\", text: \"2020\" },\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\nconst PortfolioLossOptions = [\n {\n key: \"Rainfall Flood Loss\",\n value: \"Rainfall Flood Loss\",\n text: \"Rainfall Flood Loss\",\n },\n {\n key: \"River Flood Loss\",\n value: \"River Flood Loss\",\n text: \"River Flood Loss\",\n },\n {\n key: \"Storm Surge Loss\",\n value: \"Storm Surge Loss\",\n text: \"Storm Surge Loss\",\n },\n { key: \"Typhoon Loss\", value: \"Typhoon Loss\", text: \"Typhoon Loss\" },\n {\n key: \"Temprature/heat Loss\",\n value: \"Temprature/heat Loss\",\n text: \"Temprature/heat Loss\",\n },\n {\n key: \"Solar Production Loss\",\n value: \"Solar Production Loss\",\n text: \"Solar Production Loss\",\n },\n {\n key: \"Wind Production Loss\",\n value: \"Wind Production Loss\",\n text: \"Wind Production Loss\",\n },\n {\n key: \"Hydro Production Loss\",\n value: \"Hydro Production Loss\",\n text: \"Hydro Production Loss\",\n },\n {\n key: \"Wheat Production Loss\",\n value: \"Wheat Production Loss\",\n text: \"Wheat Production Loss\",\n },\n {\n key: \"Rice Production Loss\",\n value: \"Rice Production Loss\",\n text: \"Rice Production Loss\",\n },\n {\n key: \"Maize Production Loss\",\n value: \"Maize Production Loss\",\n text: \"Maize Production Loss\",\n },\n {\n key: \"Fruit Production Loss\",\n value: \"Fruit Production Loss\",\n text: \"Fruit Production Loss\",\n },\n {\n key: \"Vegetable Production Loss\",\n value: \"Vegetable Production Loss\",\n text: \"Vegetable Production Loss\",\n },\n];\n\nclass TransitionProject extends Component {\n state = {\n name: \"\",\n description: \"\",\n status: \"\",\n assets: [],\n loading: false,\n activeItemName: \"\",\n modalOpen: false,\n variables: [],\n others: \"\",\n year: \"\",\n rcp: \"\",\n modalloading: false,\n lossmodalOpen: false,\n reportmodal: false,\n portfolios_transition: \"\",\n downloadmodalOpen: false,\n new_project: \"\",\n portfolio_loss: \"\",\n modalEdit: false,\n loading: false,\n dropbox: true,\n value: 0,\n previous: 0,\n share: false,\n };\n\n componentDidMount() {\n this.props.getProjectList(\"transition_risk\");\n }\n\n onSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"oldname\", this.state.activeItemName);\n formdata.append(\"status\", this.state.status);\n formdata.append(\"description\", this.state.description);\n formdata.append(\"name\", this.state.new_project);\n this.setState({ loading: true }, () => {\n this.props.addProject(formdata);\n });\n };\n handleChange = (value, key) => {\n this.setState({ [key]: value }, () =>\n console.log(\"othres\", this.state.others)\n );\n };\n\n handlePptReport(portfolio) {\n let formdata = new FormData();\n formdata.append(\"project_name\", portfolio);\n\n this.setState({ loading: true }, () => {\n this.props.getPptReport(formdata);\n });\n }\n handleShare = () => {\n this.setState({ share: true });\n };\n\n handleSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"variables\", JSON.stringify(this.state.variables));\n formdata.append(\"others\", JSON.stringify(this.state.others));\n formdata.append(\"year\", JSON.stringify(this.state.year));\n formdata.append(\"rcp\", JSON.stringify(this.state.rcp));\n formdata.append(\n \"portfolio_loss\",\n JSON.stringify(this.state.portfolio_loss)\n );\n\n this.setState({ modalloading: true }, () => {\n this.props.getCSV(formdata);\n });\n };\n handleView = () => {\n console.log(\"view \", this.props.csv.success);\n this.props.history.push({\n pathname: \"/pivottable\",\n state: { data: this.props.csv.success },\n });\n };\n handleLossSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"year\", this.state.year);\n this.setState({ modalloading: true }, () => {\n this.props.getLoss(formdata);\n });\n };\n\n handleSummarySubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n this.setState({ modalloading: true }, () => {\n this.props.getSummary(formdata);\n });\n };\n\n handleLogout = () => {\n this.props.logout();\n };\n handleOpen = (portfolio, variable) =>\n this.setState(\n { modalOpen: true, activeItemName: portfolio, activeVariable: variable },\n () => this.handleVariable()\n );\n\n handleVariable() {\n console.log(\"Climate Variable\", this.state.activeVariable);\n variableOptions = [];\n for (let i = 0; i < this.state.activeVariable.length; i++) {\n variableOptions.push({\n key: this.state.activeVariable[i],\n value: this.state.activeVariable[i],\n text: this.state.activeVariable[i],\n });\n }\n }\n handleEdit = (portfolio) => {\n this.setState({ modalEdit: true, activeItemName: portfolio });\n };\n\n handleLossModalOpen = (portfolio) =>\n this.setState({ lossmodalOpen: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleReport = (portfolio) =>\n this.setState({ reportmodal: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleLossModalClose = () => {\n this.setState({ lossmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n handleSummaryModalOpen = (portfolio) =>\n this.setState({ summarymodalOpen: true, activeItemName: portfolio });\n\n handleSummaryModalClose = () => {\n this.setState({ summarymodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n handleDropbox = (base, map) => {\n if (this.props.link.url == undefined) {\n console.log(\"function called\", map);\n let formdata = new FormData();\n formdata.append(\"ppt\", base);\n formdata.append(\"project_name\", map);\n this.props.Dropbox(formdata);\n }\n };\n\n handleClose = () =>\n this.setState(\n {\n modalOpen: false,\n lossmodalOpen: false,\n reportmodal: false,\n modalEdit: false,\n dropbox: false,\n },\n () => window.location.reload(false)\n );\n\n handleModify = (portfolio) => {\n this.props.history.push({\n pathname: \"/edit-transition\",\n state: { carbon_project_name: portfolio.project_name },\n });\n };\n\n handleDelete = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio.project_name);\n this.props.deleteCarbonProject(formdata);\n };\n handleDownload = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio);\n this.props.downloadCarbonProject(formdata);\n };\n handleDownloadModalOpen = (portfolio) =>\n this.setState({\n downloadmodalOpen: true,\n activeItemName: portfolio.project_name,\n });\n\n handleDownloadModalClose = () => {\n this.setState({ downloadmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n render() {\n const {\n value,\n others,\n variables,\n rcp,\n year,\n status,\n portfolio_loss,\n } = this.state;\n let user_id = localStorage.getItem(\"user_id\");\n\n if (this.state.loading) {\n return
;\n }\n if (this.props.list.data && this.props.list.data.length > 0) {\n let assets = this.props.list.data;\n this.state.portfolios_transition = assets;\n }\n console.log(\"portfolio transition\", this.state.portfolios_transition);\n\n return (\n
\n \n {this.props.list.data && this.props.list.data.length > 0 ? (\n \n \n {\" \"}\n \n

\n \n All Projects For  {\" \"}\n \n\n {this.props.list.username}\n

\n \n
\n \n \n

\n \n Total Number of Projects  \n \n\n {this.props.list.data.length}\n

\n \n
\n \n ) : null}\n
\n \n \n \n {this.state.portfolios_transition &&\n this.state.portfolios_transition.length > 0\n ? this.state.portfolios_transition\n .reverse()\n .map((portfolio, index) => (\n \n \n \n \n {portfolio.project_name}{\" \"}\n {portfolio.created_at ? (\n \n {portfolio.created_at.slice(0, 10)}\n \n ) : null}\n \n\n

\n\n this.handleModify(portfolio)}\n >\n Analyse\n \n\n this.handleDelete(portfolio)}\n />\n \n this.handleDownloadModalOpen(portfolio)\n }\n />\n\n
\n
\n
\n \n ))\n : null}\n
\n \n
\n\n \n Download Carbon Module Output\n \n
\n \n \n \n
\n\n {this.state.modalloading &&\n !this.props.download_carbon_project_data.length > 0 ? (\n \n \n \n ) : (\n this.handleDownload(this.state.activeItemName)}\n primary\n >\n Submit\n \n )}\n\n {this.props.download_carbon_project_data.length > 0 ? (\n
\n \n
\n ) : null}\n
\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n locus: state.locus.locus,\n csv: state.project.csv,\n project: state.project.project,\n ppt: state.project.ppt,\n map: state.project.map,\n overall_map: state.project.overall_map,\n link: state.project.link,\n list: state.project.list,\n download_carbon_project_data: state.project.download_carbon_project_data,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getLocations: () => {\n dispatch(locus.getLocations());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n addProject: (formdata) => {\n dispatch(project.addProject(formdata));\n },\n getCSV: (formdata) => {\n dispatch(project.getCSV(formdata));\n },\n getLoss: (formdata) => {\n dispatch(project.getLoss(formdata));\n },\n getSummary: (formdata) => {\n dispatch(project.getSummary(formdata));\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getProjects: () => {\n dispatch(project.getProjects());\n },\n deleteProject: (formdata) => {\n dispatch(project.deleteProject(formdata));\n },\n getPptReport: (formdata) => {\n dispatch(project.getPptReport(formdata));\n },\n getSatelliteMap: (formdata) => {\n dispatch(project.getSatelliteMap(formdata));\n },\n getMap: (formdata) => {\n dispatch(project.getMap(formdata));\n },\n Dropbox: (formdata) => {\n dispatch(project.Dropbox(formdata));\n },\n getProjectList: (type) => {\n dispatch(project.getProjectList(type));\n },\n getTransitionProject: () => {\n dispatch(project.getTransitionProject());\n },\n deleteCarbonProject: (formdata) => {\n dispatch(project.deleteCarbonProject(formdata));\n },\n downloadCarbonProject: (formdata) => {\n dispatch(project.downloadCarbonProject(formdata));\n },\n };\n};\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(TransitionProject)\n);\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Modal,\n Popup,\n StepTitle,\n Progress,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab } from \"react-bootstrap\";\nimport Spinner from \"./loader\";\nimport CsvDownload from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect, withRouter } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\n\nlet options = [];\n\nconst VALUES = [\n \"2021-1-02\",\n \"2021-1-01\",\n \"2021-2-01\",\n \"2021-3-01\",\n \"2021-4-01\",\n \"2021-5-01\",\n \"2021-6-01\",\n \"2021-7-01\",\n \"2021-8-01\",\n \"2021-9-01\",\n \"2021-10-01\",\n \"2021-11-01\",\n \"2021-12-01\",\n];\n\nclass RealEstateProject extends Component {\n state = {\n name: \"\",\n description: \"\",\n status: \"\",\n assets: [],\n loading: false,\n activeItemName: \"\",\n modalOpen: false,\n variables: [],\n others: \"\",\n year: \"\",\n rcp: \"\",\n modalloading: false,\n lossmodalOpen: false,\n reportmodal: false,\n portfolios_realestate: \"\",\n downloadmodalOpen: false,\n new_project: \"\",\n portfolio_loss: \"\",\n modalEdit: false,\n loading: false,\n dropbox: true,\n value: 0,\n previous: 0,\n share: false,\n };\n\n componentDidMount() {\n this.props.getProjectList(\"real_estate\");\n }\n\n onSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"oldname\", this.state.activeItemName);\n formdata.append(\"status\", this.state.status);\n formdata.append(\"description\", this.state.description);\n formdata.append(\"name\", this.state.new_project);\n this.setState({ loading: true }, () => {\n this.props.addProject(formdata);\n });\n };\n handleChange = (value, key) => {\n this.setState({ [key]: value }, () =>\n console.log(\"othres\", this.state.others)\n );\n };\n\n handlePptReport(portfolio) {\n let formdata = new FormData();\n formdata.append(\"project_name\", portfolio);\n\n this.setState({ loading: true }, () => {\n this.props.getPptReport(formdata);\n });\n }\n handleShare = () => {\n this.setState({ share: true });\n };\n\n handleSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"variables\", JSON.stringify(this.state.variables));\n formdata.append(\"others\", JSON.stringify(this.state.others));\n formdata.append(\"year\", JSON.stringify(this.state.year));\n formdata.append(\"rcp\", JSON.stringify(this.state.rcp));\n formdata.append(\n \"portfolio_loss\",\n JSON.stringify(this.state.portfolio_loss)\n );\n\n this.setState({ modalloading: true }, () => {\n this.props.getCSV(formdata);\n });\n };\n handleView = () => {\n console.log(\"view \", this.props.csv.success);\n this.props.history.push({\n pathname: \"/pivottable\",\n state: { data: this.props.csv.success },\n });\n };\n handleLossSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"year\", this.state.year);\n this.setState({ modalloading: true }, () => {\n this.props.getLoss(formdata);\n });\n };\n\n handleSummarySubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n this.setState({ modalloading: true }, () => {\n this.props.getSummary(formdata);\n });\n };\n\n handleLogout = () => {\n this.props.logout();\n };\n handleOpen = (portfolio, variable) =>\n this.setState(\n { modalOpen: true, activeItemName: portfolio, activeVariable: variable },\n () => this.handleVariable()\n );\n\n handleEdit = (portfolio) => {\n this.setState({ modalEdit: true, activeItemName: portfolio });\n };\n\n handleLossModalOpen = (portfolio) =>\n this.setState({ lossmodalOpen: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleReport = (portfolio) =>\n this.setState({ reportmodal: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleLossModalClose = () => {\n this.setState({ lossmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n handleSummaryModalOpen = (portfolio) =>\n this.setState({ summarymodalOpen: true, activeItemName: portfolio });\n\n handleSummaryModalClose = () => {\n this.setState({ summarymodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n handleDropbox = (base, map) => {\n if (this.props.link.url == undefined) {\n console.log(\"function called\", map);\n let formdata = new FormData();\n formdata.append(\"ppt\", base);\n formdata.append(\"project_name\", map);\n this.props.Dropbox(formdata);\n }\n };\n\n handleClose = () =>\n this.setState(\n {\n modalOpen: false,\n lossmodalOpen: false,\n reportmodal: false,\n modalEdit: false,\n dropbox: false,\n },\n () => window.location.reload(false)\n );\n\n handleModify = (portfolio) => {\n this.props.history.push({\n pathname: \"/realestate-dashboard\",\n state: { project_name: portfolio.project_name },\n });\n };\n\n handleDelete = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio.project_name);\n this.props.deleteCarbonProject(formdata);\n };\n handleDownload = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio);\n this.props.downloadCarbonProject(formdata);\n };\n handleDownloadModalOpen = (portfolio) =>\n this.setState({\n downloadmodalOpen: true,\n activeItemName: portfolio.project_name,\n });\n\n handleDownloadModalClose = () => {\n this.setState({ downloadmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n render() {\n const {\n value,\n others,\n variables,\n rcp,\n year,\n status,\n portfolio_loss,\n } = this.state;\n let user_id = localStorage.getItem(\"user_id\");\n\n if (this.state.loading) {\n return
;\n }\n if (this.props.list && this.props.list.data.length > 0) {\n let assets = this.props.list.data;\n this.state.portfolios_realestate = assets.reverse();\n }\n console.log(\"portfolio real estate\", this.state.portfolios_realestate);\n\n return (\n <>\n
\n \n {this.props.list.data && this.props.list.data.length > 0 ? (\n \n \n {\" \"}\n \n

\n \n All Projects For  {\" \"}\n \n\n {this.props.list.username}\n

\n \n
\n \n \n

\n \n Total Number of Projects  \n \n\n {this.props.list.data.length}\n

\n \n
\n \n ) : null}\n
\n \n \n \n {this.state.portfolios_realestate &&\n this.state.portfolios_realestate.length > 0\n ? this.state.portfolios_realestate\n .reverse()\n .map((portfolio, index) => (\n \n \n \n \n {portfolio.project_name}{\" \"}\n {portfolio.created_at ? (\n \n {portfolio.created_at.slice(0, 10)}\n \n ) : null}\n \n\n

\n\n this.handleModify(portfolio)}\n >\n Analyse\n \n\n
\n
\n
\n \n ))\n : null}\n
\n \n
\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n\n list: state.project.list,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getProjectList: (type) => {\n dispatch(project.getProjectList(type));\n },\n };\n};\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(RealEstateProject)\n);\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Label,\n Modal,\n Popup,\n StepTitle,\n GridColumn,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab } from \"react-bootstrap\";\nimport Spinner from \"./spinner\";\nimport CsvDownloadButton from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport pr1 from \"../assets/pr1.png\";\nimport pr2 from \"../assets/pr2.png\";\nimport pr3 from \"../assets/pr3.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm, Progress, Checkbox } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect, withRouter } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\nimport TransitionProject from \"./transition_project\";\nimport RealEstateProject from \"./realestate_project\";\nimport ProjectBarComponent from \"./project_bar_component\";\nimport { GROUP_NODE_RENDER_ID } from \"@antv/xflow-extension/es/flowchart-node-panel\";\nimport { formatDefaultLocale, timeThursdays } from \"d3\";\n\nlet options = [];\n\nconst ScenarioOptions = [\n {\n key: \"rcp\",\n value: \"rcp\",\n text: \"RCP\",\n },\n {\n key: \"ssp\",\n value: \"ssp\",\n text: \"SSP\",\n },\n];\n\nconst ProjectOptions = [\n { key: \"physical\", value: \"physical\", text: \"Physical Risk\" },\n { key: \"transition\", value: \"transition\", text: \"Transition Risk\" },\n { key: \"realestate\", value: \"realestate\", text: \"Real Estate\" },\n];\nconst StatusOptions = [\n { key: \"active\", value: \"Active\", text: \"Active\" },\n { key: \"finished\", value: \"Finished\", text: \"Finished\" },\n];\nconst csv = [];\nconst othersOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"type\", value: \"type\", text: \"type\" },\n { key: \"Area\", value: \"Area\", text: \"Area\" },\n { key: \"Ownership\", value: \"ownership\", text: \"Ownership\" },\n { key: \"floors\", value: \"floors\", text: \"floors\" },\n { key: \"Content Value\", value: \"content_value\", text: \"Content Value\" },\n {\n key: \"Construction Cost\",\n value: \"construction_cost\",\n text: \"Replacement Value\",\n },\n //{ key: \"With Content\", value: \"with_content\", text: \"With Content\" },\n { key: \"Revenue\", value: \"revenue\", text: \"Revenue\" },\n];\n\nlet variableOptions = [];\nconst rcpOptions = [\n { key: \"2.6\", value: \"2.6\", text: \"2.6\" },\n { key: \"4.5\", value: \"4.5\", text: \"4.5\" },\n { key: \"8.5\", value: \"8.5\", text: \"8.5\" },\n];\nconst rcp_2020_Options = [\n { key: \"2.6\", value: \"2.6\", text: \"2.6\" },\n { key: \"4.5\", value: \"4.5\", text: \"4.5\" },\n { key: \"8.5\", value: \"8.5\", text: \"8.5\" },\n];\nconst yearOptions = [\n { key: \"2020\", value: \"2020\", text: \"2020\" },\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\nconst yearOptions_default = [\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\nconst contentOptions = [\n { key: \"with_content\", value: \"with_content\", text: \"With Content\" },\n { key: \"without_content\", value: \"without_content\", text: \"Without Content\" },\n];\n\nconst sspyearOptions = [\n { key: \"2020\", value: \"2020\", text: \"2020\" },\n { key: \"2025\", value: \"2025\", text: \"2025\" },\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2035\", value: \"2035\", text: \"2035\" },\n { key: \"2040\", value: \"2040\", text: \"2040\" },\n { key: \"2045\", value: \"2045\", text: \"2045\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n { key: \"2055\", value: \"2055\", text: \"2055\" },\n { key: \"2060\", value: \"2060\", text: \"2060\" },\n { key: \"2065\", value: \"2065\", text: \"2065\" },\n { key: \"2070\", value: \"2070\", text: \"2070\" },\n { key: \"2075\", value: \"2075\", text: \"2075\" },\n { key: \"2080\", value: \"2080\", text: \"2080\" },\n { key: \"2085\", value: \"2085\", text: \"2085\" },\n { key: \"2090\", value: \"2090\", text: \"2090\" },\n { key: \"2095\", value: \"2095\", text: \"2095\" },\n { key: \"2100\", value: \"2100\", text: \"2100\" },\n];\nconst sspyearOptions_default = [\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n { key: \"2100\", value: \"2100\", text: \"2100\" },\n];\n\nconst agriOptions = [\n { key: \"Wheat\", value: \"wheat\", text: \"Wheat\" },\n { key: \"rice\", value: \"rice\", text: \"Rice\" },\n { key: \"maize\", value: \"maize\", text: \"Maize\" },\n { key: \"fruit\", value: \"fruit\", text: \"Fruit\" },\n];\nconst energyOptions = [\n { key: \"solar\", value: \"solar\", text: \"Solar\" },\n { key: \"wind\", value: \"wind\", text: \"Wind\" },\n { key: \"hydro\", value: \"Hydro\", text: \"Hydro\" },\n];\n\nconst currencyOptions = [\n { key: \"EUR\", value: \"EUR\", text: \"Euro\" },\n { key: \"USD\", value: \"USD\", text: \"US Dollars\" },\n { key: \"HKD\", value: \"HKD\", text: \"HongKong Dollars\" },\n { key: \"GBP\", value: \"GBP\", text: \"Pound\" },\n];\nlet userOptions = [];\nconst gdpOptions = [\n {\n key: \"unadjustd\",\n value: false,\n text: \"Unadjusted Operational Loss\",\n },\n {\n key: \"adjusted\",\n value: true,\n text: \"Operational Loss Adjusted with Long-term Climate Change Impact\",\n },\n];\nconst valuationOptions = [\n {\n key: \"replacement\",\n value: true,\n text: \"Yes\",\n },\n {\n key: \"valuation\",\n value: false,\n text: \"No\",\n },\n];\n\nconst permissionOptions = [\n { key: \"read\", value: \"read\", text: \"read\" },\n { key: \"write\", value: \"write\", text: \"write\" },\n];\n\nconst MetigationOptions = [\n { key: \"Rainfall Flood\", value: true, text: \"Yes\" },\n { key: \"River Flood\", value: false, text: \"No\" },\n];\nlet PortfolioLossOptions = [\n {\n key: \"River Flood Loss\",\n value: \"River Flood Loss\",\n text: \"River Flood Loss\",\n },\n {\n key: \"Storm Surge Loss\",\n value: \"Storm Surge Loss\",\n text: \"Storm Surge Loss\",\n },\n { key: \"Typhoon Loss\", value: \"Typhoon Loss\", text: \"Typhoon Loss\" },\n\n /*{\n key: \"Solar Production Loss\",\n value: \"Solar Production Loss\",\n text: \"Solar Production Loss\",\n },\n {\n key: \"Wind Production Loss\",\n value: \"Wind Production Loss\",\n text: \"Wind Production Loss\",\n },\n {\n key: \"Hydro Production Loss\",\n value: \"Hydro Production Loss\",\n text: \"Hydro Production Loss\",\n },\n {\n key: \"Wheat Production Loss\",\n value: \"Wheat Production Loss\",\n text: \"Wheat Production Loss\",\n },\n {\n key: \"Rice Production Loss\",\n value: \"Rice Production Loss\",\n text: \"Rice Production Loss\",\n },\n {\n key: \"Maize Production Loss\",\n value: \"Maize Production Loss\",\n text: \"Maize Production Loss\",\n },\n {\n key: \"Fruit Production Loss\",\n value: \"Fruit Production Loss\",\n text: \"Fruit Production Loss\",\n },\n {\n key: \"Vegetable Production Loss\",\n value: \"Vegetable Production Loss\",\n text: \"Vegetable Production Loss\",\n },*/\n];\nlet tierdata = [];\n\nclass PhysicalProject extends Component {\n state = {\n name: \"\",\n description: \"\",\n status: \"\",\n assets: [],\n loading: false,\n activeItemName: \"\",\n modalOpen: false,\n variables: [],\n others: \"\",\n filterOpen: false,\n agri: \"\",\n csv_rcp: \"\",\n csv_scenario: \"\",\n csv_year: \"\",\n energy: \"\",\n content: \"\",\n year: \"\",\n currency: \"\",\n rcp: \"\",\n permission: \"\",\n use_valuation: false,\n metigation: \"\",\n user: \"\",\n modalloading: false,\n lossmodalOpen: false,\n reportmodal: false,\n portfolios: \"\",\n summarymodalOpen: false,\n new_project: \"\",\n gdp: \"\",\n valuation: \"\",\n portfolio_loss: \"\",\n modalEdit: false,\n modalShare: false,\n loading: false,\n dropbox: true,\n value: 0,\n previous: 0,\n share: false,\n project_type: \"physical\",\n scenario: \"\",\n project_view: false,\n project_id: \"\",\n };\n\n componentDidMount() {\n this.props.getProjectList(\"physical_risk\");\n tierdata = JSON.parse(localStorage.getItem(\"tier_data\"));\n }\n componentDidUpdate(prevProps) {\n if (prevProps.list_physical !== this.props.list_physical) {\n this.setState({\n scenario: this.props.list_physical.default_filters.analysis_type,\n year: this.props.list_physical.default_filters.year,\n rcp: this.props.list_physical.default_filters.scenario,\n });\n }\n }\n\n onSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"oldname\", this.state.activeItemName);\n //formdata.append(\"status\", this.state.status);\n //formdata.append(\"description\", this.state.description);\n formdata.append(\"name\", this.state.new_project);\n this.setState({ loading: true }, () => {\n this.props.addProject(formdata);\n });\n };\n onShareSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"project_id\", this.state.project_id);\n formdata.append(\"share_with\", JSON.stringify(this.state.user));\n formdata.append(\"permission\", this.state.permission);\n this.setState({ loading: true }, () => {\n this.props.shareProject(formdata);\n });\n };\n handleChange = (value, key) => {\n this.setState({ [key]: value });\n };\n handleProjectView = () => {\n this.props.history.push({ pathname: \"/location\" });\n };\n useValuation = (e) => {\n this.setState({ use_valuation: !this.state.use_valuation });\n };\n\n handlePptReport = () => {\n let formdata = new FormData();\n // formdata.append(\"use_valuation\", this.state.use_valuation);\n //formdata.append(\"currency\", this.state.currency);\n formdata.append(\"project_id\", this.state.project_id);\n formdata.append(\"analysis_type\", this.state.scenario);\n\n this.setState({ loading: true }, () => {\n this.props.getPptReport(formdata);\n setTimeout(() => {\n this.handleUrl();\n }, 3000);\n });\n };\n handleUrl() {\n if (this.props.ppt.url) {\n window.open(this.props.ppt.url, \"_blank\");\n }\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.activeItemName);\n formdata.append(\"climate_variables\", JSON.stringify(this.state.variables));\n formdata.append(\"year_list\", JSON.stringify(this.state.csv_year));\n formdata.append(\"scenario_list\", JSON.stringify(this.state.csv_rcp));\n //formdata.append(\"currency\", this.state.currency);\n formdata.append(\"filters\", JSON.stringify(this.state.content));\n formdata.append(\"adjusted_gdp\", this.state.gdp);\n //formdata.append(\"agriculture_variables\", JSON.stringify(this.state.agri));\n //formdata.append(\"energy_variables\", JSON.stringify(this.state.energy));\n formdata.append(\"analysis_type\", this.state.csv_scenario);\n formdata.append(\"has_tip\", this.state.valuation);\n formdata.append(\"has_mitigation\", this.state.metigation);\n formdata.append(\n \"loss_variables\",\n JSON.stringify(this.state.portfolio_loss)\n );\n\n this.setState({ modalloading: true }, () => {\n this.props.getCSV(formdata);\n });\n };\n handleUpdateFilter = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n\n formdata.append(\n \"data\",\n JSON.stringify({\n year: this.state.year,\n scenario: this.state.rcp,\n analysis_type: this.state.scenario,\n })\n );\n this.setState({ modalloading: true, filterOpen: false }, () => {\n this.props.updateFilter(formdata);\n });\n };\n handleView = () => {\n console.log(\"view \", this.props.csv.success);\n this.props.history.push({\n pathname: \"/pivottable\",\n state: { data: this.props.csv.success },\n });\n };\n handleLossSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"year\", this.state.year);\n this.setState({ modalloading: true }, () => {\n this.props.getLoss(formdata);\n });\n };\n\n handleSummarySubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.activeItemName);\n formdata.append(\"has_mitigation\", this.state.metigation);\n formdata.append(\"analysis_type\", this.state.scenario);\n this.setState({ modalloading: true }, () => {\n this.props.getSummary(formdata);\n });\n };\n\n handleLogout = () => {\n this.props.logout();\n };\n handleVariable = () => {\n variableOptions = this.state.activeVariable.map((variable) => ({\n key: variable,\n value: variable,\n text: variable,\n }));\n console.log(\"variable\", variableOptions);\n if (this.state.activeVariable.includes(\"Rainfall Flood\")) {\n PortfolioLossOptions.push({\n key: \"Rainfall Flood Loss\",\n value: \"Rainfall Flood Loss\",\n text: \"Rainfall Flood Loss\",\n });\n }\n if (this.state.activeVariable.includes(\"Extreme Heat\")) {\n PortfolioLossOptions.push({\n key: \"Temprature/heat Loss\",\n value: \"Temprature/heat Loss\",\n text: \"Temperature/Heat Loss\",\n });\n }\n };\n\n handleOpen = (portfolio, variable) => {\n this.setState(\n { modalOpen: true, activeItemName: portfolio, activeVariable: variable },\n () => this.handleVariable()\n );\n };\n\n handleEdit = (portfolio) => {\n this.setState({ modalEdit: true, activeItemName: portfolio });\n };\n handleShare = (portfolio) => {\n console.log(\"share\", portfolio);\n this.setState({\n modalShare: true,\n activeItemName: portfolio.name,\n project_id: portfolio.project_id,\n });\n };\n\n handleLossModalOpen = (portfolio) =>\n this.setState({ lossmodalOpen: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleReport = (portfolio) =>\n this.setState(\n {\n reportmodal: true,\n activeItemName: portfolio.name,\n project_id: portfolio.project_id,\n },\n () => console.log(\"id\", this.state.project_id)\n );\n handleFilterOpen = () => {\n this.setState({\n filterOpen: true,\n });\n };\n handleLossModalClose = () => {\n this.setState({ lossmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n handleSummaryModalOpen = (portfolio) =>\n this.setState({ summarymodalOpen: true, activeItemName: portfolio });\n\n handleSummaryModalClose = () => {\n this.setState({ summarymodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n /* handleDropbox = (base, map) => {\n if (this.props.link.url == undefined) {\n console.log(\"function called\", map);\n let formdata = new FormData();\n formdata.append(\"ppt\", base);\n formdata.append(\"project_name\", map);\n this.props.Dropbox(formdata);\n }\n };*/\n\n handleClose = () =>\n this.setState(\n {\n modalOpen: false,\n lossmodalOpen: false,\n reportmodal: false,\n modalEdit: false,\n dropbox: false,\n modalShare: false,\n filterOpen: false,\n },\n () => window.location.reload(false)\n );\n\n handleDashboard = (portfolio) => {\n localStorage.setItem(\"variables\", portfolio.variables);\n this.props.history.push({\n pathname: \"/dashboard\",\n state: {\n project_name: portfolio.name,\n variables: portfolio.variables,\n property_type: portfolio.property_type,\n project_id: portfolio.project_id,\n scenario: this.state.scenario,\n rcp: this.state.rcp,\n year: this.state.year,\n },\n });\n };\n\n handleProject = (e, { value }) => {\n this.setState({ project_type: value });\n };\n handleDetailedReport = (portfolio) => {\n this.props.history.push({\n pathname: \"/tcfd\",\n state: { portfolio: portfolio.name },\n });\n };\n delete = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"name\", portfolio);\n this.props.deleteProject(formdata);\n };\n\n render() {\n const {\n value,\n others,\n gdp,\n valuation,\n variables,\n rcp,\n csv_rcp,\n csv_scenario,\n csv_year,\n year,\n status,\n portfolio_loss,\n currency,\n } = this.state;\n\n console.log(\n \"initial state\",\n this.state.scenario,\n this.state.rcp,\n this.state.year,\n this.state.project_id\n );\n\n let user_id = localStorage.getItem(\"user_id\");\n console.log(\"error\", this.props.errors);\n\n /* if (this.props.ppt.url && this.state.loading) {\n this.state.loading = false;\n\n let a = document.createElement(\"a\");\n a.target = \"_blank\";\n a.href = this.props.ppt.url;\n a.click();\n window.location.reload();\n }\n if (this.state.loading) {\n return
;\n }*/\n\n if (\n this.props.list_physical.data &&\n this.props.list_physical.data.length > 0\n ) {\n userOptions = [];\n\n let assets = this.props.list_physical.data;\n this.state.portfolios = assets;\n\n const members = this.props.list_physical.members;\n\n for (let i = 0; i < members.length; i++) {\n userOptions.push({\n key: members[i],\n value: members[i],\n text: members[i],\n });\n }\n }\n\n return (\n
\n \n {this.props.list_physical.data &&\n this.props.list_physical.data.length > 0 ? (\n \n \n {\" \"}\n \n

\n All Projects For {\" \"}\n {this.props.list_physical.username}\n

\n \n
\n \n \n

\n Total Project {\" \"}\n {this.props.list_physical.data.length}\n

\n \n
\n \n ) : null}\n \n \n Create New Project\n \n \n Advanced Filter\n \n \n {/* \n \n {\n this.setState({\n value: index,\n previous: this.state.value,\n });\n }}\n values={VALUES}\n />\n
\n
\n */}\n \n \n \n \n {this.state.portfolios && this.state.portfolios.length > 0\n ? this.state.portfolios.map((portfolio, index) => (\n \n \n \n {portfolio.name ? (\n \n {portfolio.name.includes(\"Project -\")\n ? portfolio.name.slice(10)\n : portfolio.name}\n {portfolio.date ? (\n \n {portfolio.date.slice(0, 10)}\n \n ) : null}\n \n ) : null}\n\n

\n \n Climate Score\n \n

\n\n \n
\n\n \n The project has {portfolio.assets} assets with\n Maximum Exposure of{\" \"}\n {portfolio.value ? (\n \n {\" \"}\n ${portfolio.value.toFixed(2)} \n \n ) : null}\n million and a Climate Value at Risk under RCP 8.5\n as \n {portfolio.loss ? (\n \n ${portfolio.loss.toFixed(2)}\n \n ) : null}\n  million\n \n\n \n \n \n this.handleDashboard(portfolio)}\n >\n Analyse\n \n \n {tierdata &&\n tierdata.download_options.includes(\n \"download_report\"\n ) ? (\n \n this.handleReport(portfolio)}\n >\n Report\n \n \n ) : null}\n\n \n {/* */}\n \n
\n\n \n {/* \n {this.state.share ? (\n \n \n \n ) : (\n \n \n Team\n

\n {portfolio.shared_with ? (\n \n {portfolio.shared_with.map(\n (share, index) => {\n console.log(\"share\", share);\n return (\n <>\n \n \n }\n />\n \n \n );\n }\n )}\n \n

\n +{portfolio.shared_with.length}\n {\"\"} more\n

\n \n
\n ) : null}\n
\n )}\n */}\n \n \n {/* \n \n \n \n Download CSVs\n

\n\n {tierdata &&\n tierdata.download_options.includes(\n \"download_csv\"\n ) ? (\n \n this.handleOpen(\n portfolio.name,\n portfolio.variables\n )\n }\n size=\"large\"\n />\n }\n />\n ) : null}\n\n {/* \n this.handleLossModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n\n {tierdata &&\n tierdata.download_options.includes(\n \"download_summary\"\n ) ? (\n \n this.handleSummaryModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n ) : null}\n \n \n
\n \n Are you sure you want to
delete{\" \"}\n {portfolio.name}\n \n }\n onConfirm={() =>\n this.delete(portfolio.name)\n }\n okText=\"Yes\"\n cancelText=\"No\"\n >\n
\n \n\n \n this.handleEdit(portfolio.name)\n }\n >\n {\" \"}\n \n this.handleShare(portfolio)}\n >\n \n \n \n */}\n \n \n \n \n Download CSVs\n

\n \n \n \n Actions\n

\n \n \n
\n \n \n \n \n \n {tierdata &&\n tierdata.download_options.includes(\n \"download_csv\"\n ) ? (\n \n this.handleOpen(\n portfolio.name,\n portfolio.variables\n )\n }\n size=\"large\"\n />\n }\n />\n ) : (\n \n }\n />\n )}\n \n \n {tierdata &&\n tierdata.download_options.includes(\n \"download_summary\"\n ) ? (\n \n this.handleSummaryModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n ) : (\n \n }\n />\n )}\n \n \n \n \n \n \n\n \n \n \n {\" \"}\n \n Are you sure you want to
{\" \"}\n delete {portfolio.name}\n \n }\n onConfirm={() =>\n this.delete(portfolio.name)\n }\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n \n \n \n this.handleEdit(portfolio.name)\n }\n />\n }\n />\n \n \n \n this.handleShare(portfolio)\n }\n />\n }\n />\n \n \n \n
\n \n \n
\n \n \n \n\n {/* \n \n \n {this.state.share ? (\n this.handleShareSubmit()}\n style={{\n backgroundColor: \"#18202F\",\n color: \"white\",\n }}\n >\n Submit\n \n ) : (\n this.handleShare()}\n >\n \n \n )}\n \n */}\n \n \n \n ))\n : null}\n \n {/* \n {this.state.portfolios && this.state.portfolios.length > 0\n ? this.state.portfolios.slice(0, 3).map((portfolio, index) => (\n \n \n \n \n {portfolio.name ? (\n {portfolio.name.slice(10)} \n ) : null}\n {portfolio.date ? (\n \n {portfolio.date.slice(0, 10)}\n \n ) : null}\n \n\n \n \n \n {portfolio.assets ? (\n

\n Assets\n
\n {portfolio.assets}\n

\n ) : null}\n
\n
\n \n {portfolio.loss ? (\n

\n CVaR\n
$ {portfolio.loss.toFixed(2)} million\n

\n ) : null}\n
\n \n {/*\n
\n
\n \n \n this.handleOpen(\n portfolio.name,\n portfolio.variables\n )\n }\n color=\"white\"\n size=\"large\"\n />\n }\n />\n \n
\n \n \n this.handleLossModalOpen(portfolio.name)\n }\n color=\"white\"\n size=\"large\"\n />\n }\n />\n \n
\n \n \n this.handleSummaryModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n color=\"white\"\n />\n }\n />\n \n \n \n \n \n {portfolio.value ? (\n

\n Max Exposure
$ {portfolio.value}{\" \"}\n million\n

\n ) : null}\n
\n
\n \n \n Climate Score\n
\n

\n\n \n
\n \n
\n
\n {/*

\n \n Climate Score\n \n \n {portfolio.overall}%\n \n

\n \n The project has {portfolio.assets} assets with\n Maximum Exposure of{\" \"}\n \n {\" \"}\n ${portfolio.value} \n \n million and a Climate Value at Risk under RCP\n 8.5 as \n {portfolio.loss ? (\n \n ${portfolio.loss.toFixed(2)}\n \n ) : null}\n   million\n \n\n \n \n this.handleDashboard(portfolio)}\n >\n Analyse\n \n \n \n {/*\n this.handleReport(portfolio.name)\n }\n >\n Report\n \n \n \n \n \n \n \n \n \n \n \n
\n\n {/* \n \n {this.state.share ? (\n \n \n \n ) : (\n \n \n Team\n

\n {portfolio.shared_with ? (\n \n {portfolio.shared_with.map(\n (share, index) => {\n console.log(\"share\", share);\n return (\n <>\n \n \n }\n />\n \n \n );\n }\n )}\n \n

\n +{portfolio.shared_with.length}\n {\"\"} more\n

\n \n
\n ) : null}\n
\n )}\n \n\n \n \n \n \n Download CSVs\n

\n \n this.handleOpen(\n portfolio.name,\n portfolio.variables\n )\n }\n size=\"large\"\n />\n }\n />\n \n this.handleLossModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n\n \n this.handleSummaryModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n \n \n
\n \n Are you sure you want to
{\" \"}\n delete {portfolio.name}\n \n }\n onConfirm={() =>\n this.delete(portfolio.name)\n }\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n\n \n this.handleEdit(portfolio.name)\n }\n >\n {\" \"}\n \n \n
\n \n
\n\n \n \n \n {this.state.share ? (\n this.handleShareSubmit()}\n style={{\n backgroundColor: \"#18202F\",\n color: \"white\",\n }}\n >\n Submit\n \n ) : (\n this.handleShare()}\n >\n \n \n )}\n \n \n
\n
\n \n ))\n : null}\n
*/}\n \n \n \n {/* \n {this.state.portfolios && this.state.portfolios.length > 0 ? (\n \n ) : null}\n */}\n \n\n \n All Projects\n \n \n {this.state.portfolios && this.state.portfolios.length > 0\n ? this.state.portfolios.map((portfolio, index) => (\n \n \n \n \n {portfolio.name}
\n {portfolio.date ? (\n \n {portfolio.date.slice(0, 10)}\n \n ) : null}\n \n

\n \n Climate Score\n \n

\n\n \n
\n\n \n The project has {portfolio.assets} assets with\n Maximum Exposure of{\" \"}\n \n {\" \"}\n ${portfolio.value} \n \n million and a Climate Value at Risk under RCP 8.5\n as \n {portfolio.loss ? (\n \n ${portfolio.loss.toFixed(2)}\n \n ) : null}\n  million\n \n\n \n \n this.handleDashboard(portfolio)}\n >\n Analyse\n \n \n \n this.handleReport(portfolio)}\n >\n Report\n \n \n {/* */}\n \n
\n\n \n {/* \n {this.state.share ? (\n \n \n \n ) : (\n \n \n Team\n

\n {portfolio.shared_with ? (\n \n {portfolio.shared_with.map(\n (share, index) => {\n console.log(\"share\", share);\n return (\n <>\n \n \n }\n />\n \n \n );\n }\n )}\n \n

\n +{portfolio.shared_with.length}\n {\"\"} more\n

\n \n
\n ) : null}\n
\n )}\n */}\n \n \n \n \n \n Download CSVs\n

\n \n this.handleOpen(\n portfolio.name,\n portfolio.variables\n )\n }\n size=\"large\"\n />\n }\n />\n {/* \n this.handleLossModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />*/}\n\n \n this.handleSummaryModalOpen(\n portfolio.name\n )\n }\n size=\"large\"\n />\n }\n />\n \n \n
\n \n Are you sure you want to
delete{\" \"}\n {portfolio.name}\n \n }\n onConfirm={() =>\n this.delete(portfolio.name)\n }\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n\n \n this.handleEdit(portfolio.name)\n }\n >\n {\" \"}\n \n \n
\n \n
\n\n {/* \n \n \n {this.state.share ? (\n this.handleShareSubmit()}\n style={{\n backgroundColor: \"#18202F\",\n color: \"white\",\n }}\n >\n Submit\n \n ) : (\n this.handleShare()}\n >\n \n \n )}\n \n */}\n
\n \n \n ))\n : null}\n
\n
\n \n\n \n Update Project\n \n
\n {this.props.errors && this.props.errors.Error ? (\n

{this.props.errors.Error}

\n ) : null}\n \n \n \n
\n {/*\n \n this.handleChange(value, \"status\")\n }\n />\n \n
\n \n \n this.setState({ description: e.target.value })\n }\n />\n */}\n\n \n \n this.setState({ new_project: e.target.value })\n }\n />\n \n
\n\n {this.state.loading && this.props.errors.Error == undefined ? (\n \n \n \n ) : (\n \n Submit\n \n )}\n
\n
\n \n \n \n

User Default Options

\n

Change User Default Options for more insights

\n
\n \n \n \n

Analysis Type

\n \n this.handleChange(value, \"scenario\")\n }\n value={this.state.scenario}\n options={ScenarioOptions}\n />\n \n\n \n {this.state.scenario == \"rcp\" ? (\n <>\n {\" \"}\n

RCP

\n \n this.handleChange(value, \"rcp\")\n }\n value={this.state.rcp}\n options={rcpOptions}\n />\n \n ) : (\n <>\n

SSP

\n \n this.handleChange(value, \"rcp\")\n }\n value={this.state.rcp}\n options={rcpOptions}\n />\n \n )}\n \n\n \n

Year

\n {this.state.scenario == \"rcp\" ? (\n \n this.handleChange(value, \"year\")\n }\n value={this.state.year}\n options={yearOptions_default}\n />\n ) : (\n \n this.handleChange(value, \"year\")\n }\n value={this.state.year}\n options={sspyearOptions_default}\n />\n )}\n \n
\n\n
\n\n
\n\n \n Apply Filter\n \n
\n
\n \n \n Share Project\n \n
\n \n

Project Name

\n \n
\n
\n {/*\n \n this.handleChange(value, \"status\")\n }\n />\n \n
\n \n \n this.setState({ description: e.target.value })\n }\n />\n */}\n\n \n

Select Users to Share Project with

\n this.handleChange(value, \"user\")}\n />\n
\n
\n \n

Permissions

\n \n this.handleChange(value, \"permission\")\n }\n />\n
\n\n {this.state.loading && this.props.errors.error == undefined ? (\n \n \n \n ) : (\n \n Submit\n \n )}\n
\n
\n \n\n \n Download Report\n \n
\n \n
\n

Analysis Type

\n \n this.handleChange(value, \"scenario\")\n }\n />\n\n
\n\n {/*

\n {\" \"}\n this.useValuation()}\n checked={this.state.use_valuation}\n label=\"Use Valuation\"\n />\n   Use Valuation\n

*/}\n\n {/*

Currency

\n \n this.handleChange(value, \"currency\")\n }\n />*/}\n
\n
\n
\n
\n
\n
\n\n {!this.state.loading ? (\n \n Submit\n \n ) : (\n \n Loading\n \n )}\n\n {this.props.ppt.url && this.state.loading ? (\n \n \n Download\n \n \n ) : null}\n
\n
\n
\n
\n \n\n \n \n Download Detailed Analysis Results in Excel File\n \n \n \n {this.props.csv.error && this.props.csv.error ? (\n \n

{this.props.csv.error}

\n
\n ) : null}\n \n

Select Scenario

\n\n \n this.handleChange(value, \"csv_scenario\")\n }\n />\n
\n \n

Select Year

\n\n {this.state.csv_scenario == \"rcp\" ? (\n \n this.handleChange(value, \"csv_year\")\n }\n />\n ) : (\n \n this.handleChange(value, \"csv_year\")\n }\n />\n )}\n
\n {this.state.csv_year.includes(\"2020\") ? (\n \n {this.state.csv_scenario == \"rcp\" ? (\n <>\n

Select RCP

\n\n \n this.handleChange(value, \"csv_rcp\")\n }\n />\n \n ) : (\n <>\n

Select SSP

\n\n \n this.handleChange(value, \"csv_rcp\")\n }\n />\n \n )}\n
\n ) : (\n \n {this.state.csv_scenario == \"rcp\" ? (\n <>\n

Select RCP

\n\n \n this.handleChange(value, \"csv_rcp\")\n }\n />\n \n ) : (\n <>\n

Select SSP

\n\n \n this.handleChange(value, \"csv_rcp\")\n }\n />\n \n )}\n
\n )}\n\n \n

Select Climate Variable

\n\n option.text !== \"Extreme Cold\"\n ) // Exclude \"Extreme Cold\" for other scenarios\n }\n value={variables}\n onChange={(e, { value }) =>\n this.handleChange(value, \"variables\")\n }\n />\n
\n\n \n

Select Portfolio Losses

\n\n \n this.handleChange(value, \"portfolio_loss\")\n }\n />\n
\n\n \n

Mitigation Measures

\n\n \n this.handleChange(value, \"metigation\")\n }\n />\n
\n \n

Select Content

\n \n this.handleChange(value, \"content\")\n }\n />\n
\n\n {/*\n

Select Currency

\n \n this.handleChange(value, \"currency\")\n }\n />\n
*/}\n \n

\n Account for Long-term Impact of Climate Change on Economic\n Growth\n

\n this.handleChange(value, \"gdp\")}\n />\n
\n {/*\n

Technical Insurance Premium in %

\n \n this.handleChange(value, \"valuation\")\n }\n />\n
*/}\n {/* \n

Agriculture Variables

\n this.handleChange(value, \"agri\")}\n />\n
\n \n

Energy Variables

\n \n this.handleChange(value, \"energy\")\n }\n />\n
*/}\n\n
\n \n Submit\n \n\n {this.props.csv.url ? (\n \n \n Download\n \n \n ) : null}\n \n
\n \n {/*\n \n Download Detailed Analysis Results in Excel File\n \n \n \n {this.props.csv.error && (\n \n

{this.props.csv.error}

\n
\n )}\n \n

Select Scenario

\n \n this.handleChange(value, \"csv_scenario\")\n }\n />\n
\n {this.state.csv_scenario && (\n \n

Select Year

\n \n this.handleChange(value, \"csv_year\")\n }\n />\n
\n )}\n {this.state.csv_year && (\n \n

\n {this.state.csv_scenario === \"rcp\"\n ? \"Select RCP\"\n : \"Select SSP\"}\n

\n \n this.handleChange(value, \"csv_rcp\")\n }\n />\n
\n )}\n {this.state.csv_rcp && (\n <>\n \n

Climate Variable

\n \n this.handleChange(checked, \"climateVariableScore\")\n }\n />\n \n this.handleChange(checked, \"climateVariableLoss\")\n }\n />\n \n this.handleChange(checked, \"climateVariableContent\")\n }\n />\n
\n \n

Portfolio Losses

\n \n this.handleChange(checked, \"portfolioLossScore\")\n }\n />\n \n this.handleChange(checked, \"portfolioLossLoss\")\n }\n />\n \n this.handleChange(checked, \"portfolioLossContent\")\n }\n />\n
\n \n

Content

\n \n this.handleChange(checked, \"contentScore\")\n }\n />\n \n this.handleChange(checked, \"contentLoss\")\n }\n />\n \n this.handleChange(checked, \"contentWithContent\")\n }\n />\n
\n \n )}\n {this.state.contentWithContent && (\n \n

Select Currency

\n \n this.handleChange(value, \"currency\")\n }\n />\n
\n )}\n {this.state.currency && (\n \n

\n Account for Long-term Impact of Climate Change on Economic\n Growth\n

\n \n this.handleChange(checked, \"gdp\")\n }\n />\n
\n )}\n
\n \n Submit\n \n {this.props.csv.url && (\n \n \n Download\n \n \n )}\n \n
\n
*/}\n\n \n Download Loss\n \n
\n

Select Year

\n \n this.handleChange(value, \"year\")}\n />\n \n
\n\n {this.state.modalloading &&\n !this.props.csv.length === undefined ? (\n \n \n \n ) : (\n \n Submit\n \n )}\n\n {this.props.csv.length === undefined ? (\n \n ) : null}\n
\n
\n \n\n \n Download Summary\n \n
\n \n \n \n

Select Scenario

\n \n \n this.handleChange(value, \"scenario\")\n }\n />\n \n
\n \n

Mitigation Measures

\n\n \n this.handleChange(value, \"metigation\")\n }\n />\n
\n
\n\n {this.state.modalloading &&\n !this.props.csv.length === undefined ? (\n \n \n \n ) : (\n \n Submit\n \n )}\n\n {this.props.csv.url ? (\n \n \n Download\n \n \n ) : null}\n
\n
\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n locus: state.locus.locus,\n csv: state.project.csv,\n project: state.project.project,\n ppt: state.project.ppt,\n map: state.project.map,\n overall_map: state.project.overall_map,\n link: state.project.link,\n list_physical: state.project.list,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getLocations: () => {\n dispatch(locus.getLocations());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n addProject: (formdata) => {\n dispatch(project.addProject(formdata));\n },\n getCSV: (formdata) => {\n dispatch(project.getCSV(formdata));\n },\n getLoss: (formdata) => {\n dispatch(project.getLoss(formdata));\n },\n getSummary: (formdata) => {\n dispatch(project.getSummary(formdata));\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getProjects: () => {\n dispatch(project.getProjects());\n },\n deleteProject: (formdata) => {\n dispatch(project.deleteProject(formdata));\n },\n getPptReport: (formdata) => {\n dispatch(project.getPptReport(formdata));\n },\n getSatelliteMap: (formdata) => {\n dispatch(project.getSatelliteMap(formdata));\n },\n getMap: (formdata) => {\n dispatch(project.getMap(formdata));\n },\n Dropbox: (formdata) => {\n dispatch(project.Dropbox(formdata));\n },\n getProjectList: (physical_risk) => {\n dispatch(project.getProjectList(physical_risk));\n },\n shareProject: (formdata) => {\n dispatch(project.shareProject(formdata));\n },\n updateFilter: (formdata) => {\n dispatch(project.updateFilter(formdata));\n },\n };\n};\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(PhysicalProject)\n);\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Modal,\n Popup,\n StepTitle,\n Progress,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab } from \"react-bootstrap\";\nimport Spinner from \"./loader\";\nimport CsvDownload from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect, withRouter } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\n\nlet options = [];\n\nconst VALUES = [\n \"2021-1-02\",\n \"2021-1-01\",\n \"2021-2-01\",\n \"2021-3-01\",\n \"2021-4-01\",\n \"2021-5-01\",\n \"2021-6-01\",\n \"2021-7-01\",\n \"2021-8-01\",\n \"2021-9-01\",\n \"2021-10-01\",\n \"2021-11-01\",\n \"2021-12-01\",\n];\n\nclass BenchmarkProject extends Component {\n state = {\n name: \"\",\n description: \"\",\n status: \"\",\n assets: [],\n loading: false,\n activeItemName: \"\",\n modalOpen: false,\n variables: [],\n others: \"\",\n year: \"\",\n rcp: \"\",\n modalloading: false,\n lossmodalOpen: false,\n reportmodal: false,\n portfolios_realestate: \"\",\n downloadmodalOpen: false,\n new_project: \"\",\n portfolio_loss: \"\",\n modalEdit: false,\n loading: false,\n dropbox: true,\n value: 0,\n previous: 0,\n share: false,\n };\n\n componentDidMount() {\n this.props.getProjectList(\"benchmark\");\n }\n\n onSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"oldname\", this.state.activeItemName);\n formdata.append(\"status\", this.state.status);\n formdata.append(\"description\", this.state.description);\n formdata.append(\"name\", this.state.new_project);\n this.setState({ loading: true }, () => {\n this.props.addProject(formdata);\n });\n };\n handleChange = (value, key) => {\n this.setState({ [key]: value }, () =>\n console.log(\"othres\", this.state.others)\n );\n };\n\n handlePptReport(portfolio) {\n let formdata = new FormData();\n formdata.append(\"project_name\", portfolio);\n\n this.setState({ loading: true }, () => {\n this.props.getPptReport(formdata);\n });\n }\n handleShare = () => {\n this.setState({ share: true });\n };\n\n handleSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"variables\", JSON.stringify(this.state.variables));\n formdata.append(\"others\", JSON.stringify(this.state.others));\n formdata.append(\"year\", JSON.stringify(this.state.year));\n formdata.append(\"rcp\", JSON.stringify(this.state.rcp));\n formdata.append(\n \"portfolio_loss\",\n JSON.stringify(this.state.portfolio_loss)\n );\n\n this.setState({ modalloading: true }, () => {\n this.props.getCSV(formdata);\n });\n };\n handleView = () => {\n console.log(\"view \", this.props.csv.success);\n this.props.history.push({\n pathname: \"/pivottable\",\n state: { data: this.props.csv.success },\n });\n };\n handleLossSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n formdata.append(\"year\", this.state.year);\n this.setState({ modalloading: true }, () => {\n this.props.getLoss(formdata);\n });\n };\n\n handleSummarySubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"portfolio\", this.state.activeItemName.slice(10));\n this.setState({ modalloading: true }, () => {\n this.props.getSummary(formdata);\n });\n };\n\n handleLogout = () => {\n this.props.logout();\n };\n handleOpen = (portfolio, variable) =>\n this.setState(\n { modalOpen: true, activeItemName: portfolio, activeVariable: variable },\n () => this.handleVariable()\n );\n\n handleEdit = (portfolio) => {\n this.setState({ modalEdit: true, activeItemName: portfolio });\n };\n\n handleLossModalOpen = (portfolio) =>\n this.setState({ lossmodalOpen: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleReport = (portfolio) =>\n this.setState({ reportmodal: true, activeItemName: portfolio }, () =>\n console.log(this.state.activeItemName)\n );\n\n handleLossModalClose = () => {\n this.setState({ lossmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n handleSummaryModalOpen = (portfolio) =>\n this.setState({ summarymodalOpen: true, activeItemName: portfolio });\n\n handleSummaryModalClose = () => {\n this.setState({ summarymodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n handleDropbox = (base, map) => {\n if (this.props.link.url == undefined) {\n console.log(\"function called\", map);\n let formdata = new FormData();\n formdata.append(\"ppt\", base);\n formdata.append(\"project_name\", map);\n this.props.Dropbox(formdata);\n }\n };\n\n handleClose = () =>\n this.setState(\n {\n modalOpen: false,\n lossmodalOpen: false,\n reportmodal: false,\n modalEdit: false,\n dropbox: false,\n },\n () => window.location.reload(false)\n );\n\n handleModify = (portfolio) => {\n this.props.history.push({\n pathname: \"/company-dashboard\",\n state: { project_name: portfolio.project_name, index: portfolio },\n });\n };\n\n handleDelete = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio.project_name);\n this.props.deleteCarbonProject(formdata);\n };\n handleDownload = (portfolio) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", portfolio);\n this.props.downloadCarbonProject(formdata);\n };\n handleDownloadModalOpen = (portfolio) =>\n this.setState({\n downloadmodalOpen: true,\n activeItemName: portfolio.project_name,\n });\n\n handleDownloadModalClose = () => {\n this.setState({ downloadmodalOpen: false }, () =>\n window.location.reload(false)\n );\n };\n\n render() {\n const { value, others, variables, rcp, year, status, portfolio_loss } =\n this.state;\n let user_id = localStorage.getItem(\"user_id\");\n\n if (this.state.loading) {\n return
;\n }\n if (this.props.list && this.props.list.data.length > 0) {\n let assets = this.props.list.data;\n this.state.portfolios_realestate = assets.reverse();\n }\n console.log(\"portfolio real estate\", this.state.portfolios_realestate);\n\n return (\n <>\n
\n \n {this.props.list.data && this.props.list.data.length > 0 ? (\n \n \n {\" \"}\n \n

\n Organization Name: \n
\n {this.props.list.organization}\n

\n \n \n

\n User Name: \n
\n {this.props.list.username}\n

\n \n
\n \n \n

\n Number of Project: {\" \"}\n
\n {this.props.list.data.length}\n

\n \n \n

\n Active Project: {\" \"}\n
\n {this.props.list.data.length}\n

\n \n
\n \n ) : null}\n \n \n {this.state.portfolios_realestate &&\n this.state.portfolios_realestate.length > 0\n ? this.state.portfolios_realestate\n .reverse()\n .map((portfolio, index) => (\n \n \n \n \n {portfolio.project_name}{\" \"}\n {portfolio.created_at ? (\n \n {portfolio.created_at.slice(0, 10)}\n \n ) : null}\n \n\n

\n\n this.handleModify(portfolio)}\n >\n Analyse\n \n\n
\n
\n
\n \n ))\n : null}\n
\n \n \n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n\n list: state.project.list,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getProjectList: (type) => {\n dispatch(project.getProjectList(type));\n },\n };\n};\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(BenchmarkProject)\n);\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Modal,\n Popup,\n StepTitle,\n Progress,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab } from \"react-bootstrap\";\nimport Spinner from \"./loader\";\nimport CsvDownloadButton from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect, withRouter } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\n\nlet options = [];\n\nconst VALUES = [\n \"2021-1-02\",\n \"2021-1-01\",\n \"2021-2-01\",\n \"2021-3-01\",\n \"2021-4-01\",\n \"2021-5-01\",\n \"2021-6-01\",\n \"2021-7-01\",\n \"2021-8-01\",\n \"2021-9-01\",\n \"2021-10-01\",\n \"2021-11-01\",\n \"2021-12-01\",\n];\n\nconst StatusOptions = [\n { key: \"active\", value: \"Active\", text: \"Active\" },\n { key: \"finished\", value: \"Finished\", text: \"Finished\" },\n];\nconst csv = [];\nconst othersOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"type\", value: \"type\", text: \"type\" },\n { key: \"Area\", value: \"Area\", text: \"Area\" },\n { key: \"Ownership\", value: \"ownership\", text: \"Ownership\" },\n { key: \"floors\", value: \"floors\", text: \"floors\" },\n {\n key: \"Construction Cost\",\n value: \"construction_cost\",\n text: \"Construction Cost\",\n },\n { key: \"With Content\", value: \"With Content\", text: \"With Content\" },\n];\nlet variableOptions = [];\nconst rcpOptions = [\n { key: \"0.0\", value: \"0.0\", text: \"0.0\" },\n { key: \"2.6\", value: \"2.6\", text: \"2.6\" },\n { key: \"4.5\", value: \"4.5\", text: \"4.5\" },\n { key: \"8.5\", value: \"8.5\", text: \"8.5\" },\n];\nconst yearOptions = [\n { key: \"2020\", value: \"2020\", text: \"2020\" },\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\nconst PortfolioLossOptions = [\n {\n key: \"Rainfall Flood Loss\",\n value: \"Rainfall Flood Loss\",\n text: \"Rainfall Flood Loss\",\n },\n {\n key: \"River Flood Loss\",\n value: \"River Flood Loss\",\n text: \"River Flood Loss\",\n },\n {\n key: \"Storm Surge Loss\",\n value: \"Storm Surge Loss\",\n text: \"Storm Surge Loss\",\n },\n { key: \"Typhoon Loss\", value: \"Typhoon Loss\", text: \"Typhoon Loss\" },\n {\n key: \"Temprature/heat Loss\",\n value: \"Temprature/heat Loss\",\n text: \"Temprature/heat Loss\",\n },\n {\n key: \"Solar Production Loss\",\n value: \"Solar Production Loss\",\n text: \"Solar Production Loss\",\n },\n {\n key: \"Wind Production Loss\",\n value: \"Wind Production Loss\",\n text: \"Wind Production Loss\",\n },\n {\n key: \"Hydro Production Loss\",\n value: \"Hydro Production Loss\",\n text: \"Hydro Production Loss\",\n },\n {\n key: \"Wheat Production Loss\",\n value: \"Wheat Production Loss\",\n text: \"Wheat Production Loss\",\n },\n {\n key: \"Rice Production Loss\",\n value: \"Rice Production Loss\",\n text: \"Rice Production Loss\",\n },\n {\n key: \"Maize Production Loss\",\n value: \"Maize Production Loss\",\n text: \"Maize Production Loss\",\n },\n {\n key: \"Fruit Production Loss\",\n value: \"Fruit Production Loss\",\n text: \"Fruit Production Loss\",\n },\n {\n key: \"Vegetable Production Loss\",\n value: \"Vegetable Production Loss\",\n text: \"Vegetable Production Loss\",\n },\n];\n\nclass MapProject extends Component {\n state = {\n name: \"\",\n description: \"\",\n status: \"\",\n assets: [],\n loading: false,\n activeItemName: \"\",\n modalOpen: false,\n variables: [],\n others: \"\",\n year: \"\",\n rcp: \"\",\n modalloading: false,\n lossmodalOpen: false,\n reportmodal: false,\n portfolios_transition: \"\",\n downloadmodalOpen: false,\n new_project: \"\",\n portfolio_loss: \"\",\n modalEdit: false,\n loading: false,\n dropbox: true,\n value: 0,\n previous: 0,\n share: false,\n };\n\n componentDidMount() {\n this.props.getProjectList(\"map_module\");\n }\n\n handleLogout = () => {\n this.props.logout();\n };\n\n handleModify = (portfolio) => {\n console.log(\"map_portf\", portfolio);\n this.props.history.push({\n pathname: \"/map\",\n state: { name: portfolio },\n });\n };\n\n render() {\n const {\n value,\n others,\n variables,\n rcp,\n year,\n status,\n portfolio_loss,\n } = this.state;\n let user_id = localStorage.getItem(\"user_id\");\n\n if (this.state.loading) {\n return
;\n }\n if (this.props.list && this.props.list.length > 0) {\n let assets = this.props.list;\n this.state.portfolios_map = assets;\n }\n console.log(\"portfolio map\", this.state.portfolios_map);\n\n return (\n
\n \n {this.props.list && this.props.list.length > 0 ? (\n \n \n {\" \"}\n \n

\n \n All Projects For  {\" \"}\n \n\n {this.props.list.username}\n

\n \n
\n \n \n

\n \n Total Number of Projects  \n \n\n {this.props.list.length}\n

\n \n
\n \n ) : null}\n
\n \n \n \n {this.state.portfolios_map && this.state.portfolios_map.length > 0\n ? this.state.portfolios_map.map((portfolio, index) => (\n \n \n \n \n {portfolio.name}{\" \"}\n {portfolio.created_at ? (\n \n {portfolio.created_at.slice(0, 10)}\n \n ) : null}\n \n\n {/* Add portfolio.distance and portfolio.portfolio_variable */}\n \n {portfolio.distance && (\n \n Distance: {portfolio.distance}km x{\" \"}\n {portfolio.distance}km\n \n )}\n\n {portfolio.portfolio_variable && (\n \n Variable: {portfolio.portfolio_variable}\n \n )}\n \n \n\n \n \n \n this.handleModify(portfolio)}\n >\n Analyse\n \n \n \n \n \n \n \n ))\n : null}\n \n \n \n\n \n Download Carbon Module Output\n \n
\n \n \n \n
\n\n {this.state.modalloading &&\n !this.props.download_carbon_project_data.length > 0 ? (\n \n \n \n ) : (\n this.handleDownload(this.state.activeItemName)}\n primary\n >\n Submit\n \n )}\n\n {this.props.download_carbon_project_data.length > 0 ? (\n
\n \n
\n ) : null}\n
\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n locus: state.locus.locus,\n csv: state.project.csv,\n project: state.project.project,\n ppt: state.project.ppt,\n map: state.project.map,\n overall_map: state.project.overall_map,\n link: state.project.link,\n list: state.project.list,\n download_carbon_project_data: state.project.download_carbon_project_data,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getLocations: () => {\n dispatch(locus.getLocations());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n addProject: (formdata) => {\n dispatch(project.addProject(formdata));\n },\n getCSV: (formdata) => {\n dispatch(project.getCSV(formdata));\n },\n getLoss: (formdata) => {\n dispatch(project.getLoss(formdata));\n },\n getSummary: (formdata) => {\n dispatch(project.getSummary(formdata));\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getProjects: () => {\n dispatch(project.getProjects());\n },\n deleteProject: (formdata) => {\n dispatch(project.deleteProject(formdata));\n },\n getPptReport: (formdata) => {\n dispatch(project.getPptReport(formdata));\n },\n getSatelliteMap: (formdata) => {\n dispatch(project.getSatelliteMap(formdata));\n },\n getMap: (formdata) => {\n dispatch(project.getMap(formdata));\n },\n Dropbox: (formdata) => {\n dispatch(project.Dropbox(formdata));\n },\n getProjectList: (type) => {\n dispatch(project.getProjectList(type));\n },\n getTransitionProject: () => {\n dispatch(project.getTransitionProject());\n },\n deleteCarbonProject: (formdata) => {\n dispatch(project.deleteCarbonProject(formdata));\n },\n downloadCarbonProject: (formdata) => {\n dispatch(project.downloadCarbonProject(formdata));\n },\n };\n};\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MapProject)\n);\n","import React, { Component } from \"react\";\nimport {\n Form,\n Button,\n Input,\n TextArea,\n Grid,\n Container,\n Message,\n Image,\n Header,\n Menu,\n Select,\n Dropdown,\n Icon,\n Table,\n Label,\n Modal,\n Popup,\n StepTitle,\n Progress,\n} from \"semantic-ui-react\";\nimport logo from \"../assets/logo.png\";\nimport \"./project.css\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport { Row, Col, Card, Tabs, Tab, Breadcrumb } from \"react-bootstrap\";\nimport Spinner from \"./loader\";\nimport CsvDownloadButton from \"react-json-to-csv\";\nimport dropbox from \"../assets/dropbox.png\";\nimport team1 from \"../assets/team_1.png\";\nimport team2 from \"../assets/team_2.png\";\n\nimport pr1 from \"../assets/pr1.png\";\nimport pr2 from \"../assets/pr2.png\";\nimport pr3 from \"../assets/pr3.png\";\n\nimport var_eg from \"../assets/var_eg.jpg\";\n//import Report from \"./report\";\nimport { Popconfirm } from \"antd\";\nimport \"antd/dist/antd.css\";\nimport pptxgen from \"pptxgenjs\";\nimport { runppt } from \"./ppt\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect } from \"react-router-dom\";\nimport HorizontalTimeline from \"react-horizontal-timeline\";\nimport TransitionProject from \"./transition_project\";\nimport RealEstateProject from \"./realestate_project\";\nimport Physical_project from \"./physical_project\";\nimport BenchmarkProject from \"./benchmark_project\";\nimport ProjectBarComponent from \"./project_bar_component\";\nimport MapProject from \"./MapProject\";\n\nlet options = [];\n\nconst VALUES = [\n \"2021-1-02\",\n \"2021-1-01\",\n \"2021-2-01\",\n \"2021-3-01\",\n \"2021-4-01\",\n \"2021-5-01\",\n \"2021-6-01\",\n \"2021-7-01\",\n \"2021-8-01\",\n \"2021-9-01\",\n \"2021-10-01\",\n \"2021-11-01\",\n \"2021-12-01\",\n];\n\nconst ProjectOptions = [\n { key: \"physical\", value: \"physical\", text: \"Physical Risk\" },\n { key: \"transition\", value: \"transition\", text: \"Transition Risk\" },\n { key: \"realestate\", value: \"realestate\", text: \"Real Estate\" },\n];\nconst StatusOptions = [\n { key: \"active\", value: \"Active\", text: \"Active\" },\n { key: \"finished\", value: \"Finished\", text: \"Finished\" },\n];\nconst csv = [];\nconst othersOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"type\", value: \"type\", text: \"type\" },\n { key: \"Area\", value: \"Area\", text: \"Area\" },\n { key: \"Ownership\", value: \"ownership\", text: \"Ownership\" },\n { key: \"floors\", value: \"floors\", text: \"floors\" },\n {\n key: \"Construction Cost\",\n value: \"construction_cost\",\n text: \"Replacement Value\",\n },\n { key: \"With Content\", value: \"with_content\", text: \"With Content\" },\n { key: \"Revenue\", value: \"revenue\", text: \"Revenue\" },\n];\nlet variableOptions = [];\nconst rcpOptions = [\n { key: \"0.0\", value: \"0.0\", text: \"0.0\" },\n { key: \"2.6\", value: \"2.6\", text: \"2.6\" },\n { key: \"4.5\", value: \"4.5\", text: \"4.5\" },\n { key: \"8.5\", value: \"8.5\", text: \"8.5\" },\n];\nconst yearOptions = [\n { key: \"2020\", value: \"2020\", text: \"2020\" },\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\nconst PortfolioLossOptions = [\n {\n key: \"Rainfall Flood Loss\",\n value: \"Rainfall Flood Loss\",\n text: \"Rainfall Flood Loss\",\n },\n {\n key: \"River Flood Loss\",\n value: \"River Flood Loss\",\n text: \"River Flood Loss\",\n },\n {\n key: \"Storm Surge Loss\",\n value: \"Storm Surge Loss\",\n text: \"Storm Surge Loss\",\n },\n { key: \"Typhoon Loss\", value: \"Typhoon Loss\", text: \"Typhoon Loss\" },\n {\n key: \"Temprature/heat Loss\",\n value: \"Temprature/heat Loss\",\n text: \"Temprature/heat Loss\",\n },\n /*{\n key: \"Solar Production Loss\",\n value: \"Solar Production Loss\",\n text: \"Solar Production Loss\",\n },\n {\n key: \"Wind Production Loss\",\n value: \"Wind Production Loss\",\n text: \"Wind Production Loss\",\n },\n {\n key: \"Hydro Production Loss\",\n value: \"Hydro Production Loss\",\n text: \"Hydro Production Loss\",\n },\n {\n key: \"Wheat Production Loss\",\n value: \"Wheat Production Loss\",\n text: \"Wheat Production Loss\",\n },\n {\n key: \"Rice Production Loss\",\n value: \"Rice Production Loss\",\n text: \"Rice Production Loss\",\n },\n {\n key: \"Maize Production Loss\",\n value: \"Maize Production Loss\",\n text: \"Maize Production Loss\",\n },\n {\n key: \"Fruit Production Loss\",\n value: \"Fruit Production Loss\",\n text: \"Fruit Production Loss\",\n },\n {\n key: \"Vegetable Production Loss\",\n value: \"Vegetable Production Loss\",\n text: \"Vegetable Production Loss\",\n },*/\n];\n\nclass Project extends Component {\n state = {\n project_type: \"physical\",\n };\n\n handleProject = (key) => {\n this.setState({ project_type: key }, () =>\n console.log(\"project type\", this.state.project_type)\n );\n };\n\n render() {\n return (\n <>\n \n \n
\n \n Projects\n \n
\n
\n
\n
\n \n \n {this.state.project_type === \"physical\" ? (\n \n ) : null}\n \n \n {this.state.project_type === \"transition\" ? (\n \n ) : null}\n \n \n {this.state.project_type === \"map_module\" ? : null}\n \n {/* \n {this.state.project_type === \"realestate\" ? (\n \n ) : null}\n \n \n {this.state.project_type === \"benchmark\" ? (\n \n ) : null}\n */}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n locus: state.locus.locus,\n csv: state.project.csv,\n project: state.project.project,\n ppt: state.project.ppt,\n map: state.project.map,\n overall_map: state.project.overall_map,\n link: state.project.link,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getLocations: () => {\n dispatch(locus.getLocations());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n addProject: (formdata) => {\n dispatch(project.addProject(formdata));\n },\n getCSV: (formdata) => {\n dispatch(project.getCSV(formdata));\n },\n getLoss: (formdata) => {\n dispatch(project.getLoss(formdata));\n },\n getSummary: (formdata) => {\n dispatch(project.getSummary(formdata));\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getProjects: () => {\n dispatch(project.getProjects());\n },\n deleteProject: (formdata) => {\n dispatch(project.deleteProject(formdata));\n },\n getPptReport: (formdata) => {\n dispatch(project.getPptReport(formdata));\n },\n getSatelliteMap: (formdata) => {\n dispatch(project.getSatelliteMap(formdata));\n },\n getMap: (formdata) => {\n dispatch(project.getMap(formdata));\n },\n Dropbox: (formdata) => {\n dispatch(project.Dropbox(formdata));\n },\n getProjectList: (physical_risk) => {\n dispatch(project.getProjectList(physical_risk));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Project);\n","import React from \"react\";\nimport { Dimmer, Loader, Image, Segment } from \"semantic-ui-react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport lock from \"../assets/lock.jpg\";\nconst Tier = () => (\n <>\n \n \n \n \n \n \n {\" \"}\n

Please upgrade tier to see content

\n \n
\n \n);\n\nexport default Tier;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nlet feature = [];\nlet locations = [];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nclass HeatClusterMap extends Component {\n constructor(props) {\n super(props);\n this.worldmapContainer = React.createRef();\n }\n\n componentDidMount() {\n if (this.worldmapContainer.current && this.props.data) {\n const map = new mapboxgl.Map({\n container: this.worldmapContainer.current,\n /*style: {\n version: 8,\n sources: {\n \"raster-tiles\": {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/typhoon/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n },\n },\n layers: [\n {\n id: \"simple-tiles\",\n type: \"raster\",\n source: \"raster-tiles\",\n minzoom: 0,\n maxzoom: 22,\n },\n ],\n },*/\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [\n this.props.data[0].location.longitude,\n this.props.data[0].location.latitude,\n ],\n\n zoom: 2,\n scrollZoom: true,\n });\n\n feature = [];\n let hazard = this.props.hazard;\n\n let n = this.props.data.length;\n\n for (let i = 0; i < n; i++) {\n locations.push({\n name: this.props.data[i].location.name,\n lat: this.props.data[i].location.latitude,\n long: this.props.data[i].location.longitude,\n total_loss: this.props.data[i].data.total_loss,\n percentage: this.props.data[i].data.percentage,\n top_hazard_string: this.props.data[i].data.top_hazard_string,\n hazard_loss: this.props.data[i].data,\n });\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n this.props.data[i].location.longitude,\n this.props.data[i].location.latitude,\n ],\n },\n properties: {\n locations: locations[i],\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 100 && hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 75 && hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 50 && hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 25 && hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if ((hazard_s = 0)) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n console.log(\"stores\", stores);\n\n function addMarkers() {\n /* For each feature in the GeoJSON object above: */\n stores.features.forEach(function(marker) {\n /* Create a div element for the marker. */\n var el = document.createElement(\"div\");\n /* Assign a unique `id` to the marker. */\n el.id = \"worldmarker-\" + marker.properties.id;\n /* Assign the `marker` class to each marker for styling. */\n el.className = \"worldmarker\";\n map.on(\"idle\", () => {\n if (map.getZoom() <= 4) {\n el.style.backgroundColor = \"#00008b\";\n } else {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n }\n });\n\n // el.style.width =\n // marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n //el.style.height =\n //marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n\n /**\n * Create a marker using the div element\n * defined above and add it to the map.\n **/\n\n new mapboxgl.Marker(el, { offset: [0, -23] })\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n /**\n * Listen to the element and when it is clicked, do three things:\n * 1. Fly to the point\n * 2. Close all other popups and display popup for clicked store\n * 3. Highlight listing in sidebar (and remove highlight for all other listings)\n **/\n el.addEventListener(\"click\", (e) => {\n /* Fly to the point */\n map.flyTo(marker);\n /* Close all other popups and display popup for clicked store \n createPopUp(marker);\n /* Highlight listing in sidebar */\n });\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n el.addEventListener(\"mouseenter\", (e) => {\n console.log(\"popup\", marker.properties.locations);\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Risk: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n el.addEventListener(\"mouseleave\", (e) => {\n popup.remove();\n });\n });\n }\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n map.addLayer({\n id: \"places\",\n type: \"geojson\",\n source: \"places\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n });\n\n map.addSource(\"raster-tiles\", {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n });\n map.addLayer({\n id: \"Extreme Heat\",\n type: \"raster\",\n source: \"raster-tiles\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n minzoom: 0,\n maxzoom: 22,\n });\n\n /* map.addSource(\"radar\", {\n type: \"image\",\n url: \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n coordinates: [\n [-80.425, 46.437],\n [-71.516, 46.437],\n [-71.516, 37.936],\n [-80.425, 37.936],\n ],\n });\n map.addLayer({\n id: \"radar-layer\",\n type: \"raster\",\n source: \"radar\",\n paint: {\n \"raster-fade-duration\": 0,\n },\n });*/\n\n addMarkers();\n });\n map.on(\"idle\", () => {\n /* let mark = document.getElementsByClassName(\"worldmarker\");\n \n\n if (map.getZoom() <=4) {\n for (let i = 0; i < mark.length; i++) {\n mark[i].style.backgroundColor = \"#00008b\";\n }\n }*/\n // If these two layers were not added to the map, abort\n if (!map.getLayer(\"Extreme Heat\")) {\n return;\n }\n\n // Enumerate ids of the layers.\n const toggleableLayerIds = [\"Extreme Heat\"];\n\n // Set up the corresponding toggle button for each layer.\n for (const id of toggleableLayerIds) {\n // Skip layers that already have a button set up.\n if (document.getElementById(id)) {\n continue;\n }\n\n // Create a link.\n const link = document.createElement(\"a\");\n link.id = id;\n link.href = \"#\";\n link.textContent = id;\n link.className = \"active\";\n\n // Show or hide layer when the toggle is clicked.\n link.onclick = function(e) {\n const clickedLayer = this.textContent;\n e.preventDefault();\n e.stopPropagation();\n\n const visibility = map.getLayoutProperty(\n clickedLayer,\n \"visibility\"\n );\n\n // Toggle layer visibility by changing the layout object's visibility property.\n if (visibility === \"visible\") {\n map.setLayoutProperty(clickedLayer, \"visibility\", \"none\");\n this.className = \"\";\n } else {\n this.className = \"active\";\n map.setLayoutProperty(clickedLayer, \"visibility\", \"visible\");\n }\n };\n\n const layers = document.getElementById(\"mapmenu\");\n layers.appendChild(link);\n }\n });\n }\n }\n\n render() {\n return (\n \n \n \n \n\n
\n \n \n \n \n );\n }\n}\nexport default HeatClusterMap;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nlet feature = [];\nlet locations = [];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nclass RiverFloodClusterMap extends Component {\n constructor(props) {\n super(props);\n this.worldmapContainer = React.createRef();\n }\n\n componentDidMount() {\n if (this.worldmapContainer.current && this.props.data) {\n const map = new mapboxgl.Map({\n container: this.worldmapContainer.current,\n /*style: {\n version: 8,\n sources: {\n \"raster-tiles\": {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/typhoon/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n },\n },\n layers: [\n {\n id: \"simple-tiles\",\n type: \"raster\",\n source: \"raster-tiles\",\n minzoom: 0,\n maxzoom: 22,\n },\n ],\n },*/\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [\n this.props.data[0].location.longitude,\n this.props.data[0].location.latitude,\n ],\n\n zoom: 2,\n scrollZoom: true,\n });\n\n feature = [];\n let hazard = this.props.hazard;\n\n let n = this.props.data.length;\n\n for (let i = 0; i < n; i++) {\n locations.push({\n name: this.props.data[i].location.name,\n lat: this.props.data[i].location.latitude,\n long: this.props.data[i].location.longitude,\n total_loss: this.props.data[i].data.total_loss,\n percentage: this.props.data[i].data.percentage,\n top_hazard_string: this.props.data[i].data.top_hazard_string,\n hazard_loss: this.props.data[i].data,\n });\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n this.props.data[i].location.longitude,\n this.props.data[i].location.latitude,\n ],\n },\n properties: {\n locations: locations[i],\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 100 && hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 75 && hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 50 && hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 25 && hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s >= 0 && hazard_s < 1) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n console.log(\"stores\", stores);\n\n function addMarkers() {\n /* For each feature in the GeoJSON object above: */\n stores.features.forEach(function(marker) {\n /* Create a div element for the marker. */\n var el = document.createElement(\"div\");\n /* Assign a unique `id` to the marker. */\n el.id = \"worldmarker-\" + marker.properties.id;\n /* Assign the `marker` class to each marker for styling. */\n el.className = \"worldmarker\";\n map.on(\"idle\", () => {\n if (map.getZoom() <= 4) {\n el.style.backgroundColor = \"#00008b\";\n } else {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n }\n });\n\n // el.style.width =\n // marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n //el.style.height =\n //marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n\n /**\n * Create a marker using the div element\n * defined above and add it to the map.\n **/\n\n new mapboxgl.Marker(el, { offset: [0, -23] })\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n /**\n * Listen to the element and when it is clicked, do three things:\n * 1. Fly to the point\n * 2. Close all other popups and display popup for clicked store\n * 3. Highlight listing in sidebar (and remove highlight for all other listings)\n **/\n el.addEventListener(\"click\", (e) => {\n /* Fly to the point */\n map.flyTo(marker);\n /* Close all other popups and display popup for clicked store \n createPopUp(marker);\n /* Highlight listing in sidebar */\n });\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n el.addEventListener(\"mouseenter\", (e) => {\n console.log(\"popup\", marker.properties.locations);\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Risk: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n el.addEventListener(\"mouseleave\", (e) => {\n popup.remove();\n });\n });\n }\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n map.addLayer({\n id: \"places\",\n type: \"geojson\",\n source: \"places\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n });\n\n map.addSource(\"raster-tiles\", {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/river_flood/rcp/85_2050/blues/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n });\n map.addLayer({\n id: \"River Flood\",\n type: \"raster\",\n source: \"raster-tiles\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n minzoom: 0,\n maxzoom: 22,\n });\n\n /* map.addSource(\"radar\", {\n type: \"image\",\n url: \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n coordinates: [\n [-80.425, 46.437],\n [-71.516, 46.437],\n [-71.516, 37.936],\n [-80.425, 37.936],\n ],\n });\n map.addLayer({\n id: \"radar-layer\",\n type: \"raster\",\n source: \"radar\",\n paint: {\n \"raster-fade-duration\": 0,\n },\n });*/\n\n addMarkers();\n });\n map.on(\"idle\", () => {\n /* let mark = document.getElementsByClassName(\"worldmarker\");\n \n\n if (map.getZoom() <=4) {\n for (let i = 0; i < mark.length; i++) {\n mark[i].style.backgroundColor = \"#00008b\";\n }\n }*/\n // If these two layers were not added to the map, abort\n if (!map.getLayer(\"River Flood\")) {\n return;\n }\n\n // Enumerate ids of the layers.\n const toggleableLayerIds = [\"River Flood\"];\n\n // Set up the corresponding toggle button for each layer.\n for (const id of toggleableLayerIds) {\n // Skip layers that already have a button set up.\n if (document.getElementById(id)) {\n continue;\n }\n\n // Create a link.\n const link = document.createElement(\"a\");\n link.id = id;\n link.href = \"#\";\n link.textContent = id;\n link.className = \"active\";\n\n // Show or hide layer when the toggle is clicked.\n link.onclick = function(e) {\n const clickedLayer = this.textContent;\n e.preventDefault();\n e.stopPropagation();\n\n const visibility = map.getLayoutProperty(\n clickedLayer,\n \"visibility\"\n );\n\n // Toggle layer visibility by changing the layout object's visibility property.\n if (visibility === \"visible\") {\n map.setLayoutProperty(clickedLayer, \"visibility\", \"none\");\n this.className = \"\";\n } else {\n this.className = \"active\";\n map.setLayoutProperty(clickedLayer, \"visibility\", \"visible\");\n }\n };\n\n const layers = document.getElementById(\"mapmenu\");\n layers.appendChild(link);\n }\n });\n }\n }\n\n render() {\n return (\n \n \n \n \n\n
\n \n \n \n \n );\n }\n}\nexport default RiverFloodClusterMap;\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class MitigationBar extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let a = 0;\n let b = 0;\n let c = 0;\n let max = 0;\n console.log(\n \"mitigation\",\n this.props.metigation_measure,\n this.props.mitigation_variable\n );\n if (this.state.piedata) {\n x =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][\"26_2030\"];\n y =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][`26_2050`];\n z =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][`45_2030`];\n a =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][`45_2050`];\n b =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][`85_2030`];\n c =\n this.state.piedata[this.props.mitigation_variable][\n this.props.metigation_measure\n ][`85_2050`];\n }\n\n data = [\n {\n RCP: \"2.6 2030\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"2.6 2050\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"4.5 2030\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n RCP: \"4.5 2050\",\n Loss: parseFloat(a.toFixed(2)),\n },\n {\n RCP: \"8.5 2030\",\n Loss: parseFloat(b.toFixed(2)),\n },\n {\n RCP: \"8.5 2050\",\n Loss: parseFloat(c.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n max: c + 0.2 * c,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n console.log(\n \"mitigation\",\n this.props.metigation_measure,\n this.props.mitigation_variable,\n data\n );\n\n return (\n
\n \n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nlet feature = [];\nlet locations = [];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nclass TyphoonClusterMap extends Component {\n constructor(props) {\n super(props);\n this.worldmapContainer = React.createRef();\n }\n\n componentDidMount() {\n if (this.worldmapContainer.current && this.props.data) {\n const map = new mapboxgl.Map({\n container: this.worldmapContainer.current,\n /*style: {\n version: 8,\n sources: {\n \"raster-tiles\": {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/typhoon/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n },\n },\n layers: [\n {\n id: \"simple-tiles\",\n type: \"raster\",\n source: \"raster-tiles\",\n minzoom: 0,\n maxzoom: 22,\n },\n ],\n },*/\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [\n this.props.data[0].location.longitude,\n this.props.data[0].location.latitude,\n ],\n\n zoom: 2,\n scrollZoom: true,\n });\n\n feature = [];\n let hazard = this.props.hazard;\n\n let n = this.props.data.length;\n\n for (let i = 0; i < n; i++) {\n locations.push({\n name: this.props.data[i].location.name,\n lat: this.props.data[i].location.latitude,\n long: this.props.data[i].location.longitude,\n total_loss: this.props.data[i].data.total_loss,\n percentage: this.props.data[i].data.percentage,\n top_hazard_string: this.props.data[i].data.top_hazard_string,\n hazard_loss: this.props.data[i].data,\n });\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n this.props.data[i].location.longitude,\n this.props.data[i].location.latitude,\n ],\n },\n properties: {\n locations: locations[i],\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 100 && hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 75 && hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 50 && hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 25 && hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s >= 0 && hazard_s < 1) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n console.log(\"stores\", stores);\n\n function addMarkers() {\n /* For each feature in the GeoJSON object above: */\n stores.features.forEach(function(marker) {\n /* Create a div element for the marker. */\n var el = document.createElement(\"div\");\n /* Assign a unique `id` to the marker. */\n el.id = \"worldmarker-\" + marker.properties.id;\n /* Assign the `marker` class to each marker for styling. */\n el.className = \"worldmarker\";\n map.on(\"idle\", () => {\n if (map.getZoom() <= 4) {\n el.style.backgroundColor = \"#00008b\";\n } else {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n }\n });\n\n // el.style.width =\n // marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n //el.style.height =\n //marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n\n /**\n * Create a marker using the div element\n * defined above and add it to the map.\n **/\n\n new mapboxgl.Marker(el, { offset: [0, -23] })\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n /**\n * Listen to the element and when it is clicked, do three things:\n * 1. Fly to the point\n * 2. Close all other popups and display popup for clicked store\n * 3. Highlight listing in sidebar (and remove highlight for all other listings)\n **/\n el.addEventListener(\"click\", (e) => {\n /* Fly to the point */\n map.flyTo(marker);\n /* Close all other popups and display popup for clicked store \n createPopUp(marker);\n /* Highlight listing in sidebar */\n });\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n el.addEventListener(\"mouseenter\", (e) => {\n console.log(\"popup\", marker.properties.locations);\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Risk: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n el.addEventListener(\"mouseleave\", (e) => {\n popup.remove();\n });\n });\n }\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n map.addLayer({\n id: \"places\",\n type: \"geojson\",\n source: \"places\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n });\n\n map.addSource(\"raster-tiles\", {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/typhoon/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n });\n map.addLayer({\n id: \"Typhoon\",\n type: \"raster\",\n source: \"raster-tiles\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n minzoom: 0,\n maxzoom: 22,\n });\n\n /* map.addSource(\"radar\", {\n type: \"image\",\n url: \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n coordinates: [\n [-80.425, 46.437],\n [-71.516, 46.437],\n [-71.516, 37.936],\n [-80.425, 37.936],\n ],\n });\n map.addLayer({\n id: \"radar-layer\",\n type: \"raster\",\n source: \"radar\",\n paint: {\n \"raster-fade-duration\": 0,\n },\n });*/\n\n addMarkers();\n });\n map.on(\"idle\", () => {\n /* let mark = document.getElementsByClassName(\"worldmarker\");\n \n\n if (map.getZoom() <=4) {\n for (let i = 0; i < mark.length; i++) {\n mark[i].style.backgroundColor = \"#00008b\";\n }\n }*/\n // If these two layers were not added to the map, abort\n if (!map.getLayer(\"Typhoon\")) {\n return;\n }\n\n // Enumerate ids of the layers.\n const toggleableLayerIds = [\"Typhoon\"];\n\n // Set up the corresponding toggle button for each layer.\n for (const id of toggleableLayerIds) {\n // Skip layers that already have a button set up.\n if (document.getElementById(id)) {\n continue;\n }\n\n // Create a link.\n const link = document.createElement(\"a\");\n link.id = id;\n link.href = \"#\";\n link.textContent = id;\n link.className = \"active\";\n\n // Show or hide layer when the toggle is clicked.\n link.onclick = function(e) {\n const clickedLayer = this.textContent;\n e.preventDefault();\n e.stopPropagation();\n\n const visibility = map.getLayoutProperty(\n clickedLayer,\n \"visibility\"\n );\n\n // Toggle layer visibility by changing the layout object's visibility property.\n if (visibility === \"visible\") {\n map.setLayoutProperty(clickedLayer, \"visibility\", \"none\");\n this.className = \"\";\n } else {\n this.className = \"active\";\n map.setLayoutProperty(clickedLayer, \"visibility\", \"visible\");\n }\n };\n\n const layers = document.getElementById(\"mapmenu\");\n layers.appendChild(link);\n }\n });\n }\n }\n\n render() {\n return (\n \n \n \n \n\n
\n \n \n \n \n );\n }\n}\nexport default TyphoonClusterMap;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nlet feature = [];\nlet locations = [];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nclass DroughtClusterMap extends Component {\n constructor(props) {\n super(props);\n this.worldmapContainer = React.createRef();\n }\n\n componentDidMount() {\n if (this.worldmapContainer.current && this.props.data) {\n const map = new mapboxgl.Map({\n container: this.worldmapContainer.current,\n style: {\n version: 8,\n sources: {\n \"raster-tiles\": {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/drought/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n },\n },\n layers: [\n {\n id: \"simple-tiles\",\n type: \"raster\",\n source: \"raster-tiles\",\n minzoom: 0,\n maxzoom: 22,\n },\n ],\n },\n // style: \"mapbox://styles/mapbox/light-v10\",\n center: [\n this.props.data[0].location.longitude,\n this.props.data[0].location.latitude,\n ],\n\n zoom: 2,\n scrollZoom: true,\n });\n\n feature = [];\n let hazard = this.props.hazard;\n\n let n = this.props.data.length;\n\n for (let i = 0; i < n; i++) {\n locations.push({\n name: this.props.data[i].location.name,\n lat: this.props.data[i].location.latitude,\n long: this.props.data[i].location.longitude,\n total_loss: this.props.data[i].data.total_loss,\n percentage: this.props.data[i].data.percentage,\n top_hazard_string: this.props.data[i].data.top_hazard_string,\n hazard_loss: this.props.data[i].data,\n });\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n this.props.data[i].location.longitude,\n this.props.data[i].location.latitude,\n ],\n },\n properties: {\n locations: locations[i],\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 100 && hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 75 && hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 50 && hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 25 && hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s >= 0 && hazard_s < 1) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n console.log(\"stores\", stores);\n\n function addMarkers() {\n /* For each feature in the GeoJSON object above: */\n stores.features.forEach(function(marker) {\n /* Create a div element for the marker. */\n var el = document.createElement(\"div\");\n /* Assign a unique `id` to the marker. */\n el.id = \"worldmarker-\" + marker.properties.id;\n /* Assign the `marker` class to each marker for styling. */\n el.className = \"worldmarker\";\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n\n // el.style.width =\n // marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n //el.style.height =\n //marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n\n /**\n * Create a marker using the div element\n * defined above and add it to the map.\n **/\n\n new mapboxgl.Marker(el, { offset: [0, -23] })\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n /**\n * Listen to the element and when it is clicked, do three things:\n * 1. Fly to the point\n * 2. Close all other popups and display popup for clicked store\n * 3. Highlight listing in sidebar (and remove highlight for all other listings)\n **/\n el.addEventListener(\"click\", (e) => {\n /* Fly to the point */\n map.flyTo(marker);\n /* Close all other popups and display popup for clicked store \n createPopUp(marker);\n /* Highlight listing in sidebar */\n });\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n el.addEventListener(\"mouseenter\", (e) => {\n console.log(\"popup\", marker.properties.locations);\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Risk: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n el.addEventListener(\"mouseleave\", (e) => {\n popup.remove();\n });\n });\n }\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n console.log(\"add Marker\", map.getZoom());\n\n /* map.addSource(\"radar\", {\n type: \"image\",\n url: \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n coordinates: [\n [-80.425, 46.437],\n [-71.516, 46.437],\n [-71.516, 37.936],\n [-80.425, 37.936],\n ],\n });\n map.addLayer({\n id: \"radar-layer\",\n type: \"raster\",\n source: \"radar\",\n paint: {\n \"raster-fade-duration\": 0,\n },\n });*/\n\n addMarkers();\n });\n }\n }\n\n render() {\n return (\n \n \n \n
\n \n \n \n \n );\n }\n}\nexport default DroughtClusterMap;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n ScatterChart,\n Scatter,\n Cell,\n XAxis,\n YAxis,\n CartesianContainer,\n Tooltip,\n Legend,\n} from \"recharts\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\nimport { project, auth, dashboard } from \"../actions\";\nimport { connect } from \"react-redux\";\nimport { scaleOrdinal } from \"d3-scale\";\nimport { schemeCategory10 } from \"d3-scale-chromatic\";\nimport { ResponsiveScatterPlotCanvas } from \"@nivo/scatterplot\";\nimport { Row, Col, Container } from \"react-bootstrap\";\n\nlet data01 = [];\n\nconst basementOptions = [\n { key: \"yes\", value: \"yes\", text: \"yes\" },\n { key: \"no\", value: \"no\", text: \"no\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst constructionOptions = [\n { key: \"wood\", value: \"wood\", text: \"wood\" },\n { key: \"concrete\", value: \"concrete\", text: \"concrete\" },\n { key: \"masonry\", value: \"masonry\", text: \"masonry\" },\n { key: \"mobile home\", value: \"mobile home\", text: \"mobile home\" },\n { key: \"light metal\", value: \"light metal\", text: \"light metal\" },\n { key: \"steel\", value: \"steel\", text: \"steel\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst storiesOptions = [\n { key: 1, value: 1, text: 1 },\n { key: 2, value: 2, text: 2 },\n { key: \"3 or More\", value: \"3 or more\", text: \"3 or more\" },\n { key: \"unknown\", valeu: \"unknown\", text: \"unknown\" },\n];\nconst occupancyOptions = [\n { key: \"res\", value: \"residential\", text: \"Residential\" },\n { key: \"com\", value: \"commercial\", text: \"Commercial\" },\n { key: \"ind\", value: \"industrial\", text: \"Industrial\" },\n { key: \"unknown\", value: \"unknown\", text: \"Unknown\" },\n];\n\nlet ymax;\nlet data1 = [];\nlet data = [];\n\nconst per_sql_m_options = [\n { key: \"0-5000\", value: 5000, text: \"$0-$5000\" },\n { key: \"5000-10000\", value: 10000, text: \"$5000-$10000\" },\n { key: \"10000-15000\", value: 15000, text: \"$10000-$15000\" },\n { key: \"15000-20000\", value: 20000, text: \"$15000-$20000\" },\n { key: \"20000-25000\", value: 25000, text: \"$20000-$25000\" },\n { key: \"25000-30000\", value: 30000, text: \"$25000-$30000\" },\n { key: \"30000-350000\", value: 35000, text: \"$30000-$35000\" },\n { key: \"35000-40000\", value: 40000, text: \"$35000-$40000\" },\n { key: \"40000-45000\", value: 45000, text: \"$40000-$45000\" },\n { key: \"45000-50000\", value: 50000, text: \"$45000-$50000\" },\n];\nlet data2 = [];\n\nclass Building extends Component {\n constructor(props) {\n super(props);\n }\n state = {\n basement: \"yes\",\n construction: \"concrete\",\n stories: this.props.table[0].floors,\n occupancy: this.props.table[0].type,\n per_sq_m_value: this.props.table[0].valuation,\n line: \"\",\n scatter_river: \"\",\n scatter_storm: \"\",\n options: {\n chart: {\n id: \"chart\",\n },\n xaxis: {\n categories: [1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998],\n },\n },\n series: [\n {\n name: \"series-1\",\n data: [30, 40, 45, 50, 49, 60, 70, 91],\n },\n ],\n };\n\n componentDidMount() {\n console.log(\"fndfffdsfdljfjfo\");\n let formdata = new FormData();\n formdata.append(\"project_name\", this.props.project);\n formdata.append(\"asset_name\", this.props.name);\n formdata.append(\"year\", this.props.year);\n formdata.append(\"analysis_type\", this.props.analysis_type);\n formdata.append(\"basement\", this.state.basement);\n formdata.append(\"construction\", this.state.construction);\n formdata.append(\"stories\", this.props.table[0].floors);\n formdata.append(\"occupancy\", this.props.table[0].type);\n formdata.append(\"per_sq_m_value\", this.props.table[0].valuation);\n this.props.getBuilding(formdata);\n }\n handleChange = (value, key) => {\n this.setState({ [key]: value }, this.handleSubmit);\n };\n\n handleSubmit = () => {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.props.project);\n formdata.append(\"asset_name\", this.props.name);\n formdata.append(\"year\", this.props.year);\n formdata.append(\"analysis_type\", this.props.analysis_type);\n formdata.append(\"basement\", this.state.basement);\n formdata.append(\"construction\", this.state.construction);\n formdata.append(\"stories\", this.state.stories);\n formdata.append(\"occupancy\", this.state.occupancy);\n formdata.append(\"per_sq_m_value\", this.state.per_sq_m_value);\n this.props.getBuilding(formdata);\n };\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n const {\n value,\n basement,\n construction,\n stories,\n occupancy,\n per_sq_m_value,\n } = this.state;\n\n if (this.props.building[\"river_flood\"]) {\n this.state.scatter_river = this.props.building[\"river_flood\"];\n this.state.scatter_storm = this.props.building[\"storm_surge\"];\n console.log(\"building\", this.state.scatter_river[26][0]);\n\n if (this.props.var.includes(\"Rainfall Flood\")) {\n data2 = [\n {\n id: \"2.6\",\n data: [\n {\n x: this.props.building[\"rainfall_flood\"][26][0],\n y: this.props.building[\"rainfall_flood\"][26][1],\n },\n ],\n },\n {\n id: \"4.5\",\n data: [\n {\n x: this.props.building[\"rainfall_flood\"][45][0],\n y: this.props.building[\"rainfall_flood\"][45][1],\n },\n ],\n },\n\n {\n id: \"8.5\",\n data: [\n {\n x: this.props.building[\"rainfall_flood\"][85][0],\n y: this.props.building[\"rainfall_flood\"][85][1],\n },\n ],\n },\n ];\n }\n data = [\n {\n id: \"2.6\",\n data: [\n {\n x: this.state.scatter_river[26][0],\n y: this.state.scatter_river[26][1],\n },\n ],\n },\n {\n id: \"4.5\",\n data: [\n {\n x: this.state.scatter_river[45][0],\n y: this.state.scatter_river[45][1],\n },\n ],\n },\n\n {\n id: \"8.5\",\n data: [\n {\n x: this.state.scatter_river[85][0],\n y: this.state.scatter_river[85][1],\n },\n ],\n },\n ];\n data1 = [\n {\n id: \"2.6\",\n data: [\n {\n x: this.state.scatter_storm[26][0],\n y: this.state.scatter_storm[26][1],\n },\n ],\n },\n {\n id: \"4.5\",\n data: [\n {\n x: this.state.scatter_storm[45][0],\n y: this.state.scatter_storm[45][1],\n },\n ],\n },\n\n {\n id: \"8.5\",\n data: [\n {\n x: this.state.scatter_storm[85][0],\n y: this.state.scatter_storm[85][1],\n },\n ],\n },\n ];\n const colors = scaleOrdinal(schemeCategory10).range();\n ymax = data[2].data[0].y;\n }\n\n return (\n \n \n \n this.handleChange(value, \"basement\")}\n value={basement}\n label=\"Basement\"\n options={basementOptions}\n />\n \n\n \n \n this.handleChange(value, \"construction\")\n }\n value={construction}\n label=\"Construction\"\n options={constructionOptions}\n />\n \n\n \n this.handleChange(value, \"stories\")}\n value={stories}\n label=\"Stories\"\n options={storiesOptions}\n />\n \n\n \n this.handleChange(value, \"occupancy\")}\n value={occupancy}\n label=\"Occupancy\"\n options={occupancyOptions}\n />\n \n\n \n \n this.handleChange(value, \"per_sq_m_value\")\n }\n value={per_sq_m_value}\n label=\"Cost per Square meter\"\n options={per_sql_m_options}\n />\n \n \n \n \n

\n \n Analysis of River Flood Damage\n \n

\n\n \n\n {/* \n \n \n \n \n \n \n \n {\n data.map((entry, index) => )\n }\n \n \n \n */}\n \n\n \n

\n \n Analysis of Storm Damage\n \n

\n {/* \n \n \n \n \n \n \n {\n data1.map((entry, index) => )\n }\n \n */}\n {data1.length > 0 ? (\n \n ) : null}\n \n \n
\n {this.props.var.includes(\"Rainfall Flood\") ? (\n \n \n

\n \n Analysis of Rainfall Flood Damage\n \n

\n {data2.length > 0 ? (\n \n ) : null}\n \n
\n ) : null}\n
\n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n building: state.feedback.building,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getBuilding: (formdata) => {\n dispatch(dashboard.getBuilding(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Building);\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class RCPDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let max = 0;\n\n if (this.state.piedata) {\n x = this.state.piedata[\"year_constant\"][\"2.6\"];\n y = this.state.piedata[\"year_constant\"][`4.5`];\n z = this.state.piedata[\"year_constant\"][`8.5`];\n max = this.state.piedata[\"year_max\"];\n }\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n } else {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n }\n\n return (\n
\n \n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n\n \n Key Findings\n \n \n \n Key Findings\n \n \n {this.props.key_find ? (\n

\n For the given year {this.props.year}, the projected loss depends\n on the carbon concentration, captured by certain{\" \"}\n {this.props.analysis.toUpperCase()}s. The difference between{\" \"}\n {this.props.analysis.toUpperCase()} 8.5 AND{\" \"}\n {this.props.analysis.toUpperCase()} 2.6 reflects the Value of\n Transition Policies which is US${\"\"}\n \n {\"\"}\n {this.props.key_find.value_of_transition_policies}\n \n  Million by {this.props.year}. This is calculated by\n difference between the {this.props.analysis.toUpperCase()} 8.5\n CVaR of US$\n \n {this.props.key_find.cvar_85.toFixed(2)} Million\n {\" \"}\n and the {this.props.analysis.toUpperCase()} 2.6 CVaR of US$\n \n {this.props.key_find.cvar_26.toFixed(2)} Million.\n {\" \"}\n

\n ) : null}\n
\n \n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nimport { Row, Col } from \"react-bootstrap\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Column } from \"@ant-design/charts\";\n\nimport { Button } from \"semantic-ui-react\";\n\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet colors = [];\nlet config = {};\n\nexport default class YEARDonut extends Component {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n this.state.piedata = this.props.data;\n this.state.analysis = this.props.analysis;\n\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let max = 0;\n\n if (this.state.analysis == \"rcp\" && this.state.piedata[\"rcp_constant\"]) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n\n xAxis: {\n label: {\n content: \"Year\",\n },\n },\n\n xField: \"Year\",\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.state.analysis === \"ssp\" &&\n this.state.piedata[\"rcp_constant\"][\"2100\"]\n ) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n w = this.state.piedata[\"rcp_constant\"][\"2100\"];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n Key Findings\n \n \n \n Key Findings\n \n \n {this.props.key_find ? (\n

\n {this.state.analysis == \"rcp\" ? (\n \n This indicates the Loss projection for 2030 and 2050\n relative to the historical baseline of 2020 under the\n Business-as-Usual case. For{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.props.rcp} , Climate\n Value at Risk (CVaR) increases{\" \"}\n \n {\" \"}\n {this.props.key_find.increased_by_2030}{\" \"}\n {\" \"}\n times by 2030 and{\" \"}\n \n {this.props.key_find.increased_by_2050}{\" \"}\n {\" \"}\n times by 2050 compared to current losses (2020).\n \n ) : (\n \n This indicates the Loss projection for 2030 , 2050 and 2100\n relative to the historical baseline of 2020 under the\n Business-as-Usual case. For{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.props.ssp} , Climate\n Value at Risk (CVaR) increases{\" \"}\n \n {\" \"}\n {this.props.key_find.increased_by_2030}{\" \"}\n {\" \"}\n times by 2030 and{\" \"}\n \n {this.props.key_find.increased_by_2050}{\" \"}\n {\" \"}\n times by 2050 and{\" \"}\n \n {this.props.key_find.increased_by_2100} times by 2100\n \n compared to current losses (2020).\n \n )}\n

\n ) : null}\n
\n \n
\n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class SingleRCPDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n console.log(\"single rcp\", this.props.data);\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let max = 0;\n\n if (this.state.piedata) {\n x = this.state.piedata[\"year_constant\"][\"2.6\"];\n y = this.state.piedata[\"year_constant\"][`4.5`];\n z = this.state.piedata[\"year_constant\"][`8.5`];\n max = this.state.piedata[\"year_max\"];\n }\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n } else {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n
\n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Button } from \"semantic-ui-react\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryGroup,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\nexport default class SingleYEARDonut extends PureComponent {\n state = {\n activeIndex: 0,\n single_piedata: \"\",\n key_finding: false,\n single_analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n console.log(\"key find single\", this.props.data);\n\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let max = 0;\n\n if (this.props.analysis == \"rcp\" && this.props.data) {\n x = this.props.data[\"rcp_constant\"][\"2020\"];\n y = this.props.data[\"rcp_constant\"][`2030`];\n z = this.props.data[\"rcp_constant\"][`2050`];\n max = this.props.data[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n\n xAxis: {\n label: {\n content: \"Year\",\n },\n },\n\n xField: \"Year\",\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.props.analysis == \"ssp\" &&\n this.props.data[\"rcp_constant\"][\"2100\"]\n ) {\n x = this.props.data[\"rcp_constant\"][\"2020\"];\n y = this.props.data[\"rcp_constant\"][`2030`];\n z = this.props.data[\"rcp_constant\"][`2050`];\n w = this.props.data[\"rcp_constant\"][\"2100\"];\n max = this.props.data[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n
\n );\n }\n}\n","import React from \"react\";\nimport { ResponsiveHeatMap } from \"@nivo/heatmap\";\n\nconst ClassicHeatmap = (props) => {\n let heatmapdata = [];\n let commonProps = {};\n\n console.log(\"heatmap_classic\", props.analysis);\n\n for (let i = 0; i < props.data.names.length; i++) {\n const heatmapRow = {\n id: i + 1 + \". \" + props.data.names[i].slice(0, 25),\n data: [\n { x: \"River Flood\", y: props.data.values[i][\"River Flood\"] },\n { x: \"Drought\", y: props.data.values[i][\"Drought\"] },\n { x: \"Storm Surge\", y: props.data.values[i][\"Storm Surge\"] },\n { x: \"Extreme Heat\", y: props.data.values[i][\"Extreme Heat\"] },\n { x: \"Snowfall\", y: props.data.values[i][\"Snow Fall\"] },\n { x: \"Rainfall Flood\", y: props.data.values[i][\"Rainfall Flood\"] },\n { x: \"Typhoon\", y: props.data.values[i][\"Typhoon\"] },\n { x: \"Sea Level Rise\", y: props.data.values[i][\"Sea Level Rise\"] },\n { x: \"Landslide\", y: props.data.values[i][\"Landslide\"] },\n { x: \"Wildfire\", y: props.data.values[i][\"Wild Fire\"] },\n ],\n };\n\n // Conditionally add \"Extreme Cold\" based on props.analysis\n if (props.analysis === \"ssp\") {\n heatmapRow.data.push({\n x: \"Extreme Cold\",\n y: props.data.values[i][\"Extreme Cold\"],\n });\n }\n\n heatmapdata.push(heatmapRow);\n }\n\n let n = props.data.names.length;\n\n commonProps = {\n height: n === 1 ? 200 : n * 120,\n };\n\n console.log(\"data_heatmap\", heatmapdata);\n\n return (\n -.2s\"\n isInteractive={true}\n axisTop={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: -45,\n legend: \"\",\n legendOffset: 46,\n }}\n colors={{\n type: \"diverging\",\n scheme: \"yellow_orange_red\",\n divergeAt: 0.5,\n minValue: 0,\n maxValue: 100,\n }}\n emptyColor=\"#555555\"\n /*legends={[\n {\n anchor: \"bottom\",\n translateX: 0,\n translateY: 30,\n length: 400,\n thickness: 8,\n direction: \"row\",\n tickPosition: \"after\",\n tickSize: 3,\n tickSpacing: 4,\n tickOverlap: false,\n tickFormat: \">-.2s\",\n title: \"Value →\",\n titleAlign: \"start\",\n titleOffset: 4,\n },\n ]}*/\n />\n );\n};\n\nexport default ClassicHeatmap;\n","import React from \"react\";\nimport { Tabs, Tab } from \"react-bootstrap\";\nimport { Icon, Button } from \"semantic-ui-react\";\nimport { Progress } from \"antd\";\n\nconst Progress_bar = (props) => {\n console.log(\"Progress Hazard\", props.analysis);\n\n let progress_bar_acute = [];\n let progress_bar_chronic = [];\n\n for (let i = 0; i < props.variable.length; i++) {\n if (\n props.hazard.acute[props.variable[i]] &&\n props.hazard.acute[props.variable[i]][0] >= 0\n ) {\n console.log(\"Acute\", props.hazard.acute[props.variable[i]]);\n progress_bar_acute.push(\n
\n

\n {props.variable[i]}\n {props.hazard.acute ? (\n \n {props.hazard.acute[props.variable[i]][0]}\n {props.hazard.acute[props.variable[i]][1]}\n \n ) : null}\n

\n {props.newdata.acute[props.variable[i]] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n );\n }\n }\n for (let i = 0; i < props.variable.length; i++) {\n if (\n props.hazard.chronic[props.variable[i]] &&\n props.hazard.chronic[props.variable[i]][0] >= 0\n ) {\n progress_bar_chronic.push(\n
\n

\n {props.variable[i]}\n \n {props.hazard.chronic[props.variable[i]][0]}{\" \"}\n {props.hazard.chronic[props.variable[i]][1]}\n \n

\n {props.newdata.chronic[props.variable[i]] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n );\n }\n }\n console.log(\"progess\", progress_bar_acute, progress_bar_chronic);\n\n return (\n \n \n {props.hazard.both ? (\n
\n {props.variable.indexOf(\"Rainfall Flood\") > -1 ? (\n
\n {\" \"}\n

\n Rainfall Flood\n \n {props.hazard.both[\"Rainfall Flood\"][0]}{\" \"}\n {props.hazard.both[\"Rainfall Flood\"][1]} \n {props.hazard.both[\"Rainfall Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] > 0 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 25 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 50 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 75 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Rainfall Flood\"] == 0 ? (\n \n `${props.newdata.both[\"Rainfall Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Rainfall Flood\"][0]} m`\n }\n />\n )}\n \n `${props.hazard.both[\"Rainfall Flood\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"River Flood\") > -1 ? (\n
\n

\n River Flood\n \n {props.hazard.both[\"River Flood\"][0]}{\" \"}\n {props.hazard.both[\"River Flood\"][1]} \n {props.hazard.both[\"River Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"River Flood\"][2] > 0 &&\n props.hazard.both[\"River Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 25 &&\n props.hazard.both[\"River Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 50 &&\n props.hazard.both[\"River Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 75 &&\n props.hazard.both[\"River Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"River Flood\"] == 0 ? (\n \n `${props.newdata.both[\"River Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"River Flood\"][0]} m`\n }\n />\n )}\n\n \n `${props.hazard.both[\"River Flood\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Storm Surge\") > -1 ? (\n
\n {\" \"}\n

\n Storm Surge\n \n {props.hazard.both[\"Storm Surge\"][0]}{\" \"}\n {props.hazard.both[\"Storm Surge\"][1]} \n {props.hazard.both[\"Storm Surge\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Storm Surge\"][2] > 0 &&\n props.hazard.both[\"Storm Surge\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 25 &&\n props.hazard.both[\"Storm Surge\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 50 &&\n props.hazard.both[\"Storm Surge\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 75 &&\n props.hazard.both[\"Storm Surge\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Storm Surge\"] == 0 ? (\n \n `${props.newdata.both[\"Storm Surge\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Storm Surge\"][0]} m`\n }\n />\n )}\n \n `${props.hazard.both[\"Storm Surge\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Typhoon\") > -1 ? (\n
\n

\n Typhoon\n \n {props.hazard.both[\"Typhoon\"][0]}{\" \"}\n {props.hazard.both[\"Typhoon\"][1]} \n {props.hazard.both[\"Typhoon\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Typhoon\"][2] > 0 &&\n props.hazard.both[\"Typhoon\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 25 &&\n props.hazard.both[\"Typhoon\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 50 &&\n props.hazard.both[\"Typhoon\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 75 &&\n props.hazard.both[\"Typhoon\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Typhoon\"] == 0 ? (\n \n ) : (\n \n `${props.newdata.both[\"Typhoon\"][0]} km/h`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Typhoon\"][0]} km/h`\n }\n />\n
\n ) : null}\n\n {props.variable.indexOf(\"Landslide\") > -1 ? (\n
\n

\n Landslide\n \n {props.hazard.both[\"Landslide\"][0]} \n {props.hazard.both[\"Landslide\"][1]}\n {props.hazard.both[\"Landslide\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Landslide\"][2] > 0 &&\n props.hazard.both[\"Landslide\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 25 &&\n props.hazard.both[\"Landslide\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 50 &&\n props.hazard.both[\"Landslide\"][2] < 75 ? (\n \n [Medium High]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 75 &&\n props.hazard.both[\"Landslide\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 100 ? (\n \n Very [High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Landslide\"] == 0 ? (\n \n `${props.newdata.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n
\n ) : null}\n\n {props.variable.indexOf(\"Extreme Heat\") > -1 ? (\n
\n

\n Extreme heat\n \n {props.hazard.both[\"Extreme heat\"][0]}{\" \"}\n {props.hazard.both[\"Extreme heat\"][1]} \n {props.hazard.both[\"Extreme heat\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Extreme heat\"][2] > 0 &&\n props.hazard.both[\"Extreme heat\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 25 &&\n props.hazard.both[\"Extreme heat\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 50 &&\n props.hazard.both[\"Extreme heat\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 75 &&\n props.hazard.both[\"Extreme heat\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Extreme heat\"] == 0 ? (\n \n `${props.newdata.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Extreme Cold\") > -1 ? (\n
\n

\n Extreme Cold\n \n {props.hazard.both[\"Extreme Cold\"][0]}{\" \"}\n {props.hazard.both[\"Extreme Cold\"][1]} \n {props.hazard.both[\"Extreme Cold\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] > 0 &&\n props.hazard.both[\"Extreme Cold\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 25 &&\n props.hazard.both[\"Extreme Cold\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 50 &&\n props.hazard.both[\"Extreme Cold\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 75 &&\n props.hazard.both[\"Extreme Cold\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Extreme Cold\"] == 0 ? (\n \n `${props.newdata.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Snow Fall\") > -1 ? (\n
\n

\n Snowfall\n \n {props.hazard.both[\"Snow Fall\"][0]}{\" \"}\n {props.hazard.both[\"Snow Fall\"][1]} \n {props.hazard.both[\"Snow Fall\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Snow Fall\"][2] > 0 &&\n props.hazard.both[\"Snow Fall\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 25 &&\n props.hazard.both[\"Snow Fall\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 50 &&\n props.hazard.both[\"Snow Fall\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 75 &&\n props.hazard.both[\"Snow Fall\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Snow Fall\"] == 0 ? (\n (\n {props.newdata.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n ) : (\n (\n {props.newdata.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n )}\n\n (\n {props.hazard.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Sea Level Rise\") > -1 ? (\n
\n

\n Sea Level Rise\n \n {props.hazard.both[\"Sea Level Rise\"][0]}{\" \"}\n {props.hazard.both[\"Sea Level Rise\"][1]} \n {props.hazard.both[\"Sea Level Rise\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Sea Level Rise\"][2] > 0 &&\n props.hazard.both[\"Sea Level Rise\"][2] < 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Sea Level Rise\"] == 0 ? (\n \n `${props.newdata.both[\"Sea Level Rise\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Sea Level Rise\"][0]} m`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Sea Level Rise\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Drought\") > -1 ? (\n
\n

\n Drought\n \n {props.hazard.both[\"Drought\"][0]}{\" \"}\n {props.hazard.both[\"Drought\"][1]} \n {props.hazard.both[\"Drought\"][2] <= 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Drought\"][2] > 0 &&\n props.hazard.both[\"Drought\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Drought\"][2] >= 25 &&\n props.hazard.both[\"Drought\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Drought\"][2] >= 50 &&\n props.hazard.both[\"Drought\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Drought\"][2] >= 75 &&\n props.hazard.both[\"Drought\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Drought\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Drought\"] == 0 ? (\n \n `${props.newdata.both[\"Drought\"][0]} SPI`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Drought\"][0]} SPI`\n }\n />\n )}\n\n `${props.hazard.both[\"Drought\"][0]} SPI`}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Wild Fire\") > -1 ? (\n
\n

\n Wildfire\n \n {props.hazard.both[\"Wild Fire\"][0]}{\" \"}\n {props.hazard.both[\"Wild Fire\"][1]}\n {props.hazard.both[\"Wild Fire\"][2] <= 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Wild Fire\"][2] > 0 &&\n props.hazard.both[\"Wild Fire\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 25 &&\n props.hazard.both[\"Wild Fire\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 50 &&\n props.hazard.both[\"Wild Fire\"][2] < 75 ? (\n \n [[Medium]-[High]]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 75 &&\n props.hazard.both[\"Wild Fire\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 100 ? (\n \n Very [High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Wild Fire\"] == 0 ? (\n \n `${props.newdata.both[\"Wild Fire\"][0]} ${props.newdata.both[\"Wild Fire\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Wild Fire\"][0]} ${props.newdata.both[\"Wild Fire\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Wild Fire\"][0]} ${props.hazard.both[\"Wild Fire\"][1]}`\n }\n />\n
\n ) : null}\n
\n ) : null}\n
\n \n {props.variable.indexOf(\"Extreme Heat\") > -1 ? (\n
\n

\n Extreme heat\n \n {props.hazard.both[\"Extreme heat\"][0]}{\" \"}\n {props.hazard.both[\"Extreme heat\"][1]} \n {props.hazard.both[\"Extreme heat\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Extreme heat\"][2] > 0 &&\n props.hazard.both[\"Extreme heat\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 25 &&\n props.hazard.both[\"Extreme heat\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 50 &&\n props.hazard.both[\"Extreme heat\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 75 &&\n props.hazard.both[\"Extreme heat\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Extreme heat\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Extreme heat\"] == 0 ? (\n \n `${props.newdata.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Extreme heat\"][0]}${props.newdata.both[\"Extreme heat\"][1]}`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Snow Fall\") > -1 ? (\n
\n

\n Snowfall\n \n {props.hazard.both[\"Snow Fall\"][0]}{\" \"}\n {props.hazard.both[\"Snow Fall\"][1]} \n {props.hazard.both[\"Snow Fall\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Snow Fall\"][2] > 0 &&\n props.hazard.both[\"Snow Fall\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 25 &&\n props.hazard.both[\"Snow Fall\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 50 &&\n props.hazard.both[\"Snow Fall\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 75 &&\n props.hazard.both[\"Snow Fall\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Snow Fall\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Snow Fall\"] == 0 ? (\n (\n {props.newdata.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n ) : (\n (\n {props.newdata.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n )}\n\n (\n {props.hazard.both[\"Snow Fall\"][0]} mm/year\n )}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Sea Level Rise\") > -1 ? (\n
\n

\n Sea Level Rise\n \n {props.hazard.both[\"Sea Level Rise\"][0]}{\" \"}\n {props.hazard.both[\"Sea Level Rise\"][1]} \n {props.hazard.both[\"Sea Level Rise\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Sea Level Rise\"][2] > 0 &&\n props.hazard.both[\"Sea Level Rise\"][2] < 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Sea Level Rise\"] == 0 ? (\n \n `${props.newdata.both[\"Sea Level Rise\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Sea Level Rise\"][0]} m`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Sea Level Rise\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Drought\") > -1 ? (\n
\n

\n Drought\n \n {props.hazard.both[\"Drought\"][0]}{\" \"}\n {props.hazard.both[\"Drought\"][1]} \n {props.hazard.both[\"Drought\"][2] <= 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Drought\"][2] > 0 &&\n props.hazard.both[\"Drought\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Drought\"][2] >= 25 &&\n props.hazard.both[\"Drought\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Drought\"][2] >= 50 &&\n props.hazard.both[\"Drought\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Drought\"][2] >= 75 &&\n props.hazard.both[\"Drought\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Drought\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Drought\"] == 0 ? (\n `${props.newdata.both[\"Drought\"][0]} SPI`}\n />\n ) : (\n `${props.newdata.both[\"Drought\"][0]} SPI`}\n />\n )}\n\n `${props.hazard.both[\"Drought\"][0]} SPI`}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Landslide\") > -1 ? (\n
\n

\n Landslide\n \n {props.hazard.both[\"Landslide\"][0]} \n {props.hazard.both[\"Landslide\"][1]}\n {props.hazard.both[\"Landslide\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Landslide\"][2] > 0 &&\n props.hazard.both[\"Landslide\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 25 &&\n props.hazard.both[\"Landslide\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 50 &&\n props.hazard.both[\"Landslide\"][2] < 75 ? (\n \n [Medium High]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 75 &&\n props.hazard.both[\"Landslide\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Landslide\"][2] >= 100 ? (\n \n Very [High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Landslide\"] == 0 ? (\n \n `${props.newdata.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Landslide\"][0]} Ann. Freq.`\n }\n />\n
\n ) : null}\n\n {/* {progress_bar_chronic ?
{progress_bar_chronic}
: null}*/}\n
\n \n {props.variable.indexOf(\"Rainfall Flood\") > -1 ? (\n
\n {\" \"}\n

\n Rainfall Flood\n \n {props.hazard.both[\"Rainfall Flood\"][0]}{\" \"}\n {props.hazard.both[\"Rainfall Flood\"][1]} \n {props.hazard.both[\"Rainfall Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] > 0 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 25 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 50 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 75 &&\n props.hazard.both[\"Rainfall Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Rainfall Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Rainfall Flood\"] == 0 ? (\n \n `${props.newdata.both[\"Rainfall Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Rainfall Flood\"][0]} m`\n }\n />\n )}\n \n `${props.hazard.both[\"Rainfall Flood\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"River Flood\") > -1 ? (\n
\n

\n River Flood\n \n {props.hazard.both[\"River Flood\"][0]}{\" \"}\n {props.hazard.both[\"River Flood\"][1]} \n {props.hazard.both[\"River Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"River Flood\"][2] > 0 &&\n props.hazard.both[\"River Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 25 &&\n props.hazard.both[\"River Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 50 &&\n props.hazard.both[\"River Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 75 &&\n props.hazard.both[\"River Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"River Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"River Flood\"] == 0 ? (\n \n `${props.newdata.both[\"River Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"River Flood\"][0]} m`\n }\n />\n )}\n\n `${props.hazard.both[\"River Flood\"][0]} m`}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Storm Surge\") > -1 ? (\n
\n {\" \"}\n

\n Storm Surge\n \n {props.hazard.both[\"Storm Surge\"][0]}{\" \"}\n {props.hazard.both[\"Storm Surge\"][1]} \n {props.hazard.both[\"Storm Surge\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Storm Surge\"][2] > 0 &&\n props.hazard.both[\"Storm Surge\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 25 &&\n props.hazard.both[\"Storm Surge\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 50 &&\n props.hazard.both[\"Storm Surge\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 75 &&\n props.hazard.both[\"Storm Surge\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Storm Surge\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Storm Surge\"] == 0 ? (\n \n `${props.newdata.both[\"Storm Surge\"][0]} m`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Storm Surge\"][0]} m`\n }\n />\n )}\n `${props.hazard.both[\"Storm Surge\"][0]} m`}\n />\n
\n ) : null}\n {props.variable.indexOf(\"Typhoon\") > -1 ? (\n
\n

\n Typhoon\n \n {props.hazard.both[\"Typhoon\"][0]}{\" \"}\n {props.hazard.both[\"Typhoon\"][1]} \n {props.hazard.both[\"Typhoon\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Typhoon\"][2] > 0 &&\n props.hazard.both[\"Typhoon\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 25 &&\n props.hazard.both[\"Typhoon\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 50 &&\n props.hazard.both[\"Typhoon\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 75 &&\n props.hazard.both[\"Typhoon\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Typhoon\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Typhoon\"] == 0 ? (\n \n ) : (\n `${props.newdata.both[\"Typhoon\"][0]} km/h`}\n />\n )}\n\n `${props.hazard.both[\"Typhoon\"][0]} km/h`}\n />\n
\n ) : null}\n\n {props.variable.indexOf(\"Wild Fire\") > -1 ? (\n
\n

\n Wildfire\n \n {props.hazard.both[\"Wild Fire\"][0]}{\" \"}\n {props.hazard.both[\"Wild Fire\"][1]}\n {props.hazard.both[\"Wild Fire\"][2] <= 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Wild Fire\"][2] > 0 &&\n props.hazard.both[\"Wild Fire\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 25 &&\n props.hazard.both[\"Wild Fire\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 50 &&\n props.hazard.both[\"Wild Fire\"][2] < 75 ? (\n \n [[Medium]-[High]]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 75 &&\n props.hazard.both[\"Wild Fire\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Wild Fire\"][2] >= 100 ? (\n \n Very [High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Wild Fire\"] == 0 ? (\n \n `${props.newdata.both[\"Wild Fire\"][0]} ${props.newdata.both[\"Wild Fire\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Wild Fire\"][0]} ${props.newdata.both[\"Wild Fire\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Wild Fire\"][0]} ${props.hazard.both[\"Wild Fire\"][1]}`\n }\n />\n
\n ) : null}\n\n {props.variable.indexOf(\"Extreme Cold\") > -1 ? (\n
\n

\n Extreme Cold\n \n {props.hazard.both[\"Extreme Cold\"][0]}{\" \"}\n {props.hazard.both[\"Extreme Cold\"][1]} \n {props.hazard.both[\"Extreme Cold\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] > 0 &&\n props.hazard.both[\"Extreme Cold\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 25 &&\n props.hazard.both[\"Extreme Cold\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 50 &&\n props.hazard.both[\"Extreme Cold\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 75 &&\n props.hazard.both[\"Extreme Cold\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.both[\"Extreme Cold\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.newdata.both[\"Extreme Cold\"] == 0 ? (\n \n `${props.newdata.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n ) : (\n \n `${props.newdata.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n )}\n\n \n `${props.hazard.both[\"Extreme Cold\"][0]}${props.newdata.both[\"Extreme Cold\"][1]}`\n }\n />\n
\n ) : null}\n\n {/* {progress_bar_acute ?
{progress_bar_acute}
: null}*/}\n
\n {/* {props.hazard[\"mitigation\"] ? (\n \n {props.variable.indexOf(\"River Flood\") > -1 ? (\n
\n

\n River Flood\n \n {props.hazard.mitigation[\"River Flood\"][0]}{\" \"}\n {props.hazard.mitigation[\"River Flood\"][1]} \n {props.hazard.mitigation[\"River Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.mitigation[\"River Flood\"][2] > 0 &&\n props.hazard.mitigation[\"River Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.mitigation[\"River Flood\"][2] >= 25 &&\n props.hazard.mitigation[\"River Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.mitigation[\"River Flood\"][2] >= 50 &&\n props.hazard.mitigation[\"River Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.mitigation[\"River Flood\"][2] >= 75 &&\n props.hazard.mitigation[\"River Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.mitigation[\"River Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.hazard.both[\"River Flood\"] == 0 ? (\n \n `${props.hazard.both[\"River Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.hazard.both[\"River Flood\"][0]} m`\n }\n />\n )}\n\n \n `${props.hazard.mitigation[\"River Flood\"][0]} m`\n }\n />\n
\n ) : null}\n {props.variable.indexOf(\"Rainfall Flood\") > -1 ? (\n
\n

\n River Flood\n \n {props.hazard.mitigation[\"Rainfall Flood\"][0]}{\" \"}\n {props.hazard.mitigation[\"Rainfall Flood\"][1]} \n {props.hazard.mitigation[\"Rainfall Flood\"][2] > 0 == 0 ? (\n \n [No Risk]\n \n ) : props.hazard.mitigation[\"Rainfall Flood\"][2] > 0 &&\n props.hazard.mitigation[\"Rainfall Flood\"][2] < 25 ? (\n \n [Low]\n \n ) : props.hazard.mitigation[\"Rainfall Flood\"][2] >= 25 &&\n props.hazard.mitigation[\"Rainfall Flood\"][2] < 50 ? (\n \n [Medium]\n \n ) : props.hazard.mitigation[\"Rainfall Flood\"][2] >= 50 &&\n props.hazard.mitigation[\"Rainfall Flood\"][2] < 75 ? (\n \n [Medium-High]\n \n ) : props.hazard.mitigation[\"Rainfall Flood\"][2] >= 75 &&\n props.hazard.mitigation[\"Rainfall Flood\"][2] < 100 ? (\n \n [High]\n \n ) : props.hazard.mitigation[\"Rainfall Flood\"][2] >= 100 ? (\n \n [Very High]\n \n ) : null}\n \n

\n {props.hazard.both[\"Rainfall Flood\"] == 0 ? (\n \n `${props.hazard.both[\"Rainfall Flood\"][0]} m`\n }\n />\n ) : (\n \n `${props.hazard.both[\"Rainfall Flood\"][0]} m`\n }\n />\n )}\n\n \n `${props.hazard.mitigation[\"Rainfall Flood\"][0]} m`\n }\n />\n
\n ) : null}\n
\n ) : null}*/}\n\n {/* {props.data ? (\n \n
\n

\n Solar Production\n {props.data.energy[\"solar\"]}%\n

\n {props.newdata.energy[\"solar\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Wind Production\n {props.data.energy[\"wind\"]}%\n

\n {props.newdata.energy[\"wind\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Hydro Production\n {props.data.energy[\"hydro\"]}%\n

\n {props.newdata.energy[\"hydro\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n ) : null}\n {props.data ? (\n \n
\n

\n Wheat Production\n \n {props.data.agriculture[\"wheat\"]}%\n \n

\n {props.newdata.agriculture[\"wheat\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Rice Production\n \n {props.data.agriculture[\"rice\"]}%\n \n

\n {props.newdata.agriculture[\"rice\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Maize Production\n \n {props.data.agriculture[\"maize\"]}%\n \n

\n {props.newdata.agriculture[\"maize\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Fruit Production\n \n {props.data.agriculture[\"fruit\"]}%\n \n

\n {props.newdata.agriculture[\"fruit\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n

\n Vegetable Production\n \n {props.data.agriculture[\"vegetable\"]}%\n \n

\n {props.newdata.agriculture[\"vegetable\"] == 0 ? (\n \n ) : (\n \n )}\n\n \n
\n
\n ) : null}*/}\n \n );\n};\n\nexport default Progress_bar;\n","import React from \"react\";\nimport { Tabs, Tab } from \"react-bootstrap\";\nimport { Icon } from \"semantic-ui-react\";\nimport { Progress } from \"antd\";\n\nconst LossComponent = (props) => {\n console.log(\"Losses 2020\", props.data[\"mitigation\"][\"severity\"]);\n let severity = props.data[\"mitigation\"][\"severity\"];\n return (\n \n \n
\n {props.data[\"general\"][\"Rainfall Flood Loss\"] ? (\n
\n

\n \n Rainfall Flood Loss{\" \"}\n \n \n {props.data[\"general\"][\"Rainfall Flood Loss\"][0] < 1000 ? (\n \n $\n {props.data[\"general\"][\"Rainfall Flood Loss\"][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"general\"][\"Rainfall Flood Loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"general\"][\"Rainfall Flood Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n \n `$ ${props.data[\"general\"][\"Rainfall Flood Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n
\n ) : null}\n
\n

\n River Flood Loss \n \n {props.data[\"general\"][\"River Flood Loss\"][0] < 1000 ? (\n \n ${props.data[\"general\"][\"River Flood Loss\"][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"general\"][\"River Flood Loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"general\"][\"River Flood Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n \n `$ ${props.data[\"general\"][\"River Flood Loss\"][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n Storm Surge Loss \n \n {props.data[\"general\"][\"Storm Surge Loss\"][0] < 1000 ? (\n \n ${props.data[\"general\"][\"Storm Surge Loss\"][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"general\"][\"Storm Surge Loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"general\"][\"Storm Surge Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n \n `$ ${props.data[\"general\"][\"Storm Surge Loss\"][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n Typhoon Loss \n \n {props.data[\"general\"][\"Typhoon Loss\"][0] < 1000 ? (\n \n ${props.data[\"general\"][\"Typhoon Loss\"][0].toFixed(2)} Million\n \n ) : (\n \n $\n {(props.data[\"general\"][\"Typhoon Loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"general\"][\"Typhoon Loss\"][0].toFixed(2)} Mil`\n }\n />\n \n `$ ${props.data[\"general\"][\"Typhoon Loss\"][0].toFixed(2)} Mil`\n }\n />\n
\n\n {props.data[\"general\"][\"Temprature/heat loss\"] ? (\n
\n

\n \n Temperature/heat Loss{\" \"}\n \n \n {props.data[\"general\"][\"Temprature/heat loss\"][0] < 1000 ? (\n \n $\n {props.data[\"general\"][\"Temprature/heat loss\"][0].toFixed(\n 2\n )}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"general\"][\"Temprature/heat loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"general\"][\n \"Temprature/heat loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n \n `$ ${props.data[\"general\"][\"Temprature/heat loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n
\n ) : null}\n
\n \n
\n
\n

\n Total Loss \n \n {props.data[\"total\"][\"Total Loss\"][0] < 1000 ? (\n \n ${props.data[\"total\"][\"Total Loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data[\"total\"][\"Total Loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"total\"][\"Total Loss\"][0].toFixed(2)} Mil`\n }\n />\n \n `$ ${props.data[\"total\"][\"Total Loss\"][0].toFixed(2)} Mil`\n }\n />\n
\n
\n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n

\n \n Asset Rainfall Flood Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"][0] <\n 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Asset Rainfall Flood Damage\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"][0] /\n 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n \n `$ ${props.newdata[\"detailed\"][\n \"Asset Rainfall Flood Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n ) : null}\n\n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n \n `$ ${props.data[\"detailed\"][\n \"Asset Rainfall Flood Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n ) : null}\n
\n
\n

\n \n Asset River Flood Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset River Flood Damage\"][0] < 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Asset River Flood Damage\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Asset River Flood Damage\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\n \"Asset River Flood Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\n \"Asset River Flood Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n \n Asset Storm Surge Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Storm Surge Damage\"][0] < 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Asset Storm Surge Damage\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Asset Storm Surge Damage\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\n \"Asset Storm Surge Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\n \"Asset Storm Surge Damage\"\n ][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n \n Asset Typhoon Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Typhoon Damage\"][0] < 1000 ? (\n \n $\n {props.data[\"detailed\"][\"Asset Typhoon Damage\"][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Asset Typhoon Damage\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\"Asset Typhoon Damage\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\"Asset Typhoon Damage\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n
\n
\n {props.data[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n

\n \n Operational Rainfall Flood Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational Rainfall Flood Loss\"][0] <\n 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][0].toFixed(3)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n \n `$ ${props.newdata[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][0].toFixed(3)} Mil`\n }\n />\n ) : null}\n\n {props.data[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n \n `$ ${props.data[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n ) : null}\n
\n
\n

\n \n Operational River Flood Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational River Flood Loss\"][0] <\n 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Operational River Flood Loss\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Operational River Flood Loss\"][0] /\n 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\n \"Operational River Flood Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\n \"Operational River Flood Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n \n Operational Storm Surge Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational Storm Surge Loss\"][0] <\n 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Operational Storm Surge Loss\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Operational Storm Surge Loss\"][0] /\n 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\n \"Operational Storm Surge Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\n \"Operational Storm Surge Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n
\n
\n

\n \n Operational Typhoon Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational Typhoon Loss\"][0] < 1000 ? (\n \n $\n {props.data[\"detailed\"][\n \"Operational Typhoon Loss\"\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Operational Typhoon Loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"detailed\"][\n \"Operational Typhoon Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"detailed\"][\n \"Operational Typhoon Loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n
\n
\n {props.data[\"detailed\"][\"Temprature/heat loss\"] ? (\n

\n \n Temperature/Heat Loss\n \n \n {props.data[\"detailed\"][\"Temprature/heat loss\"][0] < 1000 ? (\n \n $\n {props.data[\"detailed\"][\"Temprature/heat loss\"][0].toFixed(\n 2\n )}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"detailed\"][\"Temprature/heat loss\"][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Temprature/heat loss\"] ? (\n \n `$ ${props.newdata[\"detailed\"][\n \"Temprature/heat loss\"\n ][0].toFixed(2)} Mil`\n }\n />\n ) : null}\n\n {props.data[\"detailed\"][\"Temprature/heat loss\"] ? (\n \n `$ ${props.data[\"detailed\"][\"Temprature/heat loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n ) : null}\n
\n
\n {/* \n
\n\n

\n Total Energy Loss\n \n {props.data['detailed'].energy[\"total_loss\"][0] < 1000 ? (\n \n ${props.data['detailed'].energy[\"total_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].energy[\"total_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Solar Production Loss\n \n \n {props.data['detailed'].energy[\"solar_loss\"][0] < 1000 ? (\n \n ${props.data['detailed'].energy[\"solar_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].energy[\"solar_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Wind Production Loss\n \n \n {props.data['detailed'].energy[\"wind_loss\"][0] < 1000 ? (\n \n ${props.data['detailed'].energy[\"wind_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].energy[\"wind_loss\"][0] / 1000).toFixed(2)} Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Hydro Production Loss\n \n \n {props.data['detailed'].energy[\"hydro_loss\"][0] < 1000 ? (\n \n ${props.data['detailed'].energy[\"hydro_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].energy[\"hydro_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n
\n \n
\n

\n \n Total Agriculture Loss\n \n \n {props.data['detailed'].agriculture[\"total_loss\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"total_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"total_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Wheat Production Loss\n \n \n {props.data['detailed'].agriculture[\"wheat\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"wheat\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"wheat\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Rice Production Loss\n \n \n {props.data['detailed'].agriculture[\"rice\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"rice\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"rice\"][0] / 1000).toFixed(2)} Billion\n \n )}\n \n

\n \n\n \n

\n \n Maize Production Loss\n \n \n {props.data['detailed'].agriculture[\"maize\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"maize\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"maize\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Fruit Production Loss\n \n \n {props.data['detailed'].agriculture[\"fruit\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"fruit\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"fruit\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Vegetable Production Loss\n \n \n {props.data['detailed'].agriculture[\"vegetable\"][0] < 1000 ? (\n \n ${props.data['detailed'].agriculture[\"vegetable\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data['detailed'].agriculture[\"vegetable\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n
*/}\n \n
\n

\n Total Loss\n \n {props.data[\"total\"][\"Total Loss\"][0] < 1000 ? (\n \n ${props.data[\"total\"][\"Total Loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data[\"total\"][\"Total Loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"total\"][\"Total Loss\"][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"total\"][\"Total Loss\"][0].toFixed(2)} Mil`\n }\n color=\"green\"\n />\n
\n
\n

\n Total Damage\n \n {props.data[\"total\"][\"Total Damage\"][0] < 1000 ? (\n \n ${props.data[\"total\"][\"Total Damage\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data[\"total\"][\"Total Damage\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"total\"][\"Total Damage\"][0].toFixed(2)} Mil`\n }\n />\n\n \n `$ ${props.data[\"total\"][\"Total Damage\"][0].toFixed(2)} Mil`\n }\n color=\"green\"\n />\n
\n\n
\n

\n Total Operational\n \n {props.data[\"total\"][\"Total Operational\"][0] < 1000 ? (\n \n ${props.data[\"total\"][\"Total Operational\"][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(props.data[\"total\"][\"Total Operational\"][0] / 1000).toFixed(\n 2\n )}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.newdata[\"total\"][\"Total Operational\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n\n \n `$ ${props.data[\"total\"][\"Total Operational\"][0].toFixed(2)} Mil`\n }\n />\n
\n
\n {/* \n {props.data[\"mitigation\"] ? (\n
\n

\n \n River Flood {props.data[\"mitigation\"][\"severity\"]} Loss\n \n \n {props.data[\"mitigation\"][`River Flood ${severity} Loss`][0] <\n 1000 ? (\n \n $\n {props.data[\"mitigation\"][\n `River Flood ${severity} Loss`\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"mitigation\"][\n `River Flood ${severity} Loss`\n ][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.data[\"general\"][\"River Flood Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n\n \n `$ ${props.data[\"mitigation\"][\n `River Flood ${severity} Loss`\n ][0].toFixed(2)} Mil`\n }\n color=\"green\"\n />\n
\n ) : null}\n {props.data[\"general\"][\"Rainfall Flood Loss\"] ? (\n
\n

\n \n Rainfall Flood {severity} Loss\n \n \n {props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][0] < 1000 ? (\n \n $\n {props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][0].toFixed(2)}{\" \"}\n Million\n \n ) : (\n \n $\n {(\n props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][0] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n `$ ${props.data[\"general\"][\"Rainfall Flood Loss\"][0].toFixed(\n 2\n )} Mil`\n }\n />\n\n \n `$ ${props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][0].toFixed(2)} Mil`\n }\n color=\"green\"\n />\n
\n ) : null}\n
*/}\n
\n );\n};\n\nexport default LossComponent;\n","import React, {\n Component\n} from 'react'\nimport { loadModules } from 'esri-loader';\n\n\nexport default class Map extends Component {\n\n constructor(props) { \n super(props);\n }\n state={\n variable:'FL8570',\n locations:''\n }\n\n \n \n componentDidUpdate(prevProps,prevState){\n if(prevProps.data!==this.props.data){\n this.setState({variable:this.props.data},()=>console.log(\"map error\",this.state.variable,this.props.data))\n }\n }\n\n\n render() {\n \n loadModules(['esri/Map', 'esri/views/MapView','esri/layers/FeatureLayer','esri/widgets/Legend','esri/Graphic','esri/widgets/Search','esri/widgets/Fullscreen','esri/symbols/WebStyleSymbol'], { css: true })\n .then(([ArcGISMap, MapView,FeatureLayer,Legend,Graphic,Search,Fullscreen,WebStyleSymbol]) => {\n \n if(this.state.variable==='FL8570'){\n console.log(\"lat long of ass\",this.props.lat,this.props.long)\n const defaultSym = {\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\n outline: {\n // autocasts as new SimpleLineSymbol()\n color: [255, 255, 255, 0.5],\n width: \"0.5px\"\n }\n }\n const renderer = {\n type: \"simple\", // autocasts as new SimpleRenderer()\n symbol: defaultSym,\n // label: \"Flood at RCP 85 shapefile projection\",\n visualVariables: [\n {\n type: \"color\",\n field: \"FL8570\",\n stops: [\n {\n value: 0.22,\n color: \"#FFFFCC\",\n label: \"0 - 0.22\"\n },\n {\n value: 0.609,\n color: \"#FFEDA0\",\n label: \"0.22 - 0.609\"\n },\n {\n value: 1.25,\n color: \"#FEB24C\",\n label: \"0.609 - 1.25\"\n },\n {\n value: 2.19,\n color: \"#FC4E2A\",\n label: \"1.25 - 2.19\"\n },\n {\n value: 2.9,\n color: \"#E31A1C\",\n label: \"2.19 - 2.9\"\n },\n {\n value: 4,\n color: \"#BD0026\",\n label: \"2.9 - 4\"\n },\n {\n value: 6,\n color: \"#940025\",\n label: \"4 - 6\"\n },\n {\n value: 8,\n color: \"#67001F\",\n label: \"6 - 8\"\n }\n ]\n }\n ]\n };\n // Adding shapefile as a feature layer\n const povLayer = new FeatureLayer({\n url: \"https://services9.arcgis.com/VkScCoIvdvWoNy79/arcgis/rest/services/shapefiles/FeatureServer/0\",\n renderer: renderer,\n title: \"Flood at RCP 8.5 Year 2050\",\n popupTemplate: {\n // autocasts as new PopupTemplate()\n title: \"{name}, {Type}\",\n content:\n \"Flood Value {FL8570}\",\n }\n });\n\n\n \n const map = new ArcGISMap({\n basemap: 'streets-night-vector',\n layers:[povLayer]\n \n });\n\n const view = new MapView({\n container:'viewDiv2',\n map: map,\n center: [this.props.long,this.props.lat],\n zoom: this.props.zoom\n });\n\n for(let i=0;i
)\n\n }\n\n\n }\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { Marker, Popup, FlyToInterpolator } from \"react-map-gl\";\nimport data from \"../constants/menu\";\nimport { ConsoleSqlOutlined } from \"@ant-design/icons\";\nimport mapboxgl from \"mapbox-gl\"; // This is a dependency of react-map-gl even if you didn't explicitly install it\n\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default; // eslint-disable-next-line import/no-webpack-loader-syntax\n\nconst WorldMap = (props) => {\n let countries = Object.keys(props.data);\n const [viewport, setViewport] = useState({\n width: \"100%\",\n height: 450,\n latitude: props.data[countries[0]][1][0],\n longitude: props.data[countries[0]][1][1],\n zoom: 8,\n });\n\n let feature = [];\n\n let n = Object.keys(props.data).length;\n\n for (let i = 0; i < n; i++) {\n let locations = [];\n for (let j = 0; j < props.data[countries[i]][0].length; j++) {\n locations.push({\n name: props.data[countries[i]][0][j].name,\n loss: props.data[countries[i]][0][j].loss,\n percentage: props.data[countries[i]][0][j].percentage,\n country: props.data[countries[i]][0][j].country,\n lat: props.data[countries[i]][0][j].latitude,\n long: props.data[countries[i]][0][j].longitude,\n });\n }\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n props.data[countries[i]][1][1],\n props.data[countries[i]][1][0],\n ],\n },\n properties: {\n address: countries[i],\n locations: locations,\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n });\n\n const listings = stores.features.map((listing, index) => {\n console.log(\"listing\", listing.properties.address);\n return (\n handlezoom(listing.geometry)}>\n {listing.properties.address}\n \n );\n });\n\n const handlezoom = (geometry) => {\n setViewport({\n ...viewport,\n zoom: 14,\n latitude: geometry.coordinates[1],\n longitude: geometry.coordinates[0],\n transitionDuration: 5000,\n transitionInterpolator: new FlyToInterpolator(),\n });\n };\n\n let html = [];\n\n for (let i = 0; i < stores.features.length; i++) {\n for (let j = 0; j < stores.features[i].properties.locations.length; j++) {\n html.push(\n \n \n {stores.features[i].properties.locations[j].name.slice(0, 20)}\n \n \n {stores.features[i].properties.locations[j].loss.toFixed(2)} mil $\n \n \n {stores.features[i].properties.locations[j].percentage.toFixed(2)} %\n \n \n );\n }\n }\n\n const markers = stores.features.map((marker, index) => (\n handlezoom(marker.geometry)}\n >\n ));\n\n const popup = stores.features.map((popup, index) => (\n \n
\n \n \n \n \n \n \n {popup.properties.locations.slice(0, 3).map((location, index) => (\n \n \n \n \n \n ))}\n
Asset NameLoss%Loss
{location.name.slice(0, 20)}{location.loss.toFixed(2)}{location.percentage.toFixed(2)}%
\n
\n \n ));\n\n return (\n
\n
\n

Countries

\n {listings}\n
\n setViewport(nextViewport)}\n mapboxApiAccessToken=\"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\"\n >\n {markers}\n {popup}\n \n
\n );\n};\nexport default WorldMap;\n","import React,{Component} from 'react';\nimport Chart from 'react-google-charts';\nimport {ResponsiveLine} from '@nivo/line';\nimport {VictoryChart ,VictoryBoxPlot,VictoryLabel,VictoryContainer,VictoryAxis,VictoryLegend} from 'victory';\nimport {Grid} from 'semantic-ui-react';\nimport {Row} from 'react-bootstrap';\nlet data=[];\nlet high=0;\nlet array=[];\nlet n =0;\nexport default class CandleStick extends Component{\n constructor(props) {\n super(props);\n }\n \n render(){\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\"\n data=[];\n \n if(this.props.data){\n n=this.props.data.length\n for(let i=0;i\n

Climate spread (% loss adjusted by 1:100 return period)

\n }\n >\n \n \n \n \n\n }\n standalone={false}\n maxLabelComponent={}\n medianLabelComponent={}\n boxWidth={20}\n whiskerWidth={5}\n \n \n data={data}\n style={{\n labels:{padding:10}, \n min: { stroke: \"#73a2ff\",fontSize:9 },\n max: { stroke: \"#002b82\",fontSize:9 },\n q1: { fill: \"#73a2ff\" },\n q3: { fill: \"#002b82\" },\n median: { stroke: \"#ffff00\", strokeWidth:2,fontSize:9 },\n minLabels: { fill: \"#73a2ff\", },\n maxLabels: { fill: \"#002b82\" },\n medianLabels:{fill: isDarkMode ? \"#ffff00\" : \"#000000\"}\n }}\n />\n \n \n \n\n

RCP 2.6\n
RCP 4.5\n \n \n
RCP 8.5

\n \n
\n
\n )\n }\n}\n","import React, { Component } from \"react\";\nimport { loadModules } from \"esri-loader\";\n\nexport default class PopupMap extends Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n loadModules(\n [\n \"esri/Map\",\n \"esri/views/MapView\",\n \"esri/layers/FeatureLayer\",\n \"esri/widgets/Legend\",\n \"esri/Graphic\",\n \"esri/widgets/Search\",\n \"esri/symbols/WebStyleSymbol\",\n \"esri/widgets/Fullscreen\",\n ],\n { css: true }\n ).then(\n ([\n ArcGISMap,\n MapView,\n FeatureLayer,\n Legend,\n Graphic,\n Search,\n WebStyleSymbol,\n Fullscreen,\n ]) => {\n console.log(\"type of lat\", this.props.data.latitude);\n const defaultSym = {\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\n outline: {\n // autocasts as new SimpleLineSymbol()\n color: [255, 255, 255, 0.5],\n width: \"0.5px\",\n },\n };\n const renderer = {\n type: \"simple\", // autocasts as new SimpleRenderer()\n symbol: defaultSym,\n // label: \"Flood at RCP 85 shapefile projection\",\n visualVariables: [\n {\n type: \"color\",\n field: \"FL8570\",\n stops: [\n {\n value: 0.22,\n color: \"#FFFFCC\",\n label: \"0 - 0.22\",\n },\n {\n value: 0.609,\n color: \"#FFEDA0\",\n label: \"0.22 - 0.609\",\n },\n {\n value: 0.929,\n color: \"#FED976\",\n label: \"0.609 - 0.929\",\n },\n {\n value: 1.25,\n color: \"#FEB24C\",\n label: \"0.929 - 1.25\",\n },\n {\n value: 1.64,\n color: \"#FD8D3C\",\n label: \"1.25 - 1.64\",\n },\n {\n value: 2.19,\n color: \"#FC4E2A\",\n label: \"1.64 - 2.19\",\n },\n {\n value: 2.9,\n color: \"#E31A1C\",\n label: \"2.19 - 2.9\",\n },\n {\n value: 4,\n color: \"#BD0026\",\n label: \"2.9 - 4\",\n },\n {\n value: 6,\n color: \"#940025\",\n label: \"4 - 6\",\n },\n {\n value: 8,\n color: \"#67001F\",\n label: \"6 - 8\",\n },\n ],\n },\n ],\n };\n // Adding shapefile as a feature layer\n const povLayer = new FeatureLayer({\n url: \"https://services9.arcgis.com/VkScCoIvdvWoNy79/arcgis/rest/services/shapefiles/FeatureServer/0\",\n renderer: renderer,\n title: \"Flood in Hong Kong\",\n popupTemplate: {\n // autocasts as new PopupTemplate()\n title: \"{name}, {Type}\",\n content: \"Flood Value {FL8570}\",\n },\n });\n\n const map = new ArcGISMap({\n basemap: \"streets-night-vector\",\n layers: [povLayer],\n });\n\n const view = new MapView({\n container: \"viewDiv1\",\n map: map,\n center: [this.props.data.longitude, this.props.data.latitude],\n zoom: 16,\n });\n var point = {\n type: \"point\",\n longitude: this.props.data.longitude,\n latitude: this.props.data.latitude,\n };\n\n var WebStyleSymbol = new WebStyleSymbol({\n name: \"tear-pin-1\",\n styleName: \"Esri2DPointSymbolsStyle\",\n });\n\n var pointGraphic = new Graphic({\n geometry: point,\n symbol: WebStyleSymbol,\n });\n\n view.graphics.add(pointGraphic);\n\n var fullscreen = new Fullscreen({\n view: view,\n });\n view.ui.add(fullscreen, \"bottom-left\");\n }\n );\n }\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n }\n\n render() {\n return (\n
\n );\n }\n}\n","import React, { useState, useCallback, useEffect } from \"react\";\nimport {\n Table,\n Input,\n InputNumber,\n Popconfirm,\n Form,\n Typography,\n Progress,\n Select,\n} from \"antd\";\nimport { Icon, Button } from \"semantic-ui-react\";\n\nconst { Option } = Select;\n\nfunction handleChange(value) {\n console.log(`selected ${value}`);\n}\n\nconst EditableCell = ({\n editing,\n dataIndex,\n title,\n inputType,\n record,\n index,\n children,\n ...restProps\n}) => {\n const inputNode =\n inputType === \"select\" ? (\n \n ) : inputType === \"number\" ? (\n \n ) : inputType === \"select_mitigation\" ? (\n \n ) : (\n \n );\n return (\n \n {editing ? (\n \n {inputNode}\n \n ) : (\n children\n )}\n \n );\n};\n\nconst EditableTable = (props) => {\n const [form] = Form.useForm();\n const originData = [];\n\n const [data, setData] = useState(originData);\n\n for (let i = 0; i < props.data.length; i++) {\n originData.push({\n key: i.toString(),\n name: props.data[i].name,\n revenue: props.data[i].revenue.toFixed(2),\n construction_cost: props.data[i].construction_cost.toFixed(2),\n type: props.data[i].type,\n percentage: props.data[i].tip_in_perc.toFixed(2),\n area: props.data[i].area.toFixed(0),\n ownership: props.data[i].ownership,\n floors: props.data[i].floors,\n valuation: props.data[i].valuation,\n mitigation_risk: props.data[i].mitigation_risk,\n climate_score: props.data[i].climatic_score.toFixed(0) + \"%\",\n overall_loss: props.data[i].overall_loss,\n address: `London Park no. ${i}`,\n });\n }\n useEffect(() => {\n if (props.data) {\n setData(originData);\n }\n }, [setData, props.data]);\n\n console.log(\"table data\", props.permission);\n\n const [editingKey, setEditingKey] = useState(\"\");\n const [sortedInfo, setsortedInfo] = useState({});\n console.log(\"info\", sortedInfo);\n\n const isEditing = (record) => record.key === editingKey;\n\n const edit = (record) => {\n form.setFieldsValue({\n name: \"\",\n age: \"\",\n address: \"\",\n ...record,\n });\n setEditingKey(record.key);\n };\n\n const cancel = () => {\n setEditingKey(\"\");\n };\n\n const save = async (key) => {\n try {\n const row = await form.validateFields();\n const newData = [...data];\n const index = newData.findIndex((item) => key === item.key);\n\n if (index > -1) {\n const item = newData[index];\n newData.splice(index, 1, { ...item, ...row });\n setData(newData);\n console.log(\"new\", newData[index]);\n props.update(item, newData[index]);\n setEditingKey(\"\");\n } else {\n newData.push(row);\n setData(newData);\n console.log(\"save ka dusra case\");\n setEditingKey(\"\");\n }\n } catch (errInfo) {\n console.log(\"Validate Failed:\", errInfo);\n }\n };\n\n const columns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n key: \"name\",\n width: \"20%\",\n editable: true,\n },\n {\n title: \"Type\",\n dataIndex: \"type\",\n key: \"type\",\n width: \"15%\",\n editable: props.permission.can_edit_property_type,\n },\n {\n title: \"Area (sqm)\",\n key: \"area\",\n dataIndex: \"area\",\n width: \"10%\",\n editable: props.permission.can_edit_area,\n },\n {\n title: \"Floors\",\n key: \"floors\",\n dataIndex: \"floors\",\n width: \"10%\",\n editable: props.permission.can_edit_stories,\n },\n {\n title: \"Valuation(in US$/sqm)\",\n dataIndex: \"valuation\",\n key: \"valuation\",\n\n sorter: {\n compare: (a, b) => parseFloat(a.valuation) - parseFloat(b.valuation),\n multiple: 3,\n },\n sortOrder: sortedInfo.columnKey === \"valuation\" && sortedInfo.order,\n\n width: \"10%\",\n\n editable: props.permission.can_edit_valuation,\n },\n {\n title: () => {\n return (\n \n Flood Risk Reduction Level{\" \"}\n props.info()} />\n \n );\n },\n key: \"mitigation_risk\",\n dataIndex: \"mitigation_risk\",\n width: \"10%\",\n editable: true,\n /* render: (_, record) => (\n props.open(record.name)}\n >\n Add Details\n \n ),*/\n },\n\n {\n title: \"Climate Score\",\n dataIndex: \"climate_score\",\n key: \"climate_score\",\n\n width: \"10%\",\n sorter: {\n compare: (a, b) =>\n parseFloat(a.climate_score) - parseFloat(b.climate_score),\n multiple: 3,\n },\n sortOrder: sortedInfo.columnKey === \"climate_score\" && sortedInfo.order,\n },\n {\n /* {\n title: \"TIP(in %)\",\n dataIndex: \"percentage\",\n key: \"risk\",\n width: \"10%\",\n editable: false,\n },*/\n },\n {\n title: \"CVaR (mil US$)\",\n key: \"overall_loss\",\n dataIndex: \"overall_loss\",\n sorter: {\n compare: (a, b) => a.overall_loss - b.overall_loss,\n multiple: 3,\n },\n sortOrder: sortedInfo.columnKey === \"overall_loss\" && sortedInfo.order,\n\n width: \"10%\",\n editable: false,\n },\n {\n title: \"Ownership (0-100)\",\n dataIndex: \"ownership\",\n key: \"ownership\",\n width: \"10%\",\n editable: props.permission.can_edit_ownership,\n },\n\n {\n title: \"Revenue (in mil US$/year)\",\n dataIndex: \"revenue\",\n key: \"revenue\",\n\n sorter: {\n compare: (a, b) => a.revenue - b.revenue,\n multiple: 3,\n },\n sortOrder: sortedInfo.columnKey === \"revenue\" && sortedInfo.order,\n\n width: \"10%\",\n editable: props.permission.can_edit_revenue,\n },\n {\n title: \"Replacement Value (in US$/sqm)\",\n key: \"construction_cost\",\n\n dataIndex: \"construction_cost\",\n sorter: {\n compare: (a, b) => a.construction_cost - b.construction_cost,\n multiple: 3,\n },\n sortOrder:\n sortedInfo.columnKey === \"construction_cost\" && sortedInfo.order,\n\n width: \"10%\",\n editable: props.permission.can_edit_construction_cost,\n },\n {\n title: \"Analyse\",\n dataIndex: \"\",\n width: \"10%\",\n render: (_, record) => (\n props.open(record.name)}\n >\n \n \n ),\n },\n {\n title: \"Action\",\n width: \"10%\",\n dataIndex: \"operation\",\n render: (_, record) => {\n const editable = isEditing(record);\n return editable ? (\n \n save(record.key)}\n style={{\n marginRight: 8,\n color: \"black\",\n }}\n >\n Save\n \n \n Cancel\n \n \n ) : (\n edit(record)}\n >\n Edit\n \n );\n },\n },\n ];\n const onChange = (pagination, filters, sorter) => {\n setsortedInfo(sorter);\n console.log(\"sorted\", sortedInfo, sorter);\n };\n const mergedColumns = columns.map((col) => {\n if (!col.editable) {\n return col;\n }\n\n return {\n ...col,\n onCell: (record) => ({\n record,\n inputType:\n col.dataIndex === \"type\"\n ? \"select\"\n : col.dataIndex === \"mitigation_risk\"\n ? \"select_mitigation\"\n : \"text\",\n dataIndex: col.dataIndex,\n title: col.title,\n editing: isEditing(record),\n }),\n };\n });\n return (\n
\n \n \n );\n};\n\nexport default EditableTable;\n","import React, { useState, useEffect } from \"react\";\nimport {\n Table,\n Input,\n InputNumber,\n Popconfirm,\n Form,\n Typography,\n Progress,\n} from \"antd\";\nimport { Icon, Button } from \"semantic-ui-react\";\n\nconst EditableCell = ({\n editing,\n dataIndex,\n title,\n inputType,\n record,\n index,\n children,\n ...restProps\n}) => {\n const inputNode = inputType === \"number\" ? : ;\n return (\n \n {editing ? (\n \n {inputNode}\n \n ) : (\n children\n )}\n \n );\n};\n\nconst EditableClimateTable = (props) => {\n const [form] = Form.useForm();\n const originData = [];\n\n const [data, setData] = useState(originData);\n\n for (let i = 0; i < props.data.length; i++) {\n originData.push({\n key: i.toString(),\n name: props.data[i].name,\n latitude: props.data[i].latitude.toFixed(3),\n longitude: props.data[i].longitude.toFixed(3),\n type: props.data[i].type,\n area: props.data[i].area.toFixed(0),\n floors: props.data[i].floors,\n valuation: props.data[i].valuation,\n climate_score: props.data[i].climatic_score,\n overall_loss: props.data[i].overall_loss,\n address: `London Park no. ${i}`,\n });\n }\n useEffect(() => {\n if (props.table) {\n setData(originData.slice(0, props.table));\n }\n }, [props.table, setData, props.data]);\n\n console.log(\n \"table data\",\n data.sort((a, b) => b.climate_score - a.climate_score)\n );\n const [editingKey, setEditingKey] = useState(\"\");\n\n const isEditing = (record) => record.key === editingKey;\n\n const edit = (record) => {\n form.setFieldsValue({\n name: \"\",\n age: \"\",\n address: \"\",\n ...record,\n });\n setEditingKey(record.key);\n };\n\n const cancel = () => {\n setEditingKey(\"\");\n };\n\n const save = async (key) => {\n try {\n const row = await form.validateFields();\n const newData = [...data];\n const index = newData.findIndex((item) => key === item.key);\n\n if (index > -1) {\n const item = newData[index];\n newData.splice(index, 1, { ...item, ...row });\n setData(newData);\n props.update(item, newData[index]);\n setEditingKey(\"\");\n } else {\n newData.push(row);\n setData(newData);\n console.log(\"save ka dusra case\");\n setEditingKey(\"\");\n }\n } catch (errInfo) {\n console.log(\"Validate Failed:\", errInfo);\n }\n };\n\n const columns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n width: \"25%\",\n editable: true,\n },\n\n {\n title: \"Type\",\n dataIndex: \"type\",\n width: \"10%\",\n editable: false,\n },\n {\n title: \"Area (sqm)\",\n dataIndex: \"area\",\n width: \"10%\",\n editable: true,\n },\n {\n title: \"Floors\",\n dataIndex: \"floors\",\n width: \"10%\",\n editable: true,\n },\n {\n title: \"Valuation (US$/sqm)\",\n dataIndex: \"valuation\",\n width: \"10%\",\n editable: true,\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n },\n {\n title: \"Climate Score\",\n dataIndex: \"climatic_score\",\n width: \"10%\",\n render: (text, record) => ,\n },\n {\n title: \"Overall Loss (US$)\",\n dataIndex: \"overall_loss\",\n width: \"10%\",\n editable: false,\n },\n {\n title: \"Analyse\",\n dataIndex: \"\",\n width: \"10%\",\n render: (_, record) => (\n props.open(record.name)}\n >\n \n \n ),\n },\n {\n title: \"Action\",\n dataIndex: \"operation\",\n render: (_, record) => {\n const editable = isEditing(record);\n return editable ? (\n \n save(record.key)}\n style={{\n marginRight: 8,\n color: \"black\",\n }}\n >\n Save\n \n \n Cancel\n \n \n ) : (\n edit(record)}\n >\n Edit\n \n );\n },\n },\n {\n title: \"Latitude\",\n dataIndex: \"latitude\",\n width: \"25%\",\n editable: true,\n },\n {\n title: \"Longitude\",\n dataIndex: \"longitude\",\n width: \"25%\",\n editable: true,\n },\n ];\n const mergedColumns = columns.map((col) => {\n if (!col.editable) {\n return col;\n }\n\n return {\n ...col,\n onCell: (record) => ({\n record,\n inputType: col.dataIndex === \"age\" ? \"number\" : \"text\",\n dataIndex: col.dataIndex,\n title: col.title,\n editing: isEditing(record),\n }),\n };\n });\n return (\n
\n \n \n );\n};\n\nexport default EditableClimateTable;\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n} from \"recharts\";\nimport { Grid, Modal, Button } from \"semantic-ui-react\";\nimport { Row, Col, Container } from \"react-bootstrap\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryGroup,\n} from \"victory\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nlet data = [];\nlet config = {};\n\nexport default class MdryearDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n console.log(\"key find\", this.props.data);\n this.state.piedata = this.props.data;\n this.state.analysis = this.props.analysis;\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let max = 0;\n\n if (this.state.analysis == \"rcp\" && this.state.piedata[\"rcp_constant\"]) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat((x / 1000).toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat((y / 1000).toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat((z / 1000).toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n xAxis: {\n label: {\n content: \"Year\",\n },\n },\n\n xField: \"Year\",\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.state.analysis === \"ssp\" &&\n this.state.piedata[\"rcp_constant\"][\"2100\"]\n ) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n w = this.state.piedata[\"rcp_constant\"][\"2100\"];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n Key Findings\n \n \n \n Key Findings\n \n \n {this.props.key_find ? (\n

\n {this.state.analysis == \"rcp\" ? (\n \n This indicates the Loss projection for 2030 and 2050\n relative to the historical baseline of 2020 under the\n Business-as-Usual case. For{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.props.rcp} , Climate\n Value at Risk (CVaR) increases{\" \"}\n \n {\" \"}\n {this.props.key_find.increased_by_2030}{\" \"}\n {\" \"}\n times by 2030 and{\" \"}\n \n {this.props.key_find.increased_by_2050}{\" \"}\n {\" \"}\n times by 2050 compared to current losses (2020).\n \n ) : (\n \n This indicates the Loss projection for 2030 , 2050 and 2100\n relative to the historical baseline of 2020 under the\n Business-as-Usual case. For{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.props.ssp} , Climate\n Value at Risk (CVaR) increases{\" \"}\n \n {\" \"}\n {this.props.key_find.increased_by_2030}{\" \"}\n {\" \"}\n times by 2030 and{\" \"}\n \n {this.props.key_find.increased_by_2050}{\" \"}\n {\" \"}\n times by 2050 and{\" \"}\n \n {this.props.key_find.increased_by_2100} times by 2100\n \n compared to current losses (2020).\n \n )}\n

\n ) : null}\n
\n \n
\n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n} from \"recharts\";\nimport { Grid } from \"semantic-ui-react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport { Row, Col } from \"react-bootstrap\";\n\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Modal, Button } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class MdrrcpDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let max = 0;\n\n if (this.state.piedata) {\n x = this.state.piedata[\"year_constant\"][\"2.6\"];\n y = this.state.piedata[\"year_constant\"][`4.5`];\n z = this.state.piedata[\"year_constant\"][`8.5`];\n max = this.state.piedata[\"year_max\"];\n }\n\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n \n \n ) : null}\n \n \n Key Findings\n \n \n \n Key Findings\n \n \n {this.props.key_find ? (\n

\n For the given year {this.props.year}, the projected loss depends\n on the carbon concentration, captured by certain{\" \"}\n {this.props.analysis.toUpperCase()}s. The difference between{\" \"}\n {this.props.analysis.toUpperCase()} 8.5 AND{\" \"}\n {this.props.analysis.toUpperCase()} 2.6 reflects the Value of\n Transition Policies which is US${\"\"}\n \n {\"\"}\n {this.props.key_find.value_of_transition_policies}\n \n  Million by {this.props.year}. This is calculated by\n difference between the {this.props.analysis.toUpperCase()} 8.5\n CVaR of US$\n \n {this.props.key_find.cvar_85.toFixed(2)} Million\n {\" \"}\n and the {this.props.analysis.toUpperCase()} 2.6 CVaR of US$\n \n {this.props.key_find.cvar_26.toFixed(2)} Million.\n {\" \"}\n

\n ) : null}\n
\n \n
\n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n} from \"recharts\";\nimport { Grid, Modal, Button } from \"semantic-ui-react\";\nimport { Row, Col, Container } from \"react-bootstrap\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryGroup,\n} from \"victory\";\nimport { ResponsiveBar } from \"@nivo/bar\";\n\nlet data = [];\nlet config = {};\n\nexport default class SingleMdryearDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n console.log(\"key find\", this.props.data);\n this.state.piedata = this.props.data;\n this.state.analysis = this.props.analysis;\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let max = 0;\n\n if (this.state.analysis == \"rcp\" && this.state.piedata[\"rcp_constant\"]) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat((x / 1000).toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat((y / 1000).toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat((z / 1000).toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n\n xField: \"Year\",\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.state.piedata[\"rcp_constant\"][\"2100\"] &&\n this.state.analysis == \"ssp\"\n ) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n w = this.state.piedata[\"rcp_constant\"][\"2100\"];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"Year\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n
\n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n} from \"recharts\";\nimport { Grid } from \"semantic-ui-react\";\n\nimport { Row, Col } from \"react-bootstrap\";\n\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Modal, Button } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class SingleMdrrcpDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n console.log(\"percentage\", this.props.data);\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let a = 0;\n let b = 0;\n let max = 0;\n\n if (this.state.piedata) {\n x = this.state.piedata[\"year_constant\"][\"2.6\"];\n y = this.state.piedata[\"year_constant\"][`4.5`];\n z = this.state.piedata[\"year_constant\"][`8.5`];\n max = this.state.piedata[\"year_max\"];\n }\n\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in %\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n \n \n ) : null}\n \n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n} from \"semantic-ui-react\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nlet feature = [];\nlet locations = [];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nclass LandslideClusterMap extends Component {\n constructor(props) {\n super(props);\n this.worldmapContainer = React.createRef();\n }\n\n componentDidMount() {\n if (this.worldmapContainer.current && this.props.data) {\n const map = new mapboxgl.Map({\n container: this.worldmapContainer.current,\n /*style: {\n version: 8,\n sources: {\n \"raster-tiles\": {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/typhoon/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n },\n },\n layers: [\n {\n id: \"simple-tiles\",\n type: \"raster\",\n source: \"raster-tiles\",\n minzoom: 0,\n maxzoom: 22,\n },\n ],\n },*/\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [\n this.props.data[0].location.longitude,\n this.props.data[0].location.latitude,\n ],\n\n zoom: 2,\n scrollZoom: true,\n });\n\n feature = [];\n let hazard = this.props.hazard;\n\n let n = this.props.data.length;\n\n for (let i = 0; i < n; i++) {\n locations.push({\n name: this.props.data[i].location.name,\n lat: this.props.data[i].location.latitude,\n long: this.props.data[i].location.longitude,\n total_loss: this.props.data[i].data.total_loss,\n percentage: this.props.data[i].data.percentage,\n top_hazard_string: this.props.data[i].data.top_hazard_string,\n hazard_loss: this.props.data[i].data,\n });\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n this.props.data[i].location.longitude,\n this.props.data[i].location.latitude,\n ],\n },\n properties: {\n locations: locations[i],\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 100 && hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 75 && hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 50 && hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s < 25 && hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s >= 0 && hazard_s < 1) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n console.log(\"stores\", stores);\n\n function addMarkers() {\n /* For each feature in the GeoJSON object above: */\n stores.features.forEach(function(marker) {\n /* Create a div element for the marker. */\n var el = document.createElement(\"div\");\n /* Assign a unique `id` to the marker. */\n el.id = \"worldmarker-\" + marker.properties.id;\n /* Assign the `marker` class to each marker for styling. */\n el.className = \"worldmarker\";\n map.on(\"idle\", () => {\n if (map.getZoom() <= 4) {\n el.style.backgroundColor = \"#00008b\";\n } else {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n }\n });\n\n // el.style.width =\n // marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n //el.style.height =\n //marker.properties.locations.hazard_loss[hazard] / 3 + \"px\";\n\n /**\n * Create a marker using the div element\n * defined above and add it to the map.\n **/\n\n new mapboxgl.Marker(el, { offset: [0, -23] })\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n /**\n * Listen to the element and when it is clicked, do three things:\n * 1. Fly to the point\n * 2. Close all other popups and display popup for clicked store\n * 3. Highlight listing in sidebar (and remove highlight for all other listings)\n **/\n el.addEventListener(\"click\", (e) => {\n /* Fly to the point */\n map.flyTo(marker);\n /* Close all other popups and display popup for clicked store \n createPopUp(marker);\n /* Highlight listing in sidebar */\n });\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n el.addEventListener(\"mouseenter\", (e) => {\n console.log(\"popup\", marker.properties.locations);\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Risk: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n el.addEventListener(\"mouseleave\", (e) => {\n popup.remove();\n });\n });\n }\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n map.addLayer({\n id: \"places\",\n type: \"geojson\",\n source: \"places\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n });\n\n map.addSource(\"raster-tiles\", {\n type: \"raster\",\n tiles: [\n \"https://intensel-tiles.s3.amazonaws.com/hazard/landslide/rcp/85_2050/viridis/{z}/{x}/{y}.png\",\n ],\n scheme: \"tms\",\n tileSize: 256,\n });\n map.addLayer({\n id: \"Landslide\",\n type: \"raster\",\n source: \"raster-tiles\",\n layout: {\n // Make the layer visible by default.\n visibility: \"visible\",\n },\n minzoom: 0,\n maxzoom: 22,\n });\n\n /* map.addSource(\"radar\", {\n type: \"image\",\n url: \"https://intensel-tiles.s3.amazonaws.com/hazard/extreme_heat/rcp/85_2050/plasma/{z}/{x}/{y}.png\",\n coordinates: [\n [-80.425, 46.437],\n [-71.516, 46.437],\n [-71.516, 37.936],\n [-80.425, 37.936],\n ],\n });\n map.addLayer({\n id: \"radar-layer\",\n type: \"raster\",\n source: \"radar\",\n paint: {\n \"raster-fade-duration\": 0,\n },\n });*/\n\n addMarkers();\n });\n map.on(\"idle\", () => {\n /* let mark = document.getElementsByClassName(\"worldmarker\");\n \n\n if (map.getZoom() <=4) {\n for (let i = 0; i < mark.length; i++) {\n mark[i].style.backgroundColor = \"#00008b\";\n }\n }*/\n // If these two layers were not added to the map, abort\n if (!map.getLayer(\"Landslide\")) {\n return;\n }\n\n // Enumerate ids of the layers.\n const toggleableLayerIds = [\"Landslide\"];\n\n // Set up the corresponding toggle button for each layer.\n for (const id of toggleableLayerIds) {\n // Skip layers that already have a button set up.\n if (document.getElementById(id)) {\n continue;\n }\n\n // Create a link.\n const link = document.createElement(\"a\");\n link.id = id;\n link.href = \"#\";\n link.textContent = id;\n link.className = \"active\";\n\n // Show or hide layer when the toggle is clicked.\n link.onclick = function(e) {\n const clickedLayer = this.textContent;\n e.preventDefault();\n e.stopPropagation();\n\n const visibility = map.getLayoutProperty(\n clickedLayer,\n \"visibility\"\n );\n\n // Toggle layer visibility by changing the layout object's visibility property.\n if (visibility === \"visible\") {\n map.setLayoutProperty(clickedLayer, \"visibility\", \"none\");\n this.className = \"\";\n } else {\n this.className = \"active\";\n map.setLayoutProperty(clickedLayer, \"visibility\", \"visible\");\n }\n };\n\n const layers = document.getElementById(\"mapmenu\");\n layers.appendChild(link);\n }\n });\n }\n }\n\n render() {\n return (\n \n \n \n \n\n
\n \n \n \n \n );\n }\n}\nexport default LandslideClusterMap;\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { Marker, Popup, FlyToInterpolator } from \"react-map-gl\";\nimport data from \"../constants/menu\";\nimport { ConsoleSqlOutlined } from \"@ant-design/icons\";\nimport mapboxgl from \"mapbox-gl\"; // This is a dependency of react-map-gl even if you didn't explicitly install it\n\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass =\n // eslint-disable-next-line import/no-webpack-loader-syntax\n require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default;\n\nconst SummaryMap = (props) => {\n let countries = Object.keys(props.data);\n const [viewport, setViewport] = useState({\n width: \"100%\",\n height: 450,\n latitude: props.data[countries[0]][1][0],\n longitude: props.data[countries[0]][1][1],\n zoom: 8,\n });\n\n let feature = [];\n\n let n = Object.keys(props.data).length;\n\n for (let i = 0; i < n; i++) {\n let locations = [];\n for (let j = 0; j < props.data[countries[i]][0].length; j++) {\n locations.push({\n name: props.data[countries[i]][0][j].name,\n loss: props.data[countries[i]][0][j].loss,\n percentage: props.data[countries[i]][0][j].percentage,\n country: props.data[countries[i]][0][j].country,\n lat: props.data[countries[i]][0][j].latitude,\n long: props.data[countries[i]][0][j].longitude,\n });\n }\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n props.data[countries[i]][1][1],\n props.data[countries[i]][1][0],\n ],\n },\n properties: {\n address: countries[i],\n locations: locations,\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n });\n\n const listings = stores.features.map((listing, index) => {\n console.log(\"listing\", listing.properties.address);\n return (\n handlezoom(listing.geometry)}>\n {listing.properties.address}\n \n );\n });\n\n const handlezoom = (geometry) => {\n setViewport({\n ...viewport,\n zoom: 14,\n latitude: geometry.coordinates[1],\n longitude: geometry.coordinates[0],\n transitionDuration: 5000,\n transitionInterpolator: new FlyToInterpolator(),\n });\n };\n\n let html = [];\n for (let i = 0; i < stores.features.length; i++) {\n for (let j = 0; j < stores.features[i].properties.locations.length; j++) {\n html.push(\n \n \n {stores.features[i].properties.locations[j].name.slice(0, 20)}\n \n \n {stores.features[i].properties.locations[j].loss.toFixed(2)} mil $\n \n \n {stores.features[i].properties.locations[j].percentage.toFixed(2)} %\n \n \n );\n }\n }\n\n const markers = stores.features.map((marker, index) => (\n handlezoom(marker.geometry)}\n >\n ));\n\n const popup = stores.features.map((popup, index) => (\n \n
\n
Asset & Loss
\n \n \n \n \n \n \n\n {popup.properties.locations.map((location, index) => (\n \n \n \n \n \n ))}\n
Asset NameLoss%Loss
{location.name.slice(0, 20)}{location.loss.toFixed(2)}{location.percentage.toFixed(2)}%
\n
\n \n ));\n\n return (\n
\n
\n

Countries

\n {listings}\n
\n setViewport(nextViewport)}\n mapboxApiAccessToken=\"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\"\n >\n {markers}\n {popup}\n \n
\n );\n};\nexport default SummaryMap;\n","import React from \"react\";\nimport { Tabs, Tab } from \"react-bootstrap\";\nimport { Icon } from \"semantic-ui-react\";\nimport { Progress } from \"antd\";\n\nconst LossPercentComponent = (props) => {\n console.log(\"Losses 2020\", props.newdata);\n let severity = props.data[\"mitigation\"][\"severity\"];\n\n return (\n \n \n
\n\n {props.data[\"general\"][\"Rainfall Flood Loss\"] ? (\n
\n

\n \n Rainfall Flood Loss{\" \"}\n \n \n {props.data[\"general\"][\"Rainfall Flood Loss\"][2] ? (\n \n {props.data[\"general\"][\"Rainfall Flood Loss\"][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n \n
\n ) : null}\n\n
\n

\n River Flood Loss \n \n {props.data[\"general\"][\"River Flood Loss\"][2] ? (\n \n {props.data[\"general\"][\"River Flood Loss\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n \n
\n\n
\n

\n Storm Surge Loss \n \n {props.data[\"general\"][\"Storm Surge Loss\"][2] ? (\n \n {props.data[\"general\"][\"Storm Surge Loss\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n \n
\n\n
\n

\n Typhoon Loss \n \n {props.data[\"general\"][\"Typhoon Loss\"][2] ? (\n \n {props.data[\"general\"][\"Typhoon Loss\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n \n
\n\n {props.data[\"general\"][\"Temprature/heat loss\"] ? (\n
\n

\n \n Temperature/Heat Loss{\" \"}\n \n \n {props.data[\"general\"][\"Temprature/heat loss\"][2] ? (\n \n {props.data[\"general\"][\"Temprature/heat loss\"][2].toFixed(\n 2\n )}{\" \"}\n %\n \n ) : null}\n \n

\n \n \n
\n ) : null}\n
\n \n
\n
\n

\n Total Loss \n \n {props.data[\"total\"][\"Total Loss\"][2] ? (\n \n {props.data[\"total\"][\"Total Loss\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n \n
\n
\n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n

\n \n Asset Rainfall Flood Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Asset Rainfall Flood Damage\"\n ][2].toFixed(2)}\n %\n \n ) : null}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n \n ) : null}\n\n {props.data[\"detailed\"][\"Asset Rainfall Flood Damage\"] ? (\n \n ) : null}\n
\n
\n

\n \n Asset River Flood Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset River Flood Damage\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Asset River Flood Damage\"\n ][2].toFixed(2)}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n \n Asset Storm Surge Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Storm Surge Damage\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Asset Storm Surge Damage\"\n ][2].toFixed(2)}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n \n Asset Typhoon Damage{\" \"}\n \n \n {props.data[\"detailed\"][\"Asset Typhoon Damage\"][2] ? (\n \n {props.data[\"detailed\"][\"Asset Typhoon Damage\"][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n {props.data[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n

\n \n Operational Rainfall Flood Loss{\" \"}\n \n \n {props.data[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][2] ? (\n \n {props.data[\"detailed\"][\n \"Operational Rainfall Flood Loss\"\n ][2].toFixed(2)}\n %\n \n ) : null}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n \n ) : null}\n\n {props.data[\"detailed\"][\"Operational Rainfall Flood Loss\"] ? (\n \n ) : null}\n
\n
\n

\n \n Operational River Flood Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational River Flood Loss\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Operational River Flood Loss\"\n ][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n \n Operational Storm Surge Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational Storm Surge Loss\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Operational Storm Surge Loss\"\n ][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n \n Operational Typhoon Loss{\" \"}\n \n \n {props.data[\"detailed\"][\"Operational Typhoon Loss\"][2] ? (\n \n {props.data[\"detailed\"][\n \"Operational Typhoon Loss\"\n ][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n
\n {props.data[\"detailed\"][\"Temprature/heat loss\"] ? (\n

\n \n Temperature/Heat Loss\n \n \n {props.data[\"detailed\"][\"Temprature/heat loss\"][2] ? (\n \n {props.data[\"detailed\"][\"Temprature/heat loss\"][2].toFixed(\n 2\n )}{\" \"}\n %\n \n ) : null}\n \n

\n ) : null}\n {props.newdata[\"detailed\"][\"Temprature/heat loss\"] ? (\n \n ) : null}\n\n {props.data[\"detailed\"][\"Temprature/heat loss\"] ? (\n \n ) : null}\n
\n
\n {/* \n
\n\n

\n Total Energy Loss\n \n {props.data.energy[\"total_loss\"][0] < 1000 ? (\n \n ${props.data.energy[\"total_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.energy[\"total_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Solar Production Loss\n \n \n {props.data.energy[\"solar_loss\"][0] < 1000 ? (\n \n ${props.data.energy[\"solar_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.energy[\"solar_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Wind Production Loss\n \n \n {props.data.energy[\"wind_loss\"][0] < 1000 ? (\n \n ${props.data.energy[\"wind_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.energy[\"wind_loss\"][0] / 1000).toFixed(2)} Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Hydro Production Loss\n \n \n {props.data.energy[\"hydro_loss\"][0] < 1000 ? (\n \n ${props.data.energy[\"hydro_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.energy[\"hydro_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n
\n \n
\n

\n \n Total Agriculture Loss\n \n \n {props.data.agriculture[\"total_loss\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"total_loss\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"total_loss\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n\n

\n \n Wheat Production Loss\n \n \n {props.data.agriculture[\"wheat\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"wheat\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"wheat\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Rice Production Loss\n \n \n {props.data.agriculture[\"rice\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"rice\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"rice\"][0] / 1000).toFixed(2)} Billion\n \n )}\n \n

\n \n\n \n

\n \n Maize Production Loss\n \n \n {props.data.agriculture[\"maize\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"maize\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"maize\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Fruit Production Loss\n \n \n {props.data.agriculture[\"fruit\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"fruit\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"fruit\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n

\n \n Vegetable Production Loss\n \n \n {props.data.agriculture[\"vegetable\"][0] < 1000 ? (\n \n ${props.data.agriculture[\"vegetable\"][0].toFixed(2)} Million\n \n ) : (\n \n ${(props.data.agriculture[\"vegetable\"][0] / 1000).toFixed(2)}{\" \"}\n Billion\n \n )}\n \n

\n \n\n \n
*/}\n \n
\n

\n Total Loss\n \n {props.data[\"total\"][\"Total Loss\"][2] ? (\n \n {props.data[\"total\"][\"Total Loss\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n Total Damage\n \n {props.data[\"total\"][\"Total Damage\"][2] ? (\n \n {props.data[\"total\"][\"Total Damage\"][2].toFixed(2)}%\n \n ) : null}\n \n

\n \n\n \n
\n
\n

\n Total Operational\n \n {props.data[\"total\"][\"Total Operational\"][2] ? (\n \n {props.data[\"total\"][\"Total Operational\"][2].toFixed(2)} %\n \n ) : null}\n \n

\n \n\n \n
\n
\n {/* \n
\n

\n \n River Flood {severity} Loss\n \n \n {props.data[\"mitigation\"][`River Flood ${severity} Loss`][2] ? (\n \n {props.data[\"mitigation\"][\n `River Flood ${severity} Loss`\n ][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n {props.data[\"general\"][\"Rainfall Flood Loss\"] ? (\n
\n

\n \n Rainfall Flood {severity} Loss\n \n \n {props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][2] ? (\n \n {props.data[\"mitigation\"][\n `Rainfall Flood ${severity} Loss`\n ][2].toFixed(2)}{\" \"}\n %\n \n ) : null}\n \n

\n \n\n \n
\n ) : null}\n
*/}\n
\n );\n};\n\nexport default LossPercentComponent;\n","import React, { useEffect, useRef } from \"react\";\n/* eslint import/no-webpack-loader-syntax: off */\n\nimport mapboxgl from \"!mapbox-gl\";\nimport { Grid } from \"semantic-ui-react\";\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nconst ClusterMap = ({ data, hazard }) => {\n const worldmapContainer = useRef(null);\n\n useEffect(() => {\n if (worldmapContainer.current && data) {\n const map = new mapboxgl.Map({\n container: worldmapContainer.current,\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [data[0].location.longitude, data[0].location.latitude],\n zoom: 2,\n scrollZoom: true,\n });\n\n const features = data.map((item, i) => ({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [item.location.longitude, item.location.latitude],\n },\n properties: {\n id: i,\n locations: {\n name: item.location.name,\n lat: item.location.latitude,\n long: item.location.longitude,\n total_loss: item.data.total_loss,\n percentage: item.data.percentage,\n top_hazard_string: item.data.top_hazard_string,\n hazard_loss: item.data,\n },\n },\n }));\n\n const stores = {\n type: \"FeatureCollection\",\n features: features,\n };\n\n stores.features.forEach((store) => {\n let hazard_s = store.properties.locations.hazard_loss[hazard];\n if (hazard_s >= 100) {\n store.properties[\"marker-color\"] = \"#a4222b\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s > 76) {\n store.properties[\"marker-color\"] = \"#c92128\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s > 51) {\n store.properties[\"marker-color\"] = \"#ffae3a\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s > 26) {\n store.properties[\"marker-color\"] = \"#fce97f\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s > 1) {\n store.properties[\"marker-color\"] = \"#f9ffb8\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n } else if (hazard_s >= 0) {\n store.properties[\"marker-color\"] = \"#fdffe5\";\n store.properties[\"marker-symbol\"] = \"rocket\";\n store.properties[\"marker-size\"] = \"medium\";\n }\n });\n\n function addMarkers() {\n stores.features.forEach((marker) => {\n const el = document.createElement(\"div\");\n el.id = \"worldmarker-\" + marker.properties.id;\n el.className = \"worldmarker\";\n map.on(\"idle\", () => {\n if (map.getZoom() <= 1) {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n el.style.border = \"2px solid #000000\";\n } else {\n el.style.backgroundColor = marker.properties[\"marker-color\"];\n el.style.border = \"2px solid #000000\";\n }\n });\n\n new mapboxgl.Marker(el)\n .setLngLat(marker.geometry.coordinates)\n .addTo(map);\n\n const popup = new mapboxgl.Popup({\n closeButton: false,\n closeOnClick: false,\n });\n\n el.addEventListener(\"mouseenter\", () => {\n const coordinates = marker.geometry.coordinates;\n const string = marker.properties.locations;\n\n popup\n .setLngLat(coordinates)\n .setHTML(\n `Name: ${string.name.slice(\n 0,\n 25\n )}
Total Loss: $ ${string.total_loss.toFixed(\n 2\n )} Mil
Total Loss(in %): ${string.percentage.toFixed(\n 2\n )}
Top Risk: ${\n string.top_hazard_string\n }
${hazard} Score: ${string.hazard_loss[hazard].toFixed(2)}`\n )\n .addTo(map);\n });\n\n el.addEventListener(\"mouseleave\", () => {\n popup.remove();\n });\n });\n }\n\n map.on(\"load\", () => {\n map.addSource(\"places\", {\n type: \"geojson\",\n data: stores,\n });\n\n map.addLayer({\n id: \"places\",\n type: \"geojson\",\n source: \"places\",\n layout: {\n visibility: \"visible\",\n },\n });\n\n addMarkers();\n });\n }\n }, [data, hazard]);\n\n return (\n \n \n \n
\n \n \n \n \n );\n};\n\nexport default ClusterMap;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Checkbox,\n Accordion,\n Dropdown,\n Card,\n} from \"semantic-ui-react\";\nimport Mitigation from \"../assets/Mitigation.png\";\nimport Spinner from \"./spinner\";\nimport Tier from \"./tier_component\";\nimport LossPercentNewComponent from \"./loss_percent_new_component\";\n\nimport StickyBox from \"react-sticky-box\";\nimport rainfall from \"../assets/rainfall_mt.png\";\nimport flood from \"../assets/flood_mt.png\";\nimport fire from \"../assets/fire_mt.png\";\nimport HeatClusterMap from \"./heat_cluster_map\";\nimport RiverFloodClusterMap from \"./river_cluster_map\";\nimport drought from \"../assets/drought_mt.png\";\nimport storm from \"../assets/storm_mt.png\";\nimport heat from \"../assets/heat_mt.png\";\nimport wind from \"../assets/wind_mt.png\";\nimport { Column } from \"@ant-design/charts\";\n\nimport bgsummary from \"../assets/summary-bg.png\";\nimport divimg from \"../assets/divimg.png\";\nimport concimg from \"../assets/concimg.png\";\nimport MitigationBar from \"./mitigation_bar\";\nimport tr1 from \"../assets/toprow1.png\";\nimport tr2 from \"../assets/toprow2.png\";\nimport tr3 from \"../assets/toprow3.png\";\nimport tr4 from \"../assets/toprow4.png\";\nimport tr5 from \"../assets/toprow5.png\";\nimport TyphoonClusterMap from \"./typhoon_cluster_map\";\nimport DroughtClusterMap from \"./drought_cluster_map\";\n\nimport MapChart from \"./MapChart\";\n\nimport { Tooltip, Progress } from \"antd\";\n\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport index from \"../assets/crisk.png\";\nimport { linearGradientDef } from \"@nivo/core\";\nimport { connect } from \"react-redux\";\n\nimport { project, auth, dashboard, locus, asset } from \"../actions\";\nimport Building from \"./building\";\n\nimport \"./dashboard.css\";\n\nimport {\n Tabs,\n Tab,\n Row,\n Col,\n Container,\n Breadcrumb,\n tooltip,\n ThemeProvider,\n} from \"react-bootstrap\";\n//import Detail from \"./detail\";\nimport Circle from \"react-circle\";\n\nimport RCPDonut from \"./rcpdonut\";\nimport legend from \"../assets/legend_heatmap.png\";\nimport legend_h from \"../assets/legend_heatmap_h.png\";\nimport hazard_h from \"../assets/hazard_heatmap.png\";\n\nimport YEARDonut from \"./yeardonut\";\n\nimport SingleRCPDonut from \"./singlercpdonut\";\nimport SingleYEARDonut from \"./singleyeardonut\";\n\nimport Heatmap from \"./heatmap\";\nimport Classicheatmap from \"./classicheatmap\";\nimport BarComponent from \"./barcomponent\";\nimport Progress_bar from \"./progress_bar\";\nimport Progress_bar_asset from \"./individual_progress_bar\";\nimport LossComponent from \"./losscomponent\";\nimport DemoColumn from \"./year_donut\";\nimport { Table } from \"antd\";\n\nimport Map from \"./map\";\nimport WorldMap from \"./worldmap1\";\nimport RiskMap from \"./riskmap\";\nimport CandleStick from \"./candlestick\";\nimport PopupMap from \"./map1\";\nimport EditableTable from \"./table\";\nimport EditableLossTable from \"./losstable\";\nimport EditableValuationTable from \"./valuationtable\";\nimport EditableClimateTable from \"./climatetable\";\nimport MdryearDonut from \"./mdryeardonut\";\nimport MdrrcpDonut from \"./mdrrcpdonut\";\nimport SingleMdryearDonut from \"./singlemdryeardonut\";\nimport SingleMdrrcpDonut from \"./singlemdrrcpdonut\";\nimport LandslideClusterMap from \"./lanslide_cluster_map\";\nimport SummaryMap from \"./summarymap\";\n\nimport LossPercentComponent from \"./loss_percent_component\";\nimport ClusterMap from \"./cluster_map\";\n\nconst columns = [\n {\n title: \"Priority\",\n dataIndex: \"priority\",\n key: \"priority\",\n },\n {\n title: \"Descritption\",\n dataIndex: \"description\",\n key: \"description\",\n },\n {\n title: \"Action\",\n dataIndex: \"\",\n render: (_, record) => (\n \n Adaptation Solutions\n \n ),\n },\n];\n\nlet data = [];\nlet adaptation_data = [];\n\nlet options = [];\nlet Item = [];\nlet singledata = [];\nlet data01 = [];\nlet flat_data = [];\n\nlet HazardOptions = [\n /* { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n { key: \"Rainfall Flood\", value: \"Rainfall Flood\", text: \"Rainfall Flood\" },\n\n { key: \"Drought\", value: \"Drought\", text: \"Drought\" },\n { key: \"Landslide\", value: \"Landslide\", text: \"Landslide\" },\n { key: \"Storm Surge\", value: \"Storm Surge\", text: \"Storm Surge\" },\n\n { key: \"Extreme heat\", value: \"Extreme Heat\", text: \"Extreme heat\" },\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Snow Fall\", value: \"Snow Fall\", text: \"Snow Fall\" },\n { key: \"Sea Level Rise\", value: \"Sea Level Rise\", text: \"Sea Level Rise\" },\n { key: \"Wild Fire\", value: \"Wild Fire\", text: \"Wild Fire\" },*/\n];\nconst currencyOptions = [\n { key: \"EUR\", value: \"EUR\", text: \"Euro\" },\n { key: \"USD\", value: \"USD\", text: \"US Dollars\" },\n { key: \"HKD\", value: \"HKD\", text: \"HongKong Dollars\" },\n { key: \"GBP\", value: \"GBP\", text: \"Pound\" },\n];\nconst MitigationOptions = [\n { key: \"River Flood\", value: \"river_flood\", text: \"River Flood\" },\n { key: \"Rainfall Flood\", value: \"rainfall_flood\", text: \"Rainfall Flood\" },\n];\nconst MitigationMeasureOptions = [\n { key: \"No\", value: \"no\", text: \"No\" },\n { key: \"Low\", value: \"low\", text: \"Low\" },\n { key: \"Medium\", value: \"medium\", text: \"Medium\" },\n { key: \"High\", value: \"high\", text: \"High\" },\n];\n\nconst ContinentOptions = [];\nconst FinanceOptions = [\n { key: \"financial\", value: true, text: \"Financial\" },\n { key: \"percent\", value: false, text: \"Percentage\" },\n];\nconst ContentOptions = [\n { key: \"add\", value: true, text: \"Add Content\" },\n { key: \"remove\", value: false, text: \"Remove Content\" },\n];\nconst GdpOptions = [\n {\n key: \"Unadjusted Operational Loss\",\n value: false,\n text: \"Unadjusted Operational Loss\",\n },\n {\n key: \"GDP Adjusted Operational Loss\",\n value: true,\n text: \"Operational Loss Adjusted with Long-term Climate Change Impact*\",\n },\n];\nconst AnalysisOptions = [\n { key: \"rcp\", value: \"rcp\", text: \"RCP\" },\n { key: \"ssp\", value: \"ssp\", text: \"SSP\" },\n];\n\nconst RcpOptions = [\n { key: 2.6, value: 2.6, text: \"2.6\" },\n { key: 4.5, value: 4.5, text: \"4.5\" },\n { key: 8.5, value: 8.5, text: \"8.5\" },\n];\nlet VariableOptions = [];\nlet AssetOptions = [];\nconst YearOptions = [\n { key: 2030, value: 2030, text: 2030 },\n { key: 2050, value: 2050, text: 2050 },\n];\nconst YearOptions_ssp = [\n { key: 2025, value: 2025, text: 2025 },\n\n { key: 2030, value: 2030, text: 2030 },\n { key: 2035, value: 2035, text: 2035 },\n { key: 2040, value: 2040, text: 2040 },\n { key: 2045, value: 2045, text: 2045 },\n { key: 2050, value: 2050, text: 2050 },\n { key: 2055, value: 2055, text: 2055 },\n { key: 2060, value: 2060, text: 2060 },\n { key: 2065, value: 2065, text: 2065 },\n { key: 2070, value: 2070, text: 2070 },\n { key: 2075, value: 2075, text: 2075 },\n { key: 2080, value: 2080, text: 2080 },\n { key: 2085, value: 2085, text: 2085 },\n { key: 2090, value: 2090, text: 2090 },\n { key: 2095, value: 2095, text: 2095 },\n { key: 2100, value: 2100, text: 2100 },\n];\nconst basementOptions = [\n { key: \"yes\", value: \"yes\", text: \"yes\" },\n { key: \"no\", value: \"no\", text: \"no\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst constructionOptions = [\n { key: \"wood\", value: \"wood\", text: \"wood\" },\n { key: \"concrete\", value: \"concrete\", text: \"concrete\" },\n { key: \"masonry\", value: \"masonry\", text: \"masonry\" },\n { key: \"xs home\", value: \"xs home\", text: \"xs home\" },\n { key: \"light metal\", value: \"light metal\", text: \"light metal\" },\n { key: \"steel\", value: \"steel\", text: \"steel\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst storiesOptions = [\n { key: 1, value: 1, text: 1 },\n { key: 2, value: 2, text: 2 },\n { key: \"3 or More\", value: \"3 or More\", text: \"3 or More\" },\n { key: \"unknown\", valeu: \"unknown\", text: \"unknown\" },\n];\nconst occupancyOptions = [\n { key: \"res\", value: \"res\", text: \"res\" },\n { key: \"com\", value: \"com\", text: \"com\" },\n { key: \"ind\", value: \"ind\", text: \"ind\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst tableOptions = [\n { key: \"Top 3\", value: 3, text: \"Top 3\" },\n { key: \"Top 5\", value: 5, text: \"Top 5\" },\n { key: \"Top 10\", value: 10, text: \"Top 10\" },\n];\nconst CountOptions = [\n { key: \"Top 3\", value: \"Top 3\", text: \"Top 3\" },\n { key: \"Top 5\", value: \"Top 5\", text: \"Top 5\" },\n { key: \"All\", value: \"All\", text: \"All\" },\n];\nlet ParameterOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"loss\", value: \"loss\", text: \"Overall Loss\" },\n];\nlet mitigationOptions = [\n { key: \"yes\", value: true, text: \"yes\" },\n { key: \"no\", value: false, text: \"no\" },\n];\nconst valuationOptions = [\n {\n key: \"replacement\",\n value: \"technical_insurance_premium\",\n text: \"Percentage over Technical Insurance Premium(Replacement Value)\",\n },\n {\n key: \"valuation\",\n value: \"asset_value\",\n text: \"Percentage over Asset Value\",\n },\n];\nlet PropertyOptions = [];\n\nclass Dashboard extends Component {\n constructor(props) {\n super(props);\n }\n state = {\n activeIndex: 0,\n loading: false,\n lossopen: false,\n heatopen: false,\n mitigation: false,\n articleopen: false,\n percentopen: false,\n edit_permission: \"\",\n project: \"\",\n currency: \"USD\",\n variable: \"River Flood\",\n rcp: 8.5,\n year: 2050,\n analysis: \"rcp\",\n modalOpen: false,\n feedback: \"\",\n asset_table: \"\",\n table: 3,\n risk: \"\",\n mitigation_risk: \"\",\n single_asset: \"\",\n activeItemName: \"\",\n single_asset_overall: \"\",\n singel_asset_chart: \"\",\n single_asset_loss: \"\",\n single_asset_portfolio_exposure: \"\",\n single_asset_portfolio_exposure_historic: \"\",\n adjusted_gdp: false,\n single_asset_progress: \"\",\n single_asset_cone_chart: \"\",\n RcpData: \"\",\n YearData: \"\",\n basement: \"yes\",\n construction: \"wood\",\n stories: \"1\",\n occupancy: \"res\",\n per_sq_m_value: 40000,\n scatter: \"\",\n yearDetail: \"\",\n detailed: false,\n global: false,\n metigation: \"\",\n metigation_measure: \"high\",\n singleYearDetail: \"\",\n portfolio_losses: \"\",\n portfolio_losses_flat: \"\",\n overall: \"\",\n heatmap: \"\",\n losses: \"\",\n data: \"\",\n financial: true,\n mapVariable: \"FL8570\",\n yearDetail_single: \"\",\n assets: [],\n typhoon_map_data: \"\",\n mapAsset: \"\",\n table_condition: false,\n oldname: \"\",\n newname: \"\",\n area: \"\",\n type: \"\",\n valuation: \"\",\n count: \"All\",\n subscription: \"\",\n singlePercentage: \"\",\n parameter: \"loss\",\n Million: true,\n exposure_variable: \"Total\",\n hazard_map_data: \"\",\n hazard_map_data_with_continent: \"\",\n property_type: \"NA\",\n long: \"\",\n mitigation_info: false,\n lat: \"\",\n combined_data: \"\",\n hazard_continent: \"\",\n zoom: 14,\n continent: \"asia\",\n activeIndex: -1,\n mitigation_variable: \"river_flood\",\n percentage: \"\",\n variables: \"\",\n property_types: \"NA\",\n country_loss: \"\",\n countryloss: \"\",\n with_content: false,\n ssp: 8.5,\n defaultbuilding: \"\",\n riskOpen: false,\n worldmap: false,\n risk_2020: \"\",\n losses_2020: \"\",\n filterOpen: false,\n hazard: \"\",\n hazard_map: \"Typhoon\",\n floors: \"\",\n use_valuation: \"asset_value\",\n ownership: \"\",\n construction_cost: \"\",\n revenue: \"\",\n Cvar: false,\n FilterInfo: false,\n key_finding_data: \"\",\n priority: false,\n key_finding_1: false,\n key_finding_2: false,\n key_finding_3: false,\n key_finding_p: false,\n key_finding_t: false,\n card_finding_1: false,\n card_finding_2: false,\n card_finding_3: false,\n card_finding_4: false,\n card_finding_5: false,\n info_table: false,\n single_asset_hazard: \"\",\n single_asset_hazard_2020: \"\",\n portfolio_exposure: \"\",\n portfolio_exposure_historic: \"\",\n };\n\n handleKeyFindings_1 = () => {\n this.setState({\n key_finding_1: true,\n });\n };\n handleKeyFindings_2 = () => {\n this.setState({\n key_finding_2: true,\n });\n };\n handleKeyFindings_3 = () => {\n this.setState({\n key_finding_3: true,\n });\n };\n handleKeyFindings_p = () => {\n this.setState({\n key_finding_p: true,\n });\n };\n handleKeyFindings_t = () => {\n this.setState({\n key_finding_t: true,\n });\n };\n handleCardFindings_1 = () => {\n this.setState({\n card_finding_1: true,\n });\n };\n handleCardFindings_2 = () => {\n this.setState({\n card_finding_2: true,\n });\n };\n handleCardFindings_3 = () => {\n this.setState({\n card_finding_3: true,\n });\n };\n handleCardFindings_4 = () => {\n this.setState({\n card_finding_4: true,\n });\n };\n handleKeyFindings_4 = () => {\n this.setState({\n info_table: true,\n });\n };\n handleCardFindings_5 = () => {\n this.setState({\n card_finding_5: true,\n });\n };\n handleKeyFindings_5 = () => {\n this.setState({\n info_table: true,\n });\n };\n handlepriority = () => {\n this.setState({\n priority: true,\n });\n };\n MitigationInfo = () => {\n this.setState({\n mitigation_info: true,\n });\n };\n\n handleCardClose = () => {\n this.setState({\n card_finding_1: false,\n card_finding_2: false,\n card_finding_3: false,\n card_finding_4: false,\n card_finding_5: false,\n priority: false,\n });\n };\n\n handleKeyClose = () => {\n this.setState({\n key_finding_1: false,\n key_finding_2: false,\n key_finding_3: false,\n key_finding_p: false,\n key_finding_t: false,\n info_table: false,\n });\n };\n FilterInfo = () => {\n this.setState({\n FilterInfo: true,\n });\n };\n FilterInfoClose = () => {\n this.setState({\n FilterInfo: false,\n });\n };\n handleCvar = () => {\n this.setState({\n Cvar: true,\n });\n };\n handleLossOpen = () => {\n this.setState({\n lossopen: true,\n });\n };\n handleArticleOpen = () => {\n this.setState({\n articleopen: true,\n });\n };\n handlePercentOpen = () => {\n this.setState({\n percentopen: true,\n });\n };\n handleHeatOpen = () => {\n this.setState({\n heatopen: true,\n });\n };\n handleRiskOpen = () => {\n this.setState({\n riskOpen: true,\n });\n };\n RiskClose = () => {\n this.setState({\n riskOpen: false,\n });\n };\n handleFilterOpen = () => {\n this.setState({\n filterOpen: true,\n });\n };\n filterClose = () => {\n this.setState({\n filterOpen: false,\n });\n };\n lossClose = () => {\n this.setState({\n lossopen: false,\n });\n };\n percentClose = () => {\n this.setState({\n percentopen: false,\n });\n };\n heatClose = () => {\n this.setState({\n heatopen: false,\n });\n };\n articleClose = () => {\n this.setState({\n articleopen: false,\n });\n };\n CvarClose = () => {\n this.setState({\n Cvar: false,\n });\n };\n MitigationClose = () => {\n this.setState({\n mitigation_info: false,\n });\n };\n\n componentDidMount() {\n this.props.getAssets();\n this.props.getProjectList(\"physical_risk\");\n\n let formdata = new FormData();\n if (\n this.props.location.state !== null &&\n this.props.location.state.project_name.project\n ) {\n formdata.append(\n \"project_name\",\n this.props.location.state.project_name.project\n );\n formdata.append(\n \"project_id\",\n this.props.location.state.project_name.project_id\n );\n formdata.append(\n \"scenario\",\n this.props.location.state.project_name.default_filters.scenario\n );\n formdata.append(\"variable\", this.state.exposure_variable);\n formdata.append(\n \"year\",\n this.props.location.state.project_name.default_filters.year\n );\n formdata.append(\"currency\", this.state.currency);\n formdata.append(\"count\", this.state.count);\n formdata.append(\"percentage_type\", this.state.use_valuation);\n\n formdata.append(\"mitigation\", this.state.mitigation);\n formdata.append(\n \"analysis_type\",\n this.props.location.state.project_name.default_filters.analysis_type\n );\n formdata.append(\"parameter\", this.state.parameter);\n formdata.append(\"with_content\", this.state.with_content);\n formdata.append(\"adjusted_gdp\", this.state.adjusted_gdp);\n formdata.append(\"property_type\", this.state.property_type);\n\n this.setState(\n {\n project: this.props.location.state.project_name.project,\n rcp: this.props.location.state.project_name.default_filters.scenario,\n ssp: this.props.location.state.project_name.default_filters.scenario,\n analysis: this.props.location.state.project_name.default_filters\n .analysis_type,\n year: this.props.location.state.project_name.default_filters.year,\n variables: this.props.location.state.project_name.variables,\n property_types: this.props.location.state.project_name.property_types,\n },\n () => this.props.addDashboard(formdata)\n );\n } else if (\n this.props.location.state !== null &&\n this.props.location.state.project_name\n ) {\n formdata.append(\"project_name\", this.props.location.state.project_name);\n formdata.append(\"project_id\", this.props.location.state.project_id);\n formdata.append(\"scenario\", this.props.location.state.rcp);\n formdata.append(\"percentage_type\", this.state.use_valuation);\n formdata.append(\"currency\", this.state.currency);\n formdata.append(\"variable\", this.state.exposure_variable);\n formdata.append(\"year\", this.props.location.state.year);\n formdata.append(\"mitigation\", this.state.mitigation);\n formdata.append(\"count\", this.state.count);\n formdata.append(\"analysis_type\", this.props.location.state.scenario);\n formdata.append(\"parameter\", this.state.parameter);\n formdata.append(\"adjusted_gdp\", this.state.adjusted_gdp);\n formdata.append(\"with_content\", this.state.with_content);\n formdata.append(\"property_type\", this.state.property_type);\n\n this.setState(\n {\n project: this.props.location.state.project_name,\n variables: this.props.location.state.variables,\n rcp: this.props.location.state.rcp,\n ssp: this.props.location.state.rcp,\n analysis: this.props.location.state.scenario,\n year: this.props.location.state.year,\n property_types: this.props.location.state.property_type,\n },\n () => this.props.addDashboard(formdata)\n );\n } else if (this.props.location.state == null) {\n this.props.history.push({\n pathname: \"/location\",\n });\n }\n\n let formdata1 = new FormData();\n if (\n this.props.location.state !== null &&\n this.props.location.state.project_name.project\n ) {\n formdata1.append(\n \"project\",\n this.props.location.state.project_name.project\n );\n formdata1.append(\"rcp\", this.state.rcp);\n formdata1.append(\"year\", this.state.year);\n formdata1.append(\"count\", this.state.count);\n formdata1.append(\"with_content\", this.state.with_content);\n\n formdata1.append(\"variable\", this.state.exposure_variable);\n\n this.props.getDetailByYear(formdata1);\n } else if (\n this.props.location.state !== null &&\n this.props.location.state.project_name\n ) {\n formdata1.append(\"project\", this.props.location.state.project_name);\n formdata1.append(\"rcp\", this.state.rcp);\n formdata1.append(\"count\", this.state.count);\n formdata1.append(\"with_content\", this.state.with_content);\n\n formdata1.append(\"variable\", this.state.exposure_variable);\n formdata1.append(\"year\", this.state.year);\n\n this.props.getDetailByYear(formdata1);\n } else if (this.props.location.state == null) {\n this.props.history.push({\n pathname: \"/location\",\n });\n }\n\n /*let formdata2 = new FormData();\n if (\n this.props.location.state !== null &&\n this.props.location.state.project_name.project\n ) {\n formdata2.append(\n \"project_name\",\n this.props.location.state.project_name.project\n );\n\n this.props.getSummary(formdata2);\n } else if (\n this.props.location.state !== null &&\n this.props.location.state.project_name\n ) {\n formdata2.append(\"project_name\", this.props.location.state.project_name);\n\n this.props.getSummary(formdata2);\n } else if (this.props.location.state == null) {\n this.props.history.push({\n pathname: \"/location\",\n });\n }*/\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (\n prevProps.feedback !== this.props.feedback &&\n this.state.analysis === \"rcp\"\n ) {\n this.setState(\n {\n subscription: this.props.feedback.tier_permissions,\n feedback: this.props.feedback.overall.overall_bar_chart,\n asset_table: this.props.feedback.overall.asset_table,\n //risk: this.props.feedback.overall.progress_bars,\n risk_2020: this.props.feedback.overall.hazard_values_2020,\n losses: this.props.feedback.overall.loss_bars_data,\n portfolio_exposure: this.props.feedback.overall\n .portfolio_exposure_percentage_loss,\n portfolio_exposure_historic: this.props.feedback.overall\n .portfolio_exposure_percentage_loss_historic,\n edit_permission: this.props.feedback.data_edit_permissions,\n metigation: this.props.feedback.overall.metigation_measures,\n losses_2020: this.props.feedback.overall.loss_bars_data_historic,\n single_asset: this.props.feedback.single_asset,\n hazard: this.props.feedback.overall.hazard_values,\n typhoon_map_data: this.props.feedback.overall.typhoon_map_data,\n overall: this.props.feedback.overall,\n combined_data: this.props.feedback.overall.combined_data,\n heatmap: this.props.feedback.overall.heatmap,\n lat: this.props.feedback.overall.asset_table[0].latitude,\n long: this.props.feedback.overall.asset_table[0].longitude,\n percentage: this.props.feedback.overall.year_chart_data.percentage,\n yearDetail: this.props.feedback.overall.year_chart_data.dollar,\n country_loss: this.props.feedback.overall.country_wise_loss_data,\n hazard_continent: this.props.feedback.overall.hazard_map_continents,\n\n hazard_map_data: this.props.feedback.overall.hazard_map_data,\n hazard_map_data_with_continent: this.props.feedback.overall\n .hazard_map_data_with_continent,\n key_finding_data: this.props.feedback.overall.key_finding_data,\n },\n () => {\n this.setState({ table_condition: true });\n localStorage.setItem(\"with_content\", this.state.with_content);\n }\n );\n }\n if (prevProps.assets !== this.props.assets) {\n console.log(\"user assets\", this.props.assets);\n this.setState({ assets: this.props.assets });\n }\n\n /* if (\n prevProps.detailyear !== this.props.detailyear &&\n this.state.analysis === \"rcp\"\n ) {\n console.log(\"year api update\", this.props.detailyear.values);\n this.setState({\n yearDetail_single: this.props.detailyear.values,\n });\n }*/\n if (\n prevProps.feedback !== this.props.feedback &&\n this.state.analysis === \"ssp\"\n ) {\n this.setState(\n {\n subscription: this.props.feedback.tier_permissions,\n\n feedback: this.props.feedback.overall.overall_bar_chart,\n asset_table: this.props.feedback.overall.asset_table,\n //risk: this.props.feedback.overall.progress_bars,\n risk_2020: this.props.feedback.overall.hazard_values_2020,\n losses: this.props.feedback.overall.loss_bars_data,\n portfolio_exposure: this.props.feedback.overall\n .portfolio_exposure_percentage_loss,\n portfolio_exposure_historic: this.props.feedback.overall\n .portfolio_exposure_percentage_loss_historic,\n\n losses_2020: this.props.feedback.overall.loss_bars_data_historic,\n single_asset: this.props.feedback.single_asset,\n hazard: this.props.feedback.overall.hazard_values,\n combined_data: this.props.feedback.overall.combined_data,\n edit_permission: this.props.feedback.data_edit_permissions,\n overall: this.props.feedback.overall,\n heatmap: this.props.feedback.overall.heatmap,\n lat: this.props.feedback.overall.asset_table[0].latitude,\n long: this.props.feedback.overall.asset_table[0].longitude,\n hazard_continent: this.props.feedback.overall.hazard_map_continents,\n country_loss: this.props.feedback.overall.country_wise_loss_data,\n hazard_map_data: this.props.feedback.overall.hazard_map_data,\n hazard_map_data_with_continent: this.props.feedback.overall\n .hazard_map_data_with_continent,\n key_finding_data: this.props.feedback.overall.key_finding_data,\n percentage: this.props.feedback.overall.year_chart_data.percentage,\n yearDetail: this.props.feedback.overall.year_chart_data.dollar,\n },\n () => {\n this.setState({ table_condition: true });\n }\n );\n }\n }\n\n Edit = (asset, newAsset) => {\n this.setState(\n {\n oldname: asset.name,\n newname: newAsset.name,\n area: newAsset.area,\n valuation: newAsset.valuation,\n type: newAsset.type.toLowerCase(),\n floors: newAsset.floors,\n ownership: newAsset.ownership,\n construction_cost: newAsset.construction_cost,\n revenue: newAsset.revenue,\n mitigation_risk: newAsset.mitigation_risk,\n },\n this.EditAsset\n );\n };\n EditAsset() {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.project);\n formdata.append(\"oldname\", this.state.oldname);\n formdata.append(\"newname\", this.state.newname);\n formdata.append(\"area\", this.state.area);\n formdata.append(\"type\", this.state.type);\n formdata.append(\"valuation\", this.state.valuation);\n formdata.append(\"floors\", this.state.floors);\n formdata.append(\"mitigation_risk\", this.state.mitigation_risk);\n formdata.append(\"ownership\", this.state.ownership);\n formdata.append(\"construction_cost\", this.state.construction_cost);\n formdata.append(\"revenue\", this.state.revenue);\n\n this.setState({ loading: true }, () => this.props.updateAsset(formdata));\n }\n\n handleProject = (e, { value }) => {\n this.setState({ project: value }, () => console.log(this.state.project));\n };\n\n handleRCP = (e, { value }) => {\n this.setState({ rcp: value }, () => console.log(this.state.rcp));\n };\n handleVariable = (e, { value }) => {\n this.setState({ mapVariable: value });\n };\n\n handleYear = (e, { value }) => {\n this.setState({ year: value }, () => console.log(this.state.year));\n };\n handleLogout = () => {\n this.props.logout();\n };\n handleOpen = (asset) => {\n let buildingData = this.state.asset_table.filter(\n (building) => building.name == asset\n );\n\n this.setState(\n {\n modalOpen: true,\n defaultbuilding: buildingData,\n activeItemName: asset,\n },\n this.handleSingleAsset\n );\n };\n\n handleClose = () => this.setState({ modalOpen: false });\n\n handleSingleAsset = () => {\n if (this.state.single_asset.length > 0) {\n Item = this.state.single_asset.filter(\n (asset) => asset.asset_name == this.state.activeItemName\n );\n this.setState({ single_asset_overall: Item }, this.handleSingleChart);\n }\n if (this.state.analysis == \"rcp\") {\n this.setState({\n singleYearDetail: Item[0].year_chart_data.dollar,\n singlePercentage: Item[0].year_chart_data.percentage,\n mapAsset: Item[0],\n });\n }\n if (this.state.analysis == \"ssp\") {\n this.setState({\n singleYearDetail: Item[0].year_chart_data.dollar,\n singlePercentage: Item[0].year_chart_data.percentage,\n mapAsset: Item[0],\n });\n }\n };\n handleSingleChart = () => {\n singledata = [\n {\n name: \"2020\",\n \"RCP2.6\": 0,\n \"RCP4.5\": 0,\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\"2020\"],\n },\n\n {\n name: \"2030\",\n \"RCP2.6\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_26\"\n ],\n \"RCP4.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_45\"\n ],\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_85\"\n ],\n },\n\n {\n name: \"2050\",\n \"RCP2.6\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_26\"\n ],\n \"RCP4.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_45\"\n ],\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_85\"\n ],\n },\n ];\n\n this.setState(\n {\n singel_asset_chart: singledata,\n single_asset_hazard: this.state.single_asset_overall[0].hazard_values,\n single_asset_hazard_2020: this.state.single_asset_overall[0]\n .hazard_values_2020,\n\n single_asset_loss: this.state.single_asset_overall[0].loss_bars_data,\n single_asset_loss_2020: this.state.single_asset_overall[0]\n .loss_bars_data_historic,\n single_asset_portfolio_exposure: this.state.single_asset_overall[0]\n .portfolio_exposure_percentage_loss,\n single_asset_portfolio_exposure_historic: this.state\n .single_asset_overall[0].portfolio_exposure_percentage_loss_historic,\n //single_asset_progress: this.state.single_asset_overall[0].progress_bars,\n //single_asset_progress_2020:\n //this.state.single_asset_overall[0].progress_bars_2020,\n single_asset_cone_chart: this.state.single_asset_overall[0].cone_chart,\n },\n this.handleComparison\n );\n };\n\n handleComparison = () => {\n let RcpData = [\n {\n name: 2.6,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_26[\"OVERALL\"],\n },\n\n {\n name: 2.6,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"River Flood\"],\n },\n {\n name: 2.6,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Drought\"],\n },\n\n {\n name: 2.6,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Storm Surge\"],\n },\n {\n name: 2.6,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Landslide\"],\n },\n\n {\n name: 2.6,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Extreme heat\"],\n },\n {\n name: 2.6,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2.6,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Snow Fall\"],\n },\n {\n name: 2.6,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2.6,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Typhoon\"],\n },\n {\n name: 4.5,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_45[\"OVERALL\"],\n },\n\n {\n name: 4.5,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"River Flood\"],\n },\n {\n name: 4.5,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Drought\"],\n },\n\n {\n name: 4.5,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Storm Surge\"],\n },\n {\n name: 4.5,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Landslide\"],\n },\n\n {\n name: 4.5,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Extreme heat\"],\n },\n {\n name: 4.5,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 4.5,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Snow Fall\"],\n },\n {\n name: 4.5,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 4.5,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Typhoon\"],\n },\n {\n name: 8.5,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_85[\"OVERALL\"],\n },\n\n {\n name: 8.5,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"River Flood\"],\n },\n {\n name: 8.5,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Drought\"],\n },\n\n {\n name: 8.5,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Storm Surge\"],\n },\n {\n name: 8.5,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Landslide\"],\n },\n\n {\n name: 8.5,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Extreme heat\"],\n },\n {\n name: 8.5,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 8.5,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Snow Fall\"],\n },\n {\n name: 8.5,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 8.5,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.year_max;\n\n let RcpConfig = {\n data: RcpData,\n isGroup: true,\n yAxis: {\n max: max + 0.2 * max,\n },\n xField: \"variable\",\n yField: \"index\",\n seriesField: \"name\",\n colorField: \"name\",\n\n legend: false,\n label: {\n position: \"top\",\n },\n color: [\"#2077b4\", \"#FE6702\", \"#4da02d\"],\n };\n if (this.state.analysis == \"rcp\") {\n let yearData = [\n {\n name: 2020,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_20[\"OVERALL\"],\n },\n\n {\n name: 2020,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"River Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Drought\"],\n },\n\n {\n name: 2020,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2020,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Landslide\"],\n },\n\n {\n name: 2020,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2020,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Snow Fall\"],\n },\n {\n name: 2020,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2020,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Typhoon\"],\n },\n {\n name: 2030,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_30[\"OVERALL\"],\n },\n\n {\n name: 2030,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"River Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Drought\"],\n },\n\n {\n name: 2030,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2030,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Landslide\"],\n },\n\n {\n name: 2030,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2030,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Snow Fall\"],\n },\n {\n name: 2030,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2030,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Typhoon\"],\n },\n {\n name: 2050,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_50[\"OVERALL\"],\n },\n\n {\n name: 2050,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"River Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Drought\"],\n },\n\n {\n name: 2050,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2050,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Landslide\"],\n },\n\n {\n name: 2050,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2050,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Snow Fall\"],\n },\n {\n name: 2050,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2050,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.scenario_max;\n\n let yearConfig = {\n data: yearData,\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n yAxis: {\n max: max + 0.2 * max,\n },\n legend: false,\n isGroup: true,\n xField: \"variable\",\n colorField: \"name\",\n\n yField: \"index\",\n seriesField: \"name\",\n\n label: {\n position: \"top\",\n },\n };\n this.setState({ YearData: yearConfig });\n } else if (this.state.analysis == \"ssp\") {\n let yearData = [\n {\n name: 2020,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_20[\"OVERALL\"],\n },\n\n {\n name: 2020,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"River Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Drought\"],\n },\n\n {\n name: 2020,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2020,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Landslide\"],\n },\n\n {\n name: 2020,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2020,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Snow Fall\"],\n },\n {\n name: 2020,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2020,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Typhoon\"],\n },\n {\n name: 2030,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_30[\"OVERALL\"],\n },\n\n {\n name: 2030,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"River Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Drought\"],\n },\n\n {\n name: 2030,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2030,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Landslide\"],\n },\n\n {\n name: 2030,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2030,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Snow Fall\"],\n },\n {\n name: 2030,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2030,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Typhoon\"],\n },\n {\n name: 2050,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_50[\"OVERALL\"],\n },\n\n {\n name: 2050,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"River Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Drought\"],\n },\n\n {\n name: 2050,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2050,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Landslide\"],\n },\n\n {\n name: 2050,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2050,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Snow Fall\"],\n },\n {\n name: 2050,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2050,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Typhoon\"],\n },\n {\n name: 2100,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"OVERALL\"],\n },\n\n {\n name: 2100,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"River Flood\"\n ],\n },\n {\n name: 2100,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Drought\"],\n },\n\n {\n name: 2100,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2100,\n variable: \"Landslide\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Landslide\"],\n },\n\n {\n name: 2100,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2100,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2100,\n variable: \"Snowfall\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Snow Fall\"],\n },\n {\n name: 2100,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2100,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.scenario_max;\n\n let yearConfig = {\n data: yearData,\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n yAxis: {\n max: max + 0.2 * max,\n },\n legend: false,\n isGroup: true,\n xField: \"variable\",\n colorField: \"name\",\n\n yField: \"index\",\n seriesField: \"name\",\n\n label: {\n position: \"top\",\n },\n };\n this.setState({ YearData: yearConfig });\n }\n\n this.setState(\n {\n RcpData: RcpConfig,\n },\n () => console.log(\"yeardata\", this.state.yearData)\n );\n if (this.state.single_asset_hazard.both) {\n let ad_var = [\n \"Rainfall Flood\",\n \"Extreme Heat\",\n \"River Flood\",\n \"Typhoon\",\n \"Storm Surge\",\n \"Landslide\",\n \"Drought\",\n \"Sea Level Rise\",\n \"Snow Fall\",\n \"Wild Fire\",\n ];\n for (ad_var in this.state.single_asset_hazard.both) {\n if (this.state.single_asset_hazard.both[ad_var][2] > 50) {\n let value = this.state.single_asset_hazard.both[ad_var][2];\n\n adaptation_data.push({\n priority: value,\n description: ad_var,\n });\n console.log(\"adapt\", adaptation_data);\n }\n }\n }\n };\n handleChange = (value, key) => {\n this.setState({\n [key]: value,\n });\n };\n handleChangePro = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n () => console.log(\"analysis\", this.state.analysis)\n );\n };\n handleTable = (value, key) => {\n this.setState({\n [key]: value,\n });\n };\n handleExposure = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n this.handleSubmitPro\n );\n };\n handleSingleExposure = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n this.handleSubmitPro\n );\n };\n\n handleFullScreen = () => {\n document.getElementById(\"HeatMap\").requestFullscreen();\n };\n handleLossFullScreen = () => {\n document.getElementById(\"Loss\").requestFullscreen();\n };\n handleIntFullScreen = () => {\n document.getElementById(\"Intensity\").requestFullscreen();\n };\n\n handleClickOpen = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n\n this.setState({ activeIndex: newIndex });\n };\n\n handleSubmitPro = () => {\n if (this.state.analysis == \"rcp\") {\n let formdata = new FormData();\n\n if (this.state.year == 2100) {\n this.state.year = 2050;\n\n formdata.append(\"project_name\", this.state.project);\n formdata.append(\"scenario\", this.state.rcp);\n formdata.append(\"variable\", this.state.exposure_variable);\n formdata.append(\"year\", this.state.year);\n formdata.append(\"currency\", this.state.currency);\n //formdata.append(\"use_valuation\", this.state.use_valuation);\n //formdata.append(\"currency\", this.state.currency);\n formdata.append(\"percentage_type\", this.state.use_valuation);\n formdata.append(\"mitigation\", this.state.mitigation);\n formdata.append(\"count\", this.state.count);\n formdata.append(\"analysis_type\", this.state.analysis);\n formdata.append(\"parameter\", this.state.parameter);\n formdata.append(\"with_content\", this.state.with_content);\n formdata.append(\"adjusted_gdp\", this.state.adjusted_gdp);\n formdata.append(\"property_type\", this.state.property_type);\n } else {\n formdata.append(\"project_name\", this.state.project);\n formdata.append(\"scenario\", this.state.rcp);\n formdata.append(\"variable\", this.state.exposure_variable);\n // formdata.append(\"currency\", this.state.currency);\n formdata.append(\"year\", this.state.year);\n // formdata.append(\"use_valuation\", this.state.use_valuation);\n formdata.append(\"percentage_type\", this.state.use_valuation);\n formdata.append(\"mitigation\", this.state.mitigation);\n formdata.append(\"count\", this.state.count);\n formdata.append(\"analysis_type\", this.state.analysis);\n formdata.append(\"adjusted_gdp\", this.state.adjusted_gdp);\n formdata.append(\"parameter\", this.state.parameter);\n formdata.append(\"with_content\", this.state.with_content);\n formdata.append(\"property_type\", this.state.property_type);\n }\n\n let project = this.props.project.data.filter(\n (project) => project.name == this.state.project\n );\n console.log(\"project_submit\", project[0].variables);\n\n this.props.addDashboard(formdata);\n\n this.setState({\n filterOpen: false,\n Million: true,\n\n variables: project[0].variables,\n });\n } else if (this.state.analysis == \"ssp\") {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.project);\n formdata.append(\"scenario\", this.state.ssp);\n formdata.append(\"percentage_type\", this.state.use_valuation);\n formdata.append(\"variable\", this.state.exposure_variable);\n formdata.append(\"year\", this.state.year);\n formdata.append(\"currency\", this.state.currency);\n formdata.append(\"mitigation\", this.state.mitigation);\n formdata.append(\"count\", this.state.count);\n formdata.append(\"analysis_type\", this.state.analysis);\n formdata.append(\"parameter\", this.state.parameter);\n formdata.append(\"adjusted_gdp\", this.state.adjusted_gdp);\n formdata.append(\"with_content\", this.state.with_content);\n formdata.append(\"property_type\", this.state.property_type);\n this.props.addDashboard(formdata);\n this.setState({\n filterOpen: false,\n });\n }\n };\n\n handleLocal = (e) => {\n this.setState(\n {\n localactive: true,\n globalactive: false,\n },\n this.handleSubmitPro\n );\n };\n\n handleGlobal = (e) => {\n this.setState(\n {\n globalactive: true,\n localactive: false,\n },\n this.handleSubmitPro\n );\n };\n handleFinance = (e) => {\n this.setState({\n financial: !this.state.financial,\n });\n };\n\n handleSsp = (e) => {\n this.setState({\n ssp: !this.state.ssp,\n });\n };\n\n handleWorld = (e) => {\n this.setState((prevState) => ({\n worldmap: !prevState.worldmap,\n }));\n };\n handleDetail = (e) => {\n this.setState((prevState) => ({\n detailed: !prevState.detailed,\n }));\n };\n handleContent = (e) => {\n localStorage.setItem(\"with_content\", !this.state.with_content);\n this.setState({\n with_content: !this.state.with_content,\n });\n };\n handleAsset = (e, { value }) => {\n let selectedAsset = this.state.asset_table.filter(\n (asset) => asset.name == value\n );\n console.log(\"selectedAsset\", selectedAsset[0].latitude);\n this.setState(\n {\n lat: selectedAsset[0].latitude,\n long: selectedAsset[0].longitude,\n },\n () => console.log(\"lat passing\", this.state.lat, this.state.long)\n );\n };\n handleHazard = (e, { value }) => {\n this.setState(\n {\n hazard_map: value,\n },\n () => console.log(\"hazard\", this.state.hazard_map)\n );\n };\n handleMitigation = (e, { value }) => {\n this.setState({\n mitigation_variable: value,\n });\n };\n handleMitigationMeasure = (e, { value }) => {\n this.setState({\n metigation_measure: value,\n });\n };\n\n useValuation = (e) => {\n this.setState(\n { use_valuation: !this.state.use_valuation },\n this.handleSubmitPro\n );\n };\n\n handleContinent = (e, { value }) => {\n console.log(\"Continents\", value);\n this.setState({\n continent: value,\n });\n };\n\n handleClick = (e) => {\n e.preventDefault();\n this.setState((prevState) => ({ active: !prevState.active }));\n };\n\n handleAccClick = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n\n this.setState({ activeIndex: newIndex }, () =>\n console.log(\"active\", this.state.activeIndex)\n );\n };\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n }\n\n render() {\n console.log(\"map data dashboard\", this.state.combined_data);\n let newVar = localStorage.getItem(\"variables\") === this.state.variables;\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n let Var = this.state.variables;\n let Property = this.state.property_types;\n\n if (this.state.hazard_continent) {\n for (let i = 0; i < this.state.hazard_continent.length; i++) {\n ContinentOptions.push({\n key: this.state.hazard_continent[i],\n value: this.state.hazard_continent[i],\n text: this.state.hazard_continent[i],\n });\n }\n }\n console.log(\"subs\", this.state.subscription);\n if (this.state.variables) {\n HazardOptions = [];\n\n for (let i = 0; i < this.state.variables.length; i++) {\n HazardOptions.push({\n key: this.state.variables[i],\n text: this.state.variables[i],\n value: this.state.variables[i],\n });\n }\n }\n\n /* if (this.state.variables.includes(\"Rainfall Flood\")) {\n VariableOptions = [\n { key: \"Total\", value: \"Total\", text: \"Total\" },\n\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Storm\", value: \"Storm Surge\", text: \"Storm Surge\" },\n { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n ];\n VariableOptions.push({\n key: \"Rainfall Flood\",\n value: \"Rainfall Flood\",\n text: \"Rainfall Flood\",\n });\n }\n if (!this.state.variables.includes(\"Rainfall Flood\")) {\n VariableOptions = [\n { key: \"Total\", value: \"Total\", text: \"Total\" },\n\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Storm\", value: \"Storm Surge\", text: \"Storm Surge\" },\n { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n ];\n }\n if (this.state.variables.includes(\"Extreme heat\")) {\n VariableOptions = [\n { key: \"Total\", value: \"Total\", text: \"Total\" },\n\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Storm\", value: \"Storm Surge\", text: \"Storm Surge\" },\n { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n ];\n VariableOptions.push({\n key: \"Extreme Heat\",\n value: \"Extreme heat\",\n text: \"Extreme Heat\",\n });\n }\n if (!this.state.variables.includes(\"Extreme heat\")) {\n VariableOptions = [\n { key: \"Total\", value: \"Total\", text: \"Total\" },\n\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Storm\", value: \"Storm Surge\", text: \"Storm Surge\" },\n { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n ];\n }\n if (\n this.state.variables.includes(\"Extreme heat\") &&\n this.state.variables.includes(\"Rainfall Flood\")\n ) {\n VariableOptions = [\n { key: \"Total\", value: \"Total\", text: \"Total\" },\n\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n { key: \"Storm\", value: \"Storm Surge\", text: \"Storm Surge\" },\n { key: \"River Flood\", value: \"River Flood\", text: \"River Flood\" },\n ];\n VariableOptions.push(\n {\n key: \"Extreme Heat\",\n value: \"Extreme heat\",\n text: \"Extreme Heat\",\n },\n {\n key: \"Rainfall Flood\",\n value: \"Rainfall Flood\",\n text: \"Rainfall Flood\",\n }\n );\n }*/\n\n if (Property != \"NA\") {\n console.log(\"Property value\", this.state.property_types);\n PropertyOptions = [];\n for (let i = 0; i < Property.length; i++) {\n PropertyOptions.push({\n key: Property[i],\n value: Property[i],\n text: Property[i],\n });\n }\n ParameterOptions = [];\n ParameterOptions.push(\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"loss\", value: \"loss\", text: \"Overall Loss\" },\n {\n key: \"revenue\",\n value: \"revenue\",\n text: \"revenue\",\n }\n );\n }\n if (this.state.asset_table) {\n AssetOptions = [];\n for (let i = 0; i < this.state.asset_table.length; i++) {\n AssetOptions.push({\n key: this.state.asset_table[i].name,\n value: this.state.asset_table[i].name,\n text: this.state.asset_table[i].name.slice(0, 10),\n });\n }\n }\n\n const {\n continent,\n value,\n basement,\n construction,\n stories,\n occupancy,\n project,\n rcp,\n year,\n active,\n table,\n count,\n parameter,\n exposure_variable,\n property_type,\n ssp,\n analysis,\n } = this.state;\n\n let total_asset_value = 0;\n\n const { activeIndex } = this.state;\n\n if (this.props.project.data) {\n console.log(\"project\", this.props.project.data);\n const projects = this.props.project.data;\n\n options = [];\n for (let i = 0; i < projects.length; i++) {\n options.push({\n key: projects[i].name,\n value: projects[i].name,\n text: projects[i].name.slice(10),\n });\n }\n }\n\n if (this.props.isLoading) {\n return
;\n }\n\n return (\n
\n \n \n
\n \n \n {this.state.project}\n \n Dashboard\n \n
\n \n
\n {\" \"}\n \n Advanced Filter{\" \"}\n \n
\n
\n \n {/* \n \n \n

\n {\" \"}\n this.useValuation()}\n checked={this.state.use_valuation}\n label=\"Use Valuation\"\n />\n

\n \n
*/}\n\n <>\n
\n\n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.overview_card ? (\n \n \n
\n \n \n \n \n \n \n \n {this.state.overall ? (\n

\n \n Project Name\n
\n
\n
\n\n \n {this.state.project.slice(10)}\n \n

\n ) : null}\n \n
\n \n \n \n \n \n \n \n \n {/**/}\n {this.state.losses ? (\n

\n Date of Analysis\n
\n {this.props.feedback.created_at ? (\n \n {this.props.feedback.created_at.slice(0, 10)}\n \n ) : null}\n

\n ) : null}\n \n
\n \n
\n
\n
\n\n \n \n \n \n \n \n \n

\n Asset Count \n
\n {this.state.asset_table.length}\n

\n \n
\n \n \n \n \n \n \n \n \n {/* */}\n {this.state.overall ? (\n

\n Hazard Count\n
\n {this.state.variables.length}\n

\n ) : null}\n \n
\n \n
\n \n\n \n \n \n {this.state.analysis == \"rcp\" ? (\n \n Physical Climate Risk for RCP \n {this.state.rcp} {this.state.year}\n \n ) : null}\n {this.state.analysis == \"ssp\" ? (\n \n Physical Climate Risk for SSP \n {this.state.ssp} {this.state.year}\n \n ) : null}\n

\n
\n\n \n \n \n {this.state.exposure_variable == \"Total\" &&\n this.state.losses[\"detailed\"] ? (\n \n {\" \"}\n Climate Value at Risk{\" \"}\n \n {this.state.losses[\"total\"][\"Total Loss\"][0] <\n 1000 ? (\n \n $\n {this.state.losses[\"total\"][\n \"Total Loss\"\n ][0].toFixed(2)}\n  Million\n

\n ) : (\n \n $\n {(\n this.state.losses[\"total\"][\"Total Loss\"][0] /\n 1000\n ).toFixed(2)}\n  Billion\n

\n )}{\" \"}\n

\n ) : null}\n
\n
\n \n \n {\" \"}\n Maximum Exposure\n \n
\n {this.state.overall[\"Max_exposure\"] < 1000 ? (\n \n ${this.state.overall[\"Max_exposure\"].toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n $\n {(\n this.state.overall[\"Max_exposure\"] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}{\" \"}\n

\n {this.state.losses[\"detailed\"] &&\n this.state.exposure_variable != \"Total\" &&\n this.state.exposure_variable != \"Extreme heat\" ? (\n \n \n \n {\" \"}\n {this.state.exposure_variable}\n Exposure\n
\n {this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ] < 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ].toFixed(2)}\n Million{\" \"}\n

\n ) : (\n

\n ${\" \"}\n {(\n this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ] / 1000\n ).toFixed(2)}\n Billion{\" \"}\n

\n )}{\" \"}\n

\n\n \n \n {this.state.exposure_variable} Value at Risk\n

\n\n {parseFloat(\n this.state.losses[\"detailed\"][\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state.losses[\"detailed\"][\n `Operational ${this.state.exposure_variable} Loss`\n ]\n ) <\n 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {(\n parseFloat(\n this.state.losses[\"detailed\"][\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state.losses[\"detailed\"][\n `Operational ${this.state.exposure_variable} Loss`\n ]\n )\n ).toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {(\n (parseFloat(\n this.state.losses[\"detailed\"][\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state.losses[\"detailed\"][\n `Operational ${this.state.exposure_variable} Loss`\n ]\n )) /\n 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}\n \n \n
\n ) : null}\n {this.state.losses[\"detailed\"] &&\n this.state.exposure_variable == \"Extreme heat\" ? (\n \n \n \n {this.state.exposure_variable} Exposure\n
\n {this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ] < 1000 ? (\n

\n ${\" \"}\n {this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ].toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {(\n this.state.overall[\n `${this.state.exposure_variable}_exposure`\n ] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}\n

\n\n \n {this.state.exposure_variable} Value at Risk\n {parseFloat(\n this.state.losses[\"detailed\"][\n `Temprature/heat loss`\n ]\n ) < 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {parseFloat(\n this.state.losses[\"detailed\"][\n `Temprature/heat loss`\n ]\n )}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {parseFloat(\n this.state.losses[\"detailed\"][\n `Temprature/heat loss`\n ]\n )}{\" \"}\n Billion\n

\n )}\n

\n \n
\n ) : null}\n
\n
\n \n \n Value of Transition\n \n {this.state.key_finding_data ? (\n \n $\n {this.state.key_finding_data[\n \"value_of_transition_policies\"\n ].toFixed(2)}\n  Million\n

\n ) : null}\n

\n
\n
\n \n Key Findings\n \n \n\n \n \n {this.state.overall.overall_risk ? (\n
\n {\" \"}\n \n {\" \"}\n Climate Score\n \n {\" \"}\n
\n \n {\" \"}\n \n
\n ) : null}\n
\n
\n {/* \n {this.state.overall !== undefined ? (\n
\n Technical Insurance Premium in % at  \n {this.state.overall.tip_in_perc}{\" \"}\n \n
\n ) : null}\n
*/}\n \n
\n \n
\n ) : (\n \n )}\n\n
\n \n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.rcp_year_loss_bars ? (\n \n \n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n Year Loss for {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.analysis == \"rcp\" ? (\n {this.state.rcp}\n ) : (\n {this.state.ssp}\n )}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n {\" \"}\n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n {this.state.analysis.toUpperCase()} Loss for Year{\" \"}\n {this.state.year}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n {\" \"}\n
{\" \"}\n \n ) : (\n \n \n \n )}\n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.portfolio_losses ? (\n \n \n \n {this.state.losses[\"detailed\"] ? (\n
\n {this.state.financial ? (\n <>\n \n {\" \"}\n

\n \n Loss Contribution Analysis\n \n \n Key Findings\n \n

\n
\n \n \n ) : (\n <>\n \n {/*\n \n {\" \"}\n

\n \n Portfolio Exposure related Loss Analysis{\" \"}\n \n \n \n Key Findings\n \n

\n
\n \n */}\n \n \n {\" \"}\n

\n \n Loss Contribution Analysis (% of Maximum\n Exposure)\n \n \n Key Findings\n \n

\n
\n \n \n
\n \n )}\n
\n ) : null}\n \n
\n \n \n \n \n \n \n Baseline Impact at 2020
\n Projected Impact\n \n
\n \n ) : (\n \n \n \n )}\n
\n\n
\n\n \n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.asset_level_risk_map ? (\n \n \n \n

\n \n Asset Level Risk Map\n \n

\n \n\n \n \n \n
\n\n {/* \n \n \n \n\n {this.state.assets.length > 0 ? (\n \n ) : null}\n\n
\n
\n \n {this.state.country_loss &&\n this.state.country_loss.length == undefined ? (\n \n ) : null}\n \n\n \n {this.state.country_loss &&\n this.state.country_loss.length == undefined ? (\n \n ) : null}\n */}\n\n
\n\n {this.state.combined_data &&\n this.state.hazard_map == \"Rainfall Flood\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Extreme Heat\" ? (\n \n ) : null}\n\n {this.state.combined_data &&\n this.state.hazard_map == \"River Flood\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Landslide\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Typhoon\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Drought\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Snow Fall\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Sea Level Rise\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Storm Surge\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Wild Fire\" ? (\n \n ) : null}\n {this.state.combined_data &&\n this.state.hazard_map == \"Extreme Cold\" ? (\n \n ) : null}\n \n ) : (\n \n \n \n )}\n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard\n .climate_variable_intensity ? (\n \n \n

\n \n Climate Variable Intensity\n \n \n Key Findings\n \n

\n
\n\n \n \n
\n {this.state.risk_2020 && this.state.hazard ? (\n \n ) : null}\n \n
\n \n \n \n \n \n \n Baseline Impact at 2020
\n Projected Impact\n \n
\n \n ) : (\n \n \n \n )}\n\n {/* \n\n

Climate Risk Index

\n\n\n\n\n\n \n\n \n\n\n\n\n \n */}\n
\n
\n\n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.climate_heatmap ? (\n \n {/*\n \n */}\n \n \n

\n \n Climate Risk Heat Map{\" \"}\n \n

\n \n \n \n \n \n \n {/**/}\n
\n \n
\n
\n
\n \n \n \n {this.state.heatmap ? (\n \n ) : null}\n \n \n {/* \n \n */}\n \n \n \n ) : (\n \n \n \n )}\n
\n\n \n
\n {this.state.subscription.overall_dashboard &&\n this.state.subscription.overall_dashboard.asset_table ? (\n \n \n \n {\" \"}\n

\n \n Asset Table{\" \"}\n \n \n

\n
\n\n \n \n {/* \n this.handleTable(value, \"table\")\n }\n value={table}\n />*/}\n\n {this.state.table_condition && !this.state.loading ? (\n \n ) : (\n \n )}\n\n {/* \n
{\" \"}\n {this.state.table_condition && (\n \n )}\n
\n \n
{\" \"}\n {this.state.table_condition && (\n \n )}\n
\n \n
\n {this.state.table_condition && (\n \n )}\n
*/}\n \n
\n \n
\n ) : (\n \n )}\n {/* \n \n \n {\" \"}\n

\n \n Flood Mitigation Measures{\" \"}\n \n

\n
\n \n \n \n \n \n \n \n \n \n {this.state.metigation ? (\n \n ) : null}\n \n
*/}\n \n {/* \n \n \n\n \n
\n \n Hover-Over the icons to go through the information on the\n hover wheel\n

\n
\n
\n
\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n {\" \"}\n

Extreme Wind Speeds


Maximum wind\n speed at multiple return periods
\n
\n Fraction of building, contents and inventory\n damaged by extreme wind events
\n
\n Annual average loss to building, contents and\n inventory\n
\n Number of days of business interruption\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Extreme Rainfall

\n
\n Maximum daily precipitation across multiple return\n periods\n {\" \"}\n {\" \"}\n \n

\n\n
\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Wildfire Risk

\n
\n The annual number of wildfires, which ignite and\n grow to detectable size,
\n that are expected in a 1 square km grid cell\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Hail And Thunderstorm Probability

\n
\n Number of days per year where large hail (>2 in\n / 5 cm in diameter) is possible\n
\n
\n Number of days per year where environmental\n conditions are conducive to severe thunderstorm\n formation\n {\" \"}\n {\" \"}\n \n

\n
\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Drought Frequency

\n
\n Months per year where the rolling 3-month or\n 6-month average\n
\n
\n Standardized Precipitation Evapotranspiration\n Index (SPEI) is below -2\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Flood Depth of Water

\n
\n Flood depth of water across multiple return\n periods\n
\n
\n Percentage of the central square flooded across\n multiple return periods\n
\n
\n Fraction of building, contents and inventory\n damaged by flood events\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Extreme Heat

\n
\n Days per year exceeding 35°C, 38°C and the\n historical 99th percentile\n
\n
\n Heating and cooling degree days\n
\n
\n Days exceeding high (32°C) and dangerously high\n (35°C) Wet-Bulb Globe Temperature\n {\" \"}\n {\" \"}\n \n

\n
\n
\n
\n
HAZARDS
\n
\n
\n
\n
\n
*/}\n
\n \n \n Asset Analysis - {this.state.activeItemName}\n \n \n
\n \n \n \n \n
\n \n \n {this.state.single_asset_overall ? (\n \n \n

\n {this.state.analysis == \"rcp\" ? (\n \n Physical Climate Risk for RCP \n {this.state.rcp} {this.state.year}\n \n ) : null}\n {this.state.analysis == \"ssp\" ? (\n \n Physical Climate Risk for SSP \n {this.state.ssp} {this.state.year}\n \n ) : null}\n

\n
\n\n \n \n \n {this.state.exposure_variable == \"Total\" &&\n this.state.single_asset_loss[\"total\"] ? (\n \n {\" \"}\n Climate Value at Risk{\" \"}\n {this.state.single_asset_loss[\"total\"][\n \"Total Loss\"\n ][0] < 1000 ? (\n \n $\n {this.state.single_asset_loss[\n \"total\"\n ][\"Total Loss\"][0].toFixed(2)}\n  Million\n

\n ) : (\n \n $\n {(\n this.state.single_asset_loss[\n \"total\"\n ][\"Total Loss\"][0] / 1000\n ).toFixed(2)}\n  Billion\n

\n )}{\" \"}\n

\n ) : null}\n
\n
\n \n \n {\" \"}\n Maximum Exposure\n
\n {this.state.single_asset_overall[0][\n \"Max_exposure\"\n ] < 1000 ? (\n \n $\n {this.state.single_asset_overall[0][\n \"Max_exposure\"\n ].toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n $\n {(\n this.state.single_asset_overall[0][\n \"Max_exposure\"\n ] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}{\" \"}\n

\n {this.state.single_asset_loss[\n \"Asset River Flood Damage\"\n ] &&\n this.state.exposure_variable != \"Total\" &&\n this.state.exposure_variable !=\n \"Extreme heat\" ? (\n \n \n \n {\" \"}\n {this.state.exposure_variable}\n Exposure\n
\n {this.state.single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ] < 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {this.state.single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ].toFixed(2)}\n Million{\" \"}\n

\n ) : (\n

\n ${\" \"}\n {(\n this.state\n .single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ] / 1000\n ).toFixed(2)}\n Billion{\" \"}\n

\n )}{\" \"}\n

\n\n \n \n {this.state.exposure_variable} Value\n at Risk\n

\n\n {parseFloat(\n this.state.single_asset_loss[\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state.single_asset_loss[\n `Operational ${this.state.exposure_variable} Loss`\n ]\n ) <\n 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {(\n parseFloat(\n this.state.single_asset_loss[\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state.single_asset_loss[\n `Operational ${this.state.exposure_variable} Loss`\n ]\n )\n ).toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {(\n (parseFloat(\n this.state.single_asset_loss[\n `Asset ${this.state.exposure_variable} Damage`\n ]\n ) +\n parseFloat(\n this.state\n .single_asset_loss[\n `Operational ${this.state.exposure_variable} Loss`\n ]\n )) /\n 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}\n \n \n
\n ) : null}\n {this.state.single_asset_loss[\n \"Asset River Flood Damage\"\n ] &&\n this.state.exposure_variable ==\n \"Extreme heat\" ? (\n \n \n \n {this.state.exposure_variable}{\" \"}\n Exposure\n
\n {this.state.single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ] < 1000 ? (\n

\n ${\" \"}\n {this.state.single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ].toFixed(2)}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {(\n this.state\n .single_asset_overall[0][\n `${this.state.exposure_variable}_exposure`\n ] / 1000\n ).toFixed(2)}{\" \"}\n Billion\n

\n )}\n

\n\n \n {this.state.exposure_variable} Value\n at Risk\n {parseFloat(\n this.state.single_asset_loss[\n `Temprature/heat loss`\n ]\n ) < 1000 ? (\n

\n {\" \"}\n ${\" \"}\n {parseFloat(\n this.state.single_asset_loss[\n `Temprature/heat loss`\n ]\n )}{\" \"}\n Million\n

\n ) : (\n

\n ${\" \"}\n {parseFloat(\n this.state.single_asset_loss[\n `Temprature/heat loss`\n ]\n )}{\" \"}\n Billion\n

\n )}\n

\n \n
\n ) : null}\n
\n
\n\n \n \n Value of Transition\n {this.state.single_asset_overall ? (\n \n ${\" \"}\n {this.state.single_asset_overall[0][\n \"value_of_transition\"\n ].toFixed(2)}\n   Million\n

\n ) : null}\n

\n
\n \n \n \n {this.state.single_asset_overall[0]\n .per_10_years_rise ? (\n \n {\" \"}\n \n {\" \"}\n Climate Score\n {\" \"}\n
\n \n {\" \"}\n \n
\n ) : null}\n \n
\n {/* \n {this.state.single_asset_overall[0] !==\n undefined ? (\n \n Technical Insurance Premium in % at  \n {\n this.state.single_asset_overall[0]\n .tip_in_perc\n }\n \n ) : null}\n */}\n \n \n \n ) : null}\n\n {this.state.singleYearDetail ? (\n \n \n

\n {\" \"}\n \n {\" \"}\n Year Loss for{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.analysis == \"rcp\" ? (\n {this.state.rcp}\n ) : (\n {this.state.ssp}\n )}{\" \"}\n \n

\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n

\n {\" \"}\n \n {\" \"}\n {this.state.analysis.toUpperCase()} Loss for\n Year {this.state.year}{\" \"}\n \n

\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n \n \n \n {/* \n \n

\n \n Climate Score Table\n \n

\n
\n {this.state.single_asset_overall[0] ? (\n \n ) : null}\n */}\n\n \n \n \n

\n \n Asset Map Location\n \n

\n
\n {this.state.mapAsset ? (\n \n ) : null}\n
\n
\n {/* \n {this.state.single_asset_hazard &&\n this.state.single_asset_hazard_2020 ? (\n \n ) : null}\n */}\n \n\n \n \n {\" \"}\n

\n \n Climate Variable Intensity\n \n

\n
\n\n
\n \n \n {this.state.single_asset_hazard &&\n this.state.single_asset_hazard_2020 ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n Baseline Impact at 2020
\n Projected Impact\n \n
\n
\n \n\n {this.state.single_asset_loss[\"detailed\"] ? (\n \n \n \n {this.state.losses[\"detailed\"] ? (\n
\n {this.state.financial ? (\n <>\n \n {\" \"}\n

\n \n Loss Contribution Analysis\n \n

\n
\n \n \n ) : (\n <>\n \n {/* \n \n {\" \"}\n

\n \n Portfolio Exposure related\n Loss Analysis{\" \"}\n {/* \n \n

\n
\n \n */}\n \n \n {\" \"}\n

\n \n Loss Contribution Analysis (%\n of Maximum Exposure)\n \n

\n
\n \n \n
\n \n )}\n
\n ) : null}\n \n
\n \n \n \n \n \n \n Baseline Impact at 2020
\n Projected Impact\n \n
\n \n ) : null}\n
\n \n \n \n
\n \n \n \n \n

\n \n {this.state.analysis.toUpperCase()} 2.6 vs{\" \"}\n {this.state.analysis.toUpperCase()} 4.5 vs{\" \"}\n {this.state.analysis.toUpperCase()} 8.5 for Year\n 2050\n \n

\n
\n {this.state.RcpData && this.state.RcpData.data ? (\n \n ) : null}\n {/* */}\n \n\n \n \n {\" \"}\n {this.state.analysis == \"rcp\" ? (\n

\n \n Year 2020 vs Year 2030 vs Year 2050 for{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.rcp}\n \n

\n ) : (\n

\n \n Year 2020 vs Year 2030 vs Year 2050 vs Year\n 2100 for {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.ssp}\n \n

\n )}\n
\n {/* {\" \"}*/}\n {this.state.YearData && this.state.YearData.data ? (\n \n ) : null}\n \n \n
\n
\n
\n {/* \n
\n \n
*/}\n \n \n \n \n \n \n Flood Risk Reduction Level\n \n
\n

\n \n Please select appropriate flood risk reduction level from High\n to Low on the pull-down manual by referring to the below\n guidance.{\" \"}\n \n
\n This function is to account for the flood risk reduction\n capacity of three flood mitigation measures that are near the\n asset and connect to the main flood control / stormwater\n management system of the area: a) manhole, b) catchpit, and c)\n underground flood tunnel. These mitigation measures are\n effective to reduce rainfall and river flooding, and they\n include any existing or to-be-built measures. It does not apply\n to storm surge flooding, as when there is a rise in sea level on\n the coastal side, the floodwater is very likely to block most\n nearby outlets of the stormwater management system.\n
\n
The level of flood risk reduction depends on below two\n key factors and assumption:
\n 1. Distance between any mitigation measure and the asset. To\n have a risk reduction impact, the closer the mitigation measure\n to the asset, the greater level of risk reduction. Any\n mitigation measure that is more than 20 meters far from the\n asset is assumed to have no risk reduction effect.\n
2. The number of available mitigation measures. The more\n the number of mitigation measures, the greater level of risk\n reduction. It can be in any combination of item a, b, and c as\n listed above, e.g., asset with two nearby manholes plus one\n nearby underground flood tunnel is counted as a total of 3\n measures for that asset.\n

\n A. High level of flood risk reduction – Either:\n
i. Having at least three measures in place near\n the asset. Two measures both are at least within a distance of ≤\n 10 meters, plus the remaining measure is at least within 15-20\n meters; or
\n ii. Having at least three measures in place near the\n asset. Two measures both are at least within a distance of 10-15\n meters, plus the remaining measure is at least within ≤ 10\n meters.\n

\n B. Median level of flood risk reduction – Either:\n
i. Having at least three measures in place. Two\n measure both are at least within 15-20 meters, plus the\n remaining measure is at least within 10-15 meters; or\n
ii. Having at least two measures in place near the\n asset. One measure is at least within ≤ 10 meters, plus another\n one is at least within 15-20 meters; or\n
iii. Having at least two measures in place near\n the asset, and two measures both are at least within 10-15\n meters.\n
\n
\n C. Low level of flood risk reduction – Either:
\n i. Having at least two measures in place, and these two\n measures both are at least within 15-20 meters; or
\n ii. Having at least one measure in place, and this\n measure is at least within a distance of ≤ 10 meters.\n
\n
Example: An asset has nearby two flood mitigation\n measures (no matter what combination of a) manhole, b) catchpit\n or c) underground flood tunnel). One measure (e.g., manhole) is\n within 10-15 meters and another measure (e.g., catchpit or\n another manhole) is at 15-20 meters far from the asset. Both\n measures are connected to the city-level stormwater management\n system. In this example, as it can’t fulfill the requirement of\n the median level of flood risk reduction of points B) ii and B)\n iii above, it falls into the category of low level of flood risk\n reduction.\n

\n
\n
\n \n \n Climate Value at Risk\n \n

\n Climate value at risk (CVaR) is a measure for estimating the\n maximum amount of loss over a one year period due to co-occurring\n extreme events. CVaR can be thought of as a potential loss due to\n the exposure of an asset, displayed as a $ value or a percentage\n (%).\n

\n
\n
\n \n Advance Filter\n \n

\n Make use of the “Advance Filter” to view detailed analysis results\n of the same project under different variables (e.g., scenario and\n year), toggle to view the Climate Value at Risk in $ loss or as a\n percentage (%).\n
\n Simply select the desired variable/criteria, and press “Apply\n Filter”.\n

\n
\n \n \n \n \n \n

\n \n Climate Variable Intensity\n \n

\n
\n \n \n \n
\n\n {this.state.hazard && this.state.risk_2020 ? (\n \n ) : null}\n \n
\n
\n \n \n \n \n {\" \"}\n

\n \n Portfolio Losses\n \n

\n
\n\n {this.state.losses[\"detailed\"] ? (\n
\n {\" \"}\n {this.state.financial ? (\n \n ) : (\n \n )}\n
\n ) : null}\n \n
\n \n \n \n \n \n

\n \n Climate Risk Heat Map (0 to 100){\" \"}\n \n

\n
\n \n \n {this.state.heatmap ? (\n \n ) : null}\n \n \n \n
\n
\n \n Climate Risk Index\n \n \n \n \n \n \n

Advanced Filter Options

\n

Filtering your data for more insight

\n
\n \n \n \n

Projects

\n \n this.handleChangePro(value, \"project\")\n }\n value={project}\n options={options}\n disabled={this.state.detailed}\n />\n \n\n \n

Analysis Type

\n \n this.handleChangePro(value, \"analysis\")\n }\n value={analysis}\n options={AnalysisOptions}\n />\n \n\n \n {this.state.analysis == \"rcp\" ? (\n <>\n {\" \"}\n

RCP

\n \n this.handleChangePro(value, \"rcp\")\n }\n value={rcp}\n options={RcpOptions}\n disabled={this.state.detailed}\n />\n \n ) : (\n <>\n

SSP

\n \n this.handleChangePro(value, \"ssp\")\n }\n value={ssp}\n options={RcpOptions}\n />\n \n )}\n \n
\n \n {/* \n

Count

\n \n this.handleChangePro(value, \"count\")\n }\n value={count}\n options={CountOptions}\n disabled={this.state.detailed}\n />\n */}\n\n \n

Scenario Type

\n\n \n this.handleChangePro(value, \"financial\")\n }\n value={this.state.financial}\n options={FinanceOptions}\n />\n \n\n \n

Year

\n {this.state.analysis == \"rcp\" ? (\n \n this.handleChangePro(value, \"year\")\n }\n value={year}\n options={YearOptions}\n disabled={this.state.detailed}\n />\n ) : (\n \n this.handleChangePro(value, \"year\")\n }\n value={year}\n options={YearOptions_ssp}\n disabled={this.state.detailed}\n />\n )}\n \n\n \n

Content Type

\n \n this.handleChangePro(value, \"with_content\")\n }\n value={this.state.with_content}\n options={ContentOptions}\n />\n \n
\n \n \n

\n Account for Long-term Impact of Climate Change on Economic\n Growth\n

\n \n this.handleChangePro(value, \"adjusted_gdp\")\n }\n value={this.state.adjusted_gdp}\n options={GdpOptions}\n />\n \n\n \n

Mitigation

\n \n this.handleChangePro(value, \"mitigation\")\n }\n value={this.state.mitigation}\n options={mitigationOptions}\n />\n \n {/* \n

Select Currency

\n \n this.handleChangePro(value, \"currency\")\n }\n />\n */}\n {/* \n

CVaR in Percentage

\n \n this.handleChangePro(value, \"use_valuation\")\n }\n value={this.state.use_valuation}\n options={valuationOptions}\n />\n */}\n

\n Note for *: For the outputs under “Operational Loss Adjusted\n with Long-term Climate Change Impact”, in addition to the\n operational loss due to acute hazards, it includes loss\n associated with the impact from long-term climate change\n (chronic hazards related e.g., raising temperatures on labour\n productivity, long-term sea level rise causing erosion on\n coastline, etc).\n

\n
\n
\n\n
\n {/* \n {Property != \"NA\" ? (\n \n

Property Type

\n \n this.handleChangePro(value, \"property_type\")\n }\n value={property_type}\n options={PropertyOptions}\n />\n \n ) : null}\n
*/}\n \n Apply Filter\n \n
\n
\n \n \n \n Maximum Exposure\n \n \n

\n Maximum exposure refers to the sum of accumulated asset values\n (physical exposure) of all assets plus the accumulated annual\n operational revenue (operational exposure) of all assets that are\n exposed to climate hazards. Any asset that is not exposed to any\n physical damage, its asset value and operational revenue would not\n be included under max exposure.\n

\n
\n \n \n \n Adaptation Toolkits\n \n \n

\n
\n

    \n
  1. \n Adaptation Toolkits: Provide a guidance for overall\n understanding of key concept in relation to adaptation and\n resilience action, adaptation planning process, as well as\n categories and example in general.\n
  2. \n
\n

\n
\n \n \n \n Value of Transition Policies\n \n \n

\n reflects the cost-saving benefits from the reduced physical\n climate risk that will occur if appropriate steps are taken now to\n implement climate action and policies toward a net-zero emissions\n target. It is the difference in the portfolio Climate\n Value-at-Risk between that of a high emissions scenario (RCP\n 8.5/SSP 5-8.5) and the net-zero emissions scenario (RCP 2.6/SSP\n 1-2.6) for a specified time horizon.\n

\n
\n \n \n \n Climate Value at Risk\n \n \n

\n reflects the maximum amount of loss expected to be incurred over a\n one-year period (for all climate hazards that affect the asset).\n

\n
\n \n \n \n Climate Score\n \n \n

\n reflects the equally weighted average of climate hazard severity\n across all hazards and all assets analyzed within a portfolio.\n

\n
\n \n \n \n Key Findings\n \n \n {this.state.key_finding_data ? (\n

\n For {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.analysis == \"rcp\" ? (\n {this.state.rcp}\n ) : (\n {this.state.ssp}\n )}\n , Climate Value at Risk of{\" \"}\n {this.state.key_finding_data.cvar_85_perc.toFixed(2)}% means\n that by {this.state.year} in any given one year{\" \"}\n {this.state.year == \"2100\" ? (\n \n ({this.state.year - 19}-{this.state.year})\n \n ) : (\n \n ({this.state.year - 9}-{this.state.year + 10})\n \n )}\n , we expect there to be a 1% chance that{\" \"}\n {this.state.key_finding_data.cvar_85_perc.toFixed(2)}% of the\n US${this.state.overall[\"Max_exposure\"].toFixed(2)} Million\n results in a maximum loss of US${\"\"}\n {this.state.losses[\"total\"][\"Total Loss\"][0].toFixed(2)}{\" \"}\n Million.\n

\n ) : null}\n
\n \n \n \n Portfolio Exposure related Loss Analysis\n \n \n
    \n
  • \n Total CVaR in % = Total CVaR / Portfolio Exposure (i.e. Total\n asset value + total annual revenue income of ALL assets in the\n portfolio disregard if any asset is not exposed to any hazard\n damage.)\n
  • \n
  • \n Damage CVaR in % = Total Physical damage loss / total asset\n value for ALL assets in the portfolio\n
  • \n
  • \n Operational CVaR in % = Total operational loss / total annual\n revenue income for ALL assets in the portfolio\n
  • \n
\n
\n \n \n \n Technical Insurance Premium\n \n \n

\n Technical Insurance Premium (TIP) is the annual expected cost of\n damage assuming all hazards are insured, which is equal to the\n physical loss of the asset, using the replacement cost as the\n basis. TIP in % is the TIP as a percentage of the replacement cost\n of the asset.\n

\n
\n \n \n \n Key Findings\n \n \n {this.state.hazard ? (\n

\n For the assets analyzed, the portfolio is exposed to chronic &\n acute climate events to the extent identified below. The red bar\n above each hazard indicates the severity of that hazard for the\n year 2020 (historical), and the blue bar indicates the severity\n of that hazard by the year under consideration (e.g., by the\n year{\" \"}\n {this.state.analysis == \"rcp\" ? (\n 2030 / 2050\n ) : (\n 2030/2050/2100\n )}\n ). Users can compare the length of the red bar with the blue bar\n to get a sense of how the risk severity for each hazard changes\n across years.\n
\n
\n {this.state.hazard.both[\"Typhoon\"] ? (\n

\n \n Typhoon : {this.state.hazard.both[\"Typhoon\"][0]}\n {this.state.hazard.both[\"Typhoon\"][1]}\n {\" \"}\n   Typhoons bring intense wind gusts and rainfall that\n may result in physical damage to assets, power outages and\n business interruption. Typhoon risk models estimate the\n spatial extent and wind speed intensity of a typhoon from\n historic tropical cyclone track, temperature and wind speed\n data.\n

\n ) : null}\n
\n {this.state.hazard.both[\"Rainfall Flood\"] ? (\n

\n \n Rainfall Flood :{\" \"}\n {this.state.hazard.both[\"Rainfall Flood\"][0]}\n {this.state.hazard.both[\"Rainfall Flood\"][1]}\n {\" \"}\n   Rainfall flood refers to inundation resulting from\n rainfall, elevation and climate change. Flood hazard\n severity is derived from flood models, river bathymetry,\n maximum rainfall in a 24-hour period, and extreme rainfall\n events.​Intense precipitation may bring rainfall floods or\n storm surges that result in physical damages to assets or\n temporary facility closures.\n

\n ) : null}\n
\n {this.state.hazard.both[\"River Flood\"] ? (\n

\n \n River Flood : {this.state.hazard.both[\"River Flood\"][0]}\n {this.state.hazard.both[\"River Flood\"][1]}{\" \"}\n {\" \"}\n   River flood refers to inundation as a result of\n overflows from a river channel. This may result in physical\n damage to assets and business interruption. Flood hazard\n information is obtained from in-house hydrology and\n hydraulic models.​ \n

\n ) : null}\n
\n {this.state.hazard.both[\"Extreme heat\"] ? (\n

\n {\" \"}\n \n Extreme Heat : {this.state.hazard.both[\"Extreme heat\"][0]}\n {this.state.hazard.both[\"Extreme heat\"][1]}\n {\" \"}\n   Extreme Heat is experienced when humidity and\n temperature are high for prolonged period. Extreme heat\n values reflected are maximum values derived from the impacts\n of climate change on temperature and relative humidity.\n Prolonged extreme heat conditions may lead to undesirable\n effects on health and well-being, productivity losses and\n increased energy consumption.\n

\n ) : null}\n
\n {this.state.hazard.both[\"Sea Level Rise\"] ? (\n

\n {\" \"}\n \n Sea Level Rise :{\" \"}\n {this.state.hazard.both[\"Sea Level Rise\"][0]}\n {this.state.hazard.both[\"Sea Level Rise\"][1]}{\" \"}\n {\" \"}\n  Sea Level Rise refers to inundation estimated from\n shoreline and elevation models. It considers mean sea level\n projections, the affected catchment area near shorelines,\n elevation models and forecasting analysis based on the\n representative scenarios from Global Circulation\n Models.​ Sea level rise as a chronic hazard may result in\n inundation of areas or road networks surrounding an asset\n over a long time horizon.\n

\n ) : null}\n
\n {this.state.hazard.both[\"Storm Surge\"] ? (\n

\n {\" \"}\n \n Storm Surge : {this.state.hazard.both[\"Storm Surge\"][0]}\n {this.state.hazard.both[\"Storm Surge\"][1]}\n {\" \"}\n   Storm surge refers to the extreme rise in sea level\n due to typhoons, typhoon tracks, elevations, and climate\n change. This may result in physical damage to assets and\n business interruption. Storm surge hazard inundation depths\n are derived from hydrodynamic models. \n

\n ) : null}\n
\n {this.state.hazard.both[\"Snow Fall\"] ? (\n

\n {\" \"}\n \n Snowfall : {this.state.hazard.both[\"Snow Fall\"][0]}\n {this.state.hazard.both[\"Snow Fall\"][1]}{\" \"}\n {\" \"}\n   Precipitation in the form of snow it is derived from\n CMIP6 GCM models. it is expressed in units of kg m⁻² s⁻¹,\n which is equivalent to mm/s (assuming a water density of\n 1000 kg/m³). To analyze snowfall over time, daily snowfall\n data is aggregated to calculate the annual cumulative\n snowfall, represented in mm/yr. The data is further\n processed to compute aggregated means for specific CMIP6\n timelines, such as 2030, 2050, and 2100. This dataset is\n particularly valuable for studying hydrological impacts of\n climate change and assessing avalanche risks in mountainous\n regions with extreme snowfall\n

\n ) : null}\n
\n {this.state.hazard.both[\"Landslide\"] ? (\n

\n {\" \"}\n \n Landslide : {this.state.hazard.both[\"Landslide\"][0]}\n {this.state.hazard.both[\"Landslide\"][1]}{\" \"}\n {\" \"}\n   A landslide is a movement of a mass of rock, debris,\n or earth down a slope. The hazard is calculated as a\n frequency or annual probability of landslide. \n

\n ) : null}\n
\n {this.state.hazard.both[\"Drought\"] ? (\n

\n {\" \"}\n \n Drought : {this.state.hazard.both[\"Drought\"][0]}\n {this.state.hazard.both[\"Drought\"][1]}\n {\" \"}\n
\n Drought is a prolonged absence or marked deficiency of\n precipitation or dry weather which results in water shortage\n or a hydrological imbalance. Drought scores are derived from\n the Standard Precipitation Index.\n
A negative number indicates a drought, meaning it is\n drier. A positive number indicates wetter conditions.\n

\n ) : null}\n
\n

\n Note :: Above hazard values are averages across all assets\n within the portfolio\n

\n

\n ) : null}\n
\n \n \n \n Key Findings\n \n \n

\n Users can compare the length of the red bar with the blue bar to\n visualize changes in the Climate Value-at-Risk (financial loss in\n dollar or % value) across dimensions.\n

\n
\n \n \n \n Asset Table\n \n \n

\n Users can use the “Edit” function for each asset under the\n “Action” column to update different variables, including asset\n name, property type, area (single floor construction area in\n square meter), floors (total no. of floors), value (asset\n valuation per square meter), etc. So as long as the user is within\n its subscription period, the analysis results can be updated with\n more accurate internal information when this information is\n available later. However, the location information (latitude and\n longitude) can not be updated once the project is created. Simply\n amend the content of the variables and click “Save”, the analysis\n results will update accordingly.\n

\n
\n \n
\n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n project: state.project.list,\n feedback: state.feedback.feedback,\n building: state.feedback.building,\n detailyear: state.feedback.detailyear,\n isLoading: state.feedback.isLoading,\n assets: state.asset.asset,\n summary: state.feedback.summary,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n addDashboard: (formdata) => {\n dispatch(dashboard.postDashboard(formdata));\n },\n getProjectList: (physical_risk) => {\n dispatch(project.getProjectList(physical_risk));\n },\n logout: () => {\n dispatch(auth.logout());\n },\n getDetailByYear: (formdata) => {\n dispatch(dashboard.getDetailByYear(formdata));\n },\n getAssets: () => {\n dispatch(asset.getAssets());\n },\n updateAsset: (formdata) => {\n dispatch(asset.updateAsset(formdata));\n },\n getSummary: (formdata) => {\n dispatch(dashboard.getSummary(formdata));\n },\n sspDashboard: (formdata) => {\n dispatch(dashboard.sspDashboard(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Dashboard);\n","import React, { useRef, useEffect, useState } from \"react\";\nimport mapboxgl from \"mapbox-gl\";\nimport \"./Map.css\";\nlet cord = [];\nlet color = [\"#F2F12D\", \"#EED322\", \"#E6B71E\", \"#DA9C20\", \"#CA8323\", \"#B86B25\"];\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\n/*class Map extends React.PureComponent \n constructor(props) {\n super(props);\n this.state = {\n lng: 111.181713464683471,\n lat: 22.27932901447338,\n zoom: 3,\n line: this.props.data\n };\n this.mapContainer = React.createRef();\n }*/\nconst Map = (props) => {\n const mapContainer = useRef();\n const [lng, setLng] = useState(111.18);\n const [lat, setLat] = useState(22.27);\n const [zoom, setZoom] = useState(3);\n\n useEffect(() => {\n const map = new mapboxgl.Map({\n container: mapContainer.current,\n style: \"mapbox://styles/mapbox/dark-v10\",\n center: [lng, lat],\n zoom: zoom,\n });\n\n cord = [];\n for (let i = 0; i < props.data.length; i++) {\n cord.push({\n type: \"Feature\",\n properties: {\n color: color[i],\n },\n geometry: { type: \"LineString\", coordinates: props.data[i] },\n });\n }\n console.log(\"cordinates after\", cord);\n\n map.on(\"load\", function() {\n map.addSource(\n \"lines\",\n\n {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: cord,\n },\n }\n );\n map.addLayer({\n id: \"lines\",\n type: \"line\",\n source: \"lines\",\n paint: {\n \"line-width\": 3,\n // Use a get expression (https://docs.mapbox.com/mapbox-gl-js/style-spec/#expressions-get)\n // to set the line-color to a feature property value.\n \"line-color\": [\"get\", \"color\"],\n },\n });\n return () => map.remove();\n });\n }, [props.data]);\n\n /* componentDidUpdate(prevProps, prevState) {\n console.log(\"data changes\",this.props.data)\n if (prevProps.data !== this.props.data) {\n this.setState({ line: this.props.data }, () => console.log(\"lines\", this.state.line))\n }\n }*/\n\n return (\n
\n \n
\n );\n};\n\nexport default Map;\n","import React, { useState } from \"react\";\nimport { Layout, Menu } from \"antd\";\nimport {\n HomeOutlined,\n ProjectOutlined,\n AppstoreOutlined,\n FileOutlined,\n SettingOutlined,\n QuestionCircleOutlined,\n LogoutOutlined,\n} from \"@ant-design/icons\";\nimport logo from \"../assets/logo.png\";\n\nimport logoCollapsed from \"../assets/logo-collapsed.png\";\n\nconst { Sider } = Layout;\n\nconst SidebarLayout = ({ onCollapse }) => {\n const [collapsed, setCollapsed] = useState(false);\n\n const toggleSidebar = () => {\n const newCollapsed = !collapsed;\n setCollapsed(newCollapsed);\n if (onCollapse) onCollapse(newCollapsed);\n };\n\n // Custom trigger component for top position\n const CustomTrigger = ({ collapsed, onClick }) => (\n \n ◀\n
\n );\n\n return (\n \n {/* Custom trigger at top */}\n \n\n {/* Logo */}\n \n \n
\n\n {/* Main Menu */}\n ,\n label: \"Home\",\n },\n {\n key: \"projects\",\n icon: ,\n label: \"Projects\",\n },\n {\n key: \"modules\",\n icon: ,\n label: \"Modules\",\n children: [\n {\n key: \"physical-risk\",\n label: \"Physical Risk\",\n },\n {\n key: \"transition-risk\",\n label: \"Transition Risk\",\n },\n {\n key: \"real-estate\",\n label: \"Real Estate\",\n },\n ],\n },\n {\n key: \"documents\",\n icon: ,\n label: \"Documents\",\n children: [\n {\n key: \"methodology\",\n label: \"Methodology\",\n },\n {\n key: \"apidocs\",\n label: \"APIDocs\",\n },\n {\n key: \"changelogs\",\n label: \"Changelogs\",\n },\n {\n key: \"faqs\",\n label: \"Faqs\",\n },\n ],\n },\n {\n key: \"settings\",\n icon: ,\n label: \"Settings\",\n },\n ]}\n />\n\n {/* Bottom Menu */}\n ,\n label: \"Help\",\n },\n {\n key: \"logout\",\n icon: ,\n label: \"Logout Account\",\n style: { color: \"#ff4d4f\" },\n },\n ]}\n />\n \n );\n};\n\nexport default SidebarLayout;\n","import React, { Component } from 'react';\nimport { Form, Button, Input, TextArea, Grid, Container, Message, Image, Header, Menu, Select, Dropdown, Table, Label, Icon, Modal } from 'semantic-ui-react';\nimport logo from '../assets/logo.png';\nimport './project.css';\nimport { connect } from 'react-redux';\nimport { locus } from '../actions';\nimport SideNavbar from './sidebar';\nimport { asset } from '../actions';\n\n\n\n\nconst StatusOptions = [\n { key: 'active', value: 'active', text: 'Active' },\n { key: 'finished', value: 'finished', text: 'Finished' }\n]\n\n\n\nclass Asset extends Component {\n\n state = {\n name: '',\n description: '',\n status: '',\n assets: [],\n modalOpen: false,\n fetchAssets: []\n }\n\n componentDidMount() {\n this.props.getLocations();\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location) {\n this.setState({ fetchAssets: this.props.location })\n }\n }\n handleAssets = (e, { value }) => {\n this.setState({ assets: value }, () => console.log(this.state.assets))\n\n }\n handleStatus = (e, { value }) => {\n this.setState({ status: value }, () => console.log(this.state.status))\n }\n handleOpen = () => this.setState({ modalOpen: true })\n handleClose = () => this.setState({ modalOpen: false })\n\n\n onSubmit = e => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"name\", this.state.name);\n formdata.append(\"description\", this.state.description);\n formdata.append(\"status\", this.state.status);\n formdata.append(\"assets\", this.state.assets)\n console.log(formdata.get('status'), formdata.get('name'), formdata.get('description'), formdata.get('assets'))\n\n this.props.addAssets(formdata)\n }\n\n\n render() {\n\n const { value } = this.state;\n let user_id = localStorage.getItem('user_id')\n console.log(\"locations\", this.state.fetchAssets);\n const assets = this.state.fetchAssets.filter(location => location.users_id == user_id)\n var Allassets = \"\";\n if (this.state.fetchAssets) {\n Allassets = assets.map((asset, index) => (\n \n \n {asset.name}\n \n {asset.latitude}\n {asset.longitude}\n \n ))\n }\n\n\n let options = [];\n for (let i = 0; i < assets.length; i++) {\n options.push({\n key: assets[i].name + ',' + assets[i].latitude + ',' + assets[i].longitude,\n value: assets[i].name + ',' + assets[i].latitude + ',' + assets[i].longitude,\n text: assets[i].name + ',' + assets[i].latitude + ',' + assets[i].longitude\n })\n }\n\n return (\n
\n\t\t\t\t\n\t\t\t\t\n\t\t\t \t\t\n\t\t\t \n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t
My Assets
\n\n\t\t\t \n \n \n Name\n Latitude\n Longitude\n \n \n\n \n {Allassets}\n \n \n\n \n \n \n \n \n \n \n 1\n 2\n 3\n 4\n \n \n \n \n \n \n \n
\n \n \n
\n\t\t
\n\t\t
\n\t\t\n Create Group\n \n \t
\n\t\t\t\t\n\t\t\t\tthis.setState({name:e.target.value})}\n\t\t\t\t\t />\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tthis.setState({description:e.target.value})}\n\t\t\t\t\t />\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\n\t\t\t\t\n\t\t\t\n
\n \n\t\t\t
)\n }\n}\n\nconst mapStateToProps = state => {\n return {\n errors: state.locus.errors,\n locus: state.locus.locus,\n asset: state.asset\n }\n}\nconst mapDispatchToProps = dispatch => {\n return {\n getLocations: () => {\n dispatch(locus.getLocations());\n },\n addAssets: (formdata) => {\n dispatch(asset.addAssets(formdata));\n }\n }\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(Asset);","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n Route,\n Redirect\n} from 'react-router-dom';\nimport {auth} from './actions/';\n\nconst PrivateRoute = ({ component: Component, ...rest }) => (\n \n auth.isUserAuthenticated() ? (\n \n ) : (\n \n )\n }\n />\n)\n\nPrivateRoute.propTypes = {\n component: PropTypes.any,\n location: PropTypes.object\n}\n\nexport default PrivateRoute","import React,{Component} from 'react';\nimport {Form,Button,Input,TextArea,Grid,Container,Message,Image,Header,Menu,Select,Dropdown,Icon,Table,Modal,Card} from 'semantic-ui-react';\nimport logo from '../assets/logo.png';\nimport './project.css';\nimport {connect} from 'react-redux';\nimport {locus,auth,project} from '../actions';\nimport SideNavbar from './sidebar';\nimport Spinner from './loader';\nimport CsvDownload from 'react-json-to-csv';\n\nlet options=[];;\n\nconst StatusOptions=[\n\t{key:'active',value:'Active',text:'Active'},\n\t{key:'finished',value:'Finished',text:'Finished'}\n]\nconst csv=[];\nconst othersOptions=[\n\t\n\t{key:'type',value:'type',text:'type'},\n\t{key:'Area',value:'Area',text:'Area'},\n\t\n\t{key:'SSL',value:'SSL',text:'SSL'},\n\t{key:'FLL',value:'FLL',text:'FLL'}\n]\nlet variableOptions=[]\t\n\nconst rcpOptions=[\n\t{key:'2.6',value:'2.6',text:'2.6'},\n\t{key:'4.5',value:'4.5',text:'4.5'},\n\t{key:'8.5',value:'8.5',text:'8.5'}\n]\nconst yearOptions=[\n\t\n\t{key:'2030',value:'2030',text:'2030'},\n\t{key:'2050',value:'2050',text:'2050'}\n]\n\n\nclass Download extends Component{\n\tstate={\n\t\tname:'',\n\t\tdescription:'',\n\t\tstatus:'',\n\t\tassets:[],\n\t\tloading:false,\n\t\tactiveItemName:'',\n\t\tactiveVariable:'',\n\t\tmodalOpen:false,\n\t\tvariables:[],\n\t\tothers:'',\n\t\tyear:'',\n\t\trcp:'',\n\t\tmodalloading:false,\n\t\tlossmodalOpen:false,\n\t\tportfolios:'',\n\t\tsummarymodalOpen:false,\n\t\t\n\t}\n\n\tcomponentDidMount(){\n\t\tthis.props.getLocations();\n\t}\n\n\tonSubmit=(e)=>{\n\t\te.preventDefault();\n\t\tlet formdata = new FormData();\n\t\tformdata.append(\"name\",this.state.name)\n\t\tformdata.append(\"status\",this.state.status)\n\t\tformdata.append(\"description\",this.state.description)\n\t\tformdata.append(\"portfolio\",this.state.assets)\n\t\tthis.setState({loading:true},()=>{this.props.addProject(formdata)})\n\n\t}\n\thandleChange=(value,key)=>{\n\t\tthis.setState({[key]:value},()=>console.log(\"othres\",this.state.others,this.state.variables));\n\t}\n\thandleSubmit=(e)=>{\n\t\te.preventDefault();\n\t\tlet formdata=new FormData();\n\t\tformdata.append('portfolio',this.state.activeItemName)\n\t\tformdata.append('variables',JSON.stringify(this.state.variables))\n\t\tformdata.append('others',JSON.stringify(this.state.others))\n\t\tformdata.append('year',JSON.stringify(this.state.year))\n\t\tformdata.append('rcp',JSON.stringify(this.state.rcp))\n\t\t\n\t\t\n\t\t\n\t\tthis.setState({modalloading:true},()=>{this.props.getCSV(formdata)})\n\t}\n\thandleView=()=>{\n\t\tthis.props.history.push({\n\t\t\tpathname:'/pivottable',\n\t\t\tstate:{data:this.props.csv.success}\n\t\t})\n\t}\n\thandleLossSubmit=(e)=>{\n\t\te.preventDefault();\n\t\tlet formdata= new FormData();\n\t\tformdata.append('portfolio',this.state.activeItemName)\n\t\tformdata.append('year',this.state.year)\n\t\tthis.setState({modalloading:true},()=>{this.props.getLoss(formdata)})\n\t}\n\n\n\thandleSummarySubmit=(e)=>{\n\t\te.preventDefault();\n\t\tlet formdata=new FormData();\n\t\tformdata.append('portfolio',this.state.activeItemName)\n\t\tthis.setState({modalloading:true},()=>{this.props.getSummary(formdata)})\n\t}\n\n\thandleAssets=(e,{value})=>{\n\t\tthis.setState({assets:value},()=>console.log(this.state.assets))\n\n\t}\n\thandleStatus=(e,{status})=>{\n\t\tthis.setState({status:status},()=>console.log(this.state.status))\n\t}\n\thandleLogout=()=>{\n\t\tthis.props.logout()\n\t}\n\t\n\thandleOpen =(portfolio,variable) => this.setState({modalOpen:true,\n\t\tactiveItemName:portfolio,\n\t\tactiveVariable:JSON.parse(variable.replace(/'/g, '\"'))},()=>\n\t\tthis.handleVariable())\n\n\thandleVariable(){\n\t\tfor (let i=0;i this.setState({modalOpen:false},()=>window.location.reload(false))\n\n\thandleLossModalOpen =(portfolio) => this.setState({lossmodalOpen:true,\n\t\tactiveItemName:portfolio})\n\n\thandleLossModalClose =()=>{\n\t\tthis.setState({lossmodalOpen:false},()=>window.location.reload(false))\n\t}\n\thandleSummaryModalOpen=(portfolio)=>this.setState({summarymodalOpen:true,\n\t\tactiveItemName:portfolio})\n\n\thandleSummaryModalClose =()=>{\n\t\tthis.setState({summarymodalOpen:false},()=>window.location.reload(false))\n\t}\n\n\n\trender(){\n\t\tconst {value,others,variables,rcp,year,status} =this.state;\n\t\tlet user_id = localStorage.getItem('user_id');\n\t\tconsole.log(\"error\",this.props.errors)\n\n\t\t\n\t\tif(this.props.locus && this.props.locus.length>0){\n\t\toptions=[];\n\t\tconst assets = this.props.locus.filter(location=>location.users_id==user_id)\n\t\tthis.state.portfolios=assets.reverse()\n\t\tconsole.log(\"locations\",this.props.locus)\n\t\t\n\t\tfor(let i=0;i\n\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{/*\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPortfolio\n\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tRecommended for Global Analysis\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{this.state.portfolios && this.state.portfolios.length>0?this.state.portfolios.map((portfolio,index)=>(\n \n\n {portfolio.name}\n \n \n \n \n \n \n \n \t{portfolio.problematic_assets}\n\n \n\n )):\n}\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t
*/}\n\t\t\t\t
\n
\n
\n
Portfolio
\n
CSV
\n \n
Loss
\n
Summary
\n \n
\n {this.state.portfolios && this.state.portfolios.length>0?this.state.portfolios.map((portfolio,index)=>(\n
\n
\n \n
{portfolio.name}\n
\n \n \n
\n
\n
\n
\n \n
)):null}\n \n
\n
\n\n\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\n\t\t\n\t\t\tDownload CSV \n\t\t\n\t\t\n\t\t
\n\t\t\n\t\t

Select Data You want to Download

\n\t\t\n\n\t\t\t\tthis.handleChange(value,'others')}/>\t\n\n\t\t\n\t\t

Select Climate Variable

\n\t\t\n\n\t\tthis.handleChange(value,'variables')}/>\t\n\n\t\t\n\t\t

Select RCP

\n\t\t\n\t\t\t\tthis.handleChange(value,'rcp')}/>\t\n\n\t\t\n\t\t

Select Year

\n\t\t\n\t\t\t\tthis.handleChange(value,'year')}/>\t\n\n\t\t\n\t\t
\n\n\t\t{(this.state.modalloading && (!this.props.csv.length===undefined))?:\n\t\t\t\t}\n\t\t\n\t\t{(this.props.csv.length===undefined)?
\n\t\t\n\t\t
:null}\n\t\t\n\t\t
\n\t\t
\n\t\t\n\n\n\t\t\n\t\t\n\t\t\tDownload Loss\n\t\t\n\t\t\n\t\t
\n\t\t\n\t\t\n\t\t

Select Year

\n\t\t\n\t\t\t\tthis.handleChange(value,'year')}/>\t\n\n\t\t\t\n\t\t
\n\n\t\t{(this.state.modalloading && (!this.props.csv.length===undefined))?:\n\t\t\t\t}\n\t\t\n\t\t{(this.props.csv.length===undefined)?:null}\n\t\t\n\t\t
\n\t\t
\n\t\t\n\n\t\t\n\t\t\n\t\t\tDownload Summary\n\t\t\n\t\t\n\t\t
\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t
\n\n\t\t{(this.state.modalloading && (!this.props.csv.length===undefined))?:\n\t\t\t\t}\n\t\t\n\t\t{(this.props.csv.length===undefined)?
\n\n\t\t
:null}\n\t\t\n\t\t
\n\t\t
\n\t\t\n\t\t\t)\n\t\t\n\t\t\n\t\t\n\t}\n}\n\nconst mapStateToProps = state =>{\n\treturn {\n\t\terrors:state.project.errors,\n\t\tlocus:state.locus.locus,\n\t\tcsv:state.project.csv\n\n\t}\n}\nconst mapDispatchToProps = dispatch =>{\n\treturn{\n\t\tgetLocations:()=>{\n\t\t\tdispatch(locus.getLocations());\n\t\t},\n\t\tlogout:()=>{\n\t\t\tdispatch(auth.logout())\n\t\t},\n\t\taddProject:(formdata)=>{\n\t\t\tdispatch(project.addProject(formdata))\n\t\t},\n\t\tgetCSV:(formdata)=>{\n\t\t\tdispatch(project.getCSV(formdata))\n\t\t},\n\t\tgetLoss:(formdata)=>{\n\t\t\tdispatch(project.getLoss(formdata))\n\t\t},\n\t\tgetSummary:(formdata)=>{\n\t\t\tdispatch(project.getSummary(formdata))\n\t\t}\n\t}\n}\nexport default connect(mapStateToProps,mapDispatchToProps)(Download);","import React, { useState, useEffect } from \"react\";\nimport whiteswan from \"../assets/logo1.png\";\nimport { auth } from \"../actions\";\nimport { connect } from \"react-redux\";\nimport logo from \"../assets/logo.png\";\nimport Profile from \"../assets/profile.png\";\nimport \"./navmenu.css\";\nimport {\n Navbar,\n Nav,\n Container,\n Breadcrumb,\n Row,\n NavDropdown,\n} from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\n\nconst TopNavbar = ({ logout }) => {\n const [tierData, setTierData] = useState(null);\n\n useEffect(() => {\n // Fetch tier data from localStorage\n const tierDataFromLocalStorage = localStorage.getItem(\"tier_data\");\n if (tierDataFromLocalStorage) {\n try {\n const parsedTierData = JSON.parse(tierDataFromLocalStorage);\n setTierData(parsedTierData);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n }\n }\n }, []);\n\n // API URL for updating last accessed\n const API_URL = \"https://api.intensel.net/api/user/update_last_accessed/\";\n\n // Function to fetch update\n const fetchLastAccessed = async () => {\n const token = localStorage.getItem(\"token\");\n\n if (!token) {\n console.warn(\"No token found. User might not be logged in.\");\n return;\n }\n\n try {\n const response = await fetch(API_URL, {\n method: \"GET\",\n headers: {\n Authorization: `Token ${token}`,\n },\n });\n\n if (!response.ok) {\n throw new Error(`Error: ${response.status}`);\n }\n\n const data = await response.json();\n console.log(\"Last accessed updated successfully:\", data);\n } catch (error) {\n console.error(\"Error updating last accessed:\", error);\n }\n };\n\n useEffect(() => {\n // Fetch immediately on mount\n fetchLastAccessed();\n\n // Set interval to fetch every 5 minutes (300000 milliseconds)\n const intervalId = setInterval(fetchLastAccessed, 300000);\n\n // Cleanup interval on unmount\n return () => clearInterval(intervalId);\n }, []);\n\n console.log(\"tier\", tierData);\n\n const handleLogout = () => {\n logout();\n };\n\n return (\n <>\n \n \n \n \n \"Logo\"\n \n\n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.auth.errors,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n logout: () => {\n dispatch(auth.logout());\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TopNavbar);\n","import React, { Component } from \"react\";\nimport {\n Header,\n Icon,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Progress,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n Card,\n} from \"semantic-ui-react\";\nimport whiteswan from \"../assets/logo1.png\";\nimport { Layout, Menu } from \"antd\";\nimport { auth } from \"../actions\";\nimport { connect } from \"react-redux\";\n\nimport {\n UploadOutlined,\n UserOutlined,\n VideoCameraOutlined,\n} from \"@ant-design/icons\";\nimport { Nav, NavItem, Collapse } from \"reactstrap\";\nimport { NavLink } from \"react-router-dom\";\n\nimport logo from \"../assets/logo.png\";\nimport Profile from \"../assets/profile.png\";\nimport \"./sidebar.css\";\n\nimport \"react-pro-sidebar/dist/css/styles.css\";\n\nclass SideNavbar extends Component {\n handleLogout = () => {\n this.props.logout();\n };\n handlelink = (value) => {\n this.props.history.push(value);\n };\n render() {\n const { Header, Content, Footer, Sider } = Layout;\n const subscription = localStorage.getItem(\"subscription\");\n\n let loc = window.location.href.split(\"/\")[3];\n\n console.log(\"locsx\", loc);\n return (\n {\n console.log(broken);\n }}\n onCollapse={(collapsed, type) => {\n console.log(collapsed, type);\n }}\n style={{ marginTop: \"0\" }}\n >\n
\n {loc ? (\n \n \n \n \n \n \n \n \n Project\n \n \n \n {loc == \"dashboard\" ? (\n \n \n \n \n Dashboard\n \n \n \n ) : null}\n \n \n \n \n Physical Risk\n \n \n \n \n \n \n \n Real Estate\n \n \n \n {/* \n \n \n Invoice\n \n \n */}\n \n \n \n \n Transition Risk\n \n \n \n \n \n \n {/**/}\n \n Methodology\n \n \n \n \n \n \n \n Api docs\n \n \n \n \n \n \n \n \n\n \n\n {/*\n \n \n Powered By\n

\n \n
\n
*/}\n
\n ) : null}\n \n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.auth.errors,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n logout: () => {\n dispatch(auth.logout());\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(SideNavbar);\n","import React, { useState, useCallback, useEffect, Component } from \"react\";\nimport { Icon, Button, Table } from \"semantic-ui-react\";\nimport { Grid } from \"semantic-ui-react\";\nimport \"./methodology.css\";\nimport {\n Tabs,\n Tab,\n Row,\n Nav,\n Col,\n Container,\n Breadcrumb,\n} from \"react-bootstrap\";\nimport \"./faqs.css\";\nimport ct1 from \"../assets/ct_1.png\";\nimport ct2 from \"../assets/ct_2.png\";\nimport gp1 from \"../assets/gp 1.png\";\nimport gp2 from \"../assets/gp 2.png\";\nimport rf1 from \"../assets/rf_1.png\";\nimport rf2 from \"../assets/rf_2.png\";\nimport rf3 from \"../assets/rf_3.png\";\nimport rf4 from \"../assets/rf_4.png\";\nimport rf5 from \"../assets/rf_5.png\";\nimport rf6 from \"../assets/rf_6.png\";\nimport rf7 from \"../assets/rf_7.png\";\nimport rf8 from \"../assets/rf_8.png\";\nimport ss1 from \"../assets/ss_1.png\";\nimport ss2 from \"../assets/ss_2.png\";\nimport ss3 from \"../assets/ss_3.png\";\nimport ss4 from \"../assets/ss_4.png\";\nimport tp1 from \"../assets/tp_1.png\";\nimport tp2 from \"../assets/tp_2.png\";\nimport tp3 from \"../assets/tp_3.png\";\nimport tp4 from \"../assets/tp_4.png\";\nimport tp5 from \"../assets/tp_5.jpg\";\nimport tp6 from \"../assets/tp_6.jpg\";\nimport tp7 from \"../assets/tp_7.png\";\nimport tp8 from \"../assets/tp_8.png\";\nimport tp9 from \"../assets/tp_9.png\";\nimport tp10 from \"../assets/tp_10.png\";\n\nimport tp11 from \"../assets/tp_11.png\";\nimport tp12 from \"../assets/tp_12.png\";\nimport vs1 from \"../assets/vs1.png\";\nimport vs2 from \"../assets/vs2.png\";\nimport vs3 from \"../assets/vs3.png\";\nimport vs4 from \"../assets/vs4.png\";\nimport vs5 from \"../assets/vs5.png\";\nimport vs6 from \"../assets/vs6.png\";\nimport vs7 from \"../assets/vs7.png\";\nimport vs8 from \"../assets/vs8.png\";\nimport vs9 from \"../assets/vs9.png\";\nimport vs10 from \"../assets/vs10.png\";\nimport vs11 from \"../assets/vs11.png\";\nimport vs12 from \"../assets/vs12.png\";\nimport droughfm from \"../assets/drought_formula.png\";\nimport {\n Accordion,\n AccordionItem,\n AccordionItemHeading,\n AccordionItemButton,\n AccordionItemPanel,\n} from \"react-accessible-accordion\";\n\nimport \"react-accessible-accordion/dist/fancy-example.css\";\nimport { connect } from \"react-redux\";\nimport { Document, Page } from \"react-pdf\";\n\nimport { locus, auth, project } from \"../actions\";\n\nconst PDF = process.env.REACT_APP_METHODOLOGY;\n\nclass Methodology extends Component {\n constructor(props) {\n super(props);\n }\n componentDidMount() {}\n render() {\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n\n return (\n <>\n \n \n
\n \n Methodology\n \n
\n \n
\n \n {Array.from(new Array(57), (el, index) => (\n \n ))}\n \n\n {/* \n \n \n \n \n \n \n \n \n Methodology\n

\n\n

Summary

\n\n

\n Last edited: Nov 24 2021\n

\n\n

\n The BlueSwan Interface provides first-hand access to\n projections of physical climate risks at the asset level. It\n shows maps and graphs illustrating the projected changes in\n climate conditions, resulting in impacts and damages on\n selected sectors for several global warming levels, also how\n they will play out over time according to various\n policy-relevant emission scenarios by IPCC. All projections\n are calculated assuming that socio-economic conditions\n (population, land-use, management practices, etc.) will\n remain constant as of 2020, therefore BlueSwan isolates the\n sole effect of climate change on the indicators it provides\n information on.{\" \"}\n

\n\n \n Key Functionalities\n

\n

\n

    \n
  • \n Projections of climate impacts at the asset level on\n yearly scales:\n
      \n
    • \n Including uncertainty ranges encompassing both the\n global climate sensitivity to emissions and the\n response of local impacts to global warming\n
    • \n
    • \n Aggregation at the continental, national and\n subnational levels using weighted averages by either\n area, GDP, or population\n
    • \n
    \n
  • \n
  • \n Time evolution of future impacts for policy-relevant\n scenarios from Representative Concentration Pathways\n (RCP)\n
  • \n
  • \n Hazard and Country loss maps for different warming\n levels containing information on the robustness of the\n projections, based on the agreement between the various\n climate and impact models used to derive them.\n
  • \n
  • \n Climate and climate impact indicators covering several\n biophysical sectors and economic damages from selected\n extreme events\n
  • \n
  • \n The possibility to download all displayed data, as well\n as the data underlying them\n
  • \n
  • \n The possibility to download a comprehensive ppt - report\n covering all the assets, corresponding losses, graphs\n with explanations\n
  • \n
\n

\n\n \n A Guidance Note for Users\n

\n

\n The Intensel Blueswan SaaS provides a comprehensive,\n globally consistent dataset of physical risk projections for\n different climate scenarios. These datasets are supplemented\n by regional data to asset level granularity and financial\n modeling to translate hazards into dollar Loss. However,\n these losses and climate hazards are scenarios and\n projection-based thus could not be compared with exact\n events. The datasets from the platform can be used for\n indicative risk and thus should be used in supplementing\n national or regional risk assessments from governments or\n consultants.\n

\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n Main Assumptions For Financial Loss Calculations\n

\n
\n
\n

\n 1. The Climate Value at Risk represents the Potential\n YEARLY losses of the portfolio or asset in 2030-2050 or\n 2050-2070
\n
\n 2. The projected losses are the average of the maximum\n extreme events under radiative forcing corresponding to\n RCP
\n 8.5, that is business as usual with no transition policies\n in place.\n
\n
\n 3. The projected losses are based on the damages to the\n buildings, that is the estimated value of the property\n using
\n indicated area and the price per sqm. They can be\n readjusted using either the construction value or the\n replacement value.
\n These data are internal data specific to the company and\n assets under consideration.\n
\n
\n 4. It is the sum of physical damage + operation disruption\n due to extreme events.\n
\n
\n 5. The projected/potential loss is different for Expected\n loss. The Expected loss is therefore the probability\n adjusted.
\n Projected losses for the given carbon concentration\n scenario (assume an RCPs 8.5 has a probability of 10%) and\n the probability\n
\n that the extreme event is happening (ie 1:100 year return\n period=1%). For example, the Expected loss of a\n USD100million is
\n = USD100million *10%*1%=USD100,000\n
\n
\n 6. The % losses are independent of the value of the\n property. It is determined from the severity of climate\n risk,
\n geographical location, and the building characteristics\n such as building material, height, terrain elevation, and\n surrounding
\n infrastructure.
\n
\n 7. No time value is taking into consideration as the\n discount factors is a subjective and company-specific\n number.\n
\n
\n 8. When projecting losses related to climate risk, no\n asset-specific resilience measure is taken into\n consideration.\n
\n Nonetheless, we do use the best available satellite data\n to check the surrounding infrastructure, ie roads, and\n other
\n water catchments to the degree that this information is\n publicly available.\n
\n
\n 9. No insurance coverage is taken into account. That means\n that part of the historical losses is covered from\n insurance,\n
\n hence company reported losses are only a fraction of\n realized losses.\n
\n
\n 10. Both the area and the price of the properties are kept\n constant during the analysis, as the only variable here is\n the
\n climate change-related risk. Should one integrate the\n impact of climate on GDP, valuation, and productivity,\n
\n the losses will most likely be much higher than the ones\n projected in this analysis.\n
\n

\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n \n \n \n Electricity Loss Calculation\n

\n
\n

\n Electricity Loss CalculationPredicted_Consumption =\n Model(t,h,a)\n

\n
\n \n Predicted_Total_Cost =\n (Predicted_Consumption)*Electricity_Cost(kwh)
\n Here:
\n
    \n
  • Model : Machine Learning Model.
  • \n
  • t : Temperature in Degree Celsius
  • \n
  • h : Humidity
  • \n
  • a : Area of Building
  • \n
\n Note : For Area a>(normal range) then our model\n probably will not give optimal results,
\n so we have used effective_electricity_cost(kwh) for\n that building.\n

\n\n
\n

\n Effective Electricy_Cost(kwh) =\n ec-min(ec*k_factor,ec*area/100000)\n

\n
\n\n

\n {\" \"}\n Here:
\n

    \n
  • ec : Electricity Cost (kwh)
  • \n
\n

\n\n \n Final methodology for electricity consumption pricing\n

\n
\n

\n Predicted_Consumption = Model(t,a,h)
{\" \"}\n Predicted_Total_Cost =\n (Predicted_Cosumption)*Effective_Electricity_Cost(kwh)\n

\n
\n\n

\n Note: Effective Electricity Cost can be used for all\n areas because for small areas the
modification\n is negligible.\n

\n\n

\n Validation Metrics\n

\n\n \n Validation on UK Smart meter dataset\n
\n \n

\n
\n
\n
\n
\n
\n
\n\n \n

\n Intensel's Flood Modelling{\" \"}\n

\n
\n \n
\n

Achieving Higher Accuracy by

\n

\n

    \n
  • \n {\" \"}\n DEM Preprocessing (Fill sink and\n Reconditioning)\n
  • \n
  • \n {\" \"}\n Using high resolution Rainfall data and\n considering
    \n Land use Land cover parameter for assigning{\" \"}\n
    \n roughness coefficient which controls flow\n velocity.\n
  • \n
  • \n {\" \"}\n Using Full momentum equation in HECRAS model &{\" \"}\n
    \n Flo 2D model as all parameter like Gravity,\n Pressure,
    \n Friction, Corollis effect, Acceleration and\n Turbulent
    \n eddy viscosity is taken into consideration.\n
  • \n
  • \n {\" \"}\n Simulated results are validated using\n satellite images
    \n of Synthetic Aperture Radar (SAR) and uses our{\" \"}\n
    \n developed tool for estimating performance of\n flood
    \n simulation models based on the counts of\n pixels
    \n which are correctly predicted by the model,\n under
    \n predicted by the model and over predicted by\n the model.\n
  • \n
\n

\n
\n
\n\n
\n \n Flood Validation with FEMA\n

\n {\" \"}\n \n
\n
\n
\n
\n

\n Validation Statistics\n

\n
\n

\n With Respect to:-
\n FEMACorrectly Predicted cells (A)- 277065O
\n verpredicted cells – (B) - 178042
\n Under predicted cells – (C) - 84995
\n % increased in the flood area – 35%
\n Measures of Fit
\n F1 = A /(A+B+C)
\n F1 = 0.51
\n Note – F1 ranges from 0 to 1
\n The value =1 is 100% accuracy\n

\n
\n
\n
\n
\n
\n
\n
\n

\n Flood Validation with FEMA (Depth)\n

\n {\" \"}\n \n
\n
\n
\n

\n Vietnam Flood Modelling Validation\n

\n {\" \"}\n \n
\n
\n
\n

\n Vietnam Flood Modelling Validation\n

\n {\" \"}\n \n
\n
\n
\n
\n
\n
\n
\n\n \n \n \n \n

\n Storm Surge Simulation\n

\n

\n The surge experienced for historic storms is\n simulated using GeoClaw.
\n
\n It estimates surge using Riemann solvers are\n used to solve 2d depth-averaged
\n shallow water equations for flow over varying\n topography.
\n
\n It takes storm properties from IBTrACS record.{\" \"}\n
\n
\n The surge experienced is estimated from the\n solution files generated.
\n
\n Bathymetric data at 500m resolution is used{\" \"}\n
\n for the simulation.\n

\n \n\n \n \n \n
\n
\n\n \n \n \n

\n Sampling Surge Values\n

\n

\n The maximum surge experienced is sampled near{\" \"}\n
\n the coast as a 0 representative value.
\n
\n Surge values were estimated at grid size of 1km\n x 1km.
\n
\n The simulation values were validated with\n recorded
\n maximum surge for the storm Manghut.\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
StationObservedSimulatedError
Quarry Bay3.883.1019.8%
Shek Pik3.893.2815.5%
Tai Po Kau4.712.9537.2%
Tsim Bei Tsu4.183.4018.5%
\n \n\n \n \n \n
\n
\n\n \n \n \n

\n Estimating Inundation\n

\n

\n The inundation of surge into the land is\n simulated
\n using a high resolution DEM.
\n
\n A connected component based segmentation is used\n to estimate
\n the submerged regions.
\n
\n The domain is divided into numerous subdomains\n for easy processing.
\n
\n The largest continuous zero value patch in DEM\n is considered as ocean
\n and is used as seed region.
\n
\n All submerged regions connected to the ocean\n segment is evaluated
\n and added to the result.
\n

\n \n\n \n \n \n
\n
\n\n
\n \n Surge Inundation observed for a hypothetical 8m\n Surge.\n

\n \n
\n\n
\n \n Geoclaw model.\n

\n
\n

\n

\n {\" \"}\n In one space dimension, the clawpack routine can\n be used
\n to solve a system of equations of the form κ(x)q\n t + f (q) x = ψ(q, x, t),
\n where q = q(x, t) lR m .
\n The standard case of a homogeneous conservation\n law has ∈κ ≡ 1 and ψ ≡ 0,
\n q t + f (q) x = 0.
\n The flux function f (q) can also depend\n explicitly on x and t as well as on q.
\n Hyperbolic systems that are not in conservation\n form ,
\n q t + A(x, t)q x = 0, can also be solved.
{\" \"}\n

\n

\n
\n
\n

\n For simulating the surge due to a typhoon, the\n conservation laws are solved for
\n a given bathymetry and wind forcing over the\n surface.
\n
\n The temporal simulation gives the depth averaged\n volume and velocity components
\n of the disturbance. This is used to estimate the\n surge due to disturbance.
\n

\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n \n Cyclone Track Predictions\n

\n

\n {\" \"}\n \n {\" \"}\n Objective{\" \"}\n \n : Forecast the entire track of the cyclone based on\n the single origin point and the time of forming.{\" \"}\n
\n
\n \n Input Features\n \n :
\n 1)Latitude and Longitude of Origin.\n
\n 2)Date and Time of forming the Origin.\n
\n
\n
\n \n Additional Input Features\n \n : (these will be searched on the fly by our model\n itself)
\n
\n 1)Temperatures (1 millibar to 1000 millibar)\n
\n 2)UWind & VWind\n
\n 3)SLI (Surface Lifted Index)\n
\n 4)SLP (Sea level pressure)\n
\n 5)Sea Temperatures\n
\n 6)Omega\n
\n 7)Geopotential Height\n
\n
\n \n Output Features\n \n : The output will be a csv file containing\n forecasted time, latitude
\n and longitude of the eye of the cyclone at that\n time.\n

\n
\n
\n
\n\n
\n \n Model Overview\n

\n

\n We have selected GRU+Attention Model for this\n task, it is basically a deep neural network.{\" \"}\n
\n
\n \n GRU Model\n \n :
\n GRU model basically has a temporal hidden memory\n and it also has some selective gates
\n for what to store and what not to store. This\n model stores useful information of previous
\n points of the same track in hidden memory much\n like the human brain.
\n \n
\n \n Attention Mechanism\n \n :
\n Attention is basically used to improve the\n performance of GRU models because GRU
\n vanishes some information if there is a very long\n sequence or very long typhoon track,
\n so attention can focus on any previous point.{\" \"}\n
\n \n
\n
\n
\n
\n

\n
\n
\n \n Working of Model\n

\n

\n This is the Basic GRU Model Working with our\n dataset\n \n

\n
\n
\n
\n
\n
\n \n Validation Matrics\n

\n

\n Error Metric for Average Distance Error
\n
\n
\n
\n
\n \n

\n
\n
\n
\n
\n
\n
\n \n Insights from Model\n

\n {\" \"}\n
\n \n
\n
\n
\n
\n
\n \n Calculation of Damage from Cyclone\n

\n\n
\n

\n {\" \"}\n \n {\" \"}\n Objective{\" \"}\n \n : Predict the damage based on any Cyclone, suppose\n a cyclone brings x amount
\n of rain with y wind speed and we have GDP Per\n Capital of Landfall location then based on
\n these we can Predict how much damage due to this\n cyclone.
\n
\n \n Input Features\n \n :
\n 1)Rainfall
\n 2)Wind Speed (max)
\n 3)Population (200km)
\n 4)Total GDP (200km)
\n 5)GDP per capita
\n Note : Rainfall Data can be collected using a\n separate model, same with wind speed data can{\" \"}\n
\n be collected from a different deep neural network\n model.
\n
\n
\n \n Output Features\n \n :
1)Total damage due to cyclone
\n
\n \n Model Description\n \n :
We used random forest model totrain on\n the historical dataset,
\n inputs are the wind speed rainfall etc then the\n model will predict total damage in US $ 2015,{\" \"}\n
\n due to those extreme conditions.\n
\n
\n
\n \n
\n

\n
\n
\n
\n
\n
\n \n Validation Metrics\n

\n

\n 1)R2 Accuracy :\n

\n \n\n

\n 2)R2 Confidence intervals :\n

\n \n\n

3)RMSE Error :

\n \n\n

\n 4)Feature Importance :\n

\n \n\n

\n 5)Scatter Plot real vs Predicted :\n

\n \n
\n\n
\n
\n
\n
\n
\n
\n\n \n
\n \n Drought Methodology\n

\n
\n
\n
\n
\n
\n
    \n
  • \n The drought methodology is based and derived from\n RCM projections of
    “rainfall in the driest\n quarter”\n
  • \n
    \n
  • \n The formula used to calculate the drought index\n which ranges between
    0 to 100 is following\n
  • \n
    \n
    \n
    \n
    \n \n
\n\n

\n Notes:\n

\n
    \n
  • \n If drought risk is 100% that means the rainfall in\n future projection would
    reduce equivalent\n to “rainfall in driest quarter historical”\n
  • \n
    \n
  • \n If drought is 0% means that the condition in the\n driest quarter is either the same
    or\n receiving more rainfall than “rainfall in driest\n quarter historical”\n
  • \n
\n
\n
\n \n
\n
\n\n \n \n

Extreme Heat

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Temperature(Celsius)Risk SeverityRisk ScoreEvery Degree Rise
0-27No Risk00
27-32Low250 + (5)
32-41Medium5025 + (2.77)
41-54Medium High7550 + (1.92)
54-65High10075 + (2.27)
>65\n Very High\n 100100
\n\n

Rainfall Flood

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Depth (m)Risk SeverityRisk ScoreIncrease in 0.1m Rise
0No Risk00
Less than 0.5Low250 + (0.5)
0.5 - 1Medium5025 + (0.5)
1 - 2Medium High7550 + (0.25)
2 - 5High10075 + (0.083)
>5\n Very High\n 100100
\n\n

River Flood

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Depth (m)Risk SeverityRisk ScoreIncrease in 0.1m Rise
0No Risk00
Less than 0.5Low250 + (0.5)
0.5 - 1Medium5025 + (0.5)
1 - 2Medium High7550 + (0.25)
2 - 5High10075 + (0.083)
>5\n Very High\n 100100
\n\n

Typhoon

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Wind Speed (Km/h)Risk SeverityRisk ScoreIncrease in Wind Speed
Less Than 119No Risk00
119 - 153Low250 + (0.42)
178 - 208Medium5025 + (0.83)
209 - 251Medium High7550 + (0.58)
251 - 350High10075 + (0.25)
>350Very High100100
\n\n

Storm Surge

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Depth (m)Risk SeverityRisk ScoreIncrease in 0.1m Rise
0No Risk00
Less Than 0.5Low250 + 0.5
0.5 - 1Medium5025 + (0.5)
1 - 2Medium High7550 + (0.25)
2 - 5High10075 + (0.083)
>5\n Very High\n 100100
\n\n

Sea Level Rise

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Level Rise(m)Risk SeverityRisk ScoreIncrease in m(s)
0No Risk00
>0Very High100100
\n\n

Drought

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
% Decrease in Driest QuarterRisk SeverityRisk Score % Decrese in Rainfall
0No Risk00
0 - 25Low250 + (1)
25 - 50Medium5025 + (1)
50 - 75Medium High7550 + (1)
75 - 100High10075 + (1)
More then 100 Very High100100
\n\n

Snow Fall

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Snow Fall Quantity 10-6 (Kg-m)\n Risk SeverityRisk ScoreIncrease in Snow-Melt
0No Risk00
6 - 7Low250 + (2.5)
7 - 8Medium5025 + (2.5)
8 - 8.5Medium High7550 + (5)
8.5 - 9High10075 + (5)
>9Very High100100
\n\n

Landslide

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Score out of 100Risk SeverityRisk ScoreIncrease in Score
0No Risk00
0 - 25Low250 + (1)
25 - 50Medium5025 + (1)
50- 75Medium High7550 + (1)
75 - 100High10075 + (1)
100Very High100100
\n \n
\n\n \n \n
\n \n What are Climate Scenarios?\n

\n

\n RCPs usually refer to the portion of the concentration\n pathway extending up to 2100, for which Integrated\n Assessment Models produced corresponding emission\n scenarios:
\n
\n \n RCP2.6\n {\" \"}\n One pathway where radiative forcing peaks at\n approximately 3 W m-2 before 2100 and then declines (the\n corresponding ECP assuming constant emissions after\n 2100).
\n
\n \n RCP4.5\n {\" \"}\n is an intermediate stabilization pathways in which\n radiative forcing is stabilized at approximately 4.5 W\n m-2 and 6.0 W m-2 after 2100.
\n
\n \n RCP8.5\n {\" \"}\n RCP 8.5 refers to the concentration of carbon that\n delivers global warming at an average of 8.5 watts per\n square meter across the planet. The RCP 8.5 pathway\n delivers a temperature increase of about 4.3˚C by 2100.\n

\n
\n \n \n The goal of working with scenarios is not to predict\n the future, but to better understand the uncertainties\n and potential alternative futures. This allows us to\n consider how robust different decisions or options may\n be under a wide range of possible scenarios..\n

\n \n
\n
\n
\n
\n\n \n What is the Return Period?\n

\n \n \n The value of 100 years does not mean that the\n structure will be at risk exactly every 100 yrs.\n Rather, it means that the structure will be at risk,\n say 10 times every 1000 years.\n
\n The 100-yr flood peak applies for flood plain\n development, medium-sized flood protection works, and\n regional urban drainage facilities.\n

\n

\n
\n
\n Figure: Design of Levee based on 250 year return\n period of river at Tecate Creek, Baja California,\n Mexico\n

\n
\n
\n
\n
\n\n \n Guidelines for selection of Return Periods.\n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
No.Type of project or featureReturn Period(yr)
1Urban drainage [low risk] (up to 100 ha)5 to 10
2\n Urban drainage [medium risk] (more than 100 ha)\n 25 to 250
3Road drainage25 to 100
4Principal spillways (dams)25 to 100
5Highway drainage50 to 250
6Levees [medium risk]50 to 250
7\n Urban drainage [high risk] (more than 1,000 ha)\n 50 to 250
8Flood plain development100
>9Insurance premium calculations250
10Bridge design (piers)100 to 500
11Levees [high risk]200 to 1000
\n
\n
\n
\n \n\n \n
\n \n {\" \"}\n Bar Graphs{\" \"}\n

\n \n \n The bar graph plots show how projected impacts of\n climate related losses unfold with time and according to\n the selected scenarios The Graphs gives the insights on\n how climate related losses on the selected losses would\n increase with IPCC scenarios.{\" \"}\n

\n \n The time range is 2020, 2030 (year 2030 to 2050 time\n period) and 2050 (year 2050 to 2070 time period). The\n graphs give clear indications on how the losses would\n increase from current base period (i.e., 2020) as well\n as how the losses with acerbate from a very string\n scenario (RCP 2.6) to business as usual scenario (RCP\n 8.5)\n

\n \n

\n Fig. 1 {\" \"}\n Figure shows change in Dollar losses and with respect to\n years and Representative concentration pathways\n

\n
\n\n \n Climate Risk Progress Bars{\" \"}\n

\n \n \n The Risk severity charts shows the severity climate\n hazard scores. Here low scores means that assets in the\n portfolio have low exposure to the hazard selected while\n high score means that assets are located on high risky\n zone. The lowest score is zero for progress bar and\n highest is 100.\n
\n Here climate value at risk is the expected maximum\n losses from climate hazard per year while maximum\n exposure is the sum of highest loss the assets in the\n portfolio from a particular climate hazard.\n

\n \n

\n Fig. 2 {\" \"}\n Figure shows severity of climate hazard along with max\n probable yearly loss and max expected exposure from any\n hazard posing highest loss on the portfolio\n

\n \n\n \n Progress Bars{\" \"}\n

\n \n \n There are two progress bars that represent the severity\n of hazard in low low, medium and high as well as\n potential losses. These provide breakdown for the losses\n and severity for each climate variables. They also\n provide info on direct damages losses and operational\n losses, giving the transparency on the losses in the\n protfolio.{\" \"}\n

\n \n \n

\n Fig. 3 {\" \"}\n Figure shows the breakdown of climate hazard severity\n and a loss breakdown corresponding to different\n variables using progress charts\n

{\" \"}\n \n\n \n Asset Heat-Maps\n

\n \n \n The asset-variable heat maps enable users to access the\n severity of all the variables on each asset in a single\n cursory view. The size of the bubble represents higher\n intensity of hazard while smaller bubble represents\n lower severity. The max value of hazard for this map is\n 10 and lowest is 0. The severity of the hazards is also\n represented with colour coding I.e., yellow (low risk)\n to red (high risk){\" \"}\n

\n \n

\n Fig. 4 {\" \"}\n Figure shows heat scores of all the selected climate\n variables. The minimum score is 0 (no risk) and max\n score is 10 (highest risk). The size of the bubbles\n represents intensity of hazard\n

\n \n \n
\n\n \n
\n \n \n
\n \n \n \n \n 1. How is the Climate Value at Risk %\n Calculated?\n \n \n \n

\n Individual Climate Value at Risk % is calculated\n by Taking the Individual Asset Loss and Dividing\n this number by the asset valuation. Total\n Climate value at risk is calculated by taking\n the Total combined losses and dividing by the\n total Maximum Exposure.\n

\n
\n
\n\n \n \n \n 2. Why do assets in the same geographical region\n not share sea level rise risk statistics?\n \n \n \n

\n Intensel uses HK Observatory district data set\n with granularity at 30 meters. We use SRTM\n (Shuttle Radar Topography Mission) as DEM\n (Digital elevation Model) data as these are more\n accurate than Coastal Dem (used by Climate\n Central) data especially for small islands such\n as HK Island.\n
\n Intensel's results do not reflect the access to\n the assets due to the inundation of road network\n and surrounding area.\n

\n
\n
\n\n \n \n \n 3. From climate risk assessment perspective,\n should we focus on the assets which are the most\n exposed to climate hazards or which have the\n highest financial loss?\n \n \n \n

\n The focus should be on the asset with higher\n potential loss and higher exposure to climate\n hazards (exposure=probability 1% *severity of\n climate). The probability/likelihood is the 1%\n across all hazards, but the severity of climate\n hazards is not the same on various assets.\n Nonetheless, to be able to use the dollar loss\n Intensel would recommend doing so only when each\n asset has All the asset relevant data, ie\n revenues generated in that location, area, cost,\n valuation, ownership etc. At least need to be\n more accurate on how much of that loss you own\n (ownership). If you do not have that\n information, the financial dollar loss number is\n potentially overstated.\n

\n
\n
\n\n \n \n \n 4. How is the Maximum exposure calculated?\n \n \n \n

\n Maximum Exposure is calculated as the valuation\n of all assets that receive climate risk loss,\n those that do not receive damage will not be\n included in the Maximum exposure.\n

\n
\n
\n\n \n \n \n 5. How are the climate risk variables estimated\n – is it based on HK experience?\n \n \n \n

\n There are over nine climate risk variables on\n the Intensel blue-swan platform, estimations of\n most variables vary from one to another. We try\n to model these variables according to the best\n standards and peer-reviewed models. Further, as\n the platform provides global analysis, we’re\n developing a uniformed modelling approach\n globally. However, several inputs are\n region-specific, for example, DEMs, bathymetry,\n footprints, historical data; thus, model output\n is both scalable and includes region specific\n information, Pluvial/fluvial Flood Modelling:\n In-house models using HEC (Hydrologic\n Engineering Centre) and Flow-2d. Storm Surge:\n HEC and Geo hydrodynamic models.’ Extreme heat:\n outputs from integrated GCM-RCM models. These\n are in-house models with validation available\n upon request.\n

\n
\n
\n\n \n \n \n 6. The attached xls contains different levels of\n climate risk variables for different years. Is\n the number an average value under different\n scenario-year? Would the entire probability\n distribution across years be available upon\n request?\n \n \n \n

\n The outputs are based on recommendations by\n TCFD, where the recommendations are to provide\n physical climate risk for two time periods,\n 2030-2050 and 2050 -2070 only. Though we can\n generate these events yearly, we neither\n recommend nor prefer this for two reasons: 1. As\n we provide asset-level granularity, the size of\n the datasets increases exponentially and can go\n beyond 100 terabytes as 9 variables, global\n yearly for 70+ years. This much data is\n challenging to handle as cloud infrastructure\n handling becomes arduous. 2. Climate data does\n not make sense yearly, unlike the weather.\n Climate data’s mean over the time variables\n makes more sense as the uncertainty is reduced\n when averaged over the time period. It gives a\n much better estimation of extremes and trends.\n

\n
\n
\n\n \n \n \n 7. How does the climate risk variable translate\n to Asset Damage and Operational Loss – is this\n based on HK experiences?\n \n \n \n

\n The losses are based on the insurance approach\n wherein Mean Damage Ratio (MDR) is modelled for\n different levels of floods and surges for types,\n floors, basements of assets. The MDR approach is\n documented in various journals. Temperature loss\n models are trained on historical losses because\n of the increase/decrease in energy consumption\n and change in temperature and humidity; both are\n modelled from outputs of integrated GCM-RCMs.\n (Ref: 10.1007/s11069-013-1017-z\n https://doi.org/10.1007/s11069-013-1017-z ,\n http://hdl.handle.net/2117/22402 etc.) The\n typhoon loss is based on calculations of\n coefficients for factors that lead to typhoon\n losses and trained with historical data. This\n was developed at Intensel with our PhD who also\n published a paper on this loss calculation\n approach (Ref:\n https://doi.org/10.3389/fbuil.2020.575534)\n

\n
\n
\n\n \n \n \n 8. Does the asset damage translate to property\n valuation decrease, and will operational loss\n translate to a reduction in property income? How\n should we interpret the loss number in the xls?\n \n \n \n

\n We provide the ability to adjust property\n valuation according to the client both using\n APIs and UI (User Interface). A client who has\n already calculated an increase/decrease in\n valuation can provide these inputs on their end.\n This is done as an increase and decrease in\n property valuation depends on several variables\n and varies from region to region; modelling this\n is not our expertise. The operations loss\n considers the increase/decrease in economic\n activity in a year; however, this is done with\n the assumption that increase/decrease in all the\n regions is directly proportional to the\n increase/decrease in GDP of a country in the\n coming 60-year period.\n

\n
\n
\n\n \n \n \n 9. Were assumptions made when aggregating the\n damage/loss across perils? Is consideration in\n the correlation between different climate risk\n variables?\n \n \n \n

\n While aggregating the losses, we made sure that\n these individual variable-losses were mutually\n exhaustive and did not overlap. As all the\n outputs are probable max loss, what we give\n clients is a total and break down individual\n losses to better understand the risk. Though the\n losses are mutually exhaustive, two events might\n occur together, like extreme temperature and\n storm surge. The co-occurrence is very difficult\n to model accurately. Hence the client can use\n the individual losses and can create his own set\n of co-occurring events.\n

\n
\n
\n\n \n \n \n 10. Is there an estimation of typhoon risk?\n \n \n \n

\n Intensel uses multiple in-house models for\n typhoon risk (mainly rain and wind from\n typhoons). These models take into consideration\n some of the essential factors for modelling\n typhoon risk, such as changes in wind intensity\n over time, change in 5 days cumulative rainfall\n from the typhoon, deviation in typhoon tracks\n and landfalls (this has a significant impact on\n exposure) and lastly the prediction of\n month/year and location of origin of typhoons.\n

\n
\n
\n
\n
\n \n
\n
\n\n \n

\n Summary SaaS model worksheet for BD Team (Updated on 1 JUN\n 2022)\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n Hazard\n \n SAAS\n \n Deep Analysis\n \n Risk Index\n \n Notes\n
ModelledNot ModelledModelledModelled
Name (source)Validation/AccuracyModel not availableData sourceName (source)Validation/AccuracyName if YESValidation/Accuracy
Rainfall Flood\n [Widely Adapted Model] HEC-RAS (Rain on grid),\n Flo-2d (urban)\n 80%HEC-RAS (result with Time Step) 80%Analytical Hierarchy ProcessNA (As Judgemental)
River floodN/AN/AGLOBAL RASTER DATASETHECRAS (Discharge input to river cells)80%Analytical Hierarchy ProcessNA (As Judgemental)
Snow Fall\n No Model/Downscaled for Improve the resolution\n using (SGAN Model)\n Chelsa/IPCC-CMIP5-GCM's
Temperature \n No Model/Downscaled for Improve the resolution\n using (SGAN Model)\n Chelsa/IPCC-CMIP5-GCM's
Sea Level Rise \n [Intensel Model] Global Coastal areas Inundation\n based on Mean sea level rise projections using\n Region growing Model\n
Storm Surge \n [Intensel Model] Based on peer reviwed article and\n inhouse developed technique for shore connected\n region segmentation{\" \"}\n \n GESLA‑2: Global extreme sea level analysis version\n 2 (tide gauge data).\n \n Normalised maximum surge depth over 9x9 nearest\n neighbour\n \n {\" \"}\n Refe article: Kirezci, E., Young, I.R.,\n Ranasinghe, R. et al. Projections of global-scale\n extreme sea levels and resulting episodic coastal\n flooding over the 21st Century. Sci Rep 10, 11629\n (2020). https://doi.org/10.1038/s41598-020-67736-6\n
Extreme Heat \n [Widely Adapted Model] Window based max over\n 5years from GCM predictions\n IPCC-CMIP5 GCMs
Landslide \n No Model/Downscaled for Improve the resolution\n using (SGAN Model)\n NASAHistorical land silde data
Typhoon \n [Intensel RCP Model but Lost the methodology]. We\n are trying to build a model.{\" \"}\n NASAAnalytical Hierarchy ProcessNA (As Judgemental)
Drought \n No Model/Downscaled for Improve the resolution\n using (SGAN Model){\" \"}\n SPI - IPCC -CMIP6 - GCM
\n \n
\n
\n
\n
\n {/*

Summary SaaS model worksheet for BD Team (Updated on 1 JUN 2022)

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n
HazardSAASDeep AnalysisRisk IndexNotes
ModelledNot ModelledModelledModelled
Name (source)Validation/AccuracyModel not availableData sourceName (source)Validation/AccuracyName if YESValidation/Accuracy
Rainfall Flood[Widely Adapted Model] HEC-RAS (Rain on grid), Flo-2d (urban)80%HEC-RAS (result with Time Step) 80%Analytical Hierarchy ProcessNA (As Judgemental)
River floodN/AN/AGLOBAL RASTER DATASETHECRAS (Discharge input to river cells)80%Analytical Hierarchy ProcessNA (As Judgemental)
Snow FallNo ModelIPCC-CMIP5-GCM's
Temperature No Model/Downscaled for Improve the resolution using (SGAN Model)IPCC-CMIP5-GCM's
Sea Level Rise [Intensel Model] Global Coastal areas Inundation based on Mean sea level rise projections using Region growing Model
Storm Surge [Intensel Model] Based on peer reviwed article and inhouse developed technique for shore connected region segmentation GESLA‑2: Global extreme sea level analysis version 2 (tide gauge data).Normalised maximum surge depth over 9x9 nearest neighbour Refe article: Kirezci, E., Young, I.R., Ranasinghe, R. et al. Projections of global-scale extreme sea levels and resulting episodic coastal flooding over the 21st Century. Sci Rep 10, 11629 (2020). https://doi.org/10.1038/s41598-020-67736-6
Extreme Heat [Widely Adapted Model] Window based max over 5years from GCM predictionsIPCC-CMIP5 GCMs
Landslide No ModelNASAHistorical land silde data
Typhoon [Intensel RCP Model but Lost the methodology]. We are trying to build a model. NASAAnalytical Hierarchy ProcessNA (As Judgemental)
Drought No Model/Downscaled for Improve the resolution using (SGAN Model) SPI - IPCC -CMIP6 - GCM
\n
\n \n \n \n */}\n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n insurance: state.project.insurance,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getInsurance: (formdata) => {\n dispatch(project.getInsurance(formdata));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Methodology);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { locus, auth } from \"../actions\";\nimport TransitionTable from \"./transitiontable\";\nimport { Row, Col, Container, Tabs, Tab, Breadcrumb } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { Table } from \"antd\";\nimport { CSVLink } from \"react-csv\";\nimport \"./transitionrisk.css\";\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Dropdown,\n Accordion,\n} from \"semantic-ui-react\";\nimport { CSVReader } from \"react-papaparse\";\nimport upload from \"../assets/upload.png\";\n\nconst buttonRef = React.createRef();\nlet csvcards = [];\nlet selectedList = [];\n\nconst sample = process.env.REACT_APP_SAMPLE_EXCEL_FILE;\n\nconst columns = [\n {\n title: \"Company Name\",\n key: \"company_name\",\n dataIndex: \"company_name\",\n },\n {\n title: \"Portfolio Claim On Revenue\",\n dataIndex: \"portfolio_claim_on_revenue\",\n key: \"portfolio_claim_on_revenue\",\n },\n {\n title: \"Carbon FootPrint\",\n dataIndex: \"carbon_footprint\",\n key: \"carbon_footprint\",\n },\n {\n title: \"Weighted Average Carbon Intensity\",\n dataIndex: \"weighted_average_carbon_intensity\",\n key: \"weighted_average_carbon_intensity\",\n },\n {\n title: \"Total Carbon Emission Ownership Weight on Market Cap\",\n dataIndex: \"total_carbon_emmision_ownership_weight_on_market_cap\",\n key: \"total_carbon_emmision_ownership_weight_on_market_cap\",\n },\n {\n title: \"Carbon Intensity\",\n dataIndex: \"carbon_intensity\",\n key: \"carbon_intensity\",\n },\n];\nconst csvData = [\n [\n \"Company Name\",\n \"Investment (in USD)\",\n \"NAV%\",\n \"Market Cap (in USD)\",\n \"Revenue(in USD)\",\n \"Scope 1 and 2 GHG emission (in t CO2e)\",\n \"Region\",\n \"Sector\",\n ],\n];\n\nclass TransitionRisk extends Component {\n state = {\n portfolio_value: \"\",\n portfolio_name: \"\",\n selectedTags: [],\n allTags: [],\n csv: \"\",\n locations: [],\n loading: false,\n modalOpen: false,\n };\n\n handleOpenDialog = (e) => {\n if (buttonRef.current) {\n buttonRef.current.open(e);\n }\n };\n\n handleFileLoad = (data) => {\n csvcards = [];\n for (let i = 1; i < data.length - 1; i++) {\n console.log(\"filename\", data);\n\n if ((data[i].data[5] = \" \")) {\n data[i].data[5] = 0;\n }\n\n csvcards.push({\n company_name: data[i].data[0],\n investment_in_usd: data[i].data[1],\n nav_in_perc: data[i].data[2],\n market_cap_in_usd: data[i].data[3],\n revenue_in_usd: data[i].data[4],\n scope_1_and_2_GHG_emission: data[i].data[5],\n region: data[i].data[6],\n sector: data[i].data[7],\n });\n }\n this.setState({ allTags: csvcards }, () =>\n console.log(\"multiple\", this.state.allTags)\n );\n };\n\n handelOnError = (err, file, inputElem, reason) => {\n console.log(err);\n };\n addtoSelected(asset) {\n selectedList.push(asset);\n var array = [...this.state.allTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ allTags: array });\n }\n this.setState({ selectedTags: selectedList, locations: selectedList });\n }\n remove(asset) {\n var array = [...this.state.selectedTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ selectedTags: array, locations: array }, () =>\n console.log(\"remove\", this.state.selectedTags)\n );\n }\n this.state.allTags.push(asset);\n }\n addAll = () => {\n var array = [...this.state.allTags];\n this.setState({ selectedTags: array, locations: array });\n };\n clearAll = () => {\n this.setState({ selectedTags: \"\", locations: \"\", allTags: \"\" });\n };\n\n handleTransition = (data) => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", this.state.portfolio_name);\n formdata.append(\"portfolio_value\", this.state.portfolio_value);\n formdata.append(\"companies_data\", JSON.stringify(data));\n\n this.props.getTransition(formdata);\n };\n handleChange = (e) => {\n console.log(\"csv\", e.target.files[0]);\n this.setState({ csv: e.target.files[0] });\n };\n\n handleFileTransition = () => {\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", this.state.portfolio_name);\n formdata.append(\"portfolio_value\", this.state.portfolio_value);\n formdata.append(\"uploaded_file\", this.state.csv);\n\n this.props.getTransition(formdata);\n };\n\n handleOpen = () => this.setState({ modalOpen: true });\n handleClose = () =>\n this.setState({\n modalOpen: false,\n });\n\n onSubmit = (e) => {\n e.preventDefault();\n\n let formdata = new FormData();\n\n formdata.append(\"companies_data\", JSON.stringify(this.state.locations));\n\n formdata.append(\"portfolio_name\", this.state.portfolio_name);\n formdata.append(\"portfolio_value\", this.state.portfolio_value);\n\n this.props.getTransition(formdata);\n };\n\n render() {\n console.log(\"env\", this.props.errors);\n\n var csvtags = [];\n if (csvcards.length > 0) {\n for (let i = 0; i < this.state.allTags.length; i++) {\n csvtags.push(\n \n );\n }\n }\n return (\n <>\n \n \n
\n \n Transition Risk\n \n
\n \n \n \n \n \n \n \n
Input Data
\n \n \n \n {\" \"}\n
\n \n \n this.setState({ portfolio_value: e.target.value })\n }\n />\n {!this.state.portfolio_value ? (\n

Required Field

\n ) : null}\n
\n \n \n
\n \n \n this.setState({ portfolio_name: e.target.value })\n }\n />\n {!this.state.portfolio_name ? (\n

Required Field

\n ) : null}\n
\n \n
\n \n\n {this.props.transition.error ? (\n

\n {this.props.transition.error}\n

\n ) : null}\n \n \n
\n\n \n \n \n \n

\n \n Note 1:{\" \"}\n {\" \"}\n NAV% equal to Investment Value of the Company /\n Portfolio Value.\n
\n
\n \n Note 2:{\" \"}\n {\" \"}\n If Scope 1 and 2 GHG Emission of the Company is not\n available, the User can leave this fill blank. Please\n provide additional data for “Region” and “Sector”,\n then BlueSwan platform will project the Scope 1 and 2\n GHG Emission for the User. The result will be shown in\n the output data table once the user clicks the\n “Submit” button for this “Input Data Table\".\n

\n \n
\n \n
\n
\n \n \n \n

\n \n Upload CSV \n \n \n \n Download Sample CSV\n \n \n \n \n

\n\n {this.props.transition.error ? (\n

\n {this.props.transition.error}\n

\n ) : null}\n\n
\n \n this.setState({ portfolio_name: e.target.value })\n }\n style={{ border: \"0px\" }}\n placeholder=\"Portfolio Name\"\n />\n\n \n this.setState({ portfolio_value: e.target.value })\n }\n style={{ border: \"0px\" }}\n placeholder=\"Portfolio Value (in USD)\"\n />\n
\n
\n
\n
\n
\n \n File Input\n \n (this.filesInput = input)}\n name=\"file\"\n onChange={this.handleChange}\n />\n
\n\n {/* \n \n How to Upload\n \n\n \n \n Download Sample CSV\n \n \n\n
\n
\n\n \n {({ file }) => (\n \n \n \n \n No file selected\n \n \n \n \n \n \n \n \n \n \n )}\n \n
\n
\n \n \n

All Assets

\n
{csvtags}
\n \n \n \n Add All\n \n \n Clear All\n \n \n \n

Selected Assets

\n
\n {this.state.selectedTags.length > 0\n ? this.state.selectedTags.map((asset, index) => (\n \n ))\n : null}\n
\n \n \n
*/}\n
\n
\n \n Submit\n \n \n
\n
\n
\n
\n {/**/}\n
\n \n \n Create Carbon Module Project\n \n \n \n \n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n transition: state.locus.transition,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getTransition: (formdata) => {\n dispatch(locus.getTransition(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TransitionRisk);\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class IndexRCPDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let a = 0;\n let b = 0;\n let c = 0;\n\n let max = 0;\n console.log(\"company rcpdonut\", this.state.piedata);\n if (this.state.piedata) {\n x = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][\"26\"];\n y = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][`45`];\n z = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][`85`];\n a = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][\"26\"];\n b = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][`45`];\n c = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][`85`];\n max = this.state.piedata[\"index\"][\"scenario_max\"];\n }\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n } else {\n data = [\n { name: \"Index\", RCP: \"2.6\", Loss: parseFloat(a.toFixed(2)) },\n\n {\n name: \"Index\",\n RCP: \"4.5\",\n Loss: parseFloat(b.toFixed(2)),\n },\n\n {\n name: \"Index\",\n RCP: \"8.5\",\n Loss: parseFloat(c.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"RCP\",\n xField: \"name\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n }\n\n return (\n
\n \n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nimport { Row, Col } from \"react-bootstrap\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Column } from \"@ant-design/charts\";\n\nimport { Button } from \"semantic-ui-react\";\n\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet colors = [];\nlet config = {};\n\nexport default class IndexYEARDonut extends Component {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n this.state.piedata = this.props.data;\n this.state.analysis = this.props.analysis;\n\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let a = 0;\n let b = 0;\n let c = 0;\n let max = 0;\n\n if (this.state.analysis == \"rcp\" && this.state.piedata) {\n x = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][\"2020\"];\n y = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][`2030`];\n z = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][`2050`];\n a = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][\"2020\"];\n b = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][`2030`];\n c = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][`2050`];\n max = this.state.piedata[\"index\"][\"year_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n name: \"Index\",\n Year: \"2020\",\n Loss: parseFloat(a.toFixed(2)),\n },\n\n {\n name: \"Index\",\n Year: \"2030\",\n Loss: parseFloat(b.toFixed(2)),\n },\n\n {\n name: \"Index\",\n Year: \"2050\",\n Loss: parseFloat(c.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"Year\",\n xField: \"name\",\n\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n name: \"Index\",\n Year: \"2020\",\n Loss: parseFloat(a.toFixed(2)),\n },\n\n {\n name: \"Index\",\n Year: \"2030\",\n Loss: parseFloat(b.toFixed(2)),\n },\n\n {\n name: \"Index\",\n Year: \"2050\",\n Loss: parseFloat(c.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"Year\",\n xField: \"name\",\n\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.state.analysis === \"ssp\" &&\n this.state.piedata[\"rcp_constant\"][\"2100\"]\n ) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n w = this.state.piedata[\"rcp_constant\"][\"2100\"];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat((w / 1000).toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n
\n );\n }\n}\n","import React, { useState, useEffect } from \"react\";\nimport { geoMercator, geoPath } from \"d3-geo\";\nimport { feature } from \"topojson-client\";\n\nconst geoUrl =\n \"https://intensel-tiles.s3.amazonaws.com/company_dash_maps/countries-filtered-topojson.json\";\nconst dataUrl =\n \"https://intensel-tiles.s3.amazonaws.com/company_dash_maps/cvar_by_countries_rcp.json\";\n\nconst CompanyMap = () => {\n const projection = geoMercator()\n .scale(160)\n .translate([800 / 2, 450 / 2]);\n\n // State to store geography data\n const [geographies, setGeographies] = useState([]);\n const [data, setData] = useState([]);\n // State to store hovered country\n const [currentValue, setCurrentValue] = useState(null);\n // State to store hovered index\n const [hoveredCountryIndex, setHoveredCountryIndex] = useState(null);\n\n useEffect(() => {\n fetch(geoUrl).then((response) => {\n if (response.status !== 200) {\n console.log(`There was a problem: ${response.status}`);\n return;\n }\n response.json().then((worlddata) => {\n setGeographies(\n feature(worlddata, worlddata.objects[\"countries-filtered\"]).features\n );\n });\n });\n\n fetch(dataUrl).then((response) => {\n if (response.status !== 200) {\n console.log(`There was a problem: ${response.status}`);\n return;\n }\n response.json().then((data) => {\n console.log(\"data\", data);\n setData(data);\n });\n });\n }, []);\n const handleCountryClick = (countryIndex) => {\n console.log(\"Clicked on country: \", geographies[countryIndex]);\n };\n\n // get color depending on value 0-7\n const getColor = (value) => {\n switch (true) {\n case value === 0:\n return \"#ffffff\";\n case value > 0 && value <= 2.5:\n return \"#ffbf00\";\n case value > 2.5 && value <= 5:\n return \"#ff7f00\";\n case value > 5 && value <= 7.5:\n return \"#ff3f00\";\n case value > 7.5 && value <= 10:\n return \"#ff0000\";\n default:\n return \"#ffffff\";\n }\n };\n\n return (\n
\n \n \n {\n // draw each country\n geographies.map((d, i) => (\n handleCountryClick(i)}\n onMouseEnter={() => {\n const { NAME_EN, ISO_A3 } = d.properties;\n setCurrentValue({\n name: NAME_EN,\n value: ISO_A3 in data ? data[ISO_A3][\"Cvar in %\"] : 0,\n });\n setHoveredCountryIndex(i);\n }}\n onMouseLeave={() => {\n setCurrentValue(null);\n setHoveredCountryIndex(null);\n }}\n >\n {/* Tooltip */}\n {/* {(d as Feature).properties.non_zero_mean.toFixed(2)} */}\n \n ))\n }\n \n \n {/* Floating Info Tab */}\n
\n
\n
\n
\n {currentValue ? (\n <>\n
\n Country\n
\n
\n {currentValue.name} : {currentValue.value}\n
\n \n ) : (\n
\n Hover over a country\n
\n )}\n
\n
\n
\n
\n
\n );\n};\n\nexport default CompanyMap;\n","import React, { PureComponent } from \"react\";\nimport { Column } from \"@ant-design/charts\";\n\nimport {\n ComposedChart,\n Line,\n Area,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ScatterChart,\n Scatter,\n Cell,\n ResponsiveContainer,\n} from \"recharts\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Button } from \"semantic-ui-react\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport {\n VictoryBar,\n VictoryChart,\n VictoryTheme,\n VictoryLine,\n VictoryAxis,\n} from \"victory\";\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet config = {};\n\nexport default class CompanyRCPDonut extends PureComponent {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n let bottom =\n this.props.analysis == \"rcp\"\n ? \"Representative concentration pathways (RCPs)\"\n : \"Shared Socioeconomic pathways (SSPs)\";\n this.state.piedata = this.props.data;\n let x = 0;\n let y = 0;\n let z = 0;\n let a = 0;\n let b = 0;\n let c = 0;\n\n let max = 0;\n console.log(\"company rcpdonut\", this.state.piedata);\n if (this.state.piedata) {\n x = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][\"26\"];\n y = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][`45`];\n z = this.state.piedata[\"company\"][\"scenario_loss_for_year\"][`85`];\n a = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][\"26\"];\n b = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][`45`];\n c = this.state.piedata[\"index\"][\"scenario_loss_for_year\"][`85`];\n max = this.state.piedata[\"company\"][\"scenario_max\"];\n }\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n RCP: \"2.6\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n xField: \"RCP\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n } else {\n data = [\n { name: \"Company\", RCP: \"2.6\", Loss: parseFloat(x.toFixed(2)) },\n\n {\n name: \"Company\",\n RCP: \"4.5\",\n Loss: parseFloat(y.toFixed(2)),\n },\n\n {\n name: \"Company\",\n RCP: \"8.5\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"RCP\",\n xField: \"name\",\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"RCP\",\n seriesField: \"RCP\",\n\n color: [\"#2077b4\", \"#f67e2a\", \"#4da02d\"],\n };\n }\n\n return (\n
\n \n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nimport { Row, Col } from \"react-bootstrap\";\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { Column } from \"@ant-design/charts\";\n\nimport { Button } from \"semantic-ui-react\";\n\nimport { Modal } from \"semantic-ui-react\";\n\nlet data = [];\nlet colors = [];\nlet config = {};\n\nexport default class CompanyYEARDonut extends Component {\n state = {\n activeIndex: 0,\n piedata: \"\",\n key_finding: false,\n analysis: \"rcp\",\n };\n\n onPieEnter = (data, index) => {\n this.setState({\n activeIndex: index,\n piedata: \"\",\n });\n };\n handleKeyFindings = () => {\n this.setState({\n key_finding: true,\n });\n };\n handleClose = () => {\n this.setState({\n key_finding: false,\n });\n };\n\n render() {\n this.state.piedata = this.props.data;\n this.state.analysis = this.props.analysis;\n\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n let a = 0;\n let b = 0;\n let c = 0;\n let max = 0;\n\n if (this.state.analysis == \"rcp\" && this.state.piedata) {\n x = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][\"2020\"];\n y = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][`2030`];\n z = this.state.piedata[\"company\"][\"year_loss_for_scenario\"][`2050`];\n a = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][\"2020\"];\n b = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][`2030`];\n c = this.state.piedata[\"index\"][\"year_loss_for_scenario\"][`2050`];\n max = this.state.piedata[\"company\"][\"year_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000) {\n data = [\n {\n name: \"Company\",\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n\n {\n name: \"Company\",\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n\n {\n name: \"Company\",\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"Year\",\n xField: \"name\",\n\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n } else {\n data = [\n {\n name: \"Company\",\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n\n {\n name: \"Company\",\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n\n {\n name: \"Company\",\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n ];\n config = {\n data,\n isGroup: true,\n seriesField: \"Year\",\n xField: \"name\",\n\n yAxis: {\n title: {\n text: \"Loss in Million USD\",\n },\n max: max + 0.2 * max,\n },\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n position: \"top\",\n\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n };\n }\n } else if (\n this.state.analysis === \"ssp\" &&\n this.state.piedata[\"rcp_constant\"][\"2100\"]\n ) {\n x = this.state.piedata[\"rcp_constant\"][\"2020\"];\n y = this.state.piedata[\"rcp_constant\"][`2030`];\n z = this.state.piedata[\"rcp_constant\"][`2050`];\n w = this.state.piedata[\"rcp_constant\"][\"2100\"];\n max = this.state.piedata[\"rcp_max\"];\n\n if (x > 1000 || y > 1000 || z > 1000 || w > 1000) {\n data = [\n //{name:'Exposure',value:a.toFixed(2),dot:a.toFixed(2)},\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat((w / 1000).toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n } else {\n data = [\n {\n Year: \"2020\",\n Loss: parseFloat(x.toFixed(2)),\n },\n {\n Year: \"2030\",\n Loss: parseFloat(y.toFixed(2)),\n },\n {\n Year: \"2050\",\n Loss: parseFloat(z.toFixed(2)),\n },\n {\n Year: \"2100\",\n Loss: parseFloat(w.toFixed(2)),\n },\n ];\n config = {\n data,\n yAxis: {\n max: max + 0.2 * max,\n },\n xField: \"Year\",\n\n yField: \"Loss\",\n minColumnWidth: 20,\n maxColumnWidth: 20,\n legend: {\n layout: \"vertical\",\n position: \"right\",\n },\n label: {\n // 可手动配置 label 数据标签位置\n position: \"top\",\n // 'top', 'bottom', 'middle',\n // 配置样式\n style: {\n fill: \"#000000\",\n opacity: 0.6,\n },\n },\n xAxis: {\n label: {\n autoHide: true,\n autoRotate: false,\n },\n },\n colorField: \"Year\",\n seriesField: \"Year\",\n\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n };\n }\n }\n\n return (\n
\n \n {config.data && config.data.length > 0 ? (\n \n {this.state.analysis == \"ssp\" ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n
\n );\n }\n}\n","import React from \"react\";\nimport { ResponsiveHeatMap } from \"@nivo/heatmap\";\nimport { Row, Col } from \"react-bootstrap\";\nconst CompanyHeatmap = (props) => {\n let heatmapdata = [];\n let commonProps = {};\n\n console.log(\"heatmap_classic\", props.data.values[0][\"River Flood\"]);\n\n for (let i = 0; i < 2; i++) {\n heatmapdata.push({\n id: props.data.names[i],\n\n data: [\n {\n x: \"River Flood\",\n y: props.data.values[i][\"River Flood\"],\n },\n\n { x: \"Drought\", y: props.data.values[i][\"Drought\"] },\n { x: \"Storm Surge\", y: props.data.values[i][\"Storm Surge\"] },\n { x: \"Extreme heat\", y: props.data.values[i][\"Extreme Heat\"] },\n { x: \"Snow Fall\", y: props.data.values[i][\"Snow Fall\"] },\n { x: \"Rainfall Flood\", y: props.data.values[i][\"Rainfall Flood\"] },\n { x: \"Typhoon\", y: props.data.values[i][\"Typhoon\"] },\n { x: \"Sea Level Rise\", y: props.data.values[i][\"Sea Level Rise\"] },\n { x: \"Landslide\", y: props.data.values[i][\"Landslide\"] },\n { x: \"Wild Fire\", y: props.data.values[i][\"Wild Fire\"] },\n ],\n });\n }\n let n = props.data.names.length;\n\n if (n == 1) {\n commonProps = {\n width: 1150,\n height: 200,\n };\n } else {\n commonProps = {\n width: 1150,\n height: n * 120,\n };\n }\n console.log(\"data_heatmap\", heatmapdata, props.variable);\n\n return (\n -.2s\"\n isInteractive={false}\n axisTop={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: -54,\n legend: \"\",\n legendOffset: 46,\n }}\n colors={{\n type: \"diverging\",\n scheme: \"yellow_orange_red\",\n divergeAt: 0.5,\n minValue: 0,\n maxValue: 100,\n }}\n emptyColor=\"#555555\"\n /*legends={[\n {\n anchor: \"bottom\",\n translateX: 0,\n translateY: 30,\n length: 400,\n thickness: 8,\n direction: \"row\",\n tickPosition: \"after\",\n tickSize: 3,\n tickSpacing: 4,\n tickOverlap: false,\n tickFormat: \">-.2s\",\n title: \"Value →\",\n titleAlign: \"start\",\n titleOffset: 4,\n },\n ]}*/\n />\n );\n};\n\nexport default CompanyHeatmap;\n","import React, { useState, useCallback, useEffect } from \"react\";\nimport {\n Table,\n Input,\n InputNumber,\n Popconfirm,\n Form,\n Typography,\n Progress,\n Select,\n} from \"antd\";\nimport { Icon, Button } from \"semantic-ui-react\";\n\nconst { Option } = Select;\n\nfunction handleChange(value) {\n console.log(`selected ${value}`);\n}\n\nconst EditableCell = ({\n editing,\n dataIndex,\n title,\n inputType,\n record,\n index,\n children,\n ...restProps\n}) => {\n const inputNode =\n inputType === \"select\" ? (\n \n ) : inputType === \"number\" ? (\n \n ) : (\n \n );\n return (\n \n {editing ? (\n \n {inputNode}\n \n ) : (\n children\n )}\n \n );\n};\n\nconst CompanyEditableTable = (props) => {\n console.log(\"company_tale\", props.data);\n\n const [form] = Form.useForm();\n const originData = [];\n\n const [data, setData] = useState(originData);\n\n for (let i = 0; i < props.data.length; i++) {\n originData.push({\n key: i.toString(),\n name: props.data[i].name,\n cvar: props.data[i].cvar,\n company_code: props.data[i].company_code,\n no_of_assets: props.data[i].no_of_assets,\n //construction_cost: props.data[i].construction_cost.toFixed(2),\n //type: props.data[i].type,\n //area: props.data[i].area.toFixed(0),\n ownership: props.data[i].ownership,\n //floors: props.data[i].floors,\n //valuation: props.data[i].valuation,\n climate_score: props.data[i].climate_score.toFixed(0),\n //overall_loss: props.data[i].overall_loss,\n //address: `London Park no. ${i}`,\n });\n }\n useEffect(() => {\n if (props.data) {\n setData(originData);\n }\n }, [setData, props.data]);\n\n console.log(\"table data\", data);\n const [editingKey, setEditingKey] = useState(\"\");\n\n const isEditing = (record) => record.key === editingKey;\n\n const edit = (record) => {\n form.setFieldsValue({\n name: \"\",\n age: \"\",\n address: \"\",\n ...record,\n });\n setEditingKey(record.key);\n };\n\n const cancel = () => {\n setEditingKey(\"\");\n };\n\n const save = async (key) => {\n try {\n const row = await form.validateFields();\n const newData = [...data];\n const index = newData.findIndex((item) => key === item.key);\n\n if (index > -1) {\n const item = newData[index];\n newData.splice(index, 1, { ...item, ...row });\n setData(newData);\n console.log(\"new\", newData[index]);\n props.update(item, newData[index]);\n setEditingKey(\"\");\n } else {\n newData.push(row);\n setData(newData);\n console.log(\"save ka dusra case\");\n setEditingKey(\"\");\n }\n } catch (errInfo) {\n console.log(\"Validate Failed:\", errInfo);\n }\n };\n\n const columns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n width: \"25%\",\n editable: true,\n },\n {\n title: \"Company Code\",\n dataIndex: \"company_code\",\n width: \"15%\",\n },\n {\n title: \"No of Assets\",\n dataIndex: \"no_of_assets\",\n width: \"15%\",\n },\n /* {\n title: \"Type\",\n dataIndex: \"type\",\n width: \"10%\",\n editable: true,\n },\n {\n title: \"Area (sqm)\",\n dataIndex: \"area\",\n width: \"10%\",\n editable: true,\n },\n {\n title: \"Floors\",\n dataIndex: \"floors\",\n width: \"10%\",\n editable: true,\n },\n {\n title: \"Valuation(in US$/sqm)\",\n dataIndex: \"valuation\",\n width: \"10%\",\n editable: true,\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n },*/\n\n {\n title: \"Climate Score\",\n dataIndex: \"climate_score\",\n width: \"12%\",\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n render: (text, record) => ,\n },\n {\n title: \"CVaR (%)\",\n dataIndex: \"cvar\",\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n width: \"10%\",\n editable: false,\n },\n {\n title: \"Ownership (0-100)\",\n dataIndex: \"ownership\",\n width: \"10%\",\n editable: true,\n },\n\n /* {\n title: \"Revenue (in mil US$/year)\",\n dataIndex: \"revenue\",\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n width: \"25%\",\n editable: true,\n },\n {\n title: \"Replacement Value (in US$/sqm)\",\n dataIndex: \"construction_cost\",\n sorter: {\n compare: (a, b) => a.valuation - b.valuation,\n multiple: 3,\n },\n width: \"25%\",\n editable: true,\n },\n {\n title: \"Analyse\",\n dataIndex: \"\",\n width: \"10%\",\n render: (_, record) => (\n props.open(record.name)}\n >\n \n \n ),\n },\n {\n title: \"Action\",\n dataIndex: \"operation\",\n render: (_, record) => {\n const editable = isEditing(record);\n return editable ? (\n \n save(record.key)}\n style={{\n marginRight: 8,\n color: \"black\",\n }}\n >\n Save\n \n \n Cancel\n \n \n ) : (\n edit(record)}\n >\n Edit\n \n );\n },\n },*/\n ];\n const mergedColumns = columns.map((col) => {\n if (!col.editable) {\n return col;\n }\n\n return {\n ...col,\n onCell: (record) => ({\n record,\n inputType: col.dataIndex === \"type\" ? \"select\" : \"text\",\n dataIndex: col.dataIndex,\n title: col.title,\n editing: isEditing(record),\n }),\n };\n });\n return (\n
\n \n \n );\n};\n\nexport default CompanyEditableTable;\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Select,\n Table,\n Checkbox,\n Accordion,\n Dropdown,\n Card,\n} from \"semantic-ui-react\";\nimport rainfall from \"../assets/rainfall_mt.png\";\nimport flood from \"../assets/flood_mt.png\";\nimport fire from \"../assets/fire_mt.png\";\nimport IndexRCPDonut from \"./index_rcpdonut\";\nimport IndexYEARDonut from \"./index_yeardonut\";\nimport drought from \"../assets/drought_mt.png\";\nimport storm from \"../assets/storm_mt.png\";\nimport heat from \"../assets/heat_mt.png\";\nimport wind from \"../assets/wind_mt.png\";\nimport { Column } from \"@ant-design/charts\";\n\nimport bgsummary from \"../assets/summary-bg.png\";\nimport divimg from \"../assets/divimg.png\";\nimport concimg from \"../assets/concimg.png\";\n\nimport tr1 from \"../assets/toprow1.png\";\nimport tr2 from \"../assets/toprow2.png\";\nimport tr3 from \"../assets/toprow3.png\";\nimport tr4 from \"../assets/toprow4.png\";\nimport tr5 from \"../assets/toprow5.png\";\n\nimport MapChart from \"./MapChart\";\nimport CompanyMap from \"./companymap\";\n\nimport { Tooltip, Progress } from \"antd\";\n\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport index from \"../assets/crisk.png\";\nimport { linearGradientDef } from \"@nivo/core\";\nimport { connect } from \"react-redux\";\n\nimport { project, auth, dashboard, locus, asset } from \"../actions\";\nimport Building from \"./building\";\n\nimport \"./dashboard.css\";\n\nimport {\n Tabs,\n Tab,\n Row,\n Col,\n Container,\n tooltip,\n ThemeProvider,\n} from \"react-bootstrap\";\n//import Detail from \"./detail\";\nimport Circle from \"react-circle\";\n\nimport CompanyRCPDonut from \"./company_rcpdonut\";\nimport legend from \"../assets/legend_heatmap.png\";\n\nimport CompanyYEARDonut from \"./company_yeardonut\";\n\nimport CompanyHeatmap from \"./company_heatmap\";\n\nimport BarComponent from \"./barcomponent\";\nimport Progress_bar from \"./progress_bar\";\nimport LossComponent from \"./losscomponent\";\nimport DemoColumn from \"./year_donut\";\n\nimport Map from \"./map\";\nimport WorldMap from \"./worldmap1\";\nimport RiskMap from \"./riskmap\";\nimport CandleStick from \"./candlestick\";\nimport PopupMap from \"./map1\";\nimport CompanyEditableTable from \"./company_table\";\nimport EditableLossTable from \"./losstable\";\nimport EditableValuationTable from \"./valuationtable\";\nimport EditableClimateTable from \"./climatetable\";\nimport MdryearDonut from \"./mdryeardonut\";\nimport MdrrcpDonut from \"./mdrrcpdonut\";\nimport SingleMdryearDonut from \"./singlemdryeardonut\";\nimport SingleMdrrcpDonut from \"./singlemdrrcpdonut\";\n\nimport SummaryMap from \"./summarymap\";\nimport LossPercentComponent from \"./loss_percent_component\";\n\nlet data = [];\nlet options = [];\nlet Item = [];\nlet singledata = [];\nlet data01 = [];\nlet flat_data = [];\n\nconst ContinentOptions = [];\nconst FinanceOptions = [\n { key: \"financial\", value: true, text: \"Financial\" },\n { key: \"percent\", value: false, text: \"Percentage\" },\n];\nconst ContentOptions = [\n { key: \"add\", value: true, text: \"Add Content\" },\n { key: \"remove\", value: false, text: \"Remove Content\" },\n];\nconst AnalysisOptions = [\n { key: \"rcp\", value: \"rcp\", text: \"RCP\" },\n { key: \"ssp\", value: \"ssp\", text: \"SSP\" },\n];\nconst HazardOptions = [\n { key: \"River Flood\", value: \"river_flood\", text: \"River Flood\" },\n { key: \"Rainfall Flood\", value: \"rainfall_flood\", text: \"Rainfall Flood\" },\n\n { key: \"Drought\", value: \"drought\", text: \"Drought\" },\n { key: \"Landslide\", value: \"landslide\", text: \"Landslide\" },\n { key: \"Storm Surge\", value: \"storm_surge\", text: \"Storm Surge\" },\n\n { key: \"Extreme heat\", value: \"extreme_heat\", text: \"Extreme heat\" },\n { key: \"Typhoon\", value: \"typhoon\", text: \"Typhoon\" },\n { key: \"Snow Fall\", value: \"snow_melt\", text: \"Snow Fall\" },\n { key: \"Sea Level Rise\", value: \"sea_level_rise\", text: \"Sea Level Rise\" },\n { key: \"Wild Fire\", value: \"wild_fire\", text: \"Wild Fire\" },\n];\n\nconst RcpOptions = [\n { key: 2.6, value: 2.6, text: \"2.6\" },\n { key: 4.5, value: 4.5, text: \"4.5\" },\n { key: 8.5, value: 8.5, text: \"8.5\" },\n];\nlet VariableOptions = [];\nlet AssetOptions = [];\nconst YearOptions = [\n { key: 2030, value: 2030, text: 2030 },\n { key: 2050, value: 2050, text: 2050 },\n];\nconst YearOptions_ssp = [\n { key: 2030, value: 2030, text: 2030 },\n { key: 2050, value: 2050, text: 2050 },\n { key: 2100, value: 2100, text: 2100 },\n];\nconst basementOptions = [\n { key: \"yes\", value: \"yes\", text: \"yes\" },\n { key: \"no\", value: \"no\", text: \"no\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst constructionOptions = [\n { key: \"wood\", value: \"wood\", text: \"wood\" },\n { key: \"concrete\", value: \"concrete\", text: \"concrete\" },\n { key: \"masonry\", value: \"masonry\", text: \"masonry\" },\n { key: \"xs home\", value: \"xs home\", text: \"xs home\" },\n { key: \"light metal\", value: \"light metal\", text: \"light metal\" },\n { key: \"steel\", value: \"steel\", text: \"steel\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst IndexOptions = [\n { key: \"DAX\", value: \"DAX\", text: \"DAX\" },\n { key: \"DOWJONES\", value: \"DOWJONES\", text: \"DOWJONES\" },\n { key: \"EURO\", value: \"EURO\", text: \"EURO\" },\n { key: \"HSI\", value: \"HSI\", text: \"HSI\" },\n { key: \"S&P500\", value: \"S&P500\", text: \"S&P500\" },\n { key: \"NIFTY\", value: \"NIFTY\", text: \"NIFTY\" },\n];\nconst storiesOptions = [\n { key: 1, value: 1, text: 1 },\n { key: 2, value: 2, text: 2 },\n { key: \"3 or More\", value: \"3 or More\", text: \"3 or More\" },\n { key: \"unknown\", valeu: \"unknown\", text: \"unknown\" },\n];\nconst occupancyOptions = [\n { key: \"res\", value: \"res\", text: \"res\" },\n { key: \"com\", value: \"com\", text: \"com\" },\n { key: \"ind\", value: \"ind\", text: \"ind\" },\n { key: \"unknown\", value: \"unknown\", text: \"unknown\" },\n];\nconst tableOptions = [\n { key: \"Top 3\", value: 3, text: \"Top 3\" },\n { key: \"Top 5\", value: 5, text: \"Top 5\" },\n { key: \"Top 10\", value: 10, text: \"Top 10\" },\n];\nconst CountOptions = [\n { key: \"Top 3\", value: \"Top 3\", text: \"Top 3\" },\n { key: \"Top 5\", value: \"Top 5\", text: \"Top 5\" },\n { key: \"All\", value: \"All\", text: \"All\" },\n];\nlet ParameterOptions = [\n { key: \"valuation\", value: \"valuation\", text: \"valuation\" },\n { key: \"loss\", value: \"loss\", text: \"Overall Loss\" },\n];\nlet PropertyOptions = [];\n\nclass CompanyDashboard extends Component {\n constructor(props) {\n super(props);\n }\n state = {\n activeIndex: 0,\n lossopen: false,\n index: \"\",\n heatopen: false,\n articleopen: false,\n percentopen: false,\n project: \"\",\n variable: \"River Flood\",\n rcp: 8.5,\n year: 2050,\n analysis: \"rcp\",\n modalOpen: false,\n feedback: \"\",\n asset_table: \"\",\n table: 3,\n risk: \"\",\n single_asset: \"\",\n activeItemName: \"\",\n single_asset_overall: \"\",\n singel_asset_chart: \"\",\n single_asset_loss: \"\",\n single_asset_progress: \"\",\n single_asset_cone_chart: \"\",\n RcpData: \"\",\n YearData: \"\",\n basement: \"yes\",\n construction: \"wood\",\n stories: \"1\",\n occupancy: \"res\",\n per_sq_m_value: 40000,\n scatter: \"\",\n yearDetail: \"\",\n detailed: false,\n global: false,\n singleYearDetail: \"\",\n portfolio_losses: \"\",\n portfolio_losses_flat: \"\",\n overall: \"\",\n heatmap: \"\",\n losses: \"\",\n hazard_continent: \"\",\n hazard_map_data_with_continent: \"\",\n\n data: \"\",\n financial: true,\n mapVariable: \"FL8570\",\n yearDetail_single: \"\",\n assets: [],\n mapAsset: \"\",\n table_condition: false,\n oldname: \"\",\n newname: \"\",\n area: \"\",\n type: \"\",\n valuation: \"\",\n count: \"All\",\n singlePercentage: \"\",\n parameter: \"loss\",\n Million: true,\n exposure_variable: \"Total\",\n property_type: \"NA\",\n long: \"\",\n lat: \"\",\n zoom: 14,\n\n activeIndex: -1,\n percentage: \"\",\n variables: \"\",\n property_types: \"NA\",\n country_loss: \"\",\n countryloss: \"\",\n hazard_map: \"typhoon\",\n with_content: false,\n ssp: 8.5,\n defaultbuilding: \"\",\n continent: \"\",\n riskOpen: false,\n worldmap: false,\n risk_2020: \"\",\n losses_2020: \"\",\n filterOpen: false,\n hazard: \"\",\n floors: \"\",\n ownership: \"\",\n construction_cost: \"\",\n revenue: \"\",\n Cvar: false,\n FilterInfo: false,\n key_finding_data: \"\",\n hazard_index: \"\",\n key_finding_1: false,\n key_finding_2: false,\n key_finding_3: false,\n card_finding_1: false,\n card_finding_2: false,\n card_finding_3: false,\n card_finding_4: false,\n card_finding_5: false,\n info_table: false,\n single_asset_hazard: \"\",\n single_asset_hazard_2020: \"\",\n };\n\n handleHazard = (e, { value }) => {\n this.setState({\n hazard_map: value,\n });\n };\n\n handleContinent = (e, { value }) => {\n console.log(\"Continents\", value);\n this.setState({\n continent: value,\n });\n };\n\n handleKeyFindings_1 = () => {\n this.setState({\n key_finding_1: true,\n });\n };\n handleKeyFindings_2 = () => {\n this.setState({\n key_finding_2: true,\n });\n };\n handleKeyFindings_3 = () => {\n this.setState({\n key_finding_3: true,\n });\n };\n handleCardFindings_1 = () => {\n this.setState({\n card_finding_1: true,\n });\n };\n handleCardFindings_2 = () => {\n this.setState({\n card_finding_2: true,\n });\n };\n handleCardFindings_3 = () => {\n this.setState({\n card_finding_3: true,\n });\n };\n handleCardFindings_4 = () => {\n this.setState({\n card_finding_4: true,\n });\n };\n handleKeyFindings_4 = () => {\n this.setState({\n info_table: true,\n });\n };\n handleCardFindings_5 = () => {\n this.setState({\n card_finding_5: true,\n });\n };\n handleKeyFindings_5 = () => {\n this.setState({\n info_table: true,\n });\n };\n\n handleCardClose = () => {\n this.setState({\n card_finding_1: false,\n card_finding_2: false,\n card_finding_3: false,\n card_finding_4: false,\n card_finding_5: false,\n });\n };\n\n handleKeyClose = () => {\n this.setState({\n key_finding_1: false,\n key_finding_2: false,\n key_finding_3: false,\n info_table: false,\n });\n };\n FilterInfo = () => {\n this.setState({\n FilterInfo: true,\n });\n };\n FilterInfoClose = () => {\n this.setState({\n FilterInfo: false,\n });\n };\n handleCvar = () => {\n this.setState({\n Cvar: true,\n });\n };\n handleLossOpen = () => {\n this.setState({\n lossopen: true,\n });\n };\n handleArticleOpen = () => {\n this.setState({\n articleopen: true,\n });\n };\n handlePercentOpen = () => {\n this.setState({\n percentopen: true,\n });\n };\n handleHeatOpen = () => {\n this.setState({\n heatopen: true,\n });\n };\n handleRiskOpen = () => {\n this.setState({\n riskOpen: true,\n });\n };\n RiskClose = () => {\n this.setState({\n riskOpen: false,\n });\n };\n handleFilterOpen = () => {\n this.setState({\n filterOpen: true,\n });\n };\n filterClose = () => {\n this.setState({\n filterOpen: false,\n });\n };\n lossClose = () => {\n this.setState({\n lossopen: false,\n });\n };\n percentClose = () => {\n this.setState({\n percentopen: false,\n });\n };\n heatClose = () => {\n this.setState({\n heatopen: false,\n });\n };\n articleClose = () => {\n this.setState({\n articleopen: false,\n });\n };\n CvarClose = () => {\n this.setState({\n Cvar: false,\n });\n };\n\n componentDidMount() {\n let formdata = new FormData();\n if (\n this.props.location.state !== null &&\n this.props.location.state.project_name.project\n ) {\n console.log(\"company state\", this.props.location.state);\n\n formdata.append(\n \"project_name\",\n this.props.location.state.project_name.project\n );\n } else if (\n this.props.location.state !== null &&\n this.props.location.state.project_name\n ) {\n console.log(\"company state\", this.props.location.state);\n\n formdata.append(\"project_name\", this.props.location.state.project_name);\n }\n\n formdata.append(\"scenario\", \"8.5\");\n formdata.append(\"year\", \"2050\");\n formdata.append(\"analysis_type\", \"rcp\");\n this.props.addBenchmark(formdata);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.benchmark !== this.props.benchmark) {\n this.setState({\n yearDetail: this.props.benchmark.year_scenario_loss,\n asset_table: this.props.benchmark.table_data,\n heatmap: this.props.benchmark.heatmap,\n hazard_index: this.props.benchmark.hazard_values,\n hazard: this.props.benchmark.hazard_values_company,\n hazard_continent: this.props.benchmark.hazard_map_continents,\n hazard_map_data_with_continent: this.props.benchmark\n .hazard_map_data_with_continent,\n continent: this.props.benchmark.hazard_map_continents[0],\n });\n }\n }\n\n Edit = (asset, newAsset) => {\n this.setState(\n {\n oldname: asset.name,\n newname: newAsset.name,\n area: newAsset.area,\n valuation: newAsset.valuation,\n type: newAsset.type.toLowerCase(),\n floors: newAsset.floors,\n ownership: newAsset.ownership,\n construction_cost: newAsset.construction_cost,\n revenue: newAsset.revenue,\n },\n this.EditAsset\n );\n };\n EditAsset() {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.project);\n formdata.append(\"oldname\", this.state.oldname);\n formdata.append(\"newname\", this.state.newname);\n formdata.append(\"area\", this.state.area);\n formdata.append(\"type\", this.state.type);\n formdata.append(\"valuation\", this.state.valuation);\n formdata.append(\"floors\", this.state.floors);\n formdata.append(\"ownership\", this.state.ownership);\n formdata.append(\"construction_cost\", this.state.construction_cost);\n formdata.append(\"revenue\", this.state.revenue);\n\n this.props.updateAsset(formdata);\n }\n\n handleProject = (e, { value }) => {\n this.setState({ project: value }, () => console.log(this.state.project));\n };\n\n handleRCP = (e, { value }) => {\n this.setState({ rcp: value }, () => console.log(this.state.rcp));\n };\n handleVariable = (e, { value }) => {\n this.setState({ mapVariable: value });\n };\n\n handleYear = (e, { value }) => {\n this.setState({ year: value }, () => console.log(this.state.year));\n };\n handleLogout = () => {\n this.props.logout();\n };\n handleOpen = () => {\n if (this.state.hazard_continent) {\n for (let i = 0; i < this.state.hazard_continent.length; i++) {\n ContinentOptions.push({\n key: this.state.hazard_continent[i],\n value: this.state.hazard_continent[i],\n text: this.state.hazard_continent[i],\n });\n }\n }\n this.setState({\n modalOpen: true,\n });\n };\n\n handleClose = () => this.setState({ modalOpen: false });\n\n handleSingleAsset = () => {\n if (this.state.single_asset.length > 0) {\n Item = this.state.single_asset.filter(\n (asset) => asset.asset_name == this.state.activeItemName\n );\n this.setState({ single_asset_overall: Item }, this.handleSingleChart);\n }\n if (this.state.analysis == \"rcp\") {\n this.setState({\n singleYearDetail: Item[0].year_chart_data.dollar,\n singlePercentage: Item[0].year_chart_data.percentage,\n });\n }\n if (this.state.analysis == \"ssp\") {\n this.setState({\n singleYearDetail: Item[0].year_chart_data.dollar,\n singlePercentage: Item[0].year_chart_data.percentage,\n });\n }\n if (this.state.assets.length > 0) {\n let Item = this.state.assets.filter(\n (asset) => asset.name == this.state.activeItemName\n );\n this.setState(\n {\n mapAsset: Item,\n },\n () => console.log(\"single asset map wala\", this.state.mapAsset)\n );\n }\n };\n handleSingleChart = () => {\n console.log(\"fndfdgdgdsgdijgdos\", this.state.single_asset_overall);\n singledata = [\n {\n name: \"2020\",\n \"RCP2.6\": 0,\n \"RCP4.5\": 0,\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\"2020\"],\n },\n\n {\n name: \"2030\",\n \"RCP2.6\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_26\"\n ],\n \"RCP4.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_45\"\n ],\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2030_85\"\n ],\n },\n\n {\n name: \"2050\",\n \"RCP2.6\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_26\"\n ],\n \"RCP4.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_45\"\n ],\n \"RCP8.5\": this.state.single_asset_overall[0].overall_bar_chart[\n \"2050_85\"\n ],\n },\n ];\n\n this.setState(\n {\n singel_asset_chart: singledata,\n single_asset_hazard: this.state.single_asset_overall[0].hazard_values,\n single_asset_hazard_2020: this.state.single_asset_overall[0]\n .hazard_values_2020,\n\n single_asset_loss: this.state.single_asset_overall[0].loss_bars,\n single_asset_loss_2020: this.state.single_asset_overall[0]\n .loss_bars_2020,\n //single_asset_progress: this.state.single_asset_overall[0].progress_bars,\n //single_asset_progress_2020:\n //this.state.single_asset_overall[0].progress_bars_2020,\n single_asset_cone_chart: this.state.single_asset_overall[0].cone_chart,\n },\n this.handleComparison\n );\n };\n\n handleComparison = () => {\n let RcpData = [\n {\n name: 2.6,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_26[\"OVERALL\"],\n },\n\n {\n name: 2.6,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"River Flood\"],\n },\n {\n name: 2.6,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Drought\"],\n },\n\n {\n name: 2.6,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Storm Surge\"],\n },\n {\n name: 2.6,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Landslide\"],\n },\n\n {\n name: 2.6,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Extreme heat\"],\n },\n {\n name: 2.6,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2.6,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Snow Fall\"],\n },\n {\n name: 2.6,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2.6,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_26.both[\"Typhoon\"],\n },\n {\n name: 4.5,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_45[\"OVERALL\"],\n },\n\n {\n name: 4.5,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"River Flood\"],\n },\n {\n name: 4.5,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Drought\"],\n },\n\n {\n name: 4.5,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Storm Surge\"],\n },\n {\n name: 4.5,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Landslide\"],\n },\n\n {\n name: 4.5,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Extreme heat\"],\n },\n {\n name: 4.5,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 4.5,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Snow Fall\"],\n },\n {\n name: 4.5,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 4.5,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_45.both[\"Typhoon\"],\n },\n {\n name: 8.5,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone1_85[\"OVERALL\"],\n },\n\n {\n name: 8.5,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"River Flood\"],\n },\n {\n name: 8.5,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Drought\"],\n },\n\n {\n name: 8.5,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Storm Surge\"],\n },\n {\n name: 8.5,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Landslide\"],\n },\n\n {\n name: 8.5,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Extreme heat\"],\n },\n {\n name: 8.5,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 8.5,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Snow Fall\"],\n },\n {\n name: 8.5,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 8.5,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone1_85.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.year_max;\n\n let RcpConfig = {\n data: RcpData,\n isGroup: true,\n yAxis: {\n max: max + 0.2 * max,\n },\n xField: \"variable\",\n yField: \"index\",\n seriesField: \"name\",\n colorField: \"name\",\n\n legend: false,\n label: {\n position: \"top\",\n },\n color: [\"#2077b4\", \"#FE6702\", \"#4da02d\"],\n };\n if (this.state.analysis == \"rcp\") {\n let yearData = [\n {\n name: 2020,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_20[\"OVERALL\"],\n },\n\n {\n name: 2020,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"River Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Drought\"],\n },\n\n {\n name: 2020,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2020,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Landslide\"],\n },\n\n {\n name: 2020,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2020,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Snow Fall\"],\n },\n {\n name: 2020,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2020,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Typhoon\"],\n },\n {\n name: 2030,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_30[\"OVERALL\"],\n },\n\n {\n name: 2030,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"River Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Drought\"],\n },\n\n {\n name: 2030,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2030,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Landslide\"],\n },\n\n {\n name: 2030,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2030,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Snow Fall\"],\n },\n {\n name: 2030,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2030,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Typhoon\"],\n },\n {\n name: 2050,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_50[\"OVERALL\"],\n },\n\n {\n name: 2050,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"River Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Drought\"],\n },\n\n {\n name: 2050,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2050,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Landslide\"],\n },\n\n {\n name: 2050,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2050,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Snow Fall\"],\n },\n {\n name: 2050,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2050,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.scenario_max;\n\n let yearConfig = {\n data: yearData,\n color: [\"#f47a7b\", \"#8cb0f8\", \"#18202F\"],\n yAxis: {\n max: max + 0.2 * max,\n },\n legend: false,\n isGroup: true,\n xField: \"variable\",\n colorField: \"name\",\n\n yField: \"index\",\n seriesField: \"name\",\n\n label: {\n position: \"top\",\n },\n };\n this.setState({ YearData: yearConfig });\n } else if (this.state.analysis == \"ssp\") {\n let yearData = [\n {\n name: 2020,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"OVERALL\"],\n },\n\n {\n name: 2020,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"River Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Drought\"],\n },\n\n {\n name: 2020,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2020,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Landslide\"],\n },\n\n {\n name: 2020,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2020,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2020,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Snow Fall\"],\n },\n {\n name: 2020,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2020,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_20.both[\"Typhoon\"],\n },\n {\n name: 2030,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"OVERALL\"],\n },\n\n {\n name: 2030,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"River Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Drought\"],\n },\n\n {\n name: 2030,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2030,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Landslide\"],\n },\n\n {\n name: 2030,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2030,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2030,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Snow Fall\"],\n },\n {\n name: 2030,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2030,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_30.both[\"Typhoon\"],\n },\n {\n name: 2050,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"OVERALL\"],\n },\n\n {\n name: 2050,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"River Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Drought\"],\n },\n\n {\n name: 2050,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2050,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Landslide\"],\n },\n\n {\n name: 2050,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2050,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2050,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Snow Fall\"],\n },\n {\n name: 2050,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2050,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_50.both[\"Typhoon\"],\n },\n {\n name: 2100,\n variable: \"OVERALL\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"OVERALL\"],\n },\n\n {\n name: 2100,\n variable: \"River Flood\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"River Flood\"\n ],\n },\n {\n name: 2100,\n variable: \"Drought\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Drought\"],\n },\n\n {\n name: 2100,\n variable: \"Storm Surge\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Storm Surge\"\n ],\n },\n {\n name: 2100,\n variable: \"LandSlide\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Landslide\"],\n },\n\n {\n name: 2100,\n variable: \"Extreme Heat\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Extreme heat\"\n ],\n },\n {\n name: 2100,\n variable: \"Rainfall Flood\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Rainfall Flood\"\n ],\n },\n {\n name: 2100,\n variable: \"SnowFall\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Snow Fall\"],\n },\n {\n name: 2100,\n variable: \"Sea Level Rise\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\n \"Sea Level Rise\"\n ],\n },\n {\n name: 2100,\n variable: \"Typhoon\",\n index: this.state.single_asset_cone_chart.cone3_100.both[\"Typhoon\"],\n },\n ];\n let max = this.state.single_asset_cone_chart.scenario_max;\n\n let yearConfig = {\n data: yearData,\n color: [\"#f47a7b\", \"#8CB0F8\", \"#18202F\", \"#256EFF\"],\n yAxis: {\n max: max + 0.2 * max,\n },\n legend: false,\n isGroup: true,\n xField: \"variable\",\n colorField: \"name\",\n\n yField: \"index\",\n seriesField: \"name\",\n\n label: {\n position: \"top\",\n },\n };\n this.setState({ YearData: yearConfig });\n }\n\n this.setState(\n {\n RcpData: RcpConfig,\n },\n () => console.log(\"yeardata\", this.state.yearData)\n );\n };\n handleChange = (value, key) => {\n this.setState({\n [key]: value,\n });\n };\n handleChangePro = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n () => console.log(\"analysis\", this.state.analysis)\n );\n };\n handleTable = (value, key) => {\n this.setState({\n [key]: value,\n });\n };\n handleExposure = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n this.handleSubmitPro\n );\n };\n handleSingleExposure = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n this.handleSubmitPro\n );\n };\n\n handleFullScreen = () => {\n document.getElementById(\"HeatMap\").requestFullscreen();\n };\n handleLossFullScreen = () => {\n document.getElementById(\"Loss\").requestFullscreen();\n };\n handleIntFullScreen = () => {\n document.getElementById(\"Intensity\").requestFullscreen();\n };\n\n handleClickOpen = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n\n this.setState({ activeIndex: newIndex });\n };\n\n handleSubmitPro = () => {\n let formdata = new FormData();\n\n formdata.append(\"project_name\", this.props.location.state.project_name);\n\n formdata.append(\"index_name\", this.state.index);\n formdata.append(\"scenario\", \"8.5\");\n formdata.append(\"year\", \"2050\");\n formdata.append(\"analysis_type\", \"rcp\");\n this.props.addBenchmark(formdata);\n\n this.setState({\n filterOpen: false,\n });\n };\n\n handleLocal = (e) => {\n this.setState(\n {\n localactive: true,\n globalactive: false,\n },\n this.handleSubmitPro\n );\n };\n\n handleGlobal = (e) => {\n this.setState(\n {\n globalactive: true,\n localactive: false,\n },\n this.handleSubmitPro\n );\n };\n handleFinance = (e) => {\n this.setState({\n financial: !this.state.financial,\n });\n };\n\n handleSsp = (e) => {\n this.setState({\n ssp: !this.state.ssp,\n });\n };\n\n handleWorld = (e) => {\n this.setState((prevState) => ({\n worldmap: !prevState.worldmap,\n }));\n };\n handleDetail = (e) => {\n this.setState((prevState) => ({\n detailed: !prevState.detailed,\n }));\n };\n handleContent = (e) => {\n localStorage.setItem(\"with_content\", !this.state.with_content);\n this.setState({\n with_content: !this.state.with_content,\n });\n };\n handleAsset = (e, { value }) => {\n let selectedAsset = this.state.asset_table.filter(\n (asset) => asset.name == value\n );\n console.log(\"selectedAsset\", selectedAsset[0].latitude);\n this.setState(\n {\n lat: selectedAsset[0].latitude,\n long: selectedAsset[0].longitude,\n },\n () => console.log(\"lat passing\", this.state.lat, this.state.long)\n );\n };\n\n handleClick = (e) => {\n e.preventDefault();\n this.setState((prevState) => ({ active: !prevState.active }));\n };\n\n handleAccClick = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n\n this.setState({ activeIndex: newIndex }, () =>\n console.log(\"active\", this.state.activeIndex)\n );\n };\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n }\n\n render() {\n this.state.variables = localStorage.getItem(\"variables\");\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n\n if (this.props.isLoading) {\n return
;\n }\n\n return (\n
\n
\n\n \n \n \n {\" \"}\n \n Advance Filter{\" \"}\n \n \n \n <>\n
\n \n \n \n \n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n Year Loss for{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.analysis == \"rcp\" ? (\n {this.state.rcp}\n ) : (\n {this.state.ssp}\n )}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n {\" \"}\n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n Year Loss for{\" \"}\n {this.state.analysis.toUpperCase()}{\" \"}\n {this.state.analysis == \"rcp\" ? (\n {this.state.rcp}\n ) : (\n {this.state.ssp}\n )}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n {\" \"}\n
\n \n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n {this.state.analysis.toUpperCase()} Loss for\n Year {this.state.year}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n {\" \"}\n \n \n {\" \"}\n

\n {\" \"}\n \n {\" \"}\n {this.state.analysis.toUpperCase()} Loss for\n Year {this.state.year}{\" \"}\n \n

{\" \"}\n
\n\n {this.state.financial ? (\n \n ) : (\n \n )}\n \n
{\" \"}\n {\" \"}\n \n \n \n

\n \n Climate Risk Hazard{\" \"}\n \n

\n
\n \n \n {this.state.hazard_index && this.state.hazard ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n Index
\n Company\n \n
\n \n
\n
\n
\n \n
\n\n \n {/*\n \n */}\n \n \n

\n \n Climate Risk Heat Map{\" \"}\n \n

\n
\n\n \n \n {this.state.heatmap ? (\n \n ) : null}\n \n \n \n \n \n \n
\n
\n\n \n \n \n {\" \"}\n

\n \n Global Score/CVaR Maps\n \n

\n
\n \n \n {/* \n this.handleChange(value, \"year\")\n }\n />*/}\n \n \n \n \n
\n
\n \n \n \n {\" \"}\n

\n \n Asset Table{\" \"}\n \n

\n
\n
\n \n \n {/* \n this.handleTable(value, \"table\")\n }\n value={table}\n />*/}\n\n {this.state.asset_table ? (\n \n ) : null}\n\n {/* \n
{\" \"}\n {this.state.table_condition && (\n \n )}\n
\n \n
{\" \"}\n {this.state.table_condition && (\n \n )}\n
\n \n
\n {this.state.table_condition && (\n \n )}\n
*/}\n \n
\n \n
\n
\n \n
\n {/* \n \n \n\n \n
\n \n Hover-Over the icons to go through the information on the\n hover wheel\n

\n
\n
\n
\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n {\" \"}\n

Extreme Wind Speeds


Maximum wind\n speed at multiple return periods
\n
\n Fraction of building, contents and inventory\n damaged by extreme wind events
\n
\n Annual average loss to building, contents and\n inventory\n
\n Number of days of business interruption\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Extreme Rainfall

\n
\n Maximum daily precipitation across multiple return\n periods\n {\" \"}\n {\" \"}\n \n

\n\n
\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Wildfire Risk

\n
\n The annual number of wildfires, which ignite and\n grow to detectable size,
\n that are expected in a 1 square km grid cell\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Hail And Thunderstorm Probability

\n
\n Number of days per year where large hail (>2 in\n / 5 cm in diameter) is possible\n
\n
\n Number of days per year where environmental\n conditions are conducive to severe thunderstorm\n formation\n {\" \"}\n {\" \"}\n \n

\n
\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Drought Frequency

\n
\n Months per year where the rolling 3-month or\n 6-month average\n
\n
\n Standardized Precipitation Evapotranspiration\n Index (SPEI) is below -2\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Flood Depth of Water

\n
\n Flood depth of water across multiple return\n periods\n
\n
\n Percentage of the central square flooded across\n multiple return periods\n
\n
\n Fraction of building, contents and inventory\n damaged by flood events\n {\" \"}\n {\" \"}\n \n

\n\n

\n {\" \"}\n \n {\" \"}\n \n \n {\" \"}\n \n \n

Extreme Heat

\n
\n Days per year exceeding 35°C, 38°C and the\n historical 99th percentile\n
\n
\n Heating and cooling degree days\n
\n
\n Days exceeding high (32°C) and dangerously high\n (35°C) Wet-Bulb Globe Temperature\n {\" \"}\n {\" \"}\n \n

\n
\n
\n
\n
HAZARDS
\n
\n
\n
\n
\n
*/}\n \n \n
\n
\n \n \n

Advanced Filter Options

\n

Filtering your data for more insight

\n
\n \n {/* \n \n

Projects

\n \n this.handleChangePro(value, \"project\")\n }\n value={project}\n options={options}\n disabled={this.state.detailed}\n />\n \n\n \n

Analysis Type

\n \n this.handleChangePro(value, \"analysis\")\n }\n value={analysis}\n options={AnalysisOptions}\n />\n \n\n \n {this.state.analysis == \"rcp\" ? (\n <>\n {\" \"}\n

RCP

\n \n this.handleChangePro(value, \"rcp\")\n }\n value={rcp}\n options={RcpOptions}\n disabled={this.state.detailed}\n />\n \n ) : (\n <>\n

SSP

\n \n this.handleChangePro(value, \"ssp\")\n }\n value={ssp}\n options={RcpOptions}\n />\n \n )}\n \n
*/}\n\n \n {/* \n

Count

\n \n this.handleChangePro(value, \"count\")\n }\n value={count}\n options={CountOptions}\n disabled={this.state.detailed}\n />\n */}\n {/** \n

Scenario Type

\n\n \n this.handleChangePro(value, \"financial\")\n }\n value={this.state.financial}\n options={FinanceOptions}\n />\n \n \n

Year

\n {this.state.analysis == \"rcp\" ? (\n \n this.handleChangePro(value, \"year\")\n }\n value={year}\n options={YearOptions}\n disabled={this.state.detailed}\n />\n ) : (\n \n this.handleChangePro(value, \"year\")\n }\n value={year}\n options={YearOptions_ssp}\n disabled={this.state.detailed}\n />\n )}\n */}\n \n

Index Name

\n \n this.handleChangePro(value, \"index\")\n }\n value={this.state.index}\n options={IndexOptions}\n />\n \n
\n
\n
\n
\n
\n
\n
\n {/* \n \n

Additional Factor

\n \n this.handleChangePro(value, \"adjusted_gdp\")\n }\n value={this.state.adjusted_gdp}\n options={GdpOptions}\n />\n \n
*/}\n
\n
\n {/* \n {Property != \"NA\" ? (\n \n

Property Type

\n \n this.handleChangePro(value, \"property_type\")\n }\n value={property_type}\n options={PropertyOptions}\n />\n \n ) : null}\n
*/}\n \n Apply Filter\n \n
\n
\n \n
\n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.project.errors,\n project: state.project.project,\n benchmark: state.feedback.benchmark,\n building: state.feedback.building,\n detailyear: state.feedback.detailyear,\n isLoading: state.feedback.isLoading,\n assets: state.asset.asset,\n summary: state.feedback.summary,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n addDashboard: (formdata) => {\n dispatch(dashboard.postDashboard(formdata));\n },\n addBenchmark: (formdata) => {\n dispatch(dashboard.postBenchmark(formdata));\n },\n getProjects: () => {\n dispatch(project.getProjects());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n getDetailByYear: (formdata) => {\n dispatch(dashboard.getDetailByYear(formdata));\n },\n getAssets: () => {\n dispatch(asset.getAssets());\n },\n updateAsset: (formdata) => {\n dispatch(asset.updateAsset(formdata));\n },\n getSummary: (formdata) => {\n dispatch(dashboard.getSummary(formdata));\n },\n sspDashboard: (formdata) => {\n dispatch(dashboard.sspDashboard(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CompanyDashboard);\n","import React, { useState,useCallback,useEffect,Component} from 'react';\nimport {Icon,Button,Accordion} from 'semantic-ui-react';\nimport {Grid} from 'semantic-ui-react';\nimport './faqs.css'\nimport {\n CollapsibleComponent,\n CollapsibleHead,\n CollapsibleContent\n} from \"react-collapsible-component\";\n\nexport default class Faqs extends React.Component {\n constructor() {\n super();\n }\n\n render() {\n return (\n
\n \n

FAQs

\n\n \n \n 1.How was the climate risk variables estimated – was it based on HK experience?\n \n

\n There are over nine climate risk variables on the intensel blue-swan platform, and the estimation of most variables varies from one another. \n We try to model these variables according to the best standards and peer-reviewed models. Further, as the platform provides global analysis, \n we have a uniform modelling approach globally. However, several inputs are region-specific, for example, DEMs, bathymetry, footprints, historical data; thus, \n model output is both scalable and is also has regional information,\n Pluvial/fluvial Flood Modelling: In-house models using HEC and Flow-2d. \n Storm Surge: HEC and Geo hydrodynamic models.’\n Extreme heat: outputs from integrated GCM-RCM models \n These are in-house run models with validation ppt available on request.\n

\n
\n \n 2.The attached xls contains different levels of climate risk variables in different years.\nMay I ask if the number is an average value under different scenario-year?Would the entire probability distribution across years be available upon request?\n \n \n

\n The outputs are based on recommendations of TCFD, where the recommendations are to provide physical climate risk for two time periods, 2030-2050 and 2050 -2070 only. Though we can generate these events yearly, we neither recommend nor prefer it because for two reasons:\n\n 1. As we provide asset-level granularity, the size of the datasets increases exponentially and can go beyond 100 terabytes as 9 variables, global yearly for 70+ years. This much data is challenging to handle also cloud infrastructure handling becomes arduous.\n 2. Climate data does not make sense yearly, unlike the weather. Climate data mean over the time variables makes more sense as the uncertainty is reduced when averaged over the time period. It gives a much better estimation of extremes and trends.\n

\n
\n \n 3.How was the climate risk variable translated to Asset Damage and Operational Loss – was it referenced to ex-HK experience? \n \n

\n The losses are based on the insurance approach wherein Mean Damage Ratio (MDR) is modelled for different levels of floods and surges for types, floors, basements of assets. The MDR approach is documented in various journals. \nTemperature loss models are trained on historical losses because of the increase/decrease in energy consumption and change in temperature and humidity; both are modelled from outputs of integrated GCM-RCMs.\n(Ref: 10.1007/s11069-013-1017-z https://doi.org/10.1007/s11069-013-1017-z , http://hdl.handle.net/2117/22402 etc)\nThe typhoon loss is based on calculations of coefficients for factors that lead to typhoon losses and training it for historical data. This was developed at intensel with our PhD who also published a paper on this loss calculation approach\n (Ref: https://doi.org/10.3389/fbuil.2020.575534).\n

\n
\n \n\n 4.Does the asset damage translates to property valuation decrease, and operational loss translates to a reduction in property income? How should we interpret the loss number in the xls?\n \n

\n LThere is facilitation to adjust property valuation according to the clients boh using APIs and UI. A client who has already calculated an increase/decrement in valuation can provide those inputs from his end. This is done as an increase and decrease in property valuation depends on several variables and varies from region to region; modelling this is not our expertise.\n\n

\n

\n \nThe operations loss considers the increase/decrease in economic activity with year; however, this is done by the assumption that increase/decrease in all the regions is directly proportional to the increase/decrease in GDP of a country in the coming 60 years.\n

\n
\n\n 5.Was there any assumption made when aggregating the damage/loss across perils? Any consideration in the correlation between different climate risk variables?\n \n

\n While aggregating the losses, we made sure that these individual variable-losses were mutually exhaustive and did not overlap. As all the outputs are probable max loss, what we give clients is total and also break down individual losses to better understand the risk. \n

\n

\n Though the losses are mutually exhaustive, two events might occur together, like extreme temperature and storm surge. The co-occurrence is very difficult to model for anyone. Hence the client can use the individual losses and can create his own set of co-occurring events,\n

\n
\n\n 6.Was there an estimation of typhoon risk?\n \n

\n Intensel uses multiple models in-house to model typhoon risk (mainly rain and wind from typhoons). These models take into consideration some of the essential factors for modelling typhoon risk, such as changes in wind intensity over time, change in 5 days cumulative rainfall from the typhoon, deviation in typhoon tracks and landfalls (this has a significant impact on exposure) and lastly the prediction of month/year and location of origin of typhoons. \n

\n
\n
\n
\n
\n );\n }\n}\n\n","import React, { useState, useCallback, useEffect, Component } from \"react\";\r\nimport { Icon, Button, Table } from \"semantic-ui-react\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport { Tabs, Tab, Row, Col } from \"react-bootstrap\";\r\nimport \"./apidocs.css\";\r\n\r\nclass APIDocs extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n

\r\n Getting Started\r\n

\r\n\r\n

Step 0: Base Endpoint for API calls

\r\n

\r\n {\" \"}\r\n >{\" \"}\r\n \r\n https://api.intensel.net/apiv1/\r\n \r\n

\r\n\r\n

Step 1: Prepare API key

\r\n

\r\n You have to pass api key in headers for authorization\r\n

\r\n

\r\n Authorization: Api-Key {\" \"}{\" \"}\r\n

\r\n\r\n

Step 2: Make Request

\r\n

\r\n import requests
\r\n URL = \"https://api.intensel.net/apiv1/create/\"
\r\n headers ={'{\"Authorization\":\"Api-Key API_KEY\"}'}\r\n
\r\n payload ={'{\"project_name\": \"My Awesome Project\"}'}\r\n
\r\n response = requests.post(URL, json=payload, headers=headers){\" \"}\r\n
\r\n data = response.json()\r\n

\r\n

\r\n Make Sure to include API_KEY in headers for authentication\r\n

\r\n\r\n

Step 3: Done

\r\n

\r\n Congrates you have make your first query.\r\n

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

\r\n Create Project\r\n

\r\n\r\n

Create A Project

\r\n

\r\n Project Contains All Your Assets And It Allows To Analyze All Of\r\n Your Submitted Locations At Once
\r\n Endpoint:\r\n

\r\n

\r\n {\" \"}\r\n >{\" \"}\r\n \r\n https://api.intensel.net/apiv1/create/\r\n \r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
project_nameName Of the Project
\r\n\r\n

Sample Request

\r\n

\r\n URL: https://api.intensel.net/apiv1/create/
\r\n
\r\n data:{\" \"}\r\n {\r\n \r\n {' \"project_name\": \"My Awesome Project\", '}
\r\n
\r\n \"variables\":[\"Rainfall Flood\", \"Extreme Heat\"],
\r\n
}{\" \"}\r\n
\r\n }\r\n

\r\n

\r\n Variable Name Are Climate Variables Which You Wish To Analyze\r\n

\r\n\r\n

Climate Variables

\r\n \r\n \r\n River Flood*\r\n Typhoon*\r\n Storm Surge\r\n LandSlide\r\n Extreme Heat\r\n Snow Fall\r\n Rainfall Flood\r\n Drought\r\n Sea Level Rise\r\n
Variables*
\r\n

\r\n * Marked Are Required And Cant Be Skipped\r\n

\r\n\r\n

Code Example

\r\n

\r\n import requests URL = \"https://api.intensel.net/apiv1/create/\"{\" \"}\r\n
\r\n
\r\n \r\n {' headers = {\"Authorization\":\"Api-Key API_KEY\"} '}
\r\n
\r\n {' payload = {\"project_name\": \"My Awesome Project\"} '}\r\n
{\" \"}\r\n
\r\n
\r\n response = requests.post(URL, json=payload, headers=headers){\" \"}\r\n
\r\n
\r\n data = response.json()
\r\n
\r\n

\r\n\r\n

Expected Response

\r\n

\r\n status: HTTP 201\r\n {' {\"success\":\"Project Created Successfully\"} '}\r\n

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

\r\n Add Single Asset\r\n

\r\n

Add Single Asset To Project

\r\n

\r\n Using This API You Can Add Single Location To Get Analyzed And\r\n Added To Your Project Endpoint:
>\r\n \r\n https://api.intensel.net/apiv1/add/\r\n \r\n

\r\n

Api Parameters

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
project_nameName of the Project
asset_dataValid Json Data Containing Information About Location
\r\n

Sample Project

\r\n

\r\n \r\n URL: https://api.intensel.net/apiv1/add/\r\n
\r\n data: {\"{\"}\r\n
\r\n \"project_name\": \"My Awesome Project\",
\r\n \"asset_data\" : {\"{\"}\r\n
\r\n {\" \"}\"name\": \"Hong Kong Park\",
\r\n {\" \"}\"latitude\": 22.424645494250665,
\r\n {\" \"}\"longitude\" : 114.2135547607693,
\r\n {\" \"}\"area\": 2509,
\r\n {\" \"}\"valuation\": 2117.25,
\r\n {\" \"}\"stories\": 3,\r\n
\r\n {\"}\"}\r\n
\r\n {\"}\"}\r\n
\r\n

\r\n

asset_data paramters

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
name (optional)\r\n Name Of The location (If Not Provided Will Get identified By\r\n Us){\" \"}\r\n
latitude *Latitude Of Location
Longitude *Longitude Of Location
area (optional) \r\n Area of location in sqm (If Not Provided Will Get identified\r\n By Us){\" \"}\r\n
Valuation (Optional)\r\n Valuation Of Location in USD/sqm (If Not Provided Will Get\r\n identified By Us){\" \"}\r\n
Stories (Optional)\r\n Number Of Floors/Stories Of The Location (If Not Provided\r\n Will Get identified By Us){\" \"}\r\n
\r\n * Marked Parameters are required\r\n

Code Example

\r\n

\r\n \r\n import requests\r\n
\r\n URL = \"https://api.intensel.net/apiv1/add/\"\r\n
\r\n headers = {\"{\"}\"Authorization\":\"Api-Key API_KEY\"{\"}\"}\r\n payload = {\"{\"}
\r\n \"project_name\": \"My Awesome Project\",
\r\n \"asset_data\" : {\"{\"}\r\n \"name\": \"Hong Kong Park\",
\r\n \"latitude\": 22.424645494250665,
\r\n \"longitude\" : 114.2135547607693,
\r\n \"area\": 2509,
\r\n \"valuation\": 2117.25,
\r\n \"stories\": 3,
\r\n {\"}\"}
\r\n {\"}\"}
\r\n response = requests.post(URL, json=payload, headers=headers)\r\n
\r\n data = response.json()\r\n
\r\n

Expected Response

\r\n \r\n status: HTTP 201\r\n {\"{\"}\"success\":\"Asset Added To Project My Awesome Project With\r\n Name Hong Kong Park\"{\"}\"}\r\n \r\n

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

\r\n Add Bulk Assets\r\n

\r\n

Add Multiple Asset To Project

\r\n

\r\n Using This API You Can Add Multiple Location To Get Analyzed And\r\n Added To Your Project In One Single API Call\r\n
Endpoint:
>\r\n \r\n https://api.intensel.net/apiv1/add/\r\n \r\n

\r\n

Api Parameters

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
project_nameName of the Project
asset_data\r\n Valid Json Data Containing Information About Multiple\r\n Locations\r\n
\r\n

Sample Project

\r\n

\r\n \r\n URL: https://api.intensel.net/apiv1/add/\r\n
\r\n data: {\"{\"}\r\n
\r\n \"project_name\": \"My Awesome Project\",
\r\n \"asset_data\" : [{\"{\"}\r\n
\r\n {\" \"}\"name\": \"Hong Kong Park\",
\r\n {\" \"}\"latitude\": 22.424645494250665,
\r\n {\" \"}\"longitude\" : 114.2135547607693,
\r\n {\" \"}\"area\": 2509,
\r\n {\" \"}\"valuation\": 2117.25,
\r\n {\" \"}\"stories\": 3,\r\n
\r\n {\"}\"},
\r\n {\"{\"}\r\n
\r\n {\" \"}\"name\": \"Canal Rd West\",
\r\n {\" \"}\"latitude\": 22.27806830351389,
\r\n {\" \"}\"longitude\" : 114.18119155173112,
\r\n {\" \"}\"area\": 1810,
\r\n {\" \"}\"valuation\": 2117.25,
\r\n {\" \"}\"stories\": 3,\r\n
\r\n {\"}\"}]\r\n
\r\n {\"}\"}\r\n
\r\n

\r\n

asset_data paramters

\r\n

\r\n asset_data is Same As Single API\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
name (optional)\r\n Name Of The location (If Not Provided Will Get identified By\r\n Us){\" \"}\r\n
latitude *Latitude Of Location
Longitude *Longitude Of Location
area (optional) \r\n Area of location in sqm (If Not Provided Will Get identified\r\n By Us){\" \"}\r\n
Valuation (Optional)\r\n Valuation Of Location in USD/sqm (If Not Provided Will Get\r\n identified By Us){\" \"}\r\n
Stories (Optional)\r\n Number Of Floors/Stories Of The Location (If Not Provided\r\n Will Get identified By Us){\" \"}\r\n
\r\n * Marked Parameters are required\r\n

Code Example

\r\n

\r\n \r\n import requests\r\n
\r\n URL = \"https://api.intensel.net/apiv1/add/\"\r\n
\r\n headers = {\"{\"}\"Authorization\":\"Api-Key API_KEY\"{\"}\"}\r\n payload = {\"{\"}
\r\n \"project_name\": \"My Awesome Project\",
\r\n \"asset_data\" : \"asset_data\" : [{\"{\"}\r\n
\r\n {\" \"}\"name\": \"Hong Kong Park\",
\r\n {\" \"}\"latitude\": 22.424645494250665,
\r\n {\" \"}\"longitude\" : 114.2135547607693,
\r\n {\" \"}\"area\": 2509,
\r\n {\" \"}\"valuation\": 2117.25,
\r\n {\" \"}\"stories\": 3,\r\n
\r\n {\"}\"},
\r\n {\"{\"}\r\n
\r\n {\" \"}\"name\": \"Canal Rd West\",
\r\n {\" \"}\"latitude\": 22.27806830351389,
\r\n {\" \"}\"longitude\" : 114.18119155173112,
\r\n {\" \"}\"area\": 1810,
\r\n {\" \"}\"valuation\": 2117.25,
\r\n {\" \"}\"stories\": 3,\r\n
\r\n {\"}\"}]
\r\n {\"}\"}
\r\n response = requests.post(URL, json=payload, headers=headers)\r\n
\r\n data = response.json()\r\n
\r\n

\r\n

Expected Response

\r\n \r\n status: HTTP 201\r\n {\"{\"}\"success\":\"2 assets added to project My Awesome Project\"\r\n {\"}\"}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n

\r\n Add Multiple Asset To Project\r\n

\r\n

Add Single Asset To Project

\r\n

\r\n Using This API You Can Analyze complete Project
\r\n Endpoint:
>\r\n \r\n https://api.intensel.net/apiv1/getanalysis/\r\n \r\n

\r\n

Api Parameters

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ParametersValue
project_nameName of the Project
\r\n

Sample Request

\r\n

\r\n {\" \"}\r\n \r\n URL: https://api.intensel.net/apiv1/getanalysis/\r\n
\r\n data: {\"{\"}\r\n
\r\n \"project_name\": \"My Awesome Project\",
\r\n {\"}\"}\r\n
\r\n

\r\n

Code Example

\r\n

\r\n \r\n import requests\r\n
\r\n URL = \"https://api.intensel.net/apiv1/getanalysis/\"\r\n
\r\n headers = {\"{\"}\"Authorization\":\"Api-Key API_KEY\"{\"}\"}\r\n payload = {\"{\"}
\r\n \"project_name\": \"My Awesome Project\",
\r\n {\"}\"}
\r\n response = requests.post(URL, json=payload, headers=headers)\r\n
\r\n data = response.json()\r\n
\r\n

\r\n

Expected Response

\r\n

\r\n \r\n status: HTTP 201\r\n {\"{\"}\"RCP_{\"{\"}rcp{\"}\"}-YEAR_{\"{\"}year{\"}\"}\":{\"{\"}data{\"}\"}\r\n {\"}\"}\r\n \r\n

\r\n

\r\n * Returned Data Will Be Risk Score Out Of 100
\r\n You Will Get Data For Following RCPS And Years
\r\n RCP: 26, 45, 85
\r\n Year: 2030, 2050\r\n

\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default APIDocs;\r\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { project, auth } from \"../actions\";\nimport TransitionTable from \"./transitiontable\";\nimport { Row, Col, Container } from \"react-bootstrap\";\nimport { Table } from \"antd\";\n\nconst columns = [\n {\n title: \"Company Name\",\n key: \"company_name\",\n dataIndex: \"company_name\",\n },\n /*{\n title: \"Projected Scope 1 and 2 GHG Emission\",\n dataIndex: \"projected_scope_1_and_2_GHG_emission\",\n key: \"projected_scope_1_and_2_GHG_emission\",\n },*/\n\n {\n title: \"Weighted Average Carbon Intensity\",\n dataIndex: \"weighted_average_carbon_intensity\",\n key: \"weighted_average_carbon_intensity\",\n },\n {\n title: \"Total Carbon Emission\",\n dataIndex: \"total_carbon_emission\",\n key: \"total_carbon_emission\",\n },\n];\n\nclass TransitionAnalysis extends Component {\n state = {};\n componentDidMount() {\n let formdata = new FormData();\n formdata.append(\n \"portfolio_name\",\n this.props.location.state.carbon_project_name\n );\n this.props.getCarbonProject(formdata);\n }\n\n render() {\n return (\n \n \n \n {this.props.carbon_project.table_data ? (\n <>\n

Output Data

\n

\n Carbon Intensity:{this.props.carbon_project.carbon_intensity}\n

\n
\n

\n Carbon FootPrints:{this.props.carbon_project.carbon_footprint}\n

\n
\n

\n Total Carbon Emission:\n {this.props.carbon_project.total_carbon_emission_portfolio}\n

\n
\n \n \n ) : null}\n \n
\n
\n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n carbon_project: state.project.carbon_project,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getCarbonProject: (formdata) => {\n dispatch(project.getCarbonProject(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TransitionAnalysis);\n","import React, { useContext, useState, useEffect, useRef } from \"react\";\nimport { Table, Input, Button, Popconfirm, Form, Select } from \"antd\";\nimport { Icon } from \"semantic-ui-react\";\nimport \"./transitiontable.css\";\nconst EditableContext = React.createContext(null);\n\nconst { Option } = Select;\nlet countryoptions = [];\nlet sectoroptions = [];\nlet sector = [\n \"Automobiles & Auto Parts\",\n \"Banking Services\",\n \"Beverages\",\n \"Chemicals\",\n \"Coal\",\n \"Communications & Networking\",\n \"Electric Utilities & IPPs\",\n \"Electronic Equipments & Parts\",\n \"Food & Drug Retailing\",\n \"Food & Tobacco\",\n \"Freight & Logistics Services\",\n \"Healthcare Equipment & Supplies\",\n \"Homebuilding & Construction Supplies\",\n \"Industrial Conglomerates\",\n \"Insurance\",\n \"Investment Banking & Investment Services\",\n \"Leisure Products\",\n \"Media & Publishing\",\n \"Metals & Mining\",\n \"Natural Gas Utilities\",\n \"Oil & Gas\",\n \"Professional & Commercial Services\",\n \"Real Estate Operations\",\n \"Renewable Energy\",\n \"Software & IT Services\",\n \"Telecommunications Services\",\n \"Textiles & Apparel\",\n \"Transport Infrastructure\",\n \"Water Utilities\",\n];\nlet country = [\n \"North America\",\n \"Japan\",\n \"Europe\",\n \"China\",\n \"Southern Asia\",\n \"East Asia\",\n \"South East Asia\",\n \"South America\",\n \"Africa\",\n \"Middle East\",\n \"Australia/NZ\",\n \"Western Asia\",\n];\n\nfor (let i = 0; i < country.length; i++) {\n countryoptions.push();\n}\nfor (let i = 0; i < sector.length; i++) {\n sectoroptions.push();\n}\n\nconst EditableRow = ({ index, ...props }) => {\n const [form] = Form.useForm();\n return (\n
\n \n \n \n
\n );\n};\nfunction onSearch(val) {\n console.log(val);\n}\n\nconst EditableCell = ({\n title,\n editable,\n inputType,\n children,\n dataIndex,\n record,\n handleSave,\n ...restProps\n}) => {\n const [editing, setEditing] = useState(false);\n const inputRef = useRef(null);\n const form = useContext(EditableContext);\n useEffect(() => {\n if (editing) {\n inputRef.current.focus();\n }\n }, [editing]);\n\n const toggleEdit = () => {\n setEditing(!editing);\n form.setFieldsValue({\n [dataIndex]: record[dataIndex],\n });\n };\n\n const save = async () => {\n try {\n const values = await form.validateFields();\n toggleEdit();\n handleSave({ ...record, ...values });\n } catch (errInfo) {\n console.log(\"Save failed:\", errInfo);\n }\n };\n\n let childNode = children;\n const inputNode =\n inputType === \"select_country\" ? (\n \n {countryoptions}\n \n ) : inputType === \"select_sector\" ? (\n \n {sectoroptions}\n \n ) : (\n \n );\n\n if (editable) {\n childNode = editing ? (\n \n {inputNode}\n \n ) : (\n \n {children}\n \n );\n }\n\n return {childNode};\n};\n\nclass ModifyTransitionTable extends React.Component {\n constructor(props) {\n super(props);\n\n this.columns = [\n {\n title: \"Company Name\",\n dataIndex: \"company_name\",\n editable: true,\n },\n {\n title: \"Investment (in USD)\",\n dataIndex: \"investment_in_usd\",\n\n editable: true,\n },\n {\n title: \"NAV %\",\n dataIndex: \"nav_in_perc\",\n editable: true,\n },\n {\n title: \"Market Cap (in USD)\",\n dataIndex: \"market_cap_in_usd\",\n editable: true,\n },\n {\n title: \"Revenue (in USD)\",\n dataIndex: \"revenue_in_usd\",\n editable: true,\n },\n {\n title: \"Scope 1 and 2 GHG Emission (in t CO2e)\",\n dataIndex: \"scope_1_and_2_GHG_emission\",\n editable: true,\n },\n /* {\n title: \"Region\",\n dataIndex: \"region\",\n editable: true,\n },\n {\n title: \"Sector\",\n dataIndex: \"Sector\",\n editable: true,\n },*/\n\n {\n title: \"\",\n dataIndex: \"operation\",\n render: (_, record) =>\n this.state.dataSource.length >= 1 ? (\n this.handleDelete(record.key)}\n >\n \n \n ) : null,\n },\n ];\n this.state = {\n dataSource: this.props.data,\n count: 1,\n };\n }\n\n handleRisk = (data) => {\n console.log(\"data\", this.state.dataSource);\n this.props.handleRisk(data);\n };\n handleDelete = (key) => {\n const dataSource = [...this.state.dataSource];\n this.setState({\n dataSource: dataSource.filter((item) => item.key !== key),\n });\n };\n handleAdd = () => {\n const { count, dataSource } = this.state;\n const newData = {\n key: count,\n company_name: \"Company\",\n investment_in_usd: \"0\",\n market_cap_in_usd: \"0\",\n revenue_in_usd: \"0\",\n scope_1_and_2_GHG_emission: \"0\",\n /* region: \"China\",\n sector: \"Coal\",*/\n nav_in_perc: \"0\",\n };\n this.setState({\n dataSource: [...dataSource, newData],\n count: count + 1,\n });\n };\n handleSave = (row) => {\n const newData = [...this.state.dataSource];\n const index = newData.findIndex((item) => row.key === item.key);\n const item = newData[index];\n newData.splice(index, 1, { ...item, ...row });\n this.setState({\n dataSource: newData,\n });\n };\n\n render() {\n const { dataSource } = this.state;\n const components = {\n body: {\n row: EditableRow,\n cell: EditableCell,\n },\n };\n const columns = this.columns.map((col) => {\n if (!col.editable) {\n return col;\n }\n\n return {\n ...col,\n onCell: (record) => ({\n record,\n editable: col.editable,\n inputType:\n col.dataIndex === \"region\"\n ? \"select_country\"\n : \"text\" && col.dataIndex === \"sector\"\n ? \"select_sector\"\n : \"text\",\n dataIndex: col.dataIndex,\n title: col.title,\n handleSave: this.handleSave,\n }),\n };\n });\n return (\n
\n \n Add a row\n \n \"editable-row\"}\n bordered\n dataSource={dataSource}\n columns={columns}\n />\n\n this.handleRisk(this.state.dataSource)}\n >\n Submit\n \n
\n );\n }\n}\n\nexport default ModifyTransitionTable;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { locus, auth, project } from \"../actions\";\nimport TransitionTable from \"./transitiontable\";\nimport ModifyTransitionTable from \"./modifytransitiontable\";\nimport { Row, Col, Container, Tabs, Tab } from \"react-bootstrap\";\nimport { Table } from \"antd\";\n\nconst columns = [\n {\n title: \"Company Name\",\n key: \"company_name\",\n dataIndex: \"company_name\",\n width: \"15%\",\n },\n {\n title: \"Projected Scope 1 and 2 GHG Emission (in t CO2e)\",\n dataIndex: \"projected_scope_1_and_2_GHG_emission\",\n key: \"projected_scope_1_and_2_GHG_emission\",\n width: \"15%\",\n },\n\n {\n title: \"Weighted Average Carbon Intensity (in t CO2e/$M Revenue)\",\n dataIndex: \"weighted_average_carbon_intensity\",\n key: \"weighted_average_carbon_intensity\",\n width: \"15%\",\n },\n {\n title: \"Total Carbon Emission (in t CO2e)\",\n dataIndex: \"total_carbon_emission\",\n key: \"total_carbon_emission\",\n width: \"15%\",\n },\n {\n title: \"Carbon FootPrint ( in tCO2e/$m invested)\",\n dataIndex: \"carbon_footprint\",\n key: \"carbon_footprint\",\n width: \"15%\",\n },\n {\n title: \"Carbon Intensity (in tCO2e/$m revenue)\",\n dataIndex: \"carbon_intensity\",\n key: \"carbon_intensity\",\n width: \"15%\",\n },\n];\n\nclass EditTransition extends Component {\n state = {\n portfolio_value: \"\",\n portfolio_name: \"\",\n companies_data: \"\",\n };\n\n componentDidMount() {\n let formdata = new FormData();\n formdata.append(\n \"portfolio_name\",\n this.props.location.state.carbon_project_name\n );\n this.props.getCarbonProjectData(formdata);\n this.props.getCarbonProject(formdata);\n }\n componentDidUpdate(prevProps, nextProps) {\n if (prevProps.carbon_project_data != this.props.carbon_project_data) {\n this.setState({\n portfolio_value: this.props.carbon_project_data.portfolio_value,\n portfolio_name: this.props.carbon_project_data.portfolio_name,\n companies_data: this.props.carbon_project_data.companies_data,\n });\n }\n }\n\n handleTransition = (data) => {\n console.log(\"modify\", data);\n let formdata = new FormData();\n formdata.append(\"portfolio_name\", this.state.portfolio_name);\n formdata.append(\"portfolio_value\", this.state.portfolio_value);\n formdata.append(\"companies_data\", JSON.stringify(data));\n this.props.ModifyTransition(formdata);\n };\n\n render() {\n return (\n \n
\n \n \n \n \n

Input Data

\n \n \n \n
\n \n \n this.setState({ portfolio_value: e.target.value })\n }\n />\n
\n \n \n
\n \n \n this.setState({ portfolio_name: e.target.value })\n }\n disabled\n />\n
\n \n
\n\n {this.state.companies_data ? (\n \n ) : null}\n \n
\n \n \n {this.props.carbon_project.table_data ? (\n <>\n

Output Data

\n \n \n ) : null}\n \n \n

Portfolio Total

\n \n \n

\n {\n this.props.carbon_project\n .projected_scope_1_and_2_portfolio\n }\n

\n \n \n

\n {\n this.props.carbon_project\n .weighted_average_carbon_intensity_portfolio\n }\n

\n \n \n

\n {\n this.props.carbon_project\n .total_carbon_emission_portfolio\n }\n

\n \n \n

{this.props.carbon_project.carbon_footprint}

\n \n \n

{this.props.carbon_project.carbon_intensity}

\n \n
\n \n
\n
\n \n
\n
\n );\n }\n}\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n\n carbon_project_data: state.project.carbon_project_data,\n carbon_project: state.project.carbon_project,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n ModifyTransition: (formdata) => {\n dispatch(locus.ModifyTransition(formdata));\n },\n getCarbonProjectData: (formdata) => {\n dispatch(project.getCarbonProjectData(formdata));\n },\n getCarbonProject: (formdata) => {\n dispatch(project.getCarbonProject(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EditTransition);\n","import React, { useRef, useEffect, useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { Marker, Popup, FlyToInterpolator, Layer, Source } from \"react-map-gl\";\nimport data from \"../constants/menu\";\nimport { ConsoleSqlOutlined } from \"@ant-design/icons\";\nimport mapboxgl from \"mapbox-gl\"; // eslint-disable-next-line import/no-webpack-loader-syntax\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\n\nlet mapcards = [];\n\nexport default function RealEstateMap(props) {\n const mapContainer = useRef(null);\n const map = useRef(null);\n const [lng, setLng] = useState(114.1838);\n const [lat, setLat] = useState(22.2797);\n const [zoom, setZoom] = useState(15.5);\n\n useEffect(() => {\n if (map.current) return; // initialize map only once\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [lng, lat],\n zoom: zoom,\n });\n });\n\n useEffect(() => {\n if (!map.current) return;\n map.current.on(\"load\", () => {\n // Insert the layer beneath any symbol layer.\n const layers = map.current.getStyle().layers;\n const labelLayerId = layers.find(\n (layer) => layer.type === \"symbol\" && layer.layout[\"text-field\"]\n ).id;\n\n // The 'building' layer in the Mapbox Streets\n // vector tileset contains building height data\n // from OpenStreetMap.\n map.current.addLayer(\n {\n id: \"add-3d-buildings\",\n source: \"composite\",\n \"source-layer\": \"building\",\n filter: [\"==\", \"extrude\", \"true\"],\n type: \"fill-extrusion\",\n minzoom: 15,\n paint: {\n \"fill-extrusion-color\": \"#aaa\",\n\n // Use an 'interpolate' expression to\n // add a smooth transition effect to\n // the buildings as the user zooms in.\n \"fill-extrusion-height\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"height\"],\n ],\n \"fill-extrusion-base\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"min_height\"],\n ],\n \"fill-extrusion-opacity\": 0.6,\n },\n },\n labelLayerId\n );\n }); // wait for map to initialize\n });\n\n useEffect(() => {\n if (!map.current) return;\n\n map.current.on(\"click\", (e) => {\n const marker = new mapboxgl.Marker()\n .setLngLat([e.lngLat.lng, e.lngLat.lat])\n\n .addTo(map.current);\n\n //console.log(geocoder.query(\"Henessy Road\"));\n // console.log(geocoder.query([e.lngLat.lng, e.lngLat.lat].toString()));\n fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${e.lngLat.lng},${e.lngLat.lat}.json?access_token=pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA`\n )\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n })\n .then((data) => {\n console.log(data);\n let address = data.features[0].place_name.split(\",\")[0];\n\n props.location(address, e.lngLat.lat, e.lngLat.lng);\n });\n });\n }, [props.location]);\n\n return (\n
\n
\n
\n );\n}\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Radio,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Dropdown,\n Accordion,\n} from \"semantic-ui-react\";\nimport \"./location.css\";\nimport { loadModules } from \"esri-loader\";\nimport { CSVReader } from \"react-papaparse\";\nimport logo from \"../assets/logo.png\";\nimport home from \"../assets/home.png\";\nimport add from \"../assets/images/add.png\";\nimport sample from \"../assets/image.png\";\nimport search from \"../assets/search.png\";\nimport upload from \"../assets/upload.png\";\nimport hsi from \"../assets/hsi.png\";\nimport sp from \"../assets/sp.png\";\nimport dax from \"../assets/dax.png\";\nimport dawjones from \"../assets/dowjones.png\";\nimport nasdaq from \"../assets/nasdaq.png\";\nimport euro from \"../assets/euro.png\";\nimport nifty from \"../assets/nifty.png\";\nimport nikkie from \"../assets/nikkei.png\";\n\nimport { connect } from \"react-redux\";\nimport { locus, auth } from \"../actions\";\nimport { Checkbox, Typography } from \"antd\";\n\nimport { company } from \"../actions\";\nimport Suggestion from \"./suggestion\";\nimport Spinner from \"./spinner\";\nimport LocationMap from \"./location_map\";\nimport RealEstateMap from \"./realestate_map\";\nimport { CSVLink } from \"react-csv\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect } from \"react-router-dom\";\nimport { Tabs, Tab, Row, Col, Container, Breadcrumb } from \"react-bootstrap\";\nimport video from \"../assets/video.mp4\";\nimport video1 from \"../assets/video.gif\";\n\nimport TransitionTable from \"./transitiontable\";\n\nimport { Table } from \"antd\";\n\nconst buttonRef = React.createRef();\n\nconst companyRef = React.createRef();\n\nlet mapcards = [];\nlet companycards = [];\nlet selectList = \"\";\nlet optionList = [];\nlet newmapcards = [];\nlet csvcards = [];\nlet buildingcsvcards = [];\n\nlet selectedList = [];\n\nconst othersOptions = [\n { key: \"Flood\", value: \"River Flood\", text: \"Flood\" },\n { key: \"Rainfall\", value: \"Rainfall\", text: \"Rainfall\" },\n\n { key: \"Drought Index\", value: \"Drought Index\", text: \"Drought Index\" },\n { key: \"Landslide\", value: \"Landslide\", text: \"Landslide\" },\n { key: \"Storm Surge\", value: \"Storm Surge\", text: \"Storm Surge\" },\n\n { key: \"Extreme heat\", value: \"Extreme heat\", text: \"Extreme heat\" },\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n];\n\nlet minedata = [];\n\nconst columns = [\n {\n title: \"Name\",\n key: \"name\",\n dataIndex: \"name\",\n },\n {\n title: \"Flood Scores\",\n key: \"flood_scores\",\n dataIndex: \"flood_scores\",\n },\n {\n title: \"Typhoon Scores\",\n key: \"typhoon_scores\",\n dataIndex: \"typhoon_scores\",\n },\n {\n title: \"GDP\",\n key: \"gdp\",\n dataIndex: \"gdp\",\n },\n {\n title: \"Population Density\",\n key: \"population\",\n dataIndex: \"population\",\n },\n];\n\nconst csvData = [\n [\"name\", \"latitude\", \"longitude\"],\n [\"intensel\", \"0.00\", \"0.00\"],\n];\nconst ContinentOptions = [\n { key: \"Asia\", value: [\"Asia\", 100.6197, 34.04, 3], text: \"Asia\" },\n { key: \"Europe\", value: [\"Europe\", 15.2551, 54.526, 3], text: \"Europe\" },\n {\n key: \"Australia\",\n value: [\"Australia\", 133.7751, -25.2744, 3],\n text: \"Australia\",\n },\n { key: \"America\", value: [\"America\", -95.7129, 37.0902, 2], text: \"America\" },\n { key: \"Africa\", value: [\"Africa\", 34.5085, 8.7832, 3], text: \"Africa\" },\n];\n\nconst indexOptions = [\n { key: \"HSI\", value: \"HSI\", text: \"HSI\" },\n { key: \"S&P-500\", value: \"S&P-500\", text: \"S&P-500\" },\n { key: \"dax\", value: \"dax\", text: \"dax\" },\n { key: \"dowjones\", value: \"dowjones\", text: \"dowjones\" },\n { key: \"nasdaq\", value: \"nasdaq\", text: \"nasdaq\" },\n { key: \"eurostock\", value: \"eurostock\", text: \"eurostock\" },\n { key: \"nifty\", value: \"nifty\", text: \"nifty\" },\n { key: \"nikkie\", value: \"nikkie\", text: \"nikkie\" },\n];\n\nconst SearchOptions = [\n { key: \"HTML Search\", value: \"html\", text: \"HTML Search\" },\n { key: \"Shallow Search\", value: \"shallow\", text: \"Shallow Search\" },\n { key: \"Deep Search\", value: \"deep\", text: \"Deep Search\" },\n];\n\nclass Realestate extends Component {\n constructor(props) {\n super(props);\n this.mapRef = React.createRef();\n }\n\n state = {\n upload: \"\",\n file: false,\n locations: [],\n query: \"\",\n option: \"\",\n variables: [],\n buildingVariables: [],\n overwrite: \"false\",\n company: [],\n portfolio: \"\",\n selectedOption: null,\n newlocations: [],\n modalOpen: false,\n videoOpen: false,\n loading: false,\n long: 114.1838,\n lat: 22.2797,\n zoom: 16,\n continent: \"Continents\",\n selectedTags: [],\n allTags: [],\n buildingselectedTags: [],\n allbuildingTags: [],\n optional: \"\",\n infoOpen: false,\n buildinginfoOpen: false,\n restrictOpen: false,\n address: \"\",\n companyloading: false,\n buildingmodalOpen: false,\n search_type: \"\",\n index: \"HSI\",\n modalIndicesOpen: false,\n portfolio_value: \"\",\n portfolio_name: \"\",\n };\n handleClick = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n this.setState({ activeIndex: newIndex });\n };\n handleIndex = (e) => {\n console.log(\"checked\", e.target.id);\n\n if (this.state.index == e.target.id) {\n this.setState({ index: \"\" });\n } else {\n this.setState({ index: e.target.id }, () =>\n this.props.getIndices(this.state.index)\n );\n }\n };\n\n handleChange = (e, { value }) => {\n this.setState({ selectedOption: value }, () =>\n console.log(\"selectedoption\", this.state.selectedOption)\n );\n };\n onSubmit = (e) => {\n e.preventDefault();\n\n let formdata = new FormData();\n\n formdata.append(\"data\", JSON.stringify(this.state.locations));\n\n formdata.append(\"project_name\", this.state.portfolio);\n this.setState({ loading: true }, () => {\n this.props.PropertyRisk(formdata);\n });\n };\n onIndicesSubmit = (e) => {\n e.preventDefault();\n\n let formdata = new FormData();\n\n formdata.append(\"index_name\", this.state.index);\n formdata.append(\"portfolio_name\", this.state.portfolio);\n\n this.setState({ loading: true }, () => {\n this.props.addIndex(formdata);\n });\n };\n onbuildingSubmit = (e) => {\n e.preventDefault();\n let formdata = new FormData();\n formdata.append(\"value\", JSON.stringify(this.state.locations));\n formdata.append(\"portfolio_name\", this.state.portfolio);\n formdata.append(\"variables\", JSON.stringify(this.state.variables));\n this.setState({ loading: true }, () => {\n this.props.addBuildingLocations(formdata);\n });\n };\n\n handleOpenDialog = (e) => {\n if (buttonRef.current) {\n buttonRef.current.open(e);\n }\n };\n\n handleFileLoad = (data) => {\n csvcards = [];\n for (let i = 1; i < data.length - 1; i++) {\n if (data[i].data[3] == \"\") {\n data[i].data[3] = \"NA\";\n }\n if (data[i].data[5] == \"\") {\n data[i].data[5] = \"NA\";\n }\n if (\n data[i].data[4] == \"\" ||\n !this.state.optional.includes(\"Construction Cost\")\n ) {\n data[i].data[4] = \"NA\";\n }\n if (data[i].data[6] == \"\" || !this.state.optional.includes(\"Area\")) {\n data[i].data[6] = \"NA\";\n }\n if (data[i].data[7] == \"\" || !this.state.optional.includes(\"Valuation\")) {\n data[i].data[7] = \"NA\";\n }\n if (data[i].data[8] == \"\" || !this.state.optional.includes(\"Floors\")) {\n data[i].data[8] = \"NA\";\n }\n if (data[i].data[9] == \"\" || !this.state.optional.includes(\"Solar\")) {\n data[i].data[9] = \"NA\";\n }\n if (data[i].data[10] == \"\" || !this.state.optional.includes(\"Wind\")) {\n data[i].data[10] = \"NA\";\n }\n if (data[i].data[11] == \"\" || !this.state.optional.includes(\"Hydro\")) {\n data[i].data[11] = \"NA\";\n }\n if (data[i].data[12] == \"\" || !this.state.optional.includes(\"Wheat\")) {\n data[i].data[12] = \"NA\";\n }\n if (data[i].data[13] == \"\" || !this.state.optional.includes(\"Rice\")) {\n data[i].data[13] = \"NA\";\n }\n if (data[i].data[14] == \"\" || !this.state.optional.includes(\"Maize\")) {\n data[i].data[14] = \"NA\";\n }\n if (data[i].data[15] == \"\" || !this.state.optional.includes(\"Fruit\")) {\n data[i].data[15] = \"NA\";\n }\n if (data[i].data[16] == \"\" || !this.state.optional.includes(\"Veg\")) {\n data[i].data[16] = \"NA\";\n }\n if (\n data[i].data[17] == \"\" ||\n !this.state.optional.includes(\"Ownership\")\n ) {\n data[i].data[17] = \"NA\";\n }\n\n console.log(\"filename\", data);\n\n csvcards.push({\n name: data[i].data[0],\n latitude: data[i].data[1],\n longitude: data[i].data[2],\n revenue: data[i].data[3],\n property_type: data[i].data[5],\n country_code: \"NA\",\n construction_cost: data[i].data[4],\n area: data[i].data[6],\n valuation: data[i].data[7],\n stories: data[i].data[8],\n solar_production: data[i].data[9],\n hydro_production: data[i].data[11],\n wind_production: data[i].data[10],\n wheat_production: data[i].data[12],\n rice_production: data[i].data[13],\n maize_production: data[i].data[14],\n fruit_production: data[i].data[15],\n vegetable_production: data[i].data[16],\n ownership: data[i].data[17],\n });\n }\n this.setState({ allTags: csvcards, infoOpen: false }, () =>\n console.log(\"multiple\", this.state.allTags)\n );\n };\n\n handleCompanyDialog = (e) => {\n if (companyRef.current) {\n companyRef.current.open(e);\n }\n };\n\n handelOnError = (err, file, inputElem, reason) => {\n console.log(err);\n };\n\n handleOpen = () => this.setState({ modalOpen: true });\n handleIndicesOpen = () => this.setState({ modalIndicesOpen: true });\n handlebuildOpen = () => this.setState({ buildingmodalOpen: true });\n handlevideoOpen = () => this.setState({ videoOpen: true });\n handleinfoOpen = () => this.setState({ infoOpen: true });\n handleBuildinginfoOpen = () => this.setState({ buildinginfoOpen: true });\n handleClose = () =>\n this.setState({\n modalOpen: false,\n videoOpen: false,\n infoOpen: false,\n restrictOpen: false,\n buildinginfoOpen: false,\n buildingmodalOpen: false,\n modalIndicesOpen: false,\n });\n\n handleContinent = (e, { value }) => {\n console.log(\"Continents\", value);\n this.setState({\n continent: value[0],\n long: value[1],\n lat: value[2],\n zoom: value[3],\n });\n };\n\n componentDidMount() {\n loadModules(\n [\n \"esri/Map\",\n \"esri/views/MapView\",\n \"esri/layers/FeatureLayer\",\n \"esri/widgets/Legend\",\n \"esri/Graphic\",\n \"esri/widgets/Search\",\n \"esri/tasks/Locator\",\n ],\n { css: true }\n ).then(\n ([\n ArcGISMap,\n MapView,\n FeatureLayer,\n Legend,\n Graphic,\n Search,\n Locator,\n ]) => {\n let that = this;\n\n const map = new ArcGISMap({\n basemap: \"streets-night-vector\",\n });\n\n const view = new MapView({\n container: \"viewDiv\",\n map: map,\n center: [this.state.long, this.state.lat],\n zoom: this.state.zoom,\n });\n\n var search = new Search({\n view: view,\n });\n view.ui.add(search, \"top-right\");\n\n view.on(\"click\", function(event) {\n console.log(event.mapPoint.latitude, event.mapPoint.longitude);\n createGraphic(event.mapPoint.latitude, event.mapPoint.longitude);\n search.clear();\n\n if (search.activeSource) {\n var geocoder = search.activeSource.locator;\n var locator = new Locator(\n \"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?f=pjson&langCode=EN\"\n );\n var params = {\n location: event.mapPoint,\n };\n\n locator.locationToAddress(params).then(\n function(response) {\n var address = response.address;\n console.log(\"addressssss\", response);\n mapcards.push([\n address,\n event.mapPoint.latitude,\n event.mapPoint.longitude,\n \"NA\",\n \"NA\",\n ]);\n console.log(\"mapcard\", mapcards);\n that.setState({ locations: mapcards }, () =>\n console.log(\"locations\", that.state.locations)\n );\n },\n function(err) {\n console.log(\"errror\", err);\n }\n );\n }\n });\n function createGraphic(lat, long) {\n // First create a point geometry\n var point = {\n type: \"point\", // autocasts as new Point()\n longitude: long,\n latitude: lat,\n };\n\n // Create a symbol for drawing the point\n var markerSymbol = {\n type: \"simple-marker\", // autocasts as new SimpleMarkerSymbol()\n color: [255, 0, 0],\n };\n\n // Create a graphic and add the geometry and symbol to it\n var pointGraphic = new Graphic({\n geometry: point,\n symbol: markerSymbol,\n });\n\n // Add the graphics to the view's graphics layer\n view.graphics.add(pointGraphic);\n }\n }\n );\n }\n\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n mapcards = [];\n }\n\n handleRemoveFile = (e) => {\n // Note that the ref is set async, so it might be null at some point\n if (buttonRef.current) {\n buttonRef.current.removeFile(e);\n }\n };\n handleRemoveLocation = (index) => {\n var array = [...this.state.locations];\n\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ locations: array });\n mapcards.splice(index, 1);\n }\n };\n handleRemoveNewLocation = (index) => {\n var array = [...this.state.newlocations];\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ newlocations: array });\n newmapcards.splice(index, 1);\n }\n };\n handleSearch = (e, { value }) => {\n this.setState({ company: value }, this.handleAsync);\n };\n handleSearchType = (e, { value }) => {\n this.setState({ search_type: value });\n };\n /* handleAsync=()=>{\n \t\tconsole.log(\"ye his\",this.state.company);\n \t\tmapcards=[];\n \t\tfor(let i=0;icompany.NAME===this.state.company[i])\n \t\t \t\n \t\t \tconsole.log(\"Location company\",LocationList);\n \t\t \t\n \t\t \t\tconsole.log(\"working\",LocationList[0].coord)\n \t\t \t\tif(LocationList[0].ADDRESS.length>0){\n \t\t \t\tlet a = JSON.parse(LocationList[0].ADDRESS.replace(/'/g,'\"'));\n \t\t \t\tconsole.log(\"working\",a);\n \t\t \t\tlet b = JSON.parse(LocationList[0].coord.replace(/'/g,'\"'));\n \t\t \t\tconsole.log(\"working\",b[0].split(',')[0].replace(/[\\])}[{(]/g, ''),b[0].split(',')[1].replace(/[()]/g,''));\n \t\t \t\t\n \t\t \t\tfor(let j=0;jconsole.log(\"comapnay\",mapcards))\n \t\t \t\t}\n \t\t \t\t\n\n \t\t \t\n\n\t\t}\n\n }*/\n handleAddress = (e) => {\n let formdata = new FormData();\n formdata.append(\"website\", this.state.address);\n formdata.append(\"parser\", this.state.search_type);\n this.setState({ companyloading: true }, () => this.props.getName(formdata));\n };\n\n handleOptions = (e) => {\n if (e.target.value.length > 3) {\n let formdata = new FormData();\n formdata.append(\"search_term\", e.target.value);\n this.props.getName(formdata);\n\n let searchList = [];\n if (this.props.name.length > 0) {\n console.log(\"name\", this.props.name);\n\n for (let i = 0; i < this.props.name.length; i++) {\n searchList.push({\n key: this.props.name[i],\n text: this.props.name[i],\n value: this.props.name[i],\n });\n }\n\n this.setState({ option: searchList }, () =>\n console.log(\"option\", this.state.option)\n );\n }\n\n this.setState({ query: e.target.value }, () =>\n console.log(this.state.query)\n );\n }\n };\n /*handleOptions =(e)=>{\n \t\n \tif(e.target.value.length>1){\n \t\tthis.selectList=companyList.filter(company=>company.NAME.slice(0,2).toLowerCase()==e.target.value.slice(0,2).toLowerCase())\n \t\t\n \t\tlet searchList = this.selectList.map(({NAME}) =>{\n\treturn{\n\t\tkey:NAME,\n\t\tvalue:NAME,\n\t\ttext:NAME\n\t}\n}) \n \t\t\n \t\tthis.setState({option:searchList},()=>console.log(\"option\",this.state.option));\n \t\t\n \t}\n \t\n \t \t\tthis.setState({query:e.target.value},()=>console.log(this.state.query))\n\n }*/\n\n handleLogout = () => {\n this.props.logout();\n };\n onChange = (checkedValues) => {\n console.log(\"checked\", checkedValues);\n this.setState({ variables: checkedValues });\n };\n onBuildingChange = (checkedValues) => {\n this.setState({ buildingVariables: checkedValues });\n };\n handleOptional = (checkedValues) => {\n this.setState({ optional: checkedValues }, () =>\n console.log(\"optional\", this.state.optional)\n );\n };\n handleCompanyLoad = (data) => {\n console.log(\"filename\", data[1].data[0]);\n for (let i = 1; i < 3; i++) {\n this.props.getCoordinates(data[i].data[0]);\n\n if (this.props.point.type) {\n minedata.push(this.props.point.features[i].geometry.coordinates);\n console.log(\"mine data\", minedata);\n }\n\n /*\tlet LocationList = companyList.filter(company=>company.NAME==data[i].data[0])\n \t\t \t\n \t\t \tconsole.log(\"Location company\",LocationList,data[i].data[0]);\n \t\t \t\n \t\t \t\tconsole.log(\"chal raha hai \",LocationList[0].ADDRESS)\n \t\t \t\tif(LocationList[0].ADDRESS.length>0){\n \t\t \t\tlet a = JSON.parse(LocationList[0].ADDRESS.replace(/'/g,'\"'));\n \t\t \t\tconsole.log(\"working\",a);\n \t\t \t\tlet b = JSON.parse(LocationList[0].coord.replace(/'/g,'\"'));\n \t\t \t\tconsole.log(\"working\",b[0].split(',')[1].replace(/[()]/g,''));\n \t\t \t\t\n \t\t \t\tfor(let j=0;jconsole.log(\"csvcomapnay\",mapcards))\n \t\t \t\t}*/\n }\n };\n handleAsset = (address, latitude, longitude) => {\n mapcards.push({\n name: address,\n latitude: latitude,\n longitude: longitude,\n });\n this.setState({ locations: mapcards }, () =>\n console.log(\"map\", this.state.locations, mapcards.length)\n );\n };\n handleClear = () => {\n companycards = [];\n this.setState({ locations: [], address: \"\" });\n };\n\n addtoSelected(asset) {\n selectedList.push(asset);\n var array = [...this.state.allTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ allTags: array });\n }\n this.setState({ selectedTags: selectedList, locations: selectedList });\n }\n remove(asset) {\n var array = [...this.state.selectedTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ selectedTags: array, locations: array }, () =>\n console.log(\"remove\", this.state.selectedTags)\n );\n }\n this.state.allTags.push(asset);\n }\n addAll = () => {\n var array = [...this.state.allTags];\n this.setState({ selectedTags: array, locations: array });\n };\n clearAll = () => {\n this.setState({ selectedTags: \"\", locations: \"\", allTags: \"\" });\n };\n\n addtobuildingSelected(asset) {\n selectedList.push(asset);\n var array = [...this.state.allbuildingTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ allbuildingTags: array });\n }\n this.setState({\n buildingselectedTags: selectedList,\n locations: selectedList,\n });\n }\n buildingremove(asset) {\n var array = [...this.state.buildingselectedTags];\n var index = array.indexOf(asset);\n if (index !== -1) {\n array.splice(index, 1);\n this.setState({ buildingselectedTags: array, locations: array }, () =>\n console.log(\"remove\", this.state.buildingselectedTags)\n );\n }\n this.state.allbuildingTags.push(asset);\n }\n addbuildingAll = () => {\n var array = [...this.state.allbuildingTags];\n this.setState({ buildingselectedTags: array, locations: array });\n };\n clearbuildingAll = () => {\n this.setState({\n buildingselectedTags: \"\",\n locations: \"\",\n allbuildingTags: \"\",\n });\n };\n\n render() {\n const { Text, Link } = Typography;\n\n const isDarkMode = localStorage.getItem(\"theme\") == \"dark\";\n\n console.log(\"state clear\", this.props.transition);\n\n const { activeIndex, others } = this.state;\n\n if (this.props.point.type) {\n minedata.push([\n this.props.point.features[0].place_name,\n this.props.point.features[0].geometry.coordinates[0],\n this.props.point.features[0].geometry.coordinates[1],\n ]);\n console.log(\"minedata\", minedata);\n }\n\n if (this.props.location.state) {\n let newmapcards = this.props.location.state.assets.assets;\n\n var newcards = [];\n\n if (newmapcards.length > 0) {\n this.state.newlocations = newmapcards;\n\n console.log(\"this.s\", this.state.newlocations);\n for (let i = 0; i < this.state.newlocations.length; i++) {\n newcards.push(\n \n \n \n );\n }\n }\n }\n\n const { value, continent } = this.state;\n var cards = [];\n var csvtags = [];\n var buildingcsvtags = [];\n if (mapcards.length > 0) {\n for (let i = 0; i < this.state.locations.length; i++) {\n cards.push(\n
\n
{i + 1}
\n
\n {this.state.locations[i].name.slice(0, 20)}\n
\n
\n {this.state.locations[i].latitude.toFixed(3)}\n
\n
\n {this.state.locations[i].longitude.toFixed(3)}\n
\n
\n this.handleRemoveLocation(i)}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n );\n }\n }\n\n console.log(\"props\", this.props.name);\n if (this.props.name.length > 0 && this.state.address.length > 0) {\n this.state.companyloading = false;\n this.state.locations = [];\n companycards = [];\n for (let i = 0; i < this.props.name.length; i++) {\n this.state.locations.push({\n name: this.props.name[i].Address,\n latitude: this.props.name[i].latitude,\n longitude: this.props.name[i].longitude,\n revenue: \"NA\",\n property_type: \"NA\",\n country_code: \"NA\",\n });\n let src = \"//logo.clearbit.com/\";\n companycards.push(\n \n \n \n );\n }\n console.log(\"company location\", this.state.locations);\n }\n\n if (csvcards.length > 0) {\n for (let i = 0; i < this.state.allTags.length; i++) {\n csvtags.push(\n \n );\n }\n }\n if (buildingcsvcards.length > 0) {\n for (let i = 0; i < this.state.allbuildingTags.length; i++) {\n buildingcsvtags.push(\n \n );\n }\n }\n\n return (\n
\n \n \n
\n \n RealEstate\n \n
\n \n
\n \n \n \n \n \n
\n \n \n {/* \n \n Select location to analyze climate risk on map{\" \"}\n \n \n \n */}\n\n \n \n\n \n \n \n Selected Asset\n \n \n\n
\n
\n
\n
No.
\n \n Name\n
\n
Lat
\n
Long
\n
\n \n
\n
\n {cards}\n
\n
\n\n \n SUBMIT\n \n\n
\n {this.props.location.state ? (\n
\n
\n My Assets\n
\n {newcards}\n
\n ) : null}\n
\n
\n \n \n \n \n \n \n

\n \n Upload CSV \n \n

\n\n \n \n \n Download Sample CSV\n \n \n \n\n
\n
\n\n \n {({ file }) => (\n \n \n \n \n No file selected\n \n \n \n \n \n
\n \n \n \n \n )}\n \n
\n
\n \n \n

All Assets

\n
{csvtags}
\n \n \n \n {\" \"}\n Add All\n \n \n Clear All\n \n \n \n

Selected Assets

\n
\n {this.state.selectedTags.length > 0\n ? this.state.selectedTags.map((asset, index) => (\n \n {asset[\"name\"]}\n this.remove(asset)}\n />\n \n ))\n : null}\n
\n \n SUBMIT\n \n \n
\n \n \n \n\n {/* \n

Upload CSV

\n \n \n\n \n \n
\n
\n \n \n \n {({ file }) => (\n \n \n \n \n
No file selected
\n \n \n \n \n \n \n )}\n \n

\n \n \n \n

All Assets

\n
{buildingcsvtags}
\n
\n \n \n \n \n \n \n

Selected Assets

\n
{this.state.buildingselectedTags.length>0?this.state.buildingselectedTags.map((asset,index)=>(\n )):null}
\n \n\n
\n\n
\n
*/}\n \n \n \n
\n\n \n \n Confirmation\n \n \n

\n Do you want to upload CSV with these{\" \"}\n ?\n

\n
\n\n \n Area\n
\n Valuation\n
\n Number of Floors\n Solar Power Production (in gwh)\n Wind Power Production (in gwh)\n Hydro Power Production (in gwh)\n \n Repairing / Construction Cost (in mil $)\n \n\n Wheat Production (in kg)\n Rice Production (in kg)\n Maize Production (in kg)\n Fruit Production (in kg)\n Vegetable Production (in kg)\n OwnerShip\n \n
\n \n Submit\n \n
\n
\n
\n
\n\n {/* \n Confirmation\n \n

Do you want to upload CSV with these ?


\n \n \n Area
\n Valuation
\n Number of Floors\n \n\n\n \n\n\n

\n \n
\n
\n
\n */}\n \n \n Error\n \n \n {/**/}\n

\n You are only allowed to add{\" \"}\n {this.props.permissions.assets_allowed} assets for Analysis\n

\n
\n \n \n \n How to Upload CSV\n \n \n {/**/}\n \n \n \n \n \n Create Project\n \n \n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Project Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n
\n )}\n\n
\n
\n\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n
\n ) : (\n \n Submit\n \n )}\n \n
\n
\n\n \n Create Portfolio\n \n
\n {this.props.location.state ? (\n
\n

\n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"ovewrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

\n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
\n ) : (\n
\n \n this.setState({ portfolio: e.target.value })\n }\n style={{ border: \"0px\" }}\n label=\"Portfolio Name\"\n />\n\n {/* this.handleChange(value,'others')}/> */}\n
\n )}\n\n
\n
\n\n {this.state.loading && this.props.errors.error == undefined ? (\n
\n \n
\n ) : (\n \n Submit\n \n )}\n \n
\n \n\n {/* \t\n Create Portfolio\n \n \t
\n\t\t\t\t{(this.props.location.state)?\n\t\t\t\t\t
\n\t\t\t\t\t\t

New Portfolio this.setState({overwrite:!this.state.overwrite},()=>console.log(\"ovewrite\",this.state.overwrite))} toggle/>

\n\t\t\t\t\t\t{(this.state.overwrite)?this.setState({portfolio:e.target.value})}/>:}\n\t\t\t\t\t
:\n
\n\t\t\t\tthis.setState({portfolio:e.target.value})}\n\t\t\t\t\t style={{border:'0px'}}\n\t\t\t\t\t label=\"Portfolio Name\"\n\t\t\t\t\t \n\t\t\t\t\t />\n\n this.handleChange(value,'others')}/> \n

\n \n Solar Production\n Wind Production\n Wheat Production
\n Rice Production\n \n Maize Production\n Fruit Production\n Vegetable Production\n \n
\n
\n \n \n
\n}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\n\t\t\t\t{(this.state.loading && this.props.errors.error==undefined)?
:\n\t\t\t\t}\n\t\t\t
\n
\n*/}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n locus: state.locus,\n company: state.company.company,\n permissions: state.locus.permissions,\n name: state.locus.name,\n point: state.locus.point,\n indices: state.locus.indices,\n transition: state.locus.transition,\n property: state.locus.property,\n };\n};\nconst mapDispatchToPros = (dispatch) => {\n return {\n addLocations: (formdata) => {\n dispatch(locus.addLocations(formdata));\n },\n addBuildingLocations: (formdata) => {\n dispatch(locus.addBuildingLocations(formdata));\n },\n getCompany: () => {\n dispatch(company.getCompanies());\n },\n logout: () => {\n dispatch(auth.logout());\n },\n changeTitle: (title) => {\n dispatch(changeTitle(title));\n },\n getName: (formdata) => {\n dispatch(locus.getName(formdata));\n },\n getCoordinates: (formdata) => {\n dispatch(locus.getCoordinates(formdata));\n },\n getIndices: (formdata) => {\n dispatch(locus.getIndices(formdata));\n },\n addIndex: (formdata) => {\n dispatch(locus.addIndex(formdata));\n },\n getTransition: (formdata) => {\n dispatch(locus.getTransition(formdata));\n },\n PropertyRisk: (formdata) => {\n dispatch(locus.PropertyRisk(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToPros)(Realestate);\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { Marker, Popup, FlyToInterpolator, Layer, Source } from \"react-map-gl\";\nimport data from \"../constants/menu\";\nimport { ConsoleSqlOutlined } from \"@ant-design/icons\";\nimport mapboxgl from \"mapbox-gl\"; // This is a dependency of react-map-gl even if you didn't explicitly install it\n\n// eslint-disable-next-line import/no-webpack-loader-syntax\n\nconst parkLayer = {\n id: \"3d-buildings\",\n source: \"composite\",\n \"source-layer\": \"building\",\n filter: [\"==\", \"extrude\", \"true\"],\n type: \"fill-extrusion\",\n minzoom: 15,\n paint: {\n \"fill-extrusion-color\": \"#aaa\",\n\n // Use an 'interpolate' expression to\n // add a smooth transition effect to\n // the buildings as the user zooms in.\n \"fill-extrusion-height\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"height\"],\n ],\n \"fill-extrusion-base\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"min_height\"],\n ],\n \"fill-extrusion-opacity\": 0.9,\n },\n};\n\nconst PropertyMap = (props) => {\n const [viewport, setViewport] = useState({\n width: \"100%\",\n height: 450,\n latitude: props.data[0].lat,\n longitude: props.data[0].lon,\n zoom: 15.5,\n });\n\n let feature = [];\n\n for (let i = 0; i < props.data.length; i++) {\n let locations = [];\n\n feature.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [props.data[i].lon, props.data[i].lat],\n },\n properties: {\n address: props.data[i].name,\n flood_score: props.data[i].flood_score,\n typhoon_score: props.data[i].typhoon_score,\n },\n });\n }\n\n var stores = {\n type: \"FeatureCollection\",\n features: feature,\n };\n\n /**\n * Assign a unique id to each store. You'll use this `id`\n * later to associate each point on the map with a listing\n * in the sidebar.\n */\n stores.features.forEach(function(store, i) {\n store.properties.id = i;\n });\n\n const listings = stores.features.map((listing, index) => {\n return (\n handlezoom(listing.geometry)}>\n {listing.properties.address}\n \n );\n });\n\n const handlezoom = (geometry) => {\n setViewport({\n ...viewport,\n zoom: 18,\n latitude: geometry.coordinates[1],\n longitude: geometry.coordinates[0],\n transitionDuration: 5000,\n transitionInterpolator: new FlyToInterpolator(),\n });\n };\n\n let html = [];\n for (let i = 0; i < stores.features.length; i++) {\n html.push(\n \n {stores.features[i].properties.address.slice(0, 20)}\n {stores.features[i].properties.loss} mil $\n \n );\n }\n\n const markers = stores.features.map((marker, index) => (\n handlezoom(marker.geometry)}\n >\n ));\n\n const popup = stores.features.map((popup, index) => (\n \n
\n
Asset & Risk Scores
\n \n \n \n \n \n \n \n \n \n \n \n
Asset NameFlood ScoresTyphoon Scores
{popup.properties.address}{popup.properties.flood_score}{popup.properties.typhoon_score}
\n
\n \n ));\n\n return (\n
\n setViewport(nextViewport)}\n mapboxApiAccessToken=\"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\"\n >\n {markers}\n {popup}\n \n \n
\n );\n};\nexport default PropertyMap;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\n\nimport tr1 from \"../assets/toprow1.png\";\nimport tr2 from \"../assets/tr2.png\";\nimport tr3 from \"../assets/toprow3.png\";\nimport tr4 from \"../assets/toprow4.png\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport { Icon, Modal } from \"semantic-ui-react\";\nimport { locus, auth } from \"../actions\";\nimport { ResponsiveHeatMap } from \"@nivo/heatmap\";\nimport { Table } from \"antd\";\nimport PropertyMap from \"./propertymap\";\n\nconst columns_typhoon = [\n {\n title: \"Elevation (m)\",\n key: \"elevation\",\n dataIndex: \"elevation\",\n },\n\n {\n title: \"Slope (%)\",\n key: \"slope\",\n dataIndex: \"slope\",\n },\n {\n title: \"Lulc\",\n key: \"lulc\",\n dataIndex: \"lulc\",\n },\n {\n title: \"Precipitation (mm)\",\n key: \"precipitation\",\n dataIndex: \"precipitation\",\n },\n {\n title: \"Typhoon Windspeed (kmph)\",\n key: \"typhoon_windspeed\",\n dataIndex: \"typhoon_windspeed\",\n },\n\n {\n title: \"Score\",\n key: \"score\",\n dataIndex: \"score\",\n },\n {\n title: \"Severity\",\n key: \"severity\",\n dataIndex: \"severity\",\n },\n];\nconst data_typhoon = [\n {\n elevation: \"0-20\",\n precipitation: \"244-333\",\n slope: \">10\",\n lulc: \"Agriculture\",\n severity: \"Very High\",\n\n typhoon_windspeed: \">193\",\n score: \"100\",\n },\n {\n elevation: \"21-40\",\n precipitation: \"206-244\",\n slope: \"5-10\",\n lulc: \"Builtup\",\n severity: \"High\",\n\n typhoon_windspeed: \"117-193\",\n score: \"80\",\n },\n {\n elevation: \"41-80\",\n precipitation: \"173-206\",\n slope: \"3-5\",\n lulc: \"Plantation\",\n severity: \"Medium\",\n\n typhoon_windspeed: \"88-117\",\n score: \"60\",\n },\n {\n elevation: \"81-150\",\n precipitation: \"125-173\",\n slope: \"1-3\",\n lulc: \"Evergreen Forest\",\n severity: \"Low\",\n\n typhoon_windspeed: \"61-88\",\n score: \"40\",\n },\n {\n elevation: \">150\",\n precipitation: \"43-125\",\n slope: \"0-1\",\n lulc: \"Scrub Land\",\n severity: \"Very Low\",\n\n typhoon_windspeed: \"<61\",\n score: \"20\",\n },\n];\n\nconst columns = [\n {\n title: \"Elevation (m)\",\n key: \"elevation\",\n dataIndex: \"elevation\",\n },\n {\n title: \"Hand (m)\",\n key: \"hand\",\n dataIndex: \"hand\",\n },\n {\n title: \"Slope (%)\",\n key: \"slope\",\n dataIndex: \"slope\",\n },\n {\n title: \"Lulc\",\n key: \"lulc\",\n dataIndex: \"lulc\",\n },\n\n {\n title: \"Flood (m)\",\n key: \"flood\",\n dataIndex: \"flood\",\n },\n {\n title: \"Score\",\n key: \"score\",\n dataIndex: \"score\",\n },\n {\n title: \"Severity\",\n key: \"severity\",\n dataIndex: \"severity\",\n },\n];\nconst data = [\n {\n elevation: \"0-20\",\n hand: \"0-1\",\n slope: \">10\",\n lulc: \"Agriculture\",\n severity: \"Very High\",\n\n flood: \">2\",\n score: \"100\",\n },\n {\n elevation: \"21-40\",\n hand: \"1-2\",\n slope: \"5-10\",\n lulc: \"Builtup\",\n severity: \"High\",\n\n flood: \"1-2\",\n score: \"80\",\n },\n {\n elevation: \"41-80\",\n hand: \"2-3\",\n slope: \"3-5\",\n lulc: \"Plantation\",\n severity: \"Moderate\",\n\n flood: \"0.5-1\",\n score: \"60\",\n },\n {\n elevation: \"81-150\",\n hand: \"3-4\",\n slope: \"1-3\",\n lulc: \"Forest\",\n severity: \"Low\",\n\n flood: \"0.25-0.5\",\n score: \"40\",\n },\n {\n elevation: \">150\",\n hand: \"4-5\",\n slope: \"0-1\",\n lulc: \"WasteLands\",\n severity: \"Very Low\",\n\n flood: \"0-0.25\",\n score: \"20\",\n },\n];\n\nclass RealEstateDashboard extends Component {\n state = {\n flood_score: false,\n typhoon_score: false,\n };\n componentDidMount() {\n if (this.props.location.state.project_name) {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.props.location.state.project_name);\n this.props.getPropertyRisk(formdata);\n }\n }\n handleFloodScore = () => {\n this.setState({ flood_score: true });\n };\n handleTyphoonScore = () => {\n this.setState({ typhoon_score: true });\n };\n handleClose = () => {\n this.setState({ typhoon_score: false, flood_score: false });\n };\n render() {\n const columns_data_flood = [\n {\n title: \"Name\",\n key: \"name\",\n dataIndex: \"name\",\n },\n {\n title: () => {\n return (\n
\n Flood Scores{\" \"}\n \n
\n );\n },\n key: \"flood_score\",\n dataIndex: \"flood_score\",\n },\n\n {\n title: \"GDP (USD/capita) \",\n key: \"gdp_value\",\n dataIndex: \"gdp_value\",\n },\n {\n title: \"Population Density (per sqkm)\",\n key: \"population_value\",\n dataIndex: \"population_value\",\n },\n\n {\n title: \"Flood Mean Score\",\n key: \"flood_mean_score\",\n dataIndex: \"flood_mean_score\",\n },\n {\n title: \"Flood Min. Value\",\n key: \"flood_min_value\",\n dataIndex: \"flood_min_value\",\n },\n {\n title: \"Flood Max. Value\",\n key: \"flood_max_value\",\n dataIndex: \"flood_max_value\",\n },\n {\n title: \"Flood Min. Distance (in m)\",\n key: \"flood_min_distance\",\n dataIndex: \"flood_min_distance\",\n },\n {\n title: \"Flood Max. Distance (in m)\",\n key: \"flood_max_distance\",\n dataIndex: \"flood_max_distance\",\n },\n ];\n const columns_data_typhoon = [\n {\n title: \"Name\",\n key: \"name\",\n dataIndex: \"name\",\n },\n\n {\n title: () => {\n return (\n
\n Typhoon Scores{\" \"}\n \n
\n );\n },\n key: \"typhoon_score\",\n dataIndex: \"typhoon_score\",\n },\n\n {\n title: \"GDP (USD/capita)\",\n key: \"gdp_value\",\n dataIndex: \"gdp_value\",\n },\n {\n title: \"Population Density (per sqkm)\",\n key: \"population_value\",\n dataIndex: \"population_value\",\n },\n\n {\n title: \"Typhoon Mean Score\",\n key: \"typhoon_mean_score\",\n dataIndex: \"typhoon_mean_score\",\n },\n {\n title: \"Typhoon Min. Value\",\n key: \"typhoon_min_value\",\n dataIndex: \"typhoon_min_value\",\n },\n {\n title: \"Typhoon Max. Value\",\n key: \"typhoon_max_value\",\n dataIndex: \"typhoon_max_value\",\n },\n {\n title: \"Typhoon Min. Distance (in m)\",\n key: \"typhoon_min_distance\",\n dataIndex: \"typhoon_min_distance\",\n },\n {\n title: \"Typhoon Max. Distance (in m)\",\n key: \"typhoon_max_distance\",\n dataIndex: \"typhoon_max_distance\",\n },\n ];\n if (this.props.isLoading) {\n return
;\n }\n console.log(\"property\", this.props.property);\n let heatmapdata = [];\n let flood_score_average = 0;\n let typhoon_score_average = 0;\n if (this.props.property) {\n for (let i = 0; i < this.props.property.length; i++) {\n heatmapdata.push({\n asset: this.props.property[i].name,\n data: [\n { x: \"Flood Score\", y: this.props.property[i].flood_score },\n { x: \"Typhoon Score\", y: this.props.property[i].typhoon_score },\n ],\n });\n flood_score_average += this.props.property[i].flood_score;\n flood_score_average = flood_score_average / this.props.property.length;\n typhoon_score_average += this.props.property[i].typhoon_score;\n typhoon_score_average =\n typhoon_score_average / this.props.property.length;\n }\n }\n return (\n \n
\n \n

Property Risk Analysis

\n
\n
\n \n \n \n \n \n \n \n {this.props.property.length > 0 ? (\n

\n Number of Assets
\n {this.props.property.length}  \n

\n ) : null}\n \n
\n \n \n \n \n \n \n \n \n

\n Mean Flood Score
\n {flood_score_average.toFixed(2)} \n

\n \n
\n \n \n \n \n \n \n \n \n

\n Mean Typhoon Score
\n {typhoon_score_average.toFixed(2)}\n
 \n

\n \n
\n \n \n \n \n \n \n \n \n

\n Mean Combined Risk Score\n
\n {((flood_score_average + typhoon_score_average) / 2).toFixed(\n 2\n )}\n

\n \n
\n \n
\n
\n \n \n \n

\n \n Property Risk Heat Map (0 to 100)\n \n

\n
\n \n {heatmapdata ? (\n -.2s\"\n axisTop={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: -45,\n legend: \"\",\n legendOffset: 46,\n }}\n colors={{\n type: \"diverging\",\n scheme: \"yellow_orange_red\",\n divergeAt: 0.5,\n minValue: 0,\n maxValue: 100,\n }}\n emptyColor=\"#555555\"\n legends={[\n {\n anchor: \"bottom\",\n translateX: 0,\n translateY: 30,\n length: 400,\n thickness: 8,\n direction: \"row\",\n tickPosition: \"after\",\n tickSize: 3,\n tickSpacing: 4,\n tickOverlap: false,\n tickFormat: \">-.2s\",\n title: \"Value →\",\n titleAlign: \"start\",\n titleOffset: 4,\n },\n ]}\n />\n ) : null}\n \n \n
\n \n \n \n

\n \n Property risk Map\n \n

\n
\n {this.props.property.length > 0 ? (\n \n ) : null}\n \n
\n\n {this.props.property.length > 0 ? (\n <>\n \n \n \n

\n \n Flood Risk Score\n \n

\n
\n \n \n
\n
\n \n \n \n

\n \n Typhoon Risk Score\n \n

\n
\n \n \n
\n \n ) : null}\n\n \n \n Property Risk Flood Legend\n \n \n \n \n \n \n \n \n \n \n \n Property Risk Typhoon Legend\n \n \n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n property: state.locus.property,\n isLoading: state.locus.isLoading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getPropertyRisk: (formdata) => {\n dispatch(locus.getPropertyRisk(formdata));\n },\n };\n};\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(RealEstateDashboard);\n","import React, { useState, useEffect } from \"react\";\nimport { geoMercator, geoPath } from \"d3-geo\";\nimport { feature } from \"topojson-client\";\n\nconst HomeMap = (props) => {\n console.log(\"Home Map\", props.variable, props.year, props.rcp);\n const projection = geoMercator()\n .scale(160)\n .translate([800 / 2, 450 / 2]);\n\n // State to store geography data\n const [geographies, setGeographies] = useState([]);\n // State to store hovered country\n const [currentValue, setCurrentValue] = useState(null);\n // State to store hovered index\n const [hoveredCountryIndex, setHoveredCountryIndex] = useState(null);\n\n useEffect(() => {\n // fetch(\"https://cdn.jsdelivr.net/npm/world-atlas@2/countries-50m.json\")\n fetch(\n `https://intensel-backend-data.s3.us-east-1.amazonaws.com/public/geodataset/${props.variable}/${props.variable}_${props.rcp}_${props.year}.geojson`\n ).then((response) => {\n if (response.status !== 200) {\n console.log(`There was a problem: ${response.status}`);\n return;\n }\n response.json().then((worlddata) => {\n console.log(worlddata.objects.data);\n\n // console.log(worlddata.objects.try.geometries);\n // extract the features from the topojson\n //setGeographies((feature(worlddata, worlddata.objects.data) as GeoJson Properties)!.features);\n console.log(feature(worlddata, worlddata.objects.data).features);\n setGeographies(feature(worlddata, worlddata.objects.data).features);\n });\n });\n }, [props.variable, props.rcp, props.year]);\n const handleCountryClick = (countryIndex) => {\n console.log(\"Clicked on country: \", geographies[countryIndex]);\n };\n\n // get color depending on value 0-7\n const getColor = (value) => {\n switch (true) {\n case value >= 0 && value < 1:\n return \"#ffffcc\";\n case value >= 1 && value < 2:\n return \"#c7e9b4\";\n case value >= 2 && value < 3:\n return \"#7fcdbb\";\n case value >= 3 && value < 4:\n return \"#41b6c4\";\n case value >= 4 && value < 5:\n return \"#1d91c0\";\n case value >= 5 && value < 6:\n return \"#225ea8\";\n case value >= 6 && value < 7:\n return \"#253494\";\n case value >= 7:\n return \"#081d58\";\n default:\n return \"#ffffcc\";\n }\n };\n\n return (\n
\n \n \n {\n // draw each country\n geographies.map((d, i) => (\n handleCountryClick(i)}\n onMouseEnter={() => {\n const { name, non_zero_mean } = d.properties;\n setCurrentValue({\n name: name,\n value: non_zero_mean,\n });\n setHoveredCountryIndex(i);\n }}\n onMouseLeave={() => {\n setCurrentValue(null);\n setHoveredCountryIndex(null);\n }}\n >\n {/* Tooltip */}\n {d.properties.non_zero_mean}\n \n ))\n }\n \n \n {/* Floating Info Tab */}\n
\n
\n
\n
\n {currentValue ? (\n <>\n
\n Country\n
\n
\n {currentValue.name} : {currentValue.value}\n
\n \n ) : (\n
\n Hover over a country\n
\n )}\n
\n
\n
\n
\n
\n );\n};\n\nexport default HomeMap;\n","import React, { useState, useCallback, useEffect, Component } from \"react\";\nimport LandingMap from \"./landing_map\";\nimport \"./landingpage.css\";\nimport {\n Tabs,\n Tab,\n Row,\n Nav,\n Col,\n Container,\n Breadcrumb,\n} from \"react-bootstrap\";\nimport { Form } from \"semantic-ui-react\";\nimport Carousel from \"react-bootstrap/Carousel\";\nimport carousel1 from \"../assets/carousel1.png\";\nimport carousel2 from \"../assets/carousel2.png\";\nimport carousel3 from \"../assets/carousel3.png\";\nimport carousel4 from \"../assets/carousel4.png\";\nimport carousel5 from \"../assets/carousel5.png\";\nimport map_landing from \"../assets/map_landing.jpg\";\nimport news_1 from \"../assets/landing_news_1.webp\";\nimport news_2 from \"../assets/landing_news_2.webp\";\nimport news_3 from \"../assets/landing_news_3.webp\";\nimport geoData from \"./geodata\";\nimport HomeMap from \"./homemap\";\nimport data from \"./numdata\";\n\nimport \"react-accessible-accordion/dist/fancy-example.css\";\nimport { connect } from \"react-redux\";\nimport { Document, Page } from \"react-pdf\";\nimport { locus, auth, project } from \"../actions\";\n\nconst VariableOptions = [\n { key: \"Extrme Heat\", value: \"extreme_heat\", text: \"Extreme Heat\" },\n { key: \"Landslide\", value: \"landslide\", text: \"Landslide\" },\n { key: \"Rainfall Flood\", value: \"rainfall_flood\", text: \"Rainfall Flood\" },\n { key: \"Sea Level Rise\", value: \"sea_level_rise\", text: \"Sea Level Rise\" },\n { key: \"Storm Surge\", value: \"storm_surge\", text: \"Storm Surge\" },\n { key: \"Typhoon\", value: \"typhoon\", text: \"Typhoon\" },\n];\n\nconst ScenarioOptions = [\n { key: \"26\", value: \"26\", text: \"26\" },\n { key: \"45\", value: \"45\", text: \"45\" },\n { key: \"85\", value: \"85\", text: \"85\" },\n];\n\nconst YearOptions = [\n { key: \"2030\", value: \"2030\", text: \"2030\" },\n { key: \"2050\", value: \"2050\", text: \"2050\" },\n];\n\nclass Landingpage extends Component {\n constructor(props) {\n super(props);\n }\n state = {\n variable: \"typhoon\",\n year: \"2050\",\n scenario: \"85\",\n };\n handleChangePro = (value, key) => {\n this.setState(\n {\n [key]: value,\n },\n () => console.log(\"variable\", this.state.variable)\n );\n };\n componentDidMount() {}\n render() {\n return (\n
\n \n \n
\n \n Home\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n

Know More about

\n\n \n \n \n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n
\n
\n \n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n
\n
\n \n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n \n

CVaR

\n

\n Conditional Value at Risk (CVaR) ,also known as the\n expected shortfall ,is a risk assessment measure that\n quantifies the amount of trail risk an investment\n

\n \n
\n
\n
\n
\n
\n
\n \n

Physical Risk Maps

\n \n \n \n

Climate Variable

\n \n this.handleChangePro(value, \"variable\")\n }\n value={this.state.variable}\n options={VariableOptions}\n />\n \n \n \n

Scenario

\n \n this.handleChangePro(value, \"scenario\")\n }\n value={this.state.scenario}\n options={ScenarioOptions}\n />\n \n \n \n

Year

\n this.handleChangePro(value, \"year\")}\n value={this.state.year}\n options={YearOptions}\n />\n \n
\n \n \n {/**/}\n \n \n \n
\n
\n \n

News

\n \n \n \n {\" \"}\n \n \n \n

\n

\n Climate Tech company, Intensel, to join Taronga Ventures’ ESG\n Impact innovation program in 2023\n
\n \n ...Read More\n \n

\n
\n \n \n \n {\" \"}\n \n \n \n

\n

\n Intensel: Providing Cutting-Edge Climate Risk Intelligence\n with Machine Learning\n
\n \n ...Read More\n \n

\n
\n \n \n \n {\" \"}\n \n \n \n

\n

\n Intensel Selected as Top Ten Finalist for Accenture’s 2023\n FinTech Innovation Lab APAC Program\n
\n \n ...Read More\n \n

\n
\n \n
\n
\n\n {/*\n

Events

\n \n \n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n
\n
\n \n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n
\n
\n \n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n \n \n {\" \"}\n \n \n \n

Lorem Ipsum

\n

\n Lorem Ipsum is simply dummy text of the printing and\n typesetting industry. Lorem Ipsum has been the industry's\n standard dummy text ever since the 1500s, when an unknown\n printer took a galley of type and scrambled it to make a\n type specimen book\n

\n
\n \n
\n
\n
\n
*/}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n insurance: state.project.insurance,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getInsurance: (formdata) => {\n dispatch(project.getInsurance(formdata));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Landingpage);\n","import React, { useState } from \"react\";\nimport { Tabs, Tab } from \"react-bootstrap\";\nimport { Icon, Button, Modal, Image, Popup } from \"semantic-ui-react\";\nimport { Progress } from \"antd\";\n\nimport common from \"../assets/adaptation/4.png\";\nimport toolkit_1 from \"../assets/adaptation/5.png\";\nimport toolkit_2 from \"../assets/adaptation/6.png\";\nimport toolkit_3 from \"../assets/adaptation/7.png\";\nimport toolkit_4 from \"../assets/adaptation/8.png\";\nimport toolkit_5 from \"../assets/adaptation/9.png\";\nimport toolkit_6 from \"../assets/adaptation/10.png\";\nimport toolkit_7 from \"../assets/adaptation/11.png\";\nimport toolkit_8 from \"../assets/adaptation/12.png\";\nimport toolkit_9 from \"../assets/adaptation/13.png\";\nimport toolkit_10 from \"../assets/adaptation/14.png\";\nimport toolkit_11 from \"../assets/adaptation/15.png\";\nimport toolkit_12 from \"../assets/adaptation/16.png\";\nimport toolkit_13 from \"../assets/adaptation/17.png\";\nimport toolkit_14 from \"../assets/adaptation/18.png\";\nimport toolkit_15 from \"../assets/adaptation/19.png\";\nimport toolkit_16 from \"../assets/adaptation/20.png\";\nimport toolkit_17 from \"../assets/adaptation/21.png\";\nimport toolkit_18 from \"../assets/adaptation/22.png\";\n\nconst Toolkit = (props) => {\n return (\n
\n
\n
\n \n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n );\n};\n\nexport default Toolkit;\n","// ChangelogPage.jsx\nimport React from \"react\";\nimport {\n VerticalTimeline,\n VerticalTimelineElement,\n} from \"react-vertical-timeline-component\";\nimport \"react-vertical-timeline-component/style.min.css\";\nimport { Container } from \"react-bootstrap\";\n\n// Style Constants\nconst headerStyle = {\n textAlign: \"center\",\n fontSize: \"56px\",\n marginTop: \"1%\",\n};\n\nconst featureBoxStyle = {\n backgroundColor: \"white\",\n border: \"2px solid black\",\n padding: \"10px\",\n marginBottom: \"20px\",\n};\n\nconst improvementBoxStyle = {\n backgroundColor: \"white\",\n border: \"2px solid black\",\n padding: \"10px\",\n marginBottom: \"20px\",\n};\n\nconst listStyle = {\n listStyleType: \"disc\",\n paddingLeft: \"20px\",\n lineHeight: \"2em\",\n};\n\nconst ChangelogPage = () => (\n \n
\n
\n
\n

Change log

\n\n \n {/* Version 4.5 */}\n \n January 27th, 2025\n \n }\n iconStyle={{\n background: \"#18202F\",\n color: \"#fff\",\n }}\n >\n

\n Version 4.5 - Feature Update\n

\n\n
\n

Added Features

\n
    \n
  • New Variables: Extreme Cold and Snowfall
  • \n
  • Bounding Box-Based Location Selection in Maps
  • \n
  • Plinth Height Inputs and Calculations
  • \n\n
  • \n Gross Area, Total Valuation, and Total Content Value in Upload CSV\n
  • \n
\n
\n\n {/* Hazard Modelling and Outputs Section */}\n
\n

Improvements

\n
    \n
  • \n New Wildfire: Enhanced resolution to 30m with additional input\n variables\n
  • \n
  • Improved granularity for Rainfall Flood
  • \n
      \n
    • Malaysia, Singapore, Mongolia, Turkey - 30m
    • \n
    • Eastern Coast of Australia – 5m
    • \n
    • London, UK – 2m
    • \n
    \n
  • \n New Global Storm Surge model with Delta-DEM (100-year Return\n period)\n
  • \n
  • \n Extreme Cold: Predicted minimum temperature from CMIP6 datasets\n
  • \n
  • Snowfall: Annual snowfall in mm/year
  • \n
  • Extreme Heat: Updated to 1km resolution
  • \n
\n
\n\n {/* User Interface and Experience Section */}\n \n\n {/* Other Versions */}\n {/* Add Version 4.0 and Version 3.0 as needed (existing code structure) */}\n\n \n

\n Version 4.0 - Feature Update\n

\n\n {/* Added Features Section */}\n
\n

Added Features

\n
    \n
  • Map Module (Version 1.0)
  • \n
      \n
    • Global coverage
    • \n
    • Create maps from 1km to 50 km
    • \n
    • Rainfall data and Storm surge data are available
    • \n
    \n
  • PDF reports (Version 1.0)
  • \n
      \n
    • Generate report automatically
    • \n
    \n
\n
\n\n {/* Improvements Section */}\n
\n

Improvements

\n
    \n
  • Rainfall Flood
  • \n
      \n
    • Houston - 1m
    • \n
    • New York - 1m
    • \n
    • Los Angeles - 1m
    • \n
    \n
  • Storm Surge Delta DEM
  • \n
      \n
    • 30m Globally
    • \n
    \n
  • SSP 5-year interval on dashboard
  • \n
  • Input CSV
  • \n
      \n
    • \n Total inputs (gross area, total valuation, total content value)\n in input CSV\n
    • \n
    \n
\n
\n \n {/* Version 3.0 */}\n \n

\n Version 3.0 - Feature Update\n

\n {/* Added Features Section */}\n
\n

Added Features

\n
    \n
  • Updated user interface
  • \n
  • Building level flood adaptation (Mitigation)
  • \n
  • Allows three (3) different levels of flood mitigation
  • \n
  • Integrated into both Hazard and Financial analysis
  • \n
  • Applicable for Rainfall and River Flood
  • \n
  • \n Building footprint database generated covering 1.3 billion\n buildings globally integrating Microsoft, Google, and HK footprint\n data\n
  • \n
  • \n New damage functions specific to asset types (infrastructure) and\n regions\n
  • \n
  • Ability to add basement as an asset-level variable
  • \n
  • Ability to share projects within an organization
  • \n
\n
\n\n {/* Improvements Section */}\n
\n

Improvements

\n
    \n
  • \n Enhancements to calculation of business interruption days for\n Floods and Typhoons\n
  • \n
\n\n

Hazard Resolution

\n
    \n
  • Storm Surge
  • \n
      \n
    • 30m Globally (FABDEM)
    • \n
    \n
  • Rainfall Flood
  • \n
      \n
    • Malaysia, Singapore, Mongolia, Turkey - 30m
    • \n
    • Eastern Coast of Australia – 5m
    • \n
    • London, UK – 2m
    • \n
    \n
\n
\n \n\n {/* Version 4.0 */}\n \n

\n Version 4.0 - Feature Update\n

\n\n {/* Added Features Section */}\n
\n

Added Features

\n
    \n
  • Map Module (Version 1.0)
  • \n
      \n
    • Global coverage
    • \n
    • Create maps from 1km to 50 km
    • \n
    • Rainfall data and Storm surge data are available
    • \n
    \n
  • PDF reports (Version 1.0)
  • \n
      \n
    • Generate report automatically
    • \n
    \n
\n
\n\n {/* Improvements Section */}\n
\n

Improvements

\n
    \n
  • Rainfall Flood
  • \n
      \n
    • Houston - 1m
    • \n
    • New York - 1m
    • \n
    • Los Angeles - 1m
    • \n
    \n
  • Storm Surge Delta DEM
  • \n
      \n
    • 30m Globally
    • \n
    \n
  • SSP 5-year interval on dashboard
  • \n
  • Input CSV
  • \n
      \n
    • \n Total inputs (gross area, total valuation, total content value)\n in input CSV\n
    • \n
    \n
\n
\n \n
\n
\n);\n\nexport default ChangelogPage;\n","class ActionProvider {\n constructor(createChatBotMessage, setStateFunc) {\n this.createChatBotMessage = createChatBotMessage;\n this.setState = setStateFunc;\n }\n\n async handleJavascriptList(keyword) {\n try {\n let headers = {};\n\n let token = localStorage.getItem(\"token\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n headers[\"Content-Type\"] = \"application/json\";\n }\n const requestOptions = {\n method: \"POST\",\n headers,\n body: JSON.stringify({ keywords: keyword }),\n };\n\n const response = await fetch(\n \"https://api.intensel.net/api/v2/keyword_help/\",\n requestOptions\n );\n const data = await response.json();\n\n // Create a message for each item in the data\n const messages = data.map((item) =>\n this.createChatBotMessage(`- ${item.title}`)\n );\n\n // Update the chatbot state with the messages\n this.updateChatbotState(messages);\n } catch (error) {\n console.error(\"Error fetching Javascript resources:\", error);\n }\n }\n\n updateChatbotState(messages) {\n // Update the chatbot state with the array of messages\n this.setState((prevState) => ({\n ...prevState,\n messages: [...prevState.messages, ...messages],\n }));\n }\n}\n\nexport default ActionProvider;\n","import React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { locus } from \"../actions\";\nimport Badge from \"react-bootstrap/Badge\";\n\nconst LearningOptions = ({ keywords, setKeywords, actionProvider }) => {\n const [selectedOptions, setSelectedOptions] = useState([]);\n const [submitButtonDisabled, setSubmitButtonDisabled] = useState(true);\n\n useEffect(() => {\n // Fetch keywords data from the API\n setKeywords();\n }, [setKeywords]);\n\n useEffect(() => {\n // Check if any options are selected\n setSubmitButtonDisabled(selectedOptions.length === 0);\n }, [selectedOptions]);\n\n const handleTagClick = (tag) => {\n const newTags = selectedOptions.includes(tag)\n ? selectedOptions.filter((selectedTag) => selectedTag !== tag)\n : [...selectedOptions, tag];\n setSelectedOptions(newTags);\n };\n\n const handleButtonClick = () => {\n // Call the handler function with the selected options\n actionProvider.handleJavascriptList(selectedOptions);\n };\n\n return (\n \n {keywords &&\n keywords.map((keyword) => (\n {\n e.target.style.backgroundColor = \"#18202F\"; // Change background color on hover\n e.target.style.color = \"#ffffff\"; // Change text color on hover\n }}\n onMouseLeave={(e) => {\n e.target.style.backgroundColor = selectedOptions.includes(keyword)\n ? \"#18202F\"\n : \"\"; // Reset background color\n e.target.style.color = selectedOptions.includes(keyword)\n ? \"#ffffff\"\n : \"\"; // Reset text color\n }}\n onClick={() => handleTagClick(keyword)}\n >\n {keyword}\n \n ))}\n \n Submit\n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n keywords: state.locus.keyword.keywords,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setKeywords: () => dispatch(locus.fetchKeywords()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LearningOptions);\n","import React from \"react\";\n\nconst LinkList = (props) => {\n console.log(props);\n const linkMarkup = props.options.map((link) => (\n
  • \n \n {link.text}\n \n
  • \n ));\n\n return
      {linkMarkup}
    ;\n};\n\nexport default LinkList;\n","import React from \"react\";\nimport { createChatBotMessage } from \"react-chatbot-kit\";\n\nimport LearningOptions from \"./LearningOptions\";\nimport LinkList from \"./LinkList\";\n\nconst config = {\n botName: \"Intensel Bot , Hit the X Button to Reset\",\n initialMessages: [\n createChatBotMessage(\n \"Hi, I'm here to help. What do you want to Know about?\",\n {\n widget: \"learningOptions\",\n }\n ),\n ],\n customStyles: {\n botMessageBox: {\n backgroundColor: \"#18202F\",\n },\n chatButton: {\n backgroundColor: \"#18202F\",\n },\n },\n widgets: [\n {\n widgetName: \"learningOptions\",\n widgetFunc: (props) => ,\n },\n {\n widgetName: \"javascriptLinks\",\n widgetFunc: (props) => ,\n props: {\n options: [\n {\n text: \"Introduction to JS\",\n url:\n \"https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/\",\n id: 1,\n },\n {\n text: \"Mozilla JS Guide\",\n url:\n \"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide\",\n id: 2,\n },\n {\n text: \"Frontend Masters\",\n url: \"https://frontendmasters.com\",\n id: 3,\n },\n ],\n },\n },\n ],\n};\n\nexport default config;\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { locus } from \"../actions\";\nimport {\n Container,\n Row,\n Col,\n Navbar,\n Nav,\n Form,\n FormControl,\n Button,\n NavDropdown,\n} from \"react-bootstrap\";\n\nconst FaqItem = ({ question, answer, image }) => (\n
    \n
    \n

    {question}

    \n
    \n
    \n
    \n {image.length > 0 &&\n image.map((img, index) => (\n {`Image\n ))}\n
    \n);\n\nconst FAQSearchPage = ({ keywords, setKeywords }) => {\n console.log(\"keywords\", keywords);\n const [activeTab, setActiveTab] = useState(\"methods\");\n const [searchResults, setSearchResults] = useState(null);\n const [Faqs, setFaq] = useState(null);\n const [showSearch, setShowSearch] = useState(false); // State to control visibility of search results\n\n useEffect(() => {\n setKeywords();\n }, [setKeywords]);\n\n const handleTabSelect = (keyword) => {\n setActiveTab(keyword);\n setShowSearch(false); // Hide search results when a keyword is clicked\n let headers = {};\n let token = localStorage.getItem(\"token\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n headers[\"Content-Type\"] = \"application/json\";\n }\n const requestOptions = {\n method: \"POST\",\n headers,\n body: JSON.stringify({ keywords: [keyword] }),\n };\n fetch(`https://api.intensel.net/api/v2/keyword_help_v2/`, requestOptions)\n .then((response) => response.json())\n .then((data) => setFaq(data))\n .catch((error) => console.error(\"Error fetching search results:\", error));\n };\n\n const handleSearchSubmit = (param) => {\n setShowSearch(true); // Show search results when a new search is submitted\n let headers = {};\n let token = localStorage.getItem(\"token\");\n if (token) {\n headers[\"Authorization\"] = `Token ${token}`;\n }\n const requestOptions = {\n method: \"GET\",\n headers,\n };\n fetch(\n `https://api.intensel.net/api/v2/faq_search/?search=${param}`,\n requestOptions\n )\n .then((response) => response.json())\n .then((data) => setSearchResults(data.results))\n .catch((error) => console.error(\"Error fetching search results:\", error));\n };\n\n return (\n \n {/* Header Row */}\n \n \n
    \n
    \n \n FAQs\n

    \n \n
    \n\n {/* Search Row */}\n \n \n \n {\n e.preventDefault();\n const searchInput = e.target.elements.searchInput.value;\n handleSearchSubmit(searchInput);\n }}\n >\n \n \n \n \n \n \n\n {/* Main Content */}\n \n \n \n
    \n {/* Sidebar */}\n
    \n \n \n )}\n
    \n ))}\n \n \n
    \n \n \n {/* FAQ Content */}\n
    \n {!showSearch ? (\n
    \n {/* Display keyword content */}\n {Faqs &&\n Faqs.map((faq, index) => (\n \n ))}\n
    \n ) : (\n
    \n {searchResults && searchResults.length > 0 ? (\n searchResults.map((result, index) => (\n \n ))\n ) : (\n

    \n )}\n
    \n )}\n
    \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n keywords: state.locus.keyword || [],\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setKeywords: () => dispatch(locus.fetchKeywords()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FAQSearchPage);\n","import React, { Component, createRef } from \"react\";\nimport { Table, Switch, Radio, Row, Col, Button } from \"antd\";\nimport { Modal } from \"semantic-ui-react\";\nimport { connect } from \"react-redux\";\nimport { locus } from \"../actions\";\nimport { getBoundsOfDistance } from \"geolib\";\n\nimport \"./intensel_map.css\";\n/* eslint import/no-webpack-loader-syntax: off */\n\nimport mapboxgl from \"!mapbox-gl\";\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\nclass LegendControl {\n onAdd(map) {\n this._map = map;\n this._container = document.createElement(\"div\");\n this._container.className = \"mapboxgl-ctrl legend\";\n const legendItems = [\n { color: \"#faffff\", label: \"0 to 0.625\" },\n { color: \"#d3fad3\", label: \"0.625 to 1.25\" },\n { color: \"#acf5a8\", label: \"1.25 to 1.875\" },\n { color: \"#56c5b8\", label: \"1.875 to 2.5\" },\n { color: \"#0096c8\", label: \"2.5 to 3.125\" },\n { color: \"#00507d\", label: \"3.125 to 3.75\" },\n { color: \"#000a32\", label: \"3.75 to 4.375\" },\n { color: \"#000519\", label: \"4.375 to 5\" },\n { color: \"#000000\", label: \"5\" },\n ];\n\n legendItems.forEach((item) => {\n const legendItem = document.createElement(\"div\");\n legendItem.className = \"legend-item\";\n\n const colorBox = document.createElement(\"span\");\n colorBox.className = \"legend-color\";\n colorBox.style.backgroundColor = item.color;\n\n const label = document.createElement(\"span\");\n label.className = \"legend-label\";\n label.textContent = item.label;\n\n legendItem.appendChild(colorBox);\n legendItem.appendChild(label);\n this._container.appendChild(legendItem);\n });\n\n return this._container;\n }\n\n onRemove() {\n this._container.parentNode.removeChild(this._container);\n this._map = undefined;\n }\n}\n\nclass MyTable extends Component {\n constructor(props) {\n super(props);\n this.state = {\n dataSource: [\n {\n key: \"1\",\n name: \"City A\",\n country_code: \"CHN\",\n rainfall_flood: 0.687032,\n gdp: 44.6213,\n populationDensity: 2788.9462,\n rainfall_flood_max: 2.72103,\n rainfall_flood_min: 0.30654,\n },\n // Add more data as needed\n ],\n modalVisible: false,\n filterModalVisible: false,\n selectedCity: null,\n mapStyle: \"mapbox://styles/mapbox/satellite-v9\",\n name: \"\",\n scenario: \"85\",\n year: \"2050\",\n return_period: \"100\",\n latitude: \"\",\n longitude: \"\",\n yearOptions: [],\n rcpOptions: [],\n showTable: false, // Flag to control table visibility\n mapBounds: null, // State variable to hold map bounds\n };\n this.rasterLayerAdded = false;\n this.mapContainer = createRef();\n this.map = null;\n }\n\n getDataForScenarioAndYear = (data, scenario, year) => {\n const scenarioKey = `${scenario}_${year}`;\n console.log(\"scenarioKey\", scenarioKey);\n return {\n rainfall_flood_avg: data.rainfall_flood_avg.rcp[scenarioKey],\n rainfall_flood_max: data.rainfall_flood_max.rcp[scenarioKey],\n rainfall_flood_min: data.rainfall_flood_min.rcp[scenarioKey],\n name: data.name,\n gdp: data.gdp,\n populationDensity: data.population,\n country_code: data.country_code,\n };\n };\n\n updateDataSource = (dataSource, apiResponse, scenario, year) => {\n return dataSource.map((city) => {\n const newData = this.getDataForScenarioAndYear(\n apiResponse,\n scenario,\n year\n );\n return { ...city, ...newData };\n });\n };\n\n componentDidMount() {\n if (\n this.props.location &&\n this.props.location.state &&\n this.props.location.state.name\n ) {\n let formdata = new FormData();\n formdata.append(\"name\", this.props.location.state.name.name);\n\n this.setState({ name: this.props.location.state.name.name }, () => {\n this.props.generateMap(formdata);\n });\n }\n this.initializeMap();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.mapBounds !== this.state.mapBounds && this.map) {\n this.map.setMaxBounds(this.state.mapBounds);\n }\n if (prevProps.map_response !== this.props.map_response) {\n const { map_response } = this.props;\n const yearOptions = map_response.years.map((year) => ({\n label: year,\n value: year,\n }));\n const rcpOptions = map_response.scenarios.map((scenario) => ({\n label: scenario,\n value: scenario,\n }));\n\n const updatedDataSource = this.updateDataSource(\n this.state.dataSource,\n map_response,\n this.state.scenario,\n this.state.year\n );\n\n this.setState(\n {\n dataSource: updatedDataSource,\n yearOptions,\n rcpOptions,\n },\n this.updateRasterLayer\n );\n\n if (\n map_response.coordinates.latitude &&\n map_response.coordinates.longitude\n ) {\n const bounds = getBoundsOfDistance(\n {\n latitude: map_response.coordinates.latitude,\n longitude: map_response.coordinates.longitude,\n },\n 1000\n );\n\n this.setState({\n mapBounds: [\n [bounds[0].longitude, bounds[0].latitude],\n [bounds[1].longitude, bounds[1].latitude],\n ],\n latitude: map_response.coordinates.latitude,\n longitude: map_response.coordinates.longitude,\n });\n }\n\n if (\n prevState.scenario !== this.state.scenario ||\n prevState.year !== this.state.year ||\n prevState.return_period !== this.state.return_period\n ) {\n const updatedDataSource = this.updateDataSource(\n this.state.dataSource,\n this.props.map_response,\n this.state.scenario,\n this.state.year\n );\n this.setState(\n { dataSource: updatedDataSource },\n this.updateRasterLayer\n );\n }\n\n if (prevState.mapStyle !== this.state.mapStyle) {\n this.updateMapStyle();\n }\n }\n }\n\n componentWillUnmount() {\n if (this.map) {\n this.map.remove();\n }\n }\n\n initializeMap = () => {\n if (!this.map) {\n this.map = new mapboxgl.Map({\n container: this.mapContainer.current,\n style: this.state.mapStyle,\n center: [this.state.longitude, this.state.latitude],\n zoom: 17,\n maxbounds: this.state.mapBounds,\n });\n this.map.addControl(new mapboxgl.FullscreenControl());\n\n this.map.on(\"load\", () => {\n this.addRasterLayer();\n this.addLegendControl();\n });\n this.map.on(\"click\", this.handleMapHover);\n } else {\n this.updateMapStyle();\n }\n };\n\n updateMapStyle = () => {\n if (this.map) {\n this.map.setStyle(this.state.mapStyle);\n this.map.on(\"style.load\", this.addRasterLayer);\n }\n };\n\n updateRasterLayer = () => {\n if (this.map) {\n if (this.map.getSource(\"wms-test-source\")) {\n this.map.removeLayer(\"wms-test-layer\");\n this.map.removeSource(\"wms-test-source\");\n }\n this.addRasterLayer();\n }\n };\n\n addRasterLayer = () => {\n if (this.map.getSource(\"wms-test-source\")) {\n this.map.removeLayer(\"wms-test-layer\");\n this.map.removeSource(\"wms-test-source\");\n }\n\n this.map.addSource(\"wms-test-source\", {\n type: \"raster\",\n tiles: [\n \"https://alpha-map.intensel.net/cgi-bin/mapserv?map=/data/conf/xyz.map&mode=tile&tilemode=gmap&tile={x}+{y}+{z}&layers=rasterr&format=image/png\",\n ],\n tileSize: 256,\n });\n\n this.map.addLayer({\n id: \"wms-test-layer\",\n type: \"raster\",\n source: \"wms-test-source\",\n paint: {},\n });\n\n this.rasterLayerAdded = true;\n };\n addLegendControl = () => {\n const legend = new LegendControl();\n this.map.addControl(legend, \"bottom-right\");\n };\n\n /* addLegendControl = () => {\n const legend = new mapboxgl.Control();\n\n legend.onAdd = (map) => {\n const div = document.createElement(\"div\");\n div.className = \"mapboxgl-ctrl legend\";\n const legendItems = [\n { color: \"#faffff\", label: \"0 to 0.625\" },\n { color: \"#d3fad3\", label: \"0.625 to 1.25\" },\n { color: \"#acf5a8\", label: \"1.25 to 1.875\" },\n { color: \"#56c5b8\", label: \"1.875 to 2.5\" },\n { color: \"#0096c8\", label: \"2.5 to 3.125\" },\n { color: \"#00507d\", label: \"3.125 to 3.75\" },\n { color: \"#000a32\", label: \"3.75 to 4.375\" },\n { color: \"#000519\", label: \"4.375 to 5\" },\n { color: \"#000000\", label: \"5\" },\n ];\n\n legendItems.forEach((item) => {\n const legendItem = document.createElement(\"div\");\n legendItem.className = \"legend-item\";\n\n const colorBox = document.createElement(\"span\");\n colorBox.className = \"legend-color\";\n colorBox.style.backgroundColor = item.color;\n\n const label = document.createElement(\"span\");\n label.className = \"legend-label\";\n label.textContent = item.label;\n\n legendItem.appendChild(colorBox);\n legendItem.appendChild(label);\n div.appendChild(legendItem);\n });\n\n return div;\n };\n\n legend.onRemove = () => {\n if (legend._container) {\n legend._container.parentNode.removeChild(legend._container);\n this.map.off(\"move\", this.onMove);\n }\n this.map = null;\n };\n\n this.map.addControl(legend, \"bottom-right\");\n };*/\n\n handleMapHover = (e) => {\n const { lng, lat } = e.lngLat;\n const bounds = this.map.getBounds();\n const width = this.map.getCanvas().width;\n const height = this.map.getCanvas().height;\n\n const params = {\n service: \"WMS\",\n version: \"1.1.1\",\n request: \"GetFeatureInfo\",\n layers: \"raster\",\n styles: \"\",\n srs: \"EPSG:4326\",\n bbox: bounds\n .toArray()\n .flat()\n .join(\",\"),\n width: width,\n height: height,\n query_layers: \"raster\",\n x: Math.round(e.point.x),\n y: Math.floor(e.point.y),\n info_format: \"geojson\",\n };\n const url = `https://alpha-map.intensel.net/cgi-bin/mapserv?map=IND_MAPFILE&ISO3=IND&${Object.entries(\n params\n )\n .map(([key, value]) => `${key}=${value}`)\n .join(\"&\")}`;\n\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n const value = data[\"features\"][0][\"properties\"][\"value_0\"];\n\n new mapboxgl.Popup()\n .setLngLat([lng, lat])\n .setHTML(`

    Flood Depth at Location ${value.toFixed(2)}

    `)\n .addTo(this.map);\n })\n .catch((error) => {\n console.error(\"Error fetching WMS GetFeatureInfo data:\", error);\n });\n };\n\n removePopup = () => {\n this.popup.remove();\n };\n\n handleAnalyse = (record) => {\n this.setState({ selectedCity: record, modalVisible: true });\n };\n\n closeModal = () => {\n this.setState({ modalVisible: false });\n if (this.map) {\n this.map.remove();\n this.map = null;\n }\n };\n\n handleMapStyleChange = (checked) => {\n const newStyle = checked\n ? \"mapbox://styles/mapbox/streets-v11\"\n : \"mapbox://styles/mapbox/satellite-v9\";\n this.setState({ mapStyle: newStyle });\n };\n\n handlePeriodChange = (checked) => {\n const returnPeriod = checked ? \"100\" : \"250\";\n this.setState({ return_period: returnPeriod });\n };\n\n handleScenarioChange = (checkedValues) => {\n this.setState({ selectedScenarios: checkedValues });\n };\n\n handleYearChange = (e) => {\n this.setState({ year: e.target.value });\n };\n\n handleRCPChange = (e) => {\n this.setState({ scenario: e.target.value });\n };\n\n openFilterModal = () => {\n this.setState({ filterModalVisible: true });\n };\n\n closeFilterModal = () => {\n this.setState({ filterModalVisible: false });\n };\n\n applyFilter = () => {\n const updatedDataSource = this.updateDataSource(\n this.state.dataSource,\n this.props.map_response,\n this.state.scenario,\n this.state.year\n );\n this.setState(\n {\n dataSource: updatedDataSource,\n filterModalVisible: false,\n },\n this.updateRasterLayer\n );\n };\n\n handleTableVisibility = (checked) => {\n this.setState({ showTable: checked });\n };\n\n render() {\n console.log(\"mapbound\", this.state.mapBounds);\n const columns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n key: \"name\",\n },\n {\n title: \"Country Code\",\n dataIndex: \"country_code\",\n key: \"country_code\",\n },\n {\n title: \"Rainfall Flood Avg (in m)\",\n dataIndex: \"rainfall_flood_avg\",\n key: \"rainfall_flood_avg\",\n },\n {\n title: \"Rainfall Flood Max (in m)\",\n dataIndex: \"rainfall_flood_max\",\n key: \"rainfall_flood_max\",\n },\n {\n title: \"Rainfall Flood Min(in m)\",\n dataIndex: \"rainfall_flood_min\",\n key: \"rainfall_flood_min\",\n },\n {\n title: \"GDP(USD/capita)\",\n dataIndex: \"gdp\",\n key: \"gdp\",\n },\n {\n title: \"Population Density(per sqkm)\",\n dataIndex: \"populationDensity\",\n key: \"populationDensity\",\n render: (text) => {text} people/sq km,\n },\n ];\n\n return (\n
    \n \n Filter Options\n \n
    \n
    \n {this.state.showTable && (\n
    \n \n
    \n
    \n )}\n\n \n \n\n \n \n Filter Options\n \n \n \n

    Year Options

    \n \n \n \n

    Scenario Options

    \n \n \n\n
    \n \n

    Return Period

    \n \n \n
    \n \n \n\n \n \n \n \n \n
    \n \n
    \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n map_response: state.locus.map_response,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n generateMap: (formdata) => {\n dispatch(locus.generateMap(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MyTable);\n","import React, { useRef, useEffect, useState } from \"react\";\nimport ReactMapGL from \"react-map-gl\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport * as MapboxGeocoder from \"@mapbox/mapbox-gl-geocoder\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { Icon } from \"semantic-ui-react\";\n/* eslint import/no-webpack-loader-syntax: off */\nimport mapboxgl from \"!mapbox-gl\";\n\nconst countryNames = [\n \"Afghanistan\",\n \"Albania\",\n \"Algeria\",\n \"Andorra\",\n \"Angola\",\n \"Argentina\",\n \"Armenia\",\n \"Australia\",\n \"Austria\",\n \"Azerbaijan\",\n \"Bahamas\",\n \"Bahrain\",\n \"Bangladesh\",\n \"Barbados\",\n \"Belarus\",\n \"Belgium\",\n \"Belize\",\n \"Benin\",\n \"Bhutan\",\n \"Bolivia\",\n \"Bosnia and Herzegovina\",\n \"Botswana\",\n \"Brazil\",\n \"Brunei\",\n \"Bulgaria\",\n \"Burkina Faso\",\n \"Burundi\",\n \"Cabo Verde\",\n \"Cambodia\",\n \"Cameroon\",\n \"Canada\",\n \"Central African Republic\",\n \"Chad\",\n \"Chile\",\n \"China\",\n \"Colombia\",\n \"Comoros\",\n \"Congo\",\n \"Costa Rica\",\n \"Croatia\",\n \"Cuba\",\n \"Cyprus\",\n \"Czechia\",\n \"Denmark\",\n \"Djibouti\",\n \"Dominica\",\n \"Dominican Republic\",\n \"Ecuador\",\n \"Egypt\",\n \"El Salvador\",\n \"Equatorial Guinea\",\n \"Eritrea\",\n \"Estonia\",\n \"Eswatini\",\n \"Ethiopia\",\n \"Fiji\",\n \"Finland\",\n \"France\",\n \"Gabon\",\n \"Gambia\",\n \"Georgia\",\n \"Germany\",\n \"Ghana\",\n \"Greece\",\n \"Grenada\",\n \"Guatemala\",\n \"Guinea\",\n \"Guinea-Bissau\",\n \"Guyana\",\n \"Haiti\",\n \"Honduras\",\n \"Hungary\",\n \"Iceland\",\n \"India\",\n \"Indonesia\",\n \"Iran\",\n \"Iraq\",\n \"Ireland\",\n \"Israel\",\n \"Italy\",\n \"Jamaica\",\n \"Japan\",\n \"Jordan\",\n \"Kazakhstan\",\n \"Kenya\",\n \"Kiribati\",\n \"Korea (North)\",\n \"Korea (South)\",\n \"Kuwait\",\n \"Kyrgyzstan\",\n \"Laos\",\n \"Latvia\",\n \"Lebanon\",\n \"Lesotho\",\n \"Liberia\",\n \"Libya\",\n \"Liechtenstein\",\n \"Lithuania\",\n \"Luxembourg\",\n \"Madagascar\",\n \"Malawi\",\n \"Malaysia\",\n \"Maldives\",\n \"Mali\",\n \"Malta\",\n \"Marshall Islands\",\n \"Mauritania\",\n \"Mauritius\",\n \"Mexico\",\n \"Micronesia\",\n \"Moldova\",\n \"Monaco\",\n \"Mongolia\",\n \"Montenegro\",\n \"Morocco\",\n \"Mozambique\",\n \"Myanmar\",\n \"Namibia\",\n \"Nauru\",\n \"Nepal\",\n \"Netherlands\",\n \"New Zealand\",\n \"Nicaragua\",\n \"Niger\",\n \"Nigeria\",\n \"North Macedonia\",\n \"Norway\",\n \"Oman\",\n \"Pakistan\",\n \"Palau\",\n \"Panama\",\n \"Papua New Guinea\",\n \"Paraguay\",\n \"Peru\",\n \"Philippines\",\n \"Poland\",\n \"Portugal\",\n \"Qatar\",\n \"Romania\",\n \"Russia\",\n \"Rwanda\",\n \"Saint Kitts and Nevis\",\n \"Saint Lucia\",\n \"Saint Vincent and the Grenadines\",\n \"Samoa\",\n \"San Marino\",\n \"Sao Tome and Principe\",\n \"Saudi Arabia\",\n \"Senegal\",\n \"Serbia\",\n \"Seychelles\",\n \"Sierra Leone\",\n \"Singapore\",\n \"Slovakia\",\n \"Slovenia\",\n \"Solomon Islands\",\n \"Somalia\",\n \"South Africa\",\n \"South Sudan\",\n \"Spain\",\n \"Sri Lanka\",\n \"Sudan\",\n \"Suriname\",\n \"Sweden\",\n \"Switzerland\",\n \"Syria\",\n \"Taiwan\",\n \"Tajikistan\",\n \"Tanzania\",\n \"Thailand\",\n \"Timor-Leste\",\n \"Togo\",\n \"Tonga\",\n \"Trinidad and Tobago\",\n \"Tunisia\",\n \"Turkey\",\n \"Turkmenistan\",\n \"Tuvalu\",\n \"Uganda\",\n \"Ukraine\",\n \"United Arab Emirates\",\n \"United Kingdom\",\n \"United States\",\n \"Uruguay\",\n \"Uzbekistan\",\n \"Vanuatu\",\n \"Vatican City\",\n \"Venezuela\",\n \"Vietnam\",\n \"Yemen\",\n \"Zambia\",\n \"Zimbabwe\",\n // This list should be exhaustive for all recognized countries\n];\n\nmapboxgl.accessToken =\n \"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcjcyZ2wwMTk1M3hraTBmYndycnhnIn0.nCdXVyBW6n3Db_vdDcE3gA\";\nexport default function GenerateMap(props) {\n const mapContainer = useRef(null);\n const markerRef = useRef(null);\n const map = useRef(null);\n const [lng, setLng] = useState(114.1838);\n const [lat, setLat] = useState(22.2797);\n const [zoom, setZoom] = useState(5.5);\n const [mapData, setMapData] = useState([]);\n const [showTable, setShowTable] = useState(false);\n const [locationSet, setLocationSet] = useState(false); // Track if a location has been set\n //const [distance, setDistance] = useState(5); // Default range in kilometers\n const distances = [1, 3, 5]; // Predefined distance options in kilometers\n const [distance, setDistance] = useState(distances[0]); // Default distance: 5 km\n const [isLocationSet, setIsLocationSet] = useState(false); // Initially false\n const distanceRef = useRef();\n\n function getBoundingBox(longitude, latitude, distanceKm) {\n const earthRadiusKm = 111; // Approximation for converting degrees to km\n\n const deltaLat = distanceKm / earthRadiusKm;\n const deltaLng =\n distanceKm / (earthRadiusKm * Math.cos((latitude * Math.PI) / 180));\n\n const southwest = [longitude - deltaLng, latitude - deltaLat];\n const northeast = [longitude + deltaLng, latitude + deltaLat];\n\n return [southwest, northeast];\n }\n\n useEffect(() => {\n distanceRef.current = distance;\n }, [distance]);\n\n const handleDeleteMapData = () => {\n if (markerRef.current) {\n markerRef.current.remove();\n }\n setMapData([]);\n setShowTable(false);\n setLocationSet(false); // Reset location flag\n };\n\n const calculateBoundingBox = (lng, lat, rangeInKm = distance) => {\n const rangeInMeters = rangeInKm * 500;\n\n // 1 degree latitude = ~111,320 meters; use this to calculate bounding box\n const deltaLng = rangeInMeters / 111320; // longitude offset\n const deltaLat = rangeInMeters / 111320; // latitude offset\n\n const topLeft = [lng - deltaLng, lat + deltaLat];\n const bottomRight = [lng + deltaLng, lat - deltaLat];\n\n console.log(\"bounding box\", topLeft, bottomRight);\n\n return [\n [topLeft[0], topLeft[1]],\n [bottomRight[0], topLeft[1]],\n [bottomRight[0], bottomRight[1]],\n [topLeft[0], bottomRight[1]],\n [topLeft[0], topLeft[1]], // Closing the polygon\n ];\n };\n\n // Function to add or update bounding box\n const addOrUpdateBoundingBox = (lng, lat, address, rangeInKm = distance) => {\n console.log(\"distance_update\", rangeInKm);\n const boundingBoxCoords = calculateBoundingBox(lng, lat, rangeInKm);\n\n // If the source already exists, update its data\n if (map.current.getSource(\"boundingBox\")) {\n map.current.getSource(\"boundingBox\").setData({\n type: \"Feature\",\n geometry: {\n type: \"Polygon\",\n coordinates: [boundingBoxCoords],\n },\n });\n } else {\n // Add a new source and layer\n map.current.addSource(\"boundingBox\", {\n type: \"geojson\",\n data: {\n type: \"Feature\",\n geometry: {\n type: \"Polygon\",\n coordinates: [boundingBoxCoords],\n },\n },\n });\n\n map.current.addLayer({\n id: \"boundingBox\",\n type: \"line\",\n source: \"boundingBox\",\n layout: {},\n paint: {\n \"line-color\": \"#002060\",\n \"line-width\": 2,\n },\n });\n }\n\n // Fly to the clicked location\n map.current.flyTo({\n center: [lng, lat],\n zoom: 12,\n });\n\n // Update the state with new bounding box details\n setMapData([\n {\n id: 0,\n name: address,\n latitude: lat,\n longitude: lng,\n boundingBox: boundingBoxCoords,\n distance: rangeInKm,\n },\n ]);\n\n setLocationSet(true); // Lock location after setting\n setShowTable(true);\n };\n\n useEffect(() => {\n if (map.current) return;\n\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: \"mapbox://styles/mapbox/light-v10\",\n center: [lng, lat],\n zoom: zoom,\n });\n }, [lng, lat, zoom]);\n\n // Add geocoder control with one-time location selection restriction\n useEffect(() => {\n if (locationSet || !map.current) return; // Stop if location is already set\n\n const geocoder = new MapboxGeocoder({\n accessToken: mapboxgl.accessToken,\n mapboxgl: mapboxgl,\n reverseGeocode: true,\n placeholder: \"Search address, city, or place\",\n marker: false,\n flyTo: {\n speed: 1.2,\n curve: 1,\n easing: (t) => t,\n },\n fuzzyMatch: true,\n limit: 5,\n language: navigator.language.split(\"-\")[0],\n types:\n \"country,region,postcode,district,place,locality,neighborhood,address,poi\",\n minLength: 2,\n autocomplete: true,\n render: function(item) {\n let type = item.place_type[0];\n let typeIcon =\n {\n country: \"🌍\",\n region: \"📍\",\n postcode: \"📮\",\n district: \"🏘️\",\n place: \"🌆\",\n locality: \"📌\",\n neighborhood: \"🏘️\",\n address: \"🏠\",\n poi: \"⭐\",\n }[type] || \"📍\";\n\n return `${typeIcon} ${item.place_name}`;\n },\n filter: function(item) {\n return item.place_name && item.place_type;\n },\n });\n map.current.addControl(geocoder);\n\n // Listen for input in geocoder\n geocoder.on(\"results\", (e) => {\n // Get search suggestions in lowercase\n const suggestions = e.features.map((feature) =>\n feature.place_name.toLowerCase()\n );\n\n // Get the input text in lowercase\n const inputText = e.config.query.toLowerCase();\n const inputCountry = inputText\n .split(\",\")\n .pop()\n .trim();\n\n const suggestionCountries = suggestions.map((s) =>\n s\n .split(\",\")\n .pop()\n .trim()\n );\n const countryInSuggestions = suggestionCountries.some(\n (country) => country === inputCountry\n );\n\n console.log(\n \"Input:\",\n inputText,\n \"Suggestions:\",\n suggestions.some((s) => s.includes(inputCountry))\n );\n\n // Check if the input text matches any country name in suggestions\n if (isCountryName(inputText) && !countryInSuggestions) {\n console.log(\"calling center\");\n // No match in suggestions - add marker to the center of the input country\n fetchCountryCenter(inputText).then((center) => {\n if (center) {\n addOrUpdateBoundingBox(center.lng, center.lat, inputText, distance);\n }\n });\n } else {\n console.log(\"normal one\");\n // If there’s a match, proceed with the usual geocoding behavior (first suggestion)\n if (e.features.length > 0) {\n const [lng, lat] = e.features[0].center;\n addOrUpdateBoundingBox(lng, lat, e.features[0].place_name, distance);\n }\n }\n });\n }, []);\n\n // Helper function to check if input text is likely a country name\n function isCountryName(input) {\n // Convert input to lowercase and trim spaces\n const cleanedInput = input.trim().toLowerCase();\n console.log(\"clean\", cleanedInput);\n\n // Check if cleaned input matches any country name in lowercase\n return countryNames.some((country) =>\n cleanedInput.includes(country.toLowerCase())\n );\n }\n\n // Helper function to fetch country center coordinates\n async function fetchCountryCenter(countryName) {\n const url = `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(\n countryName\n )}.json?types=country&access_token=${mapboxgl.accessToken}`;\n const response = await fetch(url);\n const data = await response.json();\n\n if (data.features && data.features.length > 0) {\n return {\n lng: data.features[0].center[0],\n lat: data.features[0].center[1],\n };\n }\n console.log(\"country\", data.features);\n return null;\n }\n\n // Handle map click with one-time location selection restriction\n useEffect(() => {\n if (locationSet || !map.current) return;\n\n const handleClick = async (e) => {\n console.log(\"onclick distance\", distanceRef.current);\n if (locationSet) return;\n\n const lng = e.lngLat.lng;\n const lat = e.lngLat.lat;\n const bounds = getBoundingBox(lng, lat, 15);\n\n // Update map to fit the bounds\n map.current.fitBounds(bounds, {\n padding: 20, // Add padding for better visibility\n duration: 1000, // Smooth transition\n });\n\n setIsLocationSet(true); // Disable the dropdown\n\n try {\n const response = await fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${lng},${lat}.json?access_token=${mapboxgl.accessToken}`\n );\n if (!response.ok) return;\n\n const data = await response.json();\n const firstFeature = data.features[0];\n\n let isHongKong = false;\n if (firstFeature?.context) {\n isHongKong = firstFeature.context.some(\n (c) => c.short_code?.toUpperCase() === \"HK\"\n );\n }\n\n let locationName = firstFeature?.place_name.split(\",\")[0] || \"Unknown\";\n\n if (isHongKong) {\n // Use OpenStreetMap API for Hong Kong\n const osmResponse = await fetch(\n `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&zoom=18&addressdetails=1&accept-language=en`\n );\n if (osmResponse.ok) {\n const osmData = await osmResponse.json();\n locationName = osmData.name || osmData.display_name || \"Unknown\";\n }\n }\n\n addOrUpdateBoundingBox(lng, lat, locationName, distanceRef.current);\n } catch (error) {\n console.error(\"Error fetching location data:\", error);\n }\n };\n\n map.current.on(\"click\", handleClick);\n\n return () => {\n if (map.current) map.current.off(\"click\", handleClick);\n };\n }, []);\n\n // Function to add marker and set location details\n const addMarkerAndFlyTo = (lng, lat, address) => {\n if (markerRef.current) markerRef.current.remove(); // Remove any existing marker\n\n // Create new marker and add it to the map\n markerRef.current = new mapboxgl.Marker({ color: \"black\", draggable: true })\n .setLngLat([lng, lat])\n .addTo(map.current);\n\n map.current.flyTo({ center: [lng, lat], zoom: 12 });\n\n setMapData([\n {\n id: 0,\n marker: markerRef.current,\n color: \"black\",\n name: address,\n latitude: lat,\n longitude: lng,\n distance: distance,\n },\n ]);\n\n setLocationSet(true); // Lock location after setting\n setShowTable(true);\n\n // Handle marker drag to update location\n markerRef.current.on(\"dragend\", () => {\n const lngLat = markerRef.current.getLngLat();\n fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${lngLat.lng},${lngLat.lat}.json?access_token=${mapboxgl.accessToken}`\n )\n .then((response) => response.json())\n .then((data) => {\n const newAddress = data.features[0]?.place_name.split(\",\")[0];\n setMapData((prevMapData) =>\n prevMapData.map((item) =>\n item.id === 0\n ? {\n ...item,\n name: newAddress,\n latitude: lngLat.lat,\n longitude: lngLat.lng,\n distance: distance,\n }\n : item\n )\n );\n });\n });\n };\n\n const getRandomColor = () =>\n \"#\" + Math.floor(Math.random() * 16777215).toString(16);\n\n useEffect(() => {\n const transformedMapData = mapData.map(\n ({ name, latitude, longitude, color, distance }) => ({\n name,\n latitude,\n longitude,\n color,\n distance,\n })\n );\n props.onMapDataChange(transformedMapData);\n }, [mapData]);\n\n useEffect(() => {\n if (mapData.length > 0) {\n const { longitude, latitude, name } = mapData[0];\n console.log(\"Updating bounding box:\", {\n longitude,\n latitude,\n name,\n distance,\n });\n\n addOrUpdateBoundingBox(longitude, latitude, name, distance);\n }\n }, [distance]);\n\n return (\n \n \n

    \n Mark locations to analyze\n

    \n
    \n \n setDistance(Number(e.target.value))} // Update distance on change\n style={{ padding: \"5px 10px\", fontSize: \"14px\" }}\n >\n {distances.map((d) => (\n \n ))}\n \n
    \n\n {/* Table Section - Conditionally render based on showTable state */}\n {showTable && (\n
    \n
    \n
    \n \n
    Address
    \n
    Latitude
    \n
    Longitude
    \n
    Delete
    \n
    \n {mapData.map((item) => (\n
    \n
    \n \n {item.name}\n
    \n
    \n {item.latitude.toFixed(5)}\n
    \n
    \n {item.longitude.toFixed(5)}\n
    \n
    \n \n
    \n
    \n ))}\n
    \n
    \n \n )}\n\n {/* Map Section */}\n
    \n \n \n );\n}\n","import React, { Component } from \"react\";\n\nimport {\n Header,\n Icon,\n Menu,\n Label,\n Button,\n Grid,\n Image,\n Form,\n Input,\n Modal,\n Popup,\n Dropdown,\n} from \"semantic-ui-react\";\nimport \"./location.css\";\nimport { loadModules } from \"esri-loader\";\nimport { CSVReader } from \"react-papaparse\";\nimport logo from \"../assets/logo.png\";\nimport home from \"../assets/home.png\";\nimport add from \"../assets/images/add.png\";\nimport sample from \"../assets/image.png\";\nimport ll1 from \"../assets/logo_land.png\";\nimport search from \"../assets/search.png\";\nimport { Accordion, Card } from \"react-bootstrap\";\n\nimport upload from \"../assets/upload.png\";\nimport hsi from \"../assets/hsi.png\";\nimport sp from \"../assets/sp.png\";\nimport dax from \"../assets/dax.png\";\nimport dawjones from \"../assets/dowjones.png\";\nimport nasdaq from \"../assets/nasdaq.png\";\nimport euro from \"../assets/euro.png\";\nimport nifty from \"../assets/nifty.png\";\nimport nikkie from \"../assets/nikkei.png\";\n\nimport toastr from \"toastr\";\n\nimport { connect } from \"react-redux\";\nimport { locus, auth } from \"../actions\";\nimport { Checkbox, Typography, Radio, Select, Spin } from \"antd\";\n\nimport { company } from \"../actions\";\nimport Suggestion from \"./suggestion\";\nimport PortfolioSpinner from \"./loader\";\nimport GenerateMap from \"./generate_map\";\nimport \"toastr/build/toastr.min.css\";\nimport { CSVLink } from \"react-csv\";\nimport { changeTitle } from \"../redux/actions\";\nimport { Redirect } from \"react-router-dom\";\nimport { Tabs, Tab, Row, Col, Breadcrumb, Container } from \"react-bootstrap\";\nimport video from \"../assets/video.mp4\";\nimport video1 from \"../assets/video.gif\";\n\nimport TransitionTable from \"./transitiontable\";\n\nimport { Table } from \"antd\";\n\nlet mapcards = [];\n\nconst scenarioOptions = [\"0.0\", \"2.6\", \"4.5\", \"8.5\"];\nconst periodOptions = [\"100\", \"250\"];\nconst yearOptions = [\"2020\", \"2030\", \"2050\"];\n\nconst othersOptions = [\n { key: \"Flood\", value: \"River Flood\", text: \"Flood\" },\n { key: \"Rainfall\", value: \"Rainfall\", text: \"Rainfall\" },\n\n { key: \"Drought Index\", value: \"Drought Index\", text: \"Drought Index\" },\n //{ key: \"Landslide\", value: \"Landslide\", text: \"Landslide\" },\n { key: \"Storm Surge\", value: \"Storm Surge\", text: \"Storm Surge\" },\n\n { key: \"Extreme heat\", value: \"Extreme heat\", text: \"Extreme heat\" },\n { key: \"Typhoon\", value: \"Typhoon\", text: \"Typhoon\" },\n];\n\nclass CreateMap extends Component {\n constructor(props) {\n super(props);\n this.mapRef = React.createRef();\n }\n\n state = {\n upload: \"\",\n index: \"\",\n file: false,\n locations: [],\n query: \"\",\n availableDatasets: {},\n selectedVariable: \"\",\n\n farmVariables: [],\n energyVariables: [],\n option: \"\",\n variables: [],\n buildingVariables: [],\n confirmationOpen: false, // state to control confirmation modal\n\n overwrite: \"false\",\n company: [],\n portfolio: \"\",\n selectedOption: null,\n newlocations: [],\n modalOpen: false,\n videoOpen: false,\n loading: false,\n long: 34.0,\n lat: 39.0,\n zoom: 1,\n continent: \"Continents\",\n selectedTags: [],\n allTags: [],\n buildingselectedTags: [],\n allbuildingTags: [],\n optional: \"\",\n infoOpen: false,\n buildinginfoOpen: false,\n restrictOpen: false,\n address: \"\",\n companyloading: false,\n search_loading: false,\n buildingmodalOpen: false,\n search_type: \"\",\n index: \"HSI\",\n modalIndicesOpen: false,\n portfolio_value: \"\",\n portfolio_name: \"\",\n modalCompanyOpen: false,\n modalFileOpen: false,\n csv: \"\",\n selectedScenarios: [],\n selectedYears: [],\n distance: \"1\",\n return_period: \"\",\n selections: [],\n selectDisabled: false,\n };\n\n handleSelectChange = (value) => {\n this.setState({\n selections: value,\n // Only reset distance if all selections are cleared\n distance: value.length === 0 ? null : this.state.distance,\n });\n };\n\n handleVariableChange = (value) => {\n this.setState({\n selectedVariable: value,\n selections: [], // Clear selections when changing variable\n distance: null, // Clear distance when changing variable\n });\n };\n\n handleDistanceChange = (value) => {\n this.setState({ distance: value });\n localStorage.setItem(\"distance\", value);\n };\n handleClick = (e, titleProps) => {\n const { index } = titleProps;\n const { activeIndex } = this.state;\n const newIndex = activeIndex === index ? -1 : index;\n this.setState({ activeIndex: newIndex });\n };\n\n handleIndex = (e) => {\n console.log(\"checked\", e.target.id);\n\n if (this.state.index == e.target.id) {\n this.setState({ index: \"\" });\n } else {\n this.setState({ index: e.target.id }, () =>\n this.props.getIndices(this.state.index)\n );\n }\n };\n handleFileChange = (e) => {\n console.log(\"csv\", e.target.files[0]);\n this.setState({ csv: e.target.files[0] });\n };\n handleDeleteMarker = (id) => {\n // Your delete marker logic in the parent component\n console.log(`Deleting marker with ID: ${id}`);\n };\n handleChange = (e, { value }) => {\n this.setState({ selectedOption: value }, () =>\n console.log(\"selectedoption\", this.state.selectedOption)\n );\n };\n onSubmit = (e) => {\n console.log(\"onSubmit triggered\");\n if (e) e.preventDefault();\n\n // let defaultvar = [\"Rainfall Flood\"];\n //let variables = defaultvar.concat(this.state.variables);\n\n let formdata = new FormData();\n\n formdata.append(\"name\", this.state.portfolio);\n formdata.append(\"address\", this.state.locations[0].name);\n formdata.append(\"latitude\", this.state.locations[0].latitude);\n formdata.append(\"longitude\", this.state.locations[0].longitude);\n formdata.append(\n \"portfolio_variables\",\n JSON.stringify([this.state.selectedVariable])\n );\n //formdata.append(\"scenarios\", JSON.stringify(this.state.selectedScenarios));\n //formdata.append(\"years\", JSON.stringify(this.state.selectedYears));\n formdata.append(\"distance\", this.state.locations[0].distance);\n formdata.append(\"duration_data\", JSON.stringify(this.state.selections));\n\n this.setState({ loading: true }, () => {\n this.props.createMap(formdata);\n });\n };\n\n handleOpenConfirmation = () => {\n this.setState({ confirmationOpen: true });\n };\n\n handleCloseConfirmation = () => {\n this.setState({ confirmationOpen: false });\n };\n\n handleConfirm = () => {\n this.onSubmit();\n\n this.setState({ confirmationOpen: false });\n };\n\n handleOpen = () => this.setState({ modalOpen: true });\n\n handleClose = () =>\n this.setState({\n modalOpen: false,\n selectedVariable: \"\",\n distance: null,\n selections: \"\",\n portfolio: \"\",\n });\n\n componentDidMount() {}\n\n /*componentDidUpdate(prevProps, prevState) {\n if (prevProps.dataset !== this.props.dataset) {\n console.log(\"Dataset changed:\", prevProps.dataset, this.props.dataset);\n this.setState({ availableDatasets: this.props.dataset }, () =>\n console.log(\"available datasets\", this.state.availableDatasets)\n );\n }\n if (\n prevState.selectedVariable !== this.state.selectedVariable ||\n prevState.availableDatasets !== this.state.availableDatasets\n ) {\n const { availableDatasets } = this.state;\n if (\n availableDatasets.rainfall_flood !== \"NOT_APPLICABLE\" &&\n availableDatasets.rainfall_flood !== \"NOT_AVAILABLE\" &&\n availableDatasets.rainfall_flood?.length !== 0 &&\n (availableDatasets.storm_surge === \"NOT_APPLICABLE\" ||\n availableDatasets.storm_surge?.length === 0)\n ) {\n // Set default to \"Rainfall Flood\" if \"Storm Surge\" is unavailable\n this.handleVariableChange(\"Rainfall Flood\");\n this.setState({ selectDisabled: true });\n } else if (\n availableDatasets.storm_surge !== \"NOT_APPLICABLE\" &&\n availableDatasets.storm_surge?.length !== 0 &&\n (availableDatasets.rainfall_flood === \"NOT_APPLICABLE\" ||\n availableDatasets.rainfall_flood === \"NOT_AVAILABLE\" ||\n availableDatasets.rainfall_flood?.length === 0)\n ) {\n // Set default to \"Storm Surge\" if \"Rainfall Flood\" is unavailable\n this.handleVariableChange(\"Storm Surge\");\n this.setState({ selectDisabled: true });\n }\n console.log(\"Selected Variable:\", this.state.selectedVariable);\n console.log(\"Available Datasets:\", this.state.availableDatasets);\n console.log(\"Portfolio Name:\", this.state.portfolio);\n }\n }*/\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.dataset !== this.props.dataset) {\n console.log(\"Dataset changed:\", prevProps.dataset, this.props.dataset);\n\n this.setState({ availableDatasets: this.props.dataset }, () => {\n console.log(\n \"Available datasets updated:\",\n this.state.availableDatasets\n );\n\n const { availableDatasets } = this.state;\n let selectedVariable = this.state.selectedVariable;\n let selectDisabled = false;\n\n if (\n availableDatasets.rainfall_flood !== \"NOT_APPLICABLE\" &&\n availableDatasets.rainfall_flood !== \"NOT_AVAILABLE\" &&\n availableDatasets.rainfall_flood?.length !== 0 &&\n (availableDatasets.storm_surge === \"NOT_APPLICABLE\" ||\n availableDatasets.storm_surge?.length === 0)\n ) {\n // Default to \"Rainfall Flood\" if \"Storm Surge\" is unavailable\n selectedVariable = \"Rainfall Flood\";\n selectDisabled = true;\n } else if (\n availableDatasets.storm_surge !== \"NOT_APPLICABLE\" &&\n availableDatasets.storm_surge?.length !== 0 &&\n (availableDatasets.rainfall_flood === \"NOT_APPLICABLE\" ||\n availableDatasets.rainfall_flood === \"NOT_AVAILABLE\" ||\n availableDatasets.rainfall_flood?.length === 0)\n ) {\n // Default to \"Storm Surge\" if \"Rainfall Flood\" is unavailable\n selectedVariable = \"Storm Surge\";\n selectDisabled = true;\n }\n\n this.setState({ selectedVariable, selectDisabled });\n });\n }\n }\n\n isSubmitDisabled = () => {\n const {\n portfolio,\n selectedVariable,\n availableDatasets,\n selections,\n distance,\n locations,\n } = this.state;\n\n // Check if there are any locations selected on the map\n if (!locations || locations.length === 0) {\n return true;\n }\n\n // Check for valid datasets based on selected variable\n const hasValidDatasets =\n selectedVariable === \"Rainfall Flood\"\n ? availableDatasets.rainfall_flood &&\n Array.isArray(availableDatasets.rainfall_flood) &&\n availableDatasets.rainfall_flood.length > 0\n : selectedVariable === \"Storm Surge\"\n ? availableDatasets.storm_surge &&\n Array.isArray(availableDatasets.storm_surge) &&\n availableDatasets.storm_surge.length > 0\n : false;\n\n // All conditions must be met for the button to be enabled\n const isValid =\n locations.length > 0 && // Has locations\n selectedVariable && // Has selected variable\n hasValidDatasets && // Has valid datasets available\n selections.length > 0 && // Has selected datasets\n // distance && // Has selected distance\n portfolio &&\n portfolio.trim().length >= 3; // Has valid portfolio name\n\n return !isValid;\n };\n\n componentWillUnmount() {\n if (this.view) {\n this.view.destroy();\n }\n mapcards = [];\n }\n\n handleLogout = () => {\n this.props.logout();\n };\n onChange = (checkedValues) => {\n console.log(\"checked variables\", checkedValues);\n this.setState({ variables: checkedValues });\n };\n handleScenarioChange = (checkedValues) => {\n console.log(\"checked scenarios\", checkedValues);\n\n this.setState({ selectedScenarios: checkedValues });\n };\n handleYearChange = (checkedValues) => {\n console.log(\"checked year\", checkedValues);\n\n this.setState({ selectedYears: checkedValues });\n };\n handlePeriodChange = (checkedValues) => {\n this.setState({ return_period: checkedValues });\n };\n\n handleMapDataChange = (newMapData) => {\n this.setState({ locations: newMapData }, () => {\n console.log(\"location\", this.state.locations);\n this.fetchAvailableDatasets();\n });\n };\n\n fetchAvailableDatasets = () => {\n const { locations } = this.state;\n if (locations.length > 0) {\n let formdata = new FormData();\n formdata.append(\"latitude\", locations[0].latitude);\n formdata.append(\"longitude\", locations[0].longitude);\n\n this.props.fetchdataset(formdata);\n }\n };\n\n handleAsset = (address, latitude, longitude) => {\n mapcards.push({\n name: address,\n latitude: latitude,\n longitude: longitude,\n });\n this.setState({ locations: mapcards }, () =>\n console.log(\"location map\", this.state.locations, mapcards.length)\n );\n };\n\n render() {\n const { value, continent } = this.state;\n const distanceOptions = [\"1\", \"3\", \"5\", \"50\"];\n const {\n selectedVariable,\n\n selections,\n distance,\n portfolio,\n } = this.state;\n\n return (\n
    \n \n \n
    \n \n Map Module\n \n
    \n
    \n
    \n \n \n \n \n
    \n \n PROCEED\n \n \n
    \n
    \n \n Confirmation\n \n

    \n Do you want to proceed further? The map will be charged\n separately.\n

    \n
    \n \n \n No\n \n \n Yes\n \n
    \n
    \n \n\n \n \n Error\n \n \n {/**/}\n

    \n You are only allowed to add{\" \"}\n {this.props.permissions.assets_allowed} assets for Analysis\n

    \n
    \n \n\n \n \n Create Portfolio\n \n \n
    \n {this.props.location.state ? (\n
    \n

    \n New Portfolio{\" \"}\n \n this.setState(\n { overwrite: !this.state.overwrite },\n () => console.log(\"overwrite\", this.state.overwrite)\n )\n }\n toggle\n />\n

    \n {this.state.overwrite ? (\n \n this.setState({ portfolio: e.target.value })\n }\n />\n ) : (\n \n )}\n
    \n ) : (\n
    \n \n this.setState({ portfolio: e.target.value })\n }\n label=\"Portfolio Name\"\n placeholder=\"Enter portfolio name (minimum 3 characters)\"\n />\n\n \n Select Variables for Analysis\n \n
    \n \n {this.state.availableDatasets?.rainfall_flood ===\n \"NOT_APPLICABLE\" ||\n this.state.availableDatasets?.rainfall_flood ===\n \"NOT_AVAILABLE\" ||\n this.state.availableDatasets?.rainfall_flood?.length ===\n 0 ? null : (\n \n Rainfall Flood\n \n )}\n {this.state.availableDatasets?.storm_surge ===\n \"NOT_APPLICABLE\" ||\n this.state.availableDatasets?.storm_surge?.length ===\n 0 ? null : (\n \n Storm Surge\n \n )}\n \n\n {selectedVariable && (\n
    \n \n Available Datasets for {selectedVariable}\n \n\n
    \n {/* Rainfall Flood Dropdown */}\n {selectedVariable === \"Rainfall Flood\" && (\n
    \n {this.state.availableDatasets?.rainfall_flood ===\n \"NOT_APPLICABLE\" ||\n this.state.availableDatasets?.rainfall_flood ===\n \"NOT_AVAILABLE\" ||\n this.state.availableDatasets?.rainfall_flood\n ?.length === 0 ? (\n

    \n No dataset available for Rainfall Flood.\n

    \n ) : (\n \n this.handleSelectChange(value)\n }\n >\n {this.state.availableDatasets?.rainfall_flood.map(\n (option) => (\n \n {option.key}\n \n )\n )}\n \n )}\n
    \n )}\n\n {/* Storm Surge Dropdown */}\n {selectedVariable === \"Storm Surge\" && (\n
    \n {this.state.availableDatasets?.storm_surge ===\n \"NOT_APPLICABLE\" ||\n this.state.availableDatasets?.storm_surge\n ?.length === 0 ? (\n

    \n No dataset available for Storm Surge.\n

    \n ) : (\n \n this.handleSelectChange(value)\n }\n >\n {this.state.availableDatasets?.storm_surge.map(\n (option) => (\n \n {option.key}\n \n )\n )}\n \n )}\n
    \n )}\n
    \n
    \n )}\n\n {/* Conditional rendering of Distance Options \n {selections.length > 0 && (\n
    \n \n Distance Options\n \n \n {[\"1\", \"3\", \"5\"].map((option) => (\n \n {option} km\n \n ))}\n \n
    \n )}*/}\n
    \n )}\n\n
    \n\n {this.state.loading && !this.props.errors.error ? (\n \n \n
    \n ) : (\n \n Submit\n \n )}\n \n \n \n
    \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n errors: state.locus.errors,\n locus: state.locus,\n company: state.company.company,\n permissions: state.locus.permissions,\n name: state.locus.name,\n point: state.locus.point,\n indices: state.locus.indices,\n transition: state.locus.transition,\n company_name: state.locus.company_name,\n company_location: state.locus.company_location,\n auth: state.auth,\n map: state.locus.map,\n dataset: state.locus.dataset,\n };\n};\nconst mapDispatchToPros = (dispatch) => {\n return {\n createMap: (formdata) => {\n dispatch(locus.createMap(formdata));\n },\n logout: () => {\n dispatch(auth.logout());\n },\n fetchdataset: (formdata) => {\n dispatch(locus.Dataset(formdata));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToPros)(CreateMap);\n","import React, { Component, createRef } from \"react\";\nimport {\n Table,\n Switch,\n Radio,\n Row,\n Col,\n Button,\n Checkbox,\n Select,\n Spin,\n} from \"antd\";\nimport { Modal, Image } from \"semantic-ui-react\";\nimport { connect } from \"react-redux\";\nimport { locus } from \"../actions\";\nimport { getBoundsOfDistance } from \"geolib\";\nimport html2canvas from \"html2canvas\";\nimport maplogo from \"../assets/map_logo.png\";\nimport pin from \"../assets/red_marker.png\";\n\nimport \"./intensel_map.css\";\n/* eslint import/no-webpack-loader-syntax: off */\n\nimport mapboxgl from \"!mapbox-gl\";\nimport { tickStep, timeThursdays } from \"d3\";\n\nmapboxgl.accessToken =\n //\"pk.eyJ1IjoiYmFjay1vZmZpY2UtbWFuYWdlbWVudCIsImEiOiJjbGZxcmJlbjgwMWJxNDRwYjNpdXp0cGJ6In0.nfzF7xWo_S0Q90LhXBurxw\";\n \"pk.eyJ1IjoibGt0eWFnaSIsImEiOiJja2dhMmVrNGcwMzNxMnRrenhrbGh4YzBoIn0.h31ayIFQsUoW1YpL3LVkOQ\";\n\nclass LegendControl {\n onAdd(map) {\n this._map = map;\n this._container = document.createElement(\"div\");\n this._container.className = \"mapboxgl-ctrl legend\";\n this._container.id = \"legendName\";\n const paragraph = document.createElement(\"p\");\n paragraph.textContent = \"Flood in meters\";\n paragraph.id = \"legendTitle\";\n paragraph.className = \"legend-title\"; // Optional: Add a class for custom styling\n this._container.appendChild(paragraph);\n const legendItems = [\n { color: \"#336DFF\", label: \"0-0.25\" },\n\n { color: \"#33C2FF\", label: \"0.25-0.5\" },\n { color: \"#78FFC9\", label: \"0.5-0.75\" },\n { color: \"#E0FF55\", label: \"0.75-1\" },\n { color: \"#FFD600\", label: \"1-1.5\" },\n { color: \"#FF8700\", label: \"1.5-2\" },\n { color: \"#FF2F00\", label: \">2\" },\n ];\n\n legendItems.forEach((item) => {\n const legendItem = document.createElement(\"div\");\n legendItem.className = \"legend-item\";\n\n const colorBox = document.createElement(\"span\");\n colorBox.className = \"legend-color\";\n colorBox.style.backgroundColor = item.color;\n\n const label = document.createElement(\"span\");\n label.className = \"legend-label\";\n label.textContent = item.label;\n\n legendItem.appendChild(colorBox);\n legendItem.appendChild(label);\n this._container.appendChild(legendItem);\n });\n\n return this._container;\n }\n\n onRemove() {\n this._container.parentNode.removeChild(this._container);\n this._map = undefined;\n }\n}\nclass DownloadMap extends Component {\n constructor(props) {\n super(props);\n this.mapContainer = React.createRef();\n\n this.state = {\n dataSource: [\n {\n key: \"1\",\n name: \"City A\",\n country_code: \"CHN\",\n rainfall_flood: 0.687032,\n gdp: 44.6213,\n populationDensity: 2788.9462,\n rainfall_flood_max: 2.72103,\n rainfall_flood_min: 0.30654,\n },\n ], // Initialized to an empty array\n address: \"\",\n modalVisible: false,\n options: \"\",\n duration_data: \"\",\n filterModalVisible: false,\n downloadModalVisible: false,\n filterType: \"\",\n selectedCity: null,\n mapStyle: \"mapbox://styles/mapbox/satellite-v9\",\n name: \"\",\n distance: \"\",\n country_code: \"\",\n scenario: \"\",\n year: \"\",\n columns: [],\n return_period: \"\",\n scenario_download: [\"85\"],\n year_download: [\"2050\"],\n latitude: \"\",\n longitude: \"\",\n yearOptions: [],\n token: \"\",\n rcpOptions: [],\n scale: \"\",\n is3DViewEnabled: false,\n floodDepth: null,\n isMapLoaded: false, // Track map loading status\n district: \"\", // New state for district name\n loading: false,\n isLoadingTiles: false,\n styleTransitionComplete: true,\n resolution: \"\",\n\n mapValueResponse: {\n hand: null,\n elevation: null,\n no_of_days: null,\n slope: null,\n flood: null,\n value: null,\n },\n variable: \"\",\n showTable: true,\n showHandDescription: false, // Flag to control table visibility\n mapBounds: null, // State variable to hold map bounds\n geolocationText: \"Geolocation Center\",\n };\n this.rasterLayerAdded = false;\n\n this.map = null;\n this.popup = null;\n }\n getDataForReturnPeriod = (data, returnPeriod, variable, scenario, year) => {\n console.log(\"datasource getting data\", variable, scenario, year);\n\n // Initialize a result object with default values\n const result = {\n name: data.name,\n gdp: data.gdp,\n populationDensity: data.population,\n country_code: data.country_code,\n latitude: data.coordinates.latitude,\n longitude: data.coordinates.longitude,\n };\n\n if (variable === \"rainfall_flood\") {\n // Check if returnPeriod is available\n if (\n data.rainfall_flood &&\n data.rainfall_flood.average[returnPeriod] !== undefined\n ) {\n result.rainfall_flood_avg = data.rainfall_flood.average[returnPeriod];\n result.rainfall_flood_max = data.rainfall_flood.max[returnPeriod];\n result.rainfall_flood_min = data.rainfall_flood.min[returnPeriod];\n } else {\n console.warn(\"Invalid returnPeriod or missing rainfall_flood data.\");\n result.rainfall_flood_avg = null;\n result.rainfall_flood_max = null;\n result.rainfall_flood_min = null;\n }\n } else if (variable === \"storm_surge\" && scenario && year) {\n const key = `${scenario}_${year}`;\n console.log(\"Looking for storm_surge data with key: \", key);\n\n // Check if key is available in storm_surge data\n if (data.storm_surge && data.storm_surge.average[key] !== undefined) {\n console.log(\"Storm surge data found for key:\", key);\n console.log(\"storm_surge data: \", data.storm_surge);\n\n result.storm_surge_avg = data.storm_surge.average[key];\n result.storm_surge_max = data.storm_surge.max[key];\n result.storm_surge_min = data.storm_surge.min[key];\n } else {\n console.warn(\"Invalid scenario/year or missing storm_surge data.\");\n result.storm_surge_avg = null;\n result.storm_surge_max = null;\n result.storm_surge_min = null;\n }\n }\n\n return result;\n };\n updateScale = () => {\n if (!this.map) return;\n\n const bounds = this.map.getBounds();\n const ne = bounds.getNorthEast();\n const sw = bounds.getSouthWest();\n\n // Calculate the distance between the northeast and southwest corners\n const distance = this.getDistance(ne.lng, ne.lat, sw.lng, sw.lat);\n\n // Update the state with the new scale\n this.setState({ scale: `${(distance / 1000).toFixed(1)} km` }); // Convert to kilometers\n };\n\n // Haversine formula to calculate the distance between two lat/lng points\n getDistance = (lng1, lat1, lng2, lat2) => {\n const R = 6371000; // Radius of the Earth in meters\n const dLat = (lat2 - lat1) * (Math.PI / 180);\n const dLon = (lng2 - lng1) * (Math.PI / 180);\n\n const a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos(lat1 * (Math.PI / 180)) *\n Math.cos(lat2 * (Math.PI / 180)) *\n Math.sin(dLon / 2) *\n Math.sin(dLon / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\n return R * c; // Distance in meters\n };\n\n updateDataSource = (\n dataSource,\n apiResponse,\n returnPeriod,\n scenario,\n year\n ) => {\n console.log(\"Updating dataSource with:\", {\n returnPeriod,\n scenario,\n year,\n dataSource,\n });\n\n const variable = apiResponse.portfolio_variables.includes(\"Storm Surge\")\n ? \"storm_surge\"\n : \"rainfall_flood\";\n\n return dataSource.map((city) => {\n console.log(\"Getting data for city:\", city.name);\n const newData = this.getDataForReturnPeriod(\n apiResponse,\n returnPeriod,\n variable,\n scenario,\n year\n );\n console.log(\"New data:\", newData);\n return { ...city, ...newData };\n });\n };\n\n componentDidMount() {\n window.scrollTo(0, 0);\n\n if (\n this.props.location &&\n this.props.location.state &&\n this.props.location.state.name\n ) {\n let formdata = new FormData();\n formdata.append(\"name\", this.props.location.state.name.name);\n\n this.setState({ name: this.props.location.state.name.name }, () => {\n this.props.generateMap(formdata);\n });\n }\n let token = localStorage.getItem(\"token\");\n this.setState({ token: token });\n this.initializeMap();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { map_response, download_map_value } = this.props;\n\n // Check if download_map_value has changed\n if (prevProps.download_map_value !== download_map_value) {\n this.setState({ mapValueResponse: download_map_value }, () => {\n this.showPopup(this.state.longitude, this.state.latitude);\n });\n }\n\n // Check if mapBounds have changed\n if (prevState.mapBounds !== this.state.mapBounds && this.map) {\n const [[swLng, swLat], [neLng, neLat]] = this.state.mapBounds || [];\n if (!isNaN(swLng) && !isNaN(swLat) && !isNaN(neLng) && !isNaN(neLat)) {\n this.map.setMaxBounds(this.state.mapBounds);\n } else {\n console.error(\"Invalid map bounds: \", this.state.mapBounds);\n }\n }\n\n // Check if map_response has changed\n if (prevProps.map_response !== map_response) {\n console.log(\"map_response:\", map_response);\n this.setState({ country_code: map_response.country_code });\n this.setState({ resolution: map_response.resolution });\n // Extract necessary data from map_response\n const durationData = map_response.duration_data || [];\n const returnPeriod = durationData[0] || [];\n const [scenario, year] = durationData[0]?.split(\"_\") || [];\n const durationValues = map_response.duration_values || [];\n const distance = parseFloat(map_response.distance);\n\n // Update options, address, scenario, and year based on durationData\n const options = durationData.map((item) => ({\n label: item,\n value: item,\n }));\n\n this.setState(\n {\n address: map_response.address,\n options: durationValues,\n duration_data: durationData[0],\n return_period: returnPeriod || this.state.return_period,\n scenario: scenario || this.state.scenario,\n year: year || this.state.year,\n distance: !isNaN(distance)\n ? map_response.distance\n : this.state.distance,\n },\n () => {\n console.log(\"Updated options:\", this.state.options);\n if (!isNaN(distance)) {\n localStorage.setItem(\"distance\", this.state.distance);\n this.handleMapBounds(map_response);\n } else {\n console.error(\n \"Invalid distance in map_response: \",\n map_response.distance\n );\n }\n }\n );\n\n // Determine the variable (storm_surge or rainfall_flood)\n const variable = map_response.portfolio_variables.includes(\"Storm Surge\")\n ? \"storm_surge\"\n : \"rainfall_flood\";\n this.setState({ variable: variable }, () => {\n // Update dataSource based on variable\n this.updateDataSourceBasedOnVariable(variable, map_response);\n this.updateTableColumns(variable);\n this.updateRasterLayer();\n });\n }\n\n // Check if filter conditions (scenario, year, return_period) have changed\n if (\n prevState.scenario !== this.state.scenario ||\n prevState.year !== this.state.year ||\n prevState.return_period !== this.state.return_period\n ) {\n this.updateDataSourceBasedOnVariable(\n this.state.variable,\n this.props.map_response\n );\n }\n\n // Handle map style changes\n if (prevState.mapStyle !== this.state.mapStyle) {\n console.log(\"changing style\");\n const currentCenter = this.map.getCenter();\n const currentZoom = this.map.getZoom();\n this.updateMapStyle();\n\n this.map.once(\"styledata\", () => {\n this.map.setCenter(currentCenter);\n this.map.setZoom(currentZoom);\n });\n }\n }\n updateRasterLayer = () => {\n if (this.map) {\n if (this.map.getSource(\"wms-test-source\")) {\n this.map.removeLayer(\"wms-test-layer\");\n this.map.removeSource(\"wms-test-source\");\n }\n this.addRasterLayer();\n }\n };\n handleMapStyleChange = (checked) => {\n const newStyle = checked\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/satellite-v9\";\n\n if (this.loadingTimeout) {\n clearTimeout(this.loadingTimeout);\n }\n\n this.setState(\n {\n mapStyle: newStyle,\n styleTransitionComplete: false,\n isLoadingTiles: true,\n },\n this.updateMapStyle\n );\n };\n\n updateMapStyle = () => {\n if (this.map) {\n const currentCenter = this.map.getCenter();\n const currentZoom = this.map.getZoom();\n const currentBearing = this.map.getBearing();\n const currentPitch = this.map.getPitch();\n\n // Clean up existing sources and layers\n this.cleanupLayers();\n\n // Set safety timeout\n if (this.loadingTimeout) {\n clearTimeout(this.loadingTimeout);\n }\n this.loadingTimeout = setTimeout(() => {\n this.setState({\n isLoadingTiles: false,\n styleTransitionComplete: true,\n });\n }, 5000);\n\n this.map.setStyle(this.state.mapStyle, {\n diff: false, // Force a full style replacement\n });\n\n // Use the improved load event in Mapbox GL JS 2.6\n this.map.once(\"styledata\", () => {\n // Ensure the style is fully loaded\n if (this.map.isStyleLoaded()) {\n this.onStyleLoaded(\n currentCenter,\n currentZoom,\n currentBearing,\n currentPitch\n );\n } else {\n // Wait for style to be fully loaded\n this.map.once(\"style.load\", () => {\n this.onStyleLoaded(\n currentCenter,\n currentZoom,\n currentBearing,\n currentPitch\n );\n });\n }\n });\n }\n };\n\n onStyleLoaded = (center, zoom, bearing, pitch) => {\n this.setState({ styleTransitionComplete: true }, () => {\n console.log(\"zoom\", zoom);\n // Restore map position\n this.map.setCenter(center);\n this.map.setZoom(zoom);\n this.map.setBearing(bearing);\n this.map.setPitch(pitch);\n\n // Add raster layer for both styles\n this.addRasterLayer();\n\n // Add 2D buildings for dark style if needed\n if (this.state.mapStyle.includes(\"dark\")) {\n this.add2DBuildingsLayer();\n }\n });\n };\n\n cleanupLayers = () => {\n if (!this.map) return;\n\n try {\n const layerId = \"wms-test-layer\";\n const sourceId = \"wms-test-source\";\n\n if (this.map.getLayer(layerId)) {\n this.map.removeLayer(layerId);\n }\n if (this.map.getSource(sourceId)) {\n this.map.removeSource(sourceId);\n }\n } catch (error) {\n console.warn(\"Error during cleanup:\", error);\n }\n };\n\n addRasterLayer = () => {\n if (!this.map || !this.state.styleTransitionComplete) {\n console.warn(\"Map or style not ready\");\n return;\n }\n\n this.cleanupLayers();\n\n try {\n const { map_response } = this.props;\n const {\n variable,\n scenario,\n year,\n return_period,\n country_code,\n } = this.state;\n\n let baseUrl;\n if (variable === \"storm_surge\") {\n baseUrl = `https://devmap.intensel.net/storm_surge/tile/{x}/{y}/{z}?scenario_year=${scenario}_${year}`;\n } else if (country_code && variable === \"rainfall_flood\") {\n baseUrl = `https://devmap.intensel.net/rainfall_flood/tile/{x}/{y}/{z}?return_period=${return_period}yr&country_code=${country_code}`;\n } else {\n console.warn(\"Required parameters not available\");\n this.setState({ isLoadingTiles: false });\n return;\n }\n\n const tileUrl =\n map_response.subregion && variable !== \"storm_surge\"\n ? `${baseUrl}®ion_code=${map_response.subregion}`\n : baseUrl;\n\n // Add source\n this.map.addSource(\"wms-test-source\", {\n type: \"raster\",\n tiles: [tileUrl],\n tileSize: 256,\n minzoom: 0,\n maxzoom: 22,\n });\n\n // Add layer with layout and paint properties\n this.map.addLayer({\n id: \"wms-test-layer\",\n type: \"raster\",\n source: \"wms-test-source\",\n layout: {\n visibility: \"visible\",\n },\n paint: {\n \"raster-opacity\": 0.8,\n \"raster-resampling\": \"linear\",\n },\n });\n\n // Setup tile loading events\n this.setupTileLoadingEvents();\n } catch (error) {\n console.error(\"Error adding raster layer:\", error);\n this.setState({ isLoadingTiles: false });\n }\n };\n\n setupTileLoadingEvents = () => {\n if (!this.map) return;\n\n // Clear any existing timeouts\n if (this.loadingTimeout) {\n clearTimeout(this.loadingTimeout);\n }\n\n // Set new safety timeout\n this.loadingTimeout = setTimeout(() => {\n this.setState({ isLoadingTiles: false });\n }, 5000);\n\n // Remove existing listeners\n this.map.off(\"data\", this.handleTileData);\n\n // Add new data event listener\n this.map.on(\"data\", this.handleTileData);\n };\n\n handleTileData = (e) => {\n if (e.sourceId === \"wms-test-source\") {\n if (e.dataType === \"source\") {\n // Update loading state based on isSourceLoaded\n const isSourceLoaded = this.map.isSourceLoaded(\"wms-test-source\");\n\n if (isSourceLoaded) {\n this.setState({ isLoadingTiles: false });\n if (this.loadingTimeout) {\n clearTimeout(this.loadingTimeout);\n }\n } else {\n this.setState({ isLoadingTiles: true });\n }\n }\n }\n };\n // Separate method to update dataSource based on variable\n updateDataSourceBasedOnVariable(variable, map_response) {\n const { dataSource, return_period, scenario, year } = this.state;\n\n let updatedDataSource;\n if (variable === \"rainfall_flood\") {\n updatedDataSource = this.updateDataSource(\n dataSource,\n map_response,\n return_period,\n null,\n null\n );\n } else if (variable === \"storm_surge\") {\n updatedDataSource = this.updateDataSource(\n dataSource,\n map_response,\n null,\n scenario,\n year\n );\n }\n\n this.setState({ dataSource: updatedDataSource });\n }\n\n // Updated handleRCPChange function to update scenario, year, and return_period correctly\n handleRCPChange = (value) => {\n console.log(\"Selected value:\", value);\n\n if (value.includes(\"_\")) {\n const [scenario, year] = value.split(\"_\");\n this.setState({\n scenario: scenario,\n year: year,\n });\n } else {\n this.setState({\n return_period: value,\n });\n }\n\n // Update duration_data based on selected value\n this.setState({ duration_data: value });\n };\n\n fetchDistrictName = async (latitude, longitude) => {\n const mapboxToken =\n \"pk.eyJ1IjoibGt0eWFnaSIsImEiOiJja2dhMmVrNGcwMzNxMnRrenhrbGh4YzBoIn0.h31ayIFQsUoW1YpL3LVkOQ\";\n const mapboxUrl = `https://api.mapbox.com/geocoding/v5/mapbox.places/${longitude},${latitude}.json?access_token=${mapboxToken}`;\n\n try {\n const response = await fetch(mapboxUrl);\n if (response.ok) {\n const data = await response.json();\n\n // Extract the first feature from the response, which typically has the most specific location information\n const fullPlaceName =\n data.features.length > 0\n ? data.features[0].place_name\n : \"Unknown Location\";\n const districtName = fullPlaceName.split(\",\")[0]; // Get the part before the first comma\n\n this.setState({ district: districtName });\n } else {\n console.error(\"Error fetching district name:\", response.statusText);\n this.setState({ district: \"Unknown Location\" });\n }\n } catch (error) {\n console.error(\"Error fetching district name:\", error);\n this.setState({ district: \"Unknown Location\" });\n }\n };\n\n handleMapBounds(map_response) {\n const { coordinates } = map_response;\n const { latitude, longitude } = coordinates || {};\n\n if (latitude && longitude && this.state.distance) {\n const distanceStr =\n this.state.distance || localStorage.getItem(\"distance\");\n const distanceInMeters = parseInt(distanceStr) * 460;\n\n console.log(\n \"Latitude:\",\n latitude,\n \"Longitude:\",\n longitude,\n \"Distance in meters:\",\n distanceInMeters\n );\n\n const bounds = getBoundsOfDistance(\n { latitude, longitude },\n distanceInMeters\n );\n\n if (bounds && bounds.length === 2) {\n const mapBounds = [\n [bounds[0].longitude, bounds[0].latitude],\n [bounds[1].longitude, bounds[1].latitude],\n ];\n console.log(\"Calculated map bounds:\", mapBounds);\n\n this.setState({ mapBounds, latitude, longitude }, () => {\n if (this.map) {\n console.log(\"jump map\");\n this.map.jumpTo({\n center: [this.state.longitude, this.state.latitude],\n zoom: 15,\n });\n this.fetchDistrictName(latitude, longitude);\n }\n });\n } else {\n console.error(\"Invalid map bounds calculated:\", bounds);\n }\n } else {\n console.error(\n \"Invalid coordinates or distance:\",\n coordinates,\n this.state.distance\n );\n }\n }\n\n componentWillUnmount() {\n if (this.map) {\n this.map.remove();\n }\n if (this.loadingTimeout) {\n clearTimeout(this.loadingTimeout);\n }\n\n if (this.map) {\n this.map.off(\"data\", this.handleTileData);\n this.map = null;\n }\n }\n\n initializeMap = () => {\n if (!this.mapContainer || !this.mapContainer.current) {\n console.error(\"Map container reference is not defined\");\n return;\n }\n\n this.map = new mapboxgl.Map({\n container: this.mapContainer.current,\n style: this.state.mapStyle,\n transformRequest: (url, resourceType) => {\n if (resourceType === \"Tile\" && url.includes(\"devmap.intensel.net\")) {\n return {\n url: url,\n headers: {\n Authorization: `Token ${this.state.token}`,\n },\n };\n }\n return { url: url };\n },\n center: [this.state.longitude, this.state.latitude],\n maxBounds: this.state.mapBounds,\n pitch: 0,\n bearing: 0,\n pitchWithRotate: false,\n dragRotate: false,\n touchZoomRotate: false,\n });\n\n this.map.addControl(new mapboxgl.FullscreenControl());\n\n // Setup event listeners\n this.map.on(\"click\", this.handleMapHover);\n this.map.on(\"zoom\", this.updateScale);\n this.map.on(\"moveend\", this.updateScale);\n\n // Handle map loading sequence\n this.map.on(\"load\", () => {\n console.log(\"Map load event triggered\");\n\n // Wait for style to be fully loaded\n if (!this.map.isStyleLoaded()) {\n console.log(\"Waiting for style to load...\");\n this.map.once(\"styledata\", this.initializeMapFeatures);\n } else {\n console.log(\"Style already loaded, initializing features...\");\n this.initializeMapFeatures();\n }\n\n // Add power plant layer\n this.map.loadImage(\n \"https://docs.mapbox.com/mapbox-gl-js/assets/custom_marker.png\",\n (error, image) => {\n if (error) throw error;\n this.map.addImage(\"custom-marker\", image);\n }\n );\n\n this.map.addSource(\"power_plants\", {\n type: \"vector\",\n tiles: [\n \"https://devmap.intensel.net/power_plants/tile/{x}/{y}/{z}.pbf\",\n ],\n minzoom: 0,\n maxzoom: 22,\n });\n\n /* this.map.addLayer({\n id: \"power-plants-layer\",\n type: \"symbol\",\n source: \"power_plants\",\n \"source-layer\": \"power_plants\",\n layout: {\n \"icon-image\": \"custom-marker\",\n \"icon-size\": 1,\n \"icon-allow-overlap\": true, // Prevents icon clipping\n \"icon-anchor\": \"bottom\",\n },\n paint: {\n \"icon-color\": [\n \"match\",\n [\"get\", \"id\"],\n \"special-id\",\n \"#ff0000\",\n \"#00ff00\",\n ],\n },\n });\n\n this.map.on(\"click\", \"power-plants-layer\", (e) => {\n const coordinates = e.features[0].geometry.coordinates.slice();\n const properties = e.features[0].properties;\n\n const description =\n \"\" +\n (properties.name || \"Unknown Name\") +\n \"
    \" +\n \"Type: \" +\n (properties.type || \"N/A\") +\n \"
    \" +\n \"Average Generation: \" +\n (properties.capacity || \"N/A\") +\n \" MW\";\n\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\n }\n\n new mapboxgl.Popup()\n .setLngLat(coordinates)\n .setHTML(description)\n .addTo(this.map);\n });\n\n this.map.on(\"mouseenter\", \"power-plants-layer\", () => {\n this.map.getCanvas().style.cursor = \"pointer\";\n });\n\n this.map.on(\"mouseleave\", \"power-plants-layer\", () => {\n this.map.getCanvas().style.cursor = \"\";\n });\n\n const centerMarkerElement = document.createElement(\"div\");\n centerMarkerElement.className = \"center-marker\";\n centerMarkerElement.style.backgroundImage =\n \"url('../assets/red_marker.png')\";\n\n centerMarkerElement.style.width = \"40px\";\n centerMarkerElement.style.height = \"40px\";\n centerMarkerElement.style.backgroundSize = \"contain\";\n centerMarkerElement.style.zIndex = \"9999\"; // Highest z-index\n centerMarkerElement.style.position = \"absolute\";\n\n // Add the DOM marker\n new mapboxgl.Marker({ element: centerMarkerElement })\n .setLngLat([this.state.longitude, this.state.latitude]) // Set to map center\n .addTo(this.map);*/\n });\n };\n\n initializeMapFeatures = () => {\n console.log(\"Initializing map features...\");\n\n // Add layers and controls\n this.addRasterLayer();\n console.log(\"Raster layer added\");\n\n this.addLegendControl();\n console.log(\"Legend control added\");\n\n // Set map as loaded and then set initial scale\n this.setState({ isMapLoaded: true }, () => {\n console.log(\"Map loaded, setting initial scale...\");\n // Add a small delay to ensure all layers are fully rendered\n setTimeout(() => {\n this.setInitialScale();\n console.log(\"Initial scale set\");\n }, 100);\n });\n };\n\n setInitialScale = () => {\n if (!this.map || !this.state.distance) {\n console.warn(\"Map or distance not available\");\n return;\n }\n\n // Target distance in meters\n const targetDistance = this.state.distance * 1000;\n const center = this.map.getCenter();\n\n // Binary search for the correct zoom level\n let minZoom = 0;\n let maxZoom = 22;\n let currentZoom = 12;\n\n const getMapDistance = (zoom) => {\n this.map.setZoom(zoom);\n const bounds = this.map.getBounds();\n const ne = bounds.getNorthEast();\n const sw = bounds.getSouthWest();\n return this.getDistance(ne.lng, ne.lat, sw.lng, sw.lat);\n };\n\n // Perform binary search for up to 6 iterations\n for (let i = 0; i < 6; i++) {\n const currentDistance = getMapDistance(currentZoom);\n console.log(\n `Iteration ${i}: zoom ${currentZoom}, distance ${currentDistance /\n 1000}km (target: ${targetDistance / 1000}km)`\n );\n\n // If we're within 10% of target distance, we're done\n if (Math.abs(currentDistance - targetDistance) / targetDistance < 0.1) {\n break;\n }\n\n if (currentDistance > targetDistance) {\n minZoom = currentZoom;\n currentZoom = (currentZoom + maxZoom) / 2;\n } else {\n maxZoom = currentZoom;\n currentZoom = (currentZoom + minZoom) / 2;\n }\n }\n\n // Set final zoom and update scale\n this.map.setZoom(currentZoom);\n this.updateScale();\n\n console.log(\n `Final zoom set to ${currentZoom} for target distance ${this.state.distance}km`\n );\n };\n\n add3DBuildingsLayer = () => {\n const layers = this.map.getStyle().layers;\n const labelLayerId = layers.find(\n (layer) => layer.type === \"symbol\" && layer.layout[\"text-field\"]\n ).id;\n\n if (this.map.getLayer(\"add-3d-buildings\")) {\n return; // If the layer already exists, do nothing\n }\n\n this.map.addLayer(\n {\n id: \"add-3d-buildings\",\n source: \"composite\",\n \"source-layer\": \"building\",\n filter: [\"==\", \"extrude\", \"true\"],\n type: \"fill-extrusion\",\n minZoom: 16,\n paint: {\n \"fill-extrusion-color\": \"#ffffff\",\n \"fill-extrusion-height\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"height\"],\n ],\n \"fill-extrusion-base\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0,\n 15.05,\n [\"get\", \"min_height\"],\n ],\n \"fill-extrusion-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 15,\n 0, // Opacity is zero below zoom level 15\n 15.05,\n 0.6,\n ],\n },\n },\n labelLayerId\n );\n };\n add2DBuildingsLayer = () => {\n const layers = this.map.getStyle().layers;\n const labelLayerId = layers.find(\n (layer) => layer.type === \"symbol\" && layer.layout[\"text-field\"]\n ).id;\n\n if (this.map.getLayer(\"building-2d\")) {\n return; // If the layer already exists, do nothing\n }\n\n this.map.addLayer(\n {\n id: \"building-2d\",\n source: \"composite\",\n \"source-layer\": \"building\",\n type: \"fill\",\n minzoom: 15, // Ensure visibility at all zoom levels\n\n paint: {\n \"fill-color\": \"#d6d6d6\",\n \"fill-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 10,\n 0.2, // At zoom level 14, fill-opacity is 0.6\n 15,\n 0.6, // At higher zoom levels, opacity increases slightly for clarity\n ],\n },\n },\n labelLayerId\n );\n };\n remove2DBuildingsLayer = () => {\n if (this.map.getLayer(\"building-2d\")) {\n this.map.removeLayer(\"building-2d\");\n this.map.removeSource(\"composite\");\n }\n };\n\n remove3DBuildingsLayer = () => {\n if (this.map.getLayer(\"add-3d-buildings\")) {\n this.map.removeLayer(\"add-3d-buildings\");\n this.map.removeSource(\"composite\");\n }\n };\n\n handle3DViewChange = (checked) => {\n this.setState({ is3DViewEnabled: checked }, () => {\n if (this.state.is3DViewEnabled) {\n this.add3DBuildingsLayer();\n this.remove2DBuildingsLayer();\n } else {\n this.remove3DBuildingsLayer();\n this.add2DBuildingsLayer();\n }\n });\n };\n\n addLegendControl = () => {\n console.log(\"legend\");\n const legend = new LegendControl();\n this.map.addControl(legend, \"bottom-right\");\n };\n handleMapHover = (e) => {\n const longitude = e.lngLat.lng;\n const latitude = e.lngLat.lat;\n const country_code = this.state.dataSource[0]?.country_code || \"\";\n const { map_response } = this.props;\n\n console.log(\"Map hover coordinates:\", { longitude, latitude });\n\n let formdata = new FormData();\n formdata.append(\"latitude\", latitude);\n formdata.append(\"longitude\", longitude);\n formdata.append(\"country_code\", country_code);\n formdata.append(\"duration_data\", this.state.duration_data);\n formdata.append(\"variable\", this.state.variable);\n if (map_response.subregion != null) {\n formdata.append(\"subregion\", map_response.subregion);\n }\n\n this.props.MapValue(formdata);\n\n this.setState({ longitude, latitude }, () => {\n console.log(\"State updated with new coordinates:\", {\n longitude,\n latitude,\n });\n // this.showPopup(longitude, latitude);\n });\n };\n\n // Separate function to show the popup\n showPopup = (lng, lat) => {\n const {\n mapValueResponse: { hand, elevation, no_of_days, slope, flood, value },\n variable,\n } = this.state;\n\n const hazard = variable === \"rainfall_flood\" ? \"Flood\" : \"Storm Surge\";\n\n // Remove existing popup if present\n if (this.popup) {\n this.popup.remove();\n }\n\n // Validate necessary data\n if (!this.map || hand == null || elevation == null) {\n console.error(\"Popup data is missing or map is not initialized\");\n return;\n }\n\n // Update state with coordinates\n this.setState({\n latitude: lat,\n longitude: lng,\n geolocationText: `Geolocation Popup`,\n });\n\n // Construct popup content\n const popupContent = `\n ${hazard} (in m): ${value || \"0\"}
    \n Elevation (in m): ${elevation || \"0\"}
    \n HAND (in m): ${hand || \"0\"} \n ℹ️
    \n Number of Days: ${no_of_days || \"0\"}
    \n Slope: ${slope || \"0\"} %\n `;\n\n // Create and add the popup to the map\n this.popup = new mapboxgl.Popup({\n closeOnClick: false,\n className: \"custom-popup\",\n })\n .setLngLat([lng, lat])\n .setHTML(popupContent)\n .addTo(this.map);\n\n // Add event listener for the info icon\n\n // Wait for popup content to render\n setTimeout(() => {\n const handInfo = document.getElementById(\"hand-info\");\n if (handInfo) {\n handInfo.addEventListener(\"click\", () => {\n console.log(\"HAND info clicked\");\n this.showHandDescriptionPopup(lng, lat);\n });\n handInfo.addEventListener(\"keypress\", (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n this.showHandDescriptionPopup(lng, lat);\n }\n });\n } else {\n console.warn(\"HAND info icon not found!\");\n }\n }, 300);\n\n // Reset to center coordinates on popup close\n this.popup.on(\"close\", () => {\n const center = this.map.getCenter();\n this.setState({\n latitude: center.lat,\n longitude: center.lng,\n geolocationText: `Geolocation Center`,\n });\n });\n };\n\n showHandDescriptionPopup = (lng, lat) => {\n // Remove any existing HAND info popup\n if (this.handPopup) {\n this.handPopup.remove();\n }\n\n // Create and display a new popup with HAND info\n this.handPopup = new mapboxgl.Popup({\n closeOnClick: true,\n })\n .setLngLat([lng, lat])\n .setHTML(\n `\n
    \n Height Above Nearest Drainage (HAND) is the vertical distance from a point to the nearest drainage feature (e.g., a stream, river, or lake).\n
    \n `\n )\n .addTo(this.map);\n };\n\n removePopup = () => {\n this.popup.remove();\n };\n\n handleAnalyse = (record) => {\n this.setState({ selectedCity: record, modalVisible: true });\n };\n\n closeModal = () => {\n this.setState({ modalVisible: false });\n if (this.map) {\n this.map.remove();\n this.map = null;\n }\n };\n\n getRainfallFloodColumns = () => {\n return [\n { title: \"Country Code\", dataIndex: \"country_code\", key: \"country_code\" },\n\n {\n title: \"Population Density (per sqkm)\",\n dataIndex: \"populationDensity\",\n key: \"populationDensity\",\n render: (text) => (text ? text.toFixed(2) + \" people/sqkm\" : \"0\"),\n },\n {\n title: \"Rainfall Flood (in m)\",\n dataIndex: \"rainfall_flood_avg\",\n key: \"rainfall_flood_avg\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n\n {\n title: \"Rainfall Flood Max (in m)\",\n dataIndex: \"rainfall_flood_max\",\n key: \"rainfall_flood_max\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n {\n title: \"Rainfall Flood Min (in m)\",\n dataIndex: \"rainfall_flood_min\",\n key: \"rainfall_flood_min\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n // Add more columns as needed...\n ];\n };\n\n getStormSurgeColumns = () => {\n return [\n { title: \"Country Code\", dataIndex: \"country_code\", key: \"country_code\" },\n {\n title: \"Population Density (per sqkm)\",\n dataIndex: \"populationDensity\",\n key: \"populationDensity\",\n render: (text) => (text ? text.toFixed(2) + \" people/sqkm\" : \"0\"),\n },\n {\n title: \"Storm Surge (in m)\",\n dataIndex: \"storm_surge_avg\",\n key: \"storm_surge\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n\n {\n title: \"Storm Surge Max (in m)\",\n dataIndex: \"storm_surge_max\",\n key: \"storm_surge_max\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n {\n title: \"Storm Surge Min (in m)\",\n dataIndex: \"storm_surge_min\",\n key: \"storm_surge_min\",\n render: (text) => (text ? text.toFixed(2) : \"0\"),\n },\n // Add more columns as needed...\n ];\n };\n\n updateTableColumns = (variable) => {\n let columns;\n if (variable === \"rainfall_flood\") {\n columns = this.getRainfallFloodColumns();\n } else if (variable === \"storm_surge\") {\n columns = this.getStormSurgeColumns();\n }\n\n this.setState({ columns });\n };\n\n handlePeriodChange = (e) => {\n const newPeriod = e.target.value;\n this.setState({ return_period: newPeriod }, () => {\n this.updateDataSource(\n this.state.dataSource,\n this.props.map_response,\n newPeriod\n );\n this.updateRasterLayer();\n });\n };\n\n handleScenarioChange = (checkedValues) => {\n this.setState({ selectedScenarios: checkedValues });\n };\n handleDownload = () => {\n let formdata = new FormData();\n formdata.append(\"project_name\", this.state.name);\n\n //formdata.append(\"scenarios\", JSON.stringify(this.state.scenario_download));\n //formdata.append(\"years\", JSON.stringify(this.state.year_download));\n this.props.downloadMap(formdata);\n };\n\n addLegendToMap = () => {\n const legend = document.createElement(\"div\");\n legend.className = \"legend\";\n\n const legendItems = [\n { color: \"#faffff\", label: \"0-0.1\" },\n { color: \"#d3fad3\", label: \"0.1-0.2\" },\n { color: \"#acf5a8\", label: \"0.2-0.5\" },\n { color: \"#56c5b8\", label: \"0.5-0.75\" },\n { color: \"#0096c8\", label: \"0.75-1\" },\n { color: \"#00507d\", label: \"1-1.5\" },\n { color: \"#000a32\", label: \"1.5-2\" },\n { color: \"#000519\", label: \">2\" },\n ];\n\n legendItems.forEach((item) => {\n const legendItem = document.createElement(\"div\");\n legendItem.className = \"legend-item\";\n\n const legendColor = document.createElement(\"div\");\n legendColor.className = \"legend-color\";\n legendColor.style.backgroundColor = item.color;\n\n const legendLabel = document.createElement(\"div\");\n legendLabel.className = \"legend-label\";\n legendLabel.textContent = item.label;\n\n legendItem.appendChild(legendColor);\n legendItem.appendChild(legendLabel);\n legend.appendChild(legendItem);\n });\n\n // Add the legend to the map container\n this.map.getContainer().appendChild(legend);\n };\n /*handleExportImage = () => {\n const { name } = this.state;\n const mapContainerId = \"capture\";\n const increasedWidth = 1800;\n const increasedHeight = 1800;\n const logoElementId = \"mapLogo\";\n const fullscreenWidgetClass = \"mapboxgl-ctrl-fullscreen\";\n const scaleElementId = \"scale\"; // Element to hide during export\n\n const loadDelay = 10000; // Adjust the delay time in milliseconds as needed\n\n // Function to format the current date and time\n const getFormattedTimestamp = () => {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, \"0\");\n const day = String(now.getDate()).padStart(2, \"0\");\n const hours = String(now.getHours()).padStart(2, \"0\");\n const minutes = String(now.getMinutes()).padStart(2, \"0\");\n const seconds = String(now.getSeconds()).padStart(2, \"0\");\n return `${year}${month}${day}_${hours}${minutes}${seconds}`;\n };\n\n const mapElement = document.getElementById(mapContainerId);\n const logoElement = document.getElementById(logoElementId);\n const fullscreenWidget = document.querySelector(\n `.${fullscreenWidgetClass}`\n );\n const scaleElement = document.getElementById(scaleElementId); // Get scale element\n\n if (this.mapContainer.current) {\n const initialWidth = this.mapContainer.current.style.width;\n const initialHeight = this.mapContainer.current.style.height;\n\n this.mapContainer.current.style.width = `${increasedWidth}px`;\n this.mapContainer.current.style.height = `${increasedHeight}px`;\n\n this.map.resize();\n\n setTimeout(() => {\n this.map.flyTo({\n center: [this.state.longitude, this.state.latitude],\n zoom: 15,\n speed: 4,\n });\n\n const waitForMap = new Promise((resolve) => {\n this.map.once(\"moveend\", resolve);\n });\n\n waitForMap.then(() => {\n // Show the logo and hide the scale\n if (logoElement) {\n logoElement.style.display = \"block\";\n }\n if (fullscreenWidget) {\n fullscreenWidget.style.display = \"none\";\n }\n if (scaleElement) {\n scaleElement.style.display = \"none\";\n }\n\n html2canvas(mapElement, {\n useCORS: true,\n backgroundColor: null,\n width: increasedWidth,\n height: increasedHeight,\n })\n .then((canvas) => {\n const link = document.createElement(\"a\");\n const timestamp = getFormattedTimestamp();\n link.href = canvas.toDataURL(\"image/png\");\n link.download = `${name}_${timestamp}.png`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Hide the logo and show the scale again\n if (logoElement) {\n logoElement.style.display = \"none\";\n }\n if (fullscreenWidget) {\n fullscreenWidget.style.display = \"block\";\n }\n if (scaleElement) {\n scaleElement.style.display = \"block\";\n }\n\n // After downloading, reset map container dimensions\n this.mapContainer.current.style.width = initialWidth;\n this.mapContainer.current.style.height = initialHeight;\n this.map.resize();\n })\n .catch((error) => {\n console.error(\"html2canvas error: \", error);\n\n // Hide the logo and show the scale again in case of error\n if (logoElement) {\n logoElement.style.display = \"none\";\n }\n if (fullscreenWidget) {\n fullscreenWidget.style.display = \"block\";\n }\n if (scaleElement) {\n scaleElement.style.display = \"block\";\n }\n\n // Reset map container dimensions on error\n this.mapContainer.current.style.width = initialWidth;\n this.mapContainer.current.style.height = initialHeight;\n this.map.resize();\n });\n });\n }, loadDelay);\n } else {\n console.error(\"Map container ref not found.\");\n }\n };*/\n\n handleExportImage = () => {\n const { address, latitude, longitude } = this.state;\n const mapContainerId = \"capture\";\n const increasedWidth = 1850;\n const increasedHeight = 1850;\n const logoElementId = \"mapLogo\";\n const fullscreenWidgetClass = \"mapboxgl-ctrl-fullscreen\";\n const scaleElementId = \"scale\";\n const legendElementId = \"legendName\";\n const nameElementId = \"nameElement\";\n const geoLocationId = \"geolocation\";\n const legendTitleId = \"legendTitle\";\n const originalZoom = this.map.getZoom();\n\n const loadDelay = 15000;\n const captureDelay = 2000; // Adjust the delay time in milliseconds as needed\n\n const getFormattedTimestamp = () => {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, \"0\");\n const day = String(now.getDate()).padStart(2, \"0\");\n const hours = String(now.getHours()).padStart(2, \"0\");\n const minutes = String(now.getMinutes()).padStart(2, \"0\");\n const seconds = String(now.getSeconds()).padStart(2, \"0\");\n return `${year}${month}${day}_${hours}${minutes}${seconds}`;\n };\n\n const mapElement = document.getElementById(mapContainerId);\n const logoElement = document.getElementById(logoElementId);\n const fullscreenWidget = document.querySelector(\n `.${fullscreenWidgetClass}`\n );\n const nameElement = document.getElementById(nameElementId);\n const geoElement = document.getElementById(geoLocationId);\n const scaleElement = document.getElementById(scaleElementId);\n const legendElement = document.getElementById(legendElementId);\n const legendTitleElement = document.getElementById(legendTitleId);\n\n this.setState({ loading: true });\n\n if (this.mapContainer.current) {\n const initialWidth = this.mapContainer.current.style.width;\n const initialHeight = this.mapContainer.current.style.height;\n\n const initialLogoSize = logoElement ? logoElement.style.width : null;\n const initialLegendFontSize = legendElement\n ? legendElement.style.fontSize\n : null;\n const initialLegendSize = legendElement\n ? { ...legendElement.style }\n : null;\n const initialLegendTitleFontSize = legendTitleElement\n ? legendTitleElement.style.fontSize\n : null;\n\n // Store initial styles for legend child elements\n const initialLegendLabelStyles = [];\n const legendLabels = Array.from(\n legendElement.getElementsByClassName(\"legend-label\")\n );\n legendLabels.forEach((child) => {\n initialLegendLabelStyles.push({\n fontSize: child.style.fontSize,\n padding: child.style.padding,\n });\n });\n\n this.mapContainer.current.style.width = `${increasedWidth}px`;\n this.mapContainer.current.style.height = `${increasedHeight}px`;\n\n if (logoElement) {\n logoElement.style.width = \"200px\"; // Increased logo size\n }\n\n if (legendElement) {\n //legendElement.style.border = \"2px solid black\";\n legendElement.style.width = \"200px\"; // Increase width\n legendElement.style.height = \"auto\"; // Adjust height based on content\n legendElement.style.backgroundColor = \"#f0f0f0\"; // Ensure background grows with font\n\n // Apply increased styles to legend child elements\n legendLabels.forEach((child) => {\n child.style.fontSize = \"24px\";\n child.style.padding = \"5px\";\n });\n }\n console.log(\"Title\", legendTitleElement);\n\n if (legendTitleElement) {\n legendTitleElement.style.fontSize = \"24px\"; // Ensure font size is applied\n }\n\n if (geoElement && nameElement) {\n const geoParagraph = geoElement.querySelector(\"p\");\n const nameParagraph = nameElement.querySelector(\"p\");\n\n if (geoParagraph) {\n geoParagraph.style.fontSize = \"26px\";\n geoParagraph.style.paddingTop = \"0px\";\n geoParagraph.style.marginBottom = \"0px\";\n\n // Set font size for geoElement's paragraph\n }\n if (nameParagraph) {\n nameParagraph.style.fontSize = \"26px\";\n nameParagraph.style.paddingTop = \"0px\";\n nameParagraph.style.marginBottom = \"0px\"; // Set font size for nameElement's paragraph\n // Set font size for nameElement's paragraph\n }\n\n // Center the text horizontally and vertically\n geoElement.style.display = \"flex\";\n geoElement.style.alignItems = \"center\";\n geoElement.style.justifyContent = \"center\";\n geoElement.style.textAlign = \"center\";\n\n nameElement.style.display = \"flex\";\n nameElement.style.alignItems = \"center\";\n nameElement.style.justifyContent = \"center\";\n nameElement.style.textAlign = \"center\";\n\n //geoElement.style.border = \"2px solid black\";\n //nameElement.style.border = \"2px solid black\";\n geoElement.style.opacity = \"0.75\";\n nameElement.style.opacity = \"0.75\";\n\n geoElement.style.backgroundColor = \"#f0f0f0\";\n nameElement.style.backgroundColor = \"#f0f0f0\";\n\n geoElement.style.height = \"auto\";\n nameElement.style.height = \"auto\";\n }\n\n this.map.resize();\n this.map.fitBounds(\n [\n [longitude - 0.1, latitude - 0.1], // Southwest coordinates\n [longitude + 0.1, latitude + 0.1], // Northeast coordinates\n ],\n {\n padding: 50,\n maxZoom: 12, // Adjust max zoom if needed\n }\n );\n\n setTimeout(() => {\n this.map.flyTo({\n center: [this.state.longitude, this.state.latitude],\n zoom: 12,\n speed: 5,\n });\n\n const waitForMap = new Promise((resolve) => {\n this.map.once(\"moveend\", resolve);\n });\n\n waitForMap.then(() => {\n if (logoElement) {\n logoElement.style.display = \"block\";\n }\n if (fullscreenWidget) {\n fullscreenWidget.style.display = \"none\";\n }\n if (scaleElement) {\n scaleElement.style.display = \"none\";\n }\n\n html2canvas(mapElement, {\n useCORS: true,\n backgroundColor: null,\n width: increasedWidth,\n height: increasedHeight,\n })\n .then((canvas) => {\n const link = document.createElement(\"a\");\n const timestamp = getFormattedTimestamp();\n link.href = canvas.toDataURL(\"image/png\");\n link.download = `${address}_${timestamp}.png`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n if (logoElement) logoElement.style.display = \"none\";\n if (legendElement) {\n legendElement.style.border = \"none\";\n\n legendElement.style.width = initialLegendSize.width; // Reset width\n legendElement.style.height = initialLegendSize.height; // Reset height\n legendElement.style.fontSize = initialLegendFontSize;\n\n // Reset legend child elements\n legendLabels.forEach((child, index) => {\n child.style.fontSize =\n initialLegendLabelStyles[index].fontSize;\n child.style.padding = initialLegendLabelStyles[index].padding;\n });\n }\n\n if (legendTitleElement) {\n legendTitleElement.style.fontSize = initialLegendTitleFontSize;\n }\n\n if (geoElement && nameElement) {\n const geoParagraph = geoElement.querySelector(\"p\");\n const nameParagraph = nameElement.querySelector(\"p\");\n\n if (geoParagraph) {\n geoParagraph.style.paddingTop = \"0px\"; // Set font size for geoElement's paragraph\n geoParagraph.style.paddingBottom = \"0px\";\n geoParagraph.style.marginBottom = \"0px\";\n\n // Set font size for geoElement's paragraph\n\n geoParagraph.style.fontSize = initialLegendFontSize; // Set font size for geoElement's paragraph\n }\n if (nameParagraph) {\n nameParagraph.style.paddingTop = \"0px\"; // Set font size for geoElement's paragraph\n nameParagraph.style.paddingBottom = \"0px\"; // Set font size for geoElement's paragraph\n nameParagraph.style.marginBottom = \"0px\"; // Set font size for geoElement's paragraph\n\n nameParagraph.style.fontSize = initialLegendFontSize; // Set font size for nameElement's paragraph\n }\n geoElement.style.fontSize = initialLegendFontSize;\n nameElement.style.fontSize = initialLegendFontSize;\n geoElement.style.border = \"none\";\n nameElement.style.border = \"none\";\n geoElement.style.opacity = \"0.75\";\n nameElement.style.opacity = \"0.75\";\n }\n\n if (fullscreenWidget) {\n fullscreenWidget.style.display = \"block\";\n }\n if (scaleElement) {\n scaleElement.style.display = \"block\";\n }\n\n setTimeout(() => {\n this.mapContainer.current.style.width = initialWidth;\n this.mapContainer.current.style.height = initialHeight;\n this.map.resize();\n\n this.setState({ loading: false, downloadModalVisible: false });\n }, 2000);\n })\n .catch((error) => {\n console.error(\"html2canvas error: \", error);\n\n if (logoElement) logoElement.style.width = initialLogoSize;\n if (legendElement) {\n legendElement.style.width = initialLegendSize.width;\n legendElement.style.height = initialLegendSize.height;\n legendElement.style.fontSize = initialLegendFontSize;\n\n // Reset legend child elements on error\n legendLabels.forEach((child, index) => {\n child.style.fontSize =\n initialLegendLabelStyles[index].fontSize;\n child.style.padding = initialLegendLabelStyles[index].padding;\n });\n }\n\n this.mapContainer.current.style.width = initialWidth;\n this.mapContainer.current.style.height = initialHeight;\n this.map.resize();\n\n this.setState({ loading: false, downloadModalVisible: false });\n });\n this.map.flyTo({\n center: [longitude, latitude],\n zoom: originalZoom,\n speed: 2,\n });\n });\n }, loadDelay + captureDelay);\n } else {\n console.error(\"Map container ref not found.\");\n this.setState({ loading: false });\n }\n };\n\n handleYearChange = (e) => {\n this.setState({ year: e.target.value });\n };\n\n handleYearChange_download = (checkedValues) => {\n this.setState({ year_download: checkedValues });\n };\n handleRCPChange_download = (checkedValues) => {\n this.setState({ scenario_download: checkedValues });\n };\n\n openFilterModal = () => {\n this.setState({ filterModalVisible: true });\n };\n\n closeFilterModal = () => {\n this.setState({ filterModalVisible: false });\n };\n openDownloadModal = () => {\n this.setState({ downloadModalVisible: true });\n };\n\n closeDownloadModal = () => {\n this.setState({ downloadModalVisible: false });\n };\n\n applyFilter = () => {\n // Handle the filter application logic based on the filterType\n if (this.state.variable === \"storm_surge\") {\n console.log(\n \"applying filter\",\n this.state.variable,\n this.state.year,\n this.state.scenario\n );\n const { scenario, year } = this.state;\n const updatedDataSource = this.updateDataSource(\n this.state.dataSource,\n this.props.map_response,\n scenario,\n year\n );\n this.setState({ dataSource: updatedDataSource }, this.updateRasterLayer);\n } else if (this.state.variable === \"rainfall_flood\") {\n const { return_period } = this.state;\n // Assuming you have the logic to update the dataSource based on return_period\n const updatedDataSource = this.updateDataSource(\n this.state.dataSource,\n this.props.map_response,\n return_period\n );\n this.setState({ dataSource: updatedDataSource }, this.updateRasterLayer);\n }\n\n this.setState({ filterModalVisible: false });\n };\n\n // Update filter type\n handleFilterTypeChange = (e) => {\n this.setState({ filterType: e.target.value });\n };\n\n handleTableVisibility = (checked) => {\n this.setState({ showTable: checked });\n };\n\n render() {\n return (\n
    \n \n Filter Options\n \n \n Download\n \n\n
    \n
    \n {this.state.showTable && (\n
    \n \n
    \n
    \n )}\n\n \n {this.state.mapStyle.includes(\"dark\") && (\n \n )}\n\n {/* {(this.state.isLoadingTiles || !this.state.styleTransitionComplete) && (\n \n \n
    \n )}*/}\n\n \n\n
    \n {/* Hidden Map Logo */}\n \n\n {/* Loader \n {!this.state.isMapLoaded && (\n \n
    \n
    \n
    \n
    \n
    \n )}*/}\n\n {/* Map Container and Controls */}\n\n \n\n {/* Scale Display */}\n \n Resolution: {this.state.resolution}m Scale: {this.state.scale}\n \n\n {/* Info Box for Storm Surge or Rainfall Flood */}\n \n {this.state.variable === \"storm_surge\" ? (\n

    \n Storm Surge {this.state.scenario / 10} Year {this.state.year}{\" \"}\n {this.state.distance} km\n

    \n ) : (\n

    \n Rainfall Flood 1:{this.state.return_period} Return Period{\" \"}\n {this.state.distance} km\n

    \n )}\n \n \n {this.state.latitude && this.state.longitude ? (\n

    \n {this.state.geolocationText}: {this.state.latitude.toFixed(5)}\n , \n {this.state.longitude.toFixed(5)}\n

    \n ) : null}\n \n \n\n \n Filter Options\n \n \n \n \n {this.state.options ? (\n ({\n label: opt.value, // Display text\n value: opt.key, // Actual value sent to handleRCPChange\n }))}\n style={{ width: \"100%\" }}\n />\n ) : null}\n \n \n
    \n \n \n\n \n \n Cancel\n \n \n Apply Filter\n \n \n \n
    \n \n \n Download Options\n \n {this.state.loading ? ( // Show loader if loading is true\n \n \n \n ) : (\n <>\n <>\n \n {this.props.download_map && this.props.download_map.url ? (\n \n \n \n ) : (\n \n Download Data\n \n )}\n \n Download Map\n \n \n \n\n \n \n\n \n \n Cancel\n \n \n \n \n )}\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n map_response: state.locus.map_response,\n download_map: state.locus.download_map,\n download_map_value: state.locus.download_map_value,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n generateMap: (formdata) => {\n dispatch(locus.generateMap(formdata));\n },\n MapValue: (formdata) => {\n dispatch(locus.MapValue(formdata));\n },\n downloadMap: (formdata) => {\n return dispatch(locus.downloadMap(formdata));\n },\n };\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(DownloadMap);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport PrivateRoute from \"../private-route\";\nimport Spinner from \"./loader\";\nimport Location from \"./location\";\nimport Project from \"./project\";\nimport Dashboard from \"./dashboard\";\nimport Download from \"./download\";\n//import HazardDashboard from \"./hazarddash\";\nimport Navigation from \"./navmenu\";\n//import Export from \"./report\";\n\nimport { auth } from \"../actions/\";\n//import Invoice from \"./invoice\";\n//import TCFD from \"./tcfd\";\n//import DetailedReport from \"./deatiledreport\";\n//import Application from \"./pivottable\";\nimport SideNavbar from \"./oldsidebar\";\nimport Methodology from \"./methodology\";\nimport TransitionRisk from \"./transitionrisk\";\nimport CompanyDashboard from \"./company_dashboard\";\n\nimport Faqs from \"./faqs\";\nimport APIDocs from \"./apidocs\";\nimport TransitionAnalysis from \"./transition_analysis\";\nimport EditTransition from \"./edit_transition\";\nimport Realestate from \"./realestate\";\nimport RealEstateDashboard from \"./realestate_dashboard\";\nimport TopNavbar from \"./navmenu\";\nimport Landingpage from \"./landingpage\";\nimport Toolkit from \"./adaptation_tookit\";\nimport ChangelogPage from \"./changelog\";\nimport ChatbotPopup from \"./chatbot_popup\";\nimport FAQSearchPage from \"./faq\";\nimport MyTable from \"./intensel_map\";\nimport CreateMap from \"./map_create\";\nimport DownloadMap from \"./download_map\";\nimport SidebarLayout from \"./sidebar\";\n\nclass AppLayout extends Component {\n constructor() {\n super();\n this.state = {\n collapsed: false,\n };\n }\n handleSidebarCollapse = (collapsed) => {\n this.setState({ collapsed });\n };\n\n componentDidMount() {\n // Add event listener for back button click\n window.addEventListener(\"popstate\", this.handleBackButton);\n }\n\n componentWillUnmount() {\n // Remove event listener when component unmounts\n window.removeEventListener(\"popstate\", this.handleBackButton);\n }\n\n handleBackButton = () => {\n // Handle back button click if needed\n // For example, you can prevent default behavior or perform custom actions\n };\n render() {\n const { containerClassnames } = this.props;\n const { collapsed } = this.state;\n\n /*if (auth.isUserAuthenticated()) {\n if (localStorage.getItem(\"theme\") == \"dark\") {\n import(\"../css/sass/themes/gogo.light.purple.scss\").then(() => {});\n } else {\n import(\"../css/sass/themes/gogo.light.purple.scss\").then(() => {});\n }\n }*/\n return (\n
    \n {/**/}\n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n {/**/}\n {/* */}\n {/**/}\n {/**/}\n {/**/}\n \n {/**/}\n \n \n {/* */}\n \n \n \n \n
    \n \n );\n }\n}\nconst mapStateToProps = ({ menu }) => {\n const { containerClassnames } = menu;\n return { containerClassnames };\n};\nconst mapActionToProps = {};\n\nexport default withRouter(\n connect(mapStateToProps, mapActionToProps)(AppLayout)\n);\n","import { createStore,combineReducers,applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport auth from '../reducers/auth';\nimport locus from '../reducers/location';\nimport company from '../reducers/company';\nimport project from '../reducers/project';\nimport feedback from '../reducers/dashboard';\nimport asset from '../reducers/asset';\n\n\nlet reducers = combineReducers({\n\tauth,locus,company,project,feedback,asset\n});\n\nconst store = createStore(\n reducers,\n applyMiddleware(thunkMiddleware)\n\t);\n\nexport default store;\n","import React, { Component } from \"react\";\nimport { withRouter, Router, Route, Switch } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport Register from \"./components/register\";\nimport Login from \"./components/login\";\nimport Location from \"./components/location\";\nimport Home from \"./components/home\";\nimport { configureStore } from \"./redux/store\";\nimport { loadReCaptcha } from \"react-recaptcha-google\";\nimport Project from \"./components/project\";\nimport Dashboard from \"./components/dashboard\";\nimport Map from \"./components/hazard\";\nimport Asset from \"./components/assets\";\nimport PrivateRoute from \"./private-route\";\nimport { history } from \"./_helpers/history\";\nimport Building from \"./components/building\";\nimport AppLayout from \"./components/AppLayout\";\nimport ContentMap from \"./components/map\";\nimport Download from \"./components/download\";\nimport Spinner from \"./components/loader\";\nimport store from \"./store\";\n\nclass RootContainerComponent extends Component {\n render() {\n return (\n \n \n \n\n \n {/*\n \n \n \n\n */}\n\n \n \n \n \n \n \n );\n }\n}\n\nlet RootContainer = RootContainerComponent;\n\nclass App extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default withRouter(App);\n","import reducers from './reducers';\n\nimport { createStore,combineReducers,applyMiddleware } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\n\nexport function configureStore(initialState) {\n\n const store = createStore(\n reducers,\n initialState,\n applyMiddleware(thunkMiddleware)\n );\n\n // sagaMiddleware.run(sagas);\n\n if (module.hot) {\n module.hot.accept('./reducers', () => {\n const nextRootReducer = require('./reducers');\n store.replaceReducer(nextRootReducer);\n });\n }\n\n return store;\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport \"semantic-ui-css/semantic.min.css\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport * as Sentry from \"@sentry/react\";\nimport { Integrations } from \"@sentry/tracing\";\nimport errorbg from \"./assets/error-bg.jpg\";\n\nfunction FallbackComponent() {\n return (\n \n \n \n
    \n \n
    \n
    \n
    \n

    404

    \n
    Page Not Found
    \n

    \n The link you have clicked is broken or the page may have been\n removed or renamed.\n

    \n \n Go Back\n \n
    \n
    \n \n
    \n
    \n );\n}\nconst myFallback = ;\n\nSentry.init({\n dsn: \"https://3f4caee3f74b4c4cb08be0e20fd1f5e0@o1029519.ingest.sentry.io/5996520\",\n integrations: [new Integrations.BrowserTracing()],\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n // We recommend adjusting this value in production\n tracesSampleRate: 1.0,\n});\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/23.d7d5c1c7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAAAXNSR0IArs4c6QAAATZJREFUWEdjjI2NzY6Pj5/AwMDAwkBf8GfhwoUFjHv27Pk9AJbDvPoH5ID/9PU4qm2jDgCFwE8GBga2gYiG/////2IMCQkJSkpKmsfGxsZFT0f8+vXr27x585IY6WkpNrtGHTAoQoA501IxiIOFRYHh339meqSJ/wyMfz78+PlwwdlH6xgvF7g+EOBklaeHxeh2fPz++wHj40qvfwwMDAMVFf9BDhjYumAwOGBgo+Byoet1AQ5WjYFIhB++/7oJSnyMHhoS9hoiPLL/GZjokhgZGf79v/f++5NNV58eoIuF+EJ31AEDHwK5NipJJTaqU5kYGVnpWCL+//f//+/eQ3eyGB9Vev1iZGAAWU538J+B4fdoUTzwITDgaSDbSiW21FZ1JjMTI6hvQK9s+f/vv/+/+o/eygAA9K56xahEDxUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAAAXNSR0IArs4c6QAAAS5JREFUWEftlzFKxUAQhmc3moAkRxB9nTcQIeodHoFUIY+tRBvB4gkWFmJvY2ETzQXcHCABeQgeQeyeILlAXgQ3eTuyhYUilrMWmQt8//zzz7DLkiQ5StP0CgBWgLb6PM+PWVmWnQX4V6u9EYC0jX+nDQKMAx8A4NoYAyIqFkXRWAiRua67RilCKfWeZZlglNDfWIOAf+GAE8fx2PO8TUR0KDKBiH3btq9SynsmpZwHQbBBAf7JaJpmbu6ABgBbo8DhFNsfQVEUz77vb1kK4YsJHwvDcH80Gq1zzknCqLXGuq7fqqp6IAH+5e4gwL4Dp5MdcTbZveacrRJeRNQau4vbx0O2mE0VAzBw8kKAjrWzqd1n+SDAegZOku3kXOzdOA43fwOqtcTlUqvLu6eDTzZhhTUPOPFUAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/logo1.65587a02.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/dropbox.89edcdea.png\";","module.exports = __webpack_public_path__ + \"static/media/team_1.4cbca1b2.png\";","module.exports = __webpack_public_path__ + \"static/media/team_2.d3ceb2aa.png\";","module.exports = __webpack_public_path__ + \"static/media/var_eg.057d7c87.jpg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"intenselBlue\":\"home_intenselBlue__27JtO\",\"intenselOrange\":\"home_intenselOrange__1ys45\",\"navbar\":\"home_navbar__20lQt\",\"navlink\":\"home_navlink__2AkE8\",\"signInButton\":\"home_signInButton__1SGlt\",\"signUpButton\":\"home_signUpButton__39meX\",\"hero\":\"home_hero__1jR-_\",\"heroLeft\":\"home_heroLeft__3SA9P\",\"heroRight\":\"home_heroRight__Emc2L\",\"sectionBody\":\"home_sectionBody__28iEm\",\"customers\":\"home_customers__2gpsC\",\"whyIntensel\":\"home_whyIntensel__2xsSW\",\"whyIntenselCardTitleOdd\":\"home_whyIntenselCardTitleOdd__1V_MA\",\"whyIntenselCardTitleEven\":\"home_whyIntenselCardTitleEven__6V0CA\",\"whyIntenselAdvantages\":\"home_whyIntenselAdvantages__3Hs4U\",\"subtitle\":\"home_subtitle__1EcZH\",\"advantageText\":\"home_advantageText__18Bur\",\"whyIntenselDataSources\":\"home_whyIntenselDataSources__p6CFG\",\"whyIntenselDataSourcesItem\":\"home_whyIntenselDataSourcesItem__18vo6\",\"whyIntenselSimulationOfFuturePerils\":\"home_whyIntenselSimulationOfFuturePerils__1Nh5t\",\"text\":\"home_text__2tH8I\",\"feature\":\"home_feature__N36t5\",\"features\":\"home_features__1HasS\",\"intenselSaasAdvantage\":\"home_intenselSaasAdvantage__2CXa1\",\"intenselSaasAdvantageItem\":\"home_intenselSaasAdvantageItem__3GNw5\",\"climateRiskItem\":\"home_climateRiskItem__2sBcQ\",\"climateRiskItemDescription\":\"home_climateRiskItemDescription__2TmYu\",\"climateRiskItemName\":\"home_climateRiskItemName__2iDjS\"};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAED0lEQVR4nO3cTWgcdRjH8d/zn85uiFUiiCKeRBCk2uxswKoFtZA2zqzRgu7Fi9hDEU+FIiG33szBl4OCiN4EFUKpLcs2aaRdRDxYllSLQujNCtKDJaZNzezszuMlF1+Sye7O/J/Z7PO5ZmafJ/NlN5sJWUAppZRSSik1bEh6gV5sjAePOsRzDJpkwjoBl9p72jOjly9cl96tWwMXICr5B5moBmDsX19aJRNPu82F7yT26pWRXqAb0XjlEIPO478XHwDGODaLUbkyZXuvfgxMgI2yP82G6yDcvc1ho8x8LvT8V60t1qeBCBCWgtcM02kAIzs4vECgr1qefyzrvdKQ+wAtL3iTCJ8DcLs4zQHos1bZP5HVXmnJdYDIq8wA+Bi97Ulg+iD0/LmU10pVbgOE5eAUg/u+eASaCT1/jnP6ji93SzFAUcl/H0Rpv3x84i4/+RbhVJzy4/YlVwG4WnWia+ufgvBGRiO+dM2N16nZjDJ6/K7lJgDvqxbahfUvGHgl0zmMWmHsTpUajY0s5+xULgLwxPRoiztniHHE0sSGe8d9iVbO3bIzb2viAbh0dCyiVg3AQcujL7tu0acfzvxhee4/iAbg/Ufuj5w9iwBKMhvQz65pH6bm4u8y8wUD8MTUgxE7F8B4XGoHAABhpe20D0vdSRUJ8Nf+6Ycdp7ME4BGJ+f/j15jN5MiV2jXbg60HCMuVxwzzEgMP2Z6d4AZgpgrLtR9tDrX6m3CrXJkg5m9zePEB4AEgvhR5Lz5tc6i1AJEXPAvmiwDuszWzB/cy4qXIq0zaGmglQLv0QsDAAoB7bMzr010MroUl/6iNYZn/DAhLwctEmEd3t5PzIGJGtXilfjbLIZk/AwzhIwzexQcAlwgfZj0kt7ejh0XmAQh8nIDfsp6TgetEOJ71EPF7QUlaXsD9nF9Yruf6e9SXIGEaQJgGEKYBhGkAYRpAmAYQpgGEaQBhGkCYBhCmAYRpAGEaQJgGEKYBhGkAYRpAmAYQpgGEaQBhGkCYBhCmAYRpAGEaQJgGEKYBhGkAYRpAmAYQlv8AjH4+UOPP1PbISO4DEPib3s9Fz+fakvsAnZhnAdzs4dSbHTazae+TttwHGPlpYaXd4fHNf3Vd28EpawScjtk8JfHZD0oppZRSSimllFJKbWVHn6UTjk/tM8Z5h4HnMBgfvCdpjcCNGJgtLp//JengxADhRPAExfQ9wHvT2W9Y0G02/EyxWb+63VGJt6Mpxnt68XvBe8F4N+mobQNwteoAeD61nYYMMQ5tXsMt5f4PMrvdtgFofr4DoGFpl12HwRc3r+GWEp8BbHASoNvprTUkGLdg6O2kwxIDFJv1q4z4AAFnAaymstzutkqEr9nQgaR3QEoppZRSSqnh9Dcj9xGBYQDYwwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/home.1fd9053a.png\";","module.exports = __webpack_public_path__ + \"static/media/video.f96f36e6.gif\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/26.21eb158c.png\";","module.exports = __webpack_public_path__ + \"static/media/27.438c19a5.png\";","module.exports = __webpack_public_path__ + \"static/media/28.d676cc78.png\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 705;","module.exports = __webpack_public_path__ + \"static/media/logo_land.b9d1aa75.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/image.ac6fe2c9.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQUAAABKCAYAAACy70GcAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnQfMNUX1xveLIiIIKCCErqigdEGKUkUBDQooijQBG9IRIr0XPxFQwUICilJVFGuQFrDQFBAERQUhdCJNadIJ//w2PDfPPe/s7uzee4H3n73Jl/f93rs7c+bMOc8pc2ZmxgsvvPBC0X96DvQc6DnwIgdm9KDQy0LPgZ4DzoEeFHp56DnQc2CIAz0o9ALRc6DnQA8KvQz0HOg5UM2B3lPopaPnQM+B3lPoZaDnQM+B3lPoLANxxXbGjBmd2+pf7DkwTg7kVBN0kddW4UMVEc8//3zx6le/uuB7iOCn/02MEIF67rnnnivf08+nn366eM1rXlM+rna6DCqH8ZEGveNj4G8aBzS+6lWvmkKXns/ps+kZ8dfHPC5Q8nbEW58XzUETjS/F986HlMzlyIRkEHqZtyiDOeNwGdHcv1x8cp2Cdv0fupBRl03XH41Tz+i7uvG3AgUR07VTKRYEarJErP4mcOkyiTkTrWegRTQ888wzQ2CUasdp10To/RwhzaGNPuDDrLPOWgIlHwfbnDZcYFwhBG78LdX2yyXscUw+LynZaEPnE088MZjXrsAQ+cl85MgHMsU8juMjAHDFjuNxvkTAkBzBj9e97nWNJLUGhdQkilEQc++99xb//e9/i4cffri45557ysfnnnvuYqGFFiqZNNdccxVvetObyr+nQOLJJ58sfv3rXxfrrrvu4LnGUXR4ICo5in3//fcXjzzySHHfffeVtEPvAgssUMwzzzzF/PPPX8w555xDCD1u4HJl7TCkrFdc6cZNfxYBDQ/JM8gB6jb9RU+pzbtR4e68887iscceKx588MHita99bSkfkmvxV4rYpp+6Z6OuyMNGTqEDel7/+teXMipZBQQEHnjg7lHU9dUKFNxVdneGzi+88MLi5z//eXH11VcX//jHP5J9MpD3ve99xXve857iYx/7WPG2t72tVDyfsGuvvbZYeeWVi+uuu65YYYUVxsXTKe3IKsOsG2+8sTj55JOL3//+98X111+f7HO99dYrNt9882L77bcfMFdMrrIeucS7u3zZZZcVd9xxR+6rtc/NPvvsxbzzzlsKCf+gEyGRBYuhEo2Ny+vpOgDnBXMEOGAkXNnato1BWmeddQZy1maMUkaMFbJ56qmnFhdccEFx1113DZGx/PLLFx/60IeKHXbYoTSAUsY2fdWNC75AA5Ze+vbjH/+4+NGPfjTltfe+973FxhtvXGy77bbFG9/4xlJe+SDrOfSMBAp0AIO222674t///nfbuSpWW221Ypdddik+8IEPDLwCBnLaaadNHBQg9l//+ldx8MEHJxlbNRgm/4wzziiWWWaZQjmQHEY3TbgUcv/99y9mzpzZmpc5LwAQa621VrHKKqsUq666aqkofEaxojn9tn3Gw6g//vGPxeqrr962iaHnf/vb3w5Aoc1cCTTbysmhhx5aylWbvpoGKG8Fo/GlL32pgC/+wWN56qmnpjSDrG611VZDHm4TXdmgEOMU0GfvvfcuTjjhhCFCsEa77rpr8Y53vKP0BCAWlxyX629/+1tx1llnle5O/CCwjz/++GBgf/3rX0vFG9cnuua/+MUvik033bRsXq4YNHz5y18uhZC+GfOf/vSn4nvf+17x3e9+d0AKzyFoekYKPSqtMdHI//FeAAk8MdE5aj96f4kllij22WefUmgUa6aSa+PqL7cd9wrwzn72s5+VY+fT1mPA8Fx55ZUD8KtTCAdH5WCwxp/85CcHpCPPX/3qV0srjKvOh7DzG9/4xhCYf/jDHy5OPPHEYsEFFyyfaZPoS42R8R922GEFgKMPOnbIIYcUm2yyycD7Q8eOP/74IXndbbfdiuOOO27gvTgtKdntDArbbLPNFAu73377FTvvvHPpPunjIQeDxfWB0aeccsoA7VIoN05QiBnsX/7yl1MAAeHBQwHI+OAFeGgDKHz+858fjIvnf/e73zUmKHMVgecceH315dFHHy1d08svvzzZ3CKLLFLgMr75zW8u/80333zFbLPNVtx6663FTTfdVFx11VUDXqeUi7F861vfKlZaaaUhGuSuthnDqM96WOpegodoOcAgACWkRWniylYVnW48zjzzzGLrrbceMgbnn39+yScBlIcJEUDWX3/94vTTTy/nw5PrTZY65n14F6Xed999hwAB+SM/x9j4QAv/CLm+8pWvDAHIF7/4xeLII48s5cI/noDW31uBAoOBAO9QzJebImbFLDp/9+VHBJ125CpHKzjunILcLxIzCy+8cDl+V5Cbb765WHTRRYcy/zAXC6q4cq+99iq+/vWvD8ZBPIclc+AbRSlSy4aaNHIegFLKW4CP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\"","module.exports = __webpack_public_path__ + \"static/media/dax.fa7fecb6.png\";","module.exports = __webpack_public_path__ + \"static/media/dowjones.7ff535a2.png\";","module.exports = __webpack_public_path__ + \"static/media/nasdaq.f73103b0.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAAAnCAYAAADNVyyKAAAAAXNSR0IArs4c6QAACpxJREFUeF7tmnlUU1cex78hJiZBRQRZohas1GGpraOixaXqKFiEGbWuYRGXOliBttoCY6dT0JnRAmPrCJyO1eq4t0VHxKocUEGP0GrcUEA8xyVWQdlE1kBYMufe1/dIyAsFe+jBk7y/ct69797f/X1+2/2BQKvVamF+TEYDAjNwk2FND2oGblq8zcBNjLcZuBm4qWnAxM5rzuFm4CamARM7rtnDzcBNTAMmdlyzh5uBm5gGTOy4v8rD2yqLoa0th9B5tImp7cU97nMDb9wXDgv5a7BwdEVLzg6IvD80g38B7OC5gDdfOACh2zRY2AzhjkgMQBKc9AIc2bRF7BJwbW0lmlJjOE21lfwIi2FTgNZm7p22WgVBX2tAYkXfCYd7QTQ50LS12wtP3yXgmjNfoflMKARi23bAmgqgrf1EAkn7GHmrra2A5ZbO/9Te3NwMtbqRVy1SqQQtLa10jPw29rBrDBjQn06pqanlncqO8w1WVj7D/fsP6dCQIfZwdLTrFNXjx2XQaBhjl8vtIBKJ6DmILMYeMqfjOR48KNZb45fsg91XLBbpycjqkE9P5GwymYTuTeZ1D7jUGWitA/oMhGhWAoQve0IglqCt8iGac/eg9cZWCCydqdzaehUsP+MHThQTsuxvOHTwHAALnnPWIiUlHvkFd7Ehdjv27N2IpcFzDeZlZ1/E9Olr4Os3ESe/T4Tbq0tQVMCA03+EJOZgz9739da5desO1oQnIPtsvt708V4jkbxtHcaNG6X3fu++VIQs3Qxfv/FwsLfGfVUpss8eR0ZmCpKSU5CWmgagLwAZgAHE/AA0AGjCeK+puJi7GwRATGwykpP2w9dvJkQiIdJSz0IRMBubN0XAyak9TbKbJyUfQET4Nrh6DIfXhJE4n1OEu7dv0u/JuaUD/WFn0xcP7h7Rkzcg8C84dDATKlUaGhrUUF7O7yZwsS0EthMgDf+e1xhbCs+jae9UCl37TGXUw1es/BS7d10EpEJM8xoGRwdrvfXqGxqx9n0FLinzER1zBFBroNWeNthzwsTluHS9FMsV46BQzIKPdwys7SwxZeJwWMrao8Lp7CL6bXlJObKyPse0aROQeToHPt4fUTAvvdwPkevepnOSvzyOooIqCislJQYLFrxF3zOw16Ok5Jyed12+fBPX827jnZULaHQhnnwh5wp8vKOQkRmPyZPGUs8nHnbnzgO4uy+mBnokJUHP48Mj/onkpG+RkfklvGdOonsSjxzjuQxFBaUoLNwBNzcXTgfE2+fOj6ZGRAx9wAAp/c0+02eE4p6qAkX5B+g+RE6Vqrj7wGWx5dyiBLC2/in6uE6BoL8NfU/D/8lQiJcchcjT0CvJHIHACxIrG6wM9kJS4l95jYe8jN2QjA1xJ+i4tuGkwbzRY4Nx+24VFPPH/Ax8I5EA1dVp0A3hROH2QxdA3dRK5279IhJWVj6wtrPDG54vUS/RfYhBHjpyFY3VlVCpDlOvY7wlF1rteaPysgNM5HkPWVnbqHGx8GQyH7h6yHEr/xveNWb7R+DUiVzqkWTPOfM+QFrqD1Cp/sfr+ewiusCJkYz6/VKMdLHXOxeJZo+KS7sBPDMUIu/tEM/4M92HVOWtBcn0t3BEECSr9tHfNI9dP2EUNhkXi2cA0n5ITAhEeJjxwu55gZeUfGuQh1njIEbm6uqMiMgDgLoO1dUn9IyDPYNY7AuJlYQzSiYirAPQH3HxCixe9JZRCHzAmbC8HRmZmzkP7kideKGnZxgio+YgbM0SODsvwPIV3tj1NTFk4w8B7mBvhYz0JIjF/ggLf9OoI3UphzcrU6H5Zh6ErkHoM2kVtE8fQnMyCIKfc7rIb4eeNALLQdC+4kXDW8eHBT5YPghSiRAO9iTX6T81NWps2xqBa9eKmJDeTQ+vqDiKmzdv46eHjyGTSpB97gqSv84B1NU0pMf/az+yLtzHa+6D9cKgrhTEo4+eyEd/yz4oK06lQwR6YEgCyktKQSrWaX8YjbB353FhvzMPZ7w3DyUlh40WhaxuXh/jhE/WB2Lhwk3Ys3cdb/2iKysB3revCCVParEsaAri4z40ah1dAk6tXpmKttLbzEKaBrRc3sgAJzDUKgisxkLosZAZu7QRAuuxkEVf7hR4eZWGQjB8mKLt3v3i5wZO1rS1nQVgICRWIjRWN2PHzlU015Lcf6OwHNMnDzcI56wsXFjXtBmkExIed//3GBLij9HpBND1K0yEIw+fh5Ocmn32Fioq0mBjM9A4EMGbNOyvj16CkKWfIyXlYwOD6vgxG9KbmlqQd/URlMptBgUn+02XgZMPWlXXuW6a+t8+aCvNpFc1cgWTRFzjxuo/FtArG1+VrhvS4zbMR1TkSqOH/7UhnVF8JLnYISPzUy6URkVvQeL2LDRW10CjOcMbiQSy2ZCILWjONxZSyVlCV/8du3dl64HhA072JAaiVCYbhUGuac7OCigCJmLd2kB4eq5GTGwAYmPCjOqIDOiFdKs5gLoKSuVXvPt0GXjjjmC0FadDt2gjHbe2Z4/Q59VZHGwa/o/OMwqcCMgWbdFrfTs9DM17NNeqoVLt18uZpDiRyfxpno0InQ5v7zfg480Ubbo5nBpNLLkutaKi4jD1LuKh7u7BRgtHztDU1VAq/0MVR65TfJ7JrBWIHTsjafQw5uHMvMVQBHjj4IHPeAEyRvEdV+wNsp+DqrJ6aDSneI2SXUS3aCNy2touBlCHwsI9epU91X1X/i9dt/FiMTIIkoAveAUmf0xRbxlKQ31n93CSz0gOJWE2MsoHtrYD0dCg34Dx93uTNkHk8j9isNwRcof+SIhbze27afNe5OU/QVVZBYVS9ayGFzj5gL2+ve5mw4Vetogi3u/rNxJrP1hC1969+zgOHSSpSIO4+BAuApFr04L5M7mqmxWEWScOKtUpziD5PJzMZ+cmJkUbFKuHD6dj4cIoREaFcDmYNZI/zZ2CY0e3Guic7ENuAR2vZeTKJpcT6BoD6N0DTkCqVbCQ+0Hs/w/Oq0nrtSUvvb2Q+4XGC7HCMeNX4qd7T6lQhk8t12xhFEHauqSTptaZKgVQi8Sk96jy2uepUVJyWq8wYqx+Hm2CLF8xiwvRTOVNogJZl+nqkQYNIEZKykd6uZO9h4/43SgEKaZSI83NvYlDB48hI3OnXuXNAFcgI3OfQUXO3v/He7ki7N05tKjcdyCdNl/4GkwkzC9SfIJLP6iQmPQOHOxt8KS0Ejt3pSPvah602hu8jRcmPSwC8BRK5XdceO82cKqT1jpo2dYqaZSRFqsFuCKOTOms8cJSIxZs7LGzs+VCKAGWlfUjGnTasERRnp6jOK8ic8rKKuhyLi5OBiGQpACV6hHq69Xw8HhFr+nBNiXI+u5uI4zmWJKzc3Ku0upfo2mBk5Mjbax0bGmyezk7DzXaFiZ7Ft66S9dxGTHMIHJ01AvRVUHBHTyrrsNAq37w8HDhwjUZk8mkBtdEVie6Y10CTkJ14845QEtdp8UDN9jWBKHHUvR9e0PX5ptn/WYa6BLw30wa80Y9rgEz8B5Xce/awAy8d/HocWnMwHtcxb1rAzPw3sWjx6UxA+9xFfeuDczAexePHpfGDLzHVdy7NjAD7108elwaM/AeV3Hv2uD/8x+V/nBJ5WIAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/nifty.9b1d1bea.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/video.f2975b95.mp4\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/crisk.c22992e2.png\";","module.exports = __webpack_public_path__ + \"static/media/legend_heatmap.6578d9ea.png\";","module.exports = __webpack_public_path__ + \"static/media/37.5019168f.png\";","module.exports = __webpack_public_path__ + \"static/media/38.a6c074bb.png\";"],"sourceRoot":""}