-
Notifications
You must be signed in to change notification settings - Fork 0
/
cd7d5f864fc9e15ed8adef086269b0aeff617554-64401eb54313e58b6cc6.js.map
1 lines (1 loc) · 77.1 KB
/
cd7d5f864fc9e15ed8adef086269b0aeff617554-64401eb54313e58b6cc6.js.map
1
{"version":3,"sources":["webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.min.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/utils/scroll.js","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js","webpack:///./src/components/bio/index.jsx"],"names":["e","global","window","this","C","w","ignore","header","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","offset","easing","customEasing","updateURL","popstate","emitEvents","L","n","Array","prototype","forEach","call","arguments","t","hasOwnProperty","r","charAt","substr","String","o","length","a","i","charCodeAt","InvalidCharacterError","toString","H","Math","max","document","body","scrollHeight","documentElement","offsetHeight","clientHeight","x","focus","activeElement","setAttribute","style","outline","scrollTo","Q","CustomEvent","bubbles","detail","anchor","toggle","dispatchEvent","O","I","M","A","cancelAnimationFrame","cancelScroll","s","Object","tagName","c","pageYOffset","querySelector","u","l","d","f","m","h","p","parseInt","getComputedStyle","height","offsetTop","q","g","offsetParent","min","innerHeight","y","v","S","E","abs","history","pushState","smoothScroll","JSON","stringify","id","title","matchMedia","matches","floor","requestAnimationFrame","b","defaultPrevented","button","metaKey","ctrlKey","shiftKey","target","closest","toLowerCase","hostname","location","pathname","test","href","decodeURIComponent","hash","preventDefault","replaceState","state","animateScroll","destroy","removeEventListener","Element","addEventListener","_interopRequireDefault","require","exports","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","createElement","Fragment","key","type","withMedia","without","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","alt","width","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","className","_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","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","scroll","init","smoothscroll","polyfill","SmoothScroll","go","dest","module","__forceSmoothScrollPolyfill__","userAgent","HTMLElement","original","scrollBy","elementScroll","scrollElement","scrollIntoView","now","performance","Date","ROUNDING_TOLERANCE","navigator","RegExp","undefined","shouldBailOut","scrollX","pageXOffset","scrollY","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","getBoundingClientRect","clientRects","firstArg","TypeError","hasScrollableSpace","axis","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","parentNode","host","step","context","value","currentX","currentY","k","elapsed","startTime","cos","PI","startX","startY","method","scrollable","Bio","React","StaticQuery","query","bioQuery","data","_data$site$siteMetada","site","siteMetadata","author","social","introduction","avatar","childImageSharp","borderRadius","Link","to","github","linkedin"],"mappings":"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","file":"cd7d5f864fc9e15ed8adef086269b0aeff617554-64401eb54313e58b6cc6.js","sourcesContent":["/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\n!function (e, t) {\n \"function\" == typeof define && define.amd ? define([], function () {\n return t(e);\n }) : \"object\" == typeof exports ? module.exports = t(e) : e.SmoothScroll = t(e);\n}(\"undefined\" != typeof global ? global : \"undefined\" != typeof window ? window : this, function (C) {\n \"use strict\";\n\n var w = {\n ignore: \"[data-scroll-ignore]\",\n header: null,\n topOnEmptyHash: !0,\n speed: 500,\n speedAsDuration: !1,\n durationMax: null,\n durationMin: null,\n clip: !0,\n offset: 0,\n easing: \"easeInOutCubic\",\n customEasing: null,\n updateURL: !0,\n popstate: !0,\n emitEvents: !0\n },\n L = function L() {\n var n = {};\n return Array.prototype.forEach.call(arguments, function (e) {\n for (var t in e) {\n if (!e.hasOwnProperty(t)) return;\n n[t] = e[t];\n }\n }), n;\n },\n r = function r(e) {\n \"#\" === e.charAt(0) && (e = e.substr(1));\n for (var t, n = String(e), o = n.length, a = -1, r = \"\", i = n.charCodeAt(0); ++a < o;) {\n if (0 === (t = n.charCodeAt(a))) throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");\n 1 <= t && t <= 31 || 127 == t || 0 === a && 48 <= t && t <= 57 || 1 === a && 48 <= t && t <= 57 && 45 === i ? r += \"\\\\\" + t.toString(16) + \" \" : r += 128 <= t || 45 === t || 95 === t || 48 <= t && t <= 57 || 65 <= t && t <= 90 || 97 <= t && t <= 122 ? n.charAt(a) : \"\\\\\" + n.charAt(a);\n }\n return \"#\" + r;\n },\n H = function H() {\n return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);\n },\n q = function q(e) {\n return e ? (t = e, parseInt(C.getComputedStyle(t).height, 10) + e.offsetTop) : 0;\n var t;\n },\n x = function x(e, t, n) {\n 0 === e && document.body.focus(), n || (e.focus(), document.activeElement !== e && (e.setAttribute(\"tabindex\", \"-1\"), e.focus(), e.style.outline = \"none\"), C.scrollTo(0, t));\n },\n Q = function Q(e, t, n, o) {\n if (t.emitEvents && \"function\" == typeof C.CustomEvent) {\n var a = new CustomEvent(e, {\n bubbles: !0,\n detail: {\n anchor: n,\n toggle: o\n }\n });\n document.dispatchEvent(a);\n }\n };\n return function (o, e) {\n var O,\n a,\n I,\n M,\n A = {};\n A.cancelScroll = function (e) {\n cancelAnimationFrame(M), M = null, e || Q(\"scrollCancel\", O);\n }, A.animateScroll = function (a, r, e) {\n A.cancelScroll();\n var i = L(O || w, e || {}),\n s = \"[object Number]\" === Object.prototype.toString.call(a),\n t = s || !a.tagName ? null : a;\n if (s || t) {\n var c = C.pageYOffset;\n i.header && !I && (I = document.querySelector(i.header));\n var n,\n o,\n u,\n l,\n d,\n f,\n m,\n h,\n p = q(I),\n g = s ? a : function (e, t, n, o) {\n var a = 0;\n if (e.offsetParent) for (; a += e.offsetTop, e = e.offsetParent;);\n return a = Math.max(a - t - n, 0), o && (a = Math.min(a, H() - C.innerHeight)), a;\n }(t, p, parseInt(\"function\" == typeof i.offset ? i.offset(a, r) : i.offset, 10), i.clip),\n y = g - c,\n v = H(),\n S = 0,\n E = (n = y, u = (o = i).speedAsDuration ? o.speed : Math.abs(n / 1e3 * o.speed), o.durationMax && u > o.durationMax ? o.durationMax : o.durationMin && u < o.durationMin ? o.durationMin : parseInt(u, 10)),\n b = function b(e) {\n var t, n, o;\n l || (l = e), S += e - l, f = c + y * (n = d = 1 < (d = 0 === E ? 0 : S / E) ? 1 : d, \"easeInQuad\" === (t = i).easing && (o = n * n), \"easeOutQuad\" === t.easing && (o = n * (2 - n)), \"easeInOutQuad\" === t.easing && (o = n < .5 ? 2 * n * n : (4 - 2 * n) * n - 1), \"easeInCubic\" === t.easing && (o = n * n * n), \"easeOutCubic\" === t.easing && (o = --n * n * n + 1), \"easeInOutCubic\" === t.easing && (o = n < .5 ? 4 * n * n * n : (n - 1) * (2 * n - 2) * (2 * n - 2) + 1), \"easeInQuart\" === t.easing && (o = n * n * n * n), \"easeOutQuart\" === t.easing && (o = 1 - --n * n * n * n), \"easeInOutQuart\" === t.easing && (o = n < .5 ? 8 * n * n * n * n : 1 - 8 * --n * n * n * n), \"easeInQuint\" === t.easing && (o = n * n * n * n * n), \"easeOutQuint\" === t.easing && (o = 1 + --n * n * n * n * n), \"easeInOutQuint\" === t.easing && (o = n < .5 ? 16 * n * n * n * n * n : 1 + 16 * --n * n * n * n * n), t.customEasing && (o = t.customEasing(n)), o || n), C.scrollTo(0, Math.floor(f)), function (e, t) {\n var n = C.pageYOffset;\n if (e == t || n == t || (c < t && C.innerHeight + n) >= v) return A.cancelScroll(!0), x(a, t, s), Q(\"scrollStop\", i, a, r), !(M = l = null);\n }(f, g) || (M = C.requestAnimationFrame(b), l = e);\n };\n 0 === C.pageYOffset && C.scrollTo(0, 0), m = a, h = i, s || history.pushState && h.updateURL && history.pushState({\n smoothScroll: JSON.stringify(h),\n anchor: m.id\n }, document.title, m === document.documentElement ? \"#top\" : \"#\" + m.id), \"matchMedia\" in C && C.matchMedia(\"(prefers-reduced-motion)\").matches ? x(a, Math.floor(g), !1) : (Q(\"scrollStart\", i, a, r), A.cancelScroll(!0), C.requestAnimationFrame(b));\n }\n };\n var t = function t(e) {\n if (!e.defaultPrevented && !(0 !== e.button || e.metaKey || e.ctrlKey || e.shiftKey) && \"closest\" in e.target && (a = e.target.closest(o)) && \"a\" === a.tagName.toLowerCase() && !e.target.closest(O.ignore) && a.hostname === C.location.hostname && a.pathname === C.location.pathname && /#/.test(a.href)) {\n var t, n;\n try {\n t = r(decodeURIComponent(a.hash));\n } catch (e) {\n t = r(a.hash);\n }\n if (\"#\" === t) {\n if (!O.topOnEmptyHash) return;\n n = document.documentElement;\n } else n = document.querySelector(t);\n (n = n || \"#top\" !== t ? n : document.documentElement) && (e.preventDefault(), function (e) {\n if (history.replaceState && e.updateURL && !history.state) {\n var t = C.location.hash;\n t = t || \"\", history.replaceState({\n smoothScroll: JSON.stringify(e),\n anchor: t || C.pageYOffset\n }, document.title, t || C.location.href);\n }\n }(O), A.animateScroll(n, a));\n }\n },\n n = function n(e) {\n if (null !== history.state && history.state.smoothScroll && history.state.smoothScroll === JSON.stringify(O)) {\n var t = history.state.anchor;\n \"string\" == typeof t && t && !(t = document.querySelector(r(history.state.anchor))) || A.animateScroll(t, null, {\n updateURL: !1\n });\n }\n };\n A.destroy = function () {\n O && (document.removeEventListener(\"click\", t, !1), C.removeEventListener(\"popstate\", n, !1), A.cancelScroll(), M = I = a = O = null);\n };\n return function () {\n if (!(\"querySelector\" in document && \"addEventListener\" in C && \"requestAnimationFrame\" in C && \"closest\" in C.Element.prototype)) throw \"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";\n A.destroy(), O = L(w, e || {}), I = O.header ? document.querySelector(O.header) : null, document.addEventListener(\"click\", t, !1), O.updateURL && O.popstate && C.addEventListener(\"popstate\", n, !1);\n }(), A;\n };\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;","import SmoothScroll from 'smooth-scroll/dist/smooth-scroll.min'\nimport smoothscroll from 'smoothscroll-polyfill';\n\nlet scroll\n\nexport function init() {\n smoothscroll.polyfill()\n scroll = new SmoothScroll('a[href*=\"#\"]', {\n speed: 500,\n speedAsDuration: true,\n })\n return scroll\n}\n\nexport function destroy() {\n if (!scroll) throw Error('Not founded SmoothScroll instance')\n\n scroll.destroy()\n scroll = null\n\n return scroll\n}\n\nexport function go(dest) {\n if (!scroll) throw Error('Not founded SmoothScroll instance')\n\n scroll.animateScroll(dest)\n\n return scroll\n}\n","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if ('scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant') {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError('behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.');\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset);\n };\n\n // w.scrollBy\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n original.elementScroll.call(this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined ? ~~arguments[0].left : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop);\n return;\n }\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop);\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = {\n polyfill: polyfill\n };\n } else {\n // global\n polyfill();\n }\n})();","import React from 'react'\nimport { StaticQuery, graphql, Link } from 'gatsby'\nimport Image from 'gatsby-image'\n\nimport './index.scss'\n\nexport const Bio = () => (\n <StaticQuery\n query={bioQuery}\n render={data => {\n const { author, social, introduction } = data.site.siteMetadata\n\n return (\n <div className=\"bio\">\n <div className=\"author\">\n <div className=\"author-description\">\n <Image\n className=\"author-image\"\n fixed={data.avatar.childImageSharp.fixed}\n alt={author}\n style={{\n borderRadius: `100%`,\n }}\n />\n <div className=\"author-name\">\n <span className=\"author-name-prefix\">Written by</span>\n <Link to={'/about'} className=\"author-name-content\">\n <span>@{author}</span>\n </Link>\n <div className=\"author-introduction\">{introduction}</div>\n <p className=\"author-socials\">\n {social.github && (\n <a href={`https://github.com/${social.github}`}>GitHub</a>\n )}\n {social.linkedin && (\n <a href={`https://www.linkedin.com/in/${social.linkedin}/`}>\n LinkedIn\n </a>\n )}\n </p>\n </div>\n </div>\n </div>\n </div>\n )\n }}\n />\n)\n\nconst bioQuery = graphql`\n query BioQuery {\n avatar: file(absolutePath: { regex: \"/profile.png/\" }) {\n childImageSharp {\n fixed(width: 72, height: 72) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n site {\n siteMetadata {\n author\n introduction\n social {\n twitter\n github\n medium\n facebook\n linkedin\n instagram\n }\n }\n }\n }\n`\n\nexport default Bio\n"],"sourceRoot":""}