{"version":3,"file":"aos.js","sources":["../node_modules/lodash.throttle/index.js","../node_modules/lodash.debounce/index.js","../src/js/libs/observer.js","../src/js/helpers/detector.js","../src/js/helpers/handleScroll.js","../src/js/libs/offset.js","../src/js/helpers/getInlineOption.js","../src/js/helpers/prepare.js","../src/js/helpers/offsetCalculator.js","../src/js/helpers/elements.js","../src/js/aos.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\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() {\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\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\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\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;\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\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\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) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\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\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\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\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\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\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\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' ||\n (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))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\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() {\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\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\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\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;\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\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\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) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\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\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\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\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\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\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 * 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' ||\n (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))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","let callback = () => {};\n\nfunction containsAOSNode(nodes) {\n let i, currentNode, result;\n\n for (i = 0; i < nodes.length; i += 1) {\n currentNode = nodes[i];\n\n if (currentNode.dataset && currentNode.dataset.aos) {\n return true;\n }\n\n result = currentNode.children && containsAOSNode(currentNode.children);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction check(mutations) {\n if (!mutations) return;\n\n mutations.forEach(mutation => {\n const addedNodes = Array.prototype.slice.call(mutation.addedNodes);\n const removedNodes = Array.prototype.slice.call(mutation.removedNodes);\n const allNodes = addedNodes.concat(removedNodes);\n\n if (containsAOSNode(allNodes)) {\n return callback();\n }\n });\n}\n\nfunction getMutationObserver() {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n );\n}\n\nfunction isSupported() {\n return !!getMutationObserver();\n}\n\nfunction ready(selector, fn) {\n const doc = window.document;\n const MutationObserver = getMutationObserver();\n\n const observer = new MutationObserver(check);\n callback = fn;\n\n observer.observe(doc.documentElement, {\n childList: true,\n subtree: true,\n removedNodes: true\n });\n}\n\nexport default { isSupported, ready };\n","/**\n * Device detector\n */\n\nconst fullNameRe = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;\nconst prefixRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i;\nconst fullNameMobileRe = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i;\nconst prefixMobileRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i;\n\nfunction ua() {\n return navigator.userAgent || navigator.vendor || window.opera || '';\n}\n\nclass Detector {\n phone() {\n const a = ua();\n return !!(fullNameRe.test(a) || prefixRe.test(a.substr(0, 4)));\n }\n\n mobile() {\n const a = ua();\n return !!(fullNameMobileRe.test(a) || prefixMobileRe.test(a.substr(0, 4)));\n }\n\n tablet() {\n return this.mobile() && !this.phone();\n }\n\n // http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c\n ie11() {\n return (\n '-ms-scroll-limit' in document.documentElement.style &&\n '-ms-ime-align' in document.documentElement.style\n );\n }\n}\n\nexport default new Detector();\n","import detect from './detector';\n\n/**\n * Adds multiple classes on node\n * @param {DOMNode} node\n * @param {array} classes\n */\nconst addClasses = (node, classes) =>\n classes && classes.forEach(className => node.classList.add(className));\n\n/**\n * Removes multiple classes from node\n * @param {DOMNode} node\n * @param {array} classes\n */\nconst removeClasses = (node, classes) =>\n classes && classes.forEach(className => node.classList.remove(className));\n\nconst fireEvent = (eventName, data) => {\n let customEvent;\n\n if (detect.ie11()) {\n customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(eventName, true, true, { detail: data });\n } else {\n customEvent = new CustomEvent(eventName, {\n detail: data\n });\n }\n\n return document.dispatchEvent(customEvent);\n};\n\n/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n */\nconst applyClasses = (el, top) => {\n const { options, position, node, data } = el;\n\n const hide = () => {\n if (!el.animated) return;\n\n removeClasses(node, options.animatedClassNames);\n fireEvent('aos:out', node);\n\n if (el.options.id) {\n fireEvent(`aos:in:${el.options.id}`, node);\n }\n\n el.animated = false;\n };\n\n const show = () => {\n if (el.animated) return;\n\n addClasses(node, options.animatedClassNames);\n\n fireEvent('aos:in', node);\n if (el.options.id) {\n fireEvent(`aos:in:${el.options.id}`, node);\n }\n\n el.animated = true;\n };\n\n if (options.mirror && top >= position.out && !options.once) {\n hide();\n } else if (top >= position.in) {\n show();\n } else if (el.animated && !options.once) {\n hide();\n }\n};\n\n/**\n * Scroll logic - add or remove 'aos-animate' class on scroll\n *\n * @param {array} $elements array of elements nodes\n * @return {void}\n */\nconst handleScroll = $elements =>\n $elements.forEach((el, i) => applyClasses(el, window.pageYOffset));\n\nexport default handleScroll;\n","/**\n * Get offset of DOM element\n * like there were no transforms applied on it\n *\n * @param {Node} el [DOM element]\n * @return {Object} [top and left offset]\n */\nconst offset = function(el) {\n let _x = 0;\n let _y = 0;\n\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0);\n _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0);\n el = el.offsetParent;\n }\n\n return {\n top: _y,\n left: _x\n };\n};\n\nexport default offset;\n","/**\n * Get inline option with a fallback.\n *\n * @param {Node} el [Dom element]\n * @param {String} key [Option key]\n * @param {String} fallback [Default (fallback) value]\n * @return {Mixed} [Option set with inline attributes or fallback value if not set]\n */\n\nexport default (el, key, fallback) => {\n const attr = el.getAttribute('data-aos-' + key);\n\n if (typeof attr !== 'undefined') {\n if (attr === 'true') {\n return true;\n } else if (attr === 'false') {\n return false;\n }\n }\n\n return attr || fallback;\n};\n","/* Clearing variables */\n\nimport { getPositionIn, getPositionOut } from './offsetCalculator';\nimport getInlineOption from './getInlineOption';\n\nconst prepare = function($elements, options) {\n $elements.forEach((el, i) => {\n const mirror = getInlineOption(el.node, 'mirror', options.mirror);\n const once = getInlineOption(el.node, 'once', options.once);\n const id = getInlineOption(el.node, 'id');\n const customClassNames =\n options.useClassNames && el.node.getAttribute('data-aos');\n\n const animatedClassNames = [options.animatedClassName]\n .concat(customClassNames ? customClassNames.split(' ') : [])\n .filter(className => typeof className === 'string');\n\n if (options.initClassName) {\n el.node.classList.add(options.initClassName);\n }\n\n el.position = {\n in: getPositionIn(el.node, options.offset, options.anchorPlacement),\n out: mirror && getPositionOut(el.node, options.offset)\n };\n\n el.options = {\n once,\n mirror,\n animatedClassNames,\n id\n };\n });\n\n return $elements;\n};\n\nexport default prepare;\n","/**\n * Calculate offset\n * basing on element's settings like:\n * - anchor\n * - offset\n *\n * @param {Node} el [Dom element]\n * @return {Integer} [Final offset that will be used to trigger animation in good position]\n */\n\nimport getOffset from './../libs/offset';\nimport getInlineOption from './getInlineOption';\n\nexport const getPositionIn = (el, defaultOffset, defaultAnchorPlacement) => {\n const windowHeight = window.innerHeight;\n const anchor = getInlineOption(el, 'anchor');\n const inlineAnchorPlacement = getInlineOption(el, 'anchor-placement');\n const additionalOffset = Number(\n getInlineOption(el, 'offset', inlineAnchorPlacement ? 0 : defaultOffset)\n );\n const anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement;\n let finalEl = el;\n\n if (anchor && document.querySelectorAll(anchor)) {\n finalEl = document.querySelectorAll(anchor)[0];\n }\n\n let triggerPoint = getOffset(finalEl).top - windowHeight;\n\n switch (anchorPlacement) {\n case 'top-bottom':\n // Default offset\n break;\n case 'center-bottom':\n triggerPoint += finalEl.offsetHeight / 2;\n break;\n case 'bottom-bottom':\n triggerPoint += finalEl.offsetHeight;\n break;\n case 'top-center':\n triggerPoint += windowHeight / 2;\n break;\n case 'center-center':\n triggerPoint += windowHeight / 2 + finalEl.offsetHeight / 2;\n break;\n case 'bottom-center':\n triggerPoint += windowHeight / 2 + finalEl.offsetHeight;\n break;\n case 'top-top':\n triggerPoint += windowHeight;\n break;\n case 'bottom-top':\n triggerPoint += windowHeight + finalEl.offsetHeight;\n break;\n case 'center-top':\n triggerPoint += windowHeight + finalEl.offsetHeight / 2;\n break;\n }\n\n return triggerPoint + additionalOffset;\n};\n\nexport const getPositionOut = (el, defaultOffset) => {\n const windowHeight = window.innerHeight;\n const anchor = getInlineOption(el, 'anchor');\n const additionalOffset = getInlineOption(el, 'offset', defaultOffset);\n let finalEl = el;\n\n if (anchor && document.querySelectorAll(anchor)) {\n finalEl = document.querySelectorAll(anchor)[0];\n }\n\n const elementOffsetTop = getOffset(finalEl).top;\n\n return elementOffsetTop + finalEl.offsetHeight - additionalOffset;\n};\n","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nexport default () => {\n const elements = document.querySelectorAll('[data-aos]');\n return Array.prototype.map.call(elements, node => ({ node }));\n};\n","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\nimport styles from './../sass/aos.scss';\n\n// Modules & helpers\nimport throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\n\nimport observer from './libs/observer';\n\nimport detect from './helpers/detector';\nimport handleScroll from './helpers/handleScroll';\nimport prepare from './helpers/prepare';\nimport elements from './helpers/elements';\n\n/**\n * Private variables\n */\nlet $aosElements = [];\nlet initialized = false;\n\n/**\n * Default options\n */\nlet options = {\n offset: 120,\n delay: 0,\n easing: 'ease',\n duration: 400,\n disable: false,\n once: false,\n mirror: false,\n anchorPlacement: 'top-bottom',\n startEvent: 'DOMContentLoaded',\n animatedClassName: 'aos-animate',\n initClassName: 'aos-init',\n useClassNames: false,\n disableMutationObserver: false,\n throttleDelay: 99,\n debounceDelay: 50\n};\n\n// Detect not supported browsers (<=IE9)\n// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\nconst isBrowserNotSupported = () => document.all && !window.atob;\n\nconst initializeScroll = function initializeScroll() {\n // Extend elements objects in $aosElements with their positions\n $aosElements = prepare($aosElements, options);\n // Perform scroll event, to refresh view and show/hide elements\n handleScroll($aosElements);\n\n /**\n * Handle scroll event to animate elements on scroll\n */\n window.addEventListener(\n 'scroll',\n throttle(() => {\n handleScroll($aosElements, options.once);\n }, options.throttleDelay)\n );\n\n return $aosElements;\n};\n\n/**\n * Refresh AOS\n */\nconst refresh = function refresh(initialize = false) {\n // Allow refresh only when it was first initialized on startEvent\n if (initialize) initialized = true;\n if (initialized) initializeScroll();\n};\n\n/**\n * Hard refresh\n * create array with new elements and trigger refresh\n */\nconst refreshHard = function refreshHard() {\n $aosElements = elements();\n\n if (isDisabled(options.disable) || isBrowserNotSupported()) {\n return disable();\n }\n\n refresh();\n};\n\n/**\n * Disable AOS\n * Remove all attributes to reset applied styles\n */\nconst disable = function() {\n $aosElements.forEach(function(el, i) {\n el.node.removeAttribute('data-aos');\n el.node.removeAttribute('data-aos-easing');\n el.node.removeAttribute('data-aos-duration');\n el.node.removeAttribute('data-aos-delay');\n\n if (options.initClassName) {\n el.node.classList.remove(options.initClassName);\n }\n\n if (options.animatedClassName) {\n el.node.classList.remove(options.animatedClassName);\n }\n });\n};\n\n/**\n * Check if AOS should be disabled based on provided setting\n */\nconst isDisabled = function(optionDisable) {\n return (\n optionDisable === true ||\n (optionDisable === 'mobile' && detect.mobile()) ||\n (optionDisable === 'phone' && detect.phone()) ||\n (optionDisable === 'tablet' && detect.tablet()) ||\n (typeof optionDisable === 'function' && optionDisable() === true)\n );\n};\n\n/**\n * Initializing AOS\n * - Create options merging defaults with user defined options\n * - Set attributes on as global setting - css relies on it\n * - Attach preparing elements to options.startEvent,\n * window resize and orientation change\n * - Attach function that handle scroll and everything connected to it\n * to window scroll event and fire once document is ready to set initial state\n */\nconst init = function init(settings) {\n options = Object.assign(options, settings);\n\n // Create initial array with elements -> to be fullfilled later with prepare()\n $aosElements = elements();\n\n /**\n * Disable mutation observing if not supported\n */\n if (!options.disableMutationObserver && !observer.isSupported()) {\n console.info(`\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call \"refreshHard()\" by yourself.\n `);\n options.disableMutationObserver = true;\n }\n\n /**\n * Observe [aos] elements\n * If something is loaded by AJAX\n * it'll refresh plugin automatically\n */\n if (!options.disableMutationObserver) {\n observer.ready('[data-aos]', refreshHard);\n }\n\n /**\n * Don't init plugin if option `disable` is set\n * or when browser is not supported\n */\n if (isDisabled(options.disable) || isBrowserNotSupported()) {\n return disable();\n }\n\n /**\n * Set global settings on body, based on options\n * so CSS can use it\n */\n document\n .querySelector('body')\n .setAttribute('data-aos-easing', options.easing);\n\n document\n .querySelector('body')\n .setAttribute('data-aos-duration', options.duration);\n\n document.querySelector('body').setAttribute('data-aos-delay', options.delay);\n\n /**\n * Handle initializing\n */\n if (['DOMContentLoaded', 'load'].indexOf(options.startEvent) === -1) {\n // Listen to options.startEvent and initialize AOS\n document.addEventListener(options.startEvent, function() {\n refresh(true);\n });\n } else {\n window.addEventListener('load', function() {\n refresh(true);\n });\n }\n\n if (\n options.startEvent === 'DOMContentLoaded' &&\n ['complete', 'interactive'].indexOf(document.readyState) > -1\n ) {\n // Initialize AOS if default startEvent was already fired\n refresh(true);\n }\n\n /**\n * Refresh plugin on window resize or orientation change\n */\n window.addEventListener(\n 'resize',\n debounce(refresh, options.debounceDelay, true)\n );\n\n window.addEventListener(\n 'orientationchange',\n debounce(refresh, options.debounceDelay, true)\n );\n\n return $aosElements;\n};\n\n/**\n * Export Public API\n */\n\nexport default {\n init,\n refresh,\n refreshHard\n};\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","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","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","toNumber","isObject","cancel","clearTimeout","flush","value","type","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","callback","check","mutations","forEach","addedNodes","Array","mutation","removedNodes","containsAOSNode","nodes","i","currentNode","length","dataset","aos","children","concat","getMutationObserver","window","MutationObserver","WebKitMutationObserver","MozMutationObserver","isSupported","ready","selector","fn","doc","document","observer","observe","documentElement","fullNameRe","prefixRe","fullNameMobileRe","prefixMobileRe","ua","navigator","userAgent","vendor","opera","a","substr","mobile","phone","style","fireEvent","eventName","data","customEvent","detect","ie11","createEvent","initCustomEvent","detail","CustomEvent","dispatchEvent","handleScroll","$elements","el","top","position","node","hide","animated","classes","classList","remove","className","animatedClassNames","id","mirror","out","once","in","add","applyClasses","pageYOffset","offset","_x","_y","isNaN","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","key","fallback","attr","getAttribute","prepare","getInlineOption","customClassNames","useClassNames","animatedClassName","split","filter","initClassName","defaultOffset","defaultAnchorPlacement","windowHeight","innerHeight","anchor","inlineAnchorPlacement","additionalOffset","Number","anchorPlacement","finalEl","querySelectorAll","triggerPoint","getOffset","offsetHeight","getPositionIn","getPositionOut","elements","map","$aosElements","initialized","isBrowserNotSupported","all","atob","refresh","addEventListener","throttle","throttleDelay","refreshHard","isDisabled","disable","removeAttribute","optionDisable","tablet","settings","babelHelpers.extends","disableMutationObserver","info","querySelector","setAttribute","easing","duration","delay","indexOf","startEvent","readyState","debounceDelay"],"mappings":"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"}