{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///aos.js","webpack:///webpack/bootstrap 1dc824bafef7205c03b7","webpack:///./src/js/aos.js","webpack:///./~/lodash.throttle/index.js","webpack:///./~/lodash.debounce/index.js","webpack:///./src/js/libs/observer.js","webpack:///./src/js/helpers/detector.js","webpack:///./src/js/helpers/handleScroll.js","webpack:///./src/js/helpers/prepare.js","webpack:///./src/js/helpers/calculateOffset.js","webpack:///./src/js/libs/offset.js","webpack:///./src/js/helpers/elements.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_aos","_lodash","_lodash2","_lodash3","_lodash4","_observer","_observer2","_detector","_detector2","_handleScroll","_handleScroll2","_prepare","_prepare2","_elements","_elements2","$aosElements","initialized","options","offset","delay","easing","duration","disable","once","startEvent","refresh","initialize","arguments","length","undefined","refreshHard","init","settings","Object","assign","mobile","phone","tablet","forEach","el","i","node","removeAttribute","document","querySelector","setAttribute","includes","readyState","addEventListener","window","event","target","nodeType","hasAttribute","throttle","func","wait","leading","trailing","TypeError","FUNC_ERROR_TEXT","isObject","debounce","maxWait","value","type","_typeof","Symbol","iterator","constructor","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","setTimeout","timerExpired","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","shouldInvoke","now","trailingEdge","clearTimeout","cancel","flush","debounced","isInvoking","toNumber","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","replace","reTrim","isBinary","reIsBinary","test","reIsOctal","freeParseInt","slice","reIsBadHex","parseInt","objectProto","prototype","toString","Math","max","min","Date","ready","selector","fn","listeners","push","observer","MutationObserver","check","observe","doc","documentElement","childList","subtree","removedNodes","listener","elements","len","querySelectorAll","element","j","jLen","defineProperty","WebKitMutationObserver","a","substr","navigator","userAgent","vendor","opera","setState","top","attrOnce","getAttribute","position","classList","add","remove","handleScroll","$elements","scrollTop","pageYOffset","windowHeight","innerHeight","_calculateOffset","_calculateOffset2","prepare","_offset","_offset2","calculateOffset","optionalOffset","elementOffsetTop","additionalOffset","attrs","anchor","anchorPlacement","isNaN","offsetHeight","_x","_y","offsetLeft","offsetTop","tagName","scrollLeft","offsetParent","left","createArrayWithElements","finalElements"],"mappings":"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","file":"aos.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AOS\"] = factory();\n\telse\n\t\troot[\"AOS\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AOS\"] = factory();\n\telse\n\t\troot[\"AOS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _aos = __webpack_require__(1);\n\t\n\tvar _aos2 = _interopRequireDefault(_aos);\n\t\n\tvar _lodash = __webpack_require__(5);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\n\t\n\tvar _lodash3 = __webpack_require__(6);\n\t\n\tvar _lodash4 = _interopRequireDefault(_lodash3);\n\t\n\tvar _observer = __webpack_require__(7);\n\t\n\tvar _observer2 = _interopRequireDefault(_observer);\n\t\n\tvar _detector = __webpack_require__(8);\n\t\n\tvar _detector2 = _interopRequireDefault(_detector);\n\t\n\tvar _handleScroll = __webpack_require__(9);\n\t\n\tvar _handleScroll2 = _interopRequireDefault(_handleScroll);\n\t\n\tvar _prepare = __webpack_require__(10);\n\t\n\tvar _prepare2 = _interopRequireDefault(_prepare);\n\t\n\tvar _elements = __webpack_require__(13);\n\t\n\tvar _elements2 = _interopRequireDefault(_elements);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Private variables\n\t */\n\t/**\n\t * *******************************************************\n\t * AOS (Animate on scroll) - wowjs alternative\n\t * made to animate elements on scroll in both directions\n\t * *******************************************************\n\t */\n\t\n\tvar $aosElements = [];\n\t\n\t// Modules & helpers\n\t\n\tvar initialized = false;\n\t\n\t/**\n\t * Default options\n\t */\n\tvar options = {\n\t offset: 120,\n\t delay: 0,\n\t easing: 'ease',\n\t duration: 400,\n\t disable: false,\n\t once: false,\n\t startEvent: 'DOMContentLoaded'\n\t};\n\t\n\t/**\n\t * Refresh AOS\n\t */\n\tvar refresh = function refresh() {\n\t var initialize = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\t\n\t // Allow refresh only when it was first initialized on startEvent\n\t if (initialize) initialized = true;\n\t\n\t if (initialized) {\n\t // Extend elements objects in $aosElements with their positions\n\t $aosElements = (0, _prepare2.default)($aosElements, options);\n\t // Perform scroll event, to refresh view and show/hide elements\n\t (0, _handleScroll2.default)($aosElements, options.once);\n\t\n\t return $aosElements;\n\t }\n\t};\n\t\n\t/**\n\t * Hard refresh\n\t * create array with new elements and trigger refresh\n\t */\n\tvar refreshHard = function refreshHard() {\n\t $aosElements = (0, _elements2.default)();\n\t refresh();\n\t};\n\t\n\t/**\n\t * Initializing AOS\n\t * - Create options merging defaults with user defined options\n\t * - Set attributes on as global setting - css relies on it\n\t * - Attach preparing elements to options.startEvent,\n\t * window resize and orientation change\n\t * - Attach function that handle scroll and everything connected to it\n\t * to window scroll event and fire once document is ready to set initial state\n\t */\n\tvar init = function init(settings) {\n\t options = Object.assign(options, settings);\n\t\n\t // Create initial array with elements -> to be fullfilled later with prepare()\n\t $aosElements = (0, _elements2.default)();\n\t\n\t /**\n\t * Check options.disable\n\t * and do not init plugin if conditions are true\n\t */\n\t if (options.disable) {\n\t if (options.disable === true || options.disable === 'mobile' && _detector2.default.mobile() || options.disable === 'phone' && _detector2.default.phone() || options.disable === 'tablet' && _detector2.default.tablet() || typeof options.disable === 'function' && options.disable() === true) {\n\t $aosElements.forEach(function (el, i) {\n\t el.node.removeAttribute('data-aos');\n\t el.node.removeAttribute('data-aos-easing');\n\t el.node.removeAttribute('data-aos-duration');\n\t el.node.removeAttribute('data-aos-delay');\n\t });\n\t return false;\n\t }\n\t }\n\t\n\t /**\n\t * Set global settings on body, based on options\n\t * so CSS can use it\n\t */\n\t document.querySelector('body').setAttribute('data-aos-easing', options.easing);\n\t document.querySelector('body').setAttribute('data-aos-duration', options.duration);\n\t document.querySelector('body').setAttribute('data-aos-delay', options.delay);\n\t\n\t /**\n\t * Handle initializing\n\t */\n\t if (options.startEvent === 'DOMContentLoaded' && ['complete', 'interactive'].includes(document.readyState)) {\n\t // Initialize AOS if default startEvent was already fired\n\t refresh(true);\n\t } else {\n\t // Listen to options.startEvent and initialize AOS\n\t document.addEventListener(options.startEvent, function () {\n\t refresh(true);\n\t });\n\t }\n\t\n\t /**\n\t * Refresh plugin on window resize or orientation change\n\t */\n\t window.addEventListener('resize', (0, _lodash4.default)(refresh, 50, true));\n\t window.addEventListener('orientationchange', (0, _lodash4.default)(refresh, 50, true));\n\t\n\t /**\n\t * Handle scroll event to animate elements on scroll\n\t */\n\t window.addEventListener('scroll', (0, _lodash2.default)(function () {\n\t (0, _handleScroll2.default)($aosElements, options.once);\n\t }, 99));\n\t\n\t /**\n\t * Watch if nodes are removed\n\t * If so refresh plugin\n\t */\n\t document.addEventListener('DOMNodeRemoved', function (event) {\n\t var el = event.target;\n\t if (el && el.nodeType === 1 && el.hasAttribute && el.hasAttribute('data-aos')) {\n\t (0, _lodash4.default)(refreshHard, 50, true);\n\t }\n\t });\n\t\n\t /**\n\t * Observe [aos] elements\n\t * If something is loaded by AJAX\n\t * it'll refresh plugin automatically\n\t */\n\t (0, _observer2.default)('[data-aos]', refreshHard);\n\t\n\t return $aosElements;\n\t};\n\t\n\t/**\n\t * Export Public API\n\t */\n\t\n\tmodule.exports = {\n\t init: init,\n\t refresh: refresh,\n\t refreshHard: refreshHard\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * lodash 4.0.1 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2016 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar debounce = __webpack_require__(6);\n\t\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t/**\n\t * Creates a throttled function that only invokes `func` at most once per\n\t * every `wait` milliseconds. The throttled function comes with a `cancel`\n\t * method to cancel delayed `func` invocations and a `flush` method to\n\t * immediately invoke them. Provide an options object to indicate whether\n\t * `func` should be invoked on the leading and/or trailing edge of the `wait`\n\t * timeout. The `func` is invoked with the last arguments provided to the\n\t * throttled function. Subsequent calls to the throttled function return the\n\t * result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the throttled function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.throttle` and `_.debounce`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to throttle.\n\t * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=true] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new throttled function.\n\t * @example\n\t *\n\t * // Avoid excessively updating the position while scrolling.\n\t * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n\t *\n\t * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n\t * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n\t * jQuery(element).on('click', throttled);\n\t *\n\t * // Cancel the trailing throttled invocation.\n\t * jQuery(window).on('popstate', throttled.cancel);\n\t */\n\tfunction throttle(func, wait, options) {\n\t var leading = true,\n\t trailing = true;\n\t\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t if (isObject(options)) {\n\t leading = 'leading' in options ? !!options.leading : leading;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\t return debounce(func, wait, {\n\t 'leading': leading,\n\t 'maxWait': wait,\n\t 'trailing': trailing\n\t });\n\t}\n\t\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\tmodule.exports = throttle;\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\t\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\t\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\t\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\t\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\t\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\t\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\t\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\t\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\t\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\t\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\t\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\t\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\t\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\t\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\t\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\t\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\t\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\t\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\t\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\t\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\t\n\tmodule.exports = debounce;\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar doc = window.document;\n\tvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\n\t\n\tvar listeners = [];\n\tvar observer = void 0;\n\t\n\tfunction ready(selector, fn) {\n\t // Store the selector and callback to be monitored\n\t listeners.push({\n\t selector: selector,\n\t fn: fn\n\t });\n\t\n\t if (!observer && MutationObserver) {\n\t // Watch for changes in the document\n\t observer = new MutationObserver(check);\n\t observer.observe(doc.documentElement, {\n\t childList: true,\n\t subtree: true,\n\t removedNodes: true\n\t });\n\t }\n\t // Check if the element is currently in the DOM\n\t check();\n\t}\n\t\n\tfunction check() {\n\t // Check the DOM for elements matching a stored selector\n\t for (var i = 0, len = listeners.length, listener, elements; i < len; i++) {\n\t listener = listeners[i];\n\t // Query for elements matching the specified selector\n\t elements = doc.querySelectorAll(listener.selector);\n\t for (var j = 0, jLen = elements.length, element; j < jLen; j++) {\n\t element = elements[j];\n\t // Make sure the callback isn't invoked with the\n\t // same element more than once\n\t if (!element.ready) {\n\t element.ready = true;\n\t // Invoke the callback with the element\n\t listener.fn.call(element, element);\n\t }\n\t }\n\t }\n\t}\n\t\n\texports.default = ready;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Device detector\n\t */\n\texports.default = {\n\t phone: function phone() {\n\t var check = false;\n\t (function (a) {\n\t if (/(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.test(a) || /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.test(a.substr(0, 4))) check = true;\n\t })(navigator.userAgent || navigator.vendor || window.opera);\n\t return check;\n\t },\n\t mobile: function mobile() {\n\t var check = false;\n\t (function (a) {\n\t if (/(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.test(a) || /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.test(a.substr(0, 4))) check = true;\n\t })(navigator.userAgent || navigator.vendor || window.opera);\n\t return check;\n\t },\n\t tablet: function tablet() {\n\t return undefined.mobile() && !undefined.phone();\n\t }\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Set or remove aos-animate class\n\t * @param {node} el element\n\t * @param {int} top scrolled distance\n\t * @param {void} once\n\t */\n\tvar setState = function setState(el, top, once) {\n\t var attrOnce = el.node.getAttribute('data-aos-once');\n\t\n\t if (top > el.position) {\n\t el.node.classList.add('aos-animate');\n\t } else if (typeof attrOnce !== 'undefined') {\n\t if (attrOnce === 'false' || !once && attrOnce !== 'true') {\n\t el.node.classList.remove('aos-animate');\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Scroll logic - add or remove 'aos-animate' class on scroll\n\t *\n\t * @param {array} $elements array of elements nodes\n\t * @param {bool} once plugin option\n\t * @return {void}\n\t */\n\tvar handleScroll = function handleScroll($elements, once) {\n\t var scrollTop = window.pageYOffset;\n\t var windowHeight = window.innerHeight;\n\t /**\n\t * Check all registered elements positions\n\t * and animate them on scroll\n\t */\n\t $elements.forEach(function (el, i) {\n\t setState(el, windowHeight + scrollTop, once);\n\t });\n\t};\n\t\n\texports.default = handleScroll;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _calculateOffset = __webpack_require__(11);\n\t\n\tvar _calculateOffset2 = _interopRequireDefault(_calculateOffset);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar prepare = function prepare($elements, options) {\n\t $elements.forEach(function (el, i) {\n\t el.node.classList.add('aos-init');\n\t el.position = (0, _calculateOffset2.default)(el.node, options.offset);\n\t });\n\t\n\t return $elements;\n\t}; /* Clearing variables */\n\t\n\texports.default = prepare;\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _offset = __webpack_require__(12);\n\t\n\tvar _offset2 = _interopRequireDefault(_offset);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar calculateOffset = function calculateOffset(el, optionalOffset) {\n\t var elementOffsetTop = 0;\n\t var additionalOffset = 0;\n\t var windowHeight = window.innerHeight;\n\t var attrs = {\n\t offset: el.getAttribute('data-aos-offset'),\n\t anchor: el.getAttribute('data-aos-anchor'),\n\t anchorPlacement: el.getAttribute('data-aos-anchor-placement')\n\t };\n\t\n\t if (attrs.offset && !isNaN(attrs.offset)) {\n\t additionalOffset = parseInt(attrs.offset);\n\t }\n\t\n\t if (attrs.anchor && document.querySelectorAll(attrs.anchor)) {\n\t el = document.querySelectorAll(attrs.anchor)[0];\n\t }\n\t\n\t elementOffsetTop = (0, _offset2.default)(el).top;\n\t\n\t switch (attrs.anchorPlacement) {\n\t case 'top-bottom':\n\t // Default offset\n\t break;\n\t case 'center-bottom':\n\t elementOffsetTop += el.offsetHeight / 2;\n\t break;\n\t case 'bottom-bottom':\n\t elementOffsetTop += el.offsetHeight;\n\t break;\n\t case 'top-center':\n\t elementOffsetTop += windowHeight / 2;\n\t break;\n\t case 'bottom-center':\n\t elementOffsetTop += windowHeight / 2 + el.offsetHeight;\n\t break;\n\t case 'center-center':\n\t elementOffsetTop += windowHeight / 2 + el.offsetHeight / 2;\n\t break;\n\t case 'top-top':\n\t elementOffsetTop += windowHeight;\n\t break;\n\t case 'bottom-top':\n\t elementOffsetTop += el.offsetHeight + windowHeight;\n\t break;\n\t case 'center-top':\n\t elementOffsetTop += el.offsetHeight / 2 + windowHeight;\n\t break;\n\t }\n\t\n\t if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) {\n\t additionalOffset = optionalOffset;\n\t }\n\t\n\t return elementOffsetTop + additionalOffset;\n\t}; /**\n\t * Calculate offset\n\t * basing on element's settings like:\n\t * - anchor\n\t * - offset\n\t *\n\t * @param {Node} el [Dom element]\n\t * @return {Integer} [Final offset that will be used to trigger animation in good position]\n\t */\n\t\n\texports.default = calculateOffset;\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Get offset of DOM element Helper\n\t * including these with translation\n\t *\n\t * @param {Node} el [DOM element]\n\t * @return {Object} [top and left offset]\n\t */\n\tvar offset = function offset(el) {\n\t var _x = 0;\n\t var _y = 0;\n\t\n\t while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n\t _x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0);\n\t _y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0);\n\t el = el.offsetParent;\n\t }\n\t\n\t return {\n\t top: _y,\n\t left: _x\n\t };\n\t};\n\t\n\texports.default = offset;\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Generate initial array with elements as objects\n\t * This array will be extended later with elements attributes values\n\t * like 'position'\n\t */\n\tvar createArrayWithElements = function createArrayWithElements(elements) {\n\t elements = elements || document.querySelectorAll('[data-aos]');\n\t var finalElements = [];\n\t\n\t [].forEach.call(elements, function (el, i) {\n\t finalElements.push({\n\t node: el\n\t });\n\t });\n\t\n\t return finalElements;\n\t};\n\t\n\texports.default = createArrayWithElements;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** aos.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1dc824bafef7205c03b7\n **/","/**\n * *******************************************************\n * AOS (Animate on scroll) - wowjs alternative\n * made to animate elements on scroll in both directions\n * *******************************************************\n */\n\nimport styles from './../sass/aos.scss';\n\n// Modules & helpers\nimport throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\n\nimport observe 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 startEvent: 'DOMContentLoaded'\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\n if (initialized) {\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, options.once);\n\n return $aosElements;\n }\n};\n\n/**\n * Hard refresh\n * create array with new elements and trigger refresh\n */\nconst refreshHard = function refreshHard() {\n $aosElements = elements();\n refresh();\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 * Check options.disable\n * and do not init plugin if conditions are true\n */\n if (options.disable) {\n if (\n options.disable === true ||\n (options.disable === 'mobile' && detect.mobile()) ||\n (options.disable === 'phone' && detect.phone()) ||\n (options.disable === 'tablet' && detect.tablet()) ||\n (typeof options.disable === 'function' && options.disable() === true)\n ) {\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 return false;\n }\n }\n\n\n /**\n * Set global settings on body, based on options\n * so CSS can use it\n */\n document.querySelector('body').setAttribute('data-aos-easing', options.easing);\n document.querySelector('body').setAttribute('data-aos-duration', options.duration);\n document.querySelector('body').setAttribute('data-aos-delay', options.delay);\n\n /**\n * Handle initializing\n */\n if (options.startEvent === 'DOMContentLoaded' &&\n ['complete', 'interactive'].includes(document.readyState)) {\n // Initialize AOS if default startEvent was already fired\n refresh(true);\n } else {\n // Listen to options.startEvent and initialize AOS\n document.addEventListener(options.startEvent, function() {\n refresh(true);\n });\n }\n\n /**\n * Refresh plugin on window resize or orientation change\n */\n window.addEventListener('resize', debounce(refresh, 50, true));\n window.addEventListener('orientationchange', debounce(refresh, 50, true));\n\n /**\n * Handle scroll event to animate elements on scroll\n */\n window.addEventListener('scroll', throttle(() => {\n handleScroll($aosElements, options.once);\n }, 99));\n\n /**\n * Watch if nodes are removed\n * If so refresh plugin\n */\n document.addEventListener('DOMNodeRemoved', (event) => {\n const el = event.target;\n if (el && el.nodeType === 1 && el.hasAttribute && el.hasAttribute('data-aos')) {\n debounce(refreshHard, 50, true)\n }\n });\n\n /**\n * Observe [aos] elements\n * If something is loaded by AJAX\n * it'll refresh plugin automatically\n */\n observe('[data-aos]', refreshHard);\n\n return $aosElements;\n};\n\n/**\n * Export Public API\n */\n\nmodule.exports = {\n init,\n refresh,\n refreshHard\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/aos.js\n **/","/**\n * lodash 4.0.1 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar debounce = require('lodash.debounce');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 an options object to indicate whether\n * `func` 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 invoked\n * on the trailing edge of the timeout only if the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\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] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * 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 [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\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\nmodule.exports = throttle;\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/lodash.throttle/index.js\n **/","/**\n * lodash 4.0.6 (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 funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n 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/** 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/6.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 * @type {Function}\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 function to be invoked.\n */\nvar now = 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 an options object to indicate whether `func` should be invoked on\n * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent calls\n * to the debounced function return the result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the debounced function is\n * invoked more than once during the `wait` timeout.\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 = 0,\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 || (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 clearTimeout(timerId);\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 lastCallTime = lastInvokeTime = 0;\n lastArgs = 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 clearTimeout(timerId);\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 classified as a `Function` object.\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 correctly classified,\n * else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8 which returns 'object' for typed array and weak map constructors,\n // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/6.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 correctly classified,\n * 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);\n * // => 3\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3');\n * // => 3\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 = isFunction(value.valueOf) ? 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\n\n\n/** WEBPACK FOOTER **\n ** ./~/lodash.debounce/index.js\n **/","const doc = window.document;\nconst MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\n\nlet listeners = [];\nlet observer;\n\nfunction ready (selector, fn) {\n // Store the selector and callback to be monitored\n listeners.push({\n selector,\n fn\n });\n\n if (!observer && MutationObserver) {\n // Watch for changes in the document\n observer = new MutationObserver(check);\n observer.observe(doc.documentElement, {\n childList: true,\n subtree: true,\n removedNodes: true\n });\n }\n // Check if the element is currently in the DOM\n check();\n}\n\nfunction check() {\n // Check the DOM for elements matching a stored selector\n for (let i = 0, len = listeners.length, listener, elements; i < len; i++) {\n listener = listeners[i];\n // Query for elements matching the specified selector\n elements = doc.querySelectorAll(listener.selector);\n for (let j = 0, jLen = elements.length, element; j < jLen; j++) {\n element = elements[j];\n // Make sure the callback isn't invoked with the\n // same element more than once\n if (!element.ready) {\n element.ready = true;\n // Invoke the callback with the element\n listener.fn.call(element, element);\n }\n }\n }\n}\n\nexport default ready;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/libs/observer.js\n **/","/**\n * Device detector\n */\nexport default {\n phone: () => {\n var check = false;\n (function(a) {\n if (/(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.test(a) || /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.test(a.substr(0, 4))) check = true\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n },\n mobile: () => {\n var check = false;\n (function(a) {\n if (/(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.test(a) || /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.test(a.substr(0, 4))) check = true\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n },\n tablet: () => {\n return this.mobile() && !this.phone();\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/helpers/detector.js\n **/","/**\n * Set or remove aos-animate class\n * @param {node} el element\n * @param {int} top scrolled distance\n * @param {void} once\n */\nconst setState = function (el, top, once) {\n const attrOnce = el.node.getAttribute('data-aos-once');\n\n if (top > el.position) {\n el.node.classList.add('aos-animate');\n } else if (typeof attrOnce !== 'undefined') {\n if (attrOnce === 'false' || (!once && attrOnce !== 'true')) {\n el.node.classList.remove('aos-animate');\n }\n }\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 * @param {bool} once plugin option\n * @return {void}\n */\nconst handleScroll = function ($elements, once) {\n const scrollTop = window.pageYOffset;\n const windowHeight = window.innerHeight;\n /**\n * Check all registered elements positions\n * and animate them on scroll\n */\n $elements.forEach((el, i) => {\n setState(el, windowHeight + scrollTop, once);\n });\n};\n\nexport default handleScroll;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/helpers/handleScroll.js\n **/","/* Clearing variables */\n\nimport calculateOffset from './calculateOffset';\n\nconst prepare = function ($elements, options) {\n $elements.forEach((el, i) => {\n el.node.classList.add('aos-init');\n el.position = calculateOffset(el.node, options.offset);\n });\n\n return $elements;\n};\n\nexport default prepare;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/helpers/prepare.js\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';\n\nconst calculateOffset = function (el, optionalOffset) {\n let elementOffsetTop = 0;\n let additionalOffset = 0;\n const windowHeight = window.innerHeight;\n const attrs = {\n offset: el.getAttribute('data-aos-offset'),\n anchor: el.getAttribute('data-aos-anchor'),\n anchorPlacement: el.getAttribute('data-aos-anchor-placement')\n };\n\n if (attrs.offset && !isNaN(attrs.offset)) {\n additionalOffset = parseInt(attrs.offset);\n }\n\n if (attrs.anchor && document.querySelectorAll(attrs.anchor)) {\n el = document.querySelectorAll(attrs.anchor)[0];\n }\n\n elementOffsetTop = getOffset(el).top;\n\n switch (attrs.anchorPlacement) {\n case 'top-bottom':\n // Default offset\n break;\n case 'center-bottom':\n elementOffsetTop += el.offsetHeight / 2;\n break;\n case 'bottom-bottom':\n elementOffsetTop += el.offsetHeight;\n break;\n case 'top-center':\n elementOffsetTop += windowHeight / 2;\n break;\n case 'bottom-center':\n elementOffsetTop += windowHeight / 2 + el.offsetHeight;\n break;\n case 'center-center':\n elementOffsetTop += windowHeight / 2 + el.offsetHeight / 2;\n break;\n case 'top-top':\n elementOffsetTop += windowHeight;\n break;\n case 'bottom-top':\n elementOffsetTop += el.offsetHeight + windowHeight;\n break;\n case 'center-top':\n elementOffsetTop += el.offsetHeight / 2 + windowHeight;\n break;\n }\n\n if (!attrs.anchorPlacement && !attrs.offset && !isNaN(optionalOffset)) {\n additionalOffset = optionalOffset;\n }\n\n return elementOffsetTop + additionalOffset;\n};\n\nexport default calculateOffset;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/helpers/calculateOffset.js\n **/","/**\n * Get offset of DOM element Helper\n * including these with translation\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\n\n/** WEBPACK FOOTER **\n ** ./src/js/libs/offset.js\n **/","/**\n * Generate initial array with elements as objects\n * This array will be extended later with elements attributes values\n * like 'position'\n */\nconst createArrayWithElements = function (elements) {\n elements = elements || document.querySelectorAll('[data-aos]');\n let finalElements = [];\n\n [].forEach.call(elements, function(el, i) {\n finalElements.push({\n node: el\n });\n });\n\n return finalElements;\n};\n\nexport default createArrayWithElements;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/js/helpers/elements.js\n **/"],"sourceRoot":""}