{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/components/layout.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./src/components/header.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/components/footer.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./src/pages/process.js","webpack:///./.cache/public-page-renderer.js","webpack:///./.cache/public-page-renderer-prod.js"],"names":["createHTML","this","_interopRequireDefault","require","exports","__esModule","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","getImageSrcKey","_ref2","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","imageCache","Object","create","inImageCache","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","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","_ref7","generateSources","spreadProps","baseImage","Img","length","forwardRef","ref","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","imageRef","createRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","setState","currentSrc","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","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","_imageVariants","_image","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","oneOfType","arrayOf","bool","oneOf","_default","Layout","layoutStyles","container","children","$export","$find","KEY","forced","P","F","callbackfn","arguments","undefined","Header","navStyles","navItem","activeClassName","activeNavitem","to","fails","defined","quot","tag","attribute","value","S","String","p1","replace","module","NAME","exec","O","test","toLowerCase","split","Footer","href","loader","enqueue","React","createContext","Process","data","imageFourteen","childImageSharp","imageThirteen","imageTwelve","imageEleven","imageTen","imageNine","imageEight","imageSeven","imageSix","imageFive","imageFour","imageThree","imageTwo","imageOne","m","default","ProdPageRenderer","location","pageResources","InternalPageRenderer","json"],"mappings":"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","file":"component---src-pages-process-js-66b1db62b82520820492.js","sourcesContent":["'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","\"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 delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // 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}\n */\n\n\nvar getImageSrcKey = function getImageSrcKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var data = fluid ? getCurrentSrcData(fluid) : getCurrentSrcData(fixed);\n return data.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[]} The fluid or fixed image array.\n * @return {{src: string, media?: string}}\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 }\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); // Find src\n\n var src = getImageSrcKey(convertedProps);\n return imageCache[src] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = getImageSrcKey(convertedProps);\n imageCache[src] = true;\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners[\"delete\"](entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\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 _react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: src\n }, srcSetWebp && _react[\"default\"].createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), _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 _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 _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 \"\";\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 \"\" + sources + \"\";\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 = function Placeholder(_ref7) {\n var src = _ref7.src,\n imageVariants = _ref7.imageVariants,\n generateSources = _ref7.generateSources,\n spreadProps = _ref7.spreadProps;\n\n var baseImage = _react[\"default\"].createElement(Img, (0, _extends2[\"default\"])({\n src: src\n }, spreadProps));\n\n return imageVariants.length > 1 ? _react[\"default\"].createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n};\n\nvar Img = _react[\"default\"].forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n otherProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\"]);\n return _react[\"default\"].createElement(\"img\", (0, _extends2[\"default\"])({\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n 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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.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 = _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 return _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n imgCached: !!_this2.imageRef.current.currentSrc\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n 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 _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2[\"default\"])({\n position: \"relative\",\n overflow: \"hidden\"\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, _react[\"default\"].createElement(Tag, {\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(imageVariants), _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 && _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 _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(_image.srcSet)\n }, bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: _image.height\n }, shouldFadeIn && delayHideStyle)\n }), _image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: _image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateBase64Sources\n }), _image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: _image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(_imageVariants), _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 && _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}); // 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: _propTypes[\"default\"].oneOfType([fixedObject, _propTypes[\"default\"].arrayOf(fixedObject)]),\n fluid: _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 React from \"react\"\nimport Header from \"./header\"\nimport Footer from \"./footer\"\nimport \"../styles/main.scss\"\nimport layoutStyles from \"./layout.module.scss\"\n\nconst Layout = (props) => {\n\n return(\n \n
\n
\n
\n { props.children } \n
\n \n )\n}\n\nexport default Layout","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","import React from \"react\"\nimport { Link } from \"gatsby\"\nimport navStyles from \"./nav.module.scss\"\n\nconst Header = () => {\n return ( \n \n )\n}\n\nexport default Header\n\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","import React from \"react\"\n\nconst Footer = () => {\n\n return (\n \n )\n}\n\nexport default Footer\n\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","import React from \"react\"\nimport Layout from \"../components/layout\"\nimport { Link, graphql, useStaticQuery } from \"gatsby\"\nimport Img from \"gatsby-image\"\n\nconst Process = () => {\n const data = useStaticQuery(graphql`\n query {\n imageOne: file(relativePath: { eq: \"media/gallery/img_000.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTwo: file(relativePath: { eq: \"media/gallery/img_001.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageThree: file(relativePath: { eq: \"media/gallery/img_002.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFour: file(relativePath: { eq: \"media/gallery/img_003.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFive: file(relativePath: { eq: \"media/gallery/img_004.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSix: file(relativePath: { eq: \"media/gallery/img_005.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSeven: file(relativePath: { eq: \"media/gallery/img_006.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageEight: file(relativePath: { eq: \"media/gallery/img_007.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageNine: file(relativePath: { eq: \"media/gallery/img_008.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTen: file(relativePath: { eq: \"media/gallery/img_009.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageEleven: file(relativePath: { eq: \"media/gallery/img_010.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTwelve: file(relativePath: { eq: \"media/gallery/img_011.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageThirteen: file(relativePath: { eq: \"media/gallery/img_012.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFourteen: file(relativePath: { eq: \"media/gallery/img_013.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n \n }\n `)\n /*console.log(data)*/\n return (\n \n

Process

\n

\n This page showcases personal as well as pedagogical work that is often experimental and\n exploratory in nature. I devote a lot of my time crafting personal\n creative tools using code as my main media and medium. Some of these\n evolve into larger projects and become in part research as well as\n production tools. Further information, when available, can be found on\n clicking on an image.{\" \"}\n

\n

\n\n {/**/}\n\n
\n {/*\n {data.images.nodes.map(image => (\n \n ))}\n */}\n\n \n
\n \n
\n
\n
TypeMotion_02
\n

\n Experiments in kinetic typography{\" \"}\n

\n
Typography, generative, research
\n
\n
\n
\n \n\n \n
\n \n
\n
\n
Motion Studies
\n

\n A small collection of motion sketches for teaching purposes.{\" \"}\n

\n
Motion, teaching, website
\n
\n
\n
\n
\n\n\n
\n \n
\n
\n
Parametrics
\n

\n Generative typography research project with students{\" \"}\n

\n
Typography, workshop, teaching, website
\n
\n
\n
\n
\n \n
\n \n
\n
\n
Computational Graphic Design
\n

\n A collection of programs to learn about graphic design & gestalt theory{\" \"}\n

\n
Teaching, website
\n
\n
\n
\n
\n\n
\n \n
\n
\n
Initials
\n

\n More information coming soon...;–){\" \"}\n

\n
Typography, generative, research
\n
\n
\n
\n\n\n\n
\n\n \n
\n
\n
Designing Programs
\n

\n A practical introduction to creative programming.{\" \"}\n

\n
Teaching, P5.js, Processing, website
\n
\n
\n
\n
\n\n\n\n
\n \n
\n
\n
SAM @Pompidou
\n

\n An interactive art installation about drawing with the machine.{\" \"}\n

\n
Installation, art, design
\n
\n
\n
\n
\n\n\n
\n \n
\n
\n
DitherType
\n

\n Experimental typographic research with custom dithering tools.{\" \"}\n

\n
Typography, dithering, experimental
\n
\n
\n
\n \n \n\n
\n \n
\n
\n
TypeMotion_01
\n

\n Experimental typographic research.{\" \"}\n

\n
Print, dithering, experimental
\n
\n
\n
\n
\n\n \n
\n \n
\n
\n
SAM
\n

\n The home-made drawing machine called SAM.{\" \"}\n

\n
Processing, Arduino
\n
\n
\n
\n \n\n \n
\n \n
\n
\n
Dial A Demo
\n

\n An interactive installation for presenting student work on generative motion.{\" \"}\n

\n
Installation, art, design
\n
\n
\n
\n
\n\n
\n \n
\n
\n
Print++
\n

\n More information coming soon...;–){\" \"}\n

\n
\n
\n
\n \n \n
\n \n
\n
\n
AlphaGraph
\n

\n A custom-made tool for exploring letter form.{\" \"}\n

\n
Printing, typography, workshops
\n
\n
\n
\n \n\n \n
\n \n
\n
\n
PolyArch
\n

\n Generative 3d forms{\" \"}\n

\n
Processing, Hemesh, SunFlow
\n
\n
\n
\n \n\n
\n\n
\n )\n}\n\nexport default Process\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n"],"sourceRoot":""}