{"version":3,"file":"ed9d015b380e51a5805261dd58777d276bb36d36-2672dbb8cca4813d9a97.js","mappings":"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","sources":["webpack://imf-2022/./src/components/downloads.js","webpack://imf-2022/./src/components/hero.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from \"react\"\nimport { withPrefix } from \"gatsby\"\nimport Layout from \"../components/layout\"\nimport Page from \"../components/page\"\nimport Hero from \"../components/hero\"\nimport Image from \"../components/image\"\nimport { PageColumns, Column } from \"../components/page-column\"\nimport DownloadFullReport from \"../components/download-full-report\"\nimport downloadTranslations from \"../data/download-translations.json\"\nimport menu from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Helmet } from \"react-helmet\"\n\nexport default function Downloads({ language }) {\n const textRef = useRef()\n const [languageRTL, setLanguageRTL] = useState(false)\n const [translation, setTranslation] = useState(\n findObject(downloadTranslations, \"language\", \"en\") // Default to English\n )\n\n const downloadResources = findObject(\n menu,\n \"name\",\n \"Downloads\"\n ).children.filter(child => child.name !== \"Download Full Report\")\n\n useEffect(() => {\n let validTranslation = findObject(\n downloadTranslations,\n \"language\",\n language\n )\n\n if (validTranslation) {\n setTranslation(validTranslation)\n setLanguageRTL(validTranslation.language === \"ar\")\n }\n\n textRef.current.innerHTML = translation.text\n }, [language, translation])\n\n return (\n <Layout>\n <Helmet>\n <html lang={translation.language} />\n </Helmet>\n\n <Hero\n title={translation.header}\n classes={languageRTL ? \"util__rtl\" : \"\"}\n basic\n />\n\n <Page classes={`downloads ${languageRTL ? \"util__rtl\" : \"\"}`}>\n <PageColumns align=\"center\">\n <Column location=\"right\">\n <div className=\"downloads__report\">\n <a\n href={withPrefix(\"/\") + translation.download.href}\n className=\"downloads__report__image-link\"\n >\n <Image\n path={translation.download.image}\n alt={translation.download.alt}\n />\n </a>\n <a\n className=\"cta cta--primary\"\n href={withPrefix(\"/\") + translation.download.href}\n >\n {translation.download.cta}\n </a>\n </div>\n </Column>\n\n <Column>\n <div className=\"text-block\" ref={textRef} />\n </Column>\n </PageColumns>\n\n <PageColumns modifiers=\"downloads__resources\">\n <Column>\n <h2 className=\"h2 util__text-centered\">{translation.resources}</h2>\n\n {downloadResources && (\n <div className=\"downloads__resources__list\">\n <ul>\n {downloadResources.map((item, index) => (\n <li key={`download-resources-${index}`}>\n <a\n className=\"title title--xs title--bold\"\n href={withPrefix(\"/\") + item.href}\n >\n {translation[item.name]}\n </a>\n </li>\n ))}\n\n {/* Manually include Photo Credits */}\n <li>\n <a\n className=\"title title--xs title--bold\"\n href={withPrefix(\"/\") + \"downloads/photo-credits.pdf\"}\n >\n {translation[\"Photo Credits\"]}\n </a>\n </li>\n </ul>\n </div>\n )}\n\n <DownloadFullReport\n location=\"page\"\n title={translation.download_the_pdf_report}\n title_size=\"s\"\n />\n </Column>\n </PageColumns>\n </Page>\n </Layout>\n )\n}\n","import React, { useState } from \"react\"\nimport Image from \"../components/image\"\nimport VisibilitySensor from \"react-visibility-sensor\"\nimport HeroMask from \"../components/svg/hero-mask\"\n\n/* Notes: \nVideos should placed in the `public > video` folder and referenced like '/video/covid-19/example.mp4'\n*/\n\nexport default function Hero({\n video,\n image,\n alt,\n title,\n text,\n basic,\n classes,\n}) {\n const [loaded, setLoaded] = useState(false)\n const prefersReducedMotion =\n typeof window !== \"undefined\"\n ? window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n : false\n\n // Only play the animation once based on the 'loaded' state\n const onChange = isVisible => {\n isVisible ? setLoaded(true) : setLoaded(false)\n }\n return (\n <section\n className={`\n hero\n ${video ? \"hero--video\" : \"\"}\n ${basic ? \"hero--basic\" : \"\"}\n ${!image ? \"hero--no-image\" : \"\"}\n ${classes ? classes : \"\"}\n `}\n >\n <div className=\"container\">\n {title ? (\n <header>\n <h1 className=\"hero__title\">{title}</h1>{\" \"}\n {text ? <p className=\"hero__subtitle\">{text}</p> : null}\n </header>\n ) : null}\n {video || image ? (\n <VisibilitySensor\n onChange={onChange}\n active={!loaded}\n partialVisibility={true}\n offset={{ bottom: 200 }}\n >\n <div\n className={`hero__media ${\n loaded ? \"hero__media--show\" : \"hero__media--hidden\"\n }`}\n >\n <HeroMask />\n {video && prefersReducedMotion && <Image path={image} />}\n {video && !prefersReducedMotion ? (\n <>\n <video\n src={video}\n muted\n autoPlay\n loop\n playsInline\n controls\n className=\"util__desktop-only\"\n controlsList=\"nofullscreen nodownload\"\n ></video>\n <Image className=\"util__mobile-only\" path={image} />\n </>\n ) : image ? (\n <Image path={image} alt={alt} />\n ) : null}\n </div>\n </VisibilitySensor>\n ) : null}\n </div>\n </section>\n )\n}\n\nexport const HeroCaption = ({ children }) => {\n return (\n <div className=\"hero__caption\">\n <div className=\"hero__caption__inner\">{children}</div>\n </div>\n )\n}\n"],"names":["Downloads","language","textRef","useRef","languageRTL","setLanguageRTL","useState","translation","setTranslation","findObject","downloadTranslations","downloadResources","menu","children","filter","child","name","useEffect","validTranslation","current","innerHTML","text","Helmet","lang","title","header","classes","basic","align","location","className","href","withPrefix","download","path","image","alt","cta","ref","modifiers","resources","map","item","index","key","download_the_pdf_report","title_size","Hero","video","loaded","setLoaded","prefersReducedMotion","window","matchMedia","matches","onChange","isVisible","active","partialVisibility","offset","bottom","src","muted","autoPlay","loop","playsInline","controls","controlsList","HeroCaption"],"sourceRoot":""}