{"version":3,"file":"static/chunks/3824.d7a268859c2ca2be.js","mappings":"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","sources":["webpack://_N_E/./node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-is/index.js","webpack://_N_E/./node_modules/consolidated-events/lib/index.esm.js","webpack://_N_E/./node_modules/react-waypoint/es/index.js","webpack://_N_E/"],"sourcesContent":["/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","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","import { addEventListener } from 'consolidated-events';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\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\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\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\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\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 return undefined;\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 }\n\n if (str.slice(-2) === 'px') {\n return parseFloat(str.slice(0, -2));\n }\n\n return undefined;\n}\n\n/**\n * @param {string|number} offset\n * @param {number} contextHeight\n * @return {number} A number representing `offset` converted into pixels.\n */\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\n if (typeof percentOffset === 'number') {\n return percentOffset * contextHeight;\n }\n\n return undefined;\n}\n\nvar ABOVE = 'above';\nvar INSIDE = 'inside';\nvar BELOW = 'below';\nvar INVISIBLE = 'invisible';\n\nfunction debugLog() {\n if (process.env.NODE_ENV !== 'production') {\n var _console;\n\n (_console = console).log.apply(_console, arguments); // eslint-disable-line no-console\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 = ' needs a DOM element to compute boundaries. The child you passed is neither a ' + 'DOM element (e.g.
) nor does it use the innerRef prop.\\n\\n' + 'See https://goo.gl/LrBNgw for more info.';\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 */\n\nfunction ensureRefIsProvidedByChild(children, ref) {\n if (children && !isDOMElement(children) && !ref) {\n throw new Error(errorMessage);\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 the constants `ABOVE`,\n * `BELOW`, `INSIDE` or `INVISIBLE`.\n */\n\nfunction getCurrentPosition(bounds) {\n if (bounds.viewportBottom - bounds.viewportTop === 0) {\n return INVISIBLE;\n } // top is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointTop && bounds.waypointTop <= bounds.viewportBottom) {\n return INSIDE;\n } // bottom is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointBottom && bounds.waypointBottom <= bounds.viewportBottom) {\n return INSIDE;\n } // top is above the viewport and bottom is below the viewport\n\n\n if (bounds.waypointTop <= bounds.viewportTop && bounds.viewportBottom <= bounds.waypointBottom) {\n return INSIDE;\n }\n\n if (bounds.viewportBottom < bounds.waypointTop) {\n return BELOW;\n }\n\n if (bounds.waypointTop < bounds.viewportTop) {\n return ABOVE;\n }\n\n return INVISIBLE;\n}\n\nvar timeout;\nvar timeoutQueue = [];\nfunction onNextTick(cb) {\n timeoutQueue.push(cb);\n\n if (!timeout) {\n timeout = setTimeout(function () {\n timeout = null; // Drain the timeoutQueue\n\n var item; // eslint-disable-next-line no-cond-assign\n\n while (item = timeoutQueue.shift()) {\n item();\n }\n }, 0);\n }\n\n var isSubscribed = true;\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n var index = timeoutQueue.indexOf(cb);\n\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\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 defaultProps = {\n debug: false,\n scrollableAncestor: undefined,\n children: undefined,\n topOffset: '0px',\n bottomOffset: '0px',\n horizontal: false,\n onEnter: function onEnter() {},\n onLeave: function onLeave() {},\n onPositionChange: function onPositionChange() {},\n fireOnRapidScroll: true\n}; // Calls a function when you scroll to the element.\n\nvar Waypoint = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Waypoint, _React$PureComponent);\n\n var _super = _createSuper(Waypoint);\n\n function Waypoint(props) {\n var _this;\n\n _classCallCheck(this, Waypoint);\n\n _this = _super.call(this, props);\n\n _this.refElement = function (e) {\n _this._ref = e;\n };\n\n return _this;\n }\n\n _createClass(Waypoint, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!Waypoint.getWindow()) {\n return;\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\n\n this.cancelOnNextTick = onNextTick(function () {\n _this2.cancelOnNextTick = null;\n var _this2$props = _this2.props,\n children = _this2$props.children,\n debug = _this2$props.debug; // Berofe doing anything, we want to check that this._ref is avaliable in Waypoint\n\n ensureRefIsProvidedByChild(children, _this2._ref);\n _this2._handleScroll = _this2._handleScroll.bind(_this2);\n _this2.scrollableAncestor = _this2._findScrollableAncestor();\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n debugLog('scrollableAncestor', _this2.scrollableAncestor);\n }\n\n _this2.scrollEventListenerUnsubscribe = addEventListener(_this2.scrollableAncestor, 'scroll', _this2._handleScroll, {\n passive: true\n });\n _this2.resizeEventListenerUnsubscribe = addEventListener(window, 'resize', _this2._handleScroll, {\n passive: true\n });\n\n _this2._handleScroll(null);\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: 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 } // 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\n\n if (this.cancelOnNextTick) {\n return;\n }\n\n this.cancelOnNextTick = onNextTick(function () {\n _this3.cancelOnNextTick = null;\n\n _this3._handleScroll(null);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!Waypoint.getWindow()) {\n return;\n }\n\n if (this.scrollEventListenerUnsubscribe) {\n this.scrollEventListenerUnsubscribe();\n }\n\n if (this.resizeEventListenerUnsubscribe) {\n this.resizeEventListenerUnsubscribe();\n }\n\n if (this.cancelOnNextTick) {\n this.cancelOnNextTick();\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 _findScrollableAncestor() {\n var _this$props = this.props,\n horizontal = _this$props.horizontal,\n scrollableAncestor = _this$props.scrollableAncestor;\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' || overflow === 'overlay') {\n return node;\n }\n } // A scrollable ancestor element was not found, which means that we need to\n // do stuff on window.\n\n\n return window;\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 _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\n var currentPosition = getCurrentPosition(bounds);\n var previousPosition = this._previousPosition;\n var _this$props2 = this.props,\n debug = _this$props2.debug,\n onPositionChange = _this$props2.onPositionChange,\n onEnter = _this$props2.onEnter,\n onLeave = _this$props2.onLeave,\n fireOnRapidScroll = _this$props2.fireOnRapidScroll;\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n debugLog('currentPosition', currentPosition);\n debugLog('previousPosition', previousPosition);\n } // Save previous position as early as possible to prevent cycles\n\n\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 onPositionChange.call(this, callbackArg);\n\n if (currentPosition === INSIDE) {\n onEnter.call(this, callbackArg);\n } else if (previousPosition === INSIDE) {\n onLeave.call(this, callbackArg);\n }\n\n var isRapidScrollDown = previousPosition === BELOW && currentPosition === ABOVE;\n var isRapidScrollUp = previousPosition === ABOVE && currentPosition === BELOW;\n\n if (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 onEnter.call(this, {\n currentPosition: 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 onLeave.call(this, {\n currentPosition: currentPosition,\n previousPosition: 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 key: \"_getBounds\",\n value: function _getBounds() {\n var _this$props3 = this.props,\n horizontal = _this$props3.horizontal,\n debug = _this$props3.debug;\n\n var _this$_ref$getBoundin = this._ref.getBoundingClientRect(),\n left = _this$_ref$getBoundin.left,\n top = _this$_ref$getBoundin.top,\n right = _this$_ref$getBoundin.right,\n bottom = _this$_ref$getBoundin.bottom;\n\n var waypointTop = horizontal ? left : top;\n var waypointBottom = horizontal ? right : bottom;\n var contextHeight;\n var contextScrollTop;\n\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' && 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 _this$props4 = this.props,\n bottomOffset = _this$props4.bottomOffset,\n topOffset = _this$props4.topOffset;\n var topOffsetPx = computeOffsetPixels(topOffset, contextHeight);\n var bottomOffsetPx = computeOffsetPixels(bottomOffset, contextHeight);\n var contextBottom = contextScrollTop + contextHeight;\n return {\n waypointTop: waypointTop,\n waypointBottom: waypointBottom,\n viewportTop: contextScrollTop + topOffsetPx,\n viewportBottom: contextBottom - bottomOffsetPx\n };\n }\n /**\n * @return {Object}\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var children = this.props.children;\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 /*#__PURE__*/React.createElement(\"span\", {\n ref: this.refElement,\n style: {\n fontSize: 0\n }\n });\n }\n\n if (isDOMElement(children) || isForwardRef(children)) {\n var ref = function ref(node) {\n _this4.refElement(node);\n\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 /*#__PURE__*/React.cloneElement(children, {\n ref: ref\n });\n }\n\n return /*#__PURE__*/React.cloneElement(children, {\n innerRef: this.refElement\n });\n }\n }]);\n\n return Waypoint;\n}(React.PureComponent);\n\nif (process.env.NODE_ENV !== 'production') {\n Waypoint.propTypes = {\n children: PropTypes.element,\n debug: PropTypes.bool,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onPositionChange: PropTypes.func,\n fireOnRapidScroll: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n scrollableAncestor: PropTypes.any,\n horizontal: PropTypes.bool,\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 // `bottomOffset` is like `topOffset`, but for the bottom of the container.\n bottomOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n };\n}\n\nWaypoint.above = ABOVE;\nWaypoint.below = BELOW;\nWaypoint.inside = INSIDE;\nWaypoint.invisible = INVISIBLE;\n\nWaypoint.getWindow = function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n};\n\nWaypoint.defaultProps = defaultProps;\nWaypoint.displayName = 'Waypoint';\n\nexport { Waypoint };\n","\"use strict\";\n(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[3824],{\n\n/***/ 69921:\n/***/ (function(__unused_webpack_module, exports) {\n\n/** @license React v16.13.1\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\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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n\n\n/***/ }),\n\n/***/ 59864:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\n\nif (true) {\n module.exports = __webpack_require__(69921);\n} else {}\n\n\n/***/ }),\n\n/***/ 83824:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"h\": function() { return /* binding */ Waypoint; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/consolidated-events/lib/index.esm.js\nvar 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\n\n\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(45697);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/react-is/index.js\nvar react_is = __webpack_require__(59864);\n;// CONCATENATED MODULE: ./node_modules/react-waypoint/es/index.js\n\n\n\n\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\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\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\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\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\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 return undefined;\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 }\n\n if (str.slice(-2) === 'px') {\n return parseFloat(str.slice(0, -2));\n }\n\n return undefined;\n}\n\n/**\n * @param {string|number} offset\n * @param {number} contextHeight\n * @return {number} A number representing `offset` converted into pixels.\n */\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\n if (typeof percentOffset === 'number') {\n return percentOffset * contextHeight;\n }\n\n return undefined;\n}\n\nvar ABOVE = 'above';\nvar INSIDE = 'inside';\nvar BELOW = 'below';\nvar INVISIBLE = 'invisible';\n\nfunction debugLog() {\n if (false) { var _console; }\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 = ' needs a DOM element to compute boundaries. The child you passed is neither a ' + 'DOM element (e.g.
) nor does it use the innerRef prop.\\n\\n' + 'See https://goo.gl/LrBNgw for more info.';\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 */\n\nfunction ensureRefIsProvidedByChild(children, ref) {\n if (children && !isDOMElement(children) && !ref) {\n throw new Error(errorMessage);\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 the constants `ABOVE`,\n * `BELOW`, `INSIDE` or `INVISIBLE`.\n */\n\nfunction getCurrentPosition(bounds) {\n if (bounds.viewportBottom - bounds.viewportTop === 0) {\n return INVISIBLE;\n } // top is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointTop && bounds.waypointTop <= bounds.viewportBottom) {\n return INSIDE;\n } // bottom is within the viewport\n\n\n if (bounds.viewportTop <= bounds.waypointBottom && bounds.waypointBottom <= bounds.viewportBottom) {\n return INSIDE;\n } // top is above the viewport and bottom is below the viewport\n\n\n if (bounds.waypointTop <= bounds.viewportTop && bounds.viewportBottom <= bounds.waypointBottom) {\n return INSIDE;\n }\n\n if (bounds.viewportBottom < bounds.waypointTop) {\n return BELOW;\n }\n\n if (bounds.waypointTop < bounds.viewportTop) {\n return ABOVE;\n }\n\n return INVISIBLE;\n}\n\nvar timeout;\nvar timeoutQueue = [];\nfunction onNextTick(cb) {\n timeoutQueue.push(cb);\n\n if (!timeout) {\n timeout = setTimeout(function () {\n timeout = null; // Drain the timeoutQueue\n\n var item; // eslint-disable-next-line no-cond-assign\n\n while (item = timeoutQueue.shift()) {\n item();\n }\n }, 0);\n }\n\n var isSubscribed = true;\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n var index = timeoutQueue.indexOf(cb);\n\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\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 __webpack_require__.g.window;\n }\n\n return scrollableAncestor;\n}\n\nvar defaultProps = {\n debug: false,\n scrollableAncestor: undefined,\n children: undefined,\n topOffset: '0px',\n bottomOffset: '0px',\n horizontal: false,\n onEnter: function onEnter() {},\n onLeave: function onLeave() {},\n onPositionChange: function onPositionChange() {},\n fireOnRapidScroll: true\n}; // Calls a function when you scroll to the element.\n\nvar Waypoint = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Waypoint, _React$PureComponent);\n\n var _super = _createSuper(Waypoint);\n\n function Waypoint(props) {\n var _this;\n\n _classCallCheck(this, Waypoint);\n\n _this = _super.call(this, props);\n\n _this.refElement = function (e) {\n _this._ref = e;\n };\n\n return _this;\n }\n\n _createClass(Waypoint, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!Waypoint.getWindow()) {\n return;\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\n\n this.cancelOnNextTick = onNextTick(function () {\n _this2.cancelOnNextTick = null;\n var _this2$props = _this2.props,\n children = _this2$props.children,\n debug = _this2$props.debug; // Berofe doing anything, we want to check that this._ref is avaliable in Waypoint\n\n ensureRefIsProvidedByChild(children, _this2._ref);\n _this2._handleScroll = _this2._handleScroll.bind(_this2);\n _this2.scrollableAncestor = _this2._findScrollableAncestor();\n\n if (false) {}\n\n _this2.scrollEventListenerUnsubscribe = addEventListener(_this2.scrollableAncestor, 'scroll', _this2._handleScroll, {\n passive: true\n });\n _this2.resizeEventListenerUnsubscribe = addEventListener(window, 'resize', _this2._handleScroll, {\n passive: true\n });\n\n _this2._handleScroll(null);\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: 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 } // 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\n\n if (this.cancelOnNextTick) {\n return;\n }\n\n this.cancelOnNextTick = onNextTick(function () {\n _this3.cancelOnNextTick = null;\n\n _this3._handleScroll(null);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!Waypoint.getWindow()) {\n return;\n }\n\n if (this.scrollEventListenerUnsubscribe) {\n this.scrollEventListenerUnsubscribe();\n }\n\n if (this.resizeEventListenerUnsubscribe) {\n this.resizeEventListenerUnsubscribe();\n }\n\n if (this.cancelOnNextTick) {\n this.cancelOnNextTick();\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 _findScrollableAncestor() {\n var _this$props = this.props,\n horizontal = _this$props.horizontal,\n scrollableAncestor = _this$props.scrollableAncestor;\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' || overflow === 'overlay') {\n return node;\n }\n } // A scrollable ancestor element was not found, which means that we need to\n // do stuff on window.\n\n\n return window;\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 _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\n var currentPosition = getCurrentPosition(bounds);\n var previousPosition = this._previousPosition;\n var _this$props2 = this.props,\n debug = _this$props2.debug,\n onPositionChange = _this$props2.onPositionChange,\n onEnter = _this$props2.onEnter,\n onLeave = _this$props2.onLeave,\n fireOnRapidScroll = _this$props2.fireOnRapidScroll;\n\n if (false) {} // Save previous position as early as possible to prevent cycles\n\n\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 onPositionChange.call(this, callbackArg);\n\n if (currentPosition === INSIDE) {\n onEnter.call(this, callbackArg);\n } else if (previousPosition === INSIDE) {\n onLeave.call(this, callbackArg);\n }\n\n var isRapidScrollDown = previousPosition === BELOW && currentPosition === ABOVE;\n var isRapidScrollUp = previousPosition === ABOVE && currentPosition === BELOW;\n\n if (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 onEnter.call(this, {\n currentPosition: 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 onLeave.call(this, {\n currentPosition: currentPosition,\n previousPosition: 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 key: \"_getBounds\",\n value: function _getBounds() {\n var _this$props3 = this.props,\n horizontal = _this$props3.horizontal,\n debug = _this$props3.debug;\n\n var _this$_ref$getBoundin = this._ref.getBoundingClientRect(),\n left = _this$_ref$getBoundin.left,\n top = _this$_ref$getBoundin.top,\n right = _this$_ref$getBoundin.right,\n bottom = _this$_ref$getBoundin.bottom;\n\n var waypointTop = horizontal ? left : top;\n var waypointBottom = horizontal ? right : bottom;\n var contextHeight;\n var contextScrollTop;\n\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 (false) {}\n\n var _this$props4 = this.props,\n bottomOffset = _this$props4.bottomOffset,\n topOffset = _this$props4.topOffset;\n var topOffsetPx = computeOffsetPixels(topOffset, contextHeight);\n var bottomOffsetPx = computeOffsetPixels(bottomOffset, contextHeight);\n var contextBottom = contextScrollTop + contextHeight;\n return {\n waypointTop: waypointTop,\n waypointBottom: waypointBottom,\n viewportTop: contextScrollTop + topOffsetPx,\n viewportBottom: contextBottom - bottomOffsetPx\n };\n }\n /**\n * @return {Object}\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var children = this.props.children;\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 /*#__PURE__*/react.createElement(\"span\", {\n ref: this.refElement,\n style: {\n fontSize: 0\n }\n });\n }\n\n if (isDOMElement(children) || (0,react_is.isForwardRef)(children)) {\n var ref = function ref(node) {\n _this4.refElement(node);\n\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 /*#__PURE__*/react.cloneElement(children, {\n ref: ref\n });\n }\n\n return /*#__PURE__*/react.cloneElement(children, {\n innerRef: this.refElement\n });\n }\n }]);\n\n return Waypoint;\n}(react.PureComponent);\n\nif (false) {}\n\nWaypoint.above = ABOVE;\nWaypoint.below = BELOW;\nWaypoint.inside = INSIDE;\nWaypoint.invisible = INVISIBLE;\n\nWaypoint.getWindow = function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n};\n\nWaypoint.defaultProps = defaultProps;\nWaypoint.displayName = 'Waypoint';\n\n\n\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","exports","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","module","__unused_webpack_exports","__webpack_require__","__webpack_exports__","Waypoint","timeout","CAN_USE_DOM","window","document","createElement","memoized","ensureCanMutateNextEventHandlers","eventHandlers","handlers","nextHandlers","slice","TargetEventHandlers","target","events","prototype","getEventHandlers","eventName","options","key","String","normalizedEventOptions","capture","passive","once","handleEvent","undefined","event","forEach","handler","add","listener","_this","length","bind","addEventListener","isSubscribed","index","indexOf","splice","removeEventListener","EVENT_HANDLERS_KEY","testPassiveEventListeners","Object","defineProperty","supportsPassiveOption","opts","get","noop","eventOptions","react","react_is","_defineProperties","props","i","descriptor","enumerable","configurable","writable","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","computeOffsetPixels","offset","contextHeight","pixelOffset","isNaN","parseFloat","isFinite","str","percentOffset","parseOffsetAsPercentage","ABOVE","INSIDE","BELOW","INVISIBLE","isDOMElement","Component","timeoutQueue","onNextTick","cb","setTimeout","item","shift","clearTimeout","_React$PureComponent","_inherits","subClass","superClass","create","constructor","value","hasNativeReflectConstruct","protoProps","staticProps","_super","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","call","result","Super","NewTarget","arguments","apply","_assertThisInitialized","_classCallCheck","instance","Constructor","refElement","_ref","_this2","getWindow","cancelOnNextTick","_this2$props","children","debug","ensureRefIsProvidedByChild","ref","_handleScroll","scrollableAncestor","_findScrollableAncestor","scrollEventListenerUnsubscribe","resizeEventListenerUnsubscribe","_this3","_this$props","horizontal","node","parentNode","body","style","getComputedStyle","overflow","overflowDirec","getPropertyValue","bounds","_getBounds","currentPosition","viewportBottom","viewportTop","waypointTop","waypointBottom","previousPosition","_previousPosition","_this$props2","onPositionChange","onEnter","onLeave","fireOnRapidScroll","callbackArg","isRapidScrollDown","contextScrollTop","_this$props3","_this$_ref$getBoundin","getBoundingClientRect","left","top","right","bottom","innerWidth","innerHeight","offsetWidth","offsetHeight","_this$props4","bottomOffset","topOffsetPx","topOffset","bottomOffsetPx","contextBottom","_this4","cloneElement","current","innerRef","fontSize","PureComponent","above","below","inside","invisible","defaultProps","displayName"],"sourceRoot":""}