{"version":3,"sources":["webpack://cep-gatsby-starter-code/./src/components/Video/index.js","webpack://cep-gatsby-starter-code/./src/templates/Blog.js"],"names":["Video","src","guidSrc","youTubeID","poster","title","autoplay","loop","className","other","useState","ready","setReady","hostname","setHostname","useImageQuery","getFinalImagePath","getFinalImagePathByFilename","site","useStaticQuery","useEffect","window","location","protocol","port","classNames","width","height","frameBorder","allowFullScreen","qs","startsWith","imagePath","encodeURI","siteMetadata","gaId","getQueryString","defaultProps","blog","data","Link","to","moment","date","format","size","offset","video","author","text","map","paragraph","index","dangerouslySetInnerHTML","__html","key"],"mappings":"sRAOMA,EAAQ,SAAC,GAUR,IATLC,EASI,EATJA,IACAC,EAQI,EARJA,QACAC,EAOI,EAPJA,UACAC,EAMI,EANJA,OAGAC,GAGI,EALJC,SAKI,EAJJC,KAII,EAHJF,OACAG,EAEI,EAFJA,UACGC,GACC,YACJ,GAA0BC,eAAS,GAA5BC,EAAP,KAAcC,EAAd,KACA,GAAgCF,cAAS,IAAlCG,EAAP,KAAiBC,EAAjB,KACA,GAA2DC,SAAnDC,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,4BAEnBC,GAASC,oBAAe,aAAxBD,MAWRE,gBAAU,WACRN,EACEO,OAAOC,SAASC,SACd,KACAF,OAAOC,SAAST,UACfQ,OAAOC,SAASE,KAAO,IAAMH,OAAOC,SAASE,KAAO,KAEzDZ,GAAS,KACR,IAwBH,OACE,gCACGD,GACC,qCAAKH,UAAWiB,IAAW,QAASjB,IAAgBC,GACjDN,EACC,0BACEF,IAAG,iCAAmCE,EACtCE,MAAOA,EACPqB,MAAM,OACNC,OAAO,MACPC,YAAY,IACZC,iBAAe,EACfrB,UAAU,YAEV,KACHN,EACC,0BACED,IACEA,EAAG,wCAxCM,WACrB,IAAI6B,EAAE,YAAe7B,EAErB,GAAIG,EACF,GAAIA,EAAO2B,WAAW,aAAe3B,EAAO2B,WAAW,WACrDD,GAAE,cAAkB1B,MACf,CAEL,IAAI4B,EAAYhB,EAAkBZ,GAC7B4B,IACHA,EAAYf,EAA4Bb,IAE1C0B,GAAE,cAAkBG,UAAUpB,EAAWmB,GAO7C,OAJId,EAAKgB,aAAaC,OACpBL,GAAE,SAAaZ,EAAKgB,aAAaC,MAG5BL,EAsBiDM,GADzC,4DAE6DlC,EAF7D,yCAILG,MAAOA,EACPqB,MAAM,OACNC,OAAO,MACPC,YAAY,IACZC,iBAAe,IAEf,QAOd7B,EAAMqC,aAAe,CACnBpC,IAAK,KACLG,OAAQ,KACRE,UAAU,EACVC,MAAM,EACNC,UAAW,MAsBb,O,4HC/CA,UAxEa,SAAC,GAAc,IACpB8B,EADmB,EAAXC,KACID,KAClB,OACE,gBAAC,IAAD,CAAQjC,MAAOiC,EAAKjC,MAAOG,UAAU,kCAEnC,gBAAC,IAAD,KACE,gBAAC,KAAD,KAEE,sBAAIA,UAAU,uBACZ,sBAAIA,UAAU,cACZ,gBAAC,EAAAgC,KAAD,CAAMC,GAAG,2CAAT,SAEF,sBAAIjC,UAAU,cACZ,gBAAC,EAAAgC,KAAD,CAAMC,GAAG,wCAAT,yBAIF,sBAAIjC,UAAU,cAAckC,IAAOJ,EAAKK,MAAMC,OAAO,SACrD,sBAAIpC,UAAU,qBAAqB8B,EAAKjC,QAE1C,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAQwC,KAAM,GAAIC,OAAQ,EAAGtC,UAAU,WACrC,sBAAIA,UAAU,cAAc8B,EAAKjC,OAEhCiC,EAAKS,OACJ,uBAAKvC,UAAU,+BACb,uBAAKA,UAAU,gBACb,gBAAC,IAAD,CAAOL,UAAWmC,EAAKS,MAAOvC,UAAU,kBAatD,gBAAC,IAAD,CAASA,UAAU,QACjB,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAQqC,KAAM,EAAGC,OAAQ,GACvB,sBAAItC,UAAU,aACX8B,EAAKU,QAAU,kCAAUV,EAAKU,OAAf,OACfN,IAAOJ,EAAKK,MAAMC,OAAO,kBAE3BN,EAAKW,KAAKC,KAAI,SAACC,EAAWC,GAAZ,OACb,qBAAGC,wBAAyB,CAAEC,OAAQH,GAAYI,IAAKH","file":"component---src-templates-blog-js-0c3b4739fff3171b6b5b.js","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport useImageQuery from '../../hooks/useImageQuery';\nimport './styles.scss';\n\nconst Video = ({\n src,\n guidSrc,\n youTubeID,\n poster,\n autoplay,\n loop,\n title,\n className,\n ...other\n}) => {\n const [ready, setReady] = useState(false);\n const [hostname, setHostname] = useState('');\n const { getFinalImagePath, getFinalImagePathByFilename } = useImageQuery();\n\n const { site } = useStaticQuery(graphql`\n query {\n site {\n siteMetadata {\n gaId\n }\n }\n }\n `);\n\n // This will run once after the initial render.\n useEffect(() => {\n setHostname(\n window.location.protocol +\n '//' +\n window.location.hostname +\n (window.location.port ? ':' + window.location.port : '')\n );\n setReady(true);\n }, []);\n\n const getQueryString = () => {\n let qs = `videoSrc=${src}`;\n\n if (poster) {\n if (poster.startsWith('https://') || poster.startsWith('http://')) {\n qs += `&posterSrc=${poster}`;\n } else {\n // If we reach here, this must be a local path\n let imagePath = getFinalImagePath(poster);\n if (!imagePath) {\n imagePath = getFinalImagePathByFilename(poster);\n }\n qs += `&posterSrc=${encodeURI(hostname + imagePath)}`;\n }\n }\n if (site.siteMetadata.gaId) {\n qs += `&gaId=${site.siteMetadata.gaId}`;\n }\n\n return qs;\n };\n\n return (\n <>\n {ready && (\n
\n {youTubeID ? (\n \n ) : null}\n {guidSrc ? (\n \n ) : null}\n
\n )}\n \n );\n};\n\nVideo.defaultProps = {\n src: null,\n poster: null,\n autoplay: false,\n loop: false,\n className: null,\n};\n\nVideo.propTypes = {\n /** The URL of the video src. */\n src: PropTypes.string,\n /** The GUID for the video. */\n guidSrc: PropTypes.string,\n /** The GUID for the video. */\n youTubeID: PropTypes.string,\n /** The title of the video */\n title: PropTypes.string,\n /** The URL for a poster image */\n poster: PropTypes.string,\n /** Toggle autoplay */\n autoplay: PropTypes.bool,\n /** Toggle autoplay */\n loop: PropTypes.bool,\n /** A custom class name */\n className: PropTypes.string,\n};\n\nexport default Video;\n","import { graphql, Link } from 'gatsby';\nimport moment from 'moment/moment';\nimport React from 'react';\nimport { Column, Container, Row } from '../components/Grid';\nimport Layout from '../components/Layout';\nimport Section from '../components/Section';\nimport Video from '../components/Video';\n\nconst Blog = ({ data }) => {\n const blog = data.blog;\n return (\n \n {/* Intro Title and Video */}\n
\n \n {/* Breadcrumbs */}\n
    \n
  • \n News\n
  • \n
  • \n \n Young Scientist Blog\n \n
  • \n
  • {moment(blog.date).format('YYYY')}
  • \n
  • {blog.title}
  • \n
\n \n \n

{blog.title}

\n {/* Blog Post Video Container */}\n {blog.video && (\n
\n
\n \n {/* */}\n
\n {/* \n \n */}\n
\n )}\n
\n
\n
\n
\n {/* Main Blog Content */}\n
\n \n \n \n

\n {blog.author && By {blog.author} | }\n {moment(blog.date).format('MMMM DD, YYYY')}\n

\n {blog.text.map((paragraph, index) => (\n

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

\n
\n );\n};\n\nexport const query = graphql`\n query ($slug: String!) {\n blog: blogsYaml(slug: { eq: $slug }) {\n title\n text\n video\n author\n date\n thumbnail\n }\n }\n`;\n\nexport default Blog;\n"],"sourceRoot":""}