{"version":3,"sources":["webpack:///./src/components/SponsorContent.js","webpack:///./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/toNumber.js"],"names":["Container","styled","div","mediaTablet","mediaMedium","Wrapper","Top","Bottom","Left","AnimationBottom","Image","props","active","css","SlideInBottom","delay","AnimationTop","SlideInTop","SponsorContent","images","inView","fluid","desktopOne","childImageSharp","desktopTwo","desktopThree","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","ObserverMap","Map","RootIds","rootId","optionsToId","options","keys","sort","filter","undefined","map","root","has","set","toString","get","observe","element","callback","_createObserver","id","instance","thresholds","elements","observer","IntersectionObserver","entries","forEach","entry","_elements$get","isIntersecting","some","threshold","intersectionRatio","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","indexOf","unobserve","size","disconnect","isPlainChildren","children","InView","_React$Component","subClass","superClass","_this","node","_unobserveCb","handleNode","triggerOnce","skip","setState","initialInView","observeNode","handleChange","onChange","state","create","constructor","__proto__","_proto","componentDidUpdate","prevProps","rootMargin","componentWillUnmount","_this$props","render","_this$state","ref","_this$props2","as","tag","excluded","sourceKeys","_objectWithoutPropertiesLoose","useInView","_temp","_ref","_React$useState","setRef","current","result","displayName","defaultProps","module","exports","Date","now","isObject","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","value","other","valueOf","replace","isBinary","test","slice"],"mappings":"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","file":"1a48f3500bfa2859c4c1d2b6b8d5e7f120402f3c-c031d8fb79502ec1a157.js","sourcesContent":["import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { mediaMedium, mediaTablet } from \"./styles/variables\";\nimport Image from \"./Image\";\nimport { SlideInBottom, SlideInTop } from \"./styles/animations\";\n\nconst Container = styled.div`\n pointer-events: none;\n width: 100%;\n max-height: 300px;\n background-color: rgba(255, 255, 255, 0.6);\n\n @media (${mediaTablet}) {\n max-height: 480px;\n }\n\n @media (${mediaMedium}) {\n max-width: 640px;\n width: 80vw;\n position: absolute;\n bottom: 0;\n top: 0;\n transform: translateY(-930px);\n //left: calc(100% * 9.2 / 12);\n right: -85%;\n margin: 0 auto;\n overflow: visible;\n }\n\n @media (min-width: 900px) {\n right: -80%;\n }\n @media (min-width: 975px) {\n right: -65%;\n }\n @media (min-width: 1200px) {\n right: -55%;\n }\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n padding-top: 120.6%;\n`;\n\nconst Top = styled.div`\n position: absolute;\n top: -6%;\n z-index: 2;\n width: 100%;\n left: 0;\n transform: translateX(-40%);\n`;\n\nconst Bottom = styled(Top)`\n z-index: 3;\n width: 136%;\n top: 65%;\n left: 0;\n transform: translateX(-92%);\n\n .gatsby-image-wrapper {\n max-width: 100% !important;\n max-height: none !important;\n }\n`;\n\nconst Left = styled(Top)`\n z-index: 3;\n top: 79%;\n width: 109%;\n right: 0;\n transform: translateX(-28%);\n`;\n\nconst AnimationBottom = styled(Image)`\n transform: translateY(20%);\n animation: ${(props) =>\n props.active\n ? css`\n ${SlideInBottom} 0.9s ease both 0.5s\n `\n : \"none\"};\n animation-delay: ${(props) => (props.active ? props.delay : 1)}s;\n`;\n\nconst AnimationTop = styled(Image)`\n transform: translateY(-20%);\n animation: ${(props) =>\n props.active\n ? css`\n ${SlideInTop} 0.9s ease both 0.5s\n `\n : \"none\"};\n animation-delay: ${(props) => (props.active ? 0 : 1.2)}s;\n`;\n\nconst SponsorContent = ({ images, inView }) => {\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default SponsorContent;\n","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new Map();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(function (key) {\n return options[key] !== undefined;\n }).map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var thresholds;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get; // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n\n\n var inView = entry.isIntersecting && thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options); // Ensure we have a valid thresholds array. If not, use the threshold from the options\n\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n * Monitors scroll, and triggers the children function with updated props\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, useInView };","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"sourceRoot":""}