{"version":3,"sources":["img/world-bank-group.png","img/atlas-logo.png","img/world-bank-group-light.png","img/BlackMarble_2016_01deg.jpg","img/sdg07-illo-crop.png","img/sdg7_energy_intensity.pdf","img/sdg7_energy_intensity.png","img/sdg7_renew_share_TFEC.png","img/sdg7_renew_share_TFEC_old.png","components/core-template/HelmetMeta.js","components/core-template/Header.js","components/core-template/HeadlineCard.js","components/core-template/Footnote.js","components/core-template/Byline.js","components/core-template/SocialBtns.js","components/core-template/Footer.js","components/add-on-template/NightGlobe.js","components/add-on-template/Scroller.js","components/charts/Zipper.js","components/add-on-template/ZipperScroller.js","components/charts/BarChart.js","components/charts/StackedBars.js","components/charts/Line.js","components/charts/ElectricityKey.js","components/core-template/Supplementary.js","components/Elements.js","ai2html-output/ai2html-chart.js","App.js","index.js","img sync /^/.//.*$"],"names":["module","exports","HelmetMeta","props","url","window","location","href","Helmet","goal","subhead","headline","name","content","keywords","rel","promo","property","Header","slug","split","slice","shift","right","width","className","chapters","map","d","key","dangerouslySetInnerHTML","__html","src","wbLogo","alt","atlasLogo","HeadlineCard","img","require","illo","Footnote","footnotes","notes","text","ref","id","value","aria-label","Byline","byline","SocialBtns","twitterHref","facebookHref","height","in","stdDeviation","colorInterpolationFilters","result","mode","values","filter","cx","cy","r","fill","transform","Footer","customStyles","control","styles","backgroundColor","color","input","noOptionsMessage","singleValue","menu","option","state","isSelected","NightGlobe","select","globeEl","useRef","useState","when","setWhen","userLoc","useGeolocation","defaultCityData","cities","defaultMatchData","selectedCity","setSelectedCity","matchedCity","setMatchedCity","startLat","latitude","startLng","longitude","endLat","endLng","arcData","setArcData","lightcircle1","lightcircle2","options","city","label","country","selectedOption","setClosestCity","coords","ind","minDist","i","clickable","φ1","lat","Math","PI","φ2","Δφ","Δλ","lng","a","sin","cos","dist","atan2","sqrt","match","getWidth","innerWidth","setWidth","getHeight","innerHeight","setHeight","formatPopulation","pop","fewer","language","approximately","format","round","people","million","useEffect","current","controls","autoRotate","autoRotateSpeed","enableZoom","pointOfView","altitude","addEventListener","globeImageUrl","arcsData","arcDashLength","arcDashGap","arcDashAnimateTime","onGlobeClick","event","style","opacity","onChange","e","selectcity","matchcity","placeholder","isSearchable","isClearable","onClick","icon","faCrosshairs","process","zone_population","access2018","radius","live","inCountry","access","Scroller","scrollerRef","useCallback","node","getBoundingClientRect","bottom","document","body","classList","add","setSelect","scenes","title","source","top","offset","onStepEnter","element","data","remove","cursor","onStepExit","direction","scene","index","margin","prev","Zipper","annotations","legendItems","urbanLabel","ruralLabel","annotationsData","annot","iso3c","yAxisRef","hoverRef","selected","setSelected","chartWidth","chartHeight","xScale","scaleBand","domain","range","yScale","scaleLinear","yAxis","axisLeft","tickFormat","tickPadding","tickSize","ticks","lineStyles","useSprings","length","config","duration","easing","easeSinInOut","delay","x1","x2","y1","rural","average","y2","urban","circle1Styles","bandwidth","circle2Styles","call","replace","toLowerCase","includes","line","circle","x","y","min","textAnchor","countryNames","cntr","ctr","onMouseLeave","onMouseMove","pointer","eachBand","step","max","createMarkup","useResizeObserver","onResize","zipState","setZipState","zipperAnnotations","setZipperAnnotations","note","sourceMarkup","subtitle","electrozipper","zipstate","BarChart","xAxisRef","countries","paddingOuter","paddingInner","xAxis","axisTop","overflow","deficit","dy","fontSize","StackedBars","stackedBarData","xDomain","Set","stackedData","stack","keys","order","stackOrderNone","stackOffsetNone","stacking","axisBottom","colorData","category","series","el","stroke","strokeWidth","Line","electricityLabel","fuelLabel","accesglobal","nestedData","nest","indicatorID","entries","labelData","date","parseTime","timeParse","scaleTime","colorScale","EG_EGY_CLEAN","tickValues","axisRight","lineGenerator","curve","curveCardinal","tension","ElectricityKey","ongrid","offgrid","noelectricity","to","scale","rot","trans","s","Supplementary","cards","gone","setIndex","from","set","bind","useDrag","args","down","mx","movement","xDir","distance","velocity","dir","isGone","has","undefined","friction","size","setTimeout","clear","div","interpolate","caption","draggable","Elements","ai2htmlMap","type","factoid","filename","ZipperScroller","electrodeficit","cleancookingdeficit","electrohealth","electroschools","swipeInstrux","charts","reverse","App","els","datum","ReactDOM","render","getElementById","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","Object","resolve"],"mappings":"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","file":"static/js/main.8aa0034e.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/atlas-logo.826879f1.png\";","module.exports = __webpack_public_path__ + \"static/media/world-bank-group-light.b88da1c7.png\";","module.exports = __webpack_public_path__ + \"static/media/BlackMarble_2016_01deg.9505f4ea.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sdg07-illo-crop.22a69ab9.png\";","module.exports = __webpack_public_path__ + \"static/media/sdg7_energy_intensity.aad98fe8.pdf\";","module.exports = __webpack_public_path__ + \"static/media/sdg7_energy_intensity.e19d825d.png\";","module.exports = __webpack_public_path__ + \"static/media/sdg7_renew_share_TFEC.efd6814f.png\";","module.exports = __webpack_public_path__ + \"static/media/sdg7_renew_share_TFEC_old.e35cdb89.png\";","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\n\nconst HelmetMeta = props => {\n\n const url = window.location.href;\n return (\n \n {`${props.goal} ${props.subhead}: ${props.headline}`}\n \n \n \n \n \n\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 HelmetMeta;","import React from 'react';\nimport wbLogo from '../../img/world-bank-group.png';\nimport atlasLogo from '../../img/atlas-logo.png';\nimport { slide as Menu } from 'react-burger-menu';\nimport { chapters } from '../../data/hamburger.json';\n\n\nconst Header = () => {\n \n const slug = window.location.href.split(\"/\").slice(-2).shift()\n \n return (\n <>\n \n Home\n {\n chapters.map(d => {\n return (\n ${d.goal}. ${d.subhead}` : `${d.goal}. ${d.subhead}` }}\n >\n )\n })\n }\n Targets\n \n
\n \"World\n \"SDG\n
\n \n );\n}\n\nexport default Header;\n","import React from 'react';\n\nconst HeadlineCard = props => {\n\n const img = require(`../../img/${props.illo}`);\n\n return (\n
\n\n
\n \"top\n
\n
\n
\n
\n
{props.goal}
\n
\n
\n

{props.subhead}

\n

{props.headline}

\n
\n
\n
\n
\n );\n}\n\nexport default HeadlineCard;\n","import React from 'react';\n\nconst Footnote = props => {\n const createMarkup = text => {\n return { __html: text };\n };\n\n const footnotes = props.notes.map(d => {\n const ref = `#${d.id}-ref`;\n return (\n
  • \n );\n });\n\n return (\n
    \n
    \n

    Notes

    \n
      {footnotes}
    \n
    \n );\n}\n\nexport default Footnote;\n","import React from 'react';\n\nconst Byline = props => {\n\n return (\n
    \n

    {props.byline}

    \n
    \n );\n}\n\nexport default Byline;\n","import React from 'react';\n\nconst SocialBtns = props => {\n const url = window.location.href;\n const twitterHref = `http://twitter.com/share?text=SDG Atlas 2020 Goal ${props.goal}: ${props.headline}&url=${url}&hashtags=GlobalGoals,sdg${props.goal}`;\n const facebookHref = `https://www.facebook.com/sharer/sharer.php?u=${url}`;\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n );\n}\n\nexport default SocialBtns;\n","import React from 'react';\nimport wbLogo from '../../img/world-bank-group-light.png';\nimport SocialBtns from './SocialBtns';\n\n\nconst Footer = props => {\n return (\n <>\n \n \n \n );\n}\n\nexport default Footer;","import React, { useEffect, useRef, useState } from \"react\";\nimport Globe from \"react-globe.gl\";\nimport Select from \"react-select\";\nimport { cities } from \"./../../data/data.json\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCrosshairs } from \"@fortawesome/free-solid-svg-icons\";\nimport { format } from \"d3-format\";\nimport useGeolocation from \"@rooks/use-geolocation\";\n\nconst img = require(\"./../../img/BlackMarble_2016_01deg.jpg\");\n\nconst customStyles = {\n control: (styles) => ({\n ...styles,\n backgroundColor: \"#252443\",\n color: \"#FCEAC0\",\n }),\n input: (styles) => ({\n ...styles,\n color: \"#FCEAC0\",\n }),\n noOptionsMessage: (styles) => ({\n ...styles,\n backgroundColor: \"#252443\",\n color: \"#FCEAC0\",\n }),\n singleValue: (styles) => ({\n ...styles,\n color: \"#FCEAC0\",\n }),\n menu: (styles) => ({\n ...styles,\n backgroundColor: \"#252443\",\n }),\n option: (styles, state) => {\n return {\n ...styles,\n backgroundColor: state.isSelected ? \"#FCEAC0\" : \"#252443\",\n color: state.isSelected ? \"#252443\" : \"#FCEAC0\",\n };\n },\n};\n\nconst NightGlobe = ({ select, props }) => {\n const globeEl = useRef();\n\n const [when, setWhen] = useState(false);\n const userLoc = useGeolocation({ when });\n\n const defaultCityData = cities.filter((d) => d.id === 7264)[0];\n const defaultMatchData = cities.filter((d) => d.id === 86)[0];\n const [selectedCity, setSelectedCity] = useState(defaultCityData);\n const [matchedCity, setMatchedCity] = useState(defaultMatchData);\n\n const [arcData, setArcData] = useState([\n {\n startLat: defaultCityData.latitude,\n startLng: defaultCityData.longitude,\n endLat: defaultMatchData.latitude,\n endLng: defaultMatchData.longitude,\n },\n ]);\n let lightcircle1 = `/lightcircles/${selectedCity.id}.png`;\n let lightcircle2 = `/lightcircles/${matchedCity.id}.png`;\n\n const options = cities.map((city) => ({\n value: city.id,\n label: `${city.name} - ${city.country}`,\n }));\n const selectedOption = options.filter((d) => d.value === selectedCity.id)[0];\n\n const handleChange = (e) => {\n if (e) {\n const selectcity = cities.filter((city) => city.id === e.value)[0];\n const matchcity = cities.filter(\n (city) => city.id === selectcity.match\n )[0];\n setSelectedCity(selectcity);\n setMatchedCity(matchcity);\n setArcData([\n {\n startLat: selectcity.latitude,\n startLng: selectcity.longitude,\n endLat: matchcity.latitude,\n endLng: matchcity.longitude,\n },\n ]);\n }\n };\n\n function setClosestCity(coords) {\n let ind = 0;\n let minDist = 10000000000;\n const R = 6371e3;\n cities.map((city, i) => {\n if (city.clickable === 1) {\n //Haversine formula https://www.movable-type.co.uk/scripts/latlong.html\n const φ1 = (coords.lat * Math.PI) / 180; // φ, λ in radians\n const φ2 = (city.latitude * Math.PI) / 180;\n const Δφ = ((city.latitude - coords.lat) * Math.PI) / 180;\n const Δλ = ((coords.lng - city.longitude) * Math.PI) / 180;\n\n const a =\n Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +\n Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\n const dist = R * c;\n\n if (dist < minDist) {\n minDist = dist;\n ind = i;\n }\n }\n });\n setSelectedCity(cities[ind]);\n setMatchedCity(cities.filter((d) => d.id === cities[ind].match)[0]);\n setArcData([\n {\n startLat: cities[ind].latitude,\n startLng: cities[ind].longitude,\n endLat: cities.filter((d) => d.id === cities[ind].match)[0].latitude,\n endLng: cities.filter((d) => d.id === cities[ind].match)[0].longitude,\n },\n ]);\n }\n\n function onGlobeClick(coords, event) {\n setClosestCity(coords);\n }\n\n const getWidth = () => window.innerWidth;\n let [width, setWidth] = useState(getWidth());\n const getHeight = () => window.innerHeight;\n let [height, setHeight] = useState(getHeight());\n\n useEffect(() => {\n // Auto-rotate\n globeEl.current.controls().autoRotate = true;\n globeEl.current.controls().autoRotateSpeed = 0.2;\n globeEl.current.controls().enableZoom = false;\n // Rotate to selected city\n globeEl.current.pointOfView(\n {\n lat: selectedCity.latitude,\n lng: selectedCity.longitude,\n altitude: 2.5,\n },\n 2000\n );\n // User location\n if (userLoc && when) {\n const userCoords = { lng: userLoc.lng, lat: userLoc.lat };\n setClosestCity(userCoords);\n setWhen(false);\n }\n const resizeListener = () => {\n setWidth(getWidth());\n setHeight(getHeight());\n };\n // set resize listener\n window.addEventListener(\"resize\", resizeListener);\n }, [selectedCity, userLoc]);\n\n function locateUser() {\n setWhen(true);\n }\n\n function formatPopulation(pop) {\n if (pop < 100000) {\n return props.fewer;\n } else if (pop < 1000000) {\n if (props.language === \"ja\") {\n return `${props.approximately} ${format(\"\")(\n Math.round(pop / 10000) * 10000\n )} ${props.people}`;\n } else {\n return `${props.approximately} ${format(\",\")(\n Math.round(pop / 10000) * 10000\n )} ${props.people}`;\n }\n } else {\n if (props.language === \"ja\") {\n return `${props.approximately} ${format(\"\")(\n Math.round(pop / 100000) * 10\n )}万${props.people}`;\n } else {\n return `${props.approximately} ${Math.round(pop / 100000) / 10} ${\n props.million\n }`;\n }\n }\n }\n\n return (\n <>\n \n {select && (\n <>\n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n\n
    \n \n\n {props.language === \"ja\" ? (\n

    {`${\n selectedCity.country\n }, ${selectedCity.name}\n の半径150kmの図。この圏内には${formatPopulation(\n selectedCity.zone_population\n )}人が居住。この国では2018年、${\n selectedCity.access2018\n }%の人々が電力へのアクセスを確保。`}

    \n ) : (\n

    {`${props.radius} ${\n selectedCity.name\n }, ${selectedCity.country}. ${formatPopulation(\n selectedCity.zone_population\n )} ${props.live}.`}

    \n )}\n\n {window.innerWidth > 920 && props.language !== \"ja\" && (\n

    \n {selectedCity.access2018 !== \"\" && matchedCity.access2018 !== \"\"\n ? `${props.inCountry}, ${selectedCity.access2018}${props.access}.`\n : \"\"}{\" \"}\n

    \n )}\n
    \n
    \n \n

    \n {`${props.radius} ${matchedCity.name}, ${\n matchedCity.country\n }. ${formatPopulation(matchedCity.zone_population)} ${\n props.live\n }.`}{\" \"}\n

    \n {window.innerWidth > 920 && (\n

    \n {selectedCity.access2018 !== \"\" && matchedCity.access2018 !== \"\"\n ? `${props.inCountry}, ${matchedCity.access2018}${props.access}.`\n : \"\"}\n

    \n )}\n
    \n \n )}\n \n );\n};\n\nexport default NightGlobe;\n","import React, { useState, useCallback } from \"react\";\nimport { Scrollama, Step } from \"react-scrollama\";\nimport NightGlobe from \"./NightGlobe\";\n\nconst Scroller = ({ props }) => {\n //Switch to light theme when user lands below the scroller\n const scrollerRef = useCallback((node) => {\n if (node !== null) {\n if (node.getBoundingClientRect().bottom < 0) {\n document.body.classList.add(\"light\");\n }\n }\n }, []);\n\n const createMarkup = (text) => {\n return { __html: text };\n };\n\n const [select, setSelect] = useState(false);\n\n const { id, scenes, title, source } = props;\n\n const handleStepEnter = ({ element, data }) => {\n if (data.id === \"select-scene\") {\n setSelect(true);\n document.body.classList.remove(\"light\");\n document.body.style.cursor = \"pointer\";\n }\n };\n\n const handleStepExit = ({ element, data, direction }) => {\n if (data.id === \"select-scene\" && direction === \"down\") {\n document.body.classList.add(\"light\");\n document.body.style.cursor = \"auto\";\n }\n if (data.id === \"intro-scene\" && direction === \"up\") {\n setSelect(false);\n document.body.style.cursor = \"auto\";\n }\n };\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {scenes.map((scene, i) => {\n return (\n \n
    \n
    \n

    \n
    \n
    \n
    \n );\n })}\n \n
    \n
    \n );\n};\n\nexport default Scroller;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSprings, animated } from \"react-spring\";\nimport { select, pointer } from \"d3-selection\";\nimport { scaleBand, scaleLinear } from \"d3-scale\";\nimport { axisLeft } from \"d3-axis\";\nimport { easeSinInOut } from \"d3-ease\";\nimport transition from \"d3-transition\";\nimport { countryNames } from \"../../data/data.json\";\n\nconst margin = {\n top: 20,\n right: 30,\n bottom: 25,\n left: 45,\n};\n\nlet prev = null;\nconst delay = 5;\n\nconst Zipper = ({\n id,\n width,\n height,\n data,\n state,\n annotations,\n urbanLabel,\n ruralLabel,\n}) => {\n const legendItems = [urbanLabel, ruralLabel];\n const annotationsData = annotations.map(\n (annot) => data.filter((d) => d.iso3c === annot)[0]\n );\n\n const yAxisRef = useRef(null);\n const hoverRef = useRef(null);\n const [selected, setSelected] = useState(null);\n\n const chartWidth = width - margin.left - margin.right;\n const chartHeight = height - margin.top - margin.bottom;\n const tickSize = 6;\n\n const formatPercent = (d) => `${d}%`;\n\n const xScale = scaleBand()\n .domain(data.map((d) => d.iso3c))\n .range([0, chartWidth]);\n\n const yScale = scaleLinear().domain([0, 100]).range([chartHeight, 0]);\n\n const yAxis = axisLeft(yScale)\n .tickFormat(formatPercent)\n // .tickSize(-chartWidth)\n .tickPadding(tickSize * 1.25)\n .ticks(5);\n\n const handleMouseMove = (event) => {\n const [x] = pointer(event, hoverRef.current);\n const eachBand = xScale.step();\n const index = Math.min(\n Math.max(Math.round(x / eachBand), 0),\n data.length - 1\n );\n if (index !== prev) {\n setSelected(index);\n prev = index;\n }\n };\n\n const handleMouseOut = (event) => {\n setSelected(null);\n prev = null;\n };\n\n const lineStyles = useSprings(\n data.length,\n data.map((d, i) => {\n return {\n config: {\n duration: 1000,\n easing: easeSinInOut,\n },\n delay: state === \"zipped\" ? 0 : i * delay,\n x1: xScale(d.iso3c),\n x2: xScale(d.iso3c),\n y1: state === \"unzipped\" ? yScale(d.rural) : yScale(d.average),\n y2: state === \"unzipped\" ? yScale(d.urban) : yScale(d.average),\n };\n })\n );\n\n const circle1Styles = useSprings(\n data.length,\n data.map((d, i) => {\n return {\n config: {\n duration: 1000,\n easing: easeSinInOut,\n },\n delay: state === \"zipped\" ? 0 : i * delay,\n cx: xScale(d.iso3c),\n cy: state === \"unzipped\" ? yScale(d.rural) : yScale(d.average),\n r: xScale.bandwidth() / 2.5,\n fill: state === \"unzipped\" ? \"#e8b075\" : \"#d3d3d3\",\n };\n })\n );\n\n const circle2Styles = useSprings(\n data.length,\n data.map((d, i) => {\n return {\n config: {\n duration: 1000,\n easing: easeSinInOut,\n },\n delay: state === \"zipped\" ? 0 : i * delay,\n cx: xScale(d.iso3c),\n cy: state === \"unzipped\" ? yScale(d.urban) : yScale(d.average),\n r: xScale.bandwidth() / 2.5,\n fill: state === \"unzipped\" ? \"#54b3c2\" : \"#d3d3d3\",\n };\n })\n );\n\n useEffect(() => {\n select(yAxisRef.current).call(yAxis);\n });\n\n return (\n \n \n \n \n \n \n {data.map((d, i) => {\n return (\n d.iso3c).includes(d.iso3c) &&\n selected === null\n ? \"highlighted\"\n : \"\"\n }`}\n key={d.iso3c}\n opacity={selected !== null ? (selected === i ? 1 : 0.5) : 1}\n >\n \n \n \n \n );\n })}\n \n {selected !== null && (\n \n chartWidth / 2 ? \"end\" : \"start\"\n }\n >\n {\n countryNames.filter(\n (cntr) => cntr.iso3c === data[selected].iso3c\n )[0].name\n }\n \n \n )}\n {annotationsData.map((d) => {\n return (\n selected === null && (\n \n chartWidth / 2 ? \"end\" : \"start\"\n }\n >\n {countryNames.filter((ctr) => ctr.iso3c === d.iso3c)[0].name}\n \n \n )\n );\n })}\n \n {state === \"unzipped\" &&\n legendItems.map((d, i) => {\n return (\n \n \n \n {d}\n \n \n );\n })}\n \n \n \n \n );\n};\n\nexport default Zipper;\n","import React, { useState } from \"react\";\nimport { Scrollama, Step } from \"react-scrollama\";\nimport ContainerDimensions from \"react-container-dimensions\";\nimport Zipper from \"./../charts/Zipper\";\nimport { electrozipper } from \"../../data/data.json\";\nimport useResizeObserver from \"use-resize-observer/polyfilled\";\n\nconst annotations = {\n \"electro-zipped\": [\"BDI\", \"COL\"],\n \"electro-unzipped\": [\"HTI\"],\n};\n\nconst Scroller = ({ props }) => {\n const createMarkup = (text) => {\n return { __html: text };\n };\n\n const { ref } = useResizeObserver({\n onResize: ({ width, height }) => {\n ref.current.style.top = `${(window.innerHeight - height) / 2}px`;\n },\n });\n\n const { id, scenes } = props;\n\n const [zipState, setZipState] = useState(\"zipped\");\n const [zipperAnnotations, setZipperAnnotations] = useState(\n annotations[\"electro-zipped\"]\n );\n\n const handleStepEnter = ({ element, data }) => {\n setZipState(data.zipstate);\n setZipperAnnotations(annotations[data.id]);\n };\n\n const handleStepExit = ({ element }) => {};\n\n const note = props.note ? (\n

    \n ) : (\n \"\"\n );\n const sourceMarkup = props.source ? (\n

    \n ) : (\n \"\"\n );\n\n return (\n
    \n
    \n
    \n

    {props.title}

    \n

    {props.subtitle}

    \n
    \n \n {({ width, height }) => {\n return (\n \n );\n }}\n \n
    \n {note}\n {sourceMarkup}\n
    \n
    \n
    \n \n {scenes.map((scene, i) => {\n return (\n \n
    \n
    \n

    \n
    \n
    \n
    \n );\n })}\n \n
    \n
    \n );\n};\n\nexport default Scroller;\n","import React, { useRef, useEffect } from \"react\";\nimport { scaleBand, scaleLinear } from \"d3-scale\";\nimport { axisTop } from \"d3-axis\";\nimport { select } from \"d3-selection\";\nimport { format } from \"d3-format\";\nimport { countryNames } from \"../../data/data.json\";\n\nconst margin = {\n top: 10,\n right: 30,\n bottom: 20,\n left: 202,\n};\n\nconst BarChart = ({ id, width, height, data }) => {\n const xAxisRef = useRef(null);\n\n const chartWidth = width - margin.left - margin.right;\n const chartHeight = height - margin.top - margin.bottom;\n\n const xScale = scaleLinear()\n .domain([0, id === \"electricity-deficit\" ? 90000000 : 700000000])\n .range([0, chartWidth]);\n\n const countries = data.map((d) => d.iso3c);\n const yScale = scaleBand()\n .domain(countries)\n .range([chartHeight, 0])\n .paddingOuter(0.5)\n .paddingInner(0.2);\n\n const xAxis = axisTop(xScale)\n .tickSize(-chartHeight)\n .ticks(4)\n .tickFormat(format(\".0s\"));\n\n useEffect(() => {\n select(xAxisRef.current).call(xAxis);\n });\n\n return (\n \n \n \n \n \n {data.map((d) => {\n return (\n <>\n \n \n {countryNames.filter((cntr) => cntr.iso3c === d.iso3c)[0].name}\n \n \n {Math.round(d.deficit / 1000000) + \"M\"}\n \n \n );\n })}\n \n \n );\n};\n\nexport default BarChart;\n","import React, { Fragment, useEffect, useRef } from \"react\";\nimport { select } from \"d3-selection\";\nimport { scaleLinear, scaleBand } from \"d3-scale\";\nimport { axisBottom, axisLeft } from \"d3-axis\";\nimport { stack, stackOrderNone, stackOffsetNone } from \"d3-shape\";\n\nconst margin = {\n top: 10,\n right: 25,\n bottom: 40,\n left: 40,\n};\n\nconst StackedBars = ({ width, height, data}) => {\n const xAxisRef = useRef(null);\n const yAxisRef = useRef(null);\n\n const chartWidth = width - margin.left - margin.right;\n const chartHeight = height - margin.top - margin.bottom;\n const tickSize = 6;\n\n let stackedBarData = data;\n\n const xDomain = [...new Set(stackedBarData.map(d => d.country))];\n const categories = [\"ongrid\", \"offgrid\", \"noelectricity\"]\n\n const xScale = scaleBand()\n .domain(xDomain)\n .range([0, chartWidth])\n .paddingInner(0.5)\n .paddingOuter(0.1);\n\nconst yScale = scaleLinear()\n .domain([0, 100])\n .range([chartHeight, 0]);\n\nconst stacking = stack()\n .keys(categories)\n .order(stackOrderNone)\n .offset(stackOffsetNone);\n\nconst stackedData = stacking(data)\n\n const xAxis = axisBottom(xScale)\n .tickSize(0)\n .tickPadding(tickSize * 1.25)\n .ticks(4);\n const yAxis = axisLeft(yScale)\n .tickSize(tickSize)\n .tickPadding(tickSize * 1.25)\n .ticks(4);\n\n const colorData = [\n {\n category: \"offgrid\",\n color: \"#E49F93\",\n },\n {\n category: \"ongrid\",\n color: \"#db3d3d\",\n },\n {\n category: \"noelectricity\",\n color: \"#A0A0A0\",\n }\n ]\n\n\n useEffect(() => {\n select(xAxisRef.current).call(xAxis);\n select(yAxisRef.current).call(yAxis);\n });\n\n return (\n \n
    \n \n \n \n {stackedData.map(series => {\n let category = series.key;\n return(\n series.map(d => {\n d.value = d[1] - d[0];\n return (\n <>\n el.category === category)[0].color}\n stroke={\"#ffffff\"}\n strokeWidth={1}\n >\n {d[1] - d[0]}\n \n )\n }))\n })\n }\n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nexport default StackedBars;","import React, { useEffect, useRef } from \"react\";\nimport { select } from \"d3-selection\";\nimport { scaleLinear, scaleTime } from \"d3-scale\";\nimport { axisRight, axisBottom } from \"d3-axis\";\nimport { timeParse } from \"d3-time-format\";\nimport { line, curveCardinal } from \"d3-shape\";\nimport { nest } from \"d3-collection\";\nimport { access, accesglobal } from \"../../data/data.json\";\n\nconst margin = {\n top: 15,\n right: 30,\n bottom: 25,\n left: 15,\n};\n\nconst Line = ({\n id,\n width,\n height,\n electricityLabel,\n fuelLabel,\n urbanLabel,\n ruralLabel,\n}) => {\n const data = id === \"electricity-clean\" ? access : accesglobal;\n\n const nestedData = nest()\n .key((d) => d.indicatorID)\n .entries(data);\n\n const labelData = data.filter((d) => d.date === \"2018\");\n\n const xAxisRef = useRef(null);\n const yAxisRef = useRef(null);\n\n const chartWidth = width - margin.left - margin.right;\n const chartHeight = height - margin.top - margin.bottom;\n\n const parseTime = timeParse(\"%Y\");\n\n const xScale = scaleTime()\n .domain([\n id === \"electricity-clean\" ? parseTime(1998) : parseTime(2000),\n parseTime(2018),\n ])\n .range([0, chartWidth]);\n\n const yScale = scaleLinear().domain([0, 100]).range([chartHeight, 0]);\n\n const colorScale = {\n \"EG.ELC.ACCS.ZS\": \"#d93c39\",\n EG_EGY_CLEAN: \"#6CB1C0\",\n urban: \"#54b3c2\",\n rural: \"#e8b075\",\n };\n\n const xAxis = axisBottom(xScale).tickValues([\n parseTime(\"1998\"),\n parseTime(\"2000\"),\n parseTime(\"2010\"),\n parseTime(\"2018\"),\n ]);\n\n const yAxis = axisRight(yScale).ticks(4);\n\n const lineGenerator = line()\n .x((d) => xScale(parseTime(d.date)))\n .y((d) => yScale(d.value))\n .curve(curveCardinal.tension(0.5));\n\n useEffect(() => {\n select(xAxisRef.current).call(xAxis);\n select(yAxisRef.current).call(yAxis);\n });\n\n return (\n \n \n \n \n \n \n \n {nestedData.map((d, i) => {\n return (\n <>\n \n \n \n \n \n \n \n );\n })}\n \n \n {labelData.map((d) => {\n return (\n <>\n \n\n {id === \"electricity-area\" && d.date == 2018 && (\n \n {d.value + \"%\"}\n \n )}\n {id === \"electricity-clean\" && d.date == 2018 && (\n \n {Math.round(d.value) + \"%\"}\n \n )}\n \n );\n })}\n \n {id === \"electricity-clean\" && (\n <>\n \n {electricityLabel}\n \n \n {fuelLabel}\n \n \n )}\n {id === \"electricity-area\" && (\n <>\n \n {urbanLabel}\n \n \n {ruralLabel}\n \n \n )}\n \n \n );\n};\n\nexport default Line;\n","import React from \"react\";\n\nconst ElectricityKey = ({ props }) => {\n const colorData = [\n {\n source: props.ongrid,\n color: \"#db3d3d\",\n },\n {\n source: props.offgrid,\n color: \"#E49F93\",\n },\n {\n source: props.noelectricity,\n color: \"#A0A0A0\",\n },\n ];\n return (\n
    \n {colorData.map((d) => {\n return (\n
    \n
    \n
    {d.source}
    \n
    \n );\n })}\n
    \n );\n};\n\nexport default ElectricityKey;\n","import React, { useState, Fragment } from \"react\";\nimport { useSprings, animated, to as interpolate } from \"react-spring\";\nimport { useDrag } from \"react-use-gesture\";\n// import supplementaryai2html from \"../../ai2html-output/supplementary\";\n// import long from \"../../ai2html-output/long\";\n\n const createMarkup = (text) => {\n return { __html: text };\n };\n\n// These two are just helpers, they curate spring data, values that are later being interpolated into css\nconst to = (i) => ({\n x: 0,\n y: i * 25,\n scale: 1,\n // rot: -10 + Math.random() * 20,\n rot: 0,\n delay: i * 100,\n});\nconst from = (i) => ({ x: 0, rot: 0, scale: 1, y: -1000 });\n// This is being used down there in the view, it interpolates rotation and scale into a css transform\nconst trans = (r, s) =>\n `perspective(1500px) rotateX(0deg) rotateY(${\n r / 10\n }deg) rotateZ(${r}deg) scale(${s})`;\n\nconst Supplementary = ({ cards }) => {\n const [gone] = useState(() => new Set()); // The set flags all the cards that are flicked out\n const [index, setIndex] = useState(0);\n const [props, set] = useSprings(cards.length, (i) => ({\n ...to(i),\n from: from(i),\n })); // Create a bunch of springs using the helpers above\n // Create a gesture, we're interested in down-state, delta (current-pos - click-pos), direction and velocity\n const bind = useDrag(\n ({\n args: [index],\n down,\n movement: [mx],\n distance,\n direction: [xDir],\n velocity,\n }) => {\n const trigger = velocity > 0; // If you flick hard enough it should trigger the card to fly out\n const dir = xDir < 0 ? -1 : 1; // Direction should either point left or right\n if (!down && trigger) {\n setIndex((index) => (index === cards.length - 1 ? 0 : index + 1));\n gone.add(index); // If button/finger's up and trigger velocity is reached, we flag the card ready to fly out\n }\n set((i) => {\n if (index !== i) return; // We're only interested in changing spring-data for the current spring\n const isGone = gone.has(index);\n\n const x = isGone ? (200 + window.innerWidth) * dir : down ? mx : 0; // When a card is gone it flys out left or right, otherwise goes back to zero\n const rot = mx / 100 + (isGone ? dir * 10 * velocity : 0); // How much the card tilts, flicking it harder makes it rotate faster\n const scale = down ? 1 : 1; // Active cards lift up a bit\n //const blur = gone.size != cards.length - i - 1;\n\n return {\n x,\n rot,\n scale,\n delay: undefined,\n config: { friction: 50, tension: down ? 800 : isGone ? 200 : 500 },\n };\n });\n if (!down && gone.size === cards.length)\n setTimeout(() => gone.clear() || set((i) => to(i)), 600);\n }\n );\n // Now we're just mapping the animated values to our view, that's it. Btw, this component only renders once. :-)\n return (\n \n
    \n {props.map(({ x, y, rot, scale }, i) => (\n \n {/* This is the card itself, we're binding our gesture to it (and inject its index so we know which is which) */}\n \n {/*
    */}\n
    {cards[i].title}
    \n
    {cards[i].caption}
    \n
    {cards[i].subtitle}
    \n
    \n \n
    \n {cards[i].note && (\n
    {cards[i].note}
    \n )}\n
    \n \n \n ))}\n \n
    \n {cards.map((d, i) => (\n
    \n ))}\n \n
    \n );\n};\n\nexport default Supplementary;\n","import React, { useEffect } from \"react\";\nimport Scroller from \"./add-on-template/Scroller\";\nimport ai2html from \"../ai2html-output/ai2html-chart\";\nimport ZipperScroller from \"./add-on-template/ZipperScroller\";\nimport BarChart from \"./charts/BarChart\";\nimport StackedBars from \"./charts/StackedBars\";\nimport Line from \"./charts/Line\";\nimport ElectricityKey from \"./charts/ElectricityKey\";\nimport {\n electrodeficit,\n cleancookingdeficit,\n electrohealth,\n electroschools,\n} from \"./../data/data.json\";\nimport ContainerDimensions from \"react-container-dimensions\";\nimport Supplementary from \"./core-template/Supplementary\";\n\nconst Elements = (props) => {\n let el;\n const createMarkup = (text) => {\n return { __html: text };\n };\n const ai2htmlMap = {\n \"dynamic-ai2html\": ai2html,\n };\n\n if (props.type === \"text\") {\n el = (\n
    \n

    \n
    \n );\n } else if (props.type === \"highlighted\") {\n el = (\n
    \n

    {props.factoid}

    \n

    {props.text}

    \n
    \n );\n } else if (props.type === \"subhed\") {\n el = (\n
    \n

    {props.text}

    \n
    \n );\n } else if (props.type === \"img\") {\n const img = require(`./../img/${props.filename}`);\n el = (\n
    \n {props.alt}\n
    \n );\n } else if (props.type === \"chart\") {\n const note = props.note ? (\n

    \n ) : (\n \"\"\n );\n const source = props.source ? (\n

    \n ) : (\n \"\"\n );\n el = (\n
    \n

    {props.title}

    \n
    \n {note}\n {source}\n
    \n );\n } else if (props.type === \"scroller\") {\n el = ;\n } else if (props.type === \"ai2html\") {\n el = (\n
    \n

    \n
    \n );\n } else if (props.type === \"zipper\") {\n el = ;\n } else if (props.type === \"barchart\") {\n const note = props.note ? (\n

    \n ) : (\n \"\"\n );\n const source = props.source ? (\n

    \n ) : (\n \"\"\n );\n el = (\n
    \n

    {props.title}

    \n

    {props.subtitle}

    \n
    \n \n {({ width, height }) => {\n return (\n \n );\n }}\n \n
    \n {note}\n {source}\n
    \n );\n } else if (props.type === \"stackedbars\") {\n const note = props.note ? (\n

    \n ) : (\n \"\"\n );\n const source = props.source ? (\n

    \n ) : (\n \"\"\n );\n el = (\n
    \n

    {props.title}

    \n

    {props.subtitle}

    \n \n
    \n \n {({ width, height }) => {\n return (\n \n );\n }}\n \n
    \n {note}\n {source}\n
    \n );\n } else if (props.type === \"line\") {\n const note = props.note ? (\n

    \n ) : (\n \"\"\n );\n const source = props.source ? (\n

    \n ) : (\n \"\"\n );\n el = (\n
    \n

    {props.title}

    \n

    {props.subtitle}

    \n
    \n \n {({ width, height }) => {\n return (\n \n );\n }}\n \n
    \n {note}\n {source}\n
    \n );\n } else if (props.type === \"supplementary\") {\n el = (\n
    \n
    \n

    {props.title}

    \n

    {props.swipeInstrux}

    \n
    \n \n
    \n );\n }\n\n // Similar to componentDidMount and componentDidUpdate:\n useEffect(() => {});\n\n return <>{el};\n};\n\nexport default Elements;\n","export default `\n\n\n\n\n
    \n

    Headline goes here

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer felis lacus, pulvinar.

    \n\t\n\t
    \n
    \n\t\t\"\"\n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t
    \n\n\t\n\t
    \n
    \n\t\t\"\"\n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t
    \n\n\t\n\t
    \n
    \n\t\t\"\"\n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t
    \n\n\t\n\t
    \n
    \n\t\t\"\"\n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t\t
    \n\t\t\t

    Percent of food left after stage

    \n\t\t
    \n\t\t
    \n\t\t\t

    93%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Production

    \n\t\t
    \n\t\t
    \n\t\t\t

    Handling and Storage

    \n\t\t
    \n\t\t
    \n\t\t\t

    90%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Processing

    \n\t\t
    \n\t\t
    \n\t\t\t

    87%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Distribution and Market

    \n\t\t
    \n\t\t
    \n\t\t\t

    84%

    \n\t\t
    \n\t\t
    \n\t\t\t

    58%

    \n\t\t
    \n\t\t
    \n\t\t\t

    Consumption

    \n\t\t
    \n\t
    \n\n
    \n

    Note: Lorem ipsum dolor sit amet

    Source: World Bank

    \n\n`\n","import React from 'react';\nimport HelmetMeta from './components/core-template/HelmetMeta';\nimport Header from './components/core-template/Header';\nimport HeadlineCard from './components/core-template/HeadlineCard';\nimport Footnote from './components/core-template/Footnote';\nimport Byline from './components/core-template/Byline';\nimport Footer from './components/core-template/Footer';\nimport Elements from './components/Elements';\nimport datum from './data/datum.json';\nimport './App.scss';\n\n\nfunction App() {\n const els = datum.content.map(d => );\n\n return (\n <>\n \n
    \n
    \n \n
    \n {els}\n \n \n
    \n
    \n
    \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(, document.getElementById('root'));\n","var map = {\n\t\"./BlackMarble_2016_01deg.jpg\": 141,\n\t\"./atlas-logo.png\": 123,\n\t\"./sdg07-illo-crop.png\": 259,\n\t\"./sdg7_energy_intensity.pdf\": 260,\n\t\"./sdg7_energy_intensity.png\": 261,\n\t\"./sdg7_renew_share_TFEC.png\": 262,\n\t\"./sdg7_renew_share_TFEC_old.png\": 263,\n\t\"./world-bank-group-light.png\": 124,\n\t\"./world-bank-group.png\": 122\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 98;"],"sourceRoot":""}