{"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":""}