{"version":3,"sources":["shared/data-factory.js","components/methodology/methodology.jsx","components/supporters/supporters.jsx","components/time-to-herd/time-to-herd.jsx","components/time-to-herd/herdHelpers.js","components/country-dropdown/country-dropdown.jsx","components/map-chart/map-chart.jsx","components/countries-table/countries-table.jsx","components/media-features/media-features.jsx","components/country-page/country-page.jsx","components/social-sharing/social-sharing-button.jsx","components/header-bar/header-bar.jsx","App.jsx","reportWebVitals.js","index.jsx"],"names":["CountriesMasterList","location","iso_code","coordinates","population","Methodology","className","target","rel","href","Supporters","src","alt","TimeToHerdCountAsNum","returnData","selectedCountry","allVaccineData","requestedData","requestedDataAsPercent","herdImmunityThresholdPercentage","useState","herdImmunityVaccinationThreshold","setHerdImmunityVaccinationThreshold","dailyVaccinationRate","setDailyVaccinationRate","daysToHerd","setDaysToHerd","vaccineDosesDelivered","setVaccineDosesDelivered","requestedDataValue","setRequestedDataValue","percentPopulationVaccinated","setPercentPopulationVaccinated","setPopulation","dailyVaccinationRateAsPercentPopulation","setDailyVaccinationRateAsPercentPopulation","useEffect","countryCode","thisCountry","find","country","handleCountryUpdate","length","dataHeadings","isoCodeIdx","findIndex","heading","dailyVaccinationsIdx","totalVaccinationsIdx","countryData","filter","data","mostRecentCountryData","dailyRate","totalVaccinations","parseVaccineData","Math","round","calcDaysToHerd","toFixed","TimeToHerdCountAsHTML","getData","end","duration","decimals","separator","CountryDropdown","setSelectedCountry","menuIsVisble","setMenuIsVisible","console","log","menu","map","Item","style","background","color","onClick","name","selectCountryHandler","overlayClassName","overlay","placement","trigger","onVisibleChange","visible","dropdownVisibleChangeHandler","arrow","role","tabIndex","e","preventDefault","DownOutlined","fontSize","marginLeft","transform","transition","MapChart","React","memo","setTooltipContent","data-tip","width","height","projectionConfig","scale","geography","geographies","geo","properties","NAME","ISO_A3","toast","handleCountryClick","onMouseEnter","onMouseLeave","default","fill","outline","hover","pressed","rsmKey","stroke","strokeWidth","strokeLinecap","strokeLinejoin","pointerEvents","cx","cy","r","d","CountriesTable","tableColumns","title","dataIndex","sortDirections","sorter","a","b","defaultSortOrder","timetoherd","percentVaccinated","percentVaccinatedDaily","tableData","index","countryObjectForTableData","key","push","columns","dataSource","pagination","MediaFeatures","CountryPage","setHerdImmunityThresholdPercentage","content","setContent","ExclamationCircleOutlined","verticalAlign","CheckCircleTwoTone","twoToneColor","marginTop","PieChartTwoTone","HeartTwoTone","min","max","value","onChange","valueAsNumber","Number","isNaN","format","id","SocialSharingButton","modalIsOpen","setIsOpen","currentUrl","window","type","isOpen","onAfterOpen","onRequestClose","EmailShareButton","url","EmailIcon","size","TwitterShareButton","TwitterIcon","FacebookShareButton","FacebookIcon","FacebookMessengerShareButton","FacebookMessengerIcon","LinkedinShareButton","LinkedinIcon","WhatsappShareButton","WhatsappIcon","HeaderBar","showBackButton","ArrowLeftOutlined","App","history","useHistory","countryByUrlParam","pathname","replace","initialCountry","setAllVaccineData","get_all_vaccine_data","useCallback","readRemoteFile","complete","results","position","autoClose","hideProgressBar","Slide","limit","path","exact","document","body","addEventListener","includes","getElementById","passive","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.53a4f131.chunk.js","sourcesContent":["export const CountriesMasterList = [\n {\n location: \"Albania\",\n iso_code: \"ALB\",\n coordinates: [20.1683, 41.1533],\n population: 2877797,\n },\n {\n location: \"Andorra\",\n iso_code: \"AND\",\n coordinates: [1.5218, 42.5063],\n population: 77265,\n },\n {\n location: \"Angola\",\n iso_code: \"AGO\",\n coordinates: [17.8739, -11.2027],\n population: 32866272,\n },\n // {\n // location: \"Anguilla\",\n // iso_code: \"AIA\",\n // coordinates: [-63.0686, 18.2206],\n // population: 15003,\n // },\n {\n location: \"Argentina\",\n iso_code: \"ARG\",\n coordinates: [-63.6167, -38.4161],\n population: 44494502,\n },\n {\n location: \"Australia\",\n iso_code: \"AUS\",\n coordinates: [133.7751, -25.2744],\n population: 25687041,\n },\n {\n location: \"Austria\",\n iso_code: \"AUT\",\n coordinates: [14.5501, 47.5162],\n population: 8847037,\n },\n {\n location: \"Azerbaijan\",\n iso_code: \"AZE\",\n coordinates: [47.5769, 40.1431],\n population: 10139177,\n },\n {\n location: \"Bahrain\",\n iso_code: \"BHR\",\n coordinates: [50.5577, 26.0667],\n population: 1569439,\n },\n {\n location: \"Bangladesh\",\n iso_code: \"BGD\",\n coordinates: [90.3563, 23.685],\n population: 164689383,\n },\n {\n location: \"Barbados\",\n iso_code: \"BRB\",\n coordinates: [-59.5432, 13.1939],\n population: 287375,\n },\n {\n location: \"Belarus\",\n iso_code: \"BLR\",\n coordinates: [27.9534, 53.7098],\n population: 9449323,\n },\n {\n location: \"Belgium\",\n iso_code: \"BEL\",\n coordinates: [4.4699, 50.5039],\n population: 11460000,\n },\n {\n location: \"Belize\",\n iso_code: \"BLZ\",\n coordinates: [-88.4976, 17.1899],\n population: 397628,\n },\n {\n location: \"Bermuda\",\n iso_code: \"BMU\",\n coordinates: [-64.7505, 32.3078],\n population: 62278,\n },\n {\n location: \"Bolivia\",\n iso_code: \"BOL\",\n coordinates: [-63.5887, -16.2902],\n population: 11673021,\n },\n {\n location: \"Brazil\",\n iso_code: \"BRA\",\n coordinates: [-51.9253, -14.235],\n population: 211150000,\n },\n {\n location: \"Bulgaria\",\n iso_code: \"BGR\",\n coordinates: [25.4858, 42.7339],\n population: 7024216,\n },\n {\n location: \"Cambodia\",\n iso_code: \"KHM\",\n coordinates: [104.991, 12.5657],\n population: 16718965,\n },\n {\n location: \"Canada\",\n iso_code: \"CAN\",\n coordinates: [-106.3468, 56.1304],\n population: 37058856,\n },\n {\n location: \"Cayman Islands\",\n iso_code: \"CYM\",\n coordinates: [-81.2546, 19.3133],\n population: 61944,\n },\n {\n location: \"Chile\",\n iso_code: \"CHL\",\n coordinates: [-71.543, -35.6751],\n population: 18729160,\n },\n {\n location: \"China\",\n iso_code: \"CHN\",\n coordinates: [104.1954, 35.8617],\n population: 1392730000,\n },\n {\n location: \"Colombia\",\n iso_code: \"COL\",\n coordinates: [-76.861, 39.2037],\n population: 50882891,\n },\n {\n location: \"Costa Rica\",\n iso_code: \"CRI\",\n coordinates: [-83.7534, 9.7489],\n population: 4999441,\n },\n {\n location: \"Cote d'Ivoire\",\n iso_code: \"CIV\",\n coordinates: [-5.5471, 7.54],\n population: 26378274,\n },\n {\n location: \"Croatia\",\n iso_code: \"HRV\",\n coordinates: [15.2, 45.1],\n population: 4089400,\n },\n {\n location: \"Cyprus\",\n iso_code: \"CYP\",\n coordinates: [33.4299, 35.1264],\n population: 1189265,\n },\n {\n location: \"Czechia\",\n iso_code: \"CZE\",\n coordinates: [15.473, 49.8175],\n population: 10650000,\n },\n {\n location: \"Denmark\",\n iso_code: \"DNK\",\n coordinates: [9.5018, 56.2639],\n population: 5797446,\n },\n {\n location: \"Dominica\",\n iso_code: \"DMA\",\n coordinates: [-61.371, 15.415],\n population: 71986,\n },\n {\n location: \"Dominican Republic\",\n iso_code: \"DOM\",\n coordinates: [-70.1627, 18.7357],\n population: 10847910,\n },\n {\n location: \"Ecuador\",\n iso_code: \"ECU\",\n coordinates: [-78.1834, -1.8312],\n population: 17370000,\n },\n {\n location: \"Egypt\",\n iso_code: \"EGY\",\n coordinates: [30.8025, 26.8206],\n population: 102334404,\n },\n {\n location: \"El Salvador\",\n iso_code: \"SLV\",\n coordinates: [-88.8965, 13.7942],\n population: 6486205,\n },\n {\n location: \"Estonia\",\n iso_code: \"EST\",\n coordinates: [25.0136, 58.5953],\n population: 1320884,\n },\n // {\n // location: \"Faroe Islands\",\n // iso_code: \"FRO\",\n // coordinates: [-6.9118, 61.8926],\n // population: 52154,\n // },\n // {\n // location: \"Falkland Islands\",\n // iso_code: \"FLK\",\n // coordinates: [-59.5236, -51.7963],\n // population: 3377,\n // },\n {\n location: \"Finland\",\n iso_code: \"FIN\",\n coordinates: [25.7482, 61.9241],\n population: 5518050,\n },\n {\n location: \"France\",\n iso_code: \"FRA\",\n coordinates: [2.2137, 46.2276],\n population: 66987244,\n },\n {\n location: \"Germany\",\n iso_code: \"DEU\",\n coordinates: [10.4515, 51.1657],\n population: 82927922,\n },\n {\n location: \"Ghana\",\n iso_code: \"GHA\",\n coordinates: [-1.0232, 7.9465],\n population: 31072940,\n },\n // {\n // location: \"Gibraltar\",\n // iso_code: \"GIB\",\n // coordinates: [-5.3536, 36.1408],\n // population: 33701,\n // },\n {\n location: \"Greece\",\n iso_code: \"GRC\",\n coordinates: [21.8243, 39.0742],\n population: 10727668,\n },\n {\n location: \"Greenland\",\n iso_code: \"GRL\",\n coordinates: [-42.6043, 71.7069],\n population: 56081,\n },\n {\n location: \"Grenada\",\n iso_code: \"GRD\",\n coordinates: [-61.679, 12.1165],\n population: 112523,\n },\n // {\n // location: \"Guernsey\",\n // iso_code: \"GGY\",\n // coordinates: [-2.5895, 49.4482],\n // population: 63155,\n // },\n {\n location: \"Guyana\",\n iso_code: \"GUY\",\n coordinates: [-58.9302, 4.8604],\n population: 786552,\n },\n {\n location: \"Hong Kong\",\n iso_code: \"HKG\",\n coordinates: [114.1694, 22.3193],\n population: 7496981,\n },\n {\n location: \"Hungary\",\n iso_code: \"HUN\",\n coordinates: [19.5033, 47.1625],\n population: 9768785,\n },\n {\n location: \"Iceland\",\n iso_code: \"ISL\",\n coordinates: [-19.0208, 64.9631],\n population: 353574,\n },\n {\n location: \"India\",\n iso_code: \"IND\",\n coordinates: [78.9629, 20.5937],\n population: 1367600000,\n },\n {\n location: \"Indonesia\",\n iso_code: \"IDN\",\n coordinates: [113.9213, -0.7893],\n population: 270625568,\n },\n {\n location: \"Iran\",\n iso_code: \"IRN\",\n coordinates: [53.688, 32.4279],\n population: 83992949,\n },\n {\n location: \"Ireland\",\n iso_code: \"IRL\",\n coordinates: [-7.6921, 53.1424],\n population: 4853506,\n },\n // {\n // location: \"Isle of Man\",\n // iso_code: \"IMN\",\n // coordinates: [-4.5481, 54.2361],\n // population: 84584,\n // },\n {\n location: \"Israel\",\n iso_code: \"ISR\",\n coordinates: [34.8516, 31.0461],\n population: 8883800,\n },\n {\n location: \"Italy\",\n iso_code: \"ITA\",\n coordinates: [12.5674, 41.8719],\n population: 60431283,\n },\n {\n location: \"Japan\",\n iso_code: \"JPN\",\n coordinates: [138.2529, 36.2048],\n population: 126476461,\n },\n // {\n // location: \"Jersey\",\n // iso_code: \"JEY\",\n // coordinates: [-2.1358, 49.2138],\n // population: 107800,\n // },\n {\n location: \"Jordan\",\n iso_code: \"JOR\",\n coordinates: [36.2384, 30.5852],\n population: 10203134,\n },\n {\n location: \"Kazakhstan\",\n iso_code: \"KAZ\",\n coordinates: [66.9237, 48.0196],\n population: 18776707,\n },\n {\n location: \"Kenya\",\n iso_code: \"KEN\",\n coordinates: [37.9062, -0.0236],\n population: 53771296,\n },\n {\n location: \"Kuwait\",\n iso_code: \"KWT\",\n coordinates: [47.4818, 29.3117],\n population: 4137309,\n },\n {\n location: \"Latvia\",\n iso_code: \"LVA\",\n coordinates: [24.6032, 56.8796],\n population: 1926542,\n },\n {\n location: \"Lebanon\",\n iso_code: \"LBN\",\n coordinates: [35.8623, 33.8547],\n population: 6830000,\n },\n {\n location: \"Liechtenstein\",\n iso_code: \"LIE\",\n coordinates: [9.5554, 47.166],\n population: 38128,\n },\n {\n location: \"Lithuania\",\n iso_code: \"LTU\",\n coordinates: [23.8813, 55.1694],\n population: 2789533,\n },\n {\n location: \"Luxembourg\",\n iso_code: \"LUX\",\n coordinates: [6.1296, 49.8153],\n population: 607728,\n },\n {\n location: \"Macao\",\n iso_code: \"MAC\",\n coordinates: [113.5439, 22.1987],\n population: 649335,\n },\n {\n location: \"Malaysia\",\n iso_code: \"MYS\",\n coordinates: [101.9758, 4.2105],\n population: 32700000,\n },\n {\n location: \"Maldives\",\n iso_code: \"MDV\",\n coordinates: [73.2207, 3.2028],\n population: 540544,\n },\n {\n location: \"Malta\",\n iso_code: \"MLT\",\n coordinates: [14.3754, 35.9375],\n population: 483530,\n },\n {\n location: \"Mauritius\",\n iso_code: \"MUS\",\n coordinates: [57.5522, -20.3484],\n population: 1266014,\n },\n {\n location: \"Mexico\",\n iso_code: \"MEX\",\n coordinates: [-102.5528, 23.6345],\n population: 126190788,\n },\n {\n location: \"Moldova\",\n iso_code: \"MDA\",\n coordinates: [28.3699, 47.4116],\n population: 4033963,\n },\n {\n location: \"Monaco\",\n iso_code: \"MCO\",\n coordinates: [7.4246, 43.7384],\n population: 39242,\n },\n {\n location: \"Mongolia\",\n iso_code: \"MNG\",\n coordinates: [103.8467, 46.8625],\n population: 3278290,\n },\n {\n location: \"Montenegro\",\n iso_code: \"MNE\",\n coordinates: [19.3744, 42.7087],\n population: 628066,\n },\n // {\n // location: \"Montserrat\",\n // iso_code: \"MSR\",\n // coordinates: [-62.1874, 16.7425],\n // population: 4992,\n // },\n {\n location: \"Morocco\",\n iso_code: \"MAR\",\n coordinates: [-7.0926, 31.7917],\n population: 36910560,\n },\n {\n location: \"Myanmar\",\n iso_code: \"MMR\",\n coordinates: [95.956, 21.9162],\n population: 54409800,\n },\n {\n location: \"Nepal\",\n iso_code: \"NPL\",\n coordinates: [84.124, 28.3949],\n population: 29136808,\n },\n {\n location: \"Netherlands\",\n iso_code: \"NLD\",\n coordinates: [5.2913, 52.1326],\n population: 17280000,\n },\n {\n location: \"New Zealand\",\n iso_code: \"NZL\",\n coordinates: [174.886, -40.9006],\n population: 5002100,\n },\n {\n location: \"Norway\",\n iso_code: \"NOR\",\n coordinates: [8.4689, 60.472],\n population: 5314336,\n },\n {\n location: \"Oman\",\n iso_code: \"OMN\",\n coordinates: [55.9754, 21.4735],\n population: 4829483,\n },\n {\n location: \"Panama\",\n iso_code: \"PAN\",\n coordinates: [-80.7821, 8.538],\n population: 4246000,\n },\n {\n location: \"Paraguay\",\n iso_code: \"PRY\",\n coordinates: [-58.4438, -23.4425],\n population: 7132538,\n },\n {\n location: \"Peru\",\n iso_code: \"PER\",\n coordinates: [-75.0152, -9.19],\n population: 32971854,\n },\n {\n location: \"Philippines\",\n iso_code: \"PHL\",\n coordinates: [121.774, 12.8797],\n population: 109581078,\n },\n {\n location: \"Poland\",\n iso_code: \"POL\",\n coordinates: [19.1451, 51.9194],\n population: 37978548,\n },\n {\n location: \"Portugal\",\n iso_code: \"PRT\",\n coordinates: [-8.2245, 39.3999],\n population: 10281762,\n },\n {\n location: \"Qatar\",\n iso_code: \"QAT\",\n coordinates: [51.1839, 25.3548],\n population: 2881053,\n },\n {\n location: \"Romania\",\n iso_code: \"ROU\",\n coordinates: [24.9668, 45.9432],\n population: 19473936,\n },\n {\n location: \"Russia\",\n iso_code: \"RUS\",\n coordinates: [105.3188, 61.524],\n population: 144478050,\n },\n {\n location: \"Rwanda\",\n iso_code: \"RWA\",\n coordinates: [29.8739, 1.9403],\n population: 12952218,\n },\n {\n location: \"Saudi Arabia\",\n iso_code: \"SAU\",\n coordinates: [45.0792, 23.8859],\n population: 33699947,\n },\n {\n location: \"Singapore\",\n iso_code: \"SGP\",\n coordinates: [103.8198, 1.3521],\n population: 5850342,\n },\n {\n location: \"Serbia\",\n iso_code: \"SRB\",\n coordinates: [21.0059, 44.0165],\n population: 6944975,\n },\n {\n location: \"Slovakia\",\n iso_code: \"SVK\",\n coordinates: [19.699, 48.669],\n population: 5447011,\n },\n {\n location: \"Slovenia\",\n iso_code: \"SVN\",\n coordinates: [14.9955, 46.1512],\n population: 2067372,\n },\n {\n location: \"South Africa\",\n iso_code: \"ZAF\",\n coordinates: [22.9375, -30.5595],\n population: 59620000,\n },\n {\n location: \"South Korea\",\n iso_code: \"KOR\",\n coordinates: [127.7669, 35.9078],\n population: 51269185,\n },\n {\n location: \"Spain\",\n iso_code: \"ESP\",\n coordinates: [-3.7492, 40.4637],\n population: 46723749,\n },\n {\n location: \"Sri Lanka\",\n iso_code: \"LKA\",\n coordinates: [80.7718, 7.8731],\n population: 21803000,\n },\n {\n location: \"Sweden\",\n iso_code: \"SWE\",\n coordinates: [18.6435, 60.1282],\n population: 10036379,\n },\n {\n location: \"Switzerland\",\n iso_code: \"CHE\",\n coordinates: [8.2275, 46.8182],\n population: 8591365,\n },\n {\n location: \"Turkey\",\n iso_code: \"TUR\",\n coordinates: [35.2433, 38.9637],\n population: 83429615,\n },\n {\n location: \"United Arab Emirates\t\",\n iso_code: \"ARE\",\n coordinates: [53.8478, 23.4241],\n population: 9630959,\n },\n {\n location: \"United Kingdom\",\n iso_code: \"GBR\",\n coordinates: [-3.436, 55.3781],\n population: 66488991,\n },\n {\n location: \"United States\",\n iso_code: \"USA\",\n coordinates: [-95.7129, 37.0902],\n population: 327167434,\n },\n {\n location: \"Uruguay\",\n iso_code: \"URY\",\n coordinates: [-55.7658, -32.5228],\n population: 3473730,\n },\n {\n location: \"Venezuela\",\n iso_code: \"VEN\",\n coordinates: [-66.5897, 6.4238],\n population: 28435940,\n },\n {\n location: \"Zimbabwe\",\n iso_code: \"ZWE\",\n coordinates: [29.1549, -19.0154],\n population: 14862924,\n },\n];\n","import React from \"react\";\nimport \"./methodology.css\";\n\nexport const Methodology = () => {\n return (\n <>\n

Methodology

\n
\n
\n

Definitions

\n \n Herd Immunity: A population's protection from the spread of\n an infectius disease caused by a sufficient percentage of the\n population having immunity to that disease.{\" \"}\n \n Learn more\n \n \n \n Herd Immunity Threshold: The percentage of a given population\n required to have immunity to an infectious disease before herd\n immunity is reached for that population.\n \n \n Herd Immunity Threshold for Covid-19: Infectious disease\n experts estimate that immunity to Covid-19 in 70-85% of a population\n would be sufficient for reaching herd immunity.\n \n \n Percentage of population receiving the vaccine daily: \n Average Doses Administered Daily as a Percentage of Population =\n (7-Day Moving Average of Daily Doses Delivered / Population) * 100\n \n \n Percentage of Population Vaccinated: \n Percent Vaccinated = (Total Vaccine Doses Administered * 0.5) /\n Population\n \n \n Days to Herd Immunity: \n Days = [(Population * 0.7) - (Vaccine Doses Delivered * 0.5)] /\n (Average Daily Vaccine Doses Given * 0.5)\n \n
\n
\n

Assumptions

\n \n Herd Immunity for Covid-19: We assume it is possible for a\n population to reach a state of herd immunnity for Covid-19 through\n vaccinations.\n \n \n Herd Immunity Threshold for Covid-19: We assume immunity from\n vaccination in a given 70% of the population is the minimum possible\n to reach herd immunity. We provide the ability to toggle this\n threshold up to 95% to account for variations in R values for\n variants of Covid-19 and varying estimates by infectious disease\n experts.{\" \"}\n \n Learn more\n \n \n \n Vaccine Dosage: We assume each vaccine is a two-dose vaccine.\n \n \n Vaccination Dosage numbers published per country: We assume\n each vaccine dose administered equals one person is immune. We then\n account for the fact that each person requires two doses of the\n vaccine for immunity by multiplying the total doses delivered to\n date by 0.5.\n \n \n Immunity from Covid-19 Infection: We do not include confirmed\n Covid-19 cases in our projection of time to herd immunity. While new\n studies (as of January, 2020) suggest infection with COVID-19 leads\n to immunity, the vaccine data does not state whether the person\n vaccinated was previsouly infected. Additionally, the CDC recommends\n vaccinations even for those who were confirmed to have been infected\n with Covid-19 in the past. For these reasons, we've decided to focus\n on the time for a population to reach herd immunity through\n vaccination.\n \n
\n
\n

Open Datasets

\n \n Vaccine Data per Country: \n \n https://github.com/owid/covid-19-data/tree/master/public/data/vaccinations\n \n \n
\n
\n

Project Code

\n \n Github repo for timetoherd.com: \n \n https://github.com/pgriggs/timetoherd.com\n \n \n
\n
\n \n );\n};\n","import React from \"react\";\nimport \"./supporters.css\";\n\nexport const Supporters = () => {\n return (\n <>\n

Project Support

\n
\n
\n

Built by:

\n \n \n @petergriggs\n \n \n
\n
\n

Supported by:

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

Open data from:

\n \n \n \n \n \n \n \n View data used by TimeToHerd\n \n \n
\n
\n

Github contributors:

\n \n \n @dbunks\n \n \n @ChrisBit\n \n \n @ciruz\n \n \n
\n
\n \n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport CountUp from \"react-countup\";\nimport \"./country-section.css\";\nimport { CountriesMasterList } from \"../../shared/data-factory\";\nimport {\n handleCountryUpdate,\n calcDaysToHerd,\n parseVaccineData,\n} from \"./herdHelpers\";\n\nexport const TimeToHerdCountAsNum = ({\n selectedCountry,\n allVaccineData,\n requestedData,\n requestedDataAsPercent,\n herdImmunityThresholdPercentage,\n}) => {\n const [\n herdImmunityVaccinationThreshold,\n setHerdImmunityVaccinationThreshold,\n ] = useState(); // multiply by 2 to account for two-shot vaccinations\n const [dailyVaccinationRate, setDailyVaccinationRate] = useState();\n const [daysToHerd, setDaysToHerd] = useState();\n const [vaccineDosesDelivered, setVaccineDosesDelivered] = useState();\n const [requestedDataValue, setRequestedDataValue] = useState();\n const [\n percentPopulationVaccinated,\n setPercentPopulationVaccinated,\n ] = useState();\n const [population, setPopulation] = useState();\n const [\n dailyVaccinationRateAsPercentPopulation,\n setDailyVaccinationRateAsPercentPopulation,\n ] = useState();\n // const [vaccinationsListByDate, setVaccinationsListByDate] = useState();\n\n useEffect(() => {\n handleCountryUpdate({\n CountriesMasterList,\n countryCode: selectedCountry.iso_code,\n setPopulation,\n setHerdImmunityVaccinationThreshold,\n herdImmunityThresholdPercentage,\n });\n }, [\n selectedCountry.iso_code,\n setHerdImmunityVaccinationThreshold,\n setPopulation,\n selectedCountry,\n herdImmunityThresholdPercentage,\n ]);\n\n useEffect(() => {\n // Only parse after vaccination data has been retrieved\n if (allVaccineData.length > 0) {\n parseVaccineData({\n allVaccineData,\n countryCode: selectedCountry.iso_code,\n population,\n setDailyVaccinationRate,\n setDailyVaccinationRateAsPercentPopulation,\n setVaccineDosesDelivered,\n setPercentPopulationVaccinated,\n });\n }\n }, [allVaccineData, selectedCountry.iso_code, population, selectedCountry]);\n\n useEffect(() => {\n calcDaysToHerd({\n herdImmunityVaccinationThreshold,\n vaccineDosesDelivered,\n dailyVaccinationRate,\n setDaysToHerd,\n });\n }, [\n dailyVaccinationRate,\n herdImmunityVaccinationThreshold,\n vaccineDosesDelivered,\n selectedCountry,\n ]);\n\n useEffect(() => {\n switch (requestedData) {\n case \"timetoherd\":\n setRequestedDataValue(daysToHerd);\n break;\n case \"vaccineDosesDelivered\":\n setRequestedDataValue(vaccineDosesDelivered);\n break;\n case \"dailyVaccinationRate\":\n setRequestedDataValue(dailyVaccinationRate);\n break;\n case \"herdImmunityVaccinationThreshold\":\n setRequestedDataValue(herdImmunityVaccinationThreshold);\n break;\n case \"percentPopulationVaccinated\":\n setRequestedDataValue(percentPopulationVaccinated * 100);\n break;\n case \"dailyVaccinationRateAsPercentPopulation\":\n setRequestedDataValue(dailyVaccinationRateAsPercentPopulation);\n break;\n default:\n break;\n }\n }, [\n setRequestedDataValue,\n requestedData,\n vaccineDosesDelivered,\n daysToHerd,\n dailyVaccinationRate,\n herdImmunityVaccinationThreshold,\n dailyVaccinationRateAsPercentPopulation,\n percentPopulationVaccinated,\n selectedCountry,\n ]);\n\n let returnData;\n\n if (requestedDataValue) {\n returnData = requestedDataAsPercent\n ? requestedDataValue.toFixed(2)\n : requestedDataValue;\n }\n\n return returnData;\n};\n\nexport const TimeToHerdCountAsHTML = ({\n selectedCountry,\n allVaccineData,\n requestedData,\n requestedDataAsPercent,\n herdImmunityThresholdPercentage,\n}) => {\n const [requestedDataValue, setRequestedDataValue] = useState();\n\n const getData = TimeToHerdCountAsNum({\n selectedCountry: selectedCountry,\n allVaccineData: allVaccineData,\n requestedData: requestedData,\n requestedDataAsPercent: requestedDataAsPercent,\n herdImmunityThresholdPercentage: herdImmunityThresholdPercentage,\n });\n\n useEffect(() => {\n setRequestedDataValue(getData);\n }, [getData]);\n\n return (\n <>\n {requestedDataAsPercent ? (\n \n ) : (\n \n )}\n \n );\n};\n","export const handleCountryUpdate = ({\n CountriesMasterList,\n countryCode,\n setPopulation,\n setHerdImmunityVaccinationThreshold,\n herdImmunityThresholdPercentage,\n}) => {\n const thisCountry = CountriesMasterList.find((country) => {\n return country.iso_code === countryCode;\n });\n // setHerdImmunityPopulationThreshold(thisCountry.population * 0.7);\n setPopulation(thisCountry.population);\n setHerdImmunityVaccinationThreshold(\n thisCountry.population * 2 * (herdImmunityThresholdPercentage / 100)\n );\n};\n\nexport const calcDaysToHerd = ({\n herdImmunityVaccinationThreshold,\n vaccineDosesDelivered,\n dailyVaccinationRate,\n setDaysToHerd,\n}) => {\n const daysRounded = Math.round(\n (herdImmunityVaccinationThreshold - vaccineDosesDelivered) /\n dailyVaccinationRate\n );\n setDaysToHerd(daysRounded);\n};\n\nexport const parseVaccineData = ({\n allVaccineData,\n countryCode,\n population,\n setDailyVaccinationRate,\n setDailyVaccinationRateAsPercentPopulation,\n setVaccineDosesDelivered,\n setPercentPopulationVaccinated,\n}) => {\n // Source data heading locations dynamically as the source add columns from time to time\n const dataHeadings = allVaccineData[0];\n const isoCodeIdx = dataHeadings.findIndex(\n (heading) => heading === \"iso_code\"\n );\n const dailyVaccinationsIdx = dataHeadings.findIndex(\n (heading) => heading === \"daily_vaccinations\"\n );\n const totalVaccinationsIdx = dataHeadings.findIndex(\n (heading) => heading === \"total_vaccinations\"\n );\n\n // Get most recent data from selected country\n const countryData = allVaccineData.filter(\n (data) => data[isoCodeIdx] === countryCode\n );\n\n const mostRecentCountryData = countryData[countryData.length - 1];\n\n // Get most recent fields for calculations\n // Set values for display\n let dailyRate = mostRecentCountryData[dailyVaccinationsIdx] ?? 0;\n\n if (countryData.length === 1) {\n dailyRate = mostRecentCountryData[totalVaccinationsIdx];\n }\n\n const totalVaccinations = mostRecentCountryData[totalVaccinationsIdx];\n\n // Set values for display\n setDailyVaccinationRate(dailyRate);\n setDailyVaccinationRateAsPercentPopulation((dailyRate / population) * 100);\n setVaccineDosesDelivered(totalVaccinations);\n setPercentPopulationVaccinated(totalVaccinations / (population * 2));\n};\n","import React, { useState } from \"react\";\nimport { Menu, Dropdown } from \"antd\";\nimport { DownOutlined } from \"@ant-design/icons\";\nimport \"antd/dist/antd.css\";\nimport \"./country-dropdown.css\";\nimport { CountriesMasterList } from \"../../shared/data-factory\";\n\nexport const CountryDropdown = ({ selectedCountry, setSelectedCountry }) => {\n const [menuIsVisble, setMenuIsVisible] = useState(false);\n\n console.log(selectedCountry);\n\n const selectCountryHandler = (country) => {\n setSelectedCountry({\n name: country.location,\n iso_code: country.iso_code,\n });\n setMenuIsVisible(false);\n };\n\n const dropdownVisibleChangeHandler = (visible) => {\n setMenuIsVisible(visible);\n };\n\n const menu = (\n \n {CountriesMasterList.map((country) => (\n selectCountryHandler(country)}\n >\n {country.location}\n \n ))}\n \n );\n return (\n dropdownVisibleChangeHandler(visible)}\n arrow\n >\n e.preventDefault()}\n >\n {selectedCountry.name || selectedCountry.location}\n \n \n \n );\n};\n","import React from \"react\";\nimport {\n ComposableMap,\n Geographies,\n Geography,\n Marker,\n ZoomableGroup,\n} from \"react-simple-maps\";\nimport { toast } from \"react-toastify\";\nimport { CountriesMasterList } from \"../../shared/data-factory\";\n\nconst geoUrl =\n \"https://raw.githubusercontent.com/zcreativelabs/react-simple-maps/master/topojson-maps/world-110m.json\";\n\nexport const MapChart = React.memo(\n ({ setTooltipContent, setSelectedCountry, selectedCountry }) => {\n const handleCountryClick = (NAME, ISO_A3) => {\n if (\n CountriesMasterList.find((country) => {\n return country.iso_code === ISO_A3;\n })\n ) {\n setSelectedCountry({\n name: NAME,\n iso_code: ISO_A3,\n });\n } else {\n toast(\n `Looks like there isn't public vaccine data available for ${NAME} yet!`\n );\n }\n };\n return (\n \n \n \n {({ geographies }) =>\n geographies.map((geo) => (\n {\n const { NAME, ISO_A3 } = geo.properties;\n handleCountryClick(NAME, ISO_A3);\n }}\n onMouseEnter={() => {\n const { NAME } = geo.properties;\n setTooltipContent(`${NAME}`);\n }}\n onMouseLeave={() => {\n setTooltipContent(\"\");\n }}\n style={\n selectedCountry.iso_code === geo.properties.ISO_A3\n ? {\n default: {\n fill: \"#2E9BFF\",\n outline: \"none\",\n },\n hover: {\n fill: \"#2E9BFF\",\n outline: \"none\",\n },\n pressed: {\n fill: \"#2E9BFF\",\n outline: \"none\",\n },\n }\n : {\n default: {\n fill: \"#D6D6DA\",\n outline: \"none\",\n },\n hover: {\n fill: \"#D4EBFF\",\n outline: \"none\",\n },\n pressed: {\n fill: \"#2E9BFF\",\n outline: \"none\",\n },\n }\n }\n />\n ))\n }\n \n {CountriesMasterList.map(({ location, coordinates }) => (\n \n \n \n \n \n \n ))}\n \n \n );\n }\n);\n","import React from \"react\";\nimport { Table } from \"antd\";\nimport { TimeToHerdCountAsNum } from \"../time-to-herd/time-to-herd\";\nimport { CountriesMasterList } from \"../../shared/data-factory\";\nimport \"./countries-table.css\";\n\nexport const CountriesTable = React.memo(\n ({ allVaccineData, herdImmunityThresholdPercentage }) => {\n const tableColumns = [\n {\n title: \"Country\",\n dataIndex: \"location\",\n sortDirections: [\"ascend\", \"descend\"],\n sorter: (a, b) => a.location.length - b.location.length,\n },\n {\n title:\n \"Days until population is \" +\n herdImmunityThresholdPercentage +\n \"% vaccinated\",\n dataIndex: \"timetoherd\",\n defaultSortOrder: \"ascend\",\n sortDirections: [\"ascend\", \"descend\"],\n sorter: (a, b) => a.timetoherd - b.timetoherd,\n },\n {\n title: \"Percent of population vaccinated\",\n dataIndex: \"percentVaccinated\",\n sortDirections: [\"ascend\", \"descend\"],\n sorter: (a, b) => a.percentVaccinated - b.percentVaccinated,\n },\n {\n title: \"Percent of population vaccinated daily\",\n dataIndex: \"percentVaccinatedDaily\",\n sortDirections: [\"ascend\", \"descend\"],\n sorter: (a, b) => a.percentVaccinatedDaily - b.percentVaccinatedDaily,\n },\n ];\n\n const tableData = [];\n CountriesMasterList.map((country, index) => {\n const selectedCountry = {\n name: country.location,\n iso_code: country.iso_code,\n };\n\n const countryObjectForTableData = {\n key: index,\n location: country.location,\n timetoherd: TimeToHerdCountAsNum({\n selectedCountry: selectedCountry,\n allVaccineData: allVaccineData,\n requestedData: \"timetoherd\",\n requestedDataAsPercent: false,\n herdImmunityThresholdPercentage: herdImmunityThresholdPercentage,\n }),\n percentVaccinated: TimeToHerdCountAsNum({\n selectedCountry: selectedCountry,\n allVaccineData: allVaccineData,\n requestedData: \"percentPopulationVaccinated\",\n requestedDataAsPercent: true,\n herdImmunityThresholdPercentage: herdImmunityThresholdPercentage,\n }),\n percentVaccinatedDaily: TimeToHerdCountAsNum({\n selectedCountry: selectedCountry,\n allVaccineData: allVaccineData,\n requestedData: \"dailyVaccinationRateAsPercentPopulation\",\n requestedDataAsPercent: true,\n herdImmunityThresholdPercentage: herdImmunityThresholdPercentage,\n }),\n };\n\n tableData.push(countryObjectForTableData);\n });\n\n return (\n
\n

\n COVID-19 Vaccinations per Country\n

\n \n
\n );\n }\n);\n","import React from \"react\";\n\nimport \"./media-features.css\";\n\nexport const MediaFeatures = () => {\n return (\n
\n

As featured on

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n );\n};\n","import React, { useState } from \"react\";\nimport ReactTooltip from \"react-tooltip\";\nimport {\n PieChartTwoTone,\n HeartTwoTone,\n CheckCircleTwoTone,\n ExclamationCircleOutlined,\n} from \"@ant-design/icons\";\nimport NumericInput from \"react-numeric-input\";\nimport { TimeToHerdCountAsHTML } from \"../time-to-herd/time-to-herd\";\nimport { CountryDropdown } from \"../country-dropdown/country-dropdown\";\nimport { MapChart } from \"../map-chart/map-chart\";\nimport { CountriesTable } from \"../countries-table/countries-table\";\nimport \"antd/dist/antd.css\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { MediaFeatures } from \"../media-features/media-features\";\n\nexport const CountryPage = React.memo(\n ({\n selectedCountry,\n setSelectedCountry,\n allVaccineData,\n herdImmunityThresholdPercentage,\n setHerdImmunityThresholdPercentage,\n }) => {\n const [content, setContent] = useState(\"\");\n\n return (\n <>\n
\n
\n
\n \n \n \n \n  days{\" \"}\n \n \n
\n

\n until {herdImmunityThresholdPercentage}% of the population is\n vaccinated against COVID-19 in{\" \"}\n \n \n \n

\n \n *at current average daily vaccination rates\n \n

\n \n \n {\" \"}\n % of population vaccinated\n \n \n \n \n {\" \"}\n % of population vaccinated daily\n \n \n \n \n \n {\n if (\n Number.isNaN(valueAsNumber) ||\n valueAsNumber > 95 ||\n valueAsNumber < 50\n ) {\n setHerdImmunityThresholdPercentage(70);\n } else {\n setHerdImmunityThresholdPercentage(valueAsNumber);\n }\n }}\n format={(valueAsNumber) => `${valueAsNumber}%`}\n />{\" \"}\n \n   to reach herd immunity\n \n \n

\n
\n \n
\n \n \n Made by  \n \n @PeterGriggs\n \n \n \n \n Supported by  \n \n DeepAI\n \n \n \n {content}\n
\n \n \n
\n \n );\n }\n);\n","import React, { useState } from \"react\";\nimport Modal from \"react-modal\";\nimport {\n EmailShareButton,\n FacebookShareButton,\n FacebookMessengerShareButton,\n TwitterShareButton,\n LinkedinShareButton,\n WhatsappShareButton,\n EmailIcon,\n FacebookIcon,\n FacebookMessengerIcon,\n TwitterIcon,\n LinkedinIcon,\n WhatsappIcon,\n} from \"react-share\";\nimport \"./social-sharing.css\";\n\nexport const SocialSharingButton = () => {\n const [modalIsOpen, setIsOpen] = useState(false);\n const openModal = () => {\n setIsOpen(true);\n };\n\n const afterOpenModal = () => {\n // references are now sync'd and can be accessed.\n };\n\n const closeModal = () => {\n setIsOpen(false);\n };\n\n const currentUrl = window.location;\n\n return (\n
\n \n \n

Share Time to Herd

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n );\n};\n","import React from \"react\";\nimport { BrowserRouter as Link } from \"react-router-dom\";\n\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\nimport { SocialSharingButton } from \"../social-sharing/social-sharing-button\";\n\nexport const HeaderBar = ({ showBackButton }) => {\n return (\n
\n {showBackButton && (\n \n \n \n )}\n \n
\n );\n};\n","import React, { useState, useCallback, useEffect } from \"react\";\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n Link,\n useHistory,\n} from \"react-router-dom\";\nimport \"./App.css\";\nimport { CountriesMasterList } from \"./shared/data-factory\";\nimport { readRemoteFile } from \"react-papaparse\";\nimport { ToastContainer, Slide } from \"react-toastify\";\nimport { Methodology } from \"./components/methodology/methodology\";\nimport { Supporters } from \"./components/supporters/supporters\";\nimport \"antd/dist/antd.css\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { CountryPage } from \"./components/country-page/country-page\";\nimport { HeaderBar } from \"./components/header-bar/header-bar\";\n\ndocument.body.addEventListener(\n \"wheel\",\n (e) => {\n if (e.path && e.path.includes(document.getElementById(\"the-country-map\"))) {\n e.preventDefault();\n }\n },\n { passive: false }\n);\n\nexport default function App() {\n const history = useHistory();\n\n const countryByUrlParam = window.location.pathname.replace(\"/country/\", \"\");\n\n let initialCountry = CountriesMasterList.find((country) => {\n return country.iso_code === countryByUrlParam;\n });\n\n initialCountry = initialCountry || {\n name: \"United States\",\n iso_code: \"USA\",\n };\n\n const [allVaccineData, setAllVaccineData] = useState([]);\n const [selectedCountry, setSelectedCountry] = useState(initialCountry);\n\n const setSelectedCountryWithUrlChange = (country) => {\n setSelectedCountry(country);\n if (country.iso_code === \"USA\" && history) {\n history.push(\"/\");\n }\n if (country.iso_code !== \"USA\" && history) {\n history.push(\"/country/\" + country.iso_code);\n }\n };\n\n const [\n herdImmunityThresholdPercentage,\n setHerdImmunityThresholdPercentage,\n ] = useState(70);\n\n const get_all_vaccine_data = useCallback(() => {\n readRemoteFile(\n \"https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/vaccinations/vaccinations.csv\",\n {\n complete: (results) => {\n return setAllVaccineData(results.data);\n },\n }\n );\n }, [setAllVaccineData]);\n\n useEffect(() => {\n get_all_vaccine_data();\n }, [get_all_vaccine_data]);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}