-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent---src-templates-blog-post-js-06ebb222719bf583a791.js.map
1 lines (1 loc) · 48.1 KB
/
component---src-templates-blog-post-js-06ebb222719bf583a791.js.map
1
{"version":3,"sources":["webpack:///./src/templates/blog-post.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./src/utils/typography.js","webpack:///./.cache/public-page-renderer.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./src/components/layout.js","webpack:///./src/components/seo.js","webpack:///./src/components/bio.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/gatsby-image/index.js"],"names":["BlogPostTemplate","render","post","this","props","data","markdownRemark","siteTitle","site","siteMetadata","title","_this$props$pageConte","pageContext","previous","next","react__WEBPACK_IMPORTED_MODULE_2___default","a","createElement","_components_layout__WEBPACK_IMPORTED_MODULE_5__","location","_components_seo__WEBPACK_IMPORTED_MODULE_6__","frontmatter","description","excerpt","style","Object","assign","scale","display","marginBottom","rhythm","marginTop","date","dangerouslySetInnerHTML","__html","html","_components_bio__WEBPACK_IMPORTED_MODULE_4__","flexWrap","justifyContent","listStyle","padding","gatsby__WEBPACK_IMPORTED_MODULE_3__","to","fields","slug","rel","React","Component","pageQuery","__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","StaticQueryDataRenderer","_ref","staticQueryData","query","finalData","Fragment","children","Consumer","propTypes","PropTypes","object","string","isRequired","func","typography__WEBPACK_IMPORTED_MODULE_0__","typography__WEBPACK_IMPORTED_MODULE_0___default","typography_theme_wordpress_2016__WEBPACK_IMPORTED_MODULE_1__","typography_theme_wordpress_2016__WEBPACK_IMPORTED_MODULE_1___default","Wordpress2016","overrideThemeStyles","a.gatsby-resp-image-link","boxShadow","googleFonts","typography","Typography","m","module","exports","require","default","ProdPageRenderer","pageResources","InternalPageRenderer","json","shape","pathname","Layout","header","_this$props","textDecoration","color","fontFamily","marginLeft","marginRight","maxWidth","Date","getFullYear","href","SEO","lang","meta","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_0__","metaDescription","react__WEBPACK_IMPORTED_MODULE_1___default","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","name","content","property","author","concat","defaultProps","arrayOf","bioQuery","Bio","_data$site$siteMetada","social","gatsby_image__WEBPACK_IMPORTED_MODULE_4___default","fixed","avatar","childImageSharp","alt","minWidth","borderRadius","imgStyle","twitter","_public_static_d_4007731267_json__WEBPACK_IMPORTED_MODULE_1__","createHTML","$export","fails","defined","quot","tag","attribute","value","S","String","p1","replace","NAME","exec","O","P","F","test","toLowerCase","split","length","_interopRequireDefault","__esModule","io","_inheritsLoose2","_assertThisInitialized2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","convertedProps","resolutions","sizes","critical","fluid","loading","imageCache","create","inImageCache","src","hasNativeLazyLoadSupport","HTMLImageElement","prototype","isBrowser","window","hasIOSupport","IntersectionObserver","listeners","WeakMap","listenToIntersections","el","cb","observer","entries","forEach","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","srcSetWebp","srcSet","width","height","crossOrigin","Img","forwardRef","ref","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","Image","_React$Component","_this","call","seenBefore","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","imageRef","createRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","setState","currentSrc","_convertProps","className","_convertProps$style","_convertProps$imgStyl","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","image","overflow","key","JSON","stringify","paddingBottom","aspectRatio","bottom","right","base64","tracedSVG","type","_image","divStyle","fixedObject","number","srcWebp","fluidObject","bool","oneOfType","oneOf","_default"],"mappings":"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","file":"component---src-templates-blog-post-js-06ebb222719bf583a791.js","sourcesContent":["import React from \"react\"\nimport { Link, graphql } from \"gatsby\"\n\nimport Bio from \"../components/bio\"\nimport Layout from \"../components/layout\"\nimport SEO from \"../components/seo\"\nimport { rhythm, scale } from \"../utils/typography\"\n\nclass BlogPostTemplate extends React.Component {\n render() {\n const post = this.props.data.markdownRemark\n const siteTitle = this.props.data.site.siteMetadata.title\n const { previous, next } = this.props.pageContext\n\n return (\n <Layout location={this.props.location} title={siteTitle}>\n <SEO\n title={post.frontmatter.title}\n description={post.frontmatter.description || post.excerpt}\n />\n <h1>{post.frontmatter.title}</h1>\n <p\n style={{\n ...scale(-1 / 5),\n display: `block`,\n marginBottom: rhythm(1),\n marginTop: rhythm(-1),\n }}\n >\n {post.frontmatter.date}\n </p>\n <div dangerouslySetInnerHTML={{ __html: post.html }} />\n <hr\n style={{\n marginBottom: rhythm(1),\n }}\n />\n <Bio />\n\n <ul\n style={{\n display: `flex`,\n flexWrap: `wrap`,\n justifyContent: `space-between`,\n listStyle: `none`,\n padding: 0,\n }}\n >\n <li>\n {previous && (\n <Link to={previous.fields.slug} rel=\"prev\">\n ← {previous.frontmatter.title}\n </Link>\n )}\n </li>\n <li>\n {next && (\n <Link to={next.fields.slug} rel=\"next\">\n {next.frontmatter.title} →\n </Link>\n )}\n </li>\n </ul>\n </Layout>\n )\n }\n}\n\nexport default BlogPostTemplate\n\nexport const pageQuery = graphql`\n query BlogPostBySlug($slug: String!) {\n site {\n siteMetadata {\n title\n author\n }\n }\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n excerpt(pruneLength: 160)\n html\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\")\n description\n }\n }\n }\n`\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\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\n )\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","import Typography from \"typography\"\nimport Wordpress2016 from \"typography-theme-wordpress-2016\"\n\nWordpress2016.overrideThemeStyles = () => {\n return {\n \"a.gatsby-resp-image-link\": {\n boxShadow: `none`,\n },\n }\n}\n\ndelete Wordpress2016.googleFonts\n\nconst typography = new Typography(Wordpress2016)\n\n// Hot reload typography in development.\nif (process.env.NODE_ENV !== `production`) {\n typography.injectStyles()\n}\n\nexport default typography\nexport const rhythm = typography.rhythm\nexport const scale = typography.scale\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 PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\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","import React from \"react\"\nimport { Link } from \"gatsby\"\n\nimport { rhythm, scale } from \"../utils/typography\"\n\nclass Layout extends React.Component {\n render() {\n const { location, title, children } = this.props\n const rootPath = `${__PATH_PREFIX__}/`\n let header\n\n if (location.pathname === rootPath) {\n header = (\n <h1\n style={{\n ...scale(1.5),\n marginBottom: rhythm(1.5),\n marginTop: 0,\n }}\n >\n <Link\n style={{\n boxShadow: `none`,\n textDecoration: `none`,\n color: `inherit`,\n }}\n to={`/`}\n >\n {title}\n </Link>\n </h1>\n )\n } else {\n header = (\n <h3\n style={{\n fontFamily: `Montserrat, sans-serif`,\n marginTop: 0,\n }}\n >\n <Link\n style={{\n boxShadow: `none`,\n textDecoration: `none`,\n color: `inherit`,\n }}\n to={`/`}\n >\n {title}\n </Link>\n </h3>\n )\n }\n return (\n <div\n style={{\n marginLeft: `auto`,\n marginRight: `auto`,\n maxWidth: rhythm(24),\n padding: `${rhythm(1.5)} ${rhythm(3 / 4)}`,\n }}\n >\n <header>{header}</header>\n <main>{children}</main>\n <footer>\n © {new Date().getFullYear()}, Built with\n {` `}\n <a href=\"https://www.gatsbyjs.org\">Gatsby</a>\n </footer>\n </div>\n )\n }\n}\n\nexport default Layout\n","/**\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, 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 ].concat(meta)}\n />\n )\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n description: ``,\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired,\n}\n\nexport default SEO\n","/**\n * Bio component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport React from \"react\"\nimport { StaticQuery, graphql } from \"gatsby\"\nimport Image from \"gatsby-image\"\n\nimport { rhythm } from \"../utils/typography\"\n\nfunction Bio() {\n return (\n <StaticQuery\n query={bioQuery}\n render={data => {\n const { author, social } = data.site.siteMetadata\n return (\n <div\n style={{\n display: `flex`,\n marginBottom: rhythm(2.5),\n }}\n >\n <Image\n fixed={data.avatar.childImageSharp.fixed}\n alt={author}\n style={{\n marginRight: rhythm(1 / 2),\n marginBottom: 0,\n minWidth: 50,\n borderRadius: `100%`,\n }}\n imgStyle={{\n borderRadius: `50%`,\n }}\n />\n <p>\n Written by <strong>{author}</strong> who lives and works in San\n Francisco building useful things.\n {` `}\n <a href={`https://twitter.com/${social.twitter}`}>\n You should follow him on Twitter\n </a>\n </p>\n </div>\n )\n }}\n />\n )\n}\n\nconst bioQuery = graphql`\n query BioQuery {\n avatar: file(absolutePath: { regex: \"/profile-pic.jpg/\" }) {\n childImageSharp {\n fixed(width: 50, height: 50) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n site {\n siteMetadata {\n author\n social {\n twitter\n }\n }\n }\n }\n`\n\nexport default Bio\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n }\n\n return convertedProps;\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = convertedProps.fluid ? convertedProps.fluid.src : convertedProps.fixed.src;\n return imageCache[src] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = convertedProps.fluid ? convertedProps.fluid.src : convertedProps.fixed.src;\n imageCache[src] = true;\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSetWebp = props.srcSetWebp ? \"<source type='image/webp' srcset=\\\"\" + props.srcSetWebp + \"\\\" \" + sizes + \"/>\" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n return \"<picture>\" + srcSetWebp + \"<img \" + loading + width + height + sizes + srcSet + src + alt + title + crossOrigin + \"style=\\\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\\\"/></picture>\";\n};\n\nvar Img = _react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\"]);\n return _react.default.createElement(\"img\", (0, _extends2.default)({\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.addNoScript = !(props.critical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !props.critical && !_this.seenBefore;\n var isVisible = props.critical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn\n };\n _this.imageRef = _react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.props.critical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n }; // Specific to IntersectionObserver based lazy-load support\n\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n return _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n imgCached: !!_this2.imageRef.current.currentSrc\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading;\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName\n };\n\n if (fluid) {\n var image = fluid;\n return _react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\"\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, _react.default.createElement(Tag, {\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && _react.default.createElement(Tag, {\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && _react.default.createElement(Img, (0, _extends2.default)({\n src: image.base64\n }, placeholderImageProps)), image.tracedSVG && _react.default.createElement(Img, (0, _extends2.default)({\n src: image.tracedSVG\n }, placeholderImageProps)), this.state.isVisible && _react.default.createElement(\"picture\", null, image.srcSetWebp && _react.default.createElement(\"source\", {\n type: \"image/webp\",\n srcSet: image.srcSetWebp,\n sizes: image.sizes\n }), _react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading\n })), this.addNoScript && _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image))\n }\n }));\n }\n\n if (fixed) {\n var _image = fixed;\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: _image.width,\n height: _image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return _react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(_image.srcSet)\n }, bgColor && _react.default.createElement(Tag, {\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: _image.height\n }, shouldFadeIn && delayHideStyle)\n }), _image.base64 && _react.default.createElement(Img, (0, _extends2.default)({\n src: _image.base64\n }, placeholderImageProps)), _image.tracedSVG && _react.default.createElement(Img, (0, _extends2.default)({\n src: _image.tracedSVG\n }, placeholderImageProps)), this.state.isVisible && _react.default.createElement(\"picture\", null, _image.srcSetWebp && _react.default.createElement(\"source\", {\n type: \"image/webp\",\n srcSet: _image.srcSetWebp,\n sizes: _image.sizes\n }), _react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height,\n sizes: _image.sizes,\n src: _image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: _image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading\n })), this.addNoScript && _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, _image))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string\n});\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: fixedObject,\n fluid: fluidObject,\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"])\n};\nvar _default = Image;\nexports.default = _default;"],"sourceRoot":""}