{"version":3,"sources":["webpack:///./node_modules/react-animate-on-scroll/dist/scrollAnimation.min.js","webpack:///./node_modules/lodash.throttle/index.js"],"names":["Object","defineProperty","exports","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_interopRequireDefault","obj","__esModule","_react","_react2","_lodashThrottle2","_propTypes2","ScrollAnimation","_Component","instance","TypeError","_classCallCheck","this","_x","_x2","_x3","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","getter","get","call","parent","getPrototypeOf","_get","serverSide","window","listener","handleScroll","bind","visibility","onScreen","inViewport","state","classes","style","animationDuration","duration","opacity","initiallyVisible","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_inherits","elm","yPos","offsetTop","clientTop","offsetParent","scrollableParent","pageYOffset","scrollTop","innerHeight","clientHeight","getScrollPos","offset","getScrollableParentHeight","y","getViewportTop","getViewportBottom","elementTop","elementBottom","isInViewport","isAboveViewport","isBelowViewport","isAboveScreen","isBelowScreen","getElementTop","node","parentSelector","scrollableParentSelector","document","querySelector","addEventListener","console","warn","animatePreScroll","clearTimeout","delayedAnimationTimeout","callbackTimeout","cancel","removeEventListener","previousVis","currentVis","animation","callback","_this","setTimeout","animating","setState","delay","_this2","animate","animateIn","animateOnce","vis","getVisibility","_this3","animateOut","afterAnimatedIn","visibilityHasChanged","afterAnimatedOut","_this4","className","createElement","ref","assign","children","Component","defaultProps","propTypes","string","number","bool","module","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","root","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","apply","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","toNumber","isObject","flush","type","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","slice"],"mappings":"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","file":"d4ad233efeb1d959420253442063e6db7488fdeb-c4dc42afd9e4deffd44a.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _get = function get(_x, _x2, _x3) {\n var _again = true;\n _function: while (_again) {\n var object = _x,\n property = _x2,\n receiver = _x3;\n _again = false;\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n _x = parent;\n _x2 = property;\n _x3 = receiver;\n _again = true;\n desc = parent = undefined;\n continue _function;\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n }\n};\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\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 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}\nvar _react = require(\"react\");\nvar _react2 = _interopRequireDefault(_react);\nvar _lodashThrottle = require(\"lodash.throttle\");\nvar _lodashThrottle2 = _interopRequireDefault(_lodashThrottle);\nvar _propTypes = require(\"prop-types\");\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar ScrollAnimation = function (_Component) {\n _inherits(ScrollAnimation, _Component);\n function ScrollAnimation(props) {\n _classCallCheck(this, ScrollAnimation);\n _get(Object.getPrototypeOf(ScrollAnimation.prototype), \"constructor\", this).call(this, props);\n this.serverSide = typeof window === \"undefined\";\n this.listener = (0, _lodashThrottle2[\"default\"])(this.handleScroll.bind(this), 50);\n this.visibility = {\n onScreen: false,\n inViewport: false\n };\n this.state = {\n classes: \"animated\",\n style: {\n animationDuration: this.props.duration + \"s\",\n opacity: this.props.initiallyVisible ? 1 : 0\n }\n };\n }\n _createClass(ScrollAnimation, [{\n key: \"getElementTop\",\n value: function getElementTop(elm) {\n var yPos = 0;\n while (elm && elm.offsetTop !== undefined && elm.clientTop !== undefined) {\n yPos += elm.offsetTop + elm.clientTop;\n elm = elm.offsetParent;\n }\n return yPos;\n }\n }, {\n key: \"getScrollPos\",\n value: function getScrollPos() {\n if (this.scrollableParent.pageYOffset !== undefined) {\n return this.scrollableParent.pageYOffset;\n }\n return this.scrollableParent.scrollTop;\n }\n }, {\n key: \"getScrollableParentHeight\",\n value: function getScrollableParentHeight() {\n if (this.scrollableParent.innerHeight !== undefined) {\n return this.scrollableParent.innerHeight;\n }\n return this.scrollableParent.clientHeight;\n }\n }, {\n key: \"getViewportTop\",\n value: function getViewportTop() {\n return this.getScrollPos() + this.props.offset;\n }\n }, {\n key: \"getViewportBottom\",\n value: function getViewportBottom() {\n return this.getScrollPos() + this.getScrollableParentHeight() - this.props.offset;\n }\n }, {\n key: \"isInViewport\",\n value: function isInViewport(y) {\n return y >= this.getViewportTop() && y <= this.getViewportBottom();\n }\n }, {\n key: \"isAboveViewport\",\n value: function isAboveViewport(y) {\n return y < this.getViewportTop();\n }\n }, {\n key: \"isBelowViewport\",\n value: function isBelowViewport(y) {\n return y > this.getViewportBottom();\n }\n }, {\n key: \"inViewport\",\n value: function inViewport(elementTop, elementBottom) {\n return this.isInViewport(elementTop) || this.isInViewport(elementBottom) || this.isAboveViewport(elementTop) && this.isBelowViewport(elementBottom);\n }\n }, {\n key: \"onScreen\",\n value: function onScreen(elementTop, elementBottom) {\n return !this.isAboveScreen(elementBottom) && !this.isBelowScreen(elementTop);\n }\n }, {\n key: \"isAboveScreen\",\n value: function isAboveScreen(y) {\n return y < this.getScrollPos();\n }\n }, {\n key: \"isBelowScreen\",\n value: function isBelowScreen(y) {\n return y > this.getScrollPos() + this.getScrollableParentHeight();\n }\n }, {\n key: \"getVisibility\",\n value: function getVisibility() {\n var elementTop = this.getElementTop(this.node) - this.getElementTop(this.scrollableParent);\n var elementBottom = elementTop + this.node.clientHeight;\n return {\n inViewport: this.inViewport(elementTop, elementBottom),\n onScreen: this.onScreen(elementTop, elementBottom)\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.serverSide) {\n var parentSelector = this.props.scrollableParentSelector;\n this.scrollableParent = parentSelector ? document.querySelector(parentSelector) : window;\n if (this.scrollableParent && this.scrollableParent.addEventListener) {\n this.scrollableParent.addEventListener(\"scroll\", this.listener);\n } else {\n console.warn(\"Cannot find element by locator: \" + this.props.scrollableParentSelector);\n }\n if (this.props.animatePreScroll) {\n this.handleScroll();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.delayedAnimationTimeout);\n clearTimeout(this.callbackTimeout);\n this.listener.cancel();\n if (window && window.removeEventListener) {\n window.removeEventListener(\"scroll\", this.listener);\n }\n }\n }, {\n key: \"visibilityHasChanged\",\n value: function visibilityHasChanged(previousVis, currentVis) {\n return previousVis.inViewport !== currentVis.inViewport || previousVis.onScreen !== currentVis.onScreen;\n }\n }, {\n key: \"animate\",\n value: function animate(animation, callback) {\n var _this = this;\n this.delayedAnimationTimeout = setTimeout(function () {\n _this.animating = true;\n _this.setState({\n classes: \"animated \" + animation,\n style: {\n animationDuration: _this.props.duration + \"s\"\n }\n });\n _this.callbackTimeout = setTimeout(callback, _this.props.duration * 1000);\n }, this.props.delay);\n }\n }, {\n key: \"animateIn\",\n value: function animateIn(callback) {\n var _this2 = this;\n this.animate(this.props.animateIn, function () {\n if (!_this2.props.animateOnce) {\n _this2.setState({\n style: {\n animationDuration: _this2.props.duration + \"s\",\n opacity: 1\n }\n });\n _this2.animating = false;\n }\n var vis = _this2.getVisibility();\n if (callback) {\n callback(vis);\n }\n });\n }\n }, {\n key: \"animateOut\",\n value: function animateOut(callback) {\n var _this3 = this;\n this.animate(this.props.animateOut, function () {\n _this3.setState({\n classes: \"animated\",\n style: {\n animationDuration: _this3.props.duration + \"s\",\n opacity: 0\n }\n });\n var vis = _this3.getVisibility();\n if (vis.inViewport && _this3.props.animateIn) {\n _this3.animateIn(_this3.props.afterAnimatedIn);\n } else {\n _this3.animating = false;\n }\n if (callback) {\n callback(vis);\n }\n });\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll() {\n if (!this.animating) {\n var currentVis = this.getVisibility();\n if (this.visibilityHasChanged(this.visibility, currentVis)) {\n clearTimeout(this.delayedAnimationTimeout);\n if (!currentVis.onScreen) {\n this.setState({\n classes: \"animated\",\n style: {\n animationDuration: this.props.duration + \"s\",\n opacity: this.props.initiallyVisible ? 1 : 0\n }\n });\n } else if (currentVis.inViewport && this.props.animateIn) {\n this.animateIn(this.props.afterAnimatedIn);\n } else if (currentVis.onScreen && this.visibility.inViewport && this.props.animateOut && this.state.style.opacity === 1) {\n this.animateOut(this.props.afterAnimatedOut);\n }\n this.visibility = currentVis;\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n var classes = this.props.className ? this.props.className + \" \" + this.state.classes : this.state.classes;\n return _react2[\"default\"].createElement(\"div\", {\n ref: function ref(node) {\n _this4.node = node;\n },\n className: classes,\n style: Object.assign({}, this.state.style, this.props.style)\n }, this.props.children);\n }\n }]);\n return ScrollAnimation;\n}(_react.Component);\nexports[\"default\"] = ScrollAnimation;\nScrollAnimation.defaultProps = {\n offset: 150,\n duration: 1,\n initiallyVisible: false,\n delay: 0,\n animateOnce: false,\n animatePreScroll: true\n};\nScrollAnimation.propTypes = {\n animateIn: _propTypes2[\"default\"].string,\n animateOut: _propTypes2[\"default\"].string,\n offset: _propTypes2[\"default\"].number,\n duration: _propTypes2[\"default\"].number,\n delay: _propTypes2[\"default\"].number,\n initiallyVisible: _propTypes2[\"default\"].bool,\n animateOnce: _propTypes2[\"default\"].bool,\n style: _propTypes2[\"default\"].object,\n scrollableParentSelector: _propTypes2[\"default\"].string,\n className: _propTypes2[\"default\"].string,\n animatePreScroll: _propTypes2[\"default\"].bool\n};\nmodule.exports = exports[\"default\"];","/**\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\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function now() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n 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 function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n 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 function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\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 */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\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 */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\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 */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\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 */\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\nmodule.exports = throttle;"],"sourceRoot":""}