/
component---src-pages-index-js-8bc109952b662e291f57.js.map
1 lines (1 loc) · 51.4 KB
/
component---src-pages-index-js-8bc109952b662e291f57.js.map
1
{"version":3,"sources":["webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/assets/images/pic06.jpg","webpack:///./src/assets/images/pic08.jpg","webpack:///./src/components/PageFooter.js","webpack:///./src/pages/index.js","webpack:///./src/assets/images/pic03.jpg","webpack:///./src/assets/images/pic05.jpg","webpack:///./src/assets/images/meal-planner-app.jpg","webpack:///./src/assets/images/pic04.jpg","webpack:///./src/assets/images/pic07.jpg"],"names":["_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","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","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","setState","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","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","_imageVariants","_image","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","module","PageFooter","id","ThumbnailThingie","name","tags","path","to","class","tag","IndexPage","nodes","useStaticQuery","allProjectsJson","Layout","SideBar","project","borderRadius","method","action","placeholder","textAlign","value"],"mappings":"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","file":"component---src-pages-index-js-8bc109952b662e291f57.js","sourcesContent":["\"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 };\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 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 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 };\n\n if (fluid) {\n var imageVariants = fluid;\n var image = getCurrentSrcData(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 _imageVariants = fixed;\n\n var _image = getCurrentSrcData(fixed);\n\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;","module.exports = __webpack_public_path__ + \"static/pic06-3964ef2fd0de3d00130a9fe74d6f6714.jpg\";","module.exports = __webpack_public_path__ + \"static/pic08-b86cad178e94d50f927662302e065f69.jpg\";","import React from 'react';\n\nexport default function PageFooter() {\n return (\n <div id=\"footer\">\n <ul className=\"copyright\">\n <li>© here's legal jargon</li>\n <li>but that just won't do for you</li>\n <li>a haiku instead</li>\n </ul>\n </div>\n );\n}\n","import React from 'react';\nimport { Link, useStaticQuery, graphql } from 'gatsby';\nimport Img from 'gatsby-image';\n\nimport Layout from '../components/Layout';\nimport PageFooter from '../components/PageFooter';\nimport SideBar from '../components/SideBar';\nimport data from \"../../content/projects.json\"\n\nimport mealPlannerThumbnail from '../assets/images/meal-planner-app.jpg';\nimport pic3 from '../assets/images/pic03.jpg';\nimport pic4 from '../assets/images/pic04.jpg';\nimport pic5 from '../assets/images/pic05.jpg';\nimport pic6 from '../assets/images/pic06.jpg';\nimport pic7 from '../assets/images/pic07.jpg';\nimport pic8 from '../assets/images/pic08.jpg';\nimport Scroll from '../components/Scroll';\n\nconst ThumbnailThingie = ({name, image, tags, path}) => {\n return (\n <article className=\"item col-6 col-12-mobile\">\n <div className='container'>\n <Link to={path}>\n <img style={{width: '100%'}} src={image} />\n <header>\n <h3>{name}</h3>\n <ul class='tags'>\n {tags.map(tag => {\n return (\n <li>{tag}</li>\n )\n })}\n </ul>\n </header>\n </Link>\n </div>\n </article>\n )\n}\n\nconst IndexPage = () => {\n const {\n allProjectsJson: { nodes },\n } = useStaticQuery(graphql`\n query MyQuery {\n allProjectsJson {\n nodes {\n name\n image\n tags\n path\n }\n }\n }\n `);\n return (\n <Layout>\n <SideBar />\n\n <div id=\"main\">\n <section id=\"top\" className=\"one dark cover\">\n <div className=\"container\">\n <header>\n <h2 className=\"alt\">\n Hi! I'm <strong>Keith</strong>\n </h2>\n <p>I'm a Software Engineer. A problem solver at heart.</p>\n </header>\n </div>\n </section>\n\n <section id=\"work\" className=\"two\">\n <div className=\"container\">\n <header>\n <h2>Work & Experience</h2>\n </header>\n\n <div className=\"row\">\n {nodes.map((project) => {\n return (\n <ThumbnailThingie image={project.image} name={project.name} tags={project.tags} path={project.path}/>\n )\n })}\n </div>\n </div>\n </section>\n\n <section id=\"method\" className=\"three\">\n <div className=\"container\">\n <header>\n <h2>My Method</h2>\n </header>\n\n <div class=\"row\">\n\n <div class=\"col-3 col-12-mobile\">\n <img src=\"/images/treehouse.jpg\" style={{borderRadius: '5%', width: '100%'}} alt=\"\" />\n </div>\n <div class=\"col-9 col-12-mobile\">\n <p>There are four tenets to the methodology I apply to solving any business related problem. The core philosohpy is inspired heavily by various pieces of agile and other methodologies. The focus is on ensuring you are solving the right problem, with the right solution, in the right order. As simple as that sounds, every company I've seen get that equation right has been successful, and every company that has not, has failed. I call this method the Name, Order, Build, Ship (NO-BS) method. The tenets are as follows:</p>\n <ol>\n <li>\n <p><strong>Name: Ground Yourself in the Problem Space</strong></p>\n <p>The first step to solving any problem is fully identifying the problem you are solving. Scope the problem down NOT to the <em>smallest</em> it can be but to the <em> most accurate definition of what the problem really is</em>. For instance, if you have a problem where customer's reports take too long to generate causing frustration, then it makes sense to focus on effecient data queries, but it might not make sense to focus on redesigning the dashboard. Know the problem you are addressing and get internal alignment on that problem definition and scope before moving to any solution phases.</p>\n </li>\n <li>\n <p><strong>Order: Stack the Dominos</strong></p>\n <p>No one has just one problem, and you need a strategy for figuring out which problems to work on in what order. Order your problems first by level of impact they would have on your customer's satisfaction with your product, and then order them by which problems that, if solved, would lead to easier solutions to solving subsequent problems.</p>\n </li>\n\n <li>\n <p><strong>Build: Validate Your Soltuion</strong></p>\n <p>Find the quickest way to validate the effectiveness to your best proposed solution. If you can fix one report today, but not all 10, fix that one, deploy it, test it, and see if it worked. If it did, you have added value to your product and increased the happiness of your customers. If it didn't work, then you have learned something and avoided applying a method that doesn't work to the other 9 reports. Repeat steps 1-3 as necessasry until you get a success at this step.</p>\n </li>\n\n <li>\n <p><strong>Ship: Commit to Execution</strong></p>\n <p>This is an important aspect and one companies can get wrong. Once you're on your way to solving the right problem in the right way, commit to seeing it through. Don't reprioritize teams mid-way, don't shift focus on a shiny new goal. Have a strategy for prioritizing that shiny new goal for sometime in the future, and stay the course.</p>\n </li>\n </ol>\n </div>\n </div>\n </div>\n </section>\n\n <section id=\"contact\" className=\"four\">\n <div className=\"container\">\n <header>\n <h2>Contact</h2>\n </header>\n <p>If you want to work with me, or just chat with me, or just tell me something funny you heard the other day, feel free to reach out.</p>\n <form method=\"POST\" action=\"https://getform.io/f/a55f7ff6-362b-452a-a82a-8a54c65d3e4e\">\n <div className=\"row\">\n <div className=\"col-6 col-12-mobile\">\n <input type=\"text\" name=\"name\" placeholder=\"Name\" />\n </div>\n <div className=\"col-6 col-12-mobile\">\n <input type=\"text\" name=\"email\" placeholder=\"Email\" />\n </div>\n <div className=\"col-12\">\n <textarea name=\"message\" placeholder=\"Message\" />\n </div>\n <div className=\"col-12\" style={{textAlign: 'center'}}>\n <input type=\"submit\" value=\"Send Message\" />\n </div>\n </div>\n </form>\n </div>\n </section>\n </div>\n\n <PageFooter />\n </Layout>\n );\n};\n\nexport default IndexPage;\n","module.exports = __webpack_public_path__ + \"static/pic03-054c6828b0ef27716c578de240a93a40.jpg\";","module.exports = __webpack_public_path__ + \"static/pic05-4bf32763b0afaf602e0ec43c3d0e2926.jpg\";","module.exports = __webpack_public_path__ + \"static/meal-planner-app-676d56e7a48c7e731d4eb62fd2190b59.jpg\";","module.exports = __webpack_public_path__ + \"static/pic04-008bc25de3c0e35f035ebccf5ac21d4d.jpg\";","module.exports = __webpack_public_path__ + \"static/pic07-de2c6fb74540c367019ad328e6a78bc1.jpg\";"],"sourceRoot":""}