{"version":3,"sources":["reportWebVitals.js","Loading.js","logo.svg","MapDataProvider.tsx","sidebar/Sidebar.js","UserTooltip.js","countries.js","MapHeatmap.js","Menu.js","App.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","useStyles","makeStyles","theme","root","display","justifyContent","alignItems","flexDirection","width","text","marginTop","spacing","Loading","_defs","_g","classes","_jsx","Fade","in","timeout","children","_jsxs","className","CircularProgress","Typography","variant","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","SvgLogo","svgRef","title","titleId","props","focusable","height","viewBox","xmlns","ref","id","x1","x2","y1","y2","offset","stopColor","fill","fillRule","stroke","strokeWidth","transform","cx","cy","rx","ry","d","ForwardRef","MapContext","createContext","MapDataProvider","users","setUsers","useState","countryCounts","setCountryCounts","total","setTotal","useEffect","fetch","response","json","data","country_counts","catch","error","console","Provider","value","countries","registerLocale","enLocale","backgroundColor","borderRadius","padding","maxHeight","overflowX","overflowY","paddingBottom","nameBlock","marginBottom","overflow","card","fontSize","pos","cardContent","publicPageLink","logoBullet","marginRight","verticalAlign","button","fontWeight","color","cursor","boxShadow","transition","Sidebar","countryCode","onSelectCountry","useContext","userCount","numCountries","keys","Box","mb","getName","select","Button","onClick","_Fragment","filter","u","country_alpha2","map","user","Card","elevation","artist_name","Divider","LogoBullet","Link","href","passport_id","persona_id","target","rel","mt","UserTooltip","country","positionRef","React","useRef","x","y","popperRef","Tooltip","onMouseMove","event","current","clientX","clientY","scheduleUpdate","PopperProps","anchorEl","clientHeight","clientWidth","getBoundingClientRect","top","left","right","bottom","countryCodeToNameMap","reduce","c","code","name","countriesTopo","objects","geometries","f","countryFeatures","feature","projection","geoEqualEarth","rotate","fitWidth","path","geoPath","bounds","mapHeight","countryPathsData","features","countryFeature","countryAlpha2","numericToAlpha2","properties","svgPath","boundariesPath","mesh","mapBox","mapContainer","flex","scaleContainer","alignSelf","MapHeatmap","withContentRect","measureRef","contentRect","useTheme","useMediaQuery","breakpoints","down","colorScale","useMemo","thresholds","colors","schemePuRd","scaleThreshold","domain","range","i","vectorEffect","style","textAlign","paddingRight","logo","only","paddingLeft","passportIcon","passportButton","palette","background","paper","maxWidth","passportLink","textDecoration","menu","Menu","Grid","container","item","xs","SvgIcon","defaultTheme","createTheme","values","sm","md","lg","xl","type","default","primary","main","typography","fontFamily","join","h1","letterSpacing","h2","h3","textTransform","h4","h5","body1","body2","subtitle1","lineHeight","help","overrides","MuiCssBaseline","html","WebkitFontSmoothing","flexBasis","up","header","box","App","setCountryAlpha2","ThemeProvider","CssBaseline","ReactDOM","render","document","getElementById"],"mappings":"4+yGAYeA,MAZUC,IACnBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAKC,IAAkD,IAAjD,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASL,EACpEC,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAOP,GACPQ,EAAQR,EAAY,GAExB,E,0ICFF,MAAMS,EAAYC,aAAYC,IAAK,CACjCC,KAAM,CACJC,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZC,cAAe,SACfC,MAAO,QAETC,KAAM,CACJC,UAAWR,EAAMS,QAAQ,QAkBdC,IClCXC,EAAOC,EDkCIF,EAdCA,KACd,MAAMG,EAAUf,IAChB,OACEgB,cAACC,IAAI,CAACC,IAAE,EAACC,QAAS,IAAKC,SACrBC,eAAA,OAAKC,UAAWP,EAAQZ,KAAKiB,SAAA,CAC3BJ,cAACO,IAAgB,IACjBP,cAACQ,IAAU,CAACC,QAAQ,QAAQH,UAAWP,EAAQN,KAAKW,SAAC,mBAIlD,EC7BX,SAASM,IAAa,OAAOA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GAAK,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAIF,UAAUD,GAAI,IAAK,IAAII,KAAKD,GAAG,CAAG,GAAEE,eAAeC,KAAKH,EAAGC,KAAOL,EAAEK,GAAKD,EAAEC,GAAK,CAAE,OAAOL,CAAG,EAAGJ,EAASY,MAAM,KAAMN,UAAY,CAEnR,SAASO,EAAQ7C,EAAM8C,GACrB,IAAI,MACFC,EAAK,QACLC,KACGC,GACDjD,EACJ,OAAoB,gBAAoB,MAAOgC,EAAS,CACtDJ,UAAW,oBACXsB,UAAW,QACX,cAAe,OACfpC,MAAO,MACPqC,OAAQ,MACRC,QAAS,YACTC,MAAO,6BACPC,IAAKR,EACL,kBAAmBE,GAClBC,GAAQF,EAAqB,gBAAoB,QAAS,CAC3DQ,GAAIP,GACHD,GAAS,KAAM5B,IAAUA,EAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,iBAAkB,CACpIoC,GAAI,mBACJC,GAAI,UACJC,GAAI,QACJC,GAAI,OACJC,GAAI,SACU,gBAAoB,OAAQ,CAC1CC,OAAQ,QACRC,UAAW,YACI,gBAAoB,OAAQ,CAC3CD,OAAQ,UACRC,UAAW,YACI,gBAAoB,OAAQ,CAC3CD,OAAQ,OACRC,UAAW,YACNzC,IAAOA,EAAkB,gBAAoB,IAAK,CACvD0C,KAAM,OACNC,SAAU,UACVC,OAAQ,OACRC,YAAa,GACC,gBAAoB,IAAK,CACvCC,UAAW,sBACG,gBAAoB,IAAK,CACvCA,UAAW,oBACG,gBAAoB,IAAK,KAAmB,gBAAoB,UAAW,CACzFC,GAAI,GACJC,GAAI,OACJN,KAAM,yBACNO,GAAI,GACJC,GAAI,SACW,gBAAoB,OAAQ,CAC3CR,KAAM,oBACNS,EAAG,yUACA,QACP,CACA,MAAMC,EAA0B,aAAiB3B,GAClC,ICxCR,MAAM4B,EAAaC,wBAAqC,MAKlDC,EAA8C3E,IAAmB,IAAlB,SAAE0B,GAAU1B,EACtE,MAAO4E,EAAOC,GAAYC,mBAAkB,KACrCC,EAAeC,GAAoBF,mBAEvC,CAAC,IACGG,EAAOC,GAAYJ,mBAAiB,GAc3C,OAZAK,qBAAU,KAERC,MADY,gDAETrF,MAAMsF,GAAaA,EAASC,SAC5BvF,MAAMwF,IACLV,EAASU,EAAKX,OACdI,EAAiBO,EAAKC,gBACtBN,EAASK,EAAKN,MAAM,IAErBQ,OAAOC,GAAUC,QAAQD,MAAM,uBAAwBA,IAAO,GAChE,IAGDpE,cAACmD,EAAWmB,SAAQ,CAACC,MAAO,CAAEjB,QAAOG,gBAAeE,SAAQvD,SACzDA,GACmB,EC5B1BoE,IAAUC,eAAeC,GAEzB,MAAM1F,EAAYC,aAAYC,IAAK,CACjCC,KAAM,CACJwF,gBAAiB,OACjBC,aAAc,OACdC,QAAS,SACTC,UAAW,OACXC,UAAW,SACXC,UAAW,OACXC,cAAe,IAEjBC,UAAW,CACTxF,UAAWR,EAAMS,QAAQ,GACzBwF,aAAcjG,EAAMS,QAAQ,GAC5ByF,SAAU,UAEZC,KAAM,CACJV,gBAAiB,UACjBC,aAAc,WAEhBnD,MAAO,CACL6D,SAAU,IAEZC,IAAK,CACHJ,aAAc,IAEhBK,YAAa,CACXX,QAAS,QAEXY,eAAgB,CACd,qBAAsB,CACpBN,aAAc,IAGlBO,WAAY,CACVlG,MAAO,GACPqC,OAAQ,GACR8D,YAAa,EACbC,cAAe,UAEjBC,OAAQ,CACNnG,UAAWR,EAAMS,QAAQ,GACzBwF,aAAcjG,EAAMS,QAAQ,GAC5BgF,gBAAiB,OACjBC,aAAc,GACdU,SAAU,OACVQ,WAAY,MACZC,MAAO,UACPlB,QAAS,cACTmB,OAAQ,UACR5G,QAAS,OACTE,WAAY,SACZD,eAAgB,SAChB4G,UAAW,sCACXC,WAAY,OACZ,UAAW,CACTvB,gBAAiB,gBA6ERwB,MAzECzH,IAAuC,IAAtC,YAAE0H,EAAW,gBAAEC,GAAiB3H,EAC/C,MAAMqB,EAAUf,KACV,MAAEsE,EAAK,cAAEG,EAAa,MAAEE,GAAU2C,qBAAWnD,GAC7CoD,EAAYH,EAAc3C,EAAc2C,IAAgB,EAAIzC,EAC5D6C,EAAe7F,OAAO8F,KAAKhD,GAAiB,CAAC,GAAGxC,OACtD,OACEZ,eAAA,WAASC,UAAWP,EAAQZ,KAAKiB,SAAA,CAC/BJ,cAAC0G,IAAG,CAACC,GAAI,EAAEvG,SACTJ,cAACQ,IAAU,CAACC,QAAQ,KAAIL,SAAC,oBAE3BC,eAACG,IAAU,CAACC,QAAQ,KAAIL,SAAA,CAAC,kBACP,IACA,MAAfgG,EACG5B,IAAUoC,QAAQR,EAAa,KAAM,CAAES,OAAQ,UAC/C,mBAEK,IAAVlD,GACCtD,eAACG,IAAU,CAACC,QAAQ,QAAOL,SAAA,CACxBmG,EAAY,IACE,IAAdA,EAAkB,OAAS,QAC3BH,EAAc,GAAK,OAAOI,iBAG9BJ,GACCpG,cAAC8G,IAAM,CAACxG,UAAWP,EAAQ8F,OAAQkB,QAASA,IAAMV,IAAkBjG,SAAC,uBAItEuD,EAAQ,EACP3D,cAAAgH,WAAA,CAAA5G,SACGkD,EACE2D,QAAQC,IAAOd,GAAeA,IAAgBc,EAAEC,iBAChDC,KAAKC,GACJrH,cAAA,WAA+BM,UAAWP,EAAQmF,UAAU9E,SAC1DC,eAACiH,IAAI,CAACC,UAAW,EAAGjH,UAAWP,EAAQsF,KAAKjF,SAAA,CAC1CC,eAAA,OAAKC,UAAWP,EAAQyF,YAAYpF,SAAA,CAClCJ,cAACQ,IAAU,CAACF,UAAWP,EAAQ0B,MAAOhB,QAAQ,KAAIL,SAC/CiH,EAAKG,cAERxH,cAACQ,IAAU,CAACC,QAAQ,QAAOL,SACxBoE,IAAUoC,QAAQS,EAAKF,eAAgB,KAAM,CAC5CN,OAC0B,OAAxBQ,EAAKF,eAA0B,WAAa,eAIpD9G,eAAA2G,WAAA,CAAA5G,SAAA,CACEJ,cAACyH,IAAO,IACRzH,cAAA,OAAKM,UAAWP,EAAQyF,YAAYpF,SAClCC,eAAA,OAAKC,UAAWP,EAAQ0F,eAAerF,SAAA,CACrCJ,cAAC0H,EAAU,CAACpH,UAAWP,EAAQ2F,aAC/B1F,cAAC2H,IAAI,CACHC,KAAM,qCAAqCP,EAAKQ,eAAeR,EAAKS,aACpEC,OAAO,SACPC,IAAI,sBAAqB5H,SAExBiH,EAAKG,0BAvBJH,EAAKS,gBAiCzB9H,cAAC0G,IAAG,CAACuB,GAAI,EAAE7H,SACTJ,cAACJ,EAAO,QAGJ,E,uFCxGCsI,MAxCKxJ,IAAuC,IAAtC,QAAEyJ,EAAO,UAAE5B,EAAS,SAAEnG,GAAU1B,EACnD,MAAM0J,EAAcC,IAAMC,OAAO,CAC/BC,EAAG,EACHC,EAAG,IAGCC,EAAYJ,IAAMC,OAAO,MAS/B,OACEtI,cAAC0I,IAAO,CACNjH,MAAO,GAAG0G,MAAY5B,KAA2B,IAAdA,EAAkB,OAAS,UAC9DoC,YAXqBC,IACvBR,EAAYS,QAAU,CAAEN,EAAGK,EAAME,QAASN,EAAGI,EAAMG,SAE1B,MAArBN,EAAUI,SACZJ,EAAUI,QAAQG,gBACpB,EAOEC,YAAa,CACXR,YACAS,SAAU,CACRC,aAAc,EACdC,YAAa,EACbC,sBAAuBA,KAAA,CACrBC,IAAKlB,EAAYS,QAAQL,EACzBe,KAAMnB,EAAYS,QAAQN,EAC1BiB,MAAOpB,EAAYS,QAAQN,EAC3BkB,OAAQrB,EAAYS,QAAQL,EAAI,EAChChJ,MAAO,EACPqC,OAAQ,MAGZzB,SAEDA,GACO,E,QCvCP,MAiLDsJ,EAjLmB,CACvB,CAAC,MAAO,eACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,cACR,CAAC,MAAO,aACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,WACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,oBACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,YACR,CAAC,MAAO,gBACR,CAAC,MAAO,WACR,CAAC,MAAO,YACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,wBACR,CAAC,MAAO,QACR,CAAC,MAAO,SACR,CAAC,MAAO,SACR,CAAC,MAAO,YACR,CAAC,MAAO,SACR,CAAC,MAAO,cACR,CAAC,MAAO,oBACR,CAAC,MAAO,WACR,CAAC,MAAO,QACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,mBACR,CAAC,MAAO,WACR,CAAC,MAAO,YACR,CAAC,MAAO,kBACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,eACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,YACR,CAAC,MAAO,YACR,CAAC,MAAO,gBACR,CAAC,MAAO,QACR,CAAC,MAAO,WACR,CAAC,MAAO,0BACR,CAAC,MAAO,UACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,UACR,CAAC,MAAO,iBACR,CAAC,MAAO,UACR,CAAC,MAAO,SACR,CAAC,MAAO,YACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,aACR,CAAC,MAAO,QACR,CAAC,MAAO,QACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,SACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,cACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,cACR,CAAC,MAAO,QACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,aACR,CAAC,MAAO,cACR,CAAC,MAAO,aACR,CAAC,MAAO,cACR,CAAC,MAAO,UACR,CAAC,MAAO,YACR,CAAC,MAAO,QACR,CAAC,MAAO,cACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,YACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,MAAO,SACR,CAAC,MAAO,eACR,CAAC,MAAO,iBACR,CAAC,MAAO,eACR,CAAC,MAAO,aACR,CAAC,MAAO,SACR,CAAC,MAAO,WACR,CAAC,MAAO,eACR,CAAC,MAAO,UACR,CAAC,MAAO,QACR,CAAC,MAAO,YACR,CAAC,MAAO,aACR,CAAC,MAAO,UACR,CAAC,MAAO,oBACR,CAAC,MAAO,YACR,CAAC,MAAO,QACR,CAAC,MAAO,eACR,CAAC,MAAO,UACR,CAAC,MAAO,YACR,CAAC,MAAO,eACR,CAAC,MAAO,SACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,YACR,CAAC,MAAO,gBACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,gBACR,CAAC,MAAO,YACR,CAAC,MAAO,YACR,CAAC,MAAO,eACR,CAAC,MAAO,WACR,CAAC,MAAO,gBACR,CAAC,MAAO,eACR,CAAC,MAAO,SACR,CAAC,MAAO,aACR,CAAC,MAAO,SACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,eACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,cACR,CAAC,MAAO,YACR,CAAC,MAAO,YACR,CAAC,MAAO,eACR,CAAC,MAAO,QACR,CAAC,MAAO,uBACR,CAAC,MAAO,WACR,CAAC,MAAO,UACR,CAAC,MAAO,gBACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,wBACR,CAAC,MAAO,kBACR,CAAC,MAAO,4BACR,CAAC,MAAO,WACR,CAAC,MAAO,cACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,SACR,CAAC,MAAO,UACR,CAAC,MAAO,aAG6BC,QAAO,CAACC,EAAClL,KAAoB,IAAjBmL,EAAMC,GAAKpL,EAE5D,OADAkL,EAAEC,GAAQC,EACHF,CAAC,GACP,CAAC,GCrKJ,MACMG,EAAgB,IACjBvF,EAAUwF,QAAQxF,UACrByF,WAAYzF,EAAUwF,QAAQxF,UAAUyF,WAAWhD,QAChDiD,GAAe,QAATA,EAAEjI,MAGPkI,EAAkBC,YAAQ5F,EAAWuF,GACrCM,EAAaC,cAChBC,OAAO,EAAE,GAAI,IACbC,SAAS,CAVK,KAUOL,GAClBM,EAAOC,YAAQL,GACfM,EAASF,EAAKE,OAAOR,GACrBS,EAAYD,EAAO,GAAG,GAAKA,EAAO,GAAG,GACrCE,GAAmBV,EAAgBW,SAAS1D,KAAK2D,IAAc,CACnE9I,GAAI8I,EAAe9I,GACnB+I,cAAeC,0BAAgBF,EAAe9I,IAC9C6H,KAAMiB,EAAeG,WAAWpB,KAChCqB,QAASV,EAAKM,OAEVK,GAAiBX,EAAKY,YAAK7G,EAAWuF,IACtC/K,GAAYC,aAAW,MAC3BqM,OAAQ,CACN3G,gBAAiB,OACjBC,aAAc,OACdC,QAAS,SACThD,OAAQ,QAEV0J,aAAc,CACZC,KAAM,MACNpM,QAAS,OACTE,WAAY,SACZD,eAAgB,SAChB+F,SAAU,SACVvD,OAAQ,QAEV4J,eAAgB,CACd5G,QAAS,EACT6G,UAAW,cA6LAC,OA1LIC,YAAgB,SAAhBA,EAA0BlN,IAItC,IAJuC,gBAC5C2H,EAAe,WACfwF,EAAU,YACVC,GACDpN,EACC,MAAMqB,EAAUf,MACV,cAAEyE,EAAa,MAAEE,GAAU0E,IAAM/B,WAAWnD,GAClD,IAAI,MAAE3D,EAAK,OAAEqC,GAAWiK,EAAYnB,OACpC,MAAMzL,EAAQ6M,cACEC,YAAc9M,EAAM+M,YAAYC,KAAK,SAEnDrK,EAAUrC,EApDG,IAoDiBoL,GAEhC,MAAMuB,EAAaC,mBAAQ,KACzB,MAAMC,EAAa,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,KACnCC,EAASC,IAAWF,EAAWpL,OAAS,GAE9C,OADAqL,EAAO,GAAK,OACLE,cAAiBC,OAAOJ,GAAYK,MAAMJ,EAAO,GACvD,IAEH,OAAc,IAAV3I,EAEA3D,cAAC0G,IAAG,CAACpG,UAAWP,EAAQuL,OAAOlL,SAC7BJ,cAACJ,EAAO,MAMZI,cAAAgH,WAAA,CAAA5G,SACEC,eAACqG,IAAG,CAACpG,UAAWP,EAAQuL,OAAOlL,SAAA,CAC7BJ,cAAA,OAAKgC,IAAK6J,EAAYvL,UAAWP,EAAQwL,aAAanL,SACnDZ,GAASqC,GACRxB,eAAA,OACEyB,QAAS,WAAmB8I,IAC5BpL,MAAOA,EAAQ,GACfqC,OAAQA,EAAOzB,SAAA,CAEfJ,cAAA,KAAAI,SACGyK,GAAiBzD,KAAI,CAACe,EAASwE,KAC9B3M,qBAACkI,EAAW,CAEVC,SDoFc0B,ECpFa1B,EAAQlG,GDqF9CyH,EAAqBG,IAAS,WCpFnBtD,WAAwB,OAAb9C,QAAa,IAAbA,OAAa,EAAbA,EAAgB0E,EAAQ6C,iBAAkB,EAAE5K,SAEvDJ,cAAA,QACEwC,KAAM2J,GACS,OAAb1I,QAAa,IAAbA,OAAa,EAAbA,EAAgB0E,EAAQ6C,iBAAkB,GAE5C/H,EAAGkF,EAAQgD,QACXpE,QAASA,IAAMV,EAAgB8B,EAAQ6C,kBATpC2B,GDqFlB,IAA2B9C,CCzEjB,MAEH7J,cAAA,QACEiD,EAAGmI,GACH5I,KAAK,OACLE,OAAO,UACPC,YAAY,IACZiK,aAAa,4BAKrBvM,eAAA,OAAAD,SAAA,CACEJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,KACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,sBACdU,SAAU,QACVlF,SACH,MAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,KACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,MAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,KACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,MAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,KACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,OAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,MACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,OAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,MACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,OAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,MACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,OACdU,SAAU,QACVlF,SACH,QAGDJ,cAAA,OACE6M,MAAO,CACLzN,QAAS,eACTI,MAAO,MACPmF,gBAAiB,UACjBoB,MAAO,UACP+G,UAAW,QACXC,aAAc,MACdnI,aAAc,sBACdU,SAAU,QACVlF,SACH,gBAQJ,I,UCtOP,MAAMpB,GAAYC,aAAYC,IAAK,CACjC8N,KAAM,CACJnL,OAAQ,KACR,CAAC3C,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BC,YAAa,OACbH,aAAc,SAGlBI,aAAc,CACZ3N,MAAO,OACPqC,OAAQ,OACR8D,YAAa,UAEfyH,eAAgB,CACdzI,gBAAiBzF,EAAMmO,QAAQC,WAAWC,MAC1C3I,aAAc,GACdU,SAAU,OACVT,QAAS,OACTrF,MAAO,cACPwG,OAAQ,UACR5G,QAAS,OACTE,WAAY,SACZD,eAAgB,SAChByG,WAAY,MACZG,UAAW,sCACXuH,SAAU,QACV1I,UAAW,OACXoB,WAAY,OACZ,UAAW,CACTvB,gBAAiB,YAGrB8I,aAAc,CACZC,eAAgB,OAChBtO,QAAS,OACTE,WAAY,UAEdqO,KAAM,CACJtO,eAAgB,qBAsGLuO,OAnGFA,KACX,MAAM7N,EAAUf,KAChB,OACEqB,eAACwN,IAAI,CAACC,WAAS,EAACxN,UAAWP,EAAQ4N,KAAKvN,SAAA,CACtCJ,cAAC6N,IAAI,CAACE,MAAI,EAACC,GAAI,EAAE5N,SACfJ,cAAC0G,IAAG,CAACC,GAAI,OAAOvG,SACdC,eAAA,OACEC,UAAWP,EAAQiN,KACnBpL,UAAU,QACV,cAAY,OACZE,QAAQ,aACRC,MAAM,6BAA4B3B,SAAA,CAElCJ,cAAA,QAAAI,SACEC,eAAA,kBACE4B,GAAG,mBACHC,GAAG,UACHC,GAAG,QACHC,GAAG,OACHC,GAAG,QAAOjC,SAAA,CAEVJ,cAAA,QAAMsC,OAAO,QAAQ,aAAW,YAChCtC,cAAA,QAAMsC,OAAO,UAAU,aAAW,YAClCtC,cAAA,QAAMsC,OAAO,OAAO,aAAW,cAGnCtC,cAAA,KAAGwC,KAAK,OAAO,YAAU,UAAUE,OAAO,OAAO,eAAa,IAAGtC,SAC/DJ,cAAA,KAAG4C,UAAU,qBAAoBxC,SAC/BC,eAAA,KAAGuC,UAAU,mBAAkBxC,SAAA,CAC7BC,eAAA,KAAAD,SAAA,CACEJ,cAAA,WACE6C,GAAG,KACHC,GAAG,SACHN,KAAK,yBACLO,GAAG,KACHC,GAAG,WAELhD,cAAA,QACEwC,KAAK,oBACLS,EAAE,2UAGNjD,cAAA,QACEwC,KAAK,oBACLS,EAAE,mzFAQhBjD,cAAC6N,IAAI,CAACE,MAAI,EAAA3N,SACRJ,cAAC0G,IAAG,CAACa,UAAW,EAAGjH,UAAWP,EAAQqN,eAAehN,SACnDC,eAACsH,IAAI,CACHrH,UAAWP,EAAQ0N,aACnB7F,KAAK,+BACLiF,MAAO,CAAEa,eAAgB,QAAStN,SAAA,CAElCC,eAAC4N,KAAO,CACN3N,UAAWP,EAAQoN,aACnBpL,MAAM,6BACNvC,MAAM,OACNqC,OAAO,OACPC,QAAQ,YAAW1B,SAAA,CAEnBJ,cAAA,SAAAI,SAAO,UACPJ,cAAA,KACEiC,GAAG,SACHS,OAAO,OACPC,YAAY,IACZH,KAAK,OACLC,SAAS,UAASrC,SAElBJ,cAAA,KACEiC,GAAG,uBACHW,UAAU,qCAAoCxC,SAE9CJ,cAAA,KACEiC,GAAG,oBACHW,UAAU,mCAAkCxC,SAE5CJ,cAAA,QACEiD,EAAE,g1BACFhB,GAAG,iBACHO,KAAK,qBAMfxC,cAACQ,IAAU,CAACC,QAAQ,QAAOL,SAAC,+BAI7B,ECxIX,MAAM8N,GAAeC,cACfjP,GAAQiP,YAAY,CACxBlC,YAAa,CACXmC,OAAQ,CACNJ,GAAI,EACJK,GAAI,IACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OAGRnB,QAAS,CACPoB,KAAM,QACNnB,WAAY,CACVoB,QAAS,sBAEXC,QAAS,CACPC,KAAM,YAGVC,WAAY,CACVC,WAAY,CAAC,SAAU,cAAcC,KAAK,KAC1C7B,YAAa,UACbH,aAAc,UACdiC,GAAI,CAEFF,WAAY,CAAC,cAAe,cAAcC,KAAK,KAC/ChJ,MAAO,oBACPT,SAAU,OACVQ,WAAY,IACZmJ,cAAe,UAEjBC,GAAI,CAEFJ,WAAY,CAAC,cAAe,cAAcC,KAAK,KAC/ChJ,MAAO,oBACPT,SAAU,OACVQ,WAAY,IACZmJ,cAAe,UAEjBE,GAAI,CACFL,WAAY,CAAC,SAAU,cAAcC,KAAK,KAC1CK,cAAe,aACftJ,WAAY,MACZR,SAAU,GACVS,MAAO,qBAETsJ,GAAI,CACFP,WAAY,CAAC,SAAU,cAAcC,KAAK,KAC1CjJ,WAAY,MACZR,SAAU,GACVS,MAAO,qBAETuJ,GAAI,CACFR,WAAY,CAAC,SAAU,cAAcC,KAAK,KAC1ChJ,MAAO,oBACPT,SAAU,GACVQ,WAAY,KAEdyJ,MAAO,CACLT,WAAY,CAAC,SAAU,cAAcC,KAAK,KAC1CzJ,SAAU,GACVS,MAAO,qBAETyJ,MAAO,CACLlK,SAAU,GACVS,MAAO,WAET0J,UAAW,CACTnK,SAAU,GACVoK,WAAY,IACZ3J,MAAO,qBAET4J,KAAM,CACJ9N,OAAQ,OACRkE,MAAO,qBACPvG,MAAO,OACPsN,UAAW,OACXxN,WAAY,SACZwP,WAAY,oBACZxJ,SAAU,OACVlG,QAAS,SAIbwQ,UAAW,CACTC,eAAgB,CACd,UAAW,CACTC,KAAM,CACJC,oBAAqB,OACrB,CAAC7B,GAAajC,YAAYC,KAAK,OAAQ,CACrClH,UAAW,gBAQjBhG,GAAYC,aAAYC,IAAK,CACjCC,KAAM,CACJ,CAACD,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BF,aAAc,OACdG,YAAa,QAEf,CAAChO,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BF,aAAc,OACdG,YAAa,QAEf,CAAChO,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BF,aAAc,OACdG,YAAa,QAEf,CAAChO,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BC,YAAa,OACbH,aAAc,QAEhB,CAAC7N,EAAM+M,YAAYgB,KAAK,OAAQ,CAC9BC,YAAa,OACbH,aAAc,QAEhBrN,UAAW,OACXyF,aAAc,QAEhByJ,KAAM,CACJxJ,SAAU,SACVhG,QAAS,OACTG,cAAe,SACfsC,OAAQ,qBACR,CAAC3C,EAAM+M,YAAYC,KAAK,OAAQ,CAC9B8D,UAAW,QAEb,CAAC9Q,EAAM+M,YAAYgE,GAAG,OAAQ,CAC5BpO,OAAQ,UAGZqO,OAAQ,CACNrL,QAAS,OACT,CAAC3F,EAAM+M,YAAYgE,GAAG,OAAQ,CAC5BpL,QAAS,cAGbgB,OAAQ,CACNE,MAAO,QACPpB,gBAAiB,SAEnBwL,IAAK,CACHtO,OAAQ,YAmCGuO,OA/Bf,WACE,MAAMrQ,EAAUf,MACTgM,EAAeqF,GAAoB7M,qBAC1C,OACExD,cAACqD,EAAe,CAAAjD,SACdJ,cAACsQ,IAAa,CAACpR,MAAOA,GAAMkB,SAC1BC,eAACkQ,IAAW,CAAAnQ,SAAA,CACVJ,cAAA,OAAKM,UAAWP,EAAQmQ,OAAO9P,SAC7BJ,cAAC4N,GAAI,MAEP5N,cAAA,QAAAI,SACEJ,cAAA,OAAKM,UAAWP,EAAQZ,KAAKiB,SAC3BC,eAACwN,IAAI,CAACC,WAAS,EAACnO,QAAS,EAAGW,UAAWP,EAAQ6O,KAAKxO,SAAA,CAClDJ,cAAC6N,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIM,GAAI,EAAElO,SACvBJ,cAAC2L,GAAU,CAACtF,gBAAiBgK,MAE/BrQ,cAAC6N,IAAI,CAACE,MAAI,EAACC,GAAI,GAAIM,GAAI,EAAGhO,UAAWP,EAAQoQ,IAAI/P,SAC/CJ,cAACmG,EAAO,CACNC,YAAa4E,EACb3E,gBAAiBgK,mBAUrC,ECrLAG,IAASC,OAAOzQ,cAACoQ,GAAG,IAAKM,SAASC,eAAe,SAKjDrS,G","file":"static/js/main.ac2c5d64.chunk.js","sourcesContent":["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 {\n CircularProgress,\n Fade,\n makeStyles,\n Typography,\n} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n text: {\n marginTop: theme.spacing(1),\n },\n}));\n\nconst Loading = () => {\n const classes = useStyles();\n return (\n \n
\n \n \n Loading...\n \n
\n
\n );\n};\n\nexport default Loading;\n","var _defs, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: \"makeStyles-logo-3\",\n focusable: \"false\",\n \"aria-hidden\": \"true\",\n width: 274.2,\n height: 274.2,\n viewBox: \"0 0 42 42\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linearGradient-1\",\n x1: \"99.976%\",\n x2: \".115%\",\n y1: \"100%\",\n y2: \".091%\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: \".091%\",\n stopColor: \"#FF2667\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"50.981%\",\n stopColor: \"#73AEE6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0FC\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"none\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-79 -15)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(80 16)\"\n }, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 20,\n cy: 20.005,\n fill: \"url(#linearGradient-1)\",\n rx: 20,\n ry: 20.005\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"hsl(210, 2%, 10%)\",\n d: \"M28.333 6.668l3.334 3.334v26.23A19.89 19.89 0 0120 40.01c-11.047 0-20-8.958-20-20.005 0-.592.038-1.177.088-1.757l11.579-11.58h16.666zm0 3.334H11.667v26.673h16.666V10.002zM25 28.34v3.334H15V28.34h10zm-5-15.003a5.001 5.001 0 010 10.002 5.001 5.001 0 010-10.002zm0 2.857a2.146 2.146 0 00-2.143 2.144A2.143 2.143 0 1020 16.194z\"\n })), \">\")))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.5c72dda9.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\nimport { createContext, ReactNode, useEffect, useState } from \"react\";\n\nexport interface IUser {\n passport_id: string;\n persona_id: string;\n artist_name: string;\n country_alpha2: string;\n city: string | null;\n}\n\nexport type MapContextType = {\n users: IUser[];\n countryCounts: { [country_alpha2: string]: number };\n total: number;\n};\n\nexport const MapContext = createContext(null);\ninterface MapProviderProps {\n children: ReactNode;\n}\n\nexport const MapDataProvider: React.FC = ({ children }) => {\n const [users, setUsers] = useState([]);\n const [countryCounts, setCountryCounts] = useState<{\n [country_alpha2: string]: number;\n }>({});\n const [total, setTotal] = useState(0);\n\n useEffect(() => {\n const api = `${process.env.REACT_APP_API_BASE}/map/`;\n fetch(api)\n .then((response) => response.json())\n .then((data) => {\n setUsers(data.users);\n setCountryCounts(data.country_counts);\n setTotal(data.total);\n })\n .catch((error) => console.error(\"Error fetching data:\", error));\n }, []);\n\n return (\n \n {children}\n \n );\n};\n","import {\n Box,\n Button,\n Card,\n Divider,\n Link,\n makeStyles,\n Typography,\n} from \"@material-ui/core\";\nimport React, { useContext } from \"react\";\nimport countries from \"i18n-iso-countries\";\nimport enLocale from \"i18n-iso-countries/langs/en.json\";\nimport Loading from \"../Loading\";\nimport { ReactComponent as LogoBullet } from \"../logo.svg\";\nimport { MapContext } from \"../MapDataProvider\";\n\ncountries.registerLocale(enLocale);\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: \"#fff\",\n borderRadius: \"1rem\",\n padding: \"1.5rem\",\n maxHeight: \"100%\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n paddingBottom: 40, // Add space for the footer\n },\n nameBlock: {\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(3),\n overflow: \"hidden\",\n },\n card: {\n backgroundColor: \"#eef0f2\",\n borderRadius: \"0.75rem\",\n },\n title: {\n fontSize: 14,\n },\n pos: {\n marginBottom: 12,\n },\n cardContent: {\n padding: \"1rem\",\n },\n publicPageLink: {\n \"&:not(:last-child)\": {\n marginBottom: 2,\n },\n },\n logoBullet: {\n width: 20,\n height: 20,\n marginRight: 5,\n verticalAlign: \"middle\",\n },\n button: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n backgroundColor: \"#fff\",\n borderRadius: 28,\n fontSize: \"14px\",\n fontWeight: \"400\",\n color: \"#646668\",\n padding: \"0.5rem 1rem\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxShadow: \"0.67px 0.67px 4px 0 rgba(0,0,0,0.1)\",\n transition: \"0.3s\",\n \"&:hover\": {\n backgroundColor: \"#D3D3D3\",\n },\n },\n}));\nconst Sidebar = ({ countryCode, onSelectCountry }) => {\n const classes = useStyles();\n const { users, countryCounts, total } = useContext(MapContext);\n const userCount = countryCode ? countryCounts[countryCode] || 0 : total;\n const numCountries = Object.keys(countryCounts || {}).length;\n return (\n
\n \n Community Map\n \n \n Latest users in{\" \"}\n {countryCode != null\n ? countries.getName(countryCode, \"en\", { select: \"alias\" })\n : \"all countries\"}\n \n {total !== 0 && (\n \n {userCount + \" \"}\n {userCount === 1 ? \"user\" : \"users\"}\n {countryCode ? \"\" : ` in ${numCountries} countries`}\n \n )}\n {countryCode && (\n \n )}\n {total > 0 ? (\n <>\n {users\n .filter((u) => !countryCode || countryCode === u.country_alpha2)\n .map((user) => (\n
\n \n
\n \n {user.artist_name}\n \n \n {countries.getName(user.country_alpha2, \"en\", {\n select:\n user.country_alpha2 === \"GB\" ? \"official\" : \"alias\",\n })}\n \n
\n <>\n \n
\n
\n \n \n {user.artist_name}\n \n
\n
\n \n
\n
\n ))}\n \n ) : (\n \n \n \n )}\n
\n );\n};\nexport default Sidebar;\n","import { Tooltip } from \"@material-ui/core\";\nimport React from \"react\";\n\nconst UserTooltip = ({ country, userCount, children }) => {\n const positionRef = React.useRef({\n x: 0,\n y: 0,\n });\n\n const popperRef = React.useRef(null);\n const handleMouseMove = (event) => {\n positionRef.current = { x: event.clientX, y: event.clientY };\n\n if (popperRef.current != null) {\n popperRef.current.scheduleUpdate();\n }\n };\n\n return (\n ({\n top: positionRef.current.y,\n left: positionRef.current.x,\n right: positionRef.current.x,\n bottom: positionRef.current.y + 5,\n width: 0,\n height: 0,\n }),\n },\n }}\n >\n {children}\n \n );\n};\n\nexport default UserTooltip;\n","export const countries = [\n [\"004\", \"Afghanistan\"],\n [\"008\", \"Albania\"],\n [\"012\", \"Algeria\"],\n [\"024\", \"Angola\"],\n [\"010\", \"Antarctica\"],\n [\"032\", \"Argentina\"],\n [\"051\", \"Armenia\"],\n [\"036\", \"Australia\"],\n [\"040\", \"Austria\"],\n [\"031\", \"Azerbaijan\"],\n [\"044\", \"Bahamas\"],\n [\"050\", \"Bangladesh\"],\n [\"112\", \"Belarus\"],\n [\"056\", \"Belgium\"],\n [\"084\", \"Belize\"],\n [\"204\", \"Benin\"],\n [\"064\", \"Bhutan\"],\n [\"068\", \"Bolivia\"],\n [\"070\", \"Bosnia and Herz.\"],\n [\"072\", \"Botswana\"],\n [\"076\", \"Brazil\"],\n [\"096\", \"Brunei\"],\n [\"100\", \"Bulgaria\"],\n [\"854\", \"Burkina Faso\"],\n [\"108\", \"Burundi\"],\n [\"116\", \"Cambodia\"],\n [\"120\", \"Cameroon\"],\n [\"124\", \"Canada\"],\n [\"140\", \"Central African Rep.\"],\n [\"148\", \"Chad\"],\n [\"152\", \"Chile\"],\n [\"156\", \"China\"],\n [\"170\", \"Colombia\"],\n [\"178\", \"Congo\"],\n [\"188\", \"Costa Rica\"],\n [\"384\", \"Côte d'Ivoire\"],\n [\"191\", \"Croatia\"],\n [\"192\", \"Cuba\"],\n [\"196\", \"Cyprus\"],\n [\"203\", \"Czechia\"],\n [\"180\", \"Dem. Rep. Congo\"],\n [\"208\", \"Denmark\"],\n [\"262\", \"Djibouti\"],\n [\"214\", \"Dominican Rep.\"],\n [\"218\", \"Ecuador\"],\n [\"818\", \"Egypt\"],\n [\"222\", \"El Salvador\"],\n [\"226\", \"Eq. Guinea\"],\n [\"232\", \"Eritrea\"],\n [\"233\", \"Estonia\"],\n [\"748\", \"eSwatini\"],\n [\"231\", \"Ethiopia\"],\n [\"238\", \"Falkland Is.\"],\n [\"242\", \"Fiji\"],\n [\"246\", \"Finland\"],\n [\"260\", \"Fr. S. Antarctic Lands\"],\n [\"250\", \"France\"],\n [\"266\", \"Gabon\"],\n [\"270\", \"Gambia\"],\n [\"268\", \"Georgia\"],\n [\"276\", \"Germany\"],\n [\"288\", \"Ghana\"],\n [\"300\", \"Greece\"],\n [\"304\", \"Greenland\"],\n [\"320\", \"Guatemala\"],\n [\"324\", \"Guinea\"],\n [\"624\", \"Guinea-Bissau\"],\n [\"328\", \"Guyana\"],\n [\"332\", \"Haiti\"],\n [\"340\", \"Honduras\"],\n [\"348\", \"Hungary\"],\n [\"352\", \"Iceland\"],\n [\"356\", \"India\"],\n [\"360\", \"Indonesia\"],\n [\"364\", \"Iran\"],\n [\"368\", \"Iraq\"],\n [\"372\", \"Ireland\"],\n [\"376\", \"Israel\"],\n [\"380\", \"Italy\"],\n [\"388\", \"Jamaica\"],\n [\"392\", \"Japan\"],\n [\"400\", \"Jordan\"],\n [\"398\", \"Kazakhstan\"],\n [\"404\", \"Kenya\"],\n [\"414\", \"Kuwait\"],\n [\"417\", \"Kyrgyzstan\"],\n [\"418\", \"Laos\"],\n [\"428\", \"Latvia\"],\n [\"422\", \"Lebanon\"],\n [\"426\", \"Lesotho\"],\n [\"430\", \"Liberia\"],\n [\"434\", \"Libya\"],\n [\"440\", \"Lithuania\"],\n [\"442\", \"Luxembourg\"],\n [\"807\", \"Macedonia\"],\n [\"450\", \"Madagascar\"],\n [\"454\", \"Malawi\"],\n [\"458\", \"Malaysia\"],\n [\"466\", \"Mali\"],\n [\"478\", \"Mauritania\"],\n [\"484\", \"Mexico\"],\n [\"498\", \"Moldova\"],\n [\"496\", \"Mongolia\"],\n [\"499\", \"Montenegro\"],\n [\"504\", \"Morocco\"],\n [\"508\", \"Mozambique\"],\n [\"104\", \"Myanmar\"],\n [\"516\", \"Namibia\"],\n [\"524\", \"Nepal\"],\n [\"528\", \"Netherlands\"],\n [\"540\", \"New Caledonia\"],\n [\"554\", \"New Zealand\"],\n [\"558\", \"Nicaragua\"],\n [\"562\", \"Niger\"],\n [\"566\", \"Nigeria\"],\n [\"408\", \"North Korea\"],\n [\"578\", \"Norway\"],\n [\"512\", \"Oman\"],\n [\"586\", \"Pakistan\"],\n [\"275\", \"Palestine\"],\n [\"591\", \"Panama\"],\n [\"598\", \"Papua New Guinea\"],\n [\"600\", \"Paraguay\"],\n [\"604\", \"Peru\"],\n [\"608\", \"Philippines\"],\n [\"616\", \"Poland\"],\n [\"620\", \"Portugal\"],\n [\"630\", \"Puerto Rico\"],\n [\"634\", \"Qatar\"],\n [\"642\", \"Romania\"],\n [\"643\", \"Russia\"],\n [\"646\", \"Rwanda\"],\n [\"728\", \"S. Sudan\"],\n [\"682\", \"Saudi Arabia\"],\n [\"686\", \"Senegal\"],\n [\"688\", \"Serbia\"],\n [\"694\", \"Sierra Leone\"],\n [\"703\", \"Slovakia\"],\n [\"705\", \"Slovenia\"],\n [\"090\", \"Solomon Is.\"],\n [\"706\", \"Somalia\"],\n [\"710\", \"South Africa\"],\n [\"410\", \"South Korea\"],\n [\"724\", \"Spain\"],\n [\"144\", \"Sri Lanka\"],\n [\"729\", \"Sudan\"],\n [\"740\", \"Suriname\"],\n [\"752\", \"Sweden\"],\n [\"756\", \"Switzerland\"],\n [\"760\", \"Syria\"],\n [\"158\", \"Taiwan\"],\n [\"762\", \"Tajikistan\"],\n [\"834\", \"Tanzania\"],\n [\"764\", \"Thailand\"],\n [\"626\", \"Timor-Leste\"],\n [\"768\", \"Togo\"],\n [\"780\", \"Trinidad and Tobago\"],\n [\"788\", \"Tunisia\"],\n [\"792\", \"Turkey\"],\n [\"795\", \"Turkmenistan\"],\n [\"800\", \"Uganda\"],\n [\"804\", \"Ukraine\"],\n [\"784\", \"United Arab Emirates\"],\n [\"826\", \"United Kingdom\"],\n [\"840\", \"United States of America\"],\n [\"858\", \"Uruguay\"],\n [\"860\", \"Uzbekistan\"],\n [\"548\", \"Vanuatu\"],\n [\"862\", \"Venezuela\"],\n [\"704\", \"Vietnam\"],\n [\"732\", \"W. Sahara\"],\n [\"887\", \"Yemen\"],\n [\"894\", \"Zambia\"],\n [\"716\", \"Zimbabwe\"],\n];\n\nconst countryCodeToNameMap = countries.reduce((c, [code, name]) => {\n c[code] = name;\n return c;\n}, {});\n\nexport function countryCodeToName(code) {\n return countryCodeToNameMap[code] || \"Unknown\";\n}\n","import React, { useMemo } from \"react\";\nimport { geoEqualEarth, geoPath } from \"d3-geo\";\nimport countries from \"./countries-110m.json\";\nimport { numericToAlpha2 } from \"i18n-iso-countries\";\nimport { feature, mesh } from \"topojson-client\";\nimport { makeStyles, useMediaQuery, useTheme } from \"@material-ui/core\";\nimport { scaleThreshold } from \"d3-scale\";\nimport { schemePuRd } from \"d3-scale-chromatic\";\nimport UserTooltip from \"./UserTooltip\";\nimport { withContentRect } from \"react-measure\";\nimport { countryCodeToName } from \"./countries\";\nimport { Box } from \"@material-ui/core\";\nimport { MapContext } from \"./MapDataProvider\";\nimport Loading from \"./Loading\";\n\nconst mapWidth = 500;\nconst countriesTopo = {\n ...countries.objects.countries,\n geometries: countries.objects.countries.geometries.filter(\n (f) => f.id !== \"010\",\n ),\n};\nconst countryFeatures = feature(countries, countriesTopo);\nconst projection = geoEqualEarth()\n .rotate([-10, 0])\n .fitWidth([mapWidth], countryFeatures);\nconst path = geoPath(projection);\nconst bounds = path.bounds(countryFeatures);\nconst mapHeight = bounds[1][1] - bounds[0][1];\nconst countryPathsData = countryFeatures.features.map((countryFeature) => ({\n id: countryFeature.id,\n countryAlpha2: numericToAlpha2(countryFeature.id),\n name: countryFeature.properties.name,\n svgPath: path(countryFeature),\n}));\nconst boundariesPath = path(mesh(countries, countriesTopo));\nconst useStyles = makeStyles(() => ({\n mapBox: {\n backgroundColor: \"#fff\",\n borderRadius: \"1rem\",\n padding: \"1.5rem\",\n height: \"100%\",\n },\n mapContainer: {\n flex: \"1 0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n height: \"75vh\",\n },\n scaleContainer: {\n padding: 5,\n alignSelf: \"center\",\n },\n}));\nconst MapHeatmap = withContentRect(\"bounds\")(({\n onSelectCountry,\n measureRef,\n contentRect,\n}) => {\n const classes = useStyles();\n const { countryCounts, total } = React.useContext(MapContext);\n let { width, height } = contentRect.bounds;\n const theme = useTheme();\n const matches = useMediaQuery(theme.breakpoints.down(\"sm\"));\n if (matches) {\n height = (width / mapWidth) * mapHeight;\n }\n const colorScale = useMemo(() => {\n const thresholds = [1, 2, 5, 10, 20, 50, 100];\n const colors = schemePuRd[thresholds.length + 1];\n colors[0] = \"#fff\";\n return scaleThreshold().domain(thresholds).range(colors);\n }, []);\n\n if (total === 0) {\n return (\n \n \n \n );\n }\n\n return (\n <>\n \n
\n {width && height && (\n \n \n {countryPathsData.map((country, i) => (\n \n onSelectCountry(country.countryAlpha2)}\n />\n \n ))}\n \n \n \n )}\n
\n
\n \n 1\n
\n \n 2\n \n \n 5\n \n \n 10\n \n \n 20\n \n \n 50\n \n \n 100\n \n \n 100+\n \n \n {/*
\n \n
*/}\n
\n \n );\n});\nexport default MapHeatmap;\n","import {\n Box,\n Grid,\n Link,\n makeStyles,\n SvgIcon,\n Typography,\n} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n logo: {\n height: 37.5,\n [theme.breakpoints.only(\"xs\")]: {\n paddingLeft: \"1rem\",\n paddingRight: \"1rem\",\n },\n },\n passportIcon: {\n width: \"16px\",\n height: \"16px\",\n marginRight: \"0.5rem\",\n },\n passportButton: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: 28,\n fontSize: \"14px\",\n padding: \"1rem\",\n width: \"fit-content\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontWeight: \"400\",\n boxShadow: \"0.67px 0.67px 4px 0 rgba(0,0,0,0.1)\",\n maxWidth: \"206px\",\n maxHeight: \"40px\",\n transition: \"0.3s\",\n \"&:hover\": {\n backgroundColor: \"#D3D3D3\",\n },\n },\n passportLink: {\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n },\n menu: {\n justifyContent: \"space-between\",\n },\n}));\nconst Menu = () => {\n const classes = useStyles();\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 Users\n \n \n \n \n \n \n \n \n Get Your Passport\n \n \n \n \n );\n};\n\nexport default Menu;\n","import CssBaseline from \"@material-ui/core/CssBaseline\";\nimport { createTheme, makeStyles, ThemeProvider } from \"@material-ui/core\";\nimport Sidebar from \"./sidebar/Sidebar\";\nimport { Grid } from \"@material-ui/core\";\nimport { useState } from \"react\";\nimport MapHeatmap from \"./MapHeatmap\";\nimport { MapDataProvider } from \"./MapDataProvider\";\nimport Menu from \"./Menu\";\n\nconst defaultTheme = createTheme();\nconst theme = createTheme({\n breakpoints: {\n values: {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1280,\n xl: 1536,\n },\n },\n palette: {\n type: \"light\",\n background: {\n default: \"hsl(210, 14%, 97%)\",\n },\n primary: {\n main: \"#323334\",\n },\n },\n typography: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n paddingLeft: \"0.75rem\",\n paddingRight: \"0.75rem\",\n h1: {\n //Artist Name\n fontFamily: [\"Lexend Deca\", \"sans-serif\"].join(\",\"),\n color: `hsl(210, 2%, 20%)`, //palette.primary.main\n fontSize: \"28px\",\n fontWeight: 700,\n letterSpacing: \"normal\",\n },\n h2: {\n //Login, Sign up\n fontFamily: [\"Lexend Deca\", \"sans-serif\"].join(\",\"),\n color: `hsl(210, 2%, 20%)`, //palette.primary.main\n fontSize: \"20px\",\n fontWeight: 700,\n letterSpacing: \"normal\",\n },\n h3: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n textTransform: \"Capitalize\",\n fontWeight: \"500\",\n fontSize: 20,\n color: `hsl(210, 2%, 20%)`, //palette.primary.main\n },\n h4: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n fontWeight: \"500\",\n fontSize: 16,\n color: `hsl(210, 2%, 40%)`, //palette.primary.hint\n },\n h5: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n color: `hsl(210, 2%, 20%)`, //palette.primary.main\n fontSize: 14,\n fontWeight: 700,\n },\n body1: {\n fontFamily: [\"Roboto\", \"sans-serif\"].join(\",\"),\n fontSize: 14,\n color: `hsl(210, 2%, 20%)`, //palette.primary.main\n },\n body2: {\n fontSize: 14,\n color: \"#646668\", //palette.primary.main\n },\n subtitle1: {\n fontSize: 12,\n lineHeight: 1.5,\n color: \"hsl(210, 2%, 20%)\", //palette.primary.main\n },\n help: {\n height: \"16px\",\n color: \"hsl(210, 34%, 47%)\", //palette.blue.dark\n width: \"100%\",\n textAlign: \"left\",\n alignItems: \"center\",\n fontFamily: \"Heebo, Sans-serif\",\n fontSize: \"12px\",\n display: \"flex\",\n },\n },\n\n overrides: {\n MuiCssBaseline: {\n \"@global\": {\n html: {\n WebkitFontSmoothing: \"auto\",\n [defaultTheme.breakpoints.down(\"sm\")]: {\n overflowY: \"scroll\",\n },\n },\n },\n },\n },\n});\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n [theme.breakpoints.only(\"xl\")]: {\n paddingRight: \"4rem\",\n paddingLeft: \"4rem\",\n },\n [theme.breakpoints.only(\"lg\")]: {\n paddingRight: \"4rem\",\n paddingLeft: \"4rem\",\n },\n [theme.breakpoints.only(\"md\")]: {\n paddingRight: \"4rem\",\n paddingLeft: \"4rem\",\n },\n [theme.breakpoints.only(\"sm\")]: {\n paddingLeft: \"1rem\",\n paddingRight: \"1rem\",\n },\n [theme.breakpoints.only(\"xs\")]: {\n paddingLeft: \"0rem\",\n paddingRight: \"0rem\",\n },\n marginTop: \"17px\",\n marginBottom: \"1rem\",\n },\n main: {\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100vh - 88px)\",\n [theme.breakpoints.down(\"sm\")]: {\n flexBasis: \"100%\",\n },\n [theme.breakpoints.up(\"md\")]: {\n height: \"100vh\",\n },\n },\n header: {\n padding: \"1rem\",\n [theme.breakpoints.up(\"md\")]: {\n padding: \"1rem 4rem\",\n },\n },\n button: {\n color: \"black\",\n backgroundColor: \"white\",\n },\n box: {\n height: \"100%\",\n },\n}));\n\nfunction App() {\n const classes = useStyles();\n const [countryAlpha2, setCountryAlpha2] = useState();\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\nexport default App;\n","import \"fontsource-roboto\";\nimport \"fontsource-roboto\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport App from \"./App\";\n\nReactDOM.render(, document.getElementById(\"root\"));\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":""}