{"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 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 Experiments in kinetic typography{\" \"}\n
\n\n A small collection of motion sketches for teaching purposes.{\" \"}\n
\n\n Generative typography research project with students{\" \"}\n
\n\n A collection of programs to learn about graphic design & gestalt theory{\" \"}\n
\n\n More information coming soon...;–){\" \"}\n
\n\n A practical introduction to creative programming.{\" \"}\n
\n\n An interactive art installation about drawing with the machine.{\" \"}\n
\n\n Experimental typographic research with custom dithering tools.{\" \"}\n
\n\n Experimental typographic research.{\" \"}\n
\n\n The home-made drawing machine called SAM.{\" \"}\n
\n\n An interactive installation for presenting student work on generative motion.{\" \"}\n
\n\n More information coming soon...;–){\" \"}\n
\n\n A custom-made tool for exploring letter form.{\" \"}\n
\n\n Generative 3d forms{\" \"}\n
\n