-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path10-0eb7656eb293122751d6.js.map
1 lines (1 loc) · 114 KB
/
10-0eb7656eb293122751d6.js.map
1
{"version":3,"sources":["webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/react-waypoint/es/index.js","webpack:///./node_modules/consolidated-events/lib/index.esm.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-scrollspy/lib/Scrollspy.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/react-scrollspy/lib/throttle.js","webpack:///./node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"names":["_interopRequireDefault","__webpack_require__","exports","__esModule","default","io","_inheritsLoose2","_assertThisInitialized2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","fixed","sizes","fluid","imageCache","Object","create","inImageCache","src","listeners","WeakMap","listenToIntersections","el","cb","observer","window","IntersectionObserver","entries","forEach","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","srcSetWebp","srcSet","title","alt","width","height","crossOrigin","Img","forwardRef","ref","style","onLoad","onError","otherProps","createElement","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","this","isVisible","IOSupported","fadeIn","seenBefore","critical","hasNoScript","state","imgLoaded","imgCached","imageRef","createRef","handleImageLoaded","bind","handleRef","_proto","prototype","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","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","image","overflow","key","JSON","stringify","paddingBottom","aspectRatio","bottom","right","base64","tracedSVG","type","dangerouslySetInnerHTML","__html","_image","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","bool","oneOfType","_default","global","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","consolidated_events__WEBPACK_IMPORTED_MODULE_1__","prop_types__WEBPACK_IMPORTED_MODULE_2__","prop_types__WEBPACK_IMPORTED_MODULE_2___default","react_is__WEBPACK_IMPORTED_MODULE_3__","computeOffsetPixels","offset","contextHeight","str","pixelOffset","isNaN","parseFloat","isFinite","slice","percentOffset","parseOffsetAsPercentage","constants","above","inside","below","invisible","errorMessage","ensureChildrenIsValid","children","a","Children","only","e","Error","isDOMElement","errorMessage$1","timeout","timeoutQueue","onNextTick","push","setTimeout","item","shift","isSubscribed","index","indexOf","splice","length","clearTimeout","_createClass","defineProperties","i","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","topOffset","bottomOffset","horizontal","onEnter","onLeave","onPositionChange","fireOnRapidScroll","BaseClass","PureComponent","Waypoint","_BaseClass","instance","TypeError","_classCallCheck","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","refElement","_ref","subClass","superClass","constructor","value","setPrototypeOf","_inherits","getWindow","cancelOnNextTick","ensureRefIsProvidedByChild","_handleScroll","scrollableAncestor","_findScrollableAncestor","scrollEventListenerUnsubscribe","passive","resizeEventListenerUnsubscribe","newProps","_this3","_props","resolveScrollableAncestorProp","node","parentNode","document","body","getComputedStyle","getPropertyValue","event","bounds","_getBounds","currentPosition","viewportBottom","viewportTop","waypointTop","waypointBottom","getCurrentPosition","previousPosition","_previousPosition","callbackArg","isRapidScrollDown","isRapidScrollUp","_ref$getBoundingClien","getBoundingClientRect","contextScrollTop","innerWidth","innerHeight","offsetWidth","offsetHeight","_props2","_this4","fontSize","cloneElement","innerRef","debug","any","displayName","__webpack_exports__","d","addEventListener","CAN_USE_DOM","memoized","canUsePassiveEventListeners","undefined","removeEventListener","supportsPassiveOption","opts","noop","testPassiveEventListeners","ensureCanMutateNextEventHandlers","eventHandlers","handlers","nextHandlers","TargetEventHandlers","events","getEventHandlers","eventName","options","normalizedEventOptions","String","capture","once","handleEvent","handler","add","listener","EVENT_HANDLERS_KEY","eventOptions","normalizeEventOptions","module","b","Symbol","for","c","f","g","h","k","l","m","p","q","r","t","u","$$typeof","v","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","_defineProperty2","_toConsumableArray2","_classCallCheck2","_possibleConstructorReturn2","_getPrototypeOf2","_createClass2","_inherits2","_classnames","_throttle","Scrollspy","targetItems","inViewState","isScrolledPast","_handleSpy","items","arrayOf","currentClassName","scrolledPastClassName","componentTag","rootEl","onUpdate","map","getElementById","array","val","newArray","max","_getScrollDimension","scrollTop","doc","querySelector","documentElement","scrollHeight","targets","elemsInView","elemsOutView","viewStatusList","hasInViewAlready","currentContent","isInView","_isInView","isLastItem","isScrolled","_isScrolled","_isAtBottom","pop","apply","_fillArray","inView","outView","scrolledPast","_getScrolledPast","rootRect","_this$props","rect","winH","scrollBottom","elTop","elBottom","_this$_getScrollDimen2","some","hasFoundInView","elemensViewState","_getElemsViewState","currentStatuses","_update","prevStatuses","every","_spy","_initSpyTarget","_initFromProps","onEvent","offEvent","_this$props2","counter","child","idx","_classNames","ChildTag","childClass","concat","itemClass","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr","Array","isArray","arr2","iter","iterator","toString","from","_typeof","assertThisInitialized","_typeof2","obj","_getPrototypeOf","o","_defineProperties","_setPrototypeOf","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","hasOwnProperty","classNames","classes","arguments","arg","argType","inner","join","fn","last","timer","threshold","now","Date","polyfill","w","__forceSmoothScrollPolyfill__","userAgent","HTMLElement","SCROLL_TIME","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","performance","ROUNDING_TOLERANCE","navigator","RegExp","test","shouldBailOut","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","scrollLeft","SyntaxError","behavior","scrollableParent","isScrollable","host","findScrollableParent","parentRects","clientRects","x","y","firstArg","hasScrollableSpace","axis","clientHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","currentX","currentY","elapsed","startTime","Math","cos","PI","startX","startY","method","scrollable","requestAnimationFrame"],"mappings":"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","file":"10-0eb7656eb293122751d6.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\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\n// Handle legacy names for image queries.\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n\n if (convertedProps.resolutions) {\n convertedProps.fixed = convertedProps.resolutions;\n delete convertedProps.resolutions;\n }\n\n if (convertedProps.sizes) {\n convertedProps.fluid = convertedProps.sizes;\n delete convertedProps.sizes;\n }\n\n return convertedProps;\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 = convertedProps.fluid ? convertedProps.fluid.src : convertedProps.fixed.src;\n return imageCache[src] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = convertedProps.fluid ? convertedProps.fluid.src : convertedProps.fixed.src;\n imageCache[src] = true;\n};\n\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\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 srcSetWebp = props.srcSetWebp ? \"<source type='image/webp' srcset=\\\"\" + props.srcSetWebp + \"\\\" \" + 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 return \"<picture>\" + srcSetWebp + \"<img \" + width + height + sizes + srcSet + src + alt + title + crossOrigin + \"style=\\\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\\\"/></picture>\";\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 otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\"]);\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 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; // default settings for browser without Intersection Observer available\n\n var isVisible = true;\n var imgLoaded = false;\n var imgCached = false;\n var IOSupported = false;\n var fadeIn = props.fadeIn; // 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 var seenBefore = inImageCache(props); // browser with Intersection Observer available\n\n if (!seenBefore && typeof window !== \"undefined\" && window.IntersectionObserver) {\n isVisible = false;\n IOSupported = true;\n } // Never render image during SSR\n\n\n if (typeof window === \"undefined\") {\n isVisible = false;\n } // Force render for critical images\n\n\n if (props.critical) {\n isVisible = true;\n IOSupported = false;\n }\n\n var hasNoScript = !(props.critical && !props.fadeIn);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: imgLoaded,\n imgCached: imgCached,\n IOSupported: IOSupported,\n fadeIn: fadeIn,\n hasNoScript: hasNoScript,\n seenBefore: seenBefore\n };\n _this.imageRef = _react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)((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.props.critical) {\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 };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.state.IOSupported && 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 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.state.seenBefore) {\n this.setState({\n fadeIn: false\n });\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 Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp;\n\n var shouldReveal = this.state.imgLoaded || this.state.fadeIn === false;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var durationFadeIn = \"0.5s\";\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn\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 };\n\n if (fluid) {\n var image = 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(Img, (0, _extends2.default)({\n src: image.base64\n }, placeholderImageProps)), image.tracedSVG && _react.default.createElement(Img, (0, _extends2.default)({\n src: image.tracedSVG\n }, placeholderImageProps)), this.state.isVisible && _react.default.createElement(\"picture\", null, image.srcSetWebp && _react.default.createElement(\"source\", {\n type: \"image/webp\",\n srcSet: image.srcSetWebp,\n sizes: image.sizes\n }), _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 })), this.state.hasNoScript && _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title\n }, image))\n }\n }));\n }\n\n if (fixed) {\n var _image = fixed;\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(Img, (0, _extends2.default)({\n src: _image.base64\n }, placeholderImageProps)), _image.tracedSVG && _react.default.createElement(Img, (0, _extends2.default)({\n src: _image.tracedSVG\n }, placeholderImageProps)), this.state.isVisible && _react.default.createElement(\"picture\", null, _image.srcSetWebp && _react.default.createElement(\"source\", {\n type: \"image/webp\",\n srcSet: _image.srcSetWebp,\n sizes: _image.sizes\n }), _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 })), this.state.hasNoScript && _react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title\n }, _image))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n critical: false,\n fadeIn: true,\n alt: \"\",\n Tag: \"div\"\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});\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});\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: fixedObject,\n fluid: fluidObject,\n fadeIn: _propTypes.default.bool,\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};\nvar _default = Image;\nexports.default = _default;","import React from 'react';\nimport { addEventListener } from 'consolidated-events';\nimport PropTypes from 'prop-types';\nimport { isForwardRef } from 'react-is';\n\n/**\n * Attempts to parse the offset provided as a prop as a percentage. For\n * instance, if the component has been provided with the string \"20%\" as\n * a value of one of the offset props. If the value matches, then it returns\n * a numeric version of the prop. For instance, \"20%\" would become `0.2`.\n * If `str` isn't a percentage, then `undefined` will be returned.\n *\n * @param {string} str The value of an offset prop to be converted to a\n * number.\n * @return {number|undefined} The numeric version of `str`. Undefined if `str`\n * was not a percentage.\n */\nfunction parseOffsetAsPercentage(str) {\n if (str.slice(-1) === '%') {\n return parseFloat(str.slice(0, -1)) / 100;\n }\n}\n\n/**\n * Attempts to parse the offset provided as a prop as a pixel value. If\n * parsing fails, then `undefined` is returned. Three examples of values that\n * will be successfully parsed are:\n * `20`\n * \"20px\"\n * \"20\"\n *\n * @param {string|number} str A string of the form \"{number}\" or \"{number}px\",\n * or just a number.\n * @return {number|undefined} The numeric version of `str`. Undefined if `str`\n * was neither a number nor string ending in \"px\".\n */\nfunction parseOffsetAsPixels(str) {\n if (!isNaN(parseFloat(str)) && isFinite(str)) {\n return parseFloat(str);\n } else if (str.slice(-2) === 'px') {\n return parseFloat(str.slice(0, -2));\n }\n}\n\n/**\n * @param {string|number} offset\n * @param {number} contextHeight\n * @return {number} A number representing `offset` converted into pixels.\n */\nfunction computeOffsetPixels(offset, contextHeight) {\n var pixelOffset = parseOffsetAsPixels(offset);\n\n if (typeof pixelOffset === 'number') {\n return pixelOffset;\n }\n\n var percentOffset = parseOffsetAsPercentage(offset);\n if (typeof percentOffset === 'number') {\n return percentOffset * contextHeight;\n }\n}\n\nvar constants = {\n above: 'above',\n inside: 'inside',\n below: 'below',\n invisible: 'invisible'\n};\n\nfunction debugLog() {\n if (process.env.NODE_ENV !== 'production') {\n console.log(arguments); // eslint-disable-line no-console\n }\n}\n\nvar errorMessage = '<Waypoint> expected to receive a single React element child.\\n\\n' + 'See https://goo.gl/LrBNgw for more info.';\n\n/**\n * Raise an error if more that one child was provided to \"children\"\n *\n * @param {?React.element} children\n * @return {undefined}\n */\nfunction ensureChildrenIsValid(children) {\n if (children) {\n try {\n React.Children.only(children);\n } catch (e) {\n throw new Error(errorMessage);\n }\n }\n}\n\n/**\n * When an element's type is a string, it represents a DOM node with that tag name\n * https://facebook.github.io/react/blog/2015/12/18/react-components-elements-and-instances.html#dom-elements\n *\n * @param {React.element} Component\n * @return {bool} Whether the component is a DOM Element\n */\nfunction isDOMElement(Component) {\n return typeof Component.type === 'string';\n}\n\nvar errorMessage$1 = '<Waypoint> needs a DOM element to compute boundaries. The child you passed is neither a ' + 'DOM element (e.g. <div>) nor does it use the innerRef prop.\\n\\n' + 'See https://goo.gl/LrBNgw for more info.';\n\n/**\n * Raise an error if \"children\" is not a DOM Element and there is no ref provided to Waypoint\n *\n * @param {?React.element} children\n * @param {?HTMLElement} ref\n * @return {undefined}\n */\nfunction ensureRefIsProvidedByChild(children, ref) {\n if (children && !isDOMElement(children) && !ref) {\n throw new Error(errorMessage$1);\n }\n}\n\n/**\n * @param {object} bounds An object with bounds data for the waypoint and\n * scrollable parent\n * @return {string} The current position of the waypoint in relation to the\n * visible portion of the scrollable parent. One of `constants.above`,\n * `constants.below`, or `constants.inside`.\n */\nfunction getCurrentPosition(bounds) {\n if (bounds.viewportBottom - bounds.viewportTop === 0) {\n return constants.invisible;\n }\n\n // top is within the viewport\n if (bounds.viewportTop <= bounds.waypointTop && bounds.waypointTop <= bounds.viewportBottom) {\n return constants.inside;\n }\n\n // bottom is within the viewport\n if (bounds.viewportTop <= bounds.waypointBottom && bounds.waypointBottom <= bounds.viewportBottom) {\n return constants.inside;\n }\n\n // top is above the viewport and bottom is below the viewport\n if (bounds.waypointTop <= bounds.viewportTop && bounds.viewportBottom <= bounds.waypointBottom) {\n return constants.inside;\n }\n\n if (bounds.viewportBottom < bounds.waypointTop) {\n return constants.below;\n }\n\n if (bounds.waypointTop < bounds.viewportTop) {\n return constants.above;\n }\n\n return constants.invisible;\n}\n\nvar timeout = void 0;\nvar timeoutQueue = [];\n\nfunction onNextTick(cb) {\n timeoutQueue.push(cb);\n\n if (!timeout) {\n timeout = setTimeout(function () {\n timeout = null;\n\n // Drain the timeoutQueue\n var item = void 0;\n // eslint-disable-next-line no-cond-assign\n while (item = timeoutQueue.shift()) {\n item();\n }\n }, 0);\n }\n\n var isSubscribed = true;\n\n return function () {\n function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n var index = timeoutQueue.indexOf(cb);\n if (index === -1) {\n return;\n }\n\n timeoutQueue.splice(index, 1);\n\n if (!timeoutQueue.length && timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n }\n\n return unsubscribe;\n }();\n}\n\nfunction resolveScrollableAncestorProp(scrollableAncestor) {\n // When Waypoint is rendered on the server, `window` is not available.\n // To make Waypoint easier to work with, we allow this to be specified in\n // string form and safely convert to `window` here.\n if (scrollableAncestor === 'window') {\n return global.window;\n }\n\n return scrollableAncestor;\n}\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultProps = {\n topOffset: '0px',\n bottomOffset: '0px',\n horizontal: false,\n onEnter: function () {\n function onEnter() {}\n\n return onEnter;\n }(),\n onLeave: function () {\n function onLeave() {}\n\n return onLeave;\n }(),\n onPositionChange: function () {\n function onPositionChange() {}\n\n return onPositionChange;\n }(),\n\n fireOnRapidScroll: true\n};\n\n// React.PureComponent was added in React 15.3.0\nvar BaseClass = typeof React.PureComponent !== 'undefined' ? React.PureComponent : React.Component;\n\n// Calls a function when you scroll to the element.\n\nvar Waypoint = function (_BaseClass) {\n _inherits(Waypoint, _BaseClass);\n\n function Waypoint(props) {\n _classCallCheck(this, Waypoint);\n\n var _this = _possibleConstructorReturn(this, (Waypoint.__proto__ || Object.getPrototypeOf(Waypoint)).call(this, props));\n\n _this.refElement = function (e) {\n return _this._ref = e;\n };\n return _this;\n }\n\n _createClass(Waypoint, [{\n key: 'componentWillMount',\n value: function () {\n function componentWillMount() {\n ensureChildrenIsValid(this.props.children);\n }\n\n return componentWillMount;\n }()\n }, {\n key: 'componentDidMount',\n value: function () {\n function componentDidMount() {\n var _this2 = this;\n\n if (!Waypoint.getWindow()) {\n return;\n }\n\n // this._ref may occasionally not be set at this time. To help ensure that\n // this works smoothly and to avoid layout thrashing, we want to delay the\n // initial execution until the next tick.\n this.cancelOnNextTick = onNextTick(function () {\n _this2.cancelOnNextTick = null;\n\n // Berofe doing anything, we want to check that this._ref is avaliable in Waypoint\n ensureRefIsProvidedByChild(_this2.props.children, _this2._ref);\n\n _this2._handleScroll = _this2._handleScroll.bind(_this2);\n _this2.scrollableAncestor = _this2._findScrollableAncestor();\n\n if (process.env.NODE_ENV !== 'production' && _this2.props.debug) {\n debugLog('scrollableAncestor', _this2.scrollableAncestor);\n }\n\n _this2.scrollEventListenerUnsubscribe = addEventListener(_this2.scrollableAncestor, 'scroll', _this2._handleScroll, { passive: true });\n\n _this2.resizeEventListenerUnsubscribe = addEventListener(window, 'resize', _this2._handleScroll, { passive: true });\n\n _this2._handleScroll(null);\n });\n }\n\n return componentDidMount;\n }()\n }, {\n key: 'componentWillReceiveProps',\n value: function () {\n function componentWillReceiveProps(newProps) {\n ensureChildrenIsValid(newProps.children);\n }\n\n return componentWillReceiveProps;\n }()\n }, {\n key: 'componentDidUpdate',\n value: function () {\n function componentDidUpdate() {\n var _this3 = this;\n\n if (!Waypoint.getWindow()) {\n return;\n }\n\n if (!this.scrollableAncestor) {\n // The Waypoint has not yet initialized.\n return;\n }\n\n // The element may have moved, so we need to recompute its position on the\n // page. This happens via handleScroll in a way that forces layout to be\n // computed.\n //\n // We want this to be deferred to avoid forcing layout during render, which\n // causes layout thrashing. And, if we already have this work enqueued, we\n // can just wait for that to happen instead of enqueueing again.\n if (this.cancelOnNextTick) {\n return;\n }\n\n this.cancelOnNextTick = onNextTick(function () {\n _this3.cancelOnNextTick = null;\n _this3._handleScroll(null);\n });\n }\n\n return componentDidUpdate;\n }()\n }, {\n key: 'componentWillUnmount',\n value: function () {\n function componentWillUnmount() {\n if (!Waypoint.getWindow()) {\n return;\n }\n\n if (this.scrollEventListenerUnsubscribe) {\n this.scrollEventListenerUnsubscribe();\n }\n if (this.resizeEventListenerUnsubscribe) {\n this.resizeEventListenerUnsubscribe();\n }\n\n if (this.cancelOnNextTick) {\n this.cancelOnNextTick();\n }\n }\n\n return componentWillUnmount;\n }()\n\n /**\n * Traverses up the DOM to find an ancestor container which has an overflow\n * style that allows for scrolling.\n *\n * @return {Object} the closest ancestor element with an overflow style that\n * allows for scrolling. If none is found, the `window` object is returned\n * as a fallback.\n */\n\n }, {\n key: '_findScrollableAncestor',\n value: function () {\n function _findScrollableAncestor() {\n var _props = this.props,\n horizontal = _props.horizontal,\n scrollableAncestor = _props.scrollableAncestor;\n\n\n if (scrollableAncestor) {\n return resolveScrollableAncestorProp(scrollableAncestor);\n }\n\n var node = this._ref;\n\n while (node.parentNode) {\n node = node.parentNode;\n\n if (node === document.body) {\n // We've reached all the way to the root node.\n return window;\n }\n\n var style = window.getComputedStyle(node);\n var overflowDirec = horizontal ? style.getPropertyValue('overflow-x') : style.getPropertyValue('overflow-y');\n var overflow = overflowDirec || style.getPropertyValue('overflow');\n\n if (overflow === 'auto' || overflow === 'scroll') {\n return node;\n }\n }\n\n // A scrollable ancestor element was not found, which means that we need to\n // do stuff on window.\n return window;\n }\n\n return _findScrollableAncestor;\n }()\n\n /**\n * @param {Object} event the native scroll event coming from the scrollable\n * ancestor, or resize event coming from the window. Will be undefined if\n * called by a React lifecyle method\n */\n\n }, {\n key: '_handleScroll',\n value: function () {\n function _handleScroll(event) {\n if (!this._ref) {\n // There's a chance we end up here after the component has been unmounted.\n return;\n }\n\n var bounds = this._getBounds();\n var currentPosition = getCurrentPosition(bounds);\n var previousPosition = this._previousPosition;\n\n if (process.env.NODE_ENV !== 'production' && this.props.debug) {\n debugLog('currentPosition', currentPosition);\n debugLog('previousPosition', previousPosition);\n }\n\n // Save previous position as early as possible to prevent cycles\n this._previousPosition = currentPosition;\n\n if (previousPosition === currentPosition) {\n // No change since last trigger\n return;\n }\n\n var callbackArg = {\n currentPosition: currentPosition,\n previousPosition: previousPosition,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n };\n this.props.onPositionChange.call(this, callbackArg);\n\n if (currentPosition === constants.inside) {\n this.props.onEnter.call(this, callbackArg);\n } else if (previousPosition === constants.inside) {\n this.props.onLeave.call(this, callbackArg);\n }\n\n var isRapidScrollDown = previousPosition === constants.below && currentPosition === constants.above;\n var isRapidScrollUp = previousPosition === constants.above && currentPosition === constants.below;\n\n if (this.props.fireOnRapidScroll && (isRapidScrollDown || isRapidScrollUp)) {\n // If the scroll event isn't fired often enough to occur while the\n // waypoint was visible, we trigger both callbacks anyway.\n this.props.onEnter.call(this, {\n currentPosition: constants.inside,\n previousPosition: previousPosition,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n });\n this.props.onLeave.call(this, {\n currentPosition: currentPosition,\n previousPosition: constants.inside,\n event: event,\n waypointTop: bounds.waypointTop,\n waypointBottom: bounds.waypointBottom,\n viewportTop: bounds.viewportTop,\n viewportBottom: bounds.viewportBottom\n });\n }\n }\n\n return _handleScroll;\n }()\n }, {\n key: '_getBounds',\n value: function () {\n function _getBounds() {\n var horizontal = this.props.horizontal;\n\n var _ref$getBoundingClien = this._ref.getBoundingClientRect(),\n left = _ref$getBoundingClien.left,\n top = _ref$getBoundingClien.top,\n right = _ref$getBoundingClien.right,\n bottom = _ref$getBoundingClien.bottom;\n\n var waypointTop = horizontal ? left : top;\n var waypointBottom = horizontal ? right : bottom;\n\n var contextHeight = void 0;\n var contextScrollTop = void 0;\n if (this.scrollableAncestor === window) {\n contextHeight = horizontal ? window.innerWidth : window.innerHeight;\n contextScrollTop = 0;\n } else {\n contextHeight = horizontal ? this.scrollableAncestor.offsetWidth : this.scrollableAncestor.offsetHeight;\n contextScrollTop = horizontal ? this.scrollableAncestor.getBoundingClientRect().left : this.scrollableAncestor.getBoundingClientRect().top;\n }\n\n if (process.env.NODE_ENV !== 'production' && this.props.debug) {\n debugLog('waypoint top', waypointTop);\n debugLog('waypoint bottom', waypointBottom);\n debugLog('scrollableAncestor height', contextHeight);\n debugLog('scrollableAncestor scrollTop', contextScrollTop);\n }\n\n var _props2 = this.props,\n bottomOffset = _props2.bottomOffset,\n topOffset = _props2.topOffset;\n\n var topOffsetPx = computeOffsetPixels(topOffset, contextHeight);\n var bottomOffsetPx = computeOffsetPixels(bottomOffset, contextHeight);\n var contextBottom = contextScrollTop + contextHeight;\n\n return {\n waypointTop: waypointTop,\n waypointBottom: waypointBottom,\n viewportTop: contextScrollTop + topOffsetPx,\n viewportBottom: contextBottom - bottomOffsetPx\n };\n }\n\n return _getBounds;\n }()\n\n /**\n * @return {Object}\n */\n\n }, {\n key: 'render',\n value: function () {\n function render() {\n var _this4 = this;\n\n var children = this.props.children;\n\n\n if (!children) {\n // We need an element that we can locate in the DOM to determine where it is\n // rendered relative to the top of its context.\n return React.createElement('span', { ref: this.refElement, style: { fontSize: 0 } });\n }\n\n if (isDOMElement(children) || isForwardRef(children.type)) {\n var ref = function () {\n function ref(node) {\n _this4.refElement(node);\n if (children.ref) {\n if (typeof children.ref === 'function') {\n children.ref(node);\n } else {\n children.ref.current = node;\n }\n }\n }\n\n return ref;\n }();\n\n return React.cloneElement(children, { ref: ref });\n }\n\n return React.cloneElement(children, { innerRef: this.refElement });\n }\n\n return render;\n }()\n }]);\n\n return Waypoint;\n}(BaseClass);\n\n\nWaypoint.propTypes = {\n children: PropTypes.node,\n debug: PropTypes.bool,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onPositionChange: PropTypes.func,\n fireOnRapidScroll: PropTypes.bool,\n scrollableAncestor: PropTypes.any,\n horizontal: PropTypes.bool,\n\n // `topOffset` can either be a number, in which case its a distance from the\n // top of the container in pixels, or a string value. Valid string values are\n // of the form \"20px\", which is parsed as pixels, or \"20%\", which is parsed\n // as a percentage of the height of the containing element.\n // For instance, if you pass \"-20%\", and the containing element is 100px tall,\n // then the waypoint will be triggered when it has been scrolled 20px beyond\n // the top of the containing element.\n topOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n // `bottomOffset` is like `topOffset`, but for the bottom of the container.\n bottomOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\n\nWaypoint.above = constants.above;\nWaypoint.below = constants.below;\nWaypoint.inside = constants.inside;\nWaypoint.invisible = constants.invisible;\nWaypoint.getWindow = function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n};\nWaypoint.defaultProps = defaultProps;\nWaypoint.displayName = 'Waypoint';\n\nexport default Waypoint;\n","var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Adapted from Modernizr\n// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37\nfunction testPassiveEventListeners() {\n if (!CAN_USE_DOM) {\n return false;\n }\n\n if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {\n return false;\n }\n\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get: function () {\n function get() {\n supportsPassiveOption = true;\n }\n\n return get;\n }()\n });\n var noop = function noop() {};\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {\n // do nothing\n }\n\n return supportsPassiveOption;\n}\n\nvar memoized = void 0;\n\nfunction canUsePassiveEventListeners() {\n if (memoized === undefined) {\n memoized = testPassiveEventListeners();\n }\n return memoized;\n}\n\nfunction normalizeEventOptions(eventOptions) {\n if (!eventOptions) {\n return undefined;\n }\n\n if (!canUsePassiveEventListeners()) {\n // If the browser does not support the passive option, then it is expecting\n // a boolean for the options argument to specify whether it should use\n // capture or not. In more modern browsers, this is passed via the `capture`\n // option, so let's just hoist that value up.\n return !!eventOptions.capture;\n }\n\n return eventOptions;\n}\n\n/* eslint-disable no-bitwise */\n\n/**\n * Generate a unique key for any set of event options\n */\nfunction eventOptionsKey(normalizedEventOptions) {\n if (!normalizedEventOptions) {\n return 0;\n }\n\n // If the browser does not support passive event listeners, the normalized\n // event options will be a boolean.\n if (normalizedEventOptions === true) {\n return 100;\n }\n\n // At this point, the browser supports passive event listeners, so we expect\n // the event options to be an object with possible properties of capture,\n // passive, and once.\n //\n // We want to consistently return the same value, regardless of the order of\n // these properties, so let's use binary maths to assign each property to a\n // bit, and then add those together (with an offset to account for the\n // booleans at the beginning of this function).\n var capture = normalizedEventOptions.capture << 0;\n var passive = normalizedEventOptions.passive << 1;\n var once = normalizedEventOptions.once << 2;\n return capture + passive + once;\n}\n\nfunction ensureCanMutateNextEventHandlers(eventHandlers) {\n if (eventHandlers.handlers === eventHandlers.nextHandlers) {\n // eslint-disable-next-line no-param-reassign\n eventHandlers.nextHandlers = eventHandlers.handlers.slice();\n }\n}\n\nfunction TargetEventHandlers(target) {\n this.target = target;\n this.events = {};\n}\n\nTargetEventHandlers.prototype.getEventHandlers = function () {\n function getEventHandlers(eventName, options) {\n var key = String(eventName) + ' ' + String(eventOptionsKey(options));\n\n if (!this.events[key]) {\n this.events[key] = {\n handlers: [],\n handleEvent: undefined\n };\n this.events[key].nextHandlers = this.events[key].handlers;\n }\n\n return this.events[key];\n }\n\n return getEventHandlers;\n}();\n\nTargetEventHandlers.prototype.handleEvent = function () {\n function handleEvent(eventName, options, event) {\n var eventHandlers = this.getEventHandlers(eventName, options);\n eventHandlers.handlers = eventHandlers.nextHandlers;\n eventHandlers.handlers.forEach(function (handler) {\n if (handler) {\n // We need to check for presence here because a handler function may\n // cause later handlers to get removed. This can happen if you for\n // instance have a waypoint that unmounts another waypoint as part of an\n // onEnter/onLeave handler.\n handler(event);\n }\n });\n }\n\n return handleEvent;\n}();\n\nTargetEventHandlers.prototype.add = function () {\n function add(eventName, listener, options) {\n var _this = this;\n\n // options has already been normalized at this point.\n var eventHandlers = this.getEventHandlers(eventName, options);\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n\n if (eventHandlers.nextHandlers.length === 0) {\n eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);\n\n this.target.addEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.nextHandlers.push(listener);\n\n var isSubscribed = true;\n var unsubscribe = function () {\n function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextEventHandlers(eventHandlers);\n var index = eventHandlers.nextHandlers.indexOf(listener);\n eventHandlers.nextHandlers.splice(index, 1);\n\n if (eventHandlers.nextHandlers.length === 0) {\n // All event handlers have been removed, so we want to remove the event\n // listener from the target node.\n\n if (_this.target) {\n // There can be a race condition where the target may no longer exist\n // when this function is called, e.g. when a React component is\n // unmounting. Guarding against this prevents the following error:\n //\n // Cannot read property 'removeEventListener' of undefined\n _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.handleEvent = undefined;\n }\n }\n\n return unsubscribe;\n }();\n return unsubscribe;\n }\n\n return add;\n}();\n\nvar EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';\n\n// eslint-disable-next-line import/prefer-default-export\nfunction addEventListener(target, eventName, listener, options) {\n if (!target[EVENT_HANDLERS_KEY]) {\n // eslint-disable-next-line no-param-reassign\n target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);\n }\n var normalizedEventOptions = normalizeEventOptions(options);\n return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);\n}\n\nexport { addEventListener };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _throttle = _interopRequireDefault(require(\"./throttle\"));\n\nfunction isEqualArray(a, b) {\n return a.length === b.length && a.every(function (item, index) {\n return item === b[index];\n });\n}\n\nvar Scrollspy =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(Scrollspy, _React$Component);\n (0, _createClass2.default)(Scrollspy, null, [{\n key: \"propTypes\",\n get: function get() {\n return {\n items: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,\n currentClassName: _propTypes.default.string.isRequired,\n scrolledPastClassName: _propTypes.default.string,\n style: _propTypes.default.object,\n componentTag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),\n offset: _propTypes.default.number,\n rootEl: _propTypes.default.string,\n onUpdate: _propTypes.default.func\n };\n }\n }, {\n key: \"defaultProps\",\n get: function get() {\n return {\n items: [],\n currentClassName: '',\n style: {},\n componentTag: 'ul',\n offset: 0,\n onUpdate: function onUpdate() {}\n };\n }\n }]);\n\n function Scrollspy(props) {\n var _this;\n\n (0, _classCallCheck2.default)(this, Scrollspy);\n _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Scrollspy).call(this, props));\n _this.state = {\n targetItems: [],\n inViewState: [],\n isScrolledPast: [] // manually bind as ES6 does not apply this\n // auto binding as React.createClass does\n\n };\n _this._handleSpy = _this._handleSpy.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n (0, _createClass2.default)(Scrollspy, [{\n key: \"_initSpyTarget\",\n value: function _initSpyTarget(items) {\n var targetItems = items.map(function (item) {\n return document.getElementById(item);\n });\n return targetItems;\n } // https://github.com/makotot/react-scrollspy/pull/45\n\n }, {\n key: \"_fillArray\",\n value: function _fillArray(array, val) {\n var newArray = [];\n\n for (var i = 0, max = array.length; i < max; i++) {\n newArray[i] = val;\n }\n\n return newArray;\n }\n }, {\n key: \"_isScrolled\",\n value: function _isScrolled() {\n return this._getScrollDimension().scrollTop > 0;\n }\n }, {\n key: \"_getScrollDimension\",\n value: function _getScrollDimension() {\n var doc = document;\n var rootEl = this.props.rootEl;\n var scrollTop = rootEl ? doc.querySelector(rootEl).scrollTop : doc.documentElement.scrollTop || doc.body.parentNode.scrollTop || doc.body.scrollTop;\n var scrollHeight = rootEl ? doc.querySelector(rootEl).scrollHeight : doc.documentElement.scrollHeight || doc.body.parentNode.scrollHeight || doc.body.scrollHeight;\n return {\n scrollTop: scrollTop,\n scrollHeight: scrollHeight\n };\n }\n }, {\n key: \"_getElemsViewState\",\n value: function _getElemsViewState(targets) {\n var elemsInView = [];\n var elemsOutView = [];\n var viewStatusList = [];\n var targetItems = targets ? targets : this.state.targetItems;\n var hasInViewAlready = false;\n\n for (var i = 0, max = targetItems.length; i < max; i++) {\n var currentContent = targetItems[i];\n var isInView = hasInViewAlready ? false : this._isInView(currentContent);\n\n if (isInView) {\n hasInViewAlready = true;\n elemsInView.push(currentContent);\n } else {\n elemsOutView.push(currentContent);\n }\n\n var isLastItem = i === max - 1;\n\n var isScrolled = this._isScrolled(); // https://github.com/makotot/react-scrollspy/pull/26#issue-167413769\n\n\n var isLastShortItemAtBottom = this._isAtBottom() && this._isInView(currentContent) && !isInView && isLastItem && isScrolled;\n\n if (isLastShortItemAtBottom) {\n elemsOutView.pop();\n elemsOutView.push.apply(elemsOutView, (0, _toConsumableArray2.default)(elemsInView));\n elemsInView = [currentContent];\n viewStatusList = this._fillArray(viewStatusList, false);\n isInView = true;\n }\n\n viewStatusList.push(isInView);\n }\n\n return {\n inView: elemsInView,\n outView: elemsOutView,\n viewStatusList: viewStatusList,\n scrolledPast: this.props.scrolledPastClassName && this._getScrolledPast(viewStatusList)\n };\n }\n }, {\n key: \"_isInView\",\n value: function _isInView(el) {\n if (!el) {\n return false;\n }\n\n var _this$props = this.props,\n rootEl = _this$props.rootEl,\n offset = _this$props.offset;\n var rootRect;\n\n if (rootEl) {\n rootRect = document.querySelector(rootEl).getBoundingClientRect();\n }\n\n var rect = el.getBoundingClientRect();\n var winH = rootEl ? rootRect.height : window.innerHeight;\n\n var _this$_getScrollDimen = this._getScrollDimension(),\n scrollTop = _this$_getScrollDimen.scrollTop;\n\n var scrollBottom = scrollTop + winH;\n var elTop = rootEl ? rect.top + scrollTop - rootRect.top + offset : rect.top + scrollTop + offset;\n var elBottom = elTop + el.offsetHeight;\n return elTop < scrollBottom && elBottom > scrollTop;\n }\n }, {\n key: \"_isAtBottom\",\n value: function _isAtBottom() {\n var rootEl = this.props.rootEl;\n\n var _this$_getScrollDimen2 = this._getScrollDimension(),\n scrollTop = _this$_getScrollDimen2.scrollTop,\n scrollHeight = _this$_getScrollDimen2.scrollHeight;\n\n var winH = rootEl ? document.querySelector(rootEl).getBoundingClientRect().height : window.innerHeight;\n var scrolledToBottom = scrollTop + winH >= scrollHeight;\n return scrolledToBottom;\n }\n }, {\n key: \"_getScrolledPast\",\n value: function _getScrolledPast(viewStatusList) {\n if (!viewStatusList.some(function (item) {\n return item;\n })) {\n return viewStatusList;\n }\n\n var hasFoundInView = false;\n var scrolledPastItems = viewStatusList.map(function (item) {\n if (item && !hasFoundInView) {\n hasFoundInView = true;\n return false;\n }\n\n return !hasFoundInView;\n });\n return scrolledPastItems;\n }\n }, {\n key: \"_spy\",\n value: function _spy(targets) {\n var _this2 = this;\n\n var elemensViewState = this._getElemsViewState(targets);\n\n var currentStatuses = this.state.inViewState;\n this.setState({\n inViewState: elemensViewState.viewStatusList,\n isScrolledPast: elemensViewState.scrolledPast\n }, function () {\n _this2._update(currentStatuses);\n });\n }\n }, {\n key: \"_update\",\n value: function _update(prevStatuses) {\n if (isEqualArray(this.state.inViewState, prevStatuses)) {\n return;\n }\n\n this.props.onUpdate(this.state.targetItems[this.state.inViewState.indexOf(true)]);\n }\n }, {\n key: \"_handleSpy\",\n value: function _handleSpy() {\n (0, _throttle.default)(this._spy(), 100);\n }\n }, {\n key: \"_initFromProps\",\n value: function _initFromProps() {\n var targetItems = this._initSpyTarget(this.props.items);\n\n this.setState({\n targetItems: targetItems\n });\n\n this._spy(targetItems);\n }\n }, {\n key: \"offEvent\",\n value: function offEvent() {\n var el = this.props.rootEl ? document.querySelector(this.props.rootEl) : window;\n el.removeEventListener('scroll', this._handleSpy);\n }\n }, {\n key: \"onEvent\",\n value: function onEvent() {\n var el = this.props.rootEl ? document.querySelector(this.props.rootEl) : window;\n el.addEventListener('scroll', this._handleSpy);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._initFromProps();\n\n this.onEvent();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.offEvent();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps() {\n this._initFromProps();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var Tag = this.props.componentTag;\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n scrolledPastClassName = _this$props2.scrolledPastClassName,\n style = _this$props2.style;\n var counter = 0;\n\n var items = _react.default.Children.map(children, function (child, idx) {\n var _classNames;\n\n if (!child) {\n return null;\n }\n\n var ChildTag = child.type;\n var isScrolledPast = scrolledPastClassName && _this3.state.isScrolledPast[idx];\n var childClass = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(child.props.className), child.props.className), (0, _defineProperty2.default)(_classNames, \"\".concat(_this3.props.currentClassName), _this3.state.inViewState[idx]), (0, _defineProperty2.default)(_classNames, \"\".concat(_this3.props.scrolledPastClassName), isScrolledPast), _classNames));\n return _react.default.createElement(ChildTag, (0, _extends2.default)({}, child.props, {\n className: childClass,\n key: counter++\n }), child.props.children);\n });\n\n var itemClass = (0, _classnames.default)((0, _defineProperty2.default)({}, \"\".concat(className), className));\n return _react.default.createElement(Tag, {\n className: itemClass,\n style: style\n }, items);\n }\n }]);\n return Scrollspy;\n}(_react.default.Component);\n\nexports.default = Scrollspy;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar throttle = function throttle(fn) {\n var threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n var last;\n var timer;\n return function () {\n var now = +new Date();\n var timePassed = !!last && now < last + threshold;\n\n if (timePassed) {\n clearTimeout(timer);\n timer = setTimeout(function () {\n last = now;\n fn();\n }, threshold);\n } else {\n last = now;\n fn();\n }\n };\n};\n\nvar _default = throttle;\nexports.default = _default;","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\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 };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\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 var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\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 function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\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 }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\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 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 /**\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 function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\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 function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\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 /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\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;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\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 function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\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 }\n\n // scroll looping over a frame\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 }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\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(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\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 };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\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(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\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 = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n"],"sourceRoot":""}