-
Notifications
You must be signed in to change notification settings - Fork 1
/
component---src-pages-contact-js-9ab449a7a02025ffc72a.js.map
1 lines (1 loc) · 44.3 KB
/
component---src-pages-contact-js-9ab449a7a02025ffc72a.js.map
1
{"version":3,"sources":["webpack:///./src/components/TextField/TextField.jsx","webpack:///./src/util/formik-custom-fields.jsx","webpack:///./src/forms/Contact.jsx","webpack:///./src/pages/contact.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./.cache/public-page-renderer.js","webpack:///./src/components/Button/Button.jsx","webpack:///./src/components/seo.js","webpack:///./src/util/fontAwesome.js","webpack:///./src/util/scrollTrack.js","webpack:///./src/components/MenuIcon/MenuIcon.jsx","webpack:///./src/components/Header/Header.jsx","webpack:///./src/components/Footer/Footer.jsx","webpack:///./src/components/Layout/Layout.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./src/images/idplogo.svg"],"names":["TextField","props","_this","_React$Component","call","this","state","focused","textAreaHeight","handleChange","bind","assertThisInitialized_default","e","_this2","_this$props","onChange","multiLine","window","setTimeout","setState","textArea","scrollHeight","render","_this3","_this$props2","value","className","name","disabled","required","type","errorText","defaultValue","onBlur","onFocus","inputRef","label","maxLength","uppercase","touched","min","max","rows","_this$state","handleFocus","handleBlur","wrapperClasses","styles","wrapper","active","error","join","labelClasses","errorTextClasses","react_default","a","createElement","ref","el","style","height","React","Component","propTypes","PropTypes","string","isRequired","bool","node","number","defaultProps","renderTextField","_ref","field","form","custom","objectWithoutPropertiesLoose_default","TextField_TextField","Object","assign","_","get","errors","Contact","light","formik_esm","initialValues","emailAddress","message","validationSchema","yup","shape","email","onSubmit","values","_ref2","obj","setSubmitting","setStatus","fetch","method","headers","Content-Type","body","keys","map","k","encodeURIComponent","then","_ref3","status","console","log","Error","formSubmitted","catch","formError","_ref4","handleSubmit","isSubmitting","component","react","textAlign","Button","cta","loading","SecondPage","Layout","seo","title","forms_Contact","__webpack_require__","d","__webpack_exports__","StaticQuery","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","prop_types__WEBPACK_IMPORTED_MODULE_1__","prop_types__WEBPACK_IMPORTED_MODULE_1___default","gatsby_link__WEBPACK_IMPORTED_MODULE_2__","gatsby_link__WEBPACK_IMPORTED_MODULE_2___default","StaticQueryContext","createContext","Consumer","staticQueryData","data","query","children","object","func","m","module","exports","require","default","to","link","icon","onClick","react__WEBPACK_IMPORTED_MODULE_1___default","button","withIcon","open","navigate","element","SEO","description","lang","meta","keywords","site","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_0__","metaDescription","siteMetadata","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","content","property","author","concat","length","href","rel","arrayOf","library","add","faTh","faChevronDown","faLongArrowAltRight","faBookmark","faFacebook","faTwitter","faInstagram","faLinkedin","faGithub","scrollEvent","fromEvent","undefined","MenuIcon","role","tabIndex","Header","toggleMenu","closeMenu","menuOpen","scrollPos","hide","componentDidMount","pipe","topPos","document","getBoundingClientRect","top","subscribe","show","headerClasses","header","createNavLink","path","gatsby_browser_entry","navLink","activeClassName","activeNavLink","partiallyActive","includes","navigationHeader","headerLogo","src","alt","components_MenuIcon_MenuIcon","menuIcon","menu","Footer","footer","container","about","contact","social","target","react_fontawesome_index_es","copyright","Date","getFullYear","pageTitle","Header_Header","components_Footer_Footer","_755544856","ProdPageRenderer","location","pageResources","loader","getResourcesForPathnameSync","pathname","InternalPageRenderer","json"],"mappings":"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","file":"component---src-pages-contact-js-9ab449a7a02025ffc72a.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './TextField.module.scss';\n\nexport default class TextField extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n focused: false,\n textAreaHeight: 'auto',\n };\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(e) {\n const { onChange, multiLine } = this.props;\n onChange(e);\n // update textarea height\n if (multiLine) {\n window.setTimeout(() => {\n this.setState({ textAreaHeight: 'auto' });\n this.setState({ textAreaHeight: `${this.textArea.scrollHeight}px` });\n }, 0);\n }\n }\n\n render() {\n const {\n className,\n value,\n name,\n required,\n disabled,\n type,\n defaultValue,\n errorText,\n multiLine,\n onBlur,\n onFocus,\n inputRef,\n label,\n uppercase,\n touched,\n maxLength,\n min,\n max,\n rows,\n } = this.props;\n const { textAreaHeight, focused } = this.state;\n\n const handleFocus = (e) => {\n this.setState({ focused: true });\n if (onFocus) {\n onFocus(e);\n }\n };\n\n const handleBlur = (e) => {\n if (onBlur) {\n onBlur(e);\n }\n this.setState({ focused: false });\n };\n\n const wrapperClasses = [\n styles.wrapper,\n value && styles.value,\n this.state.focused && styles.active,\n disabled && styles.disabled,\n errorText && styles.error,\n ].join(' ');\n\n const labelClasses = [\n styles.label,\n ].join(' ');\n\n const errorTextClasses = [\n styles.errorText,\n 'shake',\n ].join(' ');\n\n const fieldType = () => {\n if (multiLine) {\n return (\n <textarea\n rows={rows}\n value={value}\n name={name}\n onChange={e => this.handleChange(e)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={(el) => { this.textArea = el; }}\n style={{ height: textAreaHeight }}\n disabled={disabled}\n />\n );\n }\n return (\n <input\n value={value}\n name={name}\n type={type && type}\n onChange={e => this.handleChange(e)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={inputRef}\n maxLength={maxLength}\n disabled={disabled}\n min={min}\n max={max}\n />\n );\n };\n\n return (\n <div className={wrapperClasses} ref={(el) => { this.wrapper = el; }}>\n <div className={labelClasses}>{label}</div>\n {fieldType()}\n {errorText &&\n <div className={errorTextClasses}>{errorText}</div>\n }\n </div>\n );\n }\n}\n\nTextField.propTypes = {\n value: PropTypes.string,\n name: PropTypes.string.isRequired,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n label: PropTypes.string,\n multiLine: PropTypes.bool,\n errorText: PropTypes.node,\n touched: PropTypes.bool,\n uppercase: PropTypes.bool,\n maxLength: PropTypes.number,\n min: PropTypes.string,\n max: PropTypes.string,\n rows: PropTypes.number,\n};\n\nTextField.defaultProps = {\n value: '',\n required: false,\n disabled: false,\n label: null,\n errorText: null,\n multiLine: false,\n touched: false,\n uppercase: false,\n maxLength: 524288,\n min: null,\n max: null,\n rows: 1,\n};","import React from 'react';\nimport _ from 'lodash';\nimport TextField from '../components/TextField/TextField';\n\n\nexport const renderTextField = ({ field, form, label, ...custom }) => (\n <TextField\n name={field.name}\n label={label}\n value={field.value}\n touched={_.get(form.touched, field.name)}\n errorText={_.get(form.errors, field.name)}\n onChange={field.onChange}\n onBlur={field.onBlur}\n {...custom}\n />\n);\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Formik, Field } from 'formik';\nimport * as yup from 'yup';\nimport { renderTextField } from '../util/formik-custom-fields';\nimport Button from '../components/Button/Button';\n\nconst Contact = ({ light }) => (\n <Formik\n initialValues={{ emailAddress: '', message: '' }}\n validationSchema={yup.object().shape({\n emailAddress: yup.string().email().required('Required'),\n message: yup.string().required('Required'),\n })}\n onSubmit={(values, { setSubmitting, setStatus }) => {\n const toUrlEncoded = obj => Object.keys(obj).map(k => `${encodeURIComponent(k)}=${encodeURIComponent(obj[k])}`).join('&');\n\n fetch('https://idesignpixels.prod.with-datafire.io/contact', {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: toUrlEncoded(values),\n })\n .then(({ status }) => {\n setSubmitting(false);\n if (status !== 200) {\n console.log(status);\n console.log('done');\n throw new Error(`${status}: Could not send`);\n }\n setStatus({ formSubmitted: true });\n })\n .catch(error => setStatus({ formError: error.message }));\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n status,\n }) => (\n status && status.formSubmitted\n ? (\n <h3>Thanks for your message!</h3>\n )\n : (\n <form onSubmit={handleSubmit}>\n <Field\n component={renderTextField}\n type=\"email\"\n name=\"emailAddress\"\n label=\"Email\"\n disabled={isSubmitting}\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.emailAddress}\n errorText={errors.emailAddress}\n />\n <br />\n <Field\n component={renderTextField}\n name=\"message\"\n label=\"Message\"\n disabled={isSubmitting}\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.message}\n errorText={errors.message}\n rows={4}\n multiLine\n />\n <br />\n {status && status.formError\n ? (\n <Fragment>\n {status.formError}\n <br />\n </Fragment>\n )\n : null}\n <br />\n <div style={{ textAlign: 'center' }}>\n <Button\n type=\"submit\"\n label=\"Send\"\n cta\n loading={isSubmitting}\n />\n </div>\n </form>\n )\n )}\n </Formik>\n);\n\nexport default Contact;","import React from \"react\"\nimport { Link } from \"gatsby\"\nimport Layout from \"../components/Layout/Layout\"\nimport Contact from \"../forms/Contact\"\nimport SEO from \"../components/seo\"\n\nconst SecondPage = () => (\n <Layout>\n <SEO title=\"Contact\" />\n <h1>Contact</h1>\n <p>Got a Question? I'd love to hear from you, send me a message and I'll respond as soon as possible.</p>\n <Contact />\n </Layout>\n)\n\nexport default SecondPage\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\n\nconst StaticQueryContext = React.createContext({})\n\nconst StaticQuery = props => (\n <StaticQueryContext.Consumer>\n {staticQueryData => {\n if (\n props.data ||\n (staticQueryData[props.query] && staticQueryData[props.query].data)\n ) {\n return (props.render || props.children)(\n props.data ? props.data.data : staticQueryData[props.query].data\n )\n } else {\n return <div>Loading (StaticQuery)</div>\n }\n }}\n </StaticQueryContext.Consumer>\n)\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n}\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","import React from 'react';\nimport { navigate } from 'gatsby';\nimport PropTypes from 'prop-types';\nimport styles from './Button.module.scss';\n\nconst Button = ({\n type,\n to,\n link,\n icon,\n label,\n loading,\n disabled,\n onClick,\n className,\n}) => {\n const handleClick = () => {\n if (link && (typeof window !== 'undefined')) {\n window.open(link, '_blank');\n } else if (to) {\n navigate(to);\n }\n if (onClick) {\n onClick();\n }\n };\n \n return (\n <button\n type={type}\n className={[\n styles.button,\n icon && styles.withIcon,\n disabled && styles.disabled,\n loading && styles.loading,\n className,\n ].join(' ')}\n disabled={disabled || loading}\n onClick={handleClick}\n >\n {icon && <div className={styles.icon}>{icon}</div>}\n {!loading && <span className={styles.label}>{label}</span>}\n </button>\n );\n}\n\n\nButton.propTypes = {\n type: PropTypes.string,\n to: PropTypes.string,\n link: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nButton.defaultProps = {\n type: 'button',\n to: null,\n link: null,\n icon: null,\n disabled: false,\n loading: false,\n onClick: null,\n};\n\nexport default Button;","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Helmet from \"react-helmet\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\nfunction SEO({ description, lang, meta, keywords, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n )\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n <Helmet\n htmlAttributes={{\n lang,\n }}\n title={title}\n titleTemplate={`%s | ${site.siteMetadata.title}`}\n meta={[\n {\n name: `description`,\n content: metaDescription,\n },\n {\n property: `og:title`,\n content: title,\n },\n {\n property: `og:description`,\n content: metaDescription,\n },\n {\n property: `og:type`,\n content: `website`,\n },\n {\n name: `twitter:card`,\n content: `summary`,\n },\n {\n name: `twitter:creator`,\n content: site.siteMetadata.author,\n },\n {\n name: `twitter:title`,\n content: title,\n },\n {\n name: `twitter:description`,\n content: metaDescription,\n },\n ]\n .concat(\n keywords.length > 0\n ? {\n name: `keywords`,\n content: keywords.join(`, `),\n }\n : []\n )\n .concat(meta)}\n >\n <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800' rel='stylesheet' type='text/css' />\n </Helmet>\n )\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n keywords: [],\n description: ``,\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n}\n\nexport default SEO\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faTh, faChevronDown, faLongArrowAltRight } from '@fortawesome/free-solid-svg-icons'\nimport { faBookmark } from '@fortawesome/free-regular-svg-icons'\nimport {\n faFacebook,\n faTwitter,\n faInstagram,\n faLinkedin,\n faGithub,\n} from '@fortawesome/free-brands-svg-icons'\n\n\nlibrary.add(faTh, faChevronDown, faLongArrowAltRight);\nlibrary.add(faBookmark);\nlibrary.add(faFacebook, faTwitter, faInstagram, faLinkedin, faGithub);\n","import { fromEvent } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nexport const scrollEvent = typeof window !== 'undefined' ? fromEvent(window, 'scroll') : undefined;\n\nexport const getOffset = (el) => {\n const rect = el.getBoundingClientRect();\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n};\n\nexport const elementPositionInViewport = (el) => {\n if (!el) {\n throw new Error('No element provided');\n }\n const rect = el.getBoundingClientRect();\n return rect;\n};\n\nexport const elementPercentPositionInViewport = (el) => {\n const yPos = elementPositionInViewport(el).y;\n const onePercent = window.innerHeight / 200;\n const elementPercent = yPos / onePercent;\n const progressPercent = 100 - elementPercent;\n\n return progressPercent;\n};\n\nexport const overScrollColors = (top, bottom) => {\n const siteBGScrollEvent = scrollEvent.pipe(\n map(() => (document.body.getBoundingClientRect()).top < 0),\n );\n\n siteBGScrollEvent\n .subscribe((belowTop) => {\n if (belowTop) {\n const html = document.getElementsByTagName('HTML')[0];\n const body = document.getElementsByTagName('BODY')[0];\n html.style.backgroundColor = bottom;\n body.style.backgroundColor = bottom;\n } else {\n const html = document.getElementsByTagName('HTML')[0];\n const body = document.getElementsByTagName('BODY')[0];\n html.style.backgroundColor = top;\n body.style.backgroundColor = top;\n }\n });\n};\n\nexport const isElementInViewport = (el) => {\n const rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './MenuIcon.module.scss';\n\nconst MenuIcon = ({ onClick, open, className }) => (\n <div\n className={[className, styles.wrapper, open && styles.open].join(' ')}\n onClick={onClick}\n role=\"button\"\n tabIndex=\"0\"\n >\n <span />\n <span />\n <span />\n <span />\n </div>\n);\n\n\nMenuIcon.propTypes = {\n open: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nMenuIcon.defaultProps = {\n open: false,\n onClick: null,\n};\n\nexport default MenuIcon;","import React, { Fragment } from 'react';\nimport PropTypes from \"prop-types\";\nimport { Link } from 'gatsby';\nimport { map } from 'rxjs/operators';\nimport { scrollEvent } from '../../util/scrollTrack';\nimport MenuIcon from '../MenuIcon/MenuIcon';\nimport styles from './Header.module.scss';\n\nimport headerLogo from '../../images/idplogo.svg';\n\nexport default class Header extends React.Component {\n constructor(props) {\n super(props);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.state = {\n menuOpen: false,\n scrollPos: 0,\n hide: false,\n };\n }\n\n componentDidMount() {\n const headerScrollEvent = scrollEvent.pipe(\n map(() => {\n const { scrollPos } = this.state;\n const topPos = typeof window !== 'undefined' ? (window.document.body.getBoundingClientRect()).top : 0;\n this.setState({ scrollPos: topPos });\n return (scrollPos > (0 - 500) || topPos > scrollPos);\n }),\n );\n\n headerScrollEvent\n .subscribe(show => this.setState(({ menuOpen }) => ({\n hide: !show,\n menuOpen: menuOpen ? false : menuOpen,\n })));\n }\n\n toggleMenu() {\n this.setState(({ menuOpen }) => ({ menuOpen: !menuOpen }));\n }\n\n closeMenu() {\n this.setState({ menuOpen: false });\n }\n\n render() {\n const { menuOpen, hide, className } = this.state;\n const { title } = this.props;\n \n const headerClasses = [\n styles.header,\n menuOpen && styles.menuOpen,\n hide && styles.hide,\n className,\n ].join(' ');\n\n const createNavLink = (path, label) => (\n <Link\n to={path}\n className={styles.navLink}\n activeClassName={styles.activeNavLink}\n partiallyActive={path.includes('posts')}\n >\n {label}\n </Link>\n );\n\n return (\n <header className={headerClasses}>\n <div className={styles.navigationHeader}>\n <Link className={styles.headerLogo} to=\"/\">\n <img\n src={headerLogo}\n alt=\"idesignpixels\"\n />\n </Link>\n <Link className={styles.title} to=\"/\">{title}</Link>\n <MenuIcon\n className={styles.menuIcon}\n open={menuOpen}\n onClick={this.toggleMenu}\n />\n <ul className={styles.menu}>\n <li>{createNavLink('/', 'Home')}</li>\n <li>{createNavLink('/posts', 'Posts')}</li>\n <li>{createNavLink('/categories', 'Categories')}</li>\n <li>{createNavLink('/contact', 'Contact')}</li>\n </ul>\n </div>\n </header>\n );\n }\n}\n\nHeader.propTypes = {\n title: PropTypes.string.isRequired,\n}","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Button from '../Button/Button';\nimport styles from './Footer.module.scss';\n\n\nconst Footer = ({ className }) => (\n <footer className={[styles.footer, className].join(' ')}>\n <div className={styles.container}>\n <div className={styles.content}>\n <div className={styles.about}>\n <p>idesignpixels is a creative web development blog that shares ideas, helpful resources, tips and tricks on front end dev and design.</p>\n </div>\n <div className={styles.contact}>\n <Button label=\"contact\" to=\"/contact\" />\n </div>\n <div className={styles.social}>\n <a href=\"https://www.facebook.com/idesignpixels\" target=\"_blank\"><FontAwesomeIcon icon={['fab', 'facebook']} /></a>\n <a href=\"https://github.com/idesignpixels\" target=\"_blank\"><FontAwesomeIcon icon={['fab', 'github']} /></a>\n <a href=\"https://instagram.com/idesignpixels\" target=\"_blank\"><FontAwesomeIcon icon={['fab', 'instagram']} /></a>\n <a href=\"https://www.linkedin.com/in/idesignpixels\" target=\"_blank\"><FontAwesomeIcon icon={['fab', 'linkedin']} /></a>\n <a href=\"https://www.twitter.com/idesignpixels\" target=\"_blank\"><FontAwesomeIcon icon={['fab', 'twitter']} /></a>\n </div>\n <div className={styles.copyright}>\n ©\n \n {new Date().getFullYear()}\n idesignpixels\n </div>\n </div>\n </div>\n </footer>\n);\n\nexport default Footer;","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { StaticQuery, graphql } from \"gatsby\";\nimport '../../util/fontAwesome';\nimport Header from \"../Header/Header\";\nimport Footer from \"../Footer/Footer\";\nimport styles from \"./Layout.module.scss\";\n\nconst Layout = ({ pageTitle, children }) => (\n <StaticQuery\n query={graphql`\n query SiteTitleQuery {\n site {\n siteMetadata {\n title\n }\n }\n }\n `}\n render={data => (\n <div className={styles.container}>\n <Header className={styles.header} title={data.site.siteMetadata.title} />\n <div\n className={styles.content}\n >\n <main>\n {pageTitle && <h1 className={styles.pageTitle}>{pageTitle}</h1>}\n {children}\n </main>\n </div>\n <Footer className={styles.footer} />\n </div>\n )}\n />\n)\n\nLayout.propTypes = {\n pageTitle: PropTypes.string,\n children: PropTypes.node.isRequired,\n};\n\nLayout.defaultProps = {\n pageTitle: null,\n};\n\nexport default Layout\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\nimport loader from \"./loader\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.getResourcesForPathnameSync(location.pathname)\n if (!pageResources) {\n return null\n }\n\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS40MTQyMTsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMDE1NDc4Myw4Ljc2OTI3ZS0xOCwtOC43NjkyN2UtMTgsLTAuMDE1NDc4MywzNC4yOTE1LDEwMS4zMzYpIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMSwtNS42NjU1NGUtMTYsMi4wMzQ0M2UtMTYsLTAuMzU5MDg4LDI3NzYuNDksNjIxNS40NSkiPgogICAgICAgICAgICA8cmVjdCB4PSIyMzAzLjE1IiB5PSI4ODUuODI3IiB3aWR0aD0iNjQ5LjYwNiIgaGVpZ2h0PSI0NDI5LjEzIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXIxKTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwyLjQ0OTI5ZS0xNiwtOC44MzMyNmUtMTcsMC4zNjA2NDUsLTI0NzkuNDIsMjc0OC41MykiPgogICAgICAgICAgICA8cmVjdCB4PSIyMzAzLjE1IiB5PSI4ODUuODI3IiB3aWR0aD0iNjQ5LjYwNiIgaGVpZ2h0PSI0NDI5LjEzIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXIyKTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTY1LjU2MDIsLTMuNzE0MzRlLTE0LDMuNzE0MzRlLTE0LC02NS41NjAyLDIyMjMuODYsNjU4Ny40MSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzYuNjA5LDUzLjcxOUwyNi45NDksNjMuNTkxTDEwLjAzNyw2My41OTFMMTAuMDM3LDUzLjY4MkwzNi42MDksNTMuNjgyTDM2LjYwOSw1My43MTlaIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXIzKTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTY1LjU2MDIsLTMuNzE0MzRlLTE0LDMuNzE0MzRlLTE0LC02NS41NjAyLDIyMjMuODYsNjU4Ny40MSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNMC4xMjgsNTMuNDY4TDAuMTI4LDM3LjAzOUwxMC4wMzcsMzcuMDM5TDEwLjAzNyw2My41OTFMMTAuMDM0LDYzLjU5MUwwLjEyOCw1My40NjhaIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXI0KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTY1LjU2MDIsLTMuNzE0MzRlLTE0LDMuNzE0MzRlLTE0LC02NS41NjAyLDIyMjMuODYsNjU4Ny40MSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNOS44MTksMjcuMTMxTDI2LjcwMSwyNy4xMzFMMjYuNzAxLDM3LjAzOUwwLjEyOCwzNy4wMzlMMC4xMjgsMzcuMDM0TDkuODE5LDI3LjEzMVoiIHN0eWxlPSJmaWxsOnVybCgjX0xpbmVhcjUpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtNjUuNTYwMiwtMy43MTQzNGUtMTQsMy43MTQzNGUtMTQsLTY1LjU2MDIsMjIyMy44Niw2NTg3LjQxKSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNi4zNzUsMC42MTdMNTMuMjg5LDAuNjE3TDUzLjI4OSwxMC41MjVMMjYuNzAxLDEwLjUyNUwzNi4zNzUsMC42MTdaIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXI2KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTY1LjU2MDIsLTMuNzE0MzRlLTE0LDMuNzE0MzRlLTE0LC02NS41NjAyLDIyMjMuODYsNjU4Ny40MSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNNTMuMjg5LDAuNjE3TDYzLjE5NywxMC43NjZMNjMuMTk3LDI3LjEzM0w1My4yODksMjcuMTMzTDUzLjI4OSwwLjYxN1oiIHN0eWxlPSJmaWxsOnVybCgjX0xpbmVhcjcpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtNjUuNTYwMiwtMy43MTQzNGUtMTQsMy43MTQzNGUtMTQsLTY1LjU2MDIsMjIyMy44Niw2NTg3LjQxKSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik02My4xOTEsMjcuMTMzTDUzLjUxNywzNy4wNDFMMzYuNjA5LDM3LjA0MUwzNi42MDksMjcuMTMzTDYzLjE5MSwyNy4xMzNaIiBzdHlsZT0iZmlsbDp1cmwoI19MaW5lYXI4KTsiLz4KICAgICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9Il9MaW5lYXIxIiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTIuMDEzMzQsLTM2MDEuNzEsMTI5My4zMywtNS42MDY4MiwyNjUwLjU2LDI2NzguNDkpIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyNTUsMCw3Nik7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjAuNSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDIwNCwwLDYxKTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDE1MywwLDQ2KTtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJfTGluZWFyMiIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTM3MTNlLTEzLC0zMzQwLjYsMTIwNC43Nyw4LjY5ODY2ZS0xMywyNjQ4LjU1LDI0MjUuMTkpIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyNTUsMCw3Nik7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjAuNSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDIwNCwwLDYxKTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDE1MywwLDQ2KTtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJfTGluZWFyMyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xOS42ODMyLDIuNDEwNWUtMTUsLTIuNDEwNWUtMTUsLTE5LjY4MzIsMTkuNjgzMiw1Ny4xNzg5KSI+PHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjpyZ2IoMjU1LDAsNzYpO3N0b3Atb3BhY2l0eToxIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjpyZ2IoMTUzLDAsNDYpO3N0b3Atb3BhY2l0eToxIi8+PC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9Il9MaW5lYXI0IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMjk0M2UtMTUsLTIwLjA3ODEsMjAuMDc4MSwxLjIyOTQzZS0xNSw1LjIyOTE1LDQ3LjIxMDgpIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyNTUsMCw3Nik7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigxNTMsMCw0Nik7c3RvcC1vcGFjaXR5OjEiLz48L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iX0xpbmVhcjUiIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyMC4wMzY1LC0xLjk3NTc1ZS0zMCwxLjk3NTc1ZS0zMCwyMC4wMzY1LDE2LjU3MjksMzAuNDczKSI+PHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjpyZ2IoMjU1LDAsNzYpO3N0b3Atb3BhY2l0eToxIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjpyZ2IoMTUzLDAsNDYpO3N0b3Atb3BhY2l0eToxIi8+PC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9Il9MaW5lYXI2IiB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjAuNDUxMSwtMi4wMTY2M2UtMzAsMi4wMTY2M2UtMzAsMjAuNDUxMSw0Mi43Mzk2LDQuMTEzNjgpIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyNTUsMCw3Nik7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigxNTMsMCw0Nik7c3RvcC1vcGFjaXR5OjEiLz48L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iX0xpbmVhcjciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjE3ODI0ZS0xNSwxOS4yNDIxLC0xOS4yNDIxLDEuMTc4MjRlLTE1LDU4LjM4OTgsMTcuNzk5MikiPjxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDI1NSwwLDc2KTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDE1MywwLDQ2KTtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJfTGluZWFyOCIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xOS42NzU3LDIuNDA5NThlLTE1LC0yLjQwOTU4ZS0xNSwtMTkuNjc1Nyw0Ni4zNzY2LDMwLjQ3NDgpIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyNTUsMCw3Nik7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigxNTMsMCw0Nik7c3RvcC1vcGFjaXR5OjEiLz48L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgo8L3N2Zz4K\""],"sourceRoot":""}