{"version":3,"sources":["webpack://gatsby-starter-hello-world/./node_modules/lodash.throttle/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/components/Button.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/components/Element.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/components/Link.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/Helpers.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/cancel-events.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroll-element.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroll-events.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroll-link.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/scroller.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/smooth.js","webpack://gatsby-starter-hello-world/./node_modules/react-scroll/modules/mixins/utils.js"],"names":["FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","this","toNumber","isObject","cancel","clearTimeout","flush","value","type","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_scrollLink2","obj","__esModule","default","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","ButtonElement","_React$Component","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","createElement","children","Component","_extends","assign","source","hasOwnProperty","_scrollElement2","_propTypes2","ElementWrapper","_this2","newProps","parentBindings","ref","el","domNode","propTypes","name","string","id","LinkElement","_ref","_temp","_this","_len","Array","_key","concat","render","_Link2","_Button2","_Element2","_scroller2","_scrollEvents2","_scrollSpy2","_animateScroll2","_Helpers2","React","scrollSpy","defaultScroller","PropTypes","scrollHash","protoTypes","to","isRequired","containerId","container","object","activeClass","spy","bool","smooth","oneOfType","offset","number","delay","isDynamic","onClick","duration","absolute","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","Helpers","Scroll","customScroller","console","warn","scroller","_initialiseProps","state","active","document","getElementById","nodeType","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addStateHandler","stateHandler","addSpyHandler","spyHandler","setState","unmount","className","trim","prop","handleClick","scrollTo","event","stopPropagation","preventDefault","getActiveLink","y","isInitialized","element","elemTopBound","elemBottomBound","containerTop","getBoundingClientRect","top","get","cords","height","offsetY","isInside","floor","isOutside","activeLink","setActiveLink","getHash","changeHash","updateStates","defaultProps","Element","_React$Component2","_this3","childBindings","window","registerElems","prevProps","unregister","register","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","callback","getTime","currentPositionX","containerElement","data","body","scrollLeft","supportPageOffset","pageXOffset","isCSS1Compat","compatMode","documentElement","currentPositionY","scrollTop","pageYOffset","animateScroll","easing","timestamp","delta","round","targetPosition","startPosition","start","progress","percent","currentPosition","ceil","horizontal","easedAnimate","bind","registered","setContainer","animateTopScroll","scrollOffset","delayTimeout","subscribe","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","_passiveEventListeners","events","cancelEvent","forEach","addPassiveEventListener","eventName","listener","supportsPassiveOption","opts","addEventListener","e","passive","removePassiveEventListener","removeEventListener","Events","scrollEvent","evtName","remove","_utils","_utils2","mountFlag","initialized","containers","handleHashChange","initStateFromHash","hash","isInit","saveHashHistory","updateHash","_scrollHash2","Link","_React$PureComponent","PureComponent","x","elemLeftBound","elemRightBound","containerLeft","left","width","offsetX","_cords","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","spyCallbacks","spySetState","scrollSpyContainers","eventHandler","eventThrottler","scrollHandler","push","indexOf","c","handler","s","splice","update","__mapped","__activeLink","getElementsByName","getElementsByClassName","link","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","historyUpdate","hashVal","substring","hashToUpdate","curLoc","location","urlToPush","pathname","search","history","pushState","replaceState","filterElementInContainer","contains","compareDocumentPosition","t","scrollX","getComputedStyle","position","offsetLeft","scrollY","offsetTop"],"mappings":"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","file":"2bb82a55f27a5f3c54df90bee0089c1ba03f1fe7-4ff5d9d24b7cd7832465.js","sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function now() {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n\n\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = throttle;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement('input', this.props, this.props.children);\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this; // Remove `parentBindings` from props\n\n\n var newProps = _extends({}, this.props);\n\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement('div', _extends({}, newProps, {\n ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n }\n }), this.props.children);\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement('a', _this.props, _this.props.children);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = {\n Link: _Link2.default,\n Button: _Button2.default,\n Element: _Element2.default,\n scroller: _scroller2.default,\n Events: _scrollEvents2.default,\n scrollSpy: _scrollSpy2.default,\n animateScroll: _animateScroll2.default,\n ScrollLink: _scrollLink2.default,\n ScrollElement: _scrollElement2.default,\n Helpers: _Helpers2.default\n};","\"use strict\";\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar React = require('react');\n\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\n\nvar scrollSpy = require('./scroll-spy');\n\nvar defaultScroller = require('./scroller');\n\nvar PropTypes = require('prop-types');\n\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool\n};\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n /*\r\n * give the posibility to override onClick\r\n */\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n /*\r\n * dont bubble the navigation\r\n */\n\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n /*\r\n * do the magic!\r\n */\n\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n\n _this2.setState({\n active: false\n });\n }\n };\n\n this.spyHandler = function (y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({\n active: false\n });\n\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({\n active: true\n });\n\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n Scroll.propTypes = protoTypes;\n Scroll.defaultProps = {\n offset: 0\n };\n return Scroll;\n },\n Element: function Element(Component) {\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, {\n parentBindings: this.childBindings\n }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n return Element;\n }\n};\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\n\n\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\n\n\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\n\n\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\n\n\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data; // Cancel on specific events\n\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n\n return;\n }\n\n ;\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\n\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n return supportsPassiveOption;\n }();\n\n target.addEventListener(eventName, listener, supportsPassiveOption ? {\n passive: true\n } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, {\n parentBindings: this.childBindings\n }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Events = {\n registered: {},\n scrollEvent: {\n register: function register(evtName, callback) {\n Events.registered[evtName] = callback;\n },\n remove: function remove(evtName) {\n Events.registered[evtName] = null;\n }\n }\n};\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n mount: function mount(scroller) {\n this.scroller = scroller;\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, {\n container: container\n });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\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 _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool\n};\n\nexports.default = function (Component, customScroller) {\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n /*\r\n * give the posibility to override onClick\r\n */\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n /*\r\n * dont bubble the navigation\r\n */\n\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n /*\r\n * do the magic!\r\n */\n\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({\n active: false\n });\n\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({\n active: true\n });\n\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n Link.propTypes = protoTypes;\n Link.defaultProps = {\n offset: 0\n };\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // The eventHandler will execute at a rate of 15fps\n\n\nvar eventThrottler = function eventThrottler(eventHandler) {\n return (0, _lodash2.default)(eventHandler, 66);\n};\n\nvar scrollSpy = {\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n mount: function mount(scrollSpyContainer) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n });\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar __mapped = {};\n\nvar __activeLink = void 0;\n\nexports.default = {\n unmount: function unmount() {\n __mapped = {};\n },\n register: function register(name, element) {\n __mapped[name] = element;\n },\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n scrollTo: function scrollTo(to, props) {\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, {\n absolute: false\n });\n var containerId = props.containerId;\n var container = props.container;\n var containerElement = void 0;\n\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n /*\r\n * Animate scrolling\r\n */\n\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n return c === document ? t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetTop : t.offsetTop - c.offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};"],"sourceRoot":""}