-
Notifications
You must be signed in to change notification settings - Fork 0
/
23c3d3a3a2879427593569aafa02d04d4d5b9e2a-1496849b992a3062ed47.js.map
1 lines (1 loc) · 61.8 KB
/
23c3d3a3a2879427593569aafa02d04d4d5b9e2a-1496849b992a3062ed47.js.map
1
{"version":3,"sources":["webpack:///./src/styles/post.module.css","webpack:///./src/components/navigation.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./src/components/post.js","webpack:///./src/styles/navigation.module.css","webpack:///./src/helpers/index.js"],"names":["module","exports","Navigation","nextPath","previousPath","nextLabel","previousLabel","className","style","navigation","button","to","iconPrev","buttonText","iconNext","propTypes","PropTypes","string","_interopRequireDefault","require","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","window","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","Object","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","prototype","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","createElement","Fragment","key","type","withMedia","without","forEach","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","length","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","object","func","Image","_React$Component","_this","call","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","DESCRIPTORS","global","isForced","inheritIfRequired","defineProperty","f","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","redefine","fails","setInternalState","setSpecies","MATCH","wellKnownSymbol","NativeRegExp","RegExp","RegExpPrototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","undefined","constructor","source","indexOf","replace","result","proxy","configurable","it","keys","index","fixRegExpWellKnownSymbolLogic","anObject","toObject","toLength","toInteger","requireObjectCoercible","advanceStringIndex","regExpExec","max","Math","min","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","String","regexp","res","done","value","rx","S","functionalReplace","fullUnicode","unicode","lastIndex","results","accumulatedResult","nextSourcePosition","i","matched","captures","j","namedCaptures","groups","replacerArgs","replacement","apply","getSubstitution","slice","str","tailPos","m","symbols","match","ch","capture","charAt","n","Post","date","path","coverImage","author","excerpt","tags","html","previousPost","nextPost","frontmatter","post","postContent","meta","tag","toKebabCase","childImageSharp","readMore"],"mappings":"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","file":"23c3d3a3a2879427593569aafa02d04d4d5b9e2a-1496849b992a3062ed47.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"post\":\"post-module--post--28Mq2\",\"title\":\"post-module--title--3XBo2\",\"coverImage\":\"post-module--coverImage--1GM7V\",\"meta\":\"post-module--meta--3YtjE\",\"tags\":\"post-module--tags--3RbqF\",\"tag\":\"post-module--tag--16U9p\",\"readMore\":\"post-module--readMore--3zWML\",\"postContent\":\"post-module--postContent--1bfnt\"};","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'gatsby'\n\nimport style from '../styles/navigation.module.css'\n\nconst Navigation = ({ nextPath, previousPath, nextLabel, previousLabel }) =>\n previousPath || nextPath ? (\n <div className={style.navigation}>\n {previousPath && (\n <span className={style.button}>\n <Link to={previousPath}>\n <span className={style.iconPrev}>←</span>\n <span className={style.buttonText}>{previousLabel}</span>\n </Link>\n </span>\n )}\n {nextPath && (\n <span className={style.button}>\n <Link to={nextPath}>\n <span className={style.buttonText}>{nextLabel}</span>\n <span className={style.iconNext}>→</span>\n </Link>\n </span>\n )}\n </div>\n ) : null\n\nNavigation.propTypes = {\n nextPath: PropTypes.string,\n previousPath: PropTypes.string,\n nextLabel: PropTypes.string,\n previousLabel: PropTypes.string,\n}\n\nexport default Navigation\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\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 logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\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);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\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\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"<source \" + typeAttr + mediaAttr + \"srcset=\\\"\" + src + \"\\\" \" + sizesAttr + \"/>\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\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 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 var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"<picture>\" + sources + \"<img \" + loading + width + height + sizes + srcSet + src + alt + title + crossOrigin + draggable + \"style=\\\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\\\"/></picture>\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_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 draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\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 = /*#__PURE__*/function (_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.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\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.isCritical) {\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 _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 // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _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 draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\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 itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\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 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_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 draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (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 /*#__PURE__*/_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 && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\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 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_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 draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\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 media: _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 media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(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 draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'gatsby'\nimport Img from 'gatsby-image'\nimport Navigation from './navigation'\nimport { toKebabCase } from '../helpers'\n\nimport style from '../styles/post.module.css'\n\nconst Post = ({\n title,\n date,\n path,\n coverImage,\n author,\n excerpt,\n tags,\n html,\n previousPost,\n nextPost,\n}) => {\n const previousPath = previousPost && previousPost.frontmatter.path\n const previousLabel = previousPost && previousPost.frontmatter.title\n const nextPath = nextPost && nextPost.frontmatter.path\n const nextLabel = nextPost && nextPost.frontmatter.title\n\n return (\n <div className={style.post}>\n <div className={style.postContent}>\n <h1 className={style.title}>\n {excerpt ? <Link to={path}>{title}</Link> : title}\n </h1>\n <div className={style.meta}>\n {date} {author && <>— Written by {author}</>}\n {tags ? (\n <div className={style.tags}>\n {tags.map(tag => (\n <Link to={`/tag/${toKebabCase(tag)}/`} key={toKebabCase(tag)}>\n <span className={style.tag}>#{tag}</span>\n </Link>\n ))}\n </div>\n ) : null}\n </div>\n\n {coverImage && (\n <Img\n fluid={coverImage.childImageSharp.fluid}\n className={style.coverImage}\n />\n )}\n\n {excerpt ? (\n <>\n <p>{excerpt}</p>\n <Link to={path} className={style.readMore}>\n Read more →\n </Link>\n </>\n ) : (\n <>\n <div dangerouslySetInnerHTML={{ __html: html }} />\n <Navigation\n previousPath={previousPath}\n previousLabel={previousLabel}\n nextPath={nextPath}\n nextLabel={nextLabel}\n />\n </>\n )}\n </div>\n </div>\n )\n}\n\nPost.propTypes = {\n title: PropTypes.string,\n date: PropTypes.string,\n path: PropTypes.string,\n coverImage: PropTypes.object,\n author: PropTypes.string,\n excerpt: PropTypes.string,\n html: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.string),\n previousPost: PropTypes.object,\n nextPost: PropTypes.object,\n}\n\nexport default Post\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navigation\":\"navigation-module--navigation--3Zfju\",\"button\":\"navigation-module--button--28kp3\",\"buttonText\":\"navigation-module--buttonText--1Xod2\",\"iconNext\":\"navigation-module--iconNext--3xyJ-\",\"iconPrev\":\"navigation-module--iconPrev--23mg1\"};","module.exports.toKebabCase = function(value) {\n return value.replace(new RegExp('(\\\\s|_|-)+', 'gmi'), '-')\n}\n"],"sourceRoot":""}