{"version":3,"sources":["webpack:///./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js","webpack:///./src/components/marketinglinks.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","ObserverMap","Map","RootIds","WeakMap","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","inView","isIntersecting","some","threshold","intersectionRatio","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","indexOf","unobserve","size","disconnect","isPlainChildren","props","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","delay","componentWillUnmount","_this$props","render","_this$state","ref","_this$props2","as","tag","excluded","sourceKeys","_objectWithoutPropertiesLoose","displayName","defaultProps","module","exports","polyfill","w","window","d","document","documentElement","style","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","now","performance","bind","Date","ROUNDING_TOLERANCE","navigator","RegExp","join","test","shouldBailOut","smoothScroll","body","left","scrollX","pageXOffset","top","scrollY","pageYOffset","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","getBoundingClientRect","clientRects","getComputedStyle","position","x","y","firstArg","TypeError","hasScrollableSpace","el","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","parentNode","host","step","context","value","currentX","currentY","k","elapsed","startTime","Math","cos","PI","startX","startY","method","scrollable","requestAnimationFrame"],"mappings":"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","file":"f94dbc88cecd175c556460d071f8b2182bad5ac3-97facde4ed6aff3069ea.js","sourcesContent":["import \"core-js/modules/es.array.sort.js\";\nimport { 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 WeakMap();\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/**\r\n * @param element - DOM Element to observe\r\n * @param callback - Callback function to trigger when intersection status changes\r\n * @param options - Intersection Observer options\r\n * @return Function - Cleanup function that should be triggered to unregister the observer\r\n */\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 ## Render props\r\n\n To use the `` component, you pass it a function. It will be called\r\n whenever the state changes, with the new value of `inView`. In addition to the\r\n `inView` prop, children also receive a `ref` that should be set on the\r\n containing DOM element. This is the element that the IntersectionObserver will\r\n monitor.\r\n\n If you need it, you can also access the\r\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\r\n on `entry`, giving you access to all the details about the current intersection\r\n state.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n \r\n {({ inView, ref, entry }) => (\r\n
\r\n

{`Header inside viewport ${inView}.`}

\r\n
\r\n )}\r\n
\r\n );\r\n\n export default Component;\r\n ```\r\n\n ## Plain children\r\n\n You can pass any element to the ``, and it will handle creating the\r\n wrapping DOM element. Add a handler to the `onChange` method, and control the\r\n state in your own component. Any extra props you add to `` will be\r\n passed to the HTML element, allowing you set the `className`, `style`, etc.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n console.log('Inview:', inView)}>\r\n

Plain children are always rendered. Use onChange to monitor state.

\r\n
\r\n );\r\n\n export default Component;\r\n ```\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/**\r\n * React Hooks make it easy to monitor the `inView` state of your components. Call\r\n * the `useInView` hook with the (optional) [options](#options) you need. It will\r\n * return an array containing a `ref`, the `inView` status and the current\r\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\r\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\r\n * report the status.\r\n *\r\n * @example\r\n * ```jsx\r\n * import React from 'react';\r\n * import { useInView } from 'react-intersection-observer';\r\n *\r\n * const Component = () => {\r\n * const { ref, inView, entry } = useInView({\r\n * threshold: 0,\r\n * });\r\n *\r\n * return (\r\n *
\r\n *

{`Header inside viewport ${inView}.`}

\r\n *
\r\n * );\r\n * };\r\n * ```\r\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, observe, useInView };","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict'; // polyfill\n\n function polyfill() {\n // aliases\n var w = window;\n var d = document; // return if scroll behavior is supported and polyfill is not forced\n\n if ('scrollBehavior' in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n } // globals\n\n\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468; // object gathering original scroll methods\n\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n }; // define timing method\n\n var now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n\n\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n\n\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n\n\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== 'object' || firstArg.behavior === undefined || firstArg.behavior === 'auto' || firstArg.behavior === 'instant') {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n } // throw error when behavior is not supported\n\n\n throw new TypeError('behavior member of ScrollOptions ' + firstArg.behavior + ' is not a valid value for enumeration ScrollBehavior.');\n }\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n\n\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n return isScrollableY || isScrollableX;\n }\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n\n\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n\n\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME; // avoid elapsed times higher than one\n\n elapsed = elapsed > 1 ? 1 : elapsed; // apply easing to elapsed time\n\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY); // scroll more if we have not reached our destination\n\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n\n\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now(); // define scroll context\n\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n } // scroll looping over a frame\n\n\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n } // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n\n\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : w.scrollX || w.pageXOffset, // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : w.scrollY || w.pageYOffset);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n smoothScroll.call(w, d.body, arguments[0].left !== undefined ? ~~arguments[0].left : w.scrollX || w.pageXOffset, arguments[0].top !== undefined ? ~~arguments[0].top : w.scrollY || w.pageYOffset);\n }; // w.scrollBy\n\n\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(w, arguments[0].left !== undefined ? arguments[0].left : typeof arguments[0] !== 'object' ? arguments[0] : 0, arguments[0].top !== undefined ? arguments[0].top : arguments[1] !== undefined ? arguments[1] : 0);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\n }; // Element.prototype.scroll and Element.prototype.scrollTo\n\n\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(this, // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined ? ~~arguments[0].left : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined ? ~~arguments[0].top : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop);\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top; // LET THE SMOOTHNESS BEGIN!\n\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\n }; // Element.prototype.scrollBy\n\n\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n } // avoid smooth behavior if not required\n\n\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(this, arguments[0].left !== undefined ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop);\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n }; // Element.prototype.scrollIntoView\n\n\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\n return;\n } // LET THE SMOOTHNESS BEGIN!\n\n\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top); // reveal parent in viewport unless is fixed\n\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = {\n polyfill: polyfill\n };\n } else {\n // global\n polyfill();\n }\n})();","import React from 'react';\nimport CardGrid from \"./cardgrid.js\"\nimport StrapiImage from \"./StrapiImage.js\"\nimport BackgroundImage from 'gatsby-background-image'\n\n\n\nconst MarketingLinks = props => {\n\n\n\n let Size=\"xlarge-50 large-50 medium-50 small-100 tiny-100 push-left mLink\"\n\n if(props.length === 1){\n Size=\"all-100 push-left \"\n}else if(props.length === 2){\n Size=\"xlarge-50 large-50 medium-50 small-100 tiny-100 push-left mLink\"\n}else if(props.length === 3){\n Size=\"xlarge-33 large-33 medium-33 small-100 tiny-100 push-left mLink\"\n}\nelse if(props.length === 4){\n Size=\"xlarge-25 large-25 medium-50 small-100 tiny-100 push-left mLink\"\n}\nelse if(props.length === 5){\n Size=\"xlarge-25 large-25 medium-50 small-100 tiny-100 push-left mLink\"\n}else if(props.length === 6){\n Size=\"xlarge-33 large-33 medium-33 small-100 tiny-100 push-left mLink\"\n}else if(props.length === 6){\n Size=\"xlarge-33 large-33 medium-33 small-100 tiny-100 push-left mLink\"\n}\nelse if(props.length === 8){\n Size=\"xlarge-25 large-25 medium-50 small-100 tiny-100 push-left mLink\"\n}\n\nlet backgroundFluidImageStack = [\n`linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5))`\n].reverse()\n\nif(props.data.image !== null){\n backgroundFluidImageStack = [\nprops.data.image.childImageSharp.fluid,\n`linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5))`\n].reverse()\n}\n return(\n\n\n
\n\n \n\n
\n

{props.data.title}

\n

{props.data.subtitle}

\n
\n
\n
\n
\n\n )\n\n\n }\n\n\n\n\n\n\n\nexport default MarketingLinks;\n"],"sourceRoot":""}