{"version":3,"sources":["webpack://web-development-blog/./src/components/Button.js","webpack://web-development-blog/./src/components/CarbonAds.js","webpack://web-development-blog/./src/components/SubscribeForm.js","webpack://web-development-blog/./src/templates/snippet.js"],"names":["Button","render","this","props","text","link","linkType","type","margin","Link","to","className","href","target","rel","React","CarbonAds","ref","useRef","useEffect","container","current","timeout","setTimeout","script","document","createElement","src","async","id","appendChild","clearTimeout","method","action","htmlFor","name","autoComplete","required","placeholder","Template","sourceCodeLink","prevLink","nextLink","data","pageContext","markdownRemark","frontmatter","html","title","subtitle","date","sourceCode","path","previous","next","description","url","dangerouslySetInnerHTML","__html"],"mappings":"mKAGMA,E,6FACJC,OAAA,WACE,MAA+CC,KAAKC,MAA5CC,EAAR,EAAQA,KAAMC,EAAd,EAAcA,KAAMC,EAApB,EAAoBA,SAAUC,EAA9B,EAA8BA,KAAMC,EAApC,EAAoCA,OACpC,OAAIH,GAAqB,aAAbC,EAER,gBAAC,EAAAG,KAAD,CAAMC,GAAIL,GACR,0BACEE,KAAMA,GAAc,GACpBI,WACEH,EAAM,WADC,uLAIRJ,IAIEC,GAAqB,aAAbC,EAEf,qBAAGM,KAAMP,EAAMQ,OAAO,SAASC,IAAI,uBACjC,0BACEH,WACEH,EAAM,WADC,wLAIRJ,IAML,0BACEG,KAAMA,GAAc,GACpBI,WACEH,EAAM,WADC,uLAIRJ,I,GApCUW,aA2CrB,O,gFCzCaC,EAAYD,QAAW,WAClC,IAAME,GAAMC,cAeZ,OAbAC,gBAAU,WACR,IAAMC,EAAYH,EAAII,QAChBC,EAAUC,YAAW,WACzB,IAAMC,EAASC,SAASC,cAAc,UACtCF,EAAOG,IATX,kFAUIH,EAAOI,OAAQ,EACfJ,EAAOK,GAAK,gBACZT,EAAUU,YAAYN,KACrB,KAEH,OAAO,kBAAMO,aAAaT,MACzB,CAACL,IAEG,uBAAKA,IAAKA,Q,gDCoBnB,IAvCsB,kBACpB,wBACEe,OAAO,OACPC,OAAO,wGACPtB,UAAU,sBACVE,OAAO,UAEP,uBAAKF,UAAU,2FACb,uBAAKA,UAAU,+BACb,sBAAIA,UAAU,2BAAd,6BACA,qBAAGA,UAAU,qCAAb,2GAKF,uBAAKA,UAAU,uDACb,yBAAOuB,QAAQ,QAAQvB,UAAU,WAAjC,iBAGA,yBACEkB,GAAG,QACHM,KAAK,QACL5B,KAAK,QACL6B,aAAa,QACbC,UAAQ,EACR1B,UAAU,mFACV2B,YAAY,eAEd,0BACE/B,KAAK,SACLI,UAAU,+SAFZ,gB,yJCtBO,SAAS4B,EAAT,GAA0C,IAMnDC,EAYAC,EASAC,EA3B6BC,EAAqB,EAArBA,KAAMC,EAAe,EAAfA,YAC/BC,EAAmBF,EAAnBE,eACAC,EAAsBD,EAAtBC,YAAaC,EAASF,EAATE,KACbC,EAA4CF,EAA5CE,MAAOC,EAAqCH,EAArCG,SAAUC,EAA2BJ,EAA3BI,KAAMC,EAAqBL,EAArBK,WAAYC,EAASN,EAATM,KACnCC,EAAmBT,EAAnBS,SAAUC,EAASV,EAATU,KAgClB,OA7BIH,IACFX,EACE,gBAAC,IAAD,CACEpC,KAAK,gBACLC,KAAM8C,EACN7C,SAAS,WACTK,UAAU,UAMZ0C,IACFZ,EACE,gBAAC,EAAAhC,KAAD,CAAMC,GAAI2C,EAASP,YAAYM,KAAMzC,UAAU,OAA/C,KACW0C,EAASP,YAAYE,QAMhCM,IACFZ,EACE,gBAAC,EAAAjC,KAAD,CAAMC,GAAI4C,EAAKR,YAAYM,KAAMzC,UAAU,OACxC2C,EAAKR,YAAYE,MADpB,OAOF,gBAAC,IAAD,KACE,gBAAC,IAAD,CAAKA,MAAOA,EAAOO,YAAaN,EAAUO,IAAKJ,IAC/C,uBAAKzC,UAAU,4BACb,uBAAKA,UAAU,yBACb,sBAAIA,UAAU,sBAAsBqC,GACpC,sBAAIrC,UAAU,+BAA+BsC,GAC7C,yBAAIC,IAEN,uBAAKvC,UAAU,yCACb,gBAAC,IAAD,OAEF,uBAAKA,UAAU,6CACb,uBAAK8C,wBAAyB,CAAEC,OAAQX,KACvCP,EACD,2BACA,uBAAK7B,UAAU,kDACZ8B,EACAC,IAGL,gBAAC,IAAD","file":"component---src-templates-snippet-js-da70a717cf6a8ba472c4.js","sourcesContent":["import React from 'react'\nimport { Link } from 'gatsby'\n\nclass Button extends React.Component {\n render() {\n const { text, link, linkType, type, margin } = this.props\n if (link && linkType === 'internal') {\n return (\n \n `}\n >\n {text}\n \n \n )\n } else if (link && linkType === 'external') {\n return (\n \n `}\n >\n {text}\n \n \n )\n } else {\n return (\n `}\n >\n {text}\n \n )\n }\n }\n}\n\nexport default Button\n","import React, { useRef, useEffect } from 'react'\n\nconst CARBON_URL =\n 'https://cdn.carbonads.com/carbon.js?serve=CESDK2QM&placement=stevencotterillcom'\n\nexport const CarbonAds = React.memo(() => {\n const ref = useRef()\n\n useEffect(() => {\n const container = ref.current\n const timeout = setTimeout(() => {\n const script = document.createElement('script')\n script.src = CARBON_URL\n script.async = true\n script.id = '_carbonads_js'\n container.appendChild(script)\n }, 100)\n\n return () => clearTimeout(timeout)\n }, [ref])\n\n return
\n})\n","import React from 'react'\n\nconst SubscribeForm = () => (\n \n
\n
\n

Sign up for my newsletter

\n

\n Get notified when I post a new article. Unsubscribe at any time, and I\n promise not to send any spam :)\n

\n
\n
\n \n \n \n Sign up\n \n
\n
\n \n)\n\nexport default SubscribeForm\n","import React from 'react'\nimport { graphql, Link } from 'gatsby'\nimport Layout from '../components/Layout'\nimport Seo from '../components/Seo'\nimport Button from '../components/Button'\nimport SubscribeForm from '../components/SubscribeForm'\nimport { CarbonAds } from '../components/CarbonAds'\n\nexport default function Template({ data, pageContext }) {\n const { markdownRemark } = data\n const { frontmatter, html } = markdownRemark\n const { title, subtitle, date, sourceCode, path } = frontmatter\n const { previous, next } = pageContext\n\n let sourceCodeLink\n if (sourceCode) {\n sourceCodeLink = (\n \n )\n }\n\n let prevLink\n if (previous) {\n prevLink = (\n \n « {previous.frontmatter.title}\n \n )\n }\n\n let nextLink\n if (next) {\n nextLink = (\n \n {next.frontmatter.title} »\n \n )\n }\n\n return (\n \n \n
\n
\n

{title}

\n

{subtitle}

\n

{date}

\n
\n
\n \n
\n
\n
\n {sourceCodeLink}\n
\n
\n {prevLink}\n {nextLink}\n
\n
\n \n
\n \n )\n}\n\nexport const pageQuery = graphql`\n query($path: String!) {\n markdownRemark(frontmatter: { path: { eq: $path } }) {\n html\n id\n frontmatter {\n path\n title\n subtitle\n date(formatString: \"MMMM YYYY\")\n sourceCode\n }\n }\n }\n`\n"],"sourceRoot":""}